@resonatehq/sdk 0.8.5 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/dist/dev/network.d.ts +12 -2
  2. package/dist/dev/network.d.ts.map +1 -1
  3. package/dist/dev/network.js +14 -3
  4. package/dist/dev/network.js.map +1 -1
  5. package/dist/dev/server.d.ts.map +1 -1
  6. package/dist/dev/server.js +5 -4
  7. package/dist/dev/server.js.map +1 -1
  8. package/dist/sim/src/worker.d.ts.map +1 -1
  9. package/dist/sim/src/worker.js +22 -7
  10. package/dist/sim/src/worker.js.map +1 -1
  11. package/dist/src/computation.d.ts +9 -3
  12. package/dist/src/computation.d.ts.map +1 -1
  13. package/dist/src/computation.js +80 -31
  14. package/dist/src/computation.js.map +1 -1
  15. package/dist/src/context.d.ts +85 -28
  16. package/dist/src/context.d.ts.map +1 -1
  17. package/dist/src/context.js +172 -62
  18. package/dist/src/context.js.map +1 -1
  19. package/dist/src/coroutine.d.ts +8 -3
  20. package/dist/src/coroutine.d.ts.map +1 -1
  21. package/dist/src/coroutine.js +86 -11
  22. package/dist/src/coroutine.js.map +1 -1
  23. package/dist/src/decorator.d.ts +10 -1
  24. package/dist/src/decorator.d.ts.map +1 -1
  25. package/dist/src/decorator.js +11 -0
  26. package/dist/src/decorator.js.map +1 -1
  27. package/dist/src/exceptions.d.ts +1 -0
  28. package/dist/src/exceptions.d.ts.map +1 -1
  29. package/dist/src/exceptions.js +13 -2
  30. package/dist/src/exceptions.js.map +1 -1
  31. package/dist/src/handler.d.ts +7 -4
  32. package/dist/src/handler.d.ts.map +1 -1
  33. package/dist/src/handler.js +8 -8
  34. package/dist/src/handler.js.map +1 -1
  35. package/dist/src/network/network.d.ts +8 -1
  36. package/dist/src/network/network.d.ts.map +1 -1
  37. package/dist/src/network/remote.d.ts +7 -4
  38. package/dist/src/network/remote.d.ts.map +1 -1
  39. package/dist/src/network/remote.js +24 -18
  40. package/dist/src/network/remote.js.map +1 -1
  41. package/dist/src/options.d.ts +17 -4
  42. package/dist/src/options.d.ts.map +1 -1
  43. package/dist/src/options.js +13 -7
  44. package/dist/src/options.js.map +1 -1
  45. package/dist/src/processor/processor.d.ts +4 -4
  46. package/dist/src/processor/processor.d.ts.map +1 -1
  47. package/dist/src/processor/processor.js +19 -13
  48. package/dist/src/processor/processor.js.map +1 -1
  49. package/dist/src/resonate-inner.d.ts +12 -6
  50. package/dist/src/resonate-inner.d.ts.map +1 -1
  51. package/dist/src/resonate-inner.js +19 -8
  52. package/dist/src/resonate-inner.js.map +1 -1
  53. package/dist/src/resonate.d.ts +18 -9
  54. package/dist/src/resonate.d.ts.map +1 -1
  55. package/dist/src/resonate.js +138 -77
  56. package/dist/src/resonate.js.map +1 -1
  57. package/dist/src/retries.d.ts +47 -8
  58. package/dist/src/retries.d.ts.map +1 -1
  59. package/dist/src/retries.js +29 -1
  60. package/dist/src/retries.js.map +1 -1
  61. package/dist/src/tracer.d.ts +23 -0
  62. package/dist/src/tracer.d.ts.map +1 -0
  63. package/dist/src/tracer.js +25 -0
  64. package/dist/src/tracer.js.map +1 -0
  65. package/dist/src/types.d.ts +2 -2
  66. package/dist/src/types.d.ts.map +1 -1
  67. package/dist/src/util.d.ts +1 -0
  68. package/dist/src/util.d.ts.map +1 -1
  69. package/dist/src/util.js +13 -0
  70. package/dist/src/util.js.map +1 -1
  71. package/dist/tsconfig.build.tsbuildinfo +1 -1
  72. package/package.json +3 -3
@@ -32,21 +32,26 @@ var __importStar = (this && this.__importStar) || (function () {
32
32
  return result;
33
33
  };
34
34
  })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
