diff --git a/package.json b/package.json
index 7e25a7687..66b18b7c5 100644
--- a/package.json
+++ b/package.json
@@ -13,6 +13,7 @@
"node-fetch": "^3.2.10",
"react": "^18.1.0",
"react-dom": "^18.1.0",
+ "react-markdown": "^8.0.5",
"remark": "^14.0.2",
"remark-gfm": "^3.0.1",
"sprintf-js": "^1.1.2",
diff --git a/src/emain.ts b/src/emain.ts
index 09df91b55..542718f67 100644
--- a/src/emain.ts
+++ b/src/emain.ts
@@ -282,9 +282,15 @@ function createMainWindow(clientData) {
if (url.startsWith("https://docs.getprompt.dev/")) {
electron.shell.openExternal(url);
}
- if (url.startsWith("https://discord.gg/")) {
+ else if (url.startsWith("https://discord.gg/")) {
electron.shell.openExternal(url);
}
+ else if (url.startsWith("https://extern/?")) {
+ let qmark = url.indexOf("?");
+ let param = url.substr(qmark+1);
+ let newUrl = decodeURIComponent(param);
+ electron.shell.openExternal(newUrl);
+ }
});
return win;
}
diff --git a/src/main.tsx b/src/main.tsx
index d4f109f99..ec9c86456 100644
--- a/src/main.tsx
+++ b/src/main.tsx
@@ -14,6 +14,8 @@ import localizedFormat from 'dayjs/plugin/localizedFormat';
import {GlobalModel, GlobalCommandRunner, Session, Cmd, Window, Screen, ScreenWindow, riToRPtr, windowWidthToCols, windowHeightToRows, termHeightFromRows, termWidthFromCols} from "./model";
import {isModKeyPress} from "./util";
import {ImageRendererModel} from "./imagerenderer";
+import ReactMarkdown from 'react-markdown'
+import remarkGfm from 'remark-gfm'
dayjs.extend(localizedFormat)
@@ -2775,17 +2777,72 @@ class HistoryView extends React.Component<{}, {}> {
}
}
+function LinkRenderer(props : any) : any {
+ let newUrl = "https://extern?" + encodeURIComponent(props.href);
+ return {props.children}
+}
+
+function HeaderRenderer(props : any, hnum : number) : any {
+ return (
+
{props.children}
+ );
+}
+
+function CodeRenderer(props : any) : any {
+ return (
+ {props.children}
+ );
+}
+
@mobxReact.observer
class Bookmark extends React.Component<{bookmark : BookmarkType}, {}> {
+ @boundMethod
+ handleDeleteClick() : void {
+ let {bookmark} = this.props;
+ let model = GlobalModel.bookmarksModel;
+ model.handleDeleteBookmark(bookmark.bookmarkid);
+ }
+
+ @boundMethod
+ handleEditClick() : void {
+ console.log("do edit");
+ }
+
render() {
let bm = this.props.bookmark;
- let isSelected = false;
+ let model = GlobalModel.bookmarksModel;
+ let isSelected = (model.activeBookmark.get() == bm.bookmarkid);
+ let markdown = bm.description ?? "";
+ let markdownComponents = {
+ a: LinkRenderer,
+ h1: (props) => HeaderRenderer(props, 1),
+ h2: (props) => HeaderRenderer(props, 2),
+ h3: (props) => HeaderRenderer(props, 3),
+ h4: (props) => HeaderRenderer(props, 4),
+ h5: (props) => HeaderRenderer(props, 5),
+ h6: (props) => HeaderRenderer(props, 6),
+ code: CodeRenderer,
+ };
+ if (bm.cmdstr.startsWith("git")) {
+ markdown = "Use to modify the code repo\n1. git pull\n2. git push\n3. git commit\n\n> one\n> more blockquote\n>\n> more";
+ }
+ let hasDesc = markdown != "";
return (
-
+
-
bookmark - {bm.bookmarkid}
-
-
{bm.cmdstr}
+
+
+
+
+
+
+
+ {bm.cmdstr}
+
+
+
);
@@ -2809,7 +2866,23 @@ class BookmarksView extends React.Component<{}, {}> {
+
+
+ No Bookmarks.
+ Use the icon on commands to add your first bookmark.
+
+
+
0}>
+
+
+ [Enter] to Select
+ [Arrow Up] / [Arrow Down] to Move in List
+ [Backspace/Delete]x2 or to Delete
+ [e] or to Edit
+
+
+
);
}
diff --git a/src/model.ts b/src/model.ts
index 7d61f907b..aab2041bf 100644
--- a/src/model.ts
+++ b/src/model.ts
@@ -1585,6 +1585,55 @@ type LineFocusType = {
class BookmarksModel {
bookmarks : OArr = mobx.observable.array([], {name: "Bookmarks"});
+ activeBookmark : OV = mobx.observable.box(null, {name: "activeBookmark"});
+ editingBookmark : OV = mobx.observable.box(null, {name: "editingBookmark"});
+ pendingDelete : OV = mobx.observable.box(false, {name: "pendingDelete"});
+
+ closeView() : void {
+ mobx.action(() => {
+ GlobalModel.activeMainView.set("session");
+ })();
+ }
+
+ @boundMethod
+ clearPendingDelete() : void {
+ mobx.action(() => this.pendingDelete.set(null))();
+ }
+
+ handleDeleteBookmark(bookmarkId : string) : void {
+ if (this.pendingDelete.get() == null || this.pendingDelete.get() != this.activeBookmark.get()) {
+ mobx.action(() => this.pendingDelete.set(this.activeBookmark.get()))();
+ setTimeout(this.clearPendingDelete, 2000);
+ return;
+ }
+ console.log("delete", bookmarkId);
+ }
+
+ handleDocKeyDown(e : any) : void {
+ if (e.code == "Escape") {
+ e.preventDefault();
+ this.closeView();
+ return;
+ }
+ if (this.editingBookmark.get() != null) {
+ return;
+ }
+ if (e.code == "Backspace" || e.code == "Delete") {
+ if (this.activeBookmark.get() == null) {
+ return;
+ }
+ e.preventDefault();
+ this.handleDeleteBookmark(this.activeBookmark.get());
+ return;
+ }
+ if (e.code == "ArrowUp") {
+ }
+ if (e.code == "ArrowDown") {
+ }
+ if (e.code == "Enter") {
+ }
+ }
+ return;
}
class Model {
@@ -1660,6 +1709,10 @@ class Model {
if (isModKeyPress(e)) {
return;
}
+ if (this.activeMainView.get() == "bookmarks") {
+ this.bookmarksModel.handleDocKeyDown(e);
+ return;
+ }
if (e.code == "Escape") {
e.preventDefault();
let inputModel = this.inputModel;
@@ -1943,7 +1996,12 @@ class Model {
showBookmarksView(bmview : BookmarksViewType) : void {
mobx.action(() => {
this.activeMainView.set("bookmarks");
- this.bookmarksModel.bookmarks.replace(bmview.bookmarks || []);
+ let bmArr = bmview.bookmarks ?? [];
+ this.bookmarksModel.bookmarks.replace(bmArr);
+ this.bookmarksModel.activeBookmark.set(null);
+ if (bmArr.length > 0) {
+ this.bookmarksModel.activeBookmark.set(bmArr[0].bookmarkid);
+ }
})();
}
diff --git a/src/sh2.less b/src/sh2.less
index 0541e2011..28ba7db78 100644
--- a/src/sh2.less
+++ b/src/sh2.less
@@ -118,8 +118,12 @@ html, body, #main {
}
.bookmarks-view {
+ background-color: #222;
+ overflow-y: auto;
+
.bookmarks-title {
- margin: 20px 10px 10px 15px;
+ margin: 20px 10px 0px 5px;
+ padding-left: 10px;
padding-bottom: 12px;
.mono-font(1.5rem);
color: @term-bright-white;
@@ -128,17 +132,135 @@ html, body, #main {
.bookmarks-list {
color: white;
- margin-left: 20px;
+ margin: 4px 10px 5px 5px;
+
+ .no-bookmarks {
+ color: @term-white;
+ padding: 30px 10px 35px 10px;
+ border-bottom: 1px solid white;
+ }
+ }
+
+ .bookmarks-help {
+ color: @term-white;
+ margin-top: 20px;
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ font-size: 12px;
+
+ .help-entry {
+ margin-left: 20px;
+ }
}
.bookmark {
- border-top: 1px solid #ccc;
- padding: 5px 5px 5px 0;
- margin-bottom: 5px;
+ border-bottom: 1px solid #777;
+ padding: 4px 5px 8px 15px;
+ margin-bottom: 4px;
+ position: relative;
+ display: flex;
+ flex-direction: row;
+
+ .focus-indicator {
+ top: 0;
+ height: calc(100% - 4px);
+ }
+
+ &.pending-delete {
+ background-color: #522;
+ }
+
+ .bookmark-content {
+ flex-grow: 1;
+ }
+
+ .bookmark-controls {
+ display: flex;
+ flex-direction: row;
+ font-size: 16px;
+ visibility: hidden;
+ color: @term-white;
+
+ .bookmark-control:first-child {
+ margin-left: 0;
+ }
+
+ .bookmark-control {
+ margin-left: 10px;
+ cursor: pointer;
+ padding: 2px;
+
+ &:hover {
+ color: @term-bright-white;
+ }
+ }
+ }
+
+ &:hover .bookmark-controls {
+ visibility: visible;
+ }
}
- .bookmark:first-child {
- border-top: 0;
+ .bookmark-code {
+ code {
+ color: white;
+ .mono-font();
+ background-color: black;
+ }
+ padding: 4px 10px 4px 0;
+ margin-top: 10px;
+
+ &.no-desc {
+ margin-top: 0;
+ }
+ }
+
+ .markdown {
+ color: @term-white;
+
+ code {
+ background-color: black;
+ color: white;
+ .mono-font();
+ padding: 5px;
+ }
+
+ code.inline {
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .title {
+ color: white;
+ margin-bottom: 0;
+ }
+
+ strong {
+ color: white;
+ }
+
+ a {
+ color: #32afff;
+ }
+
+ ul {
+ list-style-type: disc;
+ list-style-position: outside;
+ margin-left: 16px;
+ }
+
+ ol {
+ list-style-position: outside;
+ margin-left: 19px;
+ }
+
+ blockquote {
+ margin: 4px 10px 4px 10px;
+ border-radius: 3px;
+ background-color: #444;
+ padding: 2px 4px 2px 6px;
+ }
}
}
@@ -1726,17 +1848,17 @@ input[type=checkbox] {
&.selected {
display: block;
- background-color: #666;
+ background-color: #666 !important;
}
&.active, &.active.selected {
display: block;
- background-color: @tab-blue;
+ background-color: @tab-blue !important;
}
&.active.selected.fg-focus {
display: block;
- background-color: @tab-green;
+ background-color: @tab-green !important;
}
}
diff --git a/yarn.lock b/yarn.lock
index bfe7aee53..117828fd7 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1790,6 +1790,13 @@
"@types/minimatch" "*"
"@types/node" "*"
+"@types/hast@^2.0.0":
+ version "2.3.4"
+ resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.4.tgz#8aa5ef92c117d20d974a82bdfb6a648b08c0bafc"
+ integrity sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==
+ dependencies:
+ "@types/unist" "*"
+
"@types/http-cache-semantics@*":
version "4.0.1"
resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812"
@@ -1851,7 +1858,7 @@
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.11.tgz#1d455ac0211549a8409d3cdb371cd55cc971e8dc"
integrity sha512-KJ021B1nlQUBLopzZmPBVuGU9un7WJd/W4ya7Ih02B4Uwky5Nja0yGYav2EfYIk0RR2Q9oVhf60S2XR1BCWJ2g==
-"@types/prop-types@*":
+"@types/prop-types@*", "@types/prop-types@^15.0.0":
version "15.7.5"
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf"
integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==
@@ -2744,6 +2751,11 @@ colorspace@1.1.x:
color "^3.1.3"
text-hex "1.0.x"
+comma-separated-tokens@^2.0.0:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee"
+ integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==
+
commander@^2.20.0:
version "2.20.3"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
@@ -4036,6 +4048,11 @@ has@^1.0.3:
dependencies:
function-bind "^1.1.1"
+hast-util-whitespace@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz#0ec64e257e6fc216c7d14c8a1b74d27d650b4557"
+ integrity sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==
+
he@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
@@ -4267,6 +4284,11 @@ ini@^1.3.4:
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
+inline-style-parser@0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1"
+ integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==
+
interpret@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9"
@@ -4706,7 +4728,7 @@ longest-streak@^3.0.0:
resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.1.0.tgz#62fa67cd958742a1574af9f39866364102d90cd4"
integrity sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==
-loose-envify@^1.1.0:
+loose-envify@^1.1.0, loose-envify@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
@@ -4807,6 +4829,15 @@ matcher@^3.0.0:
dependencies:
escape-string-regexp "^4.0.0"
+mdast-util-definitions@^5.0.0:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz#9910abb60ac5d7115d6819b57ae0bcef07a3f7a7"
+ integrity sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==
+ dependencies:
+ "@types/mdast" "^3.0.0"
+ "@types/unist" "^2.0.0"
+ unist-util-visit "^4.0.0"
+
mdast-util-find-and-replace@^2.0.0:
version "2.2.2"
resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz#cc2b774f7f3630da4bd592f61966fecade8b99b1"
@@ -4901,6 +4932,20 @@ mdast-util-phrasing@^3.0.0:
"@types/mdast" "^3.0.0"
unist-util-is "^5.0.0"
+mdast-util-to-hast@^12.1.0:
+ version "12.3.0"
+ resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz#045d2825fb04374e59970f5b3f279b5700f6fb49"
+ integrity sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==
+ dependencies:
+ "@types/hast" "^2.0.0"
+ "@types/mdast" "^3.0.0"
+ mdast-util-definitions "^5.0.0"
+ micromark-util-sanitize-uri "^1.1.0"
+ trim-lines "^3.0.0"
+ unist-util-generated "^2.0.0"
+ unist-util-position "^4.0.0"
+ unist-util-visit "^4.0.0"
+
mdast-util-to-markdown@^1.0.0, mdast-util-to-markdown@^1.3.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz#c13343cb3fc98621911d33b5cd42e7d0731171c6"
@@ -5186,7 +5231,7 @@ micromark-util-resolve-all@^1.0.0:
dependencies:
micromark-util-types "^1.0.0"
-micromark-util-sanitize-uri@^1.0.0:
+micromark-util-sanitize-uri@^1.0.0, micromark-util-sanitize-uri@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.1.0.tgz#f12e07a85106b902645e0364feb07cf253a85aee"
integrity sha512-RoxtuSCX6sUNtxhbmsEFQfWzs8VN7cTctmBPvYivo98xb/kDEoTCtJQX5wyzIYEmk/lvNFTat4hL8oW0KndFpg==
@@ -5596,6 +5641,11 @@ npmlog@^6.0.0:
gauge "^4.0.3"
set-blocking "^2.0.0"
+object-assign@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+ integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
+
object-inspect@^1.9.0:
version "1.12.2"
resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea"
@@ -5973,6 +6023,20 @@ promise-retry@^2.0.1:
err-code "^2.0.2"
retry "^0.12.0"
+prop-types@^15.0.0:
+ version "15.8.1"
+ resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
+ integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
+ dependencies:
+ loose-envify "^1.4.0"
+ object-assign "^4.1.1"
+ react-is "^16.13.1"
+
+property-information@^6.0.0:
+ version "6.2.0"
+ resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.2.0.tgz#b74f522c31c097b5149e3c3cb8d7f3defd986a1d"
+ integrity sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg==
+
proto-list@~1.2.1:
version "1.2.4"
resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"
@@ -6065,6 +6129,37 @@ react-dom@^18.1.0:
loose-envify "^1.1.0"
scheduler "^0.23.0"
+react-is@^16.13.1:
+ version "16.13.1"
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
+ integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
+
+react-is@^18.0.0:
+ version "18.2.0"
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b"
+ integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==
+
+react-markdown@^8.0.5:
+ version "8.0.5"
+ resolved "https://registry.yarnpkg.com/react-markdown/-/react-markdown-8.0.5.tgz#c9a70a33ca9aeeafb769c6582e7e38843b9d70ad"
+ integrity sha512-jGJolWWmOWAvzf+xMdB9zwStViODyyFQhNB/bwCerbBKmrTmgmA599CGiOlP58OId1IMoIRsA8UdI1Lod4zb5A==
+ dependencies:
+ "@types/hast" "^2.0.0"
+ "@types/prop-types" "^15.0.0"
+ "@types/unist" "^2.0.0"
+ comma-separated-tokens "^2.0.0"
+ hast-util-whitespace "^2.0.0"
+ prop-types "^15.0.0"
+ property-information "^6.0.0"
+ react-is "^18.0.0"
+ remark-parse "^10.0.0"
+ remark-rehype "^10.0.0"
+ space-separated-tokens "^2.0.0"
+ style-to-object "^0.4.0"
+ unified "^10.0.0"
+ unist-util-visit "^4.0.0"
+ vfile "^5.0.0"
+
react@^18.1.0:
version "18.2.0"
resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5"
@@ -6199,6 +6294,16 @@ remark-parse@^10.0.0:
mdast-util-from-markdown "^1.0.0"
unified "^10.0.0"
+remark-rehype@^10.0.0:
+ version "10.1.0"
+ resolved "https://registry.yarnpkg.com/remark-rehype/-/remark-rehype-10.1.0.tgz#32dc99d2034c27ecaf2e0150d22a6dcccd9a6279"
+ integrity sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==
+ dependencies:
+ "@types/hast" "^2.0.0"
+ "@types/mdast" "^3.0.0"
+ mdast-util-to-hast "^12.1.0"
+ unified "^10.0.0"
+
remark-stringify@^10.0.0:
version "10.0.2"
resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-10.0.2.tgz#50414a6983f5008eb9e72eed05f980582d1f69d7"
@@ -6676,6 +6781,11 @@ source-map@^0.6.0, source-map@~0.6.0:
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+space-separated-tokens@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f"
+ integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==
+
spdx-correct@^3.0.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9"
@@ -6809,6 +6919,13 @@ style-loader@^3.3.1:
resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.1.tgz#057dfa6b3d4d7c7064462830f9113ed417d38575"
integrity sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==
+style-to-object@^0.4.0:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.4.1.tgz#53cf856f7cf7f172d72939d9679556469ba5de37"
+ integrity sha512-HFpbb5gr2ypci7Qw+IOhnP2zOU7e77b+rzM+wTzXzfi1PrtBCX0E7Pk4wL4iTLnhzZ+JgEGAhX81ebTg/aYjQw==
+ dependencies:
+ inline-style-parser "0.1.1"
+
sudo-prompt@^9.1.1:
version "9.2.1"
resolved "https://registry.yarnpkg.com/sudo-prompt/-/sudo-prompt-9.2.1.tgz#77efb84309c9ca489527a4e749f287e6bdd52afd"
@@ -6964,6 +7081,11 @@ tr46@~0.0.3:
resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==
+trim-lines@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338"
+ integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==
+
trim-repeated@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21"
@@ -7086,11 +7208,23 @@ unique-slug@^3.0.0:
dependencies:
imurmurhash "^0.1.4"
+unist-util-generated@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-2.0.1.tgz#e37c50af35d3ed185ac6ceacb6ca0afb28a85cae"
+ integrity sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==
+
unist-util-is@^5.0.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-5.2.0.tgz#37eed0617b76c114fd34d44c201aa96fd928b309"
integrity sha512-Glt17jWwZeyqrFqOK0pF1Ded5U3yzJnFr8CG1GMjCWTp9zDo2p+cmD6pWbZU8AgM5WU3IzRv6+rBwhzsGh6hBQ==
+unist-util-position@^4.0.0:
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-4.0.4.tgz#93f6d8c7d6b373d9b825844645877c127455f037"
+ integrity sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==
+ dependencies:
+ "@types/unist" "^2.0.0"
+
unist-util-stringify-position@^3.0.0:
version "3.0.3"
resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz#03ad3348210c2d930772d64b489580c13a7db39d"