diff --git a/package.json b/package.json index 73c9885..f3bd516 100644 --- a/package.json +++ b/package.json @@ -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" ] } -} \ No newline at end of file +} diff --git a/src/App.js b/src/App.js index 1e26954..68a0425 100644 --- a/src/App.js +++ b/src/App.js @@ -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) { diff --git a/src/Lib.js b/src/Lib.js index ea65612..9c3c366 100644 --- a/src/Lib.js +++ b/src/Lib.js @@ -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 ( } title="请使用 PC 端打开排版工具" subTitle="更多 Markdown Nice 信息,请扫码关注公众号「编程如画」" - extra={} + extra={ + + } /> )} @@ -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; diff --git a/src/component/Dialog/ImageDialog.js b/src/component/Dialog/ImageDialog.js index f4f8ba7..3e38797 100644 --- a/src/component/Dialog/ImageDialog.js +++ b/src/component/Dialog/ImageDialog.js @@ -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 {

+ {useImageHosting.isMinioOpen ? ( + + + + ) : null} {useImageHosting.isAliyunOpen ? ( diff --git a/src/component/ImageHosting/MinioOSS.js b/src/component/ImageHosting/MinioOSS.js new file mode 100644 index 0000000..5ef440b --- /dev/null +++ b/src/component/ImageHosting/MinioOSS.js @@ -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 ( +
+ + + + + + + + + + + + + + 配置后请在右上角进行切换, + + MINIO图床配置文档 + + +
+ ); + } +} + +const style = { + formItem: { + marginBottom: "10px" + } +}; + +export default MinioOSS; diff --git a/src/index.d.ts b/src/index.d.ts index 09dc0e7..47fca2e 100644 --- a/src/index.d.ts +++ b/src/index.d.ts @@ -53,6 +53,7 @@ export interface MarkdownNiceProps { name: string; isSmmsOpen: boolean; isQiniuyunOpen: boolean; + isMinioOpen: boolean; isAliyunOpen: boolean; isGiteeOpen: boolean; isGitHubOpen: boolean; diff --git a/src/index.js b/src/index.js index 98f2c8b..f4efc2c 100644 --- a/src/index.js +++ b/src/index.js @@ -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 diff --git a/src/store/imageHosting.js b/src/store/imageHosting.js index 23f3749..b775161 100644 --- a/src/store/imageHosting.js +++ b/src/store/imageHosting.js @@ -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); } diff --git a/src/template/basic.js b/src/template/basic.js index ba82ccb..784443c 100644 --- a/src/template/basic.js +++ b/src/template/basic.js @@ -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%; diff --git a/src/utils/constant.js b/src/utils/constant.js index df54803..1c49ea7 100644 --- a/src/utils/constant.js +++ b/src/utils/constant.js @@ -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引擎" + } ]; diff --git a/src/utils/imageHosting.js b/src/utils/imageHosting.js index 8da72d6..1918436 100644 --- a/src/utils/imageHosting.js +++ b/src/utils/imageHosting.js @@ -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; } diff --git a/stories/allImageHosting.js b/stories/allImageHosting.js index f4a490a..397bbd6 100644 --- a/stories/allImageHosting.js +++ b/stories/allImageHosting.js @@ -12,6 +12,7 @@ const useImageHosting = { name: "图壳", isSmmsOpen: true, isQiniuyunOpen: true, + isMinioOpen: true, isAliyunOpen: true, }; diff --git a/yarn.lock b/yarn.lock index b028fd6..824ca13 100644 --- a/yarn.lock +++ b/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"