Skip to content

Commit 76dd39c

Browse files
committed
chore(release): v5.27.0
1 parent ea26864 commit 76dd39c

3 files changed

Lines changed: 41 additions & 17 deletions

File tree

CHANGELOG.md

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,31 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8-
## [5.26.0](https://github.com/SocketDev/socket-lib/releases/tag/v5.26.0) - 2026-04-27
8+
## [5.27.0](https://github.com/SocketDev/socket-lib/releases/tag/v5.27.0) - 2026-04-29
9+
10+
### Added
11+
12+
- `@socketsecurity/lib/effects/shimmer` — new pure-functional shimmer engine. `frameColors(spec, length, frame) → RGB[]` is the load-bearing primitive. Built-in kernels (`blockKernel`, `smoothKernel`), sweep generators (`ltrSweep`, `rtlSweep`, `biSweep`, `randomSweep`, `noSweep`), and palette helpers (`constant`, `gradient`, `blendRGB`) compose into a `ShimmerSpec`. `configToSpec()` translates the user-facing flat `ShimmerConfig` into a spec for callers that don't need full control. Zero deps, no mutable state — same `(spec, length, frame)` always produces the same output
13+
- `@socketsecurity/lib/effects/shimmer-terminal` — terminal renderer. `colorsToAnsi(text, colors)` wraps each char in 24-bit truecolor ANSI escapes; `renderFrame(spec, text, frame)` is a one-call convenience over `frameColors` + `colorsToAnsi`
14+
- `@socketsecurity/lib/effects/shimmer-keyframes` — SVG keyframe batcher. `toKeyframes(spec, length, frames)` pre-renders N frames into per-character SMIL-ready `keyTimes`/`values` arrays with consecutive-duplicate dedup and a clean `t=1` loop closure. Drop straight into `<animate keyTimes={...} values={...} calcMode="discrete">`. Replaces the bespoke generator code that lived in `ultrathink/assets/.gen-logo.mjs`
15+
- `feat(prim): AI-deferred disambiguator + programmatic-Claude lockdown` (commit fc64033) — see commit body
16+
- `chore(deps): bump pnpm 11.0.0-rc.5 → 11.0.0 (GA)` (commit 554d35a)
17+
18+
### Changed
19+
20+
- **BREAKING**: `@socketsecurity/lib/spinner` `ShimmerInfo` shape changed. The runtime state object exposed via `Spinner.shimmerState` now uses `direction: ShimmerDirection`, `speed: number`, `frame: number` (was: `currentDir`, `mode`, `speed`, `step`). The user-facing `ShimmerConfig` shape (`{ color, dir, speed }`) is unchanged — callers that only construct configs and read back state via getters do not need to migrate; callers that introspect `shimmerState.mode` or `shimmerState.step` do
21+
- `@socketsecurity/lib/spinner` shimmer rendering — internals now drive the new `frameColors` + `colorsToAnsi` pipeline. Behavior at the spinner level is preserved (LTR sweep at `speed: 1/3` is the same wave the previous library produced); the rewrite removes 350+ LOC of mutable state, regex-based ANSI style detection, and CI/theme-resolution branching from `effects/text-shimmer.ts`
22+
- `refactor(github): adopt DateParse + ErrorCtor primordials throughout` (commit 7bb2d03)
23+
- `fix(github): adopt DateCtor + vendor fixed acorn-wasm` (commit ec2d3d4)
24+
- `refactor(github): tighten error messages + remove quiet option` (commit b6d3713)
25+
26+
### Removed
27+
28+
- **BREAKING**: `@socketsecurity/lib/effects/text-shimmer` subpath export — file deleted. Public surface (`applyShimmer`, `ShimmerColor`, `ShimmerColorRgb`, `ShimmerColorGradient`, `ShimmerColorInherit`, `ShimmerConfig` legacy shape, `ShimmerState`, `DIR_LTR`/`DIR_RTL`/`DIR_RANDOM`/`DIR_NONE`/`MODE_BI`/`COLOR_INHERIT` constants) is gone. Migrate to `@socketsecurity/lib/effects/shimmer``applyShimmer(text, state, opts)` becomes `colorsToAnsi(text, frameColors(spec, length, frame))` where `spec` comes from `configToSpec({ color, dir, speed }, length)`
29+
- **BREAKING**: `@socketsecurity/lib/effects/ultra` subpath export — file deleted. `RAINBOW_GRADIENT` moved to `@socketsecurity/lib/themes/utils` (now typed `Palette` from the new shimmer engine). `generateRainbowGradient(n)` removed — use `Array.from({ length: n }, gradient(RAINBOW_GRADIENT))` instead, or pass `RAINBOW_GRADIENT` directly to `ShimmerConfig.color` and let the engine handle wrap-around
30+
- **BREAKING**: `@socketsecurity/lib/effects/types` subpath export — file deleted. The shared types (`ShimmerColor*`, `ShimmerDirection`, `ShimmerConfig`, `ShimmerState`) lived only there and have been replaced by types in `effects/shimmer.ts` (`RGB`, `Palette`, `ShimmerDirection`, `ShimmerConfig`, `ShimmerSpec`, `Kernel`, `KernelContext`)
31+
32+
933

