@resonatehq/sdk 0.8.1 → 0.8.3

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 (91) hide show
  1. package/dist/dev/network.d.ts +13 -6
  2. package/dist/dev/network.d.ts.map +1 -1
  3. package/dist/dev/network.js +32 -17
  4. package/dist/dev/network.js.map +1 -1
  5. package/dist/dev/server.d.ts +2 -1
  6. package/dist/dev/server.d.ts.map +1 -1
  7. package/dist/dev/server.js +42 -51
  8. package/dist/dev/server.js.map +1 -1
  9. package/dist/sim/example-1.js +9 -7
  10. package/dist/sim/example-1.js.map +1 -1
  11. package/dist/sim/example-2.js +9 -7
  12. package/dist/sim/example-2.js.map +1 -1
  13. package/dist/sim/example-3.js +9 -7
  14. package/dist/sim/example-3.js.map +1 -1
  15. package/dist/sim/main.d.ts.map +1 -1
  16. package/dist/sim/main.js +5 -4
  17. package/dist/sim/main.js.map +1 -1
  18. package/dist/sim/src/server.d.ts.map +1 -1
  19. package/dist/sim/src/worker.d.ts +2 -1
  20. package/dist/sim/src/worker.d.ts.map +1 -1
  21. package/dist/sim/src/worker.js +29 -14
  22. package/dist/sim/src/worker.js.map +1 -1
  23. package/dist/src/computation.d.ts +4 -3
  24. package/dist/src/computation.d.ts.map +1 -1
  25. package/dist/src/computation.js +53 -20
  26. package/dist/src/computation.js.map +1 -1
  27. package/dist/src/context.d.ts +27 -11
  28. package/dist/src/context.d.ts.map +1 -1
  29. package/dist/src/context.js +68 -33
  30. package/dist/src/context.js.map +1 -1
  31. package/dist/src/core.d.ts +5 -5
  32. package/dist/src/core.d.ts.map +1 -1
  33. package/dist/src/core.js +11 -11
  34. package/dist/src/core.js.map +1 -1
  35. package/dist/src/coroutine.d.ts.map +1 -1
  36. package/dist/src/coroutine.js +41 -27
  37. package/dist/src/coroutine.js.map +1 -1
  38. package/dist/src/decorator.d.ts +3 -3
  39. package/dist/src/decorator.d.ts.map +1 -1
  40. package/dist/src/decorator.js +4 -4
  41. package/dist/src/decorator.js.map +1 -1
  42. package/dist/src/encoder.d.ts +12 -0
  43. package/dist/src/encoder.d.ts.map +1 -0
  44. package/dist/src/encoder.js +107 -0
  45. package/dist/src/encoder.js.map +1 -0
  46. package/dist/src/exceptions.d.ts +35 -0
  47. package/dist/src/exceptions.d.ts.map +1 -0
  48. package/dist/src/exceptions.js +75 -0
  49. package/dist/src/exceptions.js.map +1 -0
  50. package/dist/src/handler.d.ts +18 -15
  51. package/dist/src/handler.d.ts.map +1 -1
  52. package/dist/src/handler.js +141 -39
  53. package/dist/src/handler.js.map +1 -1
  54. package/dist/src/index.d.ts +1 -1
  55. package/dist/src/index.d.ts.map +1 -1
  56. package/dist/src/index.js +2 -2
  57. package/dist/src/index.js.map +1 -1
  58. package/dist/src/network/network.d.ts +32 -16
  59. package/dist/src/network/network.d.ts.map +1 -1
  60. package/dist/src/network/remote.d.ts +26 -36
  61. package/dist/src/network/remote.d.ts.map +1 -1
  62. package/dist/src/network/remote.js +156 -193
  63. package/dist/src/network/remote.js.map +1 -1
  64. package/dist/src/processor/processor.d.ts +2 -2
  65. package/dist/src/processor/processor.d.ts.map +1 -1
  66. package/dist/src/processor/processor.js +8 -4
  67. package/dist/src/processor/processor.js.map +1 -1
  68. package/dist/src/promises.d.ts +19 -10
  69. package/dist/src/promises.d.ts.map +1 -1
  70. package/dist/src/promises.js +38 -26
  71. package/dist/src/promises.js.map +1 -1
  72. package/dist/src/registry.d.ts +3 -4
  73. package/dist/src/registry.d.ts.map +1 -1
  74. package/dist/src/registry.js +25 -49
  75. package/dist/src/registry.js.map +1 -1
  76. package/dist/src/resonate-inner.d.ts +8 -5
  77. package/dist/src/resonate-inner.d.ts.map +1 -1
  78. package/dist/src/resonate-inner.js +8 -6
  79. package/dist/src/resonate-inner.js.map +1 -1
  80. package/dist/src/resonate.d.ts +223 -22
  81. package/dist/src/resonate.d.ts.map +1 -1
  82. package/dist/src/resonate.js +277 -153
  83. package/dist/src/resonate.js.map +1 -1
  84. package/dist/src/schedules.d.ts +3 -2
  85. package/dist/src/schedules.d.ts.map +1 -1
  86. package/dist/src/schedules.js +2 -2
  87. package/dist/src/schedules.js.map +1 -1
  88. package/dist/src/types.d.ts +4 -0
  89. package/dist/src/types.d.ts.map +1 -1
  90. package/dist/tsconfig.build.tsbuildinfo +1 -1
  91. package/package.json +2 -2
@@ -1,16 +1,23 @@
1
+ import type { ResonateError } from "../src/exceptions";
2
+ import type { Message, MessageSource, Network, Request, ResponseFor } from "../src/network/network";
1
3
  import { Server } from "./server";
