📝: 添加 stackblitz

This commit is contained in:
sight 2022-08-11 12:01:37 +08:00
parent 4f5b8b7194
commit 8541482993
5 changed files with 248 additions and 76 deletions

View File

@ -21,6 +21,7 @@
"@types/markdown-it": "^12.2.3", "@types/markdown-it": "^12.2.3",
"@types/markdown-it-container": "^2.0.4", "@types/markdown-it-container": "^2.0.4",
"@types/prettier": "^2.4.4", "@types/prettier": "^2.4.4",
"@stackblitz/sdk": "^1.8.0",
"escape-html": "^1.0.3", "escape-html": "^1.0.3",
"markdown-it-container": "^3.0.0", "markdown-it-container": "^3.0.0",
"prismjs": "^1.28.0", "prismjs": "^1.28.0",

View File

@ -12,11 +12,6 @@
</div> </div>
</div> </div>
<div :class="{ 'is-fixed': isFixContorl }" class="control"> <div :class="{ 'is-fixed': isFixContorl }" class="control">
<i
class="layui-icon layui-icon-play btn"
@click="onPlayground"
title="运行代码"
/>
<i <i
class="layui-icon layui-icon-file btn" class="layui-icon layui-icon-file btn"
@click="copy" @click="copy"
@ -27,6 +22,16 @@
@click="toggle" @click="toggle"
title="查看代码" title="查看代码"
/> />
<i
class="layui-icon layui-icon-component btn"
@click="onPlayground"
title="在 sandbox-vue 打开"
/>
<i
class="layui-icon layui-icon-chart btn"
title="在 stackblitz 打开"
@click="onStackblitz">
</i>
</div> </div>
</div> </div>
</template> </template>
@ -34,7 +39,8 @@
<script setup lang="ts"> <script setup lang="ts">
import { layer } from "@layui/layer-vue"; import { layer } from "@layui/layer-vue";
import { onMounted, onUnmounted, ref, watch } from "vue"; import { onMounted, onUnmounted, ref, watch } from "vue";
import { usePlayGround } from "../composable/usePlayground"; import { openPlayground } from "../utils/code-playground";
import { openStackblitz } from "../utils/code-stackblitz"
const meta = ref<HTMLElement>({} as HTMLElement); const meta = ref<HTMLElement>({} as HTMLElement);
const isFixContorl = ref(false); const isFixContorl = ref(false);
@ -51,10 +57,17 @@ const onPlayground = async function () {
const foundCode = foundCodes[0]; const foundCode = foundCodes[0];
const SourceCode = foundCode.textContent || ""; const SourceCode = foundCode.textContent || "";
const { link } = await usePlayGround(SourceCode, true); const { link } = await openPlayground(SourceCode, true);
window.open(link); window.open(link);
}; };
const onStackblitz = function() {
const foundCodes = meta.value.getElementsByClassName("language-html");
const foundCode = foundCodes[0];
const SourceCode = foundCode.textContent || "";
openStackblitz(SourceCode);
}
const copy = function () { const copy = function () {
const foundCodes = meta.value.getElementsByClassName("language-html"); const foundCodes = meta.value.getElementsByClassName("language-html");
const foundCode = foundCodes[0]; const foundCode = foundCodes[0];
@ -200,4 +213,7 @@ function handleScroll() {
.btn:hover::before { .btn:hover::before {
color: #5fb878; color: #5fb878;
} }
.btn:hover svg > path{
fill: #5fb878;
}
</style> </style>

View File

@ -17,7 +17,7 @@ const MAIN_FILE_NAME = "App.vue";
* @returns URI hsah playground * @returns URI hsah playground
} }
*/ */
export const usePlayGround = async ( export const openPlayground = async (
source: string, source: string,
convertSetupSugar: boolean convertSetupSugar: boolean
) => { ) => {
@ -25,7 +25,6 @@ export const usePlayGround = async (
const scriptResult = decodeCode.match(scriptRe); const scriptResult = decodeCode.match(scriptRe);
// 替换 script 标签 // 替换 script 标签
// $1 正则第一个括号匹配的内容
let code: string | undefined = decodeCode; let code: string | undefined = decodeCode;
if (convertSetupSugar) { if (convertSetupSugar) {
if (scriptResult) { if (scriptResult) {

View File

@ -0,0 +1,93 @@
import stackblitzSdk from "@stackblitz/sdk";
export const mainCode = `
import { createApp } from 'vue';
import App from './App.vue';
import Layui from '@layui/layui-vue'
import '@layui/layui-vue/lib/index.css';
import './index.css';
const app = createApp(App);
app.use(Layui);
app.mount('#app');`;
export const styleCode = `#app { padding: 20px; }`;
export const htmlCode = `
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Vite App</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.js"></script>
</body>
</html>
`;
export const stackblitzRc = `
{
"installDependencies": false,
"startCommand": "turbo && turbo dev"
}
`;
export const viteConfigCode = `
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import vueJsx from '@vitejs/plugin-vue-jsx';
export default defineConfig({
plugins: [vue(), vueJsx()],
});
`;
export const packageJSONCode = JSON.stringify(
{
name: "layui-vue-demo",
version: "0.0.1",
private: true,
type: "module",
scripts: {
dev: "vite",
build: "vite build",
preview: "vite preview",
},
dependencies: {
vue: "^3.2.0",
"@layui/layui-vue": "latest",
},
devDependencies: {
vite: "^2.9.8",
"@vue/compiler-sfc": "^3.2.0",
"@vitejs/plugin-vue": "^2.3.2",
"@vitejs/plugin-vue-jsx": "^1.3.10",
},
},
null,
2
);
export const openStackblitz = (content: string) => {
stackblitzSdk.openProject(
{
title: `layui-vue-demo`,
description: "layui-vue-demo",
template: "node",
files: {
"src/App.vue": content,
"src/index.css": styleCode,
"src/main.js": mainCode,
"index.html": htmlCode,
"package.json": packageJSONCode,
"vite.config.js": viteConfigCode,
".stackblitzrc": stackblitzRc,
},
},
{
openFile: "src/App.vue",
}
);
};

View File

@ -1,4 +1,4 @@
lockfileVersion: 5.3 lockfileVersion: 5.4
importers: importers:
@ -47,11 +47,11 @@ importers:
'@babel/preset-typescript': 7.16.7_@babel+core@7.17.9 '@babel/preset-typescript': 7.16.7_@babel+core@7.17.9
'@commitlint/cli': 16.2.3 '@commitlint/cli': 16.2.3
'@commitlint/config-conventional': 16.2.1 '@commitlint/config-conventional': 16.2.1
'@rollup/plugin-babel': 5.3.1_@babel+core@7.17.9+rollup@2.75.5 '@rollup/plugin-babel': 5.3.1_hgifciwidddhnedalyprixjsri
'@types/node': 16.11.26 '@types/node': 16.11.26
'@types/uuid': 8.3.4 '@types/uuid': 8.3.4
'@typescript-eslint/eslint-plugin': 5.17.0_ec46de5930d083862c6e4af5d970d096 '@typescript-eslint/eslint-plugin': 5.17.0_5rdn4wjq2cbymldojl25s4gqsy
'@typescript-eslint/parser': 5.17.0_eslint@8.12.0+typescript@4.7.3 '@typescript-eslint/parser': 5.17.0_x66lnsojg54lmfpjeg6pogs53i
'@vitejs/plugin-vue': 2.3.3_vite@2.9.12+vue@3.2.37 '@vitejs/plugin-vue': 2.3.3_vite@2.9.12+vue@3.2.37
'@vue/compiler-sfc': 3.2.37 '@vue/compiler-sfc': 3.2.37
'@vue/server-renderer': 3.2.37_vue@3.2.37 '@vue/server-renderer': 3.2.37_vue@3.2.37
@ -61,7 +61,7 @@ importers:
cz-customizable: 6.3.0 cz-customizable: 6.3.0
eslint: 8.12.0 eslint: 8.12.0
eslint-config-prettier: 8.5.0_eslint@8.12.0 eslint-config-prettier: 8.5.0_eslint@8.12.0
eslint-plugin-prettier: 4.0.0_f2c91d0f54113167d2bd9214a5ab5a36 eslint-plugin-prettier: 4.0.0_6ler2d2uceywpuv5sikklk22gy
eslint-plugin-vue: 8.5.0_eslint@8.12.0 eslint-plugin-vue: 8.5.0_eslint@8.12.0
husky: 8.0.1 husky: 8.0.1
less: 4.1.3 less: 4.1.3
@ -87,16 +87,17 @@ importers:
'@layui/icons-vue': link:../icons '@layui/icons-vue': link:../icons
'@layui/layer-vue': link:../layer '@layui/layer-vue': link:../layer
'@umijs/ssr-darkreader': 4.9.45 '@umijs/ssr-darkreader': 4.9.45
'@vueuse/core': 8.7.3_vue@3.2.37 '@vueuse/core': 8.7.3
async-validator: 4.1.1 async-validator: 4.1.1
cropperjs: 1.5.12 cropperjs: 1.5.12
dayjs: 1.11.0 dayjs: 1.11.0
evtd: 0.2.3 evtd: 0.2.3
uuid: 8.3.2 uuid: 8.3.2
vue-i18n: 9.1.10_vue@3.2.37 vue-i18n: 9.1.10
package/document-component: package/document-component:
specifiers: specifiers:
'@stackblitz/sdk': ^1.8.0
'@types/markdown-it': ^12.2.3 '@types/markdown-it': ^12.2.3
'@types/markdown-it-container': ^2.0.4 '@types/markdown-it-container': ^2.0.4
'@types/prettier': ^2.4.4 '@types/prettier': ^2.4.4
@ -116,13 +117,14 @@ importers:
vue-i18n: ^9.1.10 vue-i18n: ^9.1.10
vue-router: ^4.0.15 vue-router: ^4.0.15
dependencies: dependencies:
'@vueuse/core': 8.7.3_vue@3.2.37 '@vueuse/core': 8.7.3
axios: 0.27.2 axios: 0.27.2
pinia: 2.0.14_typescript@4.7.3+vue@3.2.37 pinia: 2.0.14_typescript@4.7.3
pinia-plugin-persist: 1.0.0_pinia@2.0.14+vue@3.2.37 pinia-plugin-persist: 1.0.0_pinia@2.0.14
vue-i18n: 9.1.10_vue@3.2.37 vue-i18n: 9.1.10
vue-router: 4.0.16_vue@3.2.37 vue-router: 4.0.16
devDependencies: devDependencies:
'@stackblitz/sdk': 1.8.0
'@types/markdown-it': 12.2.3 '@types/markdown-it': 12.2.3
'@types/markdown-it-container': 2.0.5 '@types/markdown-it-container': 2.0.5
'@types/prettier': 2.6.0 '@types/prettier': 2.6.0
@ -133,7 +135,7 @@ importers:
rimraf: 3.0.2 rimraf: 3.0.2
rollup: 2.75.5 rollup: 2.75.5
typescript: 4.7.3 typescript: 4.7.3
vite: 2.9.8_less@4.1.3 vite: 2.9.8
vite-plugin-md: 0.13.1_vite@2.9.8 vite-plugin-md: 0.13.1_vite@2.9.8
package/document-layer: package/document-layer:
@ -156,12 +158,12 @@ importers:
vue-i18n: ^9.1.10 vue-i18n: ^9.1.10
vue-router: ^4.0.15 vue-router: ^4.0.15
dependencies: dependencies:
'@vueuse/core': 8.7.3_vue@3.2.37 '@vueuse/core': 8.7.3
axios: 0.27.2 axios: 0.27.2
pinia: 2.0.14_typescript@4.7.3+vue@3.2.37 pinia: 2.0.14_typescript@4.7.3
pinia-plugin-persist: 1.0.0_pinia@2.0.14+vue@3.2.37 pinia-plugin-persist: 1.0.0_pinia@2.0.14
vue-i18n: 9.1.10_vue@3.2.37 vue-i18n: 9.1.10
vue-router: 4.0.16_vue@3.2.37 vue-router: 4.0.16
devDependencies: devDependencies:
'@types/markdown-it': 12.2.3 '@types/markdown-it': 12.2.3
'@types/markdown-it-container': 2.0.5 '@types/markdown-it-container': 2.0.5
@ -172,7 +174,7 @@ importers:
rimraf: 3.0.2 rimraf: 3.0.2
rollup: 2.75.5 rollup: 2.75.5
typescript: 4.7.3 typescript: 4.7.3
vite: 2.9.8_less@4.1.3 vite: 2.9.8
vite-plugin-md: 0.13.1_vite@2.9.8 vite-plugin-md: 0.13.1_vite@2.9.8
package/icons: package/icons:
@ -182,7 +184,7 @@ importers:
specifiers: specifiers:
'@babel/plugin-transform-runtime': ^7.18.5 '@babel/plugin-transform-runtime': ^7.18.5
devDependencies: devDependencies:
'@babel/plugin-transform-runtime': 7.18.5_@babel+core@7.17.9 '@babel/plugin-transform-runtime': 7.18.5
packages: packages:
@ -256,6 +258,18 @@ packages:
'@babel/types': 7.17.0 '@babel/types': 7.17.0
dev: true dev: true
/@babel/helper-compilation-targets/7.17.7:
resolution: {integrity: sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
'@babel/compat-data': 7.17.7
'@babel/helper-validator-option': 7.16.7
browserslist: 4.20.2
semver: 6.3.0
dev: true
/@babel/helper-compilation-targets/7.17.7_@babel+core@7.17.9: /@babel/helper-compilation-targets/7.17.7_@babel+core@7.17.9:
resolution: {integrity: sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==} resolution: {integrity: sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==}
engines: {node: '>=6.9.0'} engines: {node: '>=6.9.0'}
@ -298,6 +312,23 @@ packages:
regexpu-core: 5.0.1 regexpu-core: 5.0.1
dev: true dev: true
/@babel/helper-define-polyfill-provider/0.3.1:
resolution: {integrity: sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==}
peerDependencies:
'@babel/core': ^7.4.0-0
dependencies:
'@babel/helper-compilation-targets': 7.17.7
'@babel/helper-module-imports': 7.16.7
'@babel/helper-plugin-utils': 7.16.7
'@babel/traverse': 7.17.9
debug: 4.3.4
lodash.debounce: 4.0.8
resolve: 1.22.0
semver: 6.3.0
transitivePeerDependencies:
- supports-color
dev: true
/@babel/helper-define-polyfill-provider/0.3.1_@babel+core@7.17.9: /@babel/helper-define-polyfill-provider/0.3.1_@babel+core@7.17.9:
resolution: {integrity: sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==} resolution: {integrity: sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==}
peerDependencies: peerDependencies:
@ -1117,18 +1148,17 @@ packages:
'@babel/helper-plugin-utils': 7.16.7 '@babel/helper-plugin-utils': 7.16.7
dev: true dev: true
/@babel/plugin-transform-runtime/7.18.5_@babel+core@7.17.9: /@babel/plugin-transform-runtime/7.18.5:
resolution: {integrity: sha512-Q17hHxXr2fplrE+5BSC1j1Fo5cOA8YeP8XW3/1paI8MzF/faZGh0MaH1KC4jLAvqLPamQWHB5/B7KqSLY1kuHA==} resolution: {integrity: sha512-Q17hHxXr2fplrE+5BSC1j1Fo5cOA8YeP8XW3/1paI8MzF/faZGh0MaH1KC4jLAvqLPamQWHB5/B7KqSLY1kuHA==}
engines: {node: '>=6.9.0'} engines: {node: '>=6.9.0'}
peerDependencies: peerDependencies:
'@babel/core': ^7.0.0-0 '@babel/core': ^7.0.0-0
dependencies: dependencies:
'@babel/core': 7.17.9
'@babel/helper-module-imports': 7.16.7 '@babel/helper-module-imports': 7.16.7
'@babel/helper-plugin-utils': 7.17.12 '@babel/helper-plugin-utils': 7.17.12
babel-plugin-polyfill-corejs2: 0.3.1_@babel+core@7.17.9 babel-plugin-polyfill-corejs2: 0.3.1
babel-plugin-polyfill-corejs3: 0.5.2_@babel+core@7.17.9 babel-plugin-polyfill-corejs3: 0.5.2
babel-plugin-polyfill-regenerator: 0.3.1_@babel+core@7.17.9 babel-plugin-polyfill-regenerator: 0.3.1
semver: 6.3.0 semver: 6.3.0
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -1457,7 +1487,7 @@ packages:
'@types/node': 16.11.26 '@types/node': 16.11.26
chalk: 4.1.2 chalk: 4.1.2
cosmiconfig: 7.0.1 cosmiconfig: 7.0.1
cosmiconfig-typescript-loader: 1.0.7_98be30d9db897f1a45c73c3b6eb340e2 cosmiconfig-typescript-loader: 1.0.7_tc7dbwo3rf7rurohhq5w5m2a4i
lodash: 4.17.21 lodash: 4.17.21
resolve-from: 5.0.0 resolve-from: 5.0.0
typescript: 4.7.3 typescript: 4.7.3
@ -1669,7 +1699,7 @@ packages:
fastq: 1.13.0 fastq: 1.13.0
dev: true dev: true
/@rollup/plugin-babel/5.3.1_@babel+core@7.17.9+rollup@2.75.5: /@rollup/plugin-babel/5.3.1_hgifciwidddhnedalyprixjsri:
resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==}
engines: {node: '>= 10.0.0'} engines: {node: '>= 10.0.0'}
peerDependencies: peerDependencies:
@ -1706,6 +1736,10 @@ packages:
picomatch: 2.3.1 picomatch: 2.3.1
dev: true dev: true
/@stackblitz/sdk/1.8.0:
resolution: {integrity: sha512-hbS4CpQVF3bxJ+ZD8qu8lAjTZVLTPToLbMtgxbxUmp1AIgqm7i0gMFM1POBA8BqY84CT1A3z74gdCd1bsro7qA==}
dev: true
/@tsconfig/node10/1.0.8: /@tsconfig/node10/1.0.8:
resolution: {integrity: sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==} resolution: {integrity: sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==}
dev: true dev: true
@ -1775,7 +1809,7 @@ packages:
resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==}
dev: true dev: true
/@typescript-eslint/eslint-plugin/5.17.0_ec46de5930d083862c6e4af5d970d096: /@typescript-eslint/eslint-plugin/5.17.0_5rdn4wjq2cbymldojl25s4gqsy:
resolution: {integrity: sha512-qVstvQilEd89HJk3qcbKt/zZrfBZ+9h2ynpAGlWjWiizA7m/MtLT9RoX6gjtpE500vfIg8jogAkDzdCxbsFASQ==} resolution: {integrity: sha512-qVstvQilEd89HJk3qcbKt/zZrfBZ+9h2ynpAGlWjWiizA7m/MtLT9RoX6gjtpE500vfIg8jogAkDzdCxbsFASQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies: peerDependencies:
@ -1786,10 +1820,10 @@ packages:
typescript: typescript:
optional: true optional: true
dependencies: dependencies:
'@typescript-eslint/parser': 5.17.0_eslint@8.12.0+typescript@4.7.3 '@typescript-eslint/parser': 5.17.0_x66lnsojg54lmfpjeg6pogs53i
'@typescript-eslint/scope-manager': 5.17.0 '@typescript-eslint/scope-manager': 5.17.0
'@typescript-eslint/type-utils': 5.17.0_eslint@8.12.0+typescript@4.7.3 '@typescript-eslint/type-utils': 5.17.0_x66lnsojg54lmfpjeg6pogs53i
'@typescript-eslint/utils': 5.17.0_eslint@8.12.0+typescript@4.7.3 '@typescript-eslint/utils': 5.17.0_x66lnsojg54lmfpjeg6pogs53i
debug: 4.3.4 debug: 4.3.4
eslint: 8.12.0 eslint: 8.12.0
functional-red-black-tree: 1.0.1 functional-red-black-tree: 1.0.1
@ -1802,7 +1836,7 @@ packages:
- supports-color - supports-color
dev: true dev: true
/@typescript-eslint/parser/5.17.0_eslint@8.12.0+typescript@4.7.3: /@typescript-eslint/parser/5.17.0_x66lnsojg54lmfpjeg6pogs53i:
resolution: {integrity: sha512-aRzW9Jg5Rlj2t2/crzhA2f23SIYFlF9mchGudyP0uiD6SenIxzKoLjwzHbafgHn39dNV/TV7xwQkLfFTZlJ4ig==} resolution: {integrity: sha512-aRzW9Jg5Rlj2t2/crzhA2f23SIYFlF9mchGudyP0uiD6SenIxzKoLjwzHbafgHn39dNV/TV7xwQkLfFTZlJ4ig==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies: peerDependencies:
@ -1830,7 +1864,7 @@ packages:
'@typescript-eslint/visitor-keys': 5.17.0 '@typescript-eslint/visitor-keys': 5.17.0
dev: true dev: true
/@typescript-eslint/type-utils/5.17.0_eslint@8.12.0+typescript@4.7.3: /@typescript-eslint/type-utils/5.17.0_x66lnsojg54lmfpjeg6pogs53i:
resolution: {integrity: sha512-3hU0RynUIlEuqMJA7dragb0/75gZmwNwFf/QJokWzPehTZousP/MNifVSgjxNcDCkM5HI2K22TjQWUmmHUINSg==} resolution: {integrity: sha512-3hU0RynUIlEuqMJA7dragb0/75gZmwNwFf/QJokWzPehTZousP/MNifVSgjxNcDCkM5HI2K22TjQWUmmHUINSg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies: peerDependencies:
@ -1840,7 +1874,7 @@ packages:
typescript: typescript:
optional: true optional: true
dependencies: dependencies:
'@typescript-eslint/utils': 5.17.0_eslint@8.12.0+typescript@4.7.3 '@typescript-eslint/utils': 5.17.0_x66lnsojg54lmfpjeg6pogs53i
debug: 4.3.4 debug: 4.3.4
eslint: 8.12.0 eslint: 8.12.0
tsutils: 3.21.0_typescript@4.7.3 tsutils: 3.21.0_typescript@4.7.3
@ -1875,7 +1909,7 @@ packages:
- supports-color - supports-color
dev: true dev: true
/@typescript-eslint/utils/5.17.0_eslint@8.12.0+typescript@4.7.3: /@typescript-eslint/utils/5.17.0_x66lnsojg54lmfpjeg6pogs53i:
resolution: {integrity: sha512-DVvndq1QoxQH+hFv+MUQHrrWZ7gQ5KcJzyjhzcqB1Y2Xes1UQQkTRPUfRpqhS8mhTWsSb2+iyvDW1Lef5DD7vA==} resolution: {integrity: sha512-DVvndq1QoxQH+hFv+MUQHrrWZ7gQ5KcJzyjhzcqB1Y2Xes1UQQkTRPUfRpqhS8mhTWsSb2+iyvDW1Lef5DD7vA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies: peerDependencies:
@ -1980,7 +2014,6 @@ packages:
'@vue/runtime-core': 3.2.37 '@vue/runtime-core': 3.2.37
'@vue/shared': 3.2.37 '@vue/shared': 3.2.37
csstype: 2.6.20 csstype: 2.6.20
dev: false
/@vue/server-renderer/3.2.37_vue@3.2.37: /@vue/server-renderer/3.2.37_vue@3.2.37:
resolution: {integrity: sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA==} resolution: {integrity: sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA==}
@ -1994,7 +2027,7 @@ packages:
/@vue/shared/3.2.37: /@vue/shared/3.2.37:
resolution: {integrity: sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==} resolution: {integrity: sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==}
/@vueuse/core/8.7.3_vue@3.2.37: /@vueuse/core/8.7.3:
resolution: {integrity: sha512-jpBnyG9b4wXgk0Dz3I71lfhD0o53t1tZR+NoAQ+17zJy7MP/VDfGIkq8GcqpDwmptLCmGiGVipkPbWmDGMic8Q==} resolution: {integrity: sha512-jpBnyG9b4wXgk0Dz3I71lfhD0o53t1tZR+NoAQ+17zJy7MP/VDfGIkq8GcqpDwmptLCmGiGVipkPbWmDGMic8Q==}
peerDependencies: peerDependencies:
'@vue/composition-api': ^1.1.0 '@vue/composition-api': ^1.1.0
@ -2006,16 +2039,15 @@ packages:
optional: true optional: true
dependencies: dependencies:
'@vueuse/metadata': 8.7.3 '@vueuse/metadata': 8.7.3
'@vueuse/shared': 8.7.3_vue@3.2.37 '@vueuse/shared': 8.7.3
vue: 3.2.37 vue-demi: 0.12.5
vue-demi: 0.12.5_vue@3.2.37
dev: false dev: false
/@vueuse/metadata/8.7.3: /@vueuse/metadata/8.7.3:
resolution: {integrity: sha512-spf9kgCsBEFbQb90I6SIqAWh1yP5T1JoJGj+/04+VTMIHXKzn3iecmHUalg8QEOCPNtnFQGNEw5OLg0L39eizg==} resolution: {integrity: sha512-spf9kgCsBEFbQb90I6SIqAWh1yP5T1JoJGj+/04+VTMIHXKzn3iecmHUalg8QEOCPNtnFQGNEw5OLg0L39eizg==}
dev: false dev: false
/@vueuse/shared/8.7.3_vue@3.2.37: /@vueuse/shared/8.7.3:
resolution: {integrity: sha512-PMc/h6cEakJ4+5VuNUGi7RnbA6CkLvtG2230x8w3zYJpW1P6Qphh9+dFFvHn7TX+RlaicF5ND0RX1NxWmAoW7w==} resolution: {integrity: sha512-PMc/h6cEakJ4+5VuNUGi7RnbA6CkLvtG2230x8w3zYJpW1P6Qphh9+dFFvHn7TX+RlaicF5ND0RX1NxWmAoW7w==}
peerDependencies: peerDependencies:
'@vue/composition-api': ^1.1.0 '@vue/composition-api': ^1.1.0
@ -2026,8 +2058,7 @@ packages:
vue: vue:
optional: true optional: true
dependencies: dependencies:
vue: 3.2.37 vue-demi: 0.12.5
vue-demi: 0.12.5_vue@3.2.37
dev: false dev: false
/JSONStream/1.3.5: /JSONStream/1.3.5:
@ -2156,6 +2187,18 @@ packages:
object.assign: 4.1.2 object.assign: 4.1.2
dev: true dev: true
/babel-plugin-polyfill-corejs2/0.3.1:
resolution: {integrity: sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/compat-data': 7.17.7
'@babel/helper-define-polyfill-provider': 0.3.1
semver: 6.3.0
transitivePeerDependencies:
- supports-color
dev: true
/babel-plugin-polyfill-corejs2/0.3.1_@babel+core@7.17.9: /babel-plugin-polyfill-corejs2/0.3.1_@babel+core@7.17.9:
resolution: {integrity: sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==} resolution: {integrity: sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==}
peerDependencies: peerDependencies:
@ -2169,6 +2212,17 @@ packages:
- supports-color - supports-color
dev: true dev: true
/babel-plugin-polyfill-corejs3/0.5.2:
resolution: {integrity: sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/helper-define-polyfill-provider': 0.3.1
core-js-compat: 3.21.1
transitivePeerDependencies:
- supports-color
dev: true
/babel-plugin-polyfill-corejs3/0.5.2_@babel+core@7.17.9: /babel-plugin-polyfill-corejs3/0.5.2_@babel+core@7.17.9:
resolution: {integrity: sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==} resolution: {integrity: sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==}
peerDependencies: peerDependencies:
@ -2181,6 +2235,16 @@ packages:
- supports-color - supports-color
dev: true dev: true
/babel-plugin-polyfill-regenerator/0.3.1:
resolution: {integrity: sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/helper-define-polyfill-provider': 0.3.1
transitivePeerDependencies:
- supports-color
dev: true
/babel-plugin-polyfill-regenerator/0.3.1_@babel+core@7.17.9: /babel-plugin-polyfill-regenerator/0.3.1_@babel+core@7.17.9:
resolution: {integrity: sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==} resolution: {integrity: sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==}
peerDependencies: peerDependencies:
@ -2420,7 +2484,7 @@ packages:
semver: 7.0.0 semver: 7.0.0
dev: true dev: true
/cosmiconfig-typescript-loader/1.0.7_98be30d9db897f1a45c73c3b6eb340e2: /cosmiconfig-typescript-loader/1.0.7_tc7dbwo3rf7rurohhq5w5m2a4i:
resolution: {integrity: sha512-PxBM//vKuwRmo7xqamKDL+q/FvGig+wKS5pOzaXO/DJbtNzbIYi1bDk251pftEdPRRetEN8RSIyF35n8zLtibA==} resolution: {integrity: sha512-PxBM//vKuwRmo7xqamKDL+q/FvGig+wKS5pOzaXO/DJbtNzbIYi1bDk251pftEdPRRetEN8RSIyF35n8zLtibA==}
engines: {node: '>=12', npm: '>=6'} engines: {node: '>=12', npm: '>=6'}
peerDependencies: peerDependencies:
@ -2429,7 +2493,7 @@ packages:
dependencies: dependencies:
'@types/node': 16.11.26 '@types/node': 16.11.26
cosmiconfig: 7.0.1 cosmiconfig: 7.0.1
ts-node: 10.7.0_98be30d9db897f1a45c73c3b6eb340e2 ts-node: 10.7.0_tc7dbwo3rf7rurohhq5w5m2a4i
typescript: 4.7.3 typescript: 4.7.3
transitivePeerDependencies: transitivePeerDependencies:
- '@swc/core' - '@swc/core'
@ -2466,7 +2530,6 @@ packages:
/csstype/2.6.20: /csstype/2.6.20:
resolution: {integrity: sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==} resolution: {integrity: sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==}
dev: false
/cz-conventional-changelog/3.2.0: /cz-conventional-changelog/3.2.0:
resolution: {integrity: sha512-yAYxeGpVi27hqIilG1nh4A9Bnx4J3Ov+eXy4koL3drrR+IO9GaWPsKjik20ht608Asqi8TQPf0mczhEeyAtMzg==} resolution: {integrity: sha512-yAYxeGpVi27hqIilG1nh4A9Bnx4J3Ov+eXy4koL3drrR+IO9GaWPsKjik20ht608Asqi8TQPf0mczhEeyAtMzg==}
@ -2525,6 +2588,11 @@ packages:
/debug/3.2.7: /debug/3.2.7:
resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
peerDependencies:
supports-color: '*'
peerDependenciesMeta:
supports-color:
optional: true
dependencies: dependencies:
ms: 2.1.2 ms: 2.1.2
dev: true dev: true
@ -3087,7 +3155,7 @@ packages:
eslint: 8.12.0 eslint: 8.12.0
dev: true dev: true
/eslint-plugin-prettier/4.0.0_f2c91d0f54113167d2bd9214a5ab5a36: /eslint-plugin-prettier/4.0.0_6ler2d2uceywpuv5sikklk22gy:
resolution: {integrity: sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==} resolution: {integrity: sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==}
engines: {node: '>=6.0.0'} engines: {node: '>=6.0.0'}
peerDependencies: peerDependencies:
@ -3911,6 +3979,8 @@ packages:
mime: 1.6.0 mime: 1.6.0
needle: 3.1.0 needle: 3.1.0
source-map: 0.6.1 source-map: 0.6.1
transitivePeerDependencies:
- supports-color
dev: true dev: true
/levn/0.4.1: /levn/0.4.1:
@ -4154,6 +4224,8 @@ packages:
debug: 3.2.7 debug: 3.2.7
iconv-lite: 0.6.3 iconv-lite: 0.6.3
sax: 1.2.4 sax: 1.2.4
transitivePeerDependencies:
- supports-color
dev: true dev: true
optional: true optional: true
@ -4342,7 +4414,7 @@ packages:
dev: true dev: true
optional: true optional: true
/pinia-plugin-persist/1.0.0_pinia@2.0.14+vue@3.2.37: /pinia-plugin-persist/1.0.0_pinia@2.0.14:
resolution: {integrity: sha512-M4hBBd8fz/GgNmUPaaUsC29y1M09lqbXrMAHcusVoU8xlQi1TqgkWnnhvMikZwr7Le/hVyMx8KUcumGGrR6GVw==} resolution: {integrity: sha512-M4hBBd8fz/GgNmUPaaUsC29y1M09lqbXrMAHcusVoU8xlQi1TqgkWnnhvMikZwr7Le/hVyMx8KUcumGGrR6GVw==}
peerDependencies: peerDependencies:
'@vue/composition-api': ^1.0.0 '@vue/composition-api': ^1.0.0
@ -4352,12 +4424,11 @@ packages:
'@vue/composition-api': '@vue/composition-api':
optional: true optional: true
dependencies: dependencies:
pinia: 2.0.14_typescript@4.7.3+vue@3.2.37 pinia: 2.0.14_typescript@4.7.3
vue: 3.2.37 vue-demi: 0.12.5
vue-demi: 0.12.5_vue@3.2.37
dev: false dev: false
/pinia/2.0.14_typescript@4.7.3+vue@3.2.37: /pinia/2.0.14_typescript@4.7.3:
resolution: {integrity: sha512-0nPuZR4TetT/WcLN+feMSjWJku3SQU7dBbXC6uw+R6FLQJCsg+/0pzXyD82T1FmAYe0lsx+jnEDQ1BLgkRKlxA==} resolution: {integrity: sha512-0nPuZR4TetT/WcLN+feMSjWJku3SQU7dBbXC6uw+R6FLQJCsg+/0pzXyD82T1FmAYe0lsx+jnEDQ1BLgkRKlxA==}
peerDependencies: peerDependencies:
'@vue/composition-api': ^1.4.0 '@vue/composition-api': ^1.4.0
@ -4371,8 +4442,7 @@ packages:
dependencies: dependencies:
'@vue/devtools-api': 6.1.4 '@vue/devtools-api': 6.1.4
typescript: 4.7.3 typescript: 4.7.3
vue: 3.2.37 vue-demi: 0.12.5
vue-demi: 0.12.5_vue@3.2.37
dev: false dev: false
/postcss/8.4.13: /postcss/8.4.13:
@ -4895,7 +4965,7 @@ packages:
engines: {node: '>=8'} engines: {node: '>=8'}
dev: true dev: true
/ts-node/10.7.0_98be30d9db897f1a45c73c3b6eb340e2: /ts-node/10.7.0_tc7dbwo3rf7rurohhq5w5m2a4i:
resolution: {integrity: sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==} resolution: {integrity: sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
@ -4975,7 +5045,6 @@ packages:
resolution: {integrity: sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==} resolution: {integrity: sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==}
engines: {node: '>=4.2.0'} engines: {node: '>=4.2.0'}
hasBin: true hasBin: true
dev: true
/uc.micro/1.0.6: /uc.micro/1.0.6:
resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==}
@ -5062,7 +5131,7 @@ packages:
'@vue/runtime-core': 3.2.37 '@vue/runtime-core': 3.2.37
gray-matter: 4.0.3 gray-matter: 4.0.3
markdown-it: 13.0.1 markdown-it: 13.0.1
vite: 2.9.8_less@4.1.3 vite: 2.9.8
dev: true dev: true
/vite/2.9.12_less@4.1.3: /vite/2.9.12_less@4.1.3:
@ -5090,7 +5159,7 @@ packages:
fsevents: 2.3.2 fsevents: 2.3.2
dev: true dev: true
/vite/2.9.8_less@4.1.3: /vite/2.9.8:
resolution: {integrity: sha512-zsBGwn5UT3YS0NLSJ7hnR54+vUKfgzMUh/Z9CxF1YKEBVIe213+63jrFLmZphgGI5zXwQCSmqIdbPuE8NJywPw==} resolution: {integrity: sha512-zsBGwn5UT3YS0NLSJ7hnR54+vUKfgzMUh/Z9CxF1YKEBVIe213+63jrFLmZphgGI5zXwQCSmqIdbPuE8NJywPw==}
engines: {node: '>=12.2.0'} engines: {node: '>=12.2.0'}
hasBin: true hasBin: true
@ -5107,7 +5176,6 @@ packages:
optional: true optional: true
dependencies: dependencies:
esbuild: 0.14.31 esbuild: 0.14.31
less: 4.1.3
postcss: 8.4.13 postcss: 8.4.13
resolve: 1.22.0 resolve: 1.22.0
rollup: 2.75.5 rollup: 2.75.5
@ -5115,7 +5183,7 @@ packages:
fsevents: 2.3.2 fsevents: 2.3.2
dev: true dev: true
/vue-demi/0.12.5_vue@3.2.37: /vue-demi/0.12.5:
resolution: {integrity: sha512-BREuTgTYlUr0zw0EZn3hnhC3I6gPWv+Kwh4MCih6QcAeaTlaIX0DwOVN0wHej7hSvDPecz4jygy/idsgKfW58Q==} resolution: {integrity: sha512-BREuTgTYlUr0zw0EZn3hnhC3I6gPWv+Kwh4MCih6QcAeaTlaIX0DwOVN0wHej7hSvDPecz4jygy/idsgKfW58Q==}
engines: {node: '>=12'} engines: {node: '>=12'}
hasBin: true hasBin: true
@ -5126,8 +5194,6 @@ packages:
peerDependenciesMeta: peerDependenciesMeta:
'@vue/composition-api': '@vue/composition-api':
optional: true optional: true
dependencies:
vue: 3.2.37
dev: false dev: false
/vue-eslint-parser/8.3.0_eslint@8.12.0: /vue-eslint-parser/8.3.0_eslint@8.12.0:
@ -5148,7 +5214,7 @@ packages:
- supports-color - supports-color
dev: true dev: true
/vue-i18n/9.1.10_vue@3.2.37: /vue-i18n/9.1.10:
resolution: {integrity: sha512-jpr7gV5KPk4n+sSPdpZT8Qx3XzTcNDWffRlHV/cT2NUyEf+sEgTTmLvnBAibjOFJ0zsUyZlVTAWH5DDnYep+1g==} resolution: {integrity: sha512-jpr7gV5KPk4n+sSPdpZT8Qx3XzTcNDWffRlHV/cT2NUyEf+sEgTTmLvnBAibjOFJ0zsUyZlVTAWH5DDnYep+1g==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
peerDependencies: peerDependencies:
@ -5158,16 +5224,14 @@ packages:
'@intlify/shared': 9.1.10 '@intlify/shared': 9.1.10
'@intlify/vue-devtools': 9.1.10 '@intlify/vue-devtools': 9.1.10
'@vue/devtools-api': 6.1.4 '@vue/devtools-api': 6.1.4
vue: 3.2.37
dev: false dev: false
/vue-router/4.0.16_vue@3.2.37: /vue-router/4.0.16:
resolution: {integrity: sha512-JcO7cb8QJLBWE+DfxGUL3xUDOae/8nhM1KVdnudadTAORbuxIC/xAydC5Zr/VLHUDQi1ppuTF5/rjBGzgzrJNA==} resolution: {integrity: sha512-JcO7cb8QJLBWE+DfxGUL3xUDOae/8nhM1KVdnudadTAORbuxIC/xAydC5Zr/VLHUDQi1ppuTF5/rjBGzgzrJNA==}
peerDependencies: peerDependencies:
vue: ^3.2.0 vue: ^3.2.0
dependencies: dependencies:
'@vue/devtools-api': 6.1.4 '@vue/devtools-api': 6.1.4
vue: 3.2.37
dev: false dev: false
/vue/3.2.37: /vue/3.2.37:
@ -5178,7 +5242,6 @@ packages:
'@vue/runtime-dom': 3.2.37 '@vue/runtime-dom': 3.2.37
'@vue/server-renderer': 3.2.37_vue@3.2.37 '@vue/server-renderer': 3.2.37_vue@3.2.37
'@vue/shared': 3.2.37 '@vue/shared': 3.2.37
dev: false
/which/1.3.1: /which/1.3.1:
resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}