dfx 0.107.0 → 0.107.1

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.
@@ -30,7 +30,7 @@ export declare const DiscordWS: import("effect/Context").Tag<DiscordWS, {
30
30
  readonly connect: ({ onConnecting, outbound, url, version, }: OpenOpts) => Effect.Effect<{
31
31
  readonly take: Effect.Effect<Discord.GatewayPayload<any>, Cause.NoSuchElementException, never>;
32
32
  readonly setUrl: (url: string) => Effect.Effect<void, never, never>;
33
- }, never, import("effect/Scope").Scope | Socket.WebSocketConstructor>;
33
+ }, never, Socket.WebSocketConstructor | import("effect/Scope").Scope>;
34
34
  }>;
35
35
  export declare const DiscordWSLive: Layer.Layer<DiscordWS, never, DiscordWSCodec>;
36
36
  //# sourceMappingURL=DiscordWS.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DiscordWS.d.ts","sourceRoot":"","sources":["../src/DiscordGateway/DiscordWS.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,KAAK,OAAO,MAAM,WAAW,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,yBAAyB,CAAA;AAGjD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAIrC,MAAM,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAA;AAExD,eAAO,MAAM,SAAS,eAAgD,CAAA;AACtE,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAA;AAExC,MAAM,WAAW,QAAQ;IACvB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAChC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CAClC;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAA;IACpB,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,cAAc,KAAK,UAAU,GAAG,MAAM,CAAA;IAC1D,MAAM,EAAE,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,KAAK,OAAO,CAAC,cAAc,CAAA;CAC3D;AACD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,CAAC,EAAE,OAAO,MAAM,CAAA;CAC1B;AAKD,eAAO,MAAM,cAAc,qEAE1B,CAAA;AACD,eAAO,MAAM,sBAAsB,2CAIjC,CAAA;AA6EF,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,CAAC,EAAE,OAAO,MAAM,CAAA;CAC1B;AACD,eAAO,MAAM,SAAS;kEAtEjB,QAAQ;;+BAKc,MAAM;;EAoEA,CAAA;AACjC,eAAO,MAAM,aAAa,+CAAgC,CAAA"}
