@temporalio/activity 1.0.0-rc.0 → 1.0.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/LICENSE.md CHANGED
@@ -2,7 +2,7 @@ Temporal TypeScript SDK
2
2
 
3
3
  MIT License
4
4
 
5
- Copyright (c) 2021 Temporal Technologies, Inc. All Rights Reserved
5
+ Copyright (c) 2021 Temporal Technologies Inc. All Rights Reserved
6
6
 
7
7
  Permission is hereby granted, free of charge, to any person obtaining a copy
8
8
  of this software and associated documentation files (the "Software"), to deal
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
  *
@@ -28,14 +45,25 @@
28
45
  /// <reference types="node" />
29
46
  import { AbortSignal } from 'abort-controller';
30
47
  import { AsyncLocalStorage } from 'async_hooks';
31
- export { CancelledFailure } from '@temporalio/common';
32
- export { ActivityFunction, ActivityInterface } from '@temporalio/internal-workflow-common';
48
+ export { CancelledFailure, ApplicationFailure } from '@temporalio/common';
49
+ export { ActivityFunction, ActivityInterface, // eslint-disable-line deprecation/deprecation
50
+ UntypedActivities, errorMessage, errorCode, } from '@temporalio/internal-workflow-common';
33
51
  /**
34
- * Throw this error from an Activity in order to make the Worker
35
- * forget about this Activity.
52
+ * Throw this error from an Activity in order to make the Worker forget about this Activity.
53
+ *
54
+ * The Activity can then be completed asynchronously (from anywhere—usually outside the Worker) using
55
+ * {@link AsyncCompletionClient}.
56
+ *
57
+ * @example
58
+ *
59
+ *```ts
60
+ *import { CompleteAsyncError } from '@temporalio/activity';
36
61
  *
37
- * The Activity can be completed asynchronously using
38
- * {@link AsyncCompletionClient}
62
+ *export async function myActivity(): Promise<never> {
63
+ * // ...
64
+ * throw new CompleteAsyncError();
65
+ *}
66
+ *```
39
67
  */
