@effect/cluster 0.37.1 → 0.38.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 (142) hide show
  1. package/ClusterCron/package.json +6 -0
  2. package/dist/cjs/ClusterCron.js +86 -0
  3. package/dist/cjs/ClusterCron.js.map +1 -0
  4. package/dist/cjs/ClusterSchema.js +9 -1
  5. package/dist/cjs/ClusterSchema.js.map +1 -1
  6. package/dist/cjs/ClusterWorkflowEngine.js +99 -78
  7. package/dist/cjs/ClusterWorkflowEngine.js.map +1 -1
  8. package/dist/cjs/Entity.js +6 -1
  9. package/dist/cjs/Entity.js.map +1 -1
  10. package/dist/cjs/EntityAddress.js +8 -1
  11. package/dist/cjs/EntityAddress.js.map +1 -1
  12. package/dist/cjs/MessageStorage.js +6 -4
  13. package/dist/cjs/MessageStorage.js.map +1 -1
  14. package/dist/cjs/Runner.js +15 -0
  15. package/dist/cjs/Runner.js.map +1 -1
  16. package/dist/cjs/RunnerAddress.js +8 -1
  17. package/dist/cjs/RunnerAddress.js.map +1 -1
  18. package/dist/cjs/Runners.js +5 -0
  19. package/dist/cjs/Runners.js.map +1 -1
  20. package/dist/cjs/ShardId.js +75 -7
  21. package/dist/cjs/ShardId.js.map +1 -1
  22. package/dist/cjs/ShardManager.js +63 -43
  23. package/dist/cjs/ShardManager.js.map +1 -1
  24. package/dist/cjs/ShardStorage.js +45 -36
  25. package/dist/cjs/ShardStorage.js.map +1 -1
  26. package/dist/cjs/Sharding.js +45 -37
  27. package/dist/cjs/Sharding.js.map +1 -1
  28. package/dist/cjs/ShardingConfig.js +9 -2
  29. package/dist/cjs/ShardingConfig.js.map +1 -1
  30. package/dist/cjs/Singleton.js +2 -2
  31. package/dist/cjs/Singleton.js.map +1 -1
  32. package/dist/cjs/SingletonAddress.js +2 -2
  33. package/dist/cjs/SingletonAddress.js.map +1 -1
  34. package/dist/cjs/SqlMessageStorage.js +32 -27
  35. package/dist/cjs/SqlMessageStorage.js.map +1 -1
  36. package/dist/cjs/SqlShardStorage.js +14 -14
  37. package/dist/cjs/SqlShardStorage.js.map +1 -1
  38. package/dist/cjs/index.js +3 -1
  39. package/dist/cjs/internal/entityManager.js +2 -1
  40. package/dist/cjs/internal/entityManager.js.map +1 -1
  41. package/dist/cjs/internal/shardManager.js +138 -37
  42. package/dist/cjs/internal/shardManager.js.map +1 -1
  43. package/dist/dts/ClusterCron.d.ts +37 -0
  44. package/dist/dts/ClusterCron.d.ts.map +1 -0
  45. package/dist/dts/ClusterSchema.d.ts +8 -0
  46. package/dist/dts/ClusterSchema.d.ts.map +1 -1
  47. package/dist/dts/ClusterWorkflowEngine.d.ts +4 -4
  48. package/dist/dts/ClusterWorkflowEngine.d.ts.map +1 -1
  49. package/dist/dts/Entity.d.ts +10 -0
  50. package/dist/dts/Entity.d.ts.map +1 -1
  51. package/dist/dts/EntityAddress.d.ts +9 -3
  52. package/dist/dts/EntityAddress.d.ts.map +1 -1
  53. package/dist/dts/MessageStorage.d.ts +3 -3
  54. package/dist/dts/MessageStorage.d.ts.map +1 -1
  55. package/dist/dts/Runner.d.ts +15 -0
  56. package/dist/dts/Runner.d.ts.map +1 -1
  57. package/dist/dts/RunnerAddress.d.ts +5 -0
  58. package/dist/dts/RunnerAddress.d.ts.map +1 -1
  59. package/dist/dts/Runners.d.ts.map +1 -1
  60. package/dist/dts/ShardId.d.ts +60 -6
  61. package/dist/dts/ShardId.d.ts.map +1 -1
  62. package/dist/dts/ShardManager.d.ts +13 -13
  63. package/dist/dts/ShardManager.d.ts.map +1 -1
  64. package/dist/dts/ShardStorage.d.ts +11 -14
  65. package/dist/dts/ShardStorage.d.ts.map +1 -1
  66. package/dist/dts/Sharding.d.ts +4 -2
  67. package/dist/dts/Sharding.d.ts.map +1 -1
  68. package/dist/dts/ShardingConfig.d.ts +32 -6
  69. package/dist/dts/ShardingConfig.d.ts.map +1 -1
  70. package/dist/dts/Singleton.d.ts +3 -1
  71. package/dist/dts/Singleton.d.ts.map +1 -1
  72. package/dist/dts/SingletonAddress.d.ts +4 -3
  73. package/dist/dts/SingletonAddress.d.ts.map +1 -1
  74. package/dist/dts/SqlMessageStorage.d.ts +3 -2
  75. package/dist/dts/SqlMessageStorage.d.ts.map +1 -1
  76. package/dist/dts/SqlShardStorage.d.ts +1 -1
  77. package/dist/dts/index.d.ts +4 -0
  78. package/dist/dts/index.d.ts.map +1 -1
  79. package/dist/esm/ClusterCron.js +77 -0
  80. package/dist/esm/ClusterCron.js.map +1 -0
  81. package/dist/esm/ClusterSchema.js +7 -0
  82. package/dist/esm/ClusterSchema.js.map +1 -1
  83. package/dist/esm/ClusterWorkflowEngine.js +99 -78
  84. package/dist/esm/ClusterWorkflowEngine.js.map +1 -1
  85. package/dist/esm/Entity.js +6 -1
  86. package/dist/esm/Entity.js.map +1 -1
  87. package/dist/esm/EntityAddress.js +8 -1
  88. package/dist/esm/EntityAddress.js.map +1 -1
  89. package/dist/esm/MessageStorage.js +6 -4
  90. package/dist/esm/MessageStorage.js.map +1 -1
  91. package/dist/esm/Runner.js +15 -0
  92. package/dist/esm/Runner.js.map +1 -1
  93. package/dist/esm/RunnerAddress.js +8 -1
  94. package/dist/esm/RunnerAddress.js.map +1 -1
  95. package/dist/esm/Runners.js +5 -0
  96. package/dist/esm/Runners.js.map +1 -1
  97. package/dist/esm/ShardId.js +73 -6
  98. package/dist/esm/ShardId.js.map +1 -1
  99. package/dist/esm/ShardManager.js +64 -45
  100. package/dist/esm/ShardManager.js.map +1 -1
  101. package/dist/esm/ShardStorage.js +44 -36
  102. package/dist/esm/ShardStorage.js.map +1 -1
  103. package/dist/esm/Sharding.js +45 -37
  104. package/dist/esm/Sharding.js.map +1 -1
  105. package/dist/esm/ShardingConfig.js +9 -2
  106. package/dist/esm/ShardingConfig.js.map +1 -1
  107. package/dist/esm/Singleton.js +2 -2
  108. package/dist/esm/Singleton.js.map +1 -1
  109. package/dist/esm/SingletonAddress.js +2 -2
  110. package/dist/esm/SingletonAddress.js.map +1 -1
  111. package/dist/esm/SqlMessageStorage.js +32 -27
  112. package/dist/esm/SqlMessageStorage.js.map +1 -1
  113. package/dist/esm/SqlShardStorage.js +14 -14
  114. package/dist/esm/SqlShardStorage.js.map +1 -1
  115. package/dist/esm/index.js +4 -0
  116. package/dist/esm/index.js.map +1 -1
  117. package/dist/esm/internal/entityManager.js +2 -1
  118. package/dist/esm/internal/entityManager.js.map +1 -1
  119. package/dist/esm/internal/shardManager.js +136 -36
  120. package/dist/esm/internal/shardManager.js.map +1 -1
  121. package/package.json +13 -5
  122. package/src/ClusterCron.ts +129 -0
  123. package/src/ClusterSchema.ts +9 -0
  124. package/src/ClusterWorkflowEngine.ts +93 -58
  125. package/src/Entity.ts +20 -1
  126. package/src/EntityAddress.ts +11 -1
  127. package/src/MessageStorage.ts +12 -7
  128. package/src/Runner.ts +18 -0
  129. package/src/RunnerAddress.ts +9 -1
  130. package/src/Runners.ts +5 -0
  131. package/src/ShardId.ts +81 -11
  132. package/src/ShardManager.ts +74 -45
  133. package/src/ShardStorage.ts +51 -47
  134. package/src/Sharding.ts +45 -39
  135. package/src/ShardingConfig.ts +36 -7
  136. package/src/Singleton.ts +5 -2
  137. package/src/SingletonAddress.ts +2 -2
  138. package/src/SqlMessageStorage.ts +36 -30
  139. package/src/SqlShardStorage.ts +15 -15
  140. package/src/index.ts +5 -0
  141. package/src/internal/entityManager.ts +2 -1
  142. package/src/internal/shardManager.ts +158 -52
