0
Fork 0
mirror of https://github.com/logto-io/logto.git synced 2024-12-30 20:33:54 -05:00

refactor(console): replace monaco editor with prism highlighter

This commit is contained in:
Charles Zhao 2022-05-09 20:19:51 +08:00
parent dd8b767130
commit 1f55f779e6
No known key found for this signature in database
GPG key ID: 4858774754C92DF2
10 changed files with 174 additions and 225 deletions

View file

@ -21,7 +21,6 @@
"@logto/react": "^0.1.5",
"@logto/schemas": "^0.1.0",
"@mdx-js/react": "^1.6.22",
"@monaco-editor/react": "^4.3.1",
"@parcel/core": "^2.5.0",
"@parcel/transformer-mdx": "^2.5.0",
"@parcel/transformer-sass": "^2.5.0",
@ -37,6 +36,7 @@
"@types/react": "^17.0.14",
"@types/react-dom": "^17.0.9",
"@types/react-modal": "^3.13.1",
"@types/react-syntax-highlighter": "^15.5.1",
"classnames": "^2.3.1",
"csstype": "^3.0.11",
"dayjs": "^1.10.5",
@ -47,7 +47,6 @@
"ky": "^0.30.0",
"lint-staged": "^12.0.0",
"lodash.kebabcase": "^4.1.1",
"monaco-editor": "^0.33.0",
"nanoid": "^3.1.23",
"parcel": "^2.5.0",
"postcss": "^8.4.6",
@ -65,6 +64,7 @@
"react-modal": "^3.14.4",
"react-paginate": "^8.1.2",
"react-router-dom": "^6.2.2",
"react-syntax-highlighter": "^15.5.0",
"remark-gfm": "^3.0.1",
"stylelint": "^13.13.1",
"swr": "^1.2.2",

View file

