dfx 0.107.2 → 0.107.4

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.
@@ -10,7 +10,6 @@ export interface OpenOpts {
10
10
  url?: string;
11
11
  version?: number;
12
12
  encoding?: DiscordWSCodec;
13
- outbound: Effect.Effect<Message>;
14
13
  onConnecting: Effect.Effect<void>;
15
14
  }
16
15
  export interface DiscordWSCodecService {
@@ -27,9 +26,10 @@ export interface DiscordWS {
27
26
  readonly _: unique symbol;
28
27
  }
29
28
  export declare const DiscordWS: import("effect/Context").Tag<DiscordWS, {
30
- readonly connect: ({ onConnecting, outbound, url, version, }: OpenOpts) => Effect.Effect<{
29
+ readonly connect: ({ onConnecting, url, version, }: OpenOpts) => Effect.Effect<{
31
30
  readonly take: Effect.Effect<Discord.GatewayPayload<any>, Cause.NoSuchElementException, never>;
32
31
  readonly setUrl: (url: string) => Effect.Effect<void, never, never>;
32
+ readonly write: (message: Discord.GatewayPayload | Reconnect) => Effect.Effect<void>;
33
33
  }, never, import("effect/Scope").Scope | Socket.WebSocketConstructor>;
34
34
  }>;
35
35
  export declare const DiscordWSLive: Layer.Layer<DiscordWS, never, DiscordWSCodec>;
@@ -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;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"}
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,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;AAiFF,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,CAAC,EAAE,OAAO,MAAM,CAAA;CAC1B;AACD,eAAO,MAAM,SAAS;wDA3EjB,QAAQ;;+BAKc,MAAM;kCAchB,OAAO,CAAC,cAAc,GAAG,SAAS,KAC1C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;;EA0DK,CAAA;AACjC,eAAO,MAAM,aAAa,+CAAgC,CAAA"}
@@ -14,12 +14,10 @@ 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"));
18
17
  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); }
19
18
  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; }
20
19
  const Reconnect = exports.Reconnect = /*#__PURE__*/Symbol.for("dfx/DiscordGateway/WS/Reconnect");
21
20
  const decoder = /*#__PURE__*/new TextDecoder();
22
- const logLevelDebug = /*#__PURE__*/Option.some(LogLevel.Debug);
23
21
  const logLevelTrace = /*#__PURE__*/Option.some(LogLevel.Trace);
24
22
  const DiscordWSCodec = exports.DiscordWSCodec = /*#__PURE__*/(0, _Context.GenericTag)("dfx/DiscordGateway/DiscordWS/Codec");