@@ -30,13 +30,13 @@ import * as Schedule from "effect/Schedule";
30
30
  import * as Schema from "effect/Schema";
31
31
  import { RunnerNotRegistered } from "./ClusterError.js";
32
32
  import * as ClusterMetrics from "./ClusterMetrics.js";
33
- import { decideAssignmentsForUnassignedShards, decideAssignmentsForUnbalancedShards, RunnerWithMetadata, State } from "./internal/shardManager.js";
33
+ import { addAllNested, decideAssignmentsForUnassignedShards, decideAssignmentsForUnbalancedShards, State } from "./internal/shardManager.js";
34
34
  import * as MachineId from "./MachineId.js";
35
35
  import { Runner } from "./Runner.js";
36
36
  import { RunnerAddress } from "./RunnerAddress.js";
37
37
  import { RunnerHealth } from "./RunnerHealth.js";
38
38
  import { RpcClientProtocol, Runners } from "./Runners.js";
39
- import { ShardId } from "./ShardId.js";
39
+ import { make as makeShardId, ShardId } from "./ShardId.js";
40
40
  import { ShardingConfig } from "./ShardingConfig.js";
41
41
  import { ShardStorage } from "./ShardStorage.js";
42
42
  /**
@@ -94,7 +94,10 @@ export const layerConfig = config => Layer.succeed(Config, {
94
94
  * @since 1.0.0
95
95
  * @category Config
96
96
  */
