@socketsecurity/lib
Version:
Core utilities and infrastructure for Socket.dev security tools
279 lines (208 loc) โข 8.58 kB
Markdown
[](https://socket.dev/npm/package/@socketsecurity/lib)
[](https://github.com/SocketDev/socket-lib/actions/workflows/ci.yml)
[](https://twitter.com/SocketSecurity)
**Core infrastructure library for Socket.dev security tools** โ utilities, constants, and helpers with zero dependencies.
```bash
pnpm add @socketsecurity/lib
```
```typescript
// Import what you need - tree-shakeable exports
import { Spinner } from '@socketsecurity/lib/spinner'
import { readJsonFile } from '@socketsecurity/lib/fs'
import { NODE_MODULES } from '@socketsecurity/lib/constants/packages'
const spinner = Spinner({ text: 'Loading...' })
spinner.start()
const pkg = await readJsonFile('./package.json')
spinner.stop()
```
```
@socketsecurity/lib
โโโ Visual Effects โ Spinners, shimmer, themes, logger
โโโ File System โ fs, paths, globs, temp files
โโโ Package Management โ npm, pnpm, yarn utilities
โโโ Process & Spawn โ Safe process spawning, IPC
โโโ Environment โ 68 typed env getters (CI, paths, etc)
โโโ Constants โ Node.js, npm, platform constants
โโโ Utilities โ Arrays, objects, strings, promises
โโโ Types โ Full TypeScript definitions
```
## ๐ก Key Features
### Visual Effects
**Themed spinners and text effects:**
```typescript
import { Spinner, setTheme } from '@socketsecurity/lib'
setTheme('ultra') // ๐ Rainbow mode!
const spinner = Spinner({ text: 'Processing...' })
spinner.enableShimmer()
spinner.start()
```
**5 Built-in Themes:** `socket` (purple) ยท `coana` ยท `socket-firewall` ยท `socket-cli-python` ยท `ultra` (rainbow)
๐ [**Theme System Docs**](./docs/themes.md)
**Safe, typed file operations:**
```typescript
import { readJsonFile, writeJsonFile } from '@socketsecurity/lib/fs'
const pkg = await readJsonFile<PackageJson>('./package.json')
await writeJsonFile('./output.json', { data: pkg })
```
**Parse and validate package specs:**
```typescript
import { parsePackageSpec } from '@socketsecurity/lib/packages'
const spec = parsePackageSpec('lodash@^4.17.0')
// { name: 'lodash', version: '^4.17.0', type: 'range', ... }
```
**68 typed environment getters:**
```typescript
import { getCI } from '@socketsecurity/lib/env/ci'
import { getHome } from '@socketsecurity/lib/env/home'
import { getNodeEnv } from '@socketsecurity/lib/env/node-env'
if (getCI()) {
console.log('Running in CI')
}
```
**Access platform and Node.js constants:**
```typescript
import {
NODE_MODULES,
PACKAGE_JSON,
NPM_REGISTRY_URL,
} from '@socketsecurity/lib/constants/packages'
import { DARWIN, WIN32 } from '@socketsecurity/lib/constants/platform'
```
```typescript
import { withSpinner, Spinner } from '@socketsecurity/lib/spinner'
await withSpinner({
message: 'Installing packages...',
spinner: Spinner({ color: [140, 82, 255] }),
operation: async () => {
await installPackages()
}
})
```
```typescript
import { spawn } from '@socketsecurity/lib/spawn'
const result = await spawn('npm', ['install'], {
cwd: '/path/to/project',
timeout: 30000
})
```
```typescript
import { readJsonFile, writeJsonFile } from '@socketsecurity/lib/fs'
const data = await readJsonFile('./config.json')
data.version = '2.0.0'
await writeJsonFile('./config.json', data)
```
```typescript
import { timeout, retry } from '@socketsecurity/lib/promises'
// Timeout after 5 seconds
const result = await timeout(fetchData(), 5000)
// Retry up to 3 times
const data = await retry(() => fetchData(), { maxAttempts: 3 })
```
**120+ granular exports** organized by category:
```
/constants/ โ Node.js, npm, platform constants
โโ packages โ PACKAGE_JSON, NODE_MODULES, etc.
โโ platform โ DARWIN, WIN32, S_IXUSR, etc.
โโ node โ NODE_VERSION, NODE_PATH, etc.
โโ time โ MILLISECONDS_PER_*, DLX_BINARY_CACHE_TTL
โโ encoding โ UTF8, CHAR_* codes
/env/ โ 68 typed environment getters
โโ ci โ getCI() - Detect CI environment
โโ home โ getHome() - User home directory
โโ node-env โ getNodeEnv() - NODE_ENV value
โโ ... โ And 65 more!
/packages/ โ Package management utilities
โโ validation โ Package name/version validation
โโ operations โ Install, extract, manifest
โโ registry โ npm registry utilities
โโ editable โ Editable installs detection
/effects/ โ Visual effects for CLI
โโ text-shimmer โ Animated gradient text
โโ pulse-frames โ Pulsing text effect
โโ ultra โ Rainbow gradients
/stdio/ โ Terminal I/O utilities
โโ stdout โ Safe stdout operations
โโ stderr โ Safe stderr operations
โโ clear โ Clear terminal
โโ footer โ Terminal footers
/themes/ โ Theme system for consistent branding
โโ types โ Theme type definitions
โโ themes โ 5 built-in themes
โโ context โ Global theme management
โโ utils โ Color resolution, theme creation
```
| Doc | Description |
|-----|-------------|
| [**Getting Started**](./docs/getting-started.md) | Development workflow, commands, architecture |
| [**Theme System**](./docs/themes.md) | Themed spinners, colors, and effects |
| [**Build Architecture**](./docs/build.md) | Vendored dependencies, build system |
| [**CLAUDE.md**](./CLAUDE.md) | Coding standards and patterns |
```
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ @socketsecurity/lib โ
โ Zero runtime dependencies โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ src/ โ
โ โโโ constants/ 14 modules โ
โ โโโ env/ 68 getters โ
โ โโโ packages/ 12 utilities โ
โ โโโ effects/ 4 visual effects โ
โ โโโ stdio/ 9 I/O utilities โ
โ โโโ themes/ Theme system โ
โ โโโ external/ 40+ vendored deps โ
โ โโโ ... 60+ more modules โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Build: esbuild โ CommonJS (ES2022) โ
โ Types: tsgo (TypeScript Native Preview) โ
โ Tests: Vitest (4600+ tests, 100% coverage) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
```
```bash
git clone https://github.com/SocketDev/socket-lib.git
cd socket-lib
pnpm install
pnpm run build
pnpm run dev
pnpm test
pnpm run cover
pnpm run check
pnpm run lint
pnpm run fix
```
- **183** TypeScript modules
- **120+** granular exports
- **68** typed environment getters
- **14** constant modules
- **4600+** tests passing
- **Zero** runtime dependencies
See [CLAUDE.md](./CLAUDE.md) for:
- Code style and patterns
- Path alias usage
- Testing guidelines
- Build system details
MIT
---
**Built by Socket.dev** โ [socket.dev](https://socket.dev) | [@SocketSecurity](https://twitter.com/SocketSecurity)