diff --git a/.prettierignore b/.prettierignore
index f99a496..8f9d2df 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -6,7 +6,6 @@ node_modules
# Ignore all dts files:
*.d.ts
-vite.config.ts
# lib
/pnpm-lock.yaml
diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md
index f464c28..ac9b6a8 100644
--- a/DEVELOPMENT.md
+++ b/DEVELOPMENT.md
@@ -11,19 +11,19 @@ pnpm install
serve
```bash
-pnpm serve -F app
+pnpm serve -F siyuan-plugin-picgo
```
dev
```bash
-pnpm dev
+pnpm dev -F siyuan-plugin-picgo
```
## Build
```bash
-pnpm package
+pnpm build
```
artifacts structure
diff --git a/packages/siyuan-plugin-picgo/.gitignore b/packages/siyuan-plugin-picgo/.gitignore
index 8219359..09caeba 100644
--- a/packages/siyuan-plugin-picgo/.gitignore
+++ b/packages/siyuan-plugin-picgo/.gitignore
@@ -26,5 +26,4 @@ components.d.ts
*.njsproj
*.sln
*.sw?
-coverage
-vite.config.ts
\ No newline at end of file
+coverage
\ No newline at end of file
diff --git a/packages/siyuan-plugin-picgo/common/Constants.ts b/packages/siyuan-plugin-picgo/common/Constants.ts
index f603c18..f32e79b 100644
--- a/packages/siyuan-plugin-picgo/common/Constants.ts
+++ b/packages/siyuan-plugin-picgo/common/Constants.ts
@@ -1,26 +1,10 @@
/*
- * Copyright (c) 2023, Terwer . All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * GNU GENERAL PUBLIC LICENSE
+ * Version 3, 29 June 2007
*
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Terwer designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Terwer in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Terwer, Shenzhen, Guangdong, China, youweics@163.com
- * or visit www.terwer.space if you need additional information or have any
- * questions.
+ * Copyright (C) 2022-2024 Terwer, Inc.
+ * Everyone is permitted to copy and distribute verbatim copies
+ * of this license document, but changing it is not allowed.
*/
export const isDev = process.env.DEV_MODE === "true"
diff --git a/packages/siyuan-plugin-picgo/common/appLogger.ts b/packages/siyuan-plugin-picgo/common/appLogger.ts
index 6ba6b1a..2767d74 100644
--- a/packages/siyuan-plugin-picgo/common/appLogger.ts
+++ b/packages/siyuan-plugin-picgo/common/appLogger.ts
@@ -1,26 +1,10 @@
/*
- * Copyright (c) 2023, Terwer . All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * GNU GENERAL PUBLIC LICENSE
+ * Version 3, 29 June 2007
*
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Terwer designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Terwer in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Terwer, Shenzhen, Guangdong, China, youweics@163.com
- * or visit www.terwer.space if you need additional information or have any
- * questions.
+ * Copyright (C) 2023-2024 Terwer, Inc.
+ * Everyone is permitted to copy and distribute verbatim copies
+ * of this license document, but changing it is not allowed.
*/
import { isDev } from "./Constants"
@@ -36,7 +20,7 @@ window.console = isDev ? win?.eruda?.get("console") : window.console
/**
* 简单的日志接口
*/
-interface ILogger {
+export interface ILogger {
debug: (msg: string, obj?: any) => void
info: (msg: string, obj?: any) => void
warn: (msg: string, obj?: any) => void
diff --git a/packages/siyuan-plugin-picgo/index.html b/packages/siyuan-plugin-picgo/index.html
index 20de112..9d53ff9 100644
--- a/packages/siyuan-plugin-picgo/index.html
+++ b/packages/siyuan-plugin-picgo/index.html
@@ -5,10 +5,7 @@
PicGO 插件
-
-
+ <%- injectScript %>
diff --git a/packages/siyuan-plugin-picgo/package.json b/packages/siyuan-plugin-picgo/package.json
index c1ccdae..1e0fecb 100644
--- a/packages/siyuan-plugin-picgo/package.json
+++ b/packages/siyuan-plugin-picgo/package.json
@@ -5,18 +5,20 @@
"type": "module",
"scripts": {
"serve": "python -u scripts/serve.py && vite",
- "dev": "python -u scripts/dev.py &&vue-tsc && vite build --wach",
- "build": "vue-tsc && vite build",
- "preview": "vite preview"
+ "dev": "python -u scripts/dev.py",
+ "build": "python -u scripts/build.py"
},
"devDependencies": {
"@terwer/esbuild-config-custom": "2.0.0",
"@terwer/eslint-config-custom": "^1.3.6",
"@vitejs/plugin-vue": "^5.0.4",
+ "fast-glob": "^3.3.2",
"minimist": "^1.2.5",
+ "rollup-plugin-livereload": "^2.0.5",
"typescript": "^5.2.2",
"vite": "^5.1.6",
"vite-plugin-html": "^3.2.2",
+ "vitest": "^1.3.1",
"vue-tsc": "^1.8.27"
},
"dependencies": {
diff --git a/packages/siyuan-plugin-picgo/scripts/build.py b/packages/siyuan-plugin-picgo/scripts/build.py
new file mode 100644
index 0000000..67a4d1a
--- /dev/null
+++ b/packages/siyuan-plugin-picgo/scripts/build.py
@@ -0,0 +1,14 @@
+import shutil
+import sys
+import os
+
+# 设置标准输出的编码为 UTF-8
+# Windows 必须添加此设置
+sys.stdout.reconfigure(encoding="utf-8")
+
+# siyuan-plugin-bootstrap
+# os.system("")
+
+# picgo-app
+os.system("vue-tsc && vite build")
+print"PicGO plugin build success")
\ No newline at end of file
diff --git a/packages/siyuan-plugin-picgo/scripts/dev.py b/packages/siyuan-plugin-picgo/scripts/dev.py
index 86653b8..bf8d518 100644
--- a/packages/siyuan-plugin-picgo/scripts/dev.py
+++ b/packages/siyuan-plugin-picgo/scripts/dev.py
@@ -1,16 +1,13 @@
import shutil
import sys
+import os
# 设置标准输出的编码为 UTF-8
# Windows 必须添加此设置
sys.stdout.reconfigure(encoding="utf-8")
# siyuan-plugin-bootstrap
-os.system("")
+# os.system("")
# picgo-app
-shutil.copyfile("vite.config.plugin.ts", "vite.config.ts")
-print("Config is reset to web, will serve as browser")
-
-# vite
-# 会阻塞,最好在 npm 的 scripts 里面,便于及时查看日志
+os.system("vue-tsc && vite build --watch")
\ No newline at end of file
diff --git a/packages/siyuan-plugin-picgo/scripts/serve.py b/packages/siyuan-plugin-picgo/scripts/serve.py
index afbdd9d..3c28c76 100644
--- a/packages/siyuan-plugin-picgo/scripts/serve.py
+++ b/packages/siyuan-plugin-picgo/scripts/serve.py
@@ -1,13 +1,10 @@
import shutil
import sys
+import os
# 设置标准输出的编码为 UTF-8
# Windows 必须添加此设置
sys.stdout.reconfigure(encoding="utf-8")
-# "serve": "cp index.siyuan-nginx.html index.html && cp vite.config.siyuan-nginx.ts vite.config.ts && vite"
-shutil.copyfile("vite.config.web.ts", "vite.config.ts")
-print("Config is reset to web, will serve as browser")
-
-# vite
-# 会阻塞,最好在 npm 的 scripts 里面,便于及时查看日志
+os.environ['IS_SERVE'] = 'true'
+os.system("vite")
\ No newline at end of file
diff --git a/packages/siyuan-plugin-picgo/src/setup.ts b/packages/siyuan-plugin-picgo/src/setup.ts
new file mode 100644
index 0000000..b6372a9
--- /dev/null
+++ b/packages/siyuan-plugin-picgo/src/setup.ts
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2023, Terwer . All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Terwer designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Terwer in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Terwer, Shenzhen, Guangdong, China, youweics@163.com
+ * or visit www.terwer.space if you need additional information or have any
+ * questions.
+ */
+
+import { afterEach, beforeEach } from "vitest"
+
+beforeEach(async () => {
+ console.log("======test is starting...======")
+})
+
+afterEach(() => {
+ console.log("======test is finished.========")
+})
diff --git a/packages/siyuan-plugin-picgo/vite.config.plugin.ts b/packages/siyuan-plugin-picgo/vite.config.ts
similarity index 59%
rename from packages/siyuan-plugin-picgo/vite.config.plugin.ts
rename to packages/siyuan-plugin-picgo/vite.config.ts
index 47ec62f..9064234 100644
--- a/packages/siyuan-plugin-picgo/vite.config.plugin.ts
+++ b/packages/siyuan-plugin-picgo/vite.config.ts
@@ -9,16 +9,24 @@
import { defineConfig } from "vite"
import vue from "@vitejs/plugin-vue"
+import livereload from "rollup-plugin-livereload"
import minimist from "minimist"
+import fg from "fast-glob"
import { createHtmlPlugin } from "vite-plugin-html"
import path from "path"
+// config
const args = minimist(process.argv.slice(2))
+// 开启之后可以同eruda接管日志
+const isServe = process.env.IS_SERVE
const isWatch = args.watch || args.w || false
-const isDev = isWatch
+const isDev = isServe || isWatch
+const outDir = args.o || args.outDir
+
+const distDir = outDir || "./dist"
// https://vitejs.dev/config/
-export default defineConfig({
+export default defineConfig(() => ({
plugins: [
vue(),
@@ -80,4 +88,58 @@ export default defineConfig({
$composables: path.resolve(__dirname, "./src/composables"),
},
},
-})
+
+ build: {
+ // 输出路径
+ outDir: distDir,
+ emptyOutDir: false,
+
+ // 构建后是否生成 source map 文件
+ sourcemap: false,
+
+ // 设置为 false 可以禁用最小化混淆
+ // 或是用来指定是应用哪种混淆器
+ // boolean | 'terser' | 'esbuild'
+ // 不压缩,用于调试
+ minify: !isDev,
+
+ rollupOptions: {
+ plugins: [
+ ...(isWatch
+ ? [
+ livereload(distDir),
+ {
+ //监听静态资源文件
+ name: "watch-external",
+ async buildStart() {
+ const files = await fg(["src/assets/*", "./README*.md", "./widget.json"])
+ for (const file of files) {
+ const that = this as any
+ that.addWatchFile(file)
+ }
+ },
+ },
+ ]
+ : []),
+ ] as any,
+
+ // make sure to externalize deps that shouldn't be bundled into your library
+ external: [],
+ },
+ },
+
+ test: {
+ globals: true,
+ environment: "jsdom",
+ // environment: "node",
+ // environment: "happy-dom",
+ setupFiles: ["./src/setup.ts"],
+ include: [
+ "src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}",
+ "common/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}",
+ ],
+ server: {
+ deps: {},
+ },
+ },
+}))
diff --git a/packages/siyuan-plugin-picgo/vite.config.web.ts b/packages/siyuan-plugin-picgo/vite.config.web.ts
deleted file mode 100644
index ff9874a..0000000
--- a/packages/siyuan-plugin-picgo/vite.config.web.ts
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * GNU GENERAL PUBLIC LICENSE
- * Version 3, 29 June 2007
- *
- * Copyright (C) 2023-2024 Terwer, Inc.
- * Everyone is permitted to copy and distribute verbatim copies
- * of this license document, but changing it is not allowed.
- */
-
-import { defineConfig } from "vite"
-import vue from "@vitejs/plugin-vue"
-import minimist from "minimist"
-import path from "path"
-
-const args = minimist(process.argv.slice(2))
-const isWatch = args.watch || args.w || false
-const isDev = isWatch
-
-// https://vitejs.dev/config/
-export default defineConfig({
- plugins: [
- vue(),
-
- {
- name: "add-query-param",
- transformIndexHtml(html) {
- const timestamp = Date.now()
- html = html.replace(/(]+href=")([^"]+(\.css|\.js))"/g, (match, p1, p2) => `${p1}${p2}?v=${timestamp}"`)
- html = html.replace(/( ]+href=")([^"]+\.svg)"/g, `$1$2?v=${timestamp}"`)
- html = html.replace(/( ]+src=")([^"]+\.(jpe?g|gif|webp|bmp|png))"/g, `$1$2?v=${timestamp}"`)
- return html
- },
- },
- ],
-
- // 项目部署的基础路径
- base: "",
-
- // https://github.com/vitejs/vite/issues/1930
- // https://vitejs.dev/guide/env-and-mode.html#env-files
- // https://github.com/vitejs/vite/discussions/3058#discussioncomment-2115319
- // 在这里自定义变量
- define: {
- "process.env.DEV_MODE": `"${isDev}"`,
- },
-
- resolve: {
- alias: {
- "~": path.resolve(__dirname, "./"),
- "@": path.resolve(__dirname, "./src/"),
- $routes: path.resolve(__dirname, "./src/routes"),
- $pages: path.resolve(__dirname, "./src/pages"),
- $lib: path.resolve(__dirname, "./src/lib"),
- $assets: path.resolve(__dirname, "./src/assets"),
- $components: path.resolve(__dirname, "./src/components"),
- $composables: path.resolve(__dirname, "./src/composables"),
- },
- },
-})
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 9b7254c..208b314 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -263,9 +263,15 @@ importers:
'@vitejs/plugin-vue':
specifier: ^5.0.4
version: 5.0.4(vite@5.1.6)(vue@3.4.21)
+ fast-glob:
+ specifier: ^3.3.2
+ version: 3.3.2
minimist:
specifier: ^1.2.5
version: 1.2.8
+ rollup-plugin-livereload:
+ specifier: ^2.0.5
+ version: 2.0.5
typescript:
specifier: ^5.2.2
version: 5.4.2
@@ -275,6 +281,9 @@ importers:
vite-plugin-html:
specifier: ^3.2.2
version: 3.2.2(vite@5.1.6)
+ vitest:
+ specifier: ^1.3.1
+ version: 1.3.1(@types/node@20.5.1)(stylus@0.59.0)
vue-tsc:
specifier: ^1.8.27
version: 1.8.27(typescript@5.4.2)
@@ -1589,6 +1598,13 @@ packages:
wrap-ansi-cjs: /wrap-ansi@7.0.0
dev: true
+ /@jest/schemas@29.6.3:
+ resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ dependencies:
+ '@sinclair/typebox': 0.27.8
+ dev: true
+
/@jridgewell/gen-mapping@0.3.5:
resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
engines: {node: '>=6.0.0'}
@@ -2053,6 +2069,10 @@ packages:
- '@types/node'
dev: true
+ /@sinclair/typebox@0.27.8:
+ resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
+ dev: true
+
/@sindresorhus/is@0.7.0:
resolution: {integrity: sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==}
engines: {node: '>=4'}
@@ -2956,6 +2976,14 @@ packages:
chai: 4.4.1
dev: true
+ /@vitest/expect@1.3.1:
+ resolution: {integrity: sha512-xofQFwIzfdmLLlHa6ag0dPV8YsnKOCP1KdAeVVh34vSjN2dcUiXYCD9htu/9eM7t8Xln4v03U9HLxLpPlsXdZw==}
+ dependencies:
+ '@vitest/spy': 1.3.1
+ '@vitest/utils': 1.3.1
+ chai: 4.4.1
+ dev: true
+
/@vitest/runner@0.31.4:
resolution: {integrity: sha512-Wgm6UER+gwq6zkyrm5/wbpXGF+g+UBB78asJlFkIOwyse0pz8lZoiC6SW5i4gPnls/zUcPLWS7Zog0LVepXnpg==}
dependencies:
@@ -2965,6 +2993,14 @@ packages:
pathe: 1.1.2
dev: true
+ /@vitest/runner@1.3.1:
+ resolution: {integrity: sha512-5FzF9c3jG/z5bgCnjr8j9LNq/9OxV2uEBAITOXfoe3rdZJTdO7jzThth7FXv/6b+kdY65tpRQB7WaKhNZwX+Kg==}
+ dependencies:
+ '@vitest/utils': 1.3.1
+ p-limit: 5.0.0
+ pathe: 1.1.2
+ dev: true
+
/@vitest/snapshot@0.31.4:
resolution: {integrity: sha512-LemvNumL3NdWSmfVAMpXILGyaXPkZbG5tyl6+RQSdcHnTj6hvA49UAI8jzez9oQyE/FWLKRSNqTGzsHuk89LRA==}
dependencies:
@@ -2973,12 +3009,26 @@ packages:
pretty-format: 27.5.1
dev: true
+ /@vitest/snapshot@1.3.1:
+ resolution: {integrity: sha512-EF++BZbt6RZmOlE3SuTPu/NfwBF6q4ABS37HHXzs2LUVPBLx2QoY/K0fKpRChSo8eLiuxcbCVfqKgx/dplCDuQ==}
+ dependencies:
+ magic-string: 0.30.8
+ pathe: 1.1.2
+ pretty-format: 29.7.0
+ dev: true
+
/@vitest/spy@0.31.4:
resolution: {integrity: sha512-3ei5ZH1s3aqbEyftPAzSuunGICRuhE+IXOmpURFdkm5ybUADk+viyQfejNk6q8M5QGX8/EVKw+QWMEP3DTJDag==}
dependencies:
tinyspy: 2.2.1
dev: true
+ /@vitest/spy@1.3.1:
+ resolution: {integrity: sha512-xAcW+S099ylC9VLU7eZfdT9myV67Nor9w9zhf0mGCYJSO+zM2839tOeROTdikOi/8Qeusffvxb/MyBSOja1Uig==}
+ dependencies:
+ tinyspy: 2.2.1
+ dev: true
+
/@vitest/utils@0.31.4:
resolution: {integrity: sha512-DobZbHacWznoGUfYU8XDPY78UubJxXfMNY1+SUdOp1NsI34eopSA6aZMeaGu10waSOeYwE8lxrd/pLfT0RMxjQ==}
dependencies:
@@ -2987,6 +3037,15 @@ packages:
pretty-format: 27.5.1
dev: true
+ /@vitest/utils@1.3.1:
+ resolution: {integrity: sha512-d3Waie/299qqRyHTm2DjADeTaNdNSVsnwHPWrs20JMpjh6eiVq7ggggweO8rc4arhf6rRkWuHKwvxGvejUXZZQ==}
+ dependencies:
+ diff-sequences: 29.6.3
+ estree-walker: 3.0.3
+ loupe: 2.3.7
+ pretty-format: 29.7.0
+ dev: true
+
/@volar/language-core@1.11.1:
resolution: {integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==}
dependencies:
@@ -4953,6 +5012,11 @@ packages:
engines: {node: '>=8'}
dev: true
+ /diff-sequences@29.6.3:
+ resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ dev: true
+
/diff@4.0.2:
resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
engines: {node: '>=0.3.1'}
@@ -6239,6 +6303,21 @@ packages:
strip-final-newline: 2.0.0
dev: true
+ /execa@8.0.1:
+ resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==}
+ engines: {node: '>=16.17'}
+ dependencies:
+ cross-spawn: 7.0.3
+ get-stream: 8.0.1
+ human-signals: 5.0.0
+ is-stream: 3.0.0
+ merge-stream: 2.0.0
+ npm-run-path: 5.3.0
+ onetime: 6.0.0
+ signal-exit: 4.1.0
+ strip-final-newline: 3.0.0
+ dev: true
+
/expand-tilde@2.0.2:
resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==}
engines: {node: '>=0.10.0'}
@@ -6678,6 +6757,11 @@ packages:
engines: {node: '>=10'}
dev: true
+ /get-stream@8.0.1:
+ resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==}
+ engines: {node: '>=16'}
+ dev: true
+
/get-symbol-description@1.0.2:
resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==}
engines: {node: '>= 0.4'}
@@ -7074,6 +7158,11 @@ packages:
engines: {node: '>=10.17.0'}
dev: true
+ /human-signals@5.0.0:
+ resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==}
+ engines: {node: '>=16.17.0'}
+ dev: true
+
/humanize-ms@1.2.1:
resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==}
dependencies:
@@ -7529,6 +7618,11 @@ packages:
engines: {node: '>=8'}
dev: true
+ /is-stream@3.0.0:
+ resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dev: true
+
/is-string@1.0.7:
resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
engines: {node: '>= 0.4'}
@@ -7676,6 +7770,10 @@ packages:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
dev: true
+ /js-tokens@8.0.3:
+ resolution: {integrity: sha512-UfJMcSJc+SEXEl9lH/VLHSZbThQyLpw1vLO1Lb+j4RWDvG3N2f7yj3PVQA3cmkTBNldJ9eFnM+xEXxHIXrYiJw==}
+ dev: true
+
/js-yaml@3.14.1:
resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
hasBin: true
@@ -7881,6 +7979,14 @@ packages:
engines: {node: '>=14'}
dev: true
+ /local-pkg@0.5.0:
+ resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==}
+ engines: {node: '>=14'}
+ dependencies:
+ mlly: 1.6.1
+ pkg-types: 1.0.3
+ dev: true
+
/locate-character@3.0.0:
resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==}
dev: true
@@ -8260,6 +8366,11 @@ packages:
engines: {node: '>=6'}
dev: true
+ /mimic-fn@4.0.0:
+ resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
+ engines: {node: '>=12'}
+ dev: true
+
/mimic-response@1.0.1:
resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==}
engines: {node: '>=4'}
@@ -8542,6 +8653,13 @@ packages:
path-key: 3.1.1
dev: true
+ /npm-run-path@5.3.0:
+ resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ path-key: 4.0.0
+ dev: true
+
/nth-check@2.1.1:
resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
dependencies:
@@ -8634,6 +8752,13 @@ packages:
mimic-fn: 2.1.0
dev: true
+ /onetime@6.0.0:
+ resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ mimic-fn: 4.0.0
+ dev: true
+
/optionator@0.9.3:
resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
engines: {node: '>= 0.8.0'}
@@ -8761,6 +8886,13 @@ packages:
yocto-queue: 1.0.0
dev: true
+ /p-limit@5.0.0:
+ resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==}
+ engines: {node: '>=18'}
+ dependencies:
+ yocto-queue: 1.0.0
+ dev: true
+
/p-locate@2.0.0:
resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==}
engines: {node: '>=4'}
@@ -8899,6 +9031,11 @@ packages:
engines: {node: '>=8'}
dev: true
+ /path-key@4.0.0:
+ resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==}
+ engines: {node: '>=12'}
+ dev: true
+
/path-parse@1.0.7:
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
@@ -9197,6 +9334,15 @@ packages:
react-is: 17.0.2
dev: true
+ /pretty-format@29.7.0:
+ resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ dependencies:
+ '@jest/schemas': 29.6.3
+ ansi-styles: 5.2.0
+ react-is: 18.2.0
+ dev: true
+
/process-nextick-args@2.0.1:
resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
@@ -9333,6 +9479,10 @@ packages:
resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
dev: true
+ /react-is@18.2.0:
+ resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
+ dev: true
+
/read-pkg-up@3.0.0:
resolution: {integrity: sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==}
engines: {node: '>=4'}
@@ -10174,6 +10324,11 @@ packages:
engines: {node: '>=6'}
dev: true
+ /strip-final-newline@3.0.0:
+ resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
+ engines: {node: '>=12'}
+ dev: true
+
/strip-indent@2.0.0:
resolution: {integrity: sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA==}
engines: {node: '>=4'}
@@ -10197,6 +10352,12 @@ packages:
acorn: 8.11.3
dev: true
+ /strip-literal@2.0.0:
+ resolution: {integrity: sha512-f9vHgsCWBq2ugHAkGMiiYY+AYG0D/cbloKKg0nhaaaSNsujdGIpVXCNsrJpCKr5M0f4aI31mr13UjY6GAuXCKA==}
+ dependencies:
+ js-tokens: 8.0.3
+ dev: true
+
/strip-outer@1.0.1:
resolution: {integrity: sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==}
engines: {node: '>=0.10.0'}
@@ -10396,6 +10557,11 @@ packages:
engines: {node: '>=14.0.0'}
dev: true
+ /tinypool@0.8.2:
+ resolution: {integrity: sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ==}
+ engines: {node: '>=14.0.0'}
+ dev: true
+
/tinyspy@2.2.1:
resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==}
engines: {node: '>=14.0.0'}
@@ -10928,6 +11094,27 @@ packages:
- terser
dev: true
+ /vite-node@1.3.1(@types/node@20.5.1)(stylus@0.59.0):
+ resolution: {integrity: sha512-azbRrqRxlWTJEVbzInZCTchx0X69M/XPTCz4H+TLvlTcR/xH/3hkRqhOakT41fMJCMzXTu4UvegkZiEoJAWvng==}
+ engines: {node: ^18.0.0 || >=20.0.0}
+ hasBin: true
+ dependencies:
+ cac: 6.7.14
+ debug: 4.3.4
+ pathe: 1.1.2
+ picocolors: 1.0.0
+ vite: 5.1.6(@types/node@20.5.1)(stylus@0.59.0)
+ transitivePeerDependencies:
+ - '@types/node'
+ - less
+ - lightningcss
+ - sass
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
+ dev: true
+
/vite-plugin-dts@2.3.0(@types/node@20.5.1)(vite@4.5.2):
resolution: {integrity: sha512-WbJgGtsStgQhdm3EosYmIdTGbag5YQpZ3HXWUAPCDyoXI5qN6EY0V7NXq0lAmnv9hVQsvh0htbYcg0Or5Db9JQ==}
engines: {node: ^14.18.0 || >=16.0.0}
@@ -11189,6 +11376,62 @@ packages:
- terser
dev: true
+ /vitest@1.3.1(@types/node@20.5.1)(stylus@0.59.0):
+ resolution: {integrity: sha512-/1QJqXs8YbCrfv/GPQ05wAZf2eakUPLPa18vkJAKE7RXOKfVHqMZZ1WlTjiwl6Gcn65M5vpNUB6EFLnEdRdEXQ==}
+ engines: {node: ^18.0.0 || >=20.0.0}
+ hasBin: true
+ peerDependencies:
+ '@edge-runtime/vm': '*'
+ '@types/node': ^18.0.0 || >=20.0.0
+ '@vitest/browser': 1.3.1
+ '@vitest/ui': 1.3.1
+ happy-dom: '*'
+ jsdom: '*'
+ peerDependenciesMeta:
+ '@edge-runtime/vm':
+ optional: true
+ '@types/node':
+ optional: true
+ '@vitest/browser':
+ optional: true
+ '@vitest/ui':
+ optional: true
+ happy-dom:
+ optional: true
+ jsdom:
+ optional: true
+ dependencies:
+ '@types/node': 20.5.1
+ '@vitest/expect': 1.3.1
+ '@vitest/runner': 1.3.1
+ '@vitest/snapshot': 1.3.1
+ '@vitest/spy': 1.3.1
+ '@vitest/utils': 1.3.1
+ acorn-walk: 8.3.2
+ chai: 4.4.1
+ debug: 4.3.4
+ execa: 8.0.1
+ local-pkg: 0.5.0
+ magic-string: 0.30.8
+ pathe: 1.1.2
+ picocolors: 1.0.0
+ std-env: 3.7.0
+ strip-literal: 2.0.0
+ tinybench: 2.6.0
+ tinypool: 0.8.2
+ vite: 5.1.6(@types/node@20.5.1)(stylus@0.59.0)
+ vite-node: 1.3.1(@types/node@20.5.1)(stylus@0.59.0)
+ why-is-node-running: 2.2.2
+ transitivePeerDependencies:
+ - less
+ - lightningcss
+ - sass
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
+ dev: true
+
/vm-browserify@1.1.2:
resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==}
dev: true