40
68
  export declare class CompleteAsyncError extends Error {
41
69
  readonly name: string;
@@ -44,7 +72,7 @@ export declare class CompleteAsyncError extends Error {
44
72
  /** @ignore */
45
73
  export declare const asyncLocalStorage: AsyncLocalStorage<Context>;
46
74
  /**
47
- * Holds information about the current executing Activity
75
+ * Holds information about the current Activity Execution. Retrieved inside an Activity with `Context.current().info`.
48
76
  */
49
77
  export interface Info {
50
78
  taskToken: Uint8Array;
@@ -109,11 +137,20 @@ export interface Info {
109
137
  * Use this in order to resume your Activity from checkpoint.
110
138
  */
111
139
  heartbeatDetails: any;
140
+ /**
141
+ * Task queue the Activity is scheduled in, set to the Workflow's task queue in case of local Activity.
142
+ */
143
+ taskQueue: string;
112
144
  }
113
145
  /**
114
- * Activity Context manager.
146
+ * Activity Context, used to:
147
+ *
148
+ * - Get {@link Info} about the current Activity Execution
149
+ * - Send {@link https://docs.temporal.io/concepts/what-is-an-activity-heartbeat | heartbeats}
150
+ * - Get notified of Activity cancellation
151
+ * - Sleep (cancellation-aware)
115
152
  *
116
- * Call `Context.current()` from Activity code in order to send heartbeats and get notified of Activity cancellation.
153
+ * Call `Context.current()` from Activity code in order to get the current Activity's Context.
117
154
  */
118
155
  export declare class Context {
119
156
  /**
@@ -123,13 +160,21 @@ export declare class Context {
123
160
  /**
124
161
  * Await this promise in an Activity to get notified of cancellation.
125
162
  *
126
- * This promise will never be resolved, it will only be rejected with a {@link CancelledFailure}.
163
+ * This promise will never resolve—it will only be rejected with a {@link CancelledFailure}.
164
+ *
165
+ * @see [Cancellation](/api/namespaces/activity#cancellation)
127
166
  */
128
167
  readonly cancelled: Promise<never>;
129
168
  /**
130
- * An `AbortSignal` which can be used to cancel requests on Activity cancellation.
169
+ * An {@link https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal | `AbortSignal`} that can be used to react to
170
+ * Activity cancellation.
171
+ *
172
+ * Used by {@link https://www.npmjs.com/package/node-fetch#request-cancellation-with-abortsignal | fetch} to abort an
173
+ * in-progress request and
174
+ * {@link https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options child_process}
175
+ * to abort a child process, and is supported by some other libraries as well.
131
176
  *
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.
177
+ * @see [Cancellation](/api/namespaces/activity#cancellation)
133
178
  */
134
179
  readonly cancellationSignal: AbortSignal;
135
180
  /**
@@ -143,11 +188,17 @@ export declare class Context {
143
188
  */
144
189
  constructor(info: Info, cancelled: Promise<never>, cancellationSignal: AbortSignal, heartbeat: (details?: any) => void);
145
190
  /**
146
- * Send a heartbeat from an Activity.
191
+ * Send a {@link https://docs.temporal.io/concepts/what-is-an-activity-heartbeat | heartbeat} from an Activity.
192
+ *
193
+ * If an Activity times out, then during the next retry, the last value of `details` is available at
194
+ * {@link Info.heartbeatDetails}. This acts as a periodic checkpoint mechanism for the progress of an Activity.
147
195
  *
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.
196
+ * If an Activity times out on the final retry (relevant in cases in which {@link RetryPolicy.maximumAttempts} is
197
+ * set), the Activity function call in the Workflow code will throw an {@link ActivityFailure} with the `cause`
198
+ * attribute set to a {@link TimeoutFailure}, which has the last value of `details` available at
199
+ * {@link TimeoutFailure.lastHeartbeatDetails}.
149
200
  *
150
- * The Activity must heartbeat in order to receive cancellation.
201
+ * Activities must heartbeat in order to receive cancellation.
151
202
  */
152
203
  heartbeat(details?: unknown): void;
153
204
  /**
@@ -158,8 +209,8 @@ export declare class Context {
158
209
  static current(): Context;
159
210
  /**
160
211
  * 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
212
+ * @param ms Sleep duration: an {@link https://www.npmjs.com/package/ms | ms}-formatted string or number of milliseconds
213
+ * @returns A Promise that either resolves when `ms` is reached or rejects when the Activity is cancelled
163
214
  */
164
215
  sleep(ms: number | string): Promise<void>;
165
216
  }
package/lib/index.js CHANGED
@@ -1,43 +1,74 @@
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
  */
29
46
  Object.defineProperty(exports, "__esModule", { value: true });
30
- exports.Context = exports.asyncLocalStorage = exports.CompleteAsyncError = exports.CancelledFailure = void 0;
47
+ exports.Context = exports.asyncLocalStorage = exports.CompleteAsyncError = exports.errorCode = exports.errorMessage = exports.ApplicationFailure = exports.CancelledFailure = void 0;
31
48
  const internal_workflow_common_1 = require("@temporalio/internal-workflow-common");
32
49
  const async_hooks_1 = require("async_hooks");
33
50
  var common_1 = require("@temporalio/common");
34
51
  Object.defineProperty(exports, "CancelledFailure", { enumerable: true, get: function () { return common_1.CancelledFailure; } });
52
+ Object.defineProperty(exports, "ApplicationFailure", { enumerable: true, get: function () { return common_1.ApplicationFailure; } });
53
+ var internal_workflow_common_2 = require("@temporalio/internal-workflow-common");
54
+ Object.defineProperty(exports, "errorMessage", { enumerable: true, get: function () { return internal_workflow_common_2.errorMessage; } });
55
+ Object.defineProperty(exports, "errorCode", { enumerable: true, get: function () { return internal_workflow_common_2.errorCode; } });
35
56
  /**
36
- * Throw this error from an Activity in order to make the Worker
37
- * forget about this Activity.
57
+ * Throw this error from an Activity in order to make the Worker forget about this Activity.
58
+ *
59
+ * The Activity can then be completed asynchronously (from anywhere—usually outside the Worker) using
60
+ * {@link AsyncCompletionClient}.
38
61
  *
39
- * The Activity can be completed asynchronously using
40
- * {@link AsyncCompletionClient}
62
+ * @example
63
+ *
64
+ *```ts
65
+ *import { CompleteAsyncError } from '@temporalio/activity';
66
+ *
67
+ *export async function myActivity(): Promise<never> {
68
+ * // ...
69
+ * throw new CompleteAsyncError();
70
+ *}
71
+ *```
41
72
  */
42
73
  class CompleteAsyncError extends Error {
43
74
  constructor() {
@@ -49,9 +80,14 @@ exports.CompleteAsyncError = CompleteAsyncError;
49
80
  /** @ignore */
50
81
  exports.asyncLocalStorage = new async_hooks_1.AsyncLocalStorage();
51
82
  /**
52
- * Activity Context manager.
83
+ * Activity Context, used to:
53
84
  *
54
- * Call `Context.current()` from Activity code in order to send heartbeats and get notified of Activity cancellation.
85
+ * - Get {@link Info} about the current Activity Execution
86
+ * - Send {@link https://docs.temporal.io/concepts/what-is-an-activity-heartbeat | heartbeats}
87
+ * - Get notified of Activity cancellation
88
+ * - Sleep (cancellation-aware)
89
+ *
90
+ * Call `Context.current()` from Activity code in order to get the current Activity's Context.
55
91
  */
56
92
  class Context {
57
93
  /**
@@ -66,11 +102,17 @@ class Context {
66
102
  this.heartbeatFn = heartbeat;
67
103
  }
68
104
  /**
69
- * Send a heartbeat from an Activity.
105
+ * Send a {@link https://docs.temporal.io/concepts/what-is-an-activity-heartbeat | heartbeat} from an Activity.
106
+ *
107
+ * If an Activity times out, then during the next retry, the last value of `details` is available at
108
+ * {@link Info.heartbeatDetails}. This acts as a periodic checkpoint mechanism for the progress of an Activity.
70
109
  *
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.
110
+ * If an Activity times out on the final retry (relevant in cases in which {@link RetryPolicy.maximumAttempts} is
111
+ * set), the Activity function call in the Workflow code will throw an {@link ActivityFailure} with the `cause`
112
+ * attribute set to a {@link TimeoutFailure}, which has the last value of `details` available at
113
+ * {@link TimeoutFailure.lastHeartbeatDetails}.
72
114
  *
73
- * The Activity must heartbeat in order to receive cancellation.
115
+ * Activities must heartbeat in order to receive cancellation.
74
116
  */
75
117
  heartbeat(details) {
76
118
  this.heartbeatFn(details);
@@ -89,8 +131,8 @@ class Context {
89
131
  }
90
132
  /**
91
133
  * 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
134
+ * @param ms Sleep duration: an {@link https://www.npmjs.com/package/ms | ms}-formatted string or number of milliseconds
135
+ * @returns A Promise that either resolves when `ms` is reached or rejects when the Activity is cancelled
94
136
  */
95
137
  sleep(ms) {
96
138
  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,6CAA0E;AAAjE,0GAAA,gBAAgB,OAAA;AAAE,4GAAA,kBAAkB,OAAA;AAC7C,iFAM8C;AAF5C,wHAAA,YAAY,OAAA;AACZ,qHAAA,SAAS,OAAA;AAGX;;;;;;;;;;;;;;;;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": "1.0.0-rc.0",
3
+ "version": "1.0.1",
4
4
  "description": "Temporal.io SDK Activity sub-package",
5
5
  "main": "lib/index.js",
6
6
  "types": "./lib/index.d.ts",
@@ -10,11 +10,11 @@
10
10
  "worker",
11
11
  "activity"
12
12
  ],
13
- "author": "Roey Berman <roey@temporal.io>",
13
+ "author": "Temporal Technologies Inc. <sdk@temporal.io>",
14
14
  "license": "MIT",
15
15
  "dependencies": {
16
- "@temporalio/common": "^1.0.0-rc.0",
17
- "@temporalio/internal-workflow-common": "^1.0.0-rc.0",
16
+ "@temporalio/common": "^1.0.1",
17
+ "@temporalio/internal-workflow-common": "^1.0.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": "c25e91309b980f2118df4048d760306982019871"
27
+ "files": [
28
+ "src",
29
+ "lib"
30
+ ],
31
+ "gitHead": "a1dae539e72b6b088b400998d7bef482e8ed52f1"
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
  *
@@ -29,15 +46,31 @@
29
46
  import { msToNumber } from '@temporalio/internal-workflow-common';
30
47
  import { AbortSignal } from 'abort-controller';
31
48
  import { AsyncLocalStorage } from 'async_hooks';
32
- export { CancelledFailure } from '@temporalio/common';
33
- export { ActivityFunction, ActivityInterface } from '@temporalio/internal-workflow-common';
49
+ export { CancelledFailure, ApplicationFailure } from '@temporalio/common';
50
+ export {
51
+ ActivityFunction,
52
+ ActivityInterface, // eslint-disable-line deprecation/deprecation
53
+ UntypedActivities,
54
+ errorMessage,
55
+ errorCode,
56
+ } from '@temporalio/internal-workflow-common';
34
57
 
35
58
  /**
36
- * Throw this error from an Activity in order to make the Worker
37
- * forget about this Activity.
59
+ * Throw this error from an Activity in order to make the Worker forget about this Activity.
60
+ *
61
+ * The Activity can then be completed asynchronously (from anywhere—usually outside the Worker) using
62
+ * {@link AsyncCompletionClient}.
63
+ *
64
+ * @example
65
+ *
66
+ *```ts
67
+ *import { CompleteAsyncError } from '@temporalio/activity';
38
68
  *
39
- * The Activity can be completed asynchronously using
40
- * {@link AsyncCompletionClient}
69
+ *export async function myActivity(): Promise<never> {
70
+ * // ...
71
+ * throw new CompleteAsyncError();
72
+ *}
73
+ *```
41
74
  */
42
75
  export class CompleteAsyncError extends Error {
43
76
  public readonly name: string = 'CompleteAsyncError';
@@ -51,7 +84,7 @@ export class CompleteAsyncError extends Error {
51
84
  export const asyncLocalStorage = new AsyncLocalStorage<Context>();
52
85
 
53
86
  /**
54
- * Holds information about the current executing Activity
87
+ * Holds information about the current Activity Execution. Retrieved inside an Activity with `Context.current().info`.
55
88
  */
56
89
  export interface Info {
57
90
  taskToken: Uint8Array;
@@ -116,12 +149,22 @@ export interface Info {
116
149
  * Use this in order to resume your Activity from checkpoint.
117
150
  */
118
151
  heartbeatDetails: any;
152
+
153
+ /**
154
+ * Task queue the Activity is scheduled in, set to the Workflow's task queue in case of local Activity.
155
+ */
156
+ taskQueue: string;
119
157
  }
120
158
 
121
159
  /**
122
- * Activity Context manager.
160
+ * Activity Context, used to:
161
+ *
162
+ * - Get {@link Info} about the current Activity Execution
163
+ * - Send {@link https://docs.temporal.io/concepts/what-is-an-activity-heartbeat | heartbeats}
164
+ * - Get notified of Activity cancellation
165
+ * - Sleep (cancellation-aware)
123
166
  *
124
- * Call `Context.current()` from Activity code in order to send heartbeats and get notified of Activity cancellation.
167
+ * Call `Context.current()` from Activity code in order to get the current Activity's Context.
125
168
  */
126
169
  export class Context {
127
170
  /**
@@ -131,13 +174,21 @@ export class Context {
131
174
  /**
132
175
  * Await this promise in an Activity to get notified of cancellation.
133
176
  *
134
- * This promise will never be resolved, it will only be rejected with a {@link CancelledFailure}.
177
+ * This promise will never resolve—it will only be rejected with a {@link CancelledFailure}.
178
+ *
179
+ * @see [Cancellation](/api/namespaces/activity#cancellation)
135
180
  */
136
181
  public readonly cancelled: Promise<never>;
137
182
  /**
138
- * An `AbortSignal` which can be used to cancel requests on Activity cancellation.
183
+ * An {@link https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal | `AbortSignal`} that can be used to react to
184
+ * Activity cancellation.
185
+ *
186
+ * Used by {@link https://www.npmjs.com/package/node-fetch#request-cancellation-with-abortsignal | fetch} to abort an
187
+ * in-progress request and
188
+ * {@link https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options child_process}
189
+ * to abort a child process, and is supported by some other libraries as well.
139
190
  *
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.
191
+ * @see [Cancellation](/api/namespaces/activity#cancellation)
141
192
  */
142
193
  public readonly cancellationSignal: AbortSignal;
143
194
  /**
@@ -163,11 +214,17 @@ export class Context {
163
214
  }
164
215
 
165
216
  /**
166
- * Send a heartbeat from an Activity.
217
+ * Send a {@link https://docs.temporal.io/concepts/what-is-an-activity-heartbeat | heartbeat} from an Activity.
218
+ *
219
+ * If an Activity times out, then during the next retry, the last value of `details` is available at
220
+ * {@link Info.heartbeatDetails}. This acts as a periodic checkpoint mechanism for the progress of an Activity.
167
221
  *
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.
222
+ * If an Activity times out on the final retry (relevant in cases in which {@link RetryPolicy.maximumAttempts} is
223
+ * set), the Activity function call in the Workflow code will throw an {@link ActivityFailure} with the `cause`
224
+ * attribute set to a {@link TimeoutFailure}, which has the last value of `details` available at
225
+ * {@link TimeoutFailure.lastHeartbeatDetails}.
169
226
  *
170
- * The Activity must heartbeat in order to receive cancellation.
227
+ * Activities must heartbeat in order to receive cancellation.
171
228
  */
172
229
  public heartbeat(details?: unknown): void {
173
230
  this.heartbeatFn(details);
@@ -188,8 +245,8 @@ export class Context {
188
245
 
189
246
  /**
190
247
  * 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
248
+ * @param ms Sleep duration: an {@link https://www.npmjs.com/package/ms | ms}-formatted string or number of milliseconds
249
+ * @returns A Promise that either resolves when `ms` is reached or rejects when the Activity is cancelled
193
250
  */
194
251
  public sleep(ms: number | string): Promise<void> {
195
252
  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/interfaces.d.ts","../internal-workflow-common/lib/interceptors.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-converter.d.ts","../common/lib/converter/data-converter.d.ts","../common/lib/converter/search-attribute-payload-converter.d.ts","../common/lib/converter/payload-converters.d.ts","../common/lib/converter/json-payload-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/stack-utils/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","1d32d9935c2d048004a9cb1d574bf5d12f1ec698a041b773d72d0a478d7b0afc","5dd8502bb4e8bb8ed10f54cb38ac954c36f498948310ac42029addee14423cff","3cfd4bb38bf2f426107a2418a496707381780647b79670deb323da6a4431758a","1f86b92d8d772ebeeb5b4a6fc4bb4fb13ae7275d69fbb2ed0128fb589a6fc057","e7331f975f91db90ac66c71807c64b30c76d6f5f9561f222a1f5b8dc22bcac89","8c1c7f187912d5dadec77f8bd1fdf1f4099bf86ddf33525525beaf290f5d1789","8fe7eea86a330359af4ba819243a04ea9cb2bbc621e037d0eccf3113dfe32296","a79be2fc73b3edaf34c849e7c2a89db885af30b4fc3845a3ba606fe02b7084f7","97fdf5a317f77456a8d2d20c9eaf61f64611dbf6baa2b6ca36bbbeb6b456aae7","1a7689daffa54e39ebac4d793b9a38605e6c1354ba4f82a2777599d2e316d118","9e107fad2babacc5f1657a02395544effb506694e1e501c904d98391a4f65310","9863b273003f68928bab5740056d3de2f3344749b4a24cf3dedc6d3cbda79d81","2859adaa4f2db3d4f0fc37ad86f056045341496b58fba0dbc16a222f9d5d55b1","655ed305e8f4cb95d3f578040301a4e4d6ace112b1bd8824cd32bda66c3677d1","514c0b142d42cf1472c44b70b559467b9015bb038730d9dcb0c22e165c4d964a","516ff58c07dad244438c381cf1e8e8a33bd7d219dadf5d1f4fca302aab26ff4d","58a7ebcf8885c76c26891964dc31a3ec77aa92b606df9fa6649dda5c3584e374","d148b595b939c65d3e91ac7f688505bf89d1c84edc3ac41281ba3f4e098c2542","df443c7eb3349f6d391b15d9b7eff8eda67b04672571a1ef844a3bf27c0fa18e","ceaf8661d1e86ce86eb323fa725ba4c38b4b73fe4bb30650861783a4014d8eb5","2c0d9ea243553caf518eae384d467b35814336cb5b8d46592eb90777863f677e","70148973a311c3b6afc0083d1308c9cd4edf11b6c5c3dfb08611c2c71b6aa323","31f144a114dedac7a7c80054a0b3f33ec82af7f05528ae47c38ac061fea01207","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":"f2eff8704452659641164876c1ef0df4174659ce7311b0665798ea3f556fa9ad","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","b0d10e46cfe3f6c476b69af02eaa38e4ccc7430221ce3109ae84bb9fb8282298","239f0c1d83d1ca9677327198196ee2ce6827dc7b469771ab5abf7bea7fbdb674","fab58e600970e66547644a44bc9918e3223aa2cbd9e8763cec004b2cfb48827e","bae219fc966077e88ec22d2dc2eb24617d3244d3593afdc5f2457fabd27d7462"],"options":{"composite":true,"esModuleInterop":true,"module":1,"outDir":"./lib","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":7},"fileIdsList":[[65,110],[82,85,109,110,117,118,119,120],[72,110,117],[110],[110,126,127],[110,124,125,126],[83,110,117],[82,83,110,117,130],[85,87,99,109,110,117,132],[82,110,117],[110,137,139,140,141,142,143,144,145,146,147,148,149],[110,137,138,140,141,142,143,144,145,146,147,148,149],[110,138,139,140,141,142,143,144,145,146,147,148,149],[110,137,138,139,141,142,143,144,145,146,147,148,149],[110,137,138,139,140,142,143,144,145,146,147,148,149],[110,137,138,139,140,141,143,144,145,146,147,148,149],[110,137,138,139,140,141,142,144,145,146,147,148,149],[110,137,138,139,140,141,142,143,145,146,147,148,149],[110,137,138,139,140,141,142,143,144,146,147,148,149],[110,137,138,139,140,141,142,143,144,145,147,148,149],[110,137,138,139,140,141,142,143,144,145,146,148,149],[110,137,138,139,140,141,142,143,144,145,146,147,149],[110,137,138,139,140,141,142,143,144,145,146,147,148],[110,169],[110,154],[110,158,159,160],[110,157],[110,159],[110,136,155,156,161,164,166,167,168],[110,156,162,163,169],[110,162,165],[110,156,157,162,169],[110,156,169],[110,150,151,152,153],[85,109,110,117,174,175],[85,99,110,117],[67,110],[70,110],[71,76,110],[72,82,83,90,99,109,110],[72,73,82,90,110],[74,110],[75,76,83,91,110],[76,99,106,110],[77,79,82,90,110],[78,110],[79,80,110],[81,82,110],[82,110],[82,83,84,99,109,110],[82,83,84,99,110],[85,90,99,109,110],[82,83,85,86,90,99,106,109,110],[85,87,99,106,109,110],[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,115,116],[82,88,110],[89,109,110],[79,82,90,99,110],[91,110],[92,110],[70,93,110],[94,108,110,114],[95,110],[96,110],[82,97,110],[97,98,110,112],[82,99,100,101,110],[99,101,110],[99,100,110],[102,110],[103,110],[82,104,105,110],[104,105,110],[76,90,106,110],[107,110],[90,108,110],[71,85,96,109,110],[76,110],[99,110,111],[110,112],[110,113],[71,76,82,84,93,99,109,110,112,114],[99,110,115],[110,181,182],[110,181],[83,110,117,131],[110,185,224],[110,185,209,224],[110,224],[110,185],[110,185,210,224],[110,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,222,223],[110,210,224],[82,99,110,115,117,172],[53,110],[52,54,63,70,110],[56,57,110],[55,60,110],[55,110],[55,57,59,110],[55,57,110],[52,110],[42,57,110],[44,45,47,49,51,52,55,56,57,58,60,61,62,110],[42,43,110],[43,44,45,46,47,48,49,50,51,110],[46,47,110],[42,110],[47,110],[42,43,46,47,110],[41,110],[39,40,110]],"referencedMap":[[66,1],[121,2],[122,3],[123,4],[128,5],[124,4],[127,6],[126,4],[129,7],[131,8],[133,9],[119,4],[134,4],[125,4],[135,10],[136,4],[138,11],[139,12],[137,13],[140,14],[141,15],[142,16],[143,17],[144,18],[145,19],[146,20],[147,21],[148,22],[149,23],[39,4],[170,24],[155,25],[161,26],[159,4],[158,27],[160,28],[169,29],[164,30],[166,31],[167,32],[168,33],[162,4],[163,33],[165,33],[157,33],[156,4],[151,4],[150,4],[153,25],[154,34],[152,25],[130,4],[171,4],[172,10],[173,4],[175,4],[176,35],[174,36],[67,37],[68,37],[70,38],[71,39],[72,40],[73,41],[74,42],[75,43],[76,44],[77,45],[78,46],[79,47],[80,47],[81,48],[82,49],[83,50],[84,51],[69,4],[116,4],[85,52],[86,53],[87,54],[117,55],[88,56],[89,57],[90,58],[91,59],[92,60],[93,61],[94,62],[95,63],[96,64],[97,65],[98,66],[99,67],[101,68],[100,69],[102,70],[103,71],[104,72],[105,73],[106,74],[107,75],[108,76],[109,77],[110,78],[111,79],[112,80],[113,81],[114,82],[115,83],[177,4],[178,4],[179,4],[180,4],[183,84],[182,85],[120,36],[65,4],[184,86],[209,87],[210,88],[185,89],[188,89],[207,87],[208,87],[198,90],[197,90],[195,87],[190,87],[203,87],[201,87],[205,87],[189,87],[202,87],[206,87],[191,87],[192,87],[204,87],[186,87],[193,87],[194,87],[196,87],[200,87],[211,91],[199,87],[187,87],[224,92],[223,4],[218,91],[220,93],[219,91],[212,91],[213,91],[215,91],[217,91],[221,93],[222,93],[214,93],[216,93],[225,4],[226,94],[132,4],[227,4],[228,4],[54,95],[53,4],[118,49],[40,4],[181,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],[64,96],[58,97],[61,98],[56,99],[57,99],[60,100],[59,101],[55,102],[62,103],[63,104],[44,105],[45,4],[52,106],[48,107],[47,108],[43,108],[49,108],[46,4],[50,109],[51,110],[42,111],[41,112]],"exportedModulesMap":[[66,1],[121,2],[122,3],[123,4],[128,5],[124,4],[127,6],[126,4],[129,7],[131,8],[133,9],[119,4],[134,4],[125,4],[135,10],[136,4],[138,11],[139,12],[137,13],[140,14],[141,15],[142,16],[143,17],[144,18],[145,19],[146,20],[147,21],[148,22],[149,23],[39,4],[170,24],[155,25],[161,26],[159,4],[158,27],[160,28],[169,29],[164,30],[166,31],[167,32],[168,33],[162,4],[163,33],[165,33],[157,33],[156,4],[151,4],[150,4],[153,25],[154,34],[152,25],[130,4],[171,4],[172,10],[173,4],[175,4],[176,35],[174,36],[67,37],[68,37],[70,38],[71,39],[72,40],[73,41],[74,42],[75,43],[76,44],[77,45],[78,46],[79,47],[80,47],[81,48],[82,49],[83,50],[84,51],[69,4],[116,4],[85,52],[86,53],[87,54],[117,55],[88,56],[89,57],[90,58],[91,59],[92,60],[93,61],[94,62],[95,63],[96,64],[97,65],[98,66],[99,67],[101,68],[100,69],[102,70],[103,71],[104,72],[105,73],[106,74],[107,75],[108,76],[109,77],[110,78],[111,79],[112,80],[113,81],[114,82],[115,83],[177,4],[178,4],[179,4],[180,4],[183,84],[182,85],[120,36],[65,4],[184,86],[209,87],[210,88],[185,89],[188,89],[207,87],[208,87],[198,90],[197,90],[195,87],[190,87],[203,87],[201,87],[205,87],[189,87],[202,87],[206,87],[191,87],[192,87],[204,87],[186,87],[193,87],[194,87],[196,87],[200,87],[211,91],[199,87],[187,87],[224,92],[223,4],[218,91],[220,93],[219,91],[212,91],[213,91],[215,91],[217,91],[221,93],[222,93],[214,93],[216,93],[225,4],[226,94],[132,4],[227,4],[228,4],[54,95],[53,4],[118,49],[40,4],[181,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],[64,96],[58,97],[61,98],[56,99],[57,99],[60,100],[59,101],[55,102],[62,103],[63,104],[44,105],[45,4],[52,106],[48,107],[47,108],[43,108],[49,108],[46,4],[50,109],[51,110],[42,111],[41,112]],"semanticDiagnosticsPerFile":[66,121,122,123,128,124,127,126,129,131,133,119,134,125,135,136,138,139,137,140,141,142,143,144,145,146,147,148,149,39,170,155,161,159,158,160,169,164,166,167,168,162,163,165,157,156,151,150,153,154,152,130,171,172,173,175,176,174,67,68,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,69,116,85,86,87,117,88,89,90,91,92,93,94,95,96,97,98,99,101,100,102,103,104,105,106,107,108,109,110,111,112,113,114,115,177,178,179,180,183,182,120,65,184,209,210,185,188,207,208,198,197,195,190,203,201,205,189,202,206,191,192,204,186,193,194,196,200,211,199,187,224,223,218,220,219,212,213,215,217,221,222,214,216,225,226,132,227,228,54,53,118,40,181,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,64,58,61,56,57,60,59,55,62,63,44,45,52,48,47,43,49,46,50,51,42,41]},"version":"4.6.3"}