1
+ {"version":3,"file":"DiscordWS.d.ts","sourceRoot":"","sources":["../src/DiscordGateway/DiscordWS.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,KAAK,OAAO,MAAM,WAAW,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,yBAAyB,CAAA;AAGjD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAKrC,MAAM,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAA;AAExD,eAAO,MAAM,SAAS,eAAgD,CAAA;AACtE,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAA;AAExC,MAAM,WAAW,QAAQ;IACvB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAChC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CAClC;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAA;IACpB,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,cAAc,KAAK,UAAU,GAAG,MAAM,CAAA;IAC1D,MAAM,EAAE,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,KAAK,OAAO,CAAC,cAAc,CAAA;CAC3D;AACD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,CAAC,EAAE,OAAO,MAAM,CAAA;CAC1B;AAMD,eAAO,MAAM,cAAc,qEAE1B,CAAA;AACD,eAAO,MAAM,sBAAsB,2CAIjC,CAAA;AA+EF,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,CAAC,EAAE,OAAO,MAAM,CAAA;CAC1B;AACD,eAAO,MAAM,SAAS;kEAxEjB,QAAQ;;+BAKc,MAAM;;EAsEA,CAAA;AACjC,eAAO,MAAM,aAAa,+CAAgC,CAAA"}
@@ -14,11 +14,13 @@ var Schedule = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect
14
14
  var Cause = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Cause"));
15
15
  var Option = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Option"));
16
16
  var LogLevel = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/LogLevel"));
17
+ var Fiber = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Fiber"));
17
18
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
18
19
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
19
20
  const Reconnect = exports.Reconnect = /*#__PURE__*/Symbol.for("dfx/DiscordGateway/WS/Reconnect");
20
21
  const decoder = /*#__PURE__*/new TextDecoder();
21
22
  const logLevelDebug = /*#__PURE__*/Option.some(LogLevel.Debug);
23
+ const logLevelTrace = /*#__PURE__*/Option.some(LogLevel.Trace);
22
24
  const DiscordWSCodec = exports.DiscordWSCodec = /*#__PURE__*/(0, _Context.GenericTag)("dfx/DiscordGateway/DiscordWS/Codec");
23
25
  const JsonDiscordWSCodecLive = exports.JsonDiscordWSCodecLive = /*#__PURE__*/Layer.succeed(DiscordWSCodec, {
24
26
  type: "json",
@@ -41,12 +43,21 @@ const make = /*#__PURE__*/Effect.gen(function* () {
41
43
  openTimeout: 5000
42
44
  });
43
45
  const write = yield* socket.writer;
44
- yield* outbound.pipe(Effect.flatMap(_ => {
45
- if (_ === Reconnect) {
46
- return Effect.zipRight(Effect.logTrace("Reconnecting"), write(new Socket.CloseEvent(1012, "reconnecting")));
46
+ yield* Effect.gen(function* () {
47
+ const fiber = Option.getOrThrow(Fiber.getCurrentFiber());
48
+ while (true) {
49
+ const message = yield* outbound;
50
+ if (message === Reconnect) {
51
+ ;
52
+ fiber.log(["Reconnecting"], Cause.empty, logLevelTrace);
53
+ yield* write(new Socket.CloseEvent(1012, "reconnecting"));
54
+ return;
55
+ }
56
+ ;
57
+ fiber.log([message], Cause.empty, logLevelTrace);
58
+ yield* write(encoding.encode(message));
47
59
  }
48
- return Effect.zipRight(Effect.logTrace(_), write(encoding.encode(_)));
49
- }), Effect.forever, Effect.annotateLogs("channel", "outbound"), Effect.forkScoped, Effect.interruptible);
60
+ }).pipe(Effect.annotateLogs("channel", "outbound"), Effect.forkScoped, Effect.interruptible);
50
61
  yield* onConnecting.pipe(Effect.zipRight(Effect.withFiberRuntime(fiber => socket.runRaw(_ => {
51
62
  const message = encoding.decode(_);
52
63
  messages.unsafeOffer(message);
@@ -1 +1 @@
1
- {"version":3,"file":"DiscordWS.js","names":["_Context","require","Effect","_interopRequireWildcard","Layer","Ref","Socket","Mailbox","Schedule","Cause","Option","LogLevel","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Reconnect","exports","Symbol","for","decoder","TextDecoder","logLevelDebug","some","Debug","DiscordWSCodec","GenericTag","JsonDiscordWSCodecLive","succeed","type","encode","p","JSON","stringify","decode","parse","make","gen","encoding","connect","onConnecting","outbound","url","version","urlRef","setUrl","messages","socket","makeWebSocket","closeCodeIsError","_","openTimeout","write","writer","pipe","flatMap","zipRight","logTrace","CloseEvent","forever","annotateLogs","forkScoped","interruptible","withFiberRuntime","fiber","runRaw","message","unsafeOffer","log","empty","retry","while","reason","code","catchAllCause","cause","logDebug","repeat","exponential","union","spaced","take","module","DiscordWS","DiscordWSLive","effect"],"sources":["../src/DiscordGateway/DiscordWS.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DiscordWS.js","names":["_Context","require","Effect","_interopRequireWildcard","Layer","Ref","Socket","Mailbox","Schedule","Cause","Option","LogLevel","Fiber","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Reconnect","exports","Symbol","for","decoder","TextDecoder","logLevelDebug","some","Debug","logLevelTrace","Trace","DiscordWSCodec","GenericTag","JsonDiscordWSCodecLive","succeed","type","encode","p","JSON","stringify","decode","parse","make","gen","encoding","connect","onConnecting","outbound","url","version","urlRef","setUrl","messages","socket","makeWebSocket","closeCodeIsError","_","openTimeout","write","writer","fiber","getOrThrow","getCurrentFiber","message","log","empty","CloseEvent","pipe","annotateLogs","forkScoped","interruptible","zipRight","withFiberRuntime","runRaw","unsafeOffer","retry","while","reason","code","catchAllCause","cause","logDebug","repeat","exponential","union","spaced","take","module","DiscordWS","DiscordWSLive","effect"],"sources":["../src/DiscordGateway/DiscordWS.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -5,12 +5,17 @@ import { ShardStateStore } from "dfx/DiscordGateway/Shard/StateStore";
5
5
  import { RateLimiter } from "dfx/RateLimit";
6
6
  import * as Effect from "effect/Effect";
7
7
  import * as Layer from "effect/Layer";
8
+ declare const enum Phase {
9
+ Connecting = 0,
10
+ Handshake = 1,
11
+ Connected = 2
12
+ }
8
13
  export declare const make: Effect.Effect<{
9
14
  readonly connect: (shard: [id: number, count: number]) => Effect.Effect<{
10
15
  readonly id: [id: number, count: number];
11
- readonly send: (p: Message) => Effect.Effect<boolean, never, never>;
12
- }, never, import("effect/Scope").Scope | import("@effect/platform/Socket").WebSocketConstructor>;
13
- }, never, DiscordConfig | RateLimiter | DiscordWS | import("dfx/DiscordGateway/Messaging").Messsaging | ShardStateStore>;
16
+ readonly send: (p: Message) => Generator<import("effect/Utils").YieldWrap<Effect.Effect<Phase, never, never>>, void, any>;
17
+ }, never, import("@effect/platform/Socket").WebSocketConstructor | import("effect/Scope").Scope>;
18
+ }, never, import("dfx/DiscordGateway/Messaging").Messsaging | DiscordConfig | ShardStateStore | RateLimiter | DiscordWS>;
14
19
  type ShardService = Effect.Effect.Success<typeof make>;
15
20
  export interface Shard {
16
21
  readonly _: unique symbol;
@@ -18,8 +23,8 @@ export interface Shard {
18
23
  export declare const Shard: import("effect/Context").Tag<Shard, {
19
24
  readonly connect: (shard: [id: number, count: number]) => Effect.Effect<{
20
25
  readonly id: [id: number, count: number];
21
- readonly send: (p: Message) => Effect.Effect<boolean, never, never>;
22
- }, never, import("effect/Scope").Scope | import("@effect/platform/Socket").WebSocketConstructor>;
26
+ readonly send: (p: Message) => Generator<import("effect/Utils").YieldWrap<Effect.Effect<Phase, never, never>>, void, any>;
27
+ }, never, import("@effect/platform/Socket").WebSocketConstructor | import("effect/Scope").Scope>;
23
28
  }>;
24
29
  export declare const ShardLive: Layer.Layer<Shard, never, DiscordConfig | import("dfx/RateLimit").RateLimitStore | import("dfx/DiscordGateway/DiscordWS").DiscordWSCodec | ShardStateStore>;
25
30
  export interface RunningShard extends Effect.Effect.Success<ReturnType<ShardService["connect"]>> {
@@ -1 +1 @@
1
- {"version":3,"file":"Shard.d.ts","sourceRoot":"","sources":["../src/DiscordGateway/Shard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EACL,SAAS,EAGV,MAAM,8BAA8B,CAAA;AAGrC,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAGrE,OAAO,EAAE,WAAW,EAAmB,MAAM,eAAe,CAAA;AAK5D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAerC,eAAO,MAAM,IAAI;8BAOS,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;;2BA0B9B,OAAO;;wHAmJ5B,CAAA;AAEF,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,CAAA;AAEtD,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,CAAC,EAAE,OAAO,MAAM,CAAA;CAC1B;AACD,eAAO,MAAM,KAAK;8BApLQ,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;;2BA0B9B,OAAO;;EA0JkD,CAAA;AAChF,eAAO,MAAM,SAAS,6JAIrB,CAAA;AAGD,MAAM,WAAW,YACf,SAAQ,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;CAAG"}
1
+ {"version":3,"file":"Shard.d.ts","sourceRoot":"","sources":["../src/DiscordGateway/Shard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EACL,SAAS,EAGV,MAAM,8BAA8B,CAAA;AAGrC,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAGrE,OAAO,EAAE,WAAW,EAAmB,MAAM,eAAe,CAAA;AAK5D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AASrC,mBAAW,KAAK;IACd,UAAU,IAAA;IACV,SAAS,IAAA;IACT,SAAS,IAAA;CACV;AAED,eAAO,MAAM,IAAI;8BAOS,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;;2BA2B7B,OAAO;;wHA4J7B,CAAA;AAEF,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,CAAA;AAEtD,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,CAAC,EAAE,OAAO,MAAM,CAAA;CAC1B;AACD,eAAO,MAAM,KAAK;8BA9LQ,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;;2BA2B7B,OAAO;;EAmKiD,CAAA;AAChF,eAAO,MAAM,SAAS,6JAIrB,CAAA;AAGD,MAAM,WAAW,YACf,SAAQ,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;CAAG"}
@@ -16,13 +16,13 @@ var Chunk = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Ch
16
16
  var _Context = /*#__PURE__*/require("effect/Context");
17
17
  var Duration = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Duration"));
18
18
  var Effect = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Effect"));
19
- var _Function = /*#__PURE__*/require("effect/Function");
20
19
  var Layer = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Layer"));
21
20
  var Option = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Option"));
22
- var PubSub = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/PubSub"));
23
21
  var Mailbox = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Mailbox"));
24
22
  var Redacted = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Redacted"));
25
23
  var Ref = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Ref"));
24
+ var _Effect2 = /*#__PURE__*/require("dfx/utils/Effect");
25
+ var FiberHandle = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/FiberHandle"));
26
26
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
27
27
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
28
28
  const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
@@ -40,6 +40,7 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
40
40
  const connect = shard => Effect.gen(function* (_) {
41
41
  const outboundQueue = yield* Mailbox.make();
42
42
  const pendingQueue = yield* Mailbox.make();
43
+ const reconnectHandle = yield* FiberHandle.make();
43
44
  const phase = yield* Ref.make(0 /* Phase.Connecting */);
44
45
  const stateStore = shardState.forShard(shard);
45
46
  const resumeState = Option.getOrElse(yield* stateStore.get, () => ({
@@ -49,11 +50,32 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
49
50
  }));
50
51
  const setPhase = p => Effect.zipLeft(Ref.set(phase, p), Effect.annotateLogs(Effect.logTrace("phase transition"), "phase", p));
51
52
  const outbound = Effect.orDie(Effect.zipLeft(outboundQueue.take, limiter.maybeWait("dfx.shard.send", Duration.minutes(1), 120)));
52
- const send = p => Effect.flatMap(Ref.get(phase), phase => phase === 2 /* Phase.Connected */ ? outboundQueue.offer(p) : pendingQueue.offer(p));
53
- const heartbeatSend = p => Effect.flatMap(Ref.get(phase), phase => phase !== 0 /* Phase.Connecting */ ? outboundQueue.offer(p) : Effect.succeed(false));
53
+ function* send(p) {
54
+ if ((yield* Ref.get(phase)) === 2 /* Phase.Connected */) {
55
+ outboundQueue.unsafeOffer(p);
56
+ } else {
57
+ pendingQueue.unsafeOffer(p);
58
+ }
59
+ }
60
+ const heartbeatSend = (0, _Effect2.genFn)(function* (p) {
61
+ if ((yield* Ref.get(phase)) !== 0 /* Phase.Connecting */) {
62
+ outboundQueue.unsafeOffer(p);
63
+ return true;
64
+ }
65
+ return false;
66
+ });
54
67
  const prioritySend = p => outboundQueue.offer(p);
55
- const resume = (0, _Function.pipe)(setPhase(2 /* Phase.Connected */), Effect.zipRight(pendingQueue.clear), Effect.tap(_ => outboundQueue.offerAll(_)), Effect.asVoid);
56
- const onConnecting = (0, _Function.pipe)(outboundQueue.clear, Effect.tap(msgs => pendingQueue.offerAll(Chunk.filter(msgs, msg => msg !== _DiscordWS.Reconnect && msg.op !== Discord.GatewayOpcode.IDENTIFY && msg.op !== Discord.GatewayOpcode.RESUME && msg.op !== Discord.GatewayOpcode.HEARTBEAT))), Effect.zipRight(setPhase(0 /* Phase.Connecting */)));
68
+ const resume = Effect.gen(function* () {
69
+ yield* FiberHandle.clear(reconnectHandle);
70
+ yield* setPhase(2 /* Phase.Connected */);
71
+ const msgs = yield* pendingQueue.clear;
72
+ outboundQueue.unsafeOfferAll(Chunk.filter(msgs, msg => msg !== _DiscordWS.Reconnect && msg.op !== Discord.GatewayOpcode.IDENTIFY && msg.op !== Discord.GatewayOpcode.RESUME && msg.op !== Discord.GatewayOpcode.HEARTBEAT));
73
+ });
74
+ const onConnecting = Effect.gen(function* () {
75
+ const msgs = yield* outboundQueue.clear;
76
+ pendingQueue.unsafeOfferAll(Chunk.filter(msgs, msg => msg !== _DiscordWS.Reconnect && msg.op !== Discord.GatewayOpcode.IDENTIFY && msg.op !== Discord.GatewayOpcode.RESUME && msg.op !== Discord.GatewayOpcode.HEARTBEAT));
77
+ yield* setPhase(0 /* Phase.Connecting */);
78
+ });
57
79
  const socket = yield* dws.connect({
58
80
  outbound,
59
81
  onConnecting
@@ -69,7 +91,12 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
69
91
  intents: gateway.intents,
70
92
  presence: gateway.presence
71
93
  }, stateStore.get);
72
- const onPayload = p => (0, _Function.pipe)(Effect.suspend(() => {
94
+ // delayed reconnect
95
+ const delayedReconnect = Effect.gen(function* () {
96
+ yield* Effect.sleep(30_000);
97
+ yield* prioritySend(_DiscordWS.Reconnect);
98
+ });
99
+ function* onPayload(p) {
73
100
  if (typeof p.s === "number") {
74
101
  resumeState.sequence = p.s;
75
102
  }
@@ -77,49 +104,59 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
77
104
  const payload = p.d;
78
105
  resumeState.sessionId = payload.session_id;
79
106
  resumeState.resumeUrl = payload.resume_gateway_url;
80
- return Effect.zipRight(stateStore.set(resumeState), socket.setUrl(payload.resume_gateway_url));
107
+ yield* stateStore.set(resumeState);
108
+ yield* socket.setUrl(payload.resume_gateway_url);
109
+ } else if (resumeState.resumeUrl !== "" && resumeState.sessionId !== "") {
110
+ yield* stateStore.set(resumeState);
81
111
  }
82
- if (resumeState.resumeUrl !== "" && resumeState.sessionId !== "") {
83
- return stateStore.set(resumeState);
84
- }
85
- return Effect.void;
86
- }), Effect.tap(() => {
87
112
  switch (p.op) {
88
113
  case Discord.GatewayOpcode.HELLO:
89
114
  {
90
- return (0, _Function.pipe)(Effect.tap(identify, prioritySend), Effect.zipRight(setPhase(1 /* Phase.Handshake */)), Effect.zipRight(hellos.offer(p)));
115
+ yield* prioritySend(yield* identify);
116
+ yield* setPhase(1 /* Phase.Handshake */);
117
+ hellos.unsafeOffer(p);
118
+ yield* FiberHandle.run(reconnectHandle, delayedReconnect);
119
+ break;
91
120
  }
92
121
  case Discord.GatewayOpcode.HEARTBEAT_ACK:
93
122
  {
94
- return acks.offer(p);
123
+ acks.unsafeOffer(p);
124
+ break;
95
125
  }
96
126
  case Discord.GatewayOpcode.INVALID_SESSION:
97
127
  {
98
- if (p.d) {
99
- return send(_DiscordWS.Reconnect);
128
+ if (!p.d) {
129
+ resumeState.sessionId = "";
130
+ yield* stateStore.clear;
100
131
  }
101
- resumeState.sessionId = "";
102
- return Effect.zipRight(stateStore.clear, send(_DiscordWS.Reconnect));
132
+ yield* send(_DiscordWS.Reconnect);
133
+ break;
103
134
  }
104
135
  case Discord.GatewayOpcode.DISPATCH:
105
136
  {
106
137
  if (p.t === "READY" || p.t === "RESUMED") {
107
- return Effect.zipRight(resume, PubSub.publish(hub, p));
138
+ yield* resume;
108
139
  }
109
- return PubSub.publish(hub, p);
140
+ hub.unsafeOffer(p);
141
+ break;
110
142
  }
111
143
  case Discord.GatewayOpcode.RECONNECT:
112
144
  {
113
- return prioritySend(_DiscordWS.Reconnect);
114
- }
115
- default:
116
- {
117
- return Effect.void;
145
+ yield* prioritySend(_DiscordWS.Reconnect);
146
+ break;
118
147
  }
119
148
  }
120
- }));
121
- yield* sendMailbox.take.pipe(Effect.tap(send), Effect.forever, Effect.forkScoped, Effect.interruptible);
122
- yield* socket.take.pipe(Effect.flatMap(onPayload), Effect.forever, Effect.forkScoped, Effect.interruptible);
149
+ }
150
+ yield* Effect.gen(function* () {
151
+ while (true) {
152
+ yield* send(yield* sendMailbox.take);
153
+ }
154
+ }).pipe(Effect.forkScoped, Effect.interruptible);
155
+ yield* Effect.gen(function* () {
156
+ while (true) {
157
+ yield* onPayload(yield* socket.take);
158
+ }
159
+ }).pipe(Effect.forkScoped, Effect.interruptible);
123
160
  return {
124
161
  id: shard,
125
162
  send
@@ -1 +1 @@
1
- {"version":3,"file":"Shard.js","names":["_DiscordConfig","require","_DiscordWS","_Messaging","_StateStore","Heartbeats","_interopRequireWildcard","Identify","_RateLimit","Discord","Chunk","_Context","Duration","Effect","_Function","Layer","Option","PubSub","Mailbox","Redacted","Ref","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","make","exports","gen","gateway","token","DiscordConfig","limiter","RateLimiter","dws","DiscordWS","hub","sendMailbox","Messaging","shardState","ShardStateStore","connect","shard","_","outboundQueue","pendingQueue","phase","stateStore","forShard","resumeState","getOrElse","resumeUrl","sessionId","sequence","setPhase","p","zipLeft","annotateLogs","logTrace","outbound","orDie","take","maybeWait","minutes","send","flatMap","offer","heartbeatSend","succeed","prioritySend","resume","pipe","zipRight","clear","tap","offerAll","asVoid","onConnecting","msgs","filter","msg","Reconnect","op","GatewayOpcode","IDENTIFY","RESUME","HEARTBEAT","socket","hellos","acquireRelease","shutdown","acks","forkScoped","interruptible","identify","identifyOrResume","value","intents","presence","onPayload","suspend","s","DISPATCH","payload","d","session_id","resume_gateway_url","setUrl","void","HELLO","HEARTBEAT_ACK","INVALID_SESSION","publish","RECONNECT","forever","id","package","module","Shard","GenericTag","ShardLive","effect","provide","DiscordWSLive","MesssagingLive","RateLimiterLive"],"sources":["../src/DiscordGateway/Shard.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Shard.js","names":["_DiscordConfig","require","_DiscordWS","_Messaging","_StateStore","Heartbeats","_interopRequireWildcard","Identify","_RateLimit","Discord","Chunk","_Context","Duration","Effect","Layer","Option","Mailbox","Redacted","Ref","_Effect2","FiberHandle","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","make","exports","gen","gateway","token","DiscordConfig","limiter","RateLimiter","dws","DiscordWS","hub","sendMailbox","Messaging","shardState","ShardStateStore","connect","shard","_","outboundQueue","pendingQueue","reconnectHandle","phase","stateStore","forShard","resumeState","getOrElse","resumeUrl","sessionId","sequence","setPhase","p","zipLeft","annotateLogs","logTrace","outbound","orDie","take","maybeWait","minutes","send","unsafeOffer","heartbeatSend","genFn","prioritySend","offer","resume","clear","msgs","unsafeOfferAll","filter","msg","Reconnect","op","GatewayOpcode","IDENTIFY","RESUME","HEARTBEAT","onConnecting","socket","hellos","acquireRelease","shutdown","acks","pipe","forkScoped","interruptible","identify","identifyOrResume","value","intents","presence","delayedReconnect","sleep","onPayload","s","DISPATCH","payload","d","session_id","resume_gateway_url","setUrl","HELLO","run","HEARTBEAT_ACK","INVALID_SESSION","RECONNECT","id","package","module","Shard","GenericTag","ShardLive","effect","provide","DiscordWSLive","MesssagingLive","RateLimiterLive"],"sources":["../src/DiscordGateway/Shard.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,cAAA,gBAAAC,OAAA;AAEA,IAAAC,UAAA,gBAAAD,OAAA;AAKA,IAAAE,UAAA,gBAAAF,OAAA;AAEA,IAAAG,WAAA,gBAAAH,OAAA;AACA,IAAAI,UAAA,gBAAAC,uBAAA,cAAAL,OAAA;AACA,IAAAM,QAAA,gBAAAD,uBAAA,cAAAL,OAAA;AACA,IAAAO,UAAA,gBAAAP,OAAA;AACA,IAAAQ,OAAA,gBAAAH,uBAAA,cAAAL,OAAA;AACA,IAAAS,KAAA,gBAAAJ,uBAAA,cAAAL,OAAA;AACA,IAAAU,QAAA,gBAAAV,OAAA;AACA,IAAAW,QAAA,gBAAAN,uBAAA,cAAAL,OAAA;AACA,IAAAY,MAAA,gBAAAP,uBAAA,cAAAL,OAAA;AACA,IAAAa,KAAA,gBAAAR,uBAAA,cAAAL,OAAA;AACA,IAAAc,MAAA,gBAAAT,uBAAA,cAAAL,OAAA;AACA,IAAAe,OAAA,gBAAAV,uBAAA,cAAAL,OAAA;AACA,IAAAgB,QAAA,gBAAAX,uBAAA,cAAAL,OAAA;AACA,IAAAiB,GAAA,gBAAAZ,uBAAA,cAAAL,OAAA;AAEA,IAAAkB,QAAA,gBAAAlB,OAAA;AACA,IAAAmB,WAAA,gBAAAd,uBAAA,cAAAL,OAAA;AAAiD,SAAAoB,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAhB,wBAAAgB,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAQ1C,MAAMW,IAAI,GAAAC,OAAA,CAAAD,IAAA,gBAAG5B,MAAM,CAAC8B,GAAG,CAAC,aAAS;EACtC,MAAM;IAAEC,OAAO;IAAEC;EAAK,CAAE,GAAG,OAAOC,4BAAa;EAC/C,MAAMC,OAAO,GAAG,OAAOC,sBAAW;EAClC,MAAMC,GAAG,GAAG,OAAOC,oBAAS;EAC5B,MAAM;IAAEC,GAAG;IAAEC;EAAW,CAAE,GAAG,OAAOC,oBAAS;EAC7C,MAAMC,UAAU,GAAG,OAAOC,2BAAe;EAEzC,MAAMC,OAAO,GAAIC,KAAkC,IACjD5C,MAAM,CAAC8B,GAAG,CAAC,WAAWe,CAAC;IACrB,MAAMC,aAAa,GAAG,OAAO3C,OAAO,CAACyB,IAAI,EAAW;IACpD,MAAMmB,YAAY,GAAG,OAAO5C,OAAO,CAACyB,IAAI,EAAW;IACnD,MAAMoB,eAAe,GAAG,OAAOzC,WAAW,CAACqB,IAAI,EAAE;IACjD,MAAMqB,KAAK,GAAG,OAAO5C,GAAG,CAACuB,IAAI,0BAAkB;IAC/C,MAAMsB,UAAU,GAAGT,UAAU,CAACU,QAAQ,CAACP,KAAK,CAAC;IAC7C,MAAMQ,WAAW,GAA8BlD,MAAM,CAACmD,SAAS,CAC7D,OAAOH,UAAU,CAAClC,GAAG,EACrB,OAAO;MACLsC,SAAS,EAAE,EAAE;MACbC,SAAS,EAAE,EAAE;MACbC,QAAQ,EAAE;KACX,CAAC,CACH;IACD,MAAMC,QAAQ,GAAIC,CAAQ,IACxB1D,MAAM,CAAC2D,OAAO,CACZtD,GAAG,CAACsB,GAAG,CAACsB,KAAK,EAAES,CAAC,CAAC,EACjB1D,MAAM,CAAC4D,YAAY,CAAC5D,MAAM,CAAC6D,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAEH,CAAC,CAAC,CACrE;IACH,MAAMI,QAAQ,GAAG9D,MAAM,CAAC+D,KAAK,CAC3B/D,MAAM,CAAC2D,OAAO,CACZb,aAAa,CAACkB,IAAI,EAClB9B,OAAO,CAAC+B,SAAS,CAAC,gBAAgB,EAAElE,QAAQ,CAACmE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAC9D,CACF;IAED,UAAUC,IAAIA,CAACT,CAAU;MACvB,IAAI,CAAC,OAAOrD,GAAG,CAACW,GAAG,CAACiC,KAAK,CAAC,MAAC,yBAAsB;QAC/CH,aAAa,CAACsB,WAAW,CAACV,CAAC,CAAC;MAC9B,CAAC,MAAM;QACLX,YAAY,CAACqB,WAAW,CAACV,CAAC,CAAC;MAC7B;IACF;IAEA,MAAMW,aAAa,GAAG,IAAAC,cAAK,EAAC,WAAWZ,CAAU;MAC/C,IAAI,CAAC,OAAOrD,GAAG,CAACW,GAAG,CAACiC,KAAK,CAAC,MAAC,0BAAuB;QAChDH,aAAa,CAACsB,WAAW,CAACV,CAAC,CAAC;QAC5B,OAAO,IAAI;MACb;MACA,OAAO,KAAK;IACd,CAAC,CAAC;IAEF,MAAMa,YAAY,GAAIb,CAAU,IAAKZ,aAAa,CAAC0B,KAAK,CAACd,CAAC,CAAC;IAE3D,MAAMe,MAAM,GAAGzE,MAAM,CAAC8B,GAAG,CAAC,aAAS;MACjC,OAAOvB,WAAW,CAACmE,KAAK,CAAC1B,eAAe,CAAC;MACzC,OAAOS,QAAQ,yBAAiB;MAChC,MAAMkB,IAAI,GAAG,OAAO5B,YAAY,CAAC2B,KAAK;MACtC5B,aAAa,CAAC8B,cAAc,CAC1B/E,KAAK,CAACgF,MAAM,CACVF,IAAI,EACJG,GAAG,IACDA,GAAG,KAAKC,oBAAS,IACjBD,GAAG,CAACE,EAAE,KAAKpF,OAAO,CAACqF,aAAa,CAACC,QAAQ,IACzCJ,GAAG,CAACE,EAAE,KAAKpF,OAAO,CAACqF,aAAa,CAACE,MAAM,IACvCL,GAAG,CAACE,EAAE,KAAKpF,OAAO,CAACqF,aAAa,CAACG,SAAS,CAC7C,CACF;IACH,CAAC,CAAC;IAEF,MAAMC,YAAY,GAAGrF,MAAM,CAAC8B,GAAG,CAAC,aAAS;MACvC,MAAM6C,IAAI,GAAG,OAAO7B,aAAa,CAAC4B,KAAK;MACvC3B,YAAY,CAAC6B,cAAc,CACzB/E,KAAK,CAACgF,MAAM,CACVF,IAAI,EACJG,GAAG,IACDA,GAAG,KAAKC,oBAAS,IACjBD,GAAG,CAACE,EAAE,KAAKpF,OAAO,CAACqF,aAAa,CAACC,QAAQ,IACzCJ,GAAG,CAACE,EAAE,KAAKpF,OAAO,CAACqF,aAAa,CAACE,MAAM,IACvCL,GAAG,CAACE,EAAE,KAAKpF,OAAO,CAACqF,aAAa,CAACG,SAAS,CAC7C,CACF;MACD,OAAO3B,QAAQ,0BAAkB;IACnC,CAAC,CAAC;IAEF,MAAM6B,MAAM,GAAG,OAAOlD,GAAG,CAACO,OAAO,CAAC;MAAEmB,QAAQ;MAAEuB;IAAY,CAAE,CAAC;IAE7D,MAAME,MAAM,GAAG,OAAOvF,MAAM,CAACwF,cAAc,CACzCrF,OAAO,CAACyB,IAAI,EAA0B,EACtCiB,CAAC,IAAIA,CAAC,CAAC4C,QAAQ,CAChB;IACD,MAAMC,IAAI,GAAG,OAAO1F,MAAM,CAACwF,cAAc,CACvCrF,OAAO,CAACyB,IAAI,EAA0B,EACtCiB,CAAC,IAAIA,CAAC,CAAC4C,QAAQ,CAChB;IAED;IACA,OAAOjG,UAAU,CAAC2E,IAAI,CAACoB,MAAM,EAAEG,IAAI,EAAExC,UAAU,CAAClC,GAAG,EAAEqD,aAAa,CAAC,CAACsB,IAAI,CACtE3F,MAAM,CAAC4F,UAAU,EACjB5F,MAAM,CAAC6F,aAAa,CACrB;IAED;IACA,MAAMC,QAAQ,GAAGpG,QAAQ,CAACqG,gBAAgB,CACxC;MACE/D,KAAK,EAAE5B,QAAQ,CAAC4F,KAAK,CAAChE,KAAK,CAAC;MAC5BY,KAAK;MACLqD,OAAO,EAAElE,OAAO,CAACkE,OAAO;MACxBC,QAAQ,EAAEnE,OAAO,CAACmE;KACnB,EACDhD,UAAU,CAAClC,GAAG,CACf;IAED;IACA,MAAMmF,gBAAgB,GAAGnG,MAAM,CAAC8B,GAAG,CAAC,aAAS;MAC3C,OAAO9B,MAAM,CAACoG,KAAK,CAAC,MAAM,CAAC;MAC3B,OAAO7B,YAAY,CAACQ,oBAAS,CAAC;IAChC,CAAC,CAAC;IAEF,UAAUsB,SAASA,CAAC3C,CAAyB;MAC3C,IAAI,OAAOA,CAAC,CAAC4C,CAAC,KAAK,QAAQ,EAAE;QAC3BlD,WAAW,CAACI,QAAQ,GAAGE,CAAC,CAAC4C,CAAC;MAC5B;MACA,IAAI5C,CAAC,CAACsB,EAAE,KAAKpF,OAAO,CAACqF,aAAa,CAACsB,QAAQ,IAAI7C,CAAC,CAAC9C,CAAC,KAAK,OAAO,EAAE;QAC9D,MAAM4F,OAAO,GAAG9C,CAAC,CAAC+C,CAAuB;QACzCrD,WAAW,CAACG,SAAS,GAAGiD,OAAO,CAACE,UAAU;QAC1CtD,WAAW,CAACE,SAAS,GAAGkD,OAAO,CAACG,kBAAkB;QAClD,OAAOzD,UAAU,CAACvB,GAAG,CAACyB,WAAW,CAAC;QAClC,OAAOkC,MAAM,CAACsB,MAAM,CAACJ,OAAO,CAACG,kBAAkB,CAAC;MAClD,CAAC,MAAM,IACLvD,WAAW,CAACE,SAAS,KAAK,EAAE,IAC5BF,WAAW,CAACG,SAAS,KAAK,EAAE,EAC5B;QACA,OAAOL,UAAU,CAACvB,GAAG,CAACyB,WAAW,CAAC;MACpC;MAEA,QAAQM,CAAC,CAACsB,EAAE;QACV,KAAKpF,OAAO,CAACqF,aAAa,CAAC4B,KAAK;UAAE;YAChC,OAAOtC,YAAY,CAAC,OAAOuB,QAAQ,CAAC;YACpC,OAAOrC,QAAQ,yBAAiB;YAChC8B,MAAM,CAACnB,WAAW,CAACV,CAAC,CAAC;YACrB,OAAOnD,WAAW,CAACuG,GAAG,CAAC9D,eAAe,EAAEmD,gBAAgB,CAAC;YACzD;UACF;QACA,KAAKvG,OAAO,CAACqF,aAAa,CAAC8B,aAAa;UAAE;YACxCrB,IAAI,CAACtB,WAAW,CAACV,CAAC,CAAC;YACnB;UACF;QACA,KAAK9D,OAAO,CAACqF,aAAa,CAAC+B,eAAe;UAAE;YAC1C,IAAI,CAACtD,CAAC,CAAC+C,CAAC,EAAE;cACRrD,WAAW,CAACG,SAAS,GAAG,EAAE;cAC1B,OAAOL,UAAU,CAACwB,KAAK;YACzB;YACA,OAAOP,IAAI,CAACY,oBAAS,CAAC;YACtB;UACF;QACA,KAAKnF,OAAO,CAACqF,aAAa,CAACsB,QAAQ;UAAE;YACnC,IAAI7C,CAAC,CAAC9C,CAAC,KAAK,OAAO,IAAI8C,CAAC,CAAC9C,CAAC,KAAK,SAAS,EAAE;cACxC,OAAO6D,MAAM;YACf;YACAnC,GAAG,CAAC8B,WAAW,CAACV,CAAC,CAAC;YAClB;UACF;QACA,KAAK9D,OAAO,CAACqF,aAAa,CAACgC,SAAS;UAAE;YACpC,OAAO1C,YAAY,CAACQ,oBAAS,CAAC;YAC9B;UACF;MACF;IACF;IAEA,OAAO/E,MAAM,CAAC8B,GAAG,CAAC,aAAS;MACzB,OAAO,IAAI,EAAE;QACX,OAAOqC,IAAI,CAAC,OAAO5B,WAAW,CAACyB,IAAI,CAAC;MACtC;IACF,CAAC,CAAC,CAAC2B,IAAI,CAAC3F,MAAM,CAAC4F,UAAU,EAAE5F,MAAM,CAAC6F,aAAa,CAAC;IAEhD,OAAO7F,MAAM,CAAC8B,GAAG,CAAC,aAAS;MACzB,OAAO,IAAI,EAAE;QACX,OAAOuE,SAAS,CAAC,OAAOf,MAAM,CAACtB,IAAI,CAAC;MACtC;IACF,CAAC,CAAC,CAAC2B,IAAI,CAAC3F,MAAM,CAAC4F,UAAU,EAAE5F,MAAM,CAAC6F,aAAa,CAAC;IAEhD,OAAO;MAAEqB,EAAE,EAAEtE,KAAK;MAAEuB;IAAI,CAAW;EACrC,CAAC,CAAC,CAACwB,IAAI,CACL3F,MAAM,CAAC4D,YAAY,CAAC;IAClBuD,OAAO,EAAE,KAAK;IACdC,MAAM,EAAE,sBAAsB;IAC9BxE;GACD,CAAC,CACH;EAEH,OAAO;IAAED;EAAO,CAAW;AAC7B,CAAC,CAAC;AAOK,MAAM0E,KAAK,GAAAxF,OAAA,CAAAwF,KAAA,gBAAG,IAAAC,mBAAU,EAAsB,0BAA0B,CAAC;AACzE,MAAMC,SAAS,GAAA1F,OAAA,CAAA0F,SAAA,gBAAGtH,KAAK,CAACuH,MAAM,CAACH,KAAK,EAAEzF,IAAI,CAAC,CAAC+D,IAAI,cACrD1F,KAAK,CAACwH,OAAO,CAACC,wBAAa,CAAC,eAC5BzH,KAAK,CAACwH,OAAO,CAACE,yBAAc,CAAC,eAC7B1H,KAAK,CAACwH,OAAO,CAACG,0BAAe,CAAC,CAC/B","ignoreList":[]}
@@ -10,5 +10,5 @@ export interface Sharder {
10
10
  export declare const Sharder: import("effect/Context").Tag<Sharder, {
11
11
  readonly shards: Effect.Effect<HashSet.HashSet<RunningShard>, never, never>;
12
12
  }>;
13
- export declare const SharderLive: Layer.Layer<Sharder, never, DiscordConfig | import("@effect/platform/HttpClient").HttpClient<import("@effect/platform/HttpClientError").HttpClientError, import("effect/Scope").Scope> | import("dfx/RateLimit").RateLimitStore | import("./DiscordWS").DiscordWSCodec | import("@effect/platform/Socket").WebSocketConstructor | import("./Shard/StateStore").ShardStateStore | ShardStore>;
13
+ export declare const SharderLive: Layer.Layer<Sharder, never, ShardStore | DiscordConfig | import("dfx/RateLimit").RateLimitStore | import("./DiscordWS").DiscordWSCodec | import("./Shard/StateStore").ShardStateStore | import("@effect/platform/Socket").WebSocketConstructor | import("@effect/platform/HttpClient").HttpClient<import("@effect/platform/HttpClientError").HttpClientError, import("effect/Scope").Scope>>;
14
14
  //# sourceMappingURL=Sharder.d.ts.map
@@ -11,35 +11,35 @@ export declare class GlobalApplicationCommand<R, E> {
11
11
  readonly _tag = "GlobalApplicationCommand";
12
12
  constructor(command: Discord.CreateGlobalApplicationCommandParams, handle: CommandHandler<R, E>);
13
13
  }
14
- export declare const global: <R, E, const A extends Discord.CreateGlobalApplicationCommandParams>(command: A, handle: CommandHandler<R, E, A>) => GlobalApplicationCommand<Exclude<R, Scope | DiscordInteraction | DiscordApplicationCommand>, E>;
14
+ export declare const global: <R, E, const A extends Discord.CreateGlobalApplicationCommandParams>(command: A, handle: CommandHandler<R, E, A>) => GlobalApplicationCommand<Exclude<R, DiscordInteraction | DiscordApplicationCommand | Scope>, E>;
15
15
  export declare class GuildApplicationCommand<R, E> {
16
16
  readonly command: Discord.CreateGuildApplicationCommandParams;
17
17
  readonly handle: CommandHandler<R, E>;
18
18
  readonly _tag = "GuildApplicationCommand";
19
19
  constructor(command: Discord.CreateGuildApplicationCommandParams, handle: CommandHandler<R, E>);
20
20
  }
21
- export declare const guild: <R, E, const A extends Discord.CreateGuildApplicationCommandParams>(command: A, handle: CommandHandler<R, E, A>) => GuildApplicationCommand<Exclude<R, Scope | DiscordInteraction | DiscordApplicationCommand>, E>;
21
+ export declare const guild: <R, E, const A extends Discord.CreateGuildApplicationCommandParams>(command: A, handle: CommandHandler<R, E, A>) => GuildApplicationCommand<Exclude<R, DiscordInteraction | DiscordApplicationCommand | Scope>, E>;
22
22
  export declare class MessageComponent<R, E> {
23
23
  readonly predicate: (customId: string) => boolean;
24
24
  readonly handle: Effect.Effect<Discord.InteractionResponse, E, R>;
25
25
  readonly _tag = "MessageComponent";
26
26
  constructor(predicate: (customId: string) => boolean, handle: Effect.Effect<Discord.InteractionResponse, E, R>);
27
27
  }
28
- export declare const messageComponent: <R, E>(pred: (customId: string) => boolean, handle: CommandHandler<R, E, Discord.InteractionResponse>) => MessageComponent<Exclude<R, Scope | DiscordInteraction | DiscordMessageComponent>, E>;
28
+ export declare const messageComponent: <R, E>(pred: (customId: string) => boolean, handle: CommandHandler<R, E, Discord.InteractionResponse>) => MessageComponent<Exclude<R, DiscordInteraction | DiscordMessageComponent | Scope>, E>;
29
29
  export declare class ModalSubmit<R, E> {
30
30
  readonly predicate: (customId: string) => boolean;
31
31
  readonly handle: Effect.Effect<Discord.InteractionResponse, E, R>;
32
32
  readonly _tag = "ModalSubmit";
33
33
  constructor(predicate: (customId: string) => boolean, handle: Effect.Effect<Discord.InteractionResponse, E, R>);
34
34
  }
35
- export declare const modalSubmit: <R, E>(pred: (customId: string) => boolean, handle: Effect.Effect<Discord.InteractionResponse, E, R>) => ModalSubmit<Exclude<R, Scope | DiscordInteraction | DiscordModalSubmit>, E>;
35
+ export declare const modalSubmit: <R, E>(pred: (customId: string) => boolean, handle: Effect.Effect<Discord.InteractionResponse, E, R>) => ModalSubmit<Exclude<R, DiscordInteraction | DiscordModalSubmit | Scope>, E>;
36
36
  export declare class Autocomplete<R, E> {
37
37
  readonly predicate: (data: Discord.ApplicationCommandDatum, focusedOption: Discord.ApplicationCommandInteractionDataOption) => boolean;
38
38
  readonly handle: Effect.Effect<Discord.InteractionResponse, E, R>;
39
39
  readonly _tag = "Autocomplete";
40
40
  constructor(predicate: (data: Discord.ApplicationCommandDatum, focusedOption: Discord.ApplicationCommandInteractionDataOption) => boolean, handle: Effect.Effect<Discord.InteractionResponse, E, R>);
41
41
  }
42
- export declare const autocomplete: <R, E>(pred: (data: Discord.ApplicationCommandDatum, focusedOption: Discord.ApplicationCommandInteractionDataOption) => boolean, handle: Effect.Effect<Discord.InteractionResponse, E, R>) => Autocomplete<Exclude<R, Scope | DiscordInteraction | DiscordApplicationCommand | DiscordFocusedOption>, E>;
42
+ export declare const autocomplete: <R, E>(pred: (data: Discord.ApplicationCommandDatum, focusedOption: Discord.ApplicationCommandInteractionDataOption) => boolean, handle: Effect.Effect<Discord.InteractionResponse, E, R>) => Autocomplete<Exclude<R, DiscordInteraction | DiscordApplicationCommand | DiscordFocusedOption | Scope>, E>;
43
43
  export type CommandHandler<R, E, A = any> = Effect.Effect<Discord.InteractionResponse, E, R> | CommandHandlerFn<R, E, A>;
44
44
  export interface CommandHelper<A> {
45
45
  resolve: <T>(name: AllResolvables<A>["name"], f: (id: Discord.Snowflake, data: Discord.ResolvedDatum) => T | undefined) => Effect.Effect<T, NoSuchElementException, DiscordInteraction>;
@@ -8,9 +8,11 @@ import * as Schedule from "effect/Schedule";
8
8
  import * as Cause from "effect/Cause";
9
9
  import * as Option from "effect/Option";
10
10
  import * as LogLevel from "effect/LogLevel";
11
+ import * as Fiber from "effect/Fiber";
11
12
  export const Reconnect = /*#__PURE__*/Symbol.for("dfx/DiscordGateway/WS/Reconnect");
12
13
  const decoder = /*#__PURE__*/new TextDecoder();
13
14
  const logLevelDebug = /*#__PURE__*/Option.some(LogLevel.Debug);
15
+ const logLevelTrace = /*#__PURE__*/Option.some(LogLevel.Trace);
14
16
  export const DiscordWSCodec = /*#__PURE__*/GenericTag("dfx/DiscordGateway/DiscordWS/Codec");
15
17
  export const JsonDiscordWSCodecLive = /*#__PURE__*/Layer.succeed(DiscordWSCodec, {
16
18
  type: "json",
@@ -33,12 +35,21 @@ const make = /*#__PURE__*/Effect.gen(function* () {
33
35
  openTimeout: 5000
34
36
  });
35
37
  const write = yield* socket.writer;
36
- yield* outbound.pipe(Effect.flatMap(_ => {
37
- if (_ === Reconnect) {
38
- return Effect.zipRight(Effect.logTrace("Reconnecting"), write(new Socket.CloseEvent(1012, "reconnecting")));
38
+ yield* Effect.gen(function* () {
39
+ const fiber = Option.getOrThrow(Fiber.getCurrentFiber());
40
+ while (true) {
41
+ const message = yield* outbound;
42
+ if (message === Reconnect) {
43
+ ;
44
+ fiber.log(["Reconnecting"], Cause.empty, logLevelTrace);
45
+ yield* write(new Socket.CloseEvent(1012, "reconnecting"));
46
+ return;
47
+ }
48
+ ;
49
+ fiber.log([message], Cause.empty, logLevelTrace);
50
+ yield* write(encoding.encode(message));
39
51
  }
40
- return Effect.zipRight(Effect.logTrace(_), write(encoding.encode(_)));
41
- }), Effect.forever, Effect.annotateLogs("channel", "outbound"), Effect.forkScoped, Effect.interruptible);
52
+ }).pipe(Effect.annotateLogs("channel", "outbound"), Effect.forkScoped, Effect.interruptible);
42
53
  yield* onConnecting.pipe(Effect.zipRight(Effect.withFiberRuntime(fiber => socket.runRaw(_ => {
43
54
  const message = encoding.decode(_);
44
55
  messages.unsafeOffer(message);
@@ -1 +1 @@
1
- {"version":3,"file":"DiscordWS.mjs","names":["GenericTag","Effect","Layer","Ref","Socket","Mailbox","Schedule","Cause","Option","LogLevel","Reconnect","Symbol","for","decoder","TextDecoder","logLevelDebug","some","Debug","DiscordWSCodec","JsonDiscordWSCodecLive","succeed","type","encode","p","JSON","stringify","decode","parse","make","gen","encoding","connect","onConnecting","outbound","url","version","urlRef","setUrl","set","messages","socket","makeWebSocket","get","closeCodeIsError","_","openTimeout","write","writer","pipe","flatMap","zipRight","logTrace","CloseEvent","forever","annotateLogs","forkScoped","interruptible","withFiberRuntime","fiber","runRaw","message","unsafeOffer","log","empty","retry","while","e","reason","code","catchAllCause","cause","logDebug","repeat","exponential","union","spaced","take","module","DiscordWS","DiscordWSLive","effect"],"sources":["../../src/DiscordGateway/DiscordWS.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DiscordWS.mjs","names":["GenericTag","Effect","Layer","Ref","Socket","Mailbox","Schedule","Cause","Option","LogLevel","Fiber","Reconnect","Symbol","for","decoder","TextDecoder","logLevelDebug","some","Debug","logLevelTrace","Trace","DiscordWSCodec","JsonDiscordWSCodecLive","succeed","type","encode","p","JSON","stringify","decode","parse","make","gen","encoding","connect","onConnecting","outbound","url","version","urlRef","setUrl","set","messages","socket","makeWebSocket","get","closeCodeIsError","_","openTimeout","write","writer","fiber","getOrThrow","getCurrentFiber","message","log","empty","CloseEvent","pipe","annotateLogs","forkScoped","interruptible","zipRight","withFiberRuntime","runRaw","unsafeOffer","retry","while","e","reason","code","catchAllCause","cause","logDebug","repeat","exponential","union","spaced","take","module","DiscordWS","DiscordWSLive","effect"],"sources":["../../src/DiscordGateway/DiscordWS.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -10,13 +10,13 @@ import * as Chunk from "effect/Chunk";
10
10
  import { GenericTag } from "effect/Context";
11
11
  import * as Duration from "effect/Duration";
12
12
  import * as Effect from "effect/Effect";
13
- import { pipe } from "effect/Function";
14
13
  import * as Layer from "effect/Layer";
15
14
  import * as Option from "effect/Option";
16
- import * as PubSub from "effect/PubSub";
17
15
  import * as Mailbox from "effect/Mailbox";
18
16
  import * as Redacted from "effect/Redacted";
19
17
  import * as Ref from "effect/Ref";
18
+ import { genFn } from "dfx/utils/Effect";
19
+ import * as FiberHandle from "effect/FiberHandle";
20
20
  export const make = /*#__PURE__*/Effect.gen(function* () {
21
21
  const {
22
22
  gateway,
@@ -32,6 +32,7 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
32
32
  const connect = shard => Effect.gen(function* (_) {
33
33
  const outboundQueue = yield* Mailbox.make();
34
34
  const pendingQueue = yield* Mailbox.make();
35
+ const reconnectHandle = yield* FiberHandle.make();
35
36
  const phase = yield* Ref.make(0 /* Phase.Connecting */);
36
37
  const stateStore = shardState.forShard(shard);
37
38
  const resumeState = Option.getOrElse(yield* stateStore.get, () => ({
@@ -41,11 +42,32 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
41
42
  }));
42
43
  const setPhase = p => Effect.zipLeft(Ref.set(phase, p), Effect.annotateLogs(Effect.logTrace("phase transition"), "phase", p));
43
44
  const outbound = Effect.orDie(Effect.zipLeft(outboundQueue.take, limiter.maybeWait("dfx.shard.send", Duration.minutes(1), 120)));
44
- const send = p => Effect.flatMap(Ref.get(phase), phase => phase === 2 /* Phase.Connected */ ? outboundQueue.offer(p) : pendingQueue.offer(p));
45
- const heartbeatSend = p => Effect.flatMap(Ref.get(phase), phase => phase !== 0 /* Phase.Connecting */ ? outboundQueue.offer(p) : Effect.succeed(false));
45
+ function* send(p) {
46
+ if ((yield* Ref.get(phase)) === 2 /* Phase.Connected */) {
47
+ outboundQueue.unsafeOffer(p);
48
+ } else {
49
+ pendingQueue.unsafeOffer(p);
50
+ }
51
+ }
52
+ const heartbeatSend = genFn(function* (p) {
53
+ if ((yield* Ref.get(phase)) !== 0 /* Phase.Connecting */) {
54
+ outboundQueue.unsafeOffer(p);
55
+ return true;
56
+ }
57
+ return false;
58
+ });
46
59
  const prioritySend = p => outboundQueue.offer(p);
47
- const resume = pipe(setPhase(2 /* Phase.Connected */), Effect.zipRight(pendingQueue.clear), Effect.tap(_ => outboundQueue.offerAll(_)), Effect.asVoid);
48
- const onConnecting = pipe(outboundQueue.clear, Effect.tap(msgs => pendingQueue.offerAll(Chunk.filter(msgs, msg => msg !== Reconnect && msg.op !== Discord.GatewayOpcode.IDENTIFY && msg.op !== Discord.GatewayOpcode.RESUME && msg.op !== Discord.GatewayOpcode.HEARTBEAT))), Effect.zipRight(setPhase(0 /* Phase.Connecting */)));
60
+ const resume = Effect.gen(function* () {
61
+ yield* FiberHandle.clear(reconnectHandle);
62
+ yield* setPhase(2 /* Phase.Connected */);
63
+ const msgs = yield* pendingQueue.clear;
64
+ outboundQueue.unsafeOfferAll(Chunk.filter(msgs, msg => msg !== Reconnect && msg.op !== Discord.GatewayOpcode.IDENTIFY && msg.op !== Discord.GatewayOpcode.RESUME && msg.op !== Discord.GatewayOpcode.HEARTBEAT));
65
+ });
66
+ const onConnecting = Effect.gen(function* () {
67
+ const msgs = yield* outboundQueue.clear;
68
+ pendingQueue.unsafeOfferAll(Chunk.filter(msgs, msg => msg !== Reconnect && msg.op !== Discord.GatewayOpcode.IDENTIFY && msg.op !== Discord.GatewayOpcode.RESUME && msg.op !== Discord.GatewayOpcode.HEARTBEAT));
69
+ yield* setPhase(0 /* Phase.Connecting */);
70
+ });
49
71
  const socket = yield* dws.connect({
50
72
  outbound,
51
73
  onConnecting
@@ -61,7 +83,12 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
61
83
  intents: gateway.intents,
62
84
  presence: gateway.presence
63
85
  }, stateStore.get);
64
- const onPayload = p => pipe(Effect.suspend(() => {
86
+ // delayed reconnect
87
+ const delayedReconnect = Effect.gen(function* () {
88
+ yield* Effect.sleep(30_000);
89
+ yield* prioritySend(Reconnect);
90
+ });
91
+ function* onPayload(p) {
65
92
  if (typeof p.s === "number") {
66
93
  resumeState.sequence = p.s;
67
94
  }
@@ -69,49 +96,59 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
69
96
  const payload = p.d;
70
97
  resumeState.sessionId = payload.session_id;
71
98
  resumeState.resumeUrl = payload.resume_gateway_url;
72
- return Effect.zipRight(stateStore.set(resumeState), socket.setUrl(payload.resume_gateway_url));
99
+ yield* stateStore.set(resumeState);
100
+ yield* socket.setUrl(payload.resume_gateway_url);
101
+ } else if (resumeState.resumeUrl !== "" && resumeState.sessionId !== "") {
102
+ yield* stateStore.set(resumeState);
73
103
  }
74
- if (resumeState.resumeUrl !== "" && resumeState.sessionId !== "") {
75
- return stateStore.set(resumeState);
76
- }
77
- return Effect.void;
78
- }), Effect.tap(() => {
79
104
  switch (p.op) {
80
105
  case Discord.GatewayOpcode.HELLO:
81
106
  {
82
- return pipe(Effect.tap(identify, prioritySend), Effect.zipRight(setPhase(1 /* Phase.Handshake */)), Effect.zipRight(hellos.offer(p)));
107
+ yield* prioritySend(yield* identify);
108
+ yield* setPhase(1 /* Phase.Handshake */);
109
+ hellos.unsafeOffer(p);
110
+ yield* FiberHandle.run(reconnectHandle, delayedReconnect);
111
+ break;
83
112
  }
84
113
  case Discord.GatewayOpcode.HEARTBEAT_ACK:
85
114
  {
86
- return acks.offer(p);
115
+ acks.unsafeOffer(p);
116
+ break;
87
117
  }
88
118
  case Discord.GatewayOpcode.INVALID_SESSION:
89
119
  {
90
- if (p.d) {
91
- return send(Reconnect);
120
+ if (!p.d) {
121
+ resumeState.sessionId = "";
122
+ yield* stateStore.clear;
92
123
  }
93
- resumeState.sessionId = "";
94
- return Effect.zipRight(stateStore.clear, send(Reconnect));
124
+ yield* send(Reconnect);
125
+ break;
95
126
  }
96
127
  case Discord.GatewayOpcode.DISPATCH:
97
128
  {
98
129
  if (p.t === "READY" || p.t === "RESUMED") {
99
- return Effect.zipRight(resume, PubSub.publish(hub, p));
130
+ yield* resume;
100
131
  }
101
- return PubSub.publish(hub, p);
132
+ hub.unsafeOffer(p);
133
+ break;
102
134
  }
103
135
  case Discord.GatewayOpcode.RECONNECT:
104
136
  {
105
- return prioritySend(Reconnect);
106
- }
107
- default:
108
- {
109
- return Effect.void;
137
+ yield* prioritySend(Reconnect);
138
+ break;
110
139
  }
111
140
  }
112
- }));
113
- yield* sendMailbox.take.pipe(Effect.tap(send), Effect.forever, Effect.forkScoped, Effect.interruptible);
114
- yield* socket.take.pipe(Effect.flatMap(onPayload), Effect.forever, Effect.forkScoped, Effect.interruptible);
141
+ }
142
+ yield* Effect.gen(function* () {
143
+ while (true) {
144
+ yield* send(yield* sendMailbox.take);
145
+ }
146
+ }).pipe(Effect.forkScoped, Effect.interruptible);
147
+ yield* Effect.gen(function* () {
148
+ while (true) {
149
+ yield* onPayload(yield* socket.take);
150
+ }
151
+ }).pipe(Effect.forkScoped, Effect.interruptible);
115
152
  return {
116
153
  id: shard,
117
154
  send
@@ -1 +1 @@
1
- {"version":3,"file":"Shard.mjs","names":["DiscordConfig","DiscordWS","DiscordWSLive","Reconnect","Messaging","MesssagingLive","ShardStateStore","Heartbeats","Identify","RateLimiter","RateLimiterLive","Discord","Chunk","GenericTag","Duration","Effect","pipe","Layer","Option","PubSub","Mailbox","Redacted","Ref","make","gen","gateway","token","limiter","dws","hub","sendMailbox","shardState","connect","shard","_","outboundQueue","pendingQueue","phase","stateStore","forShard","resumeState","getOrElse","get","resumeUrl","sessionId","sequence","setPhase","p","zipLeft","set","annotateLogs","logTrace","outbound","orDie","take","maybeWait","minutes","send","flatMap","offer","heartbeatSend","succeed","prioritySend","resume","zipRight","clear","tap","offerAll","asVoid","onConnecting","msgs","filter","msg","op","GatewayOpcode","IDENTIFY","RESUME","HEARTBEAT","socket","hellos","acquireRelease","shutdown","acks","forkScoped","interruptible","identify","identifyOrResume","value","intents","presence","onPayload","suspend","s","DISPATCH","t","payload","d","session_id","resume_gateway_url","setUrl","void","HELLO","HEARTBEAT_ACK","INVALID_SESSION","publish","RECONNECT","forever","id","package","module","Shard","ShardLive","effect","provide"],"sources":["../../src/DiscordGateway/Shard.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Shard.mjs","names":["DiscordConfig","DiscordWS","DiscordWSLive","Reconnect","Messaging","MesssagingLive","ShardStateStore","Heartbeats","Identify","RateLimiter","RateLimiterLive","Discord","Chunk","GenericTag","Duration","Effect","Layer","Option","Mailbox","Redacted","Ref","genFn","FiberHandle","make","gen","gateway","token","limiter","dws","hub","sendMailbox","shardState","connect","shard","_","outboundQueue","pendingQueue","reconnectHandle","phase","stateStore","forShard","resumeState","getOrElse","get","resumeUrl","sessionId","sequence","setPhase","p","zipLeft","set","annotateLogs","logTrace","outbound","orDie","take","maybeWait","minutes","send","unsafeOffer","heartbeatSend","prioritySend","offer","resume","clear","msgs","unsafeOfferAll","filter","msg","op","GatewayOpcode","IDENTIFY","RESUME","HEARTBEAT","onConnecting","socket","hellos","acquireRelease","shutdown","acks","pipe","forkScoped","interruptible","identify","identifyOrResume","value","intents","presence","delayedReconnect","sleep","onPayload","s","DISPATCH","t","payload","d","session_id","resume_gateway_url","setUrl","HELLO","run","HEARTBEAT_ACK","INVALID_SESSION","RECONNECT","id","package","module","Shard","ShardLive","effect","provide"],"sources":["../../src/DiscordGateway/Shard.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,aAAa,QAAQ,mBAAmB;AAEjD,SACEC,SAAS,EACTC,aAAa,EACbC,SAAS,QACJ,8BAA8B;AACrC,SAASC,SAAS,EAAEC,cAAc,QAAQ,8BAA8B;AAExE,SAASC,eAAe,QAAQ,qCAAqC;AACrE,OAAO,KAAKC,UAAU,MAAM,qCAAqC;AACjE,OAAO,KAAKC,QAAQ,MAAM,mCAAmC;AAC7D,SAASC,WAAW,EAAEC,eAAe,QAAQ,eAAe;AAC5D,OAAO,KAAKC,OAAO,MAAM,WAAW;AACpC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,SAASC,UAAU,QAAQ,gBAAgB;AAC3C,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,GAAG,MAAM,YAAY;AAEjC,SAASC,KAAK,QAAQ,kBAAkB;AACxC,OAAO,KAAKC,WAAW,MAAM,oBAAoB;AAQjD,OAAO,MAAMC,IAAI,gBAAGR,MAAM,CAACS,GAAG,CAAC,aAAS;EACtC,MAAM;IAAEC,OAAO;IAAEC;EAAK,CAAE,GAAG,OAAO1B,aAAa;EAC/C,MAAM2B,OAAO,GAAG,OAAOlB,WAAW;EAClC,MAAMmB,GAAG,GAAG,OAAO3B,SAAS;EAC5B,MAAM;IAAE4B,GAAG;IAAEC;EAAW,CAAE,GAAG,OAAO1B,SAAS;EAC7C,MAAM2B,UAAU,GAAG,OAAOzB,eAAe;EAEzC,MAAM0B,OAAO,GAAIC,KAAkC,IACjDlB,MAAM,CAACS,GAAG,CAAC,WAAWU,CAAC;IACrB,MAAMC,aAAa,GAAG,OAAOjB,OAAO,CAACK,IAAI,EAAW;IACpD,MAAMa,YAAY,GAAG,OAAOlB,OAAO,CAACK,IAAI,EAAW;IACnD,MAAMc,eAAe,GAAG,OAAOf,WAAW,CAACC,IAAI,EAAE;IACjD,MAAMe,KAAK,GAAG,OAAOlB,GAAG,CAACG,IAAI,0BAAkB;IAC/C,MAAMgB,UAAU,GAAGR,UAAU,CAACS,QAAQ,CAACP,KAAK,CAAC;IAC7C,MAAMQ,WAAW,GAA8BxB,MAAM,CAACyB,SAAS,CAC7D,OAAOH,UAAU,CAACI,GAAG,EACrB,OAAO;MACLC,SAAS,EAAE,EAAE;MACbC,SAAS,EAAE,EAAE;MACbC,QAAQ,EAAE;KACX,CAAC,CACH;IACD,MAAMC,QAAQ,GAAIC,CAAQ,IACxBjC,MAAM,CAACkC,OAAO,CACZ7B,GAAG,CAAC8B,GAAG,CAACZ,KAAK,EAAEU,CAAC,CAAC,EACjBjC,MAAM,CAACoC,YAAY,CAACpC,MAAM,CAACqC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAEJ,CAAC,CAAC,CACrE;IACH,MAAMK,QAAQ,GAAGtC,MAAM,CAACuC,KAAK,CAC3BvC,MAAM,CAACkC,OAAO,CACZd,aAAa,CAACoB,IAAI,EAClB5B,OAAO,CAAC6B,SAAS,CAAC,gBAAgB,EAAE1C,QAAQ,CAAC2C,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAC9D,CACF;IAED,UAAUC,IAAIA,CAACV,CAAU;MACvB,IAAI,CAAC,OAAO5B,GAAG,CAACuB,GAAG,CAACL,KAAK,CAAC,MAAC,yBAAsB;QAC/CH,aAAa,CAACwB,WAAW,CAACX,CAAC,CAAC;MAC9B,CAAC,MAAM;QACLZ,YAAY,CAACuB,WAAW,CAACX,CAAC,CAAC;MAC7B;IACF;IAEA,MAAMY,aAAa,GAAGvC,KAAK,CAAC,WAAW2B,CAAU;MAC/C,IAAI,CAAC,OAAO5B,GAAG,CAACuB,GAAG,CAACL,KAAK,CAAC,MAAC,0BAAuB;QAChDH,aAAa,CAACwB,WAAW,CAACX,CAAC,CAAC;QAC5B,OAAO,IAAI;MACb;MACA,OAAO,KAAK;IACd,CAAC,CAAC;IAEF,MAAMa,YAAY,GAAIb,CAAU,IAAKb,aAAa,CAAC2B,KAAK,CAACd,CAAC,CAAC;IAE3D,MAAMe,MAAM,GAAGhD,MAAM,CAACS,GAAG,CAAC,aAAS;MACjC,OAAOF,WAAW,CAAC0C,KAAK,CAAC3B,eAAe,CAAC;MACzC,OAAOU,QAAQ,yBAAiB;MAChC,MAAMkB,IAAI,GAAG,OAAO7B,YAAY,CAAC4B,KAAK;MACtC7B,aAAa,CAAC+B,cAAc,CAC1BtD,KAAK,CAACuD,MAAM,CACVF,IAAI,EACJG,GAAG,IACDA,GAAG,KAAKjE,SAAS,IACjBiE,GAAG,CAACC,EAAE,KAAK1D,OAAO,CAAC2D,aAAa,CAACC,QAAQ,IACzCH,GAAG,CAACC,EAAE,KAAK1D,OAAO,CAAC2D,aAAa,CAACE,MAAM,IACvCJ,GAAG,CAACC,EAAE,KAAK1D,OAAO,CAAC2D,aAAa,CAACG,SAAS,CAC7C,CACF;IACH,CAAC,CAAC;IAEF,MAAMC,YAAY,GAAG3D,MAAM,CAACS,GAAG,CAAC,aAAS;MACvC,MAAMyC,IAAI,GAAG,OAAO9B,aAAa,CAAC6B,KAAK;MACvC5B,YAAY,CAAC8B,cAAc,CACzBtD,KAAK,CAACuD,MAAM,CACVF,IAAI,EACJG,GAAG,IACDA,GAAG,KAAKjE,SAAS,IACjBiE,GAAG,CAACC,EAAE,KAAK1D,OAAO,CAAC2D,aAAa,CAACC,QAAQ,IACzCH,GAAG,CAACC,EAAE,KAAK1D,OAAO,CAAC2D,aAAa,CAACE,MAAM,IACvCJ,GAAG,CAACC,EAAE,KAAK1D,OAAO,CAAC2D,aAAa,CAACG,SAAS,CAC7C,CACF;MACD,OAAO1B,QAAQ,0BAAkB;IACnC,CAAC,CAAC;IAEF,MAAM4B,MAAM,GAAG,OAAO/C,GAAG,CAACI,OAAO,CAAC;MAAEqB,QAAQ;MAAEqB;IAAY,CAAE,CAAC;IAE7D,MAAME,MAAM,GAAG,OAAO7D,MAAM,CAAC8D,cAAc,CACzC3D,OAAO,CAACK,IAAI,EAA0B,EACtCW,CAAC,IAAIA,CAAC,CAAC4C,QAAQ,CAChB;IACD,MAAMC,IAAI,GAAG,OAAOhE,MAAM,CAAC8D,cAAc,CACvC3D,OAAO,CAACK,IAAI,EAA0B,EACtCW,CAAC,IAAIA,CAAC,CAAC4C,QAAQ,CAChB;IAED;IACA,OAAOvE,UAAU,CAACmD,IAAI,CAACkB,MAAM,EAAEG,IAAI,EAAExC,UAAU,CAACI,GAAG,EAAEiB,aAAa,CAAC,CAACoB,IAAI,CACtEjE,MAAM,CAACkE,UAAU,EACjBlE,MAAM,CAACmE,aAAa,CACrB;IAED;IACA,MAAMC,QAAQ,GAAG3E,QAAQ,CAAC4E,gBAAgB,CACxC;MACE1D,KAAK,EAAEP,QAAQ,CAACkE,KAAK,CAAC3D,KAAK,CAAC;MAC5BO,KAAK;MACLqD,OAAO,EAAE7D,OAAO,CAAC6D,OAAO;MACxBC,QAAQ,EAAE9D,OAAO,CAAC8D;KACnB,EACDhD,UAAU,CAACI,GAAG,CACf;IAED;IACA,MAAM6C,gBAAgB,GAAGzE,MAAM,CAACS,GAAG,CAAC,aAAS;MAC3C,OAAOT,MAAM,CAAC0E,KAAK,CAAC,MAAM,CAAC;MAC3B,OAAO5B,YAAY,CAAC1D,SAAS,CAAC;IAChC,CAAC,CAAC;IAEF,UAAUuF,SAASA,CAAC1C,CAAyB;MAC3C,IAAI,OAAOA,CAAC,CAAC2C,CAAC,KAAK,QAAQ,EAAE;QAC3BlD,WAAW,CAACK,QAAQ,GAAGE,CAAC,CAAC2C,CAAC;MAC5B;MACA,IAAI3C,CAAC,CAACqB,EAAE,KAAK1D,OAAO,CAAC2D,aAAa,CAACsB,QAAQ,IAAI5C,CAAC,CAAC6C,CAAC,KAAK,OAAO,EAAE;QAC9D,MAAMC,OAAO,GAAG9C,CAAC,CAAC+C,CAAuB;QACzCtD,WAAW,CAACI,SAAS,GAAGiD,OAAO,CAACE,UAAU;QAC1CvD,WAAW,CAACG,SAAS,GAAGkD,OAAO,CAACG,kBAAkB;QAClD,OAAO1D,UAAU,CAACW,GAAG,CAACT,WAAW,CAAC;QAClC,OAAOkC,MAAM,CAACuB,MAAM,CAACJ,OAAO,CAACG,kBAAkB,CAAC;MAClD,CAAC,MAAM,IACLxD,WAAW,CAACG,SAAS,KAAK,EAAE,IAC5BH,WAAW,CAACI,SAAS,KAAK,EAAE,EAC5B;QACA,OAAON,UAAU,CAACW,GAAG,CAACT,WAAW,CAAC;MACpC;MAEA,QAAQO,CAAC,CAACqB,EAAE;QACV,KAAK1D,OAAO,CAAC2D,aAAa,CAAC6B,KAAK;UAAE;YAChC,OAAOtC,YAAY,CAAC,OAAOsB,QAAQ,CAAC;YACpC,OAAOpC,QAAQ,yBAAiB;YAChC6B,MAAM,CAACjB,WAAW,CAACX,CAAC,CAAC;YACrB,OAAO1B,WAAW,CAAC8E,GAAG,CAAC/D,eAAe,EAAEmD,gBAAgB,CAAC;YACzD;UACF;QACA,KAAK7E,OAAO,CAAC2D,aAAa,CAAC+B,aAAa;UAAE;YACxCtB,IAAI,CAACpB,WAAW,CAACX,CAAC,CAAC;YACnB;UACF;QACA,KAAKrC,OAAO,CAAC2D,aAAa,CAACgC,eAAe;UAAE;YAC1C,IAAI,CAACtD,CAAC,CAAC+C,CAAC,EAAE;cACRtD,WAAW,CAACI,SAAS,GAAG,EAAE;cAC1B,OAAON,UAAU,CAACyB,KAAK;YACzB;YACA,OAAON,IAAI,CAACvD,SAAS,CAAC;YACtB;UACF;QACA,KAAKQ,OAAO,CAAC2D,aAAa,CAACsB,QAAQ;UAAE;YACnC,IAAI5C,CAAC,CAAC6C,CAAC,KAAK,OAAO,IAAI7C,CAAC,CAAC6C,CAAC,KAAK,SAAS,EAAE;cACxC,OAAO9B,MAAM;YACf;YACAlC,GAAG,CAAC8B,WAAW,CAACX,CAAC,CAAC;YAClB;UACF;QACA,KAAKrC,OAAO,CAAC2D,aAAa,CAACiC,SAAS;UAAE;YACpC,OAAO1C,YAAY,CAAC1D,SAAS,CAAC;YAC9B;UACF;MACF;IACF;IAEA,OAAOY,MAAM,CAACS,GAAG,CAAC,aAAS;MACzB,OAAO,IAAI,EAAE;QACX,OAAOkC,IAAI,CAAC,OAAO5B,WAAW,CAACyB,IAAI,CAAC;MACtC;IACF,CAAC,CAAC,CAACyB,IAAI,CAACjE,MAAM,CAACkE,UAAU,EAAElE,MAAM,CAACmE,aAAa,CAAC;IAEhD,OAAOnE,MAAM,CAACS,GAAG,CAAC,aAAS;MACzB,OAAO,IAAI,EAAE;QACX,OAAOkE,SAAS,CAAC,OAAOf,MAAM,CAACpB,IAAI,CAAC;MACtC;IACF,CAAC,CAAC,CAACyB,IAAI,CAACjE,MAAM,CAACkE,UAAU,EAAElE,MAAM,CAACmE,aAAa,CAAC;IAEhD,OAAO;MAAEsB,EAAE,EAAEvE,KAAK;MAAEyB;IAAI,CAAW;EACrC,CAAC,CAAC,CAACsB,IAAI,CACLjE,MAAM,CAACoC,YAAY,CAAC;IAClBsD,OAAO,EAAE,KAAK;IACdC,MAAM,EAAE,sBAAsB;IAC9BzE;GACD,CAAC,CACH;EAEH,OAAO;IAAED;EAAO,CAAW;AAC7B,CAAC,CAAC;AAOF,OAAO,MAAM2E,KAAK,gBAAG9F,UAAU,CAAsB,0BAA0B,CAAC;AAChF,OAAO,MAAM+F,SAAS,gBAAG5F,KAAK,CAAC6F,MAAM,CAACF,KAAK,EAAEpF,IAAI,CAAC,CAACyD,IAAI,cACrDhE,KAAK,CAAC8F,OAAO,CAAC5G,aAAa,CAAC,eAC5Bc,KAAK,CAAC8F,OAAO,CAACzG,cAAc,CAAC,eAC7BW,KAAK,CAAC8F,OAAO,CAACpG,eAAe,CAAC,CAC/B","ignoreList":[]}
@@ -15,4 +15,9 @@ export const foreverSwitch = (self, f) => Effect.gen(function* () {
15
15
  fiber = fiber_;
16
16
  }))), Effect.forever, Effect.raceFirst(Deferred.await(deferred)));
17
17
  });
18
+ export function genFn(body) {
19
+ return function (...args) {
20
+ return Effect.gen(() => body(...args));
21
+ };
22
+ }
18
23
  //# sourceMappingURL=Effect.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Effect.mjs","names":["pipe","Deferred","Effect","Fiber","PubSub","Queue","subscribeForEachPar","self","effect","flatMap","make","deferred","run","subscribe","queue","forever","take","a","fork","catchAllCause","cause","failCause","scoped","interruptible","raceFirst","await","foreverSwitch","f","gen","fiber","tap","interruptFork","void","fiber_"],"sources":["../../src/utils/Effect.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,IAAI,QAAQ,iBAAiB;AACtC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AAErC,OAAO,MAAMC,mBAAmB,GAAGA,CACjCC,IAAsB,EACtBC,MAAwC,KAExCN,MAAM,CAACO,OAAO,CAACR,QAAQ,CAACS,IAAI,EAAY,EAAEC,QAAQ,IAAG;EACnD,MAAMC,GAAG,GAAGZ,IAAI,CACdI,MAAM,CAACS,SAAS,CAACN,IAAI,CAAC,EACtBL,MAAM,CAACO,OAAO,CAACK,KAAK,IAClBZ,MAAM,CAACa,OAAO,CACZb,MAAM,CAACO,OAAO,CAACJ,KAAK,CAACW,IAAI,CAACF,KAAK,CAAC,EAAEG,CAAC,IACjCf,MAAM,CAACgB,IAAI,CACThB,MAAM,CAACiB,aAAa,CAACX,MAAM,CAACS,CAAC,CAAC,EAAEG,KAAK,IACnCnB,QAAQ,CAACoB,SAAS,CAACV,QAAQ,EAAES,KAAK,CAAC,CACpC,CACF,CACF,CACF,CACF,EACDlB,MAAM,CAACoB,MAAM,EACbpB,MAAM,CAACqB,aAAa,CACrB;EAED,OAAOrB,MAAM,CAACsB,SAAS,CAACZ,GAAG,EAAEX,QAAQ,CAACwB,KAAK,CAACd,QAAQ,CAAC,CAAC;AACxD,CAAC,CAAC;AAEJ,OAAO,MAAMe,aAAa,GAAGA,CAC3BnB,IAA4B,EAC5BoB,CAAqC,KAErCzB,MAAM,CAAC0B,GAAG,CAAC,aAAS;EAClB,MAAMjB,QAAQ,GAAG,OAAOV,QAAQ,CAACS,IAAI,EAAa;EAClD,IAAImB,KAAuD;EAC3D,OAAO,OAAOtB,IAAI,CAACP,IAAI,CACrBE,MAAM,CAAC4B,GAAG,CAAC,MAAOD,KAAK,GAAG1B,KAAK,CAAC4B,aAAa,CAACF,KAAK,CAAC,GAAG3B,MAAM,CAAC8B,IAAK,CAAC,EACpE9B,MAAM,CAACO,OAAO,CAACQ,CAAC,IACdU,CAAC,CAACV,CAAC,CAAC,CAACjB,IAAI,CACPE,MAAM,CAACiB,aAAa,CAACC,KAAK,IAAInB,QAAQ,CAACoB,SAAS,CAACV,QAAQ,EAAES,KAAK,CAAC,CAAC,EAClElB,MAAM,CAACgB,IAAI,EACXhB,MAAM,CAAC4B,GAAG,CAACG,MAAM,IAAG;IAClBJ,KAAK,GAAGI,MAAM;EAChB,CAAC,CAAC,CACH,CACF,EACD/B,MAAM,CAACa,OAAO,EACdb,MAAM,CAACsB,SAAS,CAACvB,QAAQ,CAACwB,KAAK,CAACd,QAAQ,CAAC,CAAC,CAC3C;AACH,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"Effect.mjs","names":["pipe","Deferred","Effect","Fiber","PubSub","Queue","subscribeForEachPar","self","effect","flatMap","make","deferred","run","subscribe","queue","forever","take","a","fork","catchAllCause","cause","failCause","scoped","interruptible","raceFirst","await","foreverSwitch","f","gen","fiber","tap","interruptFork","void","fiber_","genFn","body","args"],"sources":["../../src/utils/Effect.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,IAAI,QAAQ,iBAAiB;AACtC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AAGrC,OAAO,MAAMC,mBAAmB,GAAGA,CACjCC,IAAsB,EACtBC,MAAwC,KAExCN,MAAM,CAACO,OAAO,CAACR,QAAQ,CAACS,IAAI,EAAY,EAAEC,QAAQ,IAAG;EACnD,MAAMC,GAAG,GAAGZ,IAAI,CACdI,MAAM,CAACS,SAAS,CAACN,IAAI,CAAC,EACtBL,MAAM,CAACO,OAAO,CAACK,KAAK,IAClBZ,MAAM,CAACa,OAAO,CACZb,MAAM,CAACO,OAAO,CAACJ,KAAK,CAACW,IAAI,CAACF,KAAK,CAAC,EAAEG,CAAC,IACjCf,MAAM,CAACgB,IAAI,CACThB,MAAM,CAACiB,aAAa,CAACX,MAAM,CAACS,CAAC,CAAC,EAAEG,KAAK,IACnCnB,QAAQ,CAACoB,SAAS,CAACV,QAAQ,EAAES,KAAK,CAAC,CACpC,CACF,CACF,CACF,CACF,EACDlB,MAAM,CAACoB,MAAM,EACbpB,MAAM,CAACqB,aAAa,CACrB;EAED,OAAOrB,MAAM,CAACsB,SAAS,CAACZ,GAAG,EAAEX,QAAQ,CAACwB,KAAK,CAACd,QAAQ,CAAC,CAAC;AACxD,CAAC,CAAC;AAEJ,OAAO,MAAMe,aAAa,GAAGA,CAC3BnB,IAA4B,EAC5BoB,CAAqC,KAErCzB,MAAM,CAAC0B,GAAG,CAAC,aAAS;EAClB,MAAMjB,QAAQ,GAAG,OAAOV,QAAQ,CAACS,IAAI,EAAa;EAClD,IAAImB,KAAuD;EAC3D,OAAO,OAAOtB,IAAI,CAACP,IAAI,CACrBE,MAAM,CAAC4B,GAAG,CAAC,MAAOD,KAAK,GAAG1B,KAAK,CAAC4B,aAAa,CAACF,KAAK,CAAC,GAAG3B,MAAM,CAAC8B,IAAK,CAAC,EACpE9B,MAAM,CAACO,OAAO,CAACQ,CAAC,IACdU,CAAC,CAACV,CAAC,CAAC,CAACjB,IAAI,CACPE,MAAM,CAACiB,aAAa,CAACC,KAAK,IAAInB,QAAQ,CAACoB,SAAS,CAACV,QAAQ,EAAES,KAAK,CAAC,CAAC,EAClElB,MAAM,CAACgB,IAAI,EACXhB,MAAM,CAAC4B,GAAG,CAACG,MAAM,IAAG;IAClBJ,KAAK,GAAGI,MAAM;EAChB,CAAC,CAAC,CACH,CACF,EACD/B,MAAM,CAACa,OAAO,EACdb,MAAM,CAACsB,SAAS,CAACvB,QAAQ,CAACwB,KAAK,CAACd,QAAQ,CAAC,CAAC,CAC3C;AACH,CAAC,CAAC;AAEJ,OAAM,SAAUuB,KAAKA,CAKnBC,IAAoD;EAgBpD,OAAO,UAAU,GAAGC,IAAI;IACtB,OAAOlC,MAAM,CAAC0B,GAAG,CAAC,MAAMO,IAAI,CAAC,GAAGC,IAAI,CAAC,CAAC;EACxC,CAAC;AACH","ignoreList":[]}
package/mjs/version.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export const LIB_VERSION = "0.107.0";
1
+ export const LIB_VERSION = "0.107.1";
2
2
  //# sourceMappingURL=version.mjs.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dfx",
3
- "version": "0.107.0",
3
+ "version": "0.107.1",
4
4
  "description": "Effect-TS discord library",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -41,6 +41,6 @@
41
41
  "optionalDependencies": {
42
42
  "discord-verify": "^1.2.0"
43
43
  },
44
- "gitHead": "b073547bc01affcbaba671b39079ca37baaa0730",
44
+ "gitHead": "4d20173ea209918110ae5bfa7b68393cc7fac820",
45
45
  "main": "./index.js"
46
46
  }
@@ -9,6 +9,7 @@ import * as Schedule from "effect/Schedule"
9
9
  import * as Cause from "effect/Cause"
10
10
  import * as Option from "effect/Option"
11
11
  import * as LogLevel from "effect/LogLevel"
12
+ import * as Fiber from "effect/Fiber"
12
13
 
13
14
  export type Message = Discord.GatewayPayload | Reconnect
14
15
 
@@ -34,6 +35,7 @@ export interface DiscordWSCodec {
34
35
 
35
36
  const decoder = new TextDecoder()
36
37
  const logLevelDebug = Option.some(LogLevel.Debug)
38
+ const logLevelTrace = Option.some(LogLevel.Trace)
37
39
 
38
40
  export const DiscordWSCodec = GenericTag<DiscordWSCodec, DiscordWSCodecService>(
39
41
  "dfx/DiscordGateway/DiscordWS/Codec",
@@ -65,17 +67,19 @@ const make = Effect.gen(function* () {
65
67
  openTimeout: 5000,
66
68
  })
67
69
  const write = yield* socket.writer
68
- yield* outbound.pipe(
69
- Effect.flatMap(_ => {
70
- if (_ === Reconnect) {
71
- return Effect.zipRight(
72
- Effect.logTrace("Reconnecting"),
73
- write(new Socket.CloseEvent(1012, "reconnecting")),
74
- )
70
+ yield* Effect.gen(function* () {
71
+ const fiber = Option.getOrThrow(Fiber.getCurrentFiber())
72
+ while (true) {
73
+ const message = yield* outbound
74
+ if (message === Reconnect) {
75
+ ;(fiber as any).log(["Reconnecting"], Cause.empty, logLevelTrace)
76
+ yield* write(new Socket.CloseEvent(1012, "reconnecting"))
77
+ return
75
78
  }
76
- return Effect.zipRight(Effect.logTrace(_), write(encoding.encode(_)))
77
- }),
78
- Effect.forever,
79
+ ;(fiber as any).log([message], Cause.empty, logLevelTrace)
80
+ yield* write(encoding.encode(message))
81
+ }
82
+ }).pipe(
79
83
  Effect.annotateLogs("channel", "outbound"),
80
84
  Effect.forkScoped,
81
85
  Effect.interruptible,
@@ -16,15 +16,14 @@ import * as Chunk from "effect/Chunk"
16
16
  import { GenericTag } from "effect/Context"
17
17
  import * as Duration from "effect/Duration"
18
18
  import * as Effect from "effect/Effect"
19
- import { pipe } from "effect/Function"
20
19
  import * as Layer from "effect/Layer"
21
20
  import * as Option from "effect/Option"
22
- import * as PubSub from "effect/PubSub"
23
21
  import * as Mailbox from "effect/Mailbox"
24
-
25
22
  import * as Redacted from "effect/Redacted"
26
23
  import * as Ref from "effect/Ref"
27
24
  import type * as Types from "effect/Types"
25
+ import { genFn } from "dfx/utils/Effect"
26
+ import * as FiberHandle from "effect/FiberHandle"
28
27
 
29
28
  const enum Phase {
30
29
  Connecting,
@@ -43,6 +42,7 @@ export const make = Effect.gen(function* () {
43
42
  Effect.gen(function* (_) {
44
43
  const outboundQueue = yield* Mailbox.make<Message>()
45
44
  const pendingQueue = yield* Mailbox.make<Message>()
45
+ const reconnectHandle = yield* FiberHandle.make()
46
46
  const phase = yield* Ref.make(Phase.Connecting)
47
47
  const stateStore = shardState.forShard(shard)
48
48
  const resumeState: Types.Mutable<ShardState> = Option.getOrElse(
@@ -65,45 +65,54 @@ export const make = Effect.gen(function* () {
65
65
  ),
66
66
  )
67
67
 
68
- const send = (p: Message) =>
69
- Effect.flatMap(Ref.get(phase), phase =>
70
- phase === Phase.Connected
71
- ? outboundQueue.offer(p)
72
- : pendingQueue.offer(p),
73
- )
74
-
75
- const heartbeatSend = (p: Message) =>
76
- Effect.flatMap(Ref.get(phase), phase =>
77
- phase !== Phase.Connecting
78
- ? outboundQueue.offer(p)
79
- : Effect.succeed(false),
80
- )
68
+ function* send(p: Message) {
69
+ if ((yield* Ref.get(phase)) === Phase.Connected) {
70
+ outboundQueue.unsafeOffer(p)
71
+ } else {
72
+ pendingQueue.unsafeOffer(p)
73
+ }
74
+ }
75
+
76
+ const heartbeatSend = genFn(function* (p: Message) {
77
+ if ((yield* Ref.get(phase)) !== Phase.Connecting) {
78
+ outboundQueue.unsafeOffer(p)
79
+ return true
80
+ }
81
+ return false
82
+ })
81
83
 
82
84
  const prioritySend = (p: Message) => outboundQueue.offer(p)
83
85
 
84
- const resume = pipe(
85
- setPhase(Phase.Connected),
86
- Effect.zipRight(pendingQueue.clear),
87
- Effect.tap(_ => outboundQueue.offerAll(_)),
88
- Effect.asVoid,
89
- )
90
-
91
- const onConnecting = pipe(
92
- outboundQueue.clear,
93
- Effect.tap(msgs =>
94
- pendingQueue.offerAll(
95
- Chunk.filter(
96
- msgs,
97
- msg =>
98
- msg !== Reconnect &&
99
- msg.op !== Discord.GatewayOpcode.IDENTIFY &&
100
- msg.op !== Discord.GatewayOpcode.RESUME &&
101
- msg.op !== Discord.GatewayOpcode.HEARTBEAT,
102
- ),
86
+ const resume = Effect.gen(function* () {
87
+ yield* FiberHandle.clear(reconnectHandle)
88
+ yield* setPhase(Phase.Connected)
89
+ const msgs = yield* pendingQueue.clear
90
+ outboundQueue.unsafeOfferAll(
91
+ Chunk.filter(
92
+ msgs,
93
+ msg =>
94
+ msg !== Reconnect &&
95
+ msg.op !== Discord.GatewayOpcode.IDENTIFY &&
96
+ msg.op !== Discord.GatewayOpcode.RESUME &&
97
+ msg.op !== Discord.GatewayOpcode.HEARTBEAT,
103
98
  ),
104
- ),
105
- Effect.zipRight(setPhase(Phase.Connecting)),
106
- )
99
+ )
100
+ })
101
+
102
+ const onConnecting = Effect.gen(function* () {
103
+ const msgs = yield* outboundQueue.clear
104
+ pendingQueue.unsafeOfferAll(
105
+ Chunk.filter(
106
+ msgs,
107
+ msg =>
108
+ msg !== Reconnect &&
109
+ msg.op !== Discord.GatewayOpcode.IDENTIFY &&
110
+ msg.op !== Discord.GatewayOpcode.RESUME &&
111
+ msg.op !== Discord.GatewayOpcode.HEARTBEAT,
112
+ ),
113
+ )
114
+ yield* setPhase(Phase.Connecting)
115
+ })
107
116
 
108
117
  const socket = yield* dws.connect({ outbound, onConnecting })
109
118
 
@@ -133,74 +142,74 @@ export const make = Effect.gen(function* () {
133
142
  stateStore.get,
134
143
  )
135
144
 
136
- const onPayload = (p: Discord.GatewayPayload) =>
137
- pipe(
138
- Effect.suspend(() => {
139
- if (typeof p.s === "number") {
140
- resumeState.sequence = p.s
145
+ // delayed reconnect
146
+ const delayedReconnect = Effect.gen(function* () {
147
+ yield* Effect.sleep(30_000)
148
+ yield* prioritySend(Reconnect)
149
+ })
150
+
151
+ function* onPayload(p: Discord.GatewayPayload) {
152
+ if (typeof p.s === "number") {
153
+ resumeState.sequence = p.s
154
+ }
155
+ if (p.op === Discord.GatewayOpcode.DISPATCH && p.t === "READY") {
156
+ const payload = p.d as Discord.ReadyEvent
157
+ resumeState.sessionId = payload.session_id
158
+ resumeState.resumeUrl = payload.resume_gateway_url
159
+ yield* stateStore.set(resumeState)
160
+ yield* socket.setUrl(payload.resume_gateway_url)
161
+ } else if (
162
+ resumeState.resumeUrl !== "" &&
163
+ resumeState.sessionId !== ""
164
+ ) {
165
+ yield* stateStore.set(resumeState)
166
+ }
167
+
168
+ switch (p.op) {
169
+ case Discord.GatewayOpcode.HELLO: {
170
+ yield* prioritySend(yield* identify)
171
+ yield* setPhase(Phase.Handshake)
172
+ hellos.unsafeOffer(p)
173
+ yield* FiberHandle.run(reconnectHandle, delayedReconnect)
174
+ break
175
+ }
176
+ case Discord.GatewayOpcode.HEARTBEAT_ACK: {
177
+ acks.unsafeOffer(p)
178
+ break
179
+ }
180
+ case Discord.GatewayOpcode.INVALID_SESSION: {
181
+ if (!p.d) {
182
+ resumeState.sessionId = ""
183
+ yield* stateStore.clear
141
184
  }
142
- if (p.op === Discord.GatewayOpcode.DISPATCH && p.t === "READY") {
143
- const payload = p.d as Discord.ReadyEvent
144
- resumeState.sessionId = payload.session_id
145
- resumeState.resumeUrl = payload.resume_gateway_url
146
- return Effect.zipRight(
147
- stateStore.set(resumeState),
148
- socket.setUrl(payload.resume_gateway_url),
149
- )
185
+ yield* send(Reconnect)
186
+ break
187
+ }
188
+ case Discord.GatewayOpcode.DISPATCH: {
189
+ if (p.t === "READY" || p.t === "RESUMED") {
190
+ yield* resume
150
191
  }
151
- if (resumeState.resumeUrl !== "" && resumeState.sessionId !== "") {
152
- return stateStore.set(resumeState)
153
- }
154
- return Effect.void
155
- }),
156
- Effect.tap(() => {
157
- switch (p.op) {
158
- case Discord.GatewayOpcode.HELLO: {
159
- return pipe(
160
- Effect.tap(identify, prioritySend),
161
- Effect.zipRight(setPhase(Phase.Handshake)),
162
- Effect.zipRight(hellos.offer(p)),
163
- )
164
- }
165
- case Discord.GatewayOpcode.HEARTBEAT_ACK: {
166
- return acks.offer(p)
167
- }
168
- case Discord.GatewayOpcode.INVALID_SESSION: {
169
- if (p.d) {
170
- return send(Reconnect)
171
- }
172
- resumeState.sessionId = ""
173
- return Effect.zipRight(stateStore.clear, send(Reconnect))
174
- }
175
- case Discord.GatewayOpcode.DISPATCH: {
176
- if (p.t === "READY" || p.t === "RESUMED") {
177
- return Effect.zipRight(resume, PubSub.publish(hub, p))
178
- }
179
- return PubSub.publish(hub, p)
180
- }
181
- case Discord.GatewayOpcode.RECONNECT: {
182
- return prioritySend(Reconnect)
183
- }
184
- default: {
185
- return Effect.void
186
- }
187
- }
188
- }),
189
- )
190
-
191
- yield* sendMailbox.take.pipe(
192
- Effect.tap(send),
193
- Effect.forever,
194
- Effect.forkScoped,
195
- Effect.interruptible,
196
- )
197
-
198
- yield* socket.take.pipe(
199
- Effect.flatMap(onPayload),
200
- Effect.forever,
201
- Effect.forkScoped,
202
- Effect.interruptible,
203
- )
192
+ hub.unsafeOffer(p)
193
+ break
194
+ }
195
+ case Discord.GatewayOpcode.RECONNECT: {
196
+ yield* prioritySend(Reconnect)
197
+ break
198
+ }
199
+ }
200
+ }
201
+
202
+ yield* Effect.gen(function* () {
203
+ while (true) {
204
+ yield* send(yield* sendMailbox.take)
205
+ }
206
+ }).pipe(Effect.forkScoped, Effect.interruptible)
207
+
208
+ yield* Effect.gen(function* () {
209
+ while (true) {
210
+ yield* onPayload(yield* socket.take)
211
+ }
212
+ }).pipe(Effect.forkScoped, Effect.interruptible)
204
213
 
205
214
  return { id: shard, send } as const
206
215
  }).pipe(
@@ -4,6 +4,7 @@ import * as Effect from "effect/Effect"
4
4
  import * as Fiber from "effect/Fiber"
5
5
  import * as PubSub from "effect/PubSub"
6
6
  import * as Queue from "effect/Queue"
7
+ import type { YieldWrap } from "effect/Utils"
7
8
 
8
9
  export const subscribeForEachPar = <R, E, A, X>(
9
10
  self: PubSub.PubSub<A>,
@@ -52,3 +53,29 @@ export const foreverSwitch = <R, E, A, R1, E1, X>(
52
53
  Effect.raceFirst(Deferred.await(deferred)),
53
54
  )
54
55
  })
56
+
57
+ export function genFn<
58
+ Eff extends YieldWrap<Effect.Effect<any, any, any>>,
59
+ AEff,
60
+ Args extends Array<any>,
61
+ >(
62
+ body: (...args: Args) => Generator<Eff, AEff, never>,
63
+ ): (
64
+ ...args: Args
65
+ ) => Effect.Effect<
66
+ AEff,
67
+ [Eff] extends [never]
68
+ ? never
69
+ : [Eff] extends [YieldWrap<Effect.Effect<infer _A, infer E, infer _R>>]
70
+ ? E
71
+ : never,
72
+ [Eff] extends [never]
73
+ ? never
74
+ : [Eff] extends [YieldWrap<Effect.Effect<infer _A, infer _E, infer R>>]
75
+ ? R
76
+ : never
77
+ > {
78
+ return function (...args) {
79
+ return Effect.gen(() => body(...args))
80
+ }
81
+ }
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const LIB_VERSION = "0.107.0";
1
+ export const LIB_VERSION = "0.107.1";
package/utils/Effect.d.ts CHANGED
@@ -1,5 +1,11 @@
1
1
  import * as Effect from "effect/Effect";
2
2
  import * as PubSub from "effect/PubSub";
3
+ import type { YieldWrap } from "effect/Utils";
3
4
  export declare const subscribeForEachPar: <R, E, A, X>(self: PubSub.PubSub<A>, effect: (_: A) => Effect.Effect<X, E, R>) => Effect.Effect<never, E, R>;
4
5
  export declare const foreverSwitch: <R, E, A, R1, E1, X>(self: Effect.Effect<A, E, R>, f: (_: A) => Effect.Effect<X, E1, R1>) => Effect.Effect<never, E | E1, R | R1>;
6
+ export declare function genFn<Eff extends YieldWrap<Effect.Effect<any, any, any>>, AEff, Args extends Array<any>>(body: (...args: Args) => Generator<Eff, AEff, never>): (...args: Args) => Effect.Effect<AEff, [
7
+ Eff
8
+ ] extends [never] ? never : [Eff] extends [YieldWrap<Effect.Effect<infer _A, infer E, infer _R>>] ? E : never, [
9
+ Eff
10
+ ] extends [never] ? never : [Eff] extends [YieldWrap<Effect.Effect<infer _A, infer _E, infer R>>] ? R : never>;
5
11
  //# sourceMappingURL=Effect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Effect.d.ts","sourceRoot":"","sources":["../src/utils/Effect.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,eAAO,MAAM,mBAAmB,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QACtC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,UACd,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KACvC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAoBxB,CAAA;AAEJ,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,QACxC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KACzB,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,KACpC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAkBlC,CAAA"}
1
+ {"version":3,"file":"Effect.d.ts","sourceRoot":"","sources":["../src/utils/Effect.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAE7C,eAAO,MAAM,mBAAmB,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QACtC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,UACd,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KACvC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAoBxB,CAAA;AAEJ,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,QACxC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KACzB,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,KACpC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAkBlC,CAAA;AAEJ,wBAAgB,KAAK,CACnB,GAAG,SAAS,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EACnD,IAAI,EACJ,IAAI,SAAS,KAAK,CAAC,GAAG,CAAC,EAEvB,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,GACnD,CACD,GAAG,IAAI,EAAE,IAAI,KACV,MAAM,CAAC,MAAM,CAChB,IAAI,EACJ;IAAC,GAAG;CAAC,SAAS,CAAC,KAAK,CAAC,GACjB,KAAK,GACL,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,GACnE,CAAC,GACD,KAAK,EACX;IAAC,GAAG;CAAC,SAAS,CAAC,KAAK,CAAC,GACjB,KAAK,GACL,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GACnE,CAAC,GACD,KAAK,CACZ,CAIA"}
package/utils/Effect.js CHANGED
@@ -3,7 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.subscribeForEachPar = exports.foreverSwitch = void 0;
6
+ exports.foreverSwitch = void 0;
7
+ exports.genFn = genFn;
8
+ exports.subscribeForEachPar = void 0;
7
9
  var _Function = /*#__PURE__*/require("effect/Function");
8
10
  var Deferred = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Deferred"));
9
11
  var Effect = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Effect"));
@@ -25,4 +27,9 @@ const foreverSwitch = (self, f) => Effect.gen(function* () {
25
27
  }))), Effect.forever, Effect.raceFirst(Deferred.await(deferred)));
26
28
  });
27
29
  exports.foreverSwitch = foreverSwitch;
30
+ function genFn(body) {
31
+ return function (...args) {
32
+ return Effect.gen(() => body(...args));
33
+ };
34
+ }
28
35
  //# sourceMappingURL=Effect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Effect.js","names":["_Function","require","Deferred","_interopRequireWildcard","Effect","Fiber","PubSub","Queue","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","subscribeForEachPar","self","effect","flatMap","make","deferred","run","pipe","subscribe","queue","forever","take","fork","catchAllCause","cause","failCause","scoped","interruptible","raceFirst","await","exports","foreverSwitch","f","gen","fiber","tap","interruptFork","void","fiber_"],"sources":["../src/utils/Effect.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Effect.js","names":["_Function","require","Deferred","_interopRequireWildcard","Effect","Fiber","PubSub","Queue","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","subscribeForEachPar","self","effect","flatMap","make","deferred","run","pipe","subscribe","queue","forever","take","fork","catchAllCause","cause","failCause","scoped","interruptible","raceFirst","await","exports","foreverSwitch","f","gen","fiber","tap","interruptFork","void","fiber_","genFn","body","args"],"sources":["../src/utils/Effect.ts"],"sourcesContent":[null],"mappings":";;;;;;;;AAAA,IAAAA,SAAA,gBAAAC,OAAA;AACA,IAAAC,QAAA,gBAAAC,uBAAA,cAAAF,OAAA;AACA,IAAAG,MAAA,gBAAAD,uBAAA,cAAAF,OAAA;AACA,IAAAI,KAAA,gBAAAF,uBAAA,cAAAF,OAAA;AACA,IAAAK,MAAA,gBAAAH,uBAAA,cAAAF,OAAA;AACA,IAAAM,KAAA,gBAAAJ,uBAAA,cAAAF,OAAA;AAAqC,SAAAO,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAN,wBAAAM,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAG9B,MAAMW,mBAAmB,GAAGA,CACjCC,IAAsB,EACtBC,MAAwC,KAExC1B,MAAM,CAAC2B,OAAO,CAAC7B,QAAQ,CAAC8B,IAAI,EAAY,EAAEC,QAAQ,IAAG;EACnD,MAAMC,GAAG,GAAG,IAAAC,cAAI,EACd7B,MAAM,CAAC8B,SAAS,CAACP,IAAI,CAAC,EACtBzB,MAAM,CAAC2B,OAAO,CAACM,KAAK,IAClBjC,MAAM,CAACkC,OAAO,CACZlC,MAAM,CAAC2B,OAAO,CAACxB,KAAK,CAACgC,IAAI,CAACF,KAAK,CAAC,EAAElB,CAAC,IACjCf,MAAM,CAACoC,IAAI,CACTpC,MAAM,CAACqC,aAAa,CAACX,MAAM,CAACX,CAAC,CAAC,EAAEuB,KAAK,IACnCxC,QAAQ,CAACyC,SAAS,CAACV,QAAQ,EAAES,KAAK,CAAC,CACpC,CACF,CACF,CACF,CACF,EACDtC,MAAM,CAACwC,MAAM,EACbxC,MAAM,CAACyC,aAAa,CACrB;EAED,OAAOzC,MAAM,CAAC0C,SAAS,CAACZ,GAAG,EAAEhC,QAAQ,CAAC6C,KAAK,CAACd,QAAQ,CAAC,CAAC;AACxD,CAAC,CAAC;AAAAe,OAAA,CAAApB,mBAAA,GAAAA,mBAAA;AAEG,MAAMqB,aAAa,GAAGA,CAC3BpB,IAA4B,EAC5BqB,CAAqC,KAErC9C,MAAM,CAAC+C,GAAG,CAAC,aAAS;EAClB,MAAMlB,QAAQ,GAAG,OAAO/B,QAAQ,CAAC8B,IAAI,EAAa;EAClD,IAAIoB,KAAuD;EAC3D,OAAO,OAAOvB,IAAI,CAACM,IAAI,CACrB/B,MAAM,CAACiD,GAAG,CAAC,MAAOD,KAAK,GAAG/C,KAAK,CAACiD,aAAa,CAACF,KAAK,CAAC,GAAGhD,MAAM,CAACmD,IAAK,CAAC,EACpEnD,MAAM,CAAC2B,OAAO,CAACZ,CAAC,IACd+B,CAAC,CAAC/B,CAAC,CAAC,CAACgB,IAAI,CACP/B,MAAM,CAACqC,aAAa,CAACC,KAAK,IAAIxC,QAAQ,CAACyC,SAAS,CAACV,QAAQ,EAAES,KAAK,CAAC,CAAC,EAClEtC,MAAM,CAACoC,IAAI,EACXpC,MAAM,CAACiD,GAAG,CAACG,MAAM,IAAG;IAClBJ,KAAK,GAAGI,MAAM;EAChB,CAAC,CAAC,CACH,CACF,EACDpD,MAAM,CAACkC,OAAO,EACdlC,MAAM,CAAC0C,SAAS,CAAC5C,QAAQ,CAAC6C,KAAK,CAACd,QAAQ,CAAC,CAAC,CAC3C;AACH,CAAC,CAAC;AAAAe,OAAA,CAAAC,aAAA,GAAAA,aAAA;AAEE,SAAUQ,KAAKA,CAKnBC,IAAoD;EAgBpD,OAAO,UAAU,GAAGC,IAAI;IACtB,OAAOvD,MAAM,CAAC+C,GAAG,CAAC,MAAMO,IAAI,CAAC,GAAGC,IAAI,CAAC,CAAC;EACxC,CAAC;AACH","ignoreList":[]}
package/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const LIB_VERSION = "0.107.0";
1
+ export declare const LIB_VERSION = "0.107.1";
2
2
  //# sourceMappingURL=version.d.ts.map
package/version.js CHANGED
@@ -4,5 +4,5 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.LIB_VERSION = void 0;
7
- const LIB_VERSION = exports.LIB_VERSION = "0.107.0";
7
+ const LIB_VERSION = exports.LIB_VERSION = "0.107.1";
8
8
  //# sourceMappingURL=version.js.map