├── .gitignore ├── esbuild.js ├── package.json ├── index.dev.js ├── index.user.js ├── README.md ├── src └── index.ts └── pnpm-lock.yaml /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /esbuild.js: -------------------------------------------------------------------------------- 1 | const alias = require("esbuild-plugin-alias"); 2 | 3 | const isBuild = process.argv[2] === "build"; 4 | 5 | require("esbuild").build({ 6 | entryPoints: ["src/index.ts"], 7 | bundle: true, 8 | outfile: "dist/main.js", 9 | plugins: [ 10 | // alias({ 11 | // svgo: "svgo/dist/svgo.es.js", 12 | // }), 13 | ], 14 | 15 | minify: isBuild, 16 | watch: !isBuild, 17 | }); 18 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "iconfont-react", 3 | "version": "1.0.2", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "dev": "esbuild ./src/index.ts --watch --bundle --outfile=dist/main.js", 8 | "build": "esbuild ./src/index.ts --bundle --outfile=dist/main.js --minify" 9 | }, 10 | "keywords": [], 11 | "author": "", 12 | "license": "ISC", 13 | "dependencies": { 14 | "@iconify/tools": "^2.2.0" 15 | }, 16 | "devDependencies": { 17 | "esbuild": "^0.16.14" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /index.dev.js: -------------------------------------------------------------------------------- 1 | // ==UserScript== 2 | // @name Iconfont React 3 | // @version 1.0.0 4 | // @description 自动下载 React ICON 组件 5 | // @author yee.wang 6 | // @include https://*.iconfont.cn/* 7 | // @require http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js 8 | // @updateURL https://github.com/yee94/tampermonkey-iconfont-iconify/raw/main/index.user.js 9 | // @downloadURL https://github.com/yee94/tampermonkey-iconfont-iconify/raw/main/index.user.js 10 | // @require file:///Users/yee.wang/Code/libs/tampermonkey/iconfont-react/dist/main.js 11 | // @grant unsafeWindow 12 | // @connect * 13 | // ==/UserScript== 14 | 15 | iconfontRunMain(); 16 | -------------------------------------------------------------------------------- /index.user.js: -------------------------------------------------------------------------------- 1 | // ==UserScript== 2 | // @name Iconfont React 3 | // @version 1.0.3 4 | // @description 下载 React ICON 组件 5 | // @author yee.wang 6 | // @include https://*.iconfont.cn/* 7 | // @require http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js 8 | // @updateURL https://github.com/yee94/tampermonkey-iconfont-iconify/raw/main/index.user.js 9 | // @downloadURL https://github.com/yee94/tampermonkey-iconfont-iconify/raw/main/index.user.js 10 | // @require https://github.com/yee94/tampermonkey-iconfont-iconify/raw/main/dist/main.js 11 | // @grant unsafeWindow 12 | // @connect * 13 | // ==/UserScript== 14 | 15 | iconfontRunMain(); 16 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Tampermonkey Script for iconfont -> iconify JSON and React component 2 | 3 | ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c460180364f3425f8776489c61fb448f~tplv-k3u1fbpfcp-zoom-in-crop-mark:3024:0:0:0.awebp) 4 | 5 | This Tampermonkey script is designed to add two new download options to the [iconfont.cn](https://www.iconfont.cn/) website. 6 | 7 | ## Installation 8 | 9 | 1. Install the Tampermonkey extension for your browser. 10 | 2. Click on the following link and click the "install" button: **[link to script](https://github.com/yee94/tampermonkey-iconfont-iconify/raw/main/index.user.js)** 11 | 3. Go to [iconfont.cn](https://www.iconfont.cn/) and open the project you want to download. 12 | 13 | ## Usage 14 | 15 | 1. Once the script is installed and you are on the project page, a new option "Iconify JSON" will appear in the "download" menu. Clicking this option will download the icons in the project as a JSON file that is compatible with the Iconify library. 16 | 2. Another option "React component" will also appear in the "download" menu. Clicking this option will download the icons in the project as individual React components. 17 | 18 | ## Features 19 | 20 | - Cleans up the SVG files by removing bad attributes, tags, and styles. 21 | - Modifies the SVG files to add React-specific attributes and styles. 22 | - Provides two download options: Iconify JSON and React component. 23 | 24 | ## Note 25 | 26 | This script is designed for use with the iconfont.cn website, and may not work on other websites. 27 | 28 | ## Contribution 29 | 30 | If you have any suggestions for improvements or find any bugs, please feel free to open an issue or pull request on Github repository. 31 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import { isEmptyColor, parseColors } from "@iconify/tools/lib/colors/parse"; 2 | import { removeBadAttributes } from "@iconify/tools/lib/svg/cleanup/attribs"; 3 | import { checkBadTags } from "@iconify/tools/lib/svg/cleanup/bad-tags"; 4 | import { cleanupInlineStyle } from "@iconify/tools/lib/svg/cleanup/inline-style"; 5 | import { cleanupRootStyle } from "@iconify/tools/lib/svg/cleanup/root-style"; 6 | import { cleanupSVGRoot } from "@iconify/tools/lib/svg/cleanup/root-svg"; 7 | import { SVG } from "@iconify/tools/lib/svg/index"; 8 | import { parseSVG } from "@iconify/tools/lib/svg/parse"; 9 | 10 | declare const unsafeWindow: any; 11 | declare const $: any; 12 | 13 | async function cleanupSVG(svg) { 14 | await cleanupInlineStyle(svg); 15 | cleanupSVGRoot(svg); 16 | await checkBadTags(svg); 17 | await removeBadAttributes(svg); 18 | await cleanupRootStyle(svg); 19 | } 20 | 21 | const reactTemplate = (svgName, svgStr) => { 22 | svgName = toCamelCase(svgName); 23 | 24 | svgStr = svgStr.replace(/^ { 28 | const styleObj = style.split(";").reduce((obj, item) => { 29 | let [key, value] = item.split(":"); 30 | 31 | key = key 32 | .trim() 33 | .replace(/-([a-z])/g, (all, letter) => letter.toUpperCase()); 34 | 35 | if (key && value) { 36 | obj[key] = value; 37 | } 38 | return obj; 39 | }, {} as any); 40 | 41 | return `style={${JSON.stringify(styleObj).replace( 42 | /}$/, 43 | ", ...props.style}" 44 | )}}`; 45 | }); 46 | 47 | return [ 48 | `import React from "react";`, 49 | "", 50 | `export const ${svgName}Icon = (props) => {`, 51 | ` return ${svgStr};`, 52 | `};`, 53 | ].join("\n"); 54 | }; 55 | 56 | // @ts-ignore 57 | window.iconfontRunMain = async () => { 58 | everytime( 59 | () => 60 | document.querySelector("ul.preview-dropdown") && 61 | !document.getElementById("download-iconify"), 62 | () => { 63 | const projectId = new URLSearchParams(location.search).get("projectId"); 64 | unsafeWindow.downloadIconifyFile = async function () { 65 | const res = await fetch( 66 | `/api/project/detail.json?pid=${projectId}` 67 | ).then((res) => res.json()); 68 | const { icons, project } = res.data; 69 | 70 | const iconifyJson = makeIconifyJson( 71 | project.name, 72 | icons.reduce((obj, item) => { 73 | const svg = new SVG(item.show_svg); 74 | return Object.assign(obj, { 75 | [toKebabCase(item.name)]: { 76 | body: svg.getBody(), 77 | ...svg.viewBox, 78 | }, 79 | }); 80 | }, {}) 81 | ); 82 | 83 | console.log("🚀 #### ~ iconifyJson", iconifyJson); 84 | 85 | downloadFile("iconify.json", JSON.stringify(iconifyJson, null, 2)); 86 | }; 87 | $("ul.preview-dropdown").append( 88 | '
  • Iconify JSON
  • ' 89 | ); 90 | } 91 | ); 92 | 93 | everytime( 94 | () => 95 | !!document.querySelector(".mp-e2e-content .download-btns") && 96 | !document.getElementById("react-download"), 97 | () => { 98 | const btns = document.querySelector(".mp-e2e-content .download-btns"); 99 | unsafeWindow.downloadReactFile = async function () { 100 | const svgStr = $(".stage.J_stage svg")[0].outerHTML; 101 | const svg = new SVG(svgStr); 102 | await cleanupSVG(svg); 103 | await parseColors(svg, { 104 | defaultColor: "currentColor", 105 | callback: (attr, colorStr, color) => { 106 | return !color || isEmptyColor(color) ? colorStr : "currentColor"; 107 | }, 108 | }); 109 | 110 | parseSVG(svg, (item) => { 111 | if (item.tagName === "svg") { 112 | item.$element.attr("style", "vertical-align: -0.125em"); 113 | } 114 | }); 115 | 116 | const finalSvg = svg.toString(); 117 | 118 | const svgName = $(".mp-e2e-body .top-title span")[0].innerText.replace( 119 | / /g, 120 | "-" 121 | ); 122 | const reactStr = reactTemplate(svgName, finalSvg); 123 | 124 | downloadFile(`${svgName}.tsx`, reactStr); 125 | }; 126 | $(btns).prepend( 127 | `React \u4E0B\u8F7D` 128 | ); 129 | } 130 | ); 131 | }; 132 | 133 | function downloadFile(name, content) { 134 | const aLink = document.createElement("a"); 135 | const blob = new Blob([content]); 136 | aLink.download = name; 137 | aLink.href = URL.createObjectURL(blob); 138 | 139 | aLink.click(); 140 | } 141 | 142 | function wait(time) { 143 | return new Promise(function (resolve, reject) { 144 | setTimeout(resolve, time); 145 | }); 146 | } 147 | 148 | async function everytime(fn, callback) { 149 | while (true) { 150 | await wait(500); 151 | const result = fn(); 152 | if (result) { 153 | callback(result); 154 | } 155 | } 156 | } 157 | 158 | function removeBadWords(str) { 159 | // 中文 160 | if (/^[\u4e00-\u9fa5]+$/.test(str)) { 161 | return str; 162 | } 163 | return str.replace(/[^\w\d-_ ]/g, "").replace(/[-_ ]{2,}/g, "-"); 164 | } 165 | 166 | function toKebabCase(str) { 167 | str = removeBadWords(str); 168 | return str.toLowerCase().replace(/ /g, "-").replace(/_/g, "-"); 169 | } 170 | 171 | function toCamelCase(str) { 172 | str = removeBadWords(str); 173 | return str 174 | .replace(/ /g, "-") 175 | .replace(/_(\w)/g, (all, letter) => letter.toUpperCase()) 176 | .replace(/-(\w)/g, (all, letter) => letter.toUpperCase()) 177 | .replace(/^[a-z]/, (s) => s.toUpperCase()); 178 | } 179 | 180 | function makeIconifyJson(prefix, icons) { 181 | return { 182 | prefix, 183 | lastModified: 1673023160, 184 | icons, 185 | width: 1024, 186 | height: 1024, 187 | }; 188 | } 189 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.4 2 | 3 | specifiers: 4 | '@iconify/tools': ^2.2.0 5 | esbuild: ^0.16.14 6 | 7 | dependencies: 8 | '@iconify/tools': 2.2.0 9 | 10 | devDependencies: 11 | esbuild: 0.16.14 12 | 13 | packages: 14 | 15 | /@antfu/install-pkg/0.1.1: 16 | resolution: {integrity: sha512-LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ==, tarball: '@antfu/install-pkg/download/@antfu/install-pkg-0.1.1.tgz'} 17 | dependencies: 18 | execa: 5.1.1 19 | find-up: 5.0.0 20 | dev: false 21 | 22 | /@antfu/utils/0.7.2: 23 | resolution: {integrity: sha512-vy9fM3pIxZmX07dL+VX1aZe7ynZ+YyB0jY+jE6r3hOK6GNY2t6W8rzpFC4tgpbXUYABkFQwgJq2XYXlxbXAI0g==, tarball: '@antfu/utils/download/@antfu/utils-0.7.2.tgz'} 24 | dev: false 25 | 26 | /@esbuild/android-arm/0.16.14: 27 | resolution: {integrity: sha512-u0rITLxFIeYAvtJXBQNhNuV4YZe+MD1YvIWT7Nicj8hZAtRVZk2PgNH6KclcKDVHz1ChLKXRfX7d7tkbQBUfrg==, tarball: '@esbuild/android-arm/download/@esbuild/android-arm-0.16.14.tgz'} 28 | engines: {node: '>=12'} 29 | cpu: [arm] 30 | os: [android] 31 | requiresBuild: true 32 | dev: true 33 | optional: true 34 | 35 | /@esbuild/android-arm64/0.16.14: 36 | resolution: {integrity: sha512-hTqB6Iq13pW4xaydeqQrs8vPntUnMjbkq+PgGiBMi69eYk74naG2ftHWqKnxn874kNrt5Or3rQ0PJutx2doJuQ==, tarball: '@esbuild/android-arm64/download/@esbuild/android-arm64-0.16.14.tgz'} 37 | engines: {node: '>=12'} 38 | cpu: [arm64] 39 | os: [android] 40 | requiresBuild: true 41 | dev: true 42 | optional: true 43 | 44 | /@esbuild/android-x64/0.16.14: 45 | resolution: {integrity: sha512-jir51K4J0K5Rt0KOcippjSNdOl7akKDVz5I6yrqdk4/m9y+rldGptQUF7qU4YpX8U61LtR+w2Tu2Ph+K/UaJOw==, tarball: '@esbuild/android-x64/download/@esbuild/android-x64-0.16.14.tgz'} 46 | engines: {node: '>=12'} 47 | cpu: [x64] 48 | os: [android] 49 | requiresBuild: true 50 | dev: true 51 | optional: true 52 | 53 | /@esbuild/darwin-arm64/0.16.14: 54 | resolution: {integrity: sha512-vrlaP81IuwPaw1fyX8fHCmivP3Gr73ojVEZy+oWJLAiZVcG8o8Phwun/XDnYIFUHxIoUnMFEpg9o38MIvlw8zw==, tarball: '@esbuild/darwin-arm64/download/@esbuild/darwin-arm64-0.16.14.tgz'} 55 | engines: {node: '>=12'} 56 | cpu: [arm64] 57 | os: [darwin] 58 | requiresBuild: true 59 | dev: true 60 | optional: true 61 | 62 | /@esbuild/darwin-x64/0.16.14: 63 | resolution: {integrity: sha512-KV1E01eC2hGYA2qzFDRCK4wdZCRUvMwCNcobgpiiOzp5QXpJBqFPdxI69j8vvzuU7oxFXDgANwEkXvpeQqyOyg==, tarball: '@esbuild/darwin-x64/download/@esbuild/darwin-x64-0.16.14.tgz'} 64 | engines: {node: '>=12'} 65 | cpu: [x64] 66 | os: [darwin] 67 | requiresBuild: true 68 | dev: true 69 | optional: true 70 | 71 | /@esbuild/freebsd-arm64/0.16.14: 72 | resolution: {integrity: sha512-xRM1RQsazSvL42BNa5XC7ytD4ZDp0ZyJcH7aB0SlYUcHexJUKiDNKR7dlRVlpt6W0DvoRPU2nWK/9/QWS4u2fw==, tarball: '@esbuild/freebsd-arm64/download/@esbuild/freebsd-arm64-0.16.14.tgz'} 73 | engines: {node: '>=12'} 74 | cpu: [arm64] 75 | os: [freebsd] 76 | requiresBuild: true 77 | dev: true 78 | optional: true 79 | 80 | /@esbuild/freebsd-x64/0.16.14: 81 | resolution: {integrity: sha512-7ALTAn6YRRf1O6fw9jmn0rWmOx3XfwDo7njGtjy1LXhDGUjTY/vohEPM3ii5MQ411vJv1r498EEx2aBQTJcrEw==, tarball: '@esbuild/freebsd-x64/download/@esbuild/freebsd-x64-0.16.14.tgz'} 82 | engines: {node: '>=12'} 83 | cpu: [x64] 84 | os: [freebsd] 85 | requiresBuild: true 86 | dev: true 87 | optional: true 88 | 89 | /@esbuild/linux-arm/0.16.14: 90 | resolution: {integrity: sha512-X6xULug66ulrr4IzrW7qq+eq9n4MtEyagdWvj4o4cmWr+JXOT47atjpDF9j5M2zHY0UQBmqnHhwl+tXpkpIb2w==, tarball: '@esbuild/linux-arm/download/@esbuild/linux-arm-0.16.14.tgz'} 91 | engines: {node: '>=12'} 92 | cpu: [arm] 93 | os: [linux] 94 | requiresBuild: true 95 | dev: true 96 | optional: true 97 | 98 | /@esbuild/linux-arm64/0.16.14: 99 | resolution: {integrity: sha512-TLh2OcbBUQcMYRH4GbiDkDZfZ4t1A3GgmeXY27dHSI6xrU7IkO00MGBiJySmEV6sH3Wa6pAN6UtaVL0DwkGW4Q==, tarball: '@esbuild/linux-arm64/download/@esbuild/linux-arm64-0.16.14.tgz'} 100 | engines: {node: '>=12'} 101 | cpu: [arm64] 102 | os: [linux] 103 | requiresBuild: true 104 | dev: true 105 | optional: true 106 | 107 | /@esbuild/linux-ia32/0.16.14: 108 | resolution: {integrity: sha512-oBZkcZ56UZDFCAfE3Fd/Jgy10EoS7Td77NzNGenM+HSY8BkdQAcI9VF9qgwdOLZ+tuftWD7UqZ26SAhtvA3XhA==, tarball: '@esbuild/linux-ia32/download/@esbuild/linux-ia32-0.16.14.tgz'} 109 | engines: {node: '>=12'} 110 | cpu: [ia32] 111 | os: [linux] 112 | requiresBuild: true 113 | dev: true 114 | optional: true 115 | 116 | /@esbuild/linux-loong64/0.16.14: 117 | resolution: {integrity: sha512-udz/aEHTcuHP+xdWOJmZ5C9RQXHfZd/EhCnTi1Hfay37zH3lBxn/fNs85LA9HlsniFw2zccgcbrrTMKk7Cn1Qg==, tarball: '@esbuild/linux-loong64/download/@esbuild/linux-loong64-0.16.14.tgz'} 118 | engines: {node: '>=12'} 119 | cpu: [loong64] 120 | os: [linux] 121 | requiresBuild: true 122 | dev: true 123 | optional: true 124 | 125 | /@esbuild/linux-mips64el/0.16.14: 126 | resolution: {integrity: sha512-kJ2iEnikUOdC1SiTGbH0fJUgpZwa0ITDTvj9EHf9lm3I0hZ4Yugsb3M6XSl696jVxrEocLe519/8CbSpQWFSrg==, tarball: '@esbuild/linux-mips64el/download/@esbuild/linux-mips64el-0.16.14.tgz'} 127 | engines: {node: '>=12'} 128 | cpu: [mips64el] 129 | os: [linux] 130 | requiresBuild: true 131 | dev: true 132 | optional: true 133 | 134 | /@esbuild/linux-ppc64/0.16.14: 135 | resolution: {integrity: sha512-kclKxvZvX5YhykwlJ/K9ljiY4THe5vXubXpWmr7q3Zu3WxKnUe1VOZmhkEZlqtnJx31GHPEV4SIG95IqTdfgfg==, tarball: '@esbuild/linux-ppc64/download/@esbuild/linux-ppc64-0.16.14.tgz'} 136 | engines: {node: '>=12'} 137 | cpu: [ppc64] 138 | os: [linux] 139 | requiresBuild: true 140 | dev: true 141 | optional: true 142 | 143 | /@esbuild/linux-riscv64/0.16.14: 144 | resolution: {integrity: sha512-fdwP9Dc+Kx/cZwp9T9kNqjAE/PQjfrxbio4rZ3XnC3cVvZBjuxpkiyu/tuCwt6SbAK5th6AYNjFdEV9kGC020A==, tarball: '@esbuild/linux-riscv64/download/@esbuild/linux-riscv64-0.16.14.tgz'} 145 | engines: {node: '>=12'} 146 | cpu: [riscv64] 147 | os: [linux] 148 | requiresBuild: true 149 | dev: true 150 | optional: true 151 | 152 | /@esbuild/linux-s390x/0.16.14: 153 | resolution: {integrity: sha512-++fw3P4fQk9nqvdzbANRqimKspL8pDCnSpXomyhV7V/ISha/BZIYvZwLBWVKp9CVWKwWPJ4ktsezuLIvlJRHqA==, tarball: '@esbuild/linux-s390x/download/@esbuild/linux-s390x-0.16.14.tgz'} 154 | engines: {node: '>=12'} 155 | cpu: [s390x] 156 | os: [linux] 157 | requiresBuild: true 158 | dev: true 159 | optional: true 160 | 161 | /@esbuild/linux-x64/0.16.14: 162 | resolution: {integrity: sha512-TomtswAuzBf2NnddlrS4W01Tv85RM9YtATB3OugY6On0PLM4Ksz5qvQKVAjtzPKoLgL1FiZtfc8mkZc4IgoMEA==, tarball: '@esbuild/linux-x64/download/@esbuild/linux-x64-0.16.14.tgz'} 163 | engines: {node: '>=12'} 164 | cpu: [x64] 165 | os: [linux] 166 | requiresBuild: true 167 | dev: true 168 | optional: true 169 | 170 | /@esbuild/netbsd-x64/0.16.14: 171 | resolution: {integrity: sha512-U06pfx8P5CqyoPNfqIJmnf+5/r4mJ1S62G4zE6eOjS59naQcxi6GnscUCPH3b+hRG0qdKoGX49RAyiqW+M9aSw==, tarball: '@esbuild/netbsd-x64/download/@esbuild/netbsd-x64-0.16.14.tgz'} 172 | engines: {node: '>=12'} 173 | cpu: [x64] 174 | os: [netbsd] 175 | requiresBuild: true 176 | dev: true 177 | optional: true 178 | 179 | /@esbuild/openbsd-x64/0.16.14: 180 | resolution: {integrity: sha512-/Jl8XVaWEZNu9rZw+n792GIBupQwHo6GDoapHSb/2xp/Ku28eK6QpR2O9cPBkzHH4OOoMH0LB6zg/qczJ5TTGg==, tarball: '@esbuild/openbsd-x64/download/@esbuild/openbsd-x64-0.16.14.tgz'} 181 | engines: {node: '>=12'} 182 | cpu: [x64] 183 | os: [openbsd] 184 | requiresBuild: true 185 | dev: true 186 | optional: true 187 | 188 | /@esbuild/sunos-x64/0.16.14: 189 | resolution: {integrity: sha512-2iI7D34uTbDn/TaSiUbEHz+fUa8KbN90vX5yYqo12QGpu6T8Jl+kxODsWuMCwoTVlqUpwfPV22nBbFPME9OPtw==, tarball: '@esbuild/sunos-x64/download/@esbuild/sunos-x64-0.16.14.tgz'} 190 | engines: {node: '>=12'} 191 | cpu: [x64] 192 | os: [sunos] 193 | requiresBuild: true 194 | dev: true 195 | optional: true 196 | 197 | /@esbuild/win32-arm64/0.16.14: 198 | resolution: {integrity: sha512-SjlM7AHmQVTiGBJE/nqauY1aDh80UBsXZ94g4g60CDkrDMseatiqALVcIuElg4ZSYzJs8hsg5W6zS2zLpZTVgg==, tarball: '@esbuild/win32-arm64/download/@esbuild/win32-arm64-0.16.14.tgz'} 199 | engines: {node: '>=12'} 200 | cpu: [arm64] 201 | os: [win32] 202 | requiresBuild: true 203 | dev: true 204 | optional: true 205 | 206 | /@esbuild/win32-ia32/0.16.14: 207 | resolution: {integrity: sha512-z06t5zqk8ak0Xom5HG81z2iOQ1hNWYsFQp3sczVLVx+dctWdgl80tNRyTbwjaFfui2vFO12dfE3trCTvA+HO4g==, tarball: '@esbuild/win32-ia32/download/@esbuild/win32-ia32-0.16.14.tgz'} 208 | engines: {node: '>=12'} 209 | cpu: [ia32] 210 | os: [win32] 211 | requiresBuild: true 212 | dev: true 213 | optional: true 214 | 215 | /@esbuild/win32-x64/0.16.14: 216 | resolution: {integrity: sha512-ED1UpWcM6lAbalbbQ9TrGqJh4Y9TaASUvu8bI/0mgJcxhSByJ6rbpgqRhxYMaQ682WfA71nxUreaTO7L275zrw==, tarball: '@esbuild/win32-x64/download/@esbuild/win32-x64-0.16.14.tgz'} 217 | engines: {node: '>=12'} 218 | cpu: [x64] 219 | os: [win32] 220 | requiresBuild: true 221 | dev: true 222 | optional: true 223 | 224 | /@iconify/tools/2.2.0: 225 | resolution: {integrity: sha512-hRreaOxGR55LI/N0CNoY3gYzibvlJabXTAQ82S+8eSCegMNYUS1Hih+u/jTQwPopUr5M57rdudpjHlaybpOKlg==, tarball: '@iconify/tools/download/@iconify/tools-2.2.0.tgz'} 226 | dependencies: 227 | '@iconify/types': 2.0.0 228 | '@iconify/utils': 2.0.9 229 | '@types/cheerio': 0.22.31 230 | '@types/node-fetch': 2.6.2 231 | '@types/tar': 6.1.3 232 | cheerio: 1.0.0-rc.12 233 | extract-zip: 2.0.1 234 | local-pkg: 0.4.2 235 | node-fetch: 2.6.7 236 | pathe: 1.0.0 237 | svgo: 3.0.2 238 | tar: 6.1.13 239 | transitivePeerDependencies: 240 | - encoding 241 | - supports-color 242 | dev: false 243 | 244 | /@iconify/types/2.0.0: 245 | resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==, tarball: '@iconify/types/download/@iconify/types-2.0.0.tgz'} 246 | dev: false 247 | 248 | /@iconify/utils/2.0.9: 249 | resolution: {integrity: sha512-ropNqaeamoxZvXxvaTJXrI0MrqdWdDVIs/mW7/sEQbNi0aXYUGL2iuLs1da3QR163gyG63kiyTsqw2oQYamw3Q==, tarball: '@iconify/utils/download/@iconify/utils-2.0.9.tgz'} 250 | dependencies: 251 | '@antfu/install-pkg': 0.1.1 252 | '@antfu/utils': 0.7.2 253 | '@iconify/types': 2.0.0 254 | debug: 4.3.4 255 | kolorist: 1.6.0 256 | local-pkg: 0.4.2 257 | transitivePeerDependencies: 258 | - supports-color 259 | dev: false 260 | 261 | /@trysound/sax/0.2.0: 262 | resolution: {integrity: sha1-zMqrdYr1Z2Hre/N69vA/Mm3XmK0=, tarball: '@trysound/sax/download/@trysound/sax-0.2.0.tgz'} 263 | engines: {node: '>=10.13.0'} 264 | dev: false 265 | 266 | /@types/cheerio/0.22.31: 267 | resolution: {integrity: sha512-Kt7Cdjjdi2XWSfrZ53v4Of0wG3ZcmaegFXjMmz9tfNrZSkzzo36G0AL1YqSdcIA78Etjt6E609pt5h1xnQkPUw==, tarball: '@types/cheerio/download/@types/cheerio-0.22.31.tgz'} 268 | dependencies: 269 | '@types/node': 18.11.18 270 | dev: false 271 | 272 | /@types/node-fetch/2.6.2: 273 | resolution: {integrity: sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==, tarball: '@types/node-fetch/download/@types/node-fetch-2.6.2.tgz'} 274 | dependencies: 275 | '@types/node': 18.11.18 276 | form-data: 3.0.1 277 | dev: false 278 | 279 | /@types/node/18.11.18: 280 | resolution: {integrity: sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==, tarball: '@types/node/download/@types/node-18.11.18.tgz'} 281 | dev: false 282 | 283 | /@types/tar/6.1.3: 284 | resolution: {integrity: sha512-YzDOr5kdAeqS8dcO6NTTHTMJ44MUCBDoLEIyPtwEn7PssKqUYL49R1iCVJPeiPzPlKi6DbH33eZkpeJ27e4vHg==, tarball: '@types/tar/download/@types/tar-6.1.3.tgz'} 285 | dependencies: 286 | '@types/node': 18.11.18 287 | minipass: 3.3.6 288 | dev: false 289 | 290 | /@types/yauzl/2.10.0: 291 | resolution: {integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==, tarball: '@types/yauzl/download/@types/yauzl-2.10.0.tgz'} 292 | requiresBuild: true 293 | dependencies: 294 | '@types/node': 18.11.18 295 | dev: false 296 | optional: true 297 | 298 | /asynckit/0.4.0: 299 | resolution: {integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k=, tarball: asynckit/download/asynckit-0.4.0.tgz} 300 | dev: false 301 | 302 | /boolbase/1.0.0: 303 | resolution: {integrity: sha1-aN/1++YMUes3cl6p4+0xDcwed24=, tarball: boolbase/download/boolbase-1.0.0.tgz} 304 | dev: false 305 | 306 | /buffer-crc32/0.2.13: 307 | resolution: {integrity: sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=, tarball: buffer-crc32/download/buffer-crc32-0.2.13.tgz} 308 | dev: false 309 | 310 | /cheerio-select/2.1.0: 311 | resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==, tarball: cheerio-select/download/cheerio-select-2.1.0.tgz} 312 | dependencies: 313 | boolbase: 1.0.0 314 | css-select: 5.1.0 315 | css-what: 6.1.0 316 | domelementtype: 2.3.0 317 | domhandler: 5.0.3 318 | domutils: 3.0.1 319 | dev: false 320 | 321 | /cheerio/1.0.0-rc.12: 322 | resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==, tarball: cheerio/download/cheerio-1.0.0-rc.12.tgz} 323 | engines: {node: '>= 6'} 324 | dependencies: 325 | cheerio-select: 2.1.0 326 | dom-serializer: 2.0.0 327 | domhandler: 5.0.3 328 | domutils: 3.0.1 329 | htmlparser2: 8.0.1 330 | parse5: 7.1.2 331 | parse5-htmlparser2-tree-adapter: 7.0.0 332 | dev: false 333 | 334 | /chownr/2.0.0: 335 | resolution: {integrity: sha1-Fb++U9LqtM9w8YqM1o6+Wzyx3s4=, tarball: chownr/download/chownr-2.0.0.tgz} 336 | engines: {node: '>=10'} 337 | dev: false 338 | 339 | /combined-stream/1.0.8: 340 | resolution: {integrity: sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=, tarball: combined-stream/download/combined-stream-1.0.8.tgz} 341 | engines: {node: '>= 0.8'} 342 | dependencies: 343 | delayed-stream: 1.0.0 344 | dev: false 345 | 346 | /commander/7.2.0: 347 | resolution: {integrity: sha1-o2y1fQtQHOEI5NIFWaFQo5HZerc=, tarball: commander/download/commander-7.2.0.tgz} 348 | engines: {node: '>= 10'} 349 | dev: false 350 | 351 | /cross-spawn/7.0.3: 352 | resolution: {integrity: sha1-9zqFudXUHQRVUcF34ogtSshXKKY=, tarball: cross-spawn/download/cross-spawn-7.0.3.tgz} 353 | engines: {node: '>= 8'} 354 | dependencies: 355 | path-key: 3.1.1 356 | shebang-command: 2.0.0 357 | which: 2.0.2 358 | dev: false 359 | 360 | /css-select/5.1.0: 361 | resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==, tarball: css-select/download/css-select-5.1.0.tgz} 362 | dependencies: 363 | boolbase: 1.0.0 364 | css-what: 6.1.0 365 | domhandler: 5.0.3 366 | domutils: 3.0.1 367 | nth-check: 2.1.1 368 | dev: false 369 | 370 | /css-tree/2.2.1: 371 | resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==, tarball: css-tree/download/css-tree-2.2.1.tgz} 372 | engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} 373 | dependencies: 374 | mdn-data: 2.0.28 375 | source-map-js: 1.0.2 376 | dev: false 377 | 378 | /css-tree/2.3.1: 379 | resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==, tarball: css-tree/download/css-tree-2.3.1.tgz} 380 | engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} 381 | dependencies: 382 | mdn-data: 2.0.30 383 | source-map-js: 1.0.2 384 | dev: false 385 | 386 | /css-what/6.1.0: 387 | resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==, tarball: css-what/download/css-what-6.1.0.tgz} 388 | engines: {node: '>= 6'} 389 | dev: false 390 | 391 | /csso/5.0.5: 392 | resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==, tarball: csso/download/csso-5.0.5.tgz} 393 | engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} 394 | dependencies: 395 | css-tree: 2.2.1 396 | dev: false 397 | 398 | /debug/4.3.4: 399 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, tarball: debug/download/debug-4.3.4.tgz} 400 | engines: {node: '>=6.0'} 401 | peerDependencies: 402 | supports-color: '*' 403 | peerDependenciesMeta: 404 | supports-color: 405 | optional: true 406 | dependencies: 407 | ms: 2.1.2 408 | dev: false 409 | 410 | /delayed-stream/1.0.0: 411 | resolution: {integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk=, tarball: delayed-stream/download/delayed-stream-1.0.0.tgz} 412 | engines: {node: '>=0.4.0'} 413 | dev: false 414 | 415 | /dom-serializer/2.0.0: 416 | resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==, tarball: dom-serializer/download/dom-serializer-2.0.0.tgz} 417 | dependencies: 418 | domelementtype: 2.3.0 419 | domhandler: 5.0.3 420 | entities: 4.4.0 421 | dev: false 422 | 423 | /domelementtype/2.3.0: 424 | resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==, tarball: domelementtype/download/domelementtype-2.3.0.tgz} 425 | dev: false 426 | 427 | /domhandler/5.0.3: 428 | resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==, tarball: domhandler/download/domhandler-5.0.3.tgz} 429 | engines: {node: '>= 4'} 430 | dependencies: 431 | domelementtype: 2.3.0 432 | dev: false 433 | 434 | /domutils/3.0.1: 435 | resolution: {integrity: sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==, tarball: domutils/download/domutils-3.0.1.tgz} 436 | dependencies: 437 | dom-serializer: 2.0.0 438 | domelementtype: 2.3.0 439 | domhandler: 5.0.3 440 | dev: false 441 | 442 | /end-of-stream/1.4.4: 443 | resolution: {integrity: sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=, tarball: end-of-stream/download/end-of-stream-1.4.4.tgz} 444 | dependencies: 445 | once: 1.4.0 446 | dev: false 447 | 448 | /entities/4.4.0: 449 | resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==, tarball: entities/download/entities-4.4.0.tgz} 450 | engines: {node: '>=0.12'} 451 | dev: false 452 | 453 | /esbuild/0.16.14: 454 | resolution: {integrity: sha512-6xAn3O6ZZyoxZAEkwfI9hw4cEqSr/o1ViJtnkvImVkblmUN65Md04o0S/7H1WNu1XGf1Cjij/on7VO4psIYjkw==, tarball: esbuild/download/esbuild-0.16.14.tgz} 455 | engines: {node: '>=12'} 456 | hasBin: true 457 | requiresBuild: true 458 | optionalDependencies: 459 | '@esbuild/android-arm': 0.16.14 460 | '@esbuild/android-arm64': 0.16.14 461 | '@esbuild/android-x64': 0.16.14 462 | '@esbuild/darwin-arm64': 0.16.14 463 | '@esbuild/darwin-x64': 0.16.14 464 | '@esbuild/freebsd-arm64': 0.16.14 465 | '@esbuild/freebsd-x64': 0.16.14 466 | '@esbuild/linux-arm': 0.16.14 467 | '@esbuild/linux-arm64': 0.16.14 468 | '@esbuild/linux-ia32': 0.16.14 469 | '@esbuild/linux-loong64': 0.16.14 470 | '@esbuild/linux-mips64el': 0.16.14 471 | '@esbuild/linux-ppc64': 0.16.14 472 | '@esbuild/linux-riscv64': 0.16.14 473 | '@esbuild/linux-s390x': 0.16.14 474 | '@esbuild/linux-x64': 0.16.14 475 | '@esbuild/netbsd-x64': 0.16.14 476 | '@esbuild/openbsd-x64': 0.16.14 477 | '@esbuild/sunos-x64': 0.16.14 478 | '@esbuild/win32-arm64': 0.16.14 479 | '@esbuild/win32-ia32': 0.16.14 480 | '@esbuild/win32-x64': 0.16.14 481 | dev: true 482 | 483 | /execa/5.1.1: 484 | resolution: {integrity: sha1-+ArZy/Qpj3vR1MlVXCHpN0HEEd0=, tarball: execa/download/execa-5.1.1.tgz} 485 | engines: {node: '>=10'} 486 | dependencies: 487 | cross-spawn: 7.0.3 488 | get-stream: 6.0.1 489 | human-signals: 2.1.0 490 | is-stream: 2.0.1 491 | merge-stream: 2.0.0 492 | npm-run-path: 4.0.1 493 | onetime: 5.1.2 494 | signal-exit: 3.0.7 495 | strip-final-newline: 2.0.0 496 | dev: false 497 | 498 | /extract-zip/2.0.1: 499 | resolution: {integrity: sha1-Zj3KVv5G34kNXxMe9KBtIruLoTo=, tarball: extract-zip/download/extract-zip-2.0.1.tgz} 500 | engines: {node: '>= 10.17.0'} 501 | hasBin: true 502 | dependencies: 503 | debug: 4.3.4 504 | get-stream: 5.2.0 505 | yauzl: 2.10.0 506 | optionalDependencies: 507 | '@types/yauzl': 2.10.0 508 | transitivePeerDependencies: 509 | - supports-color 510 | dev: false 511 | 512 | /fd-slicer/1.1.0: 513 | resolution: {integrity: sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=, tarball: fd-slicer/download/fd-slicer-1.1.0.tgz} 514 | dependencies: 515 | pend: 1.2.0 516 | dev: false 517 | 518 | /find-up/5.0.0: 519 | resolution: {integrity: sha1-TJKBnstwg1YeT0okCoa+UZj1Nvw=, tarball: find-up/download/find-up-5.0.0.tgz} 520 | engines: {node: '>=10'} 521 | dependencies: 522 | locate-path: 6.0.0 523 | path-exists: 4.0.0 524 | dev: false 525 | 526 | /form-data/3.0.1: 527 | resolution: {integrity: sha1-69U3kbeDVqma+aMA1CgsTV65dV8=, tarball: form-data/download/form-data-3.0.1.tgz} 528 | engines: {node: '>= 6'} 529 | dependencies: 530 | asynckit: 0.4.0 531 | combined-stream: 1.0.8 532 | mime-types: 2.1.35 533 | dev: false 534 | 535 | /fs-minipass/2.1.0: 536 | resolution: {integrity: sha1-f1A2/b8SxjwWkZDL5BmchSJx+fs=, tarball: fs-minipass/download/fs-minipass-2.1.0.tgz} 537 | engines: {node: '>= 8'} 538 | dependencies: 539 | minipass: 3.3.6 540 | dev: false 541 | 542 | /get-stream/5.2.0: 543 | resolution: {integrity: sha1-SWaheV7lrOZecGxLe+txJX1uItM=, tarball: get-stream/download/get-stream-5.2.0.tgz} 544 | engines: {node: '>=8'} 545 | dependencies: 546 | pump: 3.0.0 547 | dev: false 548 | 549 | /get-stream/6.0.1: 550 | resolution: {integrity: sha1-omLY7vZ6ztV8KFKtYWdSakPL97c=, tarball: get-stream/download/get-stream-6.0.1.tgz} 551 | engines: {node: '>=10'} 552 | dev: false 553 | 554 | /htmlparser2/8.0.1: 555 | resolution: {integrity: sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==, tarball: htmlparser2/download/htmlparser2-8.0.1.tgz} 556 | dependencies: 557 | domelementtype: 2.3.0 558 | domhandler: 5.0.3 559 | domutils: 3.0.1 560 | entities: 4.4.0 561 | dev: false 562 | 563 | /human-signals/2.1.0: 564 | resolution: {integrity: sha1-3JH8ukLk0G5Kuu0zs+ejwC9RTqA=, tarball: human-signals/download/human-signals-2.1.0.tgz} 565 | engines: {node: '>=10.17.0'} 566 | dev: false 567 | 568 | /is-stream/2.0.1: 569 | resolution: {integrity: sha1-+sHj1TuXrVqdCunO8jifWBClwHc=, tarball: is-stream/download/is-stream-2.0.1.tgz} 570 | engines: {node: '>=8'} 571 | dev: false 572 | 573 | /isexe/2.0.0: 574 | resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=, tarball: isexe/download/isexe-2.0.0.tgz} 575 | dev: false 576 | 577 | /kolorist/1.6.0: 578 | resolution: {integrity: sha512-dLkz37Ab97HWMx9KTes3Tbi3D1ln9fCAy2zr2YVExJasDRPGRaKcoE4fycWNtnCAJfjFqe0cnY+f8KT2JePEXQ==, tarball: kolorist/download/kolorist-1.6.0.tgz} 579 | dev: false 580 | 581 | /local-pkg/0.4.2: 582 | resolution: {integrity: sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==, tarball: local-pkg/download/local-pkg-0.4.2.tgz} 583 | engines: {node: '>=14'} 584 | dev: false 585 | 586 | /locate-path/6.0.0: 587 | resolution: {integrity: sha1-VTIeswn+u8WcSAHZMackUqaB0oY=, tarball: locate-path/download/locate-path-6.0.0.tgz} 588 | engines: {node: '>=10'} 589 | dependencies: 590 | p-locate: 5.0.0 591 | dev: false 592 | 593 | /mdn-data/2.0.28: 594 | resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==, tarball: mdn-data/download/mdn-data-2.0.28.tgz} 595 | dev: false 596 | 597 | /mdn-data/2.0.30: 598 | resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==, tarball: mdn-data/download/mdn-data-2.0.30.tgz} 599 | dev: false 600 | 601 | /merge-stream/2.0.0: 602 | resolution: {integrity: sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A=, tarball: merge-stream/download/merge-stream-2.0.0.tgz} 603 | dev: false 604 | 605 | /mime-db/1.52.0: 606 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, tarball: mime-db/download/mime-db-1.52.0.tgz} 607 | engines: {node: '>= 0.6'} 608 | dev: false 609 | 610 | /mime-types/2.1.35: 611 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, tarball: mime-types/download/mime-types-2.1.35.tgz} 612 | engines: {node: '>= 0.6'} 613 | dependencies: 614 | mime-db: 1.52.0 615 | dev: false 616 | 617 | /mimic-fn/2.1.0: 618 | resolution: {integrity: sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=, tarball: mimic-fn/download/mimic-fn-2.1.0.tgz} 619 | engines: {node: '>=6'} 620 | dev: false 621 | 622 | /minipass/3.3.6: 623 | resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==, tarball: minipass/download/minipass-3.3.6.tgz} 624 | engines: {node: '>=8'} 625 | dependencies: 626 | yallist: 4.0.0 627 | dev: false 628 | 629 | /minipass/4.0.0: 630 | resolution: {integrity: sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw==, tarball: minipass/download/minipass-4.0.0.tgz} 631 | engines: {node: '>=8'} 632 | dependencies: 633 | yallist: 4.0.0 634 | dev: false 635 | 636 | /minizlib/2.1.2: 637 | resolution: {integrity: sha1-6Q00Zrogm5MkUVCKEc49NjIUWTE=, tarball: minizlib/download/minizlib-2.1.2.tgz} 638 | engines: {node: '>= 8'} 639 | dependencies: 640 | minipass: 3.3.6 641 | yallist: 4.0.0 642 | dev: false 643 | 644 | /mkdirp/1.0.4: 645 | resolution: {integrity: sha1-PrXtYmInVteaXw4qIh3+utdcL34=, tarball: mkdirp/download/mkdirp-1.0.4.tgz} 646 | engines: {node: '>=10'} 647 | hasBin: true 648 | dev: false 649 | 650 | /ms/2.1.2: 651 | resolution: {integrity: sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=, tarball: ms/download/ms-2.1.2.tgz} 652 | dev: false 653 | 654 | /node-fetch/2.6.7: 655 | resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==, tarball: node-fetch/download/node-fetch-2.6.7.tgz} 656 | engines: {node: 4.x || >=6.0.0} 657 | peerDependencies: 658 | encoding: ^0.1.0 659 | peerDependenciesMeta: 660 | encoding: 661 | optional: true 662 | dependencies: 663 | whatwg-url: 5.0.0 664 | dev: false 665 | 666 | /npm-run-path/4.0.1: 667 | resolution: {integrity: sha1-t+zR5e1T2o43pV4cImnguX7XSOo=, tarball: npm-run-path/download/npm-run-path-4.0.1.tgz} 668 | engines: {node: '>=8'} 669 | dependencies: 670 | path-key: 3.1.1 671 | dev: false 672 | 673 | /nth-check/2.1.1: 674 | resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==, tarball: nth-check/download/nth-check-2.1.1.tgz} 675 | dependencies: 676 | boolbase: 1.0.0 677 | dev: false 678 | 679 | /once/1.4.0: 680 | resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=, tarball: once/download/once-1.4.0.tgz} 681 | dependencies: 682 | wrappy: 1.0.2 683 | dev: false 684 | 685 | /onetime/5.1.2: 686 | resolution: {integrity: sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=, tarball: onetime/download/onetime-5.1.2.tgz} 687 | engines: {node: '>=6'} 688 | dependencies: 689 | mimic-fn: 2.1.0 690 | dev: false 691 | 692 | /p-limit/3.1.0: 693 | resolution: {integrity: sha1-4drMvnjQ0TiMoYxk/qOOPlfjcGs=, tarball: p-limit/download/p-limit-3.1.0.tgz} 694 | engines: {node: '>=10'} 695 | dependencies: 696 | yocto-queue: 0.1.0 697 | dev: false 698 | 699 | /p-locate/5.0.0: 700 | resolution: {integrity: sha1-g8gxXGeFAF470CGDlBHJ4RDm2DQ=, tarball: p-locate/download/p-locate-5.0.0.tgz} 701 | engines: {node: '>=10'} 702 | dependencies: 703 | p-limit: 3.1.0 704 | dev: false 705 | 706 | /parse5-htmlparser2-tree-adapter/7.0.0: 707 | resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==, tarball: parse5-htmlparser2-tree-adapter/download/parse5-htmlparser2-tree-adapter-7.0.0.tgz} 708 | dependencies: 709 | domhandler: 5.0.3 710 | parse5: 7.1.2 711 | dev: false 712 | 713 | /parse5/7.1.2: 714 | resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==, tarball: parse5/download/parse5-7.1.2.tgz} 715 | dependencies: 716 | entities: 4.4.0 717 | dev: false 718 | 719 | /path-exists/4.0.0: 720 | resolution: {integrity: sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=, tarball: path-exists/download/path-exists-4.0.0.tgz} 721 | engines: {node: '>=8'} 722 | dev: false 723 | 724 | /path-key/3.1.1: 725 | resolution: {integrity: sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=, tarball: path-key/download/path-key-3.1.1.tgz} 726 | engines: {node: '>=8'} 727 | dev: false 728 | 729 | /pathe/1.0.0: 730 | resolution: {integrity: sha512-nPdMG0Pd09HuSsr7QOKUXO2Jr9eqaDiZvDwdyIhNG5SHYujkQHYKDfGQkulBxvbDHz8oHLsTgKN86LSwYzSHAg==, tarball: pathe/download/pathe-1.0.0.tgz} 731 | dev: false 732 | 733 | /pend/1.2.0: 734 | resolution: {integrity: sha1-elfrVQpng/kRUzH89GY9XI4AelA=, tarball: pend/download/pend-1.2.0.tgz} 735 | dev: false 736 | 737 | /picocolors/1.0.0: 738 | resolution: {integrity: sha1-y1vcdP8/UYkiNur3nWi8RFZKuBw=, tarball: picocolors/download/picocolors-1.0.0.tgz} 739 | dev: false 740 | 741 | /pump/3.0.0: 742 | resolution: {integrity: sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=, tarball: pump/download/pump-3.0.0.tgz} 743 | dependencies: 744 | end-of-stream: 1.4.4 745 | once: 1.4.0 746 | dev: false 747 | 748 | /shebang-command/2.0.0: 749 | resolution: {integrity: sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=, tarball: shebang-command/download/shebang-command-2.0.0.tgz} 750 | engines: {node: '>=8'} 751 | dependencies: 752 | shebang-regex: 3.0.0 753 | dev: false 754 | 755 | /shebang-regex/3.0.0: 756 | resolution: {integrity: sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=, tarball: shebang-regex/download/shebang-regex-3.0.0.tgz} 757 | engines: {node: '>=8'} 758 | dev: false 759 | 760 | /signal-exit/3.0.7: 761 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, tarball: signal-exit/download/signal-exit-3.0.7.tgz} 762 | dev: false 763 | 764 | /source-map-js/1.0.2: 765 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==, tarball: source-map-js/download/source-map-js-1.0.2.tgz} 766 | engines: {node: '>=0.10.0'} 767 | dev: false 768 | 769 | /strip-final-newline/2.0.0: 770 | resolution: {integrity: sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=, tarball: strip-final-newline/download/strip-final-newline-2.0.0.tgz} 771 | engines: {node: '>=6'} 772 | dev: false 773 | 774 | /svgo/3.0.2: 775 | resolution: {integrity: sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==, tarball: svgo/download/svgo-3.0.2.tgz} 776 | engines: {node: '>=14.0.0'} 777 | hasBin: true 778 | dependencies: 779 | '@trysound/sax': 0.2.0 780 | commander: 7.2.0 781 | css-select: 5.1.0 782 | css-tree: 2.3.1 783 | csso: 5.0.5 784 | picocolors: 1.0.0 785 | dev: false 786 | 787 | /tar/6.1.13: 788 | resolution: {integrity: sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==, tarball: tar/download/tar-6.1.13.tgz} 789 | engines: {node: '>=10'} 790 | dependencies: 791 | chownr: 2.0.0 792 | fs-minipass: 2.1.0 793 | minipass: 4.0.0 794 | minizlib: 2.1.2 795 | mkdirp: 1.0.4 796 | yallist: 4.0.0 797 | dev: false 798 | 799 | /tr46/0.0.3: 800 | resolution: {integrity: sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=, tarball: tr46/download/tr46-0.0.3.tgz} 801 | dev: false 802 | 803 | /webidl-conversions/3.0.1: 804 | resolution: {integrity: sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=, tarball: webidl-conversions/download/webidl-conversions-3.0.1.tgz} 805 | dev: false 806 | 807 | /whatwg-url/5.0.0: 808 | resolution: {integrity: sha1-lmRU6HZUYuN2RNNib2dCzotwll0=, tarball: whatwg-url/download/whatwg-url-5.0.0.tgz} 809 | dependencies: 810 | tr46: 0.0.3 811 | webidl-conversions: 3.0.1 812 | dev: false 813 | 814 | /which/2.0.2: 815 | resolution: {integrity: sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=, tarball: which/download/which-2.0.2.tgz} 816 | engines: {node: '>= 8'} 817 | hasBin: true 818 | dependencies: 819 | isexe: 2.0.0 820 | dev: false 821 | 822 | /wrappy/1.0.2: 823 | resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=, tarball: wrappy/download/wrappy-1.0.2.tgz} 824 | dev: false 825 | 826 | /yallist/4.0.0: 827 | resolution: {integrity: sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=, tarball: yallist/download/yallist-4.0.0.tgz} 828 | dev: false 829 | 830 | /yauzl/2.10.0: 831 | resolution: {integrity: sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=, tarball: yauzl/download/yauzl-2.10.0.tgz} 832 | dependencies: 833 | buffer-crc32: 0.2.13 834 | fd-slicer: 1.1.0 835 | dev: false 836 | 837 | /yocto-queue/0.1.0: 838 | resolution: {integrity: sha1-ApTrPe4FAo0x7hpfosVWpqrxChs=, tarball: yocto-queue/download/yocto-queue-0.1.0.tgz} 839 | engines: {node: '>=10'} 840 | dev: false 841 | --------------------------------------------------------------------------------