@effect/cluster 0.50.6 → 0.52.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/RunnerStorage/package.json +6 -0
- package/SqlRunnerStorage/package.json +6 -0
- package/dist/cjs/ClusterError.js +2 -24
- package/dist/cjs/ClusterError.js.map +1 -1
- package/dist/cjs/ClusterMetrics.js +13 -15
- package/dist/cjs/ClusterMetrics.js.map +1 -1
- package/dist/cjs/ClusterSchema.js +17 -2
- package/dist/cjs/ClusterSchema.js.map +1 -1
- package/dist/cjs/ClusterWorkflowEngine.js +50 -83
- package/dist/cjs/ClusterWorkflowEngine.js.map +1 -1
- package/dist/cjs/Entity.js +1 -13
- package/dist/cjs/Entity.js.map +1 -1
- package/dist/cjs/EntityAddress.js +9 -1
- package/dist/cjs/EntityAddress.js.map +1 -1
- package/dist/cjs/EntityId.js +7 -1
- package/dist/cjs/EntityId.js.map +1 -1
- package/dist/cjs/EntityProxy.js +1 -1
- package/dist/cjs/EntityProxy.js.map +1 -1
- package/dist/cjs/HttpRunner.js +69 -43
- package/dist/cjs/HttpRunner.js.map +1 -1
- package/dist/cjs/MessageStorage.js +64 -16
- package/dist/cjs/MessageStorage.js.map +1 -1
- package/dist/cjs/Runner.js +3 -3
- package/dist/cjs/Runner.js.map +1 -1
- package/dist/cjs/RunnerAddress.js +7 -0
- package/dist/cjs/RunnerAddress.js.map +1 -1
- package/dist/cjs/RunnerHealth.js +91 -32
- package/dist/cjs/RunnerHealth.js.map +1 -1
- package/dist/cjs/RunnerServer.js +38 -24
- package/dist/cjs/RunnerServer.js.map +1 -1
- package/dist/cjs/RunnerStorage.js +100 -0
- package/dist/cjs/RunnerStorage.js.map +1 -0
- package/dist/cjs/Runners.js +18 -22
- package/dist/cjs/Runners.js.map +1 -1
- package/dist/cjs/ShardId.js +17 -7
- package/dist/cjs/ShardId.js.map +1 -1
- package/dist/cjs/Sharding.js +444 -320
- package/dist/cjs/Sharding.js.map +1 -1
- package/dist/cjs/ShardingConfig.js +10 -14
- package/dist/cjs/ShardingConfig.js.map +1 -1
- package/dist/cjs/Snowflake.js +1 -1
- package/dist/cjs/SocketRunner.js +1 -1
- package/dist/cjs/SocketRunner.js.map +1 -1
- package/dist/cjs/SqlMessageStorage.js +22 -28
- package/dist/cjs/SqlMessageStorage.js.map +1 -1
- package/dist/cjs/SqlRunnerStorage.js +375 -0
- package/dist/cjs/SqlRunnerStorage.js.map +1 -0
- package/dist/cjs/index.js +5 -15
- package/dist/cjs/internal/entityManager.js +42 -23
- package/dist/cjs/internal/entityManager.js.map +1 -1
- package/dist/dts/ClusterError.d.ts +0 -22
- package/dist/dts/ClusterError.d.ts.map +1 -1
- package/dist/dts/ClusterMetrics.d.ts +4 -14
- package/dist/dts/ClusterMetrics.d.ts.map +1 -1
- package/dist/dts/ClusterSchema.d.ts +9 -1
- package/dist/dts/ClusterSchema.d.ts.map +1 -1
- package/dist/dts/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/dts/Entity.d.ts +3 -14
- package/dist/dts/Entity.d.ts.map +1 -1
- package/dist/dts/EntityAddress.d.ts +11 -0
- package/dist/dts/EntityAddress.d.ts.map +1 -1
- package/dist/dts/EntityId.d.ts +5 -0
- package/dist/dts/EntityId.d.ts.map +1 -1
- package/dist/dts/EntityProxy.d.ts +5 -6
- package/dist/dts/EntityProxy.d.ts.map +1 -1
- package/dist/dts/HttpRunner.d.ts +48 -25
- package/dist/dts/HttpRunner.d.ts.map +1 -1
- package/dist/dts/MessageStorage.d.ts +13 -5
- package/dist/dts/MessageStorage.d.ts.map +1 -1
- package/dist/dts/Runner.d.ts +4 -4
- 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/RunnerHealth.d.ts +24 -16
- package/dist/dts/RunnerHealth.d.ts.map +1 -1
- package/dist/dts/RunnerServer.d.ts +5 -4
- package/dist/dts/RunnerServer.d.ts.map +1 -1
- package/dist/dts/{ShardStorage.d.ts → RunnerStorage.d.ts} +41 -54
- package/dist/dts/RunnerStorage.d.ts.map +1 -0
- package/dist/dts/Runners.d.ts +15 -11
- package/dist/dts/Runners.d.ts.map +1 -1
- package/dist/dts/ShardId.d.ts +1 -1
- package/dist/dts/ShardId.d.ts.map +1 -1
- package/dist/dts/Sharding.d.ts +20 -10
- package/dist/dts/Sharding.d.ts.map +1 -1
- package/dist/dts/ShardingConfig.d.ts +40 -14
- package/dist/dts/ShardingConfig.d.ts.map +1 -1
- package/dist/dts/SocketRunner.d.ts +4 -3
- package/dist/dts/SocketRunner.d.ts.map +1 -1
- package/dist/dts/SqlMessageStorage.d.ts +2 -3
- package/dist/dts/SqlMessageStorage.d.ts.map +1 -1
- package/dist/dts/SqlRunnerStorage.d.ts +40 -0
- package/dist/dts/SqlRunnerStorage.d.ts.map +1 -0
- package/dist/dts/index.d.ts +4 -24
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/esm/ClusterError.js +0 -21
- package/dist/esm/ClusterError.js.map +1 -1
- package/dist/esm/ClusterMetrics.js +12 -14
- package/dist/esm/ClusterMetrics.js.map +1 -1
- package/dist/esm/ClusterSchema.js +17 -2
- package/dist/esm/ClusterSchema.js.map +1 -1
- package/dist/esm/ClusterWorkflowEngine.js +50 -83
- package/dist/esm/ClusterWorkflowEngine.js.map +1 -1
- package/dist/esm/Entity.js +0 -12
- package/dist/esm/Entity.js.map +1 -1
- package/dist/esm/EntityAddress.js +7 -0
- package/dist/esm/EntityAddress.js.map +1 -1
- package/dist/esm/EntityId.js +5 -0
- package/dist/esm/EntityId.js.map +1 -1
- package/dist/esm/EntityProxy.js +2 -2
- package/dist/esm/EntityProxy.js.map +1 -1
- package/dist/esm/HttpRunner.js +62 -39
- package/dist/esm/HttpRunner.js.map +1 -1
- package/dist/esm/MessageStorage.js +65 -17
- package/dist/esm/MessageStorage.js.map +1 -1
- package/dist/esm/Runner.js +3 -3
- package/dist/esm/Runner.js.map +1 -1
- package/dist/esm/RunnerAddress.js +7 -0
- package/dist/esm/RunnerAddress.js.map +1 -1
- package/dist/esm/RunnerHealth.js +88 -30
- package/dist/esm/RunnerHealth.js.map +1 -1
- package/dist/esm/RunnerServer.js +38 -24
- package/dist/esm/RunnerServer.js.map +1 -1
- package/dist/esm/RunnerStorage.js +90 -0
- package/dist/esm/RunnerStorage.js.map +1 -0
- package/dist/esm/Runners.js +19 -23
- package/dist/esm/Runners.js.map +1 -1
- package/dist/esm/ShardId.js +16 -6
- package/dist/esm/ShardId.js.map +1 -1
- package/dist/esm/Sharding.js +447 -323
- package/dist/esm/Sharding.js.map +1 -1
- package/dist/esm/ShardingConfig.js +10 -14
- package/dist/esm/ShardingConfig.js.map +1 -1
- package/dist/esm/Snowflake.js +1 -1
- package/dist/esm/SocketRunner.js +1 -1
- package/dist/esm/SocketRunner.js.map +1 -1
- package/dist/esm/SqlMessageStorage.js +22 -28
- package/dist/esm/SqlMessageStorage.js.map +1 -1
- package/dist/esm/SqlRunnerStorage.js +366 -0
- package/dist/esm/SqlRunnerStorage.js.map +1 -0
- package/dist/esm/index.js +4 -24
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/entityManager.js +41 -22
- package/dist/esm/internal/entityManager.js.map +1 -1
- package/package.json +20 -60
- package/src/ClusterError.ts +0 -24
- package/src/ClusterMetrics.ts +12 -16
- package/src/ClusterSchema.ts +17 -2
- package/src/ClusterWorkflowEngine.ts +48 -80
- package/src/Entity.ts +3 -21
- package/src/EntityAddress.ts +10 -0
- package/src/EntityId.ts +6 -0
- package/src/EntityProxy.ts +10 -10
- package/src/HttpRunner.ts +132 -67
- package/src/MessageStorage.ts +89 -24
- package/src/Runner.ts +4 -4
- package/src/RunnerAddress.ts +8 -0
- package/src/RunnerHealth.ts +119 -56
- package/src/RunnerServer.ts +64 -47
- package/src/RunnerStorage.ts +218 -0
- package/src/Runners.ts +32 -45
- package/src/ShardId.ts +14 -3
- package/src/Sharding.ts +561 -417
- package/src/ShardingConfig.ts +39 -31
- package/src/Snowflake.ts +1 -1
- package/src/SocketRunner.ts +6 -4
- package/src/SqlMessageStorage.ts +28 -30
- package/src/SqlRunnerStorage.ts +537 -0
- package/src/index.ts +4 -29
- package/src/internal/entityManager.ts +45 -29
- package/HttpCommon/package.json +0 -6
- package/HttpShardManager/package.json +0 -6
- package/ShardManager/package.json +0 -6
- package/ShardStorage/package.json +0 -6
- package/SocketShardManager/package.json +0 -6
- package/SqlShardStorage/package.json +0 -6
- package/SynchronizedClock/package.json +0 -6
- package/dist/cjs/HttpCommon.js +0 -48
- package/dist/cjs/HttpCommon.js.map +0 -1
- package/dist/cjs/HttpShardManager.js +0 -139
- package/dist/cjs/HttpShardManager.js.map +0 -1
- package/dist/cjs/ShardManager.js +0 -549
- package/dist/cjs/ShardManager.js.map +0 -1
- package/dist/cjs/ShardStorage.js +0 -151
- package/dist/cjs/ShardStorage.js.map +0 -1
- package/dist/cjs/SocketShardManager.js +0 -32
- package/dist/cjs/SocketShardManager.js.map +0 -1
- package/dist/cjs/SqlShardStorage.js +0 -253
- package/dist/cjs/SqlShardStorage.js.map +0 -1
- package/dist/cjs/SynchronizedClock.js +0 -65
- package/dist/cjs/SynchronizedClock.js.map +0 -1
- package/dist/cjs/internal/shardManager.js +0 -353
- package/dist/cjs/internal/shardManager.js.map +0 -1
- package/dist/dts/HttpCommon.d.ts +0 -25
- package/dist/dts/HttpCommon.d.ts.map +0 -1
- package/dist/dts/HttpShardManager.d.ts +0 -119
- package/dist/dts/HttpShardManager.d.ts.map +0 -1
- package/dist/dts/ShardManager.d.ts +0 -459
- package/dist/dts/ShardManager.d.ts.map +0 -1
- package/dist/dts/ShardStorage.d.ts.map +0 -1
- package/dist/dts/SocketShardManager.d.ts +0 -17
- package/dist/dts/SocketShardManager.d.ts.map +0 -1
- package/dist/dts/SqlShardStorage.d.ts +0 -38
- package/dist/dts/SqlShardStorage.d.ts.map +0 -1
- package/dist/dts/SynchronizedClock.d.ts +0 -19
- package/dist/dts/SynchronizedClock.d.ts.map +0 -1
- package/dist/dts/internal/shardManager.d.ts +0 -2
- package/dist/dts/internal/shardManager.d.ts.map +0 -1
- package/dist/esm/HttpCommon.js +0 -38
- package/dist/esm/HttpCommon.js.map +0 -1
- package/dist/esm/HttpShardManager.js +0 -128
- package/dist/esm/HttpShardManager.js.map +0 -1
- package/dist/esm/ShardManager.js +0 -535
- package/dist/esm/ShardManager.js.map +0 -1
- package/dist/esm/ShardStorage.js +0 -141
- package/dist/esm/ShardStorage.js.map +0 -1
- package/dist/esm/SocketShardManager.js +0 -24
- package/dist/esm/SocketShardManager.js.map +0 -1
- package/dist/esm/SqlShardStorage.js +0 -244
- package/dist/esm/SqlShardStorage.js.map +0 -1
- package/dist/esm/SynchronizedClock.js +0 -57
- package/dist/esm/SynchronizedClock.js.map +0 -1
- package/dist/esm/internal/shardManager.js +0 -342
- package/dist/esm/internal/shardManager.js.map +0 -1
- package/src/HttpCommon.ts +0 -73
- package/src/HttpShardManager.ts +0 -273
- package/src/ShardManager.ts +0 -823
- package/src/ShardStorage.ts +0 -297
- package/src/SocketShardManager.ts +0 -48
- package/src/SqlShardStorage.ts +0 -329
- package/src/SynchronizedClock.ts +0 -82
- package/src/internal/shardManager.ts +0 -412
|
@@ -9,12 +9,9 @@ import type { DurationInput } from "effect/Duration"
|
|
|
9
9
|
import * as Effect from "effect/Effect"
|
|
10
10
|
import * as Equal from "effect/Equal"
|
|
11
11
|
import * as Exit from "effect/Exit"
|
|
12
|
-
import * as FiberId from "effect/FiberId"
|
|
13
12
|
import * as FiberRef from "effect/FiberRef"
|
|
14
13
|
import { identity } from "effect/Function"
|
|
15
|
-
import * as Function from "effect/Function"
|
|
16
14
|
import * as HashMap from "effect/HashMap"
|
|
17
|
-
import * as HashSet from "effect/HashSet"
|
|
18
15
|
import * as Metric from "effect/Metric"
|
|
19
16
|
import * as Option from "effect/Option"
|
|
20
17
|
import * as Schedule from "effect/Schedule"
|
|
@@ -54,6 +51,7 @@ export interface EntityManager {
|
|
|
54
51
|
readonly isProcessingFor: (message: Message.Incoming<any>, options?: {
|
|
55
52
|
readonly excludeReplies?: boolean
|
|
56
53
|
}) => boolean
|
|
54
|
+
readonly clearProcessed: () => void
|
|
57
55
|
|
|
58
56
|
readonly interruptShard: (shardId: ShardId) => Effect.Effect<void>
|
|
59
57
|
|
|
@@ -108,13 +106,15 @@ export const make = Effect.fnUntraced(function*<
|
|
|
108
106
|
)
|
|
109
107
|
|
|
110
108
|
const activeServers = new Map<EntityId, EntityState>()
|
|
109
|
+
const serverCloseLatches = new Map<EntityAddress, Effect.Latch>()
|
|
110
|
+
const processedRequestIds = new Set<Snowflake.Snowflake>()
|
|
111
111
|
|
|
112
112
|
const entities: ResourceMap<
|
|
113
113
|
EntityAddress,
|
|
114
114
|
EntityState,
|
|
115
115
|
EntityNotAssignedToRunner
|
|
116
116
|
> = yield* ResourceMap.make(Effect.fnUntraced(function*(address: EntityAddress) {
|
|
117
|
-
if (
|
|
117
|
+
if (!options.sharding.hasShardId(address.shardId)) {
|
|
118
118
|
return yield* new EntityNotAssignedToRunner({ address })
|
|
119
119
|
}
|
|
120
120
|
|
|
@@ -122,9 +122,13 @@ export const make = Effect.fnUntraced(function*<
|
|
|
122
122
|
const endLatch = yield* Effect.makeLatch()
|
|
123
123
|
|
|
124
124
|
// on shutdown, reset the storage for the entity
|
|
125
|
-
yield* Scope.
|
|
125
|
+
yield* Scope.addFinalizerExit(
|
|
126
126
|
scope,
|
|
127
|
-
|
|
127
|
+
() => {
|
|
128
|
+
serverCloseLatches.get(address)?.unsafeOpen()
|
|
129
|
+
serverCloseLatches.delete(address)
|
|
130
|
+
return Effect.ignore(options.storage.resetAddress(address))
|
|
131
|
+
}
|
|
128
132
|
)
|
|
129
133
|
|
|
130
134
|
const activeRequests: EntityState["activeRequests"] = new Map()
|
|
@@ -173,9 +177,22 @@ export const make = Effect.fnUntraced(function*<
|
|
|
173
177
|
Context.get(request.rpc.annotations, Persisted) &&
|
|
174
178
|
Exit.isFailure(response.exit) &&
|
|
175
179
|
Exit.isInterrupted(response.exit) &&
|
|
176
|
-
(isShuttingDown ||
|
|
177
|
-
isInterruptIgnore(response.exit.cause))
|
|
180
|
+
(isShuttingDown || Uninterruptible.forServer(request.rpc.annotations))
|
|
178
181
|
) {
|
|
182
|
+
if (!isShuttingDown) {
|
|
183
|
+
return server.write(0, {
|
|
184
|
+
...request.message.envelope,
|
|
185
|
+
id: RequestId(request.message.envelope.requestId),
|
|
186
|
+
tag: request.message.envelope.tag as any,
|
|
187
|
+
payload: new Request({
|
|
188
|
+
...request.message.envelope,
|
|
189
|
+
lastSentChunk: request.lastSentChunk
|
|
190
|
+
} as any) as any
|
|
191
|
+
}).pipe(
|
|
192
|
+
Effect.forkIn(scope)
|
|
193
|
+
)
|
|
194
|
+
}
|
|
195
|
+
activeRequests.delete(response.requestId)
|
|
179
196
|
return options.storage.unregisterReplyHandler(request.message.envelope.requestId)
|
|
180
197
|
}
|
|
181
198
|
return retryRespond(
|
|
@@ -191,6 +208,7 @@ export const make = Effect.fnUntraced(function*<
|
|
|
191
208
|
)
|
|
192
209
|
).pipe(
|
|
193
210
|
Effect.flatMap(() => {
|
|
211
|
+
processedRequestIds.add(request.message.envelope.requestId)
|
|
194
212
|
activeRequests.delete(response.requestId)
|
|
195
213
|
|
|
196
214
|
// ensure that the reaper does not remove the entity as we haven't
|
|
@@ -304,6 +322,7 @@ export const make = Effect.fnUntraced(function*<
|
|
|
304
322
|
scope,
|
|
305
323
|
Effect.withFiberRuntime((fiber) => {
|
|
306
324
|
activeServers.delete(address.entityId)
|
|
325
|
+
serverCloseLatches.set(address, Effect.unsafeMakeLatch(false))
|
|
307
326
|
internalInterruptors.add(fiber.id())
|
|
308
327
|
return state.write(0, { _tag: "Eof" }).pipe(
|
|
309
328
|
Effect.andThen(Effect.interruptible(endLatch.await)),
|
|
@@ -349,7 +368,7 @@ export const make = Effect.fnUntraced(function*<
|
|
|
349
368
|
// one sender for the same request. In this case, the other senders
|
|
350
369
|
// should resume from storage only.
|
|
351
370
|
let entry = server.activeRequests.get(message.envelope.requestId)
|
|
352
|
-
if (entry) {
|
|
371
|
+
if (entry || processedRequestIds.has(message.envelope.requestId)) {
|
|
353
372
|
return Effect.fail(
|
|
354
373
|
new AlreadyProcessingMessage({
|
|
355
374
|
envelopeId: message.envelope.requestId,
|
|
@@ -417,17 +436,22 @@ export const make = Effect.fnUntraced(function*<
|
|
|
417
436
|
|
|
418
437
|
const interruptShard = (shardId: ShardId) =>
|
|
419
438
|
Effect.suspend(function loop(): Effect.Effect<void> {
|
|
420
|
-
const
|
|
421
|
-
|
|
439
|
+
const toAwait = Arr.empty<Effect.Effect<void>>()
|
|
440
|
+
activeServers.forEach((state) => {
|
|
422
441
|
if (shardId[Equal.symbol](state.address.shardId)) {
|
|
423
|
-
|
|
442
|
+
toAwait.push(entities.removeIgnore(state.address))
|
|
424
443
|
}
|
|
425
|
-
}
|
|
426
|
-
|
|
444
|
+
})
|
|
445
|
+
serverCloseLatches.forEach((latch, address) => {
|
|
446
|
+
if (shardId[Equal.symbol](address.shardId)) {
|
|
447
|
+
toAwait.push(latch.await)
|
|
448
|
+
}
|
|
449
|
+
})
|
|
450
|
+
if (toAwait.length === 0) {
|
|
427
451
|
return Effect.void
|
|
428
452
|
}
|
|
429
453
|
return Effect.flatMap(
|
|
430
|
-
Effect.
|
|
454
|
+
Effect.all(toAwait, {
|
|
431
455
|
concurrency: "unbounded",
|
|
432
456
|
discard: true
|
|
433
457
|
}),
|
|
@@ -440,6 +464,9 @@ export const make = Effect.fnUntraced(function*<
|
|
|
440
464
|
return identity<EntityManager>({
|
|
441
465
|
interruptShard,
|
|
442
466
|
isProcessingFor(message, options) {
|
|
467
|
+
if (options?.excludeReplies !== true && processedRequestIds.has(message.envelope.requestId)) {
|
|
468
|
+
return true
|
|
469
|
+
}
|
|
443
470
|
const state = activeServers.get(message.envelope.address.entityId)
|
|
444
471
|
if (!state) return false
|
|
445
472
|
const request = state.activeRequests.get(message.envelope.requestId)
|
|
@@ -450,6 +477,9 @@ export const make = Effect.fnUntraced(function*<
|
|
|
450
477
|
}
|
|
451
478
|
return true
|
|
452
479
|
},
|
|
480
|
+
clearProcessed() {
|
|
481
|
+
processedRequestIds.clear()
|
|
482
|
+
},
|
|
453
483
|
sendLocal,
|
|
454
484
|
send: (message) =>
|
|
455
485
|
decodeMessage(message).pipe(
|
|
@@ -553,17 +583,3 @@ const retryRespond = <A, E, R>(times: number, effect: Effect.Effect<A, E, R>): E
|
|
|
553
583
|
times === 0 ?
|
|
554
584
|
effect :
|
|
555
585
|
Effect.catchAll(effect, () => Effect.delay(retryRespond(times - 1, effect), 200))
|
|
556
|
-
|
|
557
|
-
const IsInterruptedIgnoreReducer: Cause.CauseReducer<unknown, unknown, boolean> = {
|
|
558
|
-
emptyCase: Function.constFalse,
|
|
559
|
-
failCase: Function.constFalse,
|
|
560
|
-
dieCase: Function.constFalse,
|
|
561
|
-
interruptCase: (_, fiberId) => HashSet.has(FiberId.ids(fiberId), -1),
|
|
562
|
-
sequentialCase: (_, left, right) => left || right,
|
|
563
|
-
parallelCase: (_, left, right) => left || right
|
|
564
|
-
}
|
|
565
|
-
|
|
566
|
-
const isInterruptIgnore: (self: Cause.Cause<unknown>) => boolean = Cause.reduceWithContext(
|
|
567
|
-
undefined,
|
|
568
|
-
IsInterruptedIgnoreReducer
|
|
569
|
-
)
|
package/HttpCommon/package.json
DELETED
package/dist/cjs/HttpCommon.js
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.layerClientProtocolWebsocket = exports.layerClientProtocolHttp = void 0;
|
|
7
|
-
var HttpClient = _interopRequireWildcard(require("@effect/platform/HttpClient"));
|
|
8
|
-
var HttpClientRequest = _interopRequireWildcard(require("@effect/platform/HttpClientRequest"));
|
|
9
|
-
var Socket = _interopRequireWildcard(require("@effect/platform/Socket"));
|
|
10
|
-
var RpcClient = _interopRequireWildcard(require("@effect/rpc/RpcClient"));
|
|
11
|
-
var RpcSerialization = _interopRequireWildcard(require("@effect/rpc/RpcSerialization"));
|
|
12
|
-
var Effect = _interopRequireWildcard(require("effect/Effect"));
|
|
13
|
-
var Layer = _interopRequireWildcard(require("effect/Layer"));
|
|
14
|
-
var _Runners = require("./Runners.js");
|
|
15
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
16
|
-
/**
|
|
17
|
-
* @since 1.0.0
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* @since 1.0.0
|
|
22
|
-
* @category Layers
|
|
23
|
-
*/
|
|
24
|
-
const layerClientProtocolHttp = options => Layer.effect(_Runners.RpcClientProtocol, Effect.gen(function* () {
|
|
25
|
-
const serialization = yield* RpcSerialization.RpcSerialization;
|
|
26
|
-
const client = yield* HttpClient.HttpClient;
|
|
27
|
-
const https = options.https ?? false;
|
|
28
|
-
return address => {
|
|
29
|
-
const clientWithUrl = HttpClient.mapRequest(client, HttpClientRequest.prependUrl(`http${https ? "s" : ""}://${address.host}:${address.port}/${options.path}`));
|
|
30
|
-
return RpcClient.makeProtocolHttp(clientWithUrl).pipe(Effect.provideService(RpcSerialization.RpcSerialization, serialization));
|
|
31
|
-
};
|
|
32
|
-
}));
|
|
33
|
-
/**
|
|
34
|
-
* @since 1.0.0
|
|
35
|
-
* @category Layers
|
|
36
|
-
*/
|
|
37
|
-
exports.layerClientProtocolHttp = layerClientProtocolHttp;
|
|
38
|
-
const layerClientProtocolWebsocket = options => Layer.effect(_Runners.RpcClientProtocol, Effect.gen(function* () {
|
|
39
|
-
const serialization = yield* RpcSerialization.RpcSerialization;
|
|
40
|
-
const https = options.https ?? false;
|
|
41
|
-
const constructor = yield* Socket.WebSocketConstructor;
|
|
42
|
-
return Effect.fnUntraced(function* (address) {
|
|
43
|
-
const socket = yield* Socket.makeWebSocket(`ws${https ? "s" : ""}://${address.host}:${address.port}/${options.path}`).pipe(Effect.provideService(Socket.WebSocketConstructor, constructor));
|
|
44
|
-
return yield* RpcClient.makeProtocolSocket().pipe(Effect.provideService(Socket.Socket, socket), Effect.provideService(RpcSerialization.RpcSerialization, serialization));
|
|
45
|
-
});
|
|
46
|
-
}));
|
|
47
|
-
exports.layerClientProtocolWebsocket = layerClientProtocolWebsocket;
|
|
48
|
-
//# sourceMappingURL=HttpCommon.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"HttpCommon.js","names":["HttpClient","_interopRequireWildcard","require","HttpClientRequest","Socket","RpcClient","RpcSerialization","Effect","Layer","_Runners","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","layerClientProtocolHttp","options","effect","RpcClientProtocol","gen","serialization","client","https","address","clientWithUrl","mapRequest","prependUrl","host","port","path","makeProtocolHttp","pipe","provideService","exports","layerClientProtocolWebsocket","constructor","WebSocketConstructor","fnUntraced","socket","makeWebSocket","makeProtocolSocket"],"sources":["../../src/HttpCommon.ts"],"sourcesContent":[null],"mappings":";;;;;;AAGA,IAAAA,UAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAF,uBAAA,CAAAC,OAAA;AACA,IAAAE,MAAA,GAAAH,uBAAA,CAAAC,OAAA;AACA,IAAAG,SAAA,GAAAJ,uBAAA,CAAAC,OAAA;AACA,IAAAI,gBAAA,GAAAL,uBAAA,CAAAC,OAAA;AACA,IAAAK,MAAA,GAAAN,uBAAA,CAAAC,OAAA;AACA,IAAAM,KAAA,GAAAP,uBAAA,CAAAC,OAAA;AACA,IAAAO,QAAA,GAAAP,OAAA;AAAgD,SAAAD,wBAAAS,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAX,uBAAA,YAAAA,CAAAS,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;AAVhD;;;;AAYA;;;;AAIO,MAAMkB,uBAAuB,GAAIC,OAGvC,IAKCtB,KAAK,CAACuB,MAAM,CACVC,0BAAiB,EACjBzB,MAAM,CAAC0B,GAAG,CAAC,aAAS;EAClB,MAAMC,aAAa,GAAG,OAAO5B,gBAAgB,CAACA,gBAAgB;EAC9D,MAAM6B,MAAM,GAAG,OAAOnC,UAAU,CAACA,UAAU;EAC3C,MAAMoC,KAAK,GAAGN,OAAO,CAACM,KAAK,IAAI,KAAK;EACpC,OAAQC,OAAO,IAAI;IACjB,MAAMC,aAAa,GAAGtC,UAAU,CAACuC,UAAU,CACzCJ,MAAM,EACNhC,iBAAiB,CAACqC,UAAU,CAAC,OAAOJ,KAAK,GAAG,GAAG,GAAG,EAAE,MAAMC,OAAO,CAACI,IAAI,IAAIJ,OAAO,CAACK,IAAI,IAAIZ,OAAO,CAACa,IAAI,EAAE,CAAC,CAC1G;IACD,OAAOtC,SAAS,CAACuC,gBAAgB,CAACN,aAAa,CAAC,CAACO,IAAI,CACnDtC,MAAM,CAACuC,cAAc,CAACxC,gBAAgB,CAACA,gBAAgB,EAAE4B,aAAa,CAAC,CACxE;EACH,CAAC;AACH,CAAC,CAAC,CACH;AAEH;;;;AAAAa,OAAA,CAAAlB,uBAAA,GAAAA,uBAAA;AAIO,MAAMmB,4BAA4B,GAAIlB,OAG5C,IAKCtB,KAAK,CAACuB,MAAM,CACVC,0BAAiB,EACjBzB,MAAM,CAAC0B,GAAG,CAAC,aAAS;EAClB,MAAMC,aAAa,GAAG,OAAO5B,gBAAgB,CAACA,gBAAgB;EAC9D,MAAM8B,KAAK,GAAGN,OAAO,CAACM,KAAK,IAAI,KAAK;EACpC,MAAMa,WAAW,GAAG,OAAO7C,MAAM,CAAC8C,oBAAoB;EACtD,OAAO3C,MAAM,CAAC4C,UAAU,CAAC,WAAUd,OAAO;IACxC,MAAMe,MAAM,GAAG,OAAOhD,MAAM,CAACiD,aAAa,CACxC,KAAKjB,KAAK,GAAG,GAAG,GAAG,EAAE,MAAMC,OAAO,CAACI,IAAI,IAAIJ,OAAO,CAACK,IAAI,IAAIZ,OAAO,CAACa,IAAI,EAAE,CAC1E,CAACE,IAAI,CACJtC,MAAM,CAACuC,cAAc,CAAC1C,MAAM,CAAC8C,oBAAoB,EAAED,WAAW,CAAC,CAChE;IACD,OAAO,OAAO5C,SAAS,CAACiD,kBAAkB,EAAE,CAACT,IAAI,CAC/CtC,MAAM,CAACuC,cAAc,CAAC1C,MAAM,CAACA,MAAM,EAAEgD,MAAM,CAAC,EAC5C7C,MAAM,CAACuC,cAAc,CAACxC,gBAAgB,CAACA,gBAAgB,EAAE4B,aAAa,CAAC,CACxE;EACH,CAAC,CAAC;AACJ,CAAC,CAAC,CACH;AAAAa,OAAA,CAAAC,4BAAA,GAAAA,4BAAA","ignoreList":[]}
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.toHttpAppWebsocket = exports.toHttpApp = exports.layerWebsocketOptions = exports.layerWebsocket = exports.layerRunnerHealthWebsocket = exports.layerRunnerHealthHttp = exports.layerNoServerWebsocket = exports.layerNoServerHttp = exports.layerHttpOptions = exports.layerHttp = void 0;
|
|
7
|
-
var HttpRouter = _interopRequireWildcard(require("@effect/platform/HttpRouter"));
|
|
8
|
-
var HttpServer = _interopRequireWildcard(require("@effect/platform/HttpServer"));
|
|
9
|
-
var RpcServer = _interopRequireWildcard(require("@effect/rpc/RpcServer"));
|
|
10
|
-
var Effect = _interopRequireWildcard(require("effect/Effect"));
|
|
11
|
-
var _Function = require("effect/Function");
|
|
12
|
-
var Layer = _interopRequireWildcard(require("effect/Layer"));
|
|
13
|
-
var _HttpCommon = require("./HttpCommon.js");
|
|
14
|
-
var MessageStorage = _interopRequireWildcard(require("./MessageStorage.js"));
|
|
15
|
-
var RunnerHealth = _interopRequireWildcard(require("./RunnerHealth.js"));
|
|
16
|
-
var Runners = _interopRequireWildcard(require("./Runners.js"));
|
|
17
|
-
var ShardManager = _interopRequireWildcard(require("./ShardManager.js"));
|
|
18
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
19
|
-
/**
|
|
20
|
-
* @since 1.0.0
|
|
21
|
-
* @category Http App
|
|
22
|
-
*/
|
|
23
|
-
const toHttpApp = exports.toHttpApp = /*#__PURE__*/Effect.gen(function* () {
|
|
24
|
-
const handlers = yield* Layer.build(ShardManager.layerServerHandlers);
|
|
25
|
-
return yield* RpcServer.toHttpApp(ShardManager.Rpcs).pipe(Effect.provide(handlers));
|
|
26
|
-
});
|
|
27
|
-
/**
|
|
28
|
-
* @since 1.0.0
|
|
29
|
-
* @category Http App
|
|
30
|
-
*/
|
|
31
|
-
const toHttpAppWebsocket = exports.toHttpAppWebsocket = /*#__PURE__*/Effect.gen(function* () {
|
|
32
|
-
const handlers = yield* Layer.build(ShardManager.layerServerHandlers);
|
|
33
|
-
return yield* RpcServer.toHttpAppWebsocket(ShardManager.Rpcs).pipe(Effect.provide(handlers));
|
|
34
|
-
});
|
|
35
|
-
/**
|
|
36
|
-
* A layer for the `ShardManager` service, that does not run a server.
|
|
37
|
-
*
|
|
38
|
-
* It only provides the `Runners` rpc client.
|
|
39
|
-
*
|
|
40
|
-
* You can use this with the `toHttpApp` and `toHttpAppWebsocket` apis
|
|
41
|
-
* to run a complete `ShardManager` server.
|
|
42
|
-
*
|
|
43
|
-
* @since 1.0.0
|
|
44
|
-
* @category Layers
|
|
45
|
-
*/
|
|
46
|
-
const layerNoServerHttp = options => ShardManager.layer.pipe(Layer.provide(Runners.layerRpc.pipe(Layer.provide([(0, _HttpCommon.layerClientProtocolHttp)({
|
|
47
|
-
path: options.runnerPath,
|
|
48
|
-
https: options.runnerHttps
|
|
49
|
-
}), MessageStorage.layerNoop]))));
|
|
50
|
-
/**
|
|
51
|
-
* A layer for the `ShardManager` service, that does not run a server.
|
|
52
|
-
*
|
|
53
|
-
* It only provides the `Runners` rpc client.
|
|
54
|
-
*
|
|
55
|
-
* You can use this with the `toHttpApp` and `toHttpAppWebsocket` apis
|
|
56
|
-
* to run a complete `ShardManager` server.
|
|
57
|
-
*
|
|
58
|
-
* @since 1.0.0
|
|
59
|
-
* @category Layers
|
|
60
|
-
*/
|
|
61
|
-
exports.layerNoServerHttp = layerNoServerHttp;
|
|
62
|
-
const layerNoServerWebsocket = options => ShardManager.layer.pipe(Layer.provide(Runners.layerRpc.pipe(Layer.provide([(0, _HttpCommon.layerClientProtocolWebsocket)({
|
|
63
|
-
path: options.runnerPath,
|
|
64
|
-
https: options.runnerHttps
|
|
65
|
-
}), MessageStorage.layerNoop]))));
|
|
66
|
-
/**
|
|
67
|
-
* A HTTP layer for the `ShardManager` server, that adds a route to the provided
|
|
68
|
-
* `HttpRouter.Tag`.
|
|
69
|
-
*
|
|
70
|
-
* By default, it uses the `HttpRouter.Default` tag.
|
|
71
|
-
*
|
|
72
|
-
* @since 1.0.0
|
|
73
|
-
* @category Layers
|
|
74
|
-
*/
|
|
75
|
-
exports.layerNoServerWebsocket = layerNoServerWebsocket;
|
|
76
|
-
const layerHttpOptions = options => {
|
|
77
|
-
const routerTag = options.routerTag ?? HttpRouter.Default;
|
|
78
|
-
return routerTag.serve().pipe(options.logAddress ? withLogAddress : _Function.identity, Layer.merge(ShardManager.layerServer), Layer.provide(RpcServer.layerProtocolHttp(options)), Layer.provideMerge(layerNoServerHttp(options)));
|
|
79
|
-
};
|
|
80
|
-
/**
|
|
81
|
-
* A WebSocket layer for the `ShardManager` server, that adds a route to the provided
|
|
82
|
-
* `HttpRouter.Tag`.
|
|
83
|
-
*
|
|
84
|
-
* By default, it uses the `HttpRouter.Default` tag.
|
|
85
|
-
*
|
|
86
|
-
* @since 1.0.0
|
|
87
|
-
* @category Layers
|
|
88
|
-
*/
|
|
89
|
-
exports.layerHttpOptions = layerHttpOptions;
|
|
90
|
-
const layerWebsocketOptions = options => {
|
|
91
|
-
const routerTag = options.routerTag ?? HttpRouter.Default;
|
|
92
|
-
return routerTag.serve().pipe(options.logAddress ? withLogAddress : _Function.identity, Layer.merge(ShardManager.layerServer), Layer.provide(RpcServer.layerProtocolWebsocket(options)), Layer.provideMerge(layerNoServerWebsocket(options)));
|
|
93
|
-
};
|
|
94
|
-
exports.layerWebsocketOptions = layerWebsocketOptions;
|
|
95
|
-
const withLogAddress = layer => Layer.effectDiscard(HttpServer.addressFormattedWith(address => Effect.annotateLogs(Effect.logInfo(`Listening on: ${address}`), {
|
|
96
|
-
package: "@effect/cluster",
|
|
97
|
-
service: "ShardManager"
|
|
98
|
-
}))).pipe(Layer.provideMerge(layer));
|
|
99
|
-
/**
|
|
100
|
-
* A HTTP layer for the `ShardManager` server, that adds a route to the provided
|
|
101
|
-
* `HttpRouter.Tag`.
|
|
102
|
-
*
|
|
103
|
-
* By default, it uses the `HttpRouter.Default` tag.
|
|
104
|
-
*
|
|
105
|
-
* @since 1.0.0
|
|
106
|
-
* @category Layers
|
|
107
|
-
*/
|
|
108
|
-
const layerHttp = exports.layerHttp = /*#__PURE__*/layerHttpOptions({
|
|
109
|
-
path: "/",
|
|
110
|
-
runnerPath: "/"
|
|
111
|
-
});
|
|
112
|
-
/**
|
|
113
|
-
* A Websocket layer for the `ShardManager` server, that adds a route to the provided
|
|
114
|
-
* `HttpRouter.Tag`.
|
|
115
|
-
*
|
|
116
|
-
* By default, it uses the `HttpRouter.Default` tag.
|
|
117
|
-
*
|
|
118
|
-
* @since 1.0.0
|
|
119
|
-
* @category Layers
|
|
120
|
-
*/
|
|
121
|
-
const layerWebsocket = exports.layerWebsocket = /*#__PURE__*/layerWebsocketOptions({
|
|
122
|
-
path: "/",
|
|
123
|
-
runnerPath: "/"
|
|
124
|
-
});
|
|
125
|
-
/**
|
|
126
|
-
* @since 1.0.0
|
|
127
|
-
* @category Layers
|
|
128
|
-
*/
|
|
129
|
-
const layerRunnerHealthHttp = exports.layerRunnerHealthHttp = /*#__PURE__*/Layer.provide(RunnerHealth.layerRpc, /*#__PURE__*/(0, _HttpCommon.layerClientProtocolHttp)({
|
|
130
|
-
path: "/"
|
|
131
|
-
}));
|
|
132
|
-
/**
|
|
133
|
-
* @since 1.0.0
|
|
134
|
-
* @category Layers
|
|
135
|
-
*/
|
|
136
|
-
const layerRunnerHealthWebsocket = exports.layerRunnerHealthWebsocket = /*#__PURE__*/Layer.provide(RunnerHealth.layerRpc, /*#__PURE__*/(0, _HttpCommon.layerClientProtocolWebsocket)({
|
|
137
|
-
path: "/"
|
|
138
|
-
}));
|
|
139
|
-
//# sourceMappingURL=HttpShardManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"HttpShardManager.js","names":["HttpRouter","_interopRequireWildcard","require","HttpServer","RpcServer","Effect","_Function","Layer","_HttpCommon","MessageStorage","RunnerHealth","Runners","ShardManager","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","toHttpApp","exports","gen","handlers","build","layerServerHandlers","Rpcs","pipe","provide","toHttpAppWebsocket","layerNoServerHttp","options","layer","layerRpc","layerClientProtocolHttp","path","runnerPath","https","runnerHttps","layerNoop","layerNoServerWebsocket","layerClientProtocolWebsocket","layerHttpOptions","routerTag","Default","serve","logAddress","withLogAddress","identity","merge","layerServer","layerProtocolHttp","provideMerge","layerWebsocketOptions","layerProtocolWebsocket","effectDiscard","addressFormattedWith","address","annotateLogs","logInfo","package","service","layerHttp","layerWebsocket","layerRunnerHealthHttp","layerRunnerHealthWebsocket"],"sources":["../../src/HttpShardManager.ts"],"sourcesContent":[null],"mappings":";;;;;;AAKA,IAAAA,UAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,uBAAA,CAAAC,OAAA;AAGA,IAAAE,SAAA,GAAAH,uBAAA,CAAAC,OAAA;AACA,IAAAG,MAAA,GAAAJ,uBAAA,CAAAC,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAN,uBAAA,CAAAC,OAAA;AAEA,IAAAM,WAAA,GAAAN,OAAA;AACA,IAAAO,cAAA,GAAAR,uBAAA,CAAAC,OAAA;AACA,IAAAQ,YAAA,GAAAT,uBAAA,CAAAC,OAAA;AACA,IAAAS,OAAA,GAAAV,uBAAA,CAAAC,OAAA;AAEA,IAAAU,YAAA,GAAAX,uBAAA,CAAAC,OAAA;AAAiD,SAAAD,wBAAAY,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAd,uBAAA,YAAAA,CAAAY,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;AAGjD;;;;AAIO,MAAMkB,SAAS,GAAAC,OAAA,CAAAD,SAAA,gBAIlB3B,MAAM,CAAC6B,GAAG,CAAC,aAAS;EACtB,MAAMC,QAAQ,GAAG,OAAO5B,KAAK,CAAC6B,KAAK,CAACxB,YAAY,CAACyB,mBAAmB,CAAC;EACrE,OAAO,OAAOjC,SAAS,CAAC4B,SAAS,CAACpB,YAAY,CAAC0B,IAAI,CAAC,CAACC,IAAI,CACvDlC,MAAM,CAACmC,OAAO,CAACL,QAAQ,CAAC,CACzB;AACH,CAAC,CAAC;AAEF;;;;AAIO,MAAMM,kBAAkB,GAAAR,OAAA,CAAAQ,kBAAA,gBAI3BpC,MAAM,CAAC6B,GAAG,CAAC,aAAS;EACtB,MAAMC,QAAQ,GAAG,OAAO5B,KAAK,CAAC6B,KAAK,CAACxB,YAAY,CAACyB,mBAAmB,CAAC;EACrE,OAAO,OAAOjC,SAAS,CAACqC,kBAAkB,CAAC7B,YAAY,CAAC0B,IAAI,CAAC,CAACC,IAAI,CAChElC,MAAM,CAACmC,OAAO,CAACL,QAAQ,CAAC,CACzB;AACH,CAAC,CAAC;AAEF;;;;;;;;;;;AAWO,MAAMO,iBAAiB,GAC5BC,OAGC,IAWD/B,YAAY,CAACgC,KAAK,CAACL,IAAI,CACrBhC,KAAK,CAACiC,OAAO,CAAC7B,OAAO,CAACkC,QAAQ,CAACN,IAAI,CACjChC,KAAK,CAACiC,OAAO,CAAC,CACZ,IAAAM,mCAAuB,EAAC;EACtBC,IAAI,EAAEJ,OAAO,CAACK,UAAU;EACxBC,KAAK,EAAEN,OAAO,CAACO;CAChB,CAAC,EACFzC,cAAc,CAAC0C,SAAS,CACzB,CAAC,CACH,CAAC,CACH;AAEH;;;;;;;;;;;AAAAlB,OAAA,CAAAS,iBAAA,GAAAA,iBAAA;AAWO,MAAMU,sBAAsB,GACjCT,OAGC,IAWD/B,YAAY,CAACgC,KAAK,CAACL,IAAI,CACrBhC,KAAK,CAACiC,OAAO,CAAC7B,OAAO,CAACkC,QAAQ,CAACN,IAAI,CACjChC,KAAK,CAACiC,OAAO,CAAC,CACZ,IAAAa,wCAA4B,EAAC;EAC3BN,IAAI,EAAEJ,OAAO,CAACK,UAAU;EACxBC,KAAK,EAAEN,OAAO,CAACO;CAChB,CAAC,EACFzC,cAAc,CAAC0C,SAAS,CACzB,CAAC,CACH,CAAC,CACH;AAEH;;;;;;;;;AAAAlB,OAAA,CAAAmB,sBAAA,GAAAA,sBAAA;AASO,MAAME,gBAAgB,GAC3BX,OAMC,IAWC;EACF,MAAMY,SAAS,GAAGZ,OAAO,CAACY,SAAS,IAAIvD,UAAU,CAACwD,OAAO;EACzD,OAAOD,SAAS,CAACE,KAAK,EAAE,CAAClB,IAAI,CAC3BI,OAAO,CAACe,UAAU,GAAGC,cAAc,GAAGC,kBAAQ,EAC9CrD,KAAK,CAACsD,KAAK,CAACjD,YAAY,CAACkD,WAAW,CAAC,EACrCvD,KAAK,CAACiC,OAAO,CAACpC,SAAS,CAAC2D,iBAAiB,CAACpB,OAAO,CAAC,CAAC,EACnDpC,KAAK,CAACyD,YAAY,CAACtB,iBAAiB,CAACC,OAAO,CAAC,CAAC,CAC/C;AACH,CAAC;AAED;;;;;;;;;AAAAV,OAAA,CAAAqB,gBAAA,GAAAA,gBAAA;AASO,MAAMW,qBAAqB,GAChCtB,OAMC,IAWC;EACF,MAAMY,SAAS,GAAGZ,OAAO,CAACY,SAAS,IAAIvD,UAAU,CAACwD,OAAO;EACzD,OAAOD,SAAS,CAACE,KAAK,EAAE,CAAClB,IAAI,CAC3BI,OAAO,CAACe,UAAU,GAAGC,cAAc,GAAGC,kBAAQ,EAC9CrD,KAAK,CAACsD,KAAK,CAACjD,YAAY,CAACkD,WAAW,CAAC,EACrCvD,KAAK,CAACiC,OAAO,CAACpC,SAAS,CAAC8D,sBAAsB,CAACvB,OAAO,CAAC,CAAC,EACxDpC,KAAK,CAACyD,YAAY,CAACZ,sBAAsB,CAACT,OAAO,CAAC,CAAC,CACpD;AACH,CAAC;AAAAV,OAAA,CAAAgC,qBAAA,GAAAA,qBAAA;AAED,MAAMN,cAAc,GAAaf,KAA2B,IAC1DrC,KAAK,CAAC4D,aAAa,CACjBhE,UAAU,CAACiE,oBAAoB,CAAEC,OAAO,IACtChE,MAAM,CAACiE,YAAY,CAACjE,MAAM,CAACkE,OAAO,CAAC,iBAAiBF,OAAO,EAAE,CAAC,EAAE;EAC9DG,OAAO,EAAE,iBAAiB;EAC1BC,OAAO,EAAE;CACV,CAAC,CACH,CACF,CAAClC,IAAI,CAAChC,KAAK,CAACyD,YAAY,CAACpB,KAAK,CAAC,CAAC;AAEnC;;;;;;;;;AASO,MAAM8B,SAAS,GAAAzC,OAAA,CAAAyC,SAAA,gBAUlBpB,gBAAgB,CAAC;EAAEP,IAAI,EAAE,GAAG;EAAEC,UAAU,EAAE;AAAG,CAAE,CAAC;AAEpD;;;;;;;;;AASO,MAAM2B,cAAc,GAAA1C,OAAA,CAAA0C,cAAA,gBAUvBV,qBAAqB,CAAC;EAAElB,IAAI,EAAE,GAAG;EAAEC,UAAU,EAAE;AAAG,CAAE,CAAC;AAEzD;;;;AAIO,MAAM4B,qBAAqB,GAAA3C,OAAA,CAAA2C,qBAAA,gBAI9BrE,KAAK,CAACiC,OAAO,CAAC9B,YAAY,CAACmC,QAAQ,eAAE,IAAAC,mCAAuB,EAAC;EAAEC,IAAI,EAAE;AAAG,CAAE,CAAC,CAAC;AAEhF;;;;AAIO,MAAM8B,0BAA0B,GAAA5C,OAAA,CAAA4C,0BAAA,gBAInCtE,KAAK,CAACiC,OAAO,CAAC9B,YAAY,CAACmC,QAAQ,eAAE,IAAAQ,wCAA4B,EAAC;EAAEN,IAAI,EAAE;AAAG,CAAE,CAAC,CAAC","ignoreList":[]}
|