@temporalio/activity 1.14.2-canary-release-testing.0 → 1.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.d.ts CHANGED
@@ -55,16 +55,62 @@
55
55
  *
56
56
  * #### An Activity that sends progress heartbeats and can be Cancelled
57
57
  *
58
- * <!--SNIPSTART typescript-activity-fake-progress-->
59
- * <!--SNIPEND-->
58
+ * ```ts
59
+ * import { activityInfo, log, sleep, CancelledFailure, heartbeat } from '@temporalio/activity';
60
+ *
61
+ * export async function fakeProgress(sleepIntervalMs = 1000): Promise<void> {
62
+ * try {
63
+ * // allow for resuming from heartbeat
64
+ * const startingPoint = activityInfo().heartbeatDetails || 1;
65
+ * log.info('Starting activity at progress', { startingPoint });
66
+ * for (let progress = startingPoint; progress <= 100; ++progress) {
67
+ * // simple utility to sleep in activity for given interval or throw if Activity is cancelled
68
+ * // don't confuse with Workflow.sleep which is only used in Workflow functions!
69
+ * log.info('Progress', { progress });
70
+ * await sleep(sleepIntervalMs);
71
+ * heartbeat(progress);
72
+ * }
73
+ * } catch (err) {
74
+ * if (err instanceof CancelledFailure) {
75
+ * log.warn('Fake progress activity cancelled', { message: err.message });
76
+ * // Cleanup
77
+ * }
78
+ * throw err;
79
+ * }
80
+ * }
81
+ * ```
60
82
  *
61
83
  * #### An Activity that makes a cancellable HTTP request
62
84
  *