25
23
  const JsonDiscordWSCodecLive = exports.JsonDiscordWSCodecLive = /*#__PURE__*/Layer.succeed(DiscordWSCodec, {
@@ -31,7 +29,6 @@ const make = /*#__PURE__*/Effect.gen(function* () {
31
29
  const encoding = yield* DiscordWSCodec;
32
30
  const connect = ({
33
31
  onConnecting,
34
- outbound,
35
32
  url = "wss://gateway.discord.gg/",
36
33
  version = 10
37
34
  }) => Effect.gen(function* () {
@@ -42,32 +39,28 @@ const make = /*#__PURE__*/Effect.gen(function* () {
42
39
  closeCodeIsError: _ => true,
43
40
  openTimeout: 5000
44
41
  });
45
- const write = yield* socket.writer;
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
- } else {
55
- ;
56
- fiber.log([message], Cause.empty, logLevelTrace);
57
- yield* write(encoding.encode(message));
58
- }
42
+ const writeRaw = yield* socket.writer;
43
+ const logWriteError = cause => Effect.annotateLogs(Effect.logDebug(cause), {
44
+ module: "DiscordGateway/DiscordWS",
45
+ channel: "outbound"
46
+ });
47
+ const write = message => {
48
+ if (message === Reconnect) {
49
+ return Effect.catchAllCause(writeRaw(new Socket.CloseEvent(1012, "reconnecting")), logWriteError);
59
50
  }
60
- }).pipe(Effect.annotateLogs("channel", "outbound"), Effect.forkScoped, Effect.interruptible);
51
+ return Effect.catchAllCause(writeRaw(encoding.encode(message)), logWriteError);
52
+ };
61
53
  yield* onConnecting.pipe(Effect.zipRight(Effect.withFiberRuntime(fiber => socket.runRaw(_ => {
62
54
  const message = encoding.decode(_);
63
55
  messages.unsafeOffer(message);
64
- fiber.log([message], Cause.empty, logLevelDebug);
56
+ fiber.log([message], Cause.empty, logLevelTrace);
65
57
  }))), Effect.retry({
66
58
  while: e => e.reason === "Close" && e.code === 1012
67
59
  }), Effect.catchAllCause(cause => Effect.logDebug("Got socket error, reconnecting", cause)), Effect.repeat(Schedule.exponential(500).pipe(Schedule.union(Schedule.spaced(10000)))), Effect.annotateLogs("channel", "inbound"), Effect.forkScoped, Effect.interruptible);
68
60
  return {
69
61
  take: messages.take,
70
- setUrl
62
+ setUrl,
63
+ write
71
64
  };
72
65
  }).pipe(Effect.annotateLogs({
73
66
  module: "DiscordGateway/DiscordWS"
@@ -1 +1 @@
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":[]}
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","logLevelTrace","some","Trace","DiscordWSCodec","GenericTag","JsonDiscordWSCodecLive","succeed","type","encode","p","JSON","stringify","decode","parse","make","gen","encoding","connect","onConnecting","url","version","urlRef","setUrl","messages","socket","makeWebSocket","closeCodeIsError","_","openTimeout","writeRaw","writer","logWriteError","cause","annotateLogs","logDebug","module","channel","write","message","catchAllCause","CloseEvent","pipe","zipRight","withFiberRuntime","fiber","runRaw","unsafeOffer","log","empty","retry","while","reason","code","repeat","exponential","union","spaced","forkScoped","interruptible","take","DiscordWS","DiscordWSLive","effect"],"sources":["../src/DiscordGateway/DiscordWS.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -4,5 +4,5 @@ import * as DiscordWS from "dfx/DiscordGateway/DiscordWS";
4
4
  import type * as Discord from "dfx/types";
5
5
  import type { ShardState } from "dfx/DiscordGateway/Shard/StateStore";
6
6
  import type * as Mailbox from "effect/Mailbox";
7
- export declare const send: (hellos: Mailbox.ReadonlyMailbox<Discord.GatewayPayload>, acks: Mailbox.ReadonlyMailbox<Discord.GatewayPayload>, state: Effect.Effect<Option.Option<ShardState>>, send: (p: DiscordWS.Message) => Effect.Effect<boolean>) => Effect.Effect<void, import("effect/Cause").NoSuchElementException, never>;
7
+ export declare const send: (hellos: Mailbox.ReadonlyMailbox<Discord.GatewayPayload>, acks: Mailbox.ReadonlyMailbox<Discord.GatewayPayload>, state: Effect.Effect<Option.Option<ShardState>>, send: (p: DiscordWS.Message) => Effect.Effect<void>) => Effect.Effect<void, import("effect/Cause").NoSuchElementException, never>;
8
8
  //# sourceMappingURL=heartbeats.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"heartbeats.d.ts","sourceRoot":"","sources":["../../src/DiscordGateway/Shard/heartbeats.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,SAAS,MAAM,8BAA8B,CAAA;AAEzD,OAAO,KAAK,KAAK,OAAO,MAAM,WAAW,CAAA;AAEzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAA;AACrE,OAAO,KAAK,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAiB9C,eAAO,MAAM,IAAI,WACP,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,cAAc,CAAC,QACjD,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,cAAc,CAAC,SAC9C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QACzC,CAAC,CAAC,EAAE,SAAS,CAAC,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,8EA6BpD,CAAA"}
1
+ {"version":3,"file":"heartbeats.d.ts","sourceRoot":"","sources":["../../src/DiscordGateway/Shard/heartbeats.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,SAAS,MAAM,8BAA8B,CAAA;AAEzD,OAAO,KAAK,KAAK,OAAO,MAAM,WAAW,CAAA;AAEzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAA;AACrE,OAAO,KAAK,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAiB9C,eAAO,MAAM,IAAI,WACP,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,cAAc,CAAC,QACjD,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,cAAc,CAAC,SAC9C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QACzC,CAAC,CAAC,EAAE,SAAS,CAAC,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,8EA+BjD,CAAA"}
@@ -17,7 +17,8 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
17
17
  const payload = state => Effect.map(state, state => SendEvents.heartbeat(Option.getOrNull(Option.map(state, s => s.sequence))));
18
18
  const payloadOrReconnect = (ref, state) => Effect.flatMap(Ref.get(ref), acked => acked ? payload(state) : Effect.succeed(DiscordWS.Reconnect));
19
19
  const send = (hellos, acks, state, send) => Effect.flatMap(Ref.make(true), ackedRef => {
20
- const heartbeats = EffectU.foreverSwitch(Effect.zipLeft(hellos.take, Ref.set(ackedRef, true)), p => payloadOrReconnect(ackedRef, state).pipe(Effect.zipLeft(Ref.set(ackedRef, false)), Effect.tap(send), Effect.schedule(Schedule.andThen(Schedule.duration(Duration.millis(p.d.heartbeat_interval * Math.random())), Schedule.spaced(Duration.millis(p.d.heartbeat_interval))))));
20
+ const sendPayload = payloadOrReconnect(ackedRef, state).pipe(Effect.zipLeft(Ref.set(ackedRef, false)), Effect.flatMap(send));
21
+ const heartbeats = EffectU.foreverSwitch(Effect.zipLeft(hellos.take, Ref.set(ackedRef, true)), p => Effect.schedule(sendPayload, Schedule.andThen(Schedule.duration(Duration.millis(p.d.heartbeat_interval * Math.random())), Schedule.spaced(Duration.millis(p.d.heartbeat_interval)))));
21
22
  const run = acks.take.pipe(Effect.zipLeft(Ref.set(ackedRef, true)), Effect.forever);
22
23
  return Effect.all([run, heartbeats], {
23
24
  concurrency: "unbounded",
@@ -1 +1 @@
1
- {"version":3,"file":"heartbeats.js","names":["Duration","_interopRequireWildcard","require","Option","Effect","Ref","Schedule","DiscordWS","SendEvents","EffectU","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","payload","state","map","heartbeat","getOrNull","s","sequence","payloadOrReconnect","ref","flatMap","acked","succeed","Reconnect","send","hellos","acks","make","ackedRef","heartbeats","foreverSwitch","zipLeft","take","p","pipe","tap","schedule","andThen","duration","millis","d","heartbeat_interval","Math","random","spaced","run","forever","all","concurrency","discard","exports"],"sources":["../../src/DiscordGateway/Shard/heartbeats.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"heartbeats.js","names":["Duration","_interopRequireWildcard","require","Option","Effect","Ref","Schedule","DiscordWS","SendEvents","EffectU","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","payload","state","map","heartbeat","getOrNull","s","sequence","payloadOrReconnect","ref","flatMap","acked","succeed","Reconnect","send","hellos","acks","make","ackedRef","sendPayload","pipe","zipLeft","heartbeats","foreverSwitch","take","p","schedule","andThen","duration","millis","d","heartbeat_interval","Math","random","spaced","run","forever","all","concurrency","discard","exports"],"sources":["../../src/DiscordGateway/Shard/heartbeats.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,21 +1,14 @@
1
1
  import { DiscordConfig } from "dfx/DiscordConfig";
2
- import type { Message } from "dfx/DiscordGateway/DiscordWS";
3
2
  import { DiscordWS } from "dfx/DiscordGateway/DiscordWS";
4
3
  import { ShardStateStore } from "dfx/DiscordGateway/Shard/StateStore";
5
4
  import { RateLimiter } from "dfx/RateLimit";
6
5
  import * as Effect from "effect/Effect";
7
6
  import * as Layer from "effect/Layer";
8
- declare const enum Phase {
9
- Connecting = 0,
10
- Handshake = 1,
11
- Connected = 2
12
- }
13
7
  export declare const make: Effect.Effect<{
14
8
  readonly connect: (shard: [id: number, count: number]) => Effect.Effect<{
15
9
  readonly id: [id: number, count: number];
16
- readonly send: (p: Message) => Generator<import("effect/Utils").YieldWrap<Effect.Effect<Phase, never, never>>, void, any>;
17
10
  }, never, import("effect/Scope").Scope | import("@effect/platform/Socket").WebSocketConstructor>;
18
- }, never, DiscordConfig | RateLimiter | DiscordWS | ShardStateStore | import("dfx/DiscordGateway/Messaging").Messsaging>;
11
+ }, never, DiscordConfig | RateLimiter | DiscordWS | import("dfx/DiscordGateway/Messaging").Messsaging | ShardStateStore>;
19
12
  type ShardService = Effect.Effect.Success<typeof make>;
20
13
  export interface Shard {
21
14
  readonly _: unique symbol;
@@ -23,7 +16,6 @@ export interface Shard {
23
16
  export declare const Shard: import("effect/Context").Tag<Shard, {
24
17
  readonly connect: (shard: [id: number, count: number]) => Effect.Effect<{
25
18
  readonly id: [id: number, count: number];
26
- readonly send: (p: Message) => Generator<import("effect/Utils").YieldWrap<Effect.Effect<Phase, never, never>>, void, any>;
27
19
  }, never, import("effect/Scope").Scope | import("@effect/platform/Socket").WebSocketConstructor>;
28
20
  }>;
29
21
  export declare const ShardLive: Layer.Layer<Shard, never, DiscordConfig | import("dfx/RateLimit").RateLimitStore | import("dfx/DiscordGateway/DiscordWS").DiscordWSCodec | ShardStateStore>;
@@ -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;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"}
1
+ {"version":3,"file":"Shard.d.ts","sourceRoot":"","sources":["../src/DiscordGateway/Shard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,OAAO,EACL,SAAS,EAGV,MAAM,8BAA8B,CAAA;AAGrC,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAGrE,OAAO,EAAE,WAAW,EAAmB,MAAM,eAAe,CAAA;AAI5D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAarC,eAAO,MAAM,IAAI;8BAOS,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;;;wHAoJnD,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;8BA3JQ,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;;;EA2J2B,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"}
@@ -12,7 +12,6 @@ var Heartbeats = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("dfx/
12
12
  var Identify = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("dfx/DiscordGateway/Shard/identify"));
13
13
  var _RateLimit = /*#__PURE__*/require("dfx/RateLimit");
14
14
  var Discord = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("dfx/types"));
15
- var Chunk = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Chunk"));
16
15
  var _Context = /*#__PURE__*/require("effect/Context");
17
16
  var Duration = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Duration"));
18
17
  var Effect = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Effect"));
@@ -20,8 +19,6 @@ var Layer = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/La
20
19
  var Option = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Option"));
21
20
  var Mailbox = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Mailbox"));
22
21
  var Redacted = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Redacted"));
23
- var Ref = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Ref"));
24
- var _Effect2 = /*#__PURE__*/require("dfx/utils/Effect");
25
22
  var FiberHandle = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/FiberHandle"));
26
23
  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
24
  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; }
@@ -38,48 +35,31 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
38
35
  } = yield* _Messaging.Messaging;
39
36
  const shardState = yield* _StateStore.ShardStateStore;
40
37
  const connect = shard => Effect.gen(function* (_) {
41
- const outboundQueue = yield* Mailbox.make();
42
- const pendingQueue = yield* Mailbox.make();
43
38
  const reconnectHandle = yield* FiberHandle.make();
44
- const phase = yield* Ref.make(0 /* Phase.Connecting */);
39
+ let phase = 0 /* Phase.Connecting */;
45
40
  const stateStore = shardState.forShard(shard);
46
41
  const resumeState = Option.getOrElse(yield* stateStore.get, () => ({
47
42
  resumeUrl: "",
48
43
  sessionId: "",
49
44
  sequence: 0
50
45
  }));
51
- const setPhase = p => Effect.zipLeft(Ref.set(phase, p), Effect.annotateLogs(Effect.logTrace("phase transition"), "phase", p));
52
- const outbound = Effect.orDie(Effect.zipLeft(outboundQueue.take, limiter.maybeWait("dfx.shard.send", Duration.minutes(1), 120)));
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;
46
+ const setPhase = p => Effect.suspend(() => {
47
+ phase = p;
48
+ return Effect.annotateLogs(Effect.logTrace("phase transition"), "phase", p);
49
+ });
50
+ const heartbeatSend = p => Effect.suspend(() => {
51
+ if (phase === 0 /* Phase.Connecting */) return Effect.void;
52
+ return write(p);
66
53
  });
67
- const prioritySend = p => outboundQueue.offer(p);
68
54
  const resume = Effect.gen(function* () {
69
55
  yield* FiberHandle.clear(reconnectHandle);
70
56
  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
  });
58
+ const onConnecting = setPhase(0 /* Phase.Connecting */);
79
59
  const socket = yield* dws.connect({
80
- outbound,
81
60
  onConnecting
82
61
  });
62
+ const write = p => Effect.zipRight(limiter.maybeWait("dfx.shard.send", Duration.minutes(1), 120), socket.write(p));
83
63
  const hellos = yield* Effect.acquireRelease(Mailbox.make(), _ => _.shutdown);
84
64
  const acks = yield* Effect.acquireRelease(Mailbox.make(), _ => _.shutdown);
85
65
  // heartbeats
@@ -94,7 +74,7 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
94
74
  // delayed reconnect
95
75
  const delayedReconnect = Effect.gen(function* () {
96
76
  yield* Effect.sleep(30_000);
97
- yield* prioritySend(_DiscordWS.Reconnect);
77
+ yield* socket.write(_DiscordWS.Reconnect);
98
78
  });
99
79
  function* onPayload(p) {
100
80
  if (typeof p.s === "number") {
@@ -112,16 +92,16 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
112
92
  switch (p.op) {
113
93
  case Discord.GatewayOpcode.HELLO:
114
94
  {
115
- yield* prioritySend(yield* identify);
95
+ yield* write(yield* identify);
116
96
  yield* setPhase(1 /* Phase.Handshake */);
117
97
  hellos.unsafeOffer(p);
118
98
  yield* FiberHandle.run(reconnectHandle, delayedReconnect);
119
- break;
99
+ return;
120
100
  }
121
101
  case Discord.GatewayOpcode.HEARTBEAT_ACK:
122
102
  {
123
103
  acks.unsafeOffer(p);
124
- break;
104
+ return;
125
105
  }
126
106
  case Discord.GatewayOpcode.INVALID_SESSION:
127
107
  {
@@ -129,8 +109,8 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
129
109
  resumeState.sessionId = "";
130
110
  yield* stateStore.clear;
131
111
  }
132
- yield* send(_DiscordWS.Reconnect);
133
- break;
112
+ yield* socket.write(_DiscordWS.Reconnect);
113
+ return;
134
114
  }
135
115
  case Discord.GatewayOpcode.DISPATCH:
136
116
  {
@@ -138,18 +118,18 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
138
118
  yield* resume;
139
119
  }
140
120
  hub.unsafeOffer(p);
141
- break;
121
+ return;
142
122
  }
143
123
  case Discord.GatewayOpcode.RECONNECT:
144
124
  {
145
- yield* prioritySend(_DiscordWS.Reconnect);
146
- break;
125
+ yield* socket.write(_DiscordWS.Reconnect);
126
+ return;
147
127
  }
148
128
  }
149
129
  }
150
130
  yield* Effect.gen(function* () {
151
131
  while (true) {
152
- yield* send(yield* sendMailbox.take);
132
+ yield* write(yield* sendMailbox.take);
153
133
  }
154
134
  }).pipe(Effect.forkScoped, Effect.interruptible);
155
135
  yield* Effect.gen(function* () {
@@ -158,8 +138,7 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
158
138
  }
159
139
  }).pipe(Effect.forkScoped, Effect.interruptible);
160
140
  return {
161
- id: shard,
162
- send
141
+ id: shard
163
142
  };
164
143
  }).pipe(Effect.annotateLogs({
165
144
  package: "dfx",
@@ -1 +1 @@
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":"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","ignoreList":[]}
1
+ {"version":3,"file":"Shard.js","names":["_DiscordConfig","require","_DiscordWS","_Messaging","_StateStore","Heartbeats","_interopRequireWildcard","Identify","_RateLimit","Discord","_Context","Duration","Effect","Layer","Option","Mailbox","Redacted","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","_","reconnectHandle","phase","stateStore","forShard","resumeState","getOrElse","resumeUrl","sessionId","sequence","setPhase","p","suspend","annotateLogs","logTrace","heartbeatSend","void","write","resume","clear","onConnecting","socket","zipRight","maybeWait","minutes","hellos","acquireRelease","shutdown","acks","send","pipe","forkScoped","interruptible","identify","identifyOrResume","value","intents","presence","delayedReconnect","sleep","Reconnect","onPayload","s","op","GatewayOpcode","DISPATCH","payload","d","session_id","resume_gateway_url","setUrl","HELLO","unsafeOffer","run","HEARTBEAT_ACK","INVALID_SESSION","RECONNECT","take","id","package","module","Shard","GenericTag","ShardLive","effect","provide","DiscordWSLive","MesssagingLive","RateLimiterLive"],"sources":["../src/DiscordGateway/Shard.ts"],"sourcesContent":[null],"mappings":"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","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 | ShardStore | import("./Shard/StateStore").ShardStateStore>;
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("./Shard/StateStore").ShardStateStore | import("@effect/platform/Socket").WebSocketConstructor | ShardStore>;
14
14
  //# sourceMappingURL=Sharder.d.ts.map
@@ -8,10 +8,8 @@ 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";
12
11
  export const Reconnect = /*#__PURE__*/Symbol.for("dfx/DiscordGateway/WS/Reconnect");
13
12
  const decoder = /*#__PURE__*/new TextDecoder();
14
- const logLevelDebug = /*#__PURE__*/Option.some(LogLevel.Debug);
15
13
  const logLevelTrace = /*#__PURE__*/Option.some(LogLevel.Trace);
16
14
  export const DiscordWSCodec = /*#__PURE__*/GenericTag("dfx/DiscordGateway/DiscordWS/Codec");
17
15
  export const JsonDiscordWSCodecLive = /*#__PURE__*/Layer.succeed(DiscordWSCodec, {
@@ -23,7 +21,6 @@ const make = /*#__PURE__*/Effect.gen(function* () {
23
21
  const encoding = yield* DiscordWSCodec;
24
22
  const connect = ({
25
23
  onConnecting,
26
- outbound,
27
24
  url = "wss://gateway.discord.gg/",
28
25
  version = 10
29
26
  }) => Effect.gen(function* () {
@@ -34,32 +31,28 @@ const make = /*#__PURE__*/Effect.gen(function* () {
34
31
  closeCodeIsError: _ => true,
35
32
  openTimeout: 5000
36
33
  });
37
- const write = yield* socket.writer;
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
- } else {
47
- ;
48
- fiber.log([message], Cause.empty, logLevelTrace);
49
- yield* write(encoding.encode(message));
50
- }
34
+ const writeRaw = yield* socket.writer;
35
+ const logWriteError = cause => Effect.annotateLogs(Effect.logDebug(cause), {
36
+ module: "DiscordGateway/DiscordWS",
37
+ channel: "outbound"
38
+ });
39
+ const write = message => {
40
+ if (message === Reconnect) {
41
+ return Effect.catchAllCause(writeRaw(new Socket.CloseEvent(1012, "reconnecting")), logWriteError);
51
42
  }
52
- }).pipe(Effect.annotateLogs("channel", "outbound"), Effect.forkScoped, Effect.interruptible);
43
+ return Effect.catchAllCause(writeRaw(encoding.encode(message)), logWriteError);
44
+ };
53
45
  yield* onConnecting.pipe(Effect.zipRight(Effect.withFiberRuntime(fiber => socket.runRaw(_ => {
54
46
  const message = encoding.decode(_);
55
47
  messages.unsafeOffer(message);
56
- fiber.log([message], Cause.empty, logLevelDebug);
48
+ fiber.log([message], Cause.empty, logLevelTrace);
57
49
  }))), Effect.retry({
58
50
  while: e => e.reason === "Close" && e.code === 1012
59
51
  }), Effect.catchAllCause(cause => Effect.logDebug("Got socket error, reconnecting", cause)), Effect.repeat(Schedule.exponential(500).pipe(Schedule.union(Schedule.spaced(10000)))), Effect.annotateLogs("channel", "inbound"), Effect.forkScoped, Effect.interruptible);
60
52
  return {
61
53
  take: messages.take,
62
- setUrl
54
+ setUrl,
55
+ write
63
56
  };
64
57
  }).pipe(Effect.annotateLogs({
65
58
  module: "DiscordGateway/DiscordWS"
@@ -1 +1 @@
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":[]}
1
+ {"version":3,"file":"DiscordWS.mjs","names":["GenericTag","Effect","Layer","Ref","Socket","Mailbox","Schedule","Cause","Option","LogLevel","Reconnect","Symbol","for","decoder","TextDecoder","logLevelTrace","some","Trace","DiscordWSCodec","JsonDiscordWSCodecLive","succeed","type","encode","p","JSON","stringify","decode","parse","make","gen","encoding","connect","onConnecting","url","version","urlRef","setUrl","set","messages","socket","makeWebSocket","get","closeCodeIsError","_","openTimeout","writeRaw","writer","logWriteError","cause","annotateLogs","logDebug","module","channel","write","message","catchAllCause","CloseEvent","pipe","zipRight","withFiberRuntime","fiber","runRaw","unsafeOffer","log","empty","retry","while","e","reason","code","repeat","exponential","union","spaced","forkScoped","interruptible","take","DiscordWS","DiscordWSLive","effect"],"sources":["../../src/DiscordGateway/DiscordWS.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAU,QAAQ,gBAAgB;AAC3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,GAAG,MAAM,YAAY;AAEjC,OAAO,KAAKC,MAAM,MAAM,yBAAyB;AACjD,OAAO,KAAKC,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAI3C,OAAO,MAAMC,SAAS,gBAAGC,MAAM,CAACC,GAAG,CAAC,iCAAiC,CAAC;AAmBtE,MAAMC,OAAO,gBAAG,IAAIC,WAAW,EAAE;AACjC,MAAMC,aAAa,gBAAGP,MAAM,CAACQ,IAAI,CAACP,QAAQ,CAACQ,KAAK,CAAC;AAEjD,OAAO,MAAMC,cAAc,gBAAGlB,UAAU,CACtC,oCAAoC,CACrC;AACD,OAAO,MAAMmB,sBAAsB,gBAAGjB,KAAK,CAACkB,OAAO,CAACF,cAAc,EAAE;EAClEG,IAAI,EAAE,MAAM;EACZC,MAAM,EAAEC,CAAC,IAAIC,IAAI,CAACC,SAAS,CAACF,CAAC,CAAC;EAC9BG,MAAM,EAAEH,CAAC,IAAIC,IAAI,CAACG,KAAK,CAAC,OAAOJ,CAAC,KAAK,QAAQ,GAAGA,CAAC,GAAGV,OAAO,CAACa,MAAM,CAACH,CAAC,CAAC;CACtE,CAAC;AAEF,MAAMK,IAAI,gBAAG3B,MAAM,CAAC4B,GAAG,CAAC,aAAS;EAC/B,MAAMC,QAAQ,GAAG,OAAOZ,cAAc;EAEtC,MAAMa,OAAO,GAAGA,CAAC;IACfC,YAAY;IACZC,GAAG,GAAG,2BAA2B;IACjCC,OAAO,GAAG;EAAE,CACH,KACTjC,MAAM,CAAC4B,GAAG,CAAC,aAAS;IAClB,MAAMM,MAAM,GAAG,OAAOhC,GAAG,CAACyB,IAAI,CAC5B,GAAGK,GAAG,MAAMC,OAAO,aAAaJ,QAAQ,CAACT,IAAI,EAAE,CAChD;IACD,MAAMe,MAAM,GAAIH,GAAW,IACzB9B,GAAG,CAACkC,GAAG,CAACF,MAAM,EAAE,GAAGF,GAAG,MAAMC,OAAO,aAAaJ,QAAQ,CAACT,IAAI,EAAE,CAAC;IAClE,MAAMiB,QAAQ,GAAG,OAAOjC,OAAO,CAACuB,IAAI,EAA0B;IAC9D,MAAMW,MAAM,GAAG,OAAOnC,MAAM,CAACoC,aAAa,CAACrC,GAAG,CAACsC,GAAG,CAACN,MAAM,CAAC,EAAE;MAC1DO,gBAAgB,EAAEC,CAAC,IAAI,IAAI;MAC3BC,WAAW,EAAE;KACd,CAAC;IACF,MAAMC,QAAQ,GAAG,OAAON,MAAM,CAACO,MAAM;IACrC,MAAMC,aAAa,GAAIC,KAAsC,IAC3D/C,MAAM,CAACgD,YAAY,CAAChD,MAAM,CAACiD,QAAQ,CAACF,KAAK,CAAC,EAAE;MAC1CG,MAAM,EAAE,0BAA0B;MAClCC,OAAO,EAAE;KACV,CAAC;IACJ,MAAMC,KAAK,GACTC,OAA2C,IACpB;MACvB,IAAIA,OAAO,KAAK5C,SAAS,EAAE;QACzB,OAAOT,MAAM,CAACsD,aAAa,CACzBV,QAAQ,CAAC,IAAIzC,MAAM,CAACoD,UAAU,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,EACrDT,aAAa,CACd;MACH;MACA,OAAO9C,MAAM,CAACsD,aAAa,CACzBV,QAAQ,CAACf,QAAQ,CAACR,MAAM,CAACgC,OAAO,CAAC,CAAC,EAClCP,aAAa,CACd;IACH,CAAC;IACD,OAAOf,YAAY,CAACyB,IAAI,CACtBxD,MAAM,CAACyD,QAAQ,CACbzD,MAAM,CAAC0D,gBAAgB,CAA2BC,KAAK,IACrDrB,MAAM,CAACsB,MAAM,CAAClB,CAAC,IAAG;MAChB,MAAMW,OAAO,GAAGxB,QAAQ,CAACJ,MAAM,CAACiB,CAAC,CAAC;MAClCL,QAAQ,CAACwB,WAAW,CAACR,OAAO,CAAC;MAC3BM,KAAa,CAACG,GAAG,CAAC,CAACT,OAAO,CAAC,EAAE/C,KAAK,CAACyD,KAAK,EAAEjD,aAAa,CAAC;IAC5D,CAAC,CAAC,CACH,CACF,EACDd,MAAM,CAACgE,KAAK,CAAC;MACXC,KAAK,EAAEC,CAAC,IAAIA,CAAC,CAACC,MAAM,KAAK,OAAO,IAAID,CAAC,CAACE,IAAI,KAAK;KAChD,CAAC,EACFpE,MAAM,CAACsD,aAAa,CAACP,KAAK,IACxB/C,MAAM,CAACiD,QAAQ,CAAC,gCAAgC,EAAEF,KAAK,CAAC,CACzD,EACD/C,MAAM,CAACqE,MAAM,CACXhE,QAAQ,CAACiE,WAAW,CAAC,GAAG,CAAC,CAACd,IAAI,CAC5BnD,QAAQ,CAACkE,KAAK,CAAClE,QAAQ,CAACmE,MAAM,CAAC,KAAK,CAAC,CAAC,CACvC,CACF,EACDxE,MAAM,CAACgD,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,EACzChD,MAAM,CAACyE,UAAU,EACjBzE,MAAM,CAAC0E,aAAa,CACrB;IAED,OAAO;MACLC,IAAI,EAAEtC,QAAQ,CAACsC,IAAI;MACnBxC,MAAM;MACNiB;KACQ;EACZ,CAAC,CAAC,CAACI,IAAI,CACLxD,MAAM,CAACgD,YAAY,CAAC;IAClBE,MAAM,EAAE;GACT,CAAC,CACH;EAEH,OAAO;IAAEpB;EAAO,CAAW;AAC7B,CAAC,CAAC;AAKF,OAAO,MAAM8C,SAAS,gBAAG7E,UAAU,CAGjC,8BAA8B,CAAC;AACjC,OAAO,MAAM8E,aAAa,gBAAG5E,KAAK,CAAC6E,MAAM,CAACF,SAAS,EAAEjD,IAAI,CAAC","ignoreList":[]}
@@ -9,7 +9,8 @@ import * as EffectU from "dfx/utils/Effect";
9
9
  const payload = state => Effect.map(state, state => SendEvents.heartbeat(Option.getOrNull(Option.map(state, s => s.sequence))));
10
10
  const payloadOrReconnect = (ref, state) => Effect.flatMap(Ref.get(ref), acked => acked ? payload(state) : Effect.succeed(DiscordWS.Reconnect));
11
11
  export const send = (hellos, acks, state, send) => Effect.flatMap(Ref.make(true), ackedRef => {
12
- const heartbeats = EffectU.foreverSwitch(Effect.zipLeft(hellos.take, Ref.set(ackedRef, true)), p => payloadOrReconnect(ackedRef, state).pipe(Effect.zipLeft(Ref.set(ackedRef, false)), Effect.tap(send), Effect.schedule(Schedule.andThen(Schedule.duration(Duration.millis(p.d.heartbeat_interval * Math.random())), Schedule.spaced(Duration.millis(p.d.heartbeat_interval))))));
12
+ const sendPayload = payloadOrReconnect(ackedRef, state).pipe(Effect.zipLeft(Ref.set(ackedRef, false)), Effect.flatMap(send));
13
+ const heartbeats = EffectU.foreverSwitch(Effect.zipLeft(hellos.take, Ref.set(ackedRef, true)), p => Effect.schedule(sendPayload, Schedule.andThen(Schedule.duration(Duration.millis(p.d.heartbeat_interval * Math.random())), Schedule.spaced(Duration.millis(p.d.heartbeat_interval)))));
13
14
  const run = acks.take.pipe(Effect.zipLeft(Ref.set(ackedRef, true)), Effect.forever);
14
15
  return Effect.all([run, heartbeats], {
15
16
  concurrency: "unbounded",
@@ -1 +1 @@
1
- {"version":3,"file":"heartbeats.mjs","names":["Duration","Option","Effect","Ref","Schedule","DiscordWS","SendEvents","EffectU","payload","state","map","heartbeat","getOrNull","s","sequence","payloadOrReconnect","ref","flatMap","get","acked","succeed","Reconnect","send","hellos","acks","make","ackedRef","heartbeats","foreverSwitch","zipLeft","take","set","p","pipe","tap","schedule","andThen","duration","millis","d","heartbeat_interval","Math","random","spaced","run","forever","all","concurrency","discard"],"sources":["../../../src/DiscordGateway/Shard/heartbeats.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,GAAG,MAAM,YAAY;AACjC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,SAAS,MAAM,8BAA8B;AACzD,OAAO,KAAKC,UAAU,MAAM,qCAAqC;AAEjE,OAAO,KAAKC,OAAO,MAAM,kBAAkB;AAI3C,MAAMC,OAAO,GAAIC,KAA+C,IAC9DP,MAAM,CAACQ,GAAG,CAACD,KAAK,EAAEA,KAAK,IACrBH,UAAU,CAACK,SAAS,CAACV,MAAM,CAACW,SAAS,CAACX,MAAM,CAACS,GAAG,CAACD,KAAK,EAAEI,CAAC,IAAIA,CAAC,CAACC,QAAQ,CAAC,CAAC,CAAC,CAC3E;AAEH,MAAMC,kBAAkB,GAAGA,CACzBC,GAAqB,EACrBP,KAA+C,KAE/CP,MAAM,CAACe,OAAO,CACZd,GAAG,CAACe,GAAG,CAACF,GAAG,CAAC,EACXG,KAAK,IACJA,KAAK,GAAGX,OAAO,CAACC,KAAK,CAAC,GAAGP,MAAM,CAACkB,OAAO,CAACf,SAAS,CAACgB,SAAS,CAAC,CAC/D;AAEH,OAAO,MAAMC,IAAI,GAAGA,CAClBC,MAAuD,EACvDC,IAAqD,EACrDf,KAA+C,EAC/Ca,IAAsD,KAEtDpB,MAAM,CAACe,OAAO,CAACd,GAAG,CAACsB,IAAI,CAAC,IAAI,CAAC,EAAEC,QAAQ,IAAG;EACxC,MAAMC,UAAU,GAAGpB,OAAO,CAACqB,aAAa,CACtC1B,MAAM,CAAC2B,OAAO,CAACN,MAAM,CAACO,IAAI,EAAE3B,GAAG,CAAC4B,GAAG,CAACL,QAAQ,EAAE,IAAI,CAAC,CAAC,EACpDM,CAAC,IACCjB,kBAAkB,CAACW,QAAQ,EAAEjB,KAAK,CAAC,CAACwB,IAAI,CACtC/B,MAAM,CAAC2B,OAAO,CAAC1B,GAAG,CAAC4B,GAAG,CAACL,QAAQ,EAAE,KAAK,CAAC,CAAC,EACxCxB,MAAM,CAACgC,GAAG,CAACZ,IAAI,CAAC,EAChBpB,MAAM,CAACiC,QAAQ,CACb/B,QAAQ,CAACgC,OAAO,CACdhC,QAAQ,CAACiC,QAAQ,CACfrC,QAAQ,CAACsC,MAAM,CAACN,CAAC,CAACO,CAAE,CAACC,kBAAkB,GAAGC,IAAI,CAACC,MAAM,EAAE,CAAC,CACzD,EACDtC,QAAQ,CAACuC,MAAM,CAAC3C,QAAQ,CAACsC,MAAM,CAACN,CAAC,CAACO,CAAE,CAACC,kBAAkB,CAAC,CAAC,CAC1D,CACF,CACF,CACJ;EAED,MAAMI,GAAG,GAAGpB,IAAI,CAACM,IAAI,CAACG,IAAI,CACxB/B,MAAM,CAAC2B,OAAO,CAAC1B,GAAG,CAAC4B,GAAG,CAACL,QAAQ,EAAE,IAAI,CAAC,CAAC,EACvCxB,MAAM,CAAC2C,OAAO,CACf;EAED,OAAO3C,MAAM,CAAC4C,GAAG,CAAC,CAACF,GAAG,EAAEjB,UAAU,CAAC,EAAE;IACnCoB,WAAW,EAAE,WAAW;IACxBC,OAAO,EAAE;GACV,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"heartbeats.mjs","names":["Duration","Option","Effect","Ref","Schedule","DiscordWS","SendEvents","EffectU","payload","state","map","heartbeat","getOrNull","s","sequence","payloadOrReconnect","ref","flatMap","get","acked","succeed","Reconnect","send","hellos","acks","make","ackedRef","sendPayload","pipe","zipLeft","set","heartbeats","foreverSwitch","take","p","schedule","andThen","duration","millis","d","heartbeat_interval","Math","random","spaced","run","forever","all","concurrency","discard"],"sources":["../../../src/DiscordGateway/Shard/heartbeats.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,GAAG,MAAM,YAAY;AACjC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,SAAS,MAAM,8BAA8B;AACzD,OAAO,KAAKC,UAAU,MAAM,qCAAqC;AAEjE,OAAO,KAAKC,OAAO,MAAM,kBAAkB;AAI3C,MAAMC,OAAO,GAAIC,KAA+C,IAC9DP,MAAM,CAACQ,GAAG,CAACD,KAAK,EAAEA,KAAK,IACrBH,UAAU,CAACK,SAAS,CAACV,MAAM,CAACW,SAAS,CAACX,MAAM,CAACS,GAAG,CAACD,KAAK,EAAEI,CAAC,IAAIA,CAAC,CAACC,QAAQ,CAAC,CAAC,CAAC,CAC3E;AAEH,MAAMC,kBAAkB,GAAGA,CACzBC,GAAqB,EACrBP,KAA+C,KAE/CP,MAAM,CAACe,OAAO,CACZd,GAAG,CAACe,GAAG,CAACF,GAAG,CAAC,EACXG,KAAK,IACJA,KAAK,GAAGX,OAAO,CAACC,KAAK,CAAC,GAAGP,MAAM,CAACkB,OAAO,CAACf,SAAS,CAACgB,SAAS,CAAC,CAC/D;AAEH,OAAO,MAAMC,IAAI,GAAGA,CAClBC,MAAuD,EACvDC,IAAqD,EACrDf,KAA+C,EAC/Ca,IAAmD,KAEnDpB,MAAM,CAACe,OAAO,CAACd,GAAG,CAACsB,IAAI,CAAC,IAAI,CAAC,EAAEC,QAAQ,IAAG;EACxC,MAAMC,WAAW,GAAGZ,kBAAkB,CAACW,QAAQ,EAAEjB,KAAK,CAAC,CAACmB,IAAI,CAC1D1B,MAAM,CAAC2B,OAAO,CAAC1B,GAAG,CAAC2B,GAAG,CAACJ,QAAQ,EAAE,KAAK,CAAC,CAAC,EACxCxB,MAAM,CAACe,OAAO,CAACK,IAAI,CAAC,CACrB;EAED,MAAMS,UAAU,GAAGxB,OAAO,CAACyB,aAAa,CACtC9B,MAAM,CAAC2B,OAAO,CAACN,MAAM,CAACU,IAAI,EAAE9B,GAAG,CAAC2B,GAAG,CAACJ,QAAQ,EAAE,IAAI,CAAC,CAAC,EACpDQ,CAAC,IACChC,MAAM,CAACiC,QAAQ,CACbR,WAAW,EACXvB,QAAQ,CAACgC,OAAO,CACdhC,QAAQ,CAACiC,QAAQ,CACfrC,QAAQ,CAACsC,MAAM,CAACJ,CAAC,CAACK,CAAE,CAACC,kBAAkB,GAAGC,IAAI,CAACC,MAAM,EAAE,CAAC,CACzD,EACDtC,QAAQ,CAACuC,MAAM,CAAC3C,QAAQ,CAACsC,MAAM,CAACJ,CAAC,CAACK,CAAE,CAACC,kBAAkB,CAAC,CAAC,CAC1D,CACF,CACJ;EAED,MAAMI,GAAG,GAAGpB,IAAI,CAACS,IAAI,CAACL,IAAI,CACxB1B,MAAM,CAAC2B,OAAO,CAAC1B,GAAG,CAAC2B,GAAG,CAACJ,QAAQ,EAAE,IAAI,CAAC,CAAC,EACvCxB,MAAM,CAAC2C,OAAO,CACf;EAED,OAAO3C,MAAM,CAAC4C,GAAG,CAAC,CAACF,GAAG,EAAEb,UAAU,CAAC,EAAE;IACnCgB,WAAW,EAAE,WAAW;IACxBC,OAAO,EAAE;GACV,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -6,7 +6,6 @@ import * as Heartbeats from "dfx/DiscordGateway/Shard/heartbeats";
6
6
  import * as Identify from "dfx/DiscordGateway/Shard/identify";
7
7
  import { RateLimiter, RateLimiterLive } from "dfx/RateLimit";
8
8
  import * as Discord from "dfx/types";
9
- import * as Chunk from "effect/Chunk";
10
9
  import { GenericTag } from "effect/Context";
11
10
  import * as Duration from "effect/Duration";
12
11
  import * as Effect from "effect/Effect";
@@ -14,8 +13,6 @@ import * as Layer from "effect/Layer";
14
13
  import * as Option from "effect/Option";
15
14
  import * as Mailbox from "effect/Mailbox";
16
15
  import * as Redacted from "effect/Redacted";
17
- import * as Ref from "effect/Ref";
18
- import { genFn } from "dfx/utils/Effect";
19
16
  import * as FiberHandle from "effect/FiberHandle";
20
17
  export const make = /*#__PURE__*/Effect.gen(function* () {
21
18
  const {
@@ -30,48 +27,31 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
30
27
  } = yield* Messaging;
31
28
  const shardState = yield* ShardStateStore;
32
29
  const connect = shard => Effect.gen(function* (_) {
33
- const outboundQueue = yield* Mailbox.make();
34
- const pendingQueue = yield* Mailbox.make();
35
30
  const reconnectHandle = yield* FiberHandle.make();
36
- const phase = yield* Ref.make(0 /* Phase.Connecting */);
31
+ let phase = 0 /* Phase.Connecting */;
37
32
  const stateStore = shardState.forShard(shard);
38
33
  const resumeState = Option.getOrElse(yield* stateStore.get, () => ({
39
34
  resumeUrl: "",
40
35
  sessionId: "",
41
36
  sequence: 0
42
37
  }));
43
- const setPhase = p => Effect.zipLeft(Ref.set(phase, p), Effect.annotateLogs(Effect.logTrace("phase transition"), "phase", p));
44
- const outbound = Effect.orDie(Effect.zipLeft(outboundQueue.take, limiter.maybeWait("dfx.shard.send", Duration.minutes(1), 120)));
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;
38
+ const setPhase = p => Effect.suspend(() => {
39
+ phase = p;
40
+ return Effect.annotateLogs(Effect.logTrace("phase transition"), "phase", p);
41
+ });
42
+ const heartbeatSend = p => Effect.suspend(() => {
43
+ if (phase === 0 /* Phase.Connecting */) return Effect.void;
44
+ return write(p);
58
45
  });
59
- const prioritySend = p => outboundQueue.offer(p);
60
46
  const resume = Effect.gen(function* () {
61
47
  yield* FiberHandle.clear(reconnectHandle);
62
48
  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
  });
50
+ const onConnecting = setPhase(0 /* Phase.Connecting */);
71
51
  const socket = yield* dws.connect({
72
- outbound,
73
52
  onConnecting
74
53
  });
54
+ const write = p => Effect.zipRight(limiter.maybeWait("dfx.shard.send", Duration.minutes(1), 120), socket.write(p));
75
55
  const hellos = yield* Effect.acquireRelease(Mailbox.make(), _ => _.shutdown);
76
56
  const acks = yield* Effect.acquireRelease(Mailbox.make(), _ => _.shutdown);
77
57
  // heartbeats
@@ -86,7 +66,7 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
86
66
  // delayed reconnect
87
67
  const delayedReconnect = Effect.gen(function* () {
88
68
  yield* Effect.sleep(30_000);
89
- yield* prioritySend(Reconnect);
69
+ yield* socket.write(Reconnect);
90
70
  });
91
71
  function* onPayload(p) {
92
72
  if (typeof p.s === "number") {
@@ -104,16 +84,16 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
104
84
  switch (p.op) {
105
85
  case Discord.GatewayOpcode.HELLO:
106
86
  {
107
- yield* prioritySend(yield* identify);
87
+ yield* write(yield* identify);
108
88
  yield* setPhase(1 /* Phase.Handshake */);
109
89
  hellos.unsafeOffer(p);
110
90
  yield* FiberHandle.run(reconnectHandle, delayedReconnect);
111
- break;
91
+ return;
112
92
  }
113
93
  case Discord.GatewayOpcode.HEARTBEAT_ACK:
114
94
  {
115
95
  acks.unsafeOffer(p);
116
- break;
96
+ return;
117
97
  }
118
98
  case Discord.GatewayOpcode.INVALID_SESSION:
119
99
  {
@@ -121,8 +101,8 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
121
101
  resumeState.sessionId = "";
122
102
  yield* stateStore.clear;
123
103
  }
124
- yield* send(Reconnect);
125
- break;
104
+ yield* socket.write(Reconnect);
105
+ return;
126
106
  }
127
107
  case Discord.GatewayOpcode.DISPATCH:
128
108
  {
@@ -130,18 +110,18 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
130
110
  yield* resume;
131
111
  }
132
112
  hub.unsafeOffer(p);
133
- break;
113
+ return;
134
114
  }
135
115
  case Discord.GatewayOpcode.RECONNECT:
136
116
  {
137
- yield* prioritySend(Reconnect);
138
- break;
117
+ yield* socket.write(Reconnect);
118
+ return;
139
119
  }
140
120
  }
141
121
  }
142
122
  yield* Effect.gen(function* () {
143
123
  while (true) {
144
- yield* send(yield* sendMailbox.take);
124
+ yield* write(yield* sendMailbox.take);
145
125
  }
146
126
  }).pipe(Effect.forkScoped, Effect.interruptible);
147
127
  yield* Effect.gen(function* () {
@@ -150,8 +130,7 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
150
130
  }
151
131
  }).pipe(Effect.forkScoped, Effect.interruptible);
152
132
  return {
153
- id: shard,
154
- send
133
+ id: shard
155
134
  };
156
135
  }).pipe(Effect.annotateLogs({
157
136
  package: "dfx",
@@ -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","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":"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","ignoreList":[]}
1
+ {"version":3,"file":"Shard.mjs","names":["DiscordConfig","DiscordWS","DiscordWSLive","Reconnect","Messaging","MesssagingLive","ShardStateStore","Heartbeats","Identify","RateLimiter","RateLimiterLive","Discord","GenericTag","Duration","Effect","Layer","Option","Mailbox","Redacted","FiberHandle","make","gen","gateway","token","limiter","dws","hub","sendMailbox","shardState","connect","shard","_","reconnectHandle","phase","stateStore","forShard","resumeState","getOrElse","get","resumeUrl","sessionId","sequence","setPhase","p","suspend","annotateLogs","logTrace","heartbeatSend","void","write","resume","clear","onConnecting","socket","zipRight","maybeWait","minutes","hellos","acquireRelease","shutdown","acks","send","pipe","forkScoped","interruptible","identify","identifyOrResume","value","intents","presence","delayedReconnect","sleep","onPayload","s","op","GatewayOpcode","DISPATCH","t","payload","d","session_id","resume_gateway_url","set","setUrl","HELLO","unsafeOffer","run","HEARTBEAT_ACK","INVALID_SESSION","RECONNECT","take","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,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;AAE3C,OAAO,KAAKC,WAAW,MAAM,oBAAoB;AAQjD,OAAO,MAAMC,IAAI,gBAAGN,MAAM,CAACO,GAAG,CAAC,aAAS;EACtC,MAAM;IAAEC,OAAO;IAAEC;EAAK,CAAE,GAAG,OAAOvB,aAAa;EAC/C,MAAMwB,OAAO,GAAG,OAAOf,WAAW;EAClC,MAAMgB,GAAG,GAAG,OAAOxB,SAAS;EAC5B,MAAM;IAAEyB,GAAG;IAAEC;EAAW,CAAE,GAAG,OAAOvB,SAAS;EAC7C,MAAMwB,UAAU,GAAG,OAAOtB,eAAe;EAEzC,MAAMuB,OAAO,GAAIC,KAAkC,IACjDhB,MAAM,CAACO,GAAG,CAAC,WAAWU,CAAC;IACrB,MAAMC,eAAe,GAAG,OAAOb,WAAW,CAACC,IAAI,EAAE;IACjD,IAAIa,KAAK;IACT,MAAMC,UAAU,GAAGN,UAAU,CAACO,QAAQ,CAACL,KAAK,CAAC;IAC7C,MAAMM,WAAW,GAA8BpB,MAAM,CAACqB,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,IACxB7B,MAAM,CAAC8B,OAAO,CAAC,MAAK;MAClBX,KAAK,GAAGU,CAAC;MACT,OAAO7B,MAAM,CAAC+B,YAAY,CACxB/B,MAAM,CAACgC,QAAQ,CAAC,kBAAkB,CAAC,EACnC,OAAO,EACPH,CAAC,CACF;IACH,CAAC,CAAC;IAEJ,MAAMI,aAAa,GAAIJ,CAAU,IAC/B7B,MAAM,CAAC8B,OAAO,CAAC,MAAK;MAClB,IAAIX,KAAK,+BAAuB,OAAOnB,MAAM,CAACkC,IAAI;MAClD,OAAOC,KAAK,CAACN,CAAC,CAAC;IACjB,CAAC,CAAC;IAEJ,MAAMO,MAAM,GAAGpC,MAAM,CAACO,GAAG,CAAC,aAAS;MACjC,OAAOF,WAAW,CAACgC,KAAK,CAACnB,eAAe,CAAC;MACzC,OAAOU,QAAQ,yBAAiB;IAClC,CAAC,CAAC;IAEF,MAAMU,YAAY,GAAGV,QAAQ,0BAAkB;IAE/C,MAAMW,MAAM,GAAG,OAAO5B,GAAG,CAACI,OAAO,CAAC;MAAEuB;IAAY,CAAE,CAAC;IACnD,MAAMH,KAAK,GAAIN,CAAU,IACvB7B,MAAM,CAACwC,QAAQ,CACb9B,OAAO,CAAC+B,SAAS,CAAC,gBAAgB,EAAE1C,QAAQ,CAAC2C,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAC7DH,MAAM,CAACJ,KAAK,CAACN,CAAC,CAAC,CAChB;IAEH,MAAMc,MAAM,GAAG,OAAO3C,MAAM,CAAC4C,cAAc,CACzCzC,OAAO,CAACG,IAAI,EAA0B,EACtCW,CAAC,IAAIA,CAAC,CAAC4B,QAAQ,CAChB;IACD,MAAMC,IAAI,GAAG,OAAO9C,MAAM,CAAC4C,cAAc,CACvCzC,OAAO,CAACG,IAAI,EAA0B,EACtCW,CAAC,IAAIA,CAAC,CAAC4B,QAAQ,CAChB;IAED;IACA,OAAOpD,UAAU,CAACsD,IAAI,CAACJ,MAAM,EAAEG,IAAI,EAAE1B,UAAU,CAACI,GAAG,EAAES,aAAa,CAAC,CAACe,IAAI,CACtEhD,MAAM,CAACiD,UAAU,EACjBjD,MAAM,CAACkD,aAAa,CACrB;IAED;IACA,MAAMC,QAAQ,GAAGzD,QAAQ,CAAC0D,gBAAgB,CACxC;MACE3C,KAAK,EAAEL,QAAQ,CAACiD,KAAK,CAAC5C,KAAK,CAAC;MAC5BO,KAAK;MACLsC,OAAO,EAAE9C,OAAO,CAAC8C,OAAO;MACxBC,QAAQ,EAAE/C,OAAO,CAAC+C;KACnB,EACDnC,UAAU,CAACI,GAAG,CACf;IAED;IACA,MAAMgC,gBAAgB,GAAGxD,MAAM,CAACO,GAAG,CAAC,aAAS;MAC3C,OAAOP,MAAM,CAACyD,KAAK,CAAC,MAAM,CAAC;MAC3B,OAAOlB,MAAM,CAACJ,KAAK,CAAC9C,SAAS,CAAC;IAChC,CAAC,CAAC;IAEF,UAAUqE,SAASA,CAAC7B,CAAyB;MAC3C,IAAI,OAAOA,CAAC,CAAC8B,CAAC,KAAK,QAAQ,EAAE;QAC3BrC,WAAW,CAACK,QAAQ,GAAGE,CAAC,CAAC8B,CAAC;MAC5B;MACA,IAAI9B,CAAC,CAAC+B,EAAE,KAAK/D,OAAO,CAACgE,aAAa,CAACC,QAAQ,IAAIjC,CAAC,CAACkC,CAAC,KAAK,OAAO,EAAE;QAC9D,MAAMC,OAAO,GAAGnC,CAAC,CAACoC,CAAuB;QACzC3C,WAAW,CAACI,SAAS,GAAGsC,OAAO,CAACE,UAAU;QAC1C5C,WAAW,CAACG,SAAS,GAAGuC,OAAO,CAACG,kBAAkB;QAClD,OAAO/C,UAAU,CAACgD,GAAG,CAAC9C,WAAW,CAAC;QAClC,OAAOiB,MAAM,CAAC8B,MAAM,CAACL,OAAO,CAACG,kBAAkB,CAAC;MAClD,CAAC,MAAM,IACL7C,WAAW,CAACG,SAAS,KAAK,EAAE,IAC5BH,WAAW,CAACI,SAAS,KAAK,EAAE,EAC5B;QACA,OAAON,UAAU,CAACgD,GAAG,CAAC9C,WAAW,CAAC;MACpC;MAEA,QAAQO,CAAC,CAAC+B,EAAE;QACV,KAAK/D,OAAO,CAACgE,aAAa,CAACS,KAAK;UAAE;YAChC,OAAOnC,KAAK,CAAC,OAAOgB,QAAQ,CAAC;YAC7B,OAAOvB,QAAQ,yBAAiB;YAChCe,MAAM,CAAC4B,WAAW,CAAC1C,CAAC,CAAC;YACrB,OAAOxB,WAAW,CAACmE,GAAG,CAACtD,eAAe,EAAEsC,gBAAgB,CAAC;YACzD;UACF;QACA,KAAK3D,OAAO,CAACgE,aAAa,CAACY,aAAa;UAAE;YACxC3B,IAAI,CAACyB,WAAW,CAAC1C,CAAC,CAAC;YACnB;UACF;QACA,KAAKhC,OAAO,CAACgE,aAAa,CAACa,eAAe;UAAE;YAC1C,IAAI,CAAC7C,CAAC,CAACoC,CAAC,EAAE;cACR3C,WAAW,CAACI,SAAS,GAAG,EAAE;cAC1B,OAAON,UAAU,CAACiB,KAAK;YACzB;YACA,OAAOE,MAAM,CAACJ,KAAK,CAAC9C,SAAS,CAAC;YAC9B;UACF;QACA,KAAKQ,OAAO,CAACgE,aAAa,CAACC,QAAQ;UAAE;YACnC,IAAIjC,CAAC,CAACkC,CAAC,KAAK,OAAO,IAAIlC,CAAC,CAACkC,CAAC,KAAK,SAAS,EAAE;cACxC,OAAO3B,MAAM;YACf;YACAxB,GAAG,CAAC2D,WAAW,CAAC1C,CAAC,CAAC;YAClB;UACF;QACA,KAAKhC,OAAO,CAACgE,aAAa,CAACc,SAAS;UAAE;YACpC,OAAOpC,MAAM,CAACJ,KAAK,CAAC9C,SAAS,CAAC;YAC9B;UACF;MACF;IACF;IAEA,OAAOW,MAAM,CAACO,GAAG,CAAC,aAAS;MACzB,OAAO,IAAI,EAAE;QACX,OAAO4B,KAAK,CAAC,OAAOtB,WAAW,CAAC+D,IAAI,CAAC;MACvC;IACF,CAAC,CAAC,CAAC5B,IAAI,CAAChD,MAAM,CAACiD,UAAU,EAAEjD,MAAM,CAACkD,aAAa,CAAC;IAEhD,OAAOlD,MAAM,CAACO,GAAG,CAAC,aAAS;MACzB,OAAO,IAAI,EAAE;QACX,OAAOmD,SAAS,CAAC,OAAOnB,MAAM,CAACqC,IAAI,CAAC;MACtC;IACF,CAAC,CAAC,CAAC5B,IAAI,CAAChD,MAAM,CAACiD,UAAU,EAAEjD,MAAM,CAACkD,aAAa,CAAC;IAEhD,OAAO;MAAE2B,EAAE,EAAE7D;IAAK,CAAW;EAC/B,CAAC,CAAC,CAACgC,IAAI,CACLhD,MAAM,CAAC+B,YAAY,CAAC;IAClB+C,OAAO,EAAE,KAAK;IACdC,MAAM,EAAE,sBAAsB;IAC9B/D;GACD,CAAC,CACH;EAEH,OAAO;IAAED;EAAO,CAAW;AAC7B,CAAC,CAAC;AAOF,OAAO,MAAMiE,KAAK,gBAAGlF,UAAU,CAAsB,0BAA0B,CAAC;AAChF,OAAO,MAAMmF,SAAS,gBAAGhF,KAAK,CAACiF,MAAM,CAACF,KAAK,EAAE1E,IAAI,CAAC,CAAC0C,IAAI,cACrD/C,KAAK,CAACkF,OAAO,CAAC/F,aAAa,CAAC,eAC5Ba,KAAK,CAACkF,OAAO,CAAC5F,cAAc,CAAC,eAC7BU,KAAK,CAACkF,OAAO,CAACvF,eAAe,CAAC,CAC/B","ignoreList":[]}
package/mjs/version.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export const LIB_VERSION = "0.107.2";
1
+ export const LIB_VERSION = "0.107.4";
2
2
  //# sourceMappingURL=version.mjs.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dfx",
3
- "version": "0.107.2",
3
+ "version": "0.107.4",
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": "e3f97c4879726deefc98860806eb77c2bfe6c3a3",
44
+ "gitHead": "09af8a1f2974a82efa58006e1cdc4ca53947b753",
45
45
  "main": "./index.js"
46
46
  }
@@ -9,7 +9,6 @@ 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"
13
12
 
14
13
  export type Message = Discord.GatewayPayload | Reconnect
15
14
 
@@ -20,7 +19,6 @@ export interface OpenOpts {
20
19
  url?: string
21
20
  version?: number
22
21
  encoding?: DiscordWSCodec
23
- outbound: Effect.Effect<Message>
24
22
  onConnecting: Effect.Effect<void>
25
23
  }
26
24
 
@@ -34,7 +32,6 @@ export interface DiscordWSCodec {
34
32
  }
35
33
 
36
34
  const decoder = new TextDecoder()
37
- const logLevelDebug = Option.some(LogLevel.Debug)
38
35
  const logLevelTrace = Option.some(LogLevel.Trace)
39
36
 
40
37
  export const DiscordWSCodec = GenericTag<DiscordWSCodec, DiscordWSCodecService>(
@@ -51,7 +48,6 @@ const make = Effect.gen(function* () {
51
48
 
52
49
  const connect = ({
53
50
  onConnecting,
54
- outbound,
55
51
  url = "wss://gateway.discord.gg/",
56
52
  version = 10,
57
53
  }: OpenOpts) =>
@@ -66,31 +62,33 @@ const make = Effect.gen(function* () {
66
62
  closeCodeIsError: _ => true,
67
63
  openTimeout: 5000,
68
64
  })
69
- const write = yield* socket.writer
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
- } else {
78
- ;(fiber as any).log([message], Cause.empty, logLevelTrace)
79
- yield* write(encoding.encode(message))
80
- }
65
+ const writeRaw = yield* socket.writer
66
+ const logWriteError = (cause: Cause.Cause<Socket.SocketError>) =>
67
+ Effect.annotateLogs(Effect.logDebug(cause), {
68
+ module: "DiscordGateway/DiscordWS",
69
+ channel: "outbound",
70
+ })
71
+ const write = (
72
+ message: Discord.GatewayPayload | Reconnect,
73
+ ): Effect.Effect<void> => {
74
+ if (message === Reconnect) {
75
+ return Effect.catchAllCause(
76
+ writeRaw(new Socket.CloseEvent(1012, "reconnecting")),
77
+ logWriteError,
78
+ )
81
79
  }
82
- }).pipe(
83
- Effect.annotateLogs("channel", "outbound"),
84
- Effect.forkScoped,
85
- Effect.interruptible,
86
- )
80
+ return Effect.catchAllCause(
81
+ writeRaw(encoding.encode(message)),
82
+ logWriteError,
83
+ )
84
+ }
87
85
  yield* onConnecting.pipe(
88
86
  Effect.zipRight(
89
87
  Effect.withFiberRuntime<void, Socket.SocketError>(fiber =>
90
88
  socket.runRaw(_ => {
91
89
  const message = encoding.decode(_)
92
90
  messages.unsafeOffer(message)
93
- ;(fiber as any).log([message], Cause.empty, logLevelDebug)
91
+ ;(fiber as any).log([message], Cause.empty, logLevelTrace)
94
92
  }),
95
93
  ),
96
94
  ),
@@ -113,6 +111,7 @@ const make = Effect.gen(function* () {
113
111
  return {
114
112
  take: messages.take,
115
113
  setUrl,
114
+ write,
116
115
  } as const
117
116
  }).pipe(
118
117
  Effect.annotateLogs({
@@ -29,22 +29,24 @@ export const send = (
29
29
  hellos: Mailbox.ReadonlyMailbox<Discord.GatewayPayload>,
30
30
  acks: Mailbox.ReadonlyMailbox<Discord.GatewayPayload>,
31
31
  state: Effect.Effect<Option.Option<ShardState>>,
32
- send: (p: DiscordWS.Message) => Effect.Effect<boolean>,
32
+ send: (p: DiscordWS.Message) => Effect.Effect<void>,
33
33
  ) =>
34
34
  Effect.flatMap(Ref.make(true), ackedRef => {
35
+ const sendPayload = payloadOrReconnect(ackedRef, state).pipe(
36
+ Effect.zipLeft(Ref.set(ackedRef, false)),
37
+ Effect.flatMap(send),
38
+ )
39
+
35
40
  const heartbeats = EffectU.foreverSwitch(
36
41
  Effect.zipLeft(hellos.take, Ref.set(ackedRef, true)),
37
42
  p =>
38
- payloadOrReconnect(ackedRef, state).pipe(
39
- Effect.zipLeft(Ref.set(ackedRef, false)),
40
- Effect.tap(send),
41
- Effect.schedule(
42
- Schedule.andThen(
43
- Schedule.duration(
44
- Duration.millis(p.d!.heartbeat_interval * Math.random()),
45
- ),
46
- Schedule.spaced(Duration.millis(p.d!.heartbeat_interval)),
43
+ Effect.schedule(
44
+ sendPayload,
45
+ Schedule.andThen(
46
+ Schedule.duration(
47
+ Duration.millis(p.d!.heartbeat_interval * Math.random()),
47
48
  ),
49
+ Schedule.spaced(Duration.millis(p.d!.heartbeat_interval)),
48
50
  ),
49
51
  ),
50
52
  )
@@ -12,7 +12,6 @@ import * as Heartbeats from "dfx/DiscordGateway/Shard/heartbeats"
12
12
  import * as Identify from "dfx/DiscordGateway/Shard/identify"
13
13
  import { RateLimiter, RateLimiterLive } from "dfx/RateLimit"
14
14
  import * as Discord from "dfx/types"
15
- import * as Chunk from "effect/Chunk"
16
15
  import { GenericTag } from "effect/Context"
17
16
  import * as Duration from "effect/Duration"
18
17
  import * as Effect from "effect/Effect"
@@ -20,9 +19,7 @@ import * as Layer from "effect/Layer"
20
19
  import * as Option from "effect/Option"
21
20
  import * as Mailbox from "effect/Mailbox"
22
21
  import * as Redacted from "effect/Redacted"
23
- import * as Ref from "effect/Ref"
24
22
  import type * as Types from "effect/Types"
25
- import { genFn } from "dfx/utils/Effect"
26
23
  import * as FiberHandle from "effect/FiberHandle"
27
24
 
28
25
  const enum Phase {
@@ -40,10 +37,8 @@ export const make = Effect.gen(function* () {
40
37
 
41
38
  const connect = (shard: [id: number, count: number]) =>
42
39
  Effect.gen(function* (_) {
43
- const outboundQueue = yield* Mailbox.make<Message>()
44
- const pendingQueue = yield* Mailbox.make<Message>()
45
40
  const reconnectHandle = yield* FiberHandle.make()
46
- const phase = yield* Ref.make(Phase.Connecting)
41
+ let phase = Phase.Connecting
47
42
  const stateStore = shardState.forShard(shard)
48
43
  const resumeState: Types.Mutable<ShardState> = Option.getOrElse(
49
44
  yield* stateStore.get,
@@ -54,67 +49,34 @@ export const make = Effect.gen(function* () {
54
49
  }),
55
50
  )
56
51
  const setPhase = (p: Phase): Effect.Effect<void> =>
57
- Effect.zipLeft(
58
- Ref.set(phase, p),
59
- Effect.annotateLogs(Effect.logTrace("phase transition"), "phase", p),
60
- )
61
- const outbound = Effect.orDie(
62
- Effect.zipLeft(
63
- outboundQueue.take,
64
- limiter.maybeWait("dfx.shard.send", Duration.minutes(1), 120),
65
- ),
66
- )
67
-
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
- })
83
-
84
- const prioritySend = (p: Message) => outboundQueue.offer(p)
52
+ Effect.suspend(() => {
53
+ phase = p
54
+ return Effect.annotateLogs(
55
+ Effect.logTrace("phase transition"),
56
+ "phase",
57
+ p,
58
+ )
59
+ })
60
+
61
+ const heartbeatSend = (p: Message) =>
62
+ Effect.suspend(() => {
63
+ if (phase === Phase.Connecting) return Effect.void
64
+ return write(p)
65
+ })
85
66
 
86
67
  const resume = Effect.gen(function* () {
87
68
  yield* FiberHandle.clear(reconnectHandle)
88
69
  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,
98
- ),
99
- )
100
70
  })
101
71
 
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
- })
72
+ const onConnecting = setPhase(Phase.Connecting)
116
73
 
117
- const socket = yield* dws.connect({ outbound, onConnecting })
74
+ const socket = yield* dws.connect({ onConnecting })
75
+ const write = (p: Message) =>
76
+ Effect.zipRight(
77
+ limiter.maybeWait("dfx.shard.send", Duration.minutes(1), 120),
78
+ socket.write(p),
79
+ )
118
80
 
119
81
  const hellos = yield* Effect.acquireRelease(
120
82
  Mailbox.make<Discord.GatewayPayload>(),
@@ -145,7 +107,7 @@ export const make = Effect.gen(function* () {
145
107
  // delayed reconnect
146
108
  const delayedReconnect = Effect.gen(function* () {
147
109
  yield* Effect.sleep(30_000)
148
- yield* prioritySend(Reconnect)
110
+ yield* socket.write(Reconnect)
149
111
  })
150
112
 
151
113
  function* onPayload(p: Discord.GatewayPayload) {
@@ -167,41 +129,41 @@ export const make = Effect.gen(function* () {
167
129
 
168
130
  switch (p.op) {
169
131
  case Discord.GatewayOpcode.HELLO: {
170
- yield* prioritySend(yield* identify)
132
+ yield* write(yield* identify)
171
133
  yield* setPhase(Phase.Handshake)
172
134
  hellos.unsafeOffer(p)
173
135
  yield* FiberHandle.run(reconnectHandle, delayedReconnect)
174
- break
136
+ return
175
137
  }
176
138
  case Discord.GatewayOpcode.HEARTBEAT_ACK: {
177
139
  acks.unsafeOffer(p)
178
- break
140
+ return
179
141
  }
180
142
  case Discord.GatewayOpcode.INVALID_SESSION: {
181
143
  if (!p.d) {
182
144
  resumeState.sessionId = ""
183
145
  yield* stateStore.clear
184
146
  }
185
- yield* send(Reconnect)
186
- break
147
+ yield* socket.write(Reconnect)
148
+ return
187
149
  }
188
150
  case Discord.GatewayOpcode.DISPATCH: {
189
151
  if (p.t === "READY" || p.t === "RESUMED") {
190
152
  yield* resume
191
153
  }
192
154
  hub.unsafeOffer(p)
193
- break
155
+ return
194
156
  }
195
157
  case Discord.GatewayOpcode.RECONNECT: {
196
- yield* prioritySend(Reconnect)
197
- break
158
+ yield* socket.write(Reconnect)
159
+ return
198
160
  }
199
161
  }
200
162
  }
201
163
 
202
164
  yield* Effect.gen(function* () {
203
165
  while (true) {
204
- yield* send(yield* sendMailbox.take)
166
+ yield* write(yield* sendMailbox.take)
205
167
  }
206
168
  }).pipe(Effect.forkScoped, Effect.interruptible)
207
169
 
@@ -211,7 +173,7 @@ export const make = Effect.gen(function* () {
211
173
  }
212
174
  }).pipe(Effect.forkScoped, Effect.interruptible)
213
175
 
214
- return { id: shard, send } as const
176
+ return { id: shard } as const
215
177
  }).pipe(
216
178
  Effect.annotateLogs({
217
179
  package: "dfx",
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const LIB_VERSION = "0.107.2";
1
+ export const LIB_VERSION = "0.107.4";
package/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const LIB_VERSION = "0.107.2";
1
+ export declare const LIB_VERSION = "0.107.4";
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.2";
7
+ const LIB_VERSION = exports.LIB_VERSION = "0.107.4";
8
8
  //# sourceMappingURL=version.js.map