Releases: btravstack/temporal-contract
Release list
@temporal-contract/worker@6.1.0
Minor Changes
-
2960244: Add the
qualify(type, options?)helper to@temporal-contract/worker/activity.It builds the qualifier function
fromPromiseneeds, replacing the
ApplicationFailure.create({ type, message: error instanceof Error ? ... })
boilerplate previously repeated in every activity:import { declareActivitiesHandler, qualify } from "@temporal-contract/worker/activity"; import { fromPromise } from "unthrown"; export const activities = declareActivitiesHandler({ contract, activities: { sendEmail: (args) => fromPromise(emailService.send(args), qualify("EMAIL_SEND_FAILED")).map(() => ({ sent: true, })), }, });
An
Errorrejection keeps its own message and is preserved ascause;
non-Errorrejections fall back tooptions.message(orString(error)).
options.nonRetryableandoptions.detailsare forwarded to the failure.
The qualifier always wraps — even anApplicationFailurerejection — so the
declaredtypeis guaranteed for retry policies. -
d3e71fc: Upgrade the
unthrownpeer dependency to^4(from^3).unthrown 4 is not compatible with unthrown 3 — most notably,
TaggedError
now reservesnameandmessageas payload fields (they are set via
Error, not passed as structured data). The client and worker error classes
were migrated accordingly; their public shape is unchanged (_tag,name,
message, and the typed payload fields are all still present and behave
identically). Consumers must be onunthrown@4.Released as a minor rather than a major: these packages have no external
consumers pinned tounthrown@3, so the peer-range change carries no
real-world break. If you depend on@temporal-contract/{contract,client,worker},
bumpunthrownto^4alongside this release.
Patch Changes
-
3b88b3f: Audit fixes across the published packages.
@temporal-contract/testing:@temporalio/clientand@temporalio/worker
moved fromdependenciestopeerDependencies(^1). Both packages' types are
exposed through the publicitfixture (Connection/NativeConnection), so
consumers must resolve them to a single instance to avoid disjoint nominal
types. Package managers that auto-install peers (npm 7+, pnpm with
autoInstallPeers) are unaffected; other setups must add the two packages
explicitly — any project using this testing helper already depends on them in
practice. Because that install-shape change can require consumer action, this is
released as a minor for@temporal-contract/testing. The staleconfig
entry was also dropped fromfiles.All packages:
sideEffects: falseis now declared, enabling bundler
tree-shaking. The worker package'screateTypedChildHandleno longer uses
anyinternally, and JSDoc examples were fixed to use ESM-correct imports
(.jsextensions,workflowsPathFromURLinstead ofrequire.resolve). -
Updated dependencies [3b88b3f]
-
Updated dependencies [d3e71fc]
- @temporal-contract/contract@6.1.0
@temporal-contract/testing@6.1.0
Minor Changes
-
3b88b3f: Audit fixes across the published packages.
@temporal-contract/testing:@temporalio/clientand@temporalio/worker
moved fromdependenciestopeerDependencies(^1). Both packages' types are
exposed through the publicitfixture (Connection/NativeConnection), so
consumers must resolve them to a single instance to avoid disjoint nominal
types. Package managers that auto-install peers (npm 7+, pnpm with
autoInstallPeers) are unaffected; other setups must add the two packages
explicitly — any project using this testing helper already depends on them in
practice. Because that install-shape change can require consumer action, this is
released as a minor for@temporal-contract/testing. The staleconfig
entry was also dropped fromfiles.All packages:
sideEffects: falseis now declared, enabling bundler
tree-shaking. The worker package'screateTypedChildHandleno longer uses
anyinternally, and JSDoc examples were fixed to use ESM-correct imports
(.jsextensions,workflowsPathFromURLinstead ofrequire.resolve).
@temporal-contract/contract@6.1.0
Minor Changes
-
d3e71fc: Upgrade the
unthrownpeer dependency to^4(from^3).unthrown 4 is not compatible with unthrown 3 — most notably,
TaggedError
now reservesnameandmessageas payload fields (they are set via
Error, not passed as structured data). The client and worker error classes
were migrated accordingly; their public shape is unchanged (_tag,name,
message, and the typed payload fields are all still present and behave
identically). Consumers must be onunthrown@4.Released as a minor rather than a major: these packages have no external
consumers pinned tounthrown@3, so the peer-range change carries no
real-world break. If you depend on@temporal-contract/{contract,client,worker},
bumpunthrownto^4alongside this release.
Patch Changes
-
3b88b3f: Audit fixes across the published packages.
@temporal-contract/testing:@temporalio/clientand@temporalio/worker
moved fromdependenciestopeerDependencies(^1). Both packages' types are
exposed through the publicitfixture (Connection/NativeConnection), so
consumers must resolve them to a single instance to avoid disjoint nominal
types. Package managers that auto-install peers (npm 7+, pnpm with
autoInstallPeers) are unaffected; other setups must add the two packages
explicitly — any project using this testing helper already depends on them in
practice. Because that install-shape change can require consumer action, this is
released as a minor for@temporal-contract/testing. The staleconfig
entry was also dropped fromfiles.All packages:
sideEffects: falseis now declared, enabling bundler
tree-shaking. The worker package'screateTypedChildHandleno longer uses
anyinternally, and JSDoc examples were fixed to use ESM-correct imports
(.jsextensions,workflowsPathFromURLinstead ofrequire.resolve).
@temporal-contract/client@6.1.0
Minor Changes
-
d3e71fc: Upgrade the
unthrownpeer dependency to^4(from^3).unthrown 4 is not compatible with unthrown 3 — most notably,
TaggedError
now reservesnameandmessageas payload fields (they are set via
Error, not passed as structured data). The client and worker error classes
were migrated accordingly; their public shape is unchanged (_tag,name,
message, and the typed payload fields are all still present and behave
identically). Consumers must be onunthrown@4.Released as a minor rather than a major: these packages have no external
consumers pinned tounthrown@3, so the peer-range change carries no
real-world break. If you depend on@temporal-contract/{contract,client,worker},
bumpunthrownto^4alongside this release.
Patch Changes
-
3b88b3f: Audit fixes across the published packages.
@temporal-contract/testing:@temporalio/clientand@temporalio/worker
moved fromdependenciestopeerDependencies(^1). Both packages' types are
exposed through the publicitfixture (Connection/NativeConnection), so
consumers must resolve them to a single instance to avoid disjoint nominal
types. Package managers that auto-install peers (npm 7+, pnpm with
autoInstallPeers) are unaffected; other setups must add the two packages
explicitly — any project using this testing helper already depends on them in
practice. Because that install-shape change can require consumer action, this is
released as a minor for@temporal-contract/testing. The staleconfig
entry was also dropped fromfiles.All packages:
sideEffects: falseis now declared, enabling bundler
tree-shaking. The worker package'screateTypedChildHandleno longer uses
anyinternally, and JSDoc examples were fixed to use ESM-correct imports
(.jsextensions,workflowsPathFromURLinstead ofrequire.resolve). -
Updated dependencies [3b88b3f]
-
Updated dependencies [d3e71fc]
- @temporal-contract/contract@6.1.0
@temporal-contract/worker@6.0.0
Major Changes
-
6c79004: Upgrade to
unthrown3.0.0.The published packages'
unthrownpeer-dependency range moves to^3. unthrown 3.0.0's breaking change — removing the standaloneDefectconstructor in favour of adefectargument passed intofromPromise/fromThrowable'squalifycallback — does not affect temporal-contract, which never constructs defects (every boundary maps rejections to a modeled error). Everything else we use (Ok/Err,TaggedError,matchTags,fromPromise/fromSafePromise,result.match({ ok, err, defect }),.toAsync(), and theresult.isOk()/isErr()/isDefect()narrowing) is unchanged, so no source changes were required.Breaking for consumers: bump your own
unthrowninstall to^3.
Patch Changes
- Updated dependencies [6c79004]
- @temporal-contract/contract@6.0.0
@temporal-contract/worker@5.0.0
Major Changes
-
224e1ae: Upgrade to
unthrown2.0.0.The published packages'
unthrownpeer-dependency range moves to^2. unthrown 2.0.0 is API-compatible for everything temporal-contract uses — theOk/Err/Defectconstructors,TaggedError,matchTags,fromPromise/fromSafePromise,result.match({ ok, err, defect }),.toAsync(), andresult.isOk()/isErr()/isDefect()narrowing are all unchanged — so no source changes were required.Breaking for consumers: bump your own
unthrowninstall to^2. There are no other code changes.
Patch Changes
- Updated dependencies [224e1ae]
- @temporal-contract/contract@5.0.0
@temporal-contract/testing@6.0.0
Major Changes
-
6c79004: Upgrade to
unthrown3.0.0.The published packages'
unthrownpeer-dependency range moves to^3. unthrown 3.0.0's breaking change — removing the standaloneDefectconstructor in favour of adefectargument passed intofromPromise/fromThrowable'squalifycallback — does not affect temporal-contract, which never constructs defects (every boundary maps rejections to a modeled error). Everything else we use (Ok/Err,TaggedError,matchTags,fromPromise/fromSafePromise,result.match({ ok, err, defect }),.toAsync(), and theresult.isOk()/isErr()/isDefect()narrowing) is unchanged, so no source changes were required.Breaking for consumers: bump your own
unthrowninstall to^3.
@temporal-contract/testing@5.0.0
Major Changes
-
224e1ae: Upgrade to
unthrown2.0.0.The published packages'
unthrownpeer-dependency range moves to^2. unthrown 2.0.0 is API-compatible for everything temporal-contract uses — theOk/Err/Defectconstructors,TaggedError,matchTags,fromPromise/fromSafePromise,result.match({ ok, err, defect }),.toAsync(), andresult.isOk()/isErr()/isDefect()narrowing are all unchanged — so no source changes were required.Breaking for consumers: bump your own
unthrowninstall to^2. There are no other code changes.
@temporal-contract/contract@6.0.0
Major Changes
-
6c79004: Upgrade to
unthrown3.0.0.The published packages'
unthrownpeer-dependency range moves to^3. unthrown 3.0.0's breaking change — removing the standaloneDefectconstructor in favour of adefectargument passed intofromPromise/fromThrowable'squalifycallback — does not affect temporal-contract, which never constructs defects (every boundary maps rejections to a modeled error). Everything else we use (Ok/Err,TaggedError,matchTags,fromPromise/fromSafePromise,result.match({ ok, err, defect }),.toAsync(), and theresult.isOk()/isErr()/isDefect()narrowing) is unchanged, so no source changes were required.Breaking for consumers: bump your own
unthrowninstall to^3.
@temporal-contract/contract@5.0.0
Major Changes
-
224e1ae: Upgrade to
unthrown2.0.0.The published packages'
unthrownpeer-dependency range moves to^2. unthrown 2.0.0 is API-compatible for everything temporal-contract uses — theOk/Err/Defectconstructors,TaggedError,matchTags,fromPromise/fromSafePromise,result.match({ ok, err, defect }),.toAsync(), andresult.isOk()/isErr()/isDefect()narrowing are all unchanged — so no source changes were required.Breaking for consumers: bump your own
unthrowninstall to^2. There are no other code changes.