1034
### Added
1135

docs/api-index.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -116,12 +116,12 @@ Each entry links to the source module and shows the first sentence of its `@file
116116

117117
## effects/
118118

119-
| Subpath | Description |
120-
| ---------------------------------------------------------------------------- | ------------------------------------------------------- |
121-
| [`@socketsecurity/lib/effects/pulse-frames`](../src/effects/pulse-frames.ts) | Socket pulse animation frames generator. |
122-
| [`@socketsecurity/lib/effects/text-shimmer`](../src/effects/text-shimmer.ts) | Text shimmer animation utilities. |
123-
| [`@socketsecurity/lib/effects/types`](../src/effects/types.ts) | Shared types for effects (shimmer, pulse, ultra, etc.). |
124-
| [`@socketsecurity/lib/effects/ultra`](../src/effects/ultra.ts) | Ultrathink rainbow gradient effect. |
119+
| Subpath | Description |
120+
| -------------------------------------------------------------------------------------- | ----------------------------------------------------- |
121+
| [`@socketsecurity/lib/effects/pulse-frames`](../src/effects/pulse-frames.ts) | Socket pulse animation frames generator. |
122+
| [`@socketsecurity/lib/effects/shimmer`](../src/effects/shimmer.ts) | Shimmer animation engine — pure functions, zero deps. |
123+
| [`@socketsecurity/lib/effects/shimmer-keyframes`](../src/effects/shimmer-keyframes.ts) | SVG keyframe batcher for the shimmer engine. |
124+
| [`@socketsecurity/lib/effects/shimmer-terminal`](../src/effects/shimmer-terminal.ts) | Terminal renderer for the shimmer engine. |
125125

126126
## env/
127127

package.json

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@socketsecurity/lib",
3-
"version": "5.26.0",
3+
"version": "5.27.0",
44
"packageManager": "pnpm@11.0.0",
55
"license": "MIT",
66
"description": "Core utilities and infrastructure for Socket.dev security tools",
@@ -271,17 +271,17 @@
271271
"types": "./dist/effects/pulse-frames.d.ts",
272272
"default": "./dist/effects/pulse-frames.js"
273273
},
274-
"./effects/text-shimmer": {
275-
"types": "./dist/effects/text-shimmer.d.ts",
276-
"default": "./dist/effects/text-shimmer.js"
274+
"./effects/shimmer": {
275+
"types": "./dist/effects/shimmer.d.ts",
276+
"default": "./dist/effects/shimmer.js"
277277
},
278-
"./effects/types": {
279-
"types": "./dist/effects/types.d.ts",
280-
"default": "./dist/effects/types.js"
278+
"./effects/shimmer-keyframes": {
279+
"types": "./dist/effects/shimmer-keyframes.d.ts",
280+
"default": "./dist/effects/shimmer-keyframes.js"
281281
},
282-
"./effects/ultra": {
283-
"types": "./dist/effects/ultra.d.ts",
284-
"default": "./dist/effects/ultra.js"
282+
"./effects/shimmer-terminal": {
283+
"types": "./dist/effects/shimmer-terminal.d.ts",
284+
"default": "./dist/effects/shimmer-terminal.js"
285285
},
286286
"./env": {
287287
"types": "./dist/env.d.ts",

0 commit comments

Comments
 (0)