diff --git a/CHANGELOG.md b/CHANGELOG.md index 73484c11..9bca4bc6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,28 @@ +## :tada: 2.7.2 (2024-01-23) + + +### :sparkles: Features + +* **custom:** add build-in aws s3 support, add endpoint for upyun ([efc6a16](https://github.com/Kuingsmile/piclist/commit/efc6a16)), closes [#143](https://github.com/Kuingsmile/piclist/issues/143) [#134](https://github.com/Kuingsmile/piclist/issues/134) +* **custom:** add new area support for qiniu cloud ([89fc032](https://github.com/Kuingsmile/piclist/commit/89fc032)) +* **custom:** manage page auto import support build-in s3 ([48ec494](https://github.com/Kuingsmile/piclist/commit/48ec494)) +* **custom:** support build-in s3 remote delete ([d1e2792](https://github.com/Kuingsmile/piclist/commit/d1e2792)) + + +### :bug: Bug Fixes + +* **custom:** fix gallery copy bug of aws-s3 ([0e81ccd](https://github.com/Kuingsmile/piclist/commit/0e81ccd)) +* **custom:** fix s3 remote delete bug when url is modified locally ([58248bc](https://github.com/Kuingsmile/piclist/commit/58248bc)) +* **custom:** update formatConvertObj to use JSON.stringify ([719e74f](https://github.com/Kuingsmile/piclist/commit/719e74f)) + + +### :pencil: Documentation + +* **custom:** update FAQ ([c6dc1ea](https://github.com/Kuingsmile/piclist/commit/c6dc1ea)) +* **custom:** update version changelog ([9e69702](https://github.com/Kuingsmile/piclist/commit/9e69702)) + + + ## :tada: 2.7.1 (2024-01-15) diff --git a/FAQ.md b/FAQ.md index 8e31b5ab..e3088e5d 100644 --- a/FAQ.md +++ b/FAQ.md @@ -45,6 +45,7 @@ PicList所有新功能的添加没有影响到PicGo的原有功能,所以你 PicList本体支持了如下图床: - `七牛图床` +- `AWS S3 兼容平台` - `腾讯云 COS` - `又拍云` - `GitHub` @@ -125,7 +126,7 @@ PicList兼容绝大部分的PicGo插件。然而由于PicList使用了更新的e ### docker run -修改`./piclist`为你自己的路径,修改`piclist123456`为你自己的密钥。 +修改 `./piclist`为你自己的路径,修改 `piclist123456`为你自己的密钥。 ```bash docker run -d \ @@ -139,7 +140,7 @@ docker run -d \ ### docker-compose -下载piclist-core仓库的`docker-compose.yml`文件,或者复制以下内容到`docker-compose.yml`文件中: +下载piclist-core仓库的 `docker-compose.yml`文件,或者复制以下内容到 `docker-compose.yml`文件中: ```yaml version: '3.3' @@ -156,7 +157,7 @@ services: command: node /usr/local/bin/picgo-server -k piclist123456 ``` -你可以修改`volumes`为你自己的路径,修改`command`为你自己的密钥。 +你可以修改 `volumes`为你自己的路径,修改 `command`为你自己的密钥。 然后运行 diff --git a/FAQ_EN.md b/FAQ_EN.md index 618ea53c..bbed1184 100644 --- a/FAQ_EN.md +++ b/FAQ_EN.md @@ -45,6 +45,7 @@ Yes. With the newly added image hosting management function, you can upload file PicList itself supports the following image hosting platforms: - Qiniu Cloud +- AWS S3 compatible platform - Tencent Cloud COS - Upyun - GitHub diff --git a/currentVersion.md b/currentVersion.md index 3572b8a5..4ee6a944 100644 --- a/currentVersion.md +++ b/currentVersion.md @@ -1,15 +1,12 @@ ✨ Features -- 新增内置兰空图床上传和删除支持 -- Webdav图床现在支持设置URL参数后缀 -- 现在支持指定每种图片格式对应的转换后格式 -- 现在默认启用mozJPEG编码器以减小文件体积 -- 现在打开手册页面会询问打开方式 -- 优化了重命名选项的提示 -- 更新提示窗口现在提供跳转至版本发布页手动下载的选项 +- 新增内置S3 API兼容平台支持 +- 现在又拍云图床支持自定义接口地址 +- 七牛云新建存储桶新增`亚太-河内`支持 🐛 Bug Fixes -- 修复了sftp图床上传相同文件名的图片会报错的问题 -- 修复了imgur图床转换格式为webp时,文件名错误的问题 -- 修复了部分i18n错误的问题 \ No newline at end of file +- 修复了修改s3图床相册链接后,拷贝图片链接没有对应修改的问题 +- 修复了修改s3图床相册连接后,云端删除失效的问题 +- 修复了设置精细转换格式时的序列化错误 +- 修复了界面翻译错误 diff --git a/currentVersion_en.md b/currentVersion_en.md index e5efbcf0..49671843 100644 --- a/currentVersion_en.md +++ b/currentVersion_en.md @@ -1,15 +1,17 @@ ✨ Features -- Add built-in Lsky Pro image bed upload and delete support -- Webdav image bed now supports setting URL parameter suffix -- Now you can specify the converted format for each image format -- Now enable the mozJPEG encoder by default to reduce file size -- Now the open manual page will ask for the open method -- Optimize the prompt of the rename option -- The update prompt window now provides an option to jump to the version release page to download manually +- Add support for built-in S3 API compatible platform +- Upyun now supports custom interface addresses +- Qiniu Cloud new bucket supports `Asia-Pacific-Hanoi` 🐛 Bug Fixes -- Fixed the problem that uploading images with the same file name to the sftp image bed will report an error -- Fixed the problem that the file name is incorrect when converting the format of the imgur image bed to webp -- Fixed some i18n errors +- 修复了修改s3图床相册链接后,拷贝图片链接没有对应修改的问题 +- 修复了修改s3图床相册连接后,云端删除失效的问题 +- 修复了设置精细转换格式时的序列化错误 +- 修复了界面翻译错误 + +- Fix the problem that the copied image link is not modified after modifying the s3 album link +- Fixed the problem that the cloud deletion is invalid after modifying the s3 album connection +- Fixed serialization error when setting fine conversion format +- Fixed interface translation error diff --git a/package.json b/package.json index c0462f59..bf4be547 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "piclist", - "version": "2.7.1", + "version": "2.7.2", "author": { "name": "Kuingsmile", "email": "pkukuing@gmail.com" @@ -68,7 +68,7 @@ "multer": "^1.4.5-lts.1", "node-ssh-no-cpu-features": "^1.0.1", "nodejs-file-downloader": "^4.12.1", - "piclist": "^1.7.6", + "piclist": "^1.7.7", "pinia": "^2.1.7", "pinia-plugin-persistedstate": "^3.2.0", "proxy-agent": "^5.0.0", diff --git a/src/main.ts b/src/main.ts index a35d890f..332b7bdd 100644 --- a/src/main.ts +++ b/src/main.ts @@ -58,7 +58,8 @@ app.config.globalProperties.$builtInPicBed = [ 'sftpplist', 'telegraphplist', 'piclist', - 'lskyplist' + 'lskyplist', + 'aws-s3-plist' ] app.config.globalProperties.$$db = db diff --git a/src/main/manage/utils/constants.ts b/src/main/manage/utils/constants.ts index 24178c59..8cc0862a 100644 --- a/src/main/manage/utils/constants.ts +++ b/src/main/manage/utils/constants.ts @@ -37,7 +37,8 @@ const QiniuAreaCodeName : IStringKeyMap = { z2: '华南-广东', na0: '北美-洛杉矶', as0: '亚太-新加坡', - 'ap-northeast-1': '亚太-首尔' + 'ap-northeast-1': '亚太-首尔', + 'ap-southeast-2': '亚太-河内' } const TencentAreaCodeName : IStringKeyMap = { diff --git a/src/main/utils/deleteFunc.ts b/src/main/utils/deleteFunc.ts index 5b27916d..1697b393 100644 --- a/src/main/utils/deleteFunc.ts +++ b/src/main/utils/deleteFunc.ts @@ -73,8 +73,11 @@ async function getDogeToken (accessKey: string, secretKey: string): Promise<{} | export async function removeFileFromS3InMain (configMap: IStringKeyMap, dogeMode: boolean = false) { try { - const { imgUrl, config: { accessKeyID, secretAccessKey, bucketName, endpoint, pathStyleAccess, rejectUnauthorized, proxy } } = configMap - let { config: { region } } = configMap + const { url: rawUrl, type, config: { accessKeyID, secretAccessKey, bucketName, endpoint, pathStyleAccess, rejectUnauthorized, proxy } } = configMap + let { imgUrl, config: { region } } = configMap + if (type === 'aws-s3' || type === 'aws-s3-plist') { + imgUrl = rawUrl || imgUrl || '' + } const url = new URL(!/^https?:\/\//.test(imgUrl) ? `http://${imgUrl}` : imgUrl) let fileKey = url.pathname.replace(/^\/+/, '') if (pathStyleAccess) { diff --git a/src/main/utils/pasteTemplate.ts b/src/main/utils/pasteTemplate.ts index 18e21a1a..0687d539 100644 --- a/src/main/utils/pasteTemplate.ts +++ b/src/main/utils/pasteTemplate.ts @@ -24,7 +24,10 @@ export const formatCustomLink = (customLink: string, item: ImgInfo) => { export default async (style: IPasteStyle, item: ImgInfo, customLink: string | undefined) => { let url = item.url || item.imgUrl - url = handleUrlEncodeWithSetting(item.url || item.imgUrl) + if (item.type === 'aws-s3' || item.type === 'aws-s3-plist') { + url = item.imgUrl || item.url || '' + } + url = handleUrlEncodeWithSetting(url) const useShortUrl = db.get('settings.useShortUrl') || false if (useShortUrl) { url = await generateShortUrl(url) diff --git a/src/renderer/apis/allApi.ts b/src/renderer/apis/allApi.ts index d5cbde91..f95a2b4e 100644 --- a/src/renderer/apis/allApi.ts +++ b/src/renderer/apis/allApi.ts @@ -18,6 +18,7 @@ import LskyplistApi from './lskyplist' const apiMap: IStringKeyMap = { aliyun: AliyunApi, 'aws-s3': AwsS3Api, + 'aws-s3-plist': AwsS3Api, github: GithubApi, imgur: ImgurApi, local: LocalApi, diff --git a/src/renderer/manage/pages/logIn.vue b/src/renderer/manage/pages/logIn.vue index f4f59816..08f9a064 100644 --- a/src/renderer/manage/pages/logIn.vue +++ b/src/renderer/manage/pages/logIn.vue @@ -577,7 +577,7 @@ function handleConfigImport (alias: string) { async function getCurrentConfigList () { await manageStore.refreshConfig() const configList = await getPicBedsConfig('uploader') ?? {} - const pbList = ['aliyun', 'aws-s3', 'github', 'imgur', 'local', 'qiniu', 'sftpplist', 'smms', 'tcyun', 'upyun', 'webdavplist'] + const pbList = ['aliyun', 'aws-s3', 'aws-s3-plist', 'github', 'imgur', 'local', 'qiniu', 'sftpplist', 'smms', 'tcyun', 'upyun', 'webdavplist'] const filteredConfigList = pbList.flatMap((pb) => { const config = configList[pb] @@ -615,7 +615,7 @@ async function transUpToManage (config: IUploaderConfigListItem, picBedName: str ? 'webdav' : picBedName === 'sftpplist' ? 'sftp' - : picBedName === 'aws-s3' + : picBedName === 'aws-s3' || picBedName === 'aws-s3-plist' ? 's3plist' : picBedName}-${config._configName ?? 'Default'}-imp` if (!autoImportPicBed.includes(picBedName) || isImported(alias)) return @@ -797,6 +797,7 @@ async function transUpToManage (config: IUploaderConfigListItem, picBedName: str delete resultMap.paging break case 'aws-s3': + case 'aws-s3-plist': if (!config.accessKeyID || !config.secretAccessKey) return Object.assign(resultMap, { ...commonConfig, diff --git a/src/renderer/pages/PicGoSetting.vue b/src/renderer/pages/PicGoSetting.vue index 7cc3afb1..b1112e08 100644 --- a/src/renderer/pages/PicGoSetting.vue +++ b/src/renderer/pages/PicGoSetting.vue @@ -1725,7 +1725,7 @@ function handleSaveConfig () { return imageExtList.includes(item[0]) && availableFormat.includes(item[1]) }) const formatConvertObjFilter = Object.fromEntries(formatConvertObjEntriesFilter) - compressForm.formatConvertObj = formatConvertObjFilter + compressForm.formatConvertObj = JSON.stringify(formatConvertObjFilter) saveConfig('buildIn.compress', toRaw(compressForm)) saveConfig('buildIn.watermark', toRaw(waterMarkForm)) closeDialog() diff --git a/src/renderer/pages/TrayPage.vue b/src/renderer/pages/TrayPage.vue index e2f0b7fa..24a1bcf8 100644 --- a/src/renderer/pages/TrayPage.vue +++ b/src/renderer/pages/TrayPage.vue @@ -140,6 +140,9 @@ async function copyTheLink (item: ImgInfo) { async function pasteTemplate (style: IPasteStyle, item: ImgInfo, customLink: string | undefined) { let url = item.url || item.imgUrl + if (item.type === 'aws-s3' || item.type === 'aws-s3-plist') { + url = item.imgUrl || item.url || '' + } if ((await getConfig('settings.encodeOutputURL')) === true) { url = handleUrlEncode(url) } diff --git a/src/renderer/pages/Upload.vue b/src/renderer/pages/Upload.vue index d05d3b39..4d968dae 100644 --- a/src/renderer/pages/Upload.vue +++ b/src/renderer/pages/Upload.vue @@ -535,7 +535,7 @@ function handleSaveConfig () { return imageExtList.includes(item[0]) && availableFormat.includes(item[1]) }) const formatConvertObjFilter = Object.fromEntries(formatConvertObjEntriesFilter) - compressForm.formatConvertObj = formatConvertObjFilter + compressForm.formatConvertObj = JSON.stringify(formatConvertObjFilter) saveConfig('buildIn.compress', toRaw(compressForm)) saveConfig('buildIn.watermark', toRaw(waterMarkForm)) closeDialog() diff --git a/src/universal/utils/static.ts b/src/universal/utils/static.ts index c7965c21..63697741 100644 --- a/src/universal/utils/static.ts +++ b/src/universal/utils/static.ts @@ -22,5 +22,6 @@ export const picBedsCanbeDeleted = [ 'huaweicloud-uploader', 'alist', 'piclist', - 'lskyplist' + 'lskyplist', + 'aws-s3-plist' ] diff --git a/yarn.lock b/yarn.lock index 3eee5093..4d717340 100644 --- a/yarn.lock +++ b/yarn.lock @@ -111,7 +111,7 @@ "@aws-sdk/util-utf8-browser" "^3.0.0" tslib "^1.11.1" -"@aws-sdk/client-s3@^3.421.0": +"@aws-sdk/client-s3@3.421.0", "@aws-sdk/client-s3@^3.421.0": version "3.421.0" resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.421.0.tgz#cf0e4a5e394c55463839b405af9dc6e3271509e4" integrity sha512-vUXTY4toeHDf5EY2kOn04Ww9vTW2IVGy4+cymFp1cz5QT7g9KKj4Okj5DMdPld2y7wjgc+J/viTWEf26By49vw== @@ -333,7 +333,7 @@ "@smithy/types" "^2.3.3" tslib "^2.5.0" -"@aws-sdk/lib-storage@^3.421.0": +"@aws-sdk/lib-storage@3.421.0", "@aws-sdk/lib-storage@^3.421.0": version "3.421.0" resolved "https://registry.yarnpkg.com/@aws-sdk/lib-storage/-/lib-storage-3.421.0.tgz#9ac29ae1823209afcedd8442b97dc888ca5751e2" integrity sha512-m3zgZhTUfCp2vFWJA4azHgqaFB/OaWgdumYxPHr0JKbjBkGRFyQ90dmRtzVhROOIwI+GxKYxMi1HXhDU6FwsdQ== @@ -487,7 +487,7 @@ "@smithy/util-middleware" "^2.0.2" tslib "^2.5.0" -"@aws-sdk/s3-request-presigner@^3.421.0": +"@aws-sdk/s3-request-presigner@3.421.0", "@aws-sdk/s3-request-presigner@^3.421.0": version "3.421.0" resolved "https://registry.yarnpkg.com/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.421.0.tgz#1ceb8a3a38a596d10ff16c5f7cb798dc307b780e" integrity sha512-qQB6DRV81SZ4Q9JQL8/X4QH1aTyefeKIkmc3KH5QtP5PZJAKOoU4kqIXTFrUFCPan3CjWQw565ZR0usgR6RynQ== @@ -2788,6 +2788,17 @@ "@smithy/types" "^2.1.0" tslib "^2.5.0" +"@smithy/node-http-handler@2.1.6", "@smithy/node-http-handler@^2.1.6": + version "2.1.6" + resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-2.1.6.tgz#c2913363bbf28f315461bd54ef9a5394f1686776" + integrity sha512-NspvD3aCwiUNtoSTcVHz0RZz1tQ/SaRIe1KPF+r0mAdCZ9eWuhIeJT8ZNPYa1ITn7/Lgg64IyFjqPynZ8KnYQw== + dependencies: + "@smithy/abort-controller" "^2.0.10" + "@smithy/protocol-http" "^3.0.6" + "@smithy/querystring-builder" "^2.0.10" + "@smithy/types" "^2.3.4" + tslib "^2.5.0" + "@smithy/node-http-handler@^2.1.5": version "2.1.5" resolved "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-2.1.5.tgz#b1ad4c4b7cdbb5774aeeaaf0bd14b78c6c267460" @@ -2799,17 +2810,6 @@ "@smithy/types" "^2.3.3" tslib "^2.5.0" -"@smithy/node-http-handler@^2.1.6": - version "2.1.6" - resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-2.1.6.tgz#c2913363bbf28f315461bd54ef9a5394f1686776" - integrity sha512-NspvD3aCwiUNtoSTcVHz0RZz1tQ/SaRIe1KPF+r0mAdCZ9eWuhIeJT8ZNPYa1ITn7/Lgg64IyFjqPynZ8KnYQw== - dependencies: - "@smithy/abort-controller" "^2.0.10" - "@smithy/protocol-http" "^3.0.6" - "@smithy/querystring-builder" "^2.0.10" - "@smithy/types" "^2.3.4" - tslib "^2.5.0" - "@smithy/property-provider@^2.0.0", "@smithy/property-provider@^2.0.2": version "2.0.2" resolved "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-2.0.2.tgz#abe091d1e7dc5b617e3418b63eaed11363c96f21" @@ -3143,6 +3143,16 @@ dependencies: defer-to-connect "^2.0.1" +"@tokenizer/token@^0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.1.1.tgz#f0d92c12f87079ddfd1b29f614758b9696bc29e3" + integrity sha512-XO6INPbZCxdprl+9qa/AAbFFOMzzwqYxpjPgLICrMD6C2FCw6qfJOPcBk6JqqPLSaZ/Qx87qn4rpPmPMwaAK6w== + +"@tokenizer/token@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.3.0.tgz#fe98a93fe789247e998c75e74e9c7c63217aa276" + integrity sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A== + "@tootallnate/once@1": version "1.1.2" resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" @@ -8203,6 +8213,16 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" +file-type@16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-16.2.0.tgz#d4f1da71ddda758db7f15f93adfaed09ce9e2715" + integrity sha512-1Wwww3mmZCMmLjBfslCluwt2mxH80GsAXYrvPnfQ42G1EGWag336kB1iyCgyn7UXiKY3cJrNykXPrCwA7xb5Ag== + dependencies: + readable-web-to-node-stream "^3.0.0" + strtok3 "^6.0.3" + token-types "^2.0.0" + typedarray-to-buffer "^3.1.5" + file-type@^3.8.0: version "3.9.0" resolved "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9" @@ -9334,7 +9354,7 @@ hpack.js@^2.1.6: readable-stream "^2.0.1" wbuf "^1.1.0" -hpagent@^1.2.0: +hpagent@1.2.0, hpagent@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/hpagent/-/hpagent-1.2.0.tgz#0ae417895430eb3770c03443456b8d90ca464903" integrity sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA== @@ -9585,7 +9605,7 @@ icss-utils@^5.0.0, icss-utils@^5.1.0: resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== -ieee754@^1.1.13, ieee754@^1.1.4: +ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== @@ -11067,6 +11087,11 @@ mime@1.6.0: resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== +mime@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" + integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== + mime@^2.4.4, mime@^2.4.5, mime@^2.5.2: version "2.6.0" resolved "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" @@ -12352,6 +12377,11 @@ pause-stream@~0.0.11: dependencies: through "~2.3" +peek-readable@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/peek-readable/-/peek-readable-4.1.0.tgz#4ece1111bf5c2ad8867c314c81356847e8a62e72" + integrity sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg== + pend@~1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" @@ -12362,13 +12392,17 @@ performance-now@^2.1.0: resolved "https://registry.npmmirror.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== -piclist@^1.7.6: - version "1.7.6" - resolved "https://registry.yarnpkg.com/piclist/-/piclist-1.7.6.tgz#687796a2a933d692fe226f04999547ab87743d8a" - integrity sha512-6e2gRCrTMWZnpKcWKa0dZSGkgn/0FAd66/UXsGeJcZsegbPNvUNM4/bhWfe74kHKp/Aenb9bzwtMx6HEwUOPUA== +piclist@^1.7.7: + version "1.7.7" + resolved "https://registry.yarnpkg.com/piclist/-/piclist-1.7.7.tgz#fa4bcd08e623859a678dd20160e512b83650bf87" + integrity sha512-GBusAPlEAcGMkp91tCZ4hX3oHVevQMJxagmFPWaIwj1G6FY/twKtnO/BiGoLcz1DwiZpxglWx5zPWw4IM7beLg== dependencies: + "@aws-sdk/client-s3" "3.421.0" + "@aws-sdk/lib-storage" "3.421.0" + "@aws-sdk/s3-request-presigner" "3.421.0" "@picgo/i18n" "^1.0.0" "@picgo/store" "^2.1.0" + "@smithy/node-http-handler" "2.1.6" axios "^1.6.2" chalk "^2.4.1" commander "^8.1.0" @@ -12376,15 +12410,18 @@ piclist@^1.7.6: dayjs "^1.11.10" download-git-repo "^3.0.2" ejs "^2.6.1" + file-type "16.2.0" form-data "^4.0.0" fs-extra "^11.2.0" globby "^11.1.0" heic-convert "^1.2.4" + hpagent "1.2.0" image-size "^1.0.2" inquirer "^6.0.0" is-wsl "^2.2.0" js-yaml "^4.1.0" lodash "^4.17.21" + mime "2.5.2" mime-types "2.1.35" minimatch "^3.0.4" minimist "^1.2.8" @@ -13237,6 +13274,13 @@ readable-stream@^3.0.6, readable-stream@^3.4.0, readable-stream@^3.5.0: string_decoder "^1.1.1" util-deprecate "^1.0.1" +readable-web-to-node-stream@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz#5d52bb5df7b54861fd48d015e93a2cb87b3ee0bb" + integrity sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw== + dependencies: + readable-stream "^3.6.0" + readdirp@~3.6.0: version "3.6.0" resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -14583,6 +14627,14 @@ strnum@^1.0.5: resolved "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== +strtok3@^6.0.3: + version "6.3.0" + resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-6.3.0.tgz#358b80ffe6d5d5620e19a073aa78ce947a90f9a0" + integrity sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw== + dependencies: + "@tokenizer/token" "^0.3.0" + peek-readable "^4.1.0" + stylehacks@^5.1.1: version "5.1.1" resolved "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz#7934a34eb59d7152149fa69d6e9e56f2fc34bcc9" @@ -14899,6 +14951,14 @@ toidentifier@1.0.1: resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== +token-types@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/token-types/-/token-types-2.1.1.tgz#bd585d64902aaf720b8979d257b4b850b4d45c45" + integrity sha512-wnQcqlreS6VjthyHO3Y/kpK/emflxDBNhlNUPfh7wE39KnuDdOituXomIbyI79vBtF0Ninpkh72mcuRHo+RG3Q== + dependencies: + "@tokenizer/token" "^0.1.1" + ieee754 "^1.2.1" + totalist@^1.0.0: version "1.1.0" resolved "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df"