4.0.0 (2026-08-17)
- refactor!: delete the ./sets and ./interval modules (#229) (16fb33e), closes #224
- refactor!: drop the exports that only wrapped a built-in (#230) (1e243ef)
- refactor(mime-types)!: drop the unused compressible field (#228) (5b20c23), closes #222
Bug Fixes
- ci: redeploy the docs from main after a release, not from the tag (#216) (cbfbf57), closes #213
- release: stop failing the release over courtesy comments (#217) (c2e1a12), closes #215
BREAKING CHANGES
-
twenty-two exports are gone. Two are not drop-in swaps: Object.groupBy returns a null-prototype object whose values are optional (byTeam.red is T[] | undefined, and hasOwnProperty throws), and structuredClone preserves Dates and Maps where deepCloneJson's JSON round trip flattened them. Both are covered in the migration guide.
-
the ./sets and ./interval subpaths no longer exist.
union(a, b) -> a.union(b) intersection(a, b) -> a.intersection(b) difference(a, b) -> a.difference(b) isSubset(a, b) -> a.isSubsetOf(b) isSuperset(a, b) -> a.isSupersetOf(b) setToArray(set) -> [...set] arrayToSet(arr) -> new Set(arr) runInterval(fn, ms) -> setInterval(fn, ms) clearIntervalById(id) -> clearInterval(id)
-
entries in the exported
mimeTypesrecord no longer carry acompressibleproperty, and it is gone from theMimeValuetype. Code readingmimeTypes[type].compressiblemust source that flag elsewhere — themime-dbpackage still publishes it.
3.0.0 (2026-08-17)
- feat(modules)!: give every helper exactly one home (#184) (2414838), closes #174 #174
- feat(security)!: rename sanitizeString to stripScriptish (#209) (69deda5), closes #11 #1 #4 #5 #201 #197 #201 #201
Bug Fixes
- cli: print importable export names from
add(#200) (b8d572d) - cli: stop advertising six commands that were never registered (#210) (471e7ad)
- docs: render code blocks on a light surface in light mode (#143) (802c34b), closes #126
- logger: tolerate missing pino-pretty (#114) (bab0b03), closes #73
- make the ReDoS-flagged regexes linear-time (#197) (2d5c044), closes hi#severity #190 ai-190-codeql-hi#alerts
- release: build the changelog from GitHub Releases, not a frozen file (#213) (92c5012), closes #153 #211
- tooling: re-stage formatted files and relax body line length (#155) (3deb2c5)
- types: return the wrapper type from debounce/throttle and type to()'s error slot as unknown (#149) (fc4692d), closes #144
Features
BREAKING CHANGES
sanitizeStringis renamed tostripScriptish. It also strips unquotedon*=handlers, closes</script >, and no longer leaves a space where an attribute was removed. Renaming the import is not a security fix — usehtml.escapeHtmlor DOMPurify for untrusted input../formattingand./mathare removed. Where two modules exported the same name, only the owner keeps it:roundTo(numbers, gone from currency),randomString(random, gone from strings),sanitizeString(security, gone from strings),escapeHtmlandunescapeHtml(html, gone from strings),pluralize(strings, gone from i18n),secondsBetween(time, gone from datetime),isBoolean(validation, gone from boolean), andgetProcessUptime(process, gone from node).events.onceis renamedonceEvent;numbers.getRandomIntandgetRandomFloatarerandom.randomIntandrandomFloat;strings.stripHtmlishtml.stripHtmlTags;formatting.formatPercentis nownumbers.formatPercent. Note thatformatting.formatDatewas local time whiledate.formatDateis UTC.- types:
debounceandthrottleno longer claim to return the wrapped function's return type. Code reading a debounced or throttled call's return value now fails to compile — that code was already gettingundefinedat runtime.to()'s error slot isunknowninstead ofany, so call sites doingerr.messagedirectly must narrow first (err instanceof Error ? err.message : String(err)).
2.8.2 (2026-07-23)
Bug Fixes
2.8.1 (2026-06-12)
Bug Fixes
2.8.0 (2026-06-12)
Features
2.7.0 (2026-06-12)
Features
2.6.0 (2026-06-11)
Features
2.5.0 (2026-06-11)
Features
2.4.0 (2026-06-11)
Features
2.3.0 (2026-06-11)
Features
2.2.0 (2026-06-11)
Features
- docs: search, changelog page, CI guardrail (fd95637)
2.1.0 (2026-06-11)
Features
- docs: full API reference via TypeDoc (337eb2c)
2.0.1 (2026-06-10)
Bug Fixes
- build: ship .d.ts files in published tarball (946cd8a)
2.0.0 (2026-06-01)
Bug Fixes
BREAKING CHANGES
tryCatchfrom@rtorcato/js-common/errorsis renamed totryWithFallback. For Result-pattern error handling, importtryCatchfrom@rtorcato/js-common/tryinstead.
1.8.1 (2026-05-29)
Bug Fixes
- deps: move CLI deps to optionalDependencies (52d1e9f)
- publishing bugs and dead-code cleanup (30b8d69)
1.8.0 (2026-05-29)
Features
- docs: Astro Starlight site on GitHub Pages (5139f6d)
1.7.1 (2026-05-29)
Bug Fixes
- deps: migrate to short-uuid v6 and inquirer v13 (#38) (cceae68)
- resolve bugs, remove duplicates, and add missing utilities (43dfc85)
1.7.0 (2026-01-16)
Features
- strings: add 12 new string utility functions (03df6fc)
1.6.0 (2026-01-16)
Bug Fixes
Features
- uuid: add v7, version detection, and short UUID conversion (d304168)
1.5.0 (2026-01-16)
Features
- currency: add lazy loading and new features (e9369a8)
1.4.2 (2026-01-16)
Bug Fixes
- update benchmark imports to use correct module paths (0713f23)
1.4.1 (2026-01-16)
Bug Fixes
- add build step to performance benchmarks job (e3a9020)
- add vitest coverage-istanbul dependency (498b6fb)
1.3.1 (2025-10-24)
Bug Fixes
- Correct import paths in CLI for proper TypeScript compilation (24221d5)
1.3.0 (2025-10-24)
Features
- Add modern interactive CLI with developer integration (8ffb144)
1.2.0 (2025-10-24)
Bug Fixes
- remove commitlint dependency from release job (dbf2795)
Features
- modernize CI/CD workflow with js-tooling structure (a46b6bf)
Every entry above is generated by semantic-release and published to GitHub Releases. Versions before v1.2.0 predate those releases and are recorded in CHANGELOG.md.