npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@saeeol/boxes

v0.2.0

Published

31 zero-dep utility atoms used by Saeeol CLI

Readme

boxes/ — Zero-Dep Utility Atom Library

복사-붙여넣기로 바로 쓰는 88개 독립 원자 모듈 각 파일은 단일 책임, 최소 의존, 테스트 통과

의존성 분류

| 분류 | 의존 | 파일 수 | |---|---|---| | 순수 TS | 0 (아무것도 없음) | 77 | | Node 빌트인 | crypto, path, fs/promises, os, async_hooks | 8 | | 박스 내부 | 다른 boxes 파일 참조 | 3 |

원자 목록 (가나다/ABC 순)

순수 TS — 외부 의존 0

| 파일 | 라인 | 설명 | 출처 | |---|---|---|---| | a2a-task.ts | 49 | A2A 에이전트 태스크 수명주기 상태머신 | A2A Spec | | accessor.ts | 38 | getter/setter 바인딩 (prop, field, ref) | huh | | ansi.ts | 17 | ANSI 컬러 코드 | lipgloss | | bash-security.ts | 129 | 23항목 셸 보안 검사 | Claude Code | | binary-frame.ts | 79 | 길이 프리픽스 바이너리 프레이밍 | superset | | bisect.ts | 33 | 이분 탐색 + 삽입 | — | | bits.ts | 75 | 32비트 불변 비트마스크 | lipgloss | | bom.ts | 18 | BOM 감지/제거 | — | | call.ts | 3 | 함수 호출 래퍼 | — | | cancel.ts | 16 | 취소 토큰 | — | | channel.ts | 31 | 이벤트 채널 | — | | chop.ts | 12 | 문자열 자르기 (앞/중간) | — | | circuit-breaker.ts | 74 | 연속 실패 자동 차단 + 회복 | superset | | clamp.ts | 3 | 값 범위 제한 | — | | cleanup.ts | 6 | 레지스트리 정리 패턴 | — | | clock.ts | 17 | 시간 포맷 (오늘/전체) | — | | compact.ts | 5 | 배열에서 falsy 제거 | — | | context-rank.ts | 64 | TF-IDF 코사인 유사도 컨텍스트 랭킹 | Continue.dev | | cost-tracker.ts | 116 | 토큰/비용 세션 추적 | Claude Code | | dag.ts | 52 | 위상 정렬 + 병렬 DAG 실행 | n8n | | dataurl.ts | 14 | data: URL 디코더 | — | | deadline.ts | 67 | 일시정지/재개/연장 가능한 타이머 | gemini-cli | | debounce.ts | 20 | 디바운스 | — | | delay.ts | 27 | Abort-aware setTimeout | gemini-cli | | diff-apply.ts | 53 | Unified diff 파서 + 적용 | Continue.dev | | diff-split.ts | 49 | Diff 훈크 분할 | — | | disposable.ts | 13 | Disposable 패턴 | — | | dur.ts | 15 | 시간 포맷팅 | — | | err.ts | 26 | 구조화 에러 | — | | esc-html.ts | 6 | HTML 특수문자 이스케이프 | — | | esc-re.ts | 3 | 정규식 특수문자 이스케이프 | — | | fmt.ts | 15 | 숫자/문자열 포맷 | — | | frontmatter.ts | 33 | YAML frontmatter 파서 | — | | gate.ts | 13 | N회 통과 게이트 | — | | gen-name.ts | 20 | 가독명 생성기 | — | | hook-stream.ts | 60 | 스트림 인터셉션 | ora | | human.ts | 46 | 사람 친화적 포맷 | — | | is-plain.ts | 3 | plain object 판별 | — | | json-rpc.ts | 58 | JSON-RPC 2.0 타입 + 라인 프레이머 | MCP SDK | | latch.ts | 8 | 원샷 불리언 래치 | — | | memo.ts | 15 | 메모이제이션 | — | | merge.ts | 28 | 딥 머지 | — | | mime.ts | 20 | MIME 타입 추론 | — | | net.ts | 16 | 네트워크 유틸 | — | | parse-cmd.ts | 20 | CLI 명령어 파서 | — | | parse-ref.ts | 45 | 참조 파서 (href↔path) | — | | path-parts.ts | 27 | 경로 분해 유틸 | — | | plural.ts | 4 | 영어 복수형 변환 | — | | proxy.ts | 32 | 프록시 핸들러 | — | | puny.ts | 21 | 퓨니코드 정규화 | — | | race.ts | 9 | Promise 경주 (allSettled) | — | | redact.ts | 17 | 민감정보 마스킹 | — | | redactor.ts | 35 | API 키/토큰 패턴 마스킹 + 터미널 새니타이즈 | abtop | | render.ts | 43 | 전략 패턴 렌더러 | listr2 | | resolvable.ts | 35 | T | Promise<T> | (() => T) 통합 | citty | | result-chain.ts | 35 | Result 타입 (map/flatMap/recover/zip) | Effect-TS | | retry.ts | 47 | 지수 백오프 재시도 | — | | rfind.ts | 8 | 역방향 배열 검색 | — | | rpc.ts | 47 | Worker RPC 메시지 | — | | rwlock.ts | 41 | 읽기-쓰기 락 | — | | safe-json.ts | 22 | 순환 참조 안전 JSON + $ 이스케이프 | gemini-cli | | sanitize.ts | 12 | 경로 새니타이즈 | — | | schedule.ts | 56 | 지수/피보나치 백오프 + retryWith | Effect-TS | | sparkline.ts | 67 | 유니코드 점자 스파크라인 + 멀티로우 그래프 | abtop | | tab-complete.ts | 46 | 퍼지 매칭 + 랭킹 자동완성 | Continue.dev | | tally.ts | 38 | 빈도수 카운터 | — | | throttle.ts | 31 | 쓰로틀 | — | | thunk.ts | 10 | 지연 평가 썽크 | — | | title.ts | 3 | Title Case 변환 | — | | token-est.ts | 46 | 문자 기반 토큰 추정 + 모델별 컨텍스트 윈도우 | gemini-cli | | tokens.ts | 9 | 토큰 수 추정 | — | | toolbox.ts | 38 | DI 컨테이너 (lazy provider) | gluegun | | trigger.ts | 59 | cron 변환 + 인터벌/크론 트리거 | n8n | | ttl-cache.ts | 63 | TTL 캐시 (Map/WeakMap) | gemini-cli | | typed-event.ts | 44 | 타입드 이벤트 버스 (pub/sub) | superset | | uid.ts | 47 | UUID v4 (3-tier) | — | | wildcard.ts | 58 | 글로브 패턴 매칭 | — |

