Version Packages - #748
Open
github-actions[bot] wants to merge 1 commit into
Open
Conversation
github-actions
Bot
force-pushed
the
changeset-release/main
branch
6 times, most recently
from
September 1, 2026 21:23
ba3a945 to
5cb5b94
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
September 2, 2026 01:52
5cb5b94 to
a89b302
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
eridu-tech@0.61.0
Minor Changes
83d134e:
ICacheAdapter.getOrAddnow always takes a lazy function that produces the value to cache, instead of accepting either a plain value or a function. The value producer is invoked only on a cache miss (when the key is missing or expired), so the value is never computed when a cached entry already exists.This also makes adapters easier to implement: they no longer need to branch between plain values and functions and can rely on a single, uniform lazy invocation for the value to add.
e77cc4f: Enhanced the event bus dispatch middlewares so you can return
nullfrom thepayloadinvocable if you don't want to dispatch an event:nullfrom thepayloadofwithDispatchBeforeto skip dispatching and invoke the wrapped function directly.nullfrom thepayloadofwithDispatchAfterto skip dispatching and return the wrapped function's result.nullfrom thepayloadofwithDispatchOnErrorto skip dispatching and re-throw the original error.The
payloadtype of the three middlewares is nowTEventMap[TEventName] | void.37a4973: Simplified the HttpRouter component with a unified schema-aware request API.
Breaking changes
raw*request accessors (rawCookies,rawJson,rawFormData,rawParams,rawSearchParams,rawHeaders) withcookies(),json(),params(),searchParams(),headers(),fields(), andfiles().withSchema()flow along with theIValidatedHttpReq,IHttpReqBase,IHttpReqValidation,HttpReqSchemas, andReqInputstypes. Each request accessor now accepts an optional Standard Schema directly and returns the validated result.ValidatedHttpReqimplementation.IHttpFileCollection.countis now thesize()method, andIHttpFileCollection.isEmptyis now theisEmpty()method.IHttpFileCollection.getOrFail()andfirstOrFail()now throw anHttpErrorwith status400instead of the removedFileIndexOutOfBoundsErrorandEmptyFileCollectionError.FileIndexOutOfBoundsErrorandEmptyFileCollectionErrorerror classes.StaticFileDef.namenow accepts only aRegExp(previouslystring | RegExp).DynamicFileDefnow receives the uploadedIHttpFileCollectionand returns an error messagestring | null(previously received anIHttpFileand returned aStaticFileDef).Additions
CoercibleStringInputsandCoercibleMultiStringInputsoutput types for schema-validated request data.payloadtoHttpError(andHttpErrorSettings.payload), now used to carry validation issues.Validation behavior
HttpReqnow throw anHttpErrorwith status400and the validation issues attached aspayload, instead of throwingValidationError.42f4765: Removed the unused force-release methods from the shared-lock component to simplify its API.
Breaking changes
forceReleaseWriterfromISharedLockAdapterandIWriterLock.forceReleaseAllReadersfromISharedLockAdapterandIReaderSemaphore.These methods allowed bypassing ownership checks to release locks for emergency or administrative cleanup, but they were redundant with the existing ownership-based release methods and have been removed along with their implementations in
KyselySharedLockAdapter,MemorySharedLockAdapter,MongodbSharedLockAdapter,NoOpSharedLockAdapter,RedisSharedLockAdapter, the derivedSharedLock, and thewithSharedLockPrefixplugin.Migration
Use the
forceReleasemethod instead.Patch Changes
a9b309c: Fixed a bug in
MongodbLockAdapter.refreshandMongodbSharedLockAdapter.refreshWriterwhere a caller that doesn't own the lock could still modify its expiration.Previously, both methods only filtered the MongoDB document by
keyand checked ownership after the update was applied. As a result, callingrefresh(orrefreshWriter) with a stale or foreignlockId, or after the lock had already expired, would still mutate the stored expiration even though the method ultimately returnedfalse.The owner and unexpired-expiration checks are now part of the MongoDB query filter itself, making the refresh conditional and atomic:
MongodbLockAdapter.refreshonly updates documents matchingkey,owner: lockId, and an unexpiredexpiration.MongodbSharedLockAdapter.refreshWriteronly updates documents matchingkey,writer.owner: lockId, and an unexpiredwriter.expiration.A refresh by a non-owner (or of an expired lock) now leaves the document untouched and returns
falseas expected.