Compare commits

...

4 Commits

Author SHA1 Message Date
chenjiahan
c36ec55d7b release: 4.2.0 2023-04-16 11:14:09 +08:00
neverland
d876b1f8be
chore(Watermark): rename default slot to content (#11755) 2023-04-16 11:13:02 +08:00
neverland
8bc6169ae1
chore(deps): bump consola v3 and rimraf v5 (#11751)
* chore(deps): bump consola v3 and rimraf v5

* chore: revert demo
2023-04-15 09:36:41 +08:00
Zhousg
17055a94c7
fix(Swipe): should resize after props.width/height changed (#11747)
* fix(Swipe): props changed but component didn't

* fix(Swipe): target watch windowWidth

* Update packages/vant/src/swipe/Swipe.tsx

---------

Co-authored-by: neverland <jait.chen@foxmail.com>
2023-04-15 09:28:02 +08:00
19 changed files with 149 additions and 90 deletions

View File

@ -33,11 +33,11 @@
"devDependencies": {
"@types/fs-extra": "^11.0.1",
"release-it": "^15.4.1",
"rimraf": "^4.0.4",
"rimraf": "^5.0.0",
"typescript": "^5.0.2"
},
"dependencies": {
"consola": "^2.11.3",
"consola": "^3.0.2",
"fast-glob": "^3.2.11",
"fs-extra": "^11.1.0",
"enquirer": "2.3.6",

View File

@ -1,7 +1,7 @@
import fs from 'fs-extra';
import glob from 'fast-glob';
import color from 'picocolors';
import consola from 'consola';
import { consola } from 'consola';
import { prompt } from 'enquirer';
import { sep, join } from 'node:path';
import { CWD, GENERATOR_DIR } from './constant';

View File

@ -1,6 +1,6 @@
#!/usr/bin/env node
import consola from 'consola';
import { consola } from 'consola';
import { prompt } from 'enquirer';
import { ensureDir } from 'fs-extra';
import { VanGenerator } from './generator';

View File

@ -39,7 +39,7 @@
"devDependencies": {
"esbuild": "^0.17.12",
"release-it": "^15.4.1",
"rimraf": "^4.0.4",
"rimraf": "^5.0.0",
"typescript": "^5.0.2"
},
"release-it": {

View File

@ -44,7 +44,7 @@
"@types/less": "^3.0.3",
"@types/lodash": "^4.14.191",
"@types/markdown-it": "^12.2.3",
"rimraf": "^4.0.4",
"rimraf": "^5.0.0",
"vue": "^3.2.47"
},
"dependencies": {
@ -58,7 +58,7 @@
"@vue/babel-plugin-jsx": "^1.1.1",
"autoprefixer": "^10.4.8",
"commander": "^10.0.0",
"consola": "^2.15.3",
"consola": "^3.0.2",
"conventional-changelog": "^3.1.25",
"esbuild": "^0.17.12",
"eslint": "^8.31.0",
@ -80,7 +80,7 @@
"nanospinner": "^1.1.0",
"picocolors": "^1.0.0",
"postcss": "^8.4.16",
"postcss-load-config": "^3.1.4",
"postcss-load-config": "^4.0.1",
"prettier": "^2.7.1",
"release-it": "^15.4.1",
"terser": "^5.16.1",

View File

@ -1,6 +1,6 @@
import { createSpinner } from 'nanospinner';
import color from 'picocolors';
import consola from 'consola';
import { consola } from 'consola';
import { ROOT } from '../common/constant.js';
export function slimPath(path: string) {

View File

@ -41,7 +41,7 @@
"vue": "^3.2.47",
"esbuild": "^0.17.12",
"release-it": "^15.1.1",
"rimraf": "^4.0.4",
"rimraf": "^5.0.0",
"typescript": "^5.0.2"
},
"release-it": {

View File

@ -40,7 +40,7 @@
"@popperjs/core": "^2.11.6",
"esbuild": "^0.17.12",
"release-it": "^15.4.1",
"rimraf": "^4.0.4",
"rimraf": "^5.0.0",
"typescript": "^5.0.2"
},
"release-it": {

View File

@ -39,7 +39,7 @@
"devDependencies": {
"esbuild": "^0.17.12",
"release-it": "^15.4.1",
"rimraf": "^4.0.4",
"rimraf": "^5.0.0",
"typescript": "^5.0.2",
"vue": "^3.2.47"
},

View File

@ -1,6 +1,6 @@
{
"name": "vant",
"version": "4.1.2",
"version": "4.2.0",
"description": "Mobile UI Components built on Vue",
"main": "lib/vant.cjs.js",
"module": "es/index.mjs",

View File

@ -457,7 +457,10 @@ export default defineComponent({
watch(count, () => initialize(state.active));
watch(() => props.autoplay, autoplay);
watch([windowWidth, windowHeight], resize);
watch(
[windowWidth, windowHeight, () => props.width, () => props.height],
resize
);
watch(usePageVisibility(), (visible) => {
if (visible === 'visible') {
autoplay();

View File

@ -76,13 +76,15 @@ Use the `full-page` prop to control the display range of the watermark.
### HTML Watermark
Use the `default` slot to pass HTML directly. Inline styles are supported, and self-closing tags are not supported.
Use the `content` slot to pass HTML as watermark. Only supports inline styles, and self-closing tags are not supported.
```html
<van-watermark :width="150">
<div style="background: linear-gradient(45deg, #000 0, #000 50%, #fff 50%)">
<p style="mix-blend-mode: difference; color: #fff">Vant watermark</p>
</div>
<template #content>
<div style="background: linear-gradient(45deg, #000 0, #000 50%, #fff 50%)">
<p style="mix-blend-mode: difference; color: #fff">Vant watermark</p>
</div>
</template>
</van-watermark>
```
@ -98,8 +100,8 @@ Use the `default` slot to pass HTML directly. Inline styles are supported, and s
| content | Text watermark content | _string_ | - |
| image | Image watermark content. If `content` and `image` are passed at the same time, use the `image` watermark first | _string_ | - |
| full-page | Whether to display the watermark in full screen | _boolean_ | `true` |
| gapX | Horizontal spacing between watermarks | _number_ | `0` |
| gapY | Vertical spacing between watermarks | _number_ | `0` |
| gap-x | Horizontal spacing between watermarks | _number_ | `0` |
| gap-y | Vertical spacing between watermarks | _number_ | `0` |
| text-color | Color of text watermark | _string_ | `#dcdee0` |
| opacity | Opacity of watermark | _number \| string_ | - |
@ -107,7 +109,7 @@ Use the `default` slot to pass HTML directly. Inline styles are supported, and s
| Attribute | Description |
| --- | --- |
| default | Content of HTML watermark. Inline styles are supported, and self-closing tags are not supported. This slot is invalid if `content` or `image` props is passed |
| content | Content of HTML watermark. Only supports inline styles, and self-closing tags are not supported. The priority is higher than `content` or `image` props |
### Types

View File

@ -76,13 +76,15 @@ app.use(Watermark);
### HTML 水印
通过默认插槽可以直接传入 HTMLHTML 样式仅支持行内样式同时不支持传入自闭合标签。
通过 `content` 插槽可以直接传入 HTML 作为水印。HTML 中的样式仅支持行内样式,同时不支持传入自闭合标签。
```html
<van-watermark :width="150">
<div style="background: linear-gradient(45deg, #000 0, #000 50%, #fff 50%)">
<p style="mix-blend-mode: difference; color: #fff">Vant watermark</p>
</div>
<template #content>
<div style="background: linear-gradient(45deg, #000 0, #000 50%, #fff 50%)">
<p style="mix-blend-mode: difference; color: #fff">Vant watermark</p>
</div>
</template>
</van-watermark>
```
@ -98,8 +100,8 @@ app.use(Watermark);
| content | 文字水印的内容 | _string_ | - |
| image | 图片水印的内容,如果与 `content` 同时传入,优先使用图片水印 | _string_ | - |
| full-page | 水印是否全屏显示 | _boolean_ | `false` |
| gapX | 水印之间的水平间隔 | _number_ | `0` |
| gapY | 水印之间的垂直间隔 | _number_ | `0` |
| gap-x | 水印之间的水平间隔 | _number_ | `0` |
| gap-y | 水印之间的垂直间隔 | _number_ | `0` |
| text-color | 文字水印的颜色 | _string_ | `#dcdee0` |
| opacity | 水印的透明度 | _number \| string_ | - |
@ -107,7 +109,7 @@ app.use(Watermark);
| 名称 | 说明 |
| --- | --- |
| default | HTML 水印的内容,仅支持行内样式同时不支持传入自闭合标签,存在 `content``image` 属性时,此插槽无效 |
| content | HTML 水印的内容,仅支持行内样式,同时不支持传入自闭合标签,优先级高于 `content``image` 属性 |
### 类型定义

View File

@ -47,8 +47,13 @@ export default defineComponent({
const watermarkUrl = ref('');
const imageBase64 = ref('');
const renderWatermark = () => {
const rotateStyle = {
transformOrigin: 'center',
transform: `rotate(${props.rotate}deg)`,
};
const svgInner = () => {
if (props.image) {
if (props.image && !slots.content) {
return (
<image
href={imageBase64.value}
@ -56,11 +61,8 @@ export default defineComponent({
y="0"
width={props.width}
height={props.height}
style={{
transformOrigin: 'center',
transform: `rotate(${props.rotate}deg)`,
}}
></image>
style={rotateStyle}
/>
);
}
@ -69,20 +71,12 @@ export default defineComponent({
<div
// @ts-ignore
xmlns="http://www.w3.org/1999/xhtml"
style={{
transform: `rotate(${props.rotate}deg)`,
}}
style={rotateStyle}
>
{props.content ? (
<span
style={{
color: props.textColor,
}}
>
{props.content}
</span>
{slots.content ? (
slots.content()
) : (
slots?.default?.()
<span style={{ color: props.textColor }}>{props.content}</span>
)}
</div>
</foreignObject>
@ -181,7 +175,7 @@ export default defineComponent({
return (
<div class={bem({ full: props.fullPage })} style={style}>
<div style={{ display: 'none' }} ref={svgElRef}>
<div class={bem('wrapper')} ref={svgElRef}>
{renderWatermark()}
</div>
</div>

View File

@ -88,11 +88,17 @@ const fullPage = ref(false);
<demo-block :title="t('htmlWatermark')">
<div class="demo-watermark-wrapper">
<van-watermark :width="150" :full-page="false">
<div
style="background: linear-gradient(45deg, #000 0, #000 50%, #fff 50%)"
>
<p style="mix-blend-mode: difference; color: #fff">Vant watermark</p>
</div>
<template #content>
<div
style="
background: linear-gradient(45deg, #000 0, #000 50%, #fff 50%);
"
>
<p style="mix-blend-mode: difference; color: #fff">
Vant watermark
</p>
</div>
</template>
</van-watermark>
</div>
</demo-block>

View File

@ -12,6 +12,10 @@
background-repeat: repeat;
pointer-events: none;
&__wrapper {
display: none;
}
&--full {
position: fixed;
}

View File

@ -4,7 +4,7 @@ exports[`watermark should render content 1`] = `
<div class="van-watermark van-watermark--full"
style="background-image: url();"
>
<div style="display: none;">
<div class="van-watermark__wrapper">
<svg viewbox="0 0 100 100"
width="100"
height="100"
@ -17,7 +17,7 @@ exports[`watermark should render content 1`] = `
height="100"
>
<div xmlns="http://www.w3.org/1999/xhtml"
style="transform: rotate(-22deg);"
style="transform-origin: center; transform: rotate(-22deg);"
>
<span style="color: red;">
Vant
@ -33,7 +33,7 @@ exports[`watermark should render html 1`] = `
<div class="van-watermark van-watermark--full"
style="background-image: url();"
>
<div style="display: none;">
<div class="van-watermark__wrapper">
<svg viewbox="0 0 100 100"
width="100"
height="100"
@ -46,7 +46,7 @@ exports[`watermark should render html 1`] = `
height="100"
>
<div xmlns="http://www.w3.org/1999/xhtml"
style="transform: rotate(-22deg);"
style="transform-origin: center; transform: rotate(-22deg);"
>
vant watermark test
</div>
@ -60,7 +60,7 @@ exports[`watermark should render image 1`] = `
<div class="van-watermark van-watermark--full"
style="background-image: url();"
>
<div style="display: none;">
<div class="van-watermark__wrapper">
<svg viewbox="0 0 100 100"
width="100"
height="100"
@ -84,7 +84,7 @@ exports[`watermark test false value fullPage 1`] = `
<div class="van-watermark"
style="background-image: url();"
>
<div style="display: none;">
<div class="van-watermark__wrapper">
<svg viewbox="0 0 100 100"
width="100"
height="100"
@ -97,7 +97,7 @@ exports[`watermark test false value fullPage 1`] = `
height="100"
>
<div xmlns="http://www.w3.org/1999/xhtml"
style="transform: rotate(-22deg);"
style="transform-origin: center; transform: rotate(-22deg);"
>
vant watermark test
</div>
@ -111,7 +111,7 @@ exports[`watermark test width, height, rotate, zIndex 1`] = `
<div class="van-watermark van-watermark--full"
style="background-image: url(); z-index: 200;"
>
<div style="display: none;">
<div class="van-watermark__wrapper">
<svg viewbox="0 0 20 20"
width="20"
height="20"
@ -124,7 +124,7 @@ exports[`watermark test width, height, rotate, zIndex 1`] = `
height="20"
>
<div xmlns="http://www.w3.org/1999/xhtml"
style="transform: rotate(20deg);"
style="transform-origin: center; transform: rotate(20deg);"
>
vant watermark test
</div>

View File

@ -70,7 +70,7 @@ describe('watermark', () => {
test('should render html', () => {
const wrapper = mount(Watermark, {
slots: {
default: () => 'vant watermark test',
content: () => 'vant watermark test',
},
});
@ -86,7 +86,7 @@ describe('watermark', () => {
zIndex: 200,
},
slots: {
default: () => 'vant watermark test',
content: () => 'vant watermark test',
},
});
@ -99,7 +99,7 @@ describe('watermark', () => {
fullPage: false,
},
slots: {
default: () => 'vant watermark test',
content: () => 'vant watermark test',
},
});

100
pnpm-lock.yaml generated
View File

@ -26,8 +26,8 @@ importers:
packages/create-vant-cli-app:
dependencies:
consola:
specifier: ^2.11.3
version: 2.15.3
specifier: ^3.0.2
version: 3.0.2
enquirer:
specifier: 2.3.6
version: 2.3.6
@ -48,8 +48,8 @@ importers:
specifier: ^15.4.1
version: 15.5.0
rimraf:
specifier: ^4.0.4
version: 4.0.4
specifier: ^5.0.0
version: 5.0.0
typescript:
specifier: ^5.0.2
version: 5.0.2
@ -106,8 +106,8 @@ importers:
specifier: ^15.4.1
version: 15.5.0
rimraf:
specifier: ^4.0.4
version: 4.0.4
specifier: ^5.0.0
version: 5.0.0
typescript:
specifier: ^5.0.2
version: 5.0.2
@ -145,8 +145,8 @@ importers:
specifier: ^10.0.0
version: 10.0.0
consola:
specifier: ^2.15.3
version: 2.15.3
specifier: ^3.0.2
version: 3.0.2
conventional-changelog:
specifier: ^3.1.25
version: 3.1.25
@ -211,8 +211,8 @@ importers:
specifier: ^8.4.16
version: 8.4.20
postcss-load-config:
specifier: ^3.1.4
version: 3.1.4(postcss@8.4.20)
specifier: ^4.0.1
version: 4.0.1(postcss@8.4.20)
prettier:
specifier: ^2.7.1
version: 2.7.1
@ -254,8 +254,8 @@ importers:
specifier: ^12.2.3
version: 12.2.3
rimraf:
specifier: ^4.0.4
version: 4.0.4
specifier: ^5.0.0
version: 5.0.0
vue:
specifier: ^3.2.47
version: 3.2.47
@ -272,8 +272,8 @@ importers:
specifier: ^15.1.1
version: 15.5.0
rimraf:
specifier: ^4.0.4
version: 4.0.4
specifier: ^5.0.0
version: 5.0.0
typescript:
specifier: ^5.0.2
version: 5.0.2
@ -336,8 +336,8 @@ importers:
specifier: ^15.4.1
version: 15.5.0
rimraf:
specifier: ^4.0.4
version: 4.0.4
specifier: ^5.0.0
version: 5.0.0
typescript:
specifier: ^5.0.2
version: 5.0.2
@ -353,8 +353,8 @@ importers:
specifier: ^15.4.1
version: 15.5.0
rimraf:
specifier: ^4.0.4
version: 4.0.4
specifier: ^5.0.0
version: 5.0.0
typescript:
specifier: ^5.0.2
version: 5.0.2
@ -2105,6 +2105,12 @@ packages:
balanced-match: 1.0.2
concat-map: 0.0.1
/brace-expansion@2.0.1:
resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
dependencies:
balanced-match: 1.0.2
dev: true
/braces@3.0.2:
resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
engines: {node: '>=8'}
@ -2329,8 +2335,8 @@ packages:
resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==}
dev: false
/consola@2.15.3:
resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==}
/consola@3.0.2:
resolution: {integrity: sha512-o/Wau2FmZKiQgyp3c3IULgN6J5yc0lwYMnoyiZdEpdGxKGBtt2ACbkulBZ6BUsHy1HlSJqoP4YOyPIJLgRJyKQ==}
dev: false
/conventional-changelog-angular@5.0.13:
@ -3521,6 +3527,16 @@ packages:
dependencies:
is-glob: 4.0.3
/glob@10.1.0:
resolution: {integrity: sha512-daGobsYuT0G4hng24B5LbeLNvwKZYRhWyDl3RvqqAGZjJnCopWWK6PWnAGBY1M/vdA63QE+jddhZcYp+74Bq6Q==}
engines: {node: '>=16 || 14 >=14.17'}
dependencies:
fs.realpath: 1.0.0
minimatch: 9.0.0
minipass: 5.0.0
path-scurry: 1.7.0
dev: true
/glob@7.2.3:
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
dependencies:
@ -4802,6 +4818,11 @@ packages:
dependencies:
yallist: 4.0.0
/lru-cache@9.0.3:
resolution: {integrity: sha512-cyjNRew29d4kbgnz1sjDqxg7qg8NW4s+HQzCGjeon7DV5T2yDije16W9HaUFV1dhVEMh+SjrOcK0TomBmf3Egg==}
engines: {node: 14 || >=16.14}
dev: true
/macos-release@3.1.0:
resolution: {integrity: sha512-/M/R0gCDgM+Cv1IuBG1XGdfTFnMEG6PZeT+KGWHO/OG+imqmaD9CH5vHBTycEM3+Kc4uG2Il+tFAuUWLqQOeUA==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@ -4942,6 +4963,13 @@ packages:
dependencies:
brace-expansion: 1.1.11
/minimatch@9.0.0:
resolution: {integrity: sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==}
engines: {node: '>=16 || 14 >=14.17'}
dependencies:
brace-expansion: 2.0.1
dev: true
/minimist-options@4.1.0:
resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
engines: {node: '>= 6'}
@ -4954,6 +4982,11 @@ packages:
/minimist@1.2.7:
resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==}
/minipass@5.0.0:
resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==}
engines: {node: '>=8'}
dev: true
/modify-values@1.0.1:
resolution: {integrity: sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==}
engines: {node: '>=0.10.0'}
@ -5373,6 +5406,14 @@ packages:
/path-parse@1.0.7:
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
/path-scurry@1.7.0:
resolution: {integrity: sha512-UkZUeDjczjYRE495+9thsgcVgsaCPkaw80slmfVFgllxY+IO8ubTsOpFVjDPROBqJdHfVPUFRHPBV/WciOVfWg==}
engines: {node: '>=16 || 14 >=14.17'}
dependencies:
lru-cache: 9.0.3
minipass: 5.0.0
dev: true
/path-type@3.0.0:
resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==}
engines: {node: '>=4'}
@ -5417,9 +5458,9 @@ packages:
dependencies:
find-up: 4.1.0
/postcss-load-config@3.1.4(postcss@8.4.20):
resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==}
engines: {node: '>= 10'}
/postcss-load-config@4.0.1(postcss@8.4.20):
resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==}
engines: {node: '>= 14'}
peerDependencies:
postcss: '>=8.0.9'
ts-node: '>=9.0.0'
@ -5431,7 +5472,7 @@ packages:
dependencies:
lilconfig: 2.0.6
postcss: 8.4.20
yaml: 1.10.2
yaml: 2.2.1
dev: false
/postcss-selector-parser@6.0.10:
@ -5793,10 +5834,12 @@ packages:
dependencies:
glob: 7.2.3
/rimraf@4.0.4:
resolution: {integrity: sha512-R0hoVr9xTwemarQjoWlNt/nb5dEGVTBhVdkRmEX2zEkT8T6onH0XKiGjuaC7rNNj/gYzY2p4NVRJ3sjO1ascHQ==}
/rimraf@5.0.0:
resolution: {integrity: sha512-Jf9llaP+RvaEVS5nPShYFhtXIrb3LRKP281ib3So0KkeZKo2wIKyq0Re7TOSwanasA423PSr6CCIL4bP6T040g==}
engines: {node: '>=14'}
hasBin: true
dependencies:
glob: 10.1.0
dev: true
/rollup@3.19.1:
@ -6717,6 +6760,11 @@ packages:
resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
engines: {node: '>= 6'}
/yaml@2.2.1:
resolution: {integrity: sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==}
engines: {node: '>= 14'}
dev: false
/yargs-parser@20.2.9:
resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
engines: {node: '>=10'}