97
- export const layerConfigFromEnv = /*#__PURE__*/Layer.effect(Config, configFromEnv);
97
+ export const layerConfigFromEnv = config => Layer.effect(Config, config ? Effect.map(configFromEnv, env => ({
98
+ ...env,
99
+ ...config
100
+ })) : configFromEnv);
98
101
  /**
99
102
  * Represents a client which can be used to communicate with the
100
103
  * `ShardManager`.
@@ -138,10 +141,7 @@ export class Rpcs extends /*#__PURE__*/RpcGroup.make(/*#__PURE__*/Rpc.make("Regi
138
141
  address: RunnerAddress
139
142
  }
140
143
  }), /*#__PURE__*/Rpc.make("GetAssignments", {
141
- success: /*#__PURE__*/Schema.ReadonlyMap({
142
- key: ShardId,
143
- value: /*#__PURE__*/Schema.Option(RunnerAddress)
144
- })
144
+ success: /*#__PURE__*/Schema.Array(/*#__PURE__*/Schema.Tuple(ShardId, /*#__PURE__*/Schema.Option(RunnerAddress)))
145
145
  }), /*#__PURE__*/Rpc.make("ShardingEvents", {
146
146
  success: ShardingEventSchema,
147
147
  stream: true
@@ -158,15 +158,22 @@ export const ShardingEvent = /*#__PURE__*/Data.taggedEnum();
158
158
  * @category Client
159
159
  */
160
160
  export const makeClientLocal = /*#__PURE__*/Effect.gen(function* () {
161
- const runnerAddress = yield* ShardingConfig;
161
+ const config = yield* ShardingConfig;
162
162
  const clock = yield* Effect.clock;
163
- const shards = new Map();
164
- for (let n = 1; n <= runnerAddress.numberOfShards; n++) {
165
- shards.set(ShardId.make(n), runnerAddress.runnerAddress);
166
- }
163
+ const groups = new Set();
164
+ const shards = MutableHashMap.empty();
167
165
  let machineId = 0;
168
166
  return ShardManagerClient.of({
169
- register: () => Effect.sync(() => MachineId.make(++machineId)),
167
+ register: (_, groupsToAdd) => Effect.sync(() => {
168
+ for (const group of groupsToAdd) {
169
+ if (groups.has(group)) continue;
170
+ groups.add(group);
171
+ for (let n = 1; n <= config.shardsPerGroup; n++) {
172
+ MutableHashMap.set(shards, makeShardId(group, n), config.runnerAddress);
173
+ }
174
+ }
175
+ return MachineId.make(++machineId);
176
+ }),
170
177
  unregister: () => Effect.void,
171
178
  notifyUnhealthyRunner: () => Effect.void,
172
179
  getAssignments: Effect.succeed(shards),
@@ -189,10 +196,11 @@ export const makeClientRpc = /*#__PURE__*/Effect.gen(function* () {
189
196
  disableTracing: true
190
197
  });
191
198
  return ShardManagerClient.of({
192
- register: address => client.Register({
199
+ register: (address, groups) => client.Register({
193
200
  runner: Runner.make({
194
201
  address,
195
- version: config.serverVersion
202
+ version: config.serverVersion,
203
+ groups
196
204
  })
197
205
  }),
198
206
  unregister: address => client.Unregister({
@@ -233,11 +241,11 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
233
241
  const clock = yield* Effect.clock;
234
242
  const config = yield* Config;
235
243
  const shardingConfig = yield* ShardingConfig;
236
- const state = yield* Effect.orDie(State.fromStorage(shardingConfig.numberOfShards));
244
+ const state = yield* Effect.orDie(State.fromStorage(shardingConfig.shardsPerGroup));
237
245
  const scope = yield* Effect.scope;
238
246
  const events = yield* PubSub.unbounded();
239
- yield* Metric.incrementBy(ClusterMetrics.runners, MutableHashMap.size(state.runners));
240
- for (const address of state.shards.values()) {
247
+ yield* Metric.incrementBy(ClusterMetrics.runners, MutableHashMap.size(state.allRunners));
248
+ for (const [, address] of state.assignments) {
241
249
  const metric = Option.isSome(address) ? Metric.tagged(ClusterMetrics.assignedShards, "address", address.toString()) : ClusterMetrics.unassignedShards;
242
250
  yield* Metric.increment(metric);
243
251
  }
@@ -247,10 +255,10 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
247
255
  times: config.persistRetryCount
248
256
  }), Effect.ignore);
249
257
  }
250
- const persistRunners = Effect.unsafeMakeSemaphore(1).withPermits(1)(withRetry(Effect.suspend(() => storage.saveRunners(Iterable.map(state.runners, ([address, runner]) => [address, runner.runner])))));
251
- const persistAssignments = Effect.unsafeMakeSemaphore(1).withPermits(1)(withRetry(Effect.suspend(() => storage.saveAssignments(state.shards))));
258
+ const persistRunners = Effect.unsafeMakeSemaphore(1).withPermits(1)(withRetry(Effect.suspend(() => storage.saveRunners(Iterable.map(state.allRunners, ([address, runner]) => [address, runner.runner])))));
259
+ const persistAssignments = Effect.unsafeMakeSemaphore(1).withPermits(1)(withRetry(Effect.suspend(() => storage.saveAssignments(state.assignments))));
252
260
  const notifyUnhealthyRunner = Effect.fnUntraced(function* (address) {
253
- if (!MutableHashMap.has(state.runners, address)) return;
261
+ if (!MutableHashMap.has(state.allRunners, address)) return;
254
262
  yield* Metric.increment(Metric.tagged(ClusterMetrics.runnerHealthChecked, "runner_address", address.toString()));
255
263
  if (!(yield* runnerHealthApi.isAlive(address))) {
256
264
  yield* Effect.logWarning(`Runner at address '${address.toString()}' is not alive`);
@@ -259,48 +267,41 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
259
267
  });
260
268
  function updateShardsState(shards, address) {
261
269
  return Effect.suspend(() => {
262
- if (Option.isSome(address) && !MutableHashMap.has(state.runners, address.value)) {
270
+ if (Option.isSome(address) && !MutableHashMap.has(state.allRunners, address.value)) {
263
271
  return Effect.fail(new RunnerNotRegistered({
264
272
  address: address.value
265
273
  }));
266
274
  }
267
- for (const shardId of shards) {
268
- if (!state.shards.has(shardId)) continue;
269
- state.shards.set(shardId, address);
270
- }
275
+ state.addAssignments(shards, address);
271
276
  return Effect.void;
272
277
  });
273
278
  }
274
- const getAssignments = Effect.sync(() => state.shards);
279
+ const getAssignments = Effect.sync(() => state.assignments);
275
280
  let machineId = 0;
276
281
  const register = Effect.fnUntraced(function* (runner) {
277
282
  yield* Effect.logInfo(`Registering runner ${Runner.pretty(runner)}`);
278
- const now = clock.unsafeCurrentTimeMillis();
279
- MutableHashMap.set(state.runners, runner.address, RunnerWithMetadata({
280
- runner,
281
- registeredAt: now
282
- }));
283
+ state.addRunner(runner, clock.unsafeCurrentTimeMillis());
283
284
  yield* Metric.increment(ClusterMetrics.runners);
284
285
  yield* PubSub.publish(events, ShardingEvent.RunnerRegistered({
285
286
  address: runner.address
286
287
  }));
287
- if (state.unassignedShards.length > 0) {
288
+ if (state.allUnassignedShards.length > 0) {
288
289
  yield* rebalance(false);
289
290
  }
290
291
  yield* Effect.forkIn(persistRunners, scope);
291
292
  return MachineId.make(++machineId);
292
293
  });
293
294
  const unregister = Effect.fnUntraced(function* (address) {
294
- if (!MutableHashMap.has(state.runners, address)) return;
295
+ if (!MutableHashMap.has(state.allRunners, address)) return;
295
296
  yield* Effect.logInfo("Unregistering runner at address:", address);
296
297
  const unassignments = Arr.empty();
297
- for (const [shard, runner] of state.shards) {
298
+ for (const [shard, runner] of state.assignments) {
298
299
  if (Option.isSome(runner) && Equal.equals(runner.value, address)) {
299
300
  unassignments.push(shard);
300
- state.shards.set(shard, Option.none());
301
301
  }
302
302
  }
303
- MutableHashMap.remove(state.runners, address);
303
+ state.addAssignments(unassignments, Option.none());
304
+ state.removeRunner(address);
304
305
  yield* Metric.incrementBy(ClusterMetrics.runners, -1);
305
306
  if (unassignments.length > 0) {
306
307
  yield* Metric.incrementBy(Metric.tagged(ClusterMetrics.unassignedShards, "runner_address", address.toString()), unassignments.length);
@@ -346,8 +347,26 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
346
347
  const runRebalance = Effect.fn("ShardManager.rebalance")(function* (immediate) {
347
348
  yield* Effect.annotateCurrentSpan("immmediate", immediate);
348
349
  yield* Effect.sleep(config.rebalanceDebounce);
350
+ if (state.shards.size === 0) {
351
+ yield* Effect.logDebug("No shards to rebalance");
352
+ return;
353
+ }
349
354
  // Determine which shards to assign and unassign
350
- const [assignments, unassignments, changes] = immediate || state.unassignedShards.length > 0 ? decideAssignmentsForUnassignedShards(state) : decideAssignmentsForUnbalancedShards(state, config.rebalanceRate);
355
+ const assignments = MutableHashMap.empty();
356
+ const unassignments = MutableHashMap.empty();
357
+ const changes = MutableHashSet.empty();
358
+ for (const group of state.shards.keys()) {
359
+ const [groupAssignments, groupUnassignments, groupChanges] = immediate || state.unassignedShards(group).length > 0 ? decideAssignmentsForUnassignedShards(state, group) : decideAssignmentsForUnbalancedShards(state, group, config.rebalanceRate);
360
+ for (const [address, shards] of groupAssignments) {
361
+ addAllNested(assignments, address, Array.from(shards, id => makeShardId(group, id)));
362
+ }
363
+ for (const [address, shards] of groupUnassignments) {
364
+ addAllNested(unassignments, address, Array.from(shards, id => makeShardId(group, id)));
365
+ }
366
+ for (const address of groupChanges) {
367
+ MutableHashSet.add(changes, address);
368
+ }
369
+ }
351
370
  yield* Effect.logDebug(`Rebalancing shards (immediate = ${immediate})`);
352
371
  if (MutableHashSet.size(changes) === 0) return;
353
372
  yield* Metric.increment(ClusterMetrics.rebalances);
@@ -375,7 +394,7 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
375
394
  return Effect.void;
376
395
  },
377
396
  onSuccess: () => {
378
- const shardCount = shards.size;
397
+ const shardCount = MutableHashSet.size(shards);
379
398
  return Metric.incrementBy(Metric.tagged(ClusterMetrics.assignedShards, "runner_address", address.toString()), -shardCount).pipe(Effect.zipRight(Metric.incrementBy(ClusterMetrics.unassignedShards, shardCount)), Effect.zipRight(PubSub.publish(events, ShardingEvent.ShardsUnassigned({
380
399
  address,
381
400
  shards: Array.from(shards)
@@ -387,9 +406,9 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
387
406
  // Remove failed shard unassignments from the assignments
388
407
  MutableHashMap.forEach(assignments, (shards, address) => {
389
408
  for (const shard of failedUnassignments) {
390
- shards.delete(shard);
409
+ MutableHashSet.remove(shards, shard);
391
410
  }
392
- if (shards.size === 0) {
411
+ if (MutableHashSet.size(shards) === 0) {
393
412
  MutableHashMap.remove(assignments, address);
394
413
  }
395
414
  });
@@ -401,7 +420,7 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
401
420
  return Effect.void;
402
421
  },
403
422
  onSuccess: () => {
404
- const shardCount = shards.size;
423
+ const shardCount = MutableHashSet.size(shards);
405
424
  return Metric.incrementBy(Metric.tagged(ClusterMetrics.assignedShards, "runner_address", address.toString()), -shardCount).pipe(Effect.zipRight(Metric.incrementBy(ClusterMetrics.unassignedShards, -shardCount)), Effect.zipRight(PubSub.publish(events, ShardingEvent.ShardsAssigned({
406
425
  address,
407
426
  shards: Array.from(shards)
@@ -424,14 +443,14 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
424
443
  }
425
444
  yield* persistAssignments;
426
445
  });
427
- const checkRunnerHealth = Effect.suspend(() => Effect.forEach(MutableHashMap.keys(state.runners), notifyUnhealthyRunner, {
446
+ const checkRunnerHealth = Effect.suspend(() => Effect.forEach(MutableHashMap.keys(state.allRunners), notifyUnhealthyRunner, {
428
447
  concurrency: 10,
429
448
  discard: true
430
449
  }));
431
450
  yield* Effect.addFinalizer(() => persistAssignments.pipe(Effect.catchAllCause(cause => Effect.logWarning("Failed to persist assignments on shutdown", cause)), Effect.zipRight(persistRunners.pipe(Effect.catchAllCause(cause => Effect.logWarning("Failed to persist runners on shutdown", cause))))));
432
451
  yield* Effect.forkIn(persistRunners, scope);
433
452
  // Rebalance immediately if there are unassigned shards
434
- yield* Effect.forkIn(rebalance(state.unassignedShards.length > 0), scope);
453
+ yield* Effect.forkIn(rebalance(state.allUnassignedShards.length > 0), scope);
435
454
  // Start a regular cluster rebalance at the configured interval
436
455
  yield* rebalance(false).pipe(Effect.andThen(Effect.sleep(config.rebalanceInterval)), Effect.forever, Effect.forkIn(scope));
437
456
  yield* checkRunnerHealth.pipe(Effect.andThen(Effect.sleep(config.runnerHealthCheckInterval)), Effect.forever, Effect.forkIn(scope));
@@ -474,7 +493,7 @@ export const layerServerHandlers = /*#__PURE__*/Rpcs.toLayer(/*#__PURE__*/Effect
474
493
  NotifyUnhealthyRunner: ({
475
494
  address
476
495
  }) => shardManager.notifyUnhealthyRunner(address),
477
- GetAssignments: () => shardManager.getAssignments,
496
+ GetAssignments: () => Effect.map(shardManager.getAssignments, assignments => Array.from(assignments)),
478
497
  ShardingEvents: Effect.fnUntraced(function* () {
479
498
  const queue = yield* shardManager.shardingEvents;
480
499
  const mailbox = yield* Mailbox.make();
@@ -1 +1 @@
1
- {"version":3,"file":"ShardManager.js","names":["Rpc","RpcClient","RpcGroup","RpcServer","Arr","Clock","Config_","ConfigProvider","Context","Data","Deferred","Duration","Effect","Equal","FiberSet","identity","Iterable","Layer","Mailbox","Metric","MutableHashMap","MutableHashSet","Option","PubSub","Queue","Schedule","Schema","RunnerNotRegistered","ClusterMetrics","decideAssignmentsForUnassignedShards","decideAssignmentsForUnbalancedShards","RunnerWithMetadata","State","MachineId","Runner","RunnerAddress","RunnerHealth","RpcClientProtocol","Runners","ShardId","ShardingConfig","ShardStorage","ShardManager","Tag","Config","defaults","rebalanceDebounce","millis","rebalanceInterval","seconds","rebalanceRetryInterval","rebalanceRate","persistRetryCount","persistRetryInterval","runnerHealthCheckInterval","minutes","runnerPingTimeout","configConfig","all","duration","pipe","withDefault","withDescription","number","integer","configFromEnv","withConfigProvider","fromEnv","constantCase","layerConfig","config","succeed","layerConfigFromEnv","effect","ShardManagerClient","ShardingEventSchema","Union","TaggedStruct","address","shards","Array","Rpcs","make","payload","runner","success","ReadonlyMap","key","value","stream","Number","ShardingEvent","taggedEnum","makeClientLocal","gen","runnerAddress","clock","Map","n","numberOfShards","set","machineId","of","register","sync","unregister","void","notifyUnhealthyRunner","getAssignments","shardingEvents","mailbox","offer","StreamStarted","getTime","currentTimeMillis","makeClientRpc","client","spanPrefix","disableTracing","Register","version","serverVersion","Unregister","NotifyUnhealthyRunner","GetAssignments","ShardingEvents","asMailbox","GetTime","layerClientLocal","layerClientRpc","scoped","provide","Protocol","clientProtocol","shardManagerAddress","storage","runnersApi","runnerHealthApi","shardingConfig","state","orDie","fromStorage","scope","events","unbounded","incrementBy","runners","size","values","metric","isSome","tagged","assignedShards","toString","unassignedShards","increment","withRetry","retry","schedule","spaced","times","ignore","persistRunners","unsafeMakeSemaphore","withPermits","suspend","saveRunners","map","persistAssignments","saveAssignments","fnUntraced","has","runnerHealthChecked","isAlive","logWarning","updateShardsState","fail","shardId","logInfo","pretty","now","unsafeCurrentTimeMillis","registeredAt","publish","RunnerRegistered","length","rebalance","forkIn","unassignments","empty","shard","equals","push","none","remove","RunnerUnregistered","rebalancing","nextRebalanceImmediate","rebalanceDeferred","rebalanceFibers","immmediate","withFiberRuntime","fiber","rebalanceLoop","unsafeMake","id","await","immediate","deferred","undefined","runRebalance","intoDeferred","onExit","fn","annotateCurrentSpan","sleep","assignments","changes","logDebug","rebalances","failedRunners","run","ping","timeout","catchAll","add","awaitEmpty","failedUnassignments","Set","matchEffect","onFailure","onSuccess","shardCount","zipRight","ShardsUnassigned","from","forEach","delete","some","ShardsAssigned","wereFailures","discard","checkRunnerHealth","keys","concurrency","addFinalizer","catchAllCause","cause","andThen","forever","queue","subscribe","take","layer","layerServerHandlers","toLayer","shardManager","takeBetween","MAX_SAFE_INTEGER","flatMap","offerAll","forkScoped","layerServer"],"sources":["../../src/ShardManager.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ShardManager.js","names":["Rpc","RpcClient","RpcGroup","RpcServer","Arr","Clock","Config_","ConfigProvider","Context","Data","Deferred","Duration","Effect","Equal","FiberSet","identity","Iterable","Layer","Mailbox","Metric","MutableHashMap","MutableHashSet","Option","PubSub","Queue","Schedule","Schema","RunnerNotRegistered","ClusterMetrics","addAllNested","decideAssignmentsForUnassignedShards","decideAssignmentsForUnbalancedShards","State","MachineId","Runner","RunnerAddress","RunnerHealth","RpcClientProtocol","Runners","make","makeShardId","ShardId","ShardingConfig","ShardStorage","ShardManager","Tag","Config","defaults","rebalanceDebounce","millis","rebalanceInterval","seconds","rebalanceRetryInterval","rebalanceRate","persistRetryCount","persistRetryInterval","runnerHealthCheckInterval","minutes","runnerPingTimeout","configConfig","all","duration","pipe","withDefault","withDescription","number","integer","configFromEnv","withConfigProvider","fromEnv","constantCase","layerConfig","config","succeed","layerConfigFromEnv","effect","map","env","ShardManagerClient","ShardingEventSchema","Union","TaggedStruct","address","shards","Array","Rpcs","payload","runner","success","Tuple","stream","Number","ShardingEvent","taggedEnum","makeClientLocal","gen","clock","groups","Set","empty","machineId","of","register","_","groupsToAdd","sync","group","has","add","n","shardsPerGroup","set","runnerAddress","unregister","void","notifyUnhealthyRunner","getAssignments","shardingEvents","mailbox","offer","StreamStarted","getTime","currentTimeMillis","makeClientRpc","client","spanPrefix","disableTracing","Register","version","serverVersion","Unregister","NotifyUnhealthyRunner","GetAssignments","ShardingEvents","asMailbox","GetTime","layerClientLocal","layerClientRpc","scoped","provide","Protocol","clientProtocol","shardManagerAddress","storage","runnersApi","runnerHealthApi","shardingConfig","state","orDie","fromStorage","scope","events","unbounded","incrementBy","runners","size","allRunners","assignments","metric","isSome","tagged","assignedShards","toString","unassignedShards","increment","withRetry","retry","schedule","spaced","times","ignore","persistRunners","unsafeMakeSemaphore","withPermits","suspend","saveRunners","persistAssignments","saveAssignments","fnUntraced","runnerHealthChecked","isAlive","logWarning","updateShardsState","value","fail","addAssignments","logInfo","pretty","addRunner","unsafeCurrentTimeMillis","publish","RunnerRegistered","allUnassignedShards","length","rebalance","forkIn","unassignments","shard","equals","push","none","removeRunner","RunnerUnregistered","rebalancing","nextRebalanceImmediate","rebalanceDeferred","rebalanceFibers","immmediate","withFiberRuntime","fiber","rebalanceLoop","unsafeMake","id","await","immediate","deferred","undefined","runRebalance","intoDeferred","onExit","fn","annotateCurrentSpan","sleep","logDebug","changes","keys","groupAssignments","groupUnassignments","groupChanges","from","rebalances","failedRunners","run","ping","timeout","catchAll","remove","awaitEmpty","failedUnassignments","matchEffect","onFailure","onSuccess","shardCount","zipRight","ShardsUnassigned","forEach","some","ShardsAssigned","wereFailures","discard","checkRunnerHealth","concurrency","addFinalizer","catchAllCause","cause","andThen","forever","queue","subscribe","take","layer","layerServerHandlers","toLayer","shardManager","takeBetween","MAX_SAFE_INTEGER","flatMap","offerAll","forkScoped","layerServer"],"sources":["../../src/ShardManager.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
+ import * as Arr from "effect/Array";
4
5
  import * as Context from "effect/Context";
5
6
  import * as Effect from "effect/Effect";
6
7
  import * as Layer from "effect/Layer";
@@ -21,38 +22,45 @@ export class ShardStorage extends /*#__PURE__*/Context.Tag("@effect/cluster/Shar
21
22
  * @since 1.0.0
22
23
  * @category layers
23
24
  */
24
- export const makeEncoded = /*#__PURE__*/Effect.fnUntraced(function* (encoded) {
25
- const activeShards = new Set();
26
- return ShardStorage.of({
27
- getAssignments: Effect.map(encoded.getAssignments, assignments => {
28
- const map = new Map();
29
- for (const [shardId, runnerAddress] of assignments) {
30
- map.set(ShardId.make(shardId), runnerAddress === null ? Option.none() : Option.some(decodeRunnerAddress(runnerAddress)));
31
- }
32
- return map;
33
- }),
34
- saveAssignments: assignments => encoded.saveAssignments(Array.from(assignments, ([shardId, runnerAddress]) => [shardId, Option.isNone(runnerAddress) ? null : encodeRunnerAddress(runnerAddress.value)])),
35
- getRunners: Effect.gen(function* () {
36
- const runners = yield* encoded.getRunners;
37
- const results = new Array(runners.length);
38
- for (let i = 0; i < runners.length; i++) {
39
- const [address, runner] = runners[i];
40
- results[i] = [decodeRunnerAddress(address), Runner.decodeSync(runner)];
41
- }
42
- return results;
43
- }),
44
- saveRunners: runners => Effect.suspend(() => encoded.saveRunners(Array.from(runners, ([address, runner]) => [encodeRunnerAddress(address), Runner.encodeSync(runner)]))),
45
- acquire: (address, shardIds) => encoded.acquire(encodeRunnerAddress(address), Array.from(shardIds)),
46
- refresh: (address, shardIds) => encoded.refresh(encodeRunnerAddress(address), Array.from(shardIds)),
47
- release: Effect.fnUntraced(function* (address, shardId) {
48
- activeShards.delete(shardId);
49
- yield* encoded.release(encodeRunnerAddress(address), shardId).pipe(Effect.onError(() => Effect.sync(() => activeShards.add(shardId))));
50
- }),
51
- releaseAll: Effect.fnUntraced(function* (address) {
52
- activeShards.clear();
53
- yield* encoded.releaseAll(encodeRunnerAddress(address));
54
- })
55
- });
25
+ export const makeEncoded = encoded => ShardStorage.of({
26
+ getAssignments: Effect.map(encoded.getAssignments, assignments => {
27
+ const arr = Arr.empty();
28
+ for (const [shardId, runnerAddress] of assignments) {
29
+ arr.push([ShardId.fromString(shardId), runnerAddress === null ? Option.none() : Option.some(decodeRunnerAddress(runnerAddress))]);
30
+ }
31
+ return arr;
32
+ }),
33
+ saveAssignments: assignments => {
34
+ const arr = Arr.empty();
35
+ for (const [shardId, runnerAddress] of assignments) {
36
+ arr.push([shardId.toString(), Option.isNone(runnerAddress) ? null : encodeRunnerAddress(runnerAddress.value)]);
37
+ }
38
+ return encoded.saveAssignments(arr);
39
+ },
40
+ getRunners: Effect.gen(function* () {
41
+ const runners = yield* encoded.getRunners;
42
+ const results = new Array(runners.length);
43
+ for (let i = 0; i < runners.length; i++) {
44
+ const [address, runner] = runners[i];
45
+ results[i] = [decodeRunnerAddress(address), Runner.decodeSync(runner)];
46
+ }
47
+ return results;
48
+ }),
49
+ saveRunners: runners => Effect.suspend(() => encoded.saveRunners(Array.from(runners, ([address, runner]) => [encodeRunnerAddress(address), Runner.encodeSync(runner)]))),
50
+ acquire: (address, shardIds) => {
51
+ const arr = Array.from(shardIds, id => id.toString());
52
+ return encoded.acquire(encodeRunnerAddress(address), arr).pipe(Effect.map(shards => shards.map(ShardId.fromString)));
53
+ },
54
+ refresh: (address, shardIds) => {
55
+ const arr = Array.from(shardIds, id => id.toString());
56
+ return encoded.refresh(encodeRunnerAddress(address), arr).pipe(Effect.map(shards => shards.map(ShardId.fromString)));
57
+ },
58
+ release(address, shardId) {
59
+ return encoded.release(encodeRunnerAddress(address), shardId.toString());
60
+ },
61
+ releaseAll(address) {
62
+ return encoded.releaseAll(encodeRunnerAddress(address));
63
+ }
56
64
  });
57
65
  /**
58
66
  * @since 1.0.0
@@ -61,7 +69,7 @@ export const makeEncoded = /*#__PURE__*/Effect.fnUntraced(function* (encoded) {
61
69
  export const layerNoop = /*#__PURE__*/Layer.sync(ShardStorage, () => {
62
70
  let acquired = [];
63
71
  return ShardStorage.of({
64
- getAssignments: Effect.succeed(new Map()),
72
+ getAssignments: Effect.sync(() => []),
65
73
  saveAssignments: () => Effect.void,
66
74
  getRunners: Effect.sync(() => []),
67
75
  saveRunners: () => Effect.void,
@@ -79,12 +87,12 @@ export const layerNoop = /*#__PURE__*/Layer.sync(ShardStorage, () => {
79
87
  * @category constructors
80
88
  */
81
89
  export const makeMemory = /*#__PURE__*/Effect.gen(function* () {
82
- const assignments = new Map();
90
+ const assignments = MutableHashMap.empty();
83
91
  const runners = MutableHashMap.empty();
84
92
  function saveAssignments(value) {
85
93
  return Effect.sync(() => {
86
94
  for (const [shardId, runnerAddress] of value) {
87
- assignments.set(shardId, runnerAddress);
95
+ MutableHashMap.set(assignments, shardId, runnerAddress);
88
96
  }
89
97
  });
90
98
  }
@@ -97,7 +105,7 @@ export const makeMemory = /*#__PURE__*/Effect.gen(function* () {
97
105
  }
98
106
  let acquired = [];
99
107
  return ShardStorage.of({
100
- getAssignments: Effect.sync(() => new Map(assignments)),
108
+ getAssignments: Effect.sync(() => Array.from(assignments)),
101
109
  saveAssignments,
102
110
  getRunners: Effect.sync(() => Array.from(runners)),
103
111
  saveRunners,
@@ -1 +1 @@
1
- {"version":3,"file":"ShardStorage.js","names":["Context","Effect","Layer","MutableHashMap","Option","Runner","RunnerAddress","ShardId","ShardStorage","Tag","makeEncoded","fnUntraced","encoded","activeShards","Set","of","getAssignments","map","assignments","Map","shardId","runnerAddress","set","make","none","some","decodeRunnerAddress","saveAssignments","Array","from","isNone","encodeRunnerAddress","value","getRunners","gen","runners","results","length","i","address","runner","decodeSync","saveRunners","suspend","encodeSync","acquire","shardIds","refresh","release","delete","pipe","onError","sync","add","releaseAll","clear","layerNoop","acquired","succeed","void","_address","shards","makeMemory","empty","layerMemory","effect","host","port","split","Number"],"sources":["../../src/ShardStorage.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ShardStorage.js","names":["Arr","Context","Effect","Layer","MutableHashMap","Option","Runner","RunnerAddress","ShardId","ShardStorage","Tag","makeEncoded","encoded","of","getAssignments","map","assignments","arr","empty","shardId","runnerAddress","push","fromString","none","some","decodeRunnerAddress","saveAssignments","toString","isNone","encodeRunnerAddress","value","getRunners","gen","runners","results","Array","length","i","address","runner","decodeSync","saveRunners","suspend","from","encodeSync","acquire","shardIds","id","pipe","shards","refresh","release","releaseAll","layerNoop","sync","acquired","void","_address","succeed","makeMemory","set","layerMemory","effect","host","port","split","Number"],"sources":["../../src/ShardStorage.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,GAAG,MAAM,cAAc;AACnC,OAAO,KAAKC,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,cAAc,MAAM,uBAAuB;AACvD,OAAO,KAAKC,MAAM,MAAM,eAAe;AAEvC,SAASC,MAAM,QAAQ,aAAa;AACpC,SAASC,aAAa,QAAQ,oBAAoB;AAClD,SAASC,OAAO,QAAQ,cAAc;AAEtC;;;;;;;AAOA,OAAM,MAAOC,YAAa,sBAAQR,OAAO,CAACS,GAAG,CAAC,8BAA8B,CAAC,EA2DzE;AAuEJ;;;;AAIA,OAAO,MAAMC,WAAW,GAAIC,OAAgB,IAC1CH,YAAY,CAACI,EAAE,CAAC;EACdC,cAAc,EAAEZ,MAAM,CAACa,GAAG,CAACH,OAAO,CAACE,cAAc,EAAGE,WAAW,IAAI;IACjE,MAAMC,GAAG,GAAGjB,GAAG,CAACkB,KAAK,EAA2C;IAChE,KAAK,MAAM,CAACC,OAAO,EAAEC,aAAa,CAAC,IAAIJ,WAAW,EAAE;MAClDC,GAAG,CAACI,IAAI,CAAC,CACPb,OAAO,CAACc,UAAU,CAACH,OAAO,CAAC,EAC3BC,aAAa,KAAK,IAAI,GAAGf,MAAM,CAACkB,IAAI,EAAE,GAAGlB,MAAM,CAACmB,IAAI,CAACC,mBAAmB,CAACL,aAAa,CAAC,CAAC,CACzF,CAAC;IACJ;IACA,OAAOH,GAAG;EACZ,CAAC,CAAC;EACFS,eAAe,EAAGV,WAAW,IAAI;IAC/B,MAAMC,GAAG,GAAGjB,GAAG,CAACkB,KAAK,EAAoC;IACzD,KAAK,MAAM,CAACC,OAAO,EAAEC,aAAa,CAAC,IAAIJ,WAAW,EAAE;MAClDC,GAAG,CAACI,IAAI,CAAC,CACPF,OAAO,CAACQ,QAAQ,EAAE,EAClBtB,MAAM,CAACuB,MAAM,CAACR,aAAa,CAAC,GAAG,IAAI,GAAGS,mBAAmB,CAACT,aAAa,CAACU,KAAK,CAAC,CAC/E,CAAC;IACJ;IACA,OAAOlB,OAAO,CAACc,eAAe,CAACT,GAAG,CAAC;EACrC,CAAC;EACDc,UAAU,EAAE7B,MAAM,CAAC8B,GAAG,CAAC,aAAS;IAC9B,MAAMC,OAAO,GAAG,OAAOrB,OAAO,CAACmB,UAAU;IACzC,MAAMG,OAAO,GAAG,IAAIC,KAAK,CAA0BF,OAAO,CAACG,MAAM,CAAC;IAClE,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGJ,OAAO,CAACG,MAAM,EAAEC,CAAC,EAAE,EAAE;MACvC,MAAM,CAACC,OAAO,EAAEC,MAAM,CAAC,GAAGN,OAAO,CAACI,CAAC,CAAC;MACpCH,OAAO,CAACG,CAAC,CAAC,GAAG,CAACZ,mBAAmB,CAACa,OAAO,CAAC,EAAEhC,MAAM,CAACkC,UAAU,CAACD,MAAM,CAAC,CAAC;IACxE;IACA,OAAOL,OAAO;EAChB,CAAC,CAAC;EACFO,WAAW,EAAGR,OAAO,IACnB/B,MAAM,CAACwC,OAAO,CAAC,MACb9B,OAAO,CAAC6B,WAAW,CACjBN,KAAK,CAACQ,IAAI,CAACV,OAAO,EAAE,CAAC,CAACK,OAAO,EAAEC,MAAM,CAAC,KAAK,CAACV,mBAAmB,CAACS,OAAO,CAAC,EAAEhC,MAAM,CAACsC,UAAU,CAACL,MAAM,CAAC,CAAC,CAAC,CACtG,CACF;EACHM,OAAO,EAAEA,CAACP,OAAO,EAAEQ,QAAQ,KAAI;IAC7B,MAAM7B,GAAG,GAAGkB,KAAK,CAACQ,IAAI,CAACG,QAAQ,EAAGC,EAAE,IAAKA,EAAE,CAACpB,QAAQ,EAAE,CAAC;IACvD,OAAOf,OAAO,CAACiC,OAAO,CAAChB,mBAAmB,CAACS,OAAO,CAAC,EAAErB,GAAG,CAAC,CAAC+B,IAAI,CAC5D9C,MAAM,CAACa,GAAG,CAAEkC,MAAM,IAAKA,MAAM,CAAClC,GAAG,CAACP,OAAO,CAACc,UAAU,CAAC,CAAC,CACvD;EACH,CAAC;EACD4B,OAAO,EAAEA,CAACZ,OAAO,EAAEQ,QAAQ,KAAI;IAC7B,MAAM7B,GAAG,GAAGkB,KAAK,CAACQ,IAAI,CAACG,QAAQ,EAAGC,EAAE,IAAKA,EAAE,CAACpB,QAAQ,EAAE,CAAC;IACvD,OAAOf,OAAO,CAACsC,OAAO,CAACrB,mBAAmB,CAACS,OAAO,CAAC,EAAErB,GAAG,CAAC,CAAC+B,IAAI,CAC5D9C,MAAM,CAACa,GAAG,CAAEkC,MAAM,IAAKA,MAAM,CAAClC,GAAG,CAACP,OAAO,CAACc,UAAU,CAAC,CAAC,CACvD;EACH,CAAC;EACD6B,OAAOA,CAACb,OAAO,EAAEnB,OAAO;IACtB,OAAOP,OAAO,CAACuC,OAAO,CAACtB,mBAAmB,CAACS,OAAO,CAAC,EAAEnB,OAAO,CAACQ,QAAQ,EAAE,CAAC;EAC1E,CAAC;EACDyB,UAAUA,CAACd,OAAO;IAChB,OAAO1B,OAAO,CAACwC,UAAU,CAACvB,mBAAmB,CAACS,OAAO,CAAC,CAAC;EACzD;CACD,CAAC;AAEJ;;;;AAIA,OAAO,MAAMe,SAAS,gBAA8BlD,KAAK,CAACmD,IAAI,CAC5D7C,YAAY,EACZ,MAAK;EACH,IAAI8C,QAAQ,GAAmB,EAAE;EACjC,OAAO9C,YAAY,CAACI,EAAE,CAAC;IACrBC,cAAc,EAAEZ,MAAM,CAACoD,IAAI,CAAC,MAAM,EAAE,CAAC;IACrC5B,eAAe,EAAEA,CAAA,KAAMxB,MAAM,CAACsD,IAAI;IAClCzB,UAAU,EAAE7B,MAAM,CAACoD,IAAI,CAAC,MAAM,EAAE,CAAC;IACjCb,WAAW,EAAEA,CAAA,KAAMvC,MAAM,CAACsD,IAAI;IAC9BX,OAAO,EAAEA,CAACY,QAAQ,EAAER,MAAM,KAAI;MAC5BM,QAAQ,GAAGpB,KAAK,CAACQ,IAAI,CAACM,MAAM,CAAC;MAC7B,OAAO/C,MAAM,CAACwD,OAAO,CAACvB,KAAK,CAACQ,IAAI,CAACM,MAAM,CAAC,CAAC;IAC3C,CAAC;IACDC,OAAO,EAAEA,CAAA,KAAMhD,MAAM,CAACoD,IAAI,CAAC,MAAMC,QAAQ,CAAC;IAC1CJ,OAAO,EAAEA,CAAA,KAAMjD,MAAM,CAACsD,IAAI;IAC1BJ,UAAU,EAAEA,CAAA,KAAMlD,MAAM,CAACsD;GAC1B,CAAC;AACJ,CAAC,CACF;AAED;;;;AAIA,OAAO,MAAMG,UAAU,gBAAGzD,MAAM,CAAC8B,GAAG,CAAC,aAAS;EAC5C,MAAMhB,WAAW,GAAGZ,cAAc,CAACc,KAAK,EAAyC;EACjF,MAAMe,OAAO,GAAG7B,cAAc,CAACc,KAAK,EAAyB;EAE7D,SAASQ,eAAeA,CAACI,KAAiE;IACxF,OAAO5B,MAAM,CAACoD,IAAI,CAAC,MAAK;MACtB,KAAK,MAAM,CAACnC,OAAO,EAAEC,aAAa,CAAC,IAAIU,KAAK,EAAE;QAC5C1B,cAAc,CAACwD,GAAG,CAAC5C,WAAW,EAAEG,OAAO,EAAEC,aAAa,CAAC;MACzD;IACF,CAAC,CAAC;EACJ;EAEA,SAASqB,WAAWA,CAACX,KAAiD;IACpE,OAAO5B,MAAM,CAACoD,IAAI,CAAC,MAAK;MACtB,KAAK,MAAM,CAAChB,OAAO,EAAEC,MAAM,CAAC,IAAIT,KAAK,EAAE;QACrC1B,cAAc,CAACwD,GAAG,CAAC3B,OAAO,EAAEK,OAAO,EAAEC,MAAM,CAAC;MAC9C;IACF,CAAC,CAAC;EACJ;EAEA,IAAIgB,QAAQ,GAAmB,EAAE;EAEjC,OAAO9C,YAAY,CAACI,EAAE,CAAC;IACrBC,cAAc,EAAEZ,MAAM,CAACoD,IAAI,CAAC,MAAMnB,KAAK,CAACQ,IAAI,CAAC3B,WAAW,CAAC,CAAC;IAC1DU,eAAe;IACfK,UAAU,EAAE7B,MAAM,CAACoD,IAAI,CAAC,MAAMnB,KAAK,CAACQ,IAAI,CAACV,OAAO,CAAC,CAAC;IAClDQ,WAAW;IACXI,OAAO,EAAEA,CAACY,QAAQ,EAAEX,QAAQ,KAAI;MAC9BS,QAAQ,GAAGpB,KAAK,CAACQ,IAAI,CAACG,QAAQ,CAAC;MAC/B,OAAO5C,MAAM,CAACwD,OAAO,CAACvB,KAAK,CAACQ,IAAI,CAACG,QAAQ,CAAC,CAAC;IAC7C,CAAC;IACDI,OAAO,EAAEA,CAAA,KAAMhD,MAAM,CAACoD,IAAI,CAAC,MAAMC,QAAQ,CAAC;IAC1CJ,OAAO,EAAEA,CAAA,KAAMjD,MAAM,CAACsD,IAAI;IAC1BJ,UAAU,EAAEA,CAAA,KAAMlD,MAAM,CAACsD;GAC1B,CAAC;AACJ,CAAC,CAAC;AAEF;;;;AAIA,OAAO,MAAMK,WAAW,gBAA8B1D,KAAK,CAAC2D,MAAM,CAACrD,YAAY,EAAEkD,UAAU,CAAC;AAE5F;AACA;AACA;AAEA,MAAM9B,mBAAmB,GAAIT,aAA4B,IAAK,GAAGA,aAAa,CAAC2C,IAAI,IAAI3C,aAAa,CAAC4C,IAAI,EAAE;AAE3G,MAAMvC,mBAAmB,GAAIL,aAAqB,IAAmB;EACnE,MAAM,CAAC2C,IAAI,EAAEC,IAAI,CAAC,GAAG5C,aAAa,CAAC6C,KAAK,CAAC,GAAG,CAAC;EAC7C,OAAO,IAAI1D,aAAa,CAAC;IAAEwD,IAAI;IAAEC,IAAI,EAAEE,MAAM,CAACF,IAAI;EAAC,CAAE,CAAC;AACxD,CAAC","ignoreList":[]}