@resonatehq/sdk 0.8.6 → 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 (62) 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 +72 -32
  14. package/dist/src/computation.js.map +1 -1
  15. package/dist/src/context.d.ts +25 -13
  16. package/dist/src/context.d.ts.map +1 -1
  17. package/dist/src/context.js +70 -34
  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 +69 -10
  22. package/dist/src/coroutine.js.map +1 -1
  23. package/dist/src/decorator.d.ts +3 -1
  24. package/dist/src/decorator.d.ts.map +1 -1
  25. package/dist/src/decorator.js +2 -0
  26. package/dist/src/decorator.js.map +1 -1
  27. package/dist/src/handler.d.ts +7 -4
  28. package/dist/src/handler.d.ts.map +1 -1
  29. package/dist/src/handler.js +8 -8
  30. package/dist/src/handler.js.map +1 -1
  31. package/dist/src/network/network.d.ts +8 -1
  32. package/dist/src/network/network.d.ts.map +1 -1
  33. package/dist/src/network/remote.d.ts +7 -4
  34. package/dist/src/network/remote.d.ts.map +1 -1
  35. package/dist/src/network/remote.js +24 -18
  36. package/dist/src/network/remote.js.map +1 -1
  37. package/dist/src/options.d.ts +17 -4
  38. package/dist/src/options.d.ts.map +1 -1
  39. package/dist/src/options.js +13 -7
  40. package/dist/src/options.js.map +1 -1
  41. package/dist/src/processor/processor.d.ts +3 -3
  42. package/dist/src/processor/processor.d.ts.map +1 -1
  43. package/dist/src/processor/processor.js +16 -9
  44. package/dist/src/processor/processor.js.map +1 -1
  45. package/dist/src/resonate-inner.d.ts +12 -6
  46. package/dist/src/resonate-inner.d.ts.map +1 -1
  47. package/dist/src/resonate-inner.js +19 -8
  48. package/dist/src/resonate-inner.js.map +1 -1
  49. package/dist/src/resonate.d.ts +18 -9
  50. package/dist/src/resonate.d.ts.map +1 -1
  51. package/dist/src/resonate.js +138 -77
  52. package/dist/src/resonate.js.map +1 -1
  53. package/dist/src/retries.d.ts +47 -8
  54. package/dist/src/retries.d.ts.map +1 -1
  55. package/dist/src/retries.js +29 -1
  56. package/dist/src/retries.js.map +1 -1
  57. package/dist/src/tracer.d.ts +23 -0
  58. package/dist/src/tracer.d.ts.map +1 -0
  59. package/dist/src/tracer.js +25 -0
  60. package/dist/src/tracer.js.map +1 -0
  61. package/dist/tsconfig.build.tsbuildinfo +1 -1
  62. package/package.json +3 -3
@@ -38,7 +38,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.InnerContext = exports.Future = exports.DIE = exports.RFC = exports.RFI = exports.LFC = exports.LFI = void 0;
40
40
  const exceptions_1 = __importDefault(require("./exceptions"));
41
- const options_1 = require("./options");
42
41
  const retries_1 = require("./retries");
43
42
  const util = __importStar(require("./util"));
