build(editor-sdk): remove emotion/react

This commit is contained in:
Bowen Tan 2022-09-16 16:04:06 +08:00
parent 569f708a8d
commit 462787183e
8 changed files with 71 additions and 172 deletions

View File

@ -46,5 +46,9 @@
"prettier --write",
"eslint --fix"
]
},
"resolutions": {
"@emotion/react": "^11.8.1",
"@emotion/styled": "^11.8.1"
}
}

View File

@ -28,7 +28,6 @@
"@chakra-ui/icons": "^1.0.15",
"@chakra-ui/react": "^1.7.1",
"@emotion/css": "^11.7.1",
"@emotion/react": "^11.8.1",
"@sinclair/typebox": "^0.21.2",
"@sunmao-ui/core": "^0.7.3",
"@sunmao-ui/runtime": "^0.7.3",

View File

@ -19,7 +19,7 @@ import {
Button,
} from '@chakra-ui/react';
import { ExternalLinkIcon } from '@chakra-ui/icons';
import { css, Global } from '@emotion/react';
import { css, injectGlobal } from '@emotion/css';
import { parseExpression } from '@sunmao-ui/shared';
import 'codemirror/mode/javascript/javascript';
import 'codemirror/addon/mode/multiplex';
@ -36,6 +36,12 @@ import tern, { Def } from 'tern';
import { getTypeString } from '../../../utils/type';
import ecmascript from '../../../constants/ecmascript';
injectGlobal`
.CodeMirror-hints {
zIndex: 1800
}
`;
// TODO: tern uses global variable, maybe there is some workaround
(window as unknown as { tern: typeof tern }).tern = tern;
@ -218,6 +224,7 @@ const BaseExpressionEditor = React.forwardRef<
const wrapperEl = useRef<HTMLDivElement>(null);
const cm = useRef<CodeMirror.Editor | null>(null);
const tServer = useRef<tern.Server | null>(null);
useEffect(() => {
if (!wrapperEl.current) {
return;
@ -289,15 +296,13 @@ const BaseExpressionEditor = React.forwardRef<
}));
return (
<Box css={style} ref={wrapperEl} height="100%" width="100%" overflow="hidden">
<Global
styles={{
'.CodeMirror-hints': {
zIndex: 1800,
},
}}
/>
</Box>
<Box
className={style}
ref={wrapperEl}
height="100%"
width="100%"
overflow="hidden"
/>
);
}
);

View File

@ -5,12 +5,11 @@ import RcSelect, {
Option,
SelectProps as RcSelectProps,
} from 'rc-select';
import getIcons from './utils';
import { rcSelectStyle } from './style';
import { cx } from '@emotion/css';
import { BaseOptionType, DefaultOptionType } from 'rc-select/lib/Select';
import { Placement, RenderDOMFunc } from 'rc-select/lib/BaseSelect';
import { cx } from '@emotion/css';
import { Global } from '@emotion/react';
import getIcons from './utils';
import './style';
const prefixCls = 'sunmao-select';
const defaultRenderEmpty = 'Not Found';
@ -88,27 +87,24 @@ const SelectMain = <
const notFound: React.ReactNode = notFoundContent || defaultRenderEmpty;
return (
<>
<Global styles={rcSelectStyle} />
<RcSelect
ref={ref}
className={cx(className, borderLessCls)}
prefixCls={prefixCls}
dropdownMatchSelectWidth={dropdownMatchSelectWidth}
listItemHeight={listItemHeight}
listHeight={listHeight}
placement={placement}
inputIcon={suffixIcon}
clearIcon={clearIcon}
mode={isMultiple ? mode : undefined}
menuItemSelectedIcon={itemIcon}
removeIcon={removeIcon}
{...props}
getPopupContainer={getPopupContainer}
notFoundContent={notFound}
dropdownClassName={dropdownClassName}
/>
</>
<RcSelect
ref={ref}
className={cx(className, borderLessCls)}
prefixCls={prefixCls}
dropdownMatchSelectWidth={dropdownMatchSelectWidth}
listItemHeight={listItemHeight}
listHeight={listHeight}
placement={placement}
inputIcon={suffixIcon}
clearIcon={clearIcon}
mode={isMultiple ? mode : undefined}
menuItemSelectedIcon={itemIcon}
removeIcon={removeIcon}
{...props}
getPopupContainer={getPopupContainer}
notFoundContent={notFound}
dropdownClassName={dropdownClassName}
/>
);
};