Node 빌트인 의존

| 파일 | 라인 | 의존 | 설명 | 출처 | |---|---|---|---|---| | abort.ts | 17 | async_hooks | AsyncLocalStorage abort 전파 | — | | atomic-write.ts | 22 | fs/promises, path | tmp→rename 원자적 파일 쓰기 | abtop | | b64.ts | 52 | crypto | base64url + FNV-1a | — | | entry.ts | 18 | path | 파일 엔트리 분석 | — | | memory.ts | 198 | os, path, fs/promises | 파일 기반 영속 메모리 | Claude Code | | scan.ts | 48 | fs/promises, path | 디렉토리 .md 스캐너 | — | | scope.ts | 21 | async_hooks | AsyncLocalStorage 스코프 | — | | sha.ts | 5 | crypto | SHA-1 해시 | — | | store.ts | 32 | fs/promises, path | JSON 파일 스토어 | — |

박스 내부 참조

| 파일 | 참조 대상 | |---|---| | retry.ts | ./schedule | | risk.ts | ./parse-cmd | | scan.ts | ./frontmatter |

테스트

| 파일 | 테스트 수 | 대상 | |---|---|---| | atoms.test.ts | 37 | Wave 1-2 원자 | | wave3.test.ts | 42 | Wave 3 원자 | | wave4.test.ts | 85 | Wave 4 원자 | | wave5.test.ts | 35 | Wave 5 아키텍처 패턴 | | wave6.test.ts | 39 | Claude Code 포팅 3종 | | wave7.test.ts | 35 | gemini-cli + abtop + superset | | wave8.test.ts | 39 | n8n + MCP + A2A + Effect-TS | | wave9.test.ts | 18 | Continue.dev 편집 패턴 | | independence.test.ts | 89 | 전체 원자 독립 로드 검증 |

bun test

사용법

// 단일 파일 복사
cp boxes/clamp.ts src/utils/clamp.ts

// 또는 npm으로 설치
npm install @saeeol/boxes

// import
import { clamp } from "@saeeol/boxes/clamp"
import { validate } from "@saeeol/boxes/bash-security"
import { rankContext } from "@saeeol/boxes/context-rank"

통계

| 지표 | 수치 | |---|---| | 원자 파일 | 88 | | 총 라인 | 3,102 | | 평균 라인/파일 | 35 | | 순수 TS (의존 0) | 78개 (89%) | | 테스트 | 416 pass / 0 fail | | 테스트 파일 | 9 | | 독립성 검증 | 88 atoms / 0 순환 | | 분석 오픈소스 | 10개 저장소 |

Wave 히스토리

| Wave | 원자 수 | 출처 | |---|---|---| | 1-2 | 32 | fabulist 코드베이스 추출 | | 3 | 10 | 추가 유틸리티 추출 | | 4 | 28 | 순수 함수/인코딩/비동기 | | 5 | 6 | 아키텍처 패턴 (toolbox, render, accessor 등) | | 6 | 3 | Claude Code 포팅 (cost-tracker, bash-security, memory) | | 7 | 12 | gemini-cli + abtop + superset | | 8 | 6 | n8n + MCP SDK + A2A + Effect-TS | | 9 | 3 | Continue.dev (diff-apply, tab-complete, context-rank) |