@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 +1 -1
- package/lib/index.d.ts +76 -25
- package/lib/index.js +62 -20
- package/lib/index.js.map +1 -1
- package/package.json +9 -5
- package/src/index.ts +82 -25
- package/tsconfig.json +0 -9
- package/tsconfig.tsbuildinfo +0 -1
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
|
|
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
|
|
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
|
-
*
|
|
5
|
+
* ```ts
|
|
6
|
+
* import { Context } from '@temporalio/activity';
|
|
5
7
|
*
|
|
6
|
-
*
|
|
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
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
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
|
|
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
|
|
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
|
-
*
|
|
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
|
-
*
|
|
38
|
-
*
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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`
|
|
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
|
-
*
|
|
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
|
|
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
|
-
*
|
|
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
|
|
162
|
-
* @returns
|
|
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
|
|
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
|
-
*
|
|
6
|
+
* ```ts
|
|
7
|
+
* import { Context } from '@temporalio/activity';
|
|
6
8
|
*
|
|
7
|
-
*
|
|
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
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
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
|
|
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
|
-
*
|
|
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
|
-
*
|
|
40
|
-
*
|
|
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
|
|
83
|
+
* Activity Context, used to:
|
|
53
84
|
*
|
|
54
|
-
*
|
|
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
|
|
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
|
-
*
|
|
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
|
|
93
|
-
* @returns
|
|
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
|
|
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.
|
|
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": "
|
|
13
|
+
"author": "Temporal Technologies Inc. <sdk@temporal.io>",
|
|
14
14
|
"license": "MIT",
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@temporalio/common": "^1.0.
|
|
17
|
-
"@temporalio/internal-workflow-common": "^1.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
|
-
"
|
|
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
|
|
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
|
-
*
|
|
5
|
+
* ```ts
|
|
6
|
+
* import { Context } from '@temporalio/activity';
|
|
5
7
|
*
|
|
6
|
-
*
|
|
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
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
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
|
|
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 {
|
|
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
|
-
*
|
|
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
|
-
*
|
|
40
|
-
*
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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`
|
|
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
|
-
*
|
|
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
|
|
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
|
-
*
|
|
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
|
|
192
|
-
* @returns
|
|
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
package/tsconfig.tsbuildinfo
DELETED
|
@@ -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"}
|