添加Minio 图床

This commit is contained in:
liushuang 2024-08-29 16:46:36 +08:00
parent e3a0903e22
commit 14ead48e43
13 changed files with 993 additions and 130 deletions

@ -6,17 +6,17 @@
"private": false,
"main": "lib/Lib.js",
"module": "lib/Lib.js",
"homepage": "http://md.aizhuanqian.online",
"homepage": "https://md.luckday.cn",
"license": "GPL-3.0",
"typings": "./lib/index.d.ts",
"repository": {
"type": "git",
"url": "https://github.com/TaleAi/markdown2html"
"url": "https://git.luckday.cn/Public/markdown2html"
},
"scripts": {
"start": "node scripts/start.js",
"watch": "node ./watch.js",
"build": "export GENERATE_SOURCEMAP=false&&node --max_old_space_size=4096 scripts/build.js",
"build": "set GENERATE_SOURCEMAP=false&&node --max_old_space_size=4096 scripts/build.js",
"test": "node scripts/test.js",
"analyze": "source-map-explorer build/static/js/*.js",
"lint": "eslint src --ext ts,tsx,js --fix",
@ -45,6 +45,8 @@
"markdown-it-ruby": "^0.1.1",
"markdown-it-table-of-contents": "^0.4.4",
"mathjax": "^3.0.1",
"minio": "^8.0.1",
"minio-js": "^1.0.7",
"mobx": "^5.9.0",
"mobx-react": "^5.4.3",
"prettier": "^1.19.1",
@ -239,4 +241,4 @@
"git add"
]
}
}
}

