chore: release packages (beta)#110
Merged
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Release PR generated by Changesets to publish the next patch versions of the unthrown core package and its satellite packages. This aligns the repository state (package versions + changelogs) with the release notes derived from recent changesets, so npm publishing can proceed on merge.
Changes:
- Bump package versions for
unthrownand related@unthrown/*packages (4.3.1/0.1.1). - Update package changelogs to include the new release entries.
- Remove consumed changeset markdown files after versioning.
Reviewed changes
Copilot reviewed 22 out of 22 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| packages/core/package.json | Bump unthrown version to 4.3.1. |
| packages/core/CHANGELOG.md | Add 4.3.1 release notes (tsconfig/typedoc tooling adoption notes). |
| packages/boxed/package.json | Bump @unthrown/boxed version to 4.3.1. |
| packages/boxed/CHANGELOG.md | Add 4.3.1 entry noting updated dependency on unthrown@4.3.1. |
| packages/effect/package.json | Bump @unthrown/effect version to 4.3.1. |
| packages/effect/CHANGELOG.md | Add 4.3.1 entry noting updated dependency on unthrown@4.3.1. |
| packages/neverthrow/package.json | Bump @unthrown/neverthrow version to 4.3.1. |
| packages/neverthrow/CHANGELOG.md | Add 4.3.1 entry noting updated dependency on unthrown@4.3.1. |
| packages/pattern/package.json | Bump @unthrown/pattern version to 4.3.1. |
| packages/pattern/CHANGELOG.md | Add 4.3.1 entry noting updated dependency on unthrown@4.3.1. |
| packages/standard-schema/package.json | Bump @unthrown/standard-schema version to 4.3.1. |
| packages/standard-schema/CHANGELOG.md | Add 4.3.1 entry noting updated dependency on unthrown@4.3.1. |
| packages/vitest/package.json | Bump @unthrown/vitest version to 4.3.1. |
| packages/vitest/CHANGELOG.md | Add 4.3.1 release header entry. |
| packages/oxlint/package.json | Bump @unthrown/oxlint version to 4.3.1. |
| packages/oxlint/CHANGELOG.md | Add 4.3.1 release header entry. |
| packages/orpc/package.json | Bump @unthrown/orpc version to 0.1.1. |
| packages/orpc/CHANGELOG.md | Add 0.1.1 entry including tooling adoption notes + dependency update to unthrown@4.3.1. |
| packages/prisma/package.json | Bump @unthrown/prisma version to 0.1.1. |
| packages/prisma/CHANGELOG.md | Add 0.1.1 entry including tooling adoption notes + dependency update to unthrown@4.3.1. |
| .changeset/adopt-btravstack-0.2.md | Remove consumed changeset after versioning. |
| .changeset/remove-tools-packages.md | Remove consumed changeset after versioning. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
btravers
force-pushed
the
changeset-release/main
branch
2 times, most recently
from
July 24, 2026 10:38
6f9b61f to
51f4500
Compare
btravers
force-pushed
the
changeset-release/main
branch
from
July 25, 2026 11:53
51f4500 to
8a0c5d6
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.
mainis currently in pre mode so this branch has prereleases rather than normal releases. If you want to exit prereleases, runchangeset pre exitonmain.Releases
unthrown@5.0.0-beta.0
Major Changes
284b7be: The error channel is now matched exhaustively with ts-pattern (Thesis chore: migrate repo + docs URLs to btravstack org #5).
The error combinators —
mapErr,flatMapErr,recoverErr,tapErr,flatTapErr— no longer take a plain callback. Their callback receives ats-pattern match builder over the error (
match(error)) plus the injecteddefecthelper, and returns the un-terminated builder — the combinatorcalls
.exhaustive()for you:The matcher callback parameter is named
matcher(notm).Every error is handled explicitly, and enriching the error channel is a
compile error at every consuming site until each new case is handled. Because
the combinator runs
.exhaustive(), a missing case does not compile — there isno
.exhaustive()to forget and no.otherwise()to smuggle in a fallback._tag, acode-discriminatedunion (the oRPC shape), structural shapes, guards, and grouped patterns
(
.with(a, b, handler)— one strategy for several cases).tag("X")is sugarfor the
{ _tag: "X" }pattern.P._is the deliberate catch-all — the uniform "handle everything else"branch that replaces the old single callback, made explicit and greppable.
defecthelper(
.with(tag("X"), (e) => defect(e.cause))); itsDefectarm is subtractedfrom the outgoing
E(Exclude<O, Defect>, the boundary inference). Athrowing branch also becomes a
Defect(the safety net).tapErr/flatTapErr, useP._for acatch-all); the error is observed and flows through unchanged.
Core now depends on
ts-pattern(a small, types-heavy, dual-copy-safelibrary), and re-exports
matchandP, plustag— so the matcher, andmatching a whole
Result(match(r).with(P.Ok(), …)), are first-class in oneimport. The
@unthrown/patternpackage is removed — itstaghelper movedinto core; the
P.Ok/P.Err/P.Defectsugar is dropped (match the unionstructurally instead).
matchnow matches the error channel exhaustively too, andmatchTagsisremoved.
match'serrhandler no longer takes a blanket(error) => Rcallback — it receives the same ts-pattern matcher and returns the un-terminated
builder (no
defecthelper:matchfolds to a value, with noDefectoutputchannel). This subsumes the old
matchTagsfold — a per-tag fold over a taggedunion is now
matchwith the matcher andtag(t), and it generalises to anydiscriminant, not only
_tag:Use
.with(P._, …)for a uniform catch-all.matchTagsand itsTagHandlerstype are gone;
TaggedErrorandtagare unchanged. Library code generic inthe error type
E(which ts-pattern can't prove exhaustive over an unresolvedtype parameter) should fold with the
isOk/isErr/isDefectguardsinstead of
match.Also breaking: the deprecated error-channel aliases
orElseandrecoverare removed; the extractor aliases (
unwrap,unwrapErr,unwrapOr,unwrapOrElse) remain.AsyncOkOf/AsyncErrOfnow infer through theawaitable channel only (same results for ordinary
AsyncResulttypes).a1f68d5: The extractor family is spelled only
get…, andgetOrThrowis now gated.The deprecated
unwrap*aliases are removed —unwrap,unwrapErr,unwrapOr,unwrapOrElse(they were runtime-identical delegates). Rename totheir replacements:
getOrThrowis now type-gated as the complement ofget. It compiles onlywhen the error channel is non-empty (
Eis notnever) — there must be amodeled error for it to throw. On a
Result<T, never>there is nothing tothrow, so use
get()(which gates the other way). Together they partitionextraction by the error channel's state:
UnwrapErroris renamed toGetError— it is what theget…extractorsthrow on a wrong-variant access, so it now lives in the
getregister (itsmessage no longer says "unwrap" either). It is unreachable through well-typed
code (only a cast or JS caller reaches it), so most callers never name it; those
that
instanceof/catchit do a one-line rename.Also: the aggregates are hardened against out-of-contract input (only reachable
via untyped/cast code).
allAsync/allFromDictAsyncadopt each inputdefensively (a rejecting thenable becomes a
Defectinstead of rejecting theinternal promise), and all four aggregates now surface a non-
Resultelement (ahole/
undefined) as aDefectrather than throwing on.tag(sync) orrejecting (async) — upholding "an
AsyncResult's internal promise never rejects"for every input.
Patch Changes
tools/tsconfig/tools/typedocpackages and consume the published@btravstack/tsconfig/@btravstack/typedocconfig directly (every package now extends@btravstack/*and takes it from the catalog).@unthrown/boxed@5.0.0-beta.0
Patch Changes
@unthrown/effect@5.0.0-beta.0
Patch Changes
@unthrown/neverthrow@5.0.0-beta.0
Patch Changes
@unthrown/orpc@0.1.1-beta.0
Patch Changes
tools/tsconfig/tools/typedocpackages and consume the published@btravstack/tsconfig/@btravstack/typedocconfig directly (every package now extends@btravstack/*and takes it from the catalog).@unthrown/prisma@0.1.1-beta.0
Patch Changes
tools/tsconfig/tools/typedocpackages and consume the published@btravstack/tsconfig/@btravstack/typedocconfig directly (every package now extends@btravstack/*and takes it from the catalog).@unthrown/standard-schema@5.0.0-beta.0
Patch Changes
@unthrown/vitest@5.0.0-beta.0
Patch Changes
@unthrown/oxlint@5.0.0-beta.0