From 43a6e8d116c96589127a7730da4296a4b382c4fc Mon Sep 17 00:00:00 2001
From: camera-2018 <2907618001@qq.com>
Date: Mon, 24 Apr 2023 11:26:28 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0ipynb=E6=B8=B2?=
=?UTF-8?q?=E6=9F=93?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../theme/css/jupyterlab/cells/inputarea.css | 70 +
.../theme/css/jupyterlab/cells/widget.css | 237 ++
.vitepress/theme/css/jupyterlab/index.css | 7 +
.../css/jupyterlab/lumino.widgets.widget.css | 26 +
.../theme/css/jupyterlab/materialcolors.css | 267 ++
.../theme/css/jupyterlab/notebook.base.css | 460 +++
.../theme/css/jupyterlab/output.area.base.css | 276 ++
.../theme/css/jupyterlab/rendermine.base.css | 634 +++
.vitepress/theme/style.css | 25 +
components/RenderJupyterNotebook.vue | 19 +
notebook.md | 18 +
package-lock.json | 3513 ++++++++++++++++-
package.json | 7 +
utils/index.js | 1 +
utils/notebook/codemirror.js | 50 +
utils/notebook/codemirror.theme.js | 180 +
utils/notebook/index.js | 348 ++
utils/notebook/latex.js | 194 +
utils/notebook/lib/index.js | 108 +
utils/notebook/markdown.js | 10 +
utils/notebook/renderers.js | 701 ++++
utils/notebook/sanitizer.js | 948 +++++
utils/notebook/style/base.css | 15 +
utils/notebook/style/index.css | 8 +
utils/notebook/style/index.js | 8 +
特征工程.ipynb | 1803 +++++++++
特征工程.json | 1803 +++++++++
27 files changed, 11696 insertions(+), 40 deletions(-)
create mode 100644 .vitepress/theme/css/jupyterlab/cells/inputarea.css
create mode 100644 .vitepress/theme/css/jupyterlab/cells/widget.css
create mode 100644 .vitepress/theme/css/jupyterlab/index.css
create mode 100644 .vitepress/theme/css/jupyterlab/lumino.widgets.widget.css
create mode 100644 .vitepress/theme/css/jupyterlab/materialcolors.css
create mode 100644 .vitepress/theme/css/jupyterlab/notebook.base.css
create mode 100644 .vitepress/theme/css/jupyterlab/output.area.base.css
create mode 100644 .vitepress/theme/css/jupyterlab/rendermine.base.css
create mode 100644 components/RenderJupyterNotebook.vue
create mode 100644 notebook.md
create mode 100644 utils/index.js
create mode 100644 utils/notebook/codemirror.js
create mode 100644 utils/notebook/codemirror.theme.js
create mode 100644 utils/notebook/index.js
create mode 100644 utils/notebook/latex.js
create mode 100644 utils/notebook/lib/index.js
create mode 100644 utils/notebook/markdown.js
create mode 100644 utils/notebook/renderers.js
create mode 100644 utils/notebook/sanitizer.js
create mode 100644 utils/notebook/style/base.css
create mode 100644 utils/notebook/style/index.css
create mode 100644 utils/notebook/style/index.js
create mode 100644 特征工程.ipynb
create mode 100644 特征工程.json
diff --git a/.vitepress/theme/css/jupyterlab/cells/inputarea.css b/.vitepress/theme/css/jupyterlab/cells/inputarea.css
new file mode 100644
index 0000000..203709a
--- /dev/null
+++ b/.vitepress/theme/css/jupyterlab/cells/inputarea.css
@@ -0,0 +1,70 @@
+/* 源码地址:https://github.com/jupyterlab/jupyterlab/blob/master/packages/cells/style/inputarea.css */
+
+/* -----------------------------------------------------------------------------
+| Copyright (c) Jupyter Development Team.
+| Distributed under the terms of the Modified BSD License.
+|---------------------------------------------------------------------------- */
+
+/* -----------------------------------------------------------------------------
+| Input
+|---------------------------------------------------------------------------- */
+
+/* All input areas */
+.jp-InputArea {
+ display: table;
+ table-layout: fixed;
+ width: 100%;
+ overflow: hidden;
+}
+
+.jp-InputArea-editor {
+ display: table-cell;
+ overflow: hidden;
+ vertical-align: top;
+
+ /* This is the non-active, default styling */
+ border: var(--jp-border-width) solid var(--jp-cell-editor-border-color);
+ border-radius: 0;
+ background: var(--jp-cell-editor-background);
+}
+
+.jp-InputPrompt {
+ display: table-cell;
+ vertical-align: top;
+ width: var(--jp-cell-prompt-width);
+ color: var(--jp-cell-inprompt-font-color);
+ font-family: var(--jp-cell-prompt-font-family);
+ padding: var(--jp-code-padding);
+ letter-spacing: var(--jp-cell-prompt-letter-spacing);
+ opacity: var(--jp-cell-prompt-opacity);
+ line-height: var(--jp-code-line-height);
+ font-size: var(--jp-code-font-size);
+ border: var(--jp-border-width) solid transparent;
+
+ /* Right align prompt text, don't wrap to handle large prompt numbers */
+ text-align: right;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+
+ /* Disable text selection */
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+/* -----------------------------------------------------------------------------
+| Mobile
+|---------------------------------------------------------------------------- */
+@media only screen and (max-width: 760px) {
+ .jp-InputArea-editor {
+ display: table-row;
+ margin-left: var(--jp-notebook-padding);
+ }
+
+ .jp-InputPrompt {
+ display: table-row;
+ text-align: left;
+ }
+}
diff --git a/.vitepress/theme/css/jupyterlab/cells/widget.css b/.vitepress/theme/css/jupyterlab/cells/widget.css
new file mode 100644
index 0000000..a8fb0c2
--- /dev/null
+++ b/.vitepress/theme/css/jupyterlab/cells/widget.css
@@ -0,0 +1,237 @@
+/* stylelint-disable no-descending-specificity */
+
+/* 源码地址:https://github.com/jupyterlab/jupyterlab/blob/master/packages/cells/style/widget.css */
+
+/* -----------------------------------------------------------------------------
+| Copyright (c) Jupyter Development Team.
+| Distributed under the terms of the Modified BSD License.
+|---------------------------------------------------------------------------- */
+
+/* -----------------------------------------------------------------------------
+| Private CSS variables
+|---------------------------------------------------------------------------- */
+
+:root {
+ --jp-private-cell-scrolling-output-offset: 5px;
+}
+
+/* -----------------------------------------------------------------------------
+| Cell
+|---------------------------------------------------------------------------- */
+
+.jp-Cell {
+ padding: var(--jp-cell-padding);
+ margin: 0;
+ border: none;
+ outline: none;
+ background: transparent;
+}
+
+/* -----------------------------------------------------------------------------
+| Common input/output
+|---------------------------------------------------------------------------- */
+
+.jp-Cell-inputWrapper,
+.jp-Cell-outputWrapper {
+ display: flex;
+ flex-direction: row;
+ padding: 0;
+ margin: 0;
+
+ /* Added to reveal the box-shadow on the input and output collapsers. */
+ overflow: visible;
+}
+
+/* Only input/output areas inside cells */
+.jp-Cell-inputArea,
+.jp-Cell-outputArea {
+ flex: 1 1 auto;
+}
+
+/* -----------------------------------------------------------------------------
+| Collapser
+|---------------------------------------------------------------------------- */
+
+/* Make the output collapser disappear when there is not output, but do so
+ * in a manner that leaves it in the layout and preserves its width.
+ */
+.jp-Cell.jp-mod-noOutputs .jp-Cell-outputCollapser {
+ border: none !important;
+ background: transparent !important;
+}
+
+.jp-Cell:not(.jp-mod-noOutputs) .jp-Cell-outputCollapser {
+ min-height: var(--jp-cell-collapser-min-height);
+}
+
+/* -----------------------------------------------------------------------------
+| Output
+|---------------------------------------------------------------------------- */
+
+/* Put a space between input and output when there IS output */
+.jp-Cell:not(.jp-mod-noOutputs) .jp-Cell-outputWrapper {
+ margin-top: 5px;
+}
+
+.jp-CodeCell.jp-mod-outputsScrolled .jp-Cell-outputArea {
+ overflow-y: auto;
+ max-height: 24em;
+ margin-left: var(--jp-private-cell-scrolling-output-offset);
+ resize: vertical;
+}
+
+.jp-CodeCell.jp-mod-outputsScrolled .jp-Cell-outputArea[style*='height'] {
+ max-height: unset;
+}
+
+.jp-CodeCell.jp-mod-outputsScrolled .jp-Cell-outputArea::after {
+ content: ' ';
+ box-shadow: inset 0 0 6px 2px rgb(0 0 0 / 30%);
+ width: 100%;
+ height: 100%;
+ position: sticky;
+ bottom: 0;
+ top: 0;
+ margin-top: -50%;
+ float: left;
+ display: block;
+ pointer-events: none;
+}
+
+.jp-CodeCell.jp-mod-outputsScrolled .jp-OutputArea-child {
+ padding-top: 6px;
+}
+
+.jp-CodeCell.jp-mod-outputsScrolled .jp-OutputArea-prompt {
+ width:
+ calc(
+ var(--jp-cell-prompt-width) - var(--jp-private-cell-scrolling-output-offset)
+ );
+}
+
+/* -----------------------------------------------------------------------------
+| CodeCell
+|---------------------------------------------------------------------------- */
+
+/* -----------------------------------------------------------------------------
+| MarkdownCell
+|---------------------------------------------------------------------------- */
+
+.jp-MarkdownOutput {
+ display: table-cell;
+ width: 100%;
+ margin-top: 0;
+ margin-bottom: 0;
+ padding-left: var(--jp-code-padding);
+}
+
+.jp-MarkdownOutput.jp-RenderedHTMLCommon {
+ overflow: auto;
+}
+
+/* collapseHeadingButton (show always if hiddenCellsButton is _not_ shown) */
+.jp-collapseHeadingButton {
+ display: flex;
+ min-height: var(--jp-cell-collapser-min-height);
+ font-size: var(--jp-code-font-size);
+ position: absolute;
+ background-color: transparent;
+ background-size: 25px;
+ background-repeat: no-repeat;
+ background-position-x: center;
+ background-position-y: top;
+ background-image: var(--jp-icon-caret-down);
+ right: 0;
+ top: 0;
+ bottom: 0;
+}
+
+.jp-collapseHeadingButton.jp-mod-collapsed {
+ background-image: var(--jp-icon-caret-right);
+}
+
+/*
+ set the container font size to match that of content
+ so that the nested collapse buttons have the right size
+*/
+.jp-MarkdownCell .jp-InputPrompt {
+ font-size: var(--jp-content-font-size1);
+}
+
+/*
+ Align collapseHeadingButton with cell top header
+ The font sizes are identical to the ones in packages/rendermime/style/base.css
+*/
+.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level='1'] {
+ font-size: var(--jp-content-font-size5);
+ background-position-y: calc(0.3 * var(--jp-content-font-size5));
+}
+
+.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level='2'] {
+ font-size: var(--jp-content-font-size4);
+ background-position-y: calc(0.3 * var(--jp-content-font-size4));
+}
+
+.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level='3'] {
+ font-size: var(--jp-content-font-size3);
+ background-position-y: calc(0.3 * var(--jp-content-font-size3));
+}
+
+.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level='4'] {
+ font-size: var(--jp-content-font-size2);
+ background-position-y: calc(0.3 * var(--jp-content-font-size2));
+}
+
+.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level='5'] {
+ font-size: var(--jp-content-font-size1);
+ background-position-y: top;
+}
+
+.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level='6'] {
+ font-size: var(--jp-content-font-size0);
+ background-position-y: top;
+}
+
+/* collapseHeadingButton (show only on (hover,active) if hiddenCellsButton is shown) */
+.jp-Notebook.jp-mod-showHiddenCellsButton .jp-collapseHeadingButton {
+ display: none;
+}
+
+.jp-Notebook.jp-mod-showHiddenCellsButton :is(.jp-MarkdownCell:hover, .jp-mod-active) .jp-collapseHeadingButton {
+ display: flex;
+}
+
+/* showHiddenCellsButton (only show if jp-mod-showHiddenCellsButton is set, which
+is a consequence of the showHiddenCellsButton option in Notebook Settings) */
+.jp-Notebook.jp-mod-showHiddenCellsButton .jp-showHiddenCellsButton {
+ margin-left: calc(var(--jp-cell-prompt-width) + 2 * var(--jp-code-padding));
+ margin-top: var(--jp-code-padding);
+ border: 1px solid var(--jp-border-color2);
+ background-color: var(--jp-border-color3) !important;
+ color: var(--jp-content-font-color0) !important;
+ display: flex;
+}
+
+.jp-Notebook.jp-mod-showHiddenCellsButton .jp-showHiddenCellsButton:hover {
+ background-color: var(--jp-border-color2) !important;
+}
+
+.jp-showHiddenCellsButton {
+ display: none;
+}
+
+/* -----------------------------------------------------------------------------
+| Printing
+|---------------------------------------------------------------------------- */
+
+/*
+Using block instead of flex to allow the use of the break-inside CSS property for
+cell outputs.
+*/
+
+@media print {
+ .jp-Cell-inputWrapper,
+ .jp-Cell-outputWrapper {
+ display: block;
+ }
+}
diff --git a/.vitepress/theme/css/jupyterlab/index.css b/.vitepress/theme/css/jupyterlab/index.css
new file mode 100644
index 0000000..0ce68a2
--- /dev/null
+++ b/.vitepress/theme/css/jupyterlab/index.css
@@ -0,0 +1,7 @@
+@import url('./lumino.widgets.widget.css');
+@import url('./materialcolors.css');
+@import url('./rendermine.base.css');
+@import url('./output.area.base.css');
+@import url('./cells/inputarea.css');
+@import url('./cells/widget.css');
+@import url('./notebook.base.css');
diff --git a/.vitepress/theme/css/jupyterlab/lumino.widgets.widget.css b/.vitepress/theme/css/jupyterlab/lumino.widgets.widget.css
new file mode 100644
index 0000000..c189954
--- /dev/null
+++ b/.vitepress/theme/css/jupyterlab/lumino.widgets.widget.css
@@ -0,0 +1,26 @@
+/* 源码地址:https://github.com/jupyterlab/lumino/blob/main/packages/widgets/style/widget.css */
+
+/*
+ * Copyright (c) Jupyter Development Team.
+ * Distributed under the terms of the Modified BSD License.
+ */
+
+/* -----------------------------------------------------------------------------
+| Copyright (c) Jupyter Development Team.
+| Copyright (c) 2014-2017, PhosphorJS Contributors
+|
+| Distributed under the terms of the BSD 3-Clause License.
+|
+| The full license is in the file LICENSE, distributed with this software.
+|---------------------------------------------------------------------------- */
+
+.lm-Widget {
+ box-sizing: border-box;
+ position: relative;
+ overflow: hidden;
+ cursor: default;
+}
+
+.lm-Widget.lm-mod-hidden {
+ display: none !important;
+}
diff --git a/.vitepress/theme/css/jupyterlab/materialcolors.css b/.vitepress/theme/css/jupyterlab/materialcolors.css
new file mode 100644
index 0000000..2714dbc
--- /dev/null
+++ b/.vitepress/theme/css/jupyterlab/materialcolors.css
@@ -0,0 +1,267 @@
+/* 源码地址:https://github.com/jupyterlab/jupyterlab/blob/master/packages/apputils/style/materialcolors.css */
+
+/*
+ * Copyright (c) Jupyter Development Team.
+ * Distributed under the terms of the Modified BSD License.
+ */
+
+/**
+ * google-material-color v1.2.6
+ * https://github.com/danlevan/google-material-color
+ */
+:root {
+ --md-red-50: #ffebee;
+ --md-red-100: #ffcdd2;
+ --md-red-200: #ef9a9a;
+ --md-red-300: #e57373;
+ --md-red-400: #ef5350;
+ --md-red-500: #f44336;
+ --md-red-600: #e53935;
+ --md-red-700: #d32f2f;
+ --md-red-800: #c62828;
+ --md-red-900: #b71c1c;
+ --md-red-A100: #ff8a80;
+ --md-red-A200: #ff5252;
+ --md-red-A400: #ff1744;
+ --md-red-A700: #d50000;
+ --md-pink-50: #fce4ec;
+ --md-pink-100: #f8bbd0;
+ --md-pink-200: #f48fb1;
+ --md-pink-300: #f06292;
+ --md-pink-400: #ec407a;
+ --md-pink-500: #e91e63;
+ --md-pink-600: #d81b60;
+ --md-pink-700: #c2185b;
+ --md-pink-800: #ad1457;
+ --md-pink-900: #880e4f;
+ --md-pink-A100: #ff80ab;
+ --md-pink-A200: #ff4081;
+ --md-pink-A400: #f50057;
+ --md-pink-A700: #c51162;
+ --md-purple-50: #f3e5f5;
+ --md-purple-100: #e1bee7;
+ --md-purple-200: #ce93d8;
+ --md-purple-300: #ba68c8;
+ --md-purple-400: #ab47bc;
+ --md-purple-500: #9c27b0;
+ --md-purple-600: #8e24aa;
+ --md-purple-700: #7b1fa2;
+ --md-purple-800: #6a1b9a;
+ --md-purple-900: #4a148c;
+ --md-purple-A100: #ea80fc;
+ --md-purple-A200: #e040fb;
+ --md-purple-A400: #d500f9;
+ --md-purple-A700: #a0f;
+ --md-deep-purple-50: #ede7f6;
+ --md-deep-purple-100: #d1c4e9;
+ --md-deep-purple-200: #b39ddb;
+ --md-deep-purple-300: #9575cd;
+ --md-deep-purple-400: #7e57c2;
+ --md-deep-purple-500: #673ab7;
+ --md-deep-purple-600: #5e35b1;
+ --md-deep-purple-700: #512da8;
+ --md-deep-purple-800: #4527a0;
+ --md-deep-purple-900: #311b92;
+ --md-deep-purple-A100: #b388ff;
+ --md-deep-purple-A200: #7c4dff;
+ --md-deep-purple-A400: #651fff;
+ --md-deep-purple-A700: #6200ea;
+ --md-indigo-50: #e8eaf6;
+ --md-indigo-100: #c5cae9;
+ --md-indigo-200: #9fa8da;
+ --md-indigo-300: #7986cb;
+ --md-indigo-400: #5c6bc0;
+ --md-indigo-500: #3f51b5;
+ --md-indigo-600: #3949ab;
+ --md-indigo-700: #303f9f;
+ --md-indigo-800: #283593;
+ --md-indigo-900: #1a237e;
+ --md-indigo-A100: #8c9eff;
+ --md-indigo-A200: #536dfe;
+ --md-indigo-A400: #3d5afe;
+ --md-indigo-A700: #304ffe;
+ --md-blue-50: #e3f2fd;
+ --md-blue-100: #bbdefb;
+ --md-blue-200: #90caf9;
+ --md-blue-300: #64b5f6;
+ --md-blue-400: #42a5f5;
+ --md-blue-500: #2196f3;
+ --md-blue-600: #1e88e5;
+ --md-blue-700: #1976d2;
+ --md-blue-800: #1565c0;
+ --md-blue-900: #0d47a1;
+ --md-blue-A100: #82b1ff;
+ --md-blue-A200: #448aff;
+ --md-blue-A400: #2979ff;
+ --md-blue-A700: #2962ff;
+ --md-light-blue-50: #e1f5fe;
+ --md-light-blue-100: #b3e5fc;
+ --md-light-blue-200: #81d4fa;
+ --md-light-blue-300: #4fc3f7;
+ --md-light-blue-400: #29b6f6;
+ --md-light-blue-500: #03a9f4;
+ --md-light-blue-600: #039be5;
+ --md-light-blue-700: #0288d1;
+ --md-light-blue-800: #0277bd;
+ --md-light-blue-900: #01579b;
+ --md-light-blue-A100: #80d8ff;
+ --md-light-blue-A200: #40c4ff;
+ --md-light-blue-A400: #00b0ff;
+ --md-light-blue-A700: #0091ea;
+ --md-cyan-50: #e0f7fa;
+ --md-cyan-100: #b2ebf2;
+ --md-cyan-200: #80deea;
+ --md-cyan-300: #4dd0e1;
+ --md-cyan-400: #26c6da;
+ --md-cyan-500: #00bcd4;
+ --md-cyan-600: #00acc1;
+ --md-cyan-700: #0097a7;
+ --md-cyan-800: #00838f;
+ --md-cyan-900: #006064;
+ --md-cyan-A100: #84ffff;
+ --md-cyan-A200: #18ffff;
+ --md-cyan-A400: #00e5ff;
+ --md-cyan-A700: #00b8d4;
+ --md-teal-50: #e0f2f1;
+ --md-teal-100: #b2dfdb;
+ --md-teal-200: #80cbc4;
+ --md-teal-300: #4db6ac;
+ --md-teal-400: #26a69a;
+ --md-teal-500: #009688;
+ --md-teal-600: #00897b;
+ --md-teal-700: #00796b;
+ --md-teal-800: #00695c;
+ --md-teal-900: #004d40;
+ --md-teal-A100: #a7ffeb;
+ --md-teal-A200: #64ffda;
+ --md-teal-A400: #1de9b6;
+ --md-teal-A700: #00bfa5;
+ --md-green-50: #e8f5e9;
+ --md-green-100: #c8e6c9;
+ --md-green-200: #a5d6a7;
+ --md-green-300: #81c784;
+ --md-green-400: #66bb6a;
+ --md-green-500: #4caf50;
+ --md-green-600: #43a047;
+ --md-green-700: #388e3c;
+ --md-green-800: #2e7d32;
+ --md-green-900: #1b5e20;
+ --md-green-A100: #b9f6ca;
+ --md-green-A200: #69f0ae;
+ --md-green-A400: #00e676;
+ --md-green-A700: #00c853;
+ --md-light-green-50: #f1f8e9;
+ --md-light-green-100: #dcedc8;
+ --md-light-green-200: #c5e1a5;
+ --md-light-green-300: #aed581;
+ --md-light-green-400: #9ccc65;
+ --md-light-green-500: #8bc34a;
+ --md-light-green-600: #7cb342;
+ --md-light-green-700: #689f38;
+ --md-light-green-800: #558b2f;
+ --md-light-green-900: #33691e;
+ --md-light-green-A100: #ccff90;
+ --md-light-green-A200: #b2ff59;
+ --md-light-green-A400: #76ff03;
+ --md-light-green-A700: #64dd17;
+ --md-lime-50: #f9fbe7;
+ --md-lime-100: #f0f4c3;
+ --md-lime-200: #e6ee9c;
+ --md-lime-300: #dce775;
+ --md-lime-400: #d4e157;
+ --md-lime-500: #cddc39;
+ --md-lime-600: #c0ca33;
+ --md-lime-700: #afb42b;
+ --md-lime-800: #9e9d24;
+ --md-lime-900: #827717;
+ --md-lime-A100: #f4ff81;
+ --md-lime-A200: #eeff41;
+ --md-lime-A400: #c6ff00;
+ --md-lime-A700: #aeea00;
+ --md-yellow-50: #fffde7;
+ --md-yellow-100: #fff9c4;
+ --md-yellow-200: #fff59d;
+ --md-yellow-300: #fff176;
+ --md-yellow-400: #ffee58;
+ --md-yellow-500: #ffeb3b;
+ --md-yellow-600: #fdd835;
+ --md-yellow-700: #fbc02d;
+ --md-yellow-800: #f9a825;
+ --md-yellow-900: #f57f17;
+ --md-yellow-A100: #ffff8d;
+ --md-yellow-A200: #ff0;
+ --md-yellow-A400: #ffea00;
+ --md-yellow-A700: #ffd600;
+ --md-amber-50: #fff8e1;
+ --md-amber-100: #ffecb3;
+ --md-amber-200: #ffe082;
+ --md-amber-300: #ffd54f;
+ --md-amber-400: #ffca28;
+ --md-amber-500: #ffc107;
+ --md-amber-600: #ffb300;
+ --md-amber-700: #ffa000;
+ --md-amber-800: #ff8f00;
+ --md-amber-900: #ff6f00;
+ --md-amber-A100: #ffe57f;
+ --md-amber-A200: #ffd740;
+ --md-amber-A400: #ffc400;
+ --md-amber-A700: #ffab00;
+ --md-orange-50: #fff3e0;
+ --md-orange-100: #ffe0b2;
+ --md-orange-200: #ffcc80;
+ --md-orange-300: #ffb74d;
+ --md-orange-400: #ffa726;
+ --md-orange-500: #ff9800;
+ --md-orange-600: #fb8c00;
+ --md-orange-700: #f57c00;
+ --md-orange-800: #ef6c00;
+ --md-orange-900: #e65100;
+ --md-orange-A100: #ffd180;
+ --md-orange-A200: #ffab40;
+ --md-orange-A400: #ff9100;
+ --md-orange-A700: #ff6d00;
+ --md-deep-orange-50: #fbe9e7;
+ --md-deep-orange-100: #ffccbc;
+ --md-deep-orange-200: #ffab91;
+ --md-deep-orange-300: #ff8a65;
+ --md-deep-orange-400: #ff7043;
+ --md-deep-orange-500: #ff5722;
+ --md-deep-orange-600: #f4511e;
+ --md-deep-orange-700: #e64a19;
+ --md-deep-orange-800: #d84315;
+ --md-deep-orange-900: #bf360c;
+ --md-deep-orange-A100: #ff9e80;
+ --md-deep-orange-A200: #ff6e40;
+ --md-deep-orange-A400: #ff3d00;
+ --md-deep-orange-A700: #dd2c00;
+ --md-brown-50: #efebe9;
+ --md-brown-100: #d7ccc8;
+ --md-brown-200: #bcaaa4;
+ --md-brown-300: #a1887f;
+ --md-brown-400: #8d6e63;
+ --md-brown-500: #795548;
+ --md-brown-600: #6d4c41;
+ --md-brown-700: #5d4037;
+ --md-brown-800: #4e342e;
+ --md-brown-900: #3e2723;
+ --md-grey-50: #fafafa;
+ --md-grey-100: #f5f5f5;
+ --md-grey-200: #eee;
+ --md-grey-300: #e0e0e0;
+ --md-grey-400: #bdbdbd;
+ --md-grey-500: #9e9e9e;
+ --md-grey-600: #757575;
+ --md-grey-700: #616161;
+ --md-grey-800: #424242;
+ --md-grey-900: #212121;
+ --md-blue-grey-50: #eceff1;
+ --md-blue-grey-100: #cfd8dc;
+ --md-blue-grey-200: #b0bec5;
+ --md-blue-grey-300: #90a4ae;
+ --md-blue-grey-400: #78909c;
+ --md-blue-grey-500: #607d8b;
+ --md-blue-grey-600: #546e7a;
+ --md-blue-grey-700: #455a64;
+ --md-blue-grey-800: #37474f;
+ --md-blue-grey-900: #263238;
+}
diff --git a/.vitepress/theme/css/jupyterlab/notebook.base.css b/.vitepress/theme/css/jupyterlab/notebook.base.css
new file mode 100644
index 0000000..8a613cc
--- /dev/null
+++ b/.vitepress/theme/css/jupyterlab/notebook.base.css
@@ -0,0 +1,460 @@
+/* stylelint-disable no-descending-specificity */
+
+/* 源码地址:https://github.com/jupyterlab/jupyterlab/blob/master/packages/notebook/style/base.css */
+
+/* -----------------------------------------------------------------------------
+| Copyright (c) Jupyter Development Team.
+| Distributed under the terms of the Modified BSD License.
+|---------------------------------------------------------------------------- */
+
+/* -----------------------------------------------------------------------------
+| CSS variables
+|---------------------------------------------------------------------------- */
+
+:root {
+ --jp-side-by-side-output-size: 1fr;
+ --jp-side-by-side-resized-cell: var(--jp-side-by-side-output-size);
+ --jp-private-notebook-dragImage-width: 304px;
+ --jp-private-notebook-dragImage-height: 36px;
+ --jp-private-notebook-selected-color: var(--md-blue-400);
+ --jp-private-notebook-active-color: var(--md-green-400);
+}
+
+/* -----------------------------------------------------------------------------
+| Notebook
+|---------------------------------------------------------------------------- */
+
+.jp-NotebookPanel {
+ display: block;
+ height: 100%;
+}
+
+.jp-NotebookPanel.jp-Document {
+ min-width: 240px;
+ min-height: 120px;
+}
+
+.jp-Notebook {
+ padding: var(--jp-notebook-padding);
+ outline: none;
+ overflow: auto;
+ background: var(--jp-layout-color0);
+}
+
+.jp-Notebook.jp-mod-scrollPastEnd::after {
+ display: block;
+ content: '';
+ min-height: var(--jp-notebook-scroll-padding);
+}
+
+.jp-MainAreaWidget-ContainStrict .jp-Notebook * {
+ contain: strict;
+}
+
+.jp-Notebook-render * {
+ contain: none !important;
+}
+
+.jp-Notebook .jp-Cell {
+ overflow: visible;
+}
+
+.jp-Notebook .jp-Cell .jp-InputPrompt {
+ cursor: move;
+}
+
+/* -----------------------------------------------------------------------------
+| Notebook state related styling
+|
+| The notebook and cells each have states, here are the possibilities:
+|
+| - Notebook
+| - Command
+| - Edit
+| - Cell
+| - None
+| - Active (only one can be active)
+| - Selected (the cells actions are applied to)
+| - Multiselected (when multiple selected, the cursor)
+| - No outputs
+|---------------------------------------------------------------------------- */
+
+/* Command or edit modes */
+
+.jp-Notebook .jp-Cell:not(.jp-mod-active) .jp-InputPrompt {
+ opacity: var(--jp-cell-prompt-not-active-opacity);
+ color: var(--jp-cell-prompt-not-active-font-color);
+}
+
+.jp-Notebook .jp-Cell:not(.jp-mod-active) .jp-OutputPrompt {
+ opacity: var(--jp-cell-prompt-not-active-opacity);
+ color: var(--jp-cell-prompt-not-active-font-color);
+}
+
+/* cell is active */
+.jp-Notebook .jp-Cell.jp-mod-active .jp-Collapser {
+ background: var(--jp-brand-color1);
+}
+
+/* cell is dirty */
+.jp-Notebook .jp-Cell.jp-mod-dirty .jp-InputPrompt {
+ color: var(--jp-warn-color1);
+}
+
+.jp-Notebook .jp-Cell.jp-mod-dirty .jp-InputPrompt::before {
+ color: var(--jp-warn-color1);
+ content: '•';
+}
+
+.jp-Notebook .jp-Cell.jp-mod-active.jp-mod-dirty .jp-Collapser {
+ background: var(--jp-warn-color1);
+}
+
+/* collapser is hovered */
+.jp-Notebook .jp-Cell .jp-Collapser:hover {
+ box-shadow: var(--jp-elevation-z2);
+ background: var(--jp-brand-color1);
+ opacity: var(--jp-cell-collapser-not-active-hover-opacity);
+}
+
+/* cell is active and collapser is hovered */
+.jp-Notebook .jp-Cell.jp-mod-active .jp-Collapser:hover {
+ background: var(--jp-brand-color0);
+ opacity: 1;
+}
+
+/* Command mode */
+
+.jp-Notebook.jp-mod-commandMode .jp-Cell.jp-mod-selected {
+ background: var(--jp-notebook-multiselected-color);
+}
+
+.jp-Notebook.jp-mod-commandMode .jp-Cell.jp-mod-active.jp-mod-selected:not(.jp-mod-multiSelected) {
+ background: transparent;
+}
+
+/* Edit mode */
+
+.jp-Notebook.jp-mod-editMode .jp-Cell.jp-mod-active .jp-InputArea-editor {
+ border: var(--jp-border-width) solid var(--jp-cell-editor-active-border-color);
+ box-shadow: var(--jp-input-box-shadow);
+ background-color: var(--jp-cell-editor-active-background);
+}
+
+/* -----------------------------------------------------------------------------
+| Notebook drag and drop
+|---------------------------------------------------------------------------- */
+
+.jp-Notebook-cell.jp-mod-dropSource {
+ opacity: 0.5;
+}
+
+.jp-Notebook-cell.jp-mod-dropTarget,
+.jp-Notebook.jp-mod-commandMode .jp-Notebook-cell.jp-mod-active.jp-mod-selected.jp-mod-dropTarget {
+ border-top-color: var(--jp-private-notebook-selected-color);
+ border-top-style: solid;
+ border-top-width: 2px;
+}
+
+.jp-dragImage {
+ display: block;
+ flex-direction: row;
+ width: var(--jp-private-notebook-dragImage-width);
+ height: var(--jp-private-notebook-dragImage-height);
+ border: var(--jp-border-width) solid var(--jp-cell-editor-border-color);
+ background: var(--jp-cell-editor-background);
+ overflow: visible;
+}
+
+.jp-dragImage-singlePrompt {
+ box-shadow: 2px 2px 4px 0 rgba(0, 0, 0, 0.12);
+}
+
+.jp-dragImage .jp-dragImage-content {
+ flex: 1 1 auto;
+ z-index: 2;
+ font-size: var(--jp-code-font-size);
+ font-family: var(--jp-code-font-family);
+ line-height: var(--jp-code-line-height);
+ padding: var(--jp-code-padding);
+ border: var(--jp-border-width) solid var(--jp-cell-editor-border-color);
+ background: var(--jp-cell-editor-background-color);
+ color: var(--jp-content-font-color3);
+ text-align: left;
+ margin: 4px 4px 4px 0;
+}
+
+.jp-dragImage .jp-dragImage-prompt {
+ flex: 0 0 auto;
+ min-width: 36px;
+ color: var(--jp-cell-inprompt-font-color);
+ padding: var(--jp-code-padding);
+ padding-left: 12px;
+ font-family: var(--jp-cell-prompt-font-family);
+ letter-spacing: var(--jp-cell-prompt-letter-spacing);
+ line-height: 1.9;
+ font-size: var(--jp-code-font-size);
+ border: var(--jp-border-width) solid transparent;
+}
+
+.jp-dragImage-multipleBack {
+ z-index: -1;
+ position: absolute;
+ height: 32px;
+ width: 300px;
+ top: 8px;
+ left: 8px;
+ background: var(--jp-layout-color2);
+ border: var(--jp-border-width) solid var(--jp-input-border-color);
+ box-shadow: 2px 2px 4px 0 rgba(0, 0, 0, 0.12);
+}
+
+/* -----------------------------------------------------------------------------
+| Cell toolbar
+|---------------------------------------------------------------------------- */
+
+.jp-NotebookTools {
+ display: block;
+ min-width: var(--jp-sidebar-min-width);
+ color: var(--jp-ui-font-color1);
+ background: var(--jp-layout-color1);
+
+ /* This is needed so that all font sizing of children done in ems is
+ * relative to this base size */
+ font-size: var(--jp-ui-font-size1);
+ overflow: auto;
+}
+
+.jp-NotebookTools-tool {
+ padding: 0 12px;
+}
+
+.jp-ActiveCellTool {
+ padding: 12px;
+ display: flex;
+}
+
+.jp-ActiveCell-Content {
+ flex: 1 1 auto;
+}
+
+.jp-ActiveCellTool .jp-Cell-Content {
+ background: var(--jp-cell-editor-background);
+ border: var(--jp-border-width) solid var(--jp-cell-editor-border-color);
+ border-radius: 0;
+ min-height: 29px;
+}
+
+.jp-ActiveCellTool .jp-InputPrompt {
+ min-width: calc(var(--jp-cell-prompt-width) * 0.75);
+}
+
+.jp-Cell-Content > pre {
+ padding: 5px 4px;
+ margin: 0;
+ white-space: normal;
+}
+
+.jp-MetadataEditorTool {
+ flex-direction: column;
+ padding: 12px 0;
+}
+
+.jp-RankedPanel > :not(:first-child) {
+ margin-top: 12px;
+}
+
+.jp-KeySelector select.jp-mod-styled {
+ font-size: var(--jp-ui-font-size1);
+ color: var(--jp-ui-font-color0);
+ border: var(--jp-border-width) solid var(--jp-border-color1);
+}
+
+.jp-KeySelector label,
+.jp-MetadataEditorTool label,
+.jp-NumberSetter label {
+ line-height: 1.4;
+}
+
+.jp-NotebookTools .jp-select-wrapper {
+ margin-top: 4px;
+ margin-bottom: 0;
+}
+
+.jp-NumberSetter input {
+ width: 100%;
+ margin-top: 4px;
+}
+
+.jp-NotebookTools .jp-Collapse {
+ margin-top: 16px;
+}
+
+/* -----------------------------------------------------------------------------
+| Presentation Mode (.jp-mod-presentationMode)
+|---------------------------------------------------------------------------- */
+
+.jp-mod-presentationMode .jp-Notebook {
+ --jp-content-font-size1: var(--jp-content-presentation-font-size1);
+ --jp-code-font-size: var(--jp-code-presentation-font-size);
+}
+
+.jp-mod-presentationMode .jp-Notebook .jp-Cell .jp-InputPrompt,
+.jp-mod-presentationMode .jp-Notebook .jp-Cell .jp-OutputPrompt {
+ flex: 0 0 110px;
+}
+
+/* -----------------------------------------------------------------------------
+| Side-by-side Mode (.jp-mod-sideBySide)
+|---------------------------------------------------------------------------- */
+.jp-mod-sideBySide.jp-Notebook .jp-Notebook-cell {
+ margin-top: 3em;
+ margin-bottom: 3em;
+ margin-left: 5%;
+ margin-right: 5%;
+}
+
+.jp-mod-sideBySide.jp-Notebook .jp-CodeCell {
+ display: grid;
+ grid-template-columns:
+ minmax(0, 1fr) min-content minmax(
+ 0,
+ var(--jp-side-by-side-output-size)
+ );
+ grid-template-rows: auto minmax(0, 1fr) auto;
+ grid-template-areas:
+ 'header header header'
+ 'input handle output'
+ 'footer footer footer';
+}
+
+.jp-mod-sideBySide.jp-Notebook .jp-CodeCell.jp-mod-resizedCell {
+ grid-template-columns:
+ minmax(0, 1fr) min-content minmax(
+ 0,
+ var(--jp-side-by-side-resized-cell)
+ );
+}
+
+.jp-mod-sideBySide.jp-Notebook .jp-CodeCell .jp-CellHeader {
+ grid-area: header;
+}
+
+.jp-mod-sideBySide.jp-Notebook .jp-CodeCell .jp-Cell-inputWrapper {
+ grid-area: input;
+}
+
+.jp-mod-sideBySide.jp-Notebook .jp-CodeCell .jp-Cell-outputWrapper {
+ /* overwrite the default margin (no vertical separation needed in side by side move */
+ margin-top: 0;
+ grid-area: output;
+}
+
+.jp-mod-sideBySide.jp-Notebook .jp-CodeCell .jp-CellFooter {
+ grid-area: footer;
+}
+
+.jp-mod-sideBySide.jp-Notebook .jp-CodeCell .jp-CellResizeHandle {
+ grid-area: handle;
+ user-select: none;
+ display: block;
+ height: 100%;
+ cursor: ew-resize;
+ padding: 0 var(--jp-cell-padding);
+}
+
+.jp-mod-sideBySide.jp-Notebook .jp-CodeCell .jp-CellResizeHandle::after {
+ content: '';
+ display: block;
+ background: var(--jp-border-color2);
+ height: 100%;
+ width: 5px;
+}
+
+.jp-mod-sideBySide.jp-Notebook .jp-CodeCell.jp-mod-resizedCell .jp-CellResizeHandle::after {
+ background: var(--jp-border-color0);
+}
+
+.jp-CellResizeHandle {
+ display: none;
+}
+
+/* -----------------------------------------------------------------------------
+| Placeholder
+|---------------------------------------------------------------------------- */
+
+.jp-Cell-Placeholder {
+ padding-left: 55px;
+}
+
+.jp-Cell-Placeholder-wrapper {
+ background: #fff;
+ border: 1px solid;
+ border-color: #e5e6e9 #dfe0e4 #d0d1d5;
+ border-radius: 4px;
+ -webkit-border-radius: 4px;
+ margin: 10px 15px;
+}
+
+.jp-Cell-Placeholder-wrapper-inner {
+ padding: 15px;
+ position: relative;
+}
+
+.jp-Cell-Placeholder-wrapper-body {
+ background-repeat: repeat;
+ background-size: 50% auto;
+}
+
+.jp-Cell-Placeholder-wrapper-body div {
+ background: #f6f7f8;
+ background-image:
+ -webkit-linear-gradient(
+ left,
+ #f6f7f8 0%,
+ #edeef1 20%,
+ #f6f7f8 40%,
+ #f6f7f8 100%
+ );
+ background-repeat: no-repeat;
+ background-size: 800px 104px;
+ height: 104px;
+ position: absolute;
+ right: 15px;
+ left: 15px;
+ top: 15px;
+}
+
+div.jp-Cell-Placeholder-h1 {
+ top: 20px;
+ height: 20px;
+ left: 15px;
+ width: 150px;
+}
+
+div.jp-Cell-Placeholder-h2 {
+ left: 15px;
+ top: 50px;
+ height: 10px;
+ width: 100px;
+}
+
+div.jp-Cell-Placeholder-content-1,
+div.jp-Cell-Placeholder-content-2,
+div.jp-Cell-Placeholder-content-3 {
+ left: 15px;
+ right: 15px;
+ height: 10px;
+}
+
+div.jp-Cell-Placeholder-content-1 {
+ top: 100px;
+}
+
+div.jp-Cell-Placeholder-content-2 {
+ top: 120px;
+}
+
+div.jp-Cell-Placeholder-content-3 {
+ top: 140px;
+}
diff --git a/.vitepress/theme/css/jupyterlab/output.area.base.css b/.vitepress/theme/css/jupyterlab/output.area.base.css
new file mode 100644
index 0000000..1c9a2b2
--- /dev/null
+++ b/.vitepress/theme/css/jupyterlab/output.area.base.css
@@ -0,0 +1,276 @@
+/* stylelint-disable no-descending-specificity */
+
+/* 源码地址:https://github.com/jupyterlab/jupyterlab/blob/master/packages/outputarea/style/base.css */
+
+/* -----------------------------------------------------------------------------
+| Copyright (c) Jupyter Development Team.
+| Distributed under the terms of the Modified BSD License.
+|---------------------------------------------------------------------------- */
+
+/* -----------------------------------------------------------------------------
+| Main OutputArea
+| OutputArea has a list of Outputs
+|---------------------------------------------------------------------------- */
+
+.jp-OutputArea {
+ overflow-y: auto;
+}
+
+.jp-OutputArea-child {
+ display: table;
+ table-layout: fixed;
+ width: 100%;
+ overflow: hidden;
+}
+
+.jp-OutputPrompt {
+ width: var(--jp-cell-prompt-width);
+ color: var(--jp-cell-outprompt-font-color);
+ font-family: var(--jp-cell-prompt-font-family);
+ padding: var(--jp-code-padding);
+ letter-spacing: var(--jp-cell-prompt-letter-spacing);
+ line-height: var(--jp-code-line-height);
+ font-size: var(--jp-code-font-size);
+ border: var(--jp-border-width) solid transparent;
+ opacity: var(--jp-cell-prompt-opacity);
+
+ /* Right align prompt text, don't wrap to handle large prompt numbers */
+ text-align: right;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+
+ /* Disable text selection */
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.jp-OutputArea-prompt {
+ display: table-cell;
+ vertical-align: top;
+}
+
+.jp-OutputArea-output {
+ display: table-cell;
+ width: 100%;
+ height: auto;
+ overflow: auto;
+ user-select: text;
+ -moz-user-select: text;
+ -webkit-user-select: text;
+ -ms-user-select: text;
+}
+
+/**
+ * Isolated output.
+ */
+.jp-OutputArea-output.jp-mod-isolated {
+ width: 100%;
+ display: block;
+}
+
+/*
+When drag events occur, `lm-mod-override-cursor` is added to the body.
+Because iframes steal all cursor events, the following two rules are necessary
+to suppress pointer events while resize drags are occurring. There may be a
+better solution to this problem.
+*/
+body.lm-mod-override-cursor .jp-OutputArea-output.jp-mod-isolated {
+ position: relative;
+}
+
+body.lm-mod-override-cursor .jp-OutputArea-output.jp-mod-isolated::before {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background: transparent;
+}
+
+/* pre */
+
+.jp-OutputArea-output pre {
+ border: none;
+ margin: 0;
+ padding: 0;
+ overflow-x: auto;
+ overflow-y: auto;
+ word-break: break-all;
+ word-wrap: break-word;
+ white-space: pre-wrap;
+}
+
+/* tables */
+
+.jp-OutputArea-output.jp-RenderedHTMLCommon table {
+ margin-left: 0;
+ margin-right: 0;
+}
+
+/* description lists */
+
+.jp-OutputArea-output dl,
+.jp-OutputArea-output dt,
+.jp-OutputArea-output dd {
+ display: block;
+}
+
+.jp-OutputArea-output dl {
+ width: 100%;
+ overflow: hidden;
+ padding: 0;
+ margin: 0;
+}
+
+.jp-OutputArea-output dt {
+ font-weight: bold;
+ float: left;
+ width: 20%;
+ padding: 0;
+ margin: 0;
+}
+
+.jp-OutputArea-output dd {
+ float: left;
+ width: 80%;
+ padding: 0;
+ margin: 0;
+}
+
+.jp-TrimmedOutputs pre {
+ background: var(--jp-layout-color3);
+ font-size: calc(var(--jp-code-font-size) * 1.4);
+ text-align: center;
+ text-transform: uppercase;
+}
+
+/* Hide the gutter in case of
+ * - nested output areas (e.g. in the case of output widgets)
+ * - mirrored output areas
+ */
+.jp-OutputArea .jp-OutputArea .jp-OutputArea-prompt {
+ display: none;
+}
+
+/* Hide empty lines in the output area, for instance due to cleared widgets */
+.jp-OutputArea-prompt:empty {
+ padding: 0;
+ border: 0;
+}
+
+/* -----------------------------------------------------------------------------
+| executeResult is added to any Output-result for the display of the object
+| returned by a cell
+|---------------------------------------------------------------------------- */
+
+.jp-OutputArea-output.jp-OutputArea-executeResult {
+ margin-left: 0;
+ width: 100%;
+}
+
+/* Text output with the Out[] prompt needs a top padding to match the
+ * alignment of the Out[] prompt itself.
+ */
+.jp-OutputArea-executeResult .jp-RenderedText.jp-OutputArea-output {
+ padding-top: var(--jp-code-padding);
+ border-top: var(--jp-border-width) solid transparent;
+}
+
+/* -----------------------------------------------------------------------------
+| The Stdin output
+|---------------------------------------------------------------------------- */
+
+.jp-OutputArea-stdin {
+ line-height: var(--jp-code-line-height);
+ padding-top: var(--jp-code-padding);
+ display: flex;
+}
+
+.jp-Stdin-prompt {
+ color: var(--jp-content-font-color0);
+ padding-right: var(--jp-code-padding);
+ vertical-align: baseline;
+ flex: 0 0 auto;
+}
+
+.jp-Stdin-input {
+ font-family: var(--jp-code-font-family);
+ font-size: inherit;
+ color: inherit;
+ background-color: inherit;
+ width: 42%;
+ min-width: 200px;
+
+ /* make sure input baseline aligns with prompt */
+ vertical-align: baseline;
+
+ /* padding + margin = 0.5em between prompt and cursor */
+ padding: 0 0.25em;
+ margin: 0 0.25em;
+ flex: 0 0 70%;
+}
+
+.jp-Stdin-input::placeholder {
+ opacity: 0;
+}
+
+.jp-Stdin-input:focus {
+ box-shadow: none;
+}
+
+.jp-Stdin-input:focus::placeholder {
+ opacity: 1;
+}
+
+/* -----------------------------------------------------------------------------
+| Output Area View
+|---------------------------------------------------------------------------- */
+
+.jp-LinkedOutputView .jp-OutputArea {
+ height: 100%;
+ display: block;
+}
+
+.jp-LinkedOutputView .jp-OutputArea-output:only-child {
+ height: 100%;
+}
+
+/* -----------------------------------------------------------------------------
+| Printing
+|---------------------------------------------------------------------------- */
+
+@media print {
+ .jp-OutputArea-child {
+ break-inside: avoid-page;
+ }
+}
+
+/* -----------------------------------------------------------------------------
+| Mobile
+|---------------------------------------------------------------------------- */
+@media only screen and (max-width: 760px) {
+ .jp-OutputPrompt {
+ display: table-row;
+ text-align: left;
+ }
+
+ .jp-OutputArea-child .jp-OutputArea-output {
+ display: table-row;
+ margin-left: var(--jp-notebook-padding);
+ }
+}
+
+/* Trimmed outputs warning */
+.jp-TrimmedOutputs > a {
+ margin: 10px;
+ text-decoration: none;
+ cursor: pointer;
+}
+
+.jp-TrimmedOutputs > a:hover {
+ text-decoration: none;
+}
diff --git a/.vitepress/theme/css/jupyterlab/rendermine.base.css b/.vitepress/theme/css/jupyterlab/rendermine.base.css
new file mode 100644
index 0000000..84e695d
--- /dev/null
+++ b/.vitepress/theme/css/jupyterlab/rendermine.base.css
@@ -0,0 +1,634 @@
+/* stylelint-disable no-descending-specificity */
+
+/* 源码地址:https://github.com/jupyterlab/jupyterlab/blob/master/packages/rendermime/style/base.css */
+
+/* -----------------------------------------------------------------------------
+| Copyright (c) Jupyter Development Team.
+| Distributed under the terms of the Modified BSD License.
+|---------------------------------------------------------------------------- */
+
+/* -----------------------------------------------------------------------------
+| RenderedText
+|---------------------------------------------------------------------------- */
+
+:root {
+ /* This is the padding value to fill the gaps between lines containing spans with background color. */
+ --jp-private-code-span-padding:
+ calc(
+ (var(--jp-code-line-height) - 1) * var(--jp-code-font-size) / 2
+ );
+}
+
+.jp-RenderedText {
+ text-align: left;
+ padding-left: var(--jp-code-padding);
+ line-height: var(--jp-code-line-height);
+ font-family: var(--jp-code-font-family);
+}
+
+.jp-RenderedText pre,
+.jp-RenderedJavaScript pre,
+.jp-RenderedHTMLCommon pre {
+ color: var(--jp-content-font-color1);
+ font-size: var(--jp-code-font-size);
+ border: none;
+ margin: 0;
+ padding: 0;
+}
+
+.jp-RenderedText pre a:link {
+ text-decoration: none;
+ color: var(--jp-content-link-color);
+}
+
+.jp-RenderedText pre a:hover {
+ text-decoration: underline;
+ color: var(--jp-content-link-color);
+}
+
+.jp-RenderedText pre a:visited {
+ text-decoration: none;
+ color: var(--jp-content-link-color);
+}
+
+/* console foregrounds and backgrounds */
+.jp-RenderedText pre .ansi-black-fg {
+ color: #3e424d;
+}
+
+.jp-RenderedText pre .ansi-red-fg {
+ color: #e75c58;
+}
+
+.jp-RenderedText pre .ansi-green-fg {
+ color: #00a250;
+}
+
+.jp-RenderedText pre .ansi-yellow-fg {
+ color: #ddb62b;
+}
+
+.jp-RenderedText pre .ansi-blue-fg {
+ color: #208ffb;
+}
+
+.jp-RenderedText pre .ansi-magenta-fg {
+ color: #d160c4;
+}
+
+.jp-RenderedText pre .ansi-cyan-fg {
+ color: #60c6c8;
+}
+
+.jp-RenderedText pre .ansi-white-fg {
+ color: #c5c1b4;
+}
+
+.jp-RenderedText pre .ansi-black-bg {
+ background-color: #3e424d;
+ padding: var(--jp-private-code-span-padding) 0;
+}
+
+.jp-RenderedText pre .ansi-red-bg {
+ background-color: #e75c58;
+ padding: var(--jp-private-code-span-padding) 0;
+}
+
+.jp-RenderedText pre .ansi-green-bg {
+ background-color: #00a250;
+ padding: var(--jp-private-code-span-padding) 0;
+}
+
+.jp-RenderedText pre .ansi-yellow-bg {
+ background-color: #ddb62b;
+ padding: var(--jp-private-code-span-padding) 0;
+}
+
+.jp-RenderedText pre .ansi-blue-bg {
+ background-color: #208ffb;
+ padding: var(--jp-private-code-span-padding) 0;
+}
+
+.jp-RenderedText pre .ansi-magenta-bg {
+ background-color: #d160c4;
+ padding: var(--jp-private-code-span-padding) 0;
+}
+
+.jp-RenderedText pre .ansi-cyan-bg {
+ background-color: #60c6c8;
+ padding: var(--jp-private-code-span-padding) 0;
+}
+
+.jp-RenderedText pre .ansi-white-bg {
+ background-color: #c5c1b4;
+ padding: var(--jp-private-code-span-padding) 0;
+}
+
+.jp-RenderedText pre .ansi-black-intense-fg {
+ color: #282c36;
+}
+
+.jp-RenderedText pre .ansi-red-intense-fg {
+ color: #b22b31;
+}
+
+.jp-RenderedText pre .ansi-green-intense-fg {
+ color: #007427;
+}
+
+.jp-RenderedText pre .ansi-yellow-intense-fg {
+ color: #b27d12;
+}
+
+.jp-RenderedText pre .ansi-blue-intense-fg {
+ color: #0065ca;
+}
+
+.jp-RenderedText pre .ansi-magenta-intense-fg {
+ color: #a03196;
+}
+
+.jp-RenderedText pre .ansi-cyan-intense-fg {
+ color: #258f8f;
+}
+
+.jp-RenderedText pre .ansi-white-intense-fg {
+ color: #a1a6b2;
+}
+
+.jp-RenderedText pre .ansi-black-intense-bg {
+ background-color: #282c36;
+ padding: var(--jp-private-code-span-padding) 0;
+}
+
+.jp-RenderedText pre .ansi-red-intense-bg {
+ background-color: #b22b31;
+ padding: var(--jp-private-code-span-padding) 0;
+}
+
+.jp-RenderedText pre .ansi-green-intense-bg {
+ background-color: #007427;
+ padding: var(--jp-private-code-span-padding) 0;
+}
+
+.jp-RenderedText pre .ansi-yellow-intense-bg {
+ background-color: #b27d12;
+ padding: var(--jp-private-code-span-padding) 0;
+}
+
+.jp-RenderedText pre .ansi-blue-intense-bg {
+ background-color: #0065ca;
+ padding: var(--jp-private-code-span-padding) 0;
+}
+
+.jp-RenderedText pre .ansi-magenta-intense-bg {
+ background-color: #a03196;
+ padding: var(--jp-private-code-span-padding) 0;
+}
+
+.jp-RenderedText pre .ansi-cyan-intense-bg {
+ background-color: #258f8f;
+ padding: var(--jp-private-code-span-padding) 0;
+}
+
+.jp-RenderedText pre .ansi-white-intense-bg {
+ background-color: #a1a6b2;
+ padding: var(--jp-private-code-span-padding) 0;
+}
+
+.jp-RenderedText pre .ansi-default-inverse-fg {
+ color: var(--jp-ui-inverse-font-color0);
+}
+
+.jp-RenderedText pre .ansi-default-inverse-bg {
+ background-color: var(--jp-inverse-layout-color0);
+ padding: var(--jp-private-code-span-padding) 0;
+}
+
+.jp-RenderedText pre .ansi-bold {
+ font-weight: bold;
+}
+
+.jp-RenderedText pre .ansi-underline {
+ text-decoration: underline;
+}
+
+.jp-RenderedText[data-mime-type='application/vnd.jupyter.stderr'] {
+ background: var(--jp-rendermime-error-background);
+ padding-top: var(--jp-code-padding);
+}
+
+/* -----------------------------------------------------------------------------
+| RenderedLatex
+|---------------------------------------------------------------------------- */
+
+.jp-RenderedLatex {
+ color: var(--jp-content-font-color1);
+ font-size: var(--jp-content-font-size1);
+ line-height: var(--jp-content-line-height);
+}
+
+/* Left-justify outputs. */
+.jp-OutputArea-output.jp-RenderedLatex {
+ padding: var(--jp-code-padding);
+ text-align: left;
+}
+
+/* -----------------------------------------------------------------------------
+| RenderedHTML
+|---------------------------------------------------------------------------- */
+
+.jp-RenderedHTMLCommon {
+ color: var(--jp-content-font-color1);
+ font-family: var(--jp-content-font-family);
+ font-size: var(--jp-content-font-size1);
+ line-height: var(--jp-content-line-height);
+
+ /* Give a bit more R padding on Markdown text to keep line lengths reasonable */
+ padding-right: 20px;
+}
+
+.jp-RenderedHTMLCommon em {
+ font-style: italic;
+}
+
+.jp-RenderedHTMLCommon strong {
+ font-weight: bold;
+}
+
+.jp-RenderedHTMLCommon u {
+ text-decoration: underline;
+}
+
+.jp-RenderedHTMLCommon a:link {
+ text-decoration: none;
+ color: var(--jp-content-link-color);
+}
+
+.jp-RenderedHTMLCommon a:hover {
+ text-decoration: underline;
+ color: var(--jp-content-link-color);
+}
+
+.jp-RenderedHTMLCommon a:visited {
+ text-decoration: none;
+ color: var(--jp-content-link-color);
+}
+
+/* Headings */
+
+.jp-RenderedHTMLCommon h1,
+.jp-RenderedHTMLCommon h2,
+.jp-RenderedHTMLCommon h3,
+.jp-RenderedHTMLCommon h4,
+.jp-RenderedHTMLCommon h5,
+.jp-RenderedHTMLCommon h6 {
+ line-height: var(--jp-content-heading-line-height);
+ font-weight: var(--jp-content-heading-font-weight);
+ font-style: normal;
+ margin:
+ var(--jp-content-heading-margin-top) 0
+ var(--jp-content-heading-margin-bottom) 0;
+}
+
+.jp-RenderedHTMLCommon h1:first-child,
+.jp-RenderedHTMLCommon h2:first-child,
+.jp-RenderedHTMLCommon h3:first-child,
+.jp-RenderedHTMLCommon h4:first-child,
+.jp-RenderedHTMLCommon h5:first-child,
+.jp-RenderedHTMLCommon h6:first-child {
+ margin-top: calc(0.5 * var(--jp-content-heading-margin-top));
+}
+
+.jp-RenderedHTMLCommon h1:last-child,
+.jp-RenderedHTMLCommon h2:last-child,
+.jp-RenderedHTMLCommon h3:last-child,
+.jp-RenderedHTMLCommon h4:last-child,
+.jp-RenderedHTMLCommon h5:last-child,
+.jp-RenderedHTMLCommon h6:last-child {
+ margin-bottom: calc(0.5 * var(--jp-content-heading-margin-bottom));
+}
+
+.jp-RenderedHTMLCommon h1 {
+ font-size: var(--jp-content-font-size5);
+}
+
+.jp-RenderedHTMLCommon h2 {
+ font-size: var(--jp-content-font-size4);
+}
+
+.jp-RenderedHTMLCommon h3 {
+ font-size: var(--jp-content-font-size3);
+}
+
+.jp-RenderedHTMLCommon h4 {
+ font-size: var(--jp-content-font-size2);
+}
+
+.jp-RenderedHTMLCommon h5 {
+ font-size: var(--jp-content-font-size1);
+}
+
+.jp-RenderedHTMLCommon h6 {
+ font-size: var(--jp-content-font-size0);
+}
+
+/* Lists */
+
+.jp-RenderedHTMLCommon ul:not(.list-inline),
+.jp-RenderedHTMLCommon ol:not(.list-inline) {
+ padding-left: 2em;
+}
+
+.jp-RenderedHTMLCommon ul {
+ list-style: disc;
+}
+
+.jp-RenderedHTMLCommon ul ul {
+ list-style: square;
+}
+
+.jp-RenderedHTMLCommon ul ul ul {
+ list-style: circle;
+}
+
+.jp-RenderedHTMLCommon ol {
+ list-style: decimal;
+}
+
+.jp-RenderedHTMLCommon ol ol {
+ list-style: upper-alpha;
+}
+
+.jp-RenderedHTMLCommon ol ol ol {
+ list-style: lower-alpha;
+}
+
+.jp-RenderedHTMLCommon ol ol ol ol {
+ list-style: lower-roman;
+}
+
+.jp-RenderedHTMLCommon ol ol ol ol ol {
+ list-style: decimal;
+}
+
+.jp-RenderedHTMLCommon ol,
+.jp-RenderedHTMLCommon ul {
+ margin-bottom: 1em;
+}
+
+.jp-RenderedHTMLCommon ul ul,
+.jp-RenderedHTMLCommon ul ol,
+.jp-RenderedHTMLCommon ol ul,
+.jp-RenderedHTMLCommon ol ol {
+ margin-bottom: 0;
+}
+
+.jp-RenderedHTMLCommon hr {
+ color: var(--jp-border-color2);
+ background-color: var(--jp-border-color1);
+ margin-top: 1em;
+ margin-bottom: 1em;
+}
+
+.jp-RenderedHTMLCommon > pre {
+ margin: 1.5em 2em;
+}
+
+.jp-RenderedHTMLCommon pre,
+.jp-RenderedHTMLCommon code {
+ border: 0;
+ background-color: var(--jp-layout-color0);
+ color: var(--jp-content-font-color1);
+ font-family: var(--jp-code-font-family);
+ font-size: inherit;
+ line-height: var(--jp-code-line-height);
+ padding: 0;
+ white-space: pre-wrap;
+}
+
+.jp-RenderedHTMLCommon :not(pre) > code {
+ background-color: var(--jp-layout-color2);
+ padding: 1px 5px;
+}
+
+/* Tables */
+
+.jp-RenderedHTMLCommon table {
+ border-collapse: collapse;
+ border-spacing: 0;
+ border: none;
+ color: var(--jp-ui-font-color1);
+ font-size: var(--jp-ui-font-size1);
+ table-layout: fixed;
+ margin-left: auto;
+ margin-bottom: 1em;
+ margin-right: auto;
+}
+
+.jp-RenderedHTMLCommon thead {
+ border-bottom: var(--jp-border-width) solid var(--jp-border-color1);
+ vertical-align: bottom;
+}
+
+.jp-RenderedHTMLCommon td,
+.jp-RenderedHTMLCommon th,
+.jp-RenderedHTMLCommon tr {
+ vertical-align: middle;
+ padding: 0.5em;
+ line-height: normal;
+ white-space: normal;
+ max-width: none;
+ border: none;
+}
+
+.jp-RenderedMarkdown.jp-RenderedHTMLCommon td,
+.jp-RenderedMarkdown.jp-RenderedHTMLCommon th {
+ max-width: none;
+}
+
+:not(.jp-RenderedMarkdown).jp-RenderedHTMLCommon td,
+:not(.jp-RenderedMarkdown).jp-RenderedHTMLCommon th,
+:not(.jp-RenderedMarkdown).jp-RenderedHTMLCommon tr {
+ text-align: right;
+}
+
+.jp-RenderedHTMLCommon th {
+ font-weight: bold;
+}
+
+.jp-RenderedHTMLCommon tbody tr:nth-child(odd) {
+ background: var(--jp-layout-color0) !important;
+}
+
+.jp-RenderedHTMLCommon tbody tr:nth-child(even) {
+ background: var(--jp-rendermime-table-row-background) !important;
+}
+
+.jp-RenderedHTMLCommon tbody tr:hover {
+ background: var(--jp-rendermime-table-row-hover-background) !important;
+}
+
+.jp-RenderedHTMLCommon p {
+ text-align: left;
+ margin: 0;
+ margin-bottom: 1em;
+}
+
+.jp-RenderedHTMLCommon img {
+ -moz-force-broken-image-icon: 1;
+}
+
+/* Restrict to direct children as other images could be nested in other content. */
+.jp-RenderedHTMLCommon > img {
+ display: block;
+ margin-left: 0;
+ margin-right: 0;
+ margin-bottom: 1em;
+}
+
+/* Change color behind transparent images if they need it... */
+[data-jp-theme-light='false'] .jp-RenderedImage img.jp-needs-light-background {
+ background-color: var(--jp-inverse-layout-color1);
+}
+
+[data-jp-theme-light='true'] .jp-RenderedImage img.jp-needs-dark-background {
+ background-color: var(--jp-inverse-layout-color1);
+}
+
+.jp-RenderedHTMLCommon img,
+.jp-RenderedImage img,
+.jp-RenderedHTMLCommon svg,
+.jp-RenderedSVG svg {
+ max-width: 100%;
+ height: auto;
+}
+
+.jp-RenderedHTMLCommon img.jp-mod-unconfined,
+.jp-RenderedImage img.jp-mod-unconfined,
+.jp-RenderedHTMLCommon svg.jp-mod-unconfined,
+.jp-RenderedSVG svg.jp-mod-unconfined {
+ max-width: none;
+}
+
+.jp-RenderedHTMLCommon .alert {
+ padding: var(--jp-notebook-padding);
+ border: var(--jp-border-width) solid transparent;
+ border-radius: var(--jp-border-radius);
+ margin-bottom: 1em;
+}
+
+.jp-RenderedHTMLCommon .alert-info {
+ color: var(--jp-info-color0);
+ background-color: var(--jp-info-color3);
+ border-color: var(--jp-info-color2);
+}
+
+.jp-RenderedHTMLCommon .alert-info hr {
+ border-color: var(--jp-info-color3);
+}
+
+.jp-RenderedHTMLCommon .alert-info > p:last-child,
+.jp-RenderedHTMLCommon .alert-info > ul:last-child {
+ margin-bottom: 0;
+}
+
+.jp-RenderedHTMLCommon .alert-warning {
+ color: var(--jp-warn-color0);
+ background-color: var(--jp-warn-color3);
+ border-color: var(--jp-warn-color2);
+}
+
+.jp-RenderedHTMLCommon .alert-warning hr {
+ border-color: var(--jp-warn-color3);
+}
+
+.jp-RenderedHTMLCommon .alert-warning > p:last-child,
+.jp-RenderedHTMLCommon .alert-warning > ul:last-child {
+ margin-bottom: 0;
+}
+
+.jp-RenderedHTMLCommon .alert-success {
+ color: var(--jp-success-color0);
+ background-color: var(--jp-success-color3);
+ border-color: var(--jp-success-color2);
+}
+
+.jp-RenderedHTMLCommon .alert-success hr {
+ border-color: var(--jp-success-color3);
+}
+
+.jp-RenderedHTMLCommon .alert-success > p:last-child,
+.jp-RenderedHTMLCommon .alert-success > ul:last-child {
+ margin-bottom: 0;
+}
+
+.jp-RenderedHTMLCommon .alert-danger {
+ color: var(--jp-error-color0);
+ background-color: var(--jp-error-color3);
+ border-color: var(--jp-error-color2);
+}
+
+.jp-RenderedHTMLCommon .alert-danger hr {
+ border-color: var(--jp-error-color3);
+}
+
+.jp-RenderedHTMLCommon .alert-danger > p:last-child,
+.jp-RenderedHTMLCommon .alert-danger > ul:last-child {
+ margin-bottom: 0;
+}
+
+.jp-RenderedHTMLCommon blockquote {
+ margin: 1em 2em;
+ padding: 0 1em;
+ border-left: 5px solid var(--jp-border-color2);
+}
+
+a.jp-InternalAnchorLink {
+ visibility: hidden;
+ margin-left: 8px;
+ color: var(--md-blue-800);
+}
+
+h1:hover .jp-InternalAnchorLink,
+h2:hover .jp-InternalAnchorLink,
+h3:hover .jp-InternalAnchorLink,
+h4:hover .jp-InternalAnchorLink,
+h5:hover .jp-InternalAnchorLink,
+h6:hover .jp-InternalAnchorLink {
+ visibility: visible;
+}
+
+.jp-RenderedHTMLCommon kbd {
+ background-color: var(--jp-rendermime-table-row-background);
+ border: 1px solid var(--jp-border-color0);
+ border-bottom-color: var(--jp-border-color2);
+ border-radius: 3px;
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
+ display: inline-block;
+ font-size: var(--jp-ui-font-size0);
+ line-height: 1em;
+ padding: 0.2em 0.5em;
+}
+
+/* Most direct children of .jp-RenderedHTMLCommon have a margin-bottom of 1.0.
+ * At the bottom of cells this is a bit too much as there is also spacing
+ * between cells. Going all the way to 0 gets too tight between markdown and
+ * code cells.
+ */
+.jp-RenderedHTMLCommon > *:last-child {
+ margin-bottom: 0.5em;
+}
+
+.jp-mimeType-highlight {
+ background-color:
+ var(
+ --jp-search-unselected-match-background-color
+ ) !important;
+ color: var(--jp-search-unselected-match-color) !important;
+}
+
+.jp-mod-selected.jp-mimeType-highlight {
+ background-color: var(--jp-search-selected-match-background-color) !important;
+ color: var(--jp-search-selected-match-color) !important;
+}
diff --git a/.vitepress/theme/style.css b/.vitepress/theme/style.css
index f4c7de8..de2ebd3 100644
--- a/.vitepress/theme/style.css
+++ b/.vitepress/theme/style.css
@@ -151,3 +151,28 @@ mjx-container {
--vp-home-hero-image-background-image: transparent;
--vp-home-hero-image-filter: '';
}
+
+.jp-MarkdownOutput{
+ color: #3c3c43 !important;
+ font-weight: 400 !important;
+ font-size: 16px !important;
+}
+
+.dark .jp-MarkdownOutput{
+ color: #dfdfd7 !important;
+ font-family: 'Noto Sans SC', 'Noto Color Emoji', sans-serif !important;
+}
+
+.jp-InputArea-editor{
+ border-radius: 8px !important;
+}
+
+.cm-content{
+ font-family: 'Noto Sans Mono', sans-serif, monospace, consolas !important;
+ background-color: #f6f6f7 !important;
+}
+
+.dark .cm-content{
+ font-family: 'Noto Sans Mono', sans-serif, monospace, consolas !important;
+ /* background-color: #161618 !important; */
+}
\ No newline at end of file
diff --git a/components/RenderJupyterNotebook.vue b/components/RenderJupyterNotebook.vue
new file mode 100644
index 0000000..88b153c
--- /dev/null
+++ b/components/RenderJupyterNotebook.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
diff --git a/notebook.md b/notebook.md
new file mode 100644
index 0000000..da5edfc
--- /dev/null
+++ b/notebook.md
@@ -0,0 +1,18 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 7a257cc..a6a4220 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -4,6 +4,13 @@
"requires": true,
"packages": {
"": {
+ "dependencies": {
+ "@codemirror/lang-python": "^6.1.2",
+ "@codemirror/lang-sql": "^6.4.1",
+ "@jupyterlab/mathjax2": "^3.6.3",
+ "@jupyterlab/theme-light-extension": "^3.6.3",
+ "markdown-it": "^13.0.1"
+ },
"devDependencies": {
"markdown-it-mathjax3": "^4.3.2",
"vitepress": "^1.0.0-alpha.73"
@@ -178,6 +185,154 @@
"node": ">=6.0.0"
}
},
+ "node_modules/@babel/runtime": {
+ "version": "7.21.0",
+ "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.21.0.tgz",
+ "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==",
+ "dependencies": {
+ "regenerator-runtime": "^0.13.11"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@blueprintjs/colors": {
+ "version": "4.1.22",
+ "resolved": "https://registry.npmmirror.com/@blueprintjs/colors/-/colors-4.1.22.tgz",
+ "integrity": "sha512-qcC7nWW9TTSS7aDxE5gbo9vrxo+IOpC6/Kzpi0rdOBYFDd02PppCdnCCjGYw1/IopSsZ9EWqDLmD7zuy0H+WEA=="
+ },
+ "node_modules/@blueprintjs/core": {
+ "version": "3.54.0",
+ "resolved": "https://registry.npmmirror.com/@blueprintjs/core/-/core-3.54.0.tgz",
+ "integrity": "sha512-u2c1s6MNn0ocxhnC6CuiG5g3KV6b4cKUvSobznepA9SC3/AL1s3XOvT7DLWoHRv2B/vBOHFYEDzLw2/vlcGGZg==",
+ "dependencies": {
+ "@blueprintjs/colors": "^4.0.0-alpha.3",
+ "@blueprintjs/icons": "^3.33.0",
+ "@juggle/resize-observer": "^3.3.1",
+ "@types/dom4": "^2.0.1",
+ "classnames": "^2.2",
+ "dom4": "^2.1.5",
+ "normalize.css": "^8.0.1",
+ "popper.js": "^1.16.1",
+ "react-lifecycles-compat": "^3.0.4",
+ "react-popper": "^1.3.7",
+ "react-transition-group": "^2.9.0",
+ "tslib": "~2.3.1"
+ },
+ "bin": {
+ "upgrade-blueprint-2.0.0-rename": "scripts/upgrade-blueprint-2.0.0-rename.sh",
+ "upgrade-blueprint-3.0.0-rename": "scripts/upgrade-blueprint-3.0.0-rename.sh"
+ },
+ "peerDependencies": {
+ "react": "^15.3.0 || 16 || 17",
+ "react-dom": "^15.3.0 || 16 || 17"
+ }
+ },
+ "node_modules/@blueprintjs/core/node_modules/tslib": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.1.tgz",
+ "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
+ },
+ "node_modules/@blueprintjs/icons": {
+ "version": "3.33.0",
+ "resolved": "https://registry.npmmirror.com/@blueprintjs/icons/-/icons-3.33.0.tgz",
+ "integrity": "sha512-Q6qoSDIm0kRYQZISm59UUcDCpV3oeHulkLuh3bSlw0HhcSjvEQh2PSYbtaifM60Q4aK4PCd6bwJHg7lvF1x5fQ==",
+ "dependencies": {
+ "classnames": "^2.2",
+ "tslib": "~2.3.1"
+ }
+ },
+ "node_modules/@blueprintjs/icons/node_modules/tslib": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.1.tgz",
+ "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
+ },
+ "node_modules/@blueprintjs/select": {
+ "version": "3.19.1",
+ "resolved": "https://registry.npmmirror.com/@blueprintjs/select/-/select-3.19.1.tgz",
+ "integrity": "sha512-8UJIZMaWXRMQHr14wbmzJc/CklcSKxOU5JUux0xXKQz/hDW/g1a650tlwJmnxufvRdShbGinlVfHupCs0EL6sw==",
+ "dependencies": {
+ "@blueprintjs/core": "^3.54.0",
+ "classnames": "^2.2",
+ "tslib": "~2.3.1"
+ },
+ "peerDependencies": {
+ "react": "^15.3.0 || 16 || 17",
+ "react-dom": "^15.3.0 || 16 || 17"
+ }
+ },
+ "node_modules/@blueprintjs/select/node_modules/tslib": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.1.tgz",
+ "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
+ },
+ "node_modules/@codemirror/autocomplete": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmmirror.com/@codemirror/autocomplete/-/autocomplete-6.5.1.tgz",
+ "integrity": "sha512-/Sv9yJmqyILbZ26U4LBHnAtbikuVxWUp+rQ8BXuRGtxZfbfKOY/WPbsUtvSP2h0ZUZMlkxV/hqbKRFzowlA6xw==",
+ "dependencies": {
+ "@codemirror/language": "^6.0.0",
+ "@codemirror/state": "^6.0.0",
+ "@codemirror/view": "^6.6.0",
+ "@lezer/common": "^1.0.0"
+ },
+ "peerDependencies": {
+ "@codemirror/language": "^6.0.0",
+ "@codemirror/state": "^6.0.0",
+ "@codemirror/view": "^6.0.0",
+ "@lezer/common": "^1.0.0"
+ }
+ },
+ "node_modules/@codemirror/lang-python": {
+ "version": "6.1.2",
+ "resolved": "https://registry.npmmirror.com/@codemirror/lang-python/-/lang-python-6.1.2.tgz",
+ "integrity": "sha512-nbQfifLBZstpt6Oo4XxA2LOzlSp4b/7Bc5cmodG1R+Cs5PLLCTUvsMNWDnziiCfTOG/SW1rVzXq/GbIr6WXlcw==",
+ "dependencies": {
+ "@codemirror/autocomplete": "^6.3.2",
+ "@codemirror/language": "^6.0.0",
+ "@lezer/python": "^1.0.0"
+ }
+ },
+ "node_modules/@codemirror/lang-sql": {
+ "version": "6.4.1",
+ "resolved": "https://registry.npmmirror.com/@codemirror/lang-sql/-/lang-sql-6.4.1.tgz",
+ "integrity": "sha512-PFB56L+A0WGY35uRya+Trt5g19V9k2V9X3c55xoFW4RgiATr/yLqWsbbnEsdxuMn5tLpuikp7Kmj9smRsqBXAg==",
+ "dependencies": {
+ "@codemirror/autocomplete": "^6.0.0",
+ "@codemirror/language": "^6.0.0",
+ "@codemirror/state": "^6.0.0",
+ "@lezer/highlight": "^1.0.0",
+ "@lezer/lr": "^1.0.0"
+ }
+ },
+ "node_modules/@codemirror/language": {
+ "version": "6.6.0",
+ "resolved": "https://registry.npmmirror.com/@codemirror/language/-/language-6.6.0.tgz",
+ "integrity": "sha512-cwUd6lzt3MfNYOobdjf14ZkLbJcnv4WtndYaoBkbor/vF+rCNguMPK0IRtvZJG4dsWiaWPcK8x1VijhvSxnstg==",
+ "dependencies": {
+ "@codemirror/state": "^6.0.0",
+ "@codemirror/view": "^6.0.0",
+ "@lezer/common": "^1.0.0",
+ "@lezer/highlight": "^1.0.0",
+ "@lezer/lr": "^1.0.0",
+ "style-mod": "^4.0.0"
+ }
+ },
+ "node_modules/@codemirror/state": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmmirror.com/@codemirror/state/-/state-6.2.0.tgz",
+ "integrity": "sha512-69QXtcrsc3RYtOtd+GsvczJ319udtBf1PTrr2KbLWM/e2CXUPnh0Nz9AUo8WfhSQ7GeL8dPVNUmhQVgpmuaNGA=="
+ },
+ "node_modules/@codemirror/view": {
+ "version": "6.9.6",
+ "resolved": "https://registry.npmmirror.com/@codemirror/view/-/view-6.9.6.tgz",
+ "integrity": "sha512-g68PxS3RkHpxfYS6DTWCy1jeA5/oHzmdWjMVPkOzqQyxpElHEcPncUd4EeMVSa4okt0sS3hNXVaRnJqO/7MeJw==",
+ "dependencies": {
+ "@codemirror/state": "^6.1.4",
+ "style-mod": "^4.0.0",
+ "w3c-keyname": "^2.2.4"
+ }
+ },
"node_modules/@docsearch/css": {
"version": "3.3.3",
"resolved": "https://registry.npmmirror.com/@docsearch/css/-/css-3.3.3.tgz",
@@ -574,6 +729,600 @@
"node": ">=12"
}
},
+ "node_modules/@fortawesome/fontawesome-free": {
+ "version": "5.15.4",
+ "resolved": "https://registry.npmmirror.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.4.tgz",
+ "integrity": "sha512-eYm8vijH/hpzr/6/1CJ/V/Eb1xQFW2nnUKArb3z+yUWv7HTwj6M7SP957oMjfZjAHU6qpoNc2wQvIxBLWYa/Jg==",
+ "hasInstallScript": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@hypnosphi/create-react-context": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmmirror.com/@hypnosphi/create-react-context/-/create-react-context-0.3.1.tgz",
+ "integrity": "sha512-V1klUed202XahrWJLLOT3EXNeCpFHCcJntdFGI15ntCwau+jfT386w7OFTMaCqOgXUH1fa0w/I1oZs+i/Rfr0A==",
+ "dependencies": {
+ "gud": "^1.0.0",
+ "warning": "^4.0.3"
+ },
+ "peerDependencies": {
+ "prop-types": "^15.0.0",
+ "react": ">=0.14.0"
+ }
+ },
+ "node_modules/@juggle/resize-observer": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmmirror.com/@juggle/resize-observer/-/resize-observer-3.4.0.tgz",
+ "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA=="
+ },
+ "node_modules/@jupyter/ydoc": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmmirror.com/@jupyter/ydoc/-/ydoc-0.2.4.tgz",
+ "integrity": "sha512-QACcB4bF+Ew4UJmJP+3OyiyQm3vwRYF6iZCQK9q0nE2U5uAosQkfLyT6Bx71jPUXe4G9lEF6m9fjpZvSUX7Lyw==",
+ "dependencies": {
+ "@jupyterlab/nbformat": "^3.0.0 || ^4.0.0-alpha.15",
+ "@lumino/coreutils": "^1.11.0 || ^2.0.0-alpha.6",
+ "@lumino/disposable": "^1.10.0 || ^2.0.0-alpha.6",
+ "@lumino/signaling": "^1.10.0 || ^2.0.0-alpha.6",
+ "y-protocols": "^1.0.5",
+ "yjs": "^13.5.40"
+ }
+ },
+ "node_modules/@jupyterlab/application": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/application/-/application-3.6.3.tgz",
+ "integrity": "sha512-G0tR6sUSCuHB8vGQnaB5lfihKNJVHtqYNoMlsZYF9rYpZEhW1TRD4uE5rg4RfDDR+GghjckQlP3rRNB2Vn4tMA==",
+ "dependencies": {
+ "@fortawesome/fontawesome-free": "^5.12.0",
+ "@jupyterlab/apputils": "^3.6.3",
+ "@jupyterlab/coreutils": "^5.6.3",
+ "@jupyterlab/docregistry": "^3.6.3",
+ "@jupyterlab/rendermime": "^3.6.3",
+ "@jupyterlab/rendermime-interfaces": "^3.6.3",
+ "@jupyterlab/services": "^6.6.3",
+ "@jupyterlab/statedb": "^3.6.3",
+ "@jupyterlab/translation": "^3.6.3",
+ "@jupyterlab/ui-components": "^3.6.3",
+ "@lumino/algorithm": "^1.9.0",
+ "@lumino/application": "^1.31.4",
+ "@lumino/commands": "^1.19.0",
+ "@lumino/coreutils": "^1.11.0",
+ "@lumino/disposable": "^1.10.0",
+ "@lumino/messaging": "^1.10.0",
+ "@lumino/polling": "^1.9.0",
+ "@lumino/properties": "^1.8.0",
+ "@lumino/signaling": "^1.10.0",
+ "@lumino/widgets": "^1.37.2"
+ }
+ },
+ "node_modules/@jupyterlab/apputils": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/apputils/-/apputils-3.6.3.tgz",
+ "integrity": "sha512-um2Aaa5fOUwHFpAqKTDA+MFpnAldzOILIi5QsKOWRxiJA2W8x+hlg5HvHbq+eSWuWEU3ah15M7htzBcL3g9d4Q==",
+ "dependencies": {
+ "@jupyterlab/coreutils": "^5.6.3",
+ "@jupyterlab/observables": "^4.6.3",
+ "@jupyterlab/services": "^6.6.3",
+ "@jupyterlab/settingregistry": "^3.6.3",
+ "@jupyterlab/statedb": "^3.6.3",
+ "@jupyterlab/translation": "^3.6.3",
+ "@jupyterlab/ui-components": "^3.6.3",
+ "@lumino/algorithm": "^1.9.0",
+ "@lumino/commands": "^1.19.0",
+ "@lumino/coreutils": "^1.11.0",
+ "@lumino/disposable": "^1.10.0",
+ "@lumino/domutils": "^1.8.0",
+ "@lumino/messaging": "^1.10.0",
+ "@lumino/polling": "^1.9.0",
+ "@lumino/properties": "^1.8.0",
+ "@lumino/signaling": "^1.10.0",
+ "@lumino/virtualdom": "^1.14.0",
+ "@lumino/widgets": "^1.37.2",
+ "@types/react": "^17.0.0",
+ "react": "^17.0.1",
+ "react-dom": "^17.0.1",
+ "sanitize-html": "~2.7.3",
+ "url": "^0.11.0"
+ }
+ },
+ "node_modules/@jupyterlab/codeeditor": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/codeeditor/-/codeeditor-3.6.3.tgz",
+ "integrity": "sha512-SnVo5KDhyRkK/o1SDRX9nehLEAMaOBFf+GUx2jeXBTfr6wTKcwDBnJAUwlOfncwRlMV79aUIqTIcS861FSXDyA==",
+ "dependencies": {
+ "@jupyter/ydoc": "~0.2.3",
+ "@jupyterlab/coreutils": "^5.6.3",
+ "@jupyterlab/nbformat": "^3.6.3",
+ "@jupyterlab/observables": "^4.6.3",
+ "@jupyterlab/translation": "^3.6.3",
+ "@jupyterlab/ui-components": "^3.6.3",
+ "@lumino/coreutils": "^1.11.0",
+ "@lumino/disposable": "^1.10.0",
+ "@lumino/dragdrop": "^1.13.0",
+ "@lumino/messaging": "^1.10.0",
+ "@lumino/signaling": "^1.10.0",
+ "@lumino/widgets": "^1.37.2"
+ }
+ },
+ "node_modules/@jupyterlab/codemirror": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/codemirror/-/codemirror-3.6.3.tgz",
+ "integrity": "sha512-VU5bInzSqsyPGZkEd/w6HtJ9PSw7U5twoyrQSpSM+E2SEYWskaBZOHJf8XNunVoRRKwSvDLyxSs07Ot6zUlA0w==",
+ "dependencies": {
+ "@jupyter/ydoc": "~0.2.3",
+ "@jupyterlab/apputils": "^3.6.3",
+ "@jupyterlab/codeeditor": "^3.6.3",
+ "@jupyterlab/coreutils": "^5.6.3",
+ "@jupyterlab/nbformat": "^3.6.3",
+ "@jupyterlab/observables": "^4.6.3",
+ "@jupyterlab/statusbar": "^3.6.3",
+ "@jupyterlab/translation": "^3.6.3",
+ "@lumino/algorithm": "^1.9.0",
+ "@lumino/commands": "^1.19.0",
+ "@lumino/coreutils": "^1.11.0",
+ "@lumino/disposable": "^1.10.0",
+ "@lumino/polling": "^1.9.0",
+ "@lumino/signaling": "^1.10.0",
+ "@lumino/widgets": "^1.37.2",
+ "codemirror": "~5.61.0",
+ "react": "^17.0.1",
+ "y-codemirror": "^3.0.1"
+ }
+ },
+ "node_modules/@jupyterlab/coreutils": {
+ "version": "5.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/coreutils/-/coreutils-5.6.3.tgz",
+ "integrity": "sha512-jRVTpwGzP9wBNYuaZTip89FS1qbeSYrEO2qdNVdW2rs0mQHcIlu3Fkv5muMFmKYGi0XHhG3UhZiWQ7qiPw2svQ==",
+ "dependencies": {
+ "@lumino/coreutils": "^1.11.0",
+ "@lumino/disposable": "^1.10.0",
+ "@lumino/signaling": "^1.10.0",
+ "minimist": "~1.2.0",
+ "moment": "^2.24.0",
+ "path-browserify": "^1.0.0",
+ "url-parse": "~1.5.1"
+ }
+ },
+ "node_modules/@jupyterlab/docprovider": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/docprovider/-/docprovider-3.6.3.tgz",
+ "integrity": "sha512-M5IoyykDpWnUFNePHz3+fi/RNvV92UNbQGfAvsaCMSn+fl48rD4rHB9EZGceOisb3m1U+E4SntKYI3pl49yUEg==",
+ "dependencies": {
+ "@jupyter/ydoc": "~0.2.3",
+ "@jupyterlab/apputils": "^3.6.3",
+ "@jupyterlab/coreutils": "^5.6.3",
+ "@jupyterlab/services": "^6.6.3",
+ "@jupyterlab/translation": "^3.6.3",
+ "@lumino/coreutils": "^1.11.0",
+ "@lumino/disposable": "^1.10.0",
+ "@lumino/signaling": "^1.10.0",
+ "y-protocols": "^1.0.5",
+ "y-websocket": "^1.4.6"
+ }
+ },
+ "node_modules/@jupyterlab/docregistry": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/docregistry/-/docregistry-3.6.3.tgz",
+ "integrity": "sha512-unDMrtCSGKPqX9uvYCkI7zGTvskuC9odAPIHPsYSVMcHL/o5M7lQkHmRZCoSIezfe5OvPGXbYT2boQrBKXqCFw==",
+ "dependencies": {
+ "@jupyter/ydoc": "~0.2.3",
+ "@jupyterlab/apputils": "^3.6.3",
+ "@jupyterlab/codeeditor": "^3.6.3",
+ "@jupyterlab/codemirror": "^3.6.3",
+ "@jupyterlab/coreutils": "^5.6.3",
+ "@jupyterlab/docprovider": "^3.6.3",
+ "@jupyterlab/observables": "^4.6.3",
+ "@jupyterlab/rendermime": "^3.6.3",
+ "@jupyterlab/rendermime-interfaces": "^3.6.3",
+ "@jupyterlab/services": "^6.6.3",
+ "@jupyterlab/translation": "^3.6.3",
+ "@jupyterlab/ui-components": "^3.6.3",
+ "@lumino/algorithm": "^1.9.0",
+ "@lumino/coreutils": "^1.11.0",
+ "@lumino/disposable": "^1.10.0",
+ "@lumino/messaging": "^1.10.0",
+ "@lumino/signaling": "^1.10.0",
+ "@lumino/widgets": "^1.37.2"
+ }
+ },
+ "node_modules/@jupyterlab/mathjax2": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/mathjax2/-/mathjax2-3.6.3.tgz",
+ "integrity": "sha512-Aju49iHqwvsArc3qvQGDAOpQkpKvHfCXueQX7qJDRBst764jw+NjvWK11ODkRgUwsv0Rxi4YzOT0Z7N6Qnc5Rw==",
+ "dependencies": {
+ "@jupyterlab/rendermime-interfaces": "^3.6.3",
+ "@lumino/coreutils": "^1.11.0"
+ }
+ },
+ "node_modules/@jupyterlab/nbformat": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/nbformat/-/nbformat-3.6.3.tgz",
+ "integrity": "sha512-0qJLa4dtOmu9EmHFeM7gaZi4qheovIPc9ZrgGGRuG0obajs4YYlvh4MQvCSgpVhme4AuBfGlcfzhlx+Gbzr5Xw==",
+ "dependencies": {
+ "@lumino/coreutils": "^1.11.0"
+ }
+ },
+ "node_modules/@jupyterlab/observables": {
+ "version": "4.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/observables/-/observables-4.6.3.tgz",
+ "integrity": "sha512-CvQoL+9WHXOy/CXp/PQLi4c5iZVJ4psz11+GrycDDinX1AdVQ8a43OLTC0gxWl3Tk2C8ZvAi1sgn4FS68E1ACQ==",
+ "dependencies": {
+ "@lumino/algorithm": "^1.9.0",
+ "@lumino/coreutils": "^1.11.0",
+ "@lumino/disposable": "^1.10.0",
+ "@lumino/messaging": "^1.10.0",
+ "@lumino/signaling": "^1.10.0"
+ }
+ },
+ "node_modules/@jupyterlab/rendermime": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/rendermime/-/rendermime-3.6.3.tgz",
+ "integrity": "sha512-w3e38OddJin9fbfe7EWsKiiup/0ayvHPrAsacde8PqGLvi/sLeAXT98PqihsKt8EAlOgXSkSO0Ivjbd0JzgGgA==",
+ "dependencies": {
+ "@jupyterlab/apputils": "^3.6.3",
+ "@jupyterlab/codemirror": "^3.6.3",
+ "@jupyterlab/coreutils": "^5.6.3",
+ "@jupyterlab/nbformat": "^3.6.3",
+ "@jupyterlab/observables": "^4.6.3",
+ "@jupyterlab/rendermime-interfaces": "^3.6.3",
+ "@jupyterlab/services": "^6.6.3",
+ "@jupyterlab/translation": "^3.6.3",
+ "@lumino/algorithm": "^1.9.0",
+ "@lumino/coreutils": "^1.11.0",
+ "@lumino/messaging": "^1.10.0",
+ "@lumino/signaling": "^1.10.0",
+ "@lumino/widgets": "^1.37.2",
+ "lodash.escape": "^4.0.1",
+ "marked": "^4.0.17"
+ }
+ },
+ "node_modules/@jupyterlab/rendermime-interfaces": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/rendermime-interfaces/-/rendermime-interfaces-3.6.3.tgz",
+ "integrity": "sha512-VHZVnqB0K1nmoQMOhFGHwvSYMQmxqcOC3wWDRFeUOv8S+tejTYfbrKXPOZJvhdGB52Jn8XNIesXOuNpLhl4HmQ==",
+ "dependencies": {
+ "@jupyterlab/translation": "^3.6.3",
+ "@lumino/coreutils": "^1.11.0",
+ "@lumino/widgets": "^1.37.2"
+ }
+ },
+ "node_modules/@jupyterlab/services": {
+ "version": "6.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/services/-/services-6.6.3.tgz",
+ "integrity": "sha512-BxEOMRl9X18T5wY7iV6ZJhARnibFghpD3OruqeSbnGdbRv6XJi8prsRbCQQ6Mf9agvf81B20KmDvYKikPHC0xQ==",
+ "dependencies": {
+ "@jupyterlab/coreutils": "^5.6.3",
+ "@jupyterlab/nbformat": "^3.6.3",
+ "@jupyterlab/observables": "^4.6.3",
+ "@jupyterlab/settingregistry": "^3.6.3",
+ "@jupyterlab/statedb": "^3.6.3",
+ "@lumino/algorithm": "^1.9.0",
+ "@lumino/coreutils": "^1.11.0",
+ "@lumino/disposable": "^1.10.0",
+ "@lumino/polling": "^1.9.0",
+ "@lumino/signaling": "^1.10.0",
+ "node-fetch": "^2.6.0",
+ "ws": "^7.4.6"
+ }
+ },
+ "node_modules/@jupyterlab/settingregistry": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/settingregistry/-/settingregistry-3.6.3.tgz",
+ "integrity": "sha512-pnzIge0ZC8V63R97HiNroJ0eaPM0DN6x65SStyLuv/K8Qez4XqpOdc0Wfell5ri5mxMvm1qKekuFeTikqSXQKQ==",
+ "dependencies": {
+ "@jupyterlab/statedb": "^3.6.3",
+ "@lumino/commands": "^1.19.0",
+ "@lumino/coreutils": "^1.11.0",
+ "@lumino/disposable": "^1.10.0",
+ "@lumino/signaling": "^1.10.0",
+ "ajv": "^6.12.3",
+ "json5": "^2.1.1"
+ }
+ },
+ "node_modules/@jupyterlab/statedb": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/statedb/-/statedb-3.6.3.tgz",
+ "integrity": "sha512-A36L+0NN8f0WOES2GdtZjp9uFuC7IBjhKiO/RlKRX5AFjNxoJ9oO3PZtoxJQYPnGBljMqVdRa+m9aYEfvKhYyQ==",
+ "dependencies": {
+ "@lumino/commands": "^1.19.0",
+ "@lumino/coreutils": "^1.11.0",
+ "@lumino/disposable": "^1.10.0",
+ "@lumino/properties": "^1.8.0",
+ "@lumino/signaling": "^1.10.0"
+ }
+ },
+ "node_modules/@jupyterlab/statusbar": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/statusbar/-/statusbar-3.6.3.tgz",
+ "integrity": "sha512-m59NLR0Zghm53PU6hDzRF4XVORnJx/YRx0svcjj/TGLk8LSffpQbUDBy24dl3tOuChk4D5cCdgeDH1X30TzCaA==",
+ "dependencies": {
+ "@jupyterlab/apputils": "^3.6.3",
+ "@jupyterlab/codeeditor": "^3.6.3",
+ "@jupyterlab/services": "^6.6.3",
+ "@jupyterlab/translation": "^3.6.3",
+ "@jupyterlab/ui-components": "^3.6.3",
+ "@lumino/algorithm": "^1.9.0",
+ "@lumino/coreutils": "^1.11.0",
+ "@lumino/disposable": "^1.10.0",
+ "@lumino/messaging": "^1.10.0",
+ "@lumino/signaling": "^1.10.0",
+ "@lumino/widgets": "^1.37.2",
+ "csstype": "~3.0.3",
+ "react": "^17.0.1",
+ "typestyle": "^2.0.4"
+ }
+ },
+ "node_modules/@jupyterlab/statusbar/node_modules/csstype": {
+ "version": "3.0.11",
+ "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.0.11.tgz",
+ "integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw=="
+ },
+ "node_modules/@jupyterlab/theme-light-extension": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/theme-light-extension/-/theme-light-extension-3.6.3.tgz",
+ "integrity": "sha512-f0pFzwO1UPev6HPin1vl0m4s/ur2nm0z9BCFCP7LPTNv1njN6pYkhpUp1oluCZ09NbkRk2e0x7ed9z/2fgz3vA==",
+ "dependencies": {
+ "@jupyterlab/application": "^3.6.3",
+ "@jupyterlab/apputils": "^3.6.3",
+ "@jupyterlab/translation": "^3.6.3"
+ }
+ },
+ "node_modules/@jupyterlab/translation": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/translation/-/translation-3.6.3.tgz",
+ "integrity": "sha512-m+wwBv/hiN5Y6Sb7Ij150ZhPXZdhN5wI8CT3afnzARwKr2Aww5AIURO3upmMwnKaPVQTrWqsS3+7bZS/21JuJA==",
+ "dependencies": {
+ "@jupyterlab/coreutils": "^5.6.3",
+ "@jupyterlab/services": "^6.6.3",
+ "@jupyterlab/statedb": "^3.6.3",
+ "@lumino/coreutils": "^1.11.0"
+ }
+ },
+ "node_modules/@jupyterlab/ui-components": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/ui-components/-/ui-components-3.6.3.tgz",
+ "integrity": "sha512-XzseUo2IXclPlYcGxCIz8evjWF+dCBMmbJlvoE5OF29BYBvI5N/DUaTem8bHN5kmQwHIXX6BImHu7rbC9Xjl6w==",
+ "dependencies": {
+ "@blueprintjs/core": "^3.36.0",
+ "@blueprintjs/select": "^3.15.0",
+ "@jupyterlab/coreutils": "^5.6.3",
+ "@jupyterlab/translation": "^3.6.3",
+ "@lumino/algorithm": "^1.9.0",
+ "@lumino/commands": "^1.19.0",
+ "@lumino/coreutils": "^1.11.0",
+ "@lumino/disposable": "^1.10.0",
+ "@lumino/signaling": "^1.10.0",
+ "@lumino/virtualdom": "^1.14.0",
+ "@lumino/widgets": "^1.37.2",
+ "@rjsf/core": "^3.1.0",
+ "react": "^17.0.1",
+ "react-dom": "^17.0.1",
+ "typestyle": "^2.0.4"
+ },
+ "peerDependencies": {
+ "react": "^17.0.1"
+ }
+ },
+ "node_modules/@lezer/common": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/@lezer/common/-/common-1.0.2.tgz",
+ "integrity": "sha512-SVgiGtMnMnW3ActR8SXgsDhw7a0w0ChHSYAyAUxxrOiJ1OqYWEKk/xJd84tTSPo1mo6DXLObAJALNnd0Hrv7Ng=="
+ },
+ "node_modules/@lezer/highlight": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmmirror.com/@lezer/highlight/-/highlight-1.1.4.tgz",
+ "integrity": "sha512-IECkFmw2l7sFcYXrV8iT9GeY4W0fU4CxX0WMwhmhMIVjoDdD1Hr6q3G2NqVtLg/yVe5n7i4menG3tJ2r4eCrPQ==",
+ "dependencies": {
+ "@lezer/common": "^1.0.0"
+ }
+ },
+ "node_modules/@lezer/lr": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmmirror.com/@lezer/lr/-/lr-1.3.3.tgz",
+ "integrity": "sha512-JPQe3mwJlzEVqy67iQiiGozhcngbO8QBgpqZM6oL1Wj/dXckrEexpBLeFkq0edtW5IqnPRFxA24BHJni8Js69w==",
+ "dependencies": {
+ "@lezer/common": "^1.0.0"
+ }
+ },
+ "node_modules/@lezer/python": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmmirror.com/@lezer/python/-/python-1.1.4.tgz",
+ "integrity": "sha512-x82XgYxqqX0Yiw7uIemQJ3z2QyQme5BYpectkPfNg99OQrakqfwqVolqEVIrsj4QO9rVDLFZZ49J0Vbne7UbAA==",
+ "dependencies": {
+ "@lezer/highlight": "^1.0.0",
+ "@lezer/lr": "^1.0.0"
+ }
+ },
+ "node_modules/@lumino/algorithm": {
+ "version": "1.9.2",
+ "resolved": "https://registry.npmmirror.com/@lumino/algorithm/-/algorithm-1.9.2.tgz",
+ "integrity": "sha512-Z06lp/yuhz8CtIir3PNTGnuk7909eXt4ukJsCzChsGuot2l5Fbs96RJ/FOHgwCedaX74CtxPjXHXoszFbUA+4A=="
+ },
+ "node_modules/@lumino/application": {
+ "version": "1.31.4",
+ "resolved": "https://registry.npmmirror.com/@lumino/application/-/application-1.31.4.tgz",
+ "integrity": "sha512-dOSsDJ1tXOxC3fnSHvtDQK5RcICLEVPtO19HeCGwurb5W2ZZ55SZT2b5jZu6V/v8lGdtkNbr1RJltRpJRSRb/A==",
+ "dependencies": {
+ "@lumino/commands": "^1.21.1",
+ "@lumino/coreutils": "^1.12.1",
+ "@lumino/widgets": "^1.37.2"
+ }
+ },
+ "node_modules/@lumino/collections": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmmirror.com/@lumino/collections/-/collections-1.9.3.tgz",
+ "integrity": "sha512-2i2Wf1xnfTgEgdyKEpqM16bcYRIhUOGCDzaVCEZACVG9R1CgYwOe3zfn71slBQOVSjjRgwYrgLXu4MBpt6YK+g==",
+ "dependencies": {
+ "@lumino/algorithm": "^1.9.2"
+ }
+ },
+ "node_modules/@lumino/commands": {
+ "version": "1.21.1",
+ "resolved": "https://registry.npmmirror.com/@lumino/commands/-/commands-1.21.1.tgz",
+ "integrity": "sha512-d1zJmwz5bHU0BM/Rl3tRdZ7/WgXnFB0bM7x7Bf0XDlmX++jnU9k0j3mh6/5JqCGLmIApKCRwVqSaV7jPmSJlcQ==",
+ "dependencies": {
+ "@lumino/algorithm": "^1.9.2",
+ "@lumino/coreutils": "^1.12.1",
+ "@lumino/disposable": "^1.10.4",
+ "@lumino/domutils": "^1.8.2",
+ "@lumino/keyboard": "^1.8.2",
+ "@lumino/signaling": "^1.11.1",
+ "@lumino/virtualdom": "^1.14.3"
+ }
+ },
+ "node_modules/@lumino/coreutils": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmmirror.com/@lumino/coreutils/-/coreutils-1.12.1.tgz",
+ "integrity": "sha512-JLu3nTHzJk9N8ohZ85u75YxemMrmDzJdNgZztfP7F7T7mxND3YVNCkJG35a6aJ7edu1sIgCjBxOvV+hv27iYvQ==",
+ "peerDependencies": {
+ "crypto": "1.0.1"
+ }
+ },
+ "node_modules/@lumino/disposable": {
+ "version": "1.10.4",
+ "resolved": "https://registry.npmmirror.com/@lumino/disposable/-/disposable-1.10.4.tgz",
+ "integrity": "sha512-4ZxyYcyzUS+ZeB2KAH9oAH3w0DUUceiVr+FIZHZ2TAYGWZI/85WlqJtfm0xjwEpCwLLW1TDqJrISuZu3iMmVMA==",
+ "dependencies": {
+ "@lumino/algorithm": "^1.9.2",
+ "@lumino/signaling": "^1.11.1"
+ }
+ },
+ "node_modules/@lumino/domutils": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmmirror.com/@lumino/domutils/-/domutils-1.8.2.tgz",
+ "integrity": "sha512-QIpMfkPJrs4GrWBuJf2Sn1fpyVPmvqUUAeD8xAQo8+4V5JAT0vUDLxZ9HijefMgNCi3+Bs8Z3lQwRCrz+cFP1A=="
+ },
+ "node_modules/@lumino/dragdrop": {
+ "version": "1.14.5",
+ "resolved": "https://registry.npmmirror.com/@lumino/dragdrop/-/dragdrop-1.14.5.tgz",
+ "integrity": "sha512-LC5xB82+xGF8hFyl716TMpV32OIMIMl+s3RU1PaqDkD6B7PkgiVk6NkJ4X9/GcEvl2igkvlGQt/3L7qxDAJNxw==",
+ "dependencies": {
+ "@lumino/coreutils": "^1.12.1",
+ "@lumino/disposable": "^1.10.4"
+ }
+ },
+ "node_modules/@lumino/keyboard": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmmirror.com/@lumino/keyboard/-/keyboard-1.8.2.tgz",
+ "integrity": "sha512-Dy+XqQ1wXbcnuYtjys5A0pAqf4SpAFl9NY6owyIhXAo0Va7w3LYp3jgiP1xAaBAwMuUppiUAfrbjrysZuZ625g=="
+ },
+ "node_modules/@lumino/messaging": {
+ "version": "1.10.3",
+ "resolved": "https://registry.npmmirror.com/@lumino/messaging/-/messaging-1.10.3.tgz",
+ "integrity": "sha512-F/KOwMCdqvdEG8CYAJcBSadzp6aI7a47Fr60zAKGqZATSRRRV41q53iXU7HjFPqQqQIvdn9Z7J32rBEAyQAzww==",
+ "dependencies": {
+ "@lumino/algorithm": "^1.9.2",
+ "@lumino/collections": "^1.9.3"
+ }
+ },
+ "node_modules/@lumino/polling": {
+ "version": "1.11.4",
+ "resolved": "https://registry.npmmirror.com/@lumino/polling/-/polling-1.11.4.tgz",
+ "integrity": "sha512-yC7JLssj3mqVK6TsYj7dg4AG0rcsC42YtpoDLtz9yzO84Q5flQUfmjAPQB6oPA6wZOlISs3iasF+uO2w1ls5jg==",
+ "dependencies": {
+ "@lumino/coreutils": "^1.12.1",
+ "@lumino/disposable": "^1.10.4",
+ "@lumino/signaling": "^1.11.1"
+ }
+ },
+ "node_modules/@lumino/properties": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmmirror.com/@lumino/properties/-/properties-1.8.2.tgz",
+ "integrity": "sha512-EkjI9Cw8R0U+xC9HxdFSu7X1tz1H1vKu20cGvJ2gU+CXlMB1DvoYJCYxCThByHZ+kURTAap4SE5x8HvKwNPbig=="
+ },
+ "node_modules/@lumino/signaling": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmmirror.com/@lumino/signaling/-/signaling-1.11.1.tgz",
+ "integrity": "sha512-YCUmgw08VoyMN5KxzqPO3KMx+cwdPv28tAN06C0K7Q/dQf+oufb1XocuhZb5selTrTmmuXeizaYxgLIQGdS1fA==",
+ "dependencies": {
+ "@lumino/algorithm": "^1.9.2",
+ "@lumino/properties": "^1.8.2"
+ }
+ },
+ "node_modules/@lumino/virtualdom": {
+ "version": "1.14.3",
+ "resolved": "https://registry.npmmirror.com/@lumino/virtualdom/-/virtualdom-1.14.3.tgz",
+ "integrity": "sha512-5joUC1yuxeXbpfbSBm/OR8Mu9HoTo6PDX0RKqzlJ9o97iml7zayFN/ynzcxScKGQAo9iaXOY8uVIvGUT8FnsGw==",
+ "dependencies": {
+ "@lumino/algorithm": "^1.9.2"
+ }
+ },
+ "node_modules/@lumino/widgets": {
+ "version": "1.37.2",
+ "resolved": "https://registry.npmmirror.com/@lumino/widgets/-/widgets-1.37.2.tgz",
+ "integrity": "sha512-NHKu1NBDo6ETBDoNrqSkornfUCwc8EFFzw6+LWBfYVxn2PIwciq2SdiJGEyNqL+0h/A9eVKb5ui5z4cwpRekmQ==",
+ "dependencies": {
+ "@lumino/algorithm": "^1.9.2",
+ "@lumino/commands": "^1.21.1",
+ "@lumino/coreutils": "^1.12.1",
+ "@lumino/disposable": "^1.10.4",
+ "@lumino/domutils": "^1.8.2",
+ "@lumino/dragdrop": "^1.14.5",
+ "@lumino/keyboard": "^1.8.2",
+ "@lumino/messaging": "^1.10.3",
+ "@lumino/properties": "^1.8.2",
+ "@lumino/signaling": "^1.11.1",
+ "@lumino/virtualdom": "^1.14.3"
+ }
+ },
+ "node_modules/@rjsf/core": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmmirror.com/@rjsf/core/-/core-3.2.1.tgz",
+ "integrity": "sha512-dk8ihvxFbcuIwU7G+HiJbFgwyIvaumPt5g5zfnuC26mwTUPlaDGFXKK2yITp8tJ3+hcwS5zEXtAN9wUkfuM4jA==",
+ "dependencies": {
+ "@types/json-schema": "^7.0.7",
+ "ajv": "^6.7.0",
+ "core-js-pure": "^3.6.5",
+ "json-schema-merge-allof": "^0.6.0",
+ "jsonpointer": "^5.0.0",
+ "lodash": "^4.17.15",
+ "nanoid": "^3.1.23",
+ "prop-types": "^15.7.2",
+ "react-is": "^16.9.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "peerDependencies": {
+ "react": ">=16"
+ }
+ },
+ "node_modules/@types/dom4": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/@types/dom4/-/dom4-2.0.2.tgz",
+ "integrity": "sha512-Rt4IC1T7xkCWa0OG1oSsPa0iqnxlDeQqKXZAHrQGLb7wFGncWm85MaxKUjAGejOrUynOgWlFi4c6S6IyJwoK4g=="
+ },
+ "node_modules/@types/json-schema": {
+ "version": "7.0.11",
+ "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.11.tgz",
+ "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ=="
+ },
+ "node_modules/@types/prop-types": {
+ "version": "15.7.5",
+ "resolved": "https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.5.tgz",
+ "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w=="
+ },
+ "node_modules/@types/react": {
+ "version": "17.0.58",
+ "resolved": "https://registry.npmmirror.com/@types/react/-/react-17.0.58.tgz",
+ "integrity": "sha512-c1GzVY97P0fGxwGxhYq989j4XwlcHQoto6wQISOC2v6wm3h0PORRWJFHlkRjfGsiG3y1609WdQ+J+tKxvrEd6A==",
+ "dependencies": {
+ "@types/prop-types": "*",
+ "@types/scheduler": "*",
+ "csstype": "^3.0.2"
+ }
+ },
+ "node_modules/@types/react/node_modules/csstype": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.2.tgz",
+ "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
+ },
+ "node_modules/@types/scheduler": {
+ "version": "0.16.3",
+ "resolved": "https://registry.npmmirror.com/@types/scheduler/-/scheduler-0.16.3.tgz",
+ "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ=="
+ },
"node_modules/@types/web-bluetooth": {
"version": "0.0.16",
"resolved": "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz",
@@ -784,6 +1533,33 @@
}
}
},
+ "node_modules/abstract-leveldown": {
+ "version": "6.2.3",
+ "resolved": "https://registry.npmmirror.com/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz",
+ "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==",
+ "optional": true,
+ "dependencies": {
+ "buffer": "^5.5.0",
+ "immediate": "^3.2.3",
+ "level-concat-iterator": "~2.0.0",
+ "level-supports": "~1.0.0",
+ "xtend": "~4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
"node_modules/algoliasearch": {
"version": "4.17.0",
"resolved": "https://registry.npmmirror.com/algoliasearch/-/algoliasearch-4.17.0.tgz",
@@ -821,6 +1597,23 @@
"integrity": "sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==",
"dev": true
},
+ "node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
+ },
+ "node_modules/async-limiter": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/async-limiter/-/async-limiter-1.0.1.tgz",
+ "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
+ "optional": true
+ },
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "optional": true
+ },
"node_modules/body-scroll-lock": {
"version": "4.0.0-beta.0",
"resolved": "https://registry.npmmirror.com/body-scroll-lock/-/body-scroll-lock-4.0.0-beta.0.tgz",
@@ -833,6 +1626,25 @@
"integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
"dev": true
},
+ "node_modules/buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "optional": true,
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "node_modules/call-bind": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "dependencies": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ }
+ },
"node_modules/cheerio": {
"version": "1.0.0-rc.10",
"resolved": "https://registry.npmmirror.com/cheerio/-/cheerio-1.0.0-rc.10.tgz",
@@ -864,6 +1676,16 @@
"domutils": "^2.8.0"
}
},
+ "node_modules/classnames": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmmirror.com/classnames/-/classnames-2.3.2.tgz",
+ "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw=="
+ },
+ "node_modules/codemirror": {
+ "version": "5.61.1",
+ "resolved": "https://registry.npmmirror.com/codemirror/-/codemirror-5.61.1.tgz",
+ "integrity": "sha512-+D1NZjAucuzE93vJGbAaXzvoBHwp9nJZWWWF9utjv25+5AZUiah6CIlfb4ikG4MoDsFsCG8niiJH5++OO2LgIQ=="
+ },
"node_modules/commander": {
"version": "6.2.1",
"resolved": "https://registry.npmmirror.com/commander/-/commander-6.2.1.tgz",
@@ -873,6 +1695,40 @@
"node": ">= 6"
}
},
+ "node_modules/compute-gcd": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/compute-gcd/-/compute-gcd-1.2.1.tgz",
+ "integrity": "sha512-TwMbxBNz0l71+8Sc4czv13h4kEqnchV9igQZBi6QUaz09dnz13juGnnaWWJTRsP3brxOoxeB4SA2WELLw1hCtg==",
+ "dependencies": {
+ "validate.io-array": "^1.0.3",
+ "validate.io-function": "^1.0.2",
+ "validate.io-integer-array": "^1.0.0"
+ }
+ },
+ "node_modules/compute-lcm": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/compute-lcm/-/compute-lcm-1.1.2.tgz",
+ "integrity": "sha512-OFNPdQAXnQhDSKioX8/XYT6sdUlXwpeMjfd6ApxMJfyZ4GxmLR1xvMERctlYhlHwIiz6CSpBc2+qYKjHGZw4TQ==",
+ "dependencies": {
+ "compute-gcd": "^1.2.1",
+ "validate.io-array": "^1.0.3",
+ "validate.io-function": "^1.0.2",
+ "validate.io-integer-array": "^1.0.0"
+ }
+ },
+ "node_modules/core-js-pure": {
+ "version": "3.30.1",
+ "resolved": "https://registry.npmmirror.com/core-js-pure/-/core-js-pure-3.30.1.tgz",
+ "integrity": "sha512-nXBEVpmUnNRhz83cHd9JRQC52cTMcuXAmR56+9dSMpRdpeA4I1PX6yjmhd71Eyc/wXNsdBdUDIj1QTIeZpU5Tg==",
+ "hasInstallScript": true
+ },
+ "node_modules/crypto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/crypto/-/crypto-1.0.1.tgz",
+ "integrity": "sha512-VxBKmeNcqQdiUQUW2Tzq0t377b54N2bMtXO/qiLa+6eRRmmC4qT3D4OnTGoT/U6O9aklQ/jTwbOtRMTTY8G0Ig==",
+ "deprecated": "This package is no longer supported. It's now a built-in Node module. If you've depended on crypto, you should switch to the one that's built-in.",
+ "peer": true
+ },
"node_modules/css-select": {
"version": "4.3.0",
"resolved": "https://registry.npmmirror.com/css-select/-/css-select-4.3.0.tgz",
@@ -901,28 +1757,84 @@
"integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==",
"dev": true
},
+ "node_modules/deep-equal": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/deep-equal/-/deep-equal-1.1.1.tgz",
+ "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==",
+ "dependencies": {
+ "is-arguments": "^1.0.4",
+ "is-date-object": "^1.0.1",
+ "is-regex": "^1.0.4",
+ "object-is": "^1.0.1",
+ "object-keys": "^1.1.1",
+ "regexp.prototype.flags": "^1.2.0"
+ }
+ },
+ "node_modules/deepmerge": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-4.3.1.tgz",
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/deferred-leveldown": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmmirror.com/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz",
+ "integrity": "sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==",
+ "optional": true,
+ "dependencies": {
+ "abstract-leveldown": "~6.2.1",
+ "inherits": "^2.0.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/define-properties": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.0.tgz",
+ "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==",
+ "dependencies": {
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/dom-helpers": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmmirror.com/dom-helpers/-/dom-helpers-3.4.0.tgz",
+ "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==",
+ "dependencies": {
+ "@babel/runtime": "^7.1.2"
+ }
+ },
"node_modules/dom-serializer": {
"version": "1.4.1",
"resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-1.4.1.tgz",
"integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
- "dev": true,
"dependencies": {
"domelementtype": "^2.0.1",
"domhandler": "^4.2.0",
"entities": "^2.0.0"
}
},
+ "node_modules/dom4": {
+ "version": "2.1.6",
+ "resolved": "https://registry.npmmirror.com/dom4/-/dom4-2.1.6.tgz",
+ "integrity": "sha512-JkCVGnN4ofKGbjf5Uvc8mmxaATIErKQKSgACdBXpsQ3fY6DlIpAyWfiBSrGkttATssbDCp3psiAKWXk5gmjycA=="
+ },
"node_modules/domelementtype": {
"version": "2.3.0",
"resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz",
- "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
- "dev": true
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="
},
"node_modules/domhandler": {
"version": "4.3.1",
"resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-4.3.1.tgz",
"integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
- "dev": true,
"dependencies": {
"domelementtype": "^2.2.0"
},
@@ -934,18 +1846,43 @@
"version": "2.8.0",
"resolved": "https://registry.npmmirror.com/domutils/-/domutils-2.8.0.tgz",
"integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
- "dev": true,
"dependencies": {
"dom-serializer": "^1.0.1",
"domelementtype": "^2.2.0",
"domhandler": "^4.2.0"
}
},
+ "node_modules/encoding-down": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmmirror.com/encoding-down/-/encoding-down-6.3.0.tgz",
+ "integrity": "sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw==",
+ "optional": true,
+ "dependencies": {
+ "abstract-leveldown": "^6.2.1",
+ "inherits": "^2.0.3",
+ "level-codec": "^9.0.0",
+ "level-errors": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/entities": {
"version": "2.2.0",
"resolved": "https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz",
- "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
- "dev": true
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A=="
+ },
+ "node_modules/errno": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmmirror.com/errno/-/errno-0.1.8.tgz",
+ "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==",
+ "optional": true,
+ "dependencies": {
+ "prr": "~1.0.1"
+ },
+ "bin": {
+ "errno": "cli.js"
+ }
},
"node_modules/esbuild": {
"version": "0.17.16",
@@ -993,6 +1930,14 @@
"node": ">=10"
}
},
+ "node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/esm": {
"version": "3.2.25",
"resolved": "https://registry.npmmirror.com/esm/-/esm-3.2.25.tgz",
@@ -1008,6 +1953,21 @@
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
"dev": true
},
+ "node_modules/fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
+ },
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
+ },
+ "node_modules/free-style": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/free-style/-/free-style-3.1.0.tgz",
+ "integrity": "sha512-vJujYSIyT30iDoaoeigNAxX4yB1RUrh+N2ZMhIElMr3BvCuGXOw7XNJMEEJkDUeamK2Rnb/IKFGKRKlTWIGRWA=="
+ },
"node_modules/fsevents": {
"version": "2.3.2",
"resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz",
@@ -1022,11 +1982,73 @@
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
+ "node_modules/function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ },
+ "node_modules/functions-have-names": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmmirror.com/functions-have-names/-/functions-have-names-1.2.3.tgz",
+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ=="
+ },
+ "node_modules/get-intrinsic": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
+ "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
+ "dependencies": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.3"
+ }
+ },
+ "node_modules/gud": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/gud/-/gud-1.0.0.tgz",
+ "integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw=="
+ },
+ "node_modules/has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dependencies": {
+ "function-bind": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/has-property-descriptors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
+ "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
+ "dependencies": {
+ "get-intrinsic": "^1.1.1"
+ }
+ },
+ "node_modules/has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/has-tostringtag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
+ "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
+ "dependencies": {
+ "has-symbols": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/htmlparser2": {
"version": "6.1.0",
"resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-6.1.0.tgz",
"integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==",
- "dev": true,
"dependencies": {
"domelementtype": "^2.0.1",
"domhandler": "^4.0.0",
@@ -1034,12 +2056,125 @@
"entities": "^2.0.0"
}
},
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "optional": true
+ },
+ "node_modules/immediate": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmmirror.com/immediate/-/immediate-3.3.0.tgz",
+ "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==",
+ "optional": true
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "optional": true
+ },
+ "node_modules/is-arguments": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/is-arguments/-/is-arguments-1.1.1.tgz",
+ "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/is-date-object": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmmirror.com/is-date-object/-/is-date-object-1.0.5.tgz",
+ "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/is-plain-object": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-5.0.0.tgz",
+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-regex": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz",
+ "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/isomorphic.js": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmmirror.com/isomorphic.js/-/isomorphic.js-0.2.5.tgz",
+ "integrity": "sha512-PIeMbHqMt4DnUP3MA/Flc0HElYjMXArsw1qwJZcm9sqR8mq3l8NYizFMty0pWwE/tzIGH3EKK5+jes5mAr85yw=="
+ },
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
+ },
+ "node_modules/json-schema-compare": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmmirror.com/json-schema-compare/-/json-schema-compare-0.2.2.tgz",
+ "integrity": "sha512-c4WYmDKyJXhs7WWvAWm3uIYnfyWFoIp+JEoX34rctVvEkMYCPGhXtvmFFXiffBbxfZsvQ0RNnV5H7GvDF5HCqQ==",
+ "dependencies": {
+ "lodash": "^4.17.4"
+ }
+ },
+ "node_modules/json-schema-merge-allof": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmmirror.com/json-schema-merge-allof/-/json-schema-merge-allof-0.6.0.tgz",
+ "integrity": "sha512-LEw4VMQVRceOPLuGRWcxW5orTTiR9ZAtqTAe4rQUjNADTeR81bezBVFa0MqIwp0YmHIM1KkhSjZM7o+IQhaPbQ==",
+ "dependencies": {
+ "compute-lcm": "^1.1.0",
+ "json-schema-compare": "^0.2.2",
+ "lodash": "^4.17.4"
+ }
+ },
+ "node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+ },
+ "node_modules/json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "bin": {
+ "json5": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/jsonc-parser": {
"version": "3.2.0",
"resolved": "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
"integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==",
"dev": true
},
+ "node_modules/jsonpointer": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmmirror.com/jsonpointer/-/jsonpointer-5.0.1.tgz",
+ "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/juice": {
"version": "8.1.0",
"resolved": "https://registry.npmmirror.com/juice/-/juice-8.1.0.tgz",
@@ -1059,6 +2194,190 @@
"node": ">=10.0.0"
}
},
+ "node_modules/level": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmmirror.com/level/-/level-6.0.1.tgz",
+ "integrity": "sha512-psRSqJZCsC/irNhfHzrVZbmPYXDcEYhA5TVNwr+V92jF44rbf86hqGp8fiT702FyiArScYIlPSBTDUASCVNSpw==",
+ "optional": true,
+ "dependencies": {
+ "level-js": "^5.0.0",
+ "level-packager": "^5.1.0",
+ "leveldown": "^5.4.0"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/level-codec": {
+ "version": "9.0.2",
+ "resolved": "https://registry.npmmirror.com/level-codec/-/level-codec-9.0.2.tgz",
+ "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==",
+ "optional": true,
+ "dependencies": {
+ "buffer": "^5.6.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/level-concat-iterator": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz",
+ "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==",
+ "optional": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/level-errors": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/level-errors/-/level-errors-2.0.1.tgz",
+ "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==",
+ "optional": true,
+ "dependencies": {
+ "errno": "~0.1.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/level-iterator-stream": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmmirror.com/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz",
+ "integrity": "sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==",
+ "optional": true,
+ "dependencies": {
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0",
+ "xtend": "^4.0.2"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/level-js": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmmirror.com/level-js/-/level-js-5.0.2.tgz",
+ "integrity": "sha512-SnBIDo2pdO5VXh02ZmtAyPP6/+6YTJg2ibLtl9C34pWvmtMEmRTWpra+qO/hifkUtBTOtfx6S9vLDjBsBK4gRg==",
+ "optional": true,
+ "dependencies": {
+ "abstract-leveldown": "~6.2.3",
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.3",
+ "ltgt": "^2.1.2"
+ }
+ },
+ "node_modules/level-packager": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmmirror.com/level-packager/-/level-packager-5.1.1.tgz",
+ "integrity": "sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ==",
+ "optional": true,
+ "dependencies": {
+ "encoding-down": "^6.3.0",
+ "levelup": "^4.3.2"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/level-supports": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/level-supports/-/level-supports-1.0.1.tgz",
+ "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==",
+ "optional": true,
+ "dependencies": {
+ "xtend": "^4.0.2"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/leveldown": {
+ "version": "5.6.0",
+ "resolved": "https://registry.npmmirror.com/leveldown/-/leveldown-5.6.0.tgz",
+ "integrity": "sha512-iB8O/7Db9lPaITU1aA2txU/cBEXAt4vWwKQRrrWuS6XDgbP4QZGj9BL2aNbwb002atoQ/lIotJkfyzz+ygQnUQ==",
+ "hasInstallScript": true,
+ "optional": true,
+ "dependencies": {
+ "abstract-leveldown": "~6.2.1",
+ "napi-macros": "~2.0.0",
+ "node-gyp-build": "~4.1.0"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/levelup": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmmirror.com/levelup/-/levelup-4.4.0.tgz",
+ "integrity": "sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==",
+ "optional": true,
+ "dependencies": {
+ "deferred-leveldown": "~5.3.0",
+ "level-errors": "~2.0.0",
+ "level-iterator-stream": "~4.0.0",
+ "level-supports": "~1.0.0",
+ "xtend": "~4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/lib0": {
+ "version": "0.2.74",
+ "resolved": "https://registry.npmmirror.com/lib0/-/lib0-0.2.74.tgz",
+ "integrity": "sha512-roj9i46/JwG5ik5KNTkxP2IytlnrssAkD/OhlAVtE+GqectrdkfR+pttszVLrOzMDeXNs1MPt6yo66MUolWSiA==",
+ "dependencies": {
+ "isomorphic.js": "^0.2.4"
+ },
+ "bin": {
+ "0gentesthtml": "bin/gentesthtml.js",
+ "0serve": "bin/0serve.js"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/linkify-it": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmmirror.com/linkify-it/-/linkify-it-4.0.1.tgz",
+ "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==",
+ "dependencies": {
+ "uc.micro": "^1.0.1"
+ }
+ },
+ "node_modules/lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+ },
+ "node_modules/lodash.debounce": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
+ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="
+ },
+ "node_modules/lodash.escape": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmmirror.com/lodash.escape/-/lodash.escape-4.0.1.tgz",
+ "integrity": "sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw=="
+ },
+ "node_modules/loose-envify": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "dependencies": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ },
+ "bin": {
+ "loose-envify": "cli.js"
+ }
+ },
+ "node_modules/ltgt": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmmirror.com/ltgt/-/ltgt-2.2.1.tgz",
+ "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==",
+ "optional": true
+ },
"node_modules/magic-string": {
"version": "0.25.9",
"resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz",
@@ -1074,6 +2393,21 @@
"integrity": "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==",
"dev": true
},
+ "node_modules/markdown-it": {
+ "version": "13.0.1",
+ "resolved": "https://registry.npmmirror.com/markdown-it/-/markdown-it-13.0.1.tgz",
+ "integrity": "sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==",
+ "dependencies": {
+ "argparse": "^2.0.1",
+ "entities": "~3.0.1",
+ "linkify-it": "^4.0.1",
+ "mdurl": "^1.0.1",
+ "uc.micro": "^1.0.5"
+ },
+ "bin": {
+ "markdown-it": "bin/markdown-it.js"
+ }
+ },
"node_modules/markdown-it-mathjax3": {
"version": "4.3.2",
"resolved": "https://registry.npmmirror.com/markdown-it-mathjax3/-/markdown-it-mathjax3-4.3.2.tgz",
@@ -1084,6 +2418,25 @@
"mathjax-full": "^3.2.0"
}
},
+ "node_modules/markdown-it/node_modules/entities": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/entities/-/entities-3.0.1.tgz",
+ "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==",
+ "engines": {
+ "node": ">=0.12"
+ }
+ },
+ "node_modules/marked": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/marked/-/marked-4.3.0.tgz",
+ "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==",
+ "bin": {
+ "marked": "bin/marked.js"
+ },
+ "engines": {
+ "node": ">= 12"
+ }
+ },
"node_modules/mathjax-full": {
"version": "3.2.2",
"resolved": "https://registry.npmmirror.com/mathjax-full/-/mathjax-full-3.2.2.tgz",
@@ -1096,6 +2449,11 @@
"speech-rule-engine": "^4.0.6"
}
},
+ "node_modules/mdurl": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/mdurl/-/mdurl-1.0.1.tgz",
+ "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g=="
+ },
"node_modules/mensch": {
"version": "0.3.4",
"resolved": "https://registry.npmmirror.com/mensch/-/mensch-0.3.4.tgz",
@@ -1120,6 +2478,11 @@
"node": ">=4.0.0"
}
},
+ "node_modules/minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="
+ },
"node_modules/minisearch": {
"version": "6.0.1",
"resolved": "https://registry.npmmirror.com/minisearch/-/minisearch-6.0.1.tgz",
@@ -1132,11 +2495,18 @@
"integrity": "sha512-7NO5s6n10TIV96d4g2uDpG7ZDpIhMh0QNfGdJw/W47JswFcosz457wqz/b5sAKvl12sxINGFCn80NZHKwxQEXA==",
"dev": true
},
+ "node_modules/moment": {
+ "version": "2.29.4",
+ "resolved": "https://registry.npmmirror.com/moment/-/moment-2.29.4.tgz",
+ "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==",
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/nanoid": {
"version": "3.3.6",
"resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.6.tgz",
"integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
- "dev": true,
"bin": {
"nanoid": "bin/nanoid.cjs"
},
@@ -1144,11 +2514,16 @@
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
+ "node_modules/napi-macros": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/napi-macros/-/napi-macros-2.0.0.tgz",
+ "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==",
+ "optional": true
+ },
"node_modules/node-fetch": {
"version": "2.6.9",
"resolved": "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.6.9.tgz",
"integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==",
- "dev": true,
"dependencies": {
"whatwg-url": "^5.0.0"
},
@@ -1164,6 +2539,22 @@
}
}
},
+ "node_modules/node-gyp-build": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmmirror.com/node-gyp-build/-/node-gyp-build-4.1.1.tgz",
+ "integrity": "sha512-dSq1xmcPDKPZ2EED2S6zw/b9NKsqzXRE6dVr8TVQnI3FJOTteUMuqF3Qqs6LZg+mLGYJWqQzMbIjMtJqTv87nQ==",
+ "optional": true,
+ "bin": {
+ "node-gyp-build": "bin.js",
+ "node-gyp-build-optional": "optional.js",
+ "node-gyp-build-test": "build-test.js"
+ }
+ },
+ "node_modules/normalize.css": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmmirror.com/normalize.css/-/normalize.css-8.0.1.tgz",
+ "integrity": "sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg=="
+ },
"node_modules/nth-check": {
"version": "2.1.1",
"resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz",
@@ -1173,6 +2564,39 @@
"boolbase": "^1.0.0"
}
},
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-is": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmmirror.com/object-is/-/object-is-1.1.5.tgz",
+ "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/parse-srcset": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/parse-srcset/-/parse-srcset-1.0.2.tgz",
+ "integrity": "sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q=="
+ },
"node_modules/parse5": {
"version": "6.0.1",
"resolved": "https://registry.npmmirror.com/parse5/-/parse5-6.0.1.tgz",
@@ -1188,17 +2612,26 @@
"parse5": "^6.0.1"
}
},
+ "node_modules/path-browserify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz",
+ "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g=="
+ },
"node_modules/picocolors": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
- "dev": true
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
+ },
+ "node_modules/popper.js": {
+ "version": "1.16.1",
+ "resolved": "https://registry.npmmirror.com/popper.js/-/popper.js-1.16.1.tgz",
+ "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==",
+ "deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1"
},
"node_modules/postcss": {
"version": "8.4.21",
"resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.21.tgz",
"integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==",
- "dev": true,
"dependencies": {
"nanoid": "^3.3.4",
"picocolors": "^1.0.0",
@@ -1214,6 +2647,148 @@
"integrity": "sha512-q44QFLhOhty2Bd0Y46fnYW0gD/cbVM9dUVtNTDKPcdXSMA7jfY+Jpd6rk3GB0lcQss0z5s/6CmVP0Z/hV+g6pw==",
"dev": true
},
+ "node_modules/prop-types": {
+ "version": "15.8.1",
+ "resolved": "https://registry.npmmirror.com/prop-types/-/prop-types-15.8.1.tgz",
+ "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
+ "dependencies": {
+ "loose-envify": "^1.4.0",
+ "object-assign": "^4.1.1",
+ "react-is": "^16.13.1"
+ }
+ },
+ "node_modules/prr": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz",
+ "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==",
+ "optional": true
+ },
+ "node_modules/punycode": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.0.tgz",
+ "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/querystring": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmmirror.com/querystring/-/querystring-0.2.0.tgz",
+ "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==",
+ "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.",
+ "engines": {
+ "node": ">=0.4.x"
+ }
+ },
+ "node_modules/querystringify": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/querystringify/-/querystringify-2.2.0.tgz",
+ "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="
+ },
+ "node_modules/react": {
+ "version": "17.0.2",
+ "resolved": "https://registry.npmmirror.com/react/-/react-17.0.2.tgz",
+ "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==",
+ "dependencies": {
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-dom": {
+ "version": "17.0.2",
+ "resolved": "https://registry.npmmirror.com/react-dom/-/react-dom-17.0.2.tgz",
+ "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==",
+ "dependencies": {
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.1",
+ "scheduler": "^0.20.2"
+ },
+ "peerDependencies": {
+ "react": "17.0.2"
+ }
+ },
+ "node_modules/react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+ },
+ "node_modules/react-lifecycles-compat": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmmirror.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
+ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
+ },
+ "node_modules/react-popper": {
+ "version": "1.3.11",
+ "resolved": "https://registry.npmmirror.com/react-popper/-/react-popper-1.3.11.tgz",
+ "integrity": "sha512-VSA/bS+pSndSF2fiasHK/PTEEAyOpX60+H5EPAjoArr8JGm+oihu4UbrqcEBpQibJxBVCpYyjAX7abJ+7DoYVg==",
+ "dependencies": {
+ "@babel/runtime": "^7.1.2",
+ "@hypnosphi/create-react-context": "^0.3.1",
+ "deep-equal": "^1.1.1",
+ "popper.js": "^1.14.4",
+ "prop-types": "^15.6.1",
+ "typed-styles": "^0.0.7",
+ "warning": "^4.0.2"
+ },
+ "peerDependencies": {
+ "react": "0.14.x || ^15.0.0 || ^16.0.0 || ^17.0.0"
+ }
+ },
+ "node_modules/react-transition-group": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmmirror.com/react-transition-group/-/react-transition-group-2.9.0.tgz",
+ "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==",
+ "dependencies": {
+ "dom-helpers": "^3.4.0",
+ "loose-envify": "^1.4.0",
+ "prop-types": "^15.6.2",
+ "react-lifecycles-compat": "^3.0.4"
+ },
+ "peerDependencies": {
+ "react": ">=15.0.0",
+ "react-dom": ">=15.0.0"
+ }
+ },
+ "node_modules/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "optional": true,
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/regenerator-runtime": {
+ "version": "0.13.11",
+ "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
+ "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
+ },
+ "node_modules/regexp.prototype.flags": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz",
+ "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "functions-have-names": "^1.2.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/requires-port": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz",
+ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="
+ },
"node_modules/rollup": {
"version": "3.20.2",
"resolved": "https://registry.npmmirror.com/rollup/-/rollup-3.20.2.tgz",
@@ -1230,6 +2805,34 @@
"fsevents": "~2.3.2"
}
},
+ "node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "optional": true
+ },
+ "node_modules/sanitize-html": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmmirror.com/sanitize-html/-/sanitize-html-2.7.3.tgz",
+ "integrity": "sha512-jMaHG29ak4miiJ8wgqA1849iInqORgNv7SLfSw9LtfOhEUQ1C0YHKH73R+hgyufBW9ZFeJrb057k9hjlfBCVlw==",
+ "dependencies": {
+ "deepmerge": "^4.2.2",
+ "escape-string-regexp": "^4.0.0",
+ "htmlparser2": "^6.0.0",
+ "is-plain-object": "^5.0.0",
+ "parse-srcset": "^1.0.2",
+ "postcss": "^8.3.11"
+ }
+ },
+ "node_modules/scheduler": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmmirror.com/scheduler/-/scheduler-0.20.2.tgz",
+ "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==",
+ "dependencies": {
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.1"
+ }
+ },
"node_modules/shiki": {
"version": "0.14.1",
"resolved": "https://registry.npmmirror.com/shiki/-/shiki-0.14.1.tgz",
@@ -1264,7 +2867,6 @@
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz",
"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
- "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -1299,11 +2901,24 @@
"node": "^12.20.0 || >=14"
}
},
+ "node_modules/string_decoder": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+ "optional": true,
+ "dependencies": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "node_modules/style-mod": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmmirror.com/style-mod/-/style-mod-4.0.3.tgz",
+ "integrity": "sha512-78Jv8kYJdjbvRwwijtCevYADfsI0lGzYJe4mMFdceO8l75DFFDoqBhR1jVDicDRRaX4//g1u9wKeo+ztc2h1Rw=="
+ },
"node_modules/tr46": {
"version": "0.0.3",
"resolved": "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
- "dev": true
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
},
"node_modules/tslib": {
"version": "2.5.0",
@@ -1311,6 +2926,67 @@
"integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==",
"dev": true
},
+ "node_modules/typed-styles": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmmirror.com/typed-styles/-/typed-styles-0.0.7.tgz",
+ "integrity": "sha512-pzP0PWoZUhsECYjABgCGQlRGL1n7tOHsgwYv3oIiEpJwGhFTuty/YNeduxQYzXXa3Ge5BdT6sHYIQYpl4uJ+5Q=="
+ },
+ "node_modules/typestyle": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmmirror.com/typestyle/-/typestyle-2.4.0.tgz",
+ "integrity": "sha512-/d1BL6Qi+YlMLEydnUEB8KL/CAjAN8cyt3/UyGnOyBrWf7bLGcR/6yhmsaUstO2IcYwZfagjE7AIzuI2vUW9mg==",
+ "dependencies": {
+ "csstype": "3.0.10",
+ "free-style": "3.1.0"
+ }
+ },
+ "node_modules/typestyle/node_modules/csstype": {
+ "version": "3.0.10",
+ "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.0.10.tgz",
+ "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA=="
+ },
+ "node_modules/uc.micro": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmmirror.com/uc.micro/-/uc.micro-1.0.6.tgz",
+ "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA=="
+ },
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/url": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmmirror.com/url/-/url-0.11.0.tgz",
+ "integrity": "sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==",
+ "dependencies": {
+ "punycode": "1.3.2",
+ "querystring": "0.2.0"
+ }
+ },
+ "node_modules/url-parse": {
+ "version": "1.5.10",
+ "resolved": "https://registry.npmmirror.com/url-parse/-/url-parse-1.5.10.tgz",
+ "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
+ "dependencies": {
+ "querystringify": "^2.1.1",
+ "requires-port": "^1.0.0"
+ }
+ },
+ "node_modules/url/node_modules/punycode": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmmirror.com/punycode/-/punycode-1.3.2.tgz",
+ "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw=="
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+ "optional": true
+ },
"node_modules/valid-data-url": {
"version": "3.0.1",
"resolved": "https://registry.npmmirror.com/valid-data-url/-/valid-data-url-3.0.1.tgz",
@@ -1320,6 +2996,38 @@
"node": ">=10"
}
},
+ "node_modules/validate.io-array": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmmirror.com/validate.io-array/-/validate.io-array-1.0.6.tgz",
+ "integrity": "sha512-DeOy7CnPEziggrOO5CZhVKJw6S3Yi7e9e65R1Nl/RTN1vTQKnzjfvks0/8kQ40FP/dsjRAOd4hxmJ7uLa6vxkg=="
+ },
+ "node_modules/validate.io-function": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/validate.io-function/-/validate.io-function-1.0.2.tgz",
+ "integrity": "sha512-LlFybRJEriSuBnUhQyG5bwglhh50EpTL2ul23MPIuR1odjO7XaMLFV8vHGwp7AZciFxtYOeiSCT5st+XSPONiQ=="
+ },
+ "node_modules/validate.io-integer": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmmirror.com/validate.io-integer/-/validate.io-integer-1.0.5.tgz",
+ "integrity": "sha512-22izsYSLojN/P6bppBqhgUDjCkr5RY2jd+N2a3DCAUey8ydvrZ/OkGvFPR7qfOpwR2LC5p4Ngzxz36g5Vgr/hQ==",
+ "dependencies": {
+ "validate.io-number": "^1.0.3"
+ }
+ },
+ "node_modules/validate.io-integer-array": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/validate.io-integer-array/-/validate.io-integer-array-1.0.0.tgz",
+ "integrity": "sha512-mTrMk/1ytQHtCY0oNO3dztafHYyGU88KL+jRxWuzfOmQb+4qqnWmI+gykvGp8usKZOM0H7keJHEbRaFiYA0VrA==",
+ "dependencies": {
+ "validate.io-array": "^1.0.3",
+ "validate.io-integer": "^1.0.4"
+ }
+ },
+ "node_modules/validate.io-number": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/validate.io-number/-/validate.io-number-1.0.3.tgz",
+ "integrity": "sha512-kRAyotcbNaSYoDnXvb4MHg/0a1egJdLwS6oJ38TJY7aw9n93Fl/3blIXdyYvPOp55CNxywooG/3BcrwNrBpcSg=="
+ },
"node_modules/vite": {
"version": "4.3.0",
"resolved": "https://registry.npmmirror.com/vite/-/vite-4.3.0.tgz",
@@ -1415,6 +3123,19 @@
"@vue/shared": "3.2.47"
}
},
+ "node_modules/w3c-keyname": {
+ "version": "2.2.6",
+ "resolved": "https://registry.npmmirror.com/w3c-keyname/-/w3c-keyname-2.2.6.tgz",
+ "integrity": "sha512-f+fciywl1SJEniZHD6H+kUO8gOnwIr7f4ijKA6+ZvJFjeGi1r4PDLl53Ayud9O/rk64RqgoQine0feoeOU0kXg=="
+ },
+ "node_modules/warning": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmmirror.com/warning/-/warning-4.0.3.tgz",
+ "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==",
+ "dependencies": {
+ "loose-envify": "^1.0.0"
+ }
+ },
"node_modules/web-resource-inliner": {
"version": "6.0.1",
"resolved": "https://registry.npmmirror.com/web-resource-inliner/-/web-resource-inliner-6.0.1.tgz",
@@ -1459,14 +3180,12 @@
"node_modules/webidl-conversions": {
"version": "3.0.1",
"resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
- "dev": true
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
},
"node_modules/whatwg-url": {
"version": "5.0.0",
"resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-5.0.0.tgz",
"integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "dev": true,
"dependencies": {
"tr46": "~0.0.3",
"webidl-conversions": "^3.0.0"
@@ -1478,6 +3197,26 @@
"integrity": "sha512-Gd9+TUn5nXdwj/hFsPVx5cuHHiF5Bwuc30jZ4+ronF1qHK5O7HD0sgmXWSEgwKquT3ClLoKPVbO6qGwVwLzvAw==",
"dev": true
},
+ "node_modules/ws": {
+ "version": "7.5.9",
+ "resolved": "https://registry.npmmirror.com/ws/-/ws-7.5.9.tgz",
+ "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
+ "engines": {
+ "node": ">=8.3.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": "^5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
"node_modules/xmldom-sre": {
"version": "0.1.31",
"resolved": "https://registry.npmmirror.com/xmldom-sre/-/xmldom-sre-0.1.31.tgz",
@@ -1486,6 +3225,90 @@
"engines": {
"node": ">=0.1"
}
+ },
+ "node_modules/xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "optional": true,
+ "engines": {
+ "node": ">=0.4"
+ }
+ },
+ "node_modules/y-codemirror": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/y-codemirror/-/y-codemirror-3.0.1.tgz",
+ "integrity": "sha512-TsLSoouAZxkxOKbmTj7qdwZNS0lZMVqIdp7/j9EgUUqYj0remZYDGl6VBABrmp9UX1QvX6RoXXqzbNhftgfCbA==",
+ "dependencies": {
+ "lib0": "^0.2.42"
+ },
+ "peerDependencies": {
+ "codemirror": "^5.52.2",
+ "yjs": "^13.5.17"
+ }
+ },
+ "node_modules/y-leveldb": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmmirror.com/y-leveldb/-/y-leveldb-0.1.2.tgz",
+ "integrity": "sha512-6ulEn5AXfXJYi89rXPEg2mMHAyyw8+ZfeMMdOtBbV8FJpQ1NOrcgi6DTAcXof0dap84NjHPT2+9d0rb6cFsjEg==",
+ "optional": true,
+ "dependencies": {
+ "level": "^6.0.1",
+ "lib0": "^0.2.31"
+ },
+ "peerDependencies": {
+ "yjs": "^13.0.0"
+ }
+ },
+ "node_modules/y-protocols": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmmirror.com/y-protocols/-/y-protocols-1.0.5.tgz",
+ "integrity": "sha512-Wil92b7cGk712lRHDqS4T90IczF6RkcvCwAD0A2OPg+adKmOe+nOiT/N2hvpQIWS3zfjmtL4CPaH5sIW1Hkm/A==",
+ "dependencies": {
+ "lib0": "^0.2.42"
+ }
+ },
+ "node_modules/y-websocket": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmmirror.com/y-websocket/-/y-websocket-1.5.0.tgz",
+ "integrity": "sha512-A8AO6XtnQlYwWFytWdkDCeXg4l8ghRTIw5h2YUgUYDmEC9ugWGIwYNW80yadhSFAF7CvuWTEkQNEpevnH6EiZw==",
+ "dependencies": {
+ "lib0": "^0.2.52",
+ "lodash.debounce": "^4.0.8",
+ "y-protocols": "^1.0.5"
+ },
+ "bin": {
+ "y-websocket": "bin/server.js",
+ "y-websocket-server": "bin/server.js"
+ },
+ "optionalDependencies": {
+ "ws": "^6.2.1",
+ "y-leveldb": "^0.1.0"
+ },
+ "peerDependencies": {
+ "yjs": "^13.5.6"
+ }
+ },
+ "node_modules/y-websocket/node_modules/ws": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmmirror.com/ws/-/ws-6.2.2.tgz",
+ "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==",
+ "optional": true,
+ "dependencies": {
+ "async-limiter": "~1.0.0"
+ }
+ },
+ "node_modules/yjs": {
+ "version": "13.6.0",
+ "resolved": "https://registry.npmmirror.com/yjs/-/yjs-13.6.0.tgz",
+ "integrity": "sha512-tFZtuQV6XamtDa9SfZhUsxchUcTBWe7fzpo1UWZDLXGejTZ5t9MCswGYzyvq7+BDzfEc9oX54QEbzI/4NyS6+g==",
+ "dependencies": {
+ "lib0": "^0.2.74"
+ },
+ "engines": {
+ "node": ">=16.0.0",
+ "npm": ">=8.0.0"
+ }
}
},
"dependencies": {
@@ -1648,6 +3471,139 @@
"integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==",
"dev": true
},
+ "@babel/runtime": {
+ "version": "7.21.0",
+ "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.21.0.tgz",
+ "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==",
+ "requires": {
+ "regenerator-runtime": "^0.13.11"
+ }
+ },
+ "@blueprintjs/colors": {
+ "version": "4.1.22",
+ "resolved": "https://registry.npmmirror.com/@blueprintjs/colors/-/colors-4.1.22.tgz",
+ "integrity": "sha512-qcC7nWW9TTSS7aDxE5gbo9vrxo+IOpC6/Kzpi0rdOBYFDd02PppCdnCCjGYw1/IopSsZ9EWqDLmD7zuy0H+WEA=="
+ },
+ "@blueprintjs/core": {
+ "version": "3.54.0",
+ "resolved": "https://registry.npmmirror.com/@blueprintjs/core/-/core-3.54.0.tgz",
+ "integrity": "sha512-u2c1s6MNn0ocxhnC6CuiG5g3KV6b4cKUvSobznepA9SC3/AL1s3XOvT7DLWoHRv2B/vBOHFYEDzLw2/vlcGGZg==",
+ "requires": {
+ "@blueprintjs/colors": "^4.0.0-alpha.3",
+ "@blueprintjs/icons": "^3.33.0",
+ "@juggle/resize-observer": "^3.3.1",
+ "@types/dom4": "^2.0.1",
+ "classnames": "^2.2",
+ "dom4": "^2.1.5",
+ "normalize.css": "^8.0.1",
+ "popper.js": "^1.16.1",
+ "react-lifecycles-compat": "^3.0.4",
+ "react-popper": "^1.3.7",
+ "react-transition-group": "^2.9.0",
+ "tslib": "~2.3.1"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.1.tgz",
+ "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
+ }
+ }
+ },
+ "@blueprintjs/icons": {
+ "version": "3.33.0",
+ "resolved": "https://registry.npmmirror.com/@blueprintjs/icons/-/icons-3.33.0.tgz",
+ "integrity": "sha512-Q6qoSDIm0kRYQZISm59UUcDCpV3oeHulkLuh3bSlw0HhcSjvEQh2PSYbtaifM60Q4aK4PCd6bwJHg7lvF1x5fQ==",
+ "requires": {
+ "classnames": "^2.2",
+ "tslib": "~2.3.1"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.1.tgz",
+ "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
+ }
+ }
+ },
+ "@blueprintjs/select": {
+ "version": "3.19.1",
+ "resolved": "https://registry.npmmirror.com/@blueprintjs/select/-/select-3.19.1.tgz",
+ "integrity": "sha512-8UJIZMaWXRMQHr14wbmzJc/CklcSKxOU5JUux0xXKQz/hDW/g1a650tlwJmnxufvRdShbGinlVfHupCs0EL6sw==",
+ "requires": {
+ "@blueprintjs/core": "^3.54.0",
+ "classnames": "^2.2",
+ "tslib": "~2.3.1"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.1.tgz",
+ "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
+ }
+ }
+ },
+ "@codemirror/autocomplete": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmmirror.com/@codemirror/autocomplete/-/autocomplete-6.5.1.tgz",
+ "integrity": "sha512-/Sv9yJmqyILbZ26U4LBHnAtbikuVxWUp+rQ8BXuRGtxZfbfKOY/WPbsUtvSP2h0ZUZMlkxV/hqbKRFzowlA6xw==",
+ "requires": {
+ "@codemirror/language": "^6.0.0",
+ "@codemirror/state": "^6.0.0",
+ "@codemirror/view": "^6.6.0",
+ "@lezer/common": "^1.0.0"
+ }
+ },
+ "@codemirror/lang-python": {
+ "version": "6.1.2",
+ "resolved": "https://registry.npmmirror.com/@codemirror/lang-python/-/lang-python-6.1.2.tgz",
+ "integrity": "sha512-nbQfifLBZstpt6Oo4XxA2LOzlSp4b/7Bc5cmodG1R+Cs5PLLCTUvsMNWDnziiCfTOG/SW1rVzXq/GbIr6WXlcw==",
+ "requires": {
+ "@codemirror/autocomplete": "^6.3.2",
+ "@codemirror/language": "^6.0.0",
+ "@lezer/python": "^1.0.0"
+ }
+ },
+ "@codemirror/lang-sql": {
+ "version": "6.4.1",
+ "resolved": "https://registry.npmmirror.com/@codemirror/lang-sql/-/lang-sql-6.4.1.tgz",
+ "integrity": "sha512-PFB56L+A0WGY35uRya+Trt5g19V9k2V9X3c55xoFW4RgiATr/yLqWsbbnEsdxuMn5tLpuikp7Kmj9smRsqBXAg==",
+ "requires": {
+ "@codemirror/autocomplete": "^6.0.0",
+ "@codemirror/language": "^6.0.0",
+ "@codemirror/state": "^6.0.0",
+ "@lezer/highlight": "^1.0.0",
+ "@lezer/lr": "^1.0.0"
+ }
+ },
+ "@codemirror/language": {
+ "version": "6.6.0",
+ "resolved": "https://registry.npmmirror.com/@codemirror/language/-/language-6.6.0.tgz",
+ "integrity": "sha512-cwUd6lzt3MfNYOobdjf14ZkLbJcnv4WtndYaoBkbor/vF+rCNguMPK0IRtvZJG4dsWiaWPcK8x1VijhvSxnstg==",
+ "requires": {
+ "@codemirror/state": "^6.0.0",
+ "@codemirror/view": "^6.0.0",
+ "@lezer/common": "^1.0.0",
+ "@lezer/highlight": "^1.0.0",
+ "@lezer/lr": "^1.0.0",
+ "style-mod": "^4.0.0"
+ }
+ },
+ "@codemirror/state": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmmirror.com/@codemirror/state/-/state-6.2.0.tgz",
+ "integrity": "sha512-69QXtcrsc3RYtOtd+GsvczJ319udtBf1PTrr2KbLWM/e2CXUPnh0Nz9AUo8WfhSQ7GeL8dPVNUmhQVgpmuaNGA=="
+ },
+ "@codemirror/view": {
+ "version": "6.9.6",
+ "resolved": "https://registry.npmmirror.com/@codemirror/view/-/view-6.9.6.tgz",
+ "integrity": "sha512-g68PxS3RkHpxfYS6DTWCy1jeA5/oHzmdWjMVPkOzqQyxpElHEcPncUd4EeMVSa4okt0sS3hNXVaRnJqO/7MeJw==",
+ "requires": {
+ "@codemirror/state": "^6.1.4",
+ "style-mod": "^4.0.0",
+ "w3c-keyname": "^2.2.4"
+ }
+ },
"@docsearch/css": {
"version": "3.3.3",
"resolved": "https://registry.npmmirror.com/@docsearch/css/-/css-3.3.3.tgz",
@@ -1830,6 +3786,585 @@
"dev": true,
"optional": true
},
+ "@fortawesome/fontawesome-free": {
+ "version": "5.15.4",
+ "resolved": "https://registry.npmmirror.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.4.tgz",
+ "integrity": "sha512-eYm8vijH/hpzr/6/1CJ/V/Eb1xQFW2nnUKArb3z+yUWv7HTwj6M7SP957oMjfZjAHU6qpoNc2wQvIxBLWYa/Jg=="
+ },
+ "@hypnosphi/create-react-context": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmmirror.com/@hypnosphi/create-react-context/-/create-react-context-0.3.1.tgz",
+ "integrity": "sha512-V1klUed202XahrWJLLOT3EXNeCpFHCcJntdFGI15ntCwau+jfT386w7OFTMaCqOgXUH1fa0w/I1oZs+i/Rfr0A==",
+ "requires": {
+ "gud": "^1.0.0",
+ "warning": "^4.0.3"
+ }
+ },
+ "@juggle/resize-observer": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmmirror.com/@juggle/resize-observer/-/resize-observer-3.4.0.tgz",
+ "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA=="
+ },
+ "@jupyter/ydoc": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmmirror.com/@jupyter/ydoc/-/ydoc-0.2.4.tgz",
+ "integrity": "sha512-QACcB4bF+Ew4UJmJP+3OyiyQm3vwRYF6iZCQK9q0nE2U5uAosQkfLyT6Bx71jPUXe4G9lEF6m9fjpZvSUX7Lyw==",
+ "requires": {
+ "@jupyterlab/nbformat": "^3.0.0 || ^4.0.0-alpha.15",
+ "@lumino/coreutils": "^1.11.0 || ^2.0.0-alpha.6",
+ "@lumino/disposable": "^1.10.0 || ^2.0.0-alpha.6",
+ "@lumino/signaling": "^1.10.0 || ^2.0.0-alpha.6",
+ "y-protocols": "^1.0.5",
+ "yjs": "^13.5.40"
+ }
+ },
+ "@jupyterlab/application": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/application/-/application-3.6.3.tgz",
+ "integrity": "sha512-G0tR6sUSCuHB8vGQnaB5lfihKNJVHtqYNoMlsZYF9rYpZEhW1TRD4uE5rg4RfDDR+GghjckQlP3rRNB2Vn4tMA==",
+ "requires": {
+ "@fortawesome/fontawesome-free": "^5.12.0",
+ "@jupyterlab/apputils": "^3.6.3",
+ "@jupyterlab/coreutils": "^5.6.3",
+ "@jupyterlab/docregistry": "^3.6.3",
+ "@jupyterlab/rendermime": "^3.6.3",
+ "@jupyterlab/rendermime-interfaces": "^3.6.3",
+ "@jupyterlab/services": "^6.6.3",
+ "@jupyterlab/statedb": "^3.6.3",
+ "@jupyterlab/translation": "^3.6.3",
+ "@jupyterlab/ui-components": "^3.6.3",
+ "@lumino/algorithm": "^1.9.0",
+ "@lumino/application": "^1.31.4",
+ "@lumino/commands": "^1.19.0",
+ "@lumino/coreutils": "^1.11.0",
+ "@lumino/disposable": "^1.10.0",
+ "@lumino/messaging": "^1.10.0",
+ "@lumino/polling": "^1.9.0",
+ "@lumino/properties": "^1.8.0",
+ "@lumino/signaling": "^1.10.0",
+ "@lumino/widgets": "^1.37.2"
+ }
+ },
+ "@jupyterlab/apputils": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/apputils/-/apputils-3.6.3.tgz",
+ "integrity": "sha512-um2Aaa5fOUwHFpAqKTDA+MFpnAldzOILIi5QsKOWRxiJA2W8x+hlg5HvHbq+eSWuWEU3ah15M7htzBcL3g9d4Q==",
+ "requires": {
+ "@jupyterlab/coreutils": "^5.6.3",
+ "@jupyterlab/observables": "^4.6.3",
+ "@jupyterlab/services": "^6.6.3",
+ "@jupyterlab/settingregistry": "^3.6.3",
+ "@jupyterlab/statedb": "^3.6.3",
+ "@jupyterlab/translation": "^3.6.3",
+ "@jupyterlab/ui-components": "^3.6.3",
+ "@lumino/algorithm": "^1.9.0",
+ "@lumino/commands": "^1.19.0",
+ "@lumino/coreutils": "^1.11.0",
+ "@lumino/disposable": "^1.10.0",
+ "@lumino/domutils": "^1.8.0",
+ "@lumino/messaging": "^1.10.0",
+ "@lumino/polling": "^1.9.0",
+ "@lumino/properties": "^1.8.0",
+ "@lumino/signaling": "^1.10.0",
+ "@lumino/virtualdom": "^1.14.0",
+ "@lumino/widgets": "^1.37.2",
+ "@types/react": "^17.0.0",
+ "react": "^17.0.1",
+ "react-dom": "^17.0.1",
+ "sanitize-html": "~2.7.3",
+ "url": "^0.11.0"
+ }
+ },
+ "@jupyterlab/codeeditor": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/codeeditor/-/codeeditor-3.6.3.tgz",
+ "integrity": "sha512-SnVo5KDhyRkK/o1SDRX9nehLEAMaOBFf+GUx2jeXBTfr6wTKcwDBnJAUwlOfncwRlMV79aUIqTIcS861FSXDyA==",
+ "requires": {
+ "@jupyter/ydoc": "~0.2.3",
+ "@jupyterlab/coreutils": "^5.6.3",
+ "@jupyterlab/nbformat": "^3.6.3",
+ "@jupyterlab/observables": "^4.6.3",
+ "@jupyterlab/translation": "^3.6.3",
+ "@jupyterlab/ui-components": "^3.6.3",
+ "@lumino/coreutils": "^1.11.0",
+ "@lumino/disposable": "^1.10.0",
+ "@lumino/dragdrop": "^1.13.0",
+ "@lumino/messaging": "^1.10.0",
+ "@lumino/signaling": "^1.10.0",
+ "@lumino/widgets": "^1.37.2"
+ }
+ },
+ "@jupyterlab/codemirror": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/codemirror/-/codemirror-3.6.3.tgz",
+ "integrity": "sha512-VU5bInzSqsyPGZkEd/w6HtJ9PSw7U5twoyrQSpSM+E2SEYWskaBZOHJf8XNunVoRRKwSvDLyxSs07Ot6zUlA0w==",
+ "requires": {
+ "@jupyter/ydoc": "~0.2.3",
+ "@jupyterlab/apputils": "^3.6.3",
+ "@jupyterlab/codeeditor": "^3.6.3",
+ "@jupyterlab/coreutils": "^5.6.3",
+ "@jupyterlab/nbformat": "^3.6.3",
+ "@jupyterlab/observables": "^4.6.3",
+ "@jupyterlab/statusbar": "^3.6.3",
+ "@jupyterlab/translation": "^3.6.3",
+ "@lumino/algorithm": "^1.9.0",
+ "@lumino/commands": "^1.19.0",
+ "@lumino/coreutils": "^1.11.0",
+ "@lumino/disposable": "^1.10.0",
+ "@lumino/polling": "^1.9.0",
+ "@lumino/signaling": "^1.10.0",
+ "@lumino/widgets": "^1.37.2",
+ "codemirror": "~5.61.0",
+ "react": "^17.0.1",
+ "y-codemirror": "^3.0.1"
+ }
+ },
+ "@jupyterlab/coreutils": {
+ "version": "5.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/coreutils/-/coreutils-5.6.3.tgz",
+ "integrity": "sha512-jRVTpwGzP9wBNYuaZTip89FS1qbeSYrEO2qdNVdW2rs0mQHcIlu3Fkv5muMFmKYGi0XHhG3UhZiWQ7qiPw2svQ==",
+ "requires": {
+ "@lumino/coreutils": "^1.11.0",
+ "@lumino/disposable": "^1.10.0",
+ "@lumino/signaling": "^1.10.0",
+ "minimist": "~1.2.0",
+ "moment": "^2.24.0",
+ "path-browserify": "^1.0.0",
+ "url-parse": "~1.5.1"
+ }
+ },
+ "@jupyterlab/docprovider": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/docprovider/-/docprovider-3.6.3.tgz",
+ "integrity": "sha512-M5IoyykDpWnUFNePHz3+fi/RNvV92UNbQGfAvsaCMSn+fl48rD4rHB9EZGceOisb3m1U+E4SntKYI3pl49yUEg==",
+ "requires": {
+ "@jupyter/ydoc": "~0.2.3",
+ "@jupyterlab/apputils": "^3.6.3",
+ "@jupyterlab/coreutils": "^5.6.3",
+ "@jupyterlab/services": "^6.6.3",
+ "@jupyterlab/translation": "^3.6.3",
+ "@lumino/coreutils": "^1.11.0",
+ "@lumino/disposable": "^1.10.0",
+ "@lumino/signaling": "^1.10.0",
+ "y-protocols": "^1.0.5",
+ "y-websocket": "^1.4.6"
+ }
+ },
+ "@jupyterlab/docregistry": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/docregistry/-/docregistry-3.6.3.tgz",
+ "integrity": "sha512-unDMrtCSGKPqX9uvYCkI7zGTvskuC9odAPIHPsYSVMcHL/o5M7lQkHmRZCoSIezfe5OvPGXbYT2boQrBKXqCFw==",
+ "requires": {
+ "@jupyter/ydoc": "~0.2.3",
+ "@jupyterlab/apputils": "^3.6.3",
+ "@jupyterlab/codeeditor": "^3.6.3",
+ "@jupyterlab/codemirror": "^3.6.3",
+ "@jupyterlab/coreutils": "^5.6.3",
+ "@jupyterlab/docprovider": "^3.6.3",
+ "@jupyterlab/observables": "^4.6.3",
+ "@jupyterlab/rendermime": "^3.6.3",
+ "@jupyterlab/rendermime-interfaces": "^3.6.3",
+ "@jupyterlab/services": "^6.6.3",
+ "@jupyterlab/translation": "^3.6.3",
+ "@jupyterlab/ui-components": "^3.6.3",
+ "@lumino/algorithm": "^1.9.0",
+ "@lumino/coreutils": "^1.11.0",
+ "@lumino/disposable": "^1.10.0",
+ "@lumino/messaging": "^1.10.0",
+ "@lumino/signaling": "^1.10.0",
+ "@lumino/widgets": "^1.37.2"
+ }
+ },
+ "@jupyterlab/mathjax2": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/mathjax2/-/mathjax2-3.6.3.tgz",
+ "integrity": "sha512-Aju49iHqwvsArc3qvQGDAOpQkpKvHfCXueQX7qJDRBst764jw+NjvWK11ODkRgUwsv0Rxi4YzOT0Z7N6Qnc5Rw==",
+ "requires": {
+ "@jupyterlab/rendermime-interfaces": "^3.6.3",
+ "@lumino/coreutils": "^1.11.0"
+ }
+ },
+ "@jupyterlab/nbformat": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/nbformat/-/nbformat-3.6.3.tgz",
+ "integrity": "sha512-0qJLa4dtOmu9EmHFeM7gaZi4qheovIPc9ZrgGGRuG0obajs4YYlvh4MQvCSgpVhme4AuBfGlcfzhlx+Gbzr5Xw==",
+ "requires": {
+ "@lumino/coreutils": "^1.11.0"
+ }
+ },
+ "@jupyterlab/observables": {
+ "version": "4.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/observables/-/observables-4.6.3.tgz",
+ "integrity": "sha512-CvQoL+9WHXOy/CXp/PQLi4c5iZVJ4psz11+GrycDDinX1AdVQ8a43OLTC0gxWl3Tk2C8ZvAi1sgn4FS68E1ACQ==",
+ "requires": {
+ "@lumino/algorithm": "^1.9.0",
+ "@lumino/coreutils": "^1.11.0",
+ "@lumino/disposable": "^1.10.0",
+ "@lumino/messaging": "^1.10.0",
+ "@lumino/signaling": "^1.10.0"
+ }
+ },
+ "@jupyterlab/rendermime": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/rendermime/-/rendermime-3.6.3.tgz",
+ "integrity": "sha512-w3e38OddJin9fbfe7EWsKiiup/0ayvHPrAsacde8PqGLvi/sLeAXT98PqihsKt8EAlOgXSkSO0Ivjbd0JzgGgA==",
+ "requires": {
+ "@jupyterlab/apputils": "^3.6.3",
+ "@jupyterlab/codemirror": "^3.6.3",
+ "@jupyterlab/coreutils": "^5.6.3",
+ "@jupyterlab/nbformat": "^3.6.3",
+ "@jupyterlab/observables": "^4.6.3",
+ "@jupyterlab/rendermime-interfaces": "^3.6.3",
+ "@jupyterlab/services": "^6.6.3",
+ "@jupyterlab/translation": "^3.6.3",
+ "@lumino/algorithm": "^1.9.0",
+ "@lumino/coreutils": "^1.11.0",
+ "@lumino/messaging": "^1.10.0",
+ "@lumino/signaling": "^1.10.0",
+ "@lumino/widgets": "^1.37.2",
+ "lodash.escape": "^4.0.1",
+ "marked": "^4.0.17"
+ }
+ },
+ "@jupyterlab/rendermime-interfaces": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/rendermime-interfaces/-/rendermime-interfaces-3.6.3.tgz",
+ "integrity": "sha512-VHZVnqB0K1nmoQMOhFGHwvSYMQmxqcOC3wWDRFeUOv8S+tejTYfbrKXPOZJvhdGB52Jn8XNIesXOuNpLhl4HmQ==",
+ "requires": {
+ "@jupyterlab/translation": "^3.6.3",
+ "@lumino/coreutils": "^1.11.0",
+ "@lumino/widgets": "^1.37.2"
+ }
+ },
+ "@jupyterlab/services": {
+ "version": "6.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/services/-/services-6.6.3.tgz",
+ "integrity": "sha512-BxEOMRl9X18T5wY7iV6ZJhARnibFghpD3OruqeSbnGdbRv6XJi8prsRbCQQ6Mf9agvf81B20KmDvYKikPHC0xQ==",
+ "requires": {
+ "@jupyterlab/coreutils": "^5.6.3",
+ "@jupyterlab/nbformat": "^3.6.3",
+ "@jupyterlab/observables": "^4.6.3",
+ "@jupyterlab/settingregistry": "^3.6.3",
+ "@jupyterlab/statedb": "^3.6.3",
+ "@lumino/algorithm": "^1.9.0",
+ "@lumino/coreutils": "^1.11.0",
+ "@lumino/disposable": "^1.10.0",
+ "@lumino/polling": "^1.9.0",
+ "@lumino/signaling": "^1.10.0",
+ "node-fetch": "^2.6.0",
+ "ws": "^7.4.6"
+ }
+ },
+ "@jupyterlab/settingregistry": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/settingregistry/-/settingregistry-3.6.3.tgz",
+ "integrity": "sha512-pnzIge0ZC8V63R97HiNroJ0eaPM0DN6x65SStyLuv/K8Qez4XqpOdc0Wfell5ri5mxMvm1qKekuFeTikqSXQKQ==",
+ "requires": {
+ "@jupyterlab/statedb": "^3.6.3",
+ "@lumino/commands": "^1.19.0",
+ "@lumino/coreutils": "^1.11.0",
+ "@lumino/disposable": "^1.10.0",
+ "@lumino/signaling": "^1.10.0",
+ "ajv": "^6.12.3",
+ "json5": "^2.1.1"
+ }
+ },
+ "@jupyterlab/statedb": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/statedb/-/statedb-3.6.3.tgz",
+ "integrity": "sha512-A36L+0NN8f0WOES2GdtZjp9uFuC7IBjhKiO/RlKRX5AFjNxoJ9oO3PZtoxJQYPnGBljMqVdRa+m9aYEfvKhYyQ==",
+ "requires": {
+ "@lumino/commands": "^1.19.0",
+ "@lumino/coreutils": "^1.11.0",
+ "@lumino/disposable": "^1.10.0",
+ "@lumino/properties": "^1.8.0",
+ "@lumino/signaling": "^1.10.0"
+ }
+ },
+ "@jupyterlab/statusbar": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/statusbar/-/statusbar-3.6.3.tgz",
+ "integrity": "sha512-m59NLR0Zghm53PU6hDzRF4XVORnJx/YRx0svcjj/TGLk8LSffpQbUDBy24dl3tOuChk4D5cCdgeDH1X30TzCaA==",
+ "requires": {
+ "@jupyterlab/apputils": "^3.6.3",
+ "@jupyterlab/codeeditor": "^3.6.3",
+ "@jupyterlab/services": "^6.6.3",
+ "@jupyterlab/translation": "^3.6.3",
+ "@jupyterlab/ui-components": "^3.6.3",
+ "@lumino/algorithm": "^1.9.0",
+ "@lumino/coreutils": "^1.11.0",
+ "@lumino/disposable": "^1.10.0",
+ "@lumino/messaging": "^1.10.0",
+ "@lumino/signaling": "^1.10.0",
+ "@lumino/widgets": "^1.37.2",
+ "csstype": "~3.0.3",
+ "react": "^17.0.1",
+ "typestyle": "^2.0.4"
+ },
+ "dependencies": {
+ "csstype": {
+ "version": "3.0.11",
+ "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.0.11.tgz",
+ "integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw=="
+ }
+ }
+ },
+ "@jupyterlab/theme-light-extension": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/theme-light-extension/-/theme-light-extension-3.6.3.tgz",
+ "integrity": "sha512-f0pFzwO1UPev6HPin1vl0m4s/ur2nm0z9BCFCP7LPTNv1njN6pYkhpUp1oluCZ09NbkRk2e0x7ed9z/2fgz3vA==",
+ "requires": {
+ "@jupyterlab/application": "^3.6.3",
+ "@jupyterlab/apputils": "^3.6.3",
+ "@jupyterlab/translation": "^3.6.3"
+ }
+ },
+ "@jupyterlab/translation": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/translation/-/translation-3.6.3.tgz",
+ "integrity": "sha512-m+wwBv/hiN5Y6Sb7Ij150ZhPXZdhN5wI8CT3afnzARwKr2Aww5AIURO3upmMwnKaPVQTrWqsS3+7bZS/21JuJA==",
+ "requires": {
+ "@jupyterlab/coreutils": "^5.6.3",
+ "@jupyterlab/services": "^6.6.3",
+ "@jupyterlab/statedb": "^3.6.3",
+ "@lumino/coreutils": "^1.11.0"
+ }
+ },
+ "@jupyterlab/ui-components": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmmirror.com/@jupyterlab/ui-components/-/ui-components-3.6.3.tgz",
+ "integrity": "sha512-XzseUo2IXclPlYcGxCIz8evjWF+dCBMmbJlvoE5OF29BYBvI5N/DUaTem8bHN5kmQwHIXX6BImHu7rbC9Xjl6w==",
+ "requires": {
+ "@blueprintjs/core": "^3.36.0",
+ "@blueprintjs/select": "^3.15.0",
+ "@jupyterlab/coreutils": "^5.6.3",
+ "@jupyterlab/translation": "^3.6.3",
+ "@lumino/algorithm": "^1.9.0",
+ "@lumino/commands": "^1.19.0",
+ "@lumino/coreutils": "^1.11.0",
+ "@lumino/disposable": "^1.10.0",
+ "@lumino/signaling": "^1.10.0",
+ "@lumino/virtualdom": "^1.14.0",
+ "@lumino/widgets": "^1.37.2",
+ "@rjsf/core": "^3.1.0",
+ "react": "^17.0.1",
+ "react-dom": "^17.0.1",
+ "typestyle": "^2.0.4"
+ }
+ },
+ "@lezer/common": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/@lezer/common/-/common-1.0.2.tgz",
+ "integrity": "sha512-SVgiGtMnMnW3ActR8SXgsDhw7a0w0ChHSYAyAUxxrOiJ1OqYWEKk/xJd84tTSPo1mo6DXLObAJALNnd0Hrv7Ng=="
+ },
+ "@lezer/highlight": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmmirror.com/@lezer/highlight/-/highlight-1.1.4.tgz",
+ "integrity": "sha512-IECkFmw2l7sFcYXrV8iT9GeY4W0fU4CxX0WMwhmhMIVjoDdD1Hr6q3G2NqVtLg/yVe5n7i4menG3tJ2r4eCrPQ==",
+ "requires": {
+ "@lezer/common": "^1.0.0"
+ }
+ },
+ "@lezer/lr": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmmirror.com/@lezer/lr/-/lr-1.3.3.tgz",
+ "integrity": "sha512-JPQe3mwJlzEVqy67iQiiGozhcngbO8QBgpqZM6oL1Wj/dXckrEexpBLeFkq0edtW5IqnPRFxA24BHJni8Js69w==",
+ "requires": {
+ "@lezer/common": "^1.0.0"
+ }
+ },
+ "@lezer/python": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmmirror.com/@lezer/python/-/python-1.1.4.tgz",
+ "integrity": "sha512-x82XgYxqqX0Yiw7uIemQJ3z2QyQme5BYpectkPfNg99OQrakqfwqVolqEVIrsj4QO9rVDLFZZ49J0Vbne7UbAA==",
+ "requires": {
+ "@lezer/highlight": "^1.0.0",
+ "@lezer/lr": "^1.0.0"
+ }
+ },
+ "@lumino/algorithm": {
+ "version": "1.9.2",
+ "resolved": "https://registry.npmmirror.com/@lumino/algorithm/-/algorithm-1.9.2.tgz",
+ "integrity": "sha512-Z06lp/yuhz8CtIir3PNTGnuk7909eXt4ukJsCzChsGuot2l5Fbs96RJ/FOHgwCedaX74CtxPjXHXoszFbUA+4A=="
+ },
+ "@lumino/application": {
+ "version": "1.31.4",
+ "resolved": "https://registry.npmmirror.com/@lumino/application/-/application-1.31.4.tgz",
+ "integrity": "sha512-dOSsDJ1tXOxC3fnSHvtDQK5RcICLEVPtO19HeCGwurb5W2ZZ55SZT2b5jZu6V/v8lGdtkNbr1RJltRpJRSRb/A==",
+ "requires": {
+ "@lumino/commands": "^1.21.1",
+ "@lumino/coreutils": "^1.12.1",
+ "@lumino/widgets": "^1.37.2"
+ }
+ },
+ "@lumino/collections": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmmirror.com/@lumino/collections/-/collections-1.9.3.tgz",
+ "integrity": "sha512-2i2Wf1xnfTgEgdyKEpqM16bcYRIhUOGCDzaVCEZACVG9R1CgYwOe3zfn71slBQOVSjjRgwYrgLXu4MBpt6YK+g==",
+ "requires": {
+ "@lumino/algorithm": "^1.9.2"
+ }
+ },
+ "@lumino/commands": {
+ "version": "1.21.1",
+ "resolved": "https://registry.npmmirror.com/@lumino/commands/-/commands-1.21.1.tgz",
+ "integrity": "sha512-d1zJmwz5bHU0BM/Rl3tRdZ7/WgXnFB0bM7x7Bf0XDlmX++jnU9k0j3mh6/5JqCGLmIApKCRwVqSaV7jPmSJlcQ==",
+ "requires": {
+ "@lumino/algorithm": "^1.9.2",
+ "@lumino/coreutils": "^1.12.1",
+ "@lumino/disposable": "^1.10.4",
+ "@lumino/domutils": "^1.8.2",
+ "@lumino/keyboard": "^1.8.2",
+ "@lumino/signaling": "^1.11.1",
+ "@lumino/virtualdom": "^1.14.3"
+ }
+ },
+ "@lumino/coreutils": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmmirror.com/@lumino/coreutils/-/coreutils-1.12.1.tgz",
+ "integrity": "sha512-JLu3nTHzJk9N8ohZ85u75YxemMrmDzJdNgZztfP7F7T7mxND3YVNCkJG35a6aJ7edu1sIgCjBxOvV+hv27iYvQ==",
+ "requires": {}
+ },
+ "@lumino/disposable": {
+ "version": "1.10.4",
+ "resolved": "https://registry.npmmirror.com/@lumino/disposable/-/disposable-1.10.4.tgz",
+ "integrity": "sha512-4ZxyYcyzUS+ZeB2KAH9oAH3w0DUUceiVr+FIZHZ2TAYGWZI/85WlqJtfm0xjwEpCwLLW1TDqJrISuZu3iMmVMA==",
+ "requires": {
+ "@lumino/algorithm": "^1.9.2",
+ "@lumino/signaling": "^1.11.1"
+ }
+ },
+ "@lumino/domutils": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmmirror.com/@lumino/domutils/-/domutils-1.8.2.tgz",
+ "integrity": "sha512-QIpMfkPJrs4GrWBuJf2Sn1fpyVPmvqUUAeD8xAQo8+4V5JAT0vUDLxZ9HijefMgNCi3+Bs8Z3lQwRCrz+cFP1A=="
+ },
+ "@lumino/dragdrop": {
+ "version": "1.14.5",
+ "resolved": "https://registry.npmmirror.com/@lumino/dragdrop/-/dragdrop-1.14.5.tgz",
+ "integrity": "sha512-LC5xB82+xGF8hFyl716TMpV32OIMIMl+s3RU1PaqDkD6B7PkgiVk6NkJ4X9/GcEvl2igkvlGQt/3L7qxDAJNxw==",
+ "requires": {
+ "@lumino/coreutils": "^1.12.1",
+ "@lumino/disposable": "^1.10.4"
+ }
+ },
+ "@lumino/keyboard": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmmirror.com/@lumino/keyboard/-/keyboard-1.8.2.tgz",
+ "integrity": "sha512-Dy+XqQ1wXbcnuYtjys5A0pAqf4SpAFl9NY6owyIhXAo0Va7w3LYp3jgiP1xAaBAwMuUppiUAfrbjrysZuZ625g=="
+ },
+ "@lumino/messaging": {
+ "version": "1.10.3",
+ "resolved": "https://registry.npmmirror.com/@lumino/messaging/-/messaging-1.10.3.tgz",
+ "integrity": "sha512-F/KOwMCdqvdEG8CYAJcBSadzp6aI7a47Fr60zAKGqZATSRRRV41q53iXU7HjFPqQqQIvdn9Z7J32rBEAyQAzww==",
+ "requires": {
+ "@lumino/algorithm": "^1.9.2",
+ "@lumino/collections": "^1.9.3"
+ }
+ },
+ "@lumino/polling": {
+ "version": "1.11.4",
+ "resolved": "https://registry.npmmirror.com/@lumino/polling/-/polling-1.11.4.tgz",
+ "integrity": "sha512-yC7JLssj3mqVK6TsYj7dg4AG0rcsC42YtpoDLtz9yzO84Q5flQUfmjAPQB6oPA6wZOlISs3iasF+uO2w1ls5jg==",
+ "requires": {
+ "@lumino/coreutils": "^1.12.1",
+ "@lumino/disposable": "^1.10.4",
+ "@lumino/signaling": "^1.11.1"
+ }
+ },
+ "@lumino/properties": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmmirror.com/@lumino/properties/-/properties-1.8.2.tgz",
+ "integrity": "sha512-EkjI9Cw8R0U+xC9HxdFSu7X1tz1H1vKu20cGvJ2gU+CXlMB1DvoYJCYxCThByHZ+kURTAap4SE5x8HvKwNPbig=="
+ },
+ "@lumino/signaling": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmmirror.com/@lumino/signaling/-/signaling-1.11.1.tgz",
+ "integrity": "sha512-YCUmgw08VoyMN5KxzqPO3KMx+cwdPv28tAN06C0K7Q/dQf+oufb1XocuhZb5selTrTmmuXeizaYxgLIQGdS1fA==",
+ "requires": {
+ "@lumino/algorithm": "^1.9.2",
+ "@lumino/properties": "^1.8.2"
+ }
+ },
+ "@lumino/virtualdom": {
+ "version": "1.14.3",
+ "resolved": "https://registry.npmmirror.com/@lumino/virtualdom/-/virtualdom-1.14.3.tgz",
+ "integrity": "sha512-5joUC1yuxeXbpfbSBm/OR8Mu9HoTo6PDX0RKqzlJ9o97iml7zayFN/ynzcxScKGQAo9iaXOY8uVIvGUT8FnsGw==",
+ "requires": {
+ "@lumino/algorithm": "^1.9.2"
+ }
+ },
+ "@lumino/widgets": {
+ "version": "1.37.2",
+ "resolved": "https://registry.npmmirror.com/@lumino/widgets/-/widgets-1.37.2.tgz",
+ "integrity": "sha512-NHKu1NBDo6ETBDoNrqSkornfUCwc8EFFzw6+LWBfYVxn2PIwciq2SdiJGEyNqL+0h/A9eVKb5ui5z4cwpRekmQ==",
+ "requires": {
+ "@lumino/algorithm": "^1.9.2",
+ "@lumino/commands": "^1.21.1",
+ "@lumino/coreutils": "^1.12.1",
+ "@lumino/disposable": "^1.10.4",
+ "@lumino/domutils": "^1.8.2",
+ "@lumino/dragdrop": "^1.14.5",
+ "@lumino/keyboard": "^1.8.2",
+ "@lumino/messaging": "^1.10.3",
+ "@lumino/properties": "^1.8.2",
+ "@lumino/signaling": "^1.11.1",
+ "@lumino/virtualdom": "^1.14.3"
+ }
+ },
+ "@rjsf/core": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmmirror.com/@rjsf/core/-/core-3.2.1.tgz",
+ "integrity": "sha512-dk8ihvxFbcuIwU7G+HiJbFgwyIvaumPt5g5zfnuC26mwTUPlaDGFXKK2yITp8tJ3+hcwS5zEXtAN9wUkfuM4jA==",
+ "requires": {
+ "@types/json-schema": "^7.0.7",
+ "ajv": "^6.7.0",
+ "core-js-pure": "^3.6.5",
+ "json-schema-merge-allof": "^0.6.0",
+ "jsonpointer": "^5.0.0",
+ "lodash": "^4.17.15",
+ "nanoid": "^3.1.23",
+ "prop-types": "^15.7.2",
+ "react-is": "^16.9.0"
+ }
+ },
+ "@types/dom4": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/@types/dom4/-/dom4-2.0.2.tgz",
+ "integrity": "sha512-Rt4IC1T7xkCWa0OG1oSsPa0iqnxlDeQqKXZAHrQGLb7wFGncWm85MaxKUjAGejOrUynOgWlFi4c6S6IyJwoK4g=="
+ },
+ "@types/json-schema": {
+ "version": "7.0.11",
+ "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.11.tgz",
+ "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ=="
+ },
+ "@types/prop-types": {
+ "version": "15.7.5",
+ "resolved": "https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.5.tgz",
+ "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w=="
+ },
+ "@types/react": {
+ "version": "17.0.58",
+ "resolved": "https://registry.npmmirror.com/@types/react/-/react-17.0.58.tgz",
+ "integrity": "sha512-c1GzVY97P0fGxwGxhYq989j4XwlcHQoto6wQISOC2v6wm3h0PORRWJFHlkRjfGsiG3y1609WdQ+J+tKxvrEd6A==",
+ "requires": {
+ "@types/prop-types": "*",
+ "@types/scheduler": "*",
+ "csstype": "^3.0.2"
+ },
+ "dependencies": {
+ "csstype": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.2.tgz",
+ "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
+ }
+ }
+ },
+ "@types/scheduler": {
+ "version": "0.16.3",
+ "resolved": "https://registry.npmmirror.com/@types/scheduler/-/scheduler-0.16.3.tgz",
+ "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ=="
+ },
"@types/web-bluetooth": {
"version": "0.0.16",
"resolved": "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz",
@@ -2003,6 +4538,30 @@
}
}
},
+ "abstract-leveldown": {
+ "version": "6.2.3",
+ "resolved": "https://registry.npmmirror.com/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz",
+ "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==",
+ "optional": true,
+ "requires": {
+ "buffer": "^5.5.0",
+ "immediate": "^3.2.3",
+ "level-concat-iterator": "~2.0.0",
+ "level-supports": "~1.0.0",
+ "xtend": "~4.0.0"
+ }
+ },
+ "ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
"algoliasearch": {
"version": "4.17.0",
"resolved": "https://registry.npmmirror.com/algoliasearch/-/algoliasearch-4.17.0.tgz",
@@ -2037,6 +4596,23 @@
"integrity": "sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==",
"dev": true
},
+ "argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
+ },
+ "async-limiter": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/async-limiter/-/async-limiter-1.0.1.tgz",
+ "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
+ "optional": true
+ },
+ "base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "optional": true
+ },
"body-scroll-lock": {
"version": "4.0.0-beta.0",
"resolved": "https://registry.npmmirror.com/body-scroll-lock/-/body-scroll-lock-4.0.0-beta.0.tgz",
@@ -2049,6 +4625,25 @@
"integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
"dev": true
},
+ "buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "optional": true,
+ "requires": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "call-bind": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "requires": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ }
+ },
"cheerio": {
"version": "1.0.0-rc.10",
"resolved": "https://registry.npmmirror.com/cheerio/-/cheerio-1.0.0-rc.10.tgz",
@@ -2077,12 +4672,54 @@
"domutils": "^2.8.0"
}
},
+ "classnames": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmmirror.com/classnames/-/classnames-2.3.2.tgz",
+ "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw=="
+ },
+ "codemirror": {
+ "version": "5.61.1",
+ "resolved": "https://registry.npmmirror.com/codemirror/-/codemirror-5.61.1.tgz",
+ "integrity": "sha512-+D1NZjAucuzE93vJGbAaXzvoBHwp9nJZWWWF9utjv25+5AZUiah6CIlfb4ikG4MoDsFsCG8niiJH5++OO2LgIQ=="
+ },
"commander": {
"version": "6.2.1",
"resolved": "https://registry.npmmirror.com/commander/-/commander-6.2.1.tgz",
"integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==",
"dev": true
},
+ "compute-gcd": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/compute-gcd/-/compute-gcd-1.2.1.tgz",
+ "integrity": "sha512-TwMbxBNz0l71+8Sc4czv13h4kEqnchV9igQZBi6QUaz09dnz13juGnnaWWJTRsP3brxOoxeB4SA2WELLw1hCtg==",
+ "requires": {
+ "validate.io-array": "^1.0.3",
+ "validate.io-function": "^1.0.2",
+ "validate.io-integer-array": "^1.0.0"
+ }
+ },
+ "compute-lcm": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/compute-lcm/-/compute-lcm-1.1.2.tgz",
+ "integrity": "sha512-OFNPdQAXnQhDSKioX8/XYT6sdUlXwpeMjfd6ApxMJfyZ4GxmLR1xvMERctlYhlHwIiz6CSpBc2+qYKjHGZw4TQ==",
+ "requires": {
+ "compute-gcd": "^1.2.1",
+ "validate.io-array": "^1.0.3",
+ "validate.io-function": "^1.0.2",
+ "validate.io-integer-array": "^1.0.0"
+ }
+ },
+ "core-js-pure": {
+ "version": "3.30.1",
+ "resolved": "https://registry.npmmirror.com/core-js-pure/-/core-js-pure-3.30.1.tgz",
+ "integrity": "sha512-nXBEVpmUnNRhz83cHd9JRQC52cTMcuXAmR56+9dSMpRdpeA4I1PX6yjmhd71Eyc/wXNsdBdUDIj1QTIeZpU5Tg=="
+ },
+ "crypto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/crypto/-/crypto-1.0.1.tgz",
+ "integrity": "sha512-VxBKmeNcqQdiUQUW2Tzq0t377b54N2bMtXO/qiLa+6eRRmmC4qT3D4OnTGoT/U6O9aklQ/jTwbOtRMTTY8G0Ig==",
+ "peer": true
+ },
"css-select": {
"version": "4.3.0",
"resolved": "https://registry.npmmirror.com/css-select/-/css-select-4.3.0.tgz",
@@ -2108,28 +4745,75 @@
"integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==",
"dev": true
},
+ "deep-equal": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/deep-equal/-/deep-equal-1.1.1.tgz",
+ "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==",
+ "requires": {
+ "is-arguments": "^1.0.4",
+ "is-date-object": "^1.0.1",
+ "is-regex": "^1.0.4",
+ "object-is": "^1.0.1",
+ "object-keys": "^1.1.1",
+ "regexp.prototype.flags": "^1.2.0"
+ }
+ },
+ "deepmerge": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-4.3.1.tgz",
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="
+ },
+ "deferred-leveldown": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmmirror.com/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz",
+ "integrity": "sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==",
+ "optional": true,
+ "requires": {
+ "abstract-leveldown": "~6.2.1",
+ "inherits": "^2.0.3"
+ }
+ },
+ "define-properties": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.0.tgz",
+ "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==",
+ "requires": {
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ }
+ },
+ "dom-helpers": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmmirror.com/dom-helpers/-/dom-helpers-3.4.0.tgz",
+ "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==",
+ "requires": {
+ "@babel/runtime": "^7.1.2"
+ }
+ },
"dom-serializer": {
"version": "1.4.1",
"resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-1.4.1.tgz",
"integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
- "dev": true,
"requires": {
"domelementtype": "^2.0.1",
"domhandler": "^4.2.0",
"entities": "^2.0.0"
}
},
+ "dom4": {
+ "version": "2.1.6",
+ "resolved": "https://registry.npmmirror.com/dom4/-/dom4-2.1.6.tgz",
+ "integrity": "sha512-JkCVGnN4ofKGbjf5Uvc8mmxaATIErKQKSgACdBXpsQ3fY6DlIpAyWfiBSrGkttATssbDCp3psiAKWXk5gmjycA=="
+ },
"domelementtype": {
"version": "2.3.0",
"resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz",
- "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
- "dev": true
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="
},
"domhandler": {
"version": "4.3.1",
"resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-4.3.1.tgz",
"integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
- "dev": true,
"requires": {
"domelementtype": "^2.2.0"
}
@@ -2138,18 +4822,37 @@
"version": "2.8.0",
"resolved": "https://registry.npmmirror.com/domutils/-/domutils-2.8.0.tgz",
"integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
- "dev": true,
"requires": {
"dom-serializer": "^1.0.1",
"domelementtype": "^2.2.0",
"domhandler": "^4.2.0"
}
},
+ "encoding-down": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmmirror.com/encoding-down/-/encoding-down-6.3.0.tgz",
+ "integrity": "sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw==",
+ "optional": true,
+ "requires": {
+ "abstract-leveldown": "^6.2.1",
+ "inherits": "^2.0.3",
+ "level-codec": "^9.0.0",
+ "level-errors": "^2.0.0"
+ }
+ },
"entities": {
"version": "2.2.0",
"resolved": "https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz",
- "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
- "dev": true
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A=="
+ },
+ "errno": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmmirror.com/errno/-/errno-0.1.8.tgz",
+ "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==",
+ "optional": true,
+ "requires": {
+ "prr": "~1.0.1"
+ }
},
"esbuild": {
"version": "0.17.16",
@@ -2187,6 +4890,11 @@
"integrity": "sha512-w3PwNZJwRxlp47QGzhuEBldEqVHHhh8/tIPcl6ecf2Bou99cdAt0knihBV0Ecc7CGxYduXVBDheH1K2oADRlvw==",
"dev": true
},
+ "escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
+ },
"esm": {
"version": "3.2.25",
"resolved": "https://registry.npmmirror.com/esm/-/esm-3.2.25.tgz",
@@ -2199,6 +4907,21 @@
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
"dev": true
},
+ "fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
+ },
+ "free-style": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/free-style/-/free-style-3.1.0.tgz",
+ "integrity": "sha512-vJujYSIyT30iDoaoeigNAxX4yB1RUrh+N2ZMhIElMr3BvCuGXOw7XNJMEEJkDUeamK2Rnb/IKFGKRKlTWIGRWA=="
+ },
"fsevents": {
"version": "2.3.2",
"resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz",
@@ -2206,11 +4929,64 @@
"dev": true,
"optional": true
},
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ },
+ "functions-have-names": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmmirror.com/functions-have-names/-/functions-have-names-1.2.3.tgz",
+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ=="
+ },
+ "get-intrinsic": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
+ "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.3"
+ }
+ },
+ "gud": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/gud/-/gud-1.0.0.tgz",
+ "integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw=="
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "has-property-descriptors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
+ "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
+ "requires": {
+ "get-intrinsic": "^1.1.1"
+ }
+ },
+ "has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
+ },
+ "has-tostringtag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
+ "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
+ "requires": {
+ "has-symbols": "^1.0.2"
+ }
+ },
"htmlparser2": {
"version": "6.1.0",
"resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-6.1.0.tgz",
"integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==",
- "dev": true,
"requires": {
"domelementtype": "^2.0.1",
"domhandler": "^4.0.0",
@@ -2218,12 +4994,104 @@
"entities": "^2.0.0"
}
},
+ "ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "optional": true
+ },
+ "immediate": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmmirror.com/immediate/-/immediate-3.3.0.tgz",
+ "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==",
+ "optional": true
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "optional": true
+ },
+ "is-arguments": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/is-arguments/-/is-arguments-1.1.1.tgz",
+ "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-date-object": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmmirror.com/is-date-object/-/is-date-object-1.0.5.tgz",
+ "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-plain-object": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-5.0.0.tgz",
+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q=="
+ },
+ "is-regex": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz",
+ "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "isomorphic.js": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmmirror.com/isomorphic.js/-/isomorphic.js-0.2.5.tgz",
+ "integrity": "sha512-PIeMbHqMt4DnUP3MA/Flc0HElYjMXArsw1qwJZcm9sqR8mq3l8NYizFMty0pWwE/tzIGH3EKK5+jes5mAr85yw=="
+ },
+ "js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
+ },
+ "json-schema-compare": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmmirror.com/json-schema-compare/-/json-schema-compare-0.2.2.tgz",
+ "integrity": "sha512-c4WYmDKyJXhs7WWvAWm3uIYnfyWFoIp+JEoX34rctVvEkMYCPGhXtvmFFXiffBbxfZsvQ0RNnV5H7GvDF5HCqQ==",
+ "requires": {
+ "lodash": "^4.17.4"
+ }
+ },
+ "json-schema-merge-allof": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmmirror.com/json-schema-merge-allof/-/json-schema-merge-allof-0.6.0.tgz",
+ "integrity": "sha512-LEw4VMQVRceOPLuGRWcxW5orTTiR9ZAtqTAe4rQUjNADTeR81bezBVFa0MqIwp0YmHIM1KkhSjZM7o+IQhaPbQ==",
+ "requires": {
+ "compute-lcm": "^1.1.0",
+ "json-schema-compare": "^0.2.2",
+ "lodash": "^4.17.4"
+ }
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+ },
+ "json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="
+ },
"jsonc-parser": {
"version": "3.2.0",
"resolved": "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
"integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==",
"dev": true
},
+ "jsonpointer": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmmirror.com/jsonpointer/-/jsonpointer-5.0.1.tgz",
+ "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ=="
+ },
"juice": {
"version": "8.1.0",
"resolved": "https://registry.npmmirror.com/juice/-/juice-8.1.0.tgz",
@@ -2237,6 +5105,152 @@
"web-resource-inliner": "^6.0.1"
}
},
+ "level": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmmirror.com/level/-/level-6.0.1.tgz",
+ "integrity": "sha512-psRSqJZCsC/irNhfHzrVZbmPYXDcEYhA5TVNwr+V92jF44rbf86hqGp8fiT702FyiArScYIlPSBTDUASCVNSpw==",
+ "optional": true,
+ "requires": {
+ "level-js": "^5.0.0",
+ "level-packager": "^5.1.0",
+ "leveldown": "^5.4.0"
+ }
+ },
+ "level-codec": {
+ "version": "9.0.2",
+ "resolved": "https://registry.npmmirror.com/level-codec/-/level-codec-9.0.2.tgz",
+ "integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==",
+ "optional": true,
+ "requires": {
+ "buffer": "^5.6.0"
+ }
+ },
+ "level-concat-iterator": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz",
+ "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==",
+ "optional": true
+ },
+ "level-errors": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/level-errors/-/level-errors-2.0.1.tgz",
+ "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==",
+ "optional": true,
+ "requires": {
+ "errno": "~0.1.1"
+ }
+ },
+ "level-iterator-stream": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmmirror.com/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz",
+ "integrity": "sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==",
+ "optional": true,
+ "requires": {
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0",
+ "xtend": "^4.0.2"
+ }
+ },
+ "level-js": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmmirror.com/level-js/-/level-js-5.0.2.tgz",
+ "integrity": "sha512-SnBIDo2pdO5VXh02ZmtAyPP6/+6YTJg2ibLtl9C34pWvmtMEmRTWpra+qO/hifkUtBTOtfx6S9vLDjBsBK4gRg==",
+ "optional": true,
+ "requires": {
+ "abstract-leveldown": "~6.2.3",
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.3",
+ "ltgt": "^2.1.2"
+ }
+ },
+ "level-packager": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmmirror.com/level-packager/-/level-packager-5.1.1.tgz",
+ "integrity": "sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ==",
+ "optional": true,
+ "requires": {
+ "encoding-down": "^6.3.0",
+ "levelup": "^4.3.2"
+ }
+ },
+ "level-supports": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/level-supports/-/level-supports-1.0.1.tgz",
+ "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==",
+ "optional": true,
+ "requires": {
+ "xtend": "^4.0.2"
+ }
+ },
+ "leveldown": {
+ "version": "5.6.0",
+ "resolved": "https://registry.npmmirror.com/leveldown/-/leveldown-5.6.0.tgz",
+ "integrity": "sha512-iB8O/7Db9lPaITU1aA2txU/cBEXAt4vWwKQRrrWuS6XDgbP4QZGj9BL2aNbwb002atoQ/lIotJkfyzz+ygQnUQ==",
+ "optional": true,
+ "requires": {
+ "abstract-leveldown": "~6.2.1",
+ "napi-macros": "~2.0.0",
+ "node-gyp-build": "~4.1.0"
+ }
+ },
+ "levelup": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmmirror.com/levelup/-/levelup-4.4.0.tgz",
+ "integrity": "sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==",
+ "optional": true,
+ "requires": {
+ "deferred-leveldown": "~5.3.0",
+ "level-errors": "~2.0.0",
+ "level-iterator-stream": "~4.0.0",
+ "level-supports": "~1.0.0",
+ "xtend": "~4.0.0"
+ }
+ },
+ "lib0": {
+ "version": "0.2.74",
+ "resolved": "https://registry.npmmirror.com/lib0/-/lib0-0.2.74.tgz",
+ "integrity": "sha512-roj9i46/JwG5ik5KNTkxP2IytlnrssAkD/OhlAVtE+GqectrdkfR+pttszVLrOzMDeXNs1MPt6yo66MUolWSiA==",
+ "requires": {
+ "isomorphic.js": "^0.2.4"
+ }
+ },
+ "linkify-it": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmmirror.com/linkify-it/-/linkify-it-4.0.1.tgz",
+ "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==",
+ "requires": {
+ "uc.micro": "^1.0.1"
+ }
+ },
+ "lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+ },
+ "lodash.debounce": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
+ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="
+ },
+ "lodash.escape": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmmirror.com/lodash.escape/-/lodash.escape-4.0.1.tgz",
+ "integrity": "sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw=="
+ },
+ "loose-envify": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "requires": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ }
+ },
+ "ltgt": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmmirror.com/ltgt/-/ltgt-2.2.1.tgz",
+ "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==",
+ "optional": true
+ },
"magic-string": {
"version": "0.25.9",
"resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz",
@@ -2252,6 +5266,25 @@
"integrity": "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==",
"dev": true
},
+ "markdown-it": {
+ "version": "13.0.1",
+ "resolved": "https://registry.npmmirror.com/markdown-it/-/markdown-it-13.0.1.tgz",
+ "integrity": "sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==",
+ "requires": {
+ "argparse": "^2.0.1",
+ "entities": "~3.0.1",
+ "linkify-it": "^4.0.1",
+ "mdurl": "^1.0.1",
+ "uc.micro": "^1.0.5"
+ },
+ "dependencies": {
+ "entities": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/entities/-/entities-3.0.1.tgz",
+ "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q=="
+ }
+ }
+ },
"markdown-it-mathjax3": {
"version": "4.3.2",
"resolved": "https://registry.npmmirror.com/markdown-it-mathjax3/-/markdown-it-mathjax3-4.3.2.tgz",
@@ -2262,6 +5295,11 @@
"mathjax-full": "^3.2.0"
}
},
+ "marked": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/marked/-/marked-4.3.0.tgz",
+ "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A=="
+ },
"mathjax-full": {
"version": "3.2.2",
"resolved": "https://registry.npmmirror.com/mathjax-full/-/mathjax-full-3.2.2.tgz",
@@ -2274,6 +5312,11 @@
"speech-rule-engine": "^4.0.6"
}
},
+ "mdurl": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/mdurl/-/mdurl-1.0.1.tgz",
+ "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g=="
+ },
"mensch": {
"version": "0.3.4",
"resolved": "https://registry.npmmirror.com/mensch/-/mensch-0.3.4.tgz",
@@ -2292,6 +5335,11 @@
"integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
"dev": true
},
+ "minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="
+ },
"minisearch": {
"version": "6.0.1",
"resolved": "https://registry.npmmirror.com/minisearch/-/minisearch-6.0.1.tgz",
@@ -2304,21 +5352,41 @@
"integrity": "sha512-7NO5s6n10TIV96d4g2uDpG7ZDpIhMh0QNfGdJw/W47JswFcosz457wqz/b5sAKvl12sxINGFCn80NZHKwxQEXA==",
"dev": true
},
+ "moment": {
+ "version": "2.29.4",
+ "resolved": "https://registry.npmmirror.com/moment/-/moment-2.29.4.tgz",
+ "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w=="
+ },
"nanoid": {
"version": "3.3.6",
"resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.6.tgz",
- "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
- "dev": true
+ "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA=="
+ },
+ "napi-macros": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/napi-macros/-/napi-macros-2.0.0.tgz",
+ "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==",
+ "optional": true
},
"node-fetch": {
"version": "2.6.9",
"resolved": "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.6.9.tgz",
"integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==",
- "dev": true,
"requires": {
"whatwg-url": "^5.0.0"
}
},
+ "node-gyp-build": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmmirror.com/node-gyp-build/-/node-gyp-build-4.1.1.tgz",
+ "integrity": "sha512-dSq1xmcPDKPZ2EED2S6zw/b9NKsqzXRE6dVr8TVQnI3FJOTteUMuqF3Qqs6LZg+mLGYJWqQzMbIjMtJqTv87nQ==",
+ "optional": true
+ },
+ "normalize.css": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmmirror.com/normalize.css/-/normalize.css-8.0.1.tgz",
+ "integrity": "sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg=="
+ },
"nth-check": {
"version": "2.1.1",
"resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz",
@@ -2328,6 +5396,30 @@
"boolbase": "^1.0.0"
}
},
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="
+ },
+ "object-is": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmmirror.com/object-is/-/object-is-1.1.5.tgz",
+ "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
+ }
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
+ },
+ "parse-srcset": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/parse-srcset/-/parse-srcset-1.0.2.tgz",
+ "integrity": "sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q=="
+ },
"parse5": {
"version": "6.0.1",
"resolved": "https://registry.npmmirror.com/parse5/-/parse5-6.0.1.tgz",
@@ -2343,17 +5435,25 @@
"parse5": "^6.0.1"
}
},
+ "path-browserify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz",
+ "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g=="
+ },
"picocolors": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
- "dev": true
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
+ },
+ "popper.js": {
+ "version": "1.16.1",
+ "resolved": "https://registry.npmmirror.com/popper.js/-/popper.js-1.16.1.tgz",
+ "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ=="
},
"postcss": {
"version": "8.4.21",
"resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.21.tgz",
"integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==",
- "dev": true,
"requires": {
"nanoid": "^3.3.4",
"picocolors": "^1.0.0",
@@ -2366,6 +5466,122 @@
"integrity": "sha512-q44QFLhOhty2Bd0Y46fnYW0gD/cbVM9dUVtNTDKPcdXSMA7jfY+Jpd6rk3GB0lcQss0z5s/6CmVP0Z/hV+g6pw==",
"dev": true
},
+ "prop-types": {
+ "version": "15.8.1",
+ "resolved": "https://registry.npmmirror.com/prop-types/-/prop-types-15.8.1.tgz",
+ "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
+ "requires": {
+ "loose-envify": "^1.4.0",
+ "object-assign": "^4.1.1",
+ "react-is": "^16.13.1"
+ }
+ },
+ "prr": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz",
+ "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==",
+ "optional": true
+ },
+ "punycode": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.0.tgz",
+ "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA=="
+ },
+ "querystring": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmmirror.com/querystring/-/querystring-0.2.0.tgz",
+ "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g=="
+ },
+ "querystringify": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/querystringify/-/querystringify-2.2.0.tgz",
+ "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="
+ },
+ "react": {
+ "version": "17.0.2",
+ "resolved": "https://registry.npmmirror.com/react/-/react-17.0.2.tgz",
+ "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==",
+ "requires": {
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.1"
+ }
+ },
+ "react-dom": {
+ "version": "17.0.2",
+ "resolved": "https://registry.npmmirror.com/react-dom/-/react-dom-17.0.2.tgz",
+ "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==",
+ "requires": {
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.1",
+ "scheduler": "^0.20.2"
+ }
+ },
+ "react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+ },
+ "react-lifecycles-compat": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmmirror.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
+ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
+ },
+ "react-popper": {
+ "version": "1.3.11",
+ "resolved": "https://registry.npmmirror.com/react-popper/-/react-popper-1.3.11.tgz",
+ "integrity": "sha512-VSA/bS+pSndSF2fiasHK/PTEEAyOpX60+H5EPAjoArr8JGm+oihu4UbrqcEBpQibJxBVCpYyjAX7abJ+7DoYVg==",
+ "requires": {
+ "@babel/runtime": "^7.1.2",
+ "@hypnosphi/create-react-context": "^0.3.1",
+ "deep-equal": "^1.1.1",
+ "popper.js": "^1.14.4",
+ "prop-types": "^15.6.1",
+ "typed-styles": "^0.0.7",
+ "warning": "^4.0.2"
+ }
+ },
+ "react-transition-group": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmmirror.com/react-transition-group/-/react-transition-group-2.9.0.tgz",
+ "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==",
+ "requires": {
+ "dom-helpers": "^3.4.0",
+ "loose-envify": "^1.4.0",
+ "prop-types": "^15.6.2",
+ "react-lifecycles-compat": "^3.0.4"
+ }
+ },
+ "readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "optional": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ },
+ "regenerator-runtime": {
+ "version": "0.13.11",
+ "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
+ "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
+ },
+ "regexp.prototype.flags": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz",
+ "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "functions-have-names": "^1.2.3"
+ }
+ },
+ "requires-port": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz",
+ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="
+ },
"rollup": {
"version": "3.20.2",
"resolved": "https://registry.npmmirror.com/rollup/-/rollup-3.20.2.tgz",
@@ -2375,6 +5591,34 @@
"fsevents": "~2.3.2"
}
},
+ "safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "optional": true
+ },
+ "sanitize-html": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmmirror.com/sanitize-html/-/sanitize-html-2.7.3.tgz",
+ "integrity": "sha512-jMaHG29ak4miiJ8wgqA1849iInqORgNv7SLfSw9LtfOhEUQ1C0YHKH73R+hgyufBW9ZFeJrb057k9hjlfBCVlw==",
+ "requires": {
+ "deepmerge": "^4.2.2",
+ "escape-string-regexp": "^4.0.0",
+ "htmlparser2": "^6.0.0",
+ "is-plain-object": "^5.0.0",
+ "parse-srcset": "^1.0.2",
+ "postcss": "^8.3.11"
+ }
+ },
+ "scheduler": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmmirror.com/scheduler/-/scheduler-0.20.2.tgz",
+ "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==",
+ "requires": {
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.1"
+ }
+ },
"shiki": {
"version": "0.14.1",
"resolved": "https://registry.npmmirror.com/shiki/-/shiki-0.14.1.tgz",
@@ -2402,8 +5646,7 @@
"source-map-js": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz",
- "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
- "dev": true
+ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
},
"sourcemap-codec": {
"version": "1.4.8",
@@ -2430,11 +5673,24 @@
}
}
},
+ "string_decoder": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+ "optional": true,
+ "requires": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "style-mod": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmmirror.com/style-mod/-/style-mod-4.0.3.tgz",
+ "integrity": "sha512-78Jv8kYJdjbvRwwijtCevYADfsI0lGzYJe4mMFdceO8l75DFFDoqBhR1jVDicDRRaX4//g1u9wKeo+ztc2h1Rw=="
+ },
"tr46": {
"version": "0.0.3",
"resolved": "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
- "dev": true
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
},
"tslib": {
"version": "2.5.0",
@@ -2442,12 +5698,109 @@
"integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==",
"dev": true
},
+ "typed-styles": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmmirror.com/typed-styles/-/typed-styles-0.0.7.tgz",
+ "integrity": "sha512-pzP0PWoZUhsECYjABgCGQlRGL1n7tOHsgwYv3oIiEpJwGhFTuty/YNeduxQYzXXa3Ge5BdT6sHYIQYpl4uJ+5Q=="
+ },
+ "typestyle": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmmirror.com/typestyle/-/typestyle-2.4.0.tgz",
+ "integrity": "sha512-/d1BL6Qi+YlMLEydnUEB8KL/CAjAN8cyt3/UyGnOyBrWf7bLGcR/6yhmsaUstO2IcYwZfagjE7AIzuI2vUW9mg==",
+ "requires": {
+ "csstype": "3.0.10",
+ "free-style": "3.1.0"
+ },
+ "dependencies": {
+ "csstype": {
+ "version": "3.0.10",
+ "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.0.10.tgz",
+ "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA=="
+ }
+ }
+ },
+ "uc.micro": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmmirror.com/uc.micro/-/uc.micro-1.0.6.tgz",
+ "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA=="
+ },
+ "uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "url": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmmirror.com/url/-/url-0.11.0.tgz",
+ "integrity": "sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==",
+ "requires": {
+ "punycode": "1.3.2",
+ "querystring": "0.2.0"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmmirror.com/punycode/-/punycode-1.3.2.tgz",
+ "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw=="
+ }
+ }
+ },
+ "url-parse": {
+ "version": "1.5.10",
+ "resolved": "https://registry.npmmirror.com/url-parse/-/url-parse-1.5.10.tgz",
+ "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
+ "requires": {
+ "querystringify": "^2.1.1",
+ "requires-port": "^1.0.0"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+ "optional": true
+ },
"valid-data-url": {
"version": "3.0.1",
"resolved": "https://registry.npmmirror.com/valid-data-url/-/valid-data-url-3.0.1.tgz",
"integrity": "sha512-jOWVmzVceKlVVdwjNSenT4PbGghU0SBIizAev8ofZVgivk/TVHXSbNL8LP6M3spZvkR9/QolkyJavGSX5Cs0UA==",
"dev": true
},
+ "validate.io-array": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmmirror.com/validate.io-array/-/validate.io-array-1.0.6.tgz",
+ "integrity": "sha512-DeOy7CnPEziggrOO5CZhVKJw6S3Yi7e9e65R1Nl/RTN1vTQKnzjfvks0/8kQ40FP/dsjRAOd4hxmJ7uLa6vxkg=="
+ },
+ "validate.io-function": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/validate.io-function/-/validate.io-function-1.0.2.tgz",
+ "integrity": "sha512-LlFybRJEriSuBnUhQyG5bwglhh50EpTL2ul23MPIuR1odjO7XaMLFV8vHGwp7AZciFxtYOeiSCT5st+XSPONiQ=="
+ },
+ "validate.io-integer": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmmirror.com/validate.io-integer/-/validate.io-integer-1.0.5.tgz",
+ "integrity": "sha512-22izsYSLojN/P6bppBqhgUDjCkr5RY2jd+N2a3DCAUey8ydvrZ/OkGvFPR7qfOpwR2LC5p4Ngzxz36g5Vgr/hQ==",
+ "requires": {
+ "validate.io-number": "^1.0.3"
+ }
+ },
+ "validate.io-integer-array": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/validate.io-integer-array/-/validate.io-integer-array-1.0.0.tgz",
+ "integrity": "sha512-mTrMk/1ytQHtCY0oNO3dztafHYyGU88KL+jRxWuzfOmQb+4qqnWmI+gykvGp8usKZOM0H7keJHEbRaFiYA0VrA==",
+ "requires": {
+ "validate.io-array": "^1.0.3",
+ "validate.io-integer": "^1.0.4"
+ }
+ },
+ "validate.io-number": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/validate.io-number/-/validate.io-number-1.0.3.tgz",
+ "integrity": "sha512-kRAyotcbNaSYoDnXvb4MHg/0a1egJdLwS6oJ38TJY7aw9n93Fl/3blIXdyYvPOp55CNxywooG/3BcrwNrBpcSg=="
+ },
"vite": {
"version": "4.3.0",
"resolved": "https://registry.npmmirror.com/vite/-/vite-4.3.0.tgz",
@@ -2504,6 +5857,19 @@
"@vue/shared": "3.2.47"
}
},
+ "w3c-keyname": {
+ "version": "2.2.6",
+ "resolved": "https://registry.npmmirror.com/w3c-keyname/-/w3c-keyname-2.2.6.tgz",
+ "integrity": "sha512-f+fciywl1SJEniZHD6H+kUO8gOnwIr7f4ijKA6+ZvJFjeGi1r4PDLl53Ayud9O/rk64RqgoQine0feoeOU0kXg=="
+ },
+ "warning": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmmirror.com/warning/-/warning-4.0.3.tgz",
+ "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==",
+ "requires": {
+ "loose-envify": "^1.0.0"
+ }
+ },
"web-resource-inliner": {
"version": "6.0.1",
"resolved": "https://registry.npmmirror.com/web-resource-inliner/-/web-resource-inliner-6.0.1.tgz",
@@ -2544,14 +5910,12 @@
"webidl-conversions": {
"version": "3.0.1",
"resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
- "dev": true
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
},
"whatwg-url": {
"version": "5.0.0",
"resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-5.0.0.tgz",
"integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "dev": true,
"requires": {
"tr46": "~0.0.3",
"webidl-conversions": "^3.0.0"
@@ -2563,11 +5927,80 @@
"integrity": "sha512-Gd9+TUn5nXdwj/hFsPVx5cuHHiF5Bwuc30jZ4+ronF1qHK5O7HD0sgmXWSEgwKquT3ClLoKPVbO6qGwVwLzvAw==",
"dev": true
},
+ "ws": {
+ "version": "7.5.9",
+ "resolved": "https://registry.npmmirror.com/ws/-/ws-7.5.9.tgz",
+ "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
+ "requires": {}
+ },
"xmldom-sre": {
"version": "0.1.31",
"resolved": "https://registry.npmmirror.com/xmldom-sre/-/xmldom-sre-0.1.31.tgz",
"integrity": "sha512-f9s+fUkX04BxQf+7mMWAp5zk61pciie+fFLC9hX9UVvCeJQfNHRHXpeo5MPcR0EUf57PYLdt+ZO4f3Ipk2oZUw==",
"dev": true
+ },
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "optional": true
+ },
+ "y-codemirror": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/y-codemirror/-/y-codemirror-3.0.1.tgz",
+ "integrity": "sha512-TsLSoouAZxkxOKbmTj7qdwZNS0lZMVqIdp7/j9EgUUqYj0remZYDGl6VBABrmp9UX1QvX6RoXXqzbNhftgfCbA==",
+ "requires": {
+ "lib0": "^0.2.42"
+ }
+ },
+ "y-leveldb": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmmirror.com/y-leveldb/-/y-leveldb-0.1.2.tgz",
+ "integrity": "sha512-6ulEn5AXfXJYi89rXPEg2mMHAyyw8+ZfeMMdOtBbV8FJpQ1NOrcgi6DTAcXof0dap84NjHPT2+9d0rb6cFsjEg==",
+ "optional": true,
+ "requires": {
+ "level": "^6.0.1",
+ "lib0": "^0.2.31"
+ }
+ },
+ "y-protocols": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmmirror.com/y-protocols/-/y-protocols-1.0.5.tgz",
+ "integrity": "sha512-Wil92b7cGk712lRHDqS4T90IczF6RkcvCwAD0A2OPg+adKmOe+nOiT/N2hvpQIWS3zfjmtL4CPaH5sIW1Hkm/A==",
+ "requires": {
+ "lib0": "^0.2.42"
+ }
+ },
+ "y-websocket": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmmirror.com/y-websocket/-/y-websocket-1.5.0.tgz",
+ "integrity": "sha512-A8AO6XtnQlYwWFytWdkDCeXg4l8ghRTIw5h2YUgUYDmEC9ugWGIwYNW80yadhSFAF7CvuWTEkQNEpevnH6EiZw==",
+ "requires": {
+ "lib0": "^0.2.52",
+ "lodash.debounce": "^4.0.8",
+ "ws": "^6.2.1",
+ "y-leveldb": "^0.1.0",
+ "y-protocols": "^1.0.5"
+ },
+ "dependencies": {
+ "ws": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmmirror.com/ws/-/ws-6.2.2.tgz",
+ "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==",
+ "optional": true,
+ "requires": {
+ "async-limiter": "~1.0.0"
+ }
+ }
+ }
+ },
+ "yjs": {
+ "version": "13.6.0",
+ "resolved": "https://registry.npmmirror.com/yjs/-/yjs-13.6.0.tgz",
+ "integrity": "sha512-tFZtuQV6XamtDa9SfZhUsxchUcTBWe7fzpo1UWZDLXGejTZ5t9MCswGYzyvq7+BDzfEc9oX54QEbzI/4NyS6+g==",
+ "requires": {
+ "lib0": "^0.2.74"
+ }
}
}
}
diff --git a/package.json b/package.json
index d907633..55eaf01 100644
--- a/package.json
+++ b/package.json
@@ -4,6 +4,13 @@
"docs:build": "vitepress build",
"docs:preview": "vitepress preview"
},
+ "dependencies": {
+ "@codemirror/lang-python": "^6.1.2",
+ "@codemirror/lang-sql": "^6.4.1",
+ "@jupyterlab/mathjax2": "^3.6.3",
+ "@jupyterlab/theme-light-extension": "^3.6.3",
+ "markdown-it": "^13.0.1"
+ },
"devDependencies": {
"markdown-it-mathjax3": "^4.3.2",
"vitepress": "^1.0.0-alpha.73"
diff --git a/utils/index.js b/utils/index.js
new file mode 100644
index 0000000..acd6a2f
--- /dev/null
+++ b/utils/index.js
@@ -0,0 +1 @@
+export * from "./notebook";
diff --git a/utils/notebook/codemirror.js b/utils/notebook/codemirror.js
new file mode 100644
index 0000000..10b612f
--- /dev/null
+++ b/utils/notebook/codemirror.js
@@ -0,0 +1,50 @@
+/**
+ * 调用 codemirror 插件渲染code,并调用 jupyterlab 的 codemirror 主题样式做渲染
+ * codemirror 插件: https://codemirror.net/
+ */
+
+import { EditorState } from "@codemirror/state";
+import { EditorView } from "@codemirror/view";
+import { python } from "@codemirror/lang-python";
+import { sql } from "@codemirror/lang-sql";
+import { Theme } from "./codemirror.theme";
+
+// Codemirror 扩展配置
+const extensionsConfig = [
+ EditorState.readOnly.of(true),
+ EditorView.editable.of(false),
+ Theme.getTheme("jupyter"), // 主题引入
+
+ /* 引入所需的编程语言 START */
+ python(),
+ sql(),
+ /* 引入所需的编程语言 END */
+];
+
+/**
+ * 调用codemirror插件渲染code
+ *
+ * @param {string} codeString 需要渲染的code字符串
+ * @param {Element} parent 父元素,渲染成功后得元素将作为其的子元素
+ * @returns {Element} 渲染完成后的父元素
+ */
+export function createCodemirror(codeString, parent) {
+ if (codeString instanceof Array) codeString = codeString.join("");
+ if (typeof codeString !== "string")
+ throw "Function createCodemirror: 参数 codeString 必须是字符串!";
+ if (!parent) console.warn("Function createCodemirror: 参数 parent 不能为空");
+ if (!("appendChild" in document.body)) {
+ console.warn(
+ "Function createCodemirror: 参数 parent 类型错误,需为HTML元素"
+ );
+ codeString = document.body;
+ }
+
+ return new EditorView({
+ state: EditorState.create({
+ doc: codeString || "",
+ extensions: extensionsConfig,
+ }),
+ parent: parent || document.body,
+ });
+}
diff --git a/utils/notebook/codemirror.theme.js b/utils/notebook/codemirror.theme.js
new file mode 100644
index 0000000..4891340
--- /dev/null
+++ b/utils/notebook/codemirror.theme.js
@@ -0,0 +1,180 @@
+// Copyright (c) Jupyter Development Team.
+// Distributed under the terms of the Modified BSD License.
+
+/**
+ * 本文件为 Jupyter lab 源码。
+ * 用于设置 codemirror 相关的主题,提供了 codemirror 以及 jupyter 两种主题。其中 jupyter 为默认主题
+ *
+ * 源码TS版:https://github.com/jupyterlab/jupyterlab/blob/master/packages/codemirror/src/editortheme.ts
+ */
+
+import {
+ defaultHighlightStyle,
+ HighlightStyle,
+ syntaxHighlighting,
+} from "@codemirror/language";
+import { EditorView } from "@codemirror/view";
+import { tags as t } from "@lezer/highlight";
+export const jupyterEditorTheme = EditorView.theme({
+ /**
+ * CodeMirror themes are handling the background/color in this way. This works
+ * fine for CodeMirror editors outside the notebook, but the notebook styles
+ * these things differently.
+ */
+ "&": {
+ background: "var(--jp-layout-color0)",
+ color: "var(--jp-content-font-color1)",
+ },
+ /* In the notebook, we want this styling to be handled by its container */
+ ".jp-CodeConsole &, .jp-Notebook &": {
+ background: "transparent",
+ },
+ ".cm-content": {
+ caretColor: "var(--jp-editor-cursor-color)",
+ },
+ ".cm-cursor, .cm-dropCursor": {
+ borderLeft:
+ "var(--jp-code-cursor-width0) solid var(--jp-editor-cursor-color)",
+ },
+ ".cm-selectionBackground, .cm-content ::selection": {
+ backgroundColor: "var(--jp-editor-selected-background)",
+ },
+ "&.cm-focused .cm-selectionBackground": {
+ backgroundColor: "var(--jp-editor-selected-focused-background)",
+ },
+ ".cm-gutters": {
+ borderRight: "1px solid var(--jp-border-color2)",
+ backgroundColor: "var(--jp-layout-color2)",
+ },
+ ".cm-gutter, .cm-activeLine": {
+ backgroundColor: "var(--jp-layout-color2)",
+ },
+ ".cm-searchMatch": {
+ backgroundColor: "var(--jp-search-unselected-match-background-color)",
+ color: "var(--jp-search-unselected-match-color)",
+ },
+ ".cm-searchMatch.cm-searchMatch-selected": {
+ backgroundColor:
+ "var(--jp-search-selected-match-background-color) !important",
+ color: "var(--jp-search-selected-match-color) !important",
+ },
+});
+// The list of available tags for syntax highlighting is available at
+// https://lezer.codemirror.net/docs/ref/#highlight.tags
+export const jupyterHighlightStyle = HighlightStyle.define([
+ // Order matters - a rule will override the previous ones; important for example for in headings styles.
+ { tag: t.meta, color: "var(--jp-mirror-editor-meta-color)" },
+ { tag: t.heading, color: "var(--jp-mirror-editor-header-color)" },
+ {
+ tag: [t.heading1, t.heading2, t.heading3, t.heading4],
+ color: "var(--jp-mirror-editor-header-color)",
+ fontWeight: "bold",
+ },
+ {
+ tag: t.keyword,
+ color: "var(--jp-mirror-editor-keyword-color)",
+ fontWeight: "bold",
+ },
+ { tag: t.atom, color: "var(--jp-mirror-editor-atom-color)" },
+ { tag: t.number, color: "var(--jp-mirror-editor-number-color)" },
+ {
+ tag: [t.definition(t.name), t.function(t.definition(t.variableName))],
+ color: "var(--jp-mirror-editor-def-color)",
+ },
+ { tag: t.variableName, color: "var(--jp-mirror-editor-variable-color)" },
+ {
+ tag: [t.special(t.variableName), t.self],
+ color: "var(--jp-mirror-editor-variable-2-color)",
+ },
+ { tag: t.punctuation, color: "var(--jp-mirror-editor-punctuation-color)" },
+ { tag: t.propertyName, color: "var(--jp-mirror-editor-property-color)" },
+ {
+ tag: t.operator,
+ color: "var(--jp-mirror-editor-operator-color)",
+ fontWeight: "bold",
+ },
+ {
+ tag: t.comment,
+ color: "var(--jp-mirror-editor-comment-color)",
+ fontStyle: "italic",
+ },
+ { tag: t.string, color: "var(--jp-mirror-editor-string-color)" },
+ {
+ tag: [t.labelName, t.monospace, t.special(t.string)],
+ color: "var(--jp-mirror-editor-string-2-color)",
+ },
+ { tag: t.bracket, color: "var(--jp-mirror-editor-bracket-color)" },
+ { tag: t.tagName, color: "var(--jp-mirror-editor-tag-color)" },
+ { tag: t.attributeName, color: "var(--jp-mirror-editor-attribute-color)" },
+ { tag: t.quote, color: "var(--jp-mirror-editor-quote-color)" },
+ {
+ tag: t.link,
+ color: "var(--jp-mirror-editor-link-color)",
+ textDecoration: "underline",
+ },
+ { tag: [t.separator, t.derefOperator, t.paren], color: "" },
+ { tag: t.strong, fontWeight: "bold" },
+ { tag: t.emphasis, fontStyle: "italic" },
+ { tag: t.strikethrough, textDecoration: "line-through" },
+]);
+/**
+ * JupyterLab CodeMirror 6 theme
+ */
+export const jupyterTheme = [
+ jupyterEditorTheme,
+ syntaxHighlighting(jupyterHighlightStyle),
+];
+/**
+ * A namespace to handle CodeMirror 6 theme
+ *
+ * @alpha
+ */
+export var Theme;
+(function (Theme) {
+ /**
+ * CodeMirror 6 themes
+ */
+ const themeMap = new Map([
+ [
+ "codemirror",
+ [EditorView.baseTheme({}), syntaxHighlighting(defaultHighlightStyle)],
+ ],
+ ["jupyter", jupyterTheme],
+ ]);
+ /**
+ * Get the default CodeMirror 6 theme for JupyterLab
+ *
+ * @alpha
+ * @returns Default theme
+ */
+ function defaultTheme() {
+ return themeMap.get("jupyter");
+ }
+ Theme.defaultTheme = defaultTheme;
+ /**
+ * Register a new theme.
+ *
+ * @alpha
+ * @param name Theme name
+ * @param theme Codemirror 6 theme extension
+ */
+ function registerTheme(name, theme) {
+ themeMap.set(name, theme);
+ }
+ Theme.registerTheme = registerTheme;
+ /**
+ * Get a theme.
+ *
+ * #### Notes
+ * It falls back to the default theme
+ *
+ * @alpha
+ * @param name Theme name
+ * @returns Theme extension
+ */
+ function getTheme(name) {
+ let ext = themeMap.get(name);
+ return ext !== null && ext !== void 0 ? ext : this.defaultTheme();
+ }
+ Theme.getTheme = getTheme;
+})(Theme || (Theme = {}));
diff --git a/utils/notebook/index.js b/utils/notebook/index.js
new file mode 100644
index 0000000..92824e1
--- /dev/null
+++ b/utils/notebook/index.js
@@ -0,0 +1,348 @@
+import "@jupyterlab/theme-light-extension/style/theme.css";
+import "../../.vitepress/theme/css/jupyterlab/index.css";
+import { createCodemirror } from "./codemirror";
+import { defaultSanitizer } from "./sanitizer";
+import { MathJaxTypesetter } from "./lib/index.js";
+import {
+ renderHTML,
+ renderImage,
+ renderLatex,
+ renderMarkdown,
+ renderSVG,
+ renderText,
+} from "./renderers";
+import defaultMarkdownParser from "./markdown.js"; // 引入cngbdb-ui的markdown渲染逻辑
+
+export class Notebook {
+ #source; // notebook源数据
+ #cells; // notebook cell列表;cell表示一个最基础的渲染单元,例如inputCell,outputCell,outputResultCell
+ #fragment; // notebook 渲染结果片段,是个div元素
+ #trusted; // 当前渲染字符是安全或者但求运行环境是否可信,涉及Script,SVG渲染
+ #sanitizer; // 字符串无害化处理
+ #shouldTypeset; // 是否对数学公式字符进行latex排版,这里默认为true
+ #latexTypesetter; // latex 插件实例
+ #markdownParser; // markdown 渲染工具
+
+ /**
+ * 构造函数
+ * @param {Object} sourceOfJson Notebook 源数据,JSON 对象
+ * @param {Boolean} trusted 当前渲染字符是安全或者当前运行环境是否可信,涉及Script,SVG渲染,默认为False
+ * @param {Boolean} shouldTypeset 是否对数学公式字符进行latex排版,默认为true
+ * @param {*} markdownParser markdown 渲染工具
+ */
+ constructor(source, trusted, shouldTypeset, markdownParser) {
+ if (!source.cells || !(source.cells instanceof Array))
+ throw "The Notebook is Error! Cells attribute is required and is Array!";
+ this.#source = JSON.parse(JSON.stringify(source));
+ const { cells } = this.#source;
+ this.#cells = cells;
+ this.#fragment = document.createElement("div"); // 创建一个新的空白的div片段,notebook渲染的结果都暂时存储在其中
+
+ /*---------- 默认配置项 START ----------*/
+ this.#trusted = trusted || false; // 当前运行环境是否安全可信,涉及Script,SVG渲染
+ this.#sanitizer = defaultSanitizer; // 字符串无害化处理
+ this.#shouldTypeset = shouldTypeset || true; // 是否对数学公式字符进行latex排版,这里默认为true
+ this.#latexTypesetter = new MathJaxTypesetter({
+ url: "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js",
+ config: "TeX-AMS_HTML-full,Safe",
+ }); // latex 插件实例化
+ this.#markdownParser = markdownParser || defaultMarkdownParser; // markdown 渲染工具
+ /*---------- 默认配置项 END ----------*/
+ }
+
+ // notebook渲染成HTML的结果
+ get notebookHTML() {
+ return this.#fragment;
+ }
+
+ /**
+ * cells 渲染
+ * 此处是 notebook 渲染的总入口
+ *
+ * 每个 cell 由input和output两个模块组成;
+ * input 分为三类数据,即cell_type = markdown/code/raw。其中只有code会有output;
+ * output 处理详见 renderCommonCell 方法;
+ *
+ * @author 王志杰
+ * @returns {DocumentFragment} 返回一个 DocumentFragment 对象
+ */
+ async render() {
+ try {
+ for (let cell of this.#cells) {
+ let node = null;
+ let { cell_type, source } = cell;
+ cell.source = typeof source === "string" ? source : source.join("");
+ switch (cell_type) {
+ case "markdown":
+ node = await this.#renderMarkdownCell(cell);
+ break;
+ case "code":
+ node = await this.#renderCodeCell(cell);
+ break;
+ case "raw":
+ node = await this.#renderRawCell(cell);
+ break;
+ }
+ this.#fragment.appendChild(node);
+ }
+ } catch (error) {
+ console.error(error);
+ }
+ return this.#fragment;
+ }
+
+ /**
+ * 数据渲染总模块,input和output的数据渲染都经由这里分发到具体的渲染模块
+ *
+ * @param {string} param0 type-数据模块类型,所支持的类型为output_type全部类型‘
+ * @param {object} param1 options-渲染模块所需的参数
+ */
+ async #renderCommonCell({ type, options }) {
+ // 对未设置的配置项,设置为全局默认配置对应的属性值
+ options.trusted = options.trusted || this.#trusted;
+ options.sanitizer = options.sanitizer || this.#sanitizer;
+ options.shouldTypeset = options.shouldTypeset || this.#shouldTypeset;
+ options.latexTypesetter = options.latexTypesetter || this.#latexTypesetter;
+ options.markdownParser = options.markdownParser || this.#markdownParser;
+
+ switch (type) {
+ case "text/html":
+ await renderHTML(options);
+ break;
+ case "markdown":
+ case "text/markdown":
+ await renderMarkdown(options);
+ break;
+ case "text/plain":
+ case "application/vnd.jupyter.stdout":
+ case "application/vnd.jupyter.stderr":
+ await renderText(options);
+ break;
+ case "text/latex":
+ await renderLatex(options);
+ break;
+ case "image/bmp":
+ case "image/png":
+ case "image/jpeg":
+ case "image/gif":
+ case "image/webp":
+ await renderImage(options);
+ break;
+ case "image/svg+xml":
+ await renderSVG(options);
+ break;
+ case "text/javascript":
+ case "application/javascript":
+ // 禁止输出 JavaScript
+ options.source = "JavaScript output is disabled in JupyterLab";
+ await renderText(options);
+ break;
+ default:
+ break;
+ }
+ }
+
+ /**
+ * 渲染markdown DOM
+ * @param {Object} cell
+ */
+ async #renderMarkdownCell(cell) {
+ let { source, execution_count: executionCount } = cell;
+ let contentNode = document.createElement("div");
+ await this.#renderCommonCell({
+ type: "text/markdown",
+ options: { host: contentNode, source: source },
+ });
+ return this.#createContainerNode(
+ "inputMarkdown",
+ contentNode,
+ executionCount
+ );
+ }
+
+ /**
+ * 渲染Code DOM
+ * @param {Object} cell
+ */
+ async #renderCodeCell(cell) {
+ let node = null;
+ let { source, outputs, execution_count: executionCount } = cell;
+ let contentNode = document.createElement("div");
+ contentNode.className =
+ "lm-Widget p-Widget jp-Cell jp-CodeCell jp-Notebook-cell ";
+ createCodemirror(source, contentNode); // input代码块渲染
+ node = this.#createContainerNode("inputCode", contentNode, executionCount);
+ await this.#renderOutputCell(outputs, contentNode.parentNode.parentNode);
+
+ return node;
+ }
+
+ async #renderRawCell(cell) {
+ let { source } = cell;
+ let node = document.createElement("div");
+ await this.#renderCommonCell({
+ type: "text/plain",
+ options: { host: node, source: source },
+ });
+ return node;
+ }
+
+ /**
+ * 渲染 outputs
+ * @param {Array} outputs
+ */
+ async #renderOutputCell(outputs, parentNode) {
+ if (!outputs || !outputs.length) return;
+ const OutputAreaNode = document.createElement("div");
+ OutputAreaNode.className =
+ "lm-Widget jp-OutputArea jp-Cell-outputArea q-mt-sm";
+ parentNode.appendChild(OutputAreaNode);
+ for (let output of outputs) {
+ let sources = [];
+ switch (output.output_type) {
+ case "stream": // 文本流输出
+ sources = output.text;
+ for (const source of sources) {
+ let node = document.createElement("div");
+ await this.#renderCommonCell({
+ type: "application/vnd.jupyter." + output.name,
+ options: { host: node, source: source },
+ });
+
+ OutputAreaNode.appendChild(
+ this.#createContainerNode(
+ "application/vnd.jupyter." + output.name,
+ node,
+ ""
+ )
+ );
+ }
+ break;
+ case "display_data":
+ case "execute_result": {
+ // 富文本输出
+ const { data: outputData, execution_count: executionCount } = output;
+ const keys = Object.keys(outputData);
+ const key = keys[0];
+ let source = outputData[key];
+ if (!source) return;
+ let node = document.createElement("div");
+ source = typeof source === "string" ? source : source.join("\n");
+ await this.#renderCommonCell({
+ type: key,
+ options: { host: node, source: source },
+ });
+
+ OutputAreaNode.appendChild(
+ this.#createContainerNode(key, node, executionCount)
+ );
+ break;
+ }
+ case "error": // 错误信息输出
+ sources = output.traceback;
+ for (const source of sources) {
+ let node = document.createElement("div");
+ await this.#renderCommonCell({
+ type: "application/vnd.jupyter.stderr",
+ options: { host: node, source: source },
+ });
+ OutputAreaNode.appendChild(
+ this.#createContainerNode(
+ "application/vnd.jupyter.stderr",
+ node,
+ ""
+ )
+ );
+ }
+ break;
+ }
+ }
+ }
+
+ #createContainerNode(type, contentNode, executionCount) {
+ let node = document.createElement("div");
+ let areaNode = document.createElement("div");
+ let promptNode = document.createElement("div");
+ if (executionCount || executionCount === null) {
+ promptNode.innerText = `[${executionCount === null ? " " : executionCount
+ }]`;
+ }
+ // prompt class设置。prompt 样式分为input和output两种
+ ["inputMarkdown", "inputCode"].includes(type)
+ ? (promptNode.className =
+ "lm-Widget p-Widget jp-InputPrompt jp-InputArea-prompt")
+ : (promptNode.className =
+ "lm-Widget p-Widget jp-OutputPrompt jp-OutputArea-prompt");
+ switch (type) {
+ case "inputMarkdown": {
+ node.className =
+ "lm-Widget p-Widget jp-Cell jp-MarkdownCell jp-mod-rendered jp-Notebook-cell";
+ areaNode.className =
+ "lm-Widget p-Widget jp-InputArea jp-Cell-inputArea";
+ contentNode.className =
+ "lm-Widget p-Widget jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput";
+ contentNode.setAttribute("data-mime-type", "text/markdown");
+ break;
+ }
+ case "inputCode": {
+ node.className =
+ "lm-Widget p-Widget jp-Cell jp-CodeCell jp-mod-noOutputs jp-Notebook-cell";
+ areaNode.className =
+ "lm-Widget p-Widget jp-InputArea jp-Cell-inputArea";
+ contentNode.className =
+ "lm-Widget p-Widget jp-CodeMirrorEditor jp-Editor jp-InputArea-editor";
+ break;
+ }
+ case "application/vnd.jupyter.stdout": {
+ node.className = "lm-Widget lm-Panel jp-OutputArea-child";
+ areaNode.className =
+ "lm-Widget p-Widget lm-Panel p-Panel jp-OutputArea-child";
+ contentNode.className =
+ "lm-Widget p-Widget jp-RenderedText jp-OutputArea-output";
+ contentNode.setAttribute(
+ "data-mime-type",
+ "application/vnd.jupyter.stdout"
+ );
+ break;
+ }
+ case "application/vnd.jupyter.stderr": {
+ node.className = "lm-Widget lm-Panel jp-OutputArea-child";
+ areaNode.className =
+ "lm-Widget p-Widget lm-Panel p-Panel jp-OutputArea-child";
+ contentNode.className =
+ "lm-Widget p-Widget jp-RenderedText jp-OutputArea-output";
+ contentNode.setAttribute(
+ "data-mime-type",
+ "application/vnd.jupyter.stderr"
+ );
+ break;
+ }
+ default: {
+ const typeClassMap = new Map([
+ ["image/bmp", "jp-RenderedImage"],
+ ["image/png", "jp-RenderedImage"],
+ ["image/jpeg", "jp-RenderedImage"],
+ ["image/gif", "jp-RenderedImage"],
+ ["image/webp", "jp-RenderedImage"],
+ ["text/latex", "jp-RenderedLatex"],
+ ["image/svg+xml", "jp-RenderedSVG"],
+ ["text/markdown", "jp-RenderedHTMLCommon jp-RenderedHTML"],
+ ]);
+
+ node.className =
+ "lm-Widget p-Widget lm-Panel p-Panel jp-OutputArea-child jp-OutputArea-executeResult";
+ areaNode.className =
+ "lm-Widget p-Widget lm-Panel p-Panel jp-OutputArea-child";
+ contentNode.className = `lm-Widget p-Widget ${typeClassMap.get(type) || "jp-RenderedHTMLCommon"
+ } jp-OutputArea-output`;
+ contentNode.setAttribute("data-mime-type", type);
+ break;
+ }
+ }
+ areaNode.appendChild(promptNode);
+ areaNode.appendChild(contentNode);
+ node.appendChild(areaNode);
+
+ return node;
+ }
+}
diff --git a/utils/notebook/latex.js b/utils/notebook/latex.js
new file mode 100644
index 0000000..e615730
--- /dev/null
+++ b/utils/notebook/latex.js
@@ -0,0 +1,194 @@
+/* -----------------------------------------------------------------------------
+| Copyright (c) Jupyter Development Team.
+| Distributed under the terms of the Modified BSD License.
+|----------------------------------------------------------------------------*/
+// Some magic for deferring mathematical expressions to MathJax
+// by hiding them from the Markdown parser.
+// Some of the code here is adapted with permission from Davide Cervone
+// under the terms of the Apache2 license governing the MathJax project.
+// Other minor modifications are also due to StackExchange and are used with
+// permission.
+
+/**
+ * 本文件为 Jupyter lab 源码。
+ * 用于 latex 字符渲染
+ *
+ * 源码TS版:https://github.com/jupyterlab/jupyterlab/blob/master/packages/rendermime/src/latex.ts
+ */
+
+const inline = "$"; // the inline math delimiter
+// MATHSPLIT contains the pattern for math delimiters and special symbols
+// needed for searching for math in the text input.
+const MATHSPLIT =
+ /(\$\$?|\\(?:begin|end)\{[a-z]*\*?\}|\\[{}$]|[{}]|(?:\n\s*)+|@@\d+@@|\\\\(?:\(|\)|\[|\]))/i;
+/**
+ * Break up the text into its component parts and search
+ * through them for math delimiters, braces, linebreaks, etc.
+ * Math delimiters must match and braces must balance.
+ * Don't allow math to pass through a double linebreak
+ * (which will be a paragraph).
+ */
+export function removeMath(text) {
+ const math = []; // stores math strings for later
+ let start = null;
+ let end = null;
+ let last = null;
+ let braces = 0;
+ let deTilde;
+ // Except for extreme edge cases, this should catch precisely those pieces of the markdown
+ // source that will later be turned into code spans. While MathJax will not TeXify code spans,
+ // we still have to consider them at this point; the following issue has happened several times:
+ //
+ // `$foo` and `$bar` are variables. --> $foo ` and `$bar are variables.
+ const hasCodeSpans = text.includes("`") || text.includes("~~~");
+ if (hasCodeSpans) {
+ text = text
+ .replace(/~/g, "~T")
+ // note: the `fence` (three or more consecutive tildes or backticks)
+ // can be followed by an `info string` but this cannot include backticks,
+ // see specification: https://spec.commonmark.org/0.30/#info-string
+ .replace(
+ /^(?`{3,}|(~T){3,})[^`\n]*\n([\s\S]*?)^\k`*$/gm,
+ (wholematch) => wholematch.replace(/\$/g, "~D")
+ )
+ .replace(/(^|[^\\])(`+)([^\n]*?[^`\n])\2(?!`)/gm, (wholematch) =>
+ wholematch.replace(/\$/g, "~D")
+ );
+ deTilde = (text) => {
+ return text.replace(/~([TD])/g, (wholematch, character) =>
+ character === "T" ? "~" : inline
+ );
+ };
+ } else {
+ deTilde = (text) => {
+ return text;
+ };
+ }
+ let blocks = text.replace(/\r\n?/g, "\n").split(MATHSPLIT);
+ for (let i = 1, m = blocks.length; i < m; i += 2) {
+ const block = blocks[i];
+ if (block.charAt(0) === "@") {
+ //
+ // Things that look like our math markers will get
+ // stored and then retrieved along with the math.
+ //
+ blocks[i] = "@@" + math.length + "@@";
+ math.push(block);
+ } else if (start !== null) {
+ //
+ // If we are in math, look for the end delimiter,
+ // but don't go past double line breaks, and
+ // and balance braces within the math.
+ //
+ if (block === end) {
+ if (braces) {
+ last = i;
+ } else {
+ blocks = processMath(start, i, deTilde, math, blocks);
+ start = null;
+ end = null;
+ last = null;
+ }
+ } else if (block.match(/\n.*\n/)) {
+ if (last !== null) {
+ i = last;
+ blocks = processMath(start, i, deTilde, math, blocks);
+ }
+ start = null;
+ end = null;
+ last = null;
+ braces = 0;
+ } else if (block === "{") {
+ braces++;
+ } else if (block === "}" && braces) {
+ braces--;
+ }
+ } else {
+ //
+ // Look for math start delimiters and when
+ // found, set up the end delimiter.
+ //
+ if (block === inline || block === "$$") {
+ start = i;
+ end = block;
+ braces = 0;
+ } else if (block === "\\\\(" || block === "\\\\[") {
+ start = i;
+ end = block.slice(-1) === "(" ? "\\\\)" : "\\\\]";
+ braces = 0;
+ } else if (block.substr(1, 5) === "begin") {
+ start = i;
+ end = "\\end" + block.substr(6);
+ braces = 0;
+ }
+ }
+ }
+ if (start !== null && last !== null) {
+ blocks = processMath(start, last, deTilde, math, blocks);
+ start = null;
+ end = null;
+ last = null;
+ }
+ return { text: deTilde(blocks.join("")), math };
+}
+/**
+ * Put back the math strings that were saved,
+ * and clear the math array (no need to keep it around).
+ */
+export function replaceMath(text, math) {
+ /**
+ * Replace a math placeholder with its corresponding group.
+ * The math delimiters "\\(", "\\[", "\\)" and "\\]" are replaced
+ * removing one backslash in order to be interpreted correctly by MathJax.
+ */
+ const process = (match, n) => {
+ let group = math[n];
+ if (
+ group.substr(0, 3) === "\\\\(" &&
+ group.substr(group.length - 3) === "\\\\)"
+ ) {
+ group = "\\(" + group.substring(3, group.length - 3) + "\\)";
+ } else if (
+ group.substr(0, 3) === "\\\\[" &&
+ group.substr(group.length - 3) === "\\\\]"
+ ) {
+ group = "\\[" + group.substring(3, group.length - 3) + "\\]";
+ }
+ return group;
+ };
+ // Replace all the math group placeholders in the text
+ // with the saved strings.
+ return text.replace(/@@(\d+)@@/g, process);
+}
+/**
+ * Process math blocks.
+ *
+ * The math is in blocks i through j, so
+ * collect it into one block and clear the others.
+ * Replace &, <, and > by named entities.
+ * For IE, put
at the ends of comments since IE removes \n.
+ * Clear the current math positions and store the index of the
+ * math, then push the math string onto the storage array.
+ * The preProcess function is called on all blocks if it has been passed in
+ */
+function processMath(i, j, preProcess, math, blocks) {
+ let block = blocks
+ .slice(i, j + 1)
+ .join("")
+ .replace(/&/g, "&") // use HTML entity for &
+ .replace(//g, ">"); // use HTML entity for >
+ if (navigator && navigator.appName === "Microsoft Internet Explorer") {
+ block = block.replace(/(%[^\n]*)\n/g, "$1
\n");
+ }
+ while (j > i) {
+ blocks[j] = "";
+ j--;
+ }
+ blocks[i] = "@@" + math.length + "@@"; // replace the current block text with a unique tag to find later
+ if (preProcess) {
+ block = preProcess(block);
+ }
+ math.push(block);
+ return blocks;
+}
diff --git a/utils/notebook/lib/index.js b/utils/notebook/lib/index.js
new file mode 100644
index 0000000..85c327c
--- /dev/null
+++ b/utils/notebook/lib/index.js
@@ -0,0 +1,108 @@
+/* -----------------------------------------------------------------------------
+| Copyright (c) Jupyter Development Team.
+| Distributed under the terms of the Modified BSD License.
+|----------------------------------------------------------------------------*/
+/**
+ * @packageDocumentation
+ * @module mathjax2
+ */
+import { PromiseDelegate } from '@lumino/coreutils';
+/**
+ * The MathJax Typesetter.
+ */
+export class MathJaxTypesetter {
+ /**
+ * Create a new MathJax typesetter.
+ */
+ constructor(options) {
+ this._initPromise = new PromiseDelegate();
+ this._initialized = false;
+ this._url = options.url;
+ this._config = options.config;
+ }
+ /**
+ * Typeset the math in a node.
+ *
+ * #### Notes
+ * MathJax schedules the typesetting asynchronously,
+ * but there are not currently any callbacks or Promises
+ * firing when it is done.
+ */
+ typeset(node) {
+ if (!this._initialized) {
+ this._init();
+ }
+ void this._initPromise.promise.then(() => {
+ MathJax.Hub.Queue(['Typeset', MathJax.Hub, node]);
+ try {
+ MathJax.Hub.Queue(['Require', MathJax.Ajax, '[MathJax]/extensions/TeX/AMSmath.js'], () => {
+ MathJax.InputJax.TeX.resetEquationNumbers();
+ });
+ }
+ catch (e) {
+ console.error('Error queueing resetEquationNumbers:', e);
+ }
+ });
+ }
+ /**
+ * Initialize MathJax.
+ */
+ _init() {
+ const head = document.getElementsByTagName('head')[0];
+ const script = document.createElement('script');
+ script.type = 'text/javascript';
+ script.src = `${this._url}?config=${this._config}&delayStartupUntil=configured`;
+ script.charset = 'utf-8';
+ head.appendChild(script);
+ script.addEventListener('load', () => {
+ this._onLoad();
+ });
+ this._initialized = true;
+ }
+ /**
+ * Handle MathJax loading.
+ */
+ _onLoad() {
+ MathJax.Hub.Config({
+ tex2jax: {
+ inlineMath: [
+ ['$', '$'],
+ ['\\(', '\\)']
+ ],
+ displayMath: [
+ ['$$', '$$'],
+ ['\\[', '\\]']
+ ],
+ processEscapes: true,
+ processEnvironments: true
+ },
+ // Center justify equations in code and markdown cells. Elsewhere
+ // we use CSS to left justify single line equations in code cells.
+ displayAlign: 'center',
+ CommonHTML: {
+ linebreaks: { automatic: true }
+ },
+ 'HTML-CSS': {
+ availableFonts: [],
+ imageFont: null,
+ preferredFont: null,
+ webFont: 'STIX-Web',
+ styles: { '.MathJax_Display': { margin: 0 } },
+ linebreaks: { automatic: true }
+ },
+ skipStartupTypeset: true,
+ messageStyle: 'none'
+ });
+ MathJax.Hub.Register.StartupHook('End Config', () => {
+ var _a, _b, _c, _d, _e, _f;
+ // Disable `:hover span` styles which cause performance issues in Chromium browsers
+ // c-f https://github.com/jupyterlab/jupyterlab/issues/9757
+ // Note that we cannot overwrite them in config earlier due to how `CombineConfig`
+ // is implemented in MathJax 2 (it does not allow removing styles, just expanding).
+ (_c = (_b = (_a = MathJax.Hub) === null || _a === void 0 ? void 0 : _a.config) === null || _b === void 0 ? void 0 : _b.MathEvents) === null || _c === void 0 ? true : delete _c.styles['.MathJax_Hover_Arrow:hover span'];
+ (_f = (_e = (_d = MathJax.Hub) === null || _d === void 0 ? void 0 : _d.config) === null || _e === void 0 ? void 0 : _e.MathMenu) === null || _f === void 0 ? true : delete _f.styles['.MathJax_MenuClose:hover span'];
+ });
+ MathJax.Hub.Configured();
+ this._initPromise.resolve(void 0);
+ }
+}
\ No newline at end of file
diff --git a/utils/notebook/markdown.js b/utils/notebook/markdown.js
new file mode 100644
index 0000000..9c3f592
--- /dev/null
+++ b/utils/notebook/markdown.js
@@ -0,0 +1,10 @@
+import markdown from "markdown-it";
+
+const MD = markdown({
+ html: true,
+ xhtmlOut: true,
+ breaks: true,
+ linkify: true,
+});
+
+export default MD;
diff --git a/utils/notebook/renderers.js b/utils/notebook/renderers.js
new file mode 100644
index 0000000..d502243
--- /dev/null
+++ b/utils/notebook/renderers.js
@@ -0,0 +1,701 @@
+/* eslint-disable no-func-assign */
+/* eslint-disable no-unused-vars */
+/* -----------------------------------------------------------------------------
+| Copyright (c) Jupyter Development Team.
+| Distributed under the terms of the Modified BSD License.
+|----------------------------------------------------------------------------*/
+
+/**
+ * jupyter lab notebook output 渲染模块
+ * 本模块基于 @jupyterlab\rendermime\lib\renderers.js 二次开发
+ * 移除了部分功能,如:a 标签url处理,markdown 标题的自动生成对应链接等。
+ * 此外还去除了所需传参:resolver、linkHandler、translator
+ *
+ * 源码TS版:https://github.com/jupyterlab/jupyterlab/blob/master/packages/rendermime/src/renderers.ts
+ *
+ */
+
+import { removeMath, replaceMath } from "./latex";
+import { URLExt } from "@jupyterlab/coreutils";
+import escape from "lodash.escape";
+/**
+ * Render HTML into a host node.
+ *
+ * @param options - The options for rendering.
+ *
+ * @returns A promise which resolves when rendering is complete.
+ */
+export function renderHTML(options) {
+ // Unpack the options.
+ let { host, source, trusted, sanitizer, shouldTypeset, latexTypesetter } =
+ options;
+ let originalSource = source;
+ // Bail early if the source is empty.
+ if (!source) {
+ host.textContent = "";
+ return Promise.resolve(undefined);
+ }
+ // Sanitize the source if it is not trusted. This removes all
+ // `