Skip to content

Latest commit

 

History

History
739 lines (608 loc) · 121 KB

File metadata and controls

739 lines (608 loc) · 121 KB

API Index

Every subpath exported by @socketsecurity/lib, grouped by namespace. Each entry links to the source module and shows the first sentence of its @fileoverview.

Regenerate with node scripts/fix/generate-api-index.mts after adding or removing exports. Do not edit this file by hand.

Jump to: Top-level · abort/ · ai/ · ansi/ · archives/ · argv/ · arrays/ · bin/ · cacache/ · checks/ · colors/ · compression/ · constants/ · cover/ · crypto/ · debug/ · dlx/ · eco/ · effects/ · env/ · errors/ · external-tools/ · fs/ · git/ · github/ · globs/ · http-request/ · ipc-cli/ · ipc/ · json/ · links/ · logger/ · memo/ · node/ · objects/ · packages/ · paths/ · perf/ · pkg-ext/ · primordials/ · process/ · promise-queue/ · promises/ · regexps/ · releases/ · schema/ · sea/ · shadow/ · signal-exit/ · smol/ · sorts/ · spawn/ · spinner/ · ssri/ · stdio/ · streams/ · strings/ · tables/ · themes/ · ttl-cache/ · url/ · versions/ · warnings/ · words/

Top-level

