@temporalio/activity 0.22.0 → 1.0.0-rc.1

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/README.md CHANGED
@@ -2,8 +2,8 @@
2
2
 
3
3
  [![NPM](https://img.shields.io/npm/v/@temporalio/activity?style=for-the-badge)](https://www.npmjs.com/package/@temporalio/activity)
4
4
 
5
- Part of [Temporal](https://temporal.io)'s [TypeScript SDK](https://docs.temporal.io/docs/typescript/introduction/).
5
+ Part of [Temporal](https://temporal.io)'s [TypeScript SDK](https://docs.temporal.io/typescript/introduction/).
6
6
 
7
- - [Activity docs](https://docs.temporal.io/docs/typescript/activities/)
7
+ - [Activity docs](https://docs.temporal.io/typescript/activities/)
8
8
  - [API reference](https://typescript.temporal.io/api/namespaces/activity)
9
9
  - [Sample projects](https://github.com/temporalio/samples-typescript)
package/lib/index.d.ts CHANGED
@@ -1,25 +1,42 @@
1
1
  /**
2
- * This library provides tools for authoring activities.
2
+ * This package's main export is {@link Context}. Get the current Activity's context with
3
+ * {@link Context.current | `Context.current()`}:
3
4
  *
4
- * Import this module from Activity code - must **not** be used in Workflows.
5
+ * ```ts
6
+ * import { Context } from '@temporalio/activity';
5
7
  *
6
- * Any function can be used as an Activity as long as its parameters and return value are serializable using a [`DataConverter`](../interfaces/worker.DataConverter.md).
8
+ * export async function myActivity() {
9
+ * const context = Context.current();
10
+ * }
11
+ * ```
12
+ *
13
+ * Any function can be used as an Activity as long as its parameters and return value are serializable using a
14
+ * {@link https://docs.temporal.io/concepts/what-is-a-data-converter/ | DataConverter}.
7
15
  *
8
16
  * ### Cancellation
9
- * Activities may be cancelled only if they [emit heartbeats](../classes/activity.Context.md#heartbeat).<br/>
10
- * There are 2 ways to handle Activity cancellation:
11
- * 1. await on [`Context.current().cancelled`](../classes/activity.Context.md#cancelled)
12
- * 1. Pass the context's [abort signal](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal) at [`Context.current().cancellationSignal`](../classes/activity.Context.md#cancellationsignal) to a library that supports it
17
+ *
18
+ * Activities may be cancelled only if they {@link Context.heartbeat | emit heartbeats}.
19
+ *
20
+ * There are two ways to handle Activity cancellation:
21
+ * 1. await on {@link Context.cancelled | `Context.current().cancelled`} or
22
+ * {@link Context.sleep | `Context.current().sleep()`}, which each throw a
23
+ * {@link CancelledFailure}.
24
+ * 1. Pass the context's {@link https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal | `AbortSignal`} at
25
+ * {@link Context.cancellationSignal | `Context.current().cancellationSignal`} to a library that
26
+ * supports it.
13
27
  *
14
28
  * ### Examples
15
29
  *
16
- * #### An Activity that fakes progress and can be cancelled
30
+ * #### An Activity that sends progress heartbeats and can be cancelled
17
31
  *
18
32
  * <!--SNIPSTART typescript-activity-fake-progress-->
19
33
  * <!--SNIPEND-->
20
34
  *
21
35
  * #### An Activity that makes a cancellable HTTP request
22
36
  *
37
+ * It passes the `AbortSignal` to {@link https://github.com/node-fetch/node-fetch#api | `fetch`}: `fetch(url, { signal:
38
+ * Context.current().cancellationSignal })`.
39
+ *
23
40
  * <!--SNIPSTART typescript-activity-cancellable-fetch-->
24
41
  * <!--SNIPEND-->
25
42
  *
@@ -29,13 +46,25 @@
29
46
  import { AbortSignal } from 'abort-controller';
30
47
  import { AsyncLocalStorage } from 'async_hooks';
31
48
  export { CancelledFailure } from '@temporalio/common';
32
- export { ActivityFunction, ActivityInterface } from '@temporalio/internal-workflow-common';
49
+ export { ActivityFunction, ActivityInterface, // eslint-disable-line deprecation/deprecation
50
+ UntypedActivities, } from '@temporalio/internal-workflow-common';
51
+ export * from '@temporalio/internal-workflow-common/lib/errors';
33
52
  /**
34
- * Throw this error from an Activity in order to make the Worker
35
- * forget about this Activity.
53
+ * Throw this error from an Activity in order to make the Worker forget about this Activity.
54
+ *
55
+ * The Activity can then be completed asynchronously (from anywhere—usually outside the Worker) using
56
+ * {@link AsyncCompletionClient}.
57
+ *
58
+ * @example
59
+ *
60
+ *```ts
61
+ *import { CompleteAsyncError } from '@temporalio/activity';
36
62
  *
37
- * The Activity can be completed asynchronously using
38
- * {@link AsyncCompletionClient}
63
+ *export async function myActivity(): Promise<never> {
64
+ * // ...
65
+ * throw new CompleteAsyncError();
66
+ *}
67
+ *```
39
68
  */
40
69
  export declare class CompleteAsyncError extends Error {
41
70
  readonly name: string;
@@ -44,7 +73,7 @@ export declare class CompleteAsyncError extends Error {
44
73
  /** @ignore */
45
74
  export declare const asyncLocalStorage: AsyncLocalStorage<Context>;
46
75
  /**
47
- * Holds information about the current executing Activity
76
+ * Holds information about the current Activity Execution. Retrieved inside an Activity with `Context.current().info`.
48
77
  */
49
78
  export interface Info {
50
79
  taskToken: Uint8Array;
@@ -109,11 +138,20 @@ export interface Info {
109
138
  * Use this in order to resume your Activity from checkpoint.
110
139
  */
111
140
  heartbeatDetails: any;
141
+ /**
142
+ * Task queue the Activity is scheduled in, set to the Workflow's task queue in case of local Activity.
143
+ */
144
+ taskQueue: string;
112
145
  }
113
146
  /**
114
- * Activity Context manager.
147
+ * Activity Context, used to:
148
+ *
149
+ * - Get {@link Info} about the current Activity Execution
150
+ * - Send {@link https://docs.temporal.io/concepts/what-is-an-activity-heartbeat | heartbeats}
151
+ * - Get notified of Activity cancellation
152
+ * - Sleep (cancellation-aware)
115
153
  *
116
- * Call `Context.current()` from Activity code in order to send heartbeats and get notified of Activity cancellation.
154
+ * Call `Context.current()` from Activity code in order to get the current Activity's Context.
117
155
  */
118
156
  export declare class Context {
119
157
  /**
@@ -123,13 +161,21 @@ export declare class Context {
123
161
  /**
124
162
  * Await this promise in an Activity to get notified of cancellation.
125
163
  *
126
- * This promise will never be resolved, it will only be rejected with a {@link CancelledFailure}.
164
+ * This promise will never resolve—it will only be rejected with a {@link CancelledFailure}.
165
+ *
166
+ * @see [Cancellation](/api/namespaces/activity#cancellation)
127
167
  */
128
168
  readonly cancelled: Promise<never>;
129
169
  /**
130
- * An `AbortSignal` which can be used to cancel requests on Activity cancellation.
170
+ * An {@link https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal | `AbortSignal`} that can be used to react to
171
+ * Activity cancellation.
172
+ *
173
+ * Used by {@link https://www.npmjs.com/package/node-fetch#request-cancellation-with-abortsignal | fetch} to abort an
174
+ * in-progress request and
175
+ * {@link https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options child_process}
176
+ * to abort a child process, and is supported by some other libraries as well.
131
177
  *
132
- * Typically used by the {@link https://www.npmjs.com/package/node-fetch#request-cancellation-with-abortsignal | fetch} and {@link https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options child_process} libraries but is supported by a few other libraries as well.
178
+ * @see [Cancellation](/api/namespaces/activity#cancellation)
133
179
  */
134
180
  readonly cancellationSignal: AbortSignal;
135
181
  /**
@@ -143,11 +189,17 @@ export declare class Context {
143
189
  */
144
190
  constructor(info: Info, cancelled: Promise<never>, cancellationSignal: AbortSignal, heartbeat: (details?: any) => void);
145
191
  /**
146
- * Send a heartbeat from an Activity.
192
+ * Send a {@link https://docs.temporal.io/concepts/what-is-an-activity-heartbeat | heartbeat} from an Activity.
193
+ *
194
+ * If an Activity times out, then during the next retry, the last value of `details` is available at
195
+ * {@link Info.heartbeatDetails}. This acts as a periodic checkpoint mechanism for the progress of an Activity.
147
196
  *
148
- * If an Activity times out, the last value of details is included in the {@link ActivityFailure} delivered to a Workflow in the `cause` attribute which will be set to {@link TimeoutFailure}. Then the Workflow can pass the details to the next Activity invocation. This acts as a periodic checkpoint mechanism for the progress of an Activity.
197
+ * If an Activity times out on the final retry (relevant in cases in which {@link RetryPolicy.maximumAttempts} is
198
+ * set), the Activity function call in the Workflow code will throw an {@link ActivityFailure} with the `cause`
199
+ * attribute set to a {@link TimeoutFailure}, which has the last value of `details` available at
200
+ * {@link TimeoutFailure.lastHeartbeatDetails}.
149
201
  *
150
- * The Activity must heartbeat in order to receive cancellation.
202
+ * Activities must heartbeat in order to receive cancellation.
151
203
  */
152
204
  heartbeat(details?: unknown): void;
153
205
  /**
@@ -158,8 +210,8 @@ export declare class Context {
158
210
  static current(): Context;
159
211
  /**
160
212
  * Helper function for sleeping in an Activity.
161
- * @param ms sleep duration - {@link https://www.npmjs.com/package/ms | ms} formatted string or number of milliseconds
162
- * @returns a Promise that either resolves when deadline is reached or rejects when the Context is cancelled
213
+ * @param ms Sleep duration: an {@link https://www.npmjs.com/package/ms | ms}-formatted string or number of milliseconds
214
+ * @returns A Promise that either resolves when `ms` is reached or rejects when the Activity is cancelled
163
215
  */
164
216
  sleep(ms: number | string): Promise<void>;
165
217
  }
package/lib/index.js CHANGED
@@ -1,43 +1,85 @@
1
1
  "use strict";
2
2
  /**
3
- * This library provides tools for authoring activities.
3
+ * This package's main export is {@link Context}. Get the current Activity's context with
4
+ * {@link Context.current | `Context.current()`}:
4
5
  *
5
- * Import this module from Activity code - must **not** be used in Workflows.
6
+ * ```ts
7
+ * import { Context } from '@temporalio/activity';
6
8
  *
7
- * Any function can be used as an Activity as long as its parameters and return value are serializable using a [`DataConverter`](../interfaces/worker.DataConverter.md).
9
+ * export async function myActivity() {
10
+ * const context = Context.current();
11
+ * }
12
+ * ```
13
+ *
14
+ * Any function can be used as an Activity as long as its parameters and return value are serializable using a
15
+ * {@link https://docs.temporal.io/concepts/what-is-a-data-converter/ | DataConverter}.
8
16
  *
9
17
  * ### Cancellation
10
- * Activities may be cancelled only if they [emit heartbeats](../classes/activity.Context.md#heartbeat).<br/>
11
- * There are 2 ways to handle Activity cancellation:
12
- * 1. await on [`Context.current().cancelled`](../classes/activity.Context.md#cancelled)
13
- * 1. Pass the context's [abort signal](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal) at [`Context.current().cancellationSignal`](../classes/activity.Context.md#cancellationsignal) to a library that supports it
18
+ *
19
+ * Activities may be cancelled only if they {@link Context.heartbeat | emit heartbeats}.
20
+ *
21
+ * There are two ways to handle Activity cancellation:
22
+ * 1. await on {@link Context.cancelled | `Context.current().cancelled`} or
23
+ * {@link Context.sleep | `Context.current().sleep()`}, which each throw a
24
+ * {@link CancelledFailure}.
25
+ * 1. Pass the context's {@link https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal | `AbortSignal`} at
26
+ * {@link Context.cancellationSignal | `Context.current().cancellationSignal`} to a library that
27
+ * supports it.
14
28
  *
15
29
  * ### Examples
16
30
  *
17
- * #### An Activity that fakes progress and can be cancelled
31
+ * #### An Activity that sends progress heartbeats and can be cancelled
18
32
  *
19
33
  * <!--SNIPSTART typescript-activity-fake-progress-->
20
34
  * <!--SNIPEND-->
21
35
  *
22
36
  * #### An Activity that makes a cancellable HTTP request
23
37
  *
38
+ * It passes the `AbortSignal` to {@link https://github.com/node-fetch/node-fetch#api | `fetch`}: `fetch(url, { signal:
39
+ * Context.current().cancellationSignal })`.
40
+ *
24
41
  * <!--SNIPSTART typescript-activity-cancellable-fetch-->
25
42
  * <!--SNIPEND-->
26
43
  *
27
44
  * @module
28
45
  */
46
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
47
+ if (k2 === undefined) k2 = k;
48
+ var desc = Object.getOwnPropertyDescriptor(m, k);
49
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
50
+ desc = { enumerable: true, get: function() { return m[k]; } };
51
+ }
52
+ Object.defineProperty(o, k2, desc);
53
+ }) : (function(o, m, k, k2) {
54
+ if (k2 === undefined) k2 = k;
55
+ o[k2] = m[k];
56
+ }));
57
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
58
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
59
+ };
29
60
  Object.defineProperty(exports, "__esModule", { value: true });
30
61
  exports.Context = exports.asyncLocalStorage = exports.CompleteAsyncError = exports.CancelledFailure = void 0;
31
62
  const internal_workflow_common_1 = require("@temporalio/internal-workflow-common");
32
63
  const async_hooks_1 = require("async_hooks");
33
64
  var common_1 = require("@temporalio/common");
34
65
  Object.defineProperty(exports, "CancelledFailure", { enumerable: true, get: function () { return common_1.CancelledFailure; } });
66
+ __exportStar(require("@temporalio/internal-workflow-common/lib/errors"), exports);
35
67
  /**
36
- * Throw this error from an Activity in order to make the Worker
37
- * forget about this Activity.
68
+ * Throw this error from an Activity in order to make the Worker forget about this Activity.
38
69
  *
39
- * The Activity can be completed asynchronously using
40
- * {@link AsyncCompletionClient}
70
+ * The Activity can then be completed asynchronously (from anywhere—usually outside the Worker) using
71
+ * {@link AsyncCompletionClient}.
72
+ *
73
+ * @example
74
+ *
75
+ *```ts
76
+ *import { CompleteAsyncError } from '@temporalio/activity';
77
+ *
78
+ *export async function myActivity(): Promise<never> {
79
+ * // ...
80
+ * throw new CompleteAsyncError();
81
+ *}
82
+ *```
41
83
  */
42
84
  class CompleteAsyncError extends Error {
43
85
  constructor() {
@@ -49,9 +91,14 @@ exports.CompleteAsyncError = CompleteAsyncError;
49
91
  /** @ignore */
50
92
  exports.asyncLocalStorage = new async_hooks_1.AsyncLocalStorage();
51
93
  /**
52
- * Activity Context manager.
94
+ * Activity Context, used to:
53
95
  *
54
- * Call `Context.current()` from Activity code in order to send heartbeats and get notified of Activity cancellation.
96
+ * - Get {@link Info} about the current Activity Execution
97
+ * - Send {@link https://docs.temporal.io/concepts/what-is-an-activity-heartbeat | heartbeats}
98
+ * - Get notified of Activity cancellation
99
+ * - Sleep (cancellation-aware)
100
+ *
101
+ * Call `Context.current()` from Activity code in order to get the current Activity's Context.
55
102
  */
56
103
  class Context {
57
104
  /**
@@ -66,11 +113,17 @@ class Context {
66
113
  this.heartbeatFn = heartbeat;
67
114
  }
68
115
  /**
69
- * Send a heartbeat from an Activity.
116
+ * Send a {@link https://docs.temporal.io/concepts/what-is-an-activity-heartbeat | heartbeat} from an Activity.
117
+ *
118
+ * If an Activity times out, then during the next retry, the last value of `details` is available at
119
+ * {@link Info.heartbeatDetails}. This acts as a periodic checkpoint mechanism for the progress of an Activity.
70
120
  *
71
- * If an Activity times out, the last value of details is included in the {@link ActivityFailure} delivered to a Workflow in the `cause` attribute which will be set to {@link TimeoutFailure}. Then the Workflow can pass the details to the next Activity invocation. This acts as a periodic checkpoint mechanism for the progress of an Activity.
121
+ * If an Activity times out on the final retry (relevant in cases in which {@link RetryPolicy.maximumAttempts} is
122
+ * set), the Activity function call in the Workflow code will throw an {@link ActivityFailure} with the `cause`
123
+ * attribute set to a {@link TimeoutFailure}, which has the last value of `details` available at
124
+ * {@link TimeoutFailure.lastHeartbeatDetails}.
72
125
  *
73
- * The Activity must heartbeat in order to receive cancellation.
126
+ * Activities must heartbeat in order to receive cancellation.
74
127
  */
75
128
  heartbeat(details) {
76
129
  this.heartbeatFn(details);
@@ -89,8 +142,8 @@ class Context {
89
142
  }
90
143
  /**
91
144
  * Helper function for sleeping in an Activity.
92
- * @param ms sleep duration - {@link https://www.npmjs.com/package/ms | ms} formatted string or number of milliseconds
93
- * @returns a Promise that either resolves when deadline is reached or rejects when the Context is cancelled
145
+ * @param ms Sleep duration: an {@link https://www.npmjs.com/package/ms | ms}-formatted string or number of milliseconds
146
+ * @returns A Promise that either resolves when `ms` is reached or rejects when the Activity is cancelled
94
147
  */
95
148
  sleep(ms) {
96
149
  let handle;
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;;;AAEH,mFAAkE;AAElE,6CAAgD;AAChD,6CAAsD;AAA7C,0GAAA,gBAAgB,OAAA;AAGzB;;;;;;GAMG;AACH,MAAa,kBAAmB,SAAQ,KAAK;IAG3C;QACE,KAAK,EAAE,CAAC;QAHM,SAAI,GAAW,oBAAoB,CAAC;IAIpD,CAAC;CACF;AAND,gDAMC;AAED,cAAc;AACD,QAAA,iBAAiB,GAAG,IAAI,+BAAiB,EAAW,CAAC;AAsElE;;;;GAIG;AACH,MAAa,OAAO;IAsBlB;;;;OAIG;IACH,YACE,IAAU,EACV,SAAyB,EACzB,kBAA+B,EAC/B,SAAkC;QAElC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED;;;;;;OAMG;IACI,SAAS,CAAC,OAAiB;QAChC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,OAAO;QACnB,MAAM,KAAK,GAAG,yBAAiB,CAAC,QAAQ,EAAE,CAAC;QAC3C,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;SACrD;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,EAAmB;QAC9B,IAAI,MAAsB,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAC1C,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,IAAA,qCAAU,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;CACF;AA3ED,0BA2EC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;;;;;;;;;;;;;;;;;AAEH,mFAAkE;AAElE,6CAAgD;AAChD,6CAAsD;AAA7C,0GAAA,gBAAgB,OAAA;AAMzB,kFAAgE;AAEhE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAa,kBAAmB,SAAQ,KAAK;IAG3C;QACE,KAAK,EAAE,CAAC;QAHM,SAAI,GAAW,oBAAoB,CAAC;IAIpD,CAAC;CACF;AAND,gDAMC;AAED,cAAc;AACD,QAAA,iBAAiB,GAAG,IAAI,+BAAiB,EAAW,CAAC;AA2ElE;;;;;;;;;GASG;AACH,MAAa,OAAO;IA8BlB;;;;OAIG;IACH,YACE,IAAU,EACV,SAAyB,EACzB,kBAA+B,EAC/B,SAAkC;QAElC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED;;;;;;;;;;;;OAYG;IACI,SAAS,CAAC,OAAiB;QAChC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,OAAO;QACnB,MAAM,KAAK,GAAG,yBAAiB,CAAC,QAAQ,EAAE,CAAC;QAC3C,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;SACrD;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,EAAmB;QAC9B,IAAI,MAAsB,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAC1C,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,IAAA,qCAAU,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;CACF;AAzFD,0BAyFC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@temporalio/activity",
3
- "version": "0.22.0",
3
+ "version": "1.0.0-rc.1",
4
4
  "description": "Temporal.io SDK Activity sub-package",
5
5
  "main": "lib/index.js",
6
6
  "types": "./lib/index.d.ts",
@@ -13,8 +13,8 @@
13
13
  "author": "Roey Berman <roey@temporal.io>",
14
14
  "license": "MIT",
15
15
  "dependencies": {
16
- "@temporalio/common": "^0.22.0",
17
- "@temporalio/internal-workflow-common": "^0.22.0",
16
+ "@temporalio/common": "^1.0.0-rc.1",
17
+ "@temporalio/internal-workflow-common": "^1.0.0-rc.1",
18
18
  "abort-controller": "^3.0.0"
19
19
  },
20
20
  "bugs": {
@@ -24,5 +24,9 @@
24
24
  "publishConfig": {
25
25
  "access": "public"
26
26
  },
27
- "gitHead": "3aa1f14982bd170d21b728cbf016dc4f1b595a76"
27
+ "files": [
28
+ "src",
29
+ "lib"
30
+ ],
31
+ "gitHead": "723de0fbc7a04e68084ec99453578e7027eb3803"
28
32
  }
package/src/index.ts CHANGED
@@ -1,25 +1,42 @@
1
1
  /**
2
- * This library provides tools for authoring activities.
2
+ * This package's main export is {@link Context}. Get the current Activity's context with
3
+ * {@link Context.current | `Context.current()`}:
3
4
  *
4
- * Import this module from Activity code - must **not** be used in Workflows.
5
+ * ```ts
6
+ * import { Context } from '@temporalio/activity';
5
7
  *
6
- * Any function can be used as an Activity as long as its parameters and return value are serializable using a [`DataConverter`](../interfaces/worker.DataConverter.md).
8
+ * export async function myActivity() {
9
+ * const context = Context.current();
10
+ * }
11
+ * ```
12
+ *
13
+ * Any function can be used as an Activity as long as its parameters and return value are serializable using a
14
+ * {@link https://docs.temporal.io/concepts/what-is-a-data-converter/ | DataConverter}.
7
15
  *
8
16
  * ### Cancellation
9
- * Activities may be cancelled only if they [emit heartbeats](../classes/activity.Context.md#heartbeat).<br/>
10
- * There are 2 ways to handle Activity cancellation:
11
- * 1. await on [`Context.current().cancelled`](../classes/activity.Context.md#cancelled)
12
- * 1. Pass the context's [abort signal](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal) at [`Context.current().cancellationSignal`](../classes/activity.Context.md#cancellationsignal) to a library that supports it
17
+ *
18
+ * Activities may be cancelled only if they {@link Context.heartbeat | emit heartbeats}.
19
+ *
20
+ * There are two ways to handle Activity cancellation:
21
+ * 1. await on {@link Context.cancelled | `Context.current().cancelled`} or
22
+ * {@link Context.sleep | `Context.current().sleep()`}, which each throw a
23
+ * {@link CancelledFailure}.
24
+ * 1. Pass the context's {@link https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal | `AbortSignal`} at
25
+ * {@link Context.cancellationSignal | `Context.current().cancellationSignal`} to a library that
26
+ * supports it.
13
27
  *
14
28
  * ### Examples
15
29
  *
16
- * #### An Activity that fakes progress and can be cancelled
30
+ * #### An Activity that sends progress heartbeats and can be cancelled
17
31
  *
18
32
  * <!--SNIPSTART typescript-activity-fake-progress-->
19
33
  * <!--SNIPEND-->
20
34
  *
21
35
  * #### An Activity that makes a cancellable HTTP request
22
36
  *
37
+ * It passes the `AbortSignal` to {@link https://github.com/node-fetch/node-fetch#api | `fetch`}: `fetch(url, { signal:
38
+ * Context.current().cancellationSignal })`.
39
+ *
23
40
  * <!--SNIPSTART typescript-activity-cancellable-fetch-->
24
41
  * <!--SNIPEND-->
25
42
  *
@@ -30,14 +47,29 @@ import { msToNumber } from '@temporalio/internal-workflow-common';
30
47
  import { AbortSignal } from 'abort-controller';
31
48
  import { AsyncLocalStorage } from 'async_hooks';
32
49
  export { CancelledFailure } from '@temporalio/common';
33
- export { ActivityFunction, ActivityInterface } from '@temporalio/internal-workflow-common';
50
+ export {
51
+ ActivityFunction,
52
+ ActivityInterface, // eslint-disable-line deprecation/deprecation
53
+ UntypedActivities,
54
+ } from '@temporalio/internal-workflow-common';
55
+ export * from '@temporalio/internal-workflow-common/lib/errors';
34
56
 
35
57
  /**
36
- * Throw this error from an Activity in order to make the Worker
37
- * forget about this Activity.
58
+ * Throw this error from an Activity in order to make the Worker forget about this Activity.
59
+ *
60
+ * The Activity can then be completed asynchronously (from anywhere—usually outside the Worker) using
61
+ * {@link AsyncCompletionClient}.
62
+ *
63
+ * @example
64
+ *
65
+ *```ts
66
+ *import { CompleteAsyncError } from '@temporalio/activity';
38
67
  *
39
- * The Activity can be completed asynchronously using
40
- * {@link AsyncCompletionClient}
68
+ *export async function myActivity(): Promise<never> {
69
+ * // ...
70
+ * throw new CompleteAsyncError();
71
+ *}
72
+ *```
41
73
  */
42
74
  export class CompleteAsyncError extends Error {
43
75
  public readonly name: string = 'CompleteAsyncError';
@@ -51,7 +83,7 @@ export class CompleteAsyncError extends Error {
51
83
  export const asyncLocalStorage = new AsyncLocalStorage<Context>();
52
84
 
53
85
  /**
54
- * Holds information about the current executing Activity
86
+ * Holds information about the current Activity Execution. Retrieved inside an Activity with `Context.current().info`.
55
87
  */
56
88
  export interface Info {
57
89
  taskToken: Uint8Array;
@@ -116,12 +148,22 @@ export interface Info {
116
148
  * Use this in order to resume your Activity from checkpoint.
117
149
  */
118
150
  heartbeatDetails: any;
151
+
152
+ /**
153
+ * Task queue the Activity is scheduled in, set to the Workflow's task queue in case of local Activity.
154
+ */
155
+ taskQueue: string;
119
156
  }
120
157
 
121
158
  /**
122
- * Activity Context manager.
159
+ * Activity Context, used to:
160
+ *
161
+ * - Get {@link Info} about the current Activity Execution
162
+ * - Send {@link https://docs.temporal.io/concepts/what-is-an-activity-heartbeat | heartbeats}
163
+ * - Get notified of Activity cancellation
164
+ * - Sleep (cancellation-aware)
123
165
  *
124
- * Call `Context.current()` from Activity code in order to send heartbeats and get notified of Activity cancellation.
166
+ * Call `Context.current()` from Activity code in order to get the current Activity's Context.
125
167
  */
126
168
  export class Context {
127
169
  /**
@@ -131,13 +173,21 @@ export class Context {
131
173
  /**
132
174
  * Await this promise in an Activity to get notified of cancellation.
133
175
  *
134
- * This promise will never be resolved, it will only be rejected with a {@link CancelledFailure}.
176
+ * This promise will never resolve—it will only be rejected with a {@link CancelledFailure}.
177
+ *
178
+ * @see [Cancellation](/api/namespaces/activity#cancellation)
135
179
  */
136
180
  public readonly cancelled: Promise<never>;
137
181
  /**
138
- * An `AbortSignal` which can be used to cancel requests on Activity cancellation.
182
+ * An {@link https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal | `AbortSignal`} that can be used to react to
183
+ * Activity cancellation.
184
+ *
185
+ * Used by {@link https://www.npmjs.com/package/node-fetch#request-cancellation-with-abortsignal | fetch} to abort an
186
+ * in-progress request and
187
+ * {@link https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options child_process}
188
+ * to abort a child process, and is supported by some other libraries as well.
139
189
  *
140
- * Typically used by the {@link https://www.npmjs.com/package/node-fetch#request-cancellation-with-abortsignal | fetch} and {@link https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options child_process} libraries but is supported by a few other libraries as well.
190
+ * @see [Cancellation](/api/namespaces/activity#cancellation)
141
191
  */
142
192
  public readonly cancellationSignal: AbortSignal;
143
193
  /**
@@ -163,11 +213,17 @@ export class Context {
163
213
  }
164
214
 
165
215
  /**
166
- * Send a heartbeat from an Activity.
216
+ * Send a {@link https://docs.temporal.io/concepts/what-is-an-activity-heartbeat | heartbeat} from an Activity.
217
+ *
218
+ * If an Activity times out, then during the next retry, the last value of `details` is available at
219
+ * {@link Info.heartbeatDetails}. This acts as a periodic checkpoint mechanism for the progress of an Activity.
167
220
  *
168
- * If an Activity times out, the last value of details is included in the {@link ActivityFailure} delivered to a Workflow in the `cause` attribute which will be set to {@link TimeoutFailure}. Then the Workflow can pass the details to the next Activity invocation. This acts as a periodic checkpoint mechanism for the progress of an Activity.
221
+ * If an Activity times out on the final retry (relevant in cases in which {@link RetryPolicy.maximumAttempts} is
222
+ * set), the Activity function call in the Workflow code will throw an {@link ActivityFailure} with the `cause`
223
+ * attribute set to a {@link TimeoutFailure}, which has the last value of `details` available at
224
+ * {@link TimeoutFailure.lastHeartbeatDetails}.
169
225
  *
170
- * The Activity must heartbeat in order to receive cancellation.
226
+ * Activities must heartbeat in order to receive cancellation.
171
227
  */
172
228
  public heartbeat(details?: unknown): void {
173
229
  this.heartbeatFn(details);
@@ -188,8 +244,8 @@ export class Context {
188
244
 
189
245
  /**
190
246
  * Helper function for sleeping in an Activity.
191
- * @param ms sleep duration - {@link https://www.npmjs.com/package/ms | ms} formatted string or number of milliseconds
192
- * @returns a Promise that either resolves when deadline is reached or rejects when the Context is cancelled
247
+ * @param ms Sleep duration: an {@link https://www.npmjs.com/package/ms | ms}-formatted string or number of milliseconds
248
+ * @returns A Promise that either resolves when `ms` is reached or rejects when the Activity is cancelled
193
249
  */
194
250
  public sleep(ms: number | string): Promise<void> {
195
251
  let handle: NodeJS.Timeout;
package/tsconfig.json DELETED
@@ -1,9 +0,0 @@
1
- {
2
- "extends": "../../tsconfig.base.json",
3
- "compilerOptions": {
4
- "outDir": "./lib",
5
- "rootDir": "./src"
6
- },
7
- "references": [{ "path": "../common" }, { "path": "../internal-workflow-common" }],
8
- "include": ["./src/**/*.ts"]
9
- }
@@ -1 +0,0 @@
1
- {"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/@types/long/index.d.ts","../../node_modules/protobufjs/index.d.ts","../proto/protos/root.d.ts","../proto/protos/index.d.ts","../internal-workflow-common/lib/retry-policy.d.ts","../internal-workflow-common/lib/activity-options.d.ts","../internal-workflow-common/lib/errors.d.ts","../internal-workflow-common/lib/type-helpers.d.ts","../internal-workflow-common/lib/interceptors.d.ts","../internal-workflow-common/lib/interfaces.d.ts","../internal-workflow-common/lib/time.d.ts","../internal-workflow-common/lib/workflow-handle.d.ts","../internal-workflow-common/lib/workflow-options.d.ts","../internal-workflow-common/lib/index.d.ts","../../node_modules/event-target-shim/index.d.ts","../../node_modules/abort-controller/dist/abort-controller.d.ts","../common/lib/converter/types.d.ts","../common/lib/converter/payload-codec.d.ts","../common/lib/converter/payload-converters.d.ts","../common/lib/converter/payload-converter.d.ts","../common/lib/converter/data-converter.d.ts","../common/lib/failure.d.ts","../common/lib/index.d.ts","./src/index.ts","../../node_modules/@types/retry/index.d.ts","../../node_modules/@types/async-retry/index.d.ts","../../node_modules/@types/node/assert.d.ts","../../node_modules/@types/node/assert/strict.d.ts","../../node_modules/@types/node/globals.d.ts","../../node_modules/@types/node/async_hooks.d.ts","../../node_modules/@types/node/buffer.d.ts","../../node_modules/@types/node/child_process.d.ts","../../node_modules/@types/node/cluster.d.ts","../../node_modules/@types/node/console.d.ts","../../node_modules/@types/node/constants.d.ts","../../node_modules/@types/node/crypto.d.ts","../../node_modules/@types/node/dgram.d.ts","../../node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/@types/node/dns.d.ts","../../node_modules/@types/node/dns/promises.d.ts","../../node_modules/@types/node/domain.d.ts","../../node_modules/@types/node/events.d.ts","../../node_modules/@types/node/fs.d.ts","../../node_modules/@types/node/fs/promises.d.ts","../../node_modules/@types/node/http.d.ts","../../node_modules/@types/node/http2.d.ts","../../node_modules/@types/node/https.d.ts","../../node_modules/@types/node/inspector.d.ts","../../node_modules/@types/node/module.d.ts","../../node_modules/@types/node/net.d.ts","../../node_modules/@types/node/os.d.ts","../../node_modules/@types/node/path.d.ts","../../node_modules/@types/node/perf_hooks.d.ts","../../node_modules/@types/node/process.d.ts","../../node_modules/@types/node/punycode.d.ts","../../node_modules/@types/node/querystring.d.ts","../../node_modules/@types/node/readline.d.ts","../../node_modules/@types/node/repl.d.ts","../../node_modules/@types/node/stream.d.ts","../../node_modules/@types/node/stream/promises.d.ts","../../node_modules/@types/node/stream/consumers.d.ts","../../node_modules/@types/node/stream/web.d.ts","../../node_modules/@types/node/string_decoder.d.ts","../../node_modules/@types/node/timers.d.ts","../../node_modules/@types/node/timers/promises.d.ts","../../node_modules/@types/node/tls.d.ts","../../node_modules/@types/node/trace_events.d.ts","../../node_modules/@types/node/tty.d.ts","../../node_modules/@types/node/url.d.ts","../../node_modules/@types/node/util.d.ts","../../node_modules/@types/node/v8.d.ts","../../node_modules/@types/node/vm.d.ts","../../node_modules/@types/node/wasi.d.ts","../../node_modules/@types/node/worker_threads.d.ts","../../node_modules/@types/node/zlib.d.ts","../../node_modules/@types/node/globals.global.d.ts","../../node_modules/@types/node/index.d.ts","../../node_modules/keyv/src/index.d.ts","../../node_modules/@types/http-cache-semantics/index.d.ts","../../node_modules/@types/responselike/index.d.ts","../../node_modules/@types/cacheable-request/index.d.ts","../../node_modules/@types/cross-spawn/index.d.ts","../../node_modules/@types/dedent/index.d.ts","../../node_modules/@types/eslint/helpers.d.ts","../../node_modules/@types/json-schema/index.d.ts","../../node_modules/@types/estree/index.d.ts","../../node_modules/@types/eslint/index.d.ts","../../node_modules/@types/eslint-scope/index.d.ts","../../node_modules/@types/fs-extra/index.d.ts","../../node_modules/@types/minimatch/index.d.ts","../../node_modules/@types/glob/index.d.ts","../../node_modules/@types/tough-cookie/index.d.ts","../../node_modules/@types/got/index.d.ts","../../node_modules/@types/json-buffer/index.d.ts","../../node_modules/@types/keyv/index.d.ts","../../node_modules/@types/linkify-it/index.d.ts","../../node_modules/@types/lodash/common/common.d.ts","../../node_modules/@types/lodash/common/array.d.ts","../../node_modules/@types/lodash/common/collection.d.ts","../../node_modules/@types/lodash/common/date.d.ts","../../node_modules/@types/lodash/common/function.d.ts","../../node_modules/@types/lodash/common/lang.d.ts","../../node_modules/@types/lodash/common/math.d.ts","../../node_modules/@types/lodash/common/number.d.ts","../../node_modules/@types/lodash/common/object.d.ts","../../node_modules/@types/lodash/common/seq.d.ts","../../node_modules/@types/lodash/common/string.d.ts","../../node_modules/@types/lodash/common/util.d.ts","../../node_modules/@types/lodash/index.d.ts","../../node_modules/@types/mdurl/encode.d.ts","../../node_modules/@types/mdurl/decode.d.ts","../../node_modules/@types/mdurl/parse.d.ts","../../node_modules/@types/mdurl/format.d.ts","../../node_modules/@types/mdurl/index.d.ts","../../node_modules/@types/markdown-it/lib/common/utils.d.ts","../../node_modules/@types/markdown-it/lib/token.d.ts","../../node_modules/@types/markdown-it/lib/rules_inline/state_inline.d.ts","../../node_modules/@types/markdown-it/lib/helpers/parse_link_label.d.ts","../../node_modules/@types/markdown-it/lib/helpers/parse_link_destination.d.ts","../../node_modules/@types/markdown-it/lib/helpers/parse_link_title.d.ts","../../node_modules/@types/markdown-it/lib/helpers/index.d.ts","../../node_modules/@types/markdown-it/lib/ruler.d.ts","../../node_modules/@types/markdown-it/lib/rules_block/state_block.d.ts","../../node_modules/@types/markdown-it/lib/parser_block.d.ts","../../node_modules/@types/markdown-it/lib/rules_core/state_core.d.ts","../../node_modules/@types/markdown-it/lib/parser_core.d.ts","../../node_modules/@types/markdown-it/lib/parser_inline.d.ts","../../node_modules/@types/markdown-it/lib/renderer.d.ts","../../node_modules/@types/markdown-it/lib/index.d.ts","../../node_modules/@types/markdown-it/index.d.ts","../../node_modules/@types/minimist/index.d.ts","../../node_modules/@types/minipass/index.d.ts","../../node_modules/@types/ms/index.d.ts","../../node_modules/@types/node-fetch/node_modules/form-data/index.d.ts","../../node_modules/@types/node-fetch/externals.d.ts","../../node_modules/@types/node-fetch/index.d.ts","../../node_modules/@types/normalize-package-data/index.d.ts","../../node_modules/@types/parse-json/index.d.ts","../../node_modules/@types/pidusage/index.d.ts","../../node_modules/@types/prompts/index.d.ts","../../node_modules/ts-toolbelt/out/index.d.ts","../../node_modules/@types/ramda/tools.d.ts","../../node_modules/@types/ramda/index.d.ts","../../node_modules/@types/rimraf/index.d.ts","../../node_modules/@types/semver/classes/semver.d.ts","../../node_modules/@types/semver/functions/parse.d.ts","../../node_modules/@types/semver/functions/valid.d.ts","../../node_modules/@types/semver/functions/clean.d.ts","../../node_modules/@types/semver/functions/inc.d.ts","../../node_modules/@types/semver/functions/diff.d.ts","../../node_modules/@types/semver/functions/major.d.ts","../../node_modules/@types/semver/functions/minor.d.ts","../../node_modules/@types/semver/functions/patch.d.ts","../../node_modules/@types/semver/functions/prerelease.d.ts","../../node_modules/@types/semver/functions/compare.d.ts","../../node_modules/@types/semver/functions/rcompare.d.ts","../../node_modules/@types/semver/functions/compare-loose.d.ts","../../node_modules/@types/semver/functions/compare-build.d.ts","../../node_modules/@types/semver/functions/sort.d.ts","../../node_modules/@types/semver/functions/rsort.d.ts","../../node_modules/@types/semver/functions/gt.d.ts","../../node_modules/@types/semver/functions/lt.d.ts","../../node_modules/@types/semver/functions/eq.d.ts","../../node_modules/@types/semver/functions/neq.d.ts","../../node_modules/@types/semver/functions/gte.d.ts","../../node_modules/@types/semver/functions/lte.d.ts","../../node_modules/@types/semver/functions/cmp.d.ts","../../node_modules/@types/semver/functions/coerce.d.ts","../../node_modules/@types/semver/classes/comparator.d.ts","../../node_modules/@types/semver/classes/range.d.ts","../../node_modules/@types/semver/functions/satisfies.d.ts","../../node_modules/@types/semver/ranges/max-satisfying.d.ts","../../node_modules/@types/semver/ranges/min-satisfying.d.ts","../../node_modules/@types/semver/ranges/to-comparators.d.ts","../../node_modules/@types/semver/ranges/min-version.d.ts","../../node_modules/@types/semver/ranges/valid.d.ts","../../node_modules/@types/semver/ranges/outside.d.ts","../../node_modules/@types/semver/ranges/gtr.d.ts","../../node_modules/@types/semver/ranges/ltr.d.ts","../../node_modules/@types/semver/ranges/intersects.d.ts","../../node_modules/@types/semver/ranges/simplify.d.ts","../../node_modules/@types/semver/ranges/subset.d.ts","../../node_modules/@types/semver/internals/identifiers.d.ts","../../node_modules/@types/semver/index.d.ts","../../node_modules/@types/tar/index.d.ts","../../node_modules/@types/uuid/index.d.ts","../../node_modules/@types/validate-npm-package-name/index.d.ts"],"fileInfos":[{"version":"3ac1b83264055b28c0165688fda6dfcc39001e9e7828f649299101c23ad0a0c3","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940",{"version":"d8996609230d17e90484a2dd58f22668f9a05a3bfe00bfb1d6271171e54a31fb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"5075b36ab861c8c0c45377cb8c96270d7c65f0eeaf105d53fac6850da61f1027","affectsGlobalScope":true},{"version":"10bbdc1981b8d9310ee75bfac28ee0477bb2353e8529da8cff7cb26c409cb5e8","affectsGlobalScope":true},"e8465811693dfe4e96ef2b3dffda539d6edfe896961b7af37b44db2c0e48532b","1558c642e03689d42843e7b047b9c20e77ee09ab388ff854484db5dcfbed11da","1483036bc7965f2b68e63475c4ac7bae6b398b60262be25725c0542779afcdd2","e784aa955e0c457fac13e62cf5ae21238000032b0c60fe4c138891912ac4ceed","82a29801c5e4e2a6cf192da6a810b79e7be27a3a3e846d38fc6f1a67750a940f","1f86b92d8d772ebeeb5b4a6fc4bb4fb13ae7275d69fbb2ed0128fb589a6fc057","e6a153915ebf3d92d5cfa88c1169dbbf6cc425db01dde390c1c126bcfdbb238b","8c1c7f187912d5dadec77f8bd1fdf1f4099bf86ddf33525525beaf290f5d1789","c53ea76f31dbe2c5f5b76d2a07268b7e969a30fbcccca4d7271dccac54259311","bafd8944f9cbefccff23b2af47517925f3fa0be29251308fdc4485cf2e99afb4","97fdf5a317f77456a8d2d20c9eaf61f64611dbf6baa2b6ca36bbbeb6b456aae7","1a7689daffa54e39ebac4d793b9a38605e6c1354ba4f82a2777599d2e316d118","02cac870dfa641086d52c0a1dde60c3bcd070228d64637f4016230c41ca36791","9863b273003f68928bab5740056d3de2f3344749b4a24cf3dedc6d3cbda79d81","2859adaa4f2db3d4f0fc37ad86f056045341496b58fba0dbc16a222f9d5d55b1","655ed305e8f4cb95d3f578040301a4e4d6ace112b1bd8824cd32bda66c3677d1","a3e9831fdc1949c03153e3461df846ec44c7841f67420dd6268d771ec77d85f2","a8b57b57e51a8089b1d8cb5ee168bc49c756d91ef682b9732cbe380886ee2e8a","9393bf77518ca92fa254be923226088b1775500fe39d77c8e49d88af52a36ae1","f2953c72803c93836952e6c3559994aaccd8fa07236310f7177a25a80c99827f","37678045f97aab8229b960a48680d1c0573c21439d12b80cbe33b22855ebc105","70148973a311c3b6afc0083d1308c9cd4edf11b6c5c3dfb08611c2c71b6aa323","92551832d2af47e8871e238ac42299ec1a005864cba26307a61df8e50cfcb9f6","490ead8742bffcf1d078e0325820c1e22fc21c29580931a7374bfa5f08767a19","58a3914b1cce4560d9ad6eee2b716caaa030eda0a90b21ca2457ea9e2783eaa3","79d2fdaa1e0bf1a62b59de50e185374b74d22dc43144a78eab1bbcca0a4a2550","0d5a2ee1fdfa82740e0103389b9efd6bfe145a20018a2da3c02b89666181f4d9","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"92d63add669d18ebc349efbacd88966d6f2ccdddfb1b880b2db98ae3aa7bf7c4","affectsGlobalScope":true},"ccc94049a9841fe47abe5baef6be9a38fc6228807974ae675fb15dc22531b4be",{"version":"aeeee3998c5a730f8689f04038d41cf4245c9edbf6ef29a698e45b36e399b8ed","affectsGlobalScope":true},"95843d5cfafced8f3f8a5ce57d2335f0bcd361b9483587d12a25e4bd403b8216","afc6e96061af46bcff47246158caee7e056f5288783f2d83d6858cd25be1c565",{"version":"34f5bcac12b36d70304b73de5f5aab3bb91bd9919f984be80579ebcad03a624e","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","2f520601649a893e6a49a8851ebfcf4be8ce090dc1281c2a08a871cb04e8251f","f50c975ab7b50e25a69e3d8a3773894125b44e9698924105f23b812bf7488baf","2b8c764f856a1dd0a9a2bf23e5efddbff157de8138b0754010be561ae5fcaa90","76650408392bf49a8fbf3e2b6b302712a92d76af77b06e2da1cc8077359c4409","0af3121e68297b2247dd331c0d24dba599e50736a7517a5622d5591aae4a3122","6972fca26f6e9bd56197568d4379f99071a90766e06b4fcb5920a0130a9202be",{"version":"4a2628e95962c8ab756121faa3ac2ed348112ff7a87b5c286dd2cc3326546b4c","affectsGlobalScope":true},"80793b2277f31baa199234daed806fff0fb11491d1ebd3357e520c3558063f00","a049a59a02009fc023684fcfaf0ac526fe36c35dcc5d2b7d620c1750ba11b083","e3b886bacdd1fbf1f72e654596c80a55c7bc1d10bdf464aaf52f45ecd243862f","c665d5c50c2573aefd98f0ffb12c5583e333ed94294ce6f144a4163a8c84f09b","4b9a003b5c556c96784132945bb41c655ea11273b1917f5c8d0c154dd5fd20dd","a458dc78104cc80048ac24fdc02fe6dce254838094c2f25641b3f954d9721241",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"8a215750db3e2073511e07c9e293c8c40d6109e5c7368845e060bcc12adbae6f","abc1c425b2ad6720433f40f1877abfa4223f0f3dd486c9c28c492179ca183cb6","945a841f9a591197154c85386bc5a1467d42d325104bb36db51bc566bbb240be","10c39ce1df102994b47d4bc0c71aa9a6aea76f4651a5ec51914431f50bc883a1",{"version":"8207e7e6db9aa5fc7e61c8f17ba74cf9c115d26f51f91ee93f790815a7ea9dfb","affectsGlobalScope":true},"9f1069b9e2c051737b1f9b4f1baf50e4a63385a6a89c32235549ae87fc3d5492","ee18f2da7a037c6ceeb112a084e485aead9ea166980bf433474559eac1b46553","29c2706fa0cc49a2bd90c83234da33d08bb9554ecec675e91c1f85087f5a5324","0acbf26bf958f9e80c1ffa587b74749d2697b75b484062d36e103c137c562bc3","3fa48484c65913004d5abb5c0f917b61ea4684f32d05bb28c1ecfa5f05a9ed12","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"33eee034727baf564056b4ea719075c23d3b4767d0b5f9c6933b81f3d77774d2","c33a6ea7147af60d8e98f1ac127047f4b0d4e2ce28b8f08ff3de07ca7cc00637",{"version":"b42b47e17b8ece2424ae8039feb944c2e3ba4b262986aebd582e51efbdca93dc","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","2408611d9b4146e35d1dbd1f443ccd8e187c74614a54b80300728277529dbf11","998a3de5237518c0b3ac00a11b3b4417affb008aa20aedee52f3fdae3cb86151","ad41008ffe077206e1811fc873f4d9005b5fd7f6ab52bb6118fef600815a5cb4",{"version":"dd9ea469d1bfaf589c6a196275d35cb1aa14014707c2c46d920c7b921e8f5bca","affectsGlobalScope":true},"badae0df9a8016ac36994b0a0e7b82ba6aaa3528e175a8c3cb161e4683eec03e","c3db860bcaaaeb3bbc23f353bbda1f8ab82756c8d5e973bebb3953cb09ea68f2","235a53595bd20b0b0eeb1a29cb2887c67c48375e92f03749b2488fbd46d0b1a0","bc09393cd4cd13f69cf1366d4236fbae5359bb550f0de4e15767e9a91d63dfb1","9c266243b01545e11d2733a55ad02b4c00ecdbda99c561cd1674f96e89cdc958","c71155c05fc76ff948a4759abc1cb9feec036509f500174bc18dad4c7827a60c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"1503a452a67127e5c2da794d1c7c44344d5038373aae16c9b03ac964db159edd","cd71905370ede696577acc23c695181e618a7d08616b1d06b43d3e6a12880fab","cab425b5559edac18327eb2c3c0f47e7e9f71b667290b7689faafd28aac69eae","3cfb0cb51cc2c2e1b313d7c4df04dbf7e5bda0a133c6b309bf6af77cf614b971","f992cd6cc0bcbaa4e6c810468c90f2d8595f8c6c3cf050c806397d3de8585562","5e3a55837aa1f42af2d2334c9b750f59f5f50a2205471875f5dd6aadc3e49ddb","70646d9cb37b62611766d18a9bcca6cbf28ca9aec33a66244e974056ab1193f6",{"version":"64d4b35c5456adf258d2cf56c341e203a073253f229ef3208fc0d5020253b241","affectsGlobalScope":true},"f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","a1c79f857f5c7754e14c93949dad8cfefcd7df2ecc0dc9dd79a30fd493e28449","8566fa84085caa46340393b1704ecd368491918fb45bd688d6e89736aec73a2f","dc33ce27fbeaf0ea3da556c80a6cc8af9d13eb443088c8f25cdc39fca8e756f6","ed19da84b7dbf00952ad0b98ce5c194f1903bcf7c94d8103e8e0d63b271543ae","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","fd326577c62145816fe1acc306c734c2396487f76719d3785d4e825b34540b33","cc256fd958b33576ed32c7338c64adb0d08fc0c2c6525010202fab83f32745da","19bf3ca55fd356755cda33e6e8c753d3d13d4aaa54ad9c5c032927f362188066","75bdc1b420f0ffc6cc6fd0b6694d89f5072bf755b4e6c7e65a2fda797ca0bb8a","fec943fdb3275eb6e006b35e04a8e2e99e9adf3f4b969ddf15315ac7575a93e4","6503fb6addf62f9b10f8564d9869ad824565a914ec1ac3dd7d13da14a3f57036","675e702f2032766a91eeadee64f51014c64688525da99dccd8178f0c599f13a8","fe4a2042d087990ebfc7dc0142d5aaf5a152e4baea86b45f283f103ec1e871ea","d70c026dd2eeaa974f430ea229230a1897fdb897dc74659deebe2afd4feeb08f","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","febf0b2de54781102b00f61653b21377390a048fbf5262718c91860d11ff34a6","ca59fe42b81228a317812e95a2e72ccc8c7f1911b5f0c2a032adf41a0161ec5d","9364c7566b0be2f7b70ff5285eb34686f83ccb01bda529b82d23b2a844653bfb","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","ae9930989ed57478eb03b9b80ad3efa7a3eacdfeff0f78ecf7894c4963a64f93","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","3e59f00ab03c33717b3130066d4debb272da90eeded4935ff0604c2bc25a5cae","df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9",{"version":"0714e2046df66c0e93c3330d30dbc0565b3e8cd3ee302cf99e4ede6220e5fec8","affectsGlobalScope":true},"f313731860257325f13351575f381fef333d4dfe30daf5a2e72f894208feea08","951b37f7d86f6012f09e6b35f1de57c69d75f16908cb0adaa56b93675ea0b853","3816fc03ffd9cbd1a7a3362a264756a4a1d547caabea50ca68303046be40e376","0c417b4ec46b88fb62a43ec00204700b560d01eb5677c7faa8ecd34610f096a8","13d29cdeb64e8496424edf42749bbb47de5e42d201cf958911a4638cbcffbd3f","0f9e381eecc5860f693c31fe463b3ca20a64ca9b8db0cf6208cd4a053f064809","95902d5561c6aac5dfc40568a12b0aca324037749dcd32a81f23423bfde69bab","5dfb2aca4136abdc5a2740f14be8134a6e6b66fd53470bb2e954e40f8abfaf3e","577463167dd69bd81f76697dfc3f7b22b77a6152f60a602a9218e52e3183ad67","b8396e9024d554b611cbe31a024b176ba7116063d19354b5a02dccd8f0118989","4b28e1c5bf88d891e07a1403358b81a51b3ba2eae1ffada51cca7476b5ac6407","7150ad575d28bf98fae321a1c0f10ad17b127927811f488ded6ff1d88d4244e5","8b155c4757d197969553de3762c8d23d5866710301de41e1b66b97c9ed867003","93733466609dd8bf72eace502a24ca7574bd073d934216e628f1b615c8d3cb3c","45e9228761aabcadb79c82fb3008523db334491525bdb8e74e0f26eaf7a4f7f4","aeacac2778c9821512b6b889da79ac31606a863610c8f28da1e483579627bf90","569fdb354062fc098a6a3ba93a029edf22d6fe480cf72b231b3c07832b2e7c97","bf9876e62fb7f4237deafab8c7444770ef6e82b4cad2d5dc768664ff340feeb2","6cf60e76d37faf0fbc2f80a873eab0fd545f6b1bf300e7f0823f956ddb3083e9","6adaa6103086f931e3eee20f0987e86e8879e9d13aa6bd6075ccfc58b9c5681c","ee0af0f2b8d3b4d0baf669f2ff6fcef4a8816a473c894cc7c905029f7505fed0","209e814e8e71aec74f69686a9506dd7610b97ab59dcee9446266446f72a76d05","2d7833f437e0f41a91d9ac5b156157fde7e5380558ff44832afae705ac0e795d","6a9c5127096b35264eb7cd21b2417bfc1d42cceca9ba4ce2bb0c3410b7816042","736097ddbb2903bef918bb3b5811ef1c9c5656f2a73bd39b22a91b9cc2525e50","208bb742e0f201470da121bc73847c74b62cff4172f38ae5949ae77d6c9c6b71","3663d1b50f356656a314e5df169bb51cb9d5fd75905fa703f75db6bb32030568","6fa0008bf91a4cc9c8963bace4bba0bd6865cbfa29c3e3ccc461155660fb113a","2b8264b2fefd7367e0f20e2c04eed5d3038831fe00f5efbc110ff0131aab899b","bef99c239e4fb2f51b7cc4952d019cb30bacd8c2e9fa07884886dbe3624cbcfb","4c8239bedbe72ce9405efb578f03f56219dba4ceb5a57ca3d2dc10334612f210","9df147746b0cbd11d022b564e6fdd43ac79b643dc579d2123317ee01cc4f0d70","fcd714a42a6b383a6240c056da9326afcea41a0d289a23206990f2550e5c1988","19392d5faf0ddca7ecdf300ace20ff6a5a120a11b6536a767fb1d9feb592cec5","f4cf5f0ad1cfb0ceebbe4fbe8aaf0aa728e899c99cc36ec6c0c4b8f6e8a84c83","d9e55d93aa33fad61bd5c63800972d00ba8879ec5d29f6f3bce67d16d86abc33","2ac9c8332c5f8510b8bdd571f8271e0f39b0577714d5e95c1e79a12b2616f069","42c21aa963e7b86fa00801d96e88b36803188018d5ad91db2a9101bccd40b3ff","d31eb848cdebb4c55b4893b335a7c0cca95ad66dee13cbb7d0893810c0a9c301","77c1d91a129ba60b8c405f9f539e42df834afb174fe0785f89d92a2c7c16b77a","c544d81603149987796b24cca297c965db427b84b2580fb27e52fb37ddc1f470","906c751ef5822ec0dadcea2f0e9db64a33fb4ee926cc9f7efa38afe5d5371b2a","5387c049e9702f2d2d7ece1a74836a14b47fbebe9bbeb19f94c580a37c855351","c68391fb9efad5d99ff332c65b1606248c4e4a9f1dd9a087204242b56c7126d6","e9cf02252d3a0ced987d24845dcb1f11c1be5541f17e5daa44c6de2d18138d0c","e8b02b879754d85f48489294f99147aeccc352c760d95a6fe2b6e49cd400b2fe","9f6908ab3d8a86c68b86e38578afc7095114e66b2fc36a2a96e9252aac3998e0","0eedb2344442b143ddcd788f87096961cd8572b64f10b4afc3356aa0460171c6","9eb2875a1e4c583066af7d6194ea8162191b2756e5d87ccb3c562fdf74d06869","c68baff4d8ba346130e9753cefe2e487a16731bf17e05fdacc81e8c9a26aae9d","2cd15528d8bb5d0453aa339b4b52e0696e8b07e790c153831c642c3dea5ac8af","479d622e66283ffa9883fbc33e441f7fc928b2277ff30aacbec7b7761b4e9579","ade307876dc5ca267ca308d09e737b611505e015c535863f22420a11fffc1c54","f8cdefa3e0dee639eccbe9794b46f90291e5fd3989fcba60d2f08fde56179fb9","86c5a62f99aac7053976e317dbe9acb2eaf903aaf3d2e5bb1cafe5c2df7b37a8","2b300954ce01a8343866f737656e13243e86e5baef51bd0631b21dcef1f6e954","a2d409a9ffd872d6b9d78ead00baa116bbc73cfa959fce9a2f29d3227876b2a1","b288936f560cd71f4a6002953290de9ff8dfbfbf37f5a9391be5c83322324898","61178a781ef82e0ff54f9430397e71e8f365fc1e3725e0e5346f2de7b0d50dfa","6a6ccb37feb3aad32d9be026a3337db195979cd5727a616fc0f557e974101a54","6eef5113135a0f2bbac8259909a5bbb7666bcde022c28f4ab95145623cbe1f72","058b8dd97b7c67b6bf33e7bda7b1e247b019b675d4b6449d14ac002091a8b4f8","89c8a7b88c378663a8124664f2d9b8c2887e186b55aa066edf6d67177ca1aa04","5a30ba65ad753eb2ef65355dbb3011b28b192cb9df2ef0b5f595b51ca7faf353","b15e55c5fa977c2f25ca0b1db52cfa2d1fd4bf0baf90a8b90d4a7678ca462ff1","f41d30972724714763a2698ae949fbc463afb203b5fa7c4ad7e4de0871129a17","86d425f7fcd8d100dafa6286cc289af88cbb639ecbdbd25c3018a8f0f7b09fe5","9795e0a3a45d5b6f1a791ee54b7c8b58bc931e8900966cea2dff9c5bae56073b","5890be29879d02424b7654f40592915189034948f7a18c5ad121c006d4e92811","0ab49086f10c75a1cb3b18bffe799dae021774146d8a2d5a4bb42dda67b64f9b","81c77839e152b8f715ec67b0a8b910bcc2d6cf916794c3519f8798c40efd12ac","a868a534ba1c2ca9060b8a13b0ffbbbf78b4be7b0ff80d8c75b02773f7192c29","464843c00fb3dd4735b28255c5c9fe713f16b8e47a3db09ba1647687440f7aef","34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","d0f6d36b2d86f934560c48d8bfdc7ab60c67cfb2ab6dc1916706aa68e83d6dc2","239f0c1d83d1ca9677327198196ee2ce6827dc7b469771ab5abf7bea7fbdb674","fab58e600970e66547644a44bc9918e3223aa2cbd9e8763cec004b2cfb48827e","bae219fc966077e88ec22d2dc2eb24617d3244d3593afdc5f2457fabd27d7462"],"options":{"composite":true,"esModuleInterop":true,"module":1,"outDir":"./lib","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":7},"fileIdsList":[[63,108],[80,83,107,108,115,116,117,118],[70,108,115],[108],[108,124,125],[108,122,123,124],[81,108,115],[80,81,108,115,128],[83,85,97,107,108,115,130],[80,108,115],[108,135,137,138,139,140,141,142,143,144,145,146,147],[108,135,136,138,139,140,141,142,143,144,145,146,147],[108,136,137,138,139,140,141,142,143,144,145,146,147],[108,135,136,137,139,140,141,142,143,144,145,146,147],[108,135,136,137,138,140,141,142,143,144,145,146,147],[108,135,136,137,138,139,141,142,143,144,145,146,147],[108,135,136,137,138,139,140,142,143,144,145,146,147],[108,135,136,137,138,139,140,141,143,144,145,146,147],[108,135,136,137,138,139,140,141,142,144,145,146,147],[108,135,136,137,138,139,140,141,142,143,145,146,147],[108,135,136,137,138,139,140,141,142,143,144,146,147],[108,135,136,137,138,139,140,141,142,143,144,145,147],[108,135,136,137,138,139,140,141,142,143,144,145,146],[108,167],[108,152],[108,156,157,158],[108,155],[108,157],[108,134,153,154,159,162,164,165,166],[108,154,160,161,167],[108,160,163],[108,154,155,160,167],[108,154,167],[108,148,149,150,151],[83,107,108,115,172,173],[83,97,108,115],[65,108],[68,108],[69,74,108],[70,80,81,88,97,107,108],[70,71,80,88,108],[72,108],[73,74,81,89,108],[74,97,104,108],[75,77,80,88,108],[76,108],[77,78,108],[79,80,108],[80,108],[80,81,82,97,107,108],[80,81,82,97,108],[83,88,97,107,108],[80,81,83,84,88,97,104,107,108],[83,85,97,104,107,108],[65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114],[80,86,108],[87,107,108],[77,80,88,97,108],[89,108],[90,108],[68,91,108],[92,106,108,112],[93,108],[94,108],[80,95,108],[95,96,108,110],[80,97,98,99,108],[97,99,108],[97,98,108],[100,108],[101,108],[80,102,103,108],[102,103,108],[74,88,104,108],[105,108],[88,106,108],[69,83,94,107,108],[74,108],[97,108,109],[108,110],[108,111],[69,74,80,82,91,97,107,108,110,112],[97,108,113],[108,179,180],[108,179],[81,108,115,129],[108,183,222],[108,183,207,222],[108,222],[108,183],[108,183,208,222],[108,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221],[108,208,222],[80,97,108,113,115,170],[53,108],[52,54,61,68,108],[56,58,108],[55,108],[55,57,108],[55,58,108],[42,108],[42,58,108],[44,45,48,49,51,52,55,56,57,58,59,60,108],[42,43,108],[43,44,45,46,47,48,49,50,51,108],[42,46,108],[48,108],[42,43,46,48,108],[41,108],[39,40,108]],"referencedMap":[[64,1],[119,2],[120,3],[121,4],[126,5],[122,4],[125,6],[124,4],[127,7],[129,8],[131,9],[117,4],[132,4],[123,4],[133,10],[134,4],[136,11],[137,12],[135,13],[138,14],[139,15],[140,16],[141,17],[142,18],[143,19],[144,20],[145,21],[146,22],[147,23],[39,4],[168,24],[153,25],[159,26],[157,4],[156,27],[158,28],[167,29],[162,30],[164,31],[165,32],[166,33],[160,4],[161,33],[163,33],[155,33],[154,4],[149,4],[148,4],[151,25],[152,34],[150,25],[128,4],[169,4],[170,10],[171,4],[173,4],[174,35],[172,36],[65,37],[66,37],[68,38],[69,39],[70,40],[71,41],[72,42],[73,43],[74,44],[75,45],[76,46],[77,47],[78,47],[79,48],[80,49],[81,50],[82,51],[67,4],[114,4],[83,52],[84,53],[85,54],[115,55],[86,56],[87,57],[88,58],[89,59],[90,60],[91,61],[92,62],[93,63],[94,64],[95,65],[96,66],[97,67],[99,68],[98,69],[100,70],[101,71],[102,72],[103,73],[104,74],[105,75],[106,76],[107,77],[108,78],[109,79],[110,80],[111,81],[112,82],[113,83],[175,4],[176,4],[177,4],[178,4],[181,84],[180,85],[118,36],[63,4],[182,86],[207,87],[208,88],[183,89],[186,89],[205,87],[206,87],[196,90],[195,90],[193,87],[188,87],[201,87],[199,87],[203,87],[187,87],[200,87],[204,87],[189,87],[190,87],[202,87],[184,87],[191,87],[192,87],[194,87],[198,87],[209,91],[197,87],[185,87],[222,92],[221,4],[216,91],[218,93],[217,91],[210,91],[211,91],[213,91],[215,91],[219,93],[220,93],[212,93],[214,93],[223,94],[130,4],[224,4],[225,4],[54,95],[53,4],[116,49],[40,4],[179,85],[9,4],[8,4],[2,4],[10,4],[11,4],[12,4],[13,4],[14,4],[15,4],[16,4],[17,4],[3,4],[4,4],[21,4],[18,4],[19,4],[20,4],[22,4],[23,4],[24,4],[5,4],[25,4],[26,4],[27,4],[28,4],[6,4],[29,4],[30,4],[31,4],[32,4],[7,4],[37,4],[33,4],[34,4],[35,4],[36,4],[1,4],[38,4],[62,96],[59,97],[56,98],[58,99],[57,100],[55,101],[60,102],[61,103],[44,104],[45,4],[52,105],[47,106],[48,4],[43,101],[49,101],[46,4],[50,107],[51,108],[42,109],[41,110]],"exportedModulesMap":[[64,1],[119,2],[120,3],[121,4],[126,5],[122,4],[125,6],[124,4],[127,7],[129,8],[131,9],[117,4],[132,4],[123,4],[133,10],[134,4],[136,11],[137,12],[135,13],[138,14],[139,15],[140,16],[141,17],[142,18],[143,19],[144,20],[145,21],[146,22],[147,23],[39,4],[168,24],[153,25],[159,26],[157,4],[156,27],[158,28],[167,29],[162,30],[164,31],[165,32],[166,33],[160,4],[161,33],[163,33],[155,33],[154,4],[149,4],[148,4],[151,25],[152,34],[150,25],[128,4],[169,4],[170,10],[171,4],[173,4],[174,35],[172,36],[65,37],[66,37],[68,38],[69,39],[70,40],[71,41],[72,42],[73,43],[74,44],[75,45],[76,46],[77,47],[78,47],[79,48],[80,49],[81,50],[82,51],[67,4],[114,4],[83,52],[84,53],[85,54],[115,55],[86,56],[87,57],[88,58],[89,59],[90,60],[91,61],[92,62],[93,63],[94,64],[95,65],[96,66],[97,67],[99,68],[98,69],[100,70],[101,71],[102,72],[103,73],[104,74],[105,75],[106,76],[107,77],[108,78],[109,79],[110,80],[111,81],[112,82],[113,83],[175,4],[176,4],[177,4],[178,4],[181,84],[180,85],[118,36],[63,4],[182,86],[207,87],[208,88],[183,89],[186,89],[205,87],[206,87],[196,90],[195,90],[193,87],[188,87],[201,87],[199,87],[203,87],[187,87],[200,87],[204,87],[189,87],[190,87],[202,87],[184,87],[191,87],[192,87],[194,87],[198,87],[209,91],[197,87],[185,87],[222,92],[221,4],[216,91],[218,93],[217,91],[210,91],[211,91],[213,91],[215,91],[219,93],[220,93],[212,93],[214,93],[223,94],[130,4],[224,4],[225,4],[54,95],[53,4],[116,49],[40,4],[179,85],[9,4],[8,4],[2,4],[10,4],[11,4],[12,4],[13,4],[14,4],[15,4],[16,4],[17,4],[3,4],[4,4],[21,4],[18,4],[19,4],[20,4],[22,4],[23,4],[24,4],[5,4],[25,4],[26,4],[27,4],[28,4],[6,4],[29,4],[30,4],[31,4],[32,4],[7,4],[37,4],[33,4],[34,4],[35,4],[36,4],[1,4],[38,4],[62,96],[59,97],[56,98],[58,99],[57,100],[55,101],[60,102],[61,103],[44,104],[45,4],[52,105],[47,106],[48,4],[43,101],[49,101],[46,4],[50,107],[51,108],[42,109],[41,110]],"semanticDiagnosticsPerFile":[64,119,120,121,126,122,125,124,127,129,131,117,132,123,133,134,136,137,135,138,139,140,141,142,143,144,145,146,147,39,168,153,159,157,156,158,167,162,164,165,166,160,161,163,155,154,149,148,151,152,150,128,169,170,171,173,174,172,65,66,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,67,114,83,84,85,115,86,87,88,89,90,91,92,93,94,95,96,97,99,98,100,101,102,103,104,105,106,107,108,109,110,111,112,113,175,176,177,178,181,180,118,63,182,207,208,183,186,205,206,196,195,193,188,201,199,203,187,200,204,189,190,202,184,191,192,194,198,209,197,185,222,221,216,218,217,210,211,213,215,219,220,212,214,223,130,224,225,54,53,116,40,179,9,8,2,10,11,12,13,14,15,16,17,3,4,21,18,19,20,22,23,24,5,25,26,27,28,6,29,30,31,32,7,37,33,34,35,36,1,38,62,59,56,58,57,55,60,61,44,45,52,47,48,43,49,46,50,51,42,41]},"version":"4.6.3"}