44
43
  class LFI {
@@ -87,10 +86,14 @@ class LFC {
87
86
  exports.LFC = LFC;
88
87
  class RFI {
89
88
  id;
89
+ func;
90
+ version;
90
91
  createReq;
91
92
  mode;
92
- constructor(id, createReq, mode = "attached") {
93
+ constructor(id, func, version, createReq, mode = "attached") {
93
94
  this.id = id;
95
+ this.func = func;
96
+ this.version = version;
94
97
  this.createReq = createReq;
95
98
  this.mode = mode;
96
99
  }
@@ -103,10 +106,14 @@ class RFI {
103
106
  exports.RFI = RFI;
104
107
  class RFC {
105
108
  id;
109
+ func;
110
+ version;
106
111
  createReq;
107
112
  mode = "attached";
108
- constructor(id, createReq) {
113
+ constructor(id, func, version, createReq) {
109
114
  this.id = id;
115
+ this.func = func;
116
+ this.version = version;
110
117
  this.createReq = createReq;
111
118
  }
112
119
  *[Symbol.iterator]() {
@@ -160,45 +167,51 @@ exports.Future = Future;
160
167
  class InnerContext {
161
168
  id;
162
169
  info;
170
+ func;
163
171
  retryPolicy;
164
172
  rId;
165
173
  pId;
166
- anycast;
167
174
  clock;
175
+ span;
168
176
  registry;
169
177
  dependencies;
178
+ optsBuilder;
170
179
  seq = 0;
171
180
  run = this.lfc.bind(this);
172
181
  rpc = this.rfc.bind(this);
173
182
  beginRun = this.lfi.bind(this);
174
183
  beginRpc = this.rfi.bind(this);
175
- constructor({ id, rId = id, pId = id, anycast, clock, registry, dependencies, timeout, version, retryPolicy, }) {
184
+ constructor({ id, rId = id, pId = id, func, clock, registry, dependencies, optsBuilder, timeout, version, retryPolicy, span, }) {
176
185
  this.id = id;
177
186
  this.rId = rId;
178
187
  this.pId = pId;
179
- this.anycast = anycast;
188
+ this.func = func;
180
189
  this.clock = clock;
181
190
  this.registry = registry;
182
191
  this.dependencies = dependencies;
192
+ this.optsBuilder = optsBuilder;
183
193
  this.retryPolicy = retryPolicy;
194
+ this.span = span;
184
195
  this.info = {
185
196
  attempt: 1,
186
197
  timeout,
187
198
  version,
188
199
  };
189
200
  }
190
- child({ id, timeout, version, retryPolicy, }) {
201
+ child({ id, func, timeout, version, retryPolicy, span, }) {
191
202
  return new InnerContext({
192
203
  id,
193
204
  rId: this.rId,
194
205
  pId: this.id,
195
- anycast: this.anycast,
206
+ func,
196
207
  clock: this.clock,
197
208
  registry: this.registry,
198
209
  dependencies: this.dependencies,
210
+ optsBuilder: this.optsBuilder,
199
211
  timeout,
200
212
  version,
201
213
  retryPolicy,
214
+ span,
202
215
  });
203
216
  }
204
217
  lfi(funcOrName, ...args) {
@@ -211,8 +224,11 @@ class InnerContext {
211
224
  // the type system to indicate the correct type.
212
225
  return new DIE(true, exceptions_1.default.REGISTRY_FUNCTION_NOT_REGISTERED(funcOrName, opts.version));
213
226
  }
227
+ const id = opts.id ?? this.seqid();
228
+ this.seq++;
214
229
  const func = registered ? registered.func : funcOrName;
215
- return new LFI(opts.id, func, argu, registered ? registered.version : 1, opts.retryPolicy ?? (util.isGeneratorFunction(func) ? new retries_1.Never() : new retries_1.Exponential()), this.localCreateReq(opts));
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));
216
232
  }
217
233
  lfc(funcOrName, ...args) {
218
234
  const [argu, opts] = util.splitArgsAndOpts(args, this.options());
@@ -224,8 +240,11 @@ class InnerContext {
224
240
  // the type system to indicate the correct type.
225
241
  return new DIE(true, exceptions_1.default.REGISTRY_FUNCTION_NOT_REGISTERED(funcOrName, opts.version));
226
242
  }
243
+ const id = opts.id ?? this.seqid();
244
+ this.seq++;
227
245
  const func = registered ? registered.func : funcOrName;
228
- return new LFC(opts.id, func, argu, registered ? registered.version : 1, opts.retryPolicy ?? (util.isGeneratorFunction(func) ? new retries_1.Never() : new retries_1.Exponential()), this.localCreateReq(opts));
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));
229
248
  }
230
249
  rfi(funcOrName, ...args) {
231
250
  const [argu, opts] = util.splitArgsAndOpts(args, this.options());
@@ -237,12 +256,17 @@ class InnerContext {
237
256
  // the type system to indicate the correct type.
238
257
  return new DIE(true, exceptions_1.default.REGISTRY_FUNCTION_NOT_REGISTERED(funcOrName.name, opts.version));
239
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;
240
263
  const data = {
241
- func: registered ? registered.name : funcOrName,
264
+ func: func,
242
265
  args: argu,
243
- version: opts.version,
266
+ retry: opts.retryPolicy?.encode(),
267
+ version: registered ? registered.version : opts.version || 1,
244
268
  };
245
- return new RFI(opts.id, this.remoteCreateReq(data, opts));
269
+ return new RFI(id, func, version, this.remoteCreateReq(id, data, opts));
246
270
  }
247
271
  rfc(funcOrName, ...args) {
248
272
  const [argu, opts] = util.splitArgsAndOpts(args, this.options());
@@ -254,12 +278,17 @@ class InnerContext {
254
278
  // the type system to indicate the correct type.
255
279
  return new DIE(true, exceptions_1.default.REGISTRY_FUNCTION_NOT_REGISTERED(funcOrName.name, opts.version));
256
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;
257
285
  const data = {
258
- func: registered ? registered.name : funcOrName,
286
+ func: func,
259
287
  args: argu,
260
- version: opts.version,
288
+ retry: opts.retryPolicy?.encode(),
289
+ version: registered ? registered.version : opts.version || 1,
261
290
  };
262
- return new RFC(opts.id, this.remoteCreateReq(data, opts));
291
+ return new RFC(id, func, version, this.remoteCreateReq(id, data, opts));
263
292
  }
264
293
  detached(funcOrName, ...args) {
265
294
  const [argu, opts] = util.splitArgsAndOpts(args, this.options());
@@ -271,16 +300,22 @@ class InnerContext {
271
300
  // the type system to indicate the correct type.
272
301
  return new DIE(true, exceptions_1.default.REGISTRY_FUNCTION_NOT_REGISTERED(funcOrName.name, opts.version));
273
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;
274
307
  const data = {
275
- func: registered ? registered.name : funcOrName,
308
+ func: func,
276
309
  args: argu,
277
- version: opts.version,
310
+ retry: opts.retryPolicy?.encode(),
311
+ version: registered ? registered.version : opts.version || 1,
278
312
  };
279
- return new RFI(opts.id, this.remoteCreateReq(data, opts, Number.MAX_SAFE_INTEGER), "detached");
313
+ return new RFI(id, func, version, this.remoteCreateReq(id, data, opts, Number.MAX_SAFE_INTEGER), "detached");
280
314
  }
281
315
  promise({ id, timeout, data, tags, } = {}) {
282
316
  id = id ?? this.seqid();
283
- 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));
284
319
  }
285
320
  sleep(msOrOpts) {
286
321
  let until;
@@ -297,7 +332,8 @@ class InnerContext {
297
332
  until = 0;
298
333
  }
299
334
  const id = this.seqid();
300
- return new RFC(id, this.sleepCreateOpts(id, until));
335
+ this.seq++;
336
+ return new RFC(id, "sleep", 1, this.sleepCreateOpts(id, until));
301
337
  }
302
338
  panic(condition, msg) {
303
339
  const src = util.getCallerInfo();
@@ -310,46 +346,46 @@ class InnerContext {
310
346
  return this.dependencies.get(name);
311
347
  }
312
348
  options(opts = {}) {
313
- return new options_1.Options({ id: this.seqid(), target: this.anycast, ...opts });
349
+ return this.optsBuilder.build(opts);
314
350
  }
315
351
  date = {
316
- now: () => this.lfc(() => (this.getDependency("resonate:date") ?? Date).now()),
352
+ now: () => this.lfc((this.getDependency("resonate:date") ?? Date).now),
317
353
  };
318
354
  math = {
319
- random: () => this.lfc(() => (this.getDependency("resonate:math") ?? Math).random()),
355
+ random: () => this.lfc((this.getDependency("resonate:math") ?? Math).random),
320
356
  };
321
- localCreateReq(opts) {
357
+ localCreateReq(id, data, opts) {
322
358
  const tags = {
323
359
  "resonate:scope": "local",
324
360
  "resonate:root": this.rId,
325
- "resonate:parent": this.pId,
361
+ "resonate:parent": this.id,
326
362
  ...opts.tags,
327
363
  };
328
364
  // timeout cannot be greater than parent timeout
329
365
  const timeout = Math.min(this.clock.now() + opts.timeout, this.info.timeout);
330
366
  return {
331
367
  kind: "createPromise",
332
- id: opts.id,
368
+ id,
333
369
  timeout: timeout,
334
- param: {},
370
+ param: { data },
335
371
  tags,
336
372
  iKey: opts.id,
337
373
  strict: false,
338
374
  };
339
375
  }
340
- remoteCreateReq(data, opts, maxTimeout = this.info.timeout) {
376
+ remoteCreateReq(id, data, opts, maxTimeout = this.info.timeout) {
341
377
  const tags = {
342
378
  "resonate:scope": "global",
343
379
  "resonate:invoke": opts.target,
344
380
  "resonate:root": this.rId,
345
- "resonate:parent": this.pId,
381
+ "resonate:parent": this.id,
346
382
  ...opts.tags,
347
383
  };
348
384
  // timeout cannot be greater than parent timeout (unless detached)
349
385
  const timeout = Math.min(this.clock.now() + opts.timeout, maxTimeout);
350
386
  return {
351
387
  kind: "createPromise",
352
- id: opts.id,
388
+ id,
353
389
  timeout,
354
390
  tags,
355
391
  param: { data },
@@ -361,7 +397,7 @@ class InnerContext {
361
397
  const cTags = {
362
398
  "resonate:scope": "global",
363
399
  "resonate:root": this.rId,
364
- "resonate:parent": this.pId,
400
+ "resonate:parent": this.id,
365
401
  ...tags,
366
402
  };
367
403
  // timeout cannot be greater than parent timeout
@@ -380,7 +416,7 @@ class InnerContext {
380
416
  const tags = {
381
417
  "resonate:scope": "global",
382
418
  "resonate:root": this.rId,
383
- "resonate:parent": this.pId,
419
+ "resonate:parent": this.id,
384
420
  "resonate:timeout": "true",
385
421
  };
386
422
  // timeout cannot be greater than parent timeout
@@ -396,7 +432,7 @@ class InnerContext {
396
432
  };
397
433
  }
398
434
  seqid() {
399
- return `${this.id}.${this.seq++}`;
435
+ return `${this.id}.${this.seq}`;
400
436
  }
401
437
  }
402
438
  exports.InnerContext = InnerContext;
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":"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"}
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;CAqOb"}
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"}
@@ -35,26 +35,38 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.Coroutine = void 0;
37
37
  const decorator_1 = require("./decorator");
38
+ const retries_1 = require("./retries");
38
39
  const types_1 = require("./types");
39
40
  const util = __importStar(require("./util"));
41
+ // a simple map to suppress duplicate warnings, necessary due to
42
+ // micro retries
43
+ const logged = new Map();
40
44
  class Coroutine {
41
45
  ctx;
46
+ task;
42
47
  verbose;
43
48
  decorator;
44
49
  handler;
50
+ spans;
45
51
  depth;
46
52
  queueMicrotaskEveryN = 1;
47
- constructor(ctx, verbose, decorator, handler, depth = 1) {
53
+ constructor(ctx, task, verbose, decorator, handler, spans, depth = 1) {
48
54
  this.ctx = ctx;
55
+ this.task = task;
49
56
  this.verbose = verbose;
50
57
  this.decorator = decorator;
51
58
  this.handler = handler;
59
+ this.spans = spans;
52
60
  this.depth = depth;
61
+ if (!(this.ctx.retryPolicy instanceof retries_1.Never) && !logged.has(this.ctx.id)) {
62
+ console.warn(`Options. Generator function '${this.ctx.func}' does not support retries. Will ignore.`);
63
+ logged.set(this.ctx.id, true);
64
+ }
53
65
  if (typeof process !== "undefined" && process.env.QUEUE_MICROTASK_EVERY_N) {
54
66
  this.queueMicrotaskEveryN = Number.parseInt(process.env.QUEUE_MICROTASK_EVERY_N, 10);
55
67
  }
56
68
  }
57
- static exec(id, verbose, ctx, func, args, handler, callback) {
69
+ static exec(id, verbose, ctx, func, args, task, handler, spans, callback) {
58
70
  handler.createPromise({
59
71
  // The createReq for this specific creation is not relevant,
60
72
  // this promise is guaranteed to have been created already.
@@ -70,14 +82,14 @@ class Coroutine {
70
82
  if (res.state !== "pending") {
71
83
  return callback(false, { type: "completed", promise: res });
72
84
  }
73
- const coroutine = new Coroutine(ctx, verbose, new decorator_1.Decorator(func(ctx, ...args)), handler);
85
+ const coroutine = new Coroutine(ctx, task, verbose, new decorator_1.Decorator(func(ctx, ...args)), handler, spans);
74
86
  coroutine.exec((err, status) => {
75
87
  if (err)
76
88
  return callback(err);
77
89
  util.assertDefined(status);
78
90
  switch (status.type) {
79
91
  case "more":
80
- callback(false, { type: "suspended", todo: status.todo });
92
+ callback(false, { type: "suspended", todo: status.todo, spans: status.spans });
81
93
  break;
82
94
  case "done":
83
95
  handler.completePromise({
@@ -105,6 +117,7 @@ class Coroutine {
105
117
  exec(callback) {
106
118
  const local = [];
107
119
  const remote = [];
120
+ const spans = [];
108
121
  let input = {
109
122
  type: "internal.nothing",
110
123
  };
@@ -114,23 +127,43 @@ class Coroutine {
114
127
  const action = this.decorator.next(input);
115
128
  // Handle internal.async.l (lfi/lfc)
116
129
  if (action.type === "internal.async.l") {
130
+ let span;
131
+ if (!this.spans.has(action.createReq.id)) {
132
+ span = this.ctx.span.startSpan(action.createReq.id, this.ctx.clock.now());
133
+ span.setAttribute("type", "run");
134
+ span.setAttribute("func", action.func.name);
135
+ span.setAttribute("version", action.version);
136
+ span.setAttribute("task.id", this.task.id);
137
+ span.setAttribute("task.counter", this.task.counter);
138
+ this.spans.set(action.createReq.id, span);
139
+ }
140
+ else {
141
+ span = this.spans.get(action.createReq.id);
142
+ }
117
143
  this.handler.createPromise(action.createReq, (err, res) => {
118
144
  if (err) {
119
145
  err.log(this.verbose);
146
+ span.setStatus(false, String(err));
147
+ span.end(this.ctx.clock.now());
120
148
  return callback(true);
121
149
  }
122
150
  util.assertDefined(res);
151
+ // if the promise is created, the span is considered successful
152
+ span.setStatus(true);
123
153
  const ctx = this.ctx.child({
124
154
  id: res.id,
155
+ func: action.func.name,
125
156
  timeout: res.timeout,
126
157
  version: action.version,
127
158
  retryPolicy: action.retryPolicy,
159
+ span: span,
128
160
  });
129
161
  if (res.state === "pending") {
130
162
  if (!util.isGeneratorFunction(action.func)) {
131
163
  local.push({
132
164
  id: action.id,
133
- ctx: ctx,
165
+ ctx,
166
+ span,
134
167
  func: action.func,
135
168
  args: action.args,
136
169
  });
@@ -143,10 +176,13 @@ class Coroutine {
143
176
  next(); // Go back to the top of the loop
144
177
  return;
145
178
  }
146
- const coroutine = new Coroutine(ctx, this.verbose, new decorator_1.Decorator(action.func(ctx, ...action.args)), this.handler, this.depth + 1);
179
+ spans.push(span);
180
+ const coroutine = new Coroutine(ctx, this.task, this.verbose, new decorator_1.Decorator(action.func(ctx, ...action.args)), this.handler, this.spans, this.depth + 1);
147
181
  const cb = (err, status) => {
148
- if (err)
182
+ if (err) {
183
+ span.end(this.ctx.clock.now());
149
184
  return callback(err);
185
+ }
150
186
  util.assertDefined(status);
151
187
  if (status.type === "more") {
152
188
  local.push(...status.todo.local);
@@ -170,6 +206,8 @@ class Coroutine {
170
206
  iKey: action.id,
171
207
  strict: false,
172
208
  }, (err, res) => {
209
+ span.end(this.ctx.clock.now());
210
+ spans.splice(spans.indexOf(span));
173
211
  if (err) {
174
212
  err.log(this.verbose);
175
213
  return callback(true);
@@ -212,6 +250,7 @@ class Coroutine {
212
250
  }
213
251
  }
214
252
  else {
253
+ span.end(ctx.clock.now());
215
254
  // durable promise is completed
216
255
  input = {
217
256
  type: "internal.promise",
@@ -224,16 +263,35 @@ class Coroutine {
224
263
  };
225
264
  next();
226
265
  }
227
- }, action.func.name);
266
+ }, action.func.name, span.encode());
228
267
  return; // Exit the while loop to wait for async callback
229
268
  }
230
269
  // Handle internal.async.r
231
270
  if (action.type === "internal.async.r") {
271
+ let span;
272
+ if (!this.spans.has(action.createReq.id)) {
273
+ span = this.ctx.span.startSpan(action.createReq.id, this.ctx.clock.now());
274
+ span.setAttribute("type", "rpc");
275
+ span.setAttribute("mode", action.mode);
276
+ span.setAttribute("func", action.func);
277
+ span.setAttribute("version", action.version);
278
+ span.setAttribute("task.id", this.task.id);
279
+ span.setAttribute("task.counter", this.task.counter);
280
+ this.spans.set(action.createReq.id, span);
281
+ }
282
+ else {
283
+ span = this.spans.get(action.createReq.id);
284
+ }
232
285
  this.handler.createPromise(action.createReq, (err, res) => {
233
286
  if (err) {
234
287
  err.log(this.verbose);
288
+ span.setStatus(false, String(err));
289
+ span.end(this.ctx.clock.now());
235
290
  return callback(true);
236
291
  }
292
+ // if the promise is created, the span is considered successful
293
+ span.setStatus(true);
294
+ span.end(this.ctx.clock.now());
237
295
  util.assertDefined(res);
238
296
  if (res.state === "pending") {
239
297
  if (action.mode === "attached")
@@ -257,7 +315,7 @@ class Coroutine {
257
315
  };
258
316
  }
259
317
  next();
260
- });
318
+ }, "unknown", span.encode());
261
319
  return; // Exit the while loop to wait for async callback
262
320
  }
263
321
  // Handle die
@@ -286,13 +344,14 @@ class Coroutine {
286
344
  // All detached are remotes.
287
345
  remote.push({ id: action.id });
288
346
  }
289
- callback(false, { type: "more", todo: { local, remote } });
347
+ callback(false, { type: "more", todo: { local, remote }, spans });
290
348
  return;
291
349
  }
292
350
  // Handle return
293
351
  if (action.type === "internal.return") {
294
352
  util.assert(action.value.type === "internal.literal", "promise value must be an 'internal.literal' type");
295
353
  util.assertDefined(action.value);
354
+ util.assert(spans.length === 0, "all spans should've been closed");
296
355
  callback(false, { type: "done", result: action.value.value });
297
356
  return;
298
357
  }
@@ -1 +1 @@
1
- {"version":3,"file":"coroutine.js","sourceRoot":"","sources":["../../src/coroutine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coroutine.js","sourceRoot":"","sources":["../../src/coroutine.ts"],"names":[],"mappings":"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"}