基础信息
项目名称:Z3Prover/z3
项目徽章:
仓库地址:https://github.com/pterodactyl/panel
检测报告地址:https://www.murphysec.com/console/report/1720314983018967040/1720314984642162688
此报告由Murphysec提供
漏洞列表
漏洞名称 | 漏洞类型 | MPS编号 | CVE编号 | 漏洞等级 |
---|---|---|---|---|
Ruby yajl-ruby gem 安全漏洞 | 使用外部控制的格式字符串 | MPS-2017-12488 | CVE-2017-16516 | 高危 |
yajl-ruby 安全漏洞 | 整数溢出或环绕 | MPS-2022-3762 | CVE-2022-24795 | 高危 |
node-semver 安全漏洞 | ReDoS | MPS-2022-5166 | CVE-2022-25883 | 高危 |
缺陷组件
组件名称 | 版本 | 最小修复版本 | 依赖关系 | 修复建议 |
---|---|---|---|---|
xqilla | 2.3.4 | 间接依赖 | 建议修复 | |
semver | 5.7.1 | 7.5.2 | 间接依赖 | 可选修复 |
许可证风险
许可证类型 | 相关组件 | 许可证风险 |
---|---|---|
MIT | 292 | 低 |
ISC | 25 | 低 |
Apache-2.0 | 10 | 低 |
0BSD | 1 | 低 |
BSD-3-Clause | 12 | 低 |
CC0-1.0 | 1 | 低 |
BSD-2-Clause | 1 | 低 |
CC-BY-3.0 | 1 | 低 |
SBOM清单
组件名称 | 组件版本 | 是否直接依赖 | 仓库 |
---|---|---|---|
@jest/schemas | 28.1.3 | 间接依赖 | npm |
gensync | 1.0.0-beta.2 | 间接依赖 | npm |
object-inspect | 1.12.1 | 间接依赖 | npm |
hosted-git-info | 2.8.9 | 间接依赖 | npm |
spdx-expression-parse | 3.0.1 | 间接依赖 | npm |
human-signals | 2.1.0 | 间接依赖 | npm |
jest-circus | 28.1.3 | 间接依赖 | npm |
@tsconfig/node16 | 1.0.3 | 间接依赖 | npm |
fb-watchman | 2.0.2 | 间接依赖 | npm |
string.prototype.trimend | 1.0.5 | 间接依赖 | npm |
create-require | 1.1.1 | 间接依赖 | npm |
acorn | 8.8.0 | 间接依赖 | npm |
jest-matcher-utils | 27.5.1 | 间接依赖 | npm |
emoji-regex | 8.0.0 | 间接依赖 | npm |
@types/graceful-fs | 4.1.5 | 间接依赖 | npm |
lunr | 2.3.9 | 间接依赖 | npm |
write-file-atomic | 4.0.2 | 间接依赖 | npm |
@babel/helper-string-parser | 7.19.4 | 间接依赖 | npm |
jest-get-type | 27.5.1 | 间接依赖 | npm |
is-regex | 1.1.4 | 间接依赖 | npm |
get-intrinsic | 1.1.1 | 间接依赖 | npm |
escape-string-regexp | 1.0.5 | 间接依赖 | npm |
locate-path | 5.0.0 | 间接依赖 | npm |
supports-color | 5.5.0 | 间接依赖 | npm |
@istanbuljs/schema | 0.1.3 | 间接依赖 | npm |
require-directory | 2.1.1 | 间接依赖 | npm |
yn | 3.1.1 | 间接依赖 | npm |
validate-npm-package-license | 3.0.4 | 间接依赖 | npm |
ms | 2.1.2 | 间接依赖 | npm |
memorystream | 0.3.1 | 间接依赖 | npm |
sisteransi | 1.0.5 | 间接依赖 | npm |
@babel/plugin-syntax-object-rest-spread | 7.8.3 | 间接依赖 | npm |
jest-pnp-resolver | 1.2.2 | 间接依赖 | npm |
signal-exit | 3.0.7 | 间接依赖 | npm |
reduce-flatten | 2.0.0 | 间接依赖 | npm |
z3 | 间接依赖 | pip | |
balanced-match | 1.0.2 | 间接依赖 | npm |
path-parse | 1.0.7 | 间接依赖 | npm |
to-fast-properties | 2.0.0 | 间接依赖 | npm |
shebang-command | 1.2.0 | 间接依赖 | npm |
braces | 3.0.2 | 间接依赖 | npm |
isexe | 2.0.0 | 间接依赖 | npm |
is-generator-fn | 2.1.0 | 间接依赖 | npm |
jest-diff | 27.5.1 | 间接依赖 | npm |
nice-try | 1.0.5 | 间接依赖 | npm |
prompts | 2.4.2 | 直接依赖 | npm |
jest-each | 28.1.3 | 间接依赖 | npm |
tslib | 2.4.0 | 间接依赖 | npm |
fast-json-stable-stringify | 2.1.0 | 间接依赖 | npm |
brace-expansion | 1.1.11 | 间接依赖 | npm |
istanbul-reports | 3.1.5 | 间接依赖 | npm |
chalk | 2.4.2 | 间接依赖 | npm |
universalify | 1.0.0 | 间接依赖 | npm |
is-date-object | 1.0.5 | 间接依赖 | npm |
is-core-module | 2.9.0 | 间接依赖 | npm |
wordwrapjs | 4.0.1 | 间接依赖 | npm |
strip-final-newline | 2.0.0 | 间接依赖 | npm |
globals | 11.12.0 | 间接依赖 | npm |
@babel/plugin-syntax-typescript | 7.18.6 | 间接依赖 | npm |
@babel/generator | 7.19.5 | 间接依赖 | npm |
@babel/helpers | 7.19.4 | 间接依赖 | npm |
@tsconfig/node10 | 1.0.9 | 间接依赖 | npm |
@jridgewell/gen-mapping | 0.1.1 | 间接依赖 | npm |
p-limit | 2.3.0 | 间接依赖 | npm |
is-symbol | 1.0.4 | 间接依赖 | npm |
fill-range | 7.0.1 | 间接依赖 | npm |
jest-docblock | 28.1.1 | 间接依赖 | npm |
js-yaml | 3.14.1 | 间接依赖 | npm |
make-error | 1.3.6 | 间接依赖 | npm |
@sinonjs/commons | 1.8.3 | 间接依赖 | npm |
ansi-regex | 5.0.1 | 间接依赖 | npm |
wrappy | 1.0.2 | 间接依赖 | npm |
imurmurhash | 0.1.4 | 间接依赖 | npm |
glob | 7.2.3 | 间接依赖 | npm |
onetime | 5.1.2 | 间接依赖 | npm |
supports-preserve-symlinks-flag | 1.0.0 | 间接依赖 | npm |
emittery | 0.10.2 | 间接依赖 | npm |
jest-runtime | 28.1.3 | 间接依赖 | npm |
string-width | 4.2.3 | 间接依赖 | npm |
@types/istanbul-lib-coverage | 2.0.4 | 间接依赖 | npm |
jest-runner | 28.1.3 | 间接依赖 | npm |
string.prototype.trimstart | 1.0.5 | 间接依赖 | npm |
typical | 5.2.0 | 间接依赖 | npm |
bluebird | 3.7.2 | 间接依赖 | npm |
typedoc | 0.23.16 | 直接依赖 | npm |
@tsconfig/node14 | 1.0.3 | 间接依赖 | npm |
@types/istanbul-reports | 3.0.1 | 间接依赖 | npm |
resolve-from | 5.0.0 | 间接依赖 | npm |
spdx-license-ids | 3.0.11 | 间接依赖 | npm |
leven | 3.1.0 | 间接依赖 | npm |
@jridgewell/sourcemap-codec | 1.4.14 | 间接依赖 | npm |
@istanbuljs/load-nyc-config | 1.1.0 | 间接依赖 | npm |
jsonc-parser | 3.2.0 | 间接依赖 | npm |
@ampproject/remapping | 2.2.0 | 间接依赖 | npm |
rimraf | 3.0.2 | 间接依赖 | npm |
has-bigints | 1.0.2 | 间接依赖 | npm |
has-tostringtag | 1.0.0 | 间接依赖 | npm |
regexp.prototype.flags | 1.4.3 | 间接依赖 | npm |
is-callable | 1.2.4 | 间接依赖 | npm |
@babel/code-frame | 7.18.6 | 间接依赖 | npm |
npm-run-path | 4.0.1 | 间接依赖 | npm |
acorn-walk | 8.2.0 | 间接依赖 | npm |
path-is-absolute | 1.0.1 | 间接依赖 | npm |
@babel/plugin-syntax-numeric-separator | 7.10.4 | 间接依赖 | npm |
object.assign | 4.1.2 | 间接依赖 | npm |
istanbul-lib-instrument | 5.2.1 | 间接依赖 | npm |
ci-info | 3.5.0 | 间接依赖 | npm |
@types/jest | 27.5.2 | 直接依赖 | npm |
get-caller-file | 2.0.5 | 间接依赖 | npm |
@sinonjs/fake-timers | 9.1.2 | 间接依赖 | npm |
picomatch | 2.3.1 | 间接依赖 | npm |
terminal-link | 2.1.1 | 间接依赖 | npm |
shiki | 0.11.1 | 间接依赖 | npm |
istanbul-lib-report | 3.0.0 | 间接依赖 | npm |
deep-extend | 0.6.0 | 间接依赖 | npm |
ts-expect | 1.3.0 | 直接依赖 | npm |
typescript | 4.8.4 | 直接依赖 | npm |
istanbul-lib-coverage | 3.2.0 | 间接依赖 | npm |
camelcase | 5.3.1 | 间接依赖 | npm |
@babel/helper-compilation-targets | 7.19.3 | 间接依赖 | npm |
inherits | 2.0.4 | 间接依赖 | npm |
slash | 3.0.0 | 间接依赖 | npm |
@jridgewell/resolve-uri | 3.1.0 | 间接依赖 | npm |
@types/prettier | 2.7.1 | 间接依赖 | npm |
node-int64 | 0.4.0 | 间接依赖 | npm |
has | 1.0.3 | 间接依赖 | npm |
side-channel | 1.0.4 | 间接依赖 | npm |
@babel/plugin-syntax-top-level-await | 7.14.5 | 间接依赖 | npm |
strip-ansi | 6.0.1 | 间接依赖 | npm |
bs-logger | 0.2.6 | 间接依赖 | npm |
es-abstract | 1.20.1 | 间接依赖 | npm |
ts-node | 10.9.1 | 直接依赖 | npm |
fsevents | 2.3.2 | 间接依赖 | npm |
function.prototype.name | 1.1.5 | 间接依赖 | npm |
@types/babel__core | 7.1.19 | 间接依赖 | npm |
parse-json | 4.0.0 | 间接依赖 | npm |
is-arrayish | 0.2.1 | 间接依赖 | npm |
vscode-textmate | 6.0.0 | 间接依赖 | npm |
@babel/runtime | 7.19.4 | 间接依赖 | npm |
shell-quote | 1.7.3 | 间接依赖 | npm |
is-fullwidth-code-point | 3.0.0 | 间接依赖 | npm |
@babel/helper-module-imports | 7.18.6 | 间接依赖 | npm |
has-symbols | 1.0.3 | 间接依赖 | npm |
detect-newline | 3.1.0 | 间接依赖 | npm |
yocto-queue | 0.1.0 | 直接依赖 | npm |
jest-regex-util | 28.0.2 | 间接依赖 | npm |
v8-to-istanbul | 9.0.1 | 间接依赖 | npm |
supports-hyperlinks | 2.3.0 | 间接依赖 | npm |
@jest/expect | 28.1.3 | 间接依赖 | npm |
@cspotcode/source-map-support | 0.8.1 | 间接依赖 | npm |
get-symbol-description | 1.0.0 | 间接依赖 | npm |
ansi-styles | 3.2.1 | 间接依赖 | npm |
debug | 4.3.4 | 间接依赖 | npm |
@jest/environment | 28.1.3 | 间接依赖 | npm |
@babel/plugin-syntax-async-generators | 7.8.4 | 间接依赖 | npm |
pkg-dir | 4.2.0 | 间接依赖 | npm |
@jest/console | 28.1.3 | 间接依赖 | npm |
source-map | 0.6.1 | 间接依赖 | npm |
char-regex | 1.0.2 | 间接依赖 | npm |
source-map-support | 0.5.13 | 间接依赖 | npm |
color-name | 1.1.3 | 间接依赖 | npm |
@babel/plugin-syntax-json-strings | 7.8.3 | 间接依赖 | npm |
once | 1.4.0 | 间接依赖 | npm |
natural-compare | 1.4.0 | 间接依赖 | npm |
command-line-usage | 6.1.0 | 间接依赖 | npm |
@babel/traverse | 7.23.2 | 间接依赖 | npm |
to-regex-range | 5.0.1 | 间接依赖 | npm |
jest-util | 28.1.3 | 间接依赖 | npm |
y18n | 5.0.8 | 间接依赖 | npm |
pify | 3.0.0 | 间接依赖 | npm |
@babel/plugin-syntax-class-properties | 7.12.13 | 间接依赖 | npm |
stack-utils | 2.0.5 | 间接依赖 | npm |
jsonfile | 6.0.1 | 间接依赖 | npm |
tmpl | 1.0.5 | 间接依赖 | npm |
shebang-regex | 1.0.0 | 间接依赖 | npm |
jest-resolve-dependencies | 28.1.3 | 间接依赖 | npm |
@babel/plugin-syntax-optional-catch-binding | 7.8.3 | 间接依赖 | npm |
@babel/types | 7.19.4 | 间接依赖 | npm |
colors | 1.4.0 | 间接依赖 | npm |
color-convert | 1.9.3 | 间接依赖 | npm |
jest-mock | 28.1.3 | 间接依赖 | npm |
normalize-path | 3.0.0 | 间接依赖 | npm |
call-bind | 1.0.2 | 间接依赖 | npm |
@jest/transform | 28.1.3 | 间接依赖 | npm |
es-to-primitive | 1.2.1 | 间接依赖 | npm |
iter-tools | 7.5.0 | 直接依赖 | npm |
is-bigint | 1.0.4 | 间接依赖 | npm |
dedent | 0.7.0 | 间接依赖 | npm |
minimatch | 3.1.2 | 间接依赖 | npm |
z3 | 间接依赖 | ||
p-locate | 4.1.0 | 间接依赖 | npm |
async-mutex | 0.3.2 | 直接依赖 | npm |
spdx-correct | 3.1.1 | 间接依赖 | npm |
yallist | 4.0.0 | 间接依赖 | npm |
@jest/reporters | 28.1.3 | 间接依赖 | npm |
makeerror | 1.0.12 | 间接依赖 | npm |
unbox-primitive | 1.0.2 | 间接依赖 | npm |
micromatch | 4.0.5 | 间接依赖 | npm |
test-exclude | 6.0.0 | 间接依赖 | npm |
pirates | 4.0.5 | 间接依赖 | npm |
@types/babel__traverse | 7.18.2 | 间接依赖 | npm |
strip-bom | 3.0.0 | 间接依赖 | npm |
npm-run-all | 4.1.5 | 直接依赖 | npm |
@tsconfig/node12 | 1.0.11 | 间接依赖 | npm |
is-boolean-object | 1.1.2 | 间接依赖 | npm |
vscode-oniguruma | 1.6.2 | 间接依赖 | npm |
@babel/plugin-syntax-bigint | 7.8.3 | 间接依赖 | npm |
@jest/test-result | 28.1.3 | 间接依赖 | npm |
string.prototype.padend | 3.1.3 | 间接依赖 | npm |
z3 | 4.8.8 | 间接依赖 | |
lodash.memoize | 4.1.2 | 间接依赖 | npm |
expect | 28.1.3 | 间接依赖 | npm |
graceful-fs | 4.2.10 | 间接依赖 | npm |
@babel/template | 7.18.10 | 间接依赖 | npm |
@types/yargs-parser | 21.0.0 | 间接依赖 | npm |
find-up | 4.1.0 | 间接依赖 | npm |
function-bind | 1.1.1 | 间接依赖 | npm |
table-layout | 1.0.2 | 间接依赖 | npm |
@jest/core | 28.1.3 | 间接依赖 | npm |
is-shared-array-buffer | 1.0.2 | 间接依赖 | npm |
babel-preset-current-node-syntax | 1.0.1 | 间接依赖 | npm |
marked | 4.1.1 | 间接依赖 | npm |
@types/yargs | 17.0.13 | 间接依赖 | npm |
path-key | 2.0.1 | 间接依赖 | npm |
normalize-package-data | 2.5.0 | 间接依赖 | npm |
@jest/types | 28.1.3 | 间接依赖 | npm |
has-flag | 3.0.0 | 间接依赖 | npm |
read-pkg | 3.0.0 | 间接依赖 | npm |
anymatch | 3.1.2 | 间接依赖 | npm |
path-type | 3.0.0 | 间接依赖 | npm |
exit | 0.1.2 | 间接依赖 | npm |
jest-changed-files | 28.1.3 | 间接依赖 | npm |
is-string | 1.0.7 | 间接依赖 | npm |
arg | 4.1.3 | 间接依赖 | npm |
which-boxed-primitive | 1.0.2 | 间接依赖 | npm |
error-ex | 1.3.2 | 间接依赖 | npm |
is-negative-zero | 2.0.2 | 间接依赖 | npm |
path-exists | 4.0.0 | 间接依赖 | npm |
babel-plugin-istanbul | 6.1.1 | 间接依赖 | npm |
prettier | 2.7.1 | 直接依赖 | npm |
regenerator-runtime | 0.13.10 | 间接依赖 | npm |
check-engine | 1.10.1 | 直接依赖 | npm |
@babel/plugin-syntax-nullish-coalescing-operator | 7.8.3 | 间接依赖 | npm |
html-escaper | 2.0.2 | 间接依赖 | npm |
is-weakref | 1.0.2 | 间接依赖 | npm |
jest-watcher | 28.1.3 | 间接依赖 | npm |
@jest/globals | 28.1.3 | 间接依赖 | npm |
diff-sequences | 27.5.1 | 间接依赖 | npm |
is-number-object | 1.0.7 | 间接依赖 | npm |
jest-worker | 28.1.3 | 间接依赖 | npm |
escalade | 3.1.1 | 间接依赖 | npm |
concat-map | 0.0.1 | 间接依赖 | npm |
mimic-fn | 2.1.0 | 间接依赖 | npm |
@babel/helper-plugin-utils | 7.19.0 | 间接依赖 | npm |
@jest/fake-timers | 28.1.3 | 间接依赖 | npm |
internal-slot | 1.0.3 | 间接依赖 | npm |
@babel/plugin-syntax-optional-chaining | 7.8.3 | 间接依赖 | npm |
resolve | 1.22.0 | 间接依赖 | npm |
@bcoe/v8-coverage | 0.2.3 | 间接依赖 | npm |
wrap-ansi | 7.0.0 | 间接依赖 | npm |
@types/babel__template | 7.4.1 | 间接依赖 | npm |
js-tokens | 4.0.0 | 间接依赖 | npm |
yargs-parser | 20.2.9 | 间接依赖 | npm |
string-length | 4.0.2 | 间接依赖 | npm |
@jest/expect-utils | 28.1.3 | 间接依赖 | npm |
jest-config | 28.1.3 | 间接依赖 | npm |
yargs | 17.6.0 | 间接依赖 | npm |
which | 1.3.1 | 间接依赖 | npm |
p-try | 2.2.0 | 间接依赖 | npm |
jest-leak-detector | 28.1.3 | 间接依赖 | npm |
get-package-type | 0.1.0 | 间接依赖 | npm |
json-parse-better-errors | 1.0.2 | 间接依赖 | npm |
jsesc | 2.5.2 | 间接依赖 | npm |
jest-environment-node | 28.1.3 | 间接依赖 | npm |
resolve.exports | 1.1.0 | 间接依赖 | npm |
xqilla | 2.3.4 | 间接依赖 | |
merge-stream | 2.0.0 | 间接依赖 | npm |
jest | 28.1.3 | 直接依赖 | npm |
babel-preset-jest | 28.1.3 | 间接依赖 | npm |
@babel/core | 7.19.3 | 间接依赖 | npm |
convert-source-map | 1.9.0 | 间接依赖 | npm |
kleur | 3.0.3 | 间接依赖 | npm |
cjs-module-lexer | 1.2.2 | 间接依赖 | npm |
@types/node | 17.0.45 | 间接依赖 | npm |
ts-jest | 28.0.8 | 直接依赖 | npm |
import-local | 3.1.0 | 间接依赖 | npm |
co | 4.6.0 | 间接依赖 | npm |
@sinclair/typebox | 0.24.46 | 间接依赖 | npm |
array-back | 4.0.2 | 间接依赖 | npm |
cliui | 7.0.4 | 间接依赖 | npm |
is-stream | 2.0.1 | 间接依赖 | npm |
@types/babel__generator | 7.6.4 | 间接依赖 | npm |
@babel/compat-data | 7.19.4 | 间接依赖 | npm |
jest-snapshot | 28.1.3 | 间接依赖 | npm |
resolve-cwd | 3.0.0 | 间接依赖 | npm |
@babel/helper-validator-identifier | 7.19.1 | 间接依赖 | npm |
inflight | 1.0.6 | 间接依赖 | npm |
@babel/parser | 7.19.4 | 间接依赖 | npm |
get-stream | 6.0.1 | 间接依赖 | npm |
@babel/plugin-syntax-import-meta | 7.10.4 | 间接依赖 | npm |
lines-and-columns | 1.2.4 | 直接依赖 | npm |
@babel/highlight | 7.18.6 | 间接依赖 | npm |
has-property-descriptors | 1.0.0 | 间接依赖 | npm |
buffer-from | 1.1.2 | 间接依赖 | npm |
walker | 1.0.8 | 间接依赖 | npm |
@types/stack-utils | 2.0.1 | 间接依赖 | npm |
bser | 2.1.1 | 间接依赖 | npm |
execa | 5.1.1 | 间接依赖 | npm |
deepmerge | 4.2.2 | 间接依赖 | npm |
@jridgewell/set-array | 1.1.2 | 间接依赖 | npm |
browserslist | 4.21.4 | 间接依赖 | npm |
@jridgewell/trace-mapping | 0.3.17 | 间接依赖 | npm |
@babel/helper-validator-option | 7.18.6 | 间接依赖 | npm |
pretty-format | 27.5.1 | 间接依赖 | npm |
jest-message-util | 28.1.3 | 间接依赖 | npm |
v8-compile-cache-lib | 3.0.1 | 间接依赖 | npm |
@jest/source-map | 28.1.2 | 间接依赖 | npm |
babel-jest | 28.1.3 | 间接依赖 | npm |
semver | 5.7.1 | 间接依赖 | npm |
diff | 4.0.2 | 间接依赖 | npm |
jest-resolve | 28.1.3 | 间接依赖 | npm |
jest-haste-map | 28.1.3 | 间接依赖 | npm |
@babel/helper-split-export-declaration | 7.18.6 | 间接依赖 | npm |
pidtree | 0.3.1 | 间接依赖 | npm |
callsites | 3.1.0 | 间接依赖 | npm |
fs.realpath | 1.0.0 | 间接依赖 | npm |
collect-v8-coverage | 1.0.1 | 间接依赖 | npm |
react-is | 17.0.2 | 间接依赖 | npm |
type-fest | 0.21.3 | 间接依赖 | npm |
make-dir | 3.1.0 | 间接依赖 | npm |
@babel/helper-module-transforms | 7.19.0 | 间接依赖 | npm |
jest-validate | 28.1.3 | 间接依赖 | npm |
load-json-file | 4.0.0 | 间接依赖 | npm |
istanbul-lib-source-maps | 4.0.1 | 间接依赖 | npm |
json-parse-even-better-errors | 2.3.1 | 直接依赖 | npm |
@types/istanbul-lib-report | 3.0.0 | 间接依赖 | npm |
define-properties | 1.1.4 | 间接依赖 | npm |
spdx-exceptions | 2.3.0 | 间接依赖 | npm |
json5 | 2.2.3 | 间接依赖 | npm |
@babel/plugin-syntax-logical-assignment-operators | 7.10.4 | 间接依赖 | npm |
object-keys | 1.1.1 | 间接依赖 | npm |
cross-spawn | 6.0.5 | 间接依赖 | npm |
@types/sprintf-js | 1.1.2 | 直接依赖 | npm |
functions-have-names | 1.2.3 | 间接依赖 | npm |
strip-json-comments | 3.1.1 | 间接依赖 | npm |
@babel/helper-simple-access | 7.19.4 | 间接依赖 | npm |
@babel/helper-environment-visitor | 7.18.9 | 间接依赖 | npm |
babel-plugin-jest-hoist | 28.1.3 | 间接依赖 | npm |
lru-cache | 6.0.0 | 直接依赖 | npm |
ansi-escapes | 4.3.2 | 间接依赖 | npm |
@jest/test-sequencer | 28.1.3 | 间接依赖 | npm |