├── .editorconfig
├── .gitignore
├── .husky
└── pre-commit
├── .nvmrc
├── .prettierrc
├── README.md
├── awesome.gif
├── bin
└── cdn
├── example
└── data
│ ├── abc
│ ├── test.abc.js
│ └── test.web.js
│ ├── index.html
│ ├── test.abc.js
│ └── test.js
├── package.json
├── pnpm-lock.yaml
├── src
├── config
│ └── index.ts
├── enums
│ └── index.ts
├── index.ts
└── utils
│ ├── file.ts
│ ├── index.ts
│ ├── logger.ts
│ └── upload
│ ├── aliyun.ts
│ ├── debug.ts
│ ├── index.ts
│ ├── qiniu.ts
│ └── tencent.ts
├── templates
└── cdn.config.js
├── tsconfig.json
└── typings.d.ts
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | indent_style = space
6 | indent_size = 2
7 | end_of_line = lf
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | lib/
3 | dist/
4 | .idea
5 |
6 | cdn.config.js
7 | yarn-debug.log*
8 | yarn-error.log*
9 | .DS_Store
10 |
11 | !templates/cdn.config.js
12 |
--------------------------------------------------------------------------------
/.husky/pre-commit:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | . "$(dirname "$0")/_/husky.sh"
3 |
4 | npx --no-install pretty-quick --staged
5 |
--------------------------------------------------------------------------------
/.nvmrc:
--------------------------------------------------------------------------------
1 | 20
2 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "singleQuote": true,
3 | "trailingComma": "all",
4 | "printWidth": 80,
5 | "overrides": [
6 | {
7 | "files": ".prettierrc",
8 | "options": { "parser": "json" }
9 | }
10 | ]
11 | }
12 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 通过命令行将文件上传至对象存储,支持阿里云、腾讯云以及七牛云
2 |
3 | [](https://www.npmjs.org/package/cdn-cli)
4 | [](https://www.npmjs.com/package/cdn-cli)
5 |
6 |
7 |
8 | ##### 1. 初始化项目
9 |
10 | ```shell
11 | npx cdn-cli init
12 | ```
13 |
14 | ##### 2. 配置
15 |
16 | ```js
17 | module.exports = {
18 | rules: [
19 | {
20 | from: 'dist',
21 | to: '.',
22 | ignore: ['**/*.map', '**/.DS_store'],
23 | noCache: ['**/*.html'],
24 | lastUpload: ['**/*.html'],
25 | },
26 | ],
27 | environments: {
28 | production: {
29 | type: 'aliyun',
30 | region: 'oss-cn-hangzhou',
31 | bucket: 'xxx',
32 | accessKeyId: 'xxx',
33 | accessKeySecret: 'xxx',
34 | domain: 'https://xxx.xxx.com',
35 | },
36 | testing: {
37 | type: 'qiniu',
38 | region: '',
39 | bucket: '',
40 | accessKey: '',
41 | secretKey: '',
42 | domain: '',
43 | },
44 | development: {
45 | type: 'tencent',
46 | region: '',
47 | bucket: '',
48 | appId: '',
49 | secretId: '',
50 | secretKey: '',
51 | domain: '',
52 | },
53 | },
54 | };
55 | ```
56 |
57 | | 字段 | 类型 | 详情 |
58 | | ---------------- | -------- | -------------------- |
59 | | rules.from | string | 需要上传的资源目录 |
60 | | rules.to | string | 上传目标目录 |
61 | | rules.ignore | string[] | 过滤文件或目录 |
62 | | rules.noCache | string[] | 不缓存的文件或目录 |
63 | | rules.lastUpload | string[] | 最后上传的文件或目录 |
64 | | environments | object[] | 环境 |
65 |
66 | 如果配置文件的参数不存在,系统将从 `process.env` 中获取值。例如,如果 `production` 中的 `region` 值不存在,系统将从 `process.env.region` 中提取。
67 |
68 | ##### 3. 发布项目
69 |
70 | ```shell
71 | npx cdn-cli deploy production
72 | npx cdn-cli deploy testing
73 | npx cdn-cli deploy development
74 | ...
75 | ```
76 |
--------------------------------------------------------------------------------
/awesome.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chooin/cdn-cli/7db88949caa9c96ecd8517a9198277a36d31648e/awesome.gif
--------------------------------------------------------------------------------
/bin/cdn:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | const { Command } = require('commander');
4 | const { yellow, red } = require('kleur');
5 | const path = require('path');
6 | const pkg = require('../package.json');
7 |
8 | const program = new Command();
9 |
10 | program.version(pkg.version);
11 |
12 | program
13 | .name('init')
14 | .description(yellow('初始化'))
15 | .action(() => {
16 | require('../lib/utils/file')
17 | .canCopyFile(path.resolve('./cdn.config.js'))
18 | .then(() => {
19 | require('../lib/utils/file').copyFileSync(
20 | path.resolve(__dirname, '../templates/cdn.config.js'),
21 | path.resolve('./cdn.config.js'),
22 | );
23 | })
24 | .catch(() => {
25 | red('cdn.config.js 文件已存在');
26 | });
27 | });
28 |
29 | program
30 | .command('deploy ')
31 | .description(yellow('上传资源'))
32 | .action((environment) => {
33 | require('../lib').deploy(environment);
34 | });
35 |
36 | program.on('--help', () => {
37 | console.log();
38 | console.log(' 例子:');
39 | console.log();
40 | console.log(' $ cdn init');
41 | console.log(' $ cdn deploy development');
42 | });
43 |
44 | program.parse(process.argv);
45 |
--------------------------------------------------------------------------------
/example/data/abc/test.abc.js:
--------------------------------------------------------------------------------
1 | const a = {};
2 |
3 | console.log(a);
4 |
--------------------------------------------------------------------------------
/example/data/abc/test.web.js:
--------------------------------------------------------------------------------
1 | const a = {};
2 |
3 | console.log(a);
4 |
--------------------------------------------------------------------------------
/example/data/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
9 |
10 | Document
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/example/data/test.abc.js:
--------------------------------------------------------------------------------
1 | const a = {};
2 |
3 | console.log(a);
4 |
--------------------------------------------------------------------------------
/example/data/test.js:
--------------------------------------------------------------------------------
1 | const a = {};
2 |
3 | console.log(a);
4 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "cdn-cli",
3 | "version": "5.2.3",
4 | "description": "通过命令行将文件上传至对象存储,支持阿里云、腾讯云以及七牛云",
5 | "scripts": {
6 | "build": "tsc",
7 | "test": "cd example && ../bin/cdn deploy debug && cd -",
8 | "prepare": "husky install"
9 | },
10 | "license": "MIT",
11 | "bin": {
12 | "cdn": "bin/cdn"
13 | },
14 | "dependencies": {
15 | "ali-oss": "^6.16.0",
16 | "commander": "^10.0.0",
17 | "cos-nodejs-sdk-v5": "^2.11.12",
18 | "dir-glob": "^3.0.1",
19 | "fs-extra": "^11.1.1",
20 | "glob": "^9.3.1",
21 | "kleur": "^4.1.4",
22 | "lodash": "^4.17.21",
23 | "minimatch": "^7.4.2",
24 | "qiniu": "^7.4.0"
25 | },
26 | "devDependencies": {
27 | "@types/ali-oss": "^6.16.7",
28 | "@types/dir-glob": "^2.0.1",
29 | "@types/fs-extra": "^11.0.1",
30 | "@types/glob": "^8.1.0",
31 | "@types/lodash": "^4.14.182",
32 | "@types/minimatch": "^5.1.2",
33 | "@types/node": "^18.15.5",
34 | "husky": "^8.0.3",
35 | "prettier": "^2.8.6",
36 | "pretty-quick": "^3.1.3",
37 | "typescript": "^5.0.2"
38 | },
39 | "files": [
40 | "bin",
41 | "lib",
42 | "templates"
43 | ]
44 | }
45 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: '9.0'
2 |
3 | settings:
4 | autoInstallPeers: true
5 | excludeLinksFromLockfile: false
6 |
7 | importers:
8 | .:
9 | dependencies:
10 | ali-oss:
11 | specifier: ^6.16.0
12 | version: 6.17.1
13 | commander:
14 | specifier: ^10.0.0
15 | version: 10.0.0
16 | cos-nodejs-sdk-v5:
17 | specifier: ^2.11.12
18 | version: 2.11.19
19 | dir-glob:
20 | specifier: ^3.0.1
21 | version: 3.0.1
22 | fs-extra:
23 | specifier: ^11.1.1
24 | version: 11.1.1
25 | glob:
26 | specifier: ^9.3.1
27 | version: 9.3.1
28 | kleur:
29 | specifier: ^4.1.4
30 | version: 4.1.5
31 | lodash:
32 | specifier: ^4.17.21
33 | version: 4.17.21
34 | minimatch:
35 | specifier: ^7.4.2
36 | version: 7.4.2
37 | qiniu:
38 | specifier: ^7.4.0
39 | version: 7.8.0
40 | devDependencies:
41 | '@types/ali-oss':
42 | specifier: ^6.16.7
43 | version: 6.16.7
44 | '@types/dir-glob':
45 | specifier: ^2.0.1
46 | version: 2.0.1
47 | '@types/fs-extra':
48 | specifier: ^11.0.1
49 | version: 11.0.1
50 | '@types/glob':
51 | specifier: ^8.1.0
52 | version: 8.1.0
53 | '@types/lodash':
54 | specifier: ^4.14.182
55 | version: 4.14.191
56 | '@types/minimatch':
57 | specifier: ^5.1.2
58 | version: 5.1.2
59 | '@types/node':
60 | specifier: ^18.15.5
61 | version: 18.15.5
62 | husky:
63 | specifier: ^8.0.3
64 | version: 8.0.3
65 | prettier:
66 | specifier: ^2.8.6
67 | version: 2.8.6
68 | pretty-quick:
69 | specifier: ^3.1.3
70 | version: 3.1.3(prettier@2.8.6)
71 | typescript:
72 | specifier: ^5.0.2
73 | version: 5.0.2
74 |
75 | packages:
76 | '@tootallnate/once@1.1.2':
77 | resolution:
78 | {
79 | integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==,
80 | }
81 | engines: { node: '>= 6' }
82 |
83 | '@types/ali-oss@6.16.7':
84 | resolution:
85 | {
86 | integrity: sha512-o3jORqeXEgooIkOfXk1r77BaIZtPHaPRJvTus/yvFDrjRVt65POGalmt9w72d1amGq39mag/t7Rd99MLs3nasw==,
87 | }
88 |
89 | '@types/dir-glob@2.0.1':
90 | resolution:
91 | {
92 | integrity: sha512-4LClJMcgR7UaV55YKFtb1EiRA/+rVKyTb1LAHjdstSrI6+3+qRLgXrjPEG2OzDAiAutDqLBnxqE5gJ3cx+Jiag==,
93 | }
94 |
95 | '@types/fs-extra@11.0.1':
96 | resolution:
97 | {
98 | integrity: sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA==,
99 | }
100 |
101 | '@types/glob@8.1.0':
102 | resolution:
103 | {
104 | integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==,
105 | }
106 |
107 | '@types/jsonfile@6.1.1':
108 | resolution:
109 | {
110 | integrity: sha512-GSgiRCVeapDN+3pqA35IkQwasaCh/0YFH5dEF6S88iDvEn901DjOeH3/QPY+XYP1DFzDZPvIvfeEgk+7br5png==,
111 | }
112 |
113 | '@types/lodash@4.14.191':
114 | resolution:
115 | {
116 | integrity: sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==,
117 | }
118 |
119 | '@types/minimatch@3.0.5':
120 | resolution:
121 | {
122 | integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==,
123 | }
124 |
125 | '@types/minimatch@5.1.2':
126 | resolution:
127 | {
128 | integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==,
129 | }
130 |
131 | '@types/node@18.15.5':
132 | resolution:
133 | {
134 | integrity: sha512-Ark2WDjjZO7GmvsyFFf81MXuGTA/d6oP38anyxWOL6EREyBKAxKoFHwBhaZxCfLRLpO8JgVXwqOwSwa7jRcjew==,
135 | }
136 |
137 | acorn-walk@8.2.0:
138 | resolution:
139 | {
140 | integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==,
141 | }
142 | engines: { node: '>=0.4.0' }
143 |
144 | acorn@8.8.2:
145 | resolution:
146 | {
147 | integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==,
148 | }
149 | engines: { node: '>=0.4.0' }
150 | hasBin: true
151 |
152 | address@1.2.2:
153 | resolution:
154 | {
155 | integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==,
156 | }
157 | engines: { node: '>= 10.0.0' }
158 |
159 | agent-base@6.0.2:
160 | resolution:
161 | {
162 | integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==,
163 | }
164 | engines: { node: '>= 6.0.0' }
165 |
166 | agentkeepalive@3.5.2:
167 | resolution:
168 | {
169 | integrity: sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==,
170 | }
171 | engines: { node: '>= 4.0.0' }
172 |
173 | agentkeepalive@4.3.0:
174 | resolution:
175 | {
176 | integrity: sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==,
177 | }
178 | engines: { node: '>= 8.0.0' }
179 |
180 | ajv-formats@1.6.1:
181 | resolution:
182 | {
183 | integrity: sha512-4CjkH20If1lhR5CGtqkrVg3bbOtFEG80X9v6jDOIUhbzzbB+UzPBGy8GQhUNVZ0yvMHdMpawCOcy5ydGMsagGQ==,
184 | }
185 | peerDependencies:
186 | ajv: ^7.0.0
187 | peerDependenciesMeta:
188 | ajv:
189 | optional: true
190 |
191 | ajv@6.12.6:
192 | resolution:
193 | {
194 | integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==,
195 | }
196 |
197 | ajv@7.2.4:
198 | resolution:
199 | {
200 | integrity: sha512-nBeQgg/ZZA3u3SYxyaDvpvDtgZ/EZPF547ARgZBrG9Bhu1vKDwAIjtIf+sDtJUKa2zOcEbmRLBRSyMraS/Oy1A==,
201 | }
202 |
203 | ali-oss@6.17.1:
204 | resolution:
205 | {
206 | integrity: sha512-v2oT3UhSJTH/LrsscVvi7iEGrnundydNaFzpYAKatqOl4JNcBV4UiwtlJU+ZHLys040JH2k+CutznA0GoE+P2w==,
207 | }
208 | engines: { node: '>=8' }
209 |
210 | ansi-styles@4.3.0:
211 | resolution:
212 | {
213 | integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==,
214 | }
215 | engines: { node: '>=8' }
216 |
217 | any-promise@1.3.0:
218 | resolution:
219 | {
220 | integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==,
221 | }
222 |
223 | array-differ@3.0.0:
224 | resolution:
225 | {
226 | integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==,
227 | }
228 | engines: { node: '>=8' }
229 |
230 | array-union@2.1.0:
231 | resolution:
232 | {
233 | integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==,
234 | }
235 | engines: { node: '>=8' }
236 |
237 | arrify@2.0.1:
238 | resolution:
239 | {
240 | integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==,
241 | }
242 | engines: { node: '>=8' }
243 |
244 | asn1@0.2.6:
245 | resolution:
246 | {
247 | integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==,
248 | }
249 |
250 | assert-plus@1.0.0:
251 | resolution:
252 | {
253 | integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==,
254 | }
255 | engines: { node: '>=0.8' }
256 |
257 | ast-types@0.13.4:
258 | resolution:
259 | {
260 | integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==,
261 | }
262 | engines: { node: '>=4' }
263 |
264 | asynckit@0.4.0:
265 | resolution:
266 | {
267 | integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==,
268 | }
269 |
270 | atomically@1.7.0:
271 | resolution:
272 | {
273 | integrity: sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==,
274 | }
275 | engines: { node: '>=10.12.0' }
276 |
277 | aws-sign2@0.7.0:
278 | resolution:
279 | {
280 | integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==,
281 | }
282 |
283 | aws4@1.12.0:
284 | resolution:
285 | {
286 | integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==,
287 | }
288 |
289 | balanced-match@1.0.2:
290 | resolution:
291 | {
292 | integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==,
293 | }
294 |
295 | bcrypt-pbkdf@1.0.2:
296 | resolution:
297 | {
298 | integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==,
299 | }
300 |
301 | before@0.0.1:
302 | resolution:
303 | {
304 | integrity: sha512-1J5SWbkoVJH9DTALN8igB4p+nPKZzPrJ/HomqBDLpfUvDXCdjdBmBUcH5McZfur0lftVssVU6BZug5NYh87zTw==,
305 | }
306 |
307 | block-stream2@2.1.0:
308 | resolution:
309 | {
310 | integrity: sha512-suhjmLI57Ewpmq00qaygS8UgEq2ly2PCItenIyhMqVjo4t4pGzqMvfgJuX8iWTeSDdfSSqS6j38fL4ToNL7Pfg==,
311 | }
312 |
313 | bowser@1.9.4:
314 | resolution:
315 | {
316 | integrity: sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ==,
317 | }
318 |
319 | brace-expansion@1.1.11:
320 | resolution:
321 | {
322 | integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==,
323 | }
324 |
325 | brace-expansion@2.0.1:
326 | resolution:
327 | {
328 | integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==,
329 | }
330 |
331 | builtin-status-codes@3.0.0:
332 | resolution:
333 | {
334 | integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==,
335 | }
336 |
337 | bytes@3.1.2:
338 | resolution:
339 | {
340 | integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==,
341 | }
342 | engines: { node: '>= 0.8' }
343 |
344 | call-bind@1.0.2:
345 | resolution:
346 | {
347 | integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==,
348 | }
349 |
350 | caseless@0.12.0:
351 | resolution:
352 | {
353 | integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==,
354 | }
355 |
356 | chalk@3.0.0:
357 | resolution:
358 | {
359 | integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==,
360 | }
361 | engines: { node: '>=8' }
362 |
363 | color-convert@2.0.1:
364 | resolution:
365 | {
366 | integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==,
367 | }
368 | engines: { node: '>=7.0.0' }
369 |
370 | color-name@1.1.4:
371 | resolution:
372 | {
373 | integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==,
374 | }
375 |
376 | combined-stream@1.0.8:
377 | resolution:
378 | {
379 | integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==,
380 | }
381 | engines: { node: '>= 0.8' }
382 |
383 | commander@10.0.0:
384 | resolution:
385 | {
386 | integrity: sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==,
387 | }
388 | engines: { node: '>=14' }
389 |
390 | concat-map@0.0.1:
391 | resolution:
392 | {
393 | integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==,
394 | }
395 |
396 | conf@9.0.2:
397 | resolution:
398 | {
399 | integrity: sha512-rLSiilO85qHgaTBIIHQpsv8z+NnVfZq3cKuYNCXN1AOqPzced0GWZEe/A517VldRLyQYXUMyV+vszavE2jSAqw==,
400 | }
401 | engines: { node: '>=10' }
402 |
403 | content-type@1.0.5:
404 | resolution:
405 | {
406 | integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==,
407 | }
408 | engines: { node: '>= 0.6' }
409 |
410 | copy-to@2.0.1:
411 | resolution:
412 | {
413 | integrity: sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w==,
414 | }
415 |
416 | core-util-is@1.0.2:
417 | resolution:
418 | {
419 | integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==,
420 | }
421 |
422 | core-util-is@1.0.3:
423 | resolution:
424 | {
425 | integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==,
426 | }
427 |
428 | cos-nodejs-sdk-v5@2.11.19:
429 | resolution:
430 | {
431 | integrity: sha512-lYqjUWWUhifarWupDlDA0sH8yyzXE7tD3ipOKcATIB1Hxkk7REeRleNSLkU/zfSP61Osmwaaw/nkfroujHaJZA==,
432 | }
433 | engines: { node: '>= 6' }
434 |
435 | crc32@0.2.2:
436 | resolution:
437 | {
438 | integrity: sha512-PFZEGbDUeoNbL2GHIEpJRQGheXReDody/9axKTxhXtQqIL443wnNigtVZO9iuCIMPApKZRv7k2xr8euXHqNxQQ==,
439 | }
440 | engines: { node: '>= 0.4.0' }
441 | hasBin: true
442 |
443 | cross-spawn@7.0.3:
444 | resolution:
445 | {
446 | integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==,
447 | }
448 | engines: { node: '>= 8' }
449 |
450 | dashdash@1.14.1:
451 | resolution:
452 | {
453 | integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==,
454 | }
455 | engines: { node: '>=0.10' }
456 |
457 | data-uri-to-buffer@3.0.1:
458 | resolution:
459 | {
460 | integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==,
461 | }
462 | engines: { node: '>= 6' }
463 |
464 | dateformat@2.2.0:
465 | resolution:
466 | {
467 | integrity: sha512-GODcnWq3YGoTnygPfi02ygEiRxqUxpJwuRHjdhJYuxpcZmDq4rjBiXYmbCCzStxo176ixfLT6i4NPwQooRySnw==,
468 | }
469 |
470 | debounce-fn@4.0.0:
471 | resolution:
472 | {
473 | integrity: sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==,
474 | }
475 | engines: { node: '>=10' }
476 |
477 | debug@2.6.9:
478 | resolution:
479 | {
480 | integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==,
481 | }
482 | peerDependencies:
483 | supports-color: '*'
484 | peerDependenciesMeta:
485 | supports-color:
486 | optional: true
487 |
488 | debug@4.3.4:
489 | resolution:
490 | {
491 | integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==,
492 | }
493 | engines: { node: '>=6.0' }
494 | peerDependencies:
495 | supports-color: '*'
496 | peerDependenciesMeta:
497 | supports-color:
498 | optional: true
499 |
500 | deep-is@0.1.4:
501 | resolution:
502 | {
503 | integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==,
504 | }
505 |
506 | default-user-agent@1.0.0:
507 | resolution:
508 | {
509 | integrity: sha512-bDF7bg6OSNcSwFWPu4zYKpVkJZQYVrAANMYB8bc9Szem1D0yKdm4sa/rOCs2aC9+2GMqQ7KnwtZRvDhmLF0dXw==,
510 | }
511 | engines: { node: '>= 0.10.0' }
512 |
513 | degenerator@3.0.2:
514 | resolution:
515 | {
516 | integrity: sha512-c0mef3SNQo56t6urUU6tdQAs+ThoD0o9B9MJ8HEt7NQcGEILCRFqQb7ZbP9JAv+QF1Ky5plydhMR/IrqWDm+TQ==,
517 | }
518 | engines: { node: '>= 6' }
519 |
520 | delayed-stream@1.0.0:
521 | resolution:
522 | {
523 | integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==,
524 | }
525 | engines: { node: '>=0.4.0' }
526 |
527 | depd@2.0.0:
528 | resolution:
529 | {
530 | integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==,
531 | }
532 | engines: { node: '>= 0.8' }
533 |
534 | destroy@1.2.0:
535 | resolution:
536 | {
537 | integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==,
538 | }
539 | engines: { node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16 }
540 |
541 | digest-header@1.0.0:
542 | resolution:
543 | {
544 | integrity: sha512-sRTuakZ2PkOUCuAaVv+SLjhr/hRf8ldZP0XnGEQ69RFGxmll5fVaMsnRXWKKK4XsUTnJf8+eRPSFNgE/lWa9wQ==,
545 | }
546 | engines: { node: '>= 8.0.0' }
547 |
548 | dir-glob@3.0.1:
549 | resolution:
550 | {
551 | integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==,
552 | }
553 | engines: { node: '>=8' }
554 |
555 | dot-prop@6.0.1:
556 | resolution:
557 | {
558 | integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==,
559 | }
560 | engines: { node: '>=10' }
561 |
562 | ecc-jsbn@0.1.2:
563 | resolution:
564 | {
565 | integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==,
566 | }
567 |
568 | ee-first@1.1.1:
569 | resolution:
570 | {
571 | integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==,
572 | }
573 |
574 | encodeurl@1.0.2:
575 | resolution:
576 | {
577 | integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==,
578 | }
579 | engines: { node: '>= 0.8' }
580 |
581 | end-of-stream@1.4.4:
582 | resolution:
583 | {
584 | integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==,
585 | }
586 |
587 | end-or-error@1.0.1:
588 | resolution:
589 | {
590 | integrity: sha512-OclLMSug+k2A0JKuf494im25ANRBVW8qsjmwbgX7lQ8P82H21PQ1PWkoYwb9y5yMBS69BPlwtzdIFClo3+7kOQ==,
591 | }
592 | engines: { node: '>= 0.11.14' }
593 |
594 | env-paths@2.2.1:
595 | resolution:
596 | {
597 | integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==,
598 | }
599 | engines: { node: '>=6' }
600 |
601 | escape-html@1.0.3:
602 | resolution:
603 | {
604 | integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==,
605 | }
606 |
607 | escodegen@1.14.3:
608 | resolution:
609 | {
610 | integrity: sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==,
611 | }
612 | engines: { node: '>=4.0' }
613 | hasBin: true
614 |
615 | esprima@4.0.1:
616 | resolution:
617 | {
618 | integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==,
619 | }
620 | engines: { node: '>=4' }
621 | hasBin: true
622 |
623 | estraverse@4.3.0:
624 | resolution:
625 | {
626 | integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==,
627 | }
628 | engines: { node: '>=4.0' }
629 |
630 | esutils@2.0.3:
631 | resolution:
632 | {
633 | integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==,
634 | }
635 | engines: { node: '>=0.10.0' }
636 |
637 | execa@4.1.0:
638 | resolution:
639 | {
640 | integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==,
641 | }
642 | engines: { node: '>=10' }
643 |
644 | extend-shallow@2.0.1:
645 | resolution:
646 | {
647 | integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==,
648 | }
649 | engines: { node: '>=0.10.0' }
650 |
651 | extend@3.0.2:
652 | resolution:
653 | {
654 | integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==,
655 | }
656 |
657 | extsprintf@1.3.0:
658 | resolution:
659 | {
660 | integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==,
661 | }
662 | engines: { '0': node >=0.6.0 }
663 |
664 | fast-deep-equal@3.1.3:
665 | resolution:
666 | {
667 | integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==,
668 | }
669 |
670 | fast-json-stable-stringify@2.1.0:
671 | resolution:
672 | {
673 | integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==,
674 | }
675 |
676 | fast-levenshtein@2.0.6:
677 | resolution:
678 | {
679 | integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==,
680 | }
681 |
682 | file-uri-to-path@2.0.0:
683 | resolution:
684 | {
685 | integrity: sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==,
686 | }
687 | engines: { node: '>= 6' }
688 |
689 | find-up@3.0.0:
690 | resolution:
691 | {
692 | integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==,
693 | }
694 | engines: { node: '>=6' }
695 |
696 | find-up@4.1.0:
697 | resolution:
698 | {
699 | integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==,
700 | }
701 | engines: { node: '>=8' }
702 |
703 | forever-agent@0.6.1:
704 | resolution:
705 | {
706 | integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==,
707 | }
708 |
709 | form-data@2.3.3:
710 | resolution:
711 | {
712 | integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==,
713 | }
714 | engines: { node: '>= 0.12' }
715 |
716 | formstream@1.1.1:
717 | resolution:
718 | {
719 | integrity: sha512-yHRxt3qLFnhsKAfhReM4w17jP+U1OlhUjnKPPtonwKbIJO7oBP0MvoxkRUwb8AU9n0MIkYy5X5dK6pQnbj+R2Q==,
720 | }
721 |
722 | fs-extra@11.1.1:
723 | resolution:
724 | {
725 | integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==,
726 | }
727 | engines: { node: '>=14.14' }
728 |
729 | fs-extra@8.1.0:
730 | resolution:
731 | {
732 | integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==,
733 | }
734 | engines: { node: '>=6 <7 || >=8' }
735 |
736 | fs.realpath@1.0.0:
737 | resolution:
738 | {
739 | integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==,
740 | }
741 |
742 | ftp@0.3.10:
743 | resolution:
744 | {
745 | integrity: sha512-faFVML1aBx2UoDStmLwv2Wptt4vw5x03xxX172nhA5Y5HBshW5JweqQ2W4xL4dezQTG8inJsuYcpPHHU3X5OTQ==,
746 | }
747 | engines: { node: '>=0.8.0' }
748 |
749 | function-bind@1.1.1:
750 | resolution:
751 | {
752 | integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==,
753 | }
754 |
755 | get-intrinsic@1.2.0:
756 | resolution:
757 | {
758 | integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==,
759 | }
760 |
761 | get-ready@1.0.0:
762 | resolution:
763 | {
764 | integrity: sha512-mFXCZPJIlcYcth+N8267+mghfYN9h3EhsDa6JSnbA3Wrhh/XFpuowviFcsDeYZtKspQyWyJqfs4O6P8CHeTwzw==,
765 | }
766 |
767 | get-stream@5.2.0:
768 | resolution:
769 | {
770 | integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==,
771 | }
772 | engines: { node: '>=8' }
773 |
774 | get-uri@3.0.2:
775 | resolution:
776 | {
777 | integrity: sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==,
778 | }
779 | engines: { node: '>= 6' }
780 |
781 | getpass@0.1.7:
782 | resolution:
783 | {
784 | integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==,
785 | }
786 |
787 | glob@7.2.3:
788 | resolution:
789 | {
790 | integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==,
791 | }
792 |
793 | glob@9.3.1:
794 | resolution:
795 | {
796 | integrity: sha512-qERvJb7IGsnkx6YYmaaGvDpf77c951hICMdWaFXyH3PlVob8sbPJJyJX0kWkiCWyXUzoy9UOTNjGg0RbD8bYIw==,
797 | }
798 | engines: { node: '>=16 || 14 >=14.17' }
799 |
800 | graceful-fs@4.2.10:
801 | resolution:
802 | {
803 | integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==,
804 | }
805 |
806 | graceful-fs@4.2.11:
807 | resolution:
808 | {
809 | integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==,
810 | }
811 |
812 | har-schema@2.0.0:
813 | resolution:
814 | {
815 | integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==,
816 | }
817 | engines: { node: '>=4' }
818 |
819 | har-validator@5.1.5:
820 | resolution:
821 | {
822 | integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==,
823 | }
824 | engines: { node: '>=6' }
825 | deprecated: this library is no longer supported
826 |
827 | has-flag@4.0.0:
828 | resolution:
829 | {
830 | integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==,
831 | }
832 | engines: { node: '>=8' }
833 |
834 | has-symbols@1.0.3:
835 | resolution:
836 | {
837 | integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==,
838 | }
839 | engines: { node: '>= 0.4' }
840 |
841 | has@1.0.3:
842 | resolution:
843 | {
844 | integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==,
845 | }
846 | engines: { node: '>= 0.4.0' }
847 |
848 | http-errors@2.0.0:
849 | resolution:
850 | {
851 | integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==,
852 | }
853 | engines: { node: '>= 0.8' }
854 |
855 | http-proxy-agent@4.0.1:
856 | resolution:
857 | {
858 | integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==,
859 | }
860 | engines: { node: '>= 6' }
861 |
862 | http-signature@1.2.0:
863 | resolution:
864 | {
865 | integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==,
866 | }
867 | engines: { node: '>=0.8', npm: '>=1.3.7' }
868 |
869 | https-proxy-agent@5.0.1:
870 | resolution:
871 | {
872 | integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==,
873 | }
874 | engines: { node: '>= 6' }
875 |
876 | human-signals@1.1.1:
877 | resolution:
878 | {
879 | integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==,
880 | }
881 | engines: { node: '>=8.12.0' }
882 |
883 | humanize-ms@1.2.1:
884 | resolution:
885 | {
886 | integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==,
887 | }
888 |
889 | husky@8.0.3:
890 | resolution:
891 | {
892 | integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==,
893 | }
894 | engines: { node: '>=14' }
895 | hasBin: true
896 |
897 | iconv-lite@0.4.24:
898 | resolution:
899 | {
900 | integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==,
901 | }
902 | engines: { node: '>=0.10.0' }
903 |
904 | ignore@5.2.4:
905 | resolution:
906 | {
907 | integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==,
908 | }
909 | engines: { node: '>= 4' }
910 |
911 | inflight@1.0.6:
912 | resolution:
913 | {
914 | integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==,
915 | }
916 |
917 | inherits@2.0.4:
918 | resolution:
919 | {
920 | integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==,
921 | }
922 |
923 | ip@1.1.8:
924 | resolution:
925 | {
926 | integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==,
927 | }
928 |
929 | ip@2.0.0:
930 | resolution:
931 | {
932 | integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==,
933 | }
934 |
935 | is-class-hotfix@0.0.6:
936 | resolution:
937 | {
938 | integrity: sha512-0n+pzCC6ICtVr/WXnN2f03TK/3BfXY7me4cjCAqT8TYXEl0+JBRoqBo94JJHXcyDSLUeWbNX8Fvy5g5RJdAstQ==,
939 | }
940 |
941 | is-extendable@0.1.1:
942 | resolution:
943 | {
944 | integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==,
945 | }
946 | engines: { node: '>=0.10.0' }
947 |
948 | is-obj@2.0.0:
949 | resolution:
950 | {
951 | integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==,
952 | }
953 | engines: { node: '>=8' }
954 |
955 | is-stream@2.0.1:
956 | resolution:
957 | {
958 | integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==,
959 | }
960 | engines: { node: '>=8' }
961 |
962 | is-type-of@1.2.1:
963 | resolution:
964 | {
965 | integrity: sha512-uK0kyX9LZYhSDS7H2sVJQJop1UnWPWmo5RvR3q2kFH6AUHYs7sOrVg0b4nyBHw29kRRNFofYN/JbHZDlHiItTA==,
966 | }
967 |
968 | is-typedarray@1.0.0:
969 | resolution:
970 | {
971 | integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==,
972 | }
973 |
974 | isarray@0.0.1:
975 | resolution:
976 | {
977 | integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==,
978 | }
979 |
980 | isarray@1.0.0:
981 | resolution:
982 | {
983 | integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==,
984 | }
985 |
986 | isexe@2.0.0:
987 | resolution:
988 | {
989 | integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==,
990 | }
991 |
992 | isstream@0.1.2:
993 | resolution:
994 | {
995 | integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==,
996 | }
997 |
998 | js-base64@2.6.4:
999 | resolution:
1000 | {
1001 | integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==,
1002 | }
1003 |
1004 | jsbn@0.1.1:
1005 | resolution:
1006 | {
1007 | integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==,
1008 | }
1009 |
1010 | json-schema-traverse@0.4.1:
1011 | resolution:
1012 | {
1013 | integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==,
1014 | }
1015 |
1016 | json-schema-traverse@1.0.0:
1017 | resolution:
1018 | {
1019 | integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==,
1020 | }
1021 |
1022 | json-schema-typed@7.0.3:
1023 | resolution:
1024 | {
1025 | integrity: sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==,
1026 | }
1027 |
1028 | json-schema@0.4.0:
1029 | resolution:
1030 | {
1031 | integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==,
1032 | }
1033 |
1034 | json-stringify-safe@5.0.1:
1035 | resolution:
1036 | {
1037 | integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==,
1038 | }
1039 |
1040 | jsonfile@4.0.0:
1041 | resolution:
1042 | {
1043 | integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==,
1044 | }
1045 |
1046 | jsonfile@6.1.0:
1047 | resolution:
1048 | {
1049 | integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==,
1050 | }
1051 |
1052 | jsprim@1.4.2:
1053 | resolution:
1054 | {
1055 | integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==,
1056 | }
1057 | engines: { node: '>=0.6.0' }
1058 |
1059 | jstoxml@2.2.9:
1060 | resolution:
1061 | {
1062 | integrity: sha512-OYWlK0j+roh+eyaMROlNbS5cd5R25Y+IUpdl7cNdB8HNrkgwQzIS7L9MegxOiWNBj9dQhA/yAxiMwCC5mwNoBw==,
1063 | }
1064 |
1065 | kleur@4.1.5:
1066 | resolution:
1067 | {
1068 | integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==,
1069 | }
1070 | engines: { node: '>=6' }
1071 |
1072 | ko-sleep@1.1.4:
1073 | resolution:
1074 | {
1075 | integrity: sha512-s05WGpvvzyTuRlRE8fM7ru2Z3O+InbJuBcckTWKg2W+2c1k6SnFa3IfiSSt0/peFrlYAXgNoxuJWWVNmWh+K/A==,
1076 | }
1077 |
1078 | levn@0.3.0:
1079 | resolution:
1080 | {
1081 | integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==,
1082 | }
1083 | engines: { node: '>= 0.8.0' }
1084 |
1085 | locate-path@3.0.0:
1086 | resolution:
1087 | {
1088 | integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==,
1089 | }
1090 | engines: { node: '>=6' }
1091 |
1092 | locate-path@5.0.0:
1093 | resolution:
1094 | {
1095 | integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==,
1096 | }
1097 | engines: { node: '>=8' }
1098 |
1099 | lodash@4.17.21:
1100 | resolution:
1101 | {
1102 | integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==,
1103 | }
1104 |
1105 | lru-cache@5.1.1:
1106 | resolution:
1107 | {
1108 | integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==,
1109 | }
1110 |
1111 | lru-cache@6.0.0:
1112 | resolution:
1113 | {
1114 | integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==,
1115 | }
1116 | engines: { node: '>=10' }
1117 |
1118 | lru-cache@7.18.3:
1119 | resolution:
1120 | {
1121 | integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==,
1122 | }
1123 | engines: { node: '>=12' }
1124 |
1125 | make-dir@3.1.0:
1126 | resolution:
1127 | {
1128 | integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==,
1129 | }
1130 | engines: { node: '>=8' }
1131 |
1132 | merge-descriptors@1.0.1:
1133 | resolution:
1134 | {
1135 | integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==,
1136 | }
1137 |
1138 | merge-stream@2.0.0:
1139 | resolution:
1140 | {
1141 | integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==,
1142 | }
1143 |
1144 | mime-db@1.52.0:
1145 | resolution:
1146 | {
1147 | integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==,
1148 | }
1149 | engines: { node: '>= 0.6' }
1150 |
1151 | mime-types@2.1.35:
1152 | resolution:
1153 | {
1154 | integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==,
1155 | }
1156 | engines: { node: '>= 0.6' }
1157 |
1158 | mime@2.6.0:
1159 | resolution:
1160 | {
1161 | integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==,
1162 | }
1163 | engines: { node: '>=4.0.0' }
1164 | hasBin: true
1165 |
1166 | mimic-fn@2.1.0:
1167 | resolution:
1168 | {
1169 | integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==,
1170 | }
1171 | engines: { node: '>=6' }
1172 |
1173 | mimic-fn@3.1.0:
1174 | resolution:
1175 | {
1176 | integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==,
1177 | }
1178 | engines: { node: '>=8' }
1179 |
1180 | minimatch@3.1.2:
1181 | resolution:
1182 | {
1183 | integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==,
1184 | }
1185 |
1186 | minimatch@7.4.2:
1187 | resolution:
1188 | {
1189 | integrity: sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA==,
1190 | }
1191 | engines: { node: '>=10' }
1192 |
1193 | minimist@1.2.8:
1194 | resolution:
1195 | {
1196 | integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==,
1197 | }
1198 |
1199 | minipass@4.2.5:
1200 | resolution:
1201 | {
1202 | integrity: sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==,
1203 | }
1204 | engines: { node: '>=8' }
1205 |
1206 | mkdirp@0.5.6:
1207 | resolution:
1208 | {
1209 | integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==,
1210 | }
1211 | hasBin: true
1212 |
1213 | mockdate@3.0.5:
1214 | resolution:
1215 | {
1216 | integrity: sha512-iniQP4rj1FhBdBYS/+eQv7j1tadJ9lJtdzgOpvsOHng/GbcDh2Fhdeq+ZRldrPYdXvCyfFUmFeEwEGXZB5I/AQ==,
1217 | }
1218 |
1219 | mri@1.2.0:
1220 | resolution:
1221 | {
1222 | integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==,
1223 | }
1224 | engines: { node: '>=4' }
1225 |
1226 | ms@2.0.0:
1227 | resolution:
1228 | {
1229 | integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==,
1230 | }
1231 |
1232 | ms@2.1.2:
1233 | resolution:
1234 | {
1235 | integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==,
1236 | }
1237 |
1238 | ms@2.1.3:
1239 | resolution:
1240 | {
1241 | integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==,
1242 | }
1243 |
1244 | multimatch@4.0.0:
1245 | resolution:
1246 | {
1247 | integrity: sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==,
1248 | }
1249 | engines: { node: '>=8' }
1250 |
1251 | mz-modules@2.1.0:
1252 | resolution:
1253 | {
1254 | integrity: sha512-sjk8lcRW3vrVYnZ+W+67L/2rL+jbO5K/N6PFGIcLWTiYytNr22Ah9FDXFs+AQntTM1boZcoHi5qS+CV1seuPog==,
1255 | }
1256 | engines: { node: '>=6.0.0' }
1257 |
1258 | mz@2.7.0:
1259 | resolution:
1260 | {
1261 | integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==,
1262 | }
1263 |
1264 | netmask@2.0.2:
1265 | resolution:
1266 | {
1267 | integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==,
1268 | }
1269 | engines: { node: '>= 0.4.0' }
1270 |
1271 | npm-run-path@4.0.1:
1272 | resolution:
1273 | {
1274 | integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==,
1275 | }
1276 | engines: { node: '>=8' }
1277 |
1278 | oauth-sign@0.9.0:
1279 | resolution:
1280 | {
1281 | integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==,
1282 | }
1283 |
1284 | object-assign@4.1.1:
1285 | resolution:
1286 | {
1287 | integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==,
1288 | }
1289 | engines: { node: '>=0.10.0' }
1290 |
1291 | object-inspect@1.12.3:
1292 | resolution:
1293 | {
1294 | integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==,
1295 | }
1296 |
1297 | once@1.4.0:
1298 | resolution:
1299 | {
1300 | integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==,
1301 | }
1302 |
1303 | onetime@5.1.2:
1304 | resolution:
1305 | {
1306 | integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==,
1307 | }
1308 | engines: { node: '>=6' }
1309 |
1310 | optionator@0.8.3:
1311 | resolution:
1312 | {
1313 | integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==,
1314 | }
1315 | engines: { node: '>= 0.8.0' }
1316 |
1317 | os-name@1.0.3:
1318 | resolution:
1319 | {
1320 | integrity: sha512-f5estLO2KN8vgtTRaILIgEGBoBrMnZ3JQ7W9TMZCnOIGwHe8TRGSpcagnWDo+Dfhd/z08k9Xe75hvciJJ8Qaew==,
1321 | }
1322 | engines: { node: '>=0.10.0' }
1323 | hasBin: true
1324 |
1325 | osx-release@1.1.0:
1326 | resolution:
1327 | {
1328 | integrity: sha512-ixCMMwnVxyHFQLQnINhmIpWqXIfS2YOXchwQrk+OFzmo6nDjQ0E4KXAyyUh0T0MZgV4bUhkRrAbVqlE4yLVq4A==,
1329 | }
1330 | engines: { node: '>=0.10.0' }
1331 | hasBin: true
1332 |
1333 | p-limit@2.3.0:
1334 | resolution:
1335 | {
1336 | integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==,
1337 | }
1338 | engines: { node: '>=6' }
1339 |
1340 | p-locate@3.0.0:
1341 | resolution:
1342 | {
1343 | integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==,
1344 | }
1345 | engines: { node: '>=6' }
1346 |
1347 | p-locate@4.1.0:
1348 | resolution:
1349 | {
1350 | integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==,
1351 | }
1352 | engines: { node: '>=8' }
1353 |
1354 | p-try@2.2.0:
1355 | resolution:
1356 | {
1357 | integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==,
1358 | }
1359 | engines: { node: '>=6' }
1360 |
1361 | pac-proxy-agent@5.0.0:
1362 | resolution:
1363 | {
1364 | integrity: sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ==,
1365 | }
1366 | engines: { node: '>= 8' }
1367 |
1368 | pac-resolver@5.0.1:
1369 | resolution:
1370 | {
1371 | integrity: sha512-cy7u00ko2KVgBAjuhevqpPeHIkCIqPe1v24cydhWjmeuzaBfmUWFCZJ1iAh5TuVzVZoUzXIW7K8sMYOZ84uZ9Q==,
1372 | }
1373 | engines: { node: '>= 8' }
1374 |
1375 | path-exists@3.0.0:
1376 | resolution:
1377 | {
1378 | integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==,
1379 | }
1380 | engines: { node: '>=4' }
1381 |
1382 | path-exists@4.0.0:
1383 | resolution:
1384 | {
1385 | integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==,
1386 | }
1387 | engines: { node: '>=8' }
1388 |
1389 | path-is-absolute@1.0.1:
1390 | resolution:
1391 | {
1392 | integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==,
1393 | }
1394 | engines: { node: '>=0.10.0' }
1395 |
1396 | path-key@3.1.1:
1397 | resolution:
1398 | {
1399 | integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==,
1400 | }
1401 | engines: { node: '>=8' }
1402 |
1403 | path-scurry@1.6.2:
1404 | resolution:
1405 | {
1406 | integrity: sha512-J6MQNh56h6eHFY3vsQ+Lq+zKPwn71POieutmVt2leU8W+zz8HVIdJyn3I3Zs6IKbIQtuKXirVjTBFNBcbFO44Q==,
1407 | }
1408 | engines: { node: '>=16 || 14 >=14.17' }
1409 |
1410 | path-type@4.0.0:
1411 | resolution:
1412 | {
1413 | integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==,
1414 | }
1415 | engines: { node: '>=8' }
1416 |
1417 | pause-stream@0.0.11:
1418 | resolution:
1419 | {
1420 | integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==,
1421 | }
1422 |
1423 | performance-now@2.1.0:
1424 | resolution:
1425 | {
1426 | integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==,
1427 | }
1428 |
1429 | pkg-up@3.1.0:
1430 | resolution:
1431 | {
1432 | integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==,
1433 | }
1434 | engines: { node: '>=8' }
1435 |
1436 | platform@1.3.6:
1437 | resolution:
1438 | {
1439 | integrity: sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==,
1440 | }
1441 |
1442 | prelude-ls@1.1.2:
1443 | resolution:
1444 | {
1445 | integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==,
1446 | }
1447 | engines: { node: '>= 0.8.0' }
1448 |
1449 | prettier@2.8.6:
1450 | resolution:
1451 | {
1452 | integrity: sha512-mtuzdiBbHwPEgl7NxWlqOkithPyp4VN93V7VeHVWBF+ad3I5avc0RVDT4oImXQy9H/AqxA2NSQH8pSxHW6FYbQ==,
1453 | }
1454 | engines: { node: '>=10.13.0' }
1455 | hasBin: true
1456 |
1457 | pretty-quick@3.1.3:
1458 | resolution:
1459 | {
1460 | integrity: sha512-kOCi2FJabvuh1as9enxYmrnBC6tVMoVOenMaBqRfsvBHB0cbpYHjdQEpSglpASDFEXVwplpcGR4CLEaisYAFcA==,
1461 | }
1462 | engines: { node: '>=10.13' }
1463 | hasBin: true
1464 | peerDependencies:
1465 | prettier: '>=2.0.0'
1466 |
1467 | process-nextick-args@2.0.1:
1468 | resolution:
1469 | {
1470 | integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==,
1471 | }
1472 |
1473 | proxy-agent@5.0.0:
1474 | resolution:
1475 | {
1476 | integrity: sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g==,
1477 | }
1478 | engines: { node: '>= 8' }
1479 |
1480 | proxy-from-env@1.1.0:
1481 | resolution:
1482 | {
1483 | integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==,
1484 | }
1485 |
1486 | psl@1.9.0:
1487 | resolution:
1488 | {
1489 | integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==,
1490 | }
1491 |
1492 | pump@3.0.0:
1493 | resolution:
1494 | {
1495 | integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==,
1496 | }
1497 |
1498 | punycode@2.3.0:
1499 | resolution:
1500 | {
1501 | integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==,
1502 | }
1503 | engines: { node: '>=6' }
1504 |
1505 | qiniu@7.8.0:
1506 | resolution:
1507 | {
1508 | integrity: sha512-StJ2+E2gnr9BOfUcOLLBSWicc4ItpI3BK+O76ebHKdWrcdNnFfIfHK6dzJY5Fu0k3od2QyuWoNMTZ77SD6emMA==,
1509 | }
1510 | engines: { node: '>= 6' }
1511 |
1512 | qs@6.11.1:
1513 | resolution:
1514 | {
1515 | integrity: sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ==,
1516 | }
1517 | engines: { node: '>=0.6' }
1518 |
1519 | qs@6.5.3:
1520 | resolution:
1521 | {
1522 | integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==,
1523 | }
1524 | engines: { node: '>=0.6' }
1525 |
1526 | raw-body@2.5.2:
1527 | resolution:
1528 | {
1529 | integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==,
1530 | }
1531 | engines: { node: '>= 0.8' }
1532 |
1533 | readable-stream@1.1.14:
1534 | resolution:
1535 | {
1536 | integrity: sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==,
1537 | }
1538 |
1539 | readable-stream@2.3.8:
1540 | resolution:
1541 | {
1542 | integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==,
1543 | }
1544 |
1545 | readable-stream@3.6.2:
1546 | resolution:
1547 | {
1548 | integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==,
1549 | }
1550 | engines: { node: '>= 6' }
1551 |
1552 | request@2.88.2:
1553 | resolution:
1554 | {
1555 | integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==,
1556 | }
1557 | engines: { node: '>= 6' }
1558 | deprecated: request has been deprecated, see https://github.com/request/request/issues/3142
1559 |
1560 | require-from-string@2.0.2:
1561 | resolution:
1562 | {
1563 | integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==,
1564 | }
1565 | engines: { node: '>=0.10.0' }
1566 |
1567 | rimraf@2.7.1:
1568 | resolution:
1569 | {
1570 | integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==,
1571 | }
1572 | hasBin: true
1573 |
1574 | safe-buffer@5.1.2:
1575 | resolution:
1576 | {
1577 | integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==,
1578 | }
1579 |
1580 | safe-buffer@5.2.1:
1581 | resolution:
1582 | {
1583 | integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==,
1584 | }
1585 |
1586 | safer-buffer@2.1.2:
1587 | resolution:
1588 | {
1589 | integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==,
1590 | }
1591 |
1592 | sax@1.2.4:
1593 | resolution:
1594 | {
1595 | integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==,
1596 | }
1597 |
1598 | sdk-base@2.0.1:
1599 | resolution:
1600 | {
1601 | integrity: sha512-eeG26wRwhtwYuKGCDM3LixCaxY27Pa/5lK4rLKhQa7HBjJ3U3Y+f81MMZQRsDw/8SC2Dao/83yJTXJ8aULuN8Q==,
1602 | }
1603 |
1604 | semver@5.7.1:
1605 | resolution:
1606 | {
1607 | integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==,
1608 | }
1609 | hasBin: true
1610 |
1611 | semver@6.3.0:
1612 | resolution:
1613 | {
1614 | integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==,
1615 | }
1616 | hasBin: true
1617 |
1618 | semver@7.3.8:
1619 | resolution:
1620 | {
1621 | integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==,
1622 | }
1623 | engines: { node: '>=10' }
1624 | hasBin: true
1625 |
1626 | setprototypeof@1.2.0:
1627 | resolution:
1628 | {
1629 | integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==,
1630 | }
1631 |
1632 | shebang-command@2.0.0:
1633 | resolution:
1634 | {
1635 | integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==,
1636 | }
1637 | engines: { node: '>=8' }
1638 |
1639 | shebang-regex@3.0.0:
1640 | resolution:
1641 | {
1642 | integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==,
1643 | }
1644 | engines: { node: '>=8' }
1645 |
1646 | side-channel@1.0.4:
1647 | resolution:
1648 | {
1649 | integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==,
1650 | }
1651 |
1652 | signal-exit@3.0.7:
1653 | resolution:
1654 | {
1655 | integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==,
1656 | }
1657 |
1658 | smart-buffer@4.2.0:
1659 | resolution:
1660 | {
1661 | integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==,
1662 | }
1663 | engines: { node: '>= 6.0.0', npm: '>= 3.0.0' }
1664 |
1665 | socks-proxy-agent@5.0.1:
1666 | resolution:
1667 | {
1668 | integrity: sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==,
1669 | }
1670 | engines: { node: '>= 6' }
1671 |
1672 | socks@2.7.1:
1673 | resolution:
1674 | {
1675 | integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==,
1676 | }
1677 | engines: { node: '>= 10.13.0', npm: '>= 3.0.0' }
1678 |
1679 | source-map@0.6.1:
1680 | resolution:
1681 | {
1682 | integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==,
1683 | }
1684 | engines: { node: '>=0.10.0' }
1685 |
1686 | sshpk@1.17.0:
1687 | resolution:
1688 | {
1689 | integrity: sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==,
1690 | }
1691 | engines: { node: '>=0.10.0' }
1692 | hasBin: true
1693 |
1694 | statuses@1.5.0:
1695 | resolution:
1696 | {
1697 | integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==,
1698 | }
1699 | engines: { node: '>= 0.6' }
1700 |
1701 | statuses@2.0.1:
1702 | resolution:
1703 | {
1704 | integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==,
1705 | }
1706 | engines: { node: '>= 0.8' }
1707 |
1708 | stream-http@2.8.2:
1709 | resolution:
1710 | {
1711 | integrity: sha512-QllfrBhqF1DPcz46WxKTs6Mz1Bpc+8Qm6vbqOpVav5odAXwbyzwnEczoWqtxrsmlO+cJqtPrp/8gWKWjaKLLlA==,
1712 | }
1713 |
1714 | stream-wormhole@1.1.0:
1715 | resolution:
1716 | {
1717 | integrity: sha512-gHFfL3px0Kctd6Po0M8TzEvt3De/xu6cnRrjlfYNhwbhLPLwigI2t1nc6jrzNuaYg5C4YF78PPFuQPzRiqn9ew==,
1718 | }
1719 | engines: { node: '>=4.0.0' }
1720 |
1721 | string_decoder@0.10.31:
1722 | resolution:
1723 | {
1724 | integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==,
1725 | }
1726 |
1727 | string_decoder@1.1.1:
1728 | resolution:
1729 | {
1730 | integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==,
1731 | }
1732 |
1733 | string_decoder@1.3.0:
1734 | resolution:
1735 | {
1736 | integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==,
1737 | }
1738 |
1739 | strip-final-newline@2.0.0:
1740 | resolution:
1741 | {
1742 | integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==,
1743 | }
1744 | engines: { node: '>=6' }
1745 |
1746 | supports-color@7.2.0:
1747 | resolution:
1748 | {
1749 | integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==,
1750 | }
1751 | engines: { node: '>=8' }
1752 |
1753 | thenify-all@1.6.0:
1754 | resolution:
1755 | {
1756 | integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==,
1757 | }
1758 | engines: { node: '>=0.8' }
1759 |
1760 | thenify@3.3.1:
1761 | resolution:
1762 | {
1763 | integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==,
1764 | }
1765 |
1766 | through@2.3.8:
1767 | resolution:
1768 | {
1769 | integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==,
1770 | }
1771 |
1772 | to-arraybuffer@1.0.1:
1773 | resolution:
1774 | {
1775 | integrity: sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==,
1776 | }
1777 |
1778 | toidentifier@1.0.1:
1779 | resolution:
1780 | {
1781 | integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==,
1782 | }
1783 | engines: { node: '>=0.6' }
1784 |
1785 | tough-cookie@2.5.0:
1786 | resolution:
1787 | {
1788 | integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==,
1789 | }
1790 | engines: { node: '>=0.8' }
1791 |
1792 | tslib@2.5.0:
1793 | resolution:
1794 | {
1795 | integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==,
1796 | }
1797 |
1798 | tunnel-agent@0.6.0:
1799 | resolution:
1800 | {
1801 | integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==,
1802 | }
1803 |
1804 | tweetnacl@0.14.5:
1805 | resolution:
1806 | {
1807 | integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==,
1808 | }
1809 |
1810 | type-check@0.3.2:
1811 | resolution:
1812 | {
1813 | integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==,
1814 | }
1815 | engines: { node: '>= 0.8.0' }
1816 |
1817 | typescript@5.0.2:
1818 | resolution:
1819 | {
1820 | integrity: sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw==,
1821 | }
1822 | engines: { node: '>=12.20' }
1823 | hasBin: true
1824 |
1825 | unescape@1.0.1:
1826 | resolution:
1827 | {
1828 | integrity: sha512-O0+af1Gs50lyH1nUu3ZyYS1cRh01Q/kUKatTOkSs7jukXE6/NebucDVxyiDsA9AQ4JC1V1jUH9EO8JX2nMDgGQ==,
1829 | }
1830 | engines: { node: '>=0.10.0' }
1831 |
1832 | universalify@0.1.2:
1833 | resolution:
1834 | {
1835 | integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==,
1836 | }
1837 | engines: { node: '>= 4.0.0' }
1838 |
1839 | universalify@2.0.0:
1840 | resolution:
1841 | {
1842 | integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==,
1843 | }
1844 | engines: { node: '>= 10.0.0' }
1845 |
1846 | unpipe@1.0.0:
1847 | resolution:
1848 | {
1849 | integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==,
1850 | }
1851 | engines: { node: '>= 0.8' }
1852 |
1853 | uri-js@4.4.1:
1854 | resolution:
1855 | {
1856 | integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==,
1857 | }
1858 |
1859 | urllib@2.40.0:
1860 | resolution:
1861 | {
1862 | integrity: sha512-XDZjoijtzsbkXTXgM+A/sJM002nwoYsc46YOYr6MNH2jUUw1nCBf2ywT1WaPsVEWJX4Yr+9isGmYj4+yofFn9g==,
1863 | }
1864 | engines: { node: '>= 0.10.0' }
1865 |
1866 | util-deprecate@1.0.2:
1867 | resolution:
1868 | {
1869 | integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==,
1870 | }
1871 |
1872 | utility@1.17.0:
1873 | resolution:
1874 | {
1875 | integrity: sha512-KdVkF9An/0239BJ4+dqOa7NPrPIOeQE9AGfx0XS16O9DBiHNHRJMoeU5nL6pRGAkgJOqdOu8R4gBRcXnAocJKw==,
1876 | }
1877 | engines: { node: '>= 0.12.0' }
1878 |
1879 | uuid@3.4.0:
1880 | resolution:
1881 | {
1882 | integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==,
1883 | }
1884 | deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
1885 | hasBin: true
1886 |
1887 | verror@1.10.0:
1888 | resolution:
1889 | {
1890 | integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==,
1891 | }
1892 | engines: { '0': node >=0.6.0 }
1893 |
1894 | vm2@3.9.14:
1895 | resolution:
1896 | {
1897 | integrity: sha512-HgvPHYHeQy8+QhzlFryvSteA4uQLBCOub02mgqdR+0bN/akRZ48TGB1v0aCv7ksyc0HXx16AZtMHKS38alc6TA==,
1898 | }
1899 | engines: { node: '>=6.0' }
1900 | hasBin: true
1901 |
1902 | which@2.0.2:
1903 | resolution:
1904 | {
1905 | integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==,
1906 | }
1907 | engines: { node: '>= 8' }
1908 | hasBin: true
1909 |
1910 | win-release@1.1.1:
1911 | resolution:
1912 | {
1913 | integrity: sha512-iCRnKVvGxOQdsKhcQId2PXV1vV3J/sDPXKA4Oe9+Eti2nb2ESEsYHRYls/UjoUW3bIc5ZDO8dTH50A/5iVN+bw==,
1914 | }
1915 | engines: { node: '>=0.10.0' }
1916 |
1917 | word-wrap@1.2.3:
1918 | resolution:
1919 | {
1920 | integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==,
1921 | }
1922 | engines: { node: '>=0.10.0' }
1923 |
1924 | wrappy@1.0.2:
1925 | resolution:
1926 | {
1927 | integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==,
1928 | }
1929 |
1930 | xml2js@0.4.23:
1931 | resolution:
1932 | {
1933 | integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==,
1934 | }
1935 | engines: { node: '>=4.0.0' }
1936 |
1937 | xmlbuilder@11.0.1:
1938 | resolution:
1939 | {
1940 | integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==,
1941 | }
1942 | engines: { node: '>=4.0' }
1943 |
1944 | xregexp@2.0.0:
1945 | resolution:
1946 | {
1947 | integrity: sha512-xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA==,
1948 | }
1949 |
1950 | xtend@4.0.2:
1951 | resolution:
1952 | {
1953 | integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==,
1954 | }
1955 | engines: { node: '>=0.4' }
1956 |
1957 | yallist@3.1.1:
1958 | resolution:
1959 | {
1960 | integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==,
1961 | }
1962 |
1963 | yallist@4.0.0:
1964 | resolution:
1965 | {
1966 | integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==,
1967 | }
1968 |
1969 | snapshots:
1970 | '@tootallnate/once@1.1.2': {}
1971 |
1972 | '@types/ali-oss@6.16.7': {}
1973 |
1974 | '@types/dir-glob@2.0.1': {}
1975 |
1976 | '@types/fs-extra@11.0.1':
1977 | dependencies:
1978 | '@types/jsonfile': 6.1.1
1979 | '@types/node': 18.15.5
1980 |
1981 | '@types/glob@8.1.0':
1982 | dependencies:
1983 | '@types/minimatch': 5.1.2
1984 | '@types/node': 18.15.5
1985 |
1986 | '@types/jsonfile@6.1.1':
1987 | dependencies:
1988 | '@types/node': 18.15.5
1989 |
1990 | '@types/lodash@4.14.191': {}
1991 |
1992 | '@types/minimatch@3.0.5': {}
1993 |
1994 | '@types/minimatch@5.1.2': {}
1995 |
1996 | '@types/node@18.15.5': {}
1997 |
1998 | acorn-walk@8.2.0: {}
1999 |
2000 | acorn@8.8.2: {}
2001 |
2002 | address@1.2.2: {}
2003 |
2004 | agent-base@6.0.2:
2005 | dependencies:
2006 | debug: 4.3.4
2007 | transitivePeerDependencies:
2008 | - supports-color
2009 |
2010 | agentkeepalive@3.5.2:
2011 | dependencies:
2012 | humanize-ms: 1.2.1
2013 |
2014 | agentkeepalive@4.3.0:
2015 | dependencies:
2016 | debug: 4.3.4
2017 | depd: 2.0.0
2018 | humanize-ms: 1.2.1
2019 | transitivePeerDependencies:
2020 | - supports-color
2021 |
2022 | ajv-formats@1.6.1(ajv@7.2.4):
2023 | dependencies:
2024 | ajv: 7.2.4
2025 |
2026 | ajv@6.12.6:
2027 | dependencies:
2028 | fast-deep-equal: 3.1.3
2029 | fast-json-stable-stringify: 2.1.0
2030 | json-schema-traverse: 0.4.1
2031 | uri-js: 4.4.1
2032 |
2033 | ajv@7.2.4:
2034 | dependencies:
2035 | fast-deep-equal: 3.1.3
2036 | json-schema-traverse: 1.0.0
2037 | require-from-string: 2.0.2
2038 | uri-js: 4.4.1
2039 |
2040 | ali-oss@6.17.1:
2041 | dependencies:
2042 | address: 1.2.2
2043 | agentkeepalive: 3.5.2
2044 | bowser: 1.9.4
2045 | copy-to: 2.0.1
2046 | dateformat: 2.2.0
2047 | debug: 2.6.9
2048 | destroy: 1.2.0
2049 | end-or-error: 1.0.1
2050 | get-ready: 1.0.0
2051 | humanize-ms: 1.2.1
2052 | is-type-of: 1.2.1
2053 | js-base64: 2.6.4
2054 | jstoxml: 2.2.9
2055 | merge-descriptors: 1.0.1
2056 | mime: 2.6.0
2057 | mz-modules: 2.1.0
2058 | platform: 1.3.6
2059 | pump: 3.0.0
2060 | sdk-base: 2.0.1
2061 | stream-http: 2.8.2
2062 | stream-wormhole: 1.1.0
2063 | urllib: 2.40.0
2064 | utility: 1.17.0
2065 | xml2js: 0.4.23
2066 | transitivePeerDependencies:
2067 | - supports-color
2068 |
2069 | ansi-styles@4.3.0:
2070 | dependencies:
2071 | color-convert: 2.0.1
2072 |
2073 | any-promise@1.3.0: {}
2074 |
2075 | array-differ@3.0.0: {}
2076 |
2077 | array-union@2.1.0: {}
2078 |
2079 | arrify@2.0.1: {}
2080 |
2081 | asn1@0.2.6:
2082 | dependencies:
2083 | safer-buffer: 2.1.2
2084 |
2085 | assert-plus@1.0.0: {}
2086 |
2087 | ast-types@0.13.4:
2088 | dependencies:
2089 | tslib: 2.5.0
2090 |
2091 | asynckit@0.4.0: {}
2092 |
2093 | atomically@1.7.0: {}
2094 |
2095 | aws-sign2@0.7.0: {}
2096 |
2097 | aws4@1.12.0: {}
2098 |
2099 | balanced-match@1.0.2: {}
2100 |
2101 | bcrypt-pbkdf@1.0.2:
2102 | dependencies:
2103 | tweetnacl: 0.14.5
2104 |
2105 | before@0.0.1: {}
2106 |
2107 | block-stream2@2.1.0:
2108 | dependencies:
2109 | readable-stream: 3.6.2
2110 |
2111 | bowser@1.9.4: {}
2112 |
2113 | brace-expansion@1.1.11:
2114 | dependencies:
2115 | balanced-match: 1.0.2
2116 | concat-map: 0.0.1
2117 |
2118 | brace-expansion@2.0.1:
2119 | dependencies:
2120 | balanced-match: 1.0.2
2121 |
2122 | builtin-status-codes@3.0.0: {}
2123 |
2124 | bytes@3.1.2: {}
2125 |
2126 | call-bind@1.0.2:
2127 | dependencies:
2128 | function-bind: 1.1.1
2129 | get-intrinsic: 1.2.0
2130 |
2131 | caseless@0.12.0: {}
2132 |
2133 | chalk@3.0.0:
2134 | dependencies:
2135 | ansi-styles: 4.3.0
2136 | supports-color: 7.2.0
2137 |
2138 | color-convert@2.0.1:
2139 | dependencies:
2140 | color-name: 1.1.4
2141 |
2142 | color-name@1.1.4: {}
2143 |
2144 | combined-stream@1.0.8:
2145 | dependencies:
2146 | delayed-stream: 1.0.0
2147 |
2148 | commander@10.0.0: {}
2149 |
2150 | concat-map@0.0.1: {}
2151 |
2152 | conf@9.0.2:
2153 | dependencies:
2154 | ajv: 7.2.4
2155 | ajv-formats: 1.6.1(ajv@7.2.4)
2156 | atomically: 1.7.0
2157 | debounce-fn: 4.0.0
2158 | dot-prop: 6.0.1
2159 | env-paths: 2.2.1
2160 | json-schema-typed: 7.0.3
2161 | make-dir: 3.1.0
2162 | onetime: 5.1.2
2163 | pkg-up: 3.1.0
2164 | semver: 7.3.8
2165 |
2166 | content-type@1.0.5: {}
2167 |
2168 | copy-to@2.0.1: {}
2169 |
2170 | core-util-is@1.0.2: {}
2171 |
2172 | core-util-is@1.0.3: {}
2173 |
2174 | cos-nodejs-sdk-v5@2.11.19:
2175 | dependencies:
2176 | conf: 9.0.2
2177 | mime-types: 2.1.35
2178 | request: 2.88.2
2179 | xml2js: 0.4.23
2180 |
2181 | crc32@0.2.2: {}
2182 |
2183 | cross-spawn@7.0.3:
2184 | dependencies:
2185 | path-key: 3.1.1
2186 | shebang-command: 2.0.0
2187 | which: 2.0.2
2188 |
2189 | dashdash@1.14.1:
2190 | dependencies:
2191 | assert-plus: 1.0.0
2192 |
2193 | data-uri-to-buffer@3.0.1: {}
2194 |
2195 | dateformat@2.2.0: {}
2196 |
2197 | debounce-fn@4.0.0:
2198 | dependencies:
2199 | mimic-fn: 3.1.0
2200 |
2201 | debug@2.6.9:
2202 | dependencies:
2203 | ms: 2.0.0
2204 |
2205 | debug@4.3.4:
2206 | dependencies:
2207 | ms: 2.1.2
2208 |
2209 | deep-is@0.1.4: {}
2210 |
2211 | default-user-agent@1.0.0:
2212 | dependencies:
2213 | os-name: 1.0.3
2214 |
2215 | degenerator@3.0.2:
2216 | dependencies:
2217 | ast-types: 0.13.4
2218 | escodegen: 1.14.3
2219 | esprima: 4.0.1
2220 | vm2: 3.9.14
2221 |
2222 | delayed-stream@1.0.0: {}
2223 |
2224 | depd@2.0.0: {}
2225 |
2226 | destroy@1.2.0: {}
2227 |
2228 | digest-header@1.0.0:
2229 | dependencies:
2230 | utility: 1.17.0
2231 |
2232 | dir-glob@3.0.1:
2233 | dependencies:
2234 | path-type: 4.0.0
2235 |
2236 | dot-prop@6.0.1:
2237 | dependencies:
2238 | is-obj: 2.0.0
2239 |
2240 | ecc-jsbn@0.1.2:
2241 | dependencies:
2242 | jsbn: 0.1.1
2243 | safer-buffer: 2.1.2
2244 |
2245 | ee-first@1.1.1: {}
2246 |
2247 | encodeurl@1.0.2: {}
2248 |
2249 | end-of-stream@1.4.4:
2250 | dependencies:
2251 | once: 1.4.0
2252 |
2253 | end-or-error@1.0.1: {}
2254 |
2255 | env-paths@2.2.1: {}
2256 |
2257 | escape-html@1.0.3: {}
2258 |
2259 | escodegen@1.14.3:
2260 | dependencies:
2261 | esprima: 4.0.1
2262 | estraverse: 4.3.0
2263 | esutils: 2.0.3
2264 | optionator: 0.8.3
2265 | optionalDependencies:
2266 | source-map: 0.6.1
2267 |
2268 | esprima@4.0.1: {}
2269 |
2270 | estraverse@4.3.0: {}
2271 |
2272 | esutils@2.0.3: {}
2273 |
2274 | execa@4.1.0:
2275 | dependencies:
2276 | cross-spawn: 7.0.3
2277 | get-stream: 5.2.0
2278 | human-signals: 1.1.1
2279 | is-stream: 2.0.1
2280 | merge-stream: 2.0.0
2281 | npm-run-path: 4.0.1
2282 | onetime: 5.1.2
2283 | signal-exit: 3.0.7
2284 | strip-final-newline: 2.0.0
2285 |
2286 | extend-shallow@2.0.1:
2287 | dependencies:
2288 | is-extendable: 0.1.1
2289 |
2290 | extend@3.0.2: {}
2291 |
2292 | extsprintf@1.3.0: {}
2293 |
2294 | fast-deep-equal@3.1.3: {}
2295 |
2296 | fast-json-stable-stringify@2.1.0: {}
2297 |
2298 | fast-levenshtein@2.0.6: {}
2299 |
2300 | file-uri-to-path@2.0.0: {}
2301 |
2302 | find-up@3.0.0:
2303 | dependencies:
2304 | locate-path: 3.0.0
2305 |
2306 | find-up@4.1.0:
2307 | dependencies:
2308 | locate-path: 5.0.0
2309 | path-exists: 4.0.0
2310 |
2311 | forever-agent@0.6.1: {}
2312 |
2313 | form-data@2.3.3:
2314 | dependencies:
2315 | asynckit: 0.4.0
2316 | combined-stream: 1.0.8
2317 | mime-types: 2.1.35
2318 |
2319 | formstream@1.1.1:
2320 | dependencies:
2321 | destroy: 1.2.0
2322 | mime: 2.6.0
2323 | pause-stream: 0.0.11
2324 |
2325 | fs-extra@11.1.1:
2326 | dependencies:
2327 | graceful-fs: 4.2.11
2328 | jsonfile: 6.1.0
2329 | universalify: 2.0.0
2330 |
2331 | fs-extra@8.1.0:
2332 | dependencies:
2333 | graceful-fs: 4.2.10
2334 | jsonfile: 4.0.0
2335 | universalify: 0.1.2
2336 |
2337 | fs.realpath@1.0.0: {}
2338 |
2339 | ftp@0.3.10:
2340 | dependencies:
2341 | readable-stream: 1.1.14
2342 | xregexp: 2.0.0
2343 |
2344 | function-bind@1.1.1: {}
2345 |
2346 | get-intrinsic@1.2.0:
2347 | dependencies:
2348 | function-bind: 1.1.1
2349 | has: 1.0.3
2350 | has-symbols: 1.0.3
2351 |
2352 | get-ready@1.0.0: {}
2353 |
2354 | get-stream@5.2.0:
2355 | dependencies:
2356 | pump: 3.0.0
2357 |
2358 | get-uri@3.0.2:
2359 | dependencies:
2360 | '@tootallnate/once': 1.1.2
2361 | data-uri-to-buffer: 3.0.1
2362 | debug: 4.3.4
2363 | file-uri-to-path: 2.0.0
2364 | fs-extra: 8.1.0
2365 | ftp: 0.3.10
2366 | transitivePeerDependencies:
2367 | - supports-color
2368 |
2369 | getpass@0.1.7:
2370 | dependencies:
2371 | assert-plus: 1.0.0
2372 |
2373 | glob@7.2.3:
2374 | dependencies:
2375 | fs.realpath: 1.0.0
2376 | inflight: 1.0.6
2377 | inherits: 2.0.4
2378 | minimatch: 3.1.2
2379 | once: 1.4.0
2380 | path-is-absolute: 1.0.1
2381 |
2382 | glob@9.3.1:
2383 | dependencies:
2384 | fs.realpath: 1.0.0
2385 | minimatch: 7.4.2
2386 | minipass: 4.2.5
2387 | path-scurry: 1.6.2
2388 |
2389 | graceful-fs@4.2.10: {}
2390 |
2391 | graceful-fs@4.2.11: {}
2392 |
2393 | har-schema@2.0.0: {}
2394 |
2395 | har-validator@5.1.5:
2396 | dependencies:
2397 | ajv: 6.12.6
2398 | har-schema: 2.0.0
2399 |
2400 | has-flag@4.0.0: {}
2401 |
2402 | has-symbols@1.0.3: {}
2403 |
2404 | has@1.0.3:
2405 | dependencies:
2406 | function-bind: 1.1.1
2407 |
2408 | http-errors@2.0.0:
2409 | dependencies:
2410 | depd: 2.0.0
2411 | inherits: 2.0.4
2412 | setprototypeof: 1.2.0
2413 | statuses: 2.0.1
2414 | toidentifier: 1.0.1
2415 |
2416 | http-proxy-agent@4.0.1:
2417 | dependencies:
2418 | '@tootallnate/once': 1.1.2
2419 | agent-base: 6.0.2
2420 | debug: 4.3.4
2421 | transitivePeerDependencies:
2422 | - supports-color
2423 |
2424 | http-signature@1.2.0:
2425 | dependencies:
2426 | assert-plus: 1.0.0
2427 | jsprim: 1.4.2
2428 | sshpk: 1.17.0
2429 |
2430 | https-proxy-agent@5.0.1:
2431 | dependencies:
2432 | agent-base: 6.0.2
2433 | debug: 4.3.4
2434 | transitivePeerDependencies:
2435 | - supports-color
2436 |
2437 | human-signals@1.1.1: {}
2438 |
2439 | humanize-ms@1.2.1:
2440 | dependencies:
2441 | ms: 2.1.3
2442 |
2443 | husky@8.0.3: {}
2444 |
2445 | iconv-lite@0.4.24:
2446 | dependencies:
2447 | safer-buffer: 2.1.2
2448 |
2449 | ignore@5.2.4: {}
2450 |
2451 | inflight@1.0.6:
2452 | dependencies:
2453 | once: 1.4.0
2454 | wrappy: 1.0.2
2455 |
2456 | inherits@2.0.4: {}
2457 |
2458 | ip@1.1.8: {}
2459 |
2460 | ip@2.0.0: {}
2461 |
2462 | is-class-hotfix@0.0.6: {}
2463 |
2464 | is-extendable@0.1.1: {}
2465 |
2466 | is-obj@2.0.0: {}
2467 |
2468 | is-stream@2.0.1: {}
2469 |
2470 | is-type-of@1.2.1:
2471 | dependencies:
2472 | core-util-is: 1.0.3
2473 | is-class-hotfix: 0.0.6
2474 | isstream: 0.1.2
2475 |
2476 | is-typedarray@1.0.0: {}
2477 |
2478 | isarray@0.0.1: {}
2479 |
2480 | isarray@1.0.0: {}
2481 |
2482 | isexe@2.0.0: {}
2483 |
2484 | isstream@0.1.2: {}
2485 |
2486 | js-base64@2.6.4: {}
2487 |
2488 | jsbn@0.1.1: {}
2489 |
2490 | json-schema-traverse@0.4.1: {}
2491 |
2492 | json-schema-traverse@1.0.0: {}
2493 |
2494 | json-schema-typed@7.0.3: {}
2495 |
2496 | json-schema@0.4.0: {}
2497 |
2498 | json-stringify-safe@5.0.1: {}
2499 |
2500 | jsonfile@4.0.0:
2501 | optionalDependencies:
2502 | graceful-fs: 4.2.11
2503 |
2504 | jsonfile@6.1.0:
2505 | dependencies:
2506 | universalify: 2.0.0
2507 | optionalDependencies:
2508 | graceful-fs: 4.2.11
2509 |
2510 | jsprim@1.4.2:
2511 | dependencies:
2512 | assert-plus: 1.0.0
2513 | extsprintf: 1.3.0
2514 | json-schema: 0.4.0
2515 | verror: 1.10.0
2516 |
2517 | jstoxml@2.2.9: {}
2518 |
2519 | kleur@4.1.5: {}
2520 |
2521 | ko-sleep@1.1.4:
2522 | dependencies:
2523 | ms: 2.1.3
2524 |
2525 | levn@0.3.0:
2526 | dependencies:
2527 | prelude-ls: 1.1.2
2528 | type-check: 0.3.2
2529 |
2530 | locate-path@3.0.0:
2531 | dependencies:
2532 | p-locate: 3.0.0
2533 | path-exists: 3.0.0
2534 |
2535 | locate-path@5.0.0:
2536 | dependencies:
2537 | p-locate: 4.1.0
2538 |
2539 | lodash@4.17.21: {}
2540 |
2541 | lru-cache@5.1.1:
2542 | dependencies:
2543 | yallist: 3.1.1
2544 |
2545 | lru-cache@6.0.0:
2546 | dependencies:
2547 | yallist: 4.0.0
2548 |
2549 | lru-cache@7.18.3: {}
2550 |
2551 | make-dir@3.1.0:
2552 | dependencies:
2553 | semver: 6.3.0
2554 |
2555 | merge-descriptors@1.0.1: {}
2556 |
2557 | merge-stream@2.0.0: {}
2558 |
2559 | mime-db@1.52.0: {}
2560 |
2561 | mime-types@2.1.35:
2562 | dependencies:
2563 | mime-db: 1.52.0
2564 |
2565 | mime@2.6.0: {}
2566 |
2567 | mimic-fn@2.1.0: {}
2568 |
2569 | mimic-fn@3.1.0: {}
2570 |
2571 | minimatch@3.1.2:
2572 | dependencies:
2573 | brace-expansion: 1.1.11
2574 |
2575 | minimatch@7.4.2:
2576 | dependencies:
2577 | brace-expansion: 2.0.1
2578 |
2579 | minimist@1.2.8: {}
2580 |
2581 | minipass@4.2.5: {}
2582 |
2583 | mkdirp@0.5.6:
2584 | dependencies:
2585 | minimist: 1.2.8
2586 |
2587 | mockdate@3.0.5: {}
2588 |
2589 | mri@1.2.0: {}
2590 |
2591 | ms@2.0.0: {}
2592 |
2593 | ms@2.1.2: {}
2594 |
2595 | ms@2.1.3: {}
2596 |
2597 | multimatch@4.0.0:
2598 | dependencies:
2599 | '@types/minimatch': 3.0.5
2600 | array-differ: 3.0.0
2601 | array-union: 2.1.0
2602 | arrify: 2.0.1
2603 | minimatch: 3.1.2
2604 |
2605 | mz-modules@2.1.0:
2606 | dependencies:
2607 | glob: 7.2.3
2608 | ko-sleep: 1.1.4
2609 | mkdirp: 0.5.6
2610 | pump: 3.0.0
2611 | rimraf: 2.7.1
2612 |
2613 | mz@2.7.0:
2614 | dependencies:
2615 | any-promise: 1.3.0
2616 | object-assign: 4.1.1
2617 | thenify-all: 1.6.0
2618 |
2619 | netmask@2.0.2: {}
2620 |
2621 | npm-run-path@4.0.1:
2622 | dependencies:
2623 | path-key: 3.1.1
2624 |
2625 | oauth-sign@0.9.0: {}
2626 |
2627 | object-assign@4.1.1: {}
2628 |
2629 | object-inspect@1.12.3: {}
2630 |
2631 | once@1.4.0:
2632 | dependencies:
2633 | wrappy: 1.0.2
2634 |
2635 | onetime@5.1.2:
2636 | dependencies:
2637 | mimic-fn: 2.1.0
2638 |
2639 | optionator@0.8.3:
2640 | dependencies:
2641 | deep-is: 0.1.4
2642 | fast-levenshtein: 2.0.6
2643 | levn: 0.3.0
2644 | prelude-ls: 1.1.2
2645 | type-check: 0.3.2
2646 | word-wrap: 1.2.3
2647 |
2648 | os-name@1.0.3:
2649 | dependencies:
2650 | osx-release: 1.1.0
2651 | win-release: 1.1.1
2652 |
2653 | osx-release@1.1.0:
2654 | dependencies:
2655 | minimist: 1.2.8
2656 |
2657 | p-limit@2.3.0:
2658 | dependencies:
2659 | p-try: 2.2.0
2660 |
2661 | p-locate@3.0.0:
2662 | dependencies:
2663 | p-limit: 2.3.0
2664 |
2665 | p-locate@4.1.0:
2666 | dependencies:
2667 | p-limit: 2.3.0
2668 |
2669 | p-try@2.2.0: {}
2670 |
2671 | pac-proxy-agent@5.0.0:
2672 | dependencies:
2673 | '@tootallnate/once': 1.1.2
2674 | agent-base: 6.0.2
2675 | debug: 4.3.4
2676 | get-uri: 3.0.2
2677 | http-proxy-agent: 4.0.1
2678 | https-proxy-agent: 5.0.1
2679 | pac-resolver: 5.0.1
2680 | raw-body: 2.5.2
2681 | socks-proxy-agent: 5.0.1
2682 | transitivePeerDependencies:
2683 | - supports-color
2684 |
2685 | pac-resolver@5.0.1:
2686 | dependencies:
2687 | degenerator: 3.0.2
2688 | ip: 1.1.8
2689 | netmask: 2.0.2
2690 |
2691 | path-exists@3.0.0: {}
2692 |
2693 | path-exists@4.0.0: {}
2694 |
2695 | path-is-absolute@1.0.1: {}
2696 |
2697 | path-key@3.1.1: {}
2698 |
2699 | path-scurry@1.6.2:
2700 | dependencies:
2701 | lru-cache: 7.18.3
2702 | minipass: 4.2.5
2703 |
2704 | path-type@4.0.0: {}
2705 |
2706 | pause-stream@0.0.11:
2707 | dependencies:
2708 | through: 2.3.8
2709 |
2710 | performance-now@2.1.0: {}
2711 |
2712 | pkg-up@3.1.0:
2713 | dependencies:
2714 | find-up: 3.0.0
2715 |
2716 | platform@1.3.6: {}
2717 |
2718 | prelude-ls@1.1.2: {}
2719 |
2720 | prettier@2.8.6: {}
2721 |
2722 | pretty-quick@3.1.3(prettier@2.8.6):
2723 | dependencies:
2724 | chalk: 3.0.0
2725 | execa: 4.1.0
2726 | find-up: 4.1.0
2727 | ignore: 5.2.4
2728 | mri: 1.2.0
2729 | multimatch: 4.0.0
2730 | prettier: 2.8.6
2731 |
2732 | process-nextick-args@2.0.1: {}
2733 |
2734 | proxy-agent@5.0.0:
2735 | dependencies:
2736 | agent-base: 6.0.2
2737 | debug: 4.3.4
2738 | http-proxy-agent: 4.0.1
2739 | https-proxy-agent: 5.0.1
2740 | lru-cache: 5.1.1
2741 | pac-proxy-agent: 5.0.0
2742 | proxy-from-env: 1.1.0
2743 | socks-proxy-agent: 5.0.1
2744 | transitivePeerDependencies:
2745 | - supports-color
2746 |
2747 | proxy-from-env@1.1.0: {}
2748 |
2749 | psl@1.9.0: {}
2750 |
2751 | pump@3.0.0:
2752 | dependencies:
2753 | end-of-stream: 1.4.4
2754 | once: 1.4.0
2755 |
2756 | punycode@2.3.0: {}
2757 |
2758 | qiniu@7.8.0:
2759 | dependencies:
2760 | agentkeepalive: 4.3.0
2761 | before: 0.0.1
2762 | block-stream2: 2.1.0
2763 | crc32: 0.2.2
2764 | destroy: 1.2.0
2765 | encodeurl: 1.0.2
2766 | formstream: 1.1.1
2767 | mime: 2.6.0
2768 | mockdate: 3.0.5
2769 | tunnel-agent: 0.6.0
2770 | urllib: 2.40.0
2771 | transitivePeerDependencies:
2772 | - supports-color
2773 |
2774 | qs@6.11.1:
2775 | dependencies:
2776 | side-channel: 1.0.4
2777 |
2778 | qs@6.5.3: {}
2779 |
2780 | raw-body@2.5.2:
2781 | dependencies:
2782 | bytes: 3.1.2
2783 | http-errors: 2.0.0
2784 | iconv-lite: 0.4.24
2785 | unpipe: 1.0.0
2786 |
2787 | readable-stream@1.1.14:
2788 | dependencies:
2789 | core-util-is: 1.0.3
2790 | inherits: 2.0.4
2791 | isarray: 0.0.1
2792 | string_decoder: 0.10.31
2793 |
2794 | readable-stream@2.3.8:
2795 | dependencies:
2796 | core-util-is: 1.0.3
2797 | inherits: 2.0.4
2798 | isarray: 1.0.0
2799 | process-nextick-args: 2.0.1
2800 | safe-buffer: 5.1.2
2801 | string_decoder: 1.1.1
2802 | util-deprecate: 1.0.2
2803 |
2804 | readable-stream@3.6.2:
2805 | dependencies:
2806 | inherits: 2.0.4
2807 | string_decoder: 1.3.0
2808 | util-deprecate: 1.0.2
2809 |
2810 | request@2.88.2:
2811 | dependencies:
2812 | aws-sign2: 0.7.0
2813 | aws4: 1.12.0
2814 | caseless: 0.12.0
2815 | combined-stream: 1.0.8
2816 | extend: 3.0.2
2817 | forever-agent: 0.6.1
2818 | form-data: 2.3.3
2819 | har-validator: 5.1.5
2820 | http-signature: 1.2.0
2821 | is-typedarray: 1.0.0
2822 | isstream: 0.1.2
2823 | json-stringify-safe: 5.0.1
2824 | mime-types: 2.1.35
2825 | oauth-sign: 0.9.0
2826 | performance-now: 2.1.0
2827 | qs: 6.5.3
2828 | safe-buffer: 5.2.1
2829 | tough-cookie: 2.5.0
2830 | tunnel-agent: 0.6.0
2831 | uuid: 3.4.0
2832 |
2833 | require-from-string@2.0.2: {}
2834 |
2835 | rimraf@2.7.1:
2836 | dependencies:
2837 | glob: 7.2.3
2838 |
2839 | safe-buffer@5.1.2: {}
2840 |
2841 | safe-buffer@5.2.1: {}
2842 |
2843 | safer-buffer@2.1.2: {}
2844 |
2845 | sax@1.2.4: {}
2846 |
2847 | sdk-base@2.0.1:
2848 | dependencies:
2849 | get-ready: 1.0.0
2850 |
2851 | semver@5.7.1: {}
2852 |
2853 | semver@6.3.0: {}
2854 |
2855 | semver@7.3.8:
2856 | dependencies:
2857 | lru-cache: 6.0.0
2858 |
2859 | setprototypeof@1.2.0: {}
2860 |
2861 | shebang-command@2.0.0:
2862 | dependencies:
2863 | shebang-regex: 3.0.0
2864 |
2865 | shebang-regex@3.0.0: {}
2866 |
2867 | side-channel@1.0.4:
2868 | dependencies:
2869 | call-bind: 1.0.2
2870 | get-intrinsic: 1.2.0
2871 | object-inspect: 1.12.3
2872 |
2873 | signal-exit@3.0.7: {}
2874 |
2875 | smart-buffer@4.2.0: {}
2876 |
2877 | socks-proxy-agent@5.0.1:
2878 | dependencies:
2879 | agent-base: 6.0.2
2880 | debug: 4.3.4
2881 | socks: 2.7.1
2882 | transitivePeerDependencies:
2883 | - supports-color
2884 |
2885 | socks@2.7.1:
2886 | dependencies:
2887 | ip: 2.0.0
2888 | smart-buffer: 4.2.0
2889 |
2890 | source-map@0.6.1:
2891 | optional: true
2892 |
2893 | sshpk@1.17.0:
2894 | dependencies:
2895 | asn1: 0.2.6
2896 | assert-plus: 1.0.0
2897 | bcrypt-pbkdf: 1.0.2
2898 | dashdash: 1.14.1
2899 | ecc-jsbn: 0.1.2
2900 | getpass: 0.1.7
2901 | jsbn: 0.1.1
2902 | safer-buffer: 2.1.2
2903 | tweetnacl: 0.14.5
2904 |
2905 | statuses@1.5.0: {}
2906 |
2907 | statuses@2.0.1: {}
2908 |
2909 | stream-http@2.8.2:
2910 | dependencies:
2911 | builtin-status-codes: 3.0.0
2912 | inherits: 2.0.4
2913 | readable-stream: 2.3.8
2914 | to-arraybuffer: 1.0.1
2915 | xtend: 4.0.2
2916 |
2917 | stream-wormhole@1.1.0: {}
2918 |
2919 | string_decoder@0.10.31: {}
2920 |
2921 | string_decoder@1.1.1:
2922 | dependencies:
2923 | safe-buffer: 5.1.2
2924 |
2925 | string_decoder@1.3.0:
2926 | dependencies:
2927 | safe-buffer: 5.2.1
2928 |
2929 | strip-final-newline@2.0.0: {}
2930 |
2931 | supports-color@7.2.0:
2932 | dependencies:
2933 | has-flag: 4.0.0
2934 |
2935 | thenify-all@1.6.0:
2936 | dependencies:
2937 | thenify: 3.3.1
2938 |
2939 | thenify@3.3.1:
2940 | dependencies:
2941 | any-promise: 1.3.0
2942 |
2943 | through@2.3.8: {}
2944 |
2945 | to-arraybuffer@1.0.1: {}
2946 |
2947 | toidentifier@1.0.1: {}
2948 |
2949 | tough-cookie@2.5.0:
2950 | dependencies:
2951 | psl: 1.9.0
2952 | punycode: 2.3.0
2953 |
2954 | tslib@2.5.0: {}
2955 |
2956 | tunnel-agent@0.6.0:
2957 | dependencies:
2958 | safe-buffer: 5.2.1
2959 |
2960 | tweetnacl@0.14.5: {}
2961 |
2962 | type-check@0.3.2:
2963 | dependencies:
2964 | prelude-ls: 1.1.2
2965 |
2966 | typescript@5.0.2: {}
2967 |
2968 | unescape@1.0.1:
2969 | dependencies:
2970 | extend-shallow: 2.0.1
2971 |
2972 | universalify@0.1.2: {}
2973 |
2974 | universalify@2.0.0: {}
2975 |
2976 | unpipe@1.0.0: {}
2977 |
2978 | uri-js@4.4.1:
2979 | dependencies:
2980 | punycode: 2.3.0
2981 |
2982 | urllib@2.40.0:
2983 | dependencies:
2984 | any-promise: 1.3.0
2985 | content-type: 1.0.5
2986 | debug: 2.6.9
2987 | default-user-agent: 1.0.0
2988 | digest-header: 1.0.0
2989 | ee-first: 1.1.1
2990 | formstream: 1.1.1
2991 | humanize-ms: 1.2.1
2992 | iconv-lite: 0.4.24
2993 | ip: 1.1.8
2994 | proxy-agent: 5.0.0
2995 | pump: 3.0.0
2996 | qs: 6.11.1
2997 | statuses: 1.5.0
2998 | utility: 1.17.0
2999 | transitivePeerDependencies:
3000 | - supports-color
3001 |
3002 | util-deprecate@1.0.2: {}
3003 |
3004 | utility@1.17.0:
3005 | dependencies:
3006 | copy-to: 2.0.1
3007 | escape-html: 1.0.3
3008 | mkdirp: 0.5.6
3009 | mz: 2.7.0
3010 | unescape: 1.0.1
3011 |
3012 | uuid@3.4.0: {}
3013 |
3014 | verror@1.10.0:
3015 | dependencies:
3016 | assert-plus: 1.0.0
3017 | core-util-is: 1.0.2
3018 | extsprintf: 1.3.0
3019 |
3020 | vm2@3.9.14:
3021 | dependencies:
3022 | acorn: 8.8.2
3023 | acorn-walk: 8.2.0
3024 |
3025 | which@2.0.2:
3026 | dependencies:
3027 | isexe: 2.0.0
3028 |
3029 | win-release@1.1.1:
3030 | dependencies:
3031 | semver: 5.7.1
3032 |
3033 | word-wrap@1.2.3: {}
3034 |
3035 | wrappy@1.0.2: {}
3036 |
3037 | xml2js@0.4.23:
3038 | dependencies:
3039 | sax: 1.2.4
3040 | xmlbuilder: 11.0.1
3041 |
3042 | xmlbuilder@11.0.1: {}
3043 |
3044 | xregexp@2.0.0: {}
3045 |
3046 | xtend@4.0.2: {}
3047 |
3048 | yallist@3.1.1: {}
3049 |
3050 | yallist@4.0.0: {}
3051 |
--------------------------------------------------------------------------------
/src/config/index.ts:
--------------------------------------------------------------------------------
1 | import path from 'path';
2 | import glob from 'glob';
3 | import dirGlob from 'dir-glob';
4 | import minimatch from 'minimatch';
5 | import _ from 'lodash';
6 | import fs from 'fs-extra';
7 | import { logger } from '../utils';
8 | import { Types } from '../enums';
9 |
10 | const defaultConfig = (): Config => {
11 | const configJsPath = path.resolve(process.cwd(), './cdn.config.js');
12 | if (fs.existsSync(configJsPath) && fs.statSync(configJsPath).isFile()) {
13 | return require(configJsPath);
14 | } else {
15 | logger.error(
16 | '请首先运行 npx cdn-cli init 来获取配置文件,然后进行 cdn.config.js 文件的配置',
17 | );
18 | process.exit(0);
19 | }
20 | };
21 |
22 | export const config = defaultConfig();
23 |
24 | const walk = (from: string, ignore: string[] = []): Promise => {
25 | return fs
26 | .stat(path.resolve(from))
27 | .then((stats) => {
28 | if (stats.isFile()) {
29 | return [from];
30 | } else {
31 | return [];
32 | }
33 | })
34 | .catch(() => {
35 | return glob(from, {
36 | ignore,
37 | });
38 | });
39 | };
40 |
41 | // 配置 rules 的 files
42 | const setFiles = async () => {
43 | await Promise.all(
44 | config.rules.map((rule) => walk(rule.from, rule.ignore)),
45 | ).then((res) => {
46 | res.map((files, index) => {
47 | config.rules[index].files = files
48 | .filter((file) => {
49 | return fs.statSync(path.resolve('.', file)).isFile();
50 | })
51 | .map((file) => {
52 | const from = path.resolve('.', file);
53 | const isLastUpload = config.rules[index].lastUpload.some((i) =>
54 | minimatch(file, i),
55 | );
56 | const isNoCache = config.rules[index].noCache.some((i) =>
57 | minimatch(file, i),
58 | );
59 | let to = path.join(
60 | config.rules[index].to,
61 | file.replace(path.dirname(config.rules[index].from), ''),
62 | );
63 | if (to.indexOf('/') === 0) {
64 | to.replace('/', '');
65 | }
66 | return {
67 | from,
68 | to,
69 |
70 | isLastUpload,
71 | isNoCache,
72 | };
73 | }) as File[];
74 | });
75 | });
76 | };
77 |
78 | export const setConfig = async (environment) => {
79 | config.environment = config.environments[environment];
80 | if (config.environment) {
81 | delete config.environments;
82 | // 支持 Github
83 | if (config.environment.type === Types.Aliyun) {
84 | config.environment = {
85 | ...config.environment,
86 | region: config.environment.region ?? process.env.region,
87 | bucket: config.environment.bucket ?? process.env.bucket,
88 | accessKeyId: config.environment.accessKeyId ?? process.env.accessKeyId,
89 | accessKeySecret:
90 | config.environment.accessKeySecret ?? process.env.accessKeySecret,
91 | domain: config.environment.domain || process.env.domain || '',
92 | };
93 | }
94 | if (config.environment.type === Types.Qiniu) {
95 | config.environment = {
96 | ...config.environment,
97 | region: config.environment.region ?? process.env.region,
98 | bucket: config.environment.bucket ?? process.env.bucket,
99 | accessKey: config.environment.accessKey ?? process.env.accessKey,
100 | secretKey: config.environment.secretKey ?? process.env.secretKey,
101 | domain: config.environment.domain || process.env.domain || '',
102 | };
103 | }
104 | if (config.environment.type === Types.Tencent) {
105 | config.environment = {
106 | ...config.environment,
107 | region: config.environment.region ?? process.env.region,
108 | bucket: config.environment.bucket ?? process.env.bucket,
109 | appId: config.environment.appId ?? process.env.appId,
110 | secretId: config.environment.secretId ?? process.env.secretId,
111 | secretKey: config.environment.secretKey ?? process.env.secretKey,
112 | domain: config.environment.domain || process.env.domain || '',
113 | };
114 | }
115 | } else {
116 | logger.error(
117 | `请确认 cdn.config.js 文件中是否包含 environment 为 ${config.environment} 的配置`,
118 | );
119 | process.exit(1);
120 | }
121 | config.rules = config.rules
122 | .filter((item) => item.from && item.to)
123 | .map(({ from, to, ignore, lastUpload, noCache, ...args }) => {
124 | return {
125 | ...args,
126 | from: _.first(dirGlob.sync(from ?? [])),
127 | to,
128 | ignore: dirGlob.sync(ignore ?? []),
129 | lastUpload: dirGlob.sync(lastUpload ?? []),
130 | noCache: dirGlob.sync(noCache ?? []),
131 | };
132 | }) as Rule[];
133 |
134 | await setFiles();
135 |
136 | return config;
137 | };
138 |
--------------------------------------------------------------------------------
/src/enums/index.ts:
--------------------------------------------------------------------------------
1 | export enum Types {
2 | Aliyun = 'aliyun',
3 | Qiniu = 'qiniu',
4 | Tencent = 'tencent',
5 | Debug = 'debug',
6 | }
7 |
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | import { setConfig, config } from './config';
2 | import { upload } from './utils';
3 |
4 | const deploy = async (environment: string): Promise => {
5 | await setConfig(environment);
6 |
7 | console.log(
8 | `${'状态'.padStart(4)}${'缓存'.padStart(
9 | 8,
10 | )}${'本地资源 -> 远端资源'.padStart(16)}`,
11 | );
12 |
13 | let files: File[] = config.rules.map((rule) => rule.files).flat();
14 |
15 | await upload(
16 | config.environment.type,
17 | files.filter((file) => !file.isLastUpload),
18 | );
19 | await upload(
20 | config.environment.type,
21 | files.filter((file) => file.isLastUpload),
22 | );
23 | };
24 |
25 | export { deploy };
26 |
--------------------------------------------------------------------------------
/src/utils/file.ts:
--------------------------------------------------------------------------------
1 | import { existsSync, copySync, statSync } from 'fs-extra';
2 |
3 | export const copyFileSync = (from: string, to: string) => {
4 | copySync(from, to);
5 | };
6 |
7 | export const canCopyFile = (to: string): Promise => {
8 | return new Promise((resolve, reject) => {
9 | if (existsSync(to)) {
10 | reject();
11 | } else {
12 | resolve();
13 | }
14 | });
15 | };
16 |
--------------------------------------------------------------------------------
/src/utils/index.ts:
--------------------------------------------------------------------------------
1 | export * as logger from './logger';
2 | export * from './upload';
3 |
--------------------------------------------------------------------------------
/src/utils/logger.ts:
--------------------------------------------------------------------------------
1 | import { red, yellow, green, white } from 'kleur';
2 | import { config } from '../config';
3 |
4 | export const uploadSuccess = (file: Omit) => {
5 | const status = green('[成功]'.padEnd(8));
6 | const isNoCache = file.isNoCache
7 | ? yellow('[不支持]'.padEnd(7))
8 | : '[支持]'.padEnd(8);
9 | const arrow = yellow(' -> ');
10 | console.log(
11 | `${status}${isNoCache}${file.from}${arrow}${config.environment.domain}/${file.to}`,
12 | );
13 | };
14 |
15 | export const uploadFail = (file: Omit) => {
16 | const status = red('[失败]'.padEnd(8));
17 | const isNoCache = file.isNoCache
18 | ? yellow('[不支持]'.padEnd(7))
19 | : '[支持]'.padEnd(8);
20 | const arrow = yellow(' -> ');
21 | console.log(
22 | `${status}${isNoCache}${file.from}${arrow}${config.environment.domain}/${file.to}`,
23 | );
24 | };
25 |
26 | export const error = (message: string) => {
27 | console.log(white().bgRed(message));
28 | };
29 |
--------------------------------------------------------------------------------
/src/utils/upload/aliyun.ts:
--------------------------------------------------------------------------------
1 | import Oss from 'ali-oss';
2 | import type { PutObjectOptions } from 'ali-oss';
3 | import * as logger from '../logger';
4 |
5 | class Aliyun implements Upload {
6 | private client: Oss;
7 |
8 | constructor(environment: Environment.Aliyun) {
9 | this.client = new Oss({
10 | region: environment.region,
11 | bucket: environment.bucket,
12 | accessKeyId: environment.accessKeyId,
13 | accessKeySecret: environment.accessKeySecret,
14 | });
15 | }
16 |
17 | private put(file: File): Promise {
18 | return new Promise((resolve) => {
19 | const putObjectOptions: PutObjectOptions = file.isNoCache
20 | ? {
21 | headers: {
22 | 'Cache-Control': 'no-cache',
23 | },
24 | }
25 | : {};
26 | this.client.put(file.to, file.from, putObjectOptions).then((result) => {
27 | if (result.res.status === 200) {
28 | logger.uploadSuccess(file);
29 | return resolve();
30 | }
31 | logger.uploadFail(file);
32 | console.log(result);
33 | process.exit(1);
34 | });
35 | });
36 | }
37 |
38 | public upload(files: File[]): Promise {
39 | return Promise.all(files.map((file) => this.put(file))).then(() => {});
40 | }
41 | }
42 |
43 | export default Aliyun;
44 |
--------------------------------------------------------------------------------
/src/utils/upload/debug.ts:
--------------------------------------------------------------------------------
1 | import * as logger from '../logger';
2 |
3 | class Debug implements Upload {
4 | constructor(environment: Environment.Debug) {}
5 |
6 | private put(file: File): Promise {
7 | return new Promise((resolve) => {
8 | logger.uploadSuccess(file);
9 | return resolve();
10 | });
11 | }
12 |
13 | public upload(files: File[]): Promise {
14 | return Promise.all(files.map((file) => this.put(file))).then(() => {});
15 | }
16 | }
17 |
18 | export default Debug;
19 |
--------------------------------------------------------------------------------
/src/utils/upload/index.ts:
--------------------------------------------------------------------------------
1 | import Aliyun from './aliyun';
2 | import Qiniu from './qiniu';
3 | import Tencent from './tencent';
4 | import Debug from './debug';
5 | import { Types } from '../../enums';
6 | import { config } from '../../config';
7 |
8 | export const upload = (type: Types, files: File[]): Promise => {
9 | switch (type) {
10 | case Types.Aliyun: {
11 | return new Aliyun(config.environment as Environment.Aliyun).upload(files);
12 | }
13 | case Types.Qiniu: {
14 | return new Qiniu(config.environment as Environment.Qiniu).upload(files);
15 | }
16 | case Types.Tencent: {
17 | return new Tencent(config.environment as Environment.Tencent).upload(
18 | files,
19 | );
20 | }
21 | case Types.Debug: {
22 | return new Debug(config.environment as Environment.Debug).upload(files);
23 | }
24 | }
25 | };
26 |
--------------------------------------------------------------------------------
/src/utils/upload/qiniu.ts:
--------------------------------------------------------------------------------
1 | import qiniu, { form_up } from 'qiniu';
2 | import * as logger from '../logger';
3 |
4 | class Qiniu implements Upload {
5 | private client: form_up.FormUploader;
6 | private readonly putExtra: form_up.PutExtra;
7 | private readonly uploadToken: string;
8 |
9 | constructor(environment: Environment.Qiniu) {
10 | const mac = new qiniu.auth.digest.Mac(
11 | environment.accessKey,
12 | environment.secretKey,
13 | );
14 | const putPolicy = new qiniu.rs.PutPolicy({
15 | scope: environment.bucket,
16 | expires: 7200,
17 | });
18 | this.uploadToken = putPolicy.uploadToken(mac);
19 | const config = new qiniu.conf.Config();
20 | this.client = new qiniu.form_up.FormUploader(config);
21 | this.putExtra = new qiniu.form_up.PutExtra();
22 | }
23 |
24 | private put(file: File): Promise {
25 | return new Promise((resolve) => {
26 | this.client.putFile(
27 | this.uploadToken,
28 | file.to.substring(1),
29 | file.from,
30 | this.putExtra,
31 | (_, respBody, respInfo) => {
32 | if (respInfo?.statusCode === 200) {
33 | logger.uploadSuccess(file);
34 | return resolve();
35 | }
36 | logger.uploadFail(file);
37 | console.log(_?.message);
38 | process.exit(1);
39 | },
40 | );
41 | });
42 | }
43 |
44 | public upload(files: File[]): Promise {
45 | return Promise.all(files.map((file) => this.put(file))).then(() => {});
46 | }
47 | }
48 |
49 | export default Qiniu;
50 |
--------------------------------------------------------------------------------
/src/utils/upload/tencent.ts:
--------------------------------------------------------------------------------
1 | import Cos from 'cos-nodejs-sdk-v5';
2 | import fs from 'fs-extra';
3 | import * as logger from '../logger';
4 |
5 | class Tencent implements Upload {
6 | private client: Cos;
7 | private readonly bucket: string;
8 | private readonly region: string;
9 |
10 | constructor(environment: Environment.Tencent) {
11 | this.client = new Cos({
12 | SecretId: environment.secretId,
13 | SecretKey: environment.secretKey,
14 | });
15 | this.bucket = environment.bucket;
16 | this.region = environment.region;
17 | }
18 |
19 | put(file: File): Promise {
20 | return new Promise((resolve) => {
21 | this.client.putObject(
22 | {
23 | Bucket: this.bucket,
24 | Region: this.region,
25 | Key: file.to,
26 | Body: fs.createReadStream(file.from),
27 | ContentLength: fs.statSync(file.from).size,
28 | CacheControl: file.isNoCache ? 'no-cache' : undefined,
29 | },
30 | (_, data) => {
31 | if (data.statusCode === 200) {
32 | logger.uploadSuccess(file);
33 | resolve();
34 | return;
35 | }
36 | logger.uploadFail(file);
37 | logger.error(_.message);
38 | process.exit(1);
39 | },
40 | );
41 | });
42 | }
43 |
44 | public upload(files: File[]): Promise {
45 | return Promise.all(files.map((file) => this.put(file))).then(() => {});
46 | }
47 | }
48 |
49 | export default Tencent;
50 |
--------------------------------------------------------------------------------
/templates/cdn.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | rules: [
3 | {
4 | from: 'dist',
5 | to: '.',
6 | ignore: ['**/*.map', '**/.DS_store'],
7 | noCache: ['**/*.html'],
8 | lastUpload: ['**/*.html'],
9 | },
10 | ],
11 | environments: {
12 | production: {
13 | type: 'aliyun',
14 | region: 'oss-cn-hangzhou',
15 | bucket: 'xxx',
16 | accessKeyId: 'xxx',
17 | accessKeySecret: 'xxx',
18 | domain: 'https://xxx.xxx.com',
19 | },
20 | testing: {
21 | type: 'qiniu',
22 | region: '',
23 | bucket: '',
24 | accessKey: '',
25 | secretKey: '',
26 | domain: '',
27 | },
28 | development: {
29 | type: 'tencent',
30 | region: '',
31 | bucket: '',
32 | appId: '',
33 | secretId: '',
34 | secretKey: '',
35 | domain: '',
36 | },
37 | },
38 | };
39 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "baseUrl": ".",
4 | "target": "ES6",
5 | "module": "CommonJS",
6 | "lib": ["ESNext", "DOM"],
7 | "esModuleInterop": true,
8 | "moduleResolution": "node",
9 | "removeComments": true,
10 | "outDir": "lib",
11 | "skipLibCheck": false
12 | },
13 | "exclude": ["node_modules/**/*"],
14 | "include": ["src/**/*", "typings.d.ts"]
15 | }
16 |
--------------------------------------------------------------------------------
/typings.d.ts:
--------------------------------------------------------------------------------
1 | declare enum Types {
2 | Aliyun = 'aliyun',
3 | Qiniu = 'qiniu',
4 | Tencent = 'tencent',
5 | Debug = 'debug',
6 | }
7 |
8 | declare interface Config {
9 | rules: Rule[];
10 | environment:
11 | | Environment.Aliyun
12 | | Environment.Qiniu
13 | | Environment.Tencent
14 | | Environment.Debug;
15 | environments?: {
16 | [k: string]:
17 | | Environment.Aliyun
18 | | Environment.Qiniu
19 | | Environment.Tencent
20 | | Environment.Debug;
21 | };
22 | }
23 |
24 | declare interface File {
25 | from: string;
26 | to: string;
27 | isLastUpload: boolean;
28 | isNoCache: boolean;
29 | }
30 |
31 | declare interface Rule {
32 | from: string;
33 | to: string;
34 | ignore: string[];
35 | noCache: string[];
36 | lastUpload: string[];
37 | files: File[];
38 | }
39 |
40 | declare namespace Environment {
41 | type Aliyun = {
42 | type: Types.Aliyun;
43 | region: string;
44 | bucket: string;
45 | accessKeyId: string;
46 | accessKeySecret: string;
47 | domain: string;
48 | };
49 | type Qiniu = {
50 | type: Types.Qiniu;
51 | region: string;
52 | bucket: string;
53 | accessKey: string;
54 | secretKey: string;
55 | domain: string;
56 | };
57 | type Tencent = {
58 | type: Types.Tencent;
59 | region: string;
60 | bucket: string;
61 | appId: string;
62 | secretId: string;
63 | secretKey: string;
64 | domain: string;
65 | };
66 | type Debug = {
67 | type: Types.Debug;
68 | domain: string;
69 | };
70 | }
71 |
72 | declare interface Upload {
73 | upload(files: File[]): Promise;
74 | }
75 |
--------------------------------------------------------------------------------