From 1a5796ac319073877d52e2b3e78e9fa016890c19 Mon Sep 17 00:00:00 2001
From: gaokefei <260480378@qq.com>
Date: Sat, 2 Dec 2023 19:45:31 +0800
Subject: [PATCH 1/4] feat(jsx-directive): support fragment
---
playground/src/components/Comp.vue | 2 +
src/rules/jsx-directive/v-tag.yml | 33 +++++++++++++++
src/rules/render/define-render.yml | 65 ++++++++++++------------------
src/rules/render/export-render.yml | 65 ++++++++++++------------------
src/utils/is-fragment.yml | 13 ++++++
src/utils/is-template.yml | 5 +++
6 files changed, 103 insertions(+), 80 deletions(-)
create mode 100644 src/rules/jsx-directive/v-tag.yml
create mode 100644 src/utils/is-fragment.yml
diff --git a/playground/src/components/Comp.vue b/playground/src/components/Comp.vue
index 3836e35..a1183d5 100644
--- a/playground/src/components/Comp.vue
+++ b/playground/src/components/Comp.vue
@@ -4,6 +4,8 @@
{{ id }}
bottom
+
+
Fragment
---
-id: define-render remove template
-language: html
-rule:
- matches: is-template
-fix: |-
-
----
-
-id: define-render has lang
+id: define-render fragment
language: html
rule:
- kind: attribute_value
+ kind: end_tag
+ regex:
inside:
- kind: quoted_attribute_value
- inside:
- kind: attribute
- pattern: $NAME
- has:
- kind: attribute_name
- regex: lang
- inside:
- matches: is-script
+ kind: script_element
+ any:
+ - precedes:
+ matches: is-fragment
+ pattern: $$$A
+ - follows:
+ matches: is-fragment
+ pattern: $$$A
fix: |-
- tsx
+
+ defineRender(() => (
+ <>
+ $$$A
+ >
+ ))
+
---
-id: define-render no lang
+id: define-render remove template
language: html
rule:
- kind: tag_name
- regex: script
- pattern: $NAME
- inside:
- matches: is-script
- not:
- has:
- kind: attribute
- has:
- kind: attribute_name
- regex: ^lang$
+ any:
+ - matches: is-template
+ - matches: is-fragment
fix: |-
- script lang="tsx"
diff --git a/src/rules/render/export-render.yml b/src/rules/render/export-render.yml
index e75bae4..c9ec26c 100644
--- a/src/rules/render/export-render.yml
+++ b/src/rules/render/export-render.yml
@@ -8,63 +8,48 @@ rule:
any:
- precedes:
matches: is-template
- has:
- kind: element
- pattern: $A
+ pattern: $$$A
- follows:
matches: is-template
- has:
- kind: element
- pattern: $A
+ pattern: $$$A
fix: |-
export default () => (
- $A
+ $$$A
)
---
-id: export-render remove template
-language: html
-rule:
- matches: is-template
-fix: |-
-
----
-
-id: export-render has lang
+id: export-render fragment
language: html
rule:
- kind: attribute_value
+ kind: end_tag
+ regex:
inside:
- kind: quoted_attribute_value
- inside:
- kind: attribute
- pattern: $NAME
- has:
- kind: attribute_name
- regex: lang
- inside:
- matches: is-script
+ kind: script_element
+ any:
+ - precedes:
+ matches: is-fragment
+ pattern: $$$A
+ - follows:
+ matches: is-fragment
+ pattern: $$$A
fix: |-
- tsx
+
+ export default () => (
+ <>
+ $$$A
+ >
+ )
+
---
-id: export-render no lang
+id: export-render remove template
language: html
rule:
- kind: tag_name
- regex: script
- pattern: $NAME
- inside:
- matches: is-script
- not:
- has:
- kind: attribute
- has:
- kind: attribute_name
- regex: ^lang$
+ any:
+ - matches: is-template
+ - matches: is-fragment
fix: |-
- script lang="tsx"
diff --git a/src/utils/is-fragment.yml b/src/utils/is-fragment.yml
new file mode 100644
index 0000000..01e6df5
--- /dev/null
+++ b/src/utils/is-fragment.yml
@@ -0,0 +1,13 @@
+id: is-fragment
+language: html
+rule:
+ kind: element
+ regex: ^
Date: Sat, 2 Dec 2023 20:27:22 +0800
Subject: [PATCH 2/4] feat(jsx-directive): convert to self-closing-tag
---
playground/package.json | 7 +-
playground/pnpm-lock.yaml | 284 ++++++++++++++++++-----------
playground/src/components/Comp.vue | 1 +
src/rules/jsx-directive/v-tag.yml | 19 ++
4 files changed, 205 insertions(+), 106 deletions(-)
diff --git a/playground/package.json b/playground/package.json
index 21927ff..ece7a8a 100644
--- a/playground/package.json
+++ b/playground/package.json
@@ -6,13 +6,14 @@
"build": "vite build"
},
"dependencies": {
- "@vitejs/plugin-vue": "^4.5.0",
- "@vitejs/plugin-vue-jsx": "^3.1.0",
- "unplugin-vue-macros": "^2.7.0",
"vue": "^3.3.9"
},
"devDependencies": {
+ "@vitejs/plugin-vue": "^4.5.0",
+ "@vitejs/plugin-vue-jsx": "^3.1.0",
+ "unplugin-vue-macros": "^2.7.0",
"@vue-macros/volar": "^0.17.4",
+ "@vue/babel-helper-vue-transform-on": "1.2.0-alpha.0",
"tsx": "^4.6.1",
"vite": "^5.0.4"
}
diff --git a/playground/pnpm-lock.yaml b/playground/pnpm-lock.yaml
index 5732d41..b9a23d7 100644
--- a/playground/pnpm-lock.yaml
+++ b/playground/pnpm-lock.yaml
@@ -5,26 +5,29 @@ settings:
excludeLinksFromLockfile: false
dependencies:
+ vue:
+ specifier: ^3.3.9
+ version: 3.3.9
+
+devDependencies:
'@vitejs/plugin-vue':
specifier: ^4.5.0
version: 4.5.0(vite@5.0.4)(vue@3.3.9)
'@vitejs/plugin-vue-jsx':
specifier: ^3.1.0
version: 3.1.0(vite@5.0.4)(vue@3.3.9)
- unplugin-vue-macros:
- specifier: ^2.7.0
- version: 2.7.0(vite@5.0.4)(vue@3.3.9)
- vue:
- specifier: ^3.3.9
- version: 3.3.9
-
-devDependencies:
'@vue-macros/volar':
specifier: ^0.17.4
version: 0.17.4(@vue-macros/reactivity-transform@0.4.0)(vue@3.3.9)
+ '@vue/babel-helper-vue-transform-on':
+ specifier: 1.2.0-alpha.0
+ version: 1.2.0-alpha.0
tsx:
specifier: ^4.6.1
version: 4.6.1
+ unplugin-vue-macros:
+ specifier: ^2.7.0
+ version: 2.7.0(vite@5.0.4)(vue@3.3.9)
vite:
specifier: ^5.0.4
version: 5.0.4
@@ -37,11 +40,11 @@ packages:
dependencies:
'@jridgewell/gen-mapping': 0.3.3
'@jridgewell/trace-mapping': 0.3.20
- dev: false
+ dev: true
/@antfu/utils@0.7.6:
resolution: {integrity: sha512-pvFiLP2BeOKA/ZOS6jxx4XhKzdVLHDhGlFEaZ2flWWYf2xOqVniqpk38I04DFRyz+L0ASggl7SkItTc+ZLju4w==}
- dev: false
+ dev: true
/@babel/code-frame@7.23.5:
resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==}
@@ -49,12 +52,12 @@ packages:
dependencies:
'@babel/highlight': 7.23.4
chalk: 2.4.2
- dev: false
+ dev: true
/@babel/compat-data@7.23.5:
resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==}
engines: {node: '>=6.9.0'}
- dev: false
+ dev: true
/@babel/core@7.23.5:
resolution: {integrity: sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g==}
@@ -77,7 +80,7 @@ packages:
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- dev: false
+ dev: true
/@babel/generator@7.23.5:
resolution: {integrity: sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==}
@@ -87,14 +90,14 @@ packages:
'@jridgewell/gen-mapping': 0.3.3
'@jridgewell/trace-mapping': 0.3.20
jsesc: 2.5.2
- dev: false
+ dev: true
/@babel/helper-annotate-as-pure@7.22.5:
resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.23.5
- dev: false
+ dev: true
/@babel/helper-compilation-targets@7.22.15:
resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==}
@@ -105,7 +108,7 @@ packages:
browserslist: 4.22.1
lru-cache: 5.1.1
semver: 6.3.1
- dev: false
+ dev: true
/@babel/helper-create-class-features-plugin@7.23.5(@babel/core@7.23.5):
resolution: {integrity: sha512-QELlRWxSpgdwdJzSJn4WAhKC+hvw/AtHbbrIoncKHkhKKR/luAlKkgBDcri1EzWAo8f8VvYVryEHN4tax/V67A==}
@@ -123,12 +126,12 @@ packages:
'@babel/helper-skip-transparent-expression-wrappers': 7.22.5
'@babel/helper-split-export-declaration': 7.22.6
semver: 6.3.1
- dev: false
+ dev: true
/@babel/helper-environment-visitor@7.22.20:
resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==}
engines: {node: '>=6.9.0'}
- dev: false
+ dev: true
/@babel/helper-function-name@7.23.0:
resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==}
@@ -136,28 +139,28 @@ packages:
dependencies:
'@babel/template': 7.22.15
'@babel/types': 7.23.5
- dev: false
+ dev: true
/@babel/helper-hoist-variables@7.22.5:
resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.23.5
- dev: false
+ dev: true
/@babel/helper-member-expression-to-functions@7.23.0:
resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.23.5
- dev: false
+ dev: true
/@babel/helper-module-imports@7.22.15:
resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.23.5
- dev: false
+ dev: true
/@babel/helper-module-transforms@7.23.3(@babel/core@7.23.5):
resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==}
@@ -171,19 +174,19 @@ packages:
'@babel/helper-simple-access': 7.22.5
'@babel/helper-split-export-declaration': 7.22.6
'@babel/helper-validator-identifier': 7.22.20
- dev: false
+ dev: true
/@babel/helper-optimise-call-expression@7.22.5:
resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.23.5
- dev: false
+ dev: true
/@babel/helper-plugin-utils@7.22.5:
resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==}
engines: {node: '>=6.9.0'}
- dev: false
+ dev: true
/@babel/helper-replace-supers@7.22.20(@babel/core@7.23.5):
resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==}
@@ -195,28 +198,28 @@ packages:
'@babel/helper-environment-visitor': 7.22.20
'@babel/helper-member-expression-to-functions': 7.23.0
'@babel/helper-optimise-call-expression': 7.22.5
- dev: false
+ dev: true
/@babel/helper-simple-access@7.22.5:
resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.23.5
- dev: false
+ dev: true
/@babel/helper-skip-transparent-expression-wrappers@7.22.5:
resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.23.5
- dev: false
+ dev: true
/@babel/helper-split-export-declaration@7.22.6:
resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.23.5
- dev: false
+ dev: true
/@babel/helper-string-parser@7.23.4:
resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==}
@@ -229,7 +232,7 @@ packages:
/@babel/helper-validator-option@7.23.5:
resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==}
engines: {node: '>=6.9.0'}
- dev: false
+ dev: true
/@babel/helpers@7.23.5:
resolution: {integrity: sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg==}
@@ -240,7 +243,7 @@ packages:
'@babel/types': 7.23.5
transitivePeerDependencies:
- supports-color
- dev: false
+ dev: true
/@babel/highlight@7.23.4:
resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==}
@@ -249,7 +252,7 @@ packages:
'@babel/helper-validator-identifier': 7.22.20
chalk: 2.4.2
js-tokens: 4.0.0
- dev: false
+ dev: true
/@babel/parser@7.23.5:
resolution: {integrity: sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==}
@@ -266,7 +269,7 @@ packages:
dependencies:
'@babel/core': 7.23.5
'@babel/helper-plugin-utils': 7.22.5
- dev: false
+ dev: true
/@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.5):
resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==}
@@ -276,7 +279,7 @@ packages:
dependencies:
'@babel/core': 7.23.5
'@babel/helper-plugin-utils': 7.22.5
- dev: false
+ dev: true
/@babel/plugin-transform-typescript@7.23.5(@babel/core@7.23.5):
resolution: {integrity: sha512-2fMkXEJkrmwgu2Bsv1Saxgj30IXZdJ+84lQcKKI7sm719oXs0BBw2ZENKdJdR1PjWndgLCEBNXJOri0fk7RYQA==}
@@ -289,7 +292,7 @@ packages:
'@babel/helper-create-class-features-plugin': 7.23.5(@babel/core@7.23.5)
'@babel/helper-plugin-utils': 7.22.5
'@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.5)
- dev: false
+ dev: true
/@babel/template@7.22.15:
resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==}
@@ -298,7 +301,7 @@ packages:
'@babel/code-frame': 7.23.5
'@babel/parser': 7.23.5
'@babel/types': 7.23.5
- dev: false
+ dev: true
/@babel/traverse@7.23.5:
resolution: {integrity: sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w==}
@@ -316,7 +319,7 @@ packages:
globals: 11.12.0
transitivePeerDependencies:
- supports-color
- dev: false
+ dev: true
/@babel/types@7.23.5:
resolution: {integrity: sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==}
@@ -341,6 +344,7 @@ packages:
cpu: [arm64]
os: [android]
requiresBuild: true
+ dev: true
optional: true
/@esbuild/android-arm@0.18.20:
@@ -358,6 +362,7 @@ packages:
cpu: [arm]
os: [android]
requiresBuild: true
+ dev: true
optional: true
/@esbuild/android-x64@0.18.20:
@@ -375,6 +380,7 @@ packages:
cpu: [x64]
os: [android]
requiresBuild: true
+ dev: true
optional: true
/@esbuild/darwin-arm64@0.18.20:
@@ -392,6 +398,7 @@ packages:
cpu: [arm64]
os: [darwin]
requiresBuild: true
+ dev: true
optional: true
/@esbuild/darwin-x64@0.18.20:
@@ -409,6 +416,7 @@ packages:
cpu: [x64]
os: [darwin]
requiresBuild: true
+ dev: true
optional: true
/@esbuild/freebsd-arm64@0.18.20:
@@ -426,6 +434,7 @@ packages:
cpu: [arm64]
os: [freebsd]
requiresBuild: true
+ dev: true
optional: true
/@esbuild/freebsd-x64@0.18.20:
@@ -443,6 +452,7 @@ packages:
cpu: [x64]
os: [freebsd]
requiresBuild: true
+ dev: true
optional: true
/@esbuild/linux-arm64@0.18.20:
@@ -460,6 +470,7 @@ packages:
cpu: [arm64]
os: [linux]
requiresBuild: true
+ dev: true
optional: true
/@esbuild/linux-arm@0.18.20:
@@ -477,6 +488,7 @@ packages:
cpu: [arm]
os: [linux]
requiresBuild: true
+ dev: true
optional: true
/@esbuild/linux-ia32@0.18.20:
@@ -494,6 +506,7 @@ packages:
cpu: [ia32]
os: [linux]
requiresBuild: true
+ dev: true
optional: true
/@esbuild/linux-loong64@0.18.20:
@@ -511,6 +524,7 @@ packages:
cpu: [loong64]
os: [linux]
requiresBuild: true
+ dev: true
optional: true
/@esbuild/linux-mips64el@0.18.20:
@@ -528,6 +542,7 @@ packages:
cpu: [mips64el]
os: [linux]
requiresBuild: true
+ dev: true
optional: true
/@esbuild/linux-ppc64@0.18.20:
@@ -545,6 +560,7 @@ packages:
cpu: [ppc64]
os: [linux]
requiresBuild: true
+ dev: true
optional: true
/@esbuild/linux-riscv64@0.18.20:
@@ -562,6 +578,7 @@ packages:
cpu: [riscv64]
os: [linux]
requiresBuild: true
+ dev: true
optional: true
/@esbuild/linux-s390x@0.18.20:
@@ -579,6 +596,7 @@ packages:
cpu: [s390x]
os: [linux]
requiresBuild: true
+ dev: true
optional: true
/@esbuild/linux-x64@0.18.20:
@@ -596,6 +614,7 @@ packages:
cpu: [x64]
os: [linux]
requiresBuild: true
+ dev: true
optional: true
/@esbuild/netbsd-x64@0.18.20:
@@ -613,6 +632,7 @@ packages:
cpu: [x64]
os: [netbsd]
requiresBuild: true
+ dev: true
optional: true
/@esbuild/openbsd-x64@0.18.20:
@@ -630,6 +650,7 @@ packages:
cpu: [x64]
os: [openbsd]
requiresBuild: true
+ dev: true
optional: true
/@esbuild/sunos-x64@0.18.20:
@@ -647,6 +668,7 @@ packages:
cpu: [x64]
os: [sunos]
requiresBuild: true
+ dev: true
optional: true
/@esbuild/win32-arm64@0.18.20:
@@ -664,6 +686,7 @@ packages:
cpu: [arm64]
os: [win32]
requiresBuild: true
+ dev: true
optional: true
/@esbuild/win32-ia32@0.18.20:
@@ -681,6 +704,7 @@ packages:
cpu: [ia32]
os: [win32]
requiresBuild: true
+ dev: true
optional: true
/@esbuild/win32-x64@0.18.20:
@@ -698,6 +722,7 @@ packages:
cpu: [x64]
os: [win32]
requiresBuild: true
+ dev: true
optional: true
/@jridgewell/gen-mapping@0.3.3:
@@ -707,17 +732,17 @@ packages:
'@jridgewell/set-array': 1.1.2
'@jridgewell/sourcemap-codec': 1.4.15
'@jridgewell/trace-mapping': 0.3.20
- dev: false
+ dev: true
/@jridgewell/resolve-uri@3.1.1:
resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==}
engines: {node: '>=6.0.0'}
- dev: false
+ dev: true
/@jridgewell/set-array@1.1.2:
resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
engines: {node: '>=6.0.0'}
- dev: false
+ dev: true
/@jridgewell/sourcemap-codec@1.4.15:
resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
@@ -727,11 +752,11 @@ packages:
dependencies:
'@jridgewell/resolve-uri': 3.1.1
'@jridgewell/sourcemap-codec': 1.4.15
- dev: false
+ dev: true
/@polka/url@1.0.0-next.23:
resolution: {integrity: sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==}
- dev: false
+ dev: true
/@rollup/pluginutils@5.1.0:
resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==}
@@ -745,12 +770,14 @@ packages:
'@types/estree': 1.0.5
estree-walker: 2.0.2
picomatch: 2.3.1
+ dev: true
/@rollup/rollup-android-arm-eabi@4.6.1:
resolution: {integrity: sha512-0WQ0ouLejaUCRsL93GD4uft3rOmB8qoQMU05Kb8CmMtMBe7XUDLAltxVZI1q6byNqEtU7N1ZX1Vw5lIpgulLQA==}
cpu: [arm]
os: [android]
requiresBuild: true
+ dev: true
optional: true
/@rollup/rollup-android-arm64@4.6.1:
@@ -758,6 +785,7 @@ packages:
cpu: [arm64]
os: [android]
requiresBuild: true
+ dev: true
optional: true
/@rollup/rollup-darwin-arm64@4.6.1:
@@ -765,6 +793,7 @@ packages:
cpu: [arm64]
os: [darwin]
requiresBuild: true
+ dev: true
optional: true
/@rollup/rollup-darwin-x64@4.6.1:
@@ -772,6 +801,7 @@ packages:
cpu: [x64]
os: [darwin]
requiresBuild: true
+ dev: true
optional: true
/@rollup/rollup-linux-arm-gnueabihf@4.6.1:
@@ -779,6 +809,7 @@ packages:
cpu: [arm]
os: [linux]
requiresBuild: true
+ dev: true
optional: true
/@rollup/rollup-linux-arm64-gnu@4.6.1:
@@ -786,6 +817,7 @@ packages:
cpu: [arm64]
os: [linux]
requiresBuild: true
+ dev: true
optional: true
/@rollup/rollup-linux-arm64-musl@4.6.1:
@@ -793,6 +825,7 @@ packages:
cpu: [arm64]
os: [linux]
requiresBuild: true
+ dev: true
optional: true
/@rollup/rollup-linux-x64-gnu@4.6.1:
@@ -800,6 +833,7 @@ packages:
cpu: [x64]
os: [linux]
requiresBuild: true
+ dev: true
optional: true
/@rollup/rollup-linux-x64-musl@4.6.1:
@@ -807,6 +841,7 @@ packages:
cpu: [x64]
os: [linux]
requiresBuild: true
+ dev: true
optional: true
/@rollup/rollup-win32-arm64-msvc@4.6.1:
@@ -814,6 +849,7 @@ packages:
cpu: [arm64]
os: [win32]
requiresBuild: true
+ dev: true
optional: true
/@rollup/rollup-win32-ia32-msvc@4.6.1:
@@ -821,6 +857,7 @@ packages:
cpu: [ia32]
os: [win32]
requiresBuild: true
+ dev: true
optional: true
/@rollup/rollup-win32-x64-msvc@4.6.1:
@@ -828,10 +865,12 @@ packages:
cpu: [x64]
os: [win32]
requiresBuild: true
+ dev: true
optional: true
/@types/estree@1.0.5:
resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
+ dev: true
/@vitejs/plugin-vue-jsx@3.1.0(vite@5.0.4)(vue@3.3.9):
resolution: {integrity: sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==}
@@ -847,7 +886,7 @@ packages:
vue: 3.3.9
transitivePeerDependencies:
- supports-color
- dev: false
+ dev: true
/@vitejs/plugin-vue@4.5.0(vite@5.0.4)(vue@3.3.9):
resolution: {integrity: sha512-a2WSpP8X8HTEww/U00bU4mX1QpLINNuz/2KMNpLsdu3BzOpak3AGI1CJYBTXcc4SPhaD0eNRUp7IyQK405L5dQ==}
@@ -858,7 +897,7 @@ packages:
dependencies:
vite: 5.0.4
vue: 3.3.9
- dev: false
+ dev: true
/@volar/language-core@1.10.10:
resolution: {integrity: sha512-nsV1o3AZ5n5jaEAObrS3MWLBWaGwUj/vAsc15FVNIv+DbpizQRISg9wzygsHBr56ELRH8r4K75vkYNMtsSNNWw==}
@@ -882,7 +921,7 @@ packages:
transitivePeerDependencies:
- rollup
- vue
- dev: false
+ dev: true
/@vue-macros/better-define@1.7.0(vue@3.3.9):
resolution: {integrity: sha512-MO+wAWFU8FF8YPMCmonv18FRJko7OZLy2wT7ia0RKwDCgu7IEKnSbLIfnUNwUsceVAPGOrVapDiIcQ+VVMJoiw==}
@@ -894,7 +933,7 @@ packages:
transitivePeerDependencies:
- rollup
- vue
- dev: false
+ dev: true
/@vue-macros/boolean-prop@0.3.0(vue@3.3.9):
resolution: {integrity: sha512-QhG3FgusmtQ0dIvrs8SsgBUg0micfYdXmNJo1YPh+VykHwPcmw4kuTBSJsbzMM09I+62vgKi6FTYt3nZ74DBIA==}
@@ -905,7 +944,7 @@ packages:
transitivePeerDependencies:
- rollup
- vue
- dev: false
+ dev: true
/@vue-macros/chain-call@0.2.0(vue@3.3.9):
resolution: {integrity: sha512-0fC6mxYSJfU3hHrRwgLho9rZSgkIAZo0OKIWW7ZyrAlyNhZtq+8c7sq59samPFdZpYcwTfOBUcK5YuC3pjT9VQ==}
@@ -916,7 +955,7 @@ packages:
transitivePeerDependencies:
- rollup
- vue
- dev: false
+ dev: true
/@vue-macros/common@1.9.0(vue@3.3.9):
resolution: {integrity: sha512-LbfRHDkceuokkLlVuQW9Wq3ZLmRs6KIDPzCjUvvL14HB4GslWdtvBB1suFfNs6VMvh9Zj30cEKF/EAP7QBCZ6Q==}
@@ -936,6 +975,7 @@ packages:
vue: 3.3.9
transitivePeerDependencies:
- rollup
+ dev: true
/@vue-macros/define-emit@0.2.0(vue@3.3.9):
resolution: {integrity: sha512-h0BuYXD+3FcCjlWeCNp06n4wZfExrnl8rBs6KUTjGXwVglxjI6RHJT2kfK+p3TJpPCwvNct+iBS6CYA1w5eTfQ==}
@@ -949,7 +989,7 @@ packages:
vue: 3.3.9
transitivePeerDependencies:
- rollup
- dev: false
+ dev: true
/@vue-macros/define-models@1.2.0(vue@3.3.9):
resolution: {integrity: sha512-h4drdveUgNYxy+6tylFg/oGIStT7dZ4uo4CMXl5VkLzso78Yhsxqdz00ccm6gaAB9jdDCry2RGqL5ACEyDmLZA==}
@@ -966,7 +1006,7 @@ packages:
transitivePeerDependencies:
- rollup
- vue
- dev: false
+ dev: true
/@vue-macros/define-prop@0.3.0(vue@3.3.9):
resolution: {integrity: sha512-aiu+tJp8eIT2wigzbP5lH0KoZhyTqiw2rysEVEK193logk6T8Fls5Yxf8YmOetrzpwOp6M4RciACGyiILLrsug==}
@@ -980,7 +1020,7 @@ packages:
vue: 3.3.9
transitivePeerDependencies:
- rollup
- dev: false
+ dev: true
/@vue-macros/define-props-refs@1.2.0(vue@3.3.9):
resolution: {integrity: sha512-ZWA9raSedk+eRfailc9gkyA4PHJrMGDg/tzV/yp89dDNVTzp9M1qQdLTV9S6R0ern/48ZvSYcz4n8ZVNwHg+Aw==}
@@ -993,7 +1033,7 @@ packages:
vue: 3.3.9
transitivePeerDependencies:
- rollup
- dev: false
+ dev: true
/@vue-macros/define-props@2.0.0(@vue-macros/reactivity-transform@0.4.0)(vue@3.3.9):
resolution: {integrity: sha512-OYdw4Bz12FDUHbHL5Ql5T5rO0V0laITbEyKGTvYwpeBim4oyTx+EodIx+edvgquLHtMYPabwRKJ6v9XoTlxc0g==}
@@ -1008,6 +1048,7 @@ packages:
vue: 3.3.9
transitivePeerDependencies:
- rollup
+ dev: true
/@vue-macros/define-render@1.5.0(vue@3.3.9):
resolution: {integrity: sha512-QgScJaWRkZ6iYwm8k0uVlhPCfdGJYkMbkLr8Pr/pTRrjmXl3W+f7ZRbBDPKl4GBxVdJ+pHWjP0NsYuPb1dUXtw==}
@@ -1020,7 +1061,7 @@ packages:
vue: 3.3.9
transitivePeerDependencies:
- rollup
- dev: false
+ dev: true
/@vue-macros/define-slots@1.1.0(vue@3.3.9):
resolution: {integrity: sha512-vkIxGrFhqdd8fvEuIGaIVw3ex0TB8MZFzGH5digCPOxBsBEeNNlTlwS3D63Qd5mCDpVsZy9xkuv159T9GS1DIg==}
@@ -1033,7 +1074,7 @@ packages:
vue: 3.3.9
transitivePeerDependencies:
- rollup
- dev: false
+ dev: true
/@vue-macros/devtools@0.2.0(vite@5.0.4):
resolution: {integrity: sha512-jHjvY1bFgQLe/2+5pBOG4fgmL5MPhsqQDj7Barhj8YN+Oe7U2hBImvfAyOGpqd2uucLOWQTP1cWrp3q9b1svsg==}
@@ -1049,7 +1090,7 @@ packages:
vue: 3.3.9
transitivePeerDependencies:
- typescript
- dev: false
+ dev: true
/@vue-macros/export-expose@0.1.0(vue@3.3.9):
resolution: {integrity: sha512-R1izR6LHS6yjJKI7IPDCwW385ct4KjQJVXz6jk6sL6Wk+iZbybDiGzzzK/jqpMlyzDvX0qVZ8vjACm1lidvLzA==}
@@ -1063,7 +1104,7 @@ packages:
vue: 3.3.9
transitivePeerDependencies:
- rollup
- dev: false
+ dev: true
/@vue-macros/export-props@0.4.0(vue@3.3.9):
resolution: {integrity: sha512-XjDmw+OCxWOR4OPARH5aosvrarCk/TF7szE3ynx4UXfhCWS7lPJpLHwYkF/pfbx6FAFDUO81Drrey2BlhzTLvA==}
@@ -1076,7 +1117,7 @@ packages:
vue: 3.3.9
transitivePeerDependencies:
- rollup
- dev: false
+ dev: true
/@vue-macros/export-render@0.2.0(vue@3.3.9):
resolution: {integrity: sha512-kmh6drhExv3r42DPGHo1UOtEX2pw2G5CTHvHg0FQiQAMltWd11C0/LXYRR/Zorh9EoMVMAObRnw5HrcdIoQEPA==}
@@ -1090,7 +1131,7 @@ packages:
vue: 3.3.9
transitivePeerDependencies:
- rollup
- dev: false
+ dev: true
/@vue-macros/hoist-static@1.5.0(vue@3.3.9):
resolution: {integrity: sha512-ZhPOrnBftGmot+tLrf2db3C2LFP6hvHTOlO2tvD4r9FdhGS+ZNwKYvAiYYxH8Yevs6ZdgffAz+Gpz02QHggKuw==}
@@ -1101,7 +1142,7 @@ packages:
transitivePeerDependencies:
- rollup
- vue
- dev: false
+ dev: true
/@vue-macros/jsx-directive@0.7.0(vue@3.3.9):
resolution: {integrity: sha512-OSS7ZnwQueUkEYcjoe4VAeJLp+kkFa0l5mm4fkPQs9zK1uq4D+kCw+Hhg9OyrKNdiWpNutdUHgolJPNsqXUp7A==}
@@ -1112,7 +1153,7 @@ packages:
transitivePeerDependencies:
- rollup
- vue
- dev: false
+ dev: true
/@vue-macros/named-template@0.4.0(vue@3.3.9):
resolution: {integrity: sha512-dItF6N/WMWH0INQ5XqZ2SsFo5pZ+Q0muOWfTpi52GaeD96+N02yYUdT+wsZOdNu0VvLh/QuHxmDRCiiROmpL0Q==}
@@ -1124,7 +1165,7 @@ packages:
transitivePeerDependencies:
- rollup
- vue
- dev: false
+ dev: true
/@vue-macros/reactivity-transform@0.4.0(vue@3.3.9):
resolution: {integrity: sha512-3DG+FWkIZe5xZJhIdxyieIYcDKJGC3aUab1JWtEOkS8Q21rLpu6VKUjV6TmB5LNyLSGVp+7de/87Ptd6C6RHOA==}
@@ -1141,6 +1182,7 @@ packages:
vue: 3.3.9
transitivePeerDependencies:
- rollup
+ dev: true
/@vue-macros/setup-block@0.3.0(vue@3.3.9):
resolution: {integrity: sha512-URaruhrjrMnSAWt+elPblfqOUhL1y7uZKFzrfgPlr/uuyQGDsmxK/ZEw5gMY77rrJwcEqNfHDkNR8BV27gp/3w==}
@@ -1152,7 +1194,7 @@ packages:
transitivePeerDependencies:
- rollup
- vue
- dev: false
+ dev: true
/@vue-macros/setup-component@0.17.0(vue@3.3.9):
resolution: {integrity: sha512-s/jwPQ+lGp3O0kgCFtPkH2+kvLtCLJ04iP+gTQwRXpgXDuQ6UlRdBday5wuhV32cq8C2oLHmKwSvYX/8N7WkRg==}
@@ -1163,7 +1205,7 @@ packages:
transitivePeerDependencies:
- rollup
- vue
- dev: false
+ dev: true
/@vue-macros/setup-sfc@0.17.0(vue@3.3.9):
resolution: {integrity: sha512-4cCoEl+tzEuJtHg4q6MlTLyM1M/xf+CC+d12QaCGbUgALfUAIa85sB8XnnPgxxu2A6MpD+4uE+6BrJHBOXIiVw==}
@@ -1174,7 +1216,7 @@ packages:
transitivePeerDependencies:
- rollup
- vue
- dev: false
+ dev: true
/@vue-macros/short-bind@0.2.0(vue@3.3.9):
resolution: {integrity: sha512-1cHCWaysLvrX4Oms+yAEhYjdxP0lfblC6JSlHZ0wzKVnsJ6DAWVaopp1H2kt3uJmWPr8C5iOYO7HRmRxd4JkrQ==}
@@ -1185,6 +1227,7 @@ packages:
transitivePeerDependencies:
- rollup
- vue
+ dev: true
/@vue-macros/short-emits@1.5.0(vue@3.3.9):
resolution: {integrity: sha512-R3ycVQwlnq9XXTSIOJDjdZ3Gbp6EcRwabLUrJcWUEEzqNZds8lP4br7jwPnA0KDCvXdEbjCQqqpzmosLPQuung==}
@@ -1195,7 +1238,7 @@ packages:
transitivePeerDependencies:
- rollup
- vue
- dev: false
+ dev: true
/@vue-macros/short-vmodel@1.4.0(vue@3.3.9):
resolution: {integrity: sha512-0rlL+GfDbbA4FGk90a5uPIkZmYSW4Asmh/r0KHZsqhKmyKxJf9eow7/CYGjvsnDKr+hk+pnq/CUSLkUnn+ey2g==}
@@ -1206,6 +1249,7 @@ packages:
transitivePeerDependencies:
- rollup
- vue
+ dev: true
/@vue-macros/volar@0.17.4(@vue-macros/reactivity-transform@0.4.0)(vue@3.3.9):
resolution: {integrity: sha512-bPOp9KPAlm1nxIYPVAKoiKS5ERQMgSROAs6fQdlYv9sE4ZgxKpha3S0ZBCFniXkRwOwGaEfMqGkflo0V1buEfw==}
@@ -1231,7 +1275,11 @@ packages:
/@vue/babel-helper-vue-transform-on@1.1.5:
resolution: {integrity: sha512-SgUymFpMoAyWeYWLAY+MkCK3QEROsiUnfaw5zxOVD/M64KQs8D/4oK6Q5omVA2hnvEOE0SCkH2TZxs/jnnUj7w==}
- dev: false
+ dev: true
+
+ /@vue/babel-helper-vue-transform-on@1.2.0-alpha.0:
+ resolution: {integrity: sha512-8oelfDzzYre1XGykAGOYc8sSIL8ToDkWMG5awjN+tain/1XSu4KMyBYYESnEMqhyyo8pfMbgBXcQW5nRDrm61A==}
+ dev: true
/@vue/babel-plugin-jsx@1.1.5(@babel/core@7.23.5):
resolution: {integrity: sha512-nKs1/Bg9U1n3qSWnsHhCVQtAzI6aQXqua8j/bZrau8ywT1ilXQbK4FwEJGmU8fV7tcpuFvWmmN7TMmV1OBma1g==}
@@ -1250,7 +1298,7 @@ packages:
svg-tags: 1.0.0
transitivePeerDependencies:
- supports-color
- dev: false
+ dev: true
/@vue/compiler-core@3.3.9:
resolution: {integrity: sha512-+/Lf68Vr/nFBA6ol4xOtJrW+BQWv3QWKfRwGSm70jtXwfhZNF4R/eRgyVJYoxFRhdCTk/F6g99BP0ffPgZihfQ==}
@@ -1347,13 +1395,14 @@ packages:
resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==}
engines: {node: '>=0.4.0'}
hasBin: true
+ dev: true
/ansi-styles@3.2.1:
resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
engines: {node: '>=4'}
dependencies:
color-convert: 1.9.3
- dev: false
+ dev: true
/anymatch@3.1.3:
resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
@@ -1361,6 +1410,7 @@ packages:
dependencies:
normalize-path: 3.0.0
picomatch: 2.3.1
+ dev: true
/ast-kit@0.11.2:
resolution: {integrity: sha512-Q0DjXK4ApbVoIf9GLyCo252tUH44iTnD/hiJ2TQaJeydYWSpKk0sI34+WMel8S9Wt5pbLgG02oJ+gkgX5DV3sQ==}
@@ -1371,6 +1421,7 @@ packages:
pathe: 1.1.1
transitivePeerDependencies:
- rollup
+ dev: true
/ast-kit@0.9.5:
resolution: {integrity: sha512-kbL7ERlqjXubdDd+szuwdlQ1xUxEz9mCz1+m07ftNVStgwRb2RWw+U6oKo08PAvOishMxiqz1mlJyLl8yQx2Qg==}
@@ -1381,7 +1432,7 @@ packages:
pathe: 1.1.1
transitivePeerDependencies:
- rollup
- dev: false
+ dev: true
/ast-walker-scope@0.5.0:
resolution: {integrity: sha512-NsyHMxBh4dmdEHjBo1/TBZvCKxffmZxRYhmclfu0PP6Aftre47jOHYaYaNqJcV0bxihxFXhDkzLHUwHc0ocd0Q==}
@@ -1391,7 +1442,7 @@ packages:
ast-kit: 0.9.5
transitivePeerDependencies:
- rollup
- dev: false
+ dev: true
/balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
@@ -1400,6 +1451,7 @@ packages:
/binary-extensions@2.2.0:
resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
engines: {node: '>=8'}
+ dev: true
/brace-expansion@2.0.1:
resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
@@ -1412,6 +1464,7 @@ packages:
engines: {node: '>=8'}
dependencies:
fill-range: 7.0.1
+ dev: true
/browserslist@4.22.1:
resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==}
@@ -1422,16 +1475,16 @@ packages:
electron-to-chromium: 1.4.600
node-releases: 2.0.14
update-browserslist-db: 1.0.13(browserslist@4.22.1)
- dev: false
+ dev: true
/camelcase@6.3.0:
resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
engines: {node: '>=10'}
- dev: false
+ dev: true
/caniuse-lite@1.0.30001565:
resolution: {integrity: sha512-xrE//a3O7TP0vaJ8ikzkD2c2NgcVUvsEe2IvFTntV4Yd1Z9FVzh+gW+enX96L0psrbaFMcVcH2l90xNuGDWc8w==}
- dev: false
+ dev: true
/chalk@2.4.2:
resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
@@ -1440,7 +1493,7 @@ packages:
ansi-styles: 3.2.1
escape-string-regexp: 1.0.5
supports-color: 5.5.0
- dev: false
+ dev: true
/chokidar@3.5.3:
resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
@@ -1455,16 +1508,17 @@ packages:
readdirp: 3.6.0
optionalDependencies:
fsevents: 2.3.3
+ dev: true
/color-convert@1.9.3:
resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
dependencies:
color-name: 1.1.3
- dev: false
+ dev: true
/color-name@1.1.3:
resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
- dev: false
+ dev: true
/computeds@0.0.1:
resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==}
@@ -1472,7 +1526,7 @@ packages:
/convert-source-map@2.0.0:
resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
- dev: false
+ dev: true
/csstype@3.1.2:
resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==}
@@ -1491,11 +1545,11 @@ packages:
optional: true
dependencies:
ms: 2.1.2
- dev: false
+ dev: true
/electron-to-chromium@1.4.600:
resolution: {integrity: sha512-KD6CWjf1BnQG+NsXuyiTDDT1eV13sKuYsOUioXkQweYTQIbgHkXPry9K7M+7cKtYHnSUPitVaLrXYB1jTkkYrw==}
- dev: false
+ dev: true
/esbuild@0.18.20:
resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==}
@@ -1555,16 +1609,17 @@ packages:
'@esbuild/win32-arm64': 0.19.8
'@esbuild/win32-ia32': 0.19.8
'@esbuild/win32-x64': 0.19.8
+ dev: true
/escalade@3.1.1:
resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
engines: {node: '>=6'}
- dev: false
+ dev: true
/escape-string-regexp@1.0.5:
resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
engines: {node: '>=0.8.0'}
- dev: false
+ dev: true
/estree-walker@2.0.2:
resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
@@ -1574,18 +1629,20 @@ packages:
engines: {node: '>=8'}
dependencies:
to-regex-range: 5.0.1
+ dev: true
/fsevents@2.3.3:
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
os: [darwin]
requiresBuild: true
+ dev: true
optional: true
/gensync@1.0.0-beta.2:
resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
engines: {node: '>=6.9.0'}
- dev: false
+ dev: true
/get-tsconfig@4.7.2:
resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==}
@@ -1598,16 +1655,17 @@ packages:
engines: {node: '>= 6'}
dependencies:
is-glob: 4.0.3
+ dev: true
/globals@11.12.0:
resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
engines: {node: '>=4'}
- dev: false
+ dev: true
/has-flag@3.0.0:
resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
engines: {node: '>=4'}
- dev: false
+ dev: true
/he@1.2.0:
resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
@@ -1617,46 +1675,51 @@ packages:
/html-tags@3.3.1:
resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==}
engines: {node: '>=8'}
- dev: false
+ dev: true
/is-binary-path@2.1.0:
resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
engines: {node: '>=8'}
dependencies:
binary-extensions: 2.2.0
+ dev: true
/is-extglob@2.1.1:
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
engines: {node: '>=0.10.0'}
+ dev: true
/is-glob@4.0.3:
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
engines: {node: '>=0.10.0'}
dependencies:
is-extglob: 2.1.1
+ dev: true
/is-number@7.0.0:
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
engines: {node: '>=0.12.0'}
+ dev: true
/js-tokens@4.0.0:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
- dev: false
+ dev: true
/jsesc@2.5.2:
resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
engines: {node: '>=4'}
hasBin: true
- dev: false
+ dev: true
/json5@2.2.3:
resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
engines: {node: '>=6'}
hasBin: true
- dev: false
+ dev: true
/jsonc-parser@3.2.0:
resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==}
+ dev: true
/local-pkg@0.5.0:
resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==}
@@ -1664,18 +1727,20 @@ packages:
dependencies:
mlly: 1.4.2
pkg-types: 1.0.3
+ dev: true
/lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
dependencies:
yallist: 3.1.1
- dev: false
+ dev: true
/magic-string-ast@0.3.0:
resolution: {integrity: sha512-0shqecEPgdFpnI3AP90epXyxZy9g6CRZ+SZ7BcqFwYmtFEnZ1jpevcV5HoyVnlDS9gCnc1UIg3Rsvp3Ci7r8OA==}
engines: {node: '>=16.14.0'}
dependencies:
magic-string: 0.30.5
+ dev: true
/magic-string@0.30.5:
resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==}
@@ -1697,15 +1762,16 @@ packages:
pathe: 1.1.1
pkg-types: 1.0.3
ufo: 1.3.2
+ dev: true
/mrmime@1.0.1:
resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==}
engines: {node: '>=10'}
- dev: false
+ dev: true
/ms@2.1.2:
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
- dev: false
+ dev: true
/muggle-string@0.3.1:
resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==}
@@ -1718,14 +1784,16 @@ packages:
/node-releases@2.0.14:
resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
- dev: false
+ dev: true
/normalize-path@3.0.0:
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
engines: {node: '>=0.10.0'}
+ dev: true
/pathe@1.1.1:
resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==}
+ dev: true
/picocolors@1.0.0:
resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
@@ -1733,6 +1801,7 @@ packages:
/picomatch@2.3.1:
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
engines: {node: '>=8.6'}
+ dev: true
/pkg-types@1.0.3:
resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==}
@@ -1740,6 +1809,7 @@ packages:
jsonc-parser: 3.2.0
mlly: 1.4.2
pathe: 1.1.1
+ dev: true
/postcss@8.4.31:
resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
@@ -1754,6 +1824,7 @@ packages:
engines: {node: '>=8.10.0'}
dependencies:
picomatch: 2.3.1
+ dev: true
/resolve-pkg-maps@1.0.0:
resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
@@ -1762,7 +1833,7 @@ packages:
/resolve.exports@2.0.2:
resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==}
engines: {node: '>=10'}
- dev: false
+ dev: true
/rollup@4.6.1:
resolution: {integrity: sha512-jZHaZotEHQaHLgKr8JnQiDT1rmatjgKlMekyksz+yk9jt/8z9quNjnKNRoaM0wd9DC2QKXjmWWuDYtM3jfF8pQ==}
@@ -1782,11 +1853,12 @@ packages:
'@rollup/rollup-win32-ia32-msvc': 4.6.1
'@rollup/rollup-win32-x64-msvc': 4.6.1
fsevents: 2.3.3
+ dev: true
/semver@6.3.1:
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
hasBin: true
- dev: false
+ dev: true
/sirv@2.0.3:
resolution: {integrity: sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==}
@@ -1795,7 +1867,7 @@ packages:
'@polka/url': 1.0.0-next.23
mrmime: 1.0.1
totalist: 3.0.1
- dev: false
+ dev: true
/source-map-js@1.0.2:
resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
@@ -1806,11 +1878,11 @@ packages:
engines: {node: '>=4'}
dependencies:
has-flag: 3.0.0
- dev: false
+ dev: true
/svg-tags@1.0.0:
resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==}
- dev: false
+ dev: true
/to-fast-properties@2.0.0:
resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
@@ -1821,11 +1893,12 @@ packages:
engines: {node: '>=8.0'}
dependencies:
is-number: 7.0.0
+ dev: true
/totalist@3.0.1:
resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
engines: {node: '>=6'}
- dev: false
+ dev: true
/tsx@4.6.1:
resolution: {integrity: sha512-OQ4TAPHXAPUo/NZAmmIybl0o8LFOTlycQxFepLBAp6EV87U88fOKYGCQI2viGAEOVU9UW/cgQcxcOMnfEKVY3Q==}
@@ -1840,6 +1913,7 @@ packages:
/ufo@1.3.2:
resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==}
+ dev: true
/unplugin-combine@0.8.1(vite@5.0.4):
resolution: {integrity: sha512-m2OSmXXRwCPZx8Ct8eF8WbjgTo8bydim2W1ofu2hDabGdr2pgDAoFjOP1J4MOIwa0OByqk1JX8IGlSdeE6uxVQ==}
@@ -1862,7 +1936,7 @@ packages:
'@antfu/utils': 0.7.6
unplugin: 1.5.1
vite: 5.0.4
- dev: false
+ dev: true
/unplugin-vue-define-options@1.4.0(vue@3.3.9):
resolution: {integrity: sha512-P8TPXzZ1eqwkLZrGm+tHc7fR7/md6bEfSuJdxZi6Pp4PcqRctDzmZiXpQVIjBULpv+LhOCVRehIrsOTvABVUww==}
@@ -1874,7 +1948,7 @@ packages:
transitivePeerDependencies:
- rollup
- vue
- dev: false
+ dev: true
/unplugin-vue-macros@2.7.0(vite@5.0.4)(vue@3.3.9):
resolution: {integrity: sha512-SztF4ARBbrd1yuH4FbJOhp22rTvzakjzJUHTKLRQkZY1KMkIzx/KAdzEkxjAG2Xteqb29SYrc7XcoPdrUPMCCw==}
@@ -1918,7 +1992,7 @@ packages:
- typescript
- vite
- webpack
- dev: false
+ dev: true
/unplugin@1.5.1:
resolution: {integrity: sha512-0QkvG13z6RD+1L1FoibQqnvTwVBXvS4XSPwAyinVgoOCl2jAgwzdUKmEj05o4Lt8xwQI85Hb6mSyYkcAGwZPew==}
@@ -1927,6 +2001,7 @@ packages:
chokidar: 3.5.3
webpack-sources: 3.2.3
webpack-virtual-modules: 0.6.1
+ dev: true
/update-browserslist-db@1.0.13(browserslist@4.22.1):
resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
@@ -1937,7 +2012,7 @@ packages:
browserslist: 4.22.1
escalade: 3.1.1
picocolors: 1.0.0
- dev: false
+ dev: true
/vite@5.0.4:
resolution: {integrity: sha512-RzAr8LSvM8lmhB4tQ5OPcBhpjOZRZjuxv9zO5UcxeoY2bd3kP3Ticd40Qma9/BqZ8JS96Ll/jeBX9u+LJZrhVg==}
@@ -1972,6 +2047,7 @@ packages:
rollup: 4.6.1
optionalDependencies:
fsevents: 2.3.3
+ dev: true
/vue-template-compiler@2.7.15:
resolution: {integrity: sha512-yQxjxMptBL7UAog00O8sANud99C6wJF+7kgbcwqkvA38vCGF7HWE66w0ZFnS/kX5gSoJr/PQ4/oS3Ne2pW37Og==}
@@ -1997,10 +2073,12 @@ packages:
/webpack-sources@3.2.3:
resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
engines: {node: '>=10.13.0'}
+ dev: true
/webpack-virtual-modules@0.6.1:
resolution: {integrity: sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==}
+ dev: true
/yallist@3.1.1:
resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
- dev: false
+ dev: true
diff --git a/playground/src/components/Comp.vue b/playground/src/components/Comp.vue
index a1183d5..8a219fe 100644
--- a/playground/src/components/Comp.vue
+++ b/playground/src/components/Comp.vue
@@ -5,6 +5,7 @@
bottom
+
Fragment
diff --git a/src/rules/jsx-directive/v-tag.yml b/src/rules/jsx-directive/v-tag.yml
index f312440..884b96f 100644
--- a/src/rules/jsx-directive/v-tag.yml
+++ b/src/rules/jsx-directive/v-tag.yml
@@ -1,3 +1,22 @@
+id: v-self-closing-tag
+language: html
+rule:
+ kind: start_tag
+ pattern: $A
+ not:
+ precedes:
+ stopBy: end
+ kind: end_tag
+transform:
+ B:
+ replace:
+ replace: '>$'
+ by: />
+ source: $A
+fix: $B
+
+---
+
id: v-tag has lang
language: html
rule:
From b251b079686ae6d8cba386870f6545533c5c79d2 Mon Sep 17 00:00:00 2001
From: gaokefei <260480378@qq.com>
Date: Sun, 3 Dec 2023 01:41:28 +0800
Subject: [PATCH 3/4] fix(define-render): ignore comment in style block
---
playground/src/App.vue | 7 +++++++
src/rules/setup-sfc.yml | 25 ++++++++++++++++++++++++-
2 files changed, 31 insertions(+), 1 deletion(-)
diff --git a/playground/src/App.vue b/playground/src/App.vue
index e680d7f..8b97cc4 100644
--- a/playground/src/App.vue
+++ b/playground/src/App.vue
@@ -32,3 +32,10 @@ const compRef = shallowRef()
+
+
\ No newline at end of file
diff --git a/src/rules/setup-sfc.yml b/src/rules/setup-sfc.yml
index 62c86ef..fa5a25a 100644
--- a/src/rules/setup-sfc.yml
+++ b/src/rules/setup-sfc.yml
@@ -19,6 +19,24 @@ fix: |-
---
+id: setup-sfc start ignore comment in style
+language: html
+rule:
+ kind: raw_text
+ pattern: $A
+ inside:
+ kind: style_element
+transform:
+ B:
+ replace:
+ replace: \*/
+ by: '*\/'
+ source: $A
+fix: |-
+ $B
+
+---
+
id: setup-sfc end comment
language: html
rule:
@@ -44,7 +62,12 @@ transform:
startChar: 2
endChar: -2
source: $A
-fix: $B
+ C:
+ replace:
+ replace: \*\\/
+ by: '*/'
+ source: $B
+fix: $C
---
From 4d74c7031243e6f3406e0bc67f67050d33b909a2 Mon Sep 17 00:00:00 2001
From: gaokefei <260480378@qq.com>
Date: Sun, 3 Dec 2023 01:41:49 +0800
Subject: [PATCH 4/4] chore: release v1.0.9
---
package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package.json b/package.json
index fc48b7b..9b91a84 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "@vue-macros/cli",
"type": "module",
- "version": "1.0.8",
+ "version": "1.0.9",
"packageManager": "pnpm@8.10.5",
"description": "Rewriting at vue macros powered by ast-grep.",
"author": "zhiyuanzmj ",