63
85
  * It passes the `AbortSignal` to {@link https://github.com/node-fetch/node-fetch#api | `fetch`}: `fetch(url, { signal:
64
86
  * Context.current().cancellationSignal })`.
65
87
  *
66
- * <!--SNIPSTART typescript-activity-cancellable-fetch-->
67
- * <!--SNIPEND-->
88
+ * ```ts
89
+ * import fetch from 'node-fetch';
90
+ * import { cancellationSignal, heartbeat } from '@temporalio/activity';
91
+ * import type { AbortSignal as FetchAbortSignal } from 'node-fetch/externals';
92
+ *
93
+ * export async function cancellableFetch(url: string): Promise<Uint8Array> {
94
+ * const response = await fetch(url, { signal: cancellationSignal() as FetchAbortSignal });
95
+ * const contentLengthHeader = response.headers.get('Content-Length');
96
+ * if (contentLengthHeader === null) {
97
+ * throw new Error('expected Content-Length header to be set');
98
+ * }
99
+ * const contentLength = parseInt(contentLengthHeader);
100
+ * let bytesRead = 0;
101
+ * const chunks: Buffer[] = [];
102
+ *
103
+ * for await (const chunk of response.body) {
104
+ * if (!(chunk instanceof Buffer)) {
105
+ * throw new TypeError('Expected Buffer');
106
+ * }
107
+ * bytesRead += chunk.length;
108
+ * chunks.push(chunk);
109
+ * heartbeat(bytesRead / contentLength);
110
+ * }
111
+ * return Buffer.concat(chunks);
112
+ * }
113
+ * ```
68
114
  *
69
115
  * @module
70
116
  */
@@ -72,27 +118,8 @@ import { AsyncLocalStorage } from 'node:async_hooks';
72
118
  import { Logger, Duration, MetricMeter, Priority, ActivityCancellationDetails, RetryPolicy } from '@temporalio/common';
73
119
  import { ActivityCancellationDetailsHolder } from '@temporalio/common/lib/activity-cancellation-details';
74
120
  import { Client } from '@temporalio/client';
75
- export { ActivityFunction, ActivityInterface, // eslint-disable-line deprecation/deprecation
76
- ApplicationFailure, CancelledFailure, UntypedActivities, } from '@temporalio/common';
77
- /**
78
- * Throw this error from an Activity in order to make the Worker forget about this Activity.
79
- *
80
- * The Activity can then be completed asynchronously (from anywhere—usually outside the Worker) using
81
- * {@link Client.activity}.
82
- *
83
- * @example
84
- *
85
- * ```ts
86
- *import { CompleteAsyncError } from '@temporalio/activity';
87
- *
88
- *export async function myActivity(): Promise<never> {
89
- * // ...
90
- * throw new CompleteAsyncError();
91
- *}
92
- * ```
93
- */
94
- export declare class CompleteAsyncError extends Error {
95
- }
121
+ export { ActivityFunction, ActivityInterface, // eslint-disable-line @typescript-eslint/no-deprecated
122
+ ApplicationFailure, CancelledFailure, CompleteAsyncError, UntypedActivities, } from '@temporalio/common';
96
123
  export declare const asyncLocalStorage: AsyncLocalStorage<Context>;
97
124
  /**
98
125
  * Holds information about the current Activity Execution. Retrieved inside an Activity with `Context.current().info`.
package/lib/index.js CHANGED
@@ -56,25 +56,65 @@
56
56
  *
57
57
  * #### An Activity that sends progress heartbeats and can be Cancelled
58
58
  *
59
- * <!--SNIPSTART typescript-activity-fake-progress-->
60
- * <!--SNIPEND-->
59
+ * ```ts
60
+ * import { activityInfo, log, sleep, CancelledFailure, heartbeat } from '@temporalio/activity';
61
+ *
62
+ * export async function fakeProgress(sleepIntervalMs = 1000): Promise<void> {
63
+ * try {
64
+ * // allow for resuming from heartbeat
65
+ * const startingPoint = activityInfo().heartbeatDetails || 1;
66
+ * log.info('Starting activity at progress', { startingPoint });
67
+ * for (let progress = startingPoint; progress <= 100; ++progress) {
68
+ * // simple utility to sleep in activity for given interval or throw if Activity is cancelled
69
+ * // don't confuse with Workflow.sleep which is only used in Workflow functions!
70
+ * log.info('Progress', { progress });
71
+ * await sleep(sleepIntervalMs);
72
+ * heartbeat(progress);
73
+ * }
74
+ * } catch (err) {
75
+ * if (err instanceof CancelledFailure) {
76
+ * log.warn('Fake progress activity cancelled', { message: err.message });
77
+ * // Cleanup
78
+ * }
79
+ * throw err;
80
+ * }
81
+ * }
82
+ * ```
61
83
  *
62
84
  * #### An Activity that makes a cancellable HTTP request
63
85
  *
64
86
  * It passes the `AbortSignal` to {@link https://github.com/node-fetch/node-fetch#api | `fetch`}: `fetch(url, { signal:
65
87
  * Context.current().cancellationSignal })`.
66
88
  *
67
- * <!--SNIPSTART typescript-activity-cancellable-fetch-->
68
- * <!--SNIPEND-->
89
+ * ```ts
90
+ * import fetch from 'node-fetch';
91
+ * import { cancellationSignal, heartbeat } from '@temporalio/activity';
92
+ * import type { AbortSignal as FetchAbortSignal } from 'node-fetch/externals';
93
+ *
94
+ * export async function cancellableFetch(url: string): Promise<Uint8Array> {
95
+ * const response = await fetch(url, { signal: cancellationSignal() as FetchAbortSignal });
96
+ * const contentLengthHeader = response.headers.get('Content-Length');
97
+ * if (contentLengthHeader === null) {
98
+ * throw new Error('expected Content-Length header to be set');
99
+ * }
100
+ * const contentLength = parseInt(contentLengthHeader);
101
+ * let bytesRead = 0;
102
+ * const chunks: Buffer[] = [];
103
+ *
104
+ * for await (const chunk of response.body) {
105
+ * if (!(chunk instanceof Buffer)) {
106
+ * throw new TypeError('Expected Buffer');
107
+ * }
108
+ * bytesRead += chunk.length;
109
+ * chunks.push(chunk);
110
+ * heartbeat(bytesRead / contentLength);
111
+ * }
112
+ * return Buffer.concat(chunks);
113
+ * }
114
+ * ```
69
115
  *
70
116
  * @module
71
117
  */
72
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
73
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
74
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
75
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
76
- return c > 3 && r && Object.defineProperty(target, key, r), r;
77
- };
78
118
  Object.defineProperty(exports, "__esModule", { value: true });
79
119
  exports.metricMeter = exports.log = exports.Context = exports.asyncLocalStorage = exports.CompleteAsyncError = exports.CancelledFailure = exports.ApplicationFailure = void 0;
80
120
  exports.activityInfo = activityInfo;
@@ -87,33 +127,10 @@ exports.getClient = getClient;
87
127
  const node_async_hooks_1 = require("node:async_hooks");
88
128
  const common_1 = require("@temporalio/common");
89
129
  const time_1 = require("@temporalio/common/lib/time");
90
- const type_helpers_1 = require("@temporalio/common/lib/type-helpers");
91
130
  var common_2 = require("@temporalio/common");
92
131
  Object.defineProperty(exports, "ApplicationFailure", { enumerable: true, get: function () { return common_2.ApplicationFailure; } });
93
132
  Object.defineProperty(exports, "CancelledFailure", { enumerable: true, get: function () { return common_2.CancelledFailure; } });
94
- /**
95
- * Throw this error from an Activity in order to make the Worker forget about this Activity.
96
- *
97
- * The Activity can then be completed asynchronously (from anywhere—usually outside the Worker) using
98
- * {@link Client.activity}.
99
- *
100
- * @example
101
- *
102
- * ```ts
103
- *import { CompleteAsyncError } from '@temporalio/activity';
104
- *
105
- *export async function myActivity(): Promise<never> {
106
- * // ...
107
- * throw new CompleteAsyncError();
108
- *}
109
- * ```
110
- */
111
- let CompleteAsyncError = class CompleteAsyncError extends Error {
112
- };
113
- exports.CompleteAsyncError = CompleteAsyncError;
114
- exports.CompleteAsyncError = CompleteAsyncError = __decorate([
115
- (0, type_helpers_1.SymbolBasedInstanceOfError)('CompleteAsyncError')
116
- ], CompleteAsyncError);
133
+ Object.defineProperty(exports, "CompleteAsyncError", { enumerable: true, get: function () { return common_2.CompleteAsyncError; } });
117
134
  // Make it safe to use @temporalio/activity with multiple versions installed.
118
135
  const asyncLocalStorageSymbol = Symbol.for('__temporal_activity_context_storage__');
119
136
  if (!globalThis[asyncLocalStorageSymbol]) {
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqEG;;;;;;;;;AA0UH,oCAGC;AAsCD,sBAEC;AAeD,8BAEC;AAWD,8BAEC;AAQD,kDAEC;AAgBD,gDAEC;AAcD,8BAEC;AA7bD,uDAAqD;AACrD,+CAU4B;AAC5B,sDAAyD;AACzD,sEAAiF;AAIjF,6CAM4B;AAH1B,4GAAA,kBAAkB,OAAA;AAClB,0GAAA,gBAAgB,OAAA;AAIlB;;;;;;;;;;;;;;;;GAgBG;AAEI,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,KAAK;CAAG,CAAA;AAAnC,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,yCAA0B,EAAC,oBAAoB,CAAC;GACpC,kBAAkB,CAAiB;AAEhD,6EAA6E;AAC7E,MAAM,uBAAuB,GAAG,MAAM,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;AACpF,IAAI,CAAE,UAAkB,CAAC,uBAAuB,CAAC,EAAE,CAAC;IACjD,UAAkB,CAAC,uBAAuB,CAAC,GAAG,IAAI,oCAAiB,EAAW,CAAC;AAClF,CAAC;AAEY,QAAA,iBAAiB,GAAgC,UAAkB,CAAC,uBAAuB,CAAC,CAAC;AAwG1G;;;;;;;;;GASG;AACH,MAAa,OAAO;IAuBA;IAUA;IAgBA;IAKG;IAKA;IAiBZ;IAQS;IAKG;IAxFrB;;;;OAIG;IACI,MAAM,CAAC,OAAO;QACnB,MAAM,KAAK,GAAG,yBAAiB,CAAC,QAAQ,EAAE,CAAC;QAC3C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACH;IACE;;OAEG;IACa,IAAU;IAE1B;;;;;;;OAOG;IACa,SAAyB;IAEzC;;;;;;;;;;;;;OAaG;IACa,kBAA+B;IAE/C;;OAEG;IACgB,WAAoC;IAEvD;;OAEG;IACgB,OAA2B;IAE9C;;;;;;;;;;;;;;OAcG;IACI,GAAW;IAElB;;;;;OAKG;IACa,WAAwB;IAExC;;OAEG;IACgB,oBAAuD;QAlE1D,SAAI,GAAJ,IAAI,CAAM;QAUV,cAAS,GAAT,SAAS,CAAgB;QAgBzB,uBAAkB,GAAlB,kBAAkB,CAAa;QAK5B,gBAAW,GAAX,WAAW,CAAyB;QAKpC,YAAO,GAAP,OAAO,CAAoB;QAiBvC,QAAG,GAAH,GAAG,CAAQ;QAQF,gBAAW,GAAX,WAAW,CAAa;QAKrB,yBAAoB,GAApB,oBAAoB,CAAmC;IACzE,CAAC;IAEJ;;;;;;;;;;;;;;;;;;;;OAoBG;IACa,SAAS,GAAG,CAAC,OAAiB,EAAQ,EAAE;QACtD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF;;;;;;;;;OASG;IACH,IAAW,MAAM;QACf,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,0BAAiB,CACzB,+FAA+F,CAChG,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACa,KAAK,GAAG,CAAC,EAAY,EAAiB,EAAE;QACtD,IAAI,MAAsB,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAC1C,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,IAAA,iBAAU,EAAC,EAAE,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IACnF,CAAC,CAAC;IAEF;;;;;OAKG;IACH,IAAW,mBAAmB;QAC5B,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;IAC3C,CAAC;CACF;AA9JD,0BA8JC;AAED;;GAEG;AACH,SAAgB,YAAY;IAC1B,qHAAqH;IACrH,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACU,QAAA,GAAG,GAAW;IACzB,gGAAgG;IAChG,wGAAwG;IACxG,GAAG,CAAC,KAAe,EAAE,OAAe,EAAE,IAAkB;QACtD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IACD,KAAK,CAAC,OAAe,EAAE,IAAkB;QACvC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IACD,KAAK,CAAC,OAAe,EAAE,IAAkB;QACvC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,CAAC,OAAe,EAAE,IAAkB;QACtC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,CAAC,OAAe,EAAE,IAAkB;QACtC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IACD,KAAK,CAAC,OAAe,EAAE,IAAkB;QACvC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;CACF,CAAC;AAEF;;;;;;;GAOG;AACH,SAAgB,KAAK,CAAC,EAAY;IAChC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,SAAS,CAAC,OAAiB;IACzC,OAAO,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,SAAS;IACvB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC;AACrC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB;IACjC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,mBAAmB,CAAC;AAC/C,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAgB,kBAAkB;IAChC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,kBAAkB,CAAC;AAC9C,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,SAAS;IACvB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC;AAClC,CAAC;AAED;;;;;;;GAOG;AACU,QAAA,WAAW,GAAgB;IACtC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW;QACnC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAC9E,CAAC;IACD,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,KAAK,EAAE,IAAI,EAAE,WAAW;QACxD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAC3F,CAAC;IACD,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,KAAK,EAAE,IAAI,EAAE,WAAW;QACpD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IACvF,CAAC;IACD,QAAQ,CAAC,IAAI;QACX,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@temporalio/activity",
3
- "version": "1.14.2-canary-release-testing.0",
3
+ "version": "1.16.0",
4
4
  "description": "Temporal.io SDK Activity sub-package",
5
5
  "main": "lib/index.js",
6
6
  "types": "./lib/index.d.ts",
@@ -14,11 +14,11 @@
14
14
  "license": "MIT",
15
15
  "dependencies": {
16
16
  "abort-controller": "^3.0.0",
17
- "@temporalio/common": "1.14.2-canary-release-testing.0",
18
- "@temporalio/client": "1.14.2-canary-release-testing.0"
17
+ "@temporalio/common": "1.16.0",
18
+ "@temporalio/client": "1.16.0"
19
19
  },
20
20
  "engines": {
21
- "node": ">= 18.0.0"
21
+ "node": ">= 20.0.0"
22
22
  },
23
23
  "bugs": {
24
24
  "url": "https://github.com/temporalio/sdk-typescript/issues"
package/src/index.ts CHANGED
@@ -55,16 +55,62 @@
55
55
  *
56
56
  * #### An Activity that sends progress heartbeats and can be Cancelled
57
57
  *
58
- * <!--SNIPSTART typescript-activity-fake-progress-->
59
- * <!--SNIPEND-->
58
+ * ```ts
59
+ * import { activityInfo, log, sleep, CancelledFailure, heartbeat } from '@temporalio/activity';
60
+ *
61
+ * export async function fakeProgress(sleepIntervalMs = 1000): Promise<void> {
62
+ * try {
63
+ * // allow for resuming from heartbeat
64
+ * const startingPoint = activityInfo().heartbeatDetails || 1;
65
+ * log.info('Starting activity at progress', { startingPoint });
66
+ * for (let progress = startingPoint; progress <= 100; ++progress) {
67
+ * // simple utility to sleep in activity for given interval or throw if Activity is cancelled
68
+ * // don't confuse with Workflow.sleep which is only used in Workflow functions!
69
+ * log.info('Progress', { progress });
70
+ * await sleep(sleepIntervalMs);
71
+ * heartbeat(progress);
72
+ * }
73
+ * } catch (err) {
74
+ * if (err instanceof CancelledFailure) {
75
+ * log.warn('Fake progress activity cancelled', { message: err.message });
76
+ * // Cleanup
77
+ * }
78
+ * throw err;
79
+ * }
80
+ * }
81
+ * ```
60
82
  *
61
83
  * #### An Activity that makes a cancellable HTTP request
62
84
  *
63
85
  * It passes the `AbortSignal` to {@link https://github.com/node-fetch/node-fetch#api | `fetch`}: `fetch(url, { signal:
64
86
  * Context.current().cancellationSignal })`.
65
87
  *
66
- * <!--SNIPSTART typescript-activity-cancellable-fetch-->
67
- * <!--SNIPEND-->
88
+ * ```ts
89
+ * import fetch from 'node-fetch';
90
+ * import { cancellationSignal, heartbeat } from '@temporalio/activity';
91
+ * import type { AbortSignal as FetchAbortSignal } from 'node-fetch/externals';
92
+ *
93
+ * export async function cancellableFetch(url: string): Promise<Uint8Array> {
94
+ * const response = await fetch(url, { signal: cancellationSignal() as FetchAbortSignal });
95
+ * const contentLengthHeader = response.headers.get('Content-Length');
96
+ * if (contentLengthHeader === null) {
97
+ * throw new Error('expected Content-Length header to be set');
98
+ * }
99
+ * const contentLength = parseInt(contentLengthHeader);
100
+ * let bytesRead = 0;
101
+ * const chunks: Buffer[] = [];
102
+ *
103
+ * for await (const chunk of response.body) {
104
+ * if (!(chunk instanceof Buffer)) {
105
+ * throw new TypeError('Expected Buffer');
106
+ * }
107
+ * bytesRead += chunk.length;
108
+ * chunks.push(chunk);
109
+ * heartbeat(bytesRead / contentLength);
110
+ * }
111
+ * return Buffer.concat(chunks);
112
+ * }
113
+ * ```
68
114
  *
69
115
  * @module
70
116
  */
@@ -82,38 +128,19 @@ import {
82
128
  RetryPolicy,
83
129
  } from '@temporalio/common';
84
130
  import { msToNumber } from '@temporalio/common/lib/time';
85
- import { SymbolBasedInstanceOfError } from '@temporalio/common/lib/type-helpers';
131
+
86
132
  import { ActivityCancellationDetailsHolder } from '@temporalio/common/lib/activity-cancellation-details';
87
133
  import { Client } from '@temporalio/client';
88
134
 
89
135
  export {
90
136
  ActivityFunction,
91
- ActivityInterface, // eslint-disable-line deprecation/deprecation
137
+ ActivityInterface, // eslint-disable-line @typescript-eslint/no-deprecated
92
138
  ApplicationFailure,
93
139
  CancelledFailure,
140
+ CompleteAsyncError,
94
141
  UntypedActivities,
95
142
  } from '@temporalio/common';
96
143
 
97
- /**
98
- * Throw this error from an Activity in order to make the Worker forget about this Activity.
99
- *
100
- * The Activity can then be completed asynchronously (from anywhere—usually outside the Worker) using
101
- * {@link Client.activity}.
102
- *
103
- * @example
104
- *
105
- * ```ts
106
- *import { CompleteAsyncError } from '@temporalio/activity';
107
- *
108
- *export async function myActivity(): Promise<never> {
109
- * // ...
110
- * throw new CompleteAsyncError();
111
- *}
112
- * ```
113
- */
114
- @SymbolBasedInstanceOfError('CompleteAsyncError')
115
- export class CompleteAsyncError extends Error {}
116
-
117
144
  // Make it safe to use @temporalio/activity with multiple versions installed.
118
145
  const asyncLocalStorageSymbol = Symbol.for('__temporal_activity_context_storage__');
119
146
  if (!(globalThis as any)[asyncLocalStorageSymbol]) {