# @abtnode/util

> ArcBlock's JavaScript utility

Latest version **1.17.12** (published 2026-04-22) · Apache-2.0 license · 0 weekly downloads

## Install

```sh
npm install @abtnode/util
pnpm add @abtnode/util
yarn add @abtnode/util
bun add @abtnode/util
```

## Health

**Score 45/100 (D)** — status: active.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

## Facts

| | |
|---|---|
| Version | 1.17.12 |
| Published | 2026-04-22 |
| First published | 2020-05-25 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 64 |
| Unpacked size | 200.1 KB |
| Known vulnerabilities | 0 (+13 in 2 direct dependencies) |
| Install scripts | no |
| Author | polunzh |
| Maintainers | wangshijun, polunzh, mave99a |

## Links

- npm: https://www.npmjs.com/package/@abtnode/util
- npm.io page: https://npm.io/package/@abtnode/util

## Dependencies (64)

- [tar](https://npm.io/package/tar.md) ^6.1.11
- [ufo](https://npm.io/package/ufo.md) ^1.5.3
- [axon](https://npm.io/package/axon.md) ^2.0.3
- [pump](https://npm.io/package/pump.md) ^3.0.0
- [ssri](https://npm.io/package/ssri.md) ^8.0.1
- [axios](https://npm.io/package/axios.md) ^1.7.9
- [chalk](https://npm.io/package/chalk.md) ^4.1.2
- [dayjs](https://npm.io/package/dayjs.md) ^1.11.8
- [debug](https://npm.io/package/debug.md) ^4.4.1
- [fkill](https://npm.io/package/fkill.md) ^7.2.1
- [hasha](https://npm.io/package/hasha.md) ^5.2.2
- [is-ip](https://npm.io/package/is-ip.md) 3
- [which](https://npm.io/package/which.md) ^2.0.2
- [cookie](https://npm.io/package/cookie.md) ^1.0.2
- [is-url](https://npm.io/package/is-url.md) ^1.2.4
- [lodash](https://npm.io/package/lodash.md) ^4.17.21
- [semver](https://npm.io/package/semver.md) ^7.6.3
- [find-up](https://npm.io/package/find-up.md) ^5.0.0
- [hpagent](https://npm.io/package/hpagent.md) ^1.1.0
- [p-retry](https://npm.io/package/p-retry.md) ^4.6.2
- [resolve](https://npm.io/package/resolve.md) ^1.22.8
- [shelljs](https://npm.io/package/shelljs.md) ^0.8.5
- [slugify](https://npm.io/package/slugify.md) ^1.6.5
- [archiver](https://npm.io/package/archiver.md) ^7.0.1
- [fast-glob](https://npm.io/package/fast-glob.md) ^3.3.2
- [form-data](https://npm.io/package/form-data.md) ^4.0.2
- [is-docker](https://npm.io/package/is-docker.md) ^2.2.1
- [minimatch](https://npm.io/package/minimatch.md) ^9.0.4
- [public-ip](https://npm.io/package/public-ip.md) ^4.0.4
- [to-semver](https://npm.io/package/to-semver.md) ^3.0.0
- [@ocap/util](https://npm.io/package/@ocap/util.md) 1.29.27
- [p-wait-for](https://npm.io/package/p-wait-for.md) ^3.2.0
- [private-ip](https://npm.io/package/private-ip.md) ^2.3.4
- [request-ip](https://npm.io/package/request-ip.md) ^3.3.0
- [cross-spawn](https://npm.io/package/cross-spawn.md) ^7.0.3
- [internal-ip](https://npm.io/package/internal-ip.md) ^6.2.0
- [semver-sort](https://npm.io/package/semver-sort.md) ^1.0.0
- [@ocap/client](https://npm.io/package/@ocap/client.md) 1.29.27
- [@ocap/wallet](https://npm.io/package/@ocap/wallet.md) 1.29.27
- [multiformats](https://npm.io/package/multiformats.md) 9.9.0
- [npm-packlist](https://npm.io/package/npm-packlist.md) ^7.0.4
- [through2-map](https://npm.io/package/through2-map.md) ^3.0.0
- [@arcblock/did](https://npm.io/package/@arcblock/did.md) 1.29.27
- [@arcblock/pm2](https://npm.io/package/@arcblock/pm2.md) ^6.0.12
- [@blocklet/xss](https://npm.io/package/@blocklet/xss.md) ^0.3.16
- [@ocap/mcrypto](https://npm.io/package/@ocap/mcrypto.md) 1.29.27
- [cookie-parser](https://npm.io/package/cookie-parser.md) ^1.4.7
- [folder-walker](https://npm.io/package/folder-walker.md) ^3.2.0
- [@blocklet/meta](https://npm.io/package/@blocklet/meta.md) 1.17.12
- [@blocklet/error](https://npm.io/package/@blocklet/error.md) ^0.3.5
- [get-folder-size](https://npm.io/package/get-folder-size.md) ^2.0.1
- [node-stream-zip](https://npm.io/package/node-stream-zip.md) ^1.15.0
- [through2-filter](https://npm.io/package/through2-filter.md) ^3.0.0
- [transliteration](https://npm.io/package/transliteration.md) 2.3.5
- [fast-folder-size](https://npm.io/package/fast-folder-size.md) ^2.4.0
- [@abtnode/constant](https://npm.io/package/@abtnode/constant.md) 1.17.12
- [@abtnode/db-cache](https://npm.io/package/@abtnode/db-cache.md) 1.17.12
- [stream-to-promise](https://npm.io/package/stream-to-promise.md) ^3.0.0
- [@blocklet/constant](https://npm.io/package/@blocklet/constant.md) 1.17.12
- [axios-mock-adapter](https://npm.io/package/axios-mock-adapter.md) ^2.1.0
- [flush-write-stream](https://npm.io/package/flush-write-stream.md) ^2.0.0
- [parallel-transform](https://npm.io/package/parallel-transform.md) ^1.2.0
- [@arcblock/event-hub](https://npm.io/package/@arcblock/event-hub.md) 1.29.27
- [json-stable-stringify](https://npm.io/package/json-stable-stringify.md) ^1.0.1

## Recent versions

- 1.17.12 (latest) — 2026-04-22
- 1.17.13-beta-20260613-094425-b81920c8 (beta) — 2026-06-13
- 1.16.29-next-680cf137 (next) — 2024-07-19
- 1.2.0-prerelease.1 (prelease) — 2021-02-08
- 1.17.13-beta-20260512-042419-7b556a38 — 2026-05-12
- 1.17.13-beta-20260512-004004-69bacba8 — 2026-05-12
- 1.17.12-beta-20260422-093007-b389a838 — 2026-04-22
- 1.17.12-beta-20260422-090318-b389a838 — 2026-04-22
- 1.17.12-beta-20260422-080315-acb4f448 — 2026-04-22
- 1.17.12-beta-20260422-075550-7bd6bb1a — 2026-04-22
- 1.17.12-beta-20260422-010020-a0ced20c — 2026-04-22
- 1.17.12-beta-20260422-003844-3e4843bf — 2026-04-22
- 1.17.12-beta-20260422-003256-4dcff725 — 2026-04-22
- 1.17.12-beta-20260420-082539-2b9be931 — 2026-04-20
- 1.17.12-beta-20260420-075606-d7d7a9c7 — 2026-04-20
- … 1154 more at https://npm.io/package/@abtnode/util/versions

## README

# ArcBlock's JavaScript utility

## Usage

For example:

```js
const tryWithTimeout = require('@abtnode/util/lib/try-with-timeout');
try {
  await tryWithTimeout(() => new Promise((resolve) => setTimeout(() => resolve(true), 60)), 50);
} catch (err) {
  expect(err).toBeTruthy();
  expect(err.message).toContain('Operation timed out after 50 ms');
}
```

---
_Source: https://npm.io/package/@abtnode/util · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