@ -61,14 +61,17 @@ pnpm build
Add the following code to your main html file. You may need client ID and authorization domain.
```typescript
```tsx
import { LogtoProvider, LogtoConfig } from '@logto/react';
import React from 'react';
//...
const App = () => {
const config: LogtoConfig = { clientId: 'foo', endpoint: 'https://your-endpoint-domain.com' };
const config: LogtoConfig = {
clientId: 'foo',
endpoint: 'https://your-endpoint-domain.com'
};
return (
<BrowserRouter>
@ -109,7 +112,7 @@ The Logto React SDK provides you tools and hooks to quickly implement your own a
Add the following code to your web app
```typescript
```tsx
import React from 'react';
import { useLogto } from '@logto/react';
@ -125,7 +128,7 @@ export default SignInButton;
### Retrieve Auth Status
```typescript
```tsx
import React from "react";
import { useLogto } from '@logto/react';
@ -159,7 +162,7 @@ Execute signOut() methods will redirect users to the Logto sign out page. After
Add the following code to your web app
```typescript
```tsx
import React from 'react';
import { useLogto } from '@logto/react';

View file

@ -62,14 +62,17 @@ pnpm build
在项目的 html 文件中,加入如下代码(需提前准备好 client ID 以及 authorization domain
Add the following code to your main html file. You may need client ID and authorization domain.
```typescript
```tsx
import { LogtoProvider, LogtoConfig } from '@logto/react';
import React from 'react';
//...
const App = () => {
const config: LogtoConfig = { clientId: 'foo', endpoint: 'https://your-endpoint-domain.com' };
const config: LogtoConfig = {
clientId: 'foo',
endpoint: 'https://your-endpoint-domain.com'
};
return (
<BrowserRouter>
@ -110,7 +113,7 @@ The Logto React SDK provides you tools and hooks to quickly implement your own a
Add the following code to your web app
```typescript
```tsx
import React from 'react';
import { useLogto } from '@logto/react';
@ -126,7 +129,7 @@ export default SignInButton;
### Retrieve Auth Status
```typescript
```tsx
import React from "react";
import { useLogto } from '@logto/react';
@ -160,7 +163,7 @@ Execute signOut() methods will redirect users to the Logto sign out page. After
Add the following code to your web app
```typescript
```tsx
import React from 'react';
import { useLogto } from '@logto/react';

View file

@ -1,20 +1,52 @@
@use '@/scss/underscore' as _;
.editor {
border-radius: _.unit(4);
padding: _.unit(4) 0;
// Use fixed color for both light and dark mode, the same as vs-dark.
background: #1e1e1e;
.container {
padding: _.unit(6);
border-radius: 16px;
// Force dark theme on the code editor
background: #2d3132;
position: relative;
.actions {
.copy {
display: flex;
align-items: center;
justify-content: right;
padding: 0 _.unit(4);
position: absolute;
top: 24px;
right: 24px;
opacity: 0%;
transition: opacity 0.2s ease-in-out;
z-index: 1;
cursor: pointer;
}
button:hover {
// Clear icons background style since the background color is fixed.
background: unset;
&:hover {
.copy {
opacity: 100%;
}
}
.editor {
position: relative;
textarea {
margin: 0;
padding: 0;
border: none;
background: none;
font-size: 14px;
line-height: 1.5;
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
white-space: pre-wrap;
word-break: keep-all;
overflow-wrap: break-word;
position: absolute;
inset: 0;
resize: none;
color: #fefefe;
overflow: hidden;
-webkit-text-fill-color: transparent;
outline: none;
}
}
}

View file

@ -1,61 +1,52 @@
import MonacoEditor from '@monaco-editor/react';
import * as monaco from 'monaco-editor';
import React from 'react';
import React, { ChangeEvent } from 'react';
import { PrismAsyncLight as SyntaxHighlighter } from 'react-syntax-highlighter';
// eslint-disable-next-line node/file-extension-in-import
import { a11yDark as theme } from 'react-syntax-highlighter/dist/esm/styles/prism';
import Copy from '@/icons/Copy';
import IconButton from '../IconButton';
import CopyToClipboard from '../CopyToClipboard';
import * as styles from './index.module.scss';
type Props = {
language?: string;
height?: string;
isReadonly?: boolean;
value?: string;
onChange?: (value: string) => void;
};
const CodeEditor = ({ value, onChange, language, height = '300px', isReadonly = false }: Props) => {
const handleChange = (changedValue = '') => {
onChange?.(changedValue);
};
const handleCopy = async () => {
if (!value) {
return;
}
await navigator.clipboard.writeText(value);
};
// See https://microsoft.github.io/monaco-editor/api/enums/monaco.editor.EditorOption.html
const options: monaco.editor.IStandaloneEditorConstructionOptions = {
readOnly: isReadonly,
scrollBeyondLastLine: false,
codeLens: false,
minimap: {
enabled: false,
},
folding: false,
scrollbar: {
alwaysConsumeMouseWheel: false,
},
const CodeEditor = ({ language, isReadonly = false, value = '', onChange }: Props) => {
const handleChange = (event: ChangeEvent<HTMLTextAreaElement>) => {
onChange?.(event.currentTarget.value);
};
return (
<div className={styles.editor}>
<div className={styles.actions}>
<IconButton onClick={handleCopy}>
<Copy />
</IconButton>
<div className={styles.container}>
<CopyToClipboard value={value} variant="icon" className={styles.copy} />
<div className={styles.editor}>
<textarea
autoCapitalize="off"
autoComplete="off"
autoCorrect="off"
data-gramm="false"
readOnly={isReadonly}
spellCheck="false"
onChange={handleChange}
>
{value}
</textarea>
<SyntaxHighlighter
customStyle={{
background: 'transparent',
fontSize: '14px',
margin: '0',
padding: '0',
borderRadius: '0',
}}
language={language}
style={theme}
>
{value}
</SyntaxHighlighter>
</div>
<MonacoEditor
language={language}
height={height}
theme="vs-dark"
value={value}
options={options}
onChange={handleChange}
/>
</div>
);
};

View file

@ -33,6 +33,18 @@
}
}
}
&.icon {
.row {
> svg {
fill: rgba(#fff, 0.8);
&:hover {
fill: #fff;
}
}
}
}
}
div.successTooltip {

View file

@ -8,7 +8,7 @@ import * as styles from './index.module.scss';
type Props = {
value: string;
className?: string;
variant?: 'text' | 'contained' | 'border';
variant?: 'text' | 'contained' | 'border' | 'icon';
};
const CopyIcon = forwardRef<SVGSVGElement, SVGProps<SVGSVGElement>>(
@ -53,7 +53,7 @@ const CopyToClipboard = ({ value, className, variant = 'contained' }: Props) =>
}}
>
<div className={styles.row}>
{value}
{variant === 'icon' ? null : value}
<CopyIcon ref={copyIconReference} onClick={copy} />
<Tooltip
className={classNames(copyState === 'copied' && styles.successTooltip)}

View file

@ -114,9 +114,6 @@ const Guide = ({
return <CodeEditor isReadonly language={language} value={String(children)} />;
},
hr: () => null,
h1: () => null,
h2: () => null,
}}
>
<Suspense fallback={<div>Loading...</div>}>

View file

@ -249,7 +249,7 @@ const UserDetails = () => {
title="admin_console.user_details.field_custom_data"
className={styles.textField}
>
<CodeEditor height="200px" language="json" value={value} onChange={onChange} />
<CodeEditor language="json" value={value} onChange={onChange} />
</FormField>
</div>
<div className={detailsStyles.footer}>

View file

@ -439,7 +439,6 @@ importers:
'@logto/react': ^0.1.5
'@logto/schemas': ^0.1.0
'@mdx-js/react': ^1.6.22
'@monaco-editor/react': ^4.3.1
'@parcel/core': ^2.5.0
'@parcel/transformer-mdx': ^2.5.0
'@parcel/transformer-sass': ^2.5.0
@ -455,6 +454,7 @@ importers:
'@types/react': ^17.0.14
'@types/react-dom': ^17.0.9
'@types/react-modal': ^3.13.1
'@types/react-syntax-highlighter': ^15.5.1
classnames: ^2.3.1
csstype: ^3.0.11
dayjs: ^1.10.5
@ -465,7 +465,6 @@ importers:
ky: ^0.30.0
lint-staged: ^12.0.0
lodash.kebabcase: ^4.1.1
monaco-editor: ^0.33.0
nanoid: ^3.1.23
parcel: ^2.5.0
postcss: ^8.4.6
@ -483,6 +482,7 @@ importers:
react-modal: ^3.14.4
react-paginate: ^8.1.2
react-router-dom: ^6.2.2
react-syntax-highlighter: ^15.5.0
remark-gfm: ^3.0.1
stylelint: ^13.13.1
swr: ^1.2.2
@ -492,7 +492,6 @@ importers:
'@logto/react': 0.1.5_react@17.0.2
'@logto/schemas': link:../schemas
'@mdx-js/react': 1.6.22_react@17.0.2
'@monaco-editor/react': 4.3.1_m23risk2t2ktwbmyoufat5z4ue
'@parcel/core': 2.5.0
'@parcel/transformer-mdx': 2.5.0_qizmsa7ujgewn5fdmmvyi6cykq
'@parcel/transformer-sass': 2.5.0_@parcel+core@2.5.0
@ -508,6 +507,7 @@ importers:
'@types/react': 17.0.37
'@types/react-dom': 17.0.11
'@types/react-modal': 3.13.1
'@types/react-syntax-highlighter': 15.5.1
classnames: 2.3.1
csstype: 3.0.11
dayjs: 1.10.7
@ -518,7 +518,6 @@ importers:
ky: 0.30.0
lint-staged: 12.4.0
lodash.kebabcase: 4.1.1
monaco-editor: 0.33.0
nanoid: 3.3.1
parcel: 2.5.0_postcss@8.4.6
postcss: 8.4.6
@ -536,6 +535,7 @@ importers:
react-modal: 3.14.4_sfoxds7t5ydpegc3knd667wn6m
react-paginate: 8.1.2_react@17.0.2
react-router-dom: 6.2.2_sfoxds7t5ydpegc3knd667wn6m
react-syntax-highlighter: 15.5.0_react@17.0.2
remark-gfm: 3.0.1
stylelint: 13.13.1
swr: 1.2.2_react@17.0.2
@ -4131,7 +4131,6 @@ packages:
pacote: 11.3.5
semver: 7.3.5
transitivePeerDependencies:
- bluebird
- supports-color
dev: true
@ -4300,7 +4299,6 @@ packages:
whatwg-url: 8.7.0
yargs-parser: 20.2.4
transitivePeerDependencies:
- bluebird
- supports-color
dev: true
@ -4498,7 +4496,6 @@ packages:
npm-registry-fetch: 9.0.0
npmlog: 4.1.2
transitivePeerDependencies:
- bluebird
- supports-color
dev: true
@ -4528,7 +4525,6 @@ packages:
pify: 5.0.0
read-package-json: 3.0.1
transitivePeerDependencies:
- bluebird
- supports-color
dev: true
@ -4663,7 +4659,6 @@ packages:
pacote: 11.3.5
semver: 7.3.5
transitivePeerDependencies:
- bluebird
- encoding
- supports-color
dev: true
@ -4919,29 +4914,6 @@ packages:
json5: 2.2.1
dev: true
/@monaco-editor/loader/1.2.0_monaco-editor@0.33.0:
resolution: {integrity: sha512-cJVCG/T/KxXgzYnjKqyAgsKDbH9mGLjcXxN6AmwumBwa2rVFkwvGcUj1RJtD0ko4XqLqJxwqsN/Z/KURB5f1OQ==}
peerDependencies:
monaco-editor: '>= 0.21.0 < 1'
dependencies:
monaco-editor: 0.33.0
state-local: 1.0.7
dev: true
/@monaco-editor/react/4.3.1_m23risk2t2ktwbmyoufat5z4ue:
resolution: {integrity: sha512-f+0BK1PP/W5I50hHHmwf11+Ea92E5H1VZXs+wvKplWUWOfyMa1VVwqkJrXjRvbcqHL+XdIGYWhWNdi4McEvnZg==}
peerDependencies:
monaco-editor: '>= 0.25.0 < 1'
react: ^16.8.0 || ^17.0.0
react-dom: ^16.8.0 || ^17.0.0
dependencies:
'@monaco-editor/loader': 1.2.0_monaco-editor@0.33.0
monaco-editor: 0.33.0
prop-types: 15.8.1
react: 17.0.2
react-dom: 17.0.2_react@17.0.2
dev: true
/@nodelib/fs.scandir/2.1.5:
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
engines: {node: '>= 8'}
@ -4985,8 +4957,6 @@ packages:
promise-retry: 2.0.1
semver: 7.3.5
which: 2.0.2
transitivePeerDependencies:
- bluebird
dev: true
/@npmcli/installed-package-contents/1.0.7:
@ -5987,7 +5957,6 @@ packages:
stylelint-config-xo-scss: 0.14.0_stylelint@13.13.1
transitivePeerDependencies:
- eslint
- eslint-import-resolver-webpack
- prettier
- supports-color
- typescript
@ -6011,7 +5980,7 @@ packages:
eslint-import-resolver-typescript: 2.5.0_rnagsyfcubvpoxo2ynj23pim7u
eslint-plugin-consistent-default-export-name: 0.0.7
eslint-plugin-eslint-comments: 3.2.0_eslint@8.10.0
eslint-plugin-import: 2.25.4_sidoke6kqbkbdht6nlmwbfnany
eslint-plugin-import: 2.25.4_eslint@8.10.0
eslint-plugin-no-use-extend-native: 0.5.0
eslint-plugin-node: 11.1.0_eslint@8.10.0
eslint-plugin-prettier: 3.4.1_6pitu4b2tqihty6rv5qeiyb35m
@ -6021,7 +5990,6 @@ packages:
prettier: 2.5.1
typescript: 4.6.2
transitivePeerDependencies:
- eslint-import-resolver-webpack
- supports-color
dev: true
@ -6043,7 +6011,7 @@ packages:
eslint-import-resolver-typescript: 2.5.0_rnagsyfcubvpoxo2ynj23pim7u
eslint-plugin-consistent-default-export-name: 0.0.7
eslint-plugin-eslint-comments: 3.2.0_eslint@8.10.0
eslint-plugin-import: 2.25.4_sidoke6kqbkbdht6nlmwbfnany
eslint-plugin-import: 2.25.4_eslint@8.10.0
eslint-plugin-no-use-extend-native: 0.5.0
eslint-plugin-node: 11.1.0_eslint@8.10.0
eslint-plugin-prettier: 3.4.1_6pitu4b2tqihty6rv5qeiyb35m
@ -6053,7 +6021,6 @@ packages:
prettier: 2.5.1
typescript: 4.6.3
transitivePeerDependencies:
- eslint-import-resolver-webpack
- supports-color
dev: true
@ -6168,7 +6135,7 @@ packages:
dependencies:
'@babel/core': 7.16.0
postcss: 7.0.39
postcss-syntax: 0.36.2_kei4jy7wdgbhc236h4oijypxom
postcss-syntax: 0.36.2_postcss@7.0.39
transitivePeerDependencies:
- supports-color
dev: true
@ -6181,7 +6148,7 @@ packages:
postcss-syntax: '>=0.36.2'
dependencies:
postcss: 7.0.39
postcss-syntax: 0.36.2_kei4jy7wdgbhc236h4oijypxom
postcss-syntax: 0.36.2_postcss@7.0.39
remark: 13.0.0
unist-util-find-all-after: 3.0.2
transitivePeerDependencies:
@ -6824,6 +6791,12 @@ packages:
'@types/react': 17.0.37
dev: true
/@types/react-syntax-highlighter/15.5.1:
resolution: {integrity: sha512-+yD6D8y21JqLf89cRFEyRfptVMqo2ROHyAlysRvFwT28gT5gDo3KOiXHwGilHcq9y/OKTjlWK0f/hZUicrBFPQ==}
dependencies:
'@types/react': 17.0.37
dev: true
/@types/react/17.0.37:
resolution: {integrity: sha512-2FS1oTqBGcH/s0E+CjrCCR9+JMpsu9b69RTFO+40ua43ZqP5MmQ4iUde/dMjWR909KxZwmOQIFq6AV6NjEG5xg==}
dependencies:
@ -7975,8 +7948,6 @@ packages:
qs: 6.9.7
raw-body: 2.4.3
type-is: 1.6.18
transitivePeerDependencies:
- supports-color
dev: true
/bonjour-service/1.0.11:
@ -8176,8 +8147,6 @@ packages:
ssri: 8.0.1
tar: 6.1.11
unique-filename: 1.1.1
transitivePeerDependencies:
- bluebird
dev: true
/cache-content-type/1.0.1:
@ -8692,8 +8661,6 @@ packages:
on-headers: 1.0.2
safe-buffer: 5.1.2
vary: 1.1.2
transitivePeerDependencies:
- supports-color
dev: true
/concat-map/0.0.1:
@ -9247,22 +9214,12 @@ packages:
/debug/2.6.9:
resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
peerDependencies:
supports-color: '*'
peerDependenciesMeta:
supports-color:
optional: true
dependencies:
ms: 2.0.0
dev: true
/debug/3.2.7:
resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
peerDependencies:
supports-color: '*'
peerDependenciesMeta:
supports-color:
optional: true
dependencies:
ms: 2.1.3
@ -9481,8 +9438,6 @@ packages:
dependencies:
address: 1.1.2
debug: 2.6.9
transitivePeerDependencies:
- supports-color
dev: true
/detect-port/1.3.0:
@ -9492,8 +9447,6 @@ packages:
dependencies:
address: 1.1.2
debug: 2.6.9
transitivePeerDependencies:
- supports-color
dev: true
/dezalgo/1.0.3:
@ -9956,8 +9909,6 @@ packages:
dependencies:
debug: 3.2.7
resolve: 1.22.0
transitivePeerDependencies:
- supports-color
dev: true
/eslint-import-resolver-typescript/2.5.0_rnagsyfcubvpoxo2ynj23pim7u:
@ -9969,7 +9920,7 @@ packages:
dependencies:
debug: 4.3.3
eslint: 8.10.0
eslint-plugin-import: 2.25.4_sidoke6kqbkbdht6nlmwbfnany
eslint-plugin-import: 2.25.4_eslint@8.10.0
glob: 7.2.0
is-glob: 4.0.3
resolve: 1.22.0
@ -9978,31 +9929,12 @@ packages:
- supports-color
dev: true
/eslint-module-utils/2.7.3_l62aq42yiamaj3cnpuf6avthf4:
/eslint-module-utils/2.7.3:
resolution: {integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==}
engines: {node: '>=4'}
peerDependencies:
'@typescript-eslint/parser': '*'
eslint-import-resolver-node: '*'
eslint-import-resolver-typescript: '*'
eslint-import-resolver-webpack: '*'
peerDependenciesMeta:
'@typescript-eslint/parser':
optional: true
eslint-import-resolver-node:
optional: true
eslint-import-resolver-typescript:
optional: true
eslint-import-resolver-webpack:
optional: true
dependencies:
'@typescript-eslint/parser': 5.14.0_6ued5m2uqo2r7ksfjlk2bzosza
debug: 3.2.7
eslint-import-resolver-node: 0.3.6
eslint-import-resolver-typescript: 2.5.0_rnagsyfcubvpoxo2ynj23pim7u
find-up: 2.1.0
transitivePeerDependencies:
- supports-color
dev: true
/eslint-plugin-consistent-default-export-name/0.0.7:
@ -10037,24 +9969,19 @@ packages:
ignore: 5.2.0
dev: true
/eslint-plugin-import/2.25.4_sidoke6kqbkbdht6nlmwbfnany:
/eslint-plugin-import/2.25.4_eslint@8.10.0:
resolution: {integrity: sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==}
engines: {node: '>=4'}
peerDependencies:
'@typescript-eslint/parser': '*'
eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
peerDependenciesMeta:
'@typescript-eslint/parser':
optional: true
dependencies:
'@typescript-eslint/parser': 5.14.0_6ued5m2uqo2r7ksfjlk2bzosza
array-includes: 3.1.4
array.prototype.flat: 1.2.5
debug: 2.6.9
doctrine: 2.1.0
eslint: 8.10.0
eslint-import-resolver-node: 0.3.6
eslint-module-utils: 2.7.3_l62aq42yiamaj3cnpuf6avthf4
eslint-module-utils: 2.7.3
has: 1.0.3
is-core-module: 2.8.1
is-glob: 4.0.3
@ -10062,10 +9989,6 @@ packages:
object.values: 1.1.5
resolve: 1.22.0
tsconfig-paths: 3.13.0
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
- supports-color
dev: true
/eslint-plugin-no-use-extend-native/0.5.0:
@ -10457,8 +10380,6 @@ packages:
type-is: 1.6.18
utils-merge: 1.0.1
vary: 1.1.2
transitivePeerDependencies:
- supports-color
dev: true
/extend-shallow/2.0.1:
@ -10557,6 +10478,12 @@ packages:
reusify: 1.0.4
dev: true
/fault/1.0.4:
resolution: {integrity: sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==}
dependencies:
format: 0.2.2
dev: true
/faye-websocket/0.11.4:
resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==}
engines: {node: '>=0.8.0'}
@ -10660,8 +10587,6 @@ packages:
parseurl: 1.3.3
statuses: 1.5.0
unpipe: 1.0.0
transitivePeerDependencies:
- supports-color
dev: true
/find-cache-dir/3.3.2:
@ -10808,6 +10733,11 @@ packages:
mime-types: 2.1.34
dev: true
/format/0.2.2:
resolution: {integrity: sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=}
engines: {node: '>=0.4.x'}
dev: true
/formidable/2.0.1:
resolution: {integrity: sha512-rjTMNbp2BpfQShhFbR3Ruk3qk2y9jKpvMW78nJgx8QKtxjDVrwbZG+wvDOmVbifHyOUOQJXxqEy6r0faRrPzTQ==}
dependencies:
@ -11436,6 +11366,10 @@ packages:
resolution: {integrity: sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==}
engines: {node: '>=8'}
/highlight.js/10.7.3:
resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==}
dev: true
/history/4.10.1:
resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==}
dependencies:
@ -13401,7 +13335,6 @@ packages:
import-local: 3.1.0
npmlog: 4.1.2
transitivePeerDependencies:
- bluebird
- encoding
- supports-color
dev: true
@ -13436,7 +13369,6 @@ packages:
npm-package-arg: 8.1.5
npm-registry-fetch: 11.0.0
transitivePeerDependencies:
- bluebird
- supports-color
dev: true
@ -13450,7 +13382,6 @@ packages:
semver: 7.3.5
ssri: 8.0.1
transitivePeerDependencies:
- bluebird
- supports-color
dev: true
@ -13767,6 +13698,13 @@ packages:
resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==}
engines: {node: '>=8'}
/lowlight/1.20.0:
resolution: {integrity: sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==}
dependencies:
fault: 1.0.4
highlight.js: 10.7.3
dev: true
/lru-cache/6.0.0:
resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
engines: {node: '>=10'}
@ -13815,7 +13753,6 @@ packages:
socks-proxy-agent: 5.0.1
ssri: 8.0.1
transitivePeerDependencies:
- bluebird
- supports-color
dev: true
@ -13840,7 +13777,6 @@ packages:
socks-proxy-agent: 6.1.1
ssri: 8.0.1
transitivePeerDependencies:
- bluebird
- supports-color
dev: true
@ -14600,10 +14536,6 @@ packages:
resolution: {integrity: sha512-A/78XjoX2EmNvppVWEhM2oGk3x4lLxnkEA4jTbaK97QKSDjkIoOsKQlfylt/d3kKKi596Qy3NP5XrXJ6fZIC9Q==}
dev: false
/monaco-editor/0.33.0:
resolution: {integrity: sha512-VcRWPSLIUEgQJQIE0pVT8FcGBIgFoxz7jtqctE+IiCxWugD0DwgyQBcZBhdSrdMC84eumoqMZsGl2GTreOzwqw==}
dev: true
/mri/1.2.0:
resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
engines: {node: '>=4'}
@ -14966,7 +14898,6 @@ packages:
minizlib: 2.1.2
npm-package-arg: 8.1.5
transitivePeerDependencies:
- bluebird
- supports-color
dev: true
@ -14983,7 +14914,6 @@ packages:
minizlib: 2.1.2
npm-package-arg: 8.1.5
transitivePeerDependencies:
- bluebird
- supports-color
dev: true
@ -15427,7 +15357,6 @@ packages:
ssri: 8.0.1
tar: 6.1.11
transitivePeerDependencies:
- bluebird
- supports-color
dev: true
@ -15829,8 +15758,6 @@ packages:
async: 2.6.3
debug: 3.2.7
mkdirp: 0.5.5
transitivePeerDependencies:
- supports-color
dev: true
/postcss-calc/8.2.4_postcss@8.4.13:
@ -15920,7 +15847,7 @@ packages:
dependencies:
htmlparser2: 3.10.1
postcss: 7.0.39
postcss-syntax: 0.36.2_kei4jy7wdgbhc236h4oijypxom
postcss-syntax: 0.36.2_postcss@7.0.39
dev: true
/postcss-less/3.1.4:
@ -16320,31 +16247,12 @@ packages:
svgo: 2.8.0
dev: true
/postcss-syntax/0.36.2_kei4jy7wdgbhc236h4oijypxom:
/postcss-syntax/0.36.2_postcss@7.0.39:
resolution: {integrity: sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==}
peerDependencies:
postcss: '>=5.0.0'
postcss-html: '*'
postcss-jsx: '*'
postcss-less: '*'
postcss-markdown: '*'
postcss-scss: '*'
peerDependenciesMeta:
postcss-html:
optional: true
postcss-jsx:
optional: true
postcss-less:
optional: true
postcss-markdown:
optional: true
postcss-scss:
optional: true
dependencies:
postcss: 7.0.39
postcss-html: 0.36.0_j55xdkkcxc32kvnyvx3y7casfm
postcss-less: 3.1.4
postcss-scss: 2.1.1
dev: true
/postcss-unique-selectors/5.1.1_postcss@8.4.13:
@ -16565,11 +16473,6 @@ packages:
/promise-inflight/1.0.1:
resolution: {integrity: sha1-mEcocL8igTL8vdhoEputEsPAKeM=}
peerDependencies:
bluebird: '*'
peerDependenciesMeta:
bluebird:
optional: true
dev: true
/promise-retry/2.0.1:
@ -16847,7 +16750,6 @@ packages:
text-table: 0.2.0
transitivePeerDependencies:
- eslint
- supports-color
- typescript
- vue-template-compiler
- webpack
@ -17142,6 +17044,19 @@ packages:
engines: {node: '>=0.12.0'}
dev: true
/react-syntax-highlighter/15.5.0_react@17.0.2:
resolution: {integrity: sha512-+zq2myprEnQmH5yw6Gqc8lD55QHnpKaU8TOcFeC/Lg/MQSs8UknEA0JC4nTZGFAXC2J2Hyj/ijJ7NlabyPi2gg==}
peerDependencies:
react: '>= 0.14.0'
dependencies:
'@babel/runtime': 7.17.9
highlight.js: 10.7.3
lowlight: 1.20.0
prismjs: 1.27.0
react: 17.0.2
refractor: 3.6.0
dev: true
/react-textarea-autosize/8.3.3_z7w6vgz62d5pbxpnoxayoqdmly:
resolution: {integrity: sha512-2XlHXK2TDxS6vbQaoPbMOfQ8GK7+irc2fVK6QFIcC8GOnH3zI/v481n+j1L0WaPVvKxwesnY93fEfH++sus2rQ==}
engines: {node: '>=10'}
@ -17344,6 +17259,14 @@ packages:
'@babel/runtime': 7.17.9
dev: true
/refractor/3.6.0:
resolution: {integrity: sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==}
dependencies:
hastscript: 6.0.0
parse-entities: 2.0.0
prismjs: 1.27.0
dev: true
/regenerate-unicode-properties/10.0.1:
resolution: {integrity: sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==}
engines: {node: '>=4'}
@ -17935,8 +17858,6 @@ packages:
on-finished: 2.3.0
range-parser: 1.2.1
statuses: 1.5.0
transitivePeerDependencies:
- supports-color
dev: true
/serialize-error/7.0.1:
@ -17983,8 +17904,6 @@ packages:
http-errors: 1.6.3
mime-types: 2.1.35
parseurl: 1.3.3
transitivePeerDependencies:
- supports-color
dev: true
/serve-static/1.14.2:
@ -17995,8 +17914,6 @@ packages:
escape-html: 1.0.3
parseurl: 1.3.3
send: 0.17.2
transitivePeerDependencies:
- supports-color
dev: true
/set-blocking/2.0.0:
@ -18501,10 +18418,6 @@ packages:
escape-string-regexp: 2.0.0
dev: true
/state-local/1.0.7:
resolution: {integrity: sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==}
dev: true
/state-toggle/1.0.3:
resolution: {integrity: sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==}
dev: true
@ -18830,7 +18743,7 @@ packages:
postcss-sass: 0.4.4
postcss-scss: 2.1.1
postcss-selector-parser: 6.0.9
postcss-syntax: 0.36.2_kei4jy7wdgbhc236h4oijypxom
postcss-syntax: 0.36.2_postcss@7.0.39
postcss-value-parser: 4.2.0
resolve-from: 5.0.0
slash: 3.0.0
@ -18844,8 +18757,6 @@ packages:
v8-compile-cache: 2.3.0
write-file-atomic: 3.0.3
transitivePeerDependencies:
- postcss-jsx
- postcss-markdown
- supports-color
dev: true