@effect/cluster 0.37.2 → 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.
- package/ClusterCron/package.json +6 -0
- package/dist/cjs/ClusterCron.js +86 -0
- package/dist/cjs/ClusterCron.js.map +1 -0
- package/dist/cjs/ClusterSchema.js +9 -1
- package/dist/cjs/ClusterSchema.js.map +1 -1
- package/dist/cjs/ClusterWorkflowEngine.js +21 -6
- package/dist/cjs/ClusterWorkflowEngine.js.map +1 -1
- package/dist/cjs/Entity.js +6 -1
- package/dist/cjs/Entity.js.map +1 -1
- package/dist/cjs/EntityAddress.js +8 -1
- package/dist/cjs/EntityAddress.js.map +1 -1
- package/dist/cjs/MessageStorage.js +6 -4
- package/dist/cjs/MessageStorage.js.map +1 -1
- package/dist/cjs/Runner.js +15 -0
- package/dist/cjs/Runner.js.map +1 -1
- package/dist/cjs/RunnerAddress.js +8 -1
- package/dist/cjs/RunnerAddress.js.map +1 -1
- package/dist/cjs/Runners.js +5 -0
- package/dist/cjs/Runners.js.map +1 -1
- package/dist/cjs/ShardId.js +75 -7
- package/dist/cjs/ShardId.js.map +1 -1
- package/dist/cjs/ShardManager.js +63 -43
- package/dist/cjs/ShardManager.js.map +1 -1
- package/dist/cjs/ShardStorage.js +45 -36
- package/dist/cjs/ShardStorage.js.map +1 -1
- package/dist/cjs/Sharding.js +45 -37
- package/dist/cjs/Sharding.js.map +1 -1
- package/dist/cjs/ShardingConfig.js +9 -2
- package/dist/cjs/ShardingConfig.js.map +1 -1
- package/dist/cjs/Singleton.js +2 -2
- package/dist/cjs/Singleton.js.map +1 -1
- package/dist/cjs/SingletonAddress.js +2 -2
- package/dist/cjs/SingletonAddress.js.map +1 -1
- package/dist/cjs/SqlMessageStorage.js +32 -27
- package/dist/cjs/SqlMessageStorage.js.map +1 -1
- package/dist/cjs/SqlShardStorage.js +14 -14
- package/dist/cjs/SqlShardStorage.js.map +1 -1
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/internal/entityManager.js +2 -1
- package/dist/cjs/internal/entityManager.js.map +1 -1
- package/dist/cjs/internal/shardManager.js +138 -37
- package/dist/cjs/internal/shardManager.js.map +1 -1
- package/dist/dts/ClusterCron.d.ts +37 -0
- package/dist/dts/ClusterCron.d.ts.map +1 -0
- package/dist/dts/ClusterSchema.d.ts +8 -0
- package/dist/dts/ClusterSchema.d.ts.map +1 -1
- package/dist/dts/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/dts/Entity.d.ts +10 -0
- package/dist/dts/Entity.d.ts.map +1 -1
- package/dist/dts/EntityAddress.d.ts +9 -3
- package/dist/dts/EntityAddress.d.ts.map +1 -1
- package/dist/dts/MessageStorage.d.ts +3 -3
- package/dist/dts/MessageStorage.d.ts.map +1 -1
- package/dist/dts/Runner.d.ts +15 -0
- package/dist/dts/Runner.d.ts.map +1 -1
- package/dist/dts/RunnerAddress.d.ts +5 -0
- package/dist/dts/RunnerAddress.d.ts.map +1 -1
- package/dist/dts/Runners.d.ts.map +1 -1
- package/dist/dts/ShardId.d.ts +60 -6
- package/dist/dts/ShardId.d.ts.map +1 -1
- package/dist/dts/ShardManager.d.ts +13 -13
- package/dist/dts/ShardManager.d.ts.map +1 -1
- package/dist/dts/ShardStorage.d.ts +11 -14
- package/dist/dts/ShardStorage.d.ts.map +1 -1
- package/dist/dts/Sharding.d.ts +4 -2
- package/dist/dts/Sharding.d.ts.map +1 -1
- package/dist/dts/ShardingConfig.d.ts +32 -6
- package/dist/dts/ShardingConfig.d.ts.map +1 -1
- package/dist/dts/Singleton.d.ts +3 -1
- package/dist/dts/Singleton.d.ts.map +1 -1
- package/dist/dts/SingletonAddress.d.ts +4 -3
- package/dist/dts/SingletonAddress.d.ts.map +1 -1
- package/dist/dts/SqlMessageStorage.d.ts +3 -2
- package/dist/dts/SqlMessageStorage.d.ts.map +1 -1
- package/dist/dts/SqlShardStorage.d.ts +1 -1
- package/dist/dts/index.d.ts +4 -0
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/esm/ClusterCron.js +77 -0
- package/dist/esm/ClusterCron.js.map +1 -0
- package/dist/esm/ClusterSchema.js +7 -0
- package/dist/esm/ClusterSchema.js.map +1 -1
- package/dist/esm/ClusterWorkflowEngine.js +21 -6
- package/dist/esm/ClusterWorkflowEngine.js.map +1 -1
- package/dist/esm/Entity.js +6 -1
- package/dist/esm/Entity.js.map +1 -1
- package/dist/esm/EntityAddress.js +8 -1
- package/dist/esm/EntityAddress.js.map +1 -1
- package/dist/esm/MessageStorage.js +6 -4
- package/dist/esm/MessageStorage.js.map +1 -1
- package/dist/esm/Runner.js +15 -0
- package/dist/esm/Runner.js.map +1 -1
- package/dist/esm/RunnerAddress.js +8 -1
- package/dist/esm/RunnerAddress.js.map +1 -1
- package/dist/esm/Runners.js +5 -0
- package/dist/esm/Runners.js.map +1 -1
- package/dist/esm/ShardId.js +73 -6
- package/dist/esm/ShardId.js.map +1 -1
- package/dist/esm/ShardManager.js +64 -45
- package/dist/esm/ShardManager.js.map +1 -1
- package/dist/esm/ShardStorage.js +44 -36
- package/dist/esm/ShardStorage.js.map +1 -1
- package/dist/esm/Sharding.js +45 -37
- package/dist/esm/Sharding.js.map +1 -1
- package/dist/esm/ShardingConfig.js +9 -2
- package/dist/esm/ShardingConfig.js.map +1 -1
- package/dist/esm/Singleton.js +2 -2
- package/dist/esm/Singleton.js.map +1 -1
- package/dist/esm/SingletonAddress.js +2 -2
- package/dist/esm/SingletonAddress.js.map +1 -1
- package/dist/esm/SqlMessageStorage.js +32 -27
- package/dist/esm/SqlMessageStorage.js.map +1 -1
- package/dist/esm/SqlShardStorage.js +14 -14
- package/dist/esm/SqlShardStorage.js.map +1 -1
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/entityManager.js +2 -1
- package/dist/esm/internal/entityManager.js.map +1 -1
- package/dist/esm/internal/shardManager.js +136 -36
- package/dist/esm/internal/shardManager.js.map +1 -1
- package/package.json +12 -4
- package/src/ClusterCron.ts +129 -0
- package/src/ClusterSchema.ts +9 -0
- package/src/ClusterWorkflowEngine.ts +37 -6
- package/src/Entity.ts +20 -1
- package/src/EntityAddress.ts +11 -1
- package/src/MessageStorage.ts +12 -7
- package/src/Runner.ts +18 -0
- package/src/RunnerAddress.ts +9 -1
- package/src/Runners.ts +5 -0
- package/src/ShardId.ts +81 -11
- package/src/ShardManager.ts +74 -45
- package/src/ShardStorage.ts +51 -47
- package/src/Sharding.ts +45 -39
- package/src/ShardingConfig.ts +36 -7
- package/src/Singleton.ts +5 -2
- package/src/SingletonAddress.ts +2 -2
- package/src/SqlMessageStorage.ts +36 -30
- package/src/SqlShardStorage.ts +15 -15
- package/src/index.ts +5 -0
- package/src/internal/entityManager.ts +2 -1
- package/src/internal/shardManager.ts +158 -52
package/dist/cjs/ShardManager.js
CHANGED
@@ -105,7 +105,10 @@ const layerConfig = config => Layer.succeed(Config, {
|
|
105
105
|
* @category Config
|
106
106
|
*/
|
107
107
|
exports.layerConfig = layerConfig;
|
108
|
-
const layerConfigFromEnv =
|
108
|
+
const layerConfigFromEnv = config => Layer.effect(Config, config ? Effect.map(configFromEnv, env => ({
|
109
|
+
...env,
|
110
|
+
...config
|
111
|
+
})) : configFromEnv);
|
109
112
|
/**
|
110
113
|
* Represents a client which can be used to communicate with the
|
111
114
|
* `ShardManager`.
|
@@ -113,6 +116,7 @@ const layerConfigFromEnv = exports.layerConfigFromEnv = /*#__PURE__*/Layer.effec
|
|
113
116
|
* @since 1.0.0
|
114
117
|
* @category Client
|
115
118
|
*/
|
119
|
+
exports.layerConfigFromEnv = layerConfigFromEnv;
|
116
120
|
class ShardManagerClient extends /*#__PURE__*/Context.Tag("@effect/cluster/ShardManager/ShardManagerClient")() {}
|
117
121
|
/**
|
118
122
|
* @since 1.0.0
|
@@ -150,10 +154,7 @@ class Rpcs extends /*#__PURE__*/RpcGroup.make(/*#__PURE__*/Rpc.make("Register",
|
|
150
154
|
address: _RunnerAddress.RunnerAddress
|
151
155
|
}
|
152
156
|
}), /*#__PURE__*/Rpc.make("GetAssignments", {
|
153
|
-
success: /*#__PURE__*/Schema.
|
154
|
-
key: _ShardId.ShardId,
|
155
|
-
value: /*#__PURE__*/Schema.Option(_RunnerAddress.RunnerAddress)
|
156
|
-
})
|
157
|
+
success: /*#__PURE__*/Schema.Array(/*#__PURE__*/Schema.Tuple(_ShardId.ShardId, /*#__PURE__*/Schema.Option(_RunnerAddress.RunnerAddress)))
|
157
158
|
}), /*#__PURE__*/Rpc.make("ShardingEvents", {
|
158
159
|
success: ShardingEventSchema,
|
159
160
|
stream: true
|
@@ -171,15 +172,22 @@ const ShardingEvent = exports.ShardingEvent = /*#__PURE__*/Data.taggedEnum();
|
|
171
172
|
* @category Client
|
172
173
|
*/
|
173
174
|
const makeClientLocal = exports.makeClientLocal = /*#__PURE__*/Effect.gen(function* () {
|
174
|
-
const
|
175
|
+
const config = yield* _ShardingConfig.ShardingConfig;
|
175
176
|
const clock = yield* Effect.clock;
|
176
|
-
const
|
177
|
-
|
178
|
-
shards.set(_ShardId.ShardId.make(n), runnerAddress.runnerAddress);
|
179
|
-
}
|
177
|
+
const groups = new Set();
|
178
|
+
const shards = MutableHashMap.empty();
|
180
179
|
let machineId = 0;
|
181
180
|
return ShardManagerClient.of({
|
182
|
-
register: () => Effect.sync(() =>
|
181
|
+
register: (_, groupsToAdd) => Effect.sync(() => {
|
182
|
+
for (const group of groupsToAdd) {
|
183
|
+
if (groups.has(group)) continue;
|
184
|
+
groups.add(group);
|
185
|
+
for (let n = 1; n <= config.shardsPerGroup; n++) {
|
186
|
+
MutableHashMap.set(shards, (0, _ShardId.make)(group, n), config.runnerAddress);
|
187
|
+
}
|
188
|
+
}
|
189
|
+
return MachineId.make(++machineId);
|
190
|
+
}),
|
183
191
|
unregister: () => Effect.void,
|
184
192
|
notifyUnhealthyRunner: () => Effect.void,
|
185
193
|
getAssignments: Effect.succeed(shards),
|
@@ -202,10 +210,11 @@ const makeClientRpc = exports.makeClientRpc = /*#__PURE__*/Effect.gen(function*
|
|
202
210
|
disableTracing: true
|
203
211
|
});
|
204
212
|
return ShardManagerClient.of({
|
205
|
-
register: address => client.Register({
|
213
|
+
register: (address, groups) => client.Register({
|
206
214
|
runner: _Runner.Runner.make({
|
207
215
|
address,
|
208
|
-
version: config.serverVersion
|
216
|
+
version: config.serverVersion,
|
217
|
+
groups
|
209
218
|
})
|
210
219
|
}),
|
211
220
|
unregister: address => client.Unregister({
|
@@ -246,11 +255,11 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
|
|
246
255
|
const clock = yield* Effect.clock;
|
247
256
|
const config = yield* Config;
|
248
257
|
const shardingConfig = yield* _ShardingConfig.ShardingConfig;
|
249
|
-
const state = yield* Effect.orDie(_shardManager.State.fromStorage(shardingConfig.
|
258
|
+
const state = yield* Effect.orDie(_shardManager.State.fromStorage(shardingConfig.shardsPerGroup));
|
250
259
|
const scope = yield* Effect.scope;
|
251
260
|
const events = yield* PubSub.unbounded();
|
252
|
-
yield* Metric.incrementBy(ClusterMetrics.runners, MutableHashMap.size(state.
|
253
|
-
for (const address of state.
|
261
|
+
yield* Metric.incrementBy(ClusterMetrics.runners, MutableHashMap.size(state.allRunners));
|
262
|
+
for (const [, address] of state.assignments) {
|
254
263
|
const metric = Option.isSome(address) ? Metric.tagged(ClusterMetrics.assignedShards, "address", address.toString()) : ClusterMetrics.unassignedShards;
|
255
264
|
yield* Metric.increment(metric);
|
256
265
|
}
|
@@ -260,10 +269,10 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
|
|
260
269
|
times: config.persistRetryCount
|
261
270
|
}), Effect.ignore);
|
262
271
|
}
|
263
|
-
const persistRunners = Effect.unsafeMakeSemaphore(1).withPermits(1)(withRetry(Effect.suspend(() => storage.saveRunners(Iterable.map(state.
|
264
|
-
const persistAssignments = Effect.unsafeMakeSemaphore(1).withPermits(1)(withRetry(Effect.suspend(() => storage.saveAssignments(state.
|
272
|
+
const persistRunners = Effect.unsafeMakeSemaphore(1).withPermits(1)(withRetry(Effect.suspend(() => storage.saveRunners(Iterable.map(state.allRunners, ([address, runner]) => [address, runner.runner])))));
|
273
|
+
const persistAssignments = Effect.unsafeMakeSemaphore(1).withPermits(1)(withRetry(Effect.suspend(() => storage.saveAssignments(state.assignments))));
|
265
274
|
const notifyUnhealthyRunner = Effect.fnUntraced(function* (address) {
|
266
|
-
if (!MutableHashMap.has(state.
|
275
|
+
if (!MutableHashMap.has(state.allRunners, address)) return;
|
267
276
|
yield* Metric.increment(Metric.tagged(ClusterMetrics.runnerHealthChecked, "runner_address", address.toString()));
|
268
277
|
if (!(yield* runnerHealthApi.isAlive(address))) {
|
269
278
|
yield* Effect.logWarning(`Runner at address '${address.toString()}' is not alive`);
|
@@ -272,48 +281,41 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
|
|
272
281
|
});
|
273
282
|
function updateShardsState(shards, address) {
|
274
283
|
return Effect.suspend(() => {
|
275
|
-
if (Option.isSome(address) && !MutableHashMap.has(state.
|
284
|
+
if (Option.isSome(address) && !MutableHashMap.has(state.allRunners, address.value)) {
|
276
285
|
return Effect.fail(new _ClusterError.RunnerNotRegistered({
|
277
286
|
address: address.value
|
278
287
|
}));
|
279
288
|
}
|
280
|
-
|
281
|
-
if (!state.shards.has(shardId)) continue;
|
282
|
-
state.shards.set(shardId, address);
|
283
|
-
}
|
289
|
+
state.addAssignments(shards, address);
|
284
290
|
return Effect.void;
|
285
291
|
});
|
286
292
|
}
|
287
|
-
const getAssignments = Effect.sync(() => state.
|
293
|
+
const getAssignments = Effect.sync(() => state.assignments);
|
288
294
|
let machineId = 0;
|
289
295
|
const register = Effect.fnUntraced(function* (runner) {
|
290
296
|
yield* Effect.logInfo(`Registering runner ${_Runner.Runner.pretty(runner)}`);
|
291
|
-
|
292
|
-
MutableHashMap.set(state.runners, runner.address, (0, _shardManager.RunnerWithMetadata)({
|
293
|
-
runner,
|
294
|
-
registeredAt: now
|
295
|
-
}));
|
297
|
+
state.addRunner(runner, clock.unsafeCurrentTimeMillis());
|
296
298
|
yield* Metric.increment(ClusterMetrics.runners);
|
297
299
|
yield* PubSub.publish(events, ShardingEvent.RunnerRegistered({
|
298
300
|
address: runner.address
|
299
301
|
}));
|
300
|
-
if (state.
|
302
|
+
if (state.allUnassignedShards.length > 0) {
|
301
303
|
yield* rebalance(false);
|
302
304
|
}
|
303
305
|
yield* Effect.forkIn(persistRunners, scope);
|
304
306
|
return MachineId.make(++machineId);
|
305
307
|
});
|
306
308
|
const unregister = Effect.fnUntraced(function* (address) {
|
307
|
-
if (!MutableHashMap.has(state.
|
309
|
+
if (!MutableHashMap.has(state.allRunners, address)) return;
|
308
310
|
yield* Effect.logInfo("Unregistering runner at address:", address);
|
309
311
|
const unassignments = Arr.empty();
|
310
|
-
for (const [shard, runner] of state.
|
312
|
+
for (const [shard, runner] of state.assignments) {
|
311
313
|
if (Option.isSome(runner) && Equal.equals(runner.value, address)) {
|
312
314
|
unassignments.push(shard);
|
313
|
-
state.shards.set(shard, Option.none());
|
314
315
|
}
|
315
316
|
}
|
316
|
-
|
317
|
+
state.addAssignments(unassignments, Option.none());
|
318
|
+
state.removeRunner(address);
|
317
319
|
yield* Metric.incrementBy(ClusterMetrics.runners, -1);
|
318
320
|
if (unassignments.length > 0) {
|
319
321
|
yield* Metric.incrementBy(Metric.tagged(ClusterMetrics.unassignedShards, "runner_address", address.toString()), unassignments.length);
|
@@ -359,8 +361,26 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
|
|
359
361
|
const runRebalance = Effect.fn("ShardManager.rebalance")(function* (immediate) {
|
360
362
|
yield* Effect.annotateCurrentSpan("immmediate", immediate);
|
361
363
|
yield* Effect.sleep(config.rebalanceDebounce);
|
364
|
+
if (state.shards.size === 0) {
|
365
|
+
yield* Effect.logDebug("No shards to rebalance");
|
366
|
+
return;
|
367
|
+
}
|
362
368
|
// Determine which shards to assign and unassign
|
363
|
-
const
|
369
|
+
const assignments = MutableHashMap.empty();
|
370
|
+
const unassignments = MutableHashMap.empty();
|
371
|
+
const changes = MutableHashSet.empty();
|
372
|
+
for (const group of state.shards.keys()) {
|
373
|
+
const [groupAssignments, groupUnassignments, groupChanges] = immediate || state.unassignedShards(group).length > 0 ? (0, _shardManager.decideAssignmentsForUnassignedShards)(state, group) : (0, _shardManager.decideAssignmentsForUnbalancedShards)(state, group, config.rebalanceRate);
|
374
|
+
for (const [address, shards] of groupAssignments) {
|
375
|
+
(0, _shardManager.addAllNested)(assignments, address, Array.from(shards, id => (0, _ShardId.make)(group, id)));
|
376
|
+
}
|
377
|
+
for (const [address, shards] of groupUnassignments) {
|
378
|
+
(0, _shardManager.addAllNested)(unassignments, address, Array.from(shards, id => (0, _ShardId.make)(group, id)));
|
379
|
+
}
|
380
|
+
for (const address of groupChanges) {
|
381
|
+
MutableHashSet.add(changes, address);
|
382
|
+
}
|
383
|
+
}
|
364
384
|
yield* Effect.logDebug(`Rebalancing shards (immediate = ${immediate})`);
|
365
385
|
if (MutableHashSet.size(changes) === 0) return;
|
366
386
|
yield* Metric.increment(ClusterMetrics.rebalances);
|
@@ -388,7 +408,7 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
|
|
388
408
|
return Effect.void;
|
389
409
|
},
|
390
410
|
onSuccess: () => {
|
391
|
-
const shardCount =
|
411
|
+
const shardCount = MutableHashSet.size(shards);
|
392
412
|
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({
|
393
413
|
address,
|
394
414
|
shards: Array.from(shards)
|
@@ -400,9 +420,9 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
|
|
400
420
|
// Remove failed shard unassignments from the assignments
|
401
421
|
MutableHashMap.forEach(assignments, (shards, address) => {
|
402
422
|
for (const shard of failedUnassignments) {
|
403
|
-
|
423
|
+
MutableHashSet.remove(shards, shard);
|
404
424
|
}
|
405
|
-
if (
|
425
|
+
if (MutableHashSet.size(shards) === 0) {
|
406
426
|
MutableHashMap.remove(assignments, address);
|
407
427
|
}
|
408
428
|
});
|
@@ -414,7 +434,7 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
|
|
414
434
|
return Effect.void;
|
415
435
|
},
|
416
436
|
onSuccess: () => {
|
417
|
-
const shardCount =
|
437
|
+
const shardCount = MutableHashSet.size(shards);
|
418
438
|
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({
|
419
439
|
address,
|
420
440
|
shards: Array.from(shards)
|
@@ -437,14 +457,14 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
|
|
437
457
|
}
|
438
458
|
yield* persistAssignments;
|
439
459
|
});
|
440
|
-
const checkRunnerHealth = Effect.suspend(() => Effect.forEach(MutableHashMap.keys(state.
|
460
|
+
const checkRunnerHealth = Effect.suspend(() => Effect.forEach(MutableHashMap.keys(state.allRunners), notifyUnhealthyRunner, {
|
441
461
|
concurrency: 10,
|
442
462
|
discard: true
|
443
463
|
}));
|
444
464
|
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))))));
|
445
465
|
yield* Effect.forkIn(persistRunners, scope);
|
446
466
|
// Rebalance immediately if there are unassigned shards
|
447
|
-
yield* Effect.forkIn(rebalance(state.
|
467
|
+
yield* Effect.forkIn(rebalance(state.allUnassignedShards.length > 0), scope);
|
448
468
|
// Start a regular cluster rebalance at the configured interval
|
449
469
|
yield* rebalance(false).pipe(Effect.andThen(Effect.sleep(config.rebalanceInterval)), Effect.forever, Effect.forkIn(scope));
|
450
470
|
yield* checkRunnerHealth.pipe(Effect.andThen(Effect.sleep(config.runnerHealthCheckInterval)), Effect.forever, Effect.forkIn(scope));
|
@@ -487,7 +507,7 @@ const layerServerHandlers = exports.layerServerHandlers = /*#__PURE__*/Rpcs.toLa
|
|
487
507
|
NotifyUnhealthyRunner: ({
|
488
508
|
address
|
489
509
|
}) => shardManager.notifyUnhealthyRunner(address),
|
490
|
-
GetAssignments: () => shardManager.getAssignments,
|
510
|
+
GetAssignments: () => Effect.map(shardManager.getAssignments, assignments => Array.from(assignments)),
|
491
511
|
ShardingEvents: Effect.fnUntraced(function* () {
|
492
512
|
const queue = yield* shardManager.shardingEvents;
|
493
513
|
const mailbox = yield* Mailbox.make();
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ShardManager.js","names":["Rpc","_interopRequireWildcard","require","RpcClient","RpcGroup","RpcServer","Arr","Clock","Config_","ConfigProvider","Context","Data","Deferred","Duration","Effect","Equal","FiberSet","_Function","Iterable","Layer","Mailbox","Metric","MutableHashMap","MutableHashSet","Option","PubSub","Queue","Schedule","Schema","_ClusterError","ClusterMetrics","_shardManager","MachineId","_Runner","_RunnerAddress","_RunnerHealth","_Runners","_ShardId","_ShardingConfig","_ShardStorage","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ShardManager","Tag","exports","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","RunnerAddress","shards","Array","ShardId","Rpcs","make","payload","runner","Runner","success","ReadonlyMap","key","value","stream","Number","ShardingEvent","taggedEnum","makeClientLocal","gen","runnerAddress","ShardingConfig","clock","Map","numberOfShards","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","RpcClientProtocol","shardManagerAddress","storage","ShardStorage","runnersApi","Runners","runnerHealthApi","RunnerHealth","shardingConfig","state","orDie","State","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","runnerHealthChecked","isAlive","logWarning","updateShardsState","fail","RunnerNotRegistered","shardId","logInfo","pretty","now","unsafeCurrentTimeMillis","RunnerWithMetadata","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","identity","onExit","fn","annotateCurrentSpan","sleep","assignments","changes","decideAssignmentsForUnassignedShards","decideAssignmentsForUnbalancedShards","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","_interopRequireWildcard","require","RpcClient","RpcGroup","RpcServer","Arr","Clock","Config_","ConfigProvider","Context","Data","Deferred","Duration","Effect","Equal","FiberSet","_Function","Iterable","Layer","Mailbox","Metric","MutableHashMap","MutableHashSet","Option","PubSub","Queue","Schedule","Schema","_ClusterError","ClusterMetrics","_shardManager","MachineId","_Runner","_RunnerAddress","_RunnerHealth","_Runners","_ShardId","_ShardingConfig","_ShardStorage","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ShardManager","Tag","exports","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","RunnerAddress","shards","Array","ShardId","Rpcs","make","payload","runner","Runner","success","Tuple","stream","Number","ShardingEvent","taggedEnum","makeClientLocal","gen","ShardingConfig","clock","groups","Set","empty","machineId","of","register","_","groupsToAdd","sync","group","add","shardsPerGroup","makeShardId","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","RpcClientProtocol","shardManagerAddress","storage","ShardStorage","runnersApi","Runners","runnerHealthApi","RunnerHealth","shardingConfig","state","orDie","State","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","RunnerNotRegistered","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","identity","onExit","fn","annotateCurrentSpan","sleep","logDebug","changes","keys","groupAssignments","groupUnassignments","groupChanges","decideAssignmentsForUnassignedShards","decideAssignmentsForUnbalancedShards","addAllNested","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":[]}
|
package/dist/cjs/ShardStorage.js
CHANGED
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.makeMemory = exports.makeEncoded = exports.layerNoop = exports.layerMemory = exports.ShardStorage = void 0;
|
7
|
+
var Arr = _interopRequireWildcard(require("effect/Array"));
|
7
8
|
var Context = _interopRequireWildcard(require("effect/Context"));
|
8
9
|
var Effect = _interopRequireWildcard(require("effect/Effect"));
|
9
10
|
var Layer = _interopRequireWildcard(require("effect/Layer"));
|
@@ -30,47 +31,55 @@ class ShardStorage extends /*#__PURE__*/Context.Tag("@effect/cluster/ShardStorag
|
|
30
31
|
* @category layers
|
31
32
|
*/
|
32
33
|
exports.ShardStorage = ShardStorage;
|
33
|
-
const makeEncoded =
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
34
|
+
const makeEncoded = encoded => ShardStorage.of({
|
35
|
+
getAssignments: Effect.map(encoded.getAssignments, assignments => {
|
36
|
+
const arr = Arr.empty();
|
37
|
+
for (const [shardId, runnerAddress] of assignments) {
|
38
|
+
arr.push([_ShardId.ShardId.fromString(shardId), runnerAddress === null ? Option.none() : Option.some(decodeRunnerAddress(runnerAddress))]);
|
39
|
+
}
|
40
|
+
return arr;
|
41
|
+
}),
|
42
|
+
saveAssignments: assignments => {
|
43
|
+
const arr = Arr.empty();
|
44
|
+
for (const [shardId, runnerAddress] of assignments) {
|
45
|
+
arr.push([shardId.toString(), Option.isNone(runnerAddress) ? null : encodeRunnerAddress(runnerAddress.value)]);
|
46
|
+
}
|
47
|
+
return encoded.saveAssignments(arr);
|
48
|
+
},
|
49
|
+
getRunners: Effect.gen(function* () {
|
50
|
+
const runners = yield* encoded.getRunners;
|
51
|
+
const results = new Array(runners.length);
|
52
|
+
for (let i = 0; i < runners.length; i++) {
|
53
|
+
const [address, runner] = runners[i];
|
54
|
+
results[i] = [decodeRunnerAddress(address), _Runner.Runner.decodeSync(runner)];
|
55
|
+
}
|
56
|
+
return results;
|
57
|
+
}),
|
58
|
+
saveRunners: runners => Effect.suspend(() => encoded.saveRunners(Array.from(runners, ([address, runner]) => [encodeRunnerAddress(address), _Runner.Runner.encodeSync(runner)]))),
|
59
|
+
acquire: (address, shardIds) => {
|
60
|
+
const arr = Array.from(shardIds, id => id.toString());
|
61
|
+
return encoded.acquire(encodeRunnerAddress(address), arr).pipe(Effect.map(shards => shards.map(_ShardId.ShardId.fromString)));
|
62
|
+
},
|
63
|
+
refresh: (address, shardIds) => {
|
64
|
+
const arr = Array.from(shardIds, id => id.toString());
|
65
|
+
return encoded.refresh(encodeRunnerAddress(address), arr).pipe(Effect.map(shards => shards.map(_ShardId.ShardId.fromString)));
|
66
|
+
},
|
67
|
+
release(address, shardId) {
|
68
|
+
return encoded.release(encodeRunnerAddress(address), shardId.toString());
|
69
|
+
},
|
70
|
+
releaseAll(address) {
|
71
|
+
return encoded.releaseAll(encodeRunnerAddress(address));
|
72
|
+
}
|
65
73
|
});
|
66
74
|
/**
|
67
75
|
* @since 1.0.0
|
68
76
|
* @category layers
|
69
77
|
*/
|
78
|
+
exports.makeEncoded = makeEncoded;
|
70
79
|
const layerNoop = exports.layerNoop = /*#__PURE__*/Layer.sync(ShardStorage, () => {
|
71
80
|
let acquired = [];
|
72
81
|
return ShardStorage.of({
|
73
|
-
getAssignments: Effect.
|
82
|
+
getAssignments: Effect.sync(() => []),
|
74
83
|
saveAssignments: () => Effect.void,
|
75
84
|
getRunners: Effect.sync(() => []),
|
76
85
|
saveRunners: () => Effect.void,
|
@@ -88,12 +97,12 @@ const layerNoop = exports.layerNoop = /*#__PURE__*/Layer.sync(ShardStorage, () =
|
|
88
97
|
* @category constructors
|
89
98
|
*/
|
90
99
|
const makeMemory = exports.makeMemory = /*#__PURE__*/Effect.gen(function* () {
|
91
|
-
const assignments =
|
100
|
+
const assignments = MutableHashMap.empty();
|
92
101
|
const runners = MutableHashMap.empty();
|
93
102
|
function saveAssignments(value) {
|
94
103
|
return Effect.sync(() => {
|
95
104
|
for (const [shardId, runnerAddress] of value) {
|
96
|
-
|
105
|
+
MutableHashMap.set(assignments, shardId, runnerAddress);
|
97
106
|
}
|
98
107
|
});
|
99
108
|
}
|
@@ -106,7 +115,7 @@ const makeMemory = exports.makeMemory = /*#__PURE__*/Effect.gen(function* () {
|
|
106
115
|
}
|
107
116
|
let acquired = [];
|
108
117
|
return ShardStorage.of({
|
109
|
-
getAssignments: Effect.sync(() =>
|
118
|
+
getAssignments: Effect.sync(() => Array.from(assignments)),
|
110
119
|
saveAssignments,
|
111
120
|
getRunners: Effect.sync(() => Array.from(runners)),
|
112
121
|
saveRunners,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ShardStorage.js","names":["
|
1
|
+
{"version":3,"file":"ShardStorage.js","names":["Arr","_interopRequireWildcard","require","Context","Effect","Layer","MutableHashMap","Option","_Runner","_RunnerAddress","_ShardId","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ShardStorage","Tag","exports","makeEncoded","encoded","of","getAssignments","map","assignments","arr","empty","shardId","runnerAddress","push","ShardId","fromString","none","some","decodeRunnerAddress","saveAssignments","toString","isNone","encodeRunnerAddress","value","getRunners","gen","runners","results","Array","length","address","runner","Runner","decodeSync","saveRunners","suspend","from","encodeSync","acquire","shardIds","id","pipe","shards","refresh","release","releaseAll","layerNoop","sync","acquired","void","_address","succeed","makeMemory","layerMemory","effect","host","port","split","RunnerAddress","Number"],"sources":["../../src/ShardStorage.ts"],"sourcesContent":[null],"mappings":";;;;;;AAGA,IAAAA,GAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAF,uBAAA,CAAAC,OAAA;AACA,IAAAE,MAAA,GAAAH,uBAAA,CAAAC,OAAA;AACA,IAAAG,KAAA,GAAAJ,uBAAA,CAAAC,OAAA;AACA,IAAAI,cAAA,GAAAL,uBAAA,CAAAC,OAAA;AACA,IAAAK,MAAA,GAAAN,uBAAA,CAAAC,OAAA;AAEA,IAAAM,OAAA,GAAAN,OAAA;AACA,IAAAO,cAAA,GAAAP,OAAA;AACA,IAAAQ,QAAA,GAAAR,OAAA;AAAsC,SAAAD,wBAAAU,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAZ,uBAAA,YAAAA,CAAAU,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAZtC;;;;AAcA;;;;;;;AAOM,MAAOkB,YAAa,sBAAQ3B,OAAO,CAAC4B,GAAG,CAAC,8BAA8B,CAAC,EA2DzE;AAuEJ;;;;AAAAC,OAAA,CAAAF,YAAA,GAAAA,YAAA;AAIO,MAAMG,WAAW,GAAIC,OAAgB,IAC1CJ,YAAY,CAACK,EAAE,CAAC;EACdC,cAAc,EAAEhC,MAAM,CAACiC,GAAG,CAACH,OAAO,CAACE,cAAc,EAAGE,WAAW,IAAI;IACjE,MAAMC,GAAG,GAAGvC,GAAG,CAACwC,KAAK,EAA2C;IAChE,KAAK,MAAM,CAACC,OAAO,EAAEC,aAAa,CAAC,IAAIJ,WAAW,EAAE;MAClDC,GAAG,CAACI,IAAI,CAAC,CACPC,gBAAO,CAACC,UAAU,CAACJ,OAAO,CAAC,EAC3BC,aAAa,KAAK,IAAI,GAAGnC,MAAM,CAACuC,IAAI,EAAE,GAAGvC,MAAM,CAACwC,IAAI,CAACC,mBAAmB,CAACN,aAAa,CAAC,CAAC,CACzF,CAAC;IACJ;IACA,OAAOH,GAAG;EACZ,CAAC,CAAC;EACFU,eAAe,EAAGX,WAAW,IAAI;IAC/B,MAAMC,GAAG,GAAGvC,GAAG,CAACwC,KAAK,EAAoC;IACzD,KAAK,MAAM,CAACC,OAAO,EAAEC,aAAa,CAAC,IAAIJ,WAAW,EAAE;MAClDC,GAAG,CAACI,IAAI,CAAC,CACPF,OAAO,CAACS,QAAQ,EAAE,EAClB3C,MAAM,CAAC4C,MAAM,CAACT,aAAa,CAAC,GAAG,IAAI,GAAGU,mBAAmB,CAACV,aAAa,CAACW,KAAK,CAAC,CAC/E,CAAC;IACJ;IACA,OAAOnB,OAAO,CAACe,eAAe,CAACV,GAAG,CAAC;EACrC,CAAC;EACDe,UAAU,EAAElD,MAAM,CAACmD,GAAG,CAAC,aAAS;IAC9B,MAAMC,OAAO,GAAG,OAAOtB,OAAO,CAACoB,UAAU;IACzC,MAAMG,OAAO,GAAG,IAAIC,KAAK,CAA0BF,OAAO,CAACG,MAAM,CAAC;IAClE,KAAK,IAAIzC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGsC,OAAO,CAACG,MAAM,EAAEzC,CAAC,EAAE,EAAE;MACvC,MAAM,CAAC0C,OAAO,EAAEC,MAAM,CAAC,GAAGL,OAAO,CAACtC,CAAC,CAAC;MACpCuC,OAAO,CAACvC,CAAC,CAAC,GAAG,CAAC8B,mBAAmB,CAACY,OAAO,CAAC,EAAEE,cAAM,CAACC,UAAU,CAACF,MAAM,CAAC,CAAC;IACxE;IACA,OAAOJ,OAAO;EAChB,CAAC,CAAC;EACFO,WAAW,EAAGR,OAAO,IACnBpD,MAAM,CAAC6D,OAAO,CAAC,MACb/B,OAAO,CAAC8B,WAAW,CACjBN,KAAK,CAACQ,IAAI,CAACV,OAAO,EAAE,CAAC,CAACI,OAAO,EAAEC,MAAM,CAAC,KAAK,CAACT,mBAAmB,CAACQ,OAAO,CAAC,EAAEE,cAAM,CAACK,UAAU,CAACN,MAAM,CAAC,CAAC,CAAC,CACtG,CACF;EACHO,OAAO,EAAEA,CAACR,OAAO,EAAES,QAAQ,KAAI;IAC7B,MAAM9B,GAAG,GAAGmB,KAAK,CAACQ,IAAI,CAACG,QAAQ,EAAGC,EAAE,IAAKA,EAAE,CAACpB,QAAQ,EAAE,CAAC;IACvD,OAAOhB,OAAO,CAACkC,OAAO,CAAChB,mBAAmB,CAACQ,OAAO,CAAC,EAAErB,GAAG,CAAC,CAACgC,IAAI,CAC5DnE,MAAM,CAACiC,GAAG,CAAEmC,MAAM,IAAKA,MAAM,CAACnC,GAAG,CAACO,gBAAO,CAACC,UAAU,CAAC,CAAC,CACvD;EACH,CAAC;EACD4B,OAAO,EAAEA,CAACb,OAAO,EAAES,QAAQ,KAAI;IAC7B,MAAM9B,GAAG,GAAGmB,KAAK,CAACQ,IAAI,CAACG,QAAQ,EAAGC,EAAE,IAAKA,EAAE,CAACpB,QAAQ,EAAE,CAAC;IACvD,OAAOhB,OAAO,CAACuC,OAAO,CAACrB,mBAAmB,CAACQ,OAAO,CAAC,EAAErB,GAAG,CAAC,CAACgC,IAAI,CAC5DnE,MAAM,CAACiC,GAAG,CAAEmC,MAAM,IAAKA,MAAM,CAACnC,GAAG,CAACO,gBAAO,CAACC,UAAU,CAAC,CAAC,CACvD;EACH,CAAC;EACD6B,OAAOA,CAACd,OAAO,EAAEnB,OAAO;IACtB,OAAOP,OAAO,CAACwC,OAAO,CAACtB,mBAAmB,CAACQ,OAAO,CAAC,EAAEnB,OAAO,CAACS,QAAQ,EAAE,CAAC;EAC1E,CAAC;EACDyB,UAAUA,CAACf,OAAO;IAChB,OAAO1B,OAAO,CAACyC,UAAU,CAACvB,mBAAmB,CAACQ,OAAO,CAAC,CAAC;EACzD;CACD,CAAC;AAEJ;;;;AAAA5B,OAAA,CAAAC,WAAA,GAAAA,WAAA;AAIO,MAAM2C,SAAS,GAAA5C,OAAA,CAAA4C,SAAA,gBAA8BvE,KAAK,CAACwE,IAAI,CAC5D/C,YAAY,EACZ,MAAK;EACH,IAAIgD,QAAQ,GAAmB,EAAE;EACjC,OAAOhD,YAAY,CAACK,EAAE,CAAC;IACrBC,cAAc,EAAEhC,MAAM,CAACyE,IAAI,CAAC,MAAM,EAAE,CAAC;IACrC5B,eAAe,EAAEA,CAAA,KAAM7C,MAAM,CAAC2E,IAAI;IAClCzB,UAAU,EAAElD,MAAM,CAACyE,IAAI,CAAC,MAAM,EAAE,CAAC;IACjCb,WAAW,EAAEA,CAAA,KAAM5D,MAAM,CAAC2E,IAAI;IAC9BX,OAAO,EAAEA,CAACY,QAAQ,EAAER,MAAM,KAAI;MAC5BM,QAAQ,GAAGpB,KAAK,CAACQ,IAAI,CAACM,MAAM,CAAC;MAC7B,OAAOpE,MAAM,CAAC6E,OAAO,CAACvB,KAAK,CAACQ,IAAI,CAACM,MAAM,CAAC,CAAC;IAC3C,CAAC;IACDC,OAAO,EAAEA,CAAA,KAAMrE,MAAM,CAACyE,IAAI,CAAC,MAAMC,QAAQ,CAAC;IAC1CJ,OAAO,EAAEA,CAAA,KAAMtE,MAAM,CAAC2E,IAAI;IAC1BJ,UAAU,EAAEA,CAAA,KAAMvE,MAAM,CAAC2E;GAC1B,CAAC;AACJ,CAAC,CACF;AAED;;;;AAIO,MAAMG,UAAU,GAAAlD,OAAA,CAAAkD,UAAA,gBAAG9E,MAAM,CAACmD,GAAG,CAAC,aAAS;EAC5C,MAAMjB,WAAW,GAAGhC,cAAc,CAACkC,KAAK,EAAyC;EACjF,MAAMgB,OAAO,GAAGlD,cAAc,CAACkC,KAAK,EAAyB;EAE7D,SAASS,eAAeA,CAACI,KAAiE;IACxF,OAAOjD,MAAM,CAACyE,IAAI,CAAC,MAAK;MACtB,KAAK,MAAM,CAACpC,OAAO,EAAEC,aAAa,CAAC,IAAIW,KAAK,EAAE;QAC5C/C,cAAc,CAACkB,GAAG,CAACc,WAAW,EAAEG,OAAO,EAAEC,aAAa,CAAC;MACzD;IACF,CAAC,CAAC;EACJ;EAEA,SAASsB,WAAWA,CAACX,KAAiD;IACpE,OAAOjD,MAAM,CAACyE,IAAI,CAAC,MAAK;MACtB,KAAK,MAAM,CAACjB,OAAO,EAAEC,MAAM,CAAC,IAAIR,KAAK,EAAE;QACrC/C,cAAc,CAACkB,GAAG,CAACgC,OAAO,EAAEI,OAAO,EAAEC,MAAM,CAAC;MAC9C;IACF,CAAC,CAAC;EACJ;EAEA,IAAIiB,QAAQ,GAAmB,EAAE;EAEjC,OAAOhD,YAAY,CAACK,EAAE,CAAC;IACrBC,cAAc,EAAEhC,MAAM,CAACyE,IAAI,CAAC,MAAMnB,KAAK,CAACQ,IAAI,CAAC5B,WAAW,CAAC,CAAC;IAC1DW,eAAe;IACfK,UAAU,EAAElD,MAAM,CAACyE,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,OAAOjE,MAAM,CAAC6E,OAAO,CAACvB,KAAK,CAACQ,IAAI,CAACG,QAAQ,CAAC,CAAC;IAC7C,CAAC;IACDI,OAAO,EAAEA,CAAA,KAAMrE,MAAM,CAACyE,IAAI,CAAC,MAAMC,QAAQ,CAAC;IAC1CJ,OAAO,EAAEA,CAAA,KAAMtE,MAAM,CAAC2E,IAAI;IAC1BJ,UAAU,EAAEA,CAAA,KAAMvE,MAAM,CAAC2E;GAC1B,CAAC;AACJ,CAAC,CAAC;AAEF;;;;AAIO,MAAMI,WAAW,GAAAnD,OAAA,CAAAmD,WAAA,gBAA8B9E,KAAK,CAAC+E,MAAM,CAACtD,YAAY,EAAEoD,UAAU,CAAC;AAE5F;AACA;AACA;AAEA,MAAM9B,mBAAmB,GAAIV,aAA4B,IAAK,GAAGA,aAAa,CAAC2C,IAAI,IAAI3C,aAAa,CAAC4C,IAAI,EAAE;AAE3G,MAAMtC,mBAAmB,GAAIN,aAAqB,IAAmB;EACnE,MAAM,CAAC2C,IAAI,EAAEC,IAAI,CAAC,GAAG5C,aAAa,CAAC6C,KAAK,CAAC,GAAG,CAAC;EAC7C,OAAO,IAAIC,4BAAa,CAAC;IAAEH,IAAI;IAAEC,IAAI,EAAEG,MAAM,CAACH,IAAI;EAAC,CAAE,CAAC;AACxD,CAAC","ignoreList":[]}
|