View File

@ -1,4 +1,4 @@
import { css, keyframes } from '@emotion/react';
import { injectGlobal, keyframes } from '@emotion/css';
const rcSelectSlideUpIn = keyframes`
0% {
@ -49,7 +49,7 @@ const rcSelectSlideDownOut = keyframes`
}
}`;
export const rcSelectStyle = css`
injectGlobal`
.sunmao-select-single .sunmao-select-selector {
display: flex;
}

View File

@ -16,18 +16,7 @@ import {
} from '@sunmao-ui/shared';
import { JSONSchema7Object } from 'json-schema';
import { PREVENT_POPOVER_WIDGET_CLOSE_CLASS } from '../../constants/widget';
const ComponentTargetSelect = React.lazy(() =>
import('../Select').then(lib => ({
default: lib.Select,
}))
);
const ComponentTargetSelectOption = React.lazy(() =>
import('../Select').then(lib => ({
default: lib.Select.Option,
}))
);
import { Select as ComponentTargetSelect } from '../Select';
const EventWidgetOptions = Type.Object({});
@ -244,9 +233,9 @@ export const EventWidget: React.FC<WidgetProps<EventWidgetType>> = observer(prop
value={formik.values.componentId === '' ? undefined : formik.values.componentId}
>
{[{ id: GLOBAL_UTIL_METHOD_ID }].concat(components).map(c => (
<ComponentTargetSelectOption key={c.id} value={c.id}>
<ComponentTargetSelect.Option key={c.id} value={c.id}>
{c.id}
</ComponentTargetSelectOption>
</ComponentTargetSelect.Option>
))}
</ComponentTargetSelect>
</Suspense>

View File

@ -88,7 +88,8 @@
"vite": "^3.0.8"
},
"peerDependencies": {
"@emotion/react": "^11.8.1"
"react": "16.x || 17.x",
"react-dom": "16.x || 17.x"
},
"husky": {
"hooks": {

143
yarn.lock
View File

@ -684,7 +684,7 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
"@babel/plugin-syntax-jsx@^7.12.13", "@babel/plugin-syntax-jsx@^7.16.0":
"@babel/plugin-syntax-jsx@^7.16.0":
version "7.16.0"
resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.0.tgz"
integrity sha512-8zv2+xiPHwly31RK4RmnEYY5zziuF3O7W2kIDW+07ewWDh6Oi0dRq8kwvulRkFgt6DB97RlKs5c1y068iPlCUg==
@ -1221,7 +1221,7 @@
"@babel/helper-validator-option" "^7.14.5"
"@babel/plugin-transform-typescript" "^7.16.0"
"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7":
"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7":
version "7.16.0"
resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.0.tgz"
integrity sha512-Nht8L0O8YCktmsDV6FqFue7vQLRx3Hb0B37lS5y0jDRqRxlBG4wIJHnf9/bgSE2UyipKFA01YtS+npRdTWBUyw==
@ -2661,24 +2661,6 @@
source-map "^0.5.7"
stylis "4.0.13"
"@emotion/babel-plugin@^11.7.1":
version "11.7.1"
resolved "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.7.1.tgz"
integrity sha512-K3/6Y+J/sIAjplf3uIteWLhPuOyuMNnE+iyYnTF/m294vc6IL90kTHp7y8ldZYbpKlP17rpOWDKM9DvTcrOmNQ==
dependencies:
"@babel/helper-module-imports" "^7.12.13"
"@babel/plugin-syntax-jsx" "^7.12.13"
"@babel/runtime" "^7.13.10"
"@emotion/hash" "^0.8.0"
"@emotion/memoize" "^0.7.5"
"@emotion/serialize" "^1.0.2"
babel-plugin-macros "^2.6.1"
convert-source-map "^1.5.0"
escape-string-regexp "^4.0.0"
find-root "^1.1.0"
source-map "^0.5.7"
stylis "4.0.13"
"@emotion/cache@^11.10.0":
version "11.10.3"
resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.10.3.tgz#c4f67904fad10c945fea5165c3a5a0583c164b87"
@ -2690,7 +2672,7 @@
"@emotion/weak-memoize" "^0.3.0"
stylis "4.0.13"
"@emotion/cache@^11.4.0", "@emotion/cache@^11.5.0":
"@emotion/cache@^11.4.0":
version "11.5.0"
resolved "https://registry.npmjs.org/@emotion/cache/-/cache-11.5.0.tgz"
integrity sha512-mAZ5QRpLriBtaj/k2qyrXwck6yeoz1V5lMt/jfj6igWU35yYlNKs2LziXVgvH81gnJZ+9QQNGelSsnuoAy6uIw==
@ -2701,17 +2683,6 @@
"@emotion/weak-memoize" "^0.2.5"
stylis "^4.0.10"
"@emotion/cache@^11.9.3":
version "11.9.3"
resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.9.3.tgz#96638449f6929fd18062cfe04d79b29b44c0d6cb"
integrity sha512-0dgkI/JKlCXa+lEXviaMtGBL0ynpx4osh7rjOXE71q9bIF8G+XhJgvi+wDu0B0IdCVx37BffiwXlN9I3UuzFvg==
dependencies:
"@emotion/memoize" "^0.7.4"
"@emotion/sheet" "^1.1.1"
"@emotion/utils" "^1.0.0"
"@emotion/weak-memoize" "^0.2.5"
stylis "4.0.13"
"@emotion/css@^11.7.1":
version "11.10.0"
resolved "https://registry.yarnpkg.com/@emotion/css/-/css-11.10.0.tgz#270b4fdf2419e59cb07081d0e9f7940d88b8b443"
@ -2740,19 +2711,19 @@
dependencies:
"@emotion/memoize" "0.7.4"
"@emotion/is-prop-valid@^1.1.3":
version "1.1.3"
resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.1.3.tgz#f0907a416368cf8df9e410117068e20fe87c0a3a"
integrity sha512-RFg04p6C+1uO19uG8N+vqanzKqiM9eeV1LDOG3bmkYmuOj7NbKNlFC/4EZq5gnwAIlcC/jOT24f8Td0iax2SXA==
"@emotion/is-prop-valid@^1.2.0":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz#7f2d35c97891669f7e276eb71c83376a5dc44c83"
integrity sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==
dependencies:
"@emotion/memoize" "^0.7.4"
"@emotion/memoize" "^0.8.0"
"@emotion/memoize@0.7.4":
version "0.7.4"
resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb"
integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==
"@emotion/memoize@^0.7.4", "@emotion/memoize@^0.7.5":
"@emotion/memoize@^0.7.4":
version "0.7.5"
resolved "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.5.tgz"
integrity sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==
@ -2762,33 +2733,7 @@
resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.0.tgz#f580f9beb67176fa57aae70b08ed510e1b18980f"
integrity sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==
"@emotion/react@^11.0.0":
version "11.9.3"
resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.9.3.tgz#f4f4f34444f6654a2e550f5dab4f2d360c101df9"
integrity sha512-g9Q1GcTOlzOEjqwuLF/Zd9LC+4FljjPjDfxSM7KmEakm+hsHXk+bYZ2q+/hTJzr0OUNkujo72pXLQvXj6H+GJQ==
dependencies:
"@babel/runtime" "^7.13.10"
"@emotion/babel-plugin" "^11.7.1"
"@emotion/cache" "^11.9.3"
"@emotion/serialize" "^1.0.4"
"@emotion/utils" "^1.1.0"
"@emotion/weak-memoize" "^0.2.5"
hoist-non-react-statics "^3.3.1"
"@emotion/react@^11.1.1":
version "11.5.0"
resolved "https://registry.npmjs.org/@emotion/react/-/react-11.5.0.tgz"
integrity sha512-MYq/bzp3rYbee4EMBORCn4duPQfgpiEB5XzrZEBnUZAL80Qdfr7CEv/T80jwaTl/dnZmt9SnTa8NkTrwFNpLlw==
dependencies:
"@babel/runtime" "^7.13.10"
"@emotion/cache" "^11.5.0"
"@emotion/serialize" "^1.0.2"
"@emotion/sheet" "^1.0.3"
"@emotion/utils" "^1.0.0"
"@emotion/weak-memoize" "^0.2.5"
hoist-non-react-statics "^3.3.1"
"@emotion/react@^11.8.1":
"@emotion/react@^11.0.0", "@emotion/react@^11.1.1", "@emotion/react@^11.8.1":
version "11.10.4"
resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.10.4.tgz#9dc6bccbda5d70ff68fdb204746c0e8b13a79199"
integrity sha512-j0AkMpr6BL8gldJZ6XQsQ8DnS9TxEQu1R+OGmDZiWjBAJtCcbt0tS3I/YffoqHXxH6MjgI7KdMbYKw3MEiU9eA==
@ -2802,7 +2747,7 @@
"@emotion/weak-memoize" "^0.3.0"
hoist-non-react-statics "^3.3.1"
"@emotion/serialize@^1.0.0", "@emotion/serialize@^1.0.2":
"@emotion/serialize@^1.0.0":
version "1.0.2"
resolved "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.0.2.tgz"
integrity sha512-95MgNJ9+/ajxU7QIAruiOAdYNjxZX7G2mhgrtDWswA21VviYIRP1R5QilZ/bDY42xiKsaktP4egJb3QdYQZi1A==
@ -2813,17 +2758,6 @@
"@emotion/utils" "^1.0.0"
csstype "^3.0.2"
"@emotion/serialize@^1.0.4":
version "1.0.4"
resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.0.4.tgz#ff31fd11bb07999611199c2229e152faadc21a3c"
integrity sha512-1JHamSpH8PIfFwAMryO2bNka+y8+KA5yga5Ocf2d7ZEiJjb7xlLW7aknBGZqJLajuLOvJ+72vN+IBSwPlXD1Pg==
dependencies:
"@emotion/hash" "^0.8.0"
"@emotion/memoize" "^0.7.4"
"@emotion/unitless" "^0.7.5"
"@emotion/utils" "^1.0.0"
csstype "^3.0.2"
"@emotion/serialize@^1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.1.0.tgz#b1f97b1011b09346a40e9796c37a3397b4ea8ea8"
@ -2840,26 +2774,22 @@
resolved "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.0.3.tgz"
integrity sha512-YoX5GyQ4db7LpbmXHMuc8kebtBGP6nZfRC5Z13OKJMixBEwdZrJ914D6yJv/P+ZH/YY3F5s89NYX2hlZAf3SRQ==
"@emotion/sheet@^1.1.1":
version "1.1.1"
resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.1.1.tgz#015756e2a9a3c7c5f11d8ec22966a8dbfbfac787"
integrity sha512-J3YPccVRMiTZxYAY0IOq3kd+hUP8idY8Kz6B/Cyo+JuXq52Ek+zbPbSQUrVQp95aJ+lsAW7DPL1P2Z+U1jGkKA==
"@emotion/sheet@^1.2.0":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.2.0.tgz#771b1987855839e214fc1741bde43089397f7be5"
integrity sha512-OiTkRgpxescko+M51tZsMq7Puu/KP55wMT8BgpcXVG2hqXc0Vo0mfymJ/Uj24Hp0i083ji/o0aLddh08UEjq8w==
"@emotion/styled@^11.0.0":
version "11.9.3"
resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-11.9.3.tgz#47f0c71137fec7c57035bf3659b52fb536792340"
integrity sha512-o3sBNwbtoVz9v7WB1/Y/AmXl69YHmei2mrVnK7JgyBJ//Rst5yqPZCecEJlMlJrFeWHp+ki/54uN265V2pEcXA==
"@emotion/styled@^11.0.0", "@emotion/styled@^11.8.1":
version "11.10.4"
resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-11.10.4.tgz#e93f84a4d54003c2acbde178c3f97b421fce1cd4"
integrity sha512-pRl4R8Ez3UXvOPfc2bzIoV8u9P97UedgHS4FPX594ntwEuAMA114wlaHvOK24HB48uqfXiGlYIZYCxVJ1R1ttQ==
dependencies:
"@babel/runtime" "^7.13.10"
"@emotion/babel-plugin" "^11.7.1"
"@emotion/is-prop-valid" "^1.1.3"
"@emotion/serialize" "^1.0.4"
"@emotion/utils" "^1.1.0"
"@babel/runtime" "^7.18.3"
"@emotion/babel-plugin" "^11.10.0"
"@emotion/is-prop-valid" "^1.2.0"
"@emotion/serialize" "^1.1.0"
"@emotion/use-insertion-effect-with-fallbacks" "^1.0.0"
"@emotion/utils" "^1.2.0"
"@emotion/unitless@^0.7.5":
version "0.7.5"
@ -2881,11 +2811,6 @@
resolved "https://registry.npmjs.org/@emotion/utils/-/utils-1.0.0.tgz"
integrity sha512-mQC2b3XLDs6QCW+pDQDiyO/EdGZYOygE8s5N5rrzjSI4M3IejPE/JPndCBwRT9z982aqQNi6beWs1UeayrQxxA==
"@emotion/utils@^1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.1.0.tgz#86b0b297f3f1a0f2bdb08eeac9a2f49afd40d0cf"
integrity sha512-iRLa/Y4Rs5H/f2nimczYmS5kFJEbpiVvgN3XVfZ022IYhuNA1IRSHEizcof88LtCTXtl9S2Cxt32KgaXEu72JQ==
"@emotion/utils@^1.2.0":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.2.0.tgz#9716eaccbc6b5ded2ea5a90d65562609aab0f561"
@ -5134,15 +5059,6 @@ babel-plugin-jest-hoist@^27.2.0:
"@types/babel__core" "^7.0.0"
"@types/babel__traverse" "^7.0.6"
babel-plugin-macros@^2.6.1:
version "2.8.0"
resolved "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz"
integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==
dependencies:
"@babel/runtime" "^7.7.2"
cosmiconfig "^6.0.0"
resolve "^1.12.0"
babel-plugin-macros@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1"
@ -5977,17 +5893,6 @@ cosmiconfig@^5.2.0:
js-yaml "^3.13.1"
parse-json "^4.0.0"
cosmiconfig@^6.0.0:
version "6.0.0"
resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz"
integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==
dependencies:
"@types/parse-json" "^4.0.0"
import-fresh "^3.1.0"
parse-json "^5.0.0"
path-type "^4.0.0"
yaml "^1.7.2"
cosmiconfig@^7, cosmiconfig@^7.0.0, cosmiconfig@^7.0.1:
version "7.0.1"
resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz"
@ -7985,7 +7890,7 @@ import-fresh@^2.0.0:
caller-path "^2.0.0"
resolve-from "^3.0.0"
import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1:
import-fresh@^3.0.0, import-fresh@^3.2.1:
version "3.3.0"
resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz"
integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
@ -11298,7 +11203,7 @@ resolve@^1.1.7, resolve@^1.10.1:
path-parse "^1.0.7"
supports-preserve-symlinks-flag "^1.0.0"
resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.20.0:
resolve@^1.10.0, resolve@^1.14.2, resolve@^1.20.0:
version "1.20.0"
resolved "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz"
integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==
@ -12877,7 +12782,7 @@ yallist@^4.0.0:
resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2:
yaml@^1.10.0, yaml@^1.10.2:
version "1.10.2"
resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz"
integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==