v7.0.0
@studnicky/batch
Patch Changes
- d2b44b7: Domain error constructors route through
@studnicky/errors'sDomainErrorArgs.build()instead of hand-rolledsuper({code,message,retryable})boilerplate. Fluent builders assemble their options object via@studnicky/types'sPickDefined.from()instead of manual spread-ternary chains.@studnicky/fetch's config validators subclass@studnicky/config'sConfigValidation.@studnicky/eslint-config's duplicated rule-internal AST helpers are consolidated underrules/shared/. No public API or behavior changes. - Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
- @studnicky/errors@7.0.0
- @studnicky/json@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/boundary-kit
Patch Changes
- d2b44b7: Domain error constructors route through
@studnicky/errors'sDomainErrorArgs.build()instead of hand-rolledsuper({code,message,retryable})boilerplate. Fluent builders assemble their options object via@studnicky/types'sPickDefined.from()instead of manual spread-ternary chains.@studnicky/fetch's config validators subclass@studnicky/config'sConfigValidation.@studnicky/eslint-config's duplicated rule-internal AST helpers are consolidated underrules/shared/. No public API or behavior changes. - Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
- @studnicky/errors@7.0.0
- @studnicky/retry@7.0.0
- @studnicky/resilience@7.0.0
- @studnicky/throttle@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/bounded-dispatcher
Patch Changes
- d2b44b7: Domain error constructors route through
@studnicky/errors'sDomainErrorArgs.build()instead of hand-rolledsuper({code,message,retryable})boilerplate. Fluent builders assemble their options object via@studnicky/types'sPickDefined.from()instead of manual spread-ternary chains.@studnicky/fetch's config validators subclass@studnicky/config'sConfigValidation.@studnicky/eslint-config's duplicated rule-internal AST helpers are consolidated underrules/shared/. No public API or behavior changes. - Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
- @studnicky/concurrency@7.0.0
- @studnicky/event-bus@7.0.0
- @studnicky/scheduler@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/cache
Patch Changes
- Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
- @studnicky/errors@7.0.0
- @studnicky/json@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/circular-buffer
Patch Changes
- d2b44b7: Domain error constructors route through
@studnicky/errors'sDomainErrorArgs.build()instead of hand-rolledsuper({code,message,retryable})boilerplate. Fluent builders assemble their options object via@studnicky/types'sPickDefined.from()instead of manual spread-ternary chains.@studnicky/fetch's config validators subclass@studnicky/config'sConfigValidation.@studnicky/eslint-config's duplicated rule-internal AST helpers are consolidated underrules/shared/. No public API or behavior changes. - Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
- @studnicky/errors@7.0.0
- @studnicky/json@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/clock
Patch Changes
- d2b44b7: Domain error constructors route through
@studnicky/errors'sDomainErrorArgs.build()instead of hand-rolledsuper({code,message,retryable})boilerplate. Fluent builders assemble their options object via@studnicky/types'sPickDefined.from()instead of manual spread-ternary chains.@studnicky/fetch's config validators subclass@studnicky/config'sConfigValidation.@studnicky/eslint-config's duplicated rule-internal AST helpers are consolidated underrules/shared/. No public API or behavior changes. - Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
- @studnicky/errors@7.0.0
- @studnicky/json@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/concurrency
Patch Changes
- d2b44b7: Domain error constructors route through
@studnicky/errors'sDomainErrorArgs.build()instead of hand-rolledsuper({code,message,retryable})boilerplate. Fluent builders assemble their options object via@studnicky/types'sPickDefined.from()instead of manual spread-ternary chains.@studnicky/fetch's config validators subclass@studnicky/config'sConfigValidation.@studnicky/eslint-config's duplicated rule-internal AST helpers are consolidated underrules/shared/. No public API or behavior changes. - Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
- @studnicky/errors@7.0.0
- @studnicky/circular-buffer@7.0.0
- @studnicky/json@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/config
Patch Changes
- Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
- @studnicky/errors@7.0.0
- @studnicky/json@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/context
Patch Changes
- Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
- @studnicky/errors@7.0.0
- @studnicky/json@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/entity-store
Minor Changes
-
d2b44b7:
@studnicky/errorsexportsHookInvoker, a composable delegate for safely invoking consumer-supplied lifecycle hooks — synchronous or asynchronous, without forcing async contagion on a synchronous caller and without letting a broken hook produce an unhandled rejection. A class composes it as a field (never extends it directly) and callsinvoke(hookName, fn)from its own methods; a caller needing a different failure disposition than the default throw defines a small delegate subclass overridingonHookError. Also exportsHookInvocationError,HookTimeoutError(thrown when an optionaltimeoutMselapses before a hook settles), andReentrantHookInvocationError(thrown whendetectReentrancycatches a synchronous same-call-stack reentrantinvoke).@studnicky/entity-store,@studnicky/file-lock,@studnicky/health-registry, and@studnicky/worker-poolroute their lifecycle hooks through a record-and-continueHookInvokerdelegate: a throwing hook override no longer aborts or corrupts an in-flight operation — the failure is recorded instead, inspectable viahookErrorCount/getHookErrors()(getHookErrorCount()/getHookErrors()onWorkerPool).@studnicky/logger'sLoggercomposes a plainHookInvokerforonLog/onDropped/onChildCreate(unchanged throwing behavior) and separately guardsonTransportError, recording its failures viahookErrorCount/getHookErrors()so a broken override can't abort fan-out to the remaining transports.@studnicky/retryand@studnicky/pipelinegain ahookTimeoutMsbuilder option (and matchingRetry.create/Pipeline.createconfig field) bounding how long an async lifecycle hook may run before it's routed toonHookErrorwith aHookTimeoutErrorcause. Left unset, a hook may take arbitrarily long, matching prior behavior.
Patch Changes
- Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
- @studnicky/errors@7.0.0
- @studnicky/json@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/errors
Minor Changes
-
d2b44b7:
@studnicky/typesexportsPickDefined.from(record), which stripsundefined-valued keys from a record while narrowing each remaining value's type away fromundefined— built for builders assembling an options object from a mix of required and optional fields.@studnicky/errorsexportsDomainErrorArgs.build(fields, options), which computescode/message/retryable/cause/correlationId/metadatafor asuper()call so leaf error classes can skip the manual field-assignment ceremony while keeping theirextendschain andinstanceofchecks intact.@studnicky/loggerexportsResolveMinLevel.from(options), the level-validation-and-resolution logicConsoleTransport/MemoryTransportalready use internally, now reusable by third-partyTransportInterfaceimplementations. -
d2b44b7:
@studnicky/errorsexportsHookInvoker, a composable delegate for safely invoking consumer-supplied lifecycle hooks — synchronous or asynchronous, without forcing async contagion on a synchronous caller and without letting a broken hook produce an unhandled rejection. A class composes it as a field (never extends it directly) and callsinvoke(hookName, fn)from its own methods; a caller needing a different failure disposition than the default throw defines a small delegate subclass overridingonHookError. Also exportsHookInvocationError,HookTimeoutError(thrown when an optionaltimeoutMselapses before a hook settles), andReentrantHookInvocationError(thrown whendetectReentrancycatches a synchronous same-call-stack reentrantinvoke).@studnicky/entity-store,@studnicky/file-lock,@studnicky/health-registry, and@studnicky/worker-poolroute their lifecycle hooks through a record-and-continueHookInvokerdelegate: a throwing hook override no longer aborts or corrupts an in-flight operation — the failure is recorded instead, inspectable viahookErrorCount/getHookErrors()(getHookErrorCount()/getHookErrors()onWorkerPool).@studnicky/logger'sLoggercomposes a plainHookInvokerforonLog/onDropped/onChildCreate(unchanged throwing behavior) and separately guardsonTransportError, recording its failures viahookErrorCount/getHookErrors()so a broken override can't abort fan-out to the remaining transports.@studnicky/retryand@studnicky/pipelinegain ahookTimeoutMsbuilder option (and matchingRetry.create/Pipeline.createconfig field) bounding how long an async lifecycle hook may run before it's routed toonHookErrorwith aHookTimeoutErrorcause. Left unset, a hook may take arbitrarily long, matching prior behavior.
Patch Changes
- Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/eslint-config
Minor Changes
-
d2b44b7:
@studnicky/v8gains three loop-performance rules covering all loop types (for,while,do...while,for...of,for...in):array-splice-outside-loopsflags.splice()calls inside a loop body, andchained-array-iterationflags.map().filter()/.filter().map()chains anywhere in the file.array-scan-outside-loopsflags.find()/.filter()/.indexOf()/.includes()/.some()/.every()calls inside a loop body, type-checked against the receiver to distinguish a real array scan fromString.prototype.indexOf/.includes()(same method names, different complexity story), and scoped-checked to skip a receiver proven to be freshly derived every iteration (afor...ofloop's own binding, or aconstdeclared inside the loop body) rather than the same stable collection re-scanned each time.
Patch Changes
-
d2b44b7: Fixed three pre-existing precision bugs surfaced by dogfooding the full rule set against real code for the first time:
PropertyKeyName.getonly resolved unquoted (key:) property keys, never quoted ('key':) ones — since this repo's ownquote-props: alwaysconvention quotes every property key, theinlineFunctions/inlineArrowFunctionsrules'EXEMPT_KEYSallowlist never actually matched anything. Now resolves both forms.inlineArrowFunctions'sEXEMPT_KEYSgains'message', alongside the existing'callback'/'handler'/etc. — a single caller-supplied callback property in an options object is not a dispatch-map branch.folderContentShape'sisUnderFoldermatched atypes/interfacespath segment anywhere in the file path, including a package's own root name (e.g.packages/types/) — incorrectly treating any package literally namedtypesorinterfacesas if every file inside it lived under atypes//interfaces/convention subfolder. Now only matches real subfolders within the package.
-
d2b44b7: Domain error constructors route through
@studnicky/errors'sDomainErrorArgs.build()instead of hand-rolledsuper({code,message,retryable})boilerplate. Fluent builders assemble their options object via@studnicky/types'sPickDefined.from()instead of manual spread-ternary chains.@studnicky/fetch's config validators subclass@studnicky/config'sConfigValidation.@studnicky/eslint-config's duplicated rule-internal AST helpers are consolidated underrules/shared/. No public API or behavior changes. -
081c7bd: Pin
viteto^6.4.3andesbuildto^0.25.0via a rootpnpm.overridesentry, resolving four Dependabot alerts in the transitivevitepressdocs-build toolchain:vite'sserver.fs.denybypass on Windows alternate paths, a path-traversal issue in optimized-deps.maphandling, alaunch-editorNTLMv2 hash disclosure via UNC paths, and anesbuilddev-server request/response exposure. Dev-only tooling change; no published package's runtime code is affected. -
Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/event-bus
Patch Changes
- Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
- @studnicky/errors@7.0.0
- @studnicky/circular-buffer@7.0.0
- @studnicky/json@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/fetch
Patch Changes
- d2b44b7: Domain error constructors route through
@studnicky/errors'sDomainErrorArgs.build()instead of hand-rolledsuper({code,message,retryable})boilerplate. Fluent builders assemble their options object via@studnicky/types'sPickDefined.from()instead of manual spread-ternary chains.@studnicky/fetch's config validators subclass@studnicky/config'sConfigValidation.@studnicky/eslint-config's duplicated rule-internal AST helpers are consolidated underrules/shared/. No public API or behavior changes. - Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
- @studnicky/errors@7.0.0
- @studnicky/config@7.0.0
- @studnicky/json@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/file-lock
Minor Changes
-
d2b44b7:
@studnicky/errorsexportsHookInvoker, a composable delegate for safely invoking consumer-supplied lifecycle hooks — synchronous or asynchronous, without forcing async contagion on a synchronous caller and without letting a broken hook produce an unhandled rejection. A class composes it as a field (never extends it directly) and callsinvoke(hookName, fn)from its own methods; a caller needing a different failure disposition than the default throw defines a small delegate subclass overridingonHookError. Also exportsHookInvocationError,HookTimeoutError(thrown when an optionaltimeoutMselapses before a hook settles), andReentrantHookInvocationError(thrown whendetectReentrancycatches a synchronous same-call-stack reentrantinvoke).@studnicky/entity-store,@studnicky/file-lock,@studnicky/health-registry, and@studnicky/worker-poolroute their lifecycle hooks through a record-and-continueHookInvokerdelegate: a throwing hook override no longer aborts or corrupts an in-flight operation — the failure is recorded instead, inspectable viahookErrorCount/getHookErrors()(getHookErrorCount()/getHookErrors()onWorkerPool).@studnicky/logger'sLoggercomposes a plainHookInvokerforonLog/onDropped/onChildCreate(unchanged throwing behavior) and separately guardsonTransportError, recording its failures viahookErrorCount/getHookErrors()so a broken override can't abort fan-out to the remaining transports.@studnicky/retryand@studnicky/pipelinegain ahookTimeoutMsbuilder option (and matchingRetry.create/Pipeline.createconfig field) bounding how long an async lifecycle hook may run before it's routed toonHookErrorwith aHookTimeoutErrorcause. Left unset, a hook may take arbitrarily long, matching prior behavior.
Patch Changes
- d2b44b7: Domain error constructors route through
@studnicky/errors'sDomainErrorArgs.build()instead of hand-rolledsuper({code,message,retryable})boilerplate. Fluent builders assemble their options object via@studnicky/types'sPickDefined.from()instead of manual spread-ternary chains.@studnicky/fetch's config validators subclass@studnicky/config'sConfigValidation.@studnicky/eslint-config's duplicated rule-internal AST helpers are consolidated underrules/shared/. No public API or behavior changes. - Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
- @studnicky/errors@7.0.0
- @studnicky/virtual-fs@7.0.0
- @studnicky/json@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/flag-evaluator
Patch Changes
- Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
- @studnicky/errors@7.0.0
- @studnicky/json@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/fsm
Patch Changes
- Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
- @studnicky/errors@7.0.0
- @studnicky/circular-buffer@7.0.0
- @studnicky/json@7.0.0
@studnicky/health-registry
Minor Changes
-
d2b44b7:
@studnicky/errorsexportsHookInvoker, a composable delegate for safely invoking consumer-supplied lifecycle hooks — synchronous or asynchronous, without forcing async contagion on a synchronous caller and without letting a broken hook produce an unhandled rejection. A class composes it as a field (never extends it directly) and callsinvoke(hookName, fn)from its own methods; a caller needing a different failure disposition than the default throw defines a small delegate subclass overridingonHookError. Also exportsHookInvocationError,HookTimeoutError(thrown when an optionaltimeoutMselapses before a hook settles), andReentrantHookInvocationError(thrown whendetectReentrancycatches a synchronous same-call-stack reentrantinvoke).@studnicky/entity-store,@studnicky/file-lock,@studnicky/health-registry, and@studnicky/worker-poolroute their lifecycle hooks through a record-and-continueHookInvokerdelegate: a throwing hook override no longer aborts or corrupts an in-flight operation — the failure is recorded instead, inspectable viahookErrorCount/getHookErrors()(getHookErrorCount()/getHookErrors()onWorkerPool).@studnicky/logger'sLoggercomposes a plainHookInvokerforonLog/onDropped/onChildCreate(unchanged throwing behavior) and separately guardsonTransportError, recording its failures viahookErrorCount/getHookErrors()so a broken override can't abort fan-out to the remaining transports.@studnicky/retryand@studnicky/pipelinegain ahookTimeoutMsbuilder option (and matchingRetry.create/Pipeline.createconfig field) bounding how long an async lifecycle hook may run before it's routed toonHookErrorwith aHookTimeoutErrorcause. Left unset, a hook may take arbitrarily long, matching prior behavior.
Patch Changes
- Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
- @studnicky/errors@7.0.0
- @studnicky/json@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/idempotency-guard
Patch Changes
- Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
- @studnicky/errors@7.0.0
- @studnicky/concurrency@7.0.0
- @studnicky/cache@7.0.0
- @studnicky/json@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/json
Patch Changes
- Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
- @studnicky/errors@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/keyed-rate-limiter
Patch Changes
- Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- @studnicky/errors@7.0.0
- @studnicky/resilience@7.0.0
- @studnicky/cache@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/keyed-work-gate
Patch Changes
- d2b44b7: Domain error constructors route through
@studnicky/errors'sDomainErrorArgs.build()instead of hand-rolledsuper({code,message,retryable})boilerplate. Fluent builders assemble their options object via@studnicky/types'sPickDefined.from()instead of manual spread-ternary chains.@studnicky/fetch's config validators subclass@studnicky/config'sConfigValidation.@studnicky/eslint-config's duplicated rule-internal AST helpers are consolidated underrules/shared/. No public API or behavior changes. - Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
- @studnicky/mutex@7.0.0
- @studnicky/concurrency@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/logger
Minor Changes
-
d2b44b7:
@studnicky/typesexportsPickDefined.from(record), which stripsundefined-valued keys from a record while narrowing each remaining value's type away fromundefined— built for builders assembling an options object from a mix of required and optional fields.@studnicky/errorsexportsDomainErrorArgs.build(fields, options), which computescode/message/retryable/cause/correlationId/metadatafor asuper()call so leaf error classes can skip the manual field-assignment ceremony while keeping theirextendschain andinstanceofchecks intact.@studnicky/loggerexportsResolveMinLevel.from(options), the level-validation-and-resolution logicConsoleTransport/MemoryTransportalready use internally, now reusable by third-partyTransportInterfaceimplementations. -
d2b44b7:
@studnicky/errorsexportsHookInvoker, a composable delegate for safely invoking consumer-supplied lifecycle hooks — synchronous or asynchronous, without forcing async contagion on a synchronous caller and without letting a broken hook produce an unhandled rejection. A class composes it as a field (never extends it directly) and callsinvoke(hookName, fn)from its own methods; a caller needing a different failure disposition than the default throw defines a small delegate subclass overridingonHookError. Also exportsHookInvocationError,HookTimeoutError(thrown when an optionaltimeoutMselapses before a hook settles), andReentrantHookInvocationError(thrown whendetectReentrancycatches a synchronous same-call-stack reentrantinvoke).@studnicky/entity-store,@studnicky/file-lock,@studnicky/health-registry, and@studnicky/worker-poolroute their lifecycle hooks through a record-and-continueHookInvokerdelegate: a throwing hook override no longer aborts or corrupts an in-flight operation — the failure is recorded instead, inspectable viahookErrorCount/getHookErrors()(getHookErrorCount()/getHookErrors()onWorkerPool).@studnicky/logger'sLoggercomposes a plainHookInvokerforonLog/onDropped/onChildCreate(unchanged throwing behavior) and separately guardsonTransportError, recording its failures viahookErrorCount/getHookErrors()so a broken override can't abort fan-out to the remaining transports.@studnicky/retryand@studnicky/pipelinegain ahookTimeoutMsbuilder option (and matchingRetry.create/Pipeline.createconfig field) bounding how long an async lifecycle hook may run before it's routed toonHookErrorwith aHookTimeoutErrorcause. Left unset, a hook may take arbitrarily long, matching prior behavior.
Patch Changes
- Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
- @studnicky/errors@7.0.0
- @studnicky/json@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/memoize
Patch Changes
- Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- @studnicky/errors@7.0.0
- @studnicky/concurrency@7.0.0
- @studnicky/cache@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/mutex
Patch Changes
- d2b44b7: Domain error constructors route through
@studnicky/errors'sDomainErrorArgs.build()instead of hand-rolledsuper({code,message,retryable})boilerplate. Fluent builders assemble their options object via@studnicky/types'sPickDefined.from()instead of manual spread-ternary chains.@studnicky/fetch's config validators subclass@studnicky/config'sConfigValidation.@studnicky/eslint-config's duplicated rule-internal AST helpers are consolidated underrules/shared/. No public API or behavior changes. - Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
- @studnicky/errors@7.0.0
- @studnicky/config@7.0.0
- @studnicky/json@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/paginator
Patch Changes
- Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
- @studnicky/errors@7.0.0
- @studnicky/fsm@7.0.0
- @studnicky/json@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/pipeline
Minor Changes
-
d2b44b7:
@studnicky/errorsexportsHookInvoker, a composable delegate for safely invoking consumer-supplied lifecycle hooks — synchronous or asynchronous, without forcing async contagion on a synchronous caller and without letting a broken hook produce an unhandled rejection. A class composes it as a field (never extends it directly) and callsinvoke(hookName, fn)from its own methods; a caller needing a different failure disposition than the default throw defines a small delegate subclass overridingonHookError. Also exportsHookInvocationError,HookTimeoutError(thrown when an optionaltimeoutMselapses before a hook settles), andReentrantHookInvocationError(thrown whendetectReentrancycatches a synchronous same-call-stack reentrantinvoke).@studnicky/entity-store,@studnicky/file-lock,@studnicky/health-registry, and@studnicky/worker-poolroute their lifecycle hooks through a record-and-continueHookInvokerdelegate: a throwing hook override no longer aborts or corrupts an in-flight operation — the failure is recorded instead, inspectable viahookErrorCount/getHookErrors()(getHookErrorCount()/getHookErrors()onWorkerPool).@studnicky/logger'sLoggercomposes a plainHookInvokerforonLog/onDropped/onChildCreate(unchanged throwing behavior) and separately guardsonTransportError, recording its failures viahookErrorCount/getHookErrors()so a broken override can't abort fan-out to the remaining transports.@studnicky/retryand@studnicky/pipelinegain ahookTimeoutMsbuilder option (and matchingRetry.create/Pipeline.createconfig field) bounding how long an async lifecycle hook may run before it's routed toonHookErrorwith aHookTimeoutErrorcause. Left unset, a hook may take arbitrarily long, matching prior behavior.
Patch Changes
- Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
- @studnicky/errors@7.0.0
- @studnicky/json@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/predicates
Patch Changes
- @studnicky/cache@7.0.0
- @studnicky/json@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/process-kit
Patch Changes
- @studnicky/fsm@7.0.0
- @studnicky/scheduler@7.0.0
- @studnicky/signal@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/request-executor
Patch Changes
- d2b44b7: Domain error constructors route through
@studnicky/errors'sDomainErrorArgs.build()instead of hand-rolledsuper({code,message,retryable})boilerplate. Fluent builders assemble their options object via@studnicky/types'sPickDefined.from()instead of manual spread-ternary chains.@studnicky/fetch's config validators subclass@studnicky/config'sConfigValidation.@studnicky/eslint-config's duplicated rule-internal AST helpers are consolidated underrules/shared/. No public API or behavior changes. - Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
- @studnicky/retry@7.0.0
- @studnicky/fetch@7.0.0
- @studnicky/context@7.0.0
- @studnicky/timing@7.0.0
- @studnicky/signal@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/resilience
Patch Changes
- d2b44b7: Domain error constructors route through
@studnicky/errors'sDomainErrorArgs.build()instead of hand-rolledsuper({code,message,retryable})boilerplate. Fluent builders assemble their options object via@studnicky/types'sPickDefined.from()instead of manual spread-ternary chains.@studnicky/fetch's config validators subclass@studnicky/config'sConfigValidation.@studnicky/eslint-config's duplicated rule-internal AST helpers are consolidated underrules/shared/. No public API or behavior changes. - Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
- @studnicky/errors@7.0.0
- @studnicky/json@7.0.0
- @studnicky/signal@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/retry
Minor Changes
-
d2b44b7:
@studnicky/errorsexportsHookInvoker, a composable delegate for safely invoking consumer-supplied lifecycle hooks — synchronous or asynchronous, without forcing async contagion on a synchronous caller and without letting a broken hook produce an unhandled rejection. A class composes it as a field (never extends it directly) and callsinvoke(hookName, fn)from its own methods; a caller needing a different failure disposition than the default throw defines a small delegate subclass overridingonHookError. Also exportsHookInvocationError,HookTimeoutError(thrown when an optionaltimeoutMselapses before a hook settles), andReentrantHookInvocationError(thrown whendetectReentrancycatches a synchronous same-call-stack reentrantinvoke).@studnicky/entity-store,@studnicky/file-lock,@studnicky/health-registry, and@studnicky/worker-poolroute their lifecycle hooks through a record-and-continueHookInvokerdelegate: a throwing hook override no longer aborts or corrupts an in-flight operation — the failure is recorded instead, inspectable viahookErrorCount/getHookErrors()(getHookErrorCount()/getHookErrors()onWorkerPool).@studnicky/logger'sLoggercomposes a plainHookInvokerforonLog/onDropped/onChildCreate(unchanged throwing behavior) and separately guardsonTransportError, recording its failures viahookErrorCount/getHookErrors()so a broken override can't abort fan-out to the remaining transports.@studnicky/retryand@studnicky/pipelinegain ahookTimeoutMsbuilder option (and matchingRetry.create/Pipeline.createconfig field) bounding how long an async lifecycle hook may run before it's routed toonHookErrorwith aHookTimeoutErrorcause. Left unset, a hook may take arbitrarily long, matching prior behavior.
Patch Changes
- d2b44b7: Domain error constructors route through
@studnicky/errors'sDomainErrorArgs.build()instead of hand-rolledsuper({code,message,retryable})boilerplate. Fluent builders assemble their options object via@studnicky/types'sPickDefined.from()instead of manual spread-ternary chains.@studnicky/fetch's config validators subclass@studnicky/config'sConfigValidation.@studnicky/eslint-config's duplicated rule-internal AST helpers are consolidated underrules/shared/. No public API or behavior changes. - Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
- @studnicky/errors@7.0.0
- @studnicky/logger@7.0.0
- @studnicky/config@7.0.0
- @studnicky/json@7.0.0
- @studnicky/timing@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/sample-buffer
Patch Changes
- d2b44b7: Domain error constructors route through
@studnicky/errors'sDomainErrorArgs.build()instead of hand-rolledsuper({code,message,retryable})boilerplate. Fluent builders assemble their options object via@studnicky/types'sPickDefined.from()instead of manual spread-ternary chains.@studnicky/fetch's config validators subclass@studnicky/config'sConfigValidation.@studnicky/eslint-config's duplicated rule-internal AST helpers are consolidated underrules/shared/. No public API or behavior changes. - Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
- @studnicky/errors@7.0.0
- @studnicky/json@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/scheduler
Patch Changes
- Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
- @studnicky/errors@7.0.0
- @studnicky/clock@7.0.0
- @studnicky/json@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/signal
Patch Changes
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/sliding-window-limiter
Patch Changes
- d2b44b7: Domain error constructors route through
@studnicky/errors'sDomainErrorArgs.build()instead of hand-rolledsuper({code,message,retryable})boilerplate. Fluent builders assemble their options object via@studnicky/types'sPickDefined.from()instead of manual spread-ternary chains.@studnicky/fetch's config validators subclass@studnicky/config'sConfigValidation.@studnicky/eslint-config's duplicated rule-internal AST helpers are consolidated underrules/shared/. No public API or behavior changes. - Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
- @studnicky/errors@7.0.0
- @studnicky/circular-buffer@7.0.0
- @studnicky/json@7.0.0
- @studnicky/signal@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/system
Patch Changes
- Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
- @studnicky/json@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/throttle
Patch Changes
- Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
- @studnicky/errors@7.0.0
- @studnicky/sample-buffer@7.0.0
- @studnicky/circular-buffer@7.0.0
- @studnicky/config@7.0.0
- @studnicky/json@7.0.0
- @studnicky/signal@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/timing
Patch Changes
- Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
- @studnicky/errors@7.0.0
- @studnicky/config@7.0.0
- @studnicky/json@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/types
Minor Changes
-
d2b44b7:
@studnicky/typesexportsPickDefined.from(record), which stripsundefined-valued keys from a record while narrowing each remaining value's type away fromundefined— built for builders assembling an options object from a mix of required and optional fields.@studnicky/errorsexportsDomainErrorArgs.build(fields, options), which computescode/message/retryable/cause/correlationId/metadatafor asuper()call so leaf error classes can skip the manual field-assignment ceremony while keeping theirextendschain andinstanceofchecks intact.@studnicky/loggerexportsResolveMinLevel.from(options), the level-validation-and-resolution logicConsoleTransport/MemoryTransportalready use internally, now reusable by third-partyTransportInterfaceimplementations.
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/virtual-fs
Patch Changes
- d2b44b7: Domain error constructors route through
@studnicky/errors'sDomainErrorArgs.build()instead of hand-rolledsuper({code,message,retryable})boilerplate. Fluent builders assemble their options object via@studnicky/types'sPickDefined.from()instead of manual spread-ternary chains.@studnicky/fetch's config validators subclass@studnicky/config'sConfigValidation.@studnicky/eslint-config's duplicated rule-internal AST helpers are consolidated underrules/shared/. No public API or behavior changes. - Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
- @studnicky/errors@7.0.0
- @studnicky/clock@7.0.0
- @studnicky/json@7.0.0
@studnicky/visible-range
Patch Changes
- d2b44b7: Domain error constructors route through
@studnicky/errors'sDomainErrorArgs.build()instead of hand-rolledsuper({code,message,retryable})boilerplate. Fluent builders assemble their options object via@studnicky/types'sPickDefined.from()instead of manual spread-ternary chains.@studnicky/fetch's config validators subclass@studnicky/config'sConfigValidation.@studnicky/eslint-config's duplicated rule-internal AST helpers are consolidated underrules/shared/. No public API or behavior changes. - Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
- @studnicky/errors@7.0.0
- @studnicky/json@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
@studnicky/worker-pool
Minor Changes
-
d2b44b7:
@studnicky/errorsexportsHookInvoker, a composable delegate for safely invoking consumer-supplied lifecycle hooks — synchronous or asynchronous, without forcing async contagion on a synchronous caller and without letting a broken hook produce an unhandled rejection. A class composes it as a field (never extends it directly) and callsinvoke(hookName, fn)from its own methods; a caller needing a different failure disposition than the default throw defines a small delegate subclass overridingonHookError. Also exportsHookInvocationError,HookTimeoutError(thrown when an optionaltimeoutMselapses before a hook settles), andReentrantHookInvocationError(thrown whendetectReentrancycatches a synchronous same-call-stack reentrantinvoke).@studnicky/entity-store,@studnicky/file-lock,@studnicky/health-registry, and@studnicky/worker-poolroute their lifecycle hooks through a record-and-continueHookInvokerdelegate: a throwing hook override no longer aborts or corrupts an in-flight operation — the failure is recorded instead, inspectable viahookErrorCount/getHookErrors()(getHookErrorCount()/getHookErrors()onWorkerPool).@studnicky/logger'sLoggercomposes a plainHookInvokerforonLog/onDropped/onChildCreate(unchanged throwing behavior) and separately guardsonTransportError, recording its failures viahookErrorCount/getHookErrors()so a broken override can't abort fan-out to the remaining transports.@studnicky/retryand@studnicky/pipelinegain ahookTimeoutMsbuilder option (and matchingRetry.create/Pipeline.createconfig field) bounding how long an async lifecycle hook may run before it's routed toonHookErrorwith aHookTimeoutErrorcause. Left unset, a hook may take arbitrarily long, matching prior behavior.
Patch Changes
- Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- Updated dependencies [d2b44b7]
- @studnicky/types@7.0.0
- @studnicky/errors@7.0.0
- @studnicky/batch@7.0.0
- @studnicky/json@7.0.0
- @studnicky/system@7.0.0
- @studnicky/signal@7.0.0
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.