Summary
Togoder Security scanned the npm package es-toolkit@1.33.0 on Oct 4, 2026. An AI review of 427 source files produced 3 high, 6 medium, 4 low severity findings. The overall verdict is medium: the findings flag risky but common patterns (dynamic code, unsafe defaults, broad file or network access) rather than confirmed malware.
Findings 13
Dynamic code execution
NPS-E951598A6979
The template function uses new Function() to compile a function from a string that includes user-supplied template code. This is a form of dynamic code execution (eval) and can lead to arbitrary code execution if untrusted input is passed to the template function. Additionally, the function uses the 'with(obj)' statement (or direct scope injection) to evaluate the compiled code, which can expose variables from the provided object. While this is an inherent feature of lodash-style templating, it represents a significant security risk if misused.
code generation from user input
NPS-F4710B2B1A4E
Template expressions (escape, interpolate, evaluate) are directly concatenated into the generated source without sanitization. While this is the intended functionality of a template engine, it means any untrusted template string allows code execution. This is a known risk in template engines (e.g., Lodash template) and should be documented as a security consideration.
dynamic code execution
NPS-C8932C5B150E
The template function compiles and executes a generated string using new Function(...), which is equivalent to eval. The generated code includes user-provided template expressions and evaluate blocks. If an attacker can control the template string or options, this can lead to arbitrary code execution (RCE) within the runtime environment.
Potential prototype pollution
NPS-B794F115C22F
Several functions, such as toPlainObject, mergeWith, and assignIn, manipulate object properties without sufficient protection against prototype pollution. For example, toPlainObject explicitly handles '__proto__' by using Object.defineProperty, but other functions like mergeWith may recursively assign properties and could be exploited to pollute Object.prototype if given malicious input. This can lead to advanced attacks such as privilege escalation or denial of service.
dynamic code execution
NPS-94DE832C035B
The template function builds a JavaScript function body from user-supplied template strings and executes it via new Function(...). This is a well-known code-injection risk. Although the implementation includes escaping of delimiters and is intended for template rendering, if an application passes untrusted input as the template string or options (e.g. sourceURL, variable, imports), arbitrary code can be executed in the host environment. This pattern is common in utility libraries (e.g. lodash's template), but it is still a dangerous capability and should be flagged when reviewing third-party packages.
use of with statement
NPS-73CD5F0A9CBB
The compiled function uses with(obj) { ... } to resolve variable references from the template against the provided object. This can lead to scope pollution and unintended variable access, especially if the object contains properties like __proto__ or constructor, potentially enabling prototype pollution or sandbox escape.
Dynamic method invocation via user-controlled path
NPS-8AAA32A2A023
The invoke function resolves a method on an object using a caller-supplied path and applies it with args. If object originates from untrusted input or a prototype-polluted object, an attacker could invoke unintended methods (e.g., __proto__, constructor, or other properties reachable via the path) with attacker-controlled arguments. No sanitization or allowlist restricts which properties can be reached, so this behaves like a generic callable dispatcher. In the context of a utility library this is expected behavior, but it constitutes a dangerous primitive if the object/path is exposed to untrusted sources.
Prototype pollution exposure
NPS-48E2DF7CF596
invokeImpl uses get(object, path.slice(0, -1), object) and get(parent, lastKey) to traverse arbitrary property paths. get is typically unfiltered for keys like __proto__, constructor, and prototype, meaning paths such as ['__proto__', 'polluted'] can reach prototype members. Combined with func?.apply(parent, args), this can lead to invoking prototype methods (e.g., constructor.constructor for Function-based code execution) if an attacker controls the path. This is a latent gadget rather than an obvious exploit in isolation.
Arbitrary function invocation
NPS-9A4F510480FB
The final func?.apply(parent, args) executes whatever function is located at the resolved path. If the resolved function is Function, eval, or a similarly powerful constructor obtained via a crafted path, it amounts to dynamic code execution. The code itself does not use eval/new Function, but it exposes a mechanism that can reach such constructs through prototype traversal (constructor.constructor).
Verbose logging
NPS-51F607B46218
The functions divide and intersectionWith contain console.log statements that log arguments. This could inadvertently leak sensitive information if these functions are used with sensitive data. While not directly malicious, it is a poor security practice.
Debug logging in production code
NPS-DCA16840937D
A console.log(firstArr) call was inserted into the intersectionWith function, logging the first argument on every invocation. This is not malicious (no exfiltration or credential harvesting), but it is extraneous debug output that does not match the upstream lodash-es implementation and could leak sensitive data to console logs or pollute application output.
debug information leakage
NPS-3FAF89254987
There are stray console.log statements inside intersectionWith and divide that log user-provided arguments (console.log(firstArr) and console.log(value, other)). While not malicious per se, these leak runtime data to stdout and may expose sensitive values in logs or downstream tooling. They also appear to be accidental debugging artifacts and are a code-quality concern.
Debug logging of user input
NPS-8360C7BB9260
The divide function logs both arguments to the console unconditionally via console.log(value, other). This is unexpected for a pure math utility and could leak sensitive values passed into divide() (e.g., tokens, keys, or personal data) into console output, logs, or browser devtools. While not overtly malicious, it is a privacy/security concern and deviates from the expected behavior of a lodash-like divide utility.
Files reviewed
| File | Verdict | What the reviewer saw |
|---|---|---|
| dist/browser.global.js | medium | The library is a utility toolkit (es-toolkit) with several security-relevant patterns including dynamic code execution via new Function in template, potential prototype pollution vectors, and verbose logging, but no clear malicious intent such as data exfiltration or backdoors. |
| dist/compat/array/intersectionWith.mjs | medium | The file contains an unexpected console.log debug statement not present in the original lodash-es source, but no exfiltration, obfuscation, code execution, or other malicious patterns were found. |
| dist/compat/index.js | medium | The module is a utility library (es-toolkit compat layer) with no data exfiltration, credential harvesting, or backdoor behavior, but it exposes a template function that executes dynamically constructed code via new Function, and contains stray debug console.log calls. |
| dist/compat/math/divide.mjs | medium | The file contains no exfiltration, credential harvesting, obfuscation, or dynamic execution, but includes an unnecessary and unexpected console.log of function arguments that could leak sensitive data. |
| dist/compat/string/template.mjs | medium | The code is a template engine that uses dynamic new Function compilation and with statement, which are inherent security risks when processing untrusted templates, but no malicious exfiltration or backdoor patterns were detected. |
| dist/compat/util/invoke.mjs | medium | This is a plain utility method-invocation helper with no network, filesystem, or process side effects, but its unrestricted path traversal and generic apply call create prototype-pollution / arbitrary-method-invocation primitives if fed untrusted input. |
| dist/_chunk/AbortError-Cg4ZQ1.js | safe | No malicious patterns detected |
| dist/_chunk/delay-_VMfFa.js | safe | No malicious patterns detected; the code is a standard delay utility with abort signal support. |
| dist/_chunk/isPlainObject-Xaozpc.js | safe | No malicious patterns detected |
| dist/_chunk/isWeakSet-TIM260.js | safe | No malicious patterns detected; the file contains only standard type-checking and deep-equality utility functions with no network, filesystem, process, or dynamic code execution behavior. |
| dist/_chunk/noop-2IwLUk.js | safe | No malicious patterns detected |
| dist/_chunk/randomInt-CF7bZK.js | safe | No malicious patterns detected; the code only contains benign random number utility functions. |
| dist/_chunk/range-HnEIT7.js | safe | No malicious patterns detected; the file contains only standard utility functions for mathematical range and statistics operations. |
| dist/_chunk/toMerged-CwnQF6.js | safe | No malicious patterns detected; the code is a standard utility library for deep cloning, merging, and object manipulation without any network, filesystem, process execution, or obfuscation concerns. |
| dist/_chunk/unary-c1NFA5.js | safe | No malicious patterns detected; the file contains standard utility functions (after, ary, debounce, flow, memoize, etc.) with no network, filesystem, process, or dynamic code execution behavior. |
| dist/_chunk/upperFirst-nA5L7X.js | safe | No malicious patterns detected; this is a standard string utility module with no network, filesystem, process, or dynamic code execution behavior. |
| dist/_chunk/zipWith-Bdyzuy.js | safe | No malicious patterns detected; the code is a standard utility library with pure array/object functions and only a local relative require. |
| dist/_internal/compareValues.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/at.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/chunk.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/compact.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/countBy.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/difference.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/differenceBy.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/differenceWith.mjs | safe | Cleared by Jev triage; no further analysis needed |
Show 402 more files
| File | Verdict | What the reviewer saw |
|---|---|---|
| dist/array/drop.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/dropRight.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/dropRightWhile.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/dropWhile.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/fill.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/flatMap.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/flatMapDeep.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/flatten.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/flattenDeep.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/forEachRight.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/groupBy.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/head.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/index.js | safe | No malicious patterns detected; the code is a standard utility library re-exporting array helpers and implementing orderBy, sortBy, and takeRightWhile with no network, filesystem, process, or dynamic execution activity. |
| dist/array/index.mjs | safe | No malicious patterns detected in the module re-export file; it only contains static exports of array utility functions. |
| dist/array/initial.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/intersection.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/intersectionBy.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/intersectionWith.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/isSubset.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/isSubsetWith.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/keyBy.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/last.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/maxBy.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/minBy.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/orderBy.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/partition.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/pull.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/pullAt.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/remove.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/sample.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/sampleSize.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/shuffle.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/sortBy.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/tail.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/take.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/takeRight.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/takeRightWhile.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/takeWhile.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/toFilled.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/union.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/unionBy.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/unionWith.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/uniq.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/uniqBy.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/uniqWith.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/unzip.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/unzipWith.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/windowed.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/without.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/xor.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/xorBy.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/xorWith.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/zip.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/zipObject.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/array/zipWith.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/_internal/MAX_ARRAY_LENGTH.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/_internal/MAX_SAFE_INTEGER.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/_internal/compareValues.mjs | safe | No malicious patterns detected |
| dist/compat/_internal/decimalAdjust.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/_internal/flattenArrayLike.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/_internal/getSymbols.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/_internal/getTag.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/_internal/isDeepKey.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/_internal/isIndex.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/_internal/isIterateeCall.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/_internal/isKey.mjs | safe | No malicious patterns detected; the code is a simple utility for checking if a value is a property key. |
| dist/compat/_internal/isPrototype.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/_internal/normalizeForCase.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/_internal/tags.mjs | safe | No malicious patterns detected; the file only defines and exports string constants for JavaScript type tags. |
| dist/compat/_internal/toArray.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/_internal/toKey.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/castArray.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/chunk.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/compact.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/concat.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/difference.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/differenceBy.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/differenceWith.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/drop.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/dropRight.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/dropRightWhile.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/dropWhile.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/every.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/fill.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/filter.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/find.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/findIndex.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/findLast.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/findLastIndex.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/flatten.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/flattenDeep.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/flattenDepth.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/forEach.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/head.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/includes.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/indexOf.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/intersection.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/intersectionBy.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/join.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/last.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/lastIndexOf.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/map.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/nth.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/orderBy.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/pull.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/pullAll.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/pullAllBy.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/reduce.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/reduceRight.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/remove.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/reverse.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/sample.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/size.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/slice.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/some.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/sortBy.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/sortedIndex.mjs | safe | The code is a standard sortedIndex utility with no malicious patterns, network activity, credential harvesting, or unsafe dynamic execution. |
| dist/compat/array/sortedIndexBy.mjs | safe | No malicious patterns detected; the code implements a binary search utility with no network, filesystem, process, or dynamic execution behavior. |
| dist/compat/array/tail.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/take.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/takeRight.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/takeRightWhile.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/union.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/uniq.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/uniqBy.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/unzip.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/without.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/zip.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/array/zipObjectDeep.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/function/after.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/function/ary.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/function/attempt.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/function/before.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/function/bind.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/function/bindKey.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/function/curry.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/function/curryRight.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/function/debounce.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/function/defer.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/function/delay.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/function/flip.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/function/flow.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/function/flowRight.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/function/negate.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/function/nthArg.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/function/rearg.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/function/rest.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/function/spread.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/function/throttle.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/index.mjs | safe | No malicious patterns detected; the file only re-exports utility functions from other modules. |
| dist/compat/math/add.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/math/ceil.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/math/clamp.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/math/floor.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/math/inRange.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/math/max.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/math/maxBy.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/math/min.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/math/multiply.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/math/parseInt.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/math/random.mjs | safe | No malicious patterns detected; the code is a standard random number generation utility with argument parsing and clamping. |
| dist/compat/math/range.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/math/rangeRight.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/math/round.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/math/subtract.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/math/sum.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/math/sumBy.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/object/assignIn.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/object/cloneDeep.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/object/cloneDeepWith.mjs | safe | No malicious patterns detected; the file is a legitimate deep clone utility with standard object handling and no network, filesystem, process, or dynamic code execution behavior. |
| dist/compat/object/defaults.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/object/findKey.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/object/fromPairs.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/object/get.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/object/has.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/object/invertBy.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/object/keys.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/object/keysIn.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/object/mapKeys.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/object/mapValues.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/object/merge.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/object/mergeWith.mjs | safe | No malicious patterns detected; the code is a standard deep merge utility with no network, filesystem, process, or dynamic execution behavior. |
| dist/compat/object/omit.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/object/pick.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/object/pickBy.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/object/property.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/object/propertyOf.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/object/set.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/object/toDefaulted.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/object/unset.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/object/values.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/object/valuesIn.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/predicate/conforms.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/predicate/conformsTo.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/predicate/isArguments.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/predicate/isArray.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/predicate/isArrayBuffer.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/predicate/isArrayLike.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/predicate/isArrayLikeObject.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/predicate/isBoolean.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/predicate/isBuffer.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/predicate/isDate.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/predicate/isElement.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/predicate/isEmpty.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/predicate/isEqualWith.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/predicate/isError.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/predicate/isFinite.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/predicate/isInteger.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/predicate/isMap.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/predicate/isMatch.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/predicate/isNaN.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/predicate/isNil.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/predicate/isNumber.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/predicate/isObject.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/predicate/isObjectLike.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/predicate/isPlainObject.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/predicate/isRegExp.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/predicate/isSafeInteger.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/predicate/isSet.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/predicate/isString.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/predicate/isSymbol.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/predicate/isTypedArray.mjs | safe | No malicious patterns detected |
| dist/compat/predicate/isWeakMap.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/predicate/isWeakSet.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/predicate/matches.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/predicate/matchesProperty.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/string/camelCase.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/string/deburr.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/string/endsWith.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/string/escape.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/string/escapeRegExp.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/string/kebabCase.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/string/lowerCase.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/string/lowerFirst.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/string/pad.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/string/padEnd.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/string/padStart.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/string/repeat.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/string/replace.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/string/snakeCase.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/string/startCase.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/string/startsWith.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/string/toLower.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/string/toUpper.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/string/trim.mjs | safe | No malicious patterns detected |
| dist/compat/string/trimEnd.mjs | safe | No malicious patterns detected; the code is a straightforward string trimming utility with no network, filesystem, process, or dynamic execution behavior. |
| dist/compat/string/trimStart.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/string/unescape.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/string/upperCase.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/string/upperFirst.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/string/words.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/util/constant.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/util/defaultTo.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/util/eq.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/util/gt.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/util/gte.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/util/iteratee.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/util/lt.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/util/lte.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/util/method.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/util/methodOf.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/util/now.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/util/stubArray.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/util/stubFalse.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/util/stubObject.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/util/stubString.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/util/stubTrue.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/util/times.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/util/toArray.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/util/toFinite.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/util/toInteger.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/util/toLength.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/util/toNumber.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/util/toPath.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/util/toPlainObject.mjs | safe | No malicious patterns detected; the code is a straightforward utility for converting objects to plain objects with explicit handling of the '__proto__' property to avoid prototype pollution. |
| dist/compat/util/toSafeInteger.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/util/toString.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/compat/util/uniqueId.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/error/AbortError.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/error/TimeoutError.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/error/index.js | safe | No malicious patterns detected in the file; it only defines and exports error classes. |
| dist/error/index.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/function/after.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/function/ary.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/function/asyncNoop.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/function/before.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/function/curry.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/function/curryRight.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/function/debounce.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/function/flow.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/function/flowRight.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/function/identity.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/function/index.js | safe | No malicious patterns detected |
| dist/function/index.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/function/memoize.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/function/negate.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/function/noop.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/function/once.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/function/partial.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/function/partialRight.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/function/rest.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/function/retry.mjs | safe | No malicious patterns detected; the code is a straightforward retry utility with no network, filesystem, process, or obfuscation concerns. |
| dist/function/spread.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/function/throttle.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/function/unary.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/index.js | safe | No malicious patterns detected; the file is a standard re-export module aggregating utility functions from local chunks. |
| dist/index.mjs | safe | No malicious patterns detected |
| dist/math/clamp.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/math/inRange.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/math/index.js | safe | No malicious patterns detected; the code contains only standard mathematical utility functions with no network, filesystem, process, or obfuscated behavior. |
| dist/math/index.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/math/mean.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/math/meanBy.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/math/median.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/math/medianBy.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/math/random.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/math/randomInt.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/math/range.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/math/rangeRight.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/math/round.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/math/sum.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/math/sumBy.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/object/clone.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/object/cloneDeep.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/object/cloneDeepWith.mjs | safe | No malicious patterns detected; the code is a standard deep clone utility with no network, filesystem, process, or credential access. |
| dist/object/findKey.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/object/flattenObject.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/object/index.js | safe | No malicious patterns detected; the code contains only standard utility functions for object merging, omitting, picking, and filtering. |
| dist/object/index.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/object/invert.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/object/mapKeys.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/object/mapValues.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/object/merge.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/object/mergeWith.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/object/omit.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/object/omitBy.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/object/pick.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/object/pickBy.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/object/toMerged.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/predicate/index.js | safe | No malicious patterns detected; the file contains only simple predicate functions and re-exports from local chunks. |
| dist/predicate/index.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/predicate/isArrayBuffer.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/predicate/isBlob.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/predicate/isBoolean.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/predicate/isBuffer.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/predicate/isDate.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/predicate/isEqual.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/predicate/isEqualWith.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/predicate/isError.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/predicate/isFile.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/predicate/isFunction.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/predicate/isJSON.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/predicate/isJSONValue.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/predicate/isLength.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/predicate/isMap.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/predicate/isNil.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/predicate/isNotNil.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/predicate/isNull.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/predicate/isPlainObject.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/predicate/isPrimitive.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/predicate/isPromise.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/predicate/isRegExp.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/predicate/isSet.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/predicate/isString.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/predicate/isSymbol.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/predicate/isTypedArray.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/predicate/isUndefined.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/predicate/isWeakMap.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/predicate/isWeakSet.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/promise/delay.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/promise/index.js | safe | No malicious patterns detected; the code implements standard semaphore, mutex, and timeout utilities without any suspicious behavior. |
| dist/promise/index.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/promise/mutex.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/promise/semaphore.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/promise/timeout.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/promise/withTimeout.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/string/camelCase.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/string/capitalize.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/string/constantCase.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/string/deburr.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/string/escape.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/string/escapeRegExp.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/string/index.js | safe | No malicious patterns detected |
| dist/string/index.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/string/kebabCase.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/string/lowerCase.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/string/lowerFirst.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/string/pad.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/string/pascalCase.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/string/reverseString.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/string/snakeCase.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/string/startCase.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/string/trim.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/string/trimEnd.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/string/trimStart.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/string/unescape.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/string/upperCase.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/string/upperFirst.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/string/words.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/util/index.js | safe | No malicious patterns detected |
| dist/util/index.mjs | safe | Cleared by Jev triage; no further analysis needed |
| dist/util/invariant.mjs | safe | Cleared by Jev triage; no further analysis needed |
Affected version ranges
None of the 3 scanned versions of es-toolkit are flagged high or critical. The latest scanned version, 1.52.0, is not scanned. Only versions we have scanned are listed; unscanned versions between them are not covered.
| Versions | Verdict | Count | Range | Top findings |
|---|---|---|---|---|
| 1.52.0 | Not scanned | 1 | 1.52.0 | |
| 1.44.0 โ 1.45.1 | Needs review | 2 | >=1.44.0 <=1.45.1 | Prototype pollution / unsafe prototype copying; Constructor invocation from untrusted input |
| 1.43.0 | Not scanned | 1 | 1.43.0 | |
| 1.33.0 | Needs review | 1 | 1.33.0 | Dynamic code execution; code generation from user input |
Full list, including published versions not scanned yet: version ranges API.
Scanned versions of es-toolkit
Frequently asked questions
Is es-toolkit safe to use?
No confirmed malware was found in es-toolkit@1.33.0, but the review flagged 3 high, 6 medium, 4 low severity findings for risky patterns worth checking before you rely on it.
Does es-toolkit contain malware?
No malware was identified in es-toolkit@1.33.0 when Togoder Security scanned it on Oct 4, 2026. A new version can still introduce malicious code, so scan the exact versions in your lockfile.
How was es-toolkit checked?
Togoder Security downloaded the published npm package and had an AI model read its 427 source files, looking for install scripts, credential access, network exfiltration, obfuscation, backdoors and crypto-wallet theft. The results are cached by file hash and shown here.
How do I scan es-toolkit together with the rest of my dependencies?
Upload your lockfile at https://security.togoder.click/scan or call the API documented at https://security.togoder.click/api-docs. Files that have already been scanned, like the ones in es-toolkit@1.33.0, cost nothing.