@ -119,6 +119,7 @@ class App extends Component {
name,
isSmmsOpen,
isQiniuyunOpen,
isMinioOpen,
isAliyunOpen,
isGiteeOpen,
isGitHubOpen
@ -131,6 +132,9 @@ class App extends Component {
if (isSmmsOpen) {
this.props.imageHosting.addImageHosting(IMAGE_HOSTING_NAMES.smms);
}
if (isMinioOpen) {
this.props.imageHosting.addImageHosting(IMAGE_HOSTING_NAMES.minio);
}
if (isAliyunOpen) {
this.props.imageHosting.addImageHosting(IMAGE_HOSTING_NAMES.aliyun);
}
@ -153,6 +157,8 @@ class App extends Component {
type = IMAGE_HOSTING_NAMES.smms;
} else if (isAliyunOpen) {
type = IMAGE_HOSTING_NAMES.aliyun;
} else if (isMinioOpen) {
type = IMAGE_HOSTING_NAMES.minio;
} else if (isQiniuyunOpen) {
type = IMAGE_HOSTING_NAMES.qiniuyun;
} else if (isGiteeOpen) {

@ -1,7 +1,7 @@
import React, {Component} from "react";
import React, { Component } from "react";
import PropTypes from "prop-types";
import {Result} from "antd";
import {Provider} from "mobx-react";
import { Result } from "antd";
import { Provider } from "mobx-react";
import "./index.css";
@ -15,11 +15,11 @@ import dialog from "./store/dialog";
import imageHosting from "./store/imageHosting";
import view from "./store/view";
import {isPC} from "./utils/helper";
import { isPC } from "./utils/helper";
import appContext from "./utils/appContext";
import SvgIcon from "./icon";
import {solveWeChatMath, solveZhihuMath, solveHtml} from "./utils/converter";
import {LAYOUT_ID} from "./utils/constant";
import { solveWeChatMath, solveZhihuMath, solveHtml } from "./utils/converter";
import { LAYOUT_ID } from "./utils/constant";
class Lib extends Component {
getWeChatHtml() {
@ -51,7 +51,7 @@ class Lib extends Component {
onStyleBlur,
onStyleFocus,
token,
useImageHosting,
useImageHosting
} = this.props;
const appCtx = {
defaultTitle,
@ -63,7 +63,7 @@ class Lib extends Component {
onStyleBlur,
onStyleFocus,
token,
useImageHosting,
useImageHosting
};
return (
<Provider
@ -94,7 +94,13 @@ class Lib extends Component {
icon={<SvgIcon name="smile" style={style.svgIcon} />}
title="请使用 PC 端打开排版工具"
subTitle="更多 Markdown Nice 信息,请扫码关注公众号「编程如画」"
extra={<img alt="" style={{width: "100%"}} src="https://my-wechat.mdnice.com/wechat.jpg" />}
extra={
<img
alt=""
style={{ width: "100%" }}
src="https://my-wechat.mdnice.com/wechat.jpg"
/>
}
/>
)}
</Provider>
@ -105,8 +111,8 @@ class Lib extends Component {
const style = {
svgIcon: {
width: "72px",
height: "72px",
},
height: "72px"
}
};
Lib.defaultProps = {
@ -125,10 +131,11 @@ Lib.defaultProps = {
name: "",
isSmmsOpen: true,
isQiniuyunOpen: true,
isMinioOpen: true,
isAliyunOpen: true,
isGiteeOpen: true,
isGitHubOpen: true,
},
isGitHubOpen: true
}
};
Lib.propTypes = {
defaultTitle: PropTypes.string,
@ -146,10 +153,11 @@ Lib.propTypes = {
name: PropTypes.string,
isSmmsOpen: PropTypes.bool,
isQiniuyunOpen: PropTypes.bool,
isMinioOpen: PropTypes.bool,
isAliyunOpen: PropTypes.bool,
isGiteeOpen: PropTypes.bool,
isGitHubOpen: PropTypes.bool,
}),
isGitHubOpen: PropTypes.bool
})
};
export default Lib;

@ -4,6 +4,7 @@ import { Modal, Upload, Tabs, Select } from "antd";
import SvgIcon from "../../icon";
import MinioOSS from "../ImageHosting/MinioOSS";
import AliOSS from "../ImageHosting/AliOSS";
import QiniuOSS from "../ImageHosting/QiniuOSS";
import Gitee from "../ImageHosting/Gitee";
@ -197,6 +198,11 @@ class ImageDialog extends Component {
</p>
</Dragger>
</TabPane>
{useImageHosting.isMinioOpen ? (
<TabPane tab={IMAGE_HOSTING_NAMES.minio} key="6">
<MinioOSS />
</TabPane>
) : null}
{useImageHosting.isAliyunOpen ? (
<TabPane tab={IMAGE_HOSTING_NAMES.aliyun} key="2">
<AliOSS />

@ -0,0 +1,110 @@
import React, { Component } from "react";
import { observer, inject } from "mobx-react";
import { Input, Form } from "antd";
import { MINIOOSS_IMAGE_HOSTING } from "../../utils/constant";
const formItemLayout = {
labelCol: {
xs: { span: 6 }
},
wrapperCol: {
xs: { span: 16 }
}
};
@inject("imageHosting")
@observer
class MinioOSS extends Component {
constructor(props) {
super(props);
// 从localstorage里面读取
const imageHosting = JSON.parse(
localStorage.getItem(MINIOOSS_IMAGE_HOSTING)
);
this.state = {
imageHosting
};
}
endPointChange = e => {
const { imageHosting } = this.state;
imageHosting.endPoint = e.target.value;
this.setState({ imageHosting });
localStorage.setItem(MINIOOSS_IMAGE_HOSTING, JSON.stringify(imageHosting));
};
accessKeyChange = e => {
const { imageHosting } = this.state;
imageHosting.accessKey = e.target.value;
this.setState({ imageHosting });
localStorage.setItem(MINIOOSS_IMAGE_HOSTING, JSON.stringify(imageHosting));
};
secretKeyChange = e => {
const { imageHosting } = this.state;
imageHosting.secretKey = e.target.value;
this.setState({ imageHosting });
localStorage.setItem(MINIOOSS_IMAGE_HOSTING, JSON.stringify(imageHosting));
};
bucketChange = e => {
const { imageHosting } = this.state;
imageHosting.bucket = e.target.value;
this.setState({ imageHosting });
localStorage.setItem(MINIOOSS_IMAGE_HOSTING, JSON.stringify(imageHosting));
};
render() {
const { endPoint, accessKey, secretKey, bucket } = this.state.imageHosting;
return (
<Form {...formItemLayout}>
<Form.Item label="Bucket" style={style.formItem}>
<Input
value={bucket}
onChange={this.bucketChange}
placeholder="例如images"
/>
</Form.Item>
<Form.Item label="地址" style={style.formItem}>
<Input
value={endPoint}
onChange={this.endPointChange}
placeholder="例如www.minio.com"
/>
</Form.Item>
<Form.Item label="Access Key" style={style.formItem}>
<Input
value={accessKey}
onChange={this.accessKeyChange}
placeholder="例如Yf8RIyj4a9LrKEfTfR9c"
/>
</Form.Item>
<Form.Item label="Secret Key" style={style.formItem}>
<Input
value={secretKey}
onChange={this.secretKeyChange}
placeholder="例如VYHasKGWmVdQFedtgR1E8lwgkVK6VqzEdWqPIuM9"
/>
</Form.Item>
<Form.Item label="提示" style={style.formItem}>
<span>配置后请在右上角进行切换</span>
<a
rel="noopener noreferrer"
target="_blank"
href="https://doc.luckday.cn"
>
MINIO图床配置文档
</a>
</Form.Item>
</Form>
);
}
}
const style = {
formItem: {
marginBottom: "10px"
}
};
export default MinioOSS;

1
src/index.d.ts vendored

@ -53,6 +53,7 @@ export interface MarkdownNiceProps {
name: string;
isSmmsOpen: boolean;
isQiniuyunOpen: boolean;
isMinioOpen: boolean;
isAliyunOpen: boolean;
isGiteeOpen: boolean;
isGitHubOpen: boolean;

@ -11,13 +11,14 @@ ReactDOM.render(
name: "图壳",
isSmmsOpen: false,
isQiniuyunOpen: false,
isMinioOpen: true,
isAliyunOpen: true,
isGiteeOpen: true,
isGitHubOpen: true,
isGitHubOpen: true
}}
defaultTitle="LuckDay"
/>,
document.getElementById("root"),
document.getElementById("root")
);
// If you want your app to work offline and load faster, you can change

@ -1,10 +1,11 @@
import {observable, action} from "mobx";
import { observable, action } from "mobx";
import {
IMAGE_HOSTING_TYPE,
MINIOOSS_IMAGE_HOSTING,
ALIOSS_IMAGE_HOSTING,
QINIUOSS_IMAGE_HOSTING,
GITEE_IMAGE_HOSTING,
GITHUB_IMAGE_HOSTING,
GITHUB_IMAGE_HOSTING
} from "../utils/constant";
class ImageHosting {
@ -17,38 +18,49 @@ class ImageHosting {
@observable hostingName = "";
@action
setType = (type) => {
setType = type => {
this.type = type;
};
@action
setHostingUrl = (url) => {
setHostingUrl = url => {
this.hostingUrl = url;
};
@action
setHostingName = (name) => {
setHostingName = name => {
this.hostingName = name;
};
@action
addImageHosting = (name) => {
addImageHosting = name => {
this.hostingList.push({
value: name,
label: name,
label: name
});
};
}
const store = new ImageHosting();
// 如果为空先把数据放进去
if (!window.localStorage.getItem(MINIOOSS_IMAGE_HOSTING)) {
const alioss = JSON.stringify({
endPoint: "",
accessKey: "",
secretKey: "",
bucket: ""
});
window.localStorage.setItem(MINIOOSS_IMAGE_HOSTING, alioss);
}
// 如果为空先把数据放进去
if (!window.localStorage.getItem(ALIOSS_IMAGE_HOSTING)) {
const alioss = JSON.stringify({
region: "",
accessKeyId: "",
accessKeySecret: "",
bucket: "",
bucket: ""
});
window.localStorage.setItem(ALIOSS_IMAGE_HOSTING, alioss);
}
@ -61,7 +73,7 @@ if (!window.localStorage.getItem(QINIUOSS_IMAGE_HOSTING)) {
secretKey: "",
bucket: "",
domain: "https://",
namespace: "",
namespace: ""
});
window.localStorage.setItem(QINIUOSS_IMAGE_HOSTING, qiniuoss);
}
@ -71,7 +83,7 @@ if (!window.localStorage.getItem(GITEE_IMAGE_HOSTING)) {
const gitee = JSON.stringify({
username: "",
repo: "",
token: "",
token: ""
});
window.localStorage.setItem(GITEE_IMAGE_HOSTING, gitee);
}
@ -82,7 +94,7 @@ if (!window.localStorage.getItem(GITHUB_IMAGE_HOSTING)) {
username: "",
repo: "",
token: "",
jsdelivr: "true",
jsdelivr: "true"
});
window.localStorage.setItem(GITHUB_IMAGE_HOSTING, github);
}

@ -207,6 +207,7 @@ export default `/*默认样式,最佳实践*/
/*图片*/
#nice img {
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1);
display: block;
margin: 0 auto;
max-width: 100%;

@ -1,11 +1,16 @@
export const CLIENT_ID = process.env.NODE_ENV === "development" ? "e791aa2a7a64b3f766a2" : "b3a3c46bd66318367efa";
export const CLIENT_ID =
process.env.NODE_ENV === "development"
? "e791aa2a7a64b3f766a2"
: "b3a3c46bd66318367efa";
export const CLIENT_SECRET =
process.env.NODE_ENV === "development"
? "e80cde65c7071286086077892f3336bc2a3f4576"
: "dfd9fdc1da6a6b10e473280bf0a379513f1d154d";
export const PROXY = "https://cors-anywhere.herokuapp.com/https://github.com/login/oauth/access_token";
export const SM_MS_PROXY = "https://cors-anywhere.herokuapp.com/https://sm.ms/api/upload";
export const PROXY =
"https://cors-anywhere.herokuapp.com/https://github.com/login/oauth/access_token";
export const SM_MS_PROXY =
"https://cors-anywhere.herokuapp.com/https://sm.ms/api/upload";
export const ACCESS_TOKEN = "ACCESS_TOKEN";
export const USERNAME = "username";
@ -27,6 +32,7 @@ export const IS_SYNC_SCROLL = "is_sync_scroll";
export const IS_CONTAIN_IMG_NAME = "is_contain_img_name";
export const IS_MAC_CODE = "is_mac_code";
export const NEWEST_VERSION = "newest_version";
export const MINIOOSS_IMAGE_HOSTING = "miniooss_image_hosting";
export const ALIOSS_IMAGE_HOSTING = "alioss_image_hosting";
export const GITEE_IMAGE_HOSTING = "gitee_image_hosting";
export const GITHUB_IMAGE_HOSTING = "github_image_hosting";
@ -40,16 +46,22 @@ export const LAYOUT_ID = "nice";
export const BOX_ID = "nice-rich-text-box";
export const IMAGE_HOSTING_NAMES = {
smms: "SM.MS",
minio: "Minio",
aliyun: "阿里云",
qiniuyun: "七牛云",
gitee: "Gitee",
github: "GitHub",
github: "GitHub"
};
export const RIGHT_SYMBOL = "✔️";
export const EXPORT_FILENAME_SUFFIX = ".md";
export const STYLE_LABELS = ["basic-theme", "markdown-theme", "code-theme", "font-theme"];
export const STYLE_LABELS = [
"basic-theme",
"markdown-theme",
"code-theme",
"font-theme"
];
export const ENTER_DELAY = 0.5;
export const LEAVE_DELAY = 0.0;
@ -57,64 +69,64 @@ export const LEAVE_DELAY = 0.0;
export const CODE_OPTIONS = [
{
id: "wechat",
name: "微信代码主题",
name: "微信代码主题"
},
{
id: "atomOneDark",
macId: "macAtomOneDark",
name: "atom-one-dark",
name: "atom-one-dark"
},
{
id: "atomOneLight",
macId: "macAtomOneLight",
name: "atom-one-light",
name: "atom-one-light"
},
{
id: "monokai",
macId: "macMonokai",
name: "monokai",
name: "monokai"
},
{
id: "github",
macId: "macGithub",
name: "github",
name: "github"
},
{
id: "vs2015",
macId: "macVs2015",
name: "vs2015",
name: "vs2015"
},
{
id: "xcode",
macId: "macXcode",
name: "xcode",
},
name: "xcode"
}
];
export const SITDOWN_OPTIONS = [
{
key: "default",
value: "默认引擎",
desc: "默认引擎",
desc: "默认引擎"
},
{
key: "wechat",
value: "微信公众号 - https://mp.weixin.qq.com/",
desc: "微信引擎",
desc: "微信引擎"
},
{
key: "zhihu",
value: "知乎专栏 - https://zhuanlan.zhihu.com/",
desc: "知乎引擎",
desc: "知乎引擎"
},
{
key: "juejin",
value: "掘金 - https://juejin.im/post/",
desc: "掘金引擎",
desc: "掘金引擎"
},
{
key: "csdn",
value: "CSDN - https://blog.csdn.net/",
desc: "CSDN引擎",
},
desc: "CSDN引擎"
}
];

@ -2,22 +2,25 @@
* 图片上传
*/
import * as qiniu from "qiniu-js";
import {message} from "antd";
import { message } from "antd";
import axios from "axios";
import OSS from "ali-oss";
import { Minio } from "minio-js";
import imageHosting from "../store/imageHosting";
import {
SM_MS_PROXY,
ALIOSS_IMAGE_HOSTING,
MINIOOSS_IMAGE_HOSTING,
QINIUOSS_IMAGE_HOSTING,
GITEE_IMAGE_HOSTING,
GITHUB_IMAGE_HOSTING,
IMAGE_HOSTING_TYPE,
IS_CONTAIN_IMG_NAME,
IMAGE_HOSTING_NAMES,
IMAGE_HOSTING_NAMES
} from "./constant";
import {toBlob, getOSSName, axiosMdnice} from "./helper";
import { toBlob, getOSSName, axiosMdnice } from "./helper";
import * as stream from "stream";
function showUploadNoti() {
message.loading("图片上传中", 0);
@ -32,8 +35,9 @@ function hideUploadNoti() {
message.success("图片上传成功");
}
function writeToEditor({content, image}) {
const isContainImgName = window.localStorage.getItem(IS_CONTAIN_IMG_NAME) === "true";
function writeToEditor({ content, image }) {
const isContainImgName =
window.localStorage.getItem(IS_CONTAIN_IMG_NAME) === "true";
console.log(isContainImgName);
let text = "";
if (isContainImgName) {
@ -41,7 +45,7 @@ function writeToEditor({content, image}) {
} else {
text = `\n![](${image.url})\n`;
}
const {markdownEditor} = content;
const { markdownEditor } = content;
const cursor = markdownEditor.getCursor();
markdownEditor.replaceSelection(text, cursor);
content.setContent(markdownEditor.getValue());
@ -54,25 +58,29 @@ export const qiniuOSSUpload = async ({
onError = () => {},
onProgress = () => {},
images = [],
content = null, // store content
content = null // store content
}) => {
showUploadNoti();
const config = JSON.parse(window.localStorage.getItem(QINIUOSS_IMAGE_HOSTING));
const config = JSON.parse(
window.localStorage.getItem(QINIUOSS_IMAGE_HOSTING)
);
try {
let {domain} = config;
const {namespace} = config;
let { domain } = config;
const { namespace } = config;
// domain可能配置时末尾没有加/
if (domain[domain.length - 1] !== "/") {
domain += "/";
}
const result = await axiosMdnice.get(`/qiniu/${config.bucket}/${config.accessKey}/${config.secretKey}`);
const result = await axiosMdnice.get(
`/qiniu/${config.bucket}/${config.accessKey}/${config.secretKey}`
);
const token = result.data;
const base64Reader = new FileReader();
base64Reader.readAsDataURL(file);
base64Reader.onload = (e) => {
base64Reader.onload = e => {
const urlData = e.target.result;
const base64 = urlData.split(",").pop();
const fileType = urlData
@ -86,34 +94,40 @@ export const qiniuOSSUpload = async ({
const conf = {
useCdnDomain: true,
region: qiniu.region[config.region], // 区域
region: qiniu.region[config.region] // 区域
};
const putExtra = {
fname: "",
params: {},
mimeType: [] || null,
mimeType: [] || null
};
const OSSName = getOSSName(file.name, namespace);
// 这里第一个参数的形式是blob
const imageObservable = qiniu.upload(blob, OSSName, token, putExtra, conf);
const imageObservable = qiniu.upload(
blob,
OSSName,
token,
putExtra,
conf
);
// 上传成功后回调
const complete = (response) => {
const complete = response => {
// console.log(response);
const names = file.name.split(".");
names.pop();
const filename = names.join(".");
const image = {
filename, // 名字不变并且去掉后缀
url: encodeURI(`${domain}${response.key}`),
url: encodeURI(`${domain}${response.key}`)
};
images.push(image);
if (content) {
writeToEditor({content, image});
writeToEditor({ content, image });
}
onSuccess(response);
setTimeout(() => {
@ -122,19 +136,22 @@ export const qiniuOSSUpload = async ({
};
// 上传过程回调
const next = (response) => {
const next = response => {
// console.log(response);
const percent = parseInt(Math.round(response.total.percent.toFixed(2)), 10);
const percent = parseInt(
Math.round(response.total.percent.toFixed(2)),
10
);
onProgress(
{
percent,
percent
},
file,
file
);
};
// 上传错误回调
const error = (err) => {
const error = err => {
hideUploadNoti();
uploadError();
onError(err, err.toString());
@ -143,7 +160,7 @@ export const qiniuOSSUpload = async ({
const imageObserver = {
next,
error,
complete,
complete
};
// 注册 imageObserver 对象
imageObservable.subscribe(imageObserver);
@ -160,15 +177,15 @@ export const customImageUpload = async ({
onSuccess = () => {},
onError = () => {},
images = [],
content = null,
content = null
}) => {
showUploadNoti();
try {
formData.append("file", file);
const config = {
headers: {
"Content-Type": "multipart/form-data",
},
"Content-Type": "multipart/form-data"
}
};
const postURL = imageHosting.hostingUrl;
const result = await axios.post(postURL, formData, config);
@ -177,11 +194,11 @@ export const customImageUpload = async ({
const filename = names.join(".");
const image = {
filename,
url: encodeURI(result.data.data), // 这里要和外接图床规定好数据逻辑,否则会接入失败
url: encodeURI(result.data.data) // 这里要和外接图床规定好数据逻辑,否则会接入失败
};
if (content) {
writeToEditor({content, image});
writeToEditor({ content, image });
}
images.push(image);
onSuccess(result);
@ -206,7 +223,7 @@ export const smmsUpload = ({
headers = {},
withCredentials = false,
images = [],
content = null, // store content
content = null // store content
}) => {
showUploadNoti();
// SM.MS图床必须这里命名为smfile
@ -215,25 +232,25 @@ export const smmsUpload = ({
.post(action, formData, {
withCredentials,
headers,
onUploadProgress: ({total, loaded}) => {
onUploadProgress: ({ total, loaded }) => {
onProgress(
{
percent: parseInt(Math.round((loaded / total) * 100).toFixed(2), 10),
percent: parseInt(Math.round((loaded / total) * 100).toFixed(2), 10)
},
file,
file
);
},
}
})
.then(({data: response}) => {
.then(({ data: response }) => {
if (response.code === "exception") {
throw response.message;
}
const image = {
filename: response.data.filename,
url: response.data.url,
url: response.data.url
};
if (content) {
writeToEditor({content, image});
writeToEditor({ content, image });
}
images.push(image);
onSuccess(response, file);
@ -241,7 +258,7 @@ export const smmsUpload = ({
hideUploadNoti();
}, 500);
})
.catch((error) => {
.catch(error => {
hideUploadNoti();
uploadError(error.toString());
onError(error, error.toString());
@ -249,7 +266,15 @@ export const smmsUpload = ({
};
// 阿里对象存储,上传部分
const aliOSSPutObject = ({config, file, buffer, onSuccess, onError, images, content}) => {
const aliOSSPutObject = ({
config,
file,
buffer,
onSuccess,
onError,
images,
content
}) => {
let client;
try {
client = new OSS(config);
@ -262,16 +287,16 @@ const aliOSSPutObject = ({config, file, buffer, onSuccess, onError, images, cont
client
.put(OSSName, buffer)
.then((response) => {
.then(response => {
const names = file.name.split(".");
names.pop();
const filename = names.join(".");
const image = {
filename, // 名字不变并且去掉后缀
url: response.url,
url: response.url
};
if (content) {
writeToEditor({content, image});
writeToEditor({ content, image });
}
images.push(image);
onSuccess(response, file);
@ -279,7 +304,7 @@ const aliOSSPutObject = ({config, file, buffer, onSuccess, onError, images, cont
hideUploadNoti();
}, 500);
})
.catch((error) => {
.catch(error => {
console.log(error);
hideUploadNoti();
@ -294,13 +319,13 @@ export const aliOSSUpload = ({
onSuccess = () => {},
onError = () => {},
images = [],
content = null, // store content
content = null // store content
}) => {
showUploadNoti();
const config = JSON.parse(window.localStorage.getItem(ALIOSS_IMAGE_HOSTING));
const base64Reader = new FileReader();
base64Reader.readAsDataURL(file);
base64Reader.onload = (e) => {
base64Reader.onload = e => {
const urlData = e.target.result;
const base64 = urlData.split(",").pop();
const fileType = urlData
@ -315,9 +340,123 @@ export const aliOSSUpload = ({
// blob转arrayBuffer
const bufferReader = new FileReader();
bufferReader.readAsArrayBuffer(blob);
bufferReader.onload = (event) => {
bufferReader.onload = event => {
const buffer = new OSS.Buffer(event.target.result);
aliOSSPutObject({config, file, buffer, onSuccess, onError, images, content});
aliOSSPutObject({
config,
file,
buffer,
onSuccess,
onError,
images,
content
});
};
};
};
// minioOSSUpload
export const minioOSSUpload = ({
file = {},
onSuccess = () => {},
onError = () => {},
images = [],
content = null // store content
}) => {
showUploadNoti();
const config = JSON.parse(
window.localStorage.getItem(MINIOOSS_IMAGE_HOSTING)
);
const base64Reader = new FileReader();
base64Reader.readAsDataURL(file);
base64Reader.onload = e => {
const urlData = e.target.result;
const base64 = urlData.split(",").pop();
const fileType = urlData
.split(";")
.shift()
.split(":")
.pop();
// base64转blob
const blob = toBlob(base64, fileType);
// blob转arrayBuffer
const bufferReader = new FileReader();
bufferReader.readAsArrayBuffer(blob);
bufferReader.onload = event => {
let reader = new FileReader();
reader.readAsArrayBuffer(file);
reader.onload = function(e) {
let res = e.target.result; //ArrayBuffer
let client;
try {
client = new Minio.Client({
useSSL: true, // 是否使用ssl
corsAllowOrigin: "*",
...config
});
} catch (error) {
message.error("MinIO OSS配置错误请根据文档检查配置项");
return;
}
const mineType = file.type;
const fileSize = file.size;
//参数
let metadata = {
"content-type": mineType,
"content-length": fileSize
};
const buffer = Buffer.from(res);
// 创建一个Readable流
const readableStream = new stream.Readable({
read() {
// 将Buffer推送到流中
this.push(buffer);
// 标记流的结束
this.push(null);
}
});
const OSSName = getOSSName(file.name);
const bucket = config.bucket;
const addr = config.endPoint;
//上传,callback是回调函数
client.putObject(
bucket,
OSSName,
readableStream,
fileSize,
metadata,
(err, data) => {
if (err) {
console.log("上传失败,错误:" + err.message);
message.error("上传失败!");
} else {
const names = file.name.split(".");
names.pop();
const filename = names.join(".");
const image = {
filename, // 名字不变并且去掉后缀
url: `https://${addr}/${bucket}/${OSSName}`
};
if (content) {
writeToEditor({ content, image });
}
images.push(image);
onSuccess(err, file);
setTimeout(() => {
hideUploadNoti();
}, 500);
}
}
);
};
};
};
};
@ -332,7 +471,7 @@ export const giteeUpload = ({
headers = {},
withCredentials = false,
images = [],
content = null, // store content
content = null // store content
}) => {
showUploadNoti();
@ -344,13 +483,18 @@ export const giteeUpload = ({
const base64Reader = new FileReader();
base64Reader.readAsDataURL(file);
base64Reader.onload = (e) => {
base64Reader.onload = e => {
const urlData = e.target.result;
const base64 = urlData.split(",").pop();
const date = new Date();
const seperator = "-";
const dir = date.getFullYear() + seperator + (date.getMonth() + 1) + seperator + date.getDate();
const dir =
date.getFullYear() +
seperator +
(date.getMonth() + 1) +
seperator +
date.getDate();
const dateFilename = new Date().getTime() + "-" + file.name;
const url = `https://gitee.com/api/v5/repos/${config.username}/${config.repo}/contents/${dir}/${dateFilename}`;
@ -363,16 +507,19 @@ export const giteeUpload = ({
.post(url, formData, {
withCredentials,
headers,
onUploadProgress: ({total, loaded}) => {
onUploadProgress: ({ total, loaded }) => {
onProgress(
{
percent: parseInt(Math.round((loaded / total) * 100).toFixed(2), 10),
percent: parseInt(
Math.round((loaded / total) * 100).toFixed(2),
10
)
},
file,
file
);
},
}
})
.then(({data: response}) => {
.then(({ data: response }) => {
if (response.code === "exception") {
throw response.message;
}
@ -381,10 +528,10 @@ export const giteeUpload = ({
const filename = names.join(".");
const image = {
filename,
url: response.content.download_url,
url: response.content.download_url
};
if (content) {
writeToEditor({content, image});
writeToEditor({ content, image });
}
images.push(image);
onSuccess(response, file);
@ -410,7 +557,7 @@ export const githubUpload = ({
headers = {},
withCredentials = false,
images = [],
content = null, // store content
content = null // store content
}) => {
showUploadNoti();
@ -418,36 +565,44 @@ export const githubUpload = ({
const base64Reader = new FileReader();
base64Reader.readAsDataURL(file);
base64Reader.onload = (e) => {
base64Reader.onload = e => {
const urlData = e.target.result;
const base64 = urlData.split(",").pop();
const date = new Date();
const seperator = "-";
const dir = date.getFullYear() + seperator + (date.getMonth() + 1) + seperator + date.getDate();
const dir =
date.getFullYear() +
seperator +
(date.getMonth() + 1) +
seperator +
date.getDate();
const dateFilename = new Date().getTime() + "-" + file.name;
const url = `https://api.github.com/repos/${config.username}/${config.repo}/contents/${dir}/${dateFilename}?access_token=${config.token}`;
const data = {
content: base64,
message: "mdnice upload picture",
message: "mdnice upload picture"
};
axios
.put(url, data, {
withCredentials,
headers,
onUploadProgress: ({total, loaded}) => {
onUploadProgress: ({ total, loaded }) => {
onProgress(
{
percent: parseInt(Math.round((loaded / total) * 100).toFixed(2), 10),
percent: parseInt(
Math.round((loaded / total) * 100).toFixed(2),
10
)
},
file,
file
);
},
}
})
.then(({data: response}) => {
.then(({ data: response }) => {
if (response.code === "exception") {
throw response.message;
}
@ -462,10 +617,10 @@ export const githubUpload = ({
const image = {
filename,
url: imageUrl,
url: imageUrl
};
if (content) {
writeToEditor({content, image});
writeToEditor({ content, image });
}
images.push(image);
onSuccess(response, file);
@ -490,7 +645,9 @@ export const uploadAdaptor = (...args) => {
} else if (type === IMAGE_HOSTING_NAMES.smms) {
return smmsUpload(...args);
} else if (type === IMAGE_HOSTING_NAMES.qiniuyun) {
const config = JSON.parse(window.localStorage.getItem(QINIUOSS_IMAGE_HOSTING));
const config = JSON.parse(
window.localStorage.getItem(QINIUOSS_IMAGE_HOSTING)
);
if (
!config.region.length ||
!config.accessKey.length ||
@ -503,7 +660,9 @@ export const uploadAdaptor = (...args) => {
}
return qiniuOSSUpload(...args);
} else if (type === IMAGE_HOSTING_NAMES.aliyun) {
const config = JSON.parse(window.localStorage.getItem(ALIOSS_IMAGE_HOSTING));
const config = JSON.parse(
window.localStorage.getItem(ALIOSS_IMAGE_HOSTING)
);
if (
!config.region.length ||
!config.accessKeyId.length ||
@ -514,16 +673,40 @@ export const uploadAdaptor = (...args) => {
return false;
}
return aliOSSUpload(...args);
} else if (type === IMAGE_HOSTING_NAMES.minio) {
const config = JSON.parse(
window.localStorage.getItem(MINIOOSS_IMAGE_HOSTING)
);
if (
!config.endPoint.length ||
!config.accessKey.length ||
!config.secretKey.length ||
!config.bucket.length
) {
message.error("请先配置Minio图床");
return false;
}
return minioOSSUpload(...args);
} else if (type === IMAGE_HOSTING_NAMES.gitee) {
const config = JSON.parse(window.localStorage.getItem(GITEE_IMAGE_HOSTING));
if (!config.username.length || !config.repo.length || !config.token.length) {
if (
!config.username.length ||
!config.repo.length ||
!config.token.length
) {
message.error("请先配置 Gitee 图床");
return false;
}
return giteeUpload(...args);
} else if (type === IMAGE_HOSTING_NAMES.github) {
const config = JSON.parse(window.localStorage.getItem(GITHUB_IMAGE_HOSTING));
if (!config.username.length || !config.repo.length || !config.token.length) {
const config = JSON.parse(
window.localStorage.getItem(GITHUB_IMAGE_HOSTING)
);
if (
!config.username.length ||
!config.repo.length ||
!config.token.length
) {
message.error("请先配置 GitHub 图床");
return false;
}

@ -12,6 +12,7 @@ const useImageHosting = {
name: "图壳",
isSmmsOpen: true,
isQiniuyunOpen: true,
isMinioOpen: true,
isAliyunOpen: true,
};

532
yarn.lock

@ -2132,11 +2132,23 @@
resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
"@zxing/text-encoding@0.9.0":
version "0.9.0"
resolved "https://registry.npmmirror.com/@zxing/text-encoding/-/text-encoding-0.9.0.tgz#fb50ffabc6c7c66a0c96b4c03e3d9be74864b70b"
integrity sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==
abab@^2.0.0:
version "2.0.3"
resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.3.tgz#623e2075e02eb2d3f2475e49f99c91846467907a"
integrity sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==
abort-controller@^3.0.0:
version "3.0.0"
resolved "https://registry.npmmirror.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392"
integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==
dependencies:
event-target-shim "^5.0.0"
accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7:
version "1.3.7"
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
@ -2678,6 +2690,17 @@ assert@^1.1.1:
object-assign "^4.1.1"
util "0.10.3"
assert@^2.0.0:
version "2.1.0"
resolved "https://registry.npmmirror.com/assert/-/assert-2.1.0.tgz#6d92a238d05dc02e7427c881fb8be81c8448b2dd"
integrity sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==
dependencies:
call-bind "^1.0.2"
is-nan "^1.3.2"
object-is "^1.1.5"
object.assign "^4.1.4"
util "^0.12.5"
assign-symbols@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
@ -2735,6 +2758,11 @@ async@^3.1.0:
resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720"
integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==
async@^3.2.4:
version "3.2.6"
resolved "https://registry.npmmirror.com/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce"
integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
@ -2758,6 +2786,13 @@ autoprefixer@^9.3.1, autoprefixer@^9.4.2:
postcss "^7.0.26"
postcss-value-parser "^4.0.2"
available-typed-arrays@^1.0.7:
version "1.0.7"
resolved "https://registry.npmmirror.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846"
integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==
dependencies:
possible-typed-array-names "^1.0.0"
aws-sign2@~0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
@ -3333,6 +3368,11 @@ base64-js@^1.0.2:
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1"
integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==
base64-js@^1.3.1:
version "1.5.1"
resolved "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
base@^0.11.1:
version "0.11.2"
resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
@ -3395,6 +3435,13 @@ bindings@^1.5.0:
dependencies:
file-uri-to-path "1.0.0"
block-stream2@^2.1.0:
version "2.1.0"
resolved "https://registry.npmmirror.com/block-stream2/-/block-stream2-2.1.0.tgz#ac0c5ef4298b3857796e05be8ebed72196fa054b"
integrity sha512-suhjmLI57Ewpmq00qaygS8UgEq2ly2PCItenIyhMqVjo4t4pGzqMvfgJuX8iWTeSDdfSSqS6j38fL4ToNL7Pfg==
dependencies:
readable-stream "^3.4.0"
bluebird@^3.3.5, bluebird@^3.5.1, bluebird@^3.5.5:
version "3.7.2"
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
@ -3501,6 +3548,11 @@ brorand@^1.0.1:
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
browser-or-node@^2.1.1:
version "2.1.1"
resolved "https://registry.npmmirror.com/browser-or-node/-/browser-or-node-2.1.1.tgz#738790b3a86a8fc020193fa581273fbe65eaea0f"
integrity sha512-8CVjaLJGuSKMVTxJ2DpBl5XnlNDiT4cQFeuCJJrvJmts9YrTZDizTX7PjC2s6W4x+MBGZeEY6dGMrF04/6Hgqg==
browser-process-hrtime@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626"
@ -3611,6 +3663,11 @@ btoa@^1.2.1:
resolved "https://registry.yarnpkg.com/btoa/-/btoa-1.2.1.tgz#01a9909f8b2c93f6bf680ba26131eb30f7fa3d73"
integrity sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==
buffer-crc32@^1.0.0:
version "1.0.0"
resolved "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-1.0.0.tgz#a10993b9055081d55304bd9feb4a072de179f405"
integrity sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==
buffer-from@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
@ -3635,6 +3692,14 @@ buffer@^4.3.0:
ieee754 "^1.1.4"
isarray "^1.0.0"
buffer@^6.0.3:
version "6.0.3"
resolved "https://registry.npmmirror.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6"
integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==
dependencies:
base64-js "^1.3.1"
ieee754 "^1.2.1"
builtin-status-codes@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
@ -3706,6 +3771,17 @@ cache-base@^1.0.1:
union-value "^1.0.0"
unset-value "^1.0.0"
call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.7:
version "1.0.7"
resolved "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9"
integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==
dependencies:
es-define-property "^1.0.0"
es-errors "^1.3.0"
function-bind "^1.1.2"
get-intrinsic "^1.2.4"
set-function-length "^1.2.1"
call-me-maybe@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b"
@ -4229,7 +4305,7 @@ connect-history-api-fallback@^1.3.0:
resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc"
integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==
console-browserify@^1.1.0:
console-browserify@^1.1.0, console-browserify@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336"
integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==
@ -4440,7 +4516,7 @@ cross-spawn@^7.0.0:
shebang-command "^2.0.0"
which "^2.0.1"
crypto-browserify@^3.11.0:
crypto-browserify@^3.11.0, crypto-browserify@^3.12.0:
version "3.12.0"
resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"
integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==
@ -4793,6 +4869,11 @@ decode-uri-component@^0.2.0:
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
decode-uri-component@^0.2.2:
version "0.2.2"
resolved "https://registry.npmmirror.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9"
integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==
dedent@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
@ -4842,6 +4923,15 @@ default-user-agent@^1.0.0:
dependencies:
os-name "~1.0.3"
define-data-property@^1.0.1, define-data-property@^1.1.4:
version "1.1.4"
resolved "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e"
integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==
dependencies:
es-define-property "^1.0.0"
es-errors "^1.3.0"
gopd "^1.0.1"
define-properties@^1.1.2, define-properties@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
@ -4849,6 +4939,15 @@ define-properties@^1.1.2, define-properties@^1.1.3:
dependencies:
object-keys "^1.0.12"
define-properties@^1.2.1:
version "1.2.1"
resolved "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c"
integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==
dependencies:
define-data-property "^1.0.1"
has-property-descriptors "^1.0.0"
object-keys "^1.1.1"
define-property@^0.2.5:
version "0.2.5"
resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
@ -5119,6 +5218,11 @@ domain-browser@^1.1.1:
resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==
domain-browser@^4.22.0:
version "4.23.0"
resolved "https://registry.npmmirror.com/domain-browser/-/domain-browser-4.23.0.tgz#427ebb91efcb070f05cffdfb8a4e9a6c25f8c94b"
integrity sha512-ArzcM/II1wCCujdCNyQjXrAFwS4mrLh4C7DZWlaI8mdh7h3BfKdNd3bKXITfl2PT9FtfQqaGvhi1vPRQPimjGA==
domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f"
@ -5393,6 +5497,18 @@ es-array-method-boxes-properly@^1.0.0:
resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e"
integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==
es-define-property@^1.0.0:
version "1.0.0"
resolved "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845"
integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==
dependencies:
get-intrinsic "^1.2.4"
es-errors@^1.3.0:
version "1.3.0"
resolved "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f"
integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
es-get-iterator@^1.0.2:
version "1.1.0"
resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.0.tgz#bb98ad9d6d63b31aacdc8f89d5d0ee57bcb5b4c8"
@ -5720,6 +5836,11 @@ etag@~1.8.1:
resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
event-target-shim@^5.0.0:
version "5.0.1"
resolved "https://registry.npmmirror.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789"
integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==
eventemitter3@^3.1.0:
version "3.1.2"
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7"
@ -5730,6 +5851,11 @@ eventemitter3@^4.0.0:
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb"
integrity sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==
eventemitter3@^5.0.1:
version "5.0.1"
resolved "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4"
integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==
eventlistener@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/eventlistener/-/eventlistener-0.0.1.tgz#ed2baabb852227af2bcf889152c72c63ca532eb8"
@ -5740,6 +5866,11 @@ events@^3.0.0:
resolved "https://registry.yarnpkg.com/events/-/events-3.1.0.tgz#84279af1b34cb75aa88bf5ff291f6d0bd9b31a59"
integrity sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==
events@^3.3.0:
version "3.3.0"
resolved "https://registry.npmmirror.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
eventsource@0.1.6:
version "0.1.6"
resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232"
@ -6032,6 +6163,13 @@ fast-levenshtein@~2.0.6:
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
fast-xml-parser@^4.2.2:
version "4.4.1"
resolved "https://registry.npmmirror.com/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz#86dbf3f18edf8739326447bcaac31b4ae7f6514f"
integrity sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==
dependencies:
strnum "^1.0.5"
fastparse@^1.1.1:
version "1.1.2"
resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9"
@ -6188,6 +6326,16 @@ fill-range@^7.0.1:
dependencies:
to-regex-range "^5.0.1"
filter-obj@^1.1.0:
version "1.1.0"
resolved "https://registry.npmmirror.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b"
integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==
filter-obj@^2.0.2:
version "2.0.2"
resolved "https://registry.npmmirror.com/filter-obj/-/filter-obj-2.0.2.tgz#fff662368e505d69826abb113f0f6a98f56e9d5f"
integrity sha512-lO3ttPjHZRfjMcxWKb1j1eDhTFsu4meeR3lnMcnBFhk6RuLhvEiuALu2TlfL310ph4lCYYwgF/ElIjdP739tdg==
finalhandler@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
@ -6299,6 +6447,13 @@ follow-redirects@^1.0.0:
dependencies:
debug "^3.0.0"
for-each@^0.3.3:
version "0.3.3"
resolved "https://registry.npmmirror.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e"
integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==
dependencies:
is-callable "^1.1.3"
for-in@^0.1.3:
version "0.1.8"
resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1"
@ -6460,6 +6615,11 @@ function-bind@^1.1.1:
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
function-bind@^1.1.2:
version "1.1.2"
resolved "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
function.prototype.name@^1.1.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.2.tgz#5cdf79d7c05db401591dfde83e3b70c5123e9a45"
@ -6513,6 +6673,17 @@ get-caller-file@^2.0.1:
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
get-intrinsic@^1.1.3, get-intrinsic@^1.2.4:
version "1.2.4"
resolved "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd"
integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==
dependencies:
es-errors "^1.3.0"
function-bind "^1.1.2"
has-proto "^1.0.1"
has-symbols "^1.0.3"
hasown "^2.0.0"
get-own-enumerable-property-symbols@^3.0.0:
version "3.0.2"
resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664"
@ -6742,6 +6913,13 @@ globby@^6.1.0:
pify "^2.0.0"
pinkie-promise "^2.0.0"
gopd@^1.0.1:
version "1.0.1"
resolved "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c"
integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==
dependencies:
get-intrinsic "^1.1.3"
graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.2:
version "4.2.3"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423"
@ -6834,11 +7012,35 @@ has-flag@^4.0.0:
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2:
version "1.0.2"
resolved "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854"
integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==
dependencies:
es-define-property "^1.0.0"
has-proto@^1.0.1:
version "1.0.3"
resolved "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd"
integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==
has-symbols@^1.0.0, has-symbols@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==
has-symbols@^1.0.3:
version "1.0.3"
resolved "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
has-tostringtag@^1.0.0, has-tostringtag@^1.0.2:
version "1.0.2"
resolved "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc"
integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==
dependencies:
has-symbols "^1.0.3"
has-unicode@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
@ -6898,6 +7100,13 @@ hash.js@^1.0.0, hash.js@^1.0.3:
inherits "^2.0.3"
minimalistic-assert "^1.0.1"
hasown@^2.0.0:
version "2.0.2"
resolved "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003"
integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
dependencies:
function-bind "^1.1.2"
he@1.2.x, he@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
@ -7232,6 +7441,11 @@ ieee754@^1.1.4:
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84"
integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==
ieee754@^1.2.1:
version "1.2.1"
resolved "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
iferr@^0.1.5:
version "0.1.5"
resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
@ -7356,7 +7570,7 @@ inflight@^1.0.4:
once "^1.3.0"
wrappy "1"
inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3:
inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@ -7501,6 +7715,11 @@ ipaddr.js@1.9.1, ipaddr.js@^1.5.2:
resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
ipaddr.js@^2.0.1:
version "2.2.0"
resolved "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-2.2.0.tgz#d33fa7bac284f4de7af949638c9d68157c6b92e8"
integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==
is-absolute-url@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6"
@ -7559,6 +7778,11 @@ is-buffer@^2.0.2:
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623"
integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==
is-callable@^1.1.3:
version "1.2.7"
resolved "https://registry.npmmirror.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055"
integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
is-callable@^1.1.4, is-callable@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab"
@ -7704,6 +7928,13 @@ is-generator-fn@^1.0.0:
resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-1.0.0.tgz#969d49e1bb3329f6bb7f09089be26578b2ddd46a"
integrity sha1-lp1J4bszKfa7fwkIm+JleLLd1Go=
is-generator-function@^1.0.7:
version "1.0.10"
resolved "https://registry.npmmirror.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72"
integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==
dependencies:
has-tostringtag "^1.0.0"
is-glob@^2.0.0, is-glob@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
@ -7735,6 +7966,14 @@ is-mobile@^2.1.0:
resolved "https://registry.yarnpkg.com/is-mobile/-/is-mobile-2.2.1.tgz#10f2320012c410cc285feecb13406bd586f1b2f8"
integrity sha512-6zELsfVFr326eq2CI53yvqq6YBanOxKBybwDT+MbMS2laBnK6Ez8m5XHSuTQQbnKRfpDzCod1CMWW5q3wZYMvA==
is-nan@^1.3.2:
version "1.3.2"
resolved "https://registry.npmmirror.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d"
integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==
dependencies:
call-bind "^1.0.0"
define-properties "^1.1.3"
is-number@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
@ -7897,6 +8136,13 @@ is-type-of@^1.0.0:
is-class-hotfix "~0.0.6"
isstream "~0.1.2"
is-typed-array@^1.1.3:
version "1.1.13"
resolved "https://registry.npmmirror.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229"
integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==
dependencies:
which-typed-array "^1.1.14"
is-typedarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
@ -9011,6 +9257,11 @@ lodash.uniq@^4.5.0:
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
lodash@^4.17.21:
version "4.17.21"
resolved "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
log-symbols@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18"
@ -9336,6 +9587,11 @@ mime-db@1.43.0, "mime-db@>= 1.43.0 < 2":
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58"
integrity sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==
mime-db@1.52.0:
version "1.52.0"
resolved "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24:
version "2.1.26"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06"
@ -9343,6 +9599,13 @@ mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24:
dependencies:
mime-db "1.43.0"
mime-types@^2.1.35:
version "2.1.35"
resolved "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
dependencies:
mime-db "1.52.0"
mime@1.6.0, mime@^1.3.4:
version "1.6.0"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
@ -9435,6 +9698,54 @@ minimist@~0.0.1:
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=
minio-js@^1.0.7:
version "1.0.7"
resolved "https://registry.npmmirror.com/minio-js/-/minio-js-1.0.7.tgz#144919e13ba5c1b8ace14ec248ae9a3a9833f36c"
integrity sha512-s5eNtnU9tbIpdJeTwJetnEn/gkScoCpOitQU8UJ8fmFCrIYDFK3gK6HUidilhIL1U7w37hqholuNaOwFFl6O/A==
dependencies:
minio "^7.0.32"
node-polyfill-webpack-plugin "^2.0.1"
minio@^7.0.32:
version "7.1.4"
resolved "https://registry.npmmirror.com/minio/-/minio-7.1.4.tgz#338590423366848109c017b98daf77b2b2d284f4"
integrity sha512-1rjcS8l7QlWsA4EZ1JauInkRkzu2J/qN0U+ee3HZErY84bdcebMhd10wDdfpAjmXyFsvrUPnKjZB2G7OJXrvXw==
dependencies:
async "^3.2.4"
block-stream2 "^2.1.0"
browser-or-node "^2.1.1"
buffer-crc32 "^1.0.0"
eventemitter3 "^5.0.1"
fast-xml-parser "^4.2.2"
ipaddr.js "^2.0.1"
lodash "^4.17.21"
mime-types "^2.1.35"
query-string "^7.1.3"
stream-json "^1.8.0"
through2 "^4.0.2"
web-encoding "^1.1.5"
xml2js "^0.5.0"
minio@^8.0.1:
version "8.0.1"
resolved "https://registry.npmmirror.com/minio/-/minio-8.0.1.tgz#9cc553cd7e3ab2498eee32401f02915bc09edcab"
integrity sha512-FzDO6yGnqLtm8sp3mXafWtiRUOslJSSg/aI0v9YbN5vjw5KLoODKAROCyi766NIvTSxcfHBrbhCSGk1A+MOzDg==
dependencies:
async "^3.2.4"
block-stream2 "^2.1.0"
browser-or-node "^2.1.1"
buffer-crc32 "^1.0.0"
eventemitter3 "^5.0.1"
fast-xml-parser "^4.2.2"
ipaddr.js "^2.0.1"
lodash "^4.17.21"
mime-types "^2.1.35"
query-string "^7.1.3"
stream-json "^1.8.0"
through2 "^4.0.2"
web-encoding "^1.1.5"
xml2js "^0.5.0"
mississippi@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022"
@ -9714,6 +10025,37 @@ node-notifier@^5.2.1:
shellwords "^0.1.1"
which "^1.3.0"
node-polyfill-webpack-plugin@^2.0.1:
version "2.0.1"
resolved "https://registry.npmmirror.com/node-polyfill-webpack-plugin/-/node-polyfill-webpack-plugin-2.0.1.tgz#141d86f177103a8517c71d99b7c6a46edbb1bb58"
integrity sha512-ZUMiCnZkP1LF0Th2caY6J/eKKoA0TefpoVa68m/LQU1I/mE8rGt4fNYGgNuCcK+aG8P8P43nbeJ2RqJMOL/Y1A==
dependencies:
assert "^2.0.0"
browserify-zlib "^0.2.0"
buffer "^6.0.3"
console-browserify "^1.2.0"
constants-browserify "^1.0.0"
crypto-browserify "^3.12.0"
domain-browser "^4.22.0"
events "^3.3.0"
filter-obj "^2.0.2"
https-browserify "^1.0.0"
os-browserify "^0.3.0"
path-browserify "^1.0.1"
process "^0.11.10"
punycode "^2.1.1"
querystring-es3 "^0.2.1"
readable-stream "^4.0.0"
stream-browserify "^3.0.0"
stream-http "^3.2.0"
string_decoder "^1.3.0"
timers-browserify "^2.0.12"
tty-browserify "^0.0.1"
type-fest "^2.14.0"
url "^0.11.0"
util "^0.12.4"
vm-browserify "^1.1.2"
node-releases@^1.0.0-alpha.11, node-releases@^1.1.3, node-releases@^1.1.50:
version "1.1.50"
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.50.tgz#803c40d2c45db172d0410e4efec83aa8c6ad0592"
@ -9838,6 +10180,14 @@ object-is@^1.0.1:
resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.2.tgz#6b80eb84fe451498f65007982f035a5b445edec4"
integrity sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ==
object-is@^1.1.5:
version "1.1.6"
resolved "https://registry.npmmirror.com/object-is/-/object-is-1.1.6.tgz#1a6a53aed2dd8f7e6775ff870bea58545956ab07"
integrity sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==
dependencies:
call-bind "^1.0.7"
define-properties "^1.2.1"
object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
@ -9860,6 +10210,16 @@ object.assign@^4.1.0:
has-symbols "^1.0.0"
object-keys "^1.0.11"
object.assign@^4.1.4:
version "4.1.5"
resolved "https://registry.npmmirror.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0"
integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==
dependencies:
call-bind "^1.0.5"
define-properties "^1.2.1"
has-symbols "^1.0.3"
object-keys "^1.1.1"
object.entries@^1.1.0, object.entries@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.1.tgz#ee1cf04153de02bb093fec33683900f57ce5399b"
@ -10282,6 +10642,11 @@ path-browserify@0.0.1:
resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a"
integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==
path-browserify@^1.0.1:
version "1.0.1"
resolved "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd"
integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==
path-dirname@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0"
@ -10495,6 +10860,11 @@ posix-character-classes@^0.1.0:
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
possible-typed-array-names@^1.0.0:
version "1.0.0"
resolved "https://registry.npmmirror.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f"
integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==
postcss-attribute-case-insensitive@^4.0.0:
version "4.0.2"
resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz#d93e46b504589e94ac7277b0463226c68041a880"
@ -11435,7 +11805,17 @@ qs@~6.5.2:
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
querystring-es3@^0.2.0:
query-string@^7.1.3:
version "7.1.3"
resolved "https://registry.npmmirror.com/query-string/-/query-string-7.1.3.tgz#a1cf90e994abb113a325804a972d98276fe02328"
integrity sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==
dependencies:
decode-uri-component "^0.2.2"
filter-obj "^1.1.0"
split-on-first "^1.0.0"
strict-uri-encode "^2.0.0"
querystring-es3@^0.2.0, querystring-es3@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=
@ -12279,6 +12659,15 @@ readable-stream@1.1.x:
isarray "0.0.1"
string_decoder "~0.10.x"
readable-stream@3, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0:
version "3.6.2"
resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967"
integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
dependencies:
inherits "^2.0.3"
string_decoder "^1.1.1"
util-deprecate "^1.0.1"
readable-stream@^3.0.6, readable-stream@^3.1.1:
version "3.6.0"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
@ -12288,6 +12677,17 @@ readable-stream@^3.0.6, readable-stream@^3.1.1:
string_decoder "^1.1.1"
util-deprecate "^1.0.1"
readable-stream@^4.0.0:
version "4.5.2"
resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-4.5.2.tgz#9e7fc4c45099baeed934bff6eb97ba6cf2729e09"
integrity sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==
dependencies:
abort-controller "^3.0.0"
buffer "^6.0.3"
events "^3.3.0"
process "^0.11.10"
string_decoder "^1.3.0"
readdirp@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525"
@ -12943,6 +13343,18 @@ set-blocking@^2.0.0, set-blocking@~2.0.0:
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
set-function-length@^1.2.1:
version "1.2.2"
resolved "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449"
integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==
dependencies:
define-data-property "^1.1.4"
es-errors "^1.3.0"
function-bind "^1.1.2"
get-intrinsic "^1.2.4"
gopd "^1.0.1"
has-property-descriptors "^1.0.2"
set-value@^2.0.0, set-value@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
@ -13327,6 +13739,11 @@ spdy@^4.0.0:
select-hose "^2.0.0"
spdy-transport "^3.0.0"
split-on-first@^1.0.0:
version "1.1.0"
resolved "https://registry.npmmirror.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f"
integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==
split-string@^3.0.1, split-string@^3.0.2:
version "3.1.0"
resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
@ -13397,6 +13814,19 @@ stream-browserify@^2.0.1:
inherits "~2.0.1"
readable-stream "^2.0.2"
stream-browserify@^3.0.0:
version "3.0.0"
resolved "https://registry.npmmirror.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f"
integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==
dependencies:
inherits "~2.0.4"
readable-stream "^3.5.0"
stream-chain@^2.2.5:
version "2.2.5"
resolved "https://registry.npmmirror.com/stream-chain/-/stream-chain-2.2.5.tgz#b30967e8f14ee033c5b9a19bbe8a2cba90ba0d09"
integrity sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==
stream-each@^1.1.0:
version "1.2.3"
resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae"
@ -13427,6 +13857,23 @@ stream-http@^2.7.2:
to-arraybuffer "^1.0.0"
xtend "^4.0.0"
stream-http@^3.2.0:
version "3.2.0"
resolved "https://registry.npmmirror.com/stream-http/-/stream-http-3.2.0.tgz#1872dfcf24cb15752677e40e5c3f9cc1926028b5"
integrity sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==
dependencies:
builtin-status-codes "^3.0.0"
inherits "^2.0.4"
readable-stream "^3.6.0"
xtend "^4.0.2"
stream-json@^1.8.0:
version "1.8.0"
resolved "https://registry.npmmirror.com/stream-json/-/stream-json-1.8.0.tgz#53f486b2e3b4496c506131f8d7260ba42def151c"
integrity sha512-HZfXngYHUAr1exT4fxlbc1IOce1RYxp2ldeaf97LYCOPSoOqY/1Psp7iGvpb+6JIOgkra9zDYnPX01hGAHzEPw==
dependencies:
stream-chain "^2.2.5"
stream-shift@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d"
@ -13437,6 +13884,11 @@ stream-wormhole@^1.0.4:
resolved "https://registry.yarnpkg.com/stream-wormhole/-/stream-wormhole-1.1.0.tgz#300aff46ced553cfec642a05251885417693c33d"
integrity sha512-gHFfL3px0Kctd6Po0M8TzEvt3De/xu6cnRrjlfYNhwbhLPLwigI2t1nc6jrzNuaYg5C4YF78PPFuQPzRiqn9ew==
strict-uri-encode@^2.0.0:
version "2.0.0"
resolved "https://registry.npmmirror.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546"
integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==
string-argv@^0.3.0:
version "0.3.1"
resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da"
@ -13539,7 +13991,7 @@ string.prototype.trimright@^2.1.1:
define-properties "^1.1.3"
function-bind "^1.1.1"
string_decoder@^1.0.0, string_decoder@^1.1.1:
string_decoder@^1.0.0, string_decoder@^1.1.1, string_decoder@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
@ -13637,6 +14089,11 @@ strip-json-comments@^3.0.1:
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7"
integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==
strnum@^1.0.5:
version "1.0.5"
resolved "https://registry.npmmirror.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db"
integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==
style-loader@0.23.1, style-loader@^0.23.1:
version "0.23.1"
resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.1.tgz#cb9154606f3e771ab6c4ab637026a1049174d925"
@ -13889,6 +14346,13 @@ through2@^2.0.0:
readable-stream "~2.3.6"
xtend "~4.0.1"
through2@^4.0.2:
version "4.0.2"
resolved "https://registry.npmmirror.com/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764"
integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==
dependencies:
readable-stream "3"
through@^2.3.6, through@~2.3:
version "2.3.8"
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
@ -13904,6 +14368,13 @@ thunky@^1.0.2:
resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d"
integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==
timers-browserify@^2.0.12:
version "2.0.12"
resolved "https://registry.npmmirror.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee"
integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==
dependencies:
setimmediate "^1.0.4"
timers-browserify@^2.0.4:
version "2.0.11"
resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f"
@ -14044,6 +14515,11 @@ tty-browserify@0.0.0:
resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=
tty-browserify@^0.0.1:
version "0.0.1"
resolved "https://registry.npmmirror.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811"
integrity sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==
tunnel-agent@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
@ -14073,6 +14549,11 @@ type-fest@^0.8.1:
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
type-fest@^2.14.0:
version "2.19.0"
resolved "https://registry.npmmirror.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b"
integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==
type-is@~1.6.17, type-is@~1.6.18:
version "1.6.18"
resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
@ -14309,6 +14790,17 @@ util@^0.11.0:
dependencies:
inherits "2.0.3"
util@^0.12.3, util@^0.12.4, util@^0.12.5:
version "0.12.5"
resolved "https://registry.npmmirror.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc"
integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==
dependencies:
inherits "^2.0.3"
is-arguments "^1.0.4"
is-generator-function "^1.0.7"
is-typed-array "^1.1.3"
which-typed-array "^1.1.2"
utila@^0.4.0, utila@~0.4:
version "0.4.0"
resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c"
@ -14394,7 +14886,7 @@ verror@1.10.0:
core-util-is "1.0.2"
extsprintf "^1.2.0"
vm-browserify@^1.0.1:
vm-browserify@^1.0.1, vm-browserify@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0"
integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==
@ -14444,6 +14936,15 @@ wbuf@^1.1.0, wbuf@^1.7.3:
dependencies:
minimalistic-assert "^1.0.0"
web-encoding@^1.1.5:
version "1.1.5"
resolved "https://registry.npmmirror.com/web-encoding/-/web-encoding-1.1.5.tgz#fc810cf7667364a6335c939913f5051d3e0c4864"
integrity sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==
dependencies:
util "^0.12.3"
optionalDependencies:
"@zxing/text-encoding" "0.9.0"
web-resource-inliner@^4.3.1:
version "4.3.4"
resolved "https://registry.yarnpkg.com/web-resource-inliner/-/web-resource-inliner-4.3.4.tgz#07e1b4bcbcbee1021251b018e902bac5713f1be0"
@ -14669,6 +15170,17 @@ which-module@^2.0.0:
resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
which-typed-array@^1.1.14, which-typed-array@^1.1.2:
version "1.1.15"
resolved "https://registry.npmmirror.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d"
integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==
dependencies:
available-typed-arrays "^1.0.7"
call-bind "^1.0.7"
for-each "^0.3.3"
gopd "^1.0.1"
has-tostringtag "^1.0.2"
which@^1.2.12, which@^1.2.14, which@^1.2.9, which@^1.3.0, which@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
@ -14921,6 +15433,14 @@ xml2js@^0.4.16:
sax ">=0.6.0"
xmlbuilder "~11.0.0"
xml2js@^0.5.0:
version "0.5.0"
resolved "https://registry.npmmirror.com/xml2js/-/xml2js-0.5.0.tgz#d9440631fbb2ed800203fad106f2724f62c493b7"
integrity sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==
dependencies:
sax ">=0.6.0"
xmlbuilder "~11.0.0"
xmlbuilder@~11.0.0:
version "11.0.1"
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3"