35
38
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.InnerContext = exports.Future = exports.RFC = exports.RFI = exports.LFC = exports.LFI = void 0;
37
- const options_1 = require("./options");
39
+ exports.InnerContext = exports.Future = exports.DIE = exports.RFC = exports.RFI = exports.LFC = exports.LFI = void 0;
40
+ const exceptions_1 = __importDefault(require("./exceptions"));
38
41
  const retries_1 = require("./retries");
39
42
  const util = __importStar(require("./util"));
40
43
  class LFI {
41
44
  id;
42
45
  func;
43
46
  args;
47
+ version;
44
48
  retryPolicy;
45
49
  createReq;
46
- constructor(id, func, args, retryPolicy, createReq) {
50
+ constructor(id, func, args, version, retryPolicy, createReq) {
47
51
  this.id = id;
48
52
  this.func = func;
49
53
  this.args = args;
54
+ this.version = version;
50
55
  this.retryPolicy = retryPolicy;
51
56
  this.createReq = createReq;
52
57
  }
@@ -61,12 +66,14 @@ class LFC {
61
66
  id;
62
67
  func;
63
68
  args;
69
+ version;
64
70
  retryPolicy;
65
71
  createReq;
66
- constructor(id, func, args, retryPolicy, createReq) {
72
+ constructor(id, func, args, version, retryPolicy, createReq) {
67
73
  this.id = id;
68
74
  this.func = func;
69
75
  this.args = args;
76
+ this.version = version;
70
77
  this.retryPolicy = retryPolicy;
71
78
  this.createReq = createReq;
72
79
  }
@@ -79,10 +86,14 @@ class LFC {
79
86
  exports.LFC = LFC;
80
87
  class RFI {
81
88
  id;
89
+ func;
90
+ version;
82
91
  createReq;
83
92
  mode;
84
- constructor(id, createReq, mode = "attached") {
93
+ constructor(id, func, version, createReq, mode = "attached") {
85
94
  this.id = id;
95
+ this.func = func;
96
+ this.version = version;
86
97
  this.createReq = createReq;
87
98
  this.mode = mode;
88
99
  }
@@ -95,10 +106,14 @@ class RFI {
95
106
  exports.RFI = RFI;
96
107
  class RFC {
97
108
  id;
109
+ func;
110
+ version;
98
111
  createReq;
99
112
  mode = "attached";
100
- constructor(id, createReq) {
113
+ constructor(id, func, version, createReq) {
101
114
  this.id = id;
115
+ this.func = func;
116
+ this.version = version;
102
117
  this.createReq = createReq;
103
118
  }
104
119
  *[Symbol.iterator]() {
@@ -108,6 +123,19 @@ class RFC {
108
123
  }
109
124
  }
110
125
  exports.RFC = RFC;
126
+ class DIE {
127
+ condition;
128
+ error;
129
+ constructor(condition, error) {
130
+ this.condition = condition;
131
+ this.error = error;
132
+ }
133
+ *[Symbol.iterator]() {
134
+ yield this;
135
+ return;
136
+ }
137
+ }
138
+ exports.DIE = DIE;
111
139
  class Future {
112
140
  id;
113
141
  value;
@@ -138,69 +166,156 @@ class Future {
138
166
  exports.Future = Future;
139
167
  class InnerContext {
140
168
  id;
141
- timeout;
169
+ info;
170
+ func;
142
171
  retryPolicy;
143
172
  rId;
144
173
  pId;
145
174
  clock;
146
- anycastNoPreference;
175
+ span;
176
+ registry;
147
177
  dependencies;
178
+ optsBuilder;
148
179
  seq = 0;
149
180
  run = this.lfc.bind(this);
150
181
  rpc = this.rfc.bind(this);
151
182
  beginRun = this.lfi.bind(this);
152
183
  beginRpc = this.rfi.bind(this);
153
- constructor(id, rId, pId, anycastNoPreference, timeout, retryPolicy, clock, dependencies) {
184
+ constructor({ id, rId = id, pId = id, func, clock, registry, dependencies, optsBuilder, timeout, version, retryPolicy, span, }) {
154
185
  this.id = id;
155
186
  this.rId = rId;
156
187
  this.pId = pId;
157
- this.anycastNoPreference = anycastNoPreference;
158
- this.timeout = timeout;
159
- this.retryPolicy = retryPolicy;
188
+ this.func = func;
160
189
  this.clock = clock;
190
+ this.registry = registry;
161
191
  this.dependencies = dependencies;
192
+ this.optsBuilder = optsBuilder;
193
+ this.retryPolicy = retryPolicy;
194
+ this.span = span;
195
+ this.info = {
196
+ attempt: 1,
197
+ timeout,
198
+ version,
199
+ };
162
200
  }
163
- static root(id, anycastNoPreference, timeout, retryPolicy, clock, dependencies) {
164
- return new InnerContext(id, id, id, anycastNoPreference, timeout, retryPolicy, clock, dependencies);
165
- }
166
- child(id, timeout, retryPolicy) {
167
- return new InnerContext(id, this.rId, this.id, this.anycastNoPreference, timeout, retryPolicy, this.clock, this.dependencies);
201
+ child({ id, func, timeout, version, retryPolicy, span, }) {
202
+ return new InnerContext({
203
+ id,
204
+ rId: this.rId,
205
+ pId: this.id,
206
+ func,
207
+ clock: this.clock,
208
+ registry: this.registry,
209
+ dependencies: this.dependencies,
210
+ optsBuilder: this.optsBuilder,
211
+ timeout,
212
+ version,
213
+ retryPolicy,
214
+ span,
215
+ });
168
216
  }
169
- lfi(func, ...args) {
217
+ lfi(funcOrName, ...args) {
170
218
  const [argu, opts] = util.splitArgsAndOpts(args, this.options());
171
- return new LFI(opts.id, func, argu, opts.retryPolicy ?? (util.isGeneratorFunction(func) ? new retries_1.Never() : new retries_1.Exponential()), this.localCreateReq(opts));
219
+ const registered = this.registry.get(funcOrName, opts.version);
220
+ if (typeof funcOrName === "string" && !registered) {
221
+ // This results in a dropped task and a value will never be
222
+ // yielded back to the users coroutine. However, the type
223
+ // system indicates the value is void. Casting to LFI "tricks"
224
+ // the type system to indicate the correct type.
225
+ return new DIE(true, exceptions_1.default.REGISTRY_FUNCTION_NOT_REGISTERED(funcOrName, opts.version));
226
+ }
227
+ const id = opts.id ?? this.seqid();
228
+ this.seq++;
229
+ const func = registered ? registered.func : funcOrName;
230
+ const version = registered ? registered.version : 1;
231
+ return new LFI(id, func, argu, version, opts.retryPolicy ?? (util.isGeneratorFunction(func) ? new retries_1.Never() : new retries_1.Exponential()), this.localCreateReq(id, { func: func.name, version }, opts));
172
232
  }
173
- lfc(func, ...args) {
233
+ lfc(funcOrName, ...args) {
174
234
  const [argu, opts] = util.splitArgsAndOpts(args, this.options());
175
- return new LFC(opts.id, func, argu, opts.retryPolicy ?? (util.isGeneratorFunction(func) ? new retries_1.Never() : new retries_1.Exponential()), this.localCreateReq(opts));
176
- }
177
- rfi(func, ...args) {
178
- if (typeof func === "function") {
179
- throw new Error("not implemented");
235
+ const registered = this.registry.get(funcOrName, opts.version);
236
+ if (typeof funcOrName === "string" && !registered) {
237
+ // This results in a dropped task and a value will never be
238
+ // yielded back to the users coroutine. However, the type
239
+ // system indicates the value is void. Casting to LFC "tricks"
240
+ // the type system to indicate the correct type.
241
+ return new DIE(true, exceptions_1.default.REGISTRY_FUNCTION_NOT_REGISTERED(funcOrName, opts.version));
180
242
  }
243
+ const id = opts.id ?? this.seqid();
244
+ this.seq++;
245
+ const func = registered ? registered.func : funcOrName;
246
+ const version = registered ? registered.version : 1;
247
+ return new LFC(id, func, argu, version, opts.retryPolicy ?? (util.isGeneratorFunction(func) ? new retries_1.Never() : new retries_1.Exponential()), this.localCreateReq(id, { func: func.name, version }, opts));
248
+ }
249
+ rfi(funcOrName, ...args) {
181
250
  const [argu, opts] = util.splitArgsAndOpts(args, this.options());
251
+ const registered = this.registry.get(funcOrName, opts.version);
252
+ if (typeof funcOrName === "function" && !registered) {
253
+ // This results in a dropped task and a value will never be
254
+ // yielded back to the users coroutine. However, the type
255
+ // system indicates the value is void. Casting to RFI "tricks"
256
+ // the type system to indicate the correct type.
257
+ return new DIE(true, exceptions_1.default.REGISTRY_FUNCTION_NOT_REGISTERED(funcOrName.name, opts.version));
258
+ }
259
+ const id = opts.id ?? this.seqid();
260
+ this.seq++;
261
+ const func = registered ? registered.name : funcOrName;
262
+ const version = registered ? registered.version : 1;
182
263
  const data = {
183
264
  func: func,
184
265
  args: argu,
185
- version: opts.version,
266
+ retry: opts.retryPolicy?.encode(),
267
+ version: registered ? registered.version : opts.version || 1,
186
268
  };
187
- return new RFI(opts.id, this.remoteCreateReq(data, opts));
269
+ return new RFI(id, func, version, this.remoteCreateReq(id, data, opts));
188
270
  }
189
- rfc(func, ...args) {
190
- if (typeof func === "function") {
191
- throw new Error("not implemented");
271
+ rfc(funcOrName, ...args) {
272
+ const [argu, opts] = util.splitArgsAndOpts(args, this.options());
273
+ const registered = this.registry.get(funcOrName, opts.version);
274
+ if (typeof funcOrName === "function" && !registered) {
275
+ // This results in a dropped task and a value will never be
276
+ // yielded back to the users coroutine. However, the type
277
+ // system indicates the value is void. Casting to RFC "tricks"
278
+ // the type system to indicate the correct type.
279
+ return new DIE(true, exceptions_1.default.REGISTRY_FUNCTION_NOT_REGISTERED(funcOrName.name, opts.version));
192
280
  }
281
+ const id = opts.id ?? this.seqid();
282
+ this.seq++;
283
+ const func = registered ? registered.name : funcOrName;
284
+ const version = registered ? registered.version : 1;
285
+ const data = {
286
+ func: func,
287
+ args: argu,
288
+ retry: opts.retryPolicy?.encode(),
289
+ version: registered ? registered.version : opts.version || 1,
290
+ };
291
+ return new RFC(id, func, version, this.remoteCreateReq(id, data, opts));
292
+ }
293
+ detached(funcOrName, ...args) {
193
294
  const [argu, opts] = util.splitArgsAndOpts(args, this.options());
295
+ const registered = this.registry.get(funcOrName, opts.version);
296
+ if (typeof funcOrName === "function" && !registered) {
297
+ // This results in a dropped task and a value will never be
298
+ // yielded back to the users coroutine. However, the type
299
+ // system indicates the value is void. Casting to RFI "tricks"
300
+ // the type system to indicate the correct type.
301
+ return new DIE(true, exceptions_1.default.REGISTRY_FUNCTION_NOT_REGISTERED(funcOrName.name, opts.version));
302
+ }
303
+ const id = opts.id ?? this.seqid();
304
+ this.seq++;
305
+ const func = registered ? registered.name : funcOrName;
306
+ const version = registered ? registered.version : 1;
194
307
  const data = {
195
308
  func: func,
196
309
  args: argu,
197
- version: opts.version,
310
+ retry: opts.retryPolicy?.encode(),
311
+ version: registered ? registered.version : opts.version || 1,
198
312
  };
199
- return new RFC(opts.id, this.remoteCreateReq(data, opts));
313
+ return new RFI(id, func, version, this.remoteCreateReq(id, data, opts, Number.MAX_SAFE_INTEGER), "detached");
200
314
  }
201
315
  promise({ id, timeout, data, tags, } = {}) {
202
316
  id = id ?? this.seqid();
203
- return new RFI(id, this.latentCreateOpts(id, timeout, data, tags));
317
+ this.seq++;
318
+ return new RFI(id, "unknown", 1, this.latentCreateOpts(id, timeout, data, tags));
204
319
  }
205
320
  sleep(msOrOpts) {
206
321
  let until;
@@ -217,65 +332,60 @@ class InnerContext {
217
332
  until = 0;
218
333
  }
219
334
  const id = this.seqid();
220
- return new RFC(id, this.sleepCreateOpts(id, until));
335
+ this.seq++;
336
+ return new RFC(id, "sleep", 1, this.sleepCreateOpts(id, until));
221
337
  }
222
- detached(func, ...args) {
223
- if (typeof func === "function") {
224
- throw new Error("not implemented");
225
- }
226
- const [argu, opts] = util.splitArgsAndOpts(args, this.options());
227
- const data = {
228
- func: func,
229
- args: argu,
230
- version: opts.version,
231
- };
232
- return new RFI(opts.id, this.remoteCreateReq(data, opts, Number.MAX_SAFE_INTEGER), "detached");
338
+ panic(condition, msg) {
339
+ const src = util.getCallerInfo();
340
+ return new DIE(condition, exceptions_1.default.PANIC(src, msg));
341
+ }
342
+ assert(condition, msg) {
343
+ return this.panic(!condition, msg);
233
344
  }
234
345
  getDependency(name) {
235
346
  return this.dependencies.get(name);
236
347
  }
237
348
  options(opts = {}) {
238
- const target = opts.target ?? this.anycastNoPreference;
239
- return new options_1.Options({ id: this.seqid(), target, ...opts });
349
+ return this.optsBuilder.build(opts);
240
350
  }
241
351
  date = {
242
- now: () => this.lfc(() => (this.getDependency("resonate:date") ?? Date).now()),
352
+ now: () => this.lfc((this.getDependency("resonate:date") ?? Date).now),
243
353
  };
244
354
  math = {
245
- random: () => this.lfc(() => (this.getDependency("resonate:math") ?? Math).random()),
355
+ random: () => this.lfc((this.getDependency("resonate:math") ?? Math).random),
246
356
  };
247
- localCreateReq(opts) {
357
+ localCreateReq(id, data, opts) {
248
358
  const tags = {
249
359
  "resonate:scope": "local",
250
360
  "resonate:root": this.rId,
251
- "resonate:parent": this.pId,
361
+ "resonate:parent": this.id,
252
362
  ...opts.tags,
253
363
  };
254
364
  // timeout cannot be greater than parent timeout
255
- const timeout = Math.min(this.clock.now() + opts.timeout, this.timeout);
365
+ const timeout = Math.min(this.clock.now() + opts.timeout, this.info.timeout);
256
366
  return {
257
367
  kind: "createPromise",
258
- id: opts.id,
368
+ id,
259
369
  timeout: timeout,
260
- param: {},
370
+ param: { data },
261
371
  tags,
262
372
  iKey: opts.id,
263
373
  strict: false,
264
374
  };
265
375
  }
266
- remoteCreateReq(data, opts, maxTimeout = this.timeout) {
376
+ remoteCreateReq(id, data, opts, maxTimeout = this.info.timeout) {
267
377
  const tags = {
268
378
  "resonate:scope": "global",
269
379
  "resonate:invoke": opts.target,
270
380
  "resonate:root": this.rId,
271
- "resonate:parent": this.pId,
381
+ "resonate:parent": this.id,
272
382
  ...opts.tags,
273
383
  };
274
384
  // timeout cannot be greater than parent timeout (unless detached)
275
385
  const timeout = Math.min(this.clock.now() + opts.timeout, maxTimeout);
276
386
  return {
277
387
  kind: "createPromise",
278
- id: opts.id,
388
+ id,
279
389
  timeout,
280
390
  tags,
281
391
  param: { data },
@@ -287,11 +397,11 @@ class InnerContext {
287
397
  const cTags = {
288
398
  "resonate:scope": "global",
289
399
  "resonate:root": this.rId,
290
- "resonate:parent": this.pId,
400
+ "resonate:parent": this.id,
291
401
  ...tags,
292
402
  };
293
403
  // timeout cannot be greater than parent timeout
294
- const cTimeout = Math.min(this.clock.now() + (timeout ?? 24 * util.HOUR), this.timeout);
404
+ const cTimeout = Math.min(this.clock.now() + (timeout ?? 24 * util.HOUR), this.info.timeout);
295
405
  return {
296
406
  kind: "createPromise",
297
407
  id: id,
@@ -306,11 +416,11 @@ class InnerContext {
306
416
  const tags = {
307
417
  "resonate:scope": "global",
308
418
  "resonate:root": this.rId,
309
- "resonate:parent": this.pId,
419
+ "resonate:parent": this.id,
310
420
  "resonate:timeout": "true",
311
421
  };
312
422
  // timeout cannot be greater than parent timeout
313
- const timeout = Math.min(time, this.timeout);
423
+ const timeout = Math.min(time, this.info.timeout);
314
424
  return {
315
425
  kind: "createPromise",
316
426
  id: id,
@@ -322,7 +432,7 @@ class InnerContext {
322
432
  };
323
433
  }
324
434
  seqid() {
325
- return `${this.id}.${this.seq++}`;
435
+ return `${this.id}.${this.seq}`;
326
436
  }
327
437
  }
328
438
  exports.InnerContext = InnerContext;
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,uCAAoC;AACpC,uCAAiE;AAEjE,6CAA+B;AAE/B,MAAa,GAAG;IACP,EAAE,CAAS;IACX,IAAI,CAAO;IACX,IAAI,CAAQ;IACZ,WAAW,CAAc;IACzB,SAAS,CAAwB;IAExC,YAAY,EAAU,EAAE,IAAU,EAAE,IAAW,EAAE,WAAwB,EAAE,SAAgC;QACzG,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,CAAC,YAAY,MAAM,EAAE,iBAAiB,CAAC,CAAC;QACpD,OAAO,CAAc,CAAC;IACxB,CAAC;CACF;AApBD,kBAoBC;AAED,MAAa,GAAG;IACP,EAAE,CAAS;IACX,IAAI,CAAO;IACX,IAAI,CAAQ;IACZ,WAAW,CAAc;IACzB,SAAS,CAAmB;IAEnC,YAAY,EAAU,EAAE,IAAU,EAAE,IAAW,EAAE,WAAwB,EAAE,SAA2B;QACpG,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC;QACtD,OAAO,CAAM,CAAC;IAChB,CAAC;CACF;AApBD,kBAoBC;AAED,MAAa,GAAG;IACP,EAAE,CAAS;IACX,SAAS,CAAmB;IAC5B,IAAI,CAA0B;IAErC,YAAY,EAAU,EAAE,SAA2B,EAAE,OAAgC,UAAU;QAC7F,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,CAAC,YAAY,MAAM,EAAE,iBAAiB,CAAC,CAAC;QACpD,OAAO,CAAc,CAAC;IACxB,CAAC;CACF;AAhBD,kBAgBC;AAED,MAAa,GAAG;IACP,EAAE,CAAS;IACX,SAAS,CAAmB;IAC5B,IAAI,GAAG,UAAmB,CAAC;IAElC,YAAY,EAAU,EAAE,SAA2B;QACjD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC;QACtD,OAAO,CAAM,CAAC;IAChB,CAAC;CACF;AAfD,kBAeC;AAED,MAAa,MAAM;IAMR;IALQ,KAAK,CAAa;IACnB,KAAK,CAA0B;IACvC,IAAI,CAA0B;IAEtC,YACS,EAAU,EACjB,KAA8B,EAC9B,KAAiB,EACjB,OAAgC,UAAU;QAHnC,OAAE,GAAF,EAAE,CAAQ;QAKjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAC1B,CAAC;QACD,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,uBAAuB;IACjD,CAAC;IAED,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,MAAM,IAAI,CAAC;QACX,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,gDAAgD,CAAC,CAAC;QAClF,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;CACF;AAjCD,wBAiCC;AA4ED,MAAa,YAAY;IACd,EAAE,CAAS;IACX,OAAO,CAAS;IAChB,WAAW,CAAc;IAE1B,GAAG,CAAS;IACZ,GAAG,CAAS;IACZ,KAAK,CAAQ;IACb,mBAAmB,CAAS;IAC5B,YAAY,CAAmB;IAC/B,GAAG,GAAG,CAAC,CAAC;IAEhB,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE/B,YACE,EAAU,EACV,GAAW,EACX,GAAW,EACX,mBAA2B,EAC3B,OAAe,EACf,WAAwB,EACxB,KAAY,EACZ,YAA8B;QAE9B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,IAAI,CACT,EAAU,EACV,mBAA2B,EAC3B,OAAe,EACf,WAAwB,EACxB,KAAY,EACZ,YAA8B;QAE9B,OAAO,IAAI,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IACtG,CAAC;IAED,KAAK,CAAC,EAAU,EAAE,OAAe,EAAE,WAAwB;QACzD,OAAO,IAAI,YAAY,CACrB,EAAE,EACF,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,mBAAmB,EACxB,OAAO,EACP,WAAW,EACX,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,YAAY,CAClB,CAAC;IACJ,CAAC;IAED,GAAG,CAAiB,IAAO,EAAE,GAAG,IAA0B;QACxD,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAEjE,OAAO,IAAI,GAAG,CACZ,IAAI,CAAC,EAAE,EACP,IAAI,EACJ,IAAI,EACJ,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,eAAK,EAAE,CAAC,CAAC,CAAC,IAAI,qBAAW,EAAE,CAAC,EACtF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAC1B,CAAC;IACJ,CAAC;IAED,GAAG,CAAiB,IAAO,EAAE,GAAG,IAA0B;QACxD,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAEjE,OAAO,IAAI,GAAG,CACZ,IAAI,CAAC,EAAE,EACP,IAAI,EACJ,IAAI,EACJ,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,eAAK,EAAE,CAAC,CAAC,CAAC,IAAI,qBAAW,EAAE,CAAC,EACtF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAC1B,CAAC;IACJ,CAAC;IAID,GAAG,CAAC,IAAmB,EAAE,GAAG,IAAW;QACrC,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG;YACX,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;QAEF,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC;IAID,GAAG,CAAC,IAAmB,EAAE,GAAG,IAAW;QACrC,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG;YACX,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;QAEF,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,CAAI,EACT,EAAE,EACF,OAAO,EACP,IAAI,EACJ,IAAI,MAMF,EAAE;QACJ,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACxB,OAAO,IAAI,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,QAAiD;QACrD,IAAI,KAAa,CAAC;QAElB,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC;QACtC,CAAC;aAAM,IAAI,QAAQ,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;YAChC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC;QAC1C,CAAC;aAAM,IAAI,QAAQ,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;YAClC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,CAAC,CAAC;QACZ,CAAC;QAED,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACxB,OAAO,IAAI,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;IACtD,CAAC;IAID,QAAQ,CAAC,IAAmB,EAAE,GAAG,IAAW;QAC1C,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG;YACX,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;QAEF,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,gBAAgB,CAAC,EAAE,UAAU,CAAC,CAAC;IACjG,CAAC;IAED,aAAa,CAAU,IAAY;QACjC,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,CAAC,OAAyB,EAAE;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,mBAAmB,CAAC;QACvD,OAAO,IAAI,iBAAO,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;IAEQ,IAAI,GAAG;QACd,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAkB,eAAe,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;KAChG,CAAC;IAEO,IAAI,GAAG;QACd,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAO,eAAe,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;KAC3F,CAAC;IAEF,cAAc,CAAC,IAAa;QAC1B,MAAM,IAAI,GAAG;YACX,gBAAgB,EAAE,OAAO;YACzB,eAAe,EAAE,IAAI,CAAC,GAAG;YACzB,iBAAiB,EAAE,IAAI,CAAC,GAAG;YAC3B,GAAG,IAAI,CAAC,IAAI;SACb,CAAC;QAEF,gDAAgD;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAExE,OAAO;YACL,IAAI,EAAE,eAAe;YACrB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,EAAE;YACT,IAAI;YACJ,IAAI,EAAE,IAAI,CAAC,EAAE;YACb,MAAM,EAAE,KAAK;SACd,CAAC;IACJ,CAAC;IAED,eAAe,CAAC,IAAS,EAAE,IAAa,EAAE,UAAU,GAAG,IAAI,CAAC,OAAO;QACjE,MAAM,IAAI,GAAG;YACX,gBAAgB,EAAE,QAAQ;YAC1B,iBAAiB,EAAE,IAAI,CAAC,MAAM;YAC9B,eAAe,EAAE,IAAI,CAAC,GAAG;YACzB,iBAAiB,EAAE,IAAI,CAAC,GAAG;YAC3B,GAAG,IAAI,CAAC,IAAI;SACb,CAAC;QAEF,kEAAkE;QAClE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAEtE,OAAO;YACL,IAAI,EAAE,eAAe;YACrB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO;YACP,IAAI;YACJ,KAAK,EAAE,EAAE,IAAI,EAAE;YACf,IAAI,EAAE,IAAI,CAAC,EAAE;YACb,MAAM,EAAE,KAAK;SACd,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,EAAU,EAAE,OAAgB,EAAE,IAAU,EAAE,IAA6B;QACtF,MAAM,KAAK,GAAG;YACZ,gBAAgB,EAAE,QAAQ;YAC1B,eAAe,EAAE,IAAI,CAAC,GAAG;YACzB,iBAAiB,EAAE,IAAI,CAAC,GAAG;YAC3B,GAAG,IAAI;SACR,CAAC;QAEF,gDAAgD;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAExF,OAAO;YACL,IAAI,EAAE,eAAe;YACrB,EAAE,EAAE,EAAE;YACN,OAAO,EAAE,QAAQ;YACjB,KAAK,EAAE,EAAE,IAAI,EAAE;YACf,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,KAAK;SACd,CAAC;IACJ,CAAC;IAED,eAAe,CAAC,EAAU,EAAE,IAAY;QACtC,MAAM,IAAI,GAAG;YACX,gBAAgB,EAAE,QAAQ;YAC1B,eAAe,EAAE,IAAI,CAAC,GAAG;YACzB,iBAAiB,EAAE,IAAI,CAAC,GAAG;YAC3B,kBAAkB,EAAE,MAAM;SAC3B,CAAC;QAEF,gDAAgD;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAE7C,OAAO;YACL,IAAI,EAAE,eAAe;YACrB,EAAE,EAAE,EAAE;YACN,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,EAAE;YACT,IAAI;YACJ,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,KAAK;SACd,CAAC;IACJ,CAAC;IAED,KAAK;QACH,OAAO,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IACpC,CAAC;CACF;AArRD,oCAqRC"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import type { Context, InnerContext } from "./context";
2
2
  import { Decorator } from "./decorator";
3
3
  import type { Handler } from "./handler";
4
- import type { DurablePromiseRecord } from "./network/network";
4
+ import type { DurablePromiseRecord, TaskRecord } from "./network/network";
5
+ import type { Span } from "./tracer";
5
6
  import { type Callback, type Yieldable } from "./types";
6
7
  export type Suspended = {
7
8
  type: "suspended";
@@ -9,6 +10,7 @@ export type Suspended = {
9
10
  local: LocalTodo[];
10
11
  remote: RemoteTodo[];
11
12
  };
13
+ spans: Span[];
12
14
  };
13
15
  export type Completed = {
14
16
  type: "completed";
@@ -17,6 +19,7 @@ export type Completed = {
17
19
  export interface LocalTodo {
18
20
  id: string;
19
21
  ctx: InnerContext;
22
+ span: Span;
20
23
  func: (ctx: Context, ...args: any[]) => any;
21
24
  args: any[];
22
25
  }
@@ -25,13 +28,15 @@ export interface RemoteTodo {
25
28
  }
26
29
  export declare class Coroutine<T> {
27
30
  private ctx;
31
+ private task;
28
32
  private verbose;
29
33
  private decorator;
30
34
  private handler;
35
+ private spans;
31
36
  private readonly depth;
32
37
  private readonly queueMicrotaskEveryN;
33
- constructor(ctx: InnerContext, verbose: boolean, decorator: Decorator<T>, handler: Handler, depth?: number);
34
- static exec(id: string, verbose: boolean, ctx: InnerContext, func: (ctx: Context, ...args: any[]) => Generator<Yieldable, any, any>, args: any[], handler: Handler, callback: Callback<Suspended | Completed>): void;
38
+ constructor(ctx: InnerContext, task: TaskRecord, verbose: boolean, decorator: Decorator<T>, handler: Handler, spans: Map<string, Span>, depth?: number);
39
+ static exec(id: string, verbose: boolean, ctx: InnerContext, func: (ctx: Context, ...args: any[]) => Generator<Yieldable, any, any>, args: any[], task: TaskRecord, handler: Handler, spans: Map<string, Span>, callback: Callback<Suspended | Completed>): void;
35
40
  private exec;
36
41
  }
37
42
  //# sourceMappingURL=coroutine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"coroutine.d.ts","sourceRoot":"","sources":["../../src/coroutine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,SAAS,EAAc,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,KAAK,QAAQ,EAAuB,KAAK,SAAS,EAAE,MAAM,SAAS,CAAC;AAG7E,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE;QAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAAC,MAAM,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;CACpD,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,oBAAoB,CAAC;CAC/B,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,YAAY,CAAC;IAClB,IAAI,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;IAC5C,IAAI,EAAE,GAAG,EAAE,CAAC;CACb;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;CACZ;AAYD,qBAAa,SAAS,CAAC,CAAC;IACtB,OAAO,CAAC,GAAG,CAAe;IAC1B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAa;gBAEtC,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,SAAI;WAYvF,IAAI,CAChB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,EACtE,IAAI,EAAE,GAAG,EAAE,EACX,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC,GACxC,IAAI;IA2DP,OAAO,CAAC,IAAI;CAmNb"}
1
+ {"version":3,"file":"coroutine.d.ts","sourceRoot":"","sources":["../../src/coroutine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,SAAS,EAAc,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE1E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,KAAK,QAAQ,EAAuB,KAAK,SAAS,EAAE,MAAM,SAAS,CAAC;AAG7E,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE;QAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAAC,MAAM,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;IACnD,KAAK,EAAE,IAAI,EAAE,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,oBAAoB,CAAC;CAC/B,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,YAAY,CAAC;IAClB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;IAC5C,IAAI,EAAE,GAAG,EAAE,CAAC;CACb;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;CACZ;AAiBD,qBAAa,SAAS,CAAC,CAAC;IACtB,OAAO,CAAC,GAAG,CAAe;IAC1B,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAa;gBAGhD,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,EACvB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,EACxB,KAAK,SAAI;WAoBG,IAAI,CAChB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,EACtE,IAAI,EAAE,GAAG,EAAE,EACX,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,EACxB,QAAQ,EAAE,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC,GACxC,IAAI;IA2DP,OAAO,CAAC,IAAI;CAiSb"}