2
- import type { Callback } from "types";
3
- import type { Message, Network, Request, ResponseFor } from "../src/network/network";
4
- export declare class LocalNetwork implements Network {
4
+ export declare class LocalMessageSource implements MessageSource {
5
5
  private server;
6
6
  private timeoutId;
7
7
  private shouldStop;
8
8
  private subscriptions;
9
- constructor(server?: Server);
9
+ constructor(server: Server);
10
10
  stop(): void;
11
- send<T extends Request>(req: Request, callback: Callback<ResponseFor<T>>): void;
12
11
  recv(msg: Message): void;
13
12
  subscribe(type: "invoke" | "resume" | "notify", callback: (msg: Message) => void): void;
14
- private enqueueNext;
13
+ enqueueNext(): void;
14
+ }
15
+ export declare class LocalNetwork implements Network {
16
+ private server;
17
+ private messageSource;
18
+ constructor(server?: Server);
19
+ getMessageSource(): MessageSource;
20
+ stop(): void;
21
+ send<T extends Request>(req: Request, callback: (err?: ResonateError, res?: ResponseFor<T>) => void): void;
15
22
  }
16
23
  //# sourceMappingURL=network.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../dev/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrF,qBAAa,YAAa,YAAW,OAAO;IAC1C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAA4C;IAC7D,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAIsB;gBAE/B,MAAM,GAAE,MAAqB;IAKzC,IAAI;IAMJ,IAAI,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAc/E,IAAI,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAMxB,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAIvF,OAAO,CAAC,WAAW;CAepB"}
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../dev/network.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAEpG,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,qBAAa,kBAAmB,YAAW,aAAa;IACtD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAA4C;IAC7D,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAIsB;gBAE/B,MAAM,EAAE,MAAM;IAK1B,IAAI;IAMJ,IAAI,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAMxB,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAIvF,WAAW,IAAI,IAAI;CAepB;AAED,qBAAa,YAAa,YAAW,OAAO;IAC1C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,aAAa,CAAqB;gBAE9B,MAAM,GAAE,MAAqB;IAKzC,gBAAgB,IAAI,aAAa;IAIjC,IAAI;IAIJ,IAAI,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;CAa3G"}
@@ -33,15 +33,15 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.LocalNetwork = void 0;
37
- const server_1 = require("./server");
36
+ exports.LocalNetwork = exports.LocalMessageSource = void 0;
38
37
  const util = __importStar(require("../src/util"));
39
- class LocalNetwork {
38
+ const server_1 = require("./server");
39
+ class LocalMessageSource {
40
40
  server;
41
41
  timeoutId;
42
42
  shouldStop = false;
43
43
  subscriptions = { invoke: [], resume: [], notify: [] };
44
- constructor(server = new server_1.Server()) {
44
+ constructor(server) {
45
45
  this.server = server;
46
46
  this.timeoutId = undefined;
47
47
  }
@@ -50,19 +50,6 @@ class LocalNetwork {
50
50
  this.shouldStop = true;
51
51
  this.timeoutId = undefined;
52
52
  }
53
- send(req, callback) {
54
- setTimeout(() => {
55
- try {
56
- const res = this.server.process(req, Date.now());
57
- util.assert(res.kind === req.kind, "res kind must match req kind");
58
- callback(false, res);
59
- this.enqueueNext();
60
- }
61
- catch (err) {
62
- callback(true);
63
- }
64
- });
65
- }
66
53
  recv(msg) {
67
54
  for (const callback of this.subscriptions[msg.type]) {
68
55
  callback(msg);
@@ -85,5 +72,33 @@ class LocalNetwork {
85
72
  }
86
73
  }
87
74
  }
75
+ exports.LocalMessageSource = LocalMessageSource;
76
+ class LocalNetwork {
77
+ server;
78
+ messageSource;
79
+ constructor(server = new server_1.Server()) {
80
+ this.server = server;
81
+ this.messageSource = new LocalMessageSource(server);
82
+ }
83
+ getMessageSource() {
84
+ return this.messageSource;
85
+ }
86
+ stop() {
87
+ // No-op for LocalNetwork, MessageSource handles polling cleanup
88
+ }
89
+ send(req, callback) {
90
+ setTimeout(() => {
91
+ try {
92
+ const res = this.server.process(req, Date.now());
93
+ util.assert(res.kind === req.kind, "res kind must match req kind");
94
+ callback(undefined, res);
95
+ this.messageSource.enqueueNext();
96
+ }
97
+ catch (err) {
98
+ callback(err);
99
+ }
100
+ });
101
+ }
102
+ }
88
103
  exports.LocalNetwork = LocalNetwork;
89
104
  //# sourceMappingURL=network.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"network.js","sourceRoot":"","sources":["../../dev/network.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAkC;AAIlC,kDAAoC;AAEpC,MAAa,YAAY;IACf,MAAM,CAAS;IACf,SAAS,CAA4C;IACrD,UAAU,GAAG,KAAK,CAAC;IACnB,aAAa,GAIjB,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAE3C,YAAY,SAAiB,IAAI,eAAM,EAAE;QACvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,IAAI;QACF,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,IAAI,CAAoB,GAAY,EAAE,QAAkC;QACtE,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBACjD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,EAAE,8BAA8B,CAAC,CAAC;gBAEnE,QAAQ,CAAC,KAAK,EAAE,GAAqB,CAAC,CAAC;gBACvC,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,QAAQ,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,GAAY;QACf,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACpD,QAAQ,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IAED,SAAS,CAAC,IAAoC,EAAE,QAAgC;QAC9E,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAEO,WAAW;QACjB,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE7B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEpC,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YAC3C,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,GAAS,EAAE;gBACrC,KAAK,MAAM,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC7C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACjB,CAAC;gBACD,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC;IACH,CAAC;CACF;AA5DD,oCA4DC"}
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../dev/network.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,kDAAoC;AACpC,qCAAkC;AAElC,MAAa,kBAAkB;IACrB,MAAM,CAAS;IACf,SAAS,CAA4C;IACrD,UAAU,GAAG,KAAK,CAAC;IACnB,aAAa,GAIjB,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAE3C,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,IAAI;QACF,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,IAAI,CAAC,GAAY;QACf,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACpD,QAAQ,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IAED,SAAS,CAAC,IAAoC,EAAE,QAAgC;QAC9E,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,WAAW;QACT,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE7B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEpC,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YAC3C,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,GAAS,EAAE;gBACrC,KAAK,MAAM,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC7C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACjB,CAAC;gBACD,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC;IACH,CAAC;CACF;AA9CD,gDA8CC;AAED,MAAa,YAAY;IACf,MAAM,CAAS;IACf,aAAa,CAAqB;IAE1C,YAAY,SAAiB,IAAI,eAAM,EAAE;QACvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAI;QACF,gEAAgE;IAClE,CAAC;IAED,IAAI,CAAoB,GAAY,EAAE,QAA6D;QACjG,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBACjD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,EAAE,8BAA8B,CAAC,CAAC;gBAEnE,QAAQ,CAAC,SAAS,EAAE,GAAqB,CAAC,CAAC;gBAC3C,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;YACnC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,QAAQ,CAAC,GAAoB,CAAC,CAAC;YACjC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AA9BD,oCA8BC"}
@@ -32,7 +32,7 @@ interface Task {
32
32
  timeout: number;
33
33
  processId?: string;
34
34
  ttl?: number;
35
- expiry?: number;
35
+ expiry: number;
36
36
  createdOn: number;
37
37
  completedOn?: number;
38
38
  }
@@ -73,6 +73,7 @@ export declare class Server {
73
73
  private claimTask;
74
74
  private completeTask;
75
75
  private dropTask;
76
+ private searchPromises;
76
77
  private heartbeatTasks;
77
78
  private createSchedule;
78
79
  private readSchedule;
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../dev/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../dev/server.ts"],"names":[],"mappings":"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"}
@@ -32,9 +32,13 @@ 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
39
  exports.Server = void 0;
37
40
  const cron_parser_1 = require("cron-parser");
41
+ const exceptions_1 = __importDefault(require("../src/exceptions"));
38
42
  const util = __importStar(require("../src/util"));
39
43
  class TagRouter {
40
44
  tag;
@@ -45,13 +49,6 @@ class TagRouter {
45
49
  return promise.tags?.[this.tag];
46
50
  }
47
51
  }
48
- class ServerError extends Error {
49
- code;
50
- constructor(message, code) {
51
- super(message);
52
- this.code = code;
53
- }
54
- }
55
52
  class Server {
56
53
  promises;
57
54
  tasks;
@@ -66,40 +63,26 @@ class Server {
66
63
  this.targets = { default: "local://any@default" };
67
64
  }
68
65
  next(time) {
69
- let timeout = undefined;
70
- // Check pending promises
66
+ let timeout;
67
+ // Check promises
71
68
  for (const promise of this.promises.values()) {
72
- if (timeout === 0) {
73
- return timeout;
74
- }
75
69
  if (promise.state === "pending") {
76
- timeout = timeout === undefined ? promise.timeout : Math.min(promise.timeout, timeout);
77
- }
78
- }
79
- // Check tasks
80
- for (const task of this.tasks.values()) {
81
- if (timeout === 0) {
82
- return timeout;
83
- }
84
- if (task.state === "init") {
85
- timeout = timeout === undefined ? 0 : Math.min(0, timeout);
86
- }
87
- else if (["claimed", "enqueued"].includes(task.state)) {
88
- util.assertDefined(task.expiry);
89
- timeout = timeout === undefined ? task.expiry : Math.min(task.expiry, timeout);
70
+ timeout = Math.min(promise.timeout, timeout ?? promise.timeout);
90
71
  }
91
72
  }
92
73
  // Check schedules
93
74
  for (const schedule of this.schedules.values()) {
94
- if (timeout === 0) {
95
- return timeout;
96
- }
97
75
  util.assertDefined(schedule.nextRunTime);
98
- timeout = timeout === undefined ? schedule.nextRunTime : Math.min(schedule.nextRunTime, timeout);
76
+ timeout = Math.min(schedule.nextRunTime, timeout ?? schedule.nextRunTime);
77
+ }
78
+ // Check tasks
79
+ for (const task of this.tasks.values()) {
80
+ if (["init", "claimed", "enqueued"].includes(task.state)) {
81
+ timeout = Math.min(task.expiry, timeout ?? task.expiry);
82
+ }
99
83
  }
100
84
  // Convert to delay relative to `time`, clamped to signed 32-bit range
101
- timeout = timeout !== undefined ? Math.min(Math.max(0, timeout - time), 2147483647) : timeout;
102
- return timeout;
85
+ return timeout !== undefined ? Math.min(Math.max(0, timeout - time), 2147483647) : timeout;
103
86
  }
104
87
  step(time) {
105
88
  for (const schedule of this.schedules.values()) {
@@ -146,7 +129,7 @@ class Server {
146
129
  }
147
130
  const msgs = [];
148
131
  for (const task of this.tasks.values()) {
149
- if (task.state !== "init" || inFlightRootPromiseIds.has(task.rootPromiseId)) {
132
+ if (task.state !== "init" || task.expiry > time || inFlightRootPromiseIds.has(task.rootPromiseId)) {
150
133
  continue;
151
134
  }
152
135
  let msg;
@@ -305,8 +288,11 @@ class Server {
305
288
  this.dropTask({ ...requ, time });
306
289
  return { kind: "dropTask" };
307
290
  }
291
+ case "searchPromises": {
292
+ return { kind: "searchPromises", promises: this.searchPromises({ ...requ }) };
293
+ }
308
294
  default:
309
- throw new Error(`Unsupported request kind: ${requ.kind}`);
295
+ throw exceptions_1.default.SERVER_ERROR(`Unsupported request kind ${requ.kind}`);
310
296
  }
311
297
  }
312
298
  createPromise({ id, timeout, param, tags, iKey, strict, time, }) {
@@ -382,7 +368,7 @@ class Server {
382
368
  {
383
369
  const record = this.promises.get(promiseId);
384
370
  if (!record) {
385
- throw new ServerError("not found", "not_found");
371
+ throw exceptions_1.default.SERVER_ERROR("Promise not found");
386
372
  }
387
373
  const cbId = `__notify:${promiseId}:${id}`;
388
374
  if (record.state !== "pending" || record.callbacks?.has(cbId)) {
@@ -411,7 +397,7 @@ class Server {
411
397
  createCallback({ promiseId, rootPromiseId, timeout, recv, time, }) {
412
398
  const record = this.promises.get(promiseId);
413
399
  if (!record) {
414
- throw new ServerError("not found", "not_found");
400
+ throw exceptions_1.default.SERVER_ERROR("Promise not found");
415
401
  }
416
402
  if (record.state !== "pending" || record.callbacks?.has(promiseId)) {
417
403
  return { promise: record, callback: undefined };
@@ -467,7 +453,7 @@ class Server {
467
453
  };
468
454
  }
469
455
  default:
470
- throw new Error(`claimTask: unexpected task type '${task.type}' for task '${id}'`);
456
+ throw exceptions_1.default.SERVER_ERROR(`Unexpected task type '${task.type}'`);
471
457
  }
472
458
  }
473
459
  completeTask({ id, counter, time }) {
@@ -479,6 +465,9 @@ class Server {
479
465
  util.assert(applied);
480
466
  return;
481
467
  }
468
+ searchPromises({ id }) {
469
+ return Array.from(this.promises.values());
470
+ }
482
471
  heartbeatTasks({ processId, time }) {
483
472
  let affectedTasks = 0;
484
473
  for (const task of this.tasks.values()) {
@@ -509,7 +498,7 @@ class Server {
509
498
  readSchedule({ id }) {
510
499
  const schedule = this.schedules.get(id);
511
500
  if (schedule === undefined) {
512
- throw new ServerError("schedule not found", "not_found");
501
+ throw exceptions_1.default.SERVER_ERROR("Schedule not found");
513
502
  }
514
503
  return schedule;
515
504
  }
@@ -520,7 +509,7 @@ class Server {
520
509
  getPromise({ id }) {
521
510
  const record = this.promises.get(id);
522
511
  if (!record) {
523
- throw new ServerError("not found", "not_found");
512
+ throw exceptions_1.default.SERVER_ERROR("Promise not found");
524
513
  }
525
514
  return record;
526
515
  }
@@ -605,7 +594,7 @@ class Server {
605
594
  }
606
595
  // Cannot complete non-existent promise
607
596
  if (record === undefined && ["resolved", "rejected", "rejected_canceled"].includes(to)) {
608
- throw new ServerError(`transitionPromise(${to}): promise '${id}' not found`, "not_found");
597
+ throw exceptions_1.default.SERVER_ERROR("Promise not found");
609
598
  }
610
599
  // No-op re-create pending if before timeout and same iKey
611
600
  if (record?.state === "pending" &&
@@ -648,7 +637,7 @@ class Server {
648
637
  ["resolved", "rejected", "rejected_canceled"].includes(to) &&
649
638
  strict &&
650
639
  time >= record.timeout) {
651
- throw new ServerError(`transitionPromise(${to}): promise '${id}' already timed out at ${record.timeout}`, "forbidden");
640
+ throw exceptions_1.default.SERVER_ERROR("Promise already timedout");
652
641
  }
653
642
  // Transition to timed-out
654
643
  if (record?.state === "pending" && to === "rejected_timedout") {
@@ -689,7 +678,7 @@ class Server {
689
678
  return { promise: record, applied: false };
690
679
  }
691
680
  // Fallback
692
- throw new ServerError(`transitionPromise(${to}): unexpected transition for promise '${id}'`, "conflict");
681
+ throw exceptions_1.default.SERVER_ERROR("Unexpected promise transition");
693
682
  }
694
683
  transitionTask({ id, to, type, recv, timeout, rootPromiseId, leafPromiseId, counter, processId, ttl, force, time, }) {
695
684
  let record = this.tasks.get(id);
@@ -708,6 +697,7 @@ class Server {
708
697
  recv,
709
698
  rootPromiseId,
710
699
  leafPromiseId,
700
+ expiry: 0,
711
701
  createdOn: time,
712
702
  };
713
703
  this.tasks.set(id, record);
@@ -717,7 +707,7 @@ class Server {
717
707
  record = {
718
708
  ...record,
719
709
  state: to,
720
- expiry: time + 5000, // 5 secs
710
+ expiry: time + 5000, // wait 5s before transitioning back to init if unclaimed
721
711
  };
722
712
  this.tasks.set(id, record);
723
713
  return { task: record, applied: true };
@@ -769,7 +759,7 @@ class Server {
769
759
  state: to,
770
760
  processId: undefined,
771
761
  ttl: undefined,
772
- expiry: undefined,
762
+ expiry: time + 5000, // wait 5s before sending again
773
763
  };
774
764
  this.tasks.set(id, record);
775
765
  return { task: record, applied: true };
@@ -782,7 +772,7 @@ class Server {
782
772
  state: to,
783
773
  processId: undefined,
784
774
  ttl: undefined,
785
- expiry: undefined,
775
+ expiry: 0,
786
776
  };
787
777
  this.tasks.set(id, record);
788
778
  return { task: record, applied: true };
@@ -816,6 +806,7 @@ class Server {
816
806
  record = {
817
807
  ...record,
818
808
  state: to,
809
+ completedOn: time,
819
810
  };
820
811
  this.tasks.set(id, record);
821
812
  return { task: record, applied: true };
@@ -824,9 +815,9 @@ class Server {
824
815
  return { task: record, applied: false };
825
816
  }
826
817
  if (record === undefined) {
827
- throw new ServerError("Task not found", "not_found");
818
+ throw exceptions_1.default.SERVER_ERROR("Task not found");
828
819
  }
829
- throw new ServerError("task is already claimed, completed, or an invalid counter was provided", "conflict");
820
+ throw exceptions_1.default.SERVER_ERROR("Task is already claimed, completed, or an invalid counter was provided");
830
821
  }
831
822
  transitionSchedule({ id, to, cron, promiseId, promiseTimeout, iKey, description, tags, promiseParam, promiseTags, updating, time, }) {
832
823
  let record = this.schedules.get(id);
@@ -835,7 +826,7 @@ class Server {
835
826
  util.assertDefined(cron);
836
827
  util.assertDefined(promiseId);
837
828
  util.assertDefined(promiseTimeout);
838
- util.assert(promiseTimeout >= 0, "transitionSchedule(created): 'promiseTimeout' must be non-negative");
829
+ util.assert(promiseTimeout >= 0, "promiseTimeout must be non-negative");
839
830
  record = {
840
831
  id,
841
832
  description,
@@ -870,11 +861,11 @@ class Server {
870
861
  }
871
862
  // Schedule exists and not updating
872
863
  if (record !== undefined && to === "created") {
873
- throw new ServerError(`transitionSchedule(created): schedule '${id}' already exists and 'updating' flag is false`, "conflict");
864
+ throw exceptions_1.default.SERVER_ERROR("Schedule already exists");
874
865
  }
875
866
  // Delete non-existent
876
867
  if (record === undefined && to === "deleted") {
877
- throw new ServerError(`transitionSchedule(deleted): schedule '${id}' not found`, "not_found");
868
+ throw exceptions_1.default.SERVER_ERROR("Schedule not found");
878
869
  }
879
870
  // Delete existing
880
871
  if (record !== undefined && to === "deleted") {
@@ -882,7 +873,7 @@ class Server {
882
873
  return { schedule: record, applied: true };
883
874
  }
884
875
  // Fallback error
885
- throw new ServerError(`transitionSchedule(${to}): unexpected transition for schedule '${id}'`, "conflict");
876
+ throw exceptions_1.default.SERVER_ERROR("Unexpected schedule transition");
886
877
  }
887
878
  }
888
879
  exports.Server = Server;
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../dev/server.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAmD;AAYnD,kDAAoC;AA6DpC,MAAM,SAAS;IACL,GAAG,CAAS;IAEpB,YAAY,GAAG,GAAG,iBAAiB;QACjC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,OAAuB;QAC3B,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;CACF;AAED,MAAM,WAAY,SAAQ,KAAK;IAC7B,IAAI,CAA6D;IACjE,YAAY,OAAe,EAAE,IAAgE;QAC3F,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAa,MAAM;IACR,QAAQ,CAA8B;IACtC,KAAK,CAAoB;IACzB,SAAS,CAAwB;IAClC,OAAO,CAAgB;IACvB,OAAO,CAAyB;IAExC;QACE,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,KAAK,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACpD,CAAC;IAED,IAAI,CAAC,IAAY;QACf,IAAI,OAAO,GAAuB,SAAS,CAAC;QAE5C,yBAAyB;QACzB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC7C,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;gBAClB,OAAO,OAAO,CAAC;YACjB,CAAC;YAED,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAChC,OAAO,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACzF,CAAC;QACH,CAAC;QAED,cAAc;QACd,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;gBAClB,OAAO,OAAO,CAAC;YACjB,CAAC;YAED,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;gBAC1B,OAAO,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAC7D,CAAC;iBAAM,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAChC,OAAO,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;QAED,kBAAkB;QAClB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC/C,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;gBAClB,OAAO,OAAO,CAAC;YACjB,CAAC;YAED,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACzC,OAAO,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACnG,CAAC;QAED,sEAAsE;QACtE,OAAO,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAE9F,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,CAAC,IAAY;QACf,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC/C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACzC,IAAI,IAAI,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAChC,SAAS;YACX,CAAC;YAED,IAAI,CAAC;gBACH,IAAI,CAAC,aAAa,CAAC;oBACjB,EAAE,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACjE,OAAO,EAAE,IAAI,GAAG,QAAQ,CAAC,cAAc;oBACvC,KAAK,EAAE,QAAQ,CAAC,YAAY;oBAC5B,IAAI,EAAE,QAAQ,CAAC,WAAW;oBAC1B,MAAM,EAAE,KAAK;oBACb,IAAI;iBACL,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;YAEV,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAEtG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,0CAA0C,QAAQ,CAAC,EAAE,sBAAsB,CAAC,CAAC;QACpG,CAAC;QAED,4BAA4B;QAC5B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC7C,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBAC3D,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC9F,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,oBAAoB,OAAO,CAAC,EAAE,yDAAyD,CAAC,CAAC;YAChH,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAEhC,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBACxB,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;oBACxF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,gDAAgD,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;gBACnF,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAU,CAAC;QAEjD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjD,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAqC,EAAE,CAAC;QAClD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,IAAI,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC5E,SAAS;YACX,CAAC;YAED,IAAI,GAAmC,CAAC;YACxC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B,GAAG,GAAG;oBACJ,GAAG,EAAE;wBACH,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE;4BACJ,GAAG,IAAI;4BACP,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,OAAO;yBAC7D;qBACF;oBACD,IAAI,EAAE,IAAI,CAAC,IAAI;iBAChB,CAAC;YACJ,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAClC,GAAG,GAAG;oBACJ,GAAG,EAAE;wBACH,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE;4BACJ,GAAG,IAAI;4BACP,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,OAAO;yBAC7D;qBACF;oBACD,IAAI,EAAE,IAAI,CAAC,IAAI;iBAChB,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,iCAAiC,IAAI,CAAC,IAAI,sBAAsB,CAAC,CAAC;gBACtG,GAAG,GAAG;oBACJ,GAAG,EAAE;wBACH,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;qBACrD;oBACD,IAAI,EAAE,IAAI,CAAC,IAAI;iBAChB,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEf,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;gBAChF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,2CAA2C,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;YAC9E,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC/E,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,mCAAmC,IAAI,CAAC,EAAE,2BAA2B,CAAC,CAAC;YAC9F,CAAC;YACD,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,IAAa,EAAE,IAAY;QACjC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,eAAe,CAAC,CAAC,CAAC;gBACrB,OAAO;oBACL,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC;wBAC1B,GAAG,IAAI;wBACP,IAAI;qBACL,CAAC;iBACH,CAAC;YACJ,CAAC;YACD,KAAK,sBAAsB,CAAC,CAAC,CAAC;gBAC5B,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,oBAAoB,CAAC;oBAClD,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;oBACnB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;oBAC7B,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;oBAC9B,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG;oBAClB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;oBACzB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;oBACvB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,IAAI;iBACL,CAAC,CAAC;gBACH,OAAO;oBACL,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,OAAO,EAAE,OAAO;oBAChB,IAAI,EAAE,IAAI;iBACX,CAAC;YACJ,CAAC;YACD,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,OAAO;oBACL,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;iBACvC,CAAC;YACJ,CAAC;YAED,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACvB,OAAO;oBACL,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC;wBAC5B,GAAG,IAAI;wBACP,IAAI;qBACL,CAAC;iBACH,CAAC;YACJ,CAAC;YAED,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACtB,OAAO;oBACL,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,GAAG,IAAI,CAAC,cAAc,CAAC;wBACrB,GAAG,IAAI;wBACP,IAAI;qBACL,CAAC;iBACH,CAAC;YACJ,CAAC;YAED,KAAK,oBAAoB,CAAC,CAAC,CAAC;gBAC1B,OAAO;oBACL,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC;iBAC9C,CAAC;YACJ,CAAC;YAED,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACtB,OAAO;oBACL,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC;wBAC5B,EAAE,EAAE,IAAI,CAAC,EAAG;wBACZ,IAAI,EAAE,IAAI,CAAC,IAAK;wBAChB,SAAS,EAAE,IAAI,CAAC,SAAU;wBAC1B,cAAc,EAAE,IAAI,CAAC,cAAe;wBACpC,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,WAAW,EAAE,IAAI,CAAC,WAAW;wBAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,YAAY,EAAE,IAAI,CAAC,YAAY;wBAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;wBAC7B,IAAI;qBACL,CAAC;iBACH,CAAC;YACJ,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC;YACvE,CAAC;YAED,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACtB,IAAI,CAAC,cAAc,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBACvC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;YAC7B,CAAC;YAED,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,OAAO;oBACL,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;wBACtB,GAAG,IAAI;wBACP,IAAI;qBACL,CAAC;iBACH,CAAC;YACJ,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,OAAO;oBACL,IAAI,EAAE,cAAc;oBACpB,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC;iBAC3C,CAAC;YACJ,CAAC;YAED,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACtB,OAAO;oBACL,IAAI,EAAE,gBAAgB;oBACtB,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC;iBACtD,CAAC;YACJ,CAAC;YAED,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBACjC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;YAC9B,CAAC;YAED;gBACE,MAAM,IAAI,KAAK,CAAC,6BAA8B,IAAY,CAAC,IAAI,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,EACpB,EAAE,EACF,OAAO,EACP,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,IAAI,GASL;QACC,OAAO,IAAI,CAAC,cAAc,CAAC;YACzB,EAAE;YACF,OAAO;YACP,KAAK;YACL,IAAI;YACJ,IAAI;YACJ,MAAM;YACN,IAAI;SACL,CAAC,CAAC,OAAO,CAAC;IACb,CAAC;IAEO,oBAAoB,CAAC,EAC3B,EAAE,EACF,OAAO,EACP,SAAS,EACT,GAAG,EACH,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,IAAI,GAWL;QACC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC;YAC5C,EAAE;YACF,OAAO;YACP,SAAS;YACT,GAAG;YACH,KAAK;YACL,IAAI;YACJ,IAAI;YACJ,MAAM;YACN,IAAI;SACL,CAAC,CAAC;QACH,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,EAAE,OAAO,EAAE,CAAC;QACrB,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;IAClE,CAAC;IAEO,cAAc,CAAC,EACrB,EAAE,EACF,OAAO,EACP,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,SAAS,EACT,GAAG,EACH,IAAI,GAWL;QACC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACxD,EAAE;YACF,EAAE,EAAE,SAAS;YACb,MAAM;YACN,OAAO;YACP,IAAI;YACJ,KAAK,EAAE,KAAK;YACZ,IAAI;YACJ,IAAI;SACL,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CACT,CAAC,OAAO,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EACpE,4CAA4C,OAAO,CAAC,KAAK,gDAAgD,EAAE,GAAG,CAC/G,CAAC;QAEF,IAAI,OAAO,IAAI,IAAI,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC7D,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC;gBAClE,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,EAAE,EAAE,SAAS;gBACb,OAAO,EAAE,CAAC;gBACV,SAAS;gBACT,GAAG;gBACH,IAAI;aACL,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,wCAAwC,IAAI,CAAC,EAAE,6BAA6B,CAAC,CAAC;YACvG,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC7C,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAEO,WAAW,CAAC,EAAE,EAAE,EAAkB;QACxC,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACjC,CAAC;IAEO,eAAe,CAAC,EACtB,EAAE,EACF,KAAK,EACL,KAAK,EACL,IAAI,EACJ,MAAM,EACN,IAAI,GAQL;QACC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC;YAClD,EAAE;YACF,EAAE,EAAE,KAAK;YACT,MAAM;YACN,IAAI;YACJ,KAAK;YACL,IAAI;SACL,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CACT,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAChE,yCAAyC,KAAK,eAAe,EAAE,6BAA6B,OAAO,CAAC,KAAK,GAAG,CAC7G,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,kBAAkB,CAAC,EACzB,EAAE,EACF,SAAS,EACT,OAAO,EACP,IAAI,EACJ,IAAI,GAC2E;QAI/E,CAAC;YACC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAE5C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YAClD,CAAC;YAED,MAAM,IAAI,GAAG,YAAY,SAAS,IAAI,EAAE,EAAE,CAAC;YAE3C,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;YAClD,CAAC;YAED,MAAM,QAAQ,GAAa;gBACzB,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,SAAS;gBACpB,aAAa,EAAE,SAAS;gBACxB,IAAI;gBACJ,OAAO;gBACP,SAAS,EAAE,IAAI;aAChB,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACtB,MAAM,CAAC,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;YACjD,CAAC;YAED,sBAAsB;YACtB,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACrC,OAAO;gBACL,OAAO,EAAE,MAAM;gBACf,QAAQ,EAAE,QAAQ;aACnB,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,EACrB,SAAS,EACT,aAAa,EACb,OAAO,EACP,IAAI,EACJ,IAAI,GACsF;QAI1F,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAE5C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACnE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;QAClD,CAAC;QAED,MAAM,QAAQ,GAAa;YACzB,EAAE,EAAE,YAAY,aAAa,IAAI,SAAS,EAAE;YAC5C,IAAI,EAAE,QAAQ;YACd,SAAS;YACT,aAAa;YACb,IAAI;YACJ,OAAO;YACP,SAAS,EAAE,IAAI;SAChB,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACtB,MAAM,CAAC,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;QACjD,CAAC;QAED,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACjD,CAAC;IAEO,SAAS,CAAC,EAChB,EAAE,EACF,OAAO,EACP,SAAS,EACT,GAAG,EACH,IAAI,GAC0E;QAC9E,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC;YAC5C,EAAE;YACF,EAAE,EAAE,SAAS;YACb,OAAO;YACP,SAAS;YACT,GAAG;YACH,IAAI;SACL,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CACT,OAAO,EACP,oCAAoC,EAAE,kBAAkB,OAAO,qBAAqB,SAAS,GAAG,CACjG,CAAC;QAEF,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;gBAC5D,OAAO;oBACL,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,QAAQ,EAAE;wBACR,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;qBACxC;iBACF,CAAC;YACJ,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,OAAO;oBACL,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,QAAQ,EAAE;wBACR,IAAI,EAAE;4BACJ,EAAE,EAAE,IAAI,CAAC,aAAa;4BACtB,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;yBAClD;wBACD,IAAI,EAAE;4BACJ,EAAE,EAAE,IAAI,CAAC,aAAa;4BACtB,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;yBAClD;qBACF;iBACF,CAAC;YACJ,CAAC;YACD;gBACE,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,CAAC,IAAI,eAAe,EAAE,GAAG,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IAEO,YAAY,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAiD;QACvF,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAE7E,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,QAAQ,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAiD;QACnF,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAEO,cAAc,CAAC,EAAE,SAAS,EAAE,IAAI,EAAuC;QAC7E,IAAI,aAAa,GAAG,CAAC,CAAC;QAEtB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC7D,SAAS;YACX,CAAC;YAED,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAE3F,IAAI,CAAC,MAAM,CACT,OAAO,EACP,yDAAyD,IAAI,CAAC,EAAE,uBAAuB,SAAS,GAAG,CACpG,CAAC;YAEF,aAAa,IAAI,CAAC,CAAC;QACrB,CAAC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAEO,cAAc,CAAC,EACrB,EAAE,EACF,IAAI,EACJ,SAAS,EACT,cAAc,EACd,IAAI,EACJ,WAAW,EACX,IAAI,EACJ,YAAY,EACZ,WAAW,EACX,IAAI,GAYL;QACC,OAAO,IAAI,CAAC,kBAAkB,CAAC;YAC7B,EAAE;YACF,EAAE,EAAE,SAAS;YACb,IAAI;YACJ,SAAS;YACT,cAAc;YACd,IAAI;YACJ,WAAW;YACX,IAAI;YACJ,YAAY;YACZ,WAAW;YACX,IAAI;SACL,CAAC,CAAC,QAAQ,CAAC;IACd,CAAC;IAEO,YAAY,CAAC,EAAE,EAAE,EAAkB;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,WAAW,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAgC;QAC/D,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEzE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,8CAA8C,EAAE,GAAG,CAAC,CAAC;IAC5E,CAAC;IAEO,UAAU,CAAC,EAAE,EAAE,EAAkB;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAErC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,iBAAiB,CAAC,EACxB,EAAE,EACF,EAAE,EACF,MAAM,EACN,OAAO,EACP,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,IAAI,GAUL;QACC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC;YACnD,EAAE;YACF,EAAE;YACF,MAAM;YACN,OAAO;YACP,IAAI;YACJ,KAAK;YACL,IAAI;YACJ,IAAI;SACL,CAAC,CAAC;QAEH,yCAAyC;QACzC,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC3C,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACnC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACvB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC;wBAC5C,EAAE,EAAE,YAAY,EAAE,EAAE;wBACpB,EAAE,EAAE,MAAM;wBACV,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI;wBAChC,aAAa,EAAE,OAAO,CAAC,EAAE;wBACzB,aAAa,EAAE,OAAO,CAAC,EAAE;wBACzB,OAAO,EAAE,OAAO,CAAC,OAAO;wBACxB,IAAI;qBACL,CAAC,CAAC;oBACH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,8DAA8D,EAAE,eAAe,IAAI,GAAG,CAAC,CAAC;oBAC7G,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;gBACpC,CAAC;YACH,CAAC;QACH,CAAC;QAED,6DAA6D;QAC7D,IAAI,OAAO,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,mBAAmB,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1G,mCAAmC;YACnC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBACvC,IAAI,IAAI,CAAC,aAAa,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBACtF,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC;wBACtC,EAAE,EAAE,IAAI,CAAC,EAAE;wBACX,EAAE,EAAE,WAAW;wBACf,KAAK,EAAE,IAAI;wBACX,IAAI;qBACL,CAAC,CAAC;oBACH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,+CAA+C,IAAI,CAAC,EAAE,kBAAkB,EAAE,GAAG,CAAC,CAAC;gBACtG,CAAC;YACH,CAAC;YAED,4BAA4B;YAC5B,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACtB,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;oBAClD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC;wBACtC,GAAG,QAAQ;wBACX,EAAE,EAAE,MAAM;wBACV,aAAa,EAAE,QAAQ,CAAC,SAAS;wBACjC,IAAI;qBACL,CAAC,CAAC;oBACH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,oDAAoD,QAAQ,CAAC,EAAE,kBAAkB,EAAE,GAAG,CAAC,CAAC;gBAC/G,CAAC;gBACD,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YAC5B,CAAC;QACH,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC9B,CAAC;IAEO,kBAAkB,CAAC,EACzB,EAAE,EACF,EAAE,EACF,MAAM,EACN,OAAO,EACP,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,IAAI,GAUL;QACC,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEnC,qBAAqB;QACrB,IAAI,MAAM,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YAC7C,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC5B,MAAM,GAAG;gBACP,EAAE;gBACF,KAAK,EAAE,EAAE;gBACT,OAAO;gBACP,aAAa,EAAE,IAAI;gBACnB,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,IAAI,IAAI,EAAE;gBAChB,SAAS,EAAE,IAAI;aAChB,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC5C,CAAC;QAED,uCAAuC;QACvC,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YACvF,MAAM,IAAI,WAAW,CAAC,qBAAqB,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;QAC5F,CAAC;QAED,0DAA0D;QAC1D,IACE,MAAM,EAAE,KAAK,KAAK,SAAS;YAC3B,EAAE,KAAK,SAAS;YAChB,IAAI,GAAG,MAAM,CAAC,OAAO;YACrB,SAAS,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,EACrC,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC7C,CAAC;QAED,0BAA0B;QAC1B,IACE,MAAM,EAAE,KAAK,KAAK,SAAS;YAC3B,EAAE,KAAK,SAAS;YAChB,CAAC,MAAM;YACP,IAAI,IAAI,MAAM,CAAC,OAAO;YACtB,SAAS,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,EACrC,CAAC;YACD,OAAO,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,mCAAmC;QACnC,IACE,MAAM,EAAE,KAAK,KAAK,SAAS;YAC3B,CAAC,UAAU,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1D,IAAI,GAAG,MAAM,CAAC,OAAO,EACrB,CAAC;YACD,MAAM,GAAG;gBACP,GAAG,MAAM;gBACT,KAAK,EAAE,EAAE;gBACT,eAAe,EAAE,IAAI;gBACrB,KAAK,EAAE,KAAK;gBACZ,WAAW,EAAE,IAAI;aAClB,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC5C,CAAC;QAED,sEAAsE;QACtE,IACE,MAAM,EAAE,KAAK,KAAK,SAAS;YAC3B,CAAC,UAAU,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1D,CAAC,MAAM;YACP,IAAI,IAAI,MAAM,CAAC,OAAO,EACtB,CAAC;YACD,OAAO,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,2CAA2C;QAC3C,IACE,MAAM,EAAE,KAAK,KAAK,SAAS;YAC3B,CAAC,UAAU,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1D,MAAM;YACN,IAAI,IAAI,MAAM,CAAC,OAAO,EACtB,CAAC;YACD,MAAM,IAAI,WAAW,CACnB,qBAAqB,EAAE,eAAe,EAAE,0BAA0B,MAAM,CAAC,OAAO,EAAE,EAClF,WAAW,CACZ,CAAC;QACJ,CAAC;QAED,0BAA0B;QAC1B,IAAI,MAAM,EAAE,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,mBAAmB,EAAE,CAAC;YAC9D,IAAI,CAAC,MAAM,CACT,IAAI,IAAI,MAAM,CAAC,OAAO,EACtB,kEAAkE,EAAE,yBAAyB,MAAM,CAAC,OAAO,GAAG,CAC/G,CAAC;YAEF,MAAM,GAAG;gBACP,GAAG,MAAM;gBACT,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,kBAAkB,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;aACtE,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC5C,CAAC;QAED,qEAAqE;QACrE,IACE,MAAM,EAAE,KAAK,KAAK,SAAS;YAC3B,CAAC,UAAU,EAAE,UAAU,EAAE,mBAAmB,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;YACzF,EAAE,KAAK,SAAS;YAChB,CAAC,MAAM;YACP,SAAS,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,EACrC,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC7C,CAAC;QAED,IACE,MAAM,KAAK,SAAS;YACpB,CAAC,UAAU,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;YACpE,CAAC,UAAU,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1D,CAAC,MAAM;YACP,SAAS,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,EACvC,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC7C,CAAC;QAED,IACE,MAAM,EAAE,KAAK,KAAK,mBAAmB;YACrC,CAAC,UAAU,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1D,CAAC,MAAM,EACP,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC7C,CAAC;QAED,IACE,MAAM,KAAK,SAAS;YACpB,CAAC,UAAU,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;YACpE,CAAC,UAAU,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1D,MAAM;YACN,SAAS,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC;YACvC,MAAM,CAAC,KAAK,KAAK,EAAE,EACnB,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC7C,CAAC;QAED,WAAW;QACX,MAAM,IAAI,WAAW,CAAC,qBAAqB,EAAE,yCAAyC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;IAC3G,CAAC;IAEO,cAAc,CAAC,EACrB,EAAE,EACF,EAAE,EACF,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,aAAa,EACb,aAAa,EACb,OAAO,EACP,SAAS,EACT,GAAG,EACH,KAAK,EACL,IAAI,GAcL;QACC,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhC,IAAI,MAAM,KAAK,SAAS,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;YAC1C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;YAClC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;YAClC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAE5B,MAAM,GAAG;gBACP,EAAE;gBACF,OAAO,EAAE,CAAC;gBACV,OAAO;gBACP,KAAK,EAAE,EAAE;gBACT,IAAI;gBACJ,IAAI;gBACJ,aAAa;gBACb,aAAa;gBACb,SAAS,EAAE,IAAI;aAChB,CAAC;YAEF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACzC,CAAC;QAED,IAAI,MAAM,EAAE,KAAK,KAAK,MAAM,IAAI,EAAE,KAAK,UAAU,EAAE,CAAC;YAClD,MAAM,GAAG;gBACP,GAAG,MAAM;gBACT,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,SAAS;aAC/B,CAAC;YACF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACzC,CAAC;QAED,IAAI,MAAM,EAAE,KAAK,KAAK,MAAM,IAAI,EAAE,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YAC/E,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YAC9B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YACxB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAE5B,MAAM,GAAG;gBACP,GAAG,MAAM;gBACT,KAAK,EAAE,EAAE;gBACT,SAAS;gBACT,GAAG;gBACH,MAAM,EAAE,IAAI,GAAG,GAAG;aACnB,CAAC;YAEF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACzC,CAAC;QAED,IAAI,MAAM,EAAE,KAAK,KAAK,UAAU,IAAI,EAAE,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YACnF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YACxB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC5B,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YAE9B,MAAM,GAAG;gBACP,GAAG,MAAM;gBACT,KAAK,EAAE,EAAE;gBACT,SAAS;gBACT,GAAG;gBACH,MAAM,EAAE,IAAI,GAAG,GAAG;aACnB,CAAC;YAEF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACzC,CAAC;QAED,IACE,MAAM,KAAK,SAAS;YACpB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;YAC3C,MAAM,CAAC,IAAI,KAAK,QAAQ;YACxB,EAAE,KAAK,WAAW,EAClB,CAAC;YACD,MAAM,GAAG;gBACP,GAAG,MAAM;gBACT,KAAK,EAAE,EAAE;gBACT,WAAW,EAAE,IAAI;aAClB,CAAC;YAEF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACzC,CAAC;QAED,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;YACtG,MAAM,GAAG;gBACP,GAAG,MAAM;gBACT,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,CAAC;gBAC3B,KAAK,EAAE,EAAE;gBACT,SAAS,EAAE,SAAS;gBACpB,GAAG,EAAE,SAAS;gBACd,MAAM,EAAE,SAAS;aAClB,CAAC;YACF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACzC,CAAC;QAED,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;YAC5F,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAElC,MAAM,GAAG;gBACP,GAAG,MAAM;gBACT,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,CAAC;gBAC3B,KAAK,EAAE,EAAE;gBACT,SAAS,EAAE,SAAS;gBACpB,GAAG,EAAE,SAAS;gBACd,MAAM,EAAE,SAAS;aAClB,CAAC;YAEF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACzC,CAAC;QAED,IAAI,MAAM,EAAE,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS,IAAI,KAAK,EAAE,CAAC;YAC7D,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAE/B,MAAM,GAAG;gBACP,GAAG,MAAM;gBACT,MAAM,EAAE,IAAI,GAAG,MAAM,CAAC,GAAG;aAC1B,CAAC;YAEF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACzC,CAAC;QAED,IACE,MAAM,EAAE,KAAK,KAAK,SAAS;YAC3B,EAAE,KAAK,WAAW;YAClB,MAAM,CAAC,OAAO,KAAK,OAAO;YAC1B,MAAM,CAAC,MAAM,KAAK,SAAS;YAC3B,MAAM,CAAC,MAAM,IAAI,IAAI,EACrB,CAAC;YACD,MAAM,GAAG;gBACP,GAAG,MAAM;gBACT,KAAK,EAAE,EAAE;gBACT,WAAW,EAAE,IAAI;aAClB,CAAC;YAEF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACzC,CAAC;QAED,IACE,MAAM,KAAK,SAAS;YACpB,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;YACvD,EAAE,KAAK,WAAW;YAClB,KAAK,EACL,CAAC;YACD,MAAM,GAAG;gBACP,GAAG,MAAM;gBACT,KAAK,EAAE,EAAE;aACV,CAAC;YAEF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACzC,CAAC;QAED,IAAI,MAAM,EAAE,KAAK,KAAK,WAAW,IAAI,EAAE,KAAK,WAAW,EAAE,CAAC;YACxD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC1C,CAAC;QAED,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,WAAW,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,IAAI,WAAW,CAAC,wEAAwE,EAAE,UAAU,CAAC,CAAC;IAC9G,CAAC;IAEO,kBAAkB,CAAC,EACzB,EAAE,EACF,EAAE,EACF,IAAI,EACJ,SAAS,EACT,cAAc,EACd,IAAI,EACJ,WAAW,EACX,IAAI,EACJ,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,IAAI,GAcL;QACC,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEpC,sBAAsB;QACtB,IAAI,MAAM,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YAC9B,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,EAAE,oEAAoE,CAAC,CAAC;YAEvG,MAAM,GAAG;gBACP,EAAE;gBACF,WAAW;gBACX,IAAI;gBACJ,IAAI,EAAE,IAAI,IAAI,EAAE;gBAChB,SAAS;gBACT,cAAc;gBACd,YAAY;gBACZ,WAAW,EAAE,WAAW,IAAI,EAAE;gBAC9B,WAAW,EAAE,kCAAoB,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE;gBACrF,IAAI;gBACJ,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,CAAC;aACf,CAAC;YACF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAE/B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC7C,CAAC;QAED,qBAAqB;QACrB,IAAI,MAAM,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC9C,CAAC;QAED,2BAA2B;QAC3B,IAAI,MAAM,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS,IAAI,QAAQ,EAAE,CAAC;YACzD,MAAM,WAAW,GAAG,kCAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;YACpG,MAAM,GAAG;gBACP,GAAG,MAAM;gBACT,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,WAAW,EAAE,WAAW;aACzB,CAAC;YACF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC7C,CAAC;QAED,mCAAmC;QACnC,IAAI,MAAM,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YAC7C,MAAM,IAAI,WAAW,CACnB,0CAA0C,EAAE,+CAA+C,EAC3F,UAAU,CACX,CAAC;QACJ,CAAC;QAED,sBAAsB;QACtB,IAAI,MAAM,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YAC7C,MAAM,IAAI,WAAW,CAAC,0CAA0C,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;QAChG,CAAC;QAED,kBAAkB;QAClB,IAAI,MAAM,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YAC7C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC7C,CAAC;QAED,iBAAiB;QACjB,MAAM,IAAI,WAAW,CAAC,sBAAsB,EAAE,0CAA0C,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;IAC7G,CAAC;CACF;AA5rCD,wBA4rCC;AAED,SAAS,SAAS,CAAC,IAAwB,EAAE,KAAyB;IACpE,OAAO,IAAI,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,KAAK,KAAK,CAAC;AACrE,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../dev/server.ts"],"names":[],"mappings":"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"}
@@ -33,12 +33,13 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- const server_1 = require("./src/server");
37
- const simulator_1 = require("./src/simulator");
38
- const worker_1 = require("./src/worker");
39
36
  const clock_1 = require("../src/clock");
37
+ const encoder_1 = require("../src/encoder");
40
38
  const registry_1 = require("../src/registry");
41
39
  const util = __importStar(require("../src/util"));
40
+ const server_1 = require("./src/server");
41
+ const simulator_1 = require("./src/simulator");
42
+ const worker_1 = require("./src/worker");
42
43
  // Define a resonate function
43
44
  function* fibonacci(ctx, n) {
44
45
  if (n <= 1) {
@@ -51,6 +52,7 @@ function* fibonacci(ctx, n) {
51
52
  const options = { seed: 0, steps: 1000, randomDelay: 0, dropProb: 0, duplProb: 0, charFlipProb: 0 };
52
53
  const rnd = new simulator_1.Random(options.seed);
53
54
  const clock = new clock_1.StepClock();
55
+ const encoder = new encoder_1.JsonEncoder();
54
56
  const registry = new registry_1.Registry();
55
57
  registry.add(fibonacci);
56
58
  const sim = new simulator_1.Simulator(rnd, {
@@ -59,9 +61,9 @@ const sim = new simulator_1.Simulator(rnd, {
59
61
  duplProb: options.duplProb,
60
62
  });
61
63
  const server = new server_1.ServerProcess(clock, "server");
62
- const worker1 = new worker_1.WorkerProcess(rnd, clock, registry, { charFlipProb: options.charFlipProb ?? rnd.random(0.05) }, "worker-1", "default");
63
- const worker2 = new worker_1.WorkerProcess(rnd, clock, registry, { charFlipProb: options.charFlipProb ?? rnd.random(0.05) }, "worker-2", "default");
64
- const worker3 = new worker_1.WorkerProcess(rnd, clock, registry, { charFlipProb: options.charFlipProb ?? rnd.random(0.05) }, "worker-3", "default");
64
+ const worker1 = new worker_1.WorkerProcess(rnd, clock, encoder, registry, { charFlipProb: options.charFlipProb ?? rnd.random(0.05) }, "worker-1", "default");
65
+ const worker2 = new worker_1.WorkerProcess(rnd, clock, encoder, registry, { charFlipProb: options.charFlipProb ?? rnd.random(0.05) }, "worker-2", "default");
66
+ const worker3 = new worker_1.WorkerProcess(rnd, clock, encoder, registry, { charFlipProb: options.charFlipProb ?? rnd.random(0.05) }, "worker-3", "default");
65
67
  const workers = [worker1, worker2, worker3];
66
68
  sim.register(server);
67
69
  for (const worker of workers) {
@@ -76,7 +78,7 @@ sim.delay(0, () => {
76
78
  timeout: 10000000000,
77
79
  iKey: id,
78
80
  tags: { "resonate:invoke": "local://any@default" },
79
- param: { func: "fibonacci", args: [n], version: 1 },
81
+ param: encoder.encode({ func: "fibonacci", args: [n], version: 1 }),
80
82
  }, { requ: true, correlationId: 1 });
81
83
  sim.send(msg);
82
84
  });
@@ -1 +1 @@
1
- {"version":3,"file":"example-1.js","sourceRoot":"","sources":["../../sim/example-1.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"example-1.js","sourceRoot":"","sources":["../../sim/example-1.ts"],"names":[],"mappings":"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"}