Subpath Description
@socketsecurity/lib/errors Human-readable error-message extractor.
@socketsecurity/lib/logger The Logger class + the shared-default getDefaultLogger() accessor — the public class surface for logger/*.

abort/

Subpath Description
@socketsecurity/lib/abort/signal Abort signal utilities — composite signal construction from multiple sources and timeout-driven signal creation.

ai/

Subpath Description
@socketsecurity/lib/ai/discover (no description)
@socketsecurity/lib/ai/profiles (no description)
@socketsecurity/lib/ai/spawn (no description)
@socketsecurity/lib/ai/types (no description)
@socketsecurity/lib/ai/worktree (no description)

ansi/

Subpath Description
@socketsecurity/lib/ansi/constants ANSI escape code constants.
@socketsecurity/lib/ansi/strip ANSI escape-code regex factory and stripping helper.

archives/

Subpath Description
@socketsecurity/lib/archives/detect Format detection by file extension.
@socketsecurity/lib/archives/extract extractArchive — format-detecting dispatcher that routes to extractTar / extractTarGz / extractZip.
@socketsecurity/lib/archives/tar Tar / tar.gz extraction with security limits and symlink rejection.
@socketsecurity/lib/archives/types Public type surface for archives/* modules — the ArchiveFormat union and the ExtractOptions security-limit record.
@socketsecurity/lib/archives/zip Zip extraction with security limits and path traversal validation.

argv/

Subpath Description
@socketsecurity/lib/argv/flag-predicates Flag predicates — is* checks across parsed FlagValues, raw process.argv, or no input.
@socketsecurity/lib/argv/flag-types Types + COMMON_FLAGS table for argv flag parsing.
@socketsecurity/lib/argv/parse Argument parsing utilities for CLI applications.

arrays/

Subpath Description
@socketsecurity/lib/arrays/chunk Split an array into fixed-size chunks.
@socketsecurity/lib/arrays/join Grammatical list joiners via Intl.ListFormat — Oxford-comma aware and locale-correct.
@socketsecurity/lib/arrays/predicates Array type-guard predicates.
@socketsecurity/lib/arrays/unique Deduplicate an array via Set.

bin/

Subpath Description
@socketsecurity/lib/bin/check socket-lib check <name> subcommand group.
@socketsecurity/lib/bin/check-primordials socket-lib check primordials handler.
@socketsecurity/lib/bin/exec execBin — spawn a binary with PATH resolution, wrapper-script unwrapping, and Windows shell handling.
@socketsecurity/lib/bin/find Find specific package-manager binaries with platform- aware fallbacks.
@socketsecurity/lib/bin/resolve Resolve a binary path to the underlying script file.
@socketsecurity/lib/bin/shadow Shadow-bin detection.
@socketsecurity/lib/bin/socket-lib socket-lib CLI entry point — top-level dispatcher.
@socketsecurity/lib/bin/types Public type surface for bin/* modules — the WhichOptions interface that callers pass to which, whichSync, whichReal, and whichRealSync.
@socketsecurity/lib/bin/which Look up binaries on PATH.

cacache/

Subpath Description
@socketsecurity/lib/cacache/clear Bulk-clear entries from the Socket shared cacache — clear() plus its wildcard helper createPatternMatcher.
@socketsecurity/lib/cacache/read Cache read entrypoints — get (throws on miss) and safeGet (returns undefined on miss).
@socketsecurity/lib/cacache/tmp withTmp — run a callback with a freshly-created temp directory under the cacache root.
@socketsecurity/lib/cacache/types Public type surface for cacache/* modules — the CacheEntry row shape returned by reads and the option bags consumed by clear / get / put.
@socketsecurity/lib/cacache/write Cache write entrypoints — put (insert/replace by key) and remove (single-key delete).

checks/

Subpath Description
@socketsecurity/lib/checks/primordials Primordials drift check — generic core.

colors/

Subpath Description
@socketsecurity/lib/colors/convert Color conversion helpers — isRgbTuple() narrows a ColorValue to the RGB-tuple branch, and toRgb() resolves a named color or passes through an existing tuple.
@socketsecurity/lib/colors/palette Named-color palette — maps each ColorName to its canonical RGB tuple.
@socketsecurity/lib/colors/types Public type surface for colors/* modules — the ColorInherit literal, the ColorName named-color union, the ColorRgb tuple, and the ColorValue super-union.

compression/

Subpath Description
@socketsecurity/lib/compression/brotli Brotli compression / decompression — in-memory, file-to-file, and raw-stream variants.
@socketsecurity/lib/compression/gzip Gzip compression / decompression — same calling shapes as brotli: in-memory, file-to-file, and raw-stream variants.
@socketsecurity/lib/compression/types Public type surface for compression/* modules — the CompressOptions accepted by every compression entrypoint and CompressFileOptions which extends it with inPlace.

constants/

Subpath Description
@socketsecurity/lib/constants/agents Package manager agent constants.
@socketsecurity/lib/constants/encoding Character encoding and character code constants.
@socketsecurity/lib/constants/github GitHub API and cache constants.
@socketsecurity/lib/constants/licenses License identifier constants.
@socketsecurity/lib/constants/lifecycle-script-names NPM lifecycle script names.
@socketsecurity/lib/constants/maintained-node-versions Maintained Node.js versions without external dependencies.
@socketsecurity/lib/constants/node Node.js runtime version and capability helpers.
@socketsecurity/lib/constants/package-default-node-range Default Node.js version range for packages.
@socketsecurity/lib/constants/package-default-socket-categories Default Socket security categories for packages.
@socketsecurity/lib/constants/packages Package metadata, defaults, extensions, and lifecycle helpers.
@socketsecurity/lib/constants/platform Platform detection and OS-specific constants.
@socketsecurity/lib/constants/sentinels Core primitives and fundamental constants.
@socketsecurity/lib/constants/socket Socket.dev branding and identifier constants.
@socketsecurity/lib/constants/testing Testing framework and CI-related string constants.
@socketsecurity/lib/constants/time Time-related numeric constants.
@socketsecurity/lib/constants/typescript TypeScript availability detection.

cover/

Subpath Description
@socketsecurity/lib/cover/code Code coverage utilities for parsing v8 coverage data.
@socketsecurity/lib/cover/formatters Coverage output formatters.
@socketsecurity/lib/cover/type TypeScript type coverage utilities.
@socketsecurity/lib/cover/types Type definitions for coverage utilities.

crypto/

Subpath Description
@socketsecurity/lib/crypto/hash Crypto hash helpers that prefer Node builtins where available.

debug/

Subpath Description
@socketsecurity/lib/debug/caller-info getCallerInfo — extract the caller's function name from the V8 stack trace at a given offset.
@socketsecurity/lib/debug/namespace Namespace-handling helpers — extractOptions normalises the polymorphic first argument that every *Ns function takes, getDebugJsInstance per-namespace caches the underlying debug-js instance with customLog pa...
@socketsecurity/lib/debug/output Output entrypoints — debug / debugCache / debugDir / debugLog and their *Ns namespace variants, plus debuglog (node-util-compatible) and debugtime (start/end timers).
@socketsecurity/lib/debug/types Public type surface for debug/* modules — the options bag accepted by every debug*Ns entrypoint and the InspectOptions mirror of node:util's shape (the public subset we accept; not the full thing).

dlx/

Subpath Description
@socketsecurity/lib/dlx/arborist Safe Arborist wrapper for dlx installs and lockfile-only resolution.
@socketsecurity/lib/dlx/binary DLX binary execution utilities for Socket ecosystem.
@socketsecurity/lib/dlx/binary-cache On-disk cache metadata helpers for dlx binaries.
@socketsecurity/lib/dlx/binary-download Download helpers for dlx binaries — fetch tarballs from URLs, verify integrity, cache to disk with concurrency locking.
@socketsecurity/lib/dlx/binary-resolution Binary resolution for installed dlx packages.
@socketsecurity/lib/dlx/binary-types Public option / result interfaces for dlx binary operations.
@socketsecurity/lib/dlx/cache Cache key generation utilities for DLX package installations.
@socketsecurity/lib/dlx/detect Executable type detection for DLX and local filesystem paths.
@socketsecurity/lib/dlx/dir Directory management utilities for DLX installations.
@socketsecurity/lib/dlx/firewall Socket Firewall integration for dlx installs.
@socketsecurity/lib/dlx/integrity Integrity specification helpers for dlx downloads.
@socketsecurity/lib/dlx/lockfile Package pin generation for dlx installs.
@socketsecurity/lib/dlx/manifest DLX manifest storage utilities.
@socketsecurity/lib/dlx/package DLX package execution — install and execute npm packages.
@socketsecurity/lib/dlx/packages Package management utilities for DLX installations.
@socketsecurity/lib/dlx/paths Path utilities for DLX package installations.
@socketsecurity/lib/dlx/spec Parse package@version specs into {name, version}.
@socketsecurity/lib/dlx/types Public option / result interfaces for dlx package operations.

eco/

Subpath Description
@socketsecurity/lib/eco/cargo/lockfile-format Format descriptor for Cargo.lock — Rust's Cargo-managed lockfile.
@socketsecurity/lib/eco/cargo/manifest-format Format descriptor for Cargo.toml — Rust's package manifest.
@socketsecurity/lib/eco/cargo/parse-lockfile parseCargoLock(content) — parses a Rust Cargo.lock (v1/v2/v3/v4) into a ParsedLockfile.
@socketsecurity/lib/eco/manifest/analyze-lockfile analyzeLockfile(lockfile) — returns a LockfileStats summary (counts by dep type, total packages, per-ecosystem breakdown).
@socketsecurity/lib/eco/manifest/detect-format detectFormat(filename) — maps a filename (or path) to its FormatDescriptor (ecosystem + manifest/lockfile + lockfile format), or returns undefined if nothing matched.
@socketsecurity/lib/eco/manifest/find-packages findPackages(lockfile, pattern) — returns all PackageRefs whose name matches the regex/string pattern.
@socketsecurity/lib/eco/manifest/get-package getPackage(lockfile, name) — O(1) lookup of the first matching PackageRef by name in a ParsedLockfile.
@socketsecurity/lib/eco/manifest/get-package-versions getPackageVersions(lockfile, name) — returns all PackageRefs that match the given name in a ParsedLockfile.
@socketsecurity/lib/eco/manifest/manifest-error ManifestError — the error class every parser in src/eco/<pm>/parse-* and every dispatcher in src/eco/manifest/* throws on invalid / unsupported input.
@socketsecurity/lib/eco/manifest/parse parse(filename, content) — auto-detects format from filename then dispatches to parseManifest or parseLockfile.
@socketsecurity/lib/eco/manifest/parse-lockfile parseLockfile(content, ecosystem, format?) — dispatches to the right per-PM lockfile parser.
@socketsecurity/lib/eco/manifest/parse-manifest parseManifest(content, ecosystem) — dispatches to the right per-ecosystem manifest parser.
@socketsecurity/lib/eco/manifest/types Shared types for manifest + lockfile parsing.
@socketsecurity/lib/eco/npm/bun/exec Bun tool surface.
@socketsecurity/lib/eco/npm/manifest-format Format descriptor for package.json — the manifest shape shared across the entire npm-family ecosystem (npm, pnpm, yarn, bun, vlt).
@socketsecurity/lib/eco/npm/npm/exec Execute npm commands with optimized flags and security defaults.
@socketsecurity/lib/eco/npm/npm/extract-package-name-from-path extractPackageNameFromPath(pkgPath) — given an npm v2/v3 lockfile entry key like node_modules/a/node_modules/b, returns the final package name (b), preserving scoped-package boundaries (@scope/name stays joined).
@socketsecurity/lib/eco/npm/npm/flags npm CLI flag predicates.
@socketsecurity/lib/eco/npm/npm/lockfile-format Format descriptor for npm lockfiles — covers both package-lock.json and npm-shrinkwrap.json (npm v1/v2/v3 lock formats share the parser).
@socketsecurity/lib/eco/npm/npm/parse-git-url parseGitUrl(resolved) — extracts { url, commit } from a resolved field on an npm lockfile entry when it points to a git source (git+… or git://…).
@socketsecurity/lib/eco/npm/npm/parse-lockfile parsePackageLock(content) — parses an npm package-lock.json / npm-shrinkwrap.json (v1/v2/v3) into a ParsedLockfile.
@socketsecurity/lib/eco/npm/parse-package-json parsePackageJson(content) — parses a package.json string into a ParsedManifest.
@socketsecurity/lib/eco/npm/pnpm/detect-pnpm-version detectPnpmVersion(content) — scans a pnpm-lock.yaml for its lockfileVersion: line and returns 5, 6, or 9.
@socketsecurity/lib/eco/npm/pnpm/exec Execute pnpm commands with optimized flags and security defaults.
@socketsecurity/lib/eco/npm/pnpm/flags pnpm CLI flag predicates.
@socketsecurity/lib/eco/npm/pnpm/lockfile-format Format descriptor for pnpm-lock.yaml — pnpm's YAML-formatted lockfile (v5/v6/v9).
@socketsecurity/lib/eco/npm/pnpm/parse-lockfile parsePnpmLock(content) — parses a pnpm-lock.yaml (v5, v6, or v9) into a ParsedLockfile.
@socketsecurity/lib/eco/npm/pnpm/parse-pnpm-package-id-v5 parsePnpmPackageIdV5(pkgId) — extracts { name, version } from a pnpm v5 package key.
@socketsecurity/lib/eco/npm/pnpm/parse-pnpm-package-id-v6-v9 parsePnpmPackageIdV6V9(pkgId) — extracts { name, version } from a pnpm v6/v9 package key.
@socketsecurity/lib/eco/npm/script Cross-tool script runner — picks the right package manager by detecting the nearest lockfile and dispatches to its exec function.
@socketsecurity/lib/eco/npm/vlt/exec vlt tool surface.
@socketsecurity/lib/eco/npm/yarnpkg/yarn/exec Execute Yarn Classic (v1.x) commands with optimized flags and security defaults.
@socketsecurity/lib/eco/npm/yarnpkg/yarn/lockfile-format Format descriptor for yarn.lock — yarn's lockfile (Classic v1 + Berry v6 share the filename; the parser auto-discriminates on __metadata: presence).
@socketsecurity/lib/eco/npm/yarnpkg/yarn/parse-lockfile parseYarnLock(content) — parses a yarn.lock (Classic v1 or Berry v6) into a ParsedLockfile.
@socketsecurity/lib/eco/npm/yarnpkg/yarn/parse-yarn-descriptor parseYarnDescriptor(descriptor) — extracts the package name from a yarn lockfile spec key.
@socketsecurity/lib/eco/purl PURL (Package URL) ecosystem identifiers shared across every package manager Socket understands.
@socketsecurity/lib/eco/types Socket Registry ecosystem schema types — tags for packages and the manifest entries the registry build pipeline emits.

effects/

Subpath Description
@socketsecurity/lib/effects/pulse-frames Socket pulse animation frames generator.
@socketsecurity/lib/effects/shimmer Shimmer animation engine — pure functions, zero deps.
@socketsecurity/lib/effects/shimmer-keyframes SVG keyframe batcher for the shimmer engine.
@socketsecurity/lib/effects/shimmer-terminal Terminal renderer for the shimmer engine.

env/

Subpath Description
@socketsecurity/lib/env/boolean envAsBoolean — coerce an env-var-shaped value into a boolean.
@socketsecurity/lib/env/case-insensitive Case-insensitive environment-variable key lookup — findCaseInsensitiveEnvKey walks Object.keys(env) with an O(1) length-prefilter before the (expensive) toUpperCase comparison.
@socketsecurity/lib/env/ci CI environment variable getter.
@socketsecurity/lib/env/debug DEBUG environment variable getter.
@socketsecurity/lib/env/github GitHub Actions environment variable getters.
@socketsecurity/lib/env/helpers Environment variable type conversion helpers.
@socketsecurity/lib/env/home HOME environment variable getter with Windows fallback.
@socketsecurity/lib/env/locale Locale and language environment variable getters.
@socketsecurity/lib/env/node-auth-token NODE_AUTH_TOKEN environment variable getter.
@socketsecurity/lib/env/node-env NODE_ENV environment variable getter.
@socketsecurity/lib/env/npm NPM environment variable getters.
@socketsecurity/lib/env/number envAsNumber — coerce an env-var-shaped value into a number.
@socketsecurity/lib/env/package-manager Package manager environment detection.
@socketsecurity/lib/env/path PATH environment variable getter.
@socketsecurity/lib/env/pre-commit PRE_COMMIT environment variable getter.
@socketsecurity/lib/env/proxy createEnvProxy — wrap process.env (or any env-like record) in a Proxy that adds case-insensitive lookups for known-Windows-sensitive keys (PATH, APPDATA, etc.) and an overrides layer.
@socketsecurity/lib/env/rewire Environment variable rewiring utilities for testing.
@socketsecurity/lib/env/shell SHELL environment variable getter.
@socketsecurity/lib/env/socket Socket Security environment variable getters.
@socketsecurity/lib/env/socket-cli Socket CLI environment variables.
@socketsecurity/lib/env/string envAsString — coerce an env-var-shaped value into a string.
@socketsecurity/lib/env/temp-dir Temporary directory environment variable getters.
@socketsecurity/lib/env/term TERM environment variable getter.
@socketsecurity/lib/env/test Test environment variable getters and detection.
@socketsecurity/lib/env/types Public type surface for the cross-cutting env/* leaves split out of the legacy single-file env.ts — option bags consumed by envAsBoolean / envAsNumber / envAsString.
@socketsecurity/lib/env/windows Windows environment variable getters.
@socketsecurity/lib/env/xdg XDG Base Directory Specification environment variable getters.

errors/

Subpath Description
@socketsecurity/lib/errors/message Human-readable error-message extractor.
@socketsecurity/lib/errors/predicates Error type-guard predicates — isError (with the isErrorBuiltin / isErrorShim building blocks) and the libuv errno-code narrower isErrnoException.
@socketsecurity/lib/errors/stack Stack-trace extractor with cause-chain support.

external-tools/

Subpath Description
@socketsecurity/lib/external-tools/bazel/asset-names Upstream Bazel release asset-name mapping per platform-arch.
@socketsecurity/lib/external-tools/bazel/from-path bazelFromPath() — looks for bazelisk first, then bazel, on the system PATH.
@socketsecurity/lib/external-tools/bazel/from-vfs bazelFromVfs() — extracts the Bazel binary from the smol binary's VFS.
@socketsecurity/lib/external-tools/bazel/read-bazel-version-file readBazelVersionFile(workspaceDir) — walks up from workspaceDir looking for a .bazelversion file (the Bazel/Bazelisk convention for pinning the project's Bazel version).
@socketsecurity/lib/external-tools/bazel/resolve resolveBazel() — Bazel resolution entry point.
@socketsecurity/lib/external-tools/bazel/resolve-asset-url resolveBazelAssetUrl(version, platformArch) — builds the upstream GitHub Releases download URL for a Bazel binary.
@socketsecurity/lib/external-tools/bazel/resolve-bazel-version resolveBazelVersion({ cwd }) — picks the Bazel version to run for a project, matching the bazelisk precedence: 1.
@socketsecurity/lib/external-tools/bazel/types Shared types for Bazel resolution.
@socketsecurity/lib/external-tools/jre/asset-names Adoptium API platform-arch → asset-query mappings.
@socketsecurity/lib/external-tools/jre/detect-platform-arch getCurrentPlatformArch() — resolves the current machine to a platform-arch string suitable for the Adoptium asset-name map.
@socketsecurity/lib/external-tools/jre/from-java-home jreFromJavaHome() — checks $JAVA_HOME for an existing JRE/JDK.
@socketsecurity/lib/external-tools/jre/from-path jreFromPath() — looks for java (or java.exe) on the system PATH via socket-lib's which.
@socketsecurity/lib/external-tools/jre/from-vfs jreFromVfs() — extracts the JRE directory tree from the smol binary's VFS and returns the resolved-shape pointing into the extracted directory.
@socketsecurity/lib/external-tools/jre/resolve resolveJre() — the JRE resolution entry point.
@socketsecurity/lib/external-tools/jre/types Shared types for JRE resolution.
@socketsecurity/lib/external-tools/sbt/from-path sbtFromPath() — looks for the sbt shell script on the system PATH.
@socketsecurity/lib/external-tools/sbt/from-vfs sbtFromVfs() — extracts the SBT launcher jar from the smol binary's VFS.
@socketsecurity/lib/external-tools/sbt/resolve resolveSbt() — SBT resolution entry point.
@socketsecurity/lib/external-tools/sbt/types Shared types for SBT resolution.

fs/

Subpath Description
@socketsecurity/lib/fs/encoding Encoding-name normalization.
@socketsecurity/lib/fs/find-up Walk parent directories to locate a file or directory by name.
@socketsecurity/lib/fs/inspect Filesystem inspection helpers — stat / lstat wrappers that return undefined instead of throwing, and the directory / symlink / emptiness predicates layered on top.
@socketsecurity/lib/fs/path-cache Cache-invalidation entry point for the allowed-directories list used by safeDelete / safeDeleteSync.
@socketsecurity/lib/fs/read-dir Async/sync directory listing — returns directory names only (filtering out files), with optional emptiness suppression and natural-order sorting.
@socketsecurity/lib/fs/read-file File-content readers — UTF-8 / binary / safe variants (sync + async).
@socketsecurity/lib/fs/read-json Read-and-parse helpers for JSON files.
@socketsecurity/lib/fs/safe Safe deletion + idempotent directory creation.
@socketsecurity/lib/fs/types Public type surface for fs/* modules — option shapes, encoding union, and result records.
@socketsecurity/lib/fs/unique Generate a unique filepath by appending -1, -2, … before the extension until the path is free.
@socketsecurity/lib/fs/validate Pre-flight readability check for file lists.
@socketsecurity/lib/fs/write-json JSON writers that match the wire-format conventions a tool ecosystem expects: configurable indentation, configurable EOL, trailing newline by default.

git/

Subpath Description
@socketsecurity/lib/git/changed "Anything different from HEAD" helpers — the broad-strokes git status --porcelain view that lumps staged, unstaged, and untracked paths together.
@socketsecurity/lib/git/repo Git repository discovery + foundational lazy fs/path/cwd helpers shared across git/* leaves.
@socketsecurity/lib/git/staged "Ready for the next commit" helpers — git diff --cached over only the index.
@socketsecurity/lib/git/types Public type surface for git/* modules — the FilterPackagesByChangesOptions and GitDiffOptions configuration records.
@socketsecurity/lib/git/unstaged "Edited but not yet staged" helpers — git diff over the working tree only.

github/

Subpath Description
@socketsecurity/lib/github/constants GitHub API URL + cache-TTL constants.
@socketsecurity/lib/github/errors Named errors thrown by github/* helpers.
@socketsecurity/lib/github/fetch Authenticated GitHub REST fetch.
@socketsecurity/lib/github/ghsa GitHub Security Advisory (GHSA) lookups.
@socketsecurity/lib/github/refs Resolve GitHub git refs (tag / branch / commit) to full commit SHAs.
@socketsecurity/lib/github/refs-cache TtlCache singleton for github/refs.
@socketsecurity/lib/github/refs-graphql Resolve a GitHub git ref via GraphQL.
@socketsecurity/lib/github/refs-rest Resolve a GitHub git ref via REST tier-cascade.
@socketsecurity/lib/github/token GitHub token resolution.
@socketsecurity/lib/github/types Public type surface for github/* modules — pure interfaces.

globs/

Subpath Description
@socketsecurity/lib/globs/defaults The npm-packlist-derived defaultIgnore list.
@socketsecurity/lib/globs/glob glob (async) and globSync — fast-glob wrappers with a node:fs.glob fast-path when the option surface lines up.
@socketsecurity/lib/globs/matcher getGlobMatcher — picomatch-backed sync predicate with an LRU-memoized matcher cache.
@socketsecurity/lib/globs/stream globStreamLicenses — license-file discovery as an async stream.
@socketsecurity/lib/globs/types Public type surface for globs/* modules — the Pattern alias, the FastGlobOptions mirror of fast-glob's option surface, and the GlobOptions extension that adds Socket-specific recursive / ignoreOriginals fl...

http-request/

Subpath Description
@socketsecurity/lib/http-request/checksums Checksum file fetching + parsing for download verification.
@socketsecurity/lib/http-request/convenience Thin convenience wrappers over httpRequesthttpJson and httpText.
@socketsecurity/lib/http-request/download Streaming file downloads with retries, progress callbacks, and SHA-256 verification.
@socketsecurity/lib/http-request/download-types Types for HTTP download + checksum-fetch operations.
@socketsecurity/lib/http-request/errors Error-message enrichment for HTTP/HTTPS requests.
@socketsecurity/lib/http-request/headers Header utilities for HTTP/HTTPS requests.
@socketsecurity/lib/http-request/request Core HTTP/HTTPS request loop — the retry orchestrator.
@socketsecurity/lib/http-request/request-attempt Single HTTP request attempt — the workhorse beneath the retrying httpRequest orchestrator.
@socketsecurity/lib/http-request/request-types Types for HTTP request configuration — options, hooks, and Node IncomingMessage aliases.
@socketsecurity/lib/http-request/response-reader Read a raw Node IncomingMessage into our HttpResponse shape.
@socketsecurity/lib/http-request/response-types Types for HTTP response surface — HttpResponse with its fetch-like body accessors, and HttpResponseError for throwOnError.

ipc-cli/

Subpath Description
@socketsecurity/lib/ipc-cli/get Socket CLI child-process IPC object getter.
@socketsecurity/lib/ipc-cli/types Public type surface for ipc-cli/* modules — the IpcObject record describing the SOCKET_CLI_* env-var shape forwarded from a parent Socket CLI to a child process.

ipc/

| Subpath | Description | | -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | -------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | @socketsecurity/lib/ipc/directory | Stub-directory creation + permission audit. | | @socketsecurity/lib/ipc/paths | IPC stub path resolution. | | @socketsecurity/lib/ipc/types | Public type surface for ipc/* modules — the IpcStub shape that backs the file-based handoff. | | @socketsecurity/lib/ipc/write | Atomic stub write — O_CREAT | O_WRONLY | O_EXCL | O_NOFOLLOW so we refuse to overwrite a pre-existing stub (collision with attacker-planted file or PID reuse) and refuse to follow symlinks at the final path component. |

json/

Subpath Description
@socketsecurity/lib/json/edit Editable JSON file manipulation with formatting preservation.
@socketsecurity/lib/json/format Shared utilities for JSON formatting preservation and manipulation.
@socketsecurity/lib/json/parse JSON parsing utilities with Buffer detection and BOM stripping.
@socketsecurity/lib/json/types JSON type definitions and interfaces.

links/

Subpath Description
@socketsecurity/lib/links/link Themed hyperlink utilities for terminal output.
@socketsecurity/lib/links/types Public type surface for links/* modules — the LinkOptions record.

logger/

Subpath Description
@socketsecurity/lib/logger/colors Color application helpers for logger/* modules.
@socketsecurity/lib/logger/console Lazy Console construction + dynamic prototype mirroring for Logger.
@socketsecurity/lib/logger/logger The Logger class + the shared-default getDefaultLogger() accessor — the public class surface for logger/*.
@socketsecurity/lib/logger/symbols Symbol exports + the LOG_SYMBOLS proxy.
@socketsecurity/lib/logger/symbols-builder Free-function helpers for per-instance log-symbol construction + symbol stripping.
@socketsecurity/lib/logger/types Public type surface for logger/* modules — the LogSymbols shape, the LoggerMethods mapped type that mirrors console, and the Task interface returned by Logger.createTask.

memo/

Subpath Description
@socketsecurity/lib/memo/async memoizeAsync — async-aware memoizer with the same LRU+TTL contract as memoize, plus thundering-herd dedup.
@socketsecurity/lib/memo/clear clearAllMemoizationCaches — fan out to every per-cache clear function registered in _internal.cacheRegistry.
@socketsecurity/lib/memo/decorator Memoize — class-method decorator that wraps the decorated method via memoize.
@socketsecurity/lib/memo/memoize memoize — synchronous function memoizer with LRU eviction (Map insertion-order based), optional TTL, and optional custom key generator.
@socketsecurity/lib/memo/once once — zero-argument memoizer.
@socketsecurity/lib/memo/types Public type surface for memo/* modules — MemoizeOptions is the user-facing options bag accepted by every memoize entrypoint, CacheEntry<T> is the internal row stored in each per-function cache.
@socketsecurity/lib/memo/weak memoizeWeak — memoizer keyed by an object reference via WeakMap.

node/

Subpath Description
@socketsecurity/lib/node/async-hooks Lazy-loader for node:async_hooks.
@socketsecurity/lib/node/child-process Lazy-loader for node:child_process.
@socketsecurity/lib/node/crypto Lazy-loader for node:crypto.
@socketsecurity/lib/node/events Lazy-loader for node:events.
@socketsecurity/lib/node/fs Lazy-loader for node:fs.
@socketsecurity/lib/node/fs-promises Lazy-loader for node:fs/promises.
@socketsecurity/lib/node/http Lazy-loader for node:http.
@socketsecurity/lib/node/https Lazy-loader for node:https.
@socketsecurity/lib/node/module Lazy-loader for node:module.
@socketsecurity/lib/node/os Lazy-loader for node:os.
@socketsecurity/lib/node/path Lazy-loader for node:path.
@socketsecurity/lib/node/timers-promises Lazy-loader for node:timers/promises.
@socketsecurity/lib/node/url Lazy-loader for node:url.
@socketsecurity/lib/node/util Lazy-loader for node:util.

objects/

Subpath Description
@socketsecurity/lib/objects/getters Lazy-getter primitives + createConstantsObject.
@socketsecurity/lib/objects/inspect Object inspection helpers — getKeys, getOwn, getOwnPropertyValues.
@socketsecurity/lib/objects/mutate Object mutation helpers — merge (deep recursive), objectAssign (alias for native), objectFreeze (alias for native).
@socketsecurity/lib/objects/predicates Object type guards: hasKeys, hasOwn, isObject, isPlainObject.
@socketsecurity/lib/objects/sort Sorted-object helpers: entryKeyComparator, objectEntries, toSortedObject, toSortedObjectFromEntries.
@socketsecurity/lib/objects/types Public type surface for objects/* modules — getter definition shapes and the Remap type helper.

packages/

Subpath Description
@socketsecurity/lib/packages/edit Editable package.json manipulation utilities.
@socketsecurity/lib/packages/edit-class The EditablePackageJson class factory.
@socketsecurity/lib/packages/exports Package exports field utilities.
@socketsecurity/lib/packages/isolation Package isolation utilities for testing.
@socketsecurity/lib/packages/licenses SPDX license parsing and analysis utilities.
@socketsecurity/lib/packages/manifest Package manifest and packument fetching utilities.
@socketsecurity/lib/packages/normalize Package.json normalization utilities.
@socketsecurity/lib/packages/operations Package operations including extraction, packing, and I/O.
@socketsecurity/lib/packages/provenance Package provenance and attestation verification utilities.
@socketsecurity/lib/packages/specs Package spec parsing and GitHub URL utilities.
@socketsecurity/lib/packages/types Public type surface for packages/* modules — the PackageJson shape (npm-extended with a socket field) plus option bags consumed across edit / manifest / normalize / operations / provenance / licenses.
@socketsecurity/lib/packages/validation Package name validation utilities.

paths/

Subpath Description
@socketsecurity/lib/paths/conversion Path conversion utilities — MSYS↔native bridging and string-shape helpers.
@socketsecurity/lib/paths/dirnames Directory name and path pattern constants.
@socketsecurity/lib/paths/exts File extension constants.
@socketsecurity/lib/paths/filenames File name constants.
@socketsecurity/lib/paths/globs Glob pattern constants.
@socketsecurity/lib/paths/normalize Path normalization — the core normalizePath and its MSYS drive-letter helper.
@socketsecurity/lib/paths/packages Package.json path resolution utilities.
@socketsecurity/lib/paths/predicates Path predicates — is* checks for path shape and kind.
@socketsecurity/lib/paths/resolve Path resolution utilities — resolve, relative, relativeResolve.
@socketsecurity/lib/paths/rewire Path rewiring utilities for testing.
@socketsecurity/lib/paths/socket Path utilities for Socket ecosystem directories.

perf/

Subpath Description
@socketsecurity/lib/perf/enabled Feature-flag check — isPerfEnabled() returns true when DEBUG=perf is set in the environment.
@socketsecurity/lib/perf/metrics Read-side helpers — getPerformanceMetrics returns a shallow copy of the recorded rows, getPerformanceSummary rolls them up per operation (count / total / avg / min / max), and clearPerformanceMetrics empties the...
@socketsecurity/lib/perf/report Report-side helpers — generatePerformanceReport returns a multi-line ASCII-bordered report string; printPerformanceSummary writes a one-line-per-op summary through debugLog.
@socketsecurity/lib/perf/timer Recording-side helpers — perfTimer (returns a stop() closure), measure / measureSync (timed wrappers around an async / sync function), perfCheckpoint (zero-duration marker), and trackMemory (records heap-use...
@socketsecurity/lib/perf/types Public type surface for perf/* modules — the PerformanceMetrics row shape pushed onto the shared metrics array by perfTimer / measure / measureSync / perfCheckpoint / trackMemory.

pkg-ext/

Subpath Description
@socketsecurity/lib/pkg-ext/data Package extensions for compatibility adjustments.
@socketsecurity/lib/pkg-ext/types Public type surface for pkg-ext/* modules — the PackageExtension tuple shape used by the merged Yarn / Socket-curated extensions list.

primordials/

Subpath Description
@socketsecurity/lib/primordials/array Safe references to Array, typed-array, ArrayBuffer, DataView, Atomics, and shared iterator-prototype primordials.
@socketsecurity/lib/primordials/buffer Safe references to Node's Buffer global.
@socketsecurity/lib/primordials/date Safe references to Date.
@socketsecurity/lib/primordials/error Safe references to Error and its subclass constructors, plus V8's stack-trace API.
@socketsecurity/lib/primordials/function Safe references to Function.prototype methods.
@socketsecurity/lib/primordials/globals Safe references to top-level globals that don't fit a larger primordials leaf — primitive constructors (Boolean, BigInt), Proxy, SharedArrayBuffer, language-level constants (Infinity, NaN, globalThis), a...
@socketsecurity/lib/primordials/json Safe references to JSON.parse / JSON.stringify.
@socketsecurity/lib/primordials/map-set Safe references to Map, Set, WeakMap, WeakSet, and WeakRef.
@socketsecurity/lib/primordials/math Safe references to Math constants and methods.
@socketsecurity/lib/primordials/number Safe references to Number, its constants, predicates, and parse helpers.
@socketsecurity/lib/primordials/object Safe references to Object static methods and prototype methods.
@socketsecurity/lib/primordials/promise Safe references to Promise static methods, prototype methods, and the ES2024 withResolvers factory.
@socketsecurity/lib/primordials/reflect Safe references to Reflect.*.
@socketsecurity/lib/primordials/regexp Safe references to RegExp and its prototype methods.
@socketsecurity/lib/primordials/string Safe references to String static methods and prototype methods.
@socketsecurity/lib/primordials/symbol Safe references to Symbol, well-known symbols, and Symbol.prototype.
@socketsecurity/lib/primordials/uncurry uncurryThis and the cluster of helpers built atop it.
@socketsecurity/lib/primordials/url Safe references to URL, URLSearchParams, and the URLSearchParams.prototype methods.

process/

Subpath Description
@socketsecurity/lib/process/abort Process control helpers.
@socketsecurity/lib/process/lock-instance Singleton processLock instance — the canonical cross-cutting lock manager.
@socketsecurity/lib/process/lock-manager ProcessLockManager — the class that owns active locks, touch timers, and the exit-handler registration.
@socketsecurity/lib/process/lock-types Public type surface for process/lock-* modules — the ProcessLockOptions bag accepted by processLock.acquire and processLock.withLock.
@socketsecurity/lib/process/transient Temporary package executor detection utilities for Socket ecosystem.

promise-queue/

Subpath Description
@socketsecurity/lib/promise-queue/queue Bounded concurrency promise queue.
@socketsecurity/lib/promise-queue/types Public type surface for promise-queue/* modules — the QueuedTask storage shape used by the bounded-concurrency PromiseQueue.

promises/

Subpath Description
@socketsecurity/lib/promises/iterate Concurrency-controlled async iteration helpers: pEach, pEachChunk, pFilter, pFilterChunk.
@socketsecurity/lib/promises/options Option-shape normalizers for the iteration / retry helpers.
@socketsecurity/lib/promises/resolvers ECMA-262 standalone async helpers — withResolvers (Promise.withResolvers) and fromAsync (Array.fromAsync).
@socketsecurity/lib/promises/retry pRetry — exponential-backoff retry with optional jitter, abort-signal support, and an onRetry hook for customizing delays or canceling retries entirely.
@socketsecurity/lib/promises/types Public type surface for promises/* modules: RetryOptions, IterationOptions, and PromiseWithResolvers.

regexps/

Subpath Description
@socketsecurity/lib/regexps/escape Public escapeRegExp entry — binds to native RegExp.escape (TC39 Stage 4, Node 24+ / V8 13.7) when available, otherwise falls back to the spec-compliant implementation in ./spec.
@socketsecurity/lib/regexps/hex Hex-encoding helpers — fixed-width \xHH (hex2) and \uHHHH (hex4) producers used by the spec-compliant RegExp.escape fallback to emit canonical escape sequences.
@socketsecurity/lib/regexps/spec Spec-compliant fallback for the TC39 RegExp.escape (https://tc39.es/ecma262/#sec-regexp.escape).

releases/

Subpath Description
@socketsecurity/lib/releases/github-archives GitHub release archive download + extraction.
@socketsecurity/lib/releases/github-asset-url Per-release asset-URL discovery for GitHub releases.
@socketsecurity/lib/releases/github-assets Asset matching helpers for GitHub releases.
@socketsecurity/lib/releases/github-auth GitHub API authentication header helpers.
@socketsecurity/lib/releases/github-downloads GitHub release asset downloads.
@socketsecurity/lib/releases/github-listing GitHub release listing via REST + GraphQL.
@socketsecurity/lib/releases/github-types Public types for GitHub release download utilities.
@socketsecurity/lib/releases/socket-btm Socket-btm release download utilities.

schema/

Subpath Description
@socketsecurity/lib/schema/parse Throwing twin of validateSchema.
@socketsecurity/lib/schema/types Shared types for schema validation.
@socketsecurity/lib/schema/validate Universal schema validator — non-throwing.

sea/

Subpath Description
@socketsecurity/lib/sea/detect SEA (Single Executable Application) binary detection + path accessor.

shadow/

Subpath Description
@socketsecurity/lib/shadow/skip Shadow binary installation utilities for Socket ecosystem.
@socketsecurity/lib/shadow/types Public type surface for shadow/* modules — the ShadowInstallationOptions record.

signal-exit/

Subpath Description
@socketsecurity/lib/signal-exit/intercept Process-method interceptors — processEmit replaces process.emit and processReallyExit replaces process.reallyExit while load() is active.
@socketsecurity/lib/signal-exit/lifecycle load and unload — install and remove the signal-exit listeners.
@socketsecurity/lib/signal-exit/register onExit — register a callback for process exit / signal.
@socketsecurity/lib/signal-exit/signals signals() — list the signals this process is watching.
@socketsecurity/lib/signal-exit/types Public type surface for signal-exit/* modules — the OnExitOptions consumed by onExit, plus the shared internal types for the signal emitter, emitted-signal map, and listener map.

smol/

Subpath Description
@socketsecurity/lib/smol/detect Smol detection + lazy-loader for node:smol-util.
@socketsecurity/lib/smol/http Lazy-loader for socket-btm's node:smol-http.
@socketsecurity/lib/smol/https Lazy-loader for socket-btm's node:smol-https.
@socketsecurity/lib/smol/manifest Lazy-loader for socket-btm's node:smol-manifest.
@socketsecurity/lib/smol/primordial Lazy-loader for socket-btm's node:smol-primordial binding.
@socketsecurity/lib/smol/purl Lazy-loader for socket-btm's node:smol-purl binding.
@socketsecurity/lib/smol/versions Lazy-loader for socket-btm's node:smol-versions.
@socketsecurity/lib/smol/vfs Lazy-loader for socket-btm's node:smol-vfs.

sorts/

Subpath Description
@socketsecurity/lib/sorts/natural Locale-aware + numeric-aware comparison via Intl.Collator, plus the naturalSorter helper that wires the fast-sort engine to the natural comparator.
@socketsecurity/lib/sorts/semver Semver-aware string comparison.
@socketsecurity/lib/sorts/strings Plain string comparison.
@socketsecurity/lib/sorts/types Public type surface for sorts/* modules — the FastSortFunction shape returned by naturalSorter.

spawn/

Subpath Description
@socketsecurity/lib/spawn/errors Spawn error classification and enhancement.
@socketsecurity/lib/spawn/spawn Child process spawning utilities with cross-platform support.
@socketsecurity/lib/spawn/stdio Stdio configuration helpers for spawn callers.
@socketsecurity/lib/spawn/types Public type surface for spawn/* modules.

spinner/

Subpath Description
@socketsecurity/lib/spinner/format Stateless helpers shared by spinner/* modules — the ciSpinner constant for non-interactive output, the COLOR_INHERIT sentinel for shimmer color references, plus pure formatters (desc, formatProgress, `normal...
@socketsecurity/lib/spinner/registry Spinner-style registry — exposes the union of the standard cli-spinners collection and Socket's custom socket pulse animation, plus a lazy default-spinner singleton.
@socketsecurity/lib/spinner/spinner Spinner factory — builds the lazy-init Spinner class that wraps yocto-spinner with Socket-specific behaviors (custom RGB color pipeline, shimmer, progress bar, indented step messages, status methods that don't aut...
@socketsecurity/lib/spinner/types Public type surface for spinner/* modules — the Spinner instance shape, configuration option records, progress and shimmer state types, plus the withSpinner* option records.
@socketsecurity/lib/spinner/with Lifecycle wrappers around SpinnerwithSpinner (async, push-pop options + auto-stop), withSpinnerRestore (conditionally restart a previously-spinning instance), and withSpinnerSync (sync sibling of `withSpinn...

ssri/

Subpath Description
@socketsecurity/lib/ssri/convert SSRI ↔ hex digest conversion helpers — hexToSsri wraps a hex digest in <algorithm>-<base64> form, ssriToHex decodes the base64 half back to hex.
@socketsecurity/lib/ssri/parse SSRI parser — splits a <algorithm>-<base64hash> string into its component fields.
@socketsecurity/lib/ssri/validate SSRI/hex format validators — predicates that report whether a string looks like a hex digest or an SSRI integrity string.

stdio/

Subpath Description
@socketsecurity/lib/stdio/clear Terminal clearing and cursor utilities.
@socketsecurity/lib/stdio/divider Console divider and separator utilities.
@socketsecurity/lib/stdio/footer Console footer/summary formatting utilities.
@socketsecurity/lib/stdio/header Console header/banner formatting utilities.
@socketsecurity/lib/stdio/progress Progress bar utilities for CLI applications.
@socketsecurity/lib/stdio/prompts User prompt utilities for interactive scripts.
@socketsecurity/lib/stdio/stderr Standard error stream utilities.
@socketsecurity/lib/stdio/stdout Standard output stream utilities.

streams/

Subpath Description
@socketsecurity/lib/streams/parallel Parallel iteration helpers — parallelMap() and the fire-and-forget parallelEach().
@socketsecurity/lib/streams/transform Streaming transform helper — transform() wraps streaming-iterables.transform with the project's pRetry per-item retry policy.

strings/

Subpath Description
@socketsecurity/lib/strings/format Line formatting helpers: applyLinePrefix, centerText, indentString, repeatString.
@socketsecurity/lib/strings/predicates String predicates: isBlankString and isNonEmptyString.
@socketsecurity/lib/strings/search search — like String.prototype.search but with a configurable starting index.
@socketsecurity/lib/strings/transform String transformations: stripBom, toKebabCase, trimNewlines.
@socketsecurity/lib/strings/types Public type surface for strings/* modules — branded string types and option interfaces.
@socketsecurity/lib/strings/width stringWidth — calculate visual terminal width.

tables/

Subpath Description
@socketsecurity/lib/tables/bordered Bordered table renderer using Unicode box-drawing characters (, , , , …).
@socketsecurity/lib/tables/padding Cell padding + display-width measurement — shared helpers used by both the simple and bordered table renderers.
@socketsecurity/lib/tables/simple Borderless table renderer — columns separated by two spaces, header underlined with .
@socketsecurity/lib/tables/types Public type surface for tables/* modules — the ColumnAlignment union + TableColumn config record.

themes/

Subpath Description
@socketsecurity/lib/themes/context Elegant theme context management.
@socketsecurity/lib/themes/resolve Theme utilities — color resolution and composition.
@socketsecurity/lib/themes/themes Elegant theme definitions for Socket libraries.
@socketsecurity/lib/themes/types Elegant theme type system.

ttl-cache/

Subpath Description
@socketsecurity/lib/ttl-cache/cache createTtlCache — generic TTL-based cache built on top of cacache (persistent) plus an in-memory LRU memo layer.
@socketsecurity/lib/ttl-cache/types Public type surface for ttl-cache/* modules — the TtlCache interface (the seven-method API returned by createTtlCache), the TtlCacheEntry storage shape, and the TtlCacheOptions / ClearOptions configuration...

url/

| Subpath | Description | | ---------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- | --------------------------------------------------------------------------------------- | | @socketsecurity/lib/url/parse | URL parsing helpers — parseUrl (safe new URL(...) wrapper that returns undefined instead of throwing) and createRelativeUrl (compose a relative path against an optional base). | | @socketsecurity/lib/url/predicates | URL type-guard predicates — isUrl answers whether a value parses as a valid URL via parseUrl. | | @socketsecurity/lib/url/search-params | URL search-param coercion helpers — urlSearchParamAs* normalise a raw string | null | undefined value into a typed shape (array / boolean / number / string) with a default. | | @socketsecurity/lib/url/types | Public type surface for url/* modules — option interfaces consumed by createRelativeUrl, urlSearchParamAs*, and urlSearchParamsGet*. |

versions/

| Subpath | Description | | -------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ------- | -------------------------------------------------------------------------- | | @socketsecurity/lib/versions/compare | Version comparison operators aligned with node:smol-versions (the C++-accelerated multi-ecosystem version helper shipped by the smol Node binary). | | @socketsecurity/lib/versions/modify | Mutation helpers — incrementVersion bumps a version by release type ('major' | 'minor' | 'patch' | 'pre*'), and versionDiff returns the kind of step between two versions. | | @socketsecurity/lib/versions/parse | Parsing helpers — coerceVersion rounds a sloppy input ("1.2") up to a valid semver triple, parseVersion returns {major, minor, patch, prerelease, build}, and the getMajor* / getMinor* / getPatchVersion acc... | | @socketsecurity/lib/versions/range | Range / set helpers — satisfiesVersion / filterVersions check membership against a semver range, maxVersion / minVersion pick the bounds of an arbitrary version array. | | @socketsecurity/lib/versions/types | Public type surface for versions/* modules — the parsed-version shape returned by parseVersion (a stable subset of semver's SemVer instance, exposed as a structural type rather than leaking the upstream class). |

warnings/

Subpath Description
@socketsecurity/lib/warnings/event-target Bump the max-listener cap on an EventTarget (or AbortSignal).
@socketsecurity/lib/warnings/suppress process.emitWarning suppression.

words/

Subpath Description
@socketsecurity/lib/words/article Indefinite-article picker — determineArticle() returns 'a' or 'an' based on the leading vowel of a word.
@socketsecurity/lib/words/capitalize Word-case helpers — capitalize() produces an upper-first / lower-rest variant that iterates by code point so surrogate pairs aren't split.
@socketsecurity/lib/words/pluralize Simple count-based pluralization helper — appends a trailing 's' when the count is anything other than 1.
@socketsecurity/lib/words/types Public type surface for words/* modules — the PluralizeOptions record.