diff --git a/.changeset/pre.json b/.changeset/pre.json index ee14bf1..ae85dd6 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -18,6 +18,7 @@ "exhaustive-error-matcher", "fix-async-flatmap-inference", "fix-variance-and-frompromise-inference", + "getorthrow-never-gate-message", "orpc-sync-throw-defect", "oxlint-four-rules", "prisma-transaction-defect", @@ -26,6 +27,7 @@ "runtime-hardening", "standard-schema-orphan-adoption", "synchronous-qualify-and-taperr", + "ts-pattern-peer-dependency", "v5-extractor-cleanup", "vitest-loud-forgotten-await" ] diff --git a/packages/boxed/CHANGELOG.md b/packages/boxed/CHANGELOG.md index 34255e6..3bd695b 100644 --- a/packages/boxed/CHANGELOG.md +++ b/packages/boxed/CHANGELOG.md @@ -1,5 +1,13 @@ # @unthrown/boxed +## 5.0.0-beta.5 + +### Patch Changes + +- Updated dependencies [5364caa] +- Updated dependencies [5364caa] + - unthrown@5.0.0-beta.5 + ## 5.0.0-beta.4 ### Patch Changes diff --git a/packages/boxed/package.json b/packages/boxed/package.json index 998153d..d6eb850 100644 --- a/packages/boxed/package.json +++ b/packages/boxed/package.json @@ -1,6 +1,6 @@ { "name": "@unthrown/boxed", - "version": "5.0.0-beta.4", + "version": "5.0.0-beta.5", "description": "Boxed interop for unthrown", "keywords": [ "boxed", diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index 206e0ad..d7a5934 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -1,5 +1,37 @@ # unthrown +## 5.0.0-beta.5 + +### Major Changes + +- 5364caa: **`ts-pattern` is now a `peerDependency` (`^5`), not a plain dependency.** Core + re-exports `match` / `P` / `tag` and its error matchers speak ts-pattern's + builder type. When ts-pattern was a nested, exact-pinned dependency, a consumer + who already used ts-pattern at another version ended up with two copies whose + declarations don't unify — feeding a `P.union(...)` built by one copy into an + unthrown matcher failed five layers deep in a conditional type. + + Declaring it as a peer guarantees a single copy the consumer owns, so + `import { P } from "ts-pattern"` composes with unthrown's matchers as expected. + + **Action required:** add `ts-pattern` (`^5`) to your own dependencies if you + don't already depend on it. Most package managers surface this as a missing-peer + warning on install. + +### Patch Changes + +- 5364caa: **`getOrThrow()`'s never-channel gate now explains itself.** When the error + channel is already empty (`E = never`) `getOrThrow()` is unnecessary — there is + nothing to throw, so `get()` is the tool. The gate previously surfaced as an + opaque `The 'this' context of type '…' is not assignable to method's 'this' of +type 'never'`. The `never` receiver now carries a message, so the diagnostic + reads: + + > unthrown: getOrThrow is unnecessary here — the Err channel is empty (E = + > never), so there is nothing to throw. Use get() instead. + + Behaviour is unchanged; only the compile-time message improves. + ## 5.0.0-beta.4 ### Major Changes diff --git a/packages/core/package.json b/packages/core/package.json index 933aa3f..d9eaf8f 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "unthrown", - "version": "5.0.0-beta.4", + "version": "5.0.0-beta.5", "description": "Explicit errors as values, with a separate defect (panic) channel", "keywords": [ "defect", diff --git a/packages/effect/CHANGELOG.md b/packages/effect/CHANGELOG.md index 1ea889b..3be838c 100644 --- a/packages/effect/CHANGELOG.md +++ b/packages/effect/CHANGELOG.md @@ -1,5 +1,13 @@ # @unthrown/effect +## 5.0.0-beta.5 + +### Patch Changes + +- Updated dependencies [5364caa] +- Updated dependencies [5364caa] + - unthrown@5.0.0-beta.5 + ## 5.0.0-beta.4 ### Patch Changes diff --git a/packages/effect/package.json b/packages/effect/package.json index 4b15622..d2e2e76 100644 --- a/packages/effect/package.json +++ b/packages/effect/package.json @@ -1,6 +1,6 @@ { "name": "@unthrown/effect", - "version": "5.0.0-beta.4", + "version": "5.0.0-beta.5", "description": "Effect interop for unthrown", "keywords": [ "effect", diff --git a/packages/neverthrow/CHANGELOG.md b/packages/neverthrow/CHANGELOG.md index 0bef4de..39a16f1 100644 --- a/packages/neverthrow/CHANGELOG.md +++ b/packages/neverthrow/CHANGELOG.md @@ -1,5 +1,13 @@ # @unthrown/neverthrow +## 5.0.0-beta.5 + +### Patch Changes + +- Updated dependencies [5364caa] +- Updated dependencies [5364caa] + - unthrown@5.0.0-beta.5 + ## 5.0.0-beta.4 ### Patch Changes diff --git a/packages/neverthrow/package.json b/packages/neverthrow/package.json index 8ae5819..4b5a34d 100644 --- a/packages/neverthrow/package.json +++ b/packages/neverthrow/package.json @@ -1,6 +1,6 @@ { "name": "@unthrown/neverthrow", - "version": "5.0.0-beta.4", + "version": "5.0.0-beta.5", "description": "neverthrow interop for unthrown", "keywords": [ "errors-as-values", diff --git a/packages/oxlint/CHANGELOG.md b/packages/oxlint/CHANGELOG.md index 46edbf5..e329473 100644 --- a/packages/oxlint/CHANGELOG.md +++ b/packages/oxlint/CHANGELOG.md @@ -1,5 +1,7 @@ # @unthrown/oxlint +## 5.0.0-beta.5 + ## 5.0.0-beta.4 ## 5.0.0-beta.3 diff --git a/packages/oxlint/package.json b/packages/oxlint/package.json index 7bb0bb7..eda151e 100644 --- a/packages/oxlint/package.json +++ b/packages/oxlint/package.json @@ -1,6 +1,6 @@ { "name": "@unthrown/oxlint", - "version": "5.0.0-beta.4", + "version": "5.0.0-beta.5", "description": "oxlint plugin enforcing unthrown's conventions", "keywords": [ "errors-as-values", diff --git a/packages/standard-schema/CHANGELOG.md b/packages/standard-schema/CHANGELOG.md index 3a03493..7ac4936 100644 --- a/packages/standard-schema/CHANGELOG.md +++ b/packages/standard-schema/CHANGELOG.md @@ -1,5 +1,13 @@ # @unthrown/standard-schema +## 5.0.0-beta.5 + +### Patch Changes + +- Updated dependencies [5364caa] +- Updated dependencies [5364caa] + - unthrown@5.0.0-beta.5 + ## 5.0.0-beta.4 ### Patch Changes diff --git a/packages/standard-schema/package.json b/packages/standard-schema/package.json index 3c81485..36327e1 100644 --- a/packages/standard-schema/package.json +++ b/packages/standard-schema/package.json @@ -1,6 +1,6 @@ { "name": "@unthrown/standard-schema", - "version": "5.0.0-beta.4", + "version": "5.0.0-beta.5", "description": "Standard Schema (Zod, Valibot, ArkType, …) interop for unthrown", "keywords": [ "arktype", diff --git a/packages/vitest/CHANGELOG.md b/packages/vitest/CHANGELOG.md index 3031a7a..a942666 100644 --- a/packages/vitest/CHANGELOG.md +++ b/packages/vitest/CHANGELOG.md @@ -1,5 +1,7 @@ # @unthrown/vitest +## 5.0.0-beta.5 + ## 5.0.0-beta.4 ## 5.0.0-beta.3 diff --git a/packages/vitest/package.json b/packages/vitest/package.json index ba266f0..82e2635 100644 --- a/packages/vitest/package.json +++ b/packages/vitest/package.json @@ -1,6 +1,6 @@ { "name": "@unthrown/vitest", - "version": "5.0.0-beta.4", + "version": "5.0.0-beta.5", "description": "Vitest matchers for unthrown", "keywords": [ "errors-as-values",