- bump node@24.14 (fbefe82)
- feat: add
lru_map.tswithLruMap(3671f15)
- feat: rework deps interfaces (#76)
- feat: add
assert_propertytest helper (#78) - feat: kind-based discriminators on
SpawnResultandSpawnDetachedResult(breaking: replaces sentinel-null fields; removesspawn_result_is_*type guards) (#77)
- fix:
deep_equalforError(cede27a)
- fix: change
PackageJsonversionto be optional (47cb39d)
- feat: add
testing.ts(#75)
- feat: improve benchmark stats and reliability (#74)
- rename
taglinefrommotto(8906cac)
- use
Object.hasOwninstead ofinfor own-property checks indeep_equal(38fd976)
- add
Blake3Hashschema (b3b33ee)
- feat: add more zod helpers (a86bab6)
- add
from_hex,hash_sha1,hash_sha384, andhash_sha512(d16f560)
- unexport
masherfromrandom_alea.ts(06d675b) - rename
RandomAleafromAlea(06d675b) - switch to blake3 hashing (#73)
- add
hash_blake3, sync BLAKE3 via optional peer dep@fuzdev/blake3_wasm - rename
hash_sha256fromhash_secureand remove the custom algorithm param - add
hex.tswithto_hex - add
bytes.tswithto_bytes
- add
- feat: add
zod.ts(459313d)
- change args order of async helpers and add cancellation (#72)
- improve
source_json.ts(#71)
- fix: skip import type declarations in
resolve_component_names(87f4287)
handle_preprocess_error: preserve error cause chain, simplifyformat_named_specifierstype (e6c5b82)
- add
try_extract_conditionaltosvelte_preprocess_helpers.ts(0a966ec)
- improve
has_identifier_in_treeskip behavior (74f5025)
- add
build_static_bindingsand support it fromevaluate_static_expr(3aeb47c)
- rename
string_is_binaryfromis_binary(#69)
- add
svelte_preprocess_helpers.ts(#69)
- add
hash.ts(#68)
- add
spawn_detached(129b37e)
- parameterize
spawn_child_processtoProcessRegistry#spawn(efa8eb0)
- add
args.ts(#66)
- improve
process.tsinterfaces (de7a07e)
-
refactor process spawning with
ProcessRegistryclass and improved APIs (#65)breaking changes:
- remove
global_spawn- usedefault_registry.processesinstead - remove
register_global_spawn-ProcessRegistry.spawn()handles registration automatically - rename
attach_process_error_handlerstoattach_process_error_handler(singular) - rename
RestartableProcess.runningtoactive(reflects handle state, not OS process state) spawn_outreturns''for empty output instead ofnull(null only for spawn failures)
new features:
- add
ProcessRegistryclass for testable, isolated process groups - add
SpawnProcessOptionswithsignal(AbortSignal) andtimeout_ms - add
DespawnOptionswithsignalandtimeout_ms(SIGKILL escalation) - add type guards:
spawn_result_is_error,spawn_result_is_signaled,spawn_result_is_exited - add
active,child,closed, andspawnedgetters toRestartableProcessspawnedpromise resolves when initial spawn completes (avoids race conditions)- concurrent
restart()andkill()calls are coalesced
spawn_restartable_processnow acceptsSpawnProcessOptionsinstead ofSpawnOptionsattach_process_error_handlernow takes options object instead of positional argsattach_error_handlerthrows if called twice on same registry (was silent no-op)attach_error_handleracceptsgraceful_timeout_msoption for SIGTERM before SIGKILL
improvements:
- fix race condition between concurrent
kill()andrestart()calls process_is_pid_runningrejects fractional PIDsspawn_outexplicitly cleans up stream listeners- improve JSDoc with usage examples throughout
- remove
- add
each_concurrent(#64)
- add
levenshtein_distance(258c441)
- change
library.jsonproperty order (af50855)
- add baseline to benchmark helpers and improve grouping (2550d9e)
- add
process_is_pid_runningtoprocess.ts(f1ee638)
- rework and clean up some APIs (57842f0)
- move to fuzdev and rename to fuz_util from belt (8d4e5a0)
- add
fs_search(#59)
- change
map_concurrent_settledto returnPromiseSettledResult(8061202) - make
concurrencyrequired formap_concurrentandmap_concurrent_settled(8061202)
- add
map_concurrentandmap_concurrent_settled(ec8abaf)
- make
optionaloptional (72146e7)
- rework
library_json.tsandsource_json.ts(a87a166)
- rename
PascalCasefromUpper_Snake_Case(lol) (#58)
- improve
fs_empty_dirinternals (8f4cb8d)
- add
fs.tswithfs_existsandfs_empty_dir(#56)
- revert internal paths to
.js(#54)
- switch to ts imports (#48)
- simplify logging (#51)
- add
deep_equal.ts(#50)
-
- rename
json_type_offromto_json_type(4feefaf) - rename
json_embedfromembed_json - rename
json_stringify_deterministicfromto_deterministic_json - replace
canonicalizewithjson_stringify_deterministic
- rename
- fix path module to not require node (#47)
- default logging to info in production (ebdd641)
- upstream helpers for
path.tsandgit.ts(#46)
- change
reset_regexpto return the regexp instead of void (48f1324)
- rename
configure_print_colorsfromset_colors(70503d9)
- add
reset_regexp(f6514a7)
- change default
print_number_with_separatorsseparator to,from_(#43) - remove info log labels and loosen log label types (#43)
- handle arrays in
print_value(#43)
- add optional zod peer dep (#42)
- add modules package_json.ts, pkg.ts, and src_json.ts (#42)
- add
optionsarg toResultErrorandUnreachableErrorctors (34723fe)
- add
stringifyhelper (588732b)
- improve
unreachabletype to assertnever(d6a81c7)
- upgrade esm-env@1.2.2 (#40)
- rename
ThunkfromLazyandunthunkfromlazy(5e36e11)
- add
ClassConstructortotypes.ts(dc8f0b9)
- change
is_editableto match all inputs except hidden ones (4889274)
- add
is_interactive(4889274)
- disable colors by default for better runtime compat - (1972e95)
call
set_colors(styleText)fromprint.ts, in Nodeimport {styleText} from 'node:util';
- add
strip_ansistring util (ffb7587)
- export
stfromprint.ts(95fe446)
- tweak logging outputs (d292845)
- change the debug char (6876ebc)
- improve log symbols and consistency (28371a1)
- add
esm-envoptional dep and default logger to debug (9c8d8af)
- improve
Jsontypes, addingJsonPrimitive,JsonObject, andJsonArray(9db9a1d)
- remove
obtainable(#39)
- add more docs (ddcda63)
- add optional peer dep
@types/nodeto fix disabled TSskipLibCheck(578f632)
- rework the
LoggerAPI (#36) - remove
$lib/styletext.ts(#36) - move
print_log_labelto$lib/print.tsfrom$lib/log.ts(#36) - bump required node version to
20.17(#36)
- add
unreachableerror helper (b794c07)
- fix: exit on uncaught exceptions by default (8e2e91a)
- add
despawn_alltoprocess.ts(#35) - fix
attach_process_error_handlersAPI to only handle exceptions (#35)
- fix
embed_jsonfor multiline strings (dac5852)
- change
embed_jsonto support multiline strings (d173206)
- improve
slugify(#34)- add the arg
map_special_charactersto optionally disable the expensive special character mappings - improve performance with benchmarks
- add the arg
- add
slugifytopaths.ts(c77cbe2)
- improve hsl parsing to allow hsl prefix (#33)
- enable tsconfig
declarationanddeclarationMap(cbe3e31)
- add
embed_jsonhelper for embedding parsed json strings in js (f5c02c0)
- fix timings type to correctly include
undefinedfor unfinished ones (603bfe4)
- rename
UUID_MATCHERfromuuid_matcherfor consistency (f974a64)
- add
sideEffectstopackage.json(8f8c5bd)
- remove
kleurdependency for Node'sstyleTextand wrap it with$lib/styletext.ts(#29)
- upgrade gro with correctly formatted exports (744b984)
- support
node@20.12and later (8ee3346)
- fix hsl parsing for modern comma-less form (963c536)
- upgrade
node@22.3(#28) - rename
count_graphemesfromto_grapheme_countand useIntl.Segmenterwithout a fallback (f9f62e0)
- add
count_iterator(b02e33a)
- add
format_urland module$lib/url.ts(1843c6c)
- fix
is_editable(ab395cd)
- add
inside_editableand tweakis_editablelogic to usegetAttribute(8dc7d81)
- fix contentEditable detection in
is_editable(8ed886d)
- add
$lib/async.ts#is_promise(a5d3bb6)
- change
parse_hsl_stringto parse values with alpha (37e7094)
- add
$lib/colors.ts(#27)
- use '_' for print number separator instead of ',' (9ef6700)
- relax fetch_value token type to accept null (a14e4ee)
- rename to belt (a8ac0af)
- move orgs to @ryanatkn from @grogarden (#26)
- improve some array types to handle readonly arrays (23e739c)
- add
PickUnionandKeyofUniontype helpers (6e6ac53)
- add
ArrayElementtype helper (940ec97)
- remove
print_causes(#25)
- change
print_msto include separators at thousands (#25) - support custom colors for printing values (#25)
- change print_ms to include separators at thousands was provided (#25)
- return headers from
fetch_value(#24)
- add a default 'content-type' header for
fetch_value(2126d03)
- add
fetch_value(#22)
- remove random_char (fc99da6)
- unpublish package.ts (6ff3df5)
- add
random_charhelper (8353169)
- rename to
ProperSnakes(#21)
- add
public: true,topackage.json(47e32d6)
- upgrade
@fuzdev/growhich addsmodulestopackage.ts(4b0fc13)
- add shuffle (5c6dd69)
- publish $routes/package.ts (753a787)
- fix global_spawn name (530641a)
- deprecate obtainable (d123ff9)
- fix some snake_case (#20)
- bump node engine to 20.10 (#20)
- upgrade to @fuzdev/gro@0.86 from @feltjs/gro@0.83 (#20)
- add
spawn_outto process (#20)
- fix exports (d62b1bf)
- missed a spot renaming create_stopwatch (e373d3a)
- switch to
snake_case(#19)
- increment timing keys instead of throwing (#18)
- add
noop_asyncandresolvedfunction helpers (commit)
- fix
is_editableto returntrueonly for actually editable inputs (#15)
- add
is_iframedhelper to$lib/dom.ts(#14)
- loosen the types of
EMPTY_OBJECTandswallow(#13)
- rename log's
tracetodebug(#12)
- fix root exports to omit modules with Node dependencies (commit)
- fix root exports to not use
$lib(commit)
- publish everything from the root (commit)
- add
handle_target_valueto$lib/dom.ts(commit)
- make
selectelements count foris_editable(commit)
- break: remove the type
ClientIdand make it a plain string (commit)
- break: change
LogLevelfrom an enum to a string type union, change its default toinfo, and addto_log_level_valueto convert it to a number (#11)
- change all
$lib/paths to be direct (commit)
- fix published version for @feltjs this time for real (#9)
- fix published version for @feltjs
- break: remove
$lib/env(#7) - break: default log level to
import.meta.env.PUBLIC_LOG_LEVELinstead of the obsoleteVITE_LOG_LEVEL(#7) - break: remove exports
DEFAULT_LOG_LEVELandENV_LOG_LEVELfrom$lib/log(#7)
- add
to_nextto$lib/array(#5)
- break: rename
$lib/random-aleafrom$lib/random-seededandcreate_random_aleafromtoRandomSeeded
- break: remove
toUuid, use platformcrypto.randomUUIDinstead - remove
@lukeed/uuidas a peer dep - add
kleuras a peer dep
- fix exports (#3)
- break: require fully qualified imports for almost everything (#2)
- break: change
to_json_typein$lib/jsonto returnundefinedinstead of throwing (#2) - break: rename camelCase filenames to dash-case,
$lib/pathfrom$lib/pathParsingand$lib/random-seededfrom$lib/randomSeed(#2)
- publish (#1)