Skip to content

Releases: btravstack/temporal-contract

@temporal-contract/worker@6.1.0

Choose a tag to compare

Minor Changes

  • 2960244: Add the qualify(type, options?) helper to @temporal-contract/worker/activity.

    It builds the qualifier function fromPromise needs, 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 Error rejection keeps its own message and is preserved as cause;
    non-Error rejections fall back to options.message (or String(error)).
    options.nonRetryable and options.details are forwarded to the failure.
    The qualifier always wraps — even an ApplicationFailure rejection — so the
    declared type is guaranteed for retry policies.

  • d3e71fc: Upgrade the unthrown peer dependency to ^4 (from ^3).

    unthrown 4 is not compatible with unthrown 3 — most notably, TaggedError
    now reserves name and message as 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 on unthrown@4.

    Released as a minor rather than a major: these packages have no external
    consumers pinned to unthrown@3, so the peer-range change carries no
    real-world break. If you depend on @temporal-contract/{contract,client,worker},
    bump unthrown to ^4 alongside this release.

Patch Changes

  • 3b88b3f: Audit fixes across the published packages.

    @temporal-contract/testing: @temporalio/client and @temporalio/worker
    moved from dependencies to peerDependencies (^1). Both packages' types are
    exposed through the public it fixture (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 stale config
    entry was also dropped from files.

    All packages: sideEffects: false is now declared, enabling bundler
    tree-shaking. The worker package's createTypedChildHandle no longer uses
    any internally, and JSDoc examples were fixed to use ESM-correct imports
    (.js extensions, workflowsPathFromURL instead of require.resolve).

  • Updated dependencies [3b88b3f]

  • Updated dependencies [d3e71fc]

    • @temporal-contract/contract@6.1.0

@temporal-contract/testing@6.1.0

Choose a tag to compare

Minor Changes

  • 3b88b3f: Audit fixes across the published packages.

    @temporal-contract/testing: @temporalio/client and @temporalio/worker
    moved from dependencies to peerDependencies (^1). Both packages' types are
    exposed through the public it fixture (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 stale config
    entry was also dropped from files.

    All packages: sideEffects: false is now declared, enabling bundler
    tree-shaking. The worker package's createTypedChildHandle no longer uses
    any internally, and JSDoc examples were fixed to use ESM-correct imports
    (.js extensions, workflowsPathFromURL instead of require.resolve).

@temporal-contract/contract@6.1.0

Choose a tag to compare

Minor Changes

  • d3e71fc: Upgrade the unthrown peer dependency to ^4 (from ^3).

    unthrown 4 is not compatible with unthrown 3 — most notably, TaggedError
    now reserves name and message as 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 on unthrown@4.

    Released as a minor rather than a major: these packages have no external
    consumers pinned to unthrown@3, so the peer-range change carries no
    real-world break. If you depend on @temporal-contract/{contract,client,worker},
    bump unthrown to ^4 alongside this release.

Patch Changes

  • 3b88b3f: Audit fixes across the published packages.

    @temporal-contract/testing: @temporalio/client and @temporalio/worker
    moved from dependencies to peerDependencies (^1). Both packages' types are
    exposed through the public it fixture (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 stale config
    entry was also dropped from files.

    All packages: sideEffects: false is now declared, enabling bundler
    tree-shaking. The worker package's createTypedChildHandle no longer uses
    any internally, and JSDoc examples were fixed to use ESM-correct imports
    (.js extensions, workflowsPathFromURL instead of require.resolve).

@temporal-contract/client@6.1.0

Choose a tag to compare

Minor Changes

  • d3e71fc: Upgrade the unthrown peer dependency to ^4 (from ^3).

    unthrown 4 is not compatible with unthrown 3 — most notably, TaggedError
    now reserves name and message as 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 on unthrown@4.

    Released as a minor rather than a major: these packages have no external
    consumers pinned to unthrown@3, so the peer-range change carries no
    real-world break. If you depend on @temporal-contract/{contract,client,worker},
    bump unthrown to ^4 alongside this release.

Patch Changes

  • 3b88b3f: Audit fixes across the published packages.

    @temporal-contract/testing: @temporalio/client and @temporalio/worker
    moved from dependencies to peerDependencies (^1). Both packages' types are
    exposed through the public it fixture (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 stale config
    entry was also dropped from files.

    All packages: sideEffects: false is now declared, enabling bundler
    tree-shaking. The worker package's createTypedChildHandle no longer uses
    any internally, and JSDoc examples were fixed to use ESM-correct imports
    (.js extensions, workflowsPathFromURL instead of require.resolve).

  • Updated dependencies [3b88b3f]

  • Updated dependencies [d3e71fc]

    • @temporal-contract/contract@6.1.0

@temporal-contract/worker@6.0.0

Choose a tag to compare

Major Changes

  • 6c79004: Upgrade to unthrown 3.0.0.

    The published packages' unthrown peer-dependency range moves to ^3. unthrown 3.0.0's breaking change — removing the standalone Defect constructor in favour of a defect argument passed into fromPromise / fromThrowable's qualify callback — 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 the result.isOk() / isErr() / isDefect() narrowing) is unchanged, so no source changes were required.

    Breaking for consumers: bump your own unthrown install to ^3.

Patch Changes

  • Updated dependencies [6c79004]
    • @temporal-contract/contract@6.0.0

@temporal-contract/worker@5.0.0

Choose a tag to compare

Major Changes

  • 224e1ae: Upgrade to unthrown 2.0.0.

    The published packages' unthrown peer-dependency range moves to ^2. unthrown 2.0.0 is API-compatible for everything temporal-contract uses — the Ok / Err / Defect constructors, TaggedError, matchTags, fromPromise / fromSafePromise, result.match({ ok, err, defect }), .toAsync(), and result.isOk() / isErr() / isDefect() narrowing are all unchanged — so no source changes were required.

    Breaking for consumers: bump your own unthrown install 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

Choose a tag to compare

Major Changes

  • 6c79004: Upgrade to unthrown 3.0.0.

    The published packages' unthrown peer-dependency range moves to ^3. unthrown 3.0.0's breaking change — removing the standalone Defect constructor in favour of a defect argument passed into fromPromise / fromThrowable's qualify callback — 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 the result.isOk() / isErr() / isDefect() narrowing) is unchanged, so no source changes were required.

    Breaking for consumers: bump your own unthrown install to ^3.

@temporal-contract/testing@5.0.0

Choose a tag to compare

Major Changes

  • 224e1ae: Upgrade to unthrown 2.0.0.

    The published packages' unthrown peer-dependency range moves to ^2. unthrown 2.0.0 is API-compatible for everything temporal-contract uses — the Ok / Err / Defect constructors, TaggedError, matchTags, fromPromise / fromSafePromise, result.match({ ok, err, defect }), .toAsync(), and result.isOk() / isErr() / isDefect() narrowing are all unchanged — so no source changes were required.

    Breaking for consumers: bump your own unthrown install to ^2. There are no other code changes.

@temporal-contract/contract@6.0.0

Choose a tag to compare

Major Changes

  • 6c79004: Upgrade to unthrown 3.0.0.

    The published packages' unthrown peer-dependency range moves to ^3. unthrown 3.0.0's breaking change — removing the standalone Defect constructor in favour of a defect argument passed into fromPromise / fromThrowable's qualify callback — 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 the result.isOk() / isErr() / isDefect() narrowing) is unchanged, so no source changes were required.

    Breaking for consumers: bump your own unthrown install to ^3.

@temporal-contract/contract@5.0.0

Choose a tag to compare

Major Changes

  • 224e1ae: Upgrade to unthrown 2.0.0.

    The published packages' unthrown peer-dependency range moves to ^2. unthrown 2.0.0 is API-compatible for everything temporal-contract uses — the Ok / Err / Defect constructors, TaggedError, matchTags, fromPromise / fromSafePromise, result.match({ ok, err, defect }), .toAsync(), and result.isOk() / isErr() / isDefect() narrowing are all unchanged — so no source changes were required.

    Breaking for consumers: bump your own unthrown install to ^2. There are no other code changes.