dfx 0.61.6 → 0.61.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/DiscordGateway/DiscordWS.d.ts +1 -1
  2. package/DiscordGateway/Shard.d.ts +2 -2
  3. package/DiscordGateway/Shard.d.ts.map +1 -1
  4. package/DiscordGateway/Shard.js +13 -11
  5. package/DiscordGateway/Shard.js.map +1 -1
  6. package/DiscordGateway/Sharder.d.ts +2 -2
  7. package/DiscordGateway/Sharder.d.ts.map +1 -1
  8. package/DiscordGateway/Sharder.js +9 -9
  9. package/DiscordGateway/Sharder.js.map +1 -1
  10. package/DiscordGateway/WS.d.ts +0 -1
  11. package/DiscordGateway/WS.d.ts.map +1 -1
  12. package/DiscordGateway/WS.js +9 -14
  13. package/DiscordGateway/WS.js.map +1 -1
  14. package/DiscordGateway.d.ts +1 -1
  15. package/DiscordGateway.d.ts.map +1 -1
  16. package/DiscordGateway.js +1 -1
  17. package/DiscordGateway.js.map +1 -1
  18. package/Interactions/gateway.d.ts +1 -1
  19. package/gateway.d.ts +1 -1
  20. package/mjs/DiscordGateway/Shard.mjs +13 -11
  21. package/mjs/DiscordGateway/Shard.mjs.map +1 -1
  22. package/mjs/DiscordGateway/Sharder.mjs +9 -9
  23. package/mjs/DiscordGateway/Sharder.mjs.map +1 -1
  24. package/mjs/DiscordGateway/WS.mjs +9 -14
  25. package/mjs/DiscordGateway/WS.mjs.map +1 -1
  26. package/mjs/DiscordGateway.mjs +1 -1
  27. package/mjs/DiscordGateway.mjs.map +1 -1
  28. package/mjs/utils/Effect.mjs +4 -4
  29. package/mjs/utils/Effect.mjs.map +1 -1
  30. package/mjs/version.mjs +1 -1
  31. package/package.json +2 -2
  32. package/src/DiscordGateway/Shard.ts +26 -27
  33. package/src/DiscordGateway/Sharder.ts +11 -9
  34. package/src/DiscordGateway/WS.ts +28 -34
  35. package/src/DiscordGateway.ts +4 -1
  36. package/src/utils/Effect.ts +22 -19
  37. package/src/version.ts +1 -1
  38. package/utils/Effect.d.ts.map +1 -1
  39. package/utils/Effect.js +4 -4
  40. package/utils/Effect.js.map +1 -1
  41. package/version.d.ts +1 -1
  42. package/version.js +1 -1
@@ -20,7 +20,7 @@ export interface DiscordWSCodec {
20
20
  }
21
21
  export declare const DiscordWSCodec: Tag<DiscordWSCodec, DiscordWSCodec>;
22
22
  export declare const LiveJsonDiscordWSCodec: Layer.Layer<never, never, DiscordWSCodec>;
23
- declare const make: Effect.Effect<WS | DiscordWSCodec, never, {
23
+ declare const make: Effect.Effect<DiscordWSCodec | WS, never, {
24
24
  readonly connect: ({ onConnecting, outbound, url, version, }: OpenOpts) => Effect.Effect<never, never, {
25
25
  readonly run: Effect.Effect<never, import("dfx/DiscordGateway/WS").WebSocketError | import("dfx/DiscordGateway/WS").WebSocketCloseError, void>;
26
26
  readonly take: Effect.Effect<never, never, Discord.GatewayPayload<any>>;
@@ -9,7 +9,7 @@ import { DiscordWS } from "dfx/DiscordGateway/DiscordWS";
9
9
  import { Log } from "dfx/Log";
10
10
  import { RateLimiter } from "dfx/RateLimit";
11
11
  import * as Discord from "dfx/types";
12
- export declare const make: Effect.Effect<Log | RateLimiter | DiscordConfig | DiscordWS, never, {
12
+ export declare const make: Effect.Effect<DiscordConfig | Log | RateLimiter | DiscordWS, never, {
13
13
  readonly connect: (shard: [id: number, count: number], hub: Hub.Hub<Discord.GatewayPayload<Discord.ReceiveEvent>>, sendQueue: Queue.Dequeue<Discord.GatewayPayload<Discord.SendEvent>>) => Effect.Effect<never, never, {
14
14
  readonly id: [id: number, count: number];
15
15
  readonly send: (p: Message) => Effect.Effect<never, never, boolean>;
@@ -19,7 +19,7 @@ export declare const make: Effect.Effect<Log | RateLimiter | DiscordConfig | Dis
19
19
  export interface Shard extends Effect.Effect.Success<typeof make> {
20
20
  }
21
21
  export declare const Shard: Tag<Shard, Shard>;
22
- export declare const LiveShard: Layer.Layer<Log | import("dfx/RateLimit").RateLimitStore | DiscordConfig | import("dfx/DiscordGateway/DiscordWS").DiscordWSCodec, never, Shard>;
22
+ export declare const LiveShard: Layer.Layer<DiscordConfig | Log | import("dfx/RateLimit").RateLimitStore | import("dfx/DiscordGateway/DiscordWS").DiscordWSCodec, never, Shard>;
23
23
  export interface RunningShard extends Effect.Effect.Success<ReturnType<Shard["connect"]>> {
24
24
  }
25
25
  //# sourceMappingURL=Shard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Shard.d.ts","sourceRoot":"","sources":["../src/DiscordGateway/Shard.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAI1C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AACzC,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAiB,MAAM,8BAA8B,CAAA;AAMvE,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAmB,WAAW,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,KAAK,OAAO,MAAM,WAAW,CAAA;AAQpC,eAAO,MAAM,IAAI;8BAON,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,OAC7B,OAAO,CAAC,QAAQ,cAAc,CAAC,QAAQ,YAAY,CAAC,CAAC,aAC/C,MAAM,OAAO,CAAC,QAAQ,cAAc,CAAC,QAAQ,SAAS,CAAC,CAAC;;2BAahD,OAAO;;;EA4I5B,CAAA;AAEF,MAAM,WAAW,KAAM,SAAQ,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC;CAAG;AACpE,eAAO,MAAM,KAAK,mBAAe,CAAA;AACjC,eAAO,MAAM,SAAS,iJAGrB,CAAA;AAED,MAAM,WAAW,YACf,SAAQ,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;CAAG"}
1
+ {"version":3,"file":"Shard.d.ts","sourceRoot":"","sources":["../src/DiscordGateway/Shard.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAK1C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AACzC,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAiB,MAAM,8BAA8B,CAAA;AAMvE,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAmB,WAAW,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,KAAK,OAAO,MAAM,WAAW,CAAA;AAQpC,eAAO,MAAM,IAAI;8BAON,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,OAC7B,OAAO,CAAC,QAAQ,cAAc,CAAC,QAAQ,YAAY,CAAC,CAAC,aAC/C,MAAM,OAAO,CAAC,QAAQ,cAAc,CAAC,QAAQ,SAAS,CAAC,CAAC;;2BAahD,OAAO;;;EA0I5B,CAAA;AAEF,MAAM,WAAW,KAAM,SAAQ,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC;CAAG;AACpE,eAAO,MAAM,KAAK,mBAAe,CAAA;AACjC,eAAO,MAAM,SAAS,iJAGrB,CAAA;AAED,MAAM,WAAW,YACf,SAAQ,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;CAAG"}
@@ -43,20 +43,21 @@ const make = /*#__PURE__*/Effect.gen(function* (_) {
43
43
  const send = p => Effect.flatMap(Ref.get(phase), phase => phase === 2 /* Phase.Connected */ ? Queue.offer(outboundQueue, p) : Queue.offer(pendingQueue, p));
44
44
  const heartbeatSend = p => Effect.flatMap(Ref.get(phase), phase => phase !== 0 /* Phase.Connecting */ ? Queue.offer(outboundQueue, p) : Effect.succeed(false));
45
45
  const prioritySend = p => Queue.offer(outboundQueue, p);
46
- const resume = setPhase(2 /* Phase.Connected */).pipe(Effect.zipRight(Queue.takeAll(pendingQueue)), Effect.tap(_ => Queue.offerAll(outboundQueue, _)), Effect.asUnit);
47
- const onConnecting = Queue.takeAll(outboundQueue).pipe(Effect.tap(msgs => Queue.offerAll(pendingQueue, Chunk.filter(msgs, msg => msg !== _WS.Reconnect && msg.op !== Discord.GatewayOpcode.IDENTIFY && msg.op !== Discord.GatewayOpcode.RESUME && msg.op !== Discord.GatewayOpcode.HEARTBEAT))), Effect.zipRight(setPhase(0 /* Phase.Connecting */)));
46
+ const resume = Effect.asUnit(Effect.tap(_ => Queue.offerAll(outboundQueue, _))(Effect.zipRight(Queue.takeAll(pendingQueue))(setPhase(2 /* Phase.Connected */))));
47
+ const onConnecting = Effect.zipRight(setPhase(0 /* Phase.Connecting */))(Effect.tap(msgs => Queue.offerAll(pendingQueue, Chunk.filter(msgs, msg => msg !== _WS.Reconnect && msg.op !== Discord.GatewayOpcode.IDENTIFY && msg.op !== Discord.GatewayOpcode.RESUME && msg.op !== Discord.GatewayOpcode.HEARTBEAT)))(Queue.takeAll(outboundQueue)));
48
48
  const socket = yield* _(dws.connect({
49
49
  outbound,
50
50
  onConnecting
51
51
  }));
52
- const [latestReady, updateLatestReady] = yield* _(Utils.latest(p => Option.some(p).pipe(Option.filter(p => p.op === Discord.GatewayOpcode.DISPATCH && p.t === "READY"), Option.map(p => p.d))));
52
+ const isReady = Option.liftPredicate(p => p.op === Discord.GatewayOpcode.DISPATCH && p.t === "READY");
53
+ const [latestReady, updateLatestReady] = yield* _(Utils.latest(p => Option.map(isReady(p), p => p.d)));
53
54
  const [latestSequence, updateLatestSequence] = yield* _(Utils.latest(p => Option.fromNullable(p.s)));
54
- const maybeUpdateUrl = p => Option.some(p).pipe(Option.filter(p => p.op === Discord.GatewayOpcode.DISPATCH && p.t === "READY"), Option.map(p => p.d), Option.match({
55
+ const maybeUpdateUrl = p => Option.match(Option.map(isReady(p), p => p.d), {
55
56
  onNone: () => Effect.unit,
56
57
  onSome: ({
57
58
  resume_gateway_url
58
59
  }) => socket.setUrl(resume_gateway_url)
59
- }));
60
+ });
60
61
  const hellos = yield* _(Queue.unbounded());
61
62
  const acks = yield* _(Queue.unbounded());
62
63
  // heartbeats
@@ -68,10 +69,10 @@ const make = /*#__PURE__*/Effect.gen(function* (_) {
68
69
  intents: gateway.intents,
69
70
  presence: gateway.presence
70
71
  }, latestReady, latestSequence);
71
- const onPayload = p => updateLatestReady(p).pipe(Effect.zipRight(updateLatestSequence(p)), Effect.zipRight(maybeUpdateUrl(p)), Effect.tap(() => {
72
+ const onPayload = p => Effect.tap(() => {
72
73
  switch (p.op) {
73
74
  case Discord.GatewayOpcode.HELLO:
74
- return Effect.tap(identify, prioritySend).pipe(Effect.zipRight(setPhase(1 /* Phase.Handshake */)), Effect.zipRight(Queue.offer(hellos, p)));
75
+ return Effect.zipRight(Queue.offer(hellos, p))(Effect.zipRight(setPhase(1 /* Phase.Handshake */))(Effect.tap(identify, prioritySend)));
75
76
  case Discord.GatewayOpcode.HEARTBEAT_ACK:
76
77
  return Queue.offer(acks, p);
77
78
  case Discord.GatewayOpcode.INVALID_SESSION:
@@ -81,11 +82,12 @@ const make = /*#__PURE__*/Effect.gen(function* (_) {
81
82
  return Effect.zipRight(resume, Hub.publish(hub, p));
82
83
  }
83
84
  return Hub.publish(hub, p);
85
+ default:
86
+ return Effect.unit;
84
87
  }
85
- return Effect.unit;
86
- }));
87
- const drainSendQueue = Queue.take(sendQueue).pipe(Effect.tap(send), Effect.forever);
88
- const run = Effect.all([socket.take.pipe(Effect.flatMap(onPayload), Effect.forever), heartbeats, drainSendQueue, socket.run], {
88
+ })(Effect.zipRight(maybeUpdateUrl(p))(Effect.zipRight(updateLatestSequence(p))(updateLatestReady(p))));
89
+ const drainSendQueue = Effect.forever(Effect.tap(Queue.take(sendQueue), send));
90
+ const run = Effect.all([Effect.forever(Effect.flatMap(socket.take, onPayload)), heartbeats, drainSendQueue, socket.run], {
89
91
  discard: true,
90
92
  concurrency: "unbounded"
91
93
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Shard.js","names":["Chunk","_interopRequireWildcard","require","_Context","Duration","Option","ConfigSecret","Effect","Hub","Layer","Queue","Ref","_DiscordConfig","_DiscordWS","Heartbeats","Identify","InvalidSession","Utils","_WS","_Log","_RateLimit","Discord","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","make","gen","_","gateway","token","DiscordConfig","limiter","RateLimiter","dws","DiscordWS","log","Log","connect","shard","hub","sendQueue","outboundQueue","unbounded","pendingQueue","phase","setPhase","p","zipLeft","debug","outbound","take","maybeWait","minutes","send","flatMap","offer","heartbeatSend","succeed","prioritySend","resume","pipe","zipRight","takeAll","tap","offerAll","asUnit","onConnecting","msgs","filter","msg","Reconnect","op","GatewayOpcode","IDENTIFY","RESUME","HEARTBEAT","socket","latestReady","updateLatestReady","latest","some","DISPATCH","t","map","d","latestSequence","updateLatestSequence","fromNullable","s","maybeUpdateUrl","match","onNone","unit","onSome","resume_gateway_url","setUrl","hellos","acks","heartbeats","identify","identifyOrResume","value","intents","presence","onPayload","HELLO","HEARTBEAT_ACK","INVALID_SESSION","fromPayload","publish","drainSendQueue","forever","run","all","discard","concurrency","id","exports","Shard","Tag","LiveShard","provide","merge","LiveDiscordWS","LiveRateLimiter","effect"],"sources":["../src/DiscordGateway/Shard.ts"],"sourcesContent":[null],"mappings":"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"}
1
+ {"version":3,"file":"Shard.js","names":["Chunk","_interopRequireWildcard","require","_Context","Duration","Option","ConfigSecret","Effect","Hub","Layer","Queue","Ref","_DiscordConfig","_DiscordWS","Heartbeats","Identify","InvalidSession","Utils","_WS","_Log","_RateLimit","Discord","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","make","gen","_","gateway","token","DiscordConfig","limiter","RateLimiter","dws","DiscordWS","log","Log","connect","shard","hub","sendQueue","outboundQueue","unbounded","pendingQueue","phase","setPhase","p","zipLeft","debug","outbound","take","maybeWait","minutes","send","flatMap","offer","heartbeatSend","succeed","prioritySend","resume","asUnit","tap","offerAll","zipRight","takeAll","onConnecting","msgs","filter","msg","Reconnect","op","GatewayOpcode","IDENTIFY","RESUME","HEARTBEAT","socket","isReady","liftPredicate","DISPATCH","t","latestReady","updateLatestReady","latest","map","d","latestSequence","updateLatestSequence","fromNullable","s","maybeUpdateUrl","match","onNone","unit","onSome","resume_gateway_url","setUrl","hellos","acks","heartbeats","identify","identifyOrResume","value","intents","presence","onPayload","HELLO","HEARTBEAT_ACK","INVALID_SESSION","fromPayload","publish","drainSendQueue","forever","run","all","discard","concurrency","id","exports","Shard","Tag","LiveShard","provide","merge","LiveDiscordWS","LiveRateLimiter","effect"],"sources":["../src/DiscordGateway/Shard.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -12,13 +12,13 @@ import type { WebSocketCloseError, WebSocketError } from "dfx/DiscordGateway/WS"
12
12
  import { DiscordREST } from "dfx/DiscordREST";
13
13
  import { RateLimiter } from "dfx/RateLimit";
14
14
  import type * as Discord from "dfx/types";
15
- declare const make: Effect.Effect<DiscordConfig | RateLimiter | DiscordREST | ShardStore | Shard, never, {
15
+ declare const make: Effect.Effect<DiscordConfig | RateLimiter | DiscordREST | Shard | ShardStore, never, {
16
16
  readonly shards: Effect.Effect<never, never, HashSet.HashSet<RunningShard>>;
17
17
  readonly run: (hub: Hub.Hub<Discord.GatewayPayload<Discord.ReceiveEvent>>, sendQueue: Queue.Dequeue<Discord.GatewayPayload<Discord.SendEvent>>) => Effect.Effect<never, WebSocketError | WebSocketCloseError, never>;
18
18
  }>;
19
19
  export interface Sharder extends Effect.Effect.Success<typeof make> {
20
20
  }
21
21
  export declare const Sharder: Tag<Sharder, Sharder>;
22
- export declare const LiveSharder: Layer.Layer<DiscordConfig | import("../Log").Log | import("dfx/RateLimit").RateLimitStore | DiscordREST | ShardStore | import("./DiscordWS").DiscordWSCodec, never, Sharder>;
22
+ export declare const LiveSharder: Layer.Layer<DiscordConfig | import("../Log").Log | import("dfx/RateLimit").RateLimitStore | DiscordREST | import("./DiscordWS").DiscordWSCodec | ShardStore, never, Sharder>;
23
23
  export {};
24
24
  //# sourceMappingURL=Sharder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Sharder.d.ts","sourceRoot":"","sources":["../src/DiscordGateway/Sharder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAE1C,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAG/C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,KAAK,GAAG,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AACzC,OAAO,KAAK,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAG9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAa,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAmB,WAAW,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,KAAK,KAAK,OAAO,MAAM,WAAW,CAAA;AAOzC,QAAA,MAAM,IAAI;;wBAiDD,OAAO,CAAC,QAAQ,cAAc,CAAC,QAAQ,YAAY,CAAC,CAAC,aAC/C,MAAM,OAAO,CAAC,QAAQ,cAAc,CAAC,QAAQ,SAAS,CAAC,CAAC;EAsDrE,CAAA;AAEF,MAAM,WAAW,OAAQ,SAAQ,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC;CAAG;AACtE,eAAO,MAAM,OAAO,uBAAiB,CAAA;AACrC,eAAO,MAAM,WAAW,8KAGvB,CAAA"}
1
+ {"version":3,"file":"Sharder.d.ts","sourceRoot":"","sources":["../src/DiscordGateway/Sharder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAG1C,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAG/C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,KAAK,GAAG,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AACzC,OAAO,KAAK,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAG9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAa,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAmB,WAAW,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,KAAK,KAAK,OAAO,MAAM,WAAW,CAAA;AAOzC,QAAA,MAAM,IAAI;;wBAiDD,OAAO,CAAC,QAAQ,cAAc,CAAC,QAAQ,YAAY,CAAC,CAAC,aAC/C,MAAM,OAAO,CAAC,QAAQ,cAAc,CAAC,QAAQ,SAAS,CAAC,CAAC;EAuDrE,CAAA;AAEF,MAAM,WAAW,OAAQ,SAAQ,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC;CAAG;AACtE,eAAO,MAAM,OAAO,uBAAiB,CAAA;AACrC,eAAO,MAAM,WAAW,8KAGvB,CAAA"}
@@ -32,14 +32,14 @@ const make = /*#__PURE__*/Effect.gen(function* (_) {
32
32
  const currentShards = yield* _(Ref.make(HashSet.empty()));
33
33
  const takeConfig = totalCount => Effect.gen(function* (_) {
34
34
  const currentCount = yield* _(Ref.make(0));
35
- const claimId = sharderCount => store.claimId({
35
+ const claimId = sharderCount => Effect.map(_ => _.value)(Effect.repeat(claimRepeatPolicy)(store.claimId({
36
36
  totalCount,
37
37
  sharderCount
38
- }).pipe(Effect.repeat(claimRepeatPolicy), Effect.map(_ => _.value));
39
- return Ref.getAndUpdate(currentCount, _ => _ + 1).pipe(Effect.flatMap(claimId), Effect.map(id => ({
38
+ })));
39
+ return Effect.map(id => ({
40
40
  id,
41
41
  totalCount
42
- })));
42
+ }))(Effect.flatMap(claimId)(Ref.getAndUpdate(currentCount, _ => _ + 1)));
43
43
  });
44
44
  const gateway = yield* _(rest.getGatewayBot(), Effect.flatMap(r => r.json), Effect.catchAll(() => Effect.succeed({
45
45
  url: "wss://gateway.discord.gg/",
@@ -54,14 +54,14 @@ const make = /*#__PURE__*/Effect.gen(function* (_) {
54
54
  const run = (hub, sendQueue) => Effect.gen(function* (_) {
55
55
  const deferred = yield* _(Deferred.make());
56
56
  const take = yield* _(takeConfig(config.shardCount ?? gateway.shards));
57
- const spawner = take.pipe(Effect.map(config => ({
57
+ const spawner = Effect.forever(Effect.flatMap(shard => Effect.acquireUseRelease(Ref.update(currentShards, HashSet.add(shard)), () => shard.run, () => Ref.update(currentShards, HashSet.remove(shard))).pipe(Effect.catchAllCause(_ => Deferred.failCause(deferred, _)), Effect.fork))(Effect.flatMap(c => shard.connect([c.id, c.totalCount], hub, sendQueue))(Effect.tap(({
58
+ concurrency,
59
+ id
60
+ }) => limiter.maybeWait(`dfx.sharder.${id % concurrency}`, Duration.millis(config.identifyRateLimit[0]), config.identifyRateLimit[1]))(Effect.map(config => ({
58
61
  ...config,
59
62
  url: gateway.url,
60
63
  concurrency: gateway.session_start_limit.max_concurrency
61
- })), Effect.tap(({
62
- concurrency,
63
- id
64
- }) => limiter.maybeWait(`dfx.sharder.${id % concurrency}`, Duration.millis(config.identifyRateLimit[0]), config.identifyRateLimit[1])), Effect.flatMap(c => shard.connect([c.id, c.totalCount], hub, sendQueue)), Effect.flatMap(shard => Effect.acquireUseRelease(Ref.update(currentShards, HashSet.add(shard)), () => shard.run, () => Ref.update(currentShards, HashSet.remove(shard))).pipe(Effect.catchAllCause(_ => Deferred.failCause(deferred, _)), Effect.fork)), Effect.forever);
64
+ }))(take)))));
65
65
  const spawners = Chunk.map(Chunk.range(1, gateway.session_start_limit.max_concurrency), () => spawner);
66
66
  return yield* _(Effect.all([Effect.all(spawners, {
67
67
  concurrency: "unbounded",
@@ -1 +1 @@
1
- {"version":3,"file":"Sharder.js","names":["Chunk","_interopRequireWildcard","require","_Context","Duration","HashSet","Deferred","Effect","Layer","Ref","Schedule","_DiscordConfig","_Shard","_ShardStore","_DiscordREST","_RateLimit","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","claimRepeatPolicy","spaced","pipe","whileInput","_","_tag","passthrough","make","gen","store","ShardStore","rest","DiscordREST","gateway","config","DiscordConfig","limiter","RateLimiter","shard","Shard","currentShards","empty","takeConfig","totalCount","currentCount","claimId","sharderCount","repeat","map","value","getAndUpdate","flatMap","id","getGatewayBot","r","json","catchAll","succeed","url","shards","session_start_limit","total","remaining","reset_after","max_concurrency","run","hub","sendQueue","deferred","take","shardCount","spawner","concurrency","tap","maybeWait","millis","identifyRateLimit","c","connect","acquireUseRelease","update","add","remove","catchAllCause","failCause","fork","forever","spawners","range","all","discard","await","Sharder","Tag","exports","LiveSharder","provide","merge","LiveRateLimiter","LiveShard","effect"],"sources":["../src/DiscordGateway/Sharder.ts"],"sourcesContent":[null],"mappings":"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"}
1
+ {"version":3,"file":"Sharder.js","names":["Chunk","_interopRequireWildcard","require","_Context","Duration","HashSet","Deferred","Effect","Layer","Ref","Schedule","_DiscordConfig","_Shard","_ShardStore","_DiscordREST","_RateLimit","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","claimRepeatPolicy","spaced","pipe","whileInput","_","_tag","passthrough","make","gen","store","ShardStore","rest","DiscordREST","gateway","config","DiscordConfig","limiter","RateLimiter","shard","Shard","currentShards","empty","takeConfig","totalCount","currentCount","claimId","sharderCount","map","value","repeat","id","flatMap","getAndUpdate","getGatewayBot","r","json","catchAll","succeed","url","shards","session_start_limit","total","remaining","reset_after","max_concurrency","run","hub","sendQueue","deferred","take","shardCount","spawner","forever","acquireUseRelease","update","add","remove","catchAllCause","failCause","fork","c","connect","tap","concurrency","maybeWait","millis","identifyRateLimit","spawners","range","all","discard","await","Sharder","Tag","exports","LiveSharder","provide","merge","LiveRateLimiter","LiveShard","effect"],"sources":["../src/DiscordGateway/Sharder.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- /// <reference types="ws" />
2
1
  import { Tag } from "@effect/data/Context";
3
2
  import * as Duration from "@effect/data/Duration";
4
3
  import * as Effect from "@effect/io/Effect";
@@ -1 +1 @@
1
- {"version":3,"file":"WS.d.ts","sourceRoot":"","sources":["../src/DiscordGateway/WS.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAC1C,OAAO,KAAK,QAAQ,MAAM,uBAAuB,CAAA;AACjD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAEzC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AAErC,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,SAAS,MAAM,eAAe,CAAA;AAErC,eAAO,MAAM,SAAS,eAAW,CAAA;AACjC,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAA;AACxC,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,CAAA;AAEnE,qBAAa,cAAc;IAGvB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO;IACzC,QAAQ,CAAC,KAAK,CAAC;IAHjB,QAAQ,CAAC,IAAI,oBAAmB;gBAErB,MAAM,EAAE,cAAc,GAAG,OAAO,EAChC,KAAK,CAAC,SAAS;CAE3B;AAED,qBAAa,mBAAmB;IAG5B,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM;IAHzB,QAAQ,CAAC,IAAI,yBAAwB;gBAE1B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM;CAE1B;AA8FD,QAAA,MAAM,IAAI;4BAID,OAAO,CAAC,MAAM,CAAC,gBACN,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC;;;;EA4BpD,CAAA;AAEF,MAAM,WAAW,EAAG,SAAQ,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC;CAAG;AACjE,eAAO,MAAM,EAAE,aAAY,CAAA;AAC3B,eAAO,MAAM,MAAM,6BAAyB,CAAA"}
1
+ {"version":3,"file":"WS.d.ts","sourceRoot":"","sources":["../src/DiscordGateway/WS.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAC1C,OAAO,KAAK,QAAQ,MAAM,uBAAuB,CAAA;AAEjD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAEzC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,SAAS,MAAM,eAAe,CAAA;AAErC,eAAO,MAAM,SAAS,eAAW,CAAA;AACjC,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAA;AACxC,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,CAAA;AAEnE,qBAAa,cAAc;IAGvB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO;IACzC,QAAQ,CAAC,KAAK,CAAC;IAHjB,QAAQ,CAAC,IAAI,oBAAmB;gBAErB,MAAM,EAAE,cAAc,GAAG,OAAO,EAChC,KAAK,CAAC,SAAS;CAE3B;AAED,qBAAa,mBAAmB;IAG5B,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM;IAHzB,QAAQ,CAAC,IAAI,yBAAwB;gBAE1B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM;CAE1B;AAsFD,QAAA,MAAM,IAAI;4BAID,OAAO,CAAC,MAAM,CAAC,gBACN,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC;;;;EA8BpD,CAAA;AAEF,MAAM,WAAW,EAAG,SAAQ,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC;CAAG;AACjE,eAAO,MAAM,EAAE,aAAY,CAAA;AAC3B,eAAO,MAAM,MAAM,6BAAyB,CAAA"}
@@ -10,7 +10,6 @@ var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect
10
10
  var Layer = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/io/Layer"));
11
11
  var Queue = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/io/Queue"));
12
12
  var Ref = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/io/Ref"));
13
- var Runtime = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/io/Runtime"));
14
13
  var _Log = /*#__PURE__*/require("dfx/Log");
15
14
  var _isomorphicWs = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("isomorphic-ws"));
16
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -39,19 +38,15 @@ class WebSocketCloseError {
39
38
  }
40
39
  exports.WebSocketCloseError = WebSocketCloseError;
41
40
  const isReconnect = e => e._tag === "WebSocketCloseError" && e.code === 1012;
42
- const socket = urlRef => Ref.get(urlRef).pipe(Effect.map(_ => new _isomorphicWs.default(_)), Effect.acquireRelease(ws => Effect.sync(() => {
41
+ const socket = urlRef => Effect.acquireRelease(ws => Effect.sync(() => {
43
42
  // eslint-disable-next-line no-extra-semi
44
43
  ;
45
44
  ws.removeAllListeners?.();
46
45
  ws.close();
47
- })));
48
- const offer = (ws, queue, log) => Effect.runtime().pipe(Effect.flatMap(runtime => Effect.async(resume => {
49
- const run = Runtime.runFork(runtime);
46
+ }))(Effect.map(_ => new _isomorphicWs.default(_))(Ref.get(urlRef)));
47
+ const offer = (ws, queue, log) => Effect.async(resume => {
50
48
  ws.addEventListener("message", message => {
51
- run(Effect.all([log.debug("WS", "receive", message.data), Queue.offer(queue, message.data)], {
52
- concurrency: "unbounded",
53
- discard: true
54
- }));
49
+ Effect.runFork(Effect.zipRight(log.debug("WS", "receive", message.data), Queue.offer(queue, message.data)));
55
50
  });
56
51
  ws.addEventListener("error", cause => {
57
52
  resume(Effect.fail(new WebSocketError("error", cause)));
@@ -59,7 +54,7 @@ const offer = (ws, queue, log) => Effect.runtime().pipe(Effect.flatMap(runtime =
59
54
  ws.addEventListener("close", e => {
60
55
  resume(Effect.fail(new WebSocketCloseError(e.code, e.reason)));
61
56
  });
62
- })));
57
+ });
63
58
  const waitForOpen = (ws, timeout) => Effect.timeoutFail(Effect.suspend(() => {
64
59
  if (ws.readyState === _isomorphicWs.default.OPEN) {
65
60
  return Effect.unit;
@@ -73,7 +68,7 @@ const waitForOpen = (ws, timeout) => Effect.timeoutFail(Effect.suspend(() => {
73
68
  onTimeout: () => new WebSocketError("open-timeout"),
74
69
  duration: timeout
75
70
  });
76
- const send = (ws, take, log) => take.pipe(Effect.tap(data => log.debug("WS", "send", data)), Effect.tap(data => {
71
+ const send = (ws, take, log) => Effect.forever(Effect.tap(data => {
77
72
  if (data === Reconnect) {
78
73
  return Effect.failSync(() => {
79
74
  ws.close(1012, "reconnecting");
@@ -83,15 +78,15 @@ const send = (ws, take, log) => take.pipe(Effect.tap(data => log.debug("WS", "se
83
78
  return Effect.sync(() => {
84
79
  ws.send(data);
85
80
  });
86
- }), Effect.forever);
81
+ })(Effect.tap(data => log.debug("WS", "send", data))(take)));
87
82
  const make = /*#__PURE__*/Effect.gen(function* (_) {
88
83
  const log = yield* _(_Log.Log);
89
84
  const connect = (url, takeOutbound, onConnecting = Effect.unit, openTimeout = Duration.seconds(3)) => Effect.gen(function* (_) {
90
85
  const queue = yield* _(Queue.unbounded());
91
- const run = onConnecting.pipe(Effect.zipRight(socket(url)), Effect.flatMap(ws => Effect.all([offer(ws, queue, log), waitForOpen(ws, openTimeout).pipe(Effect.zipRight(send(ws, takeOutbound, log)))], {
86
+ const run = Effect.retryWhile(isReconnect)(Effect.scoped(Effect.flatMap(ws => Effect.all([offer(ws, queue, log), Effect.zipRight(waitForOpen(ws, openTimeout), send(ws, takeOutbound, log))], {
92
87
  concurrency: "unbounded",
93
88
  discard: true
94
- })), Effect.scoped, Effect.retryWhile(isReconnect));
89
+ }))(Effect.zipRight(socket(url))(onConnecting))));
95
90
  return {
96
91
  run,
97
92
  take: Queue.take(queue)
@@ -1 +1 @@
1
- {"version":3,"file":"WS.js","names":["_Context","require","Duration","_interopRequireWildcard","Effect","Layer","Queue","Ref","Runtime","_Log","_isomorphicWs","_interopRequireDefault","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Reconnect","Symbol","exports","WebSocketError","reason","error","_tag","constructor","WebSocketCloseError","code","isReconnect","e","socket","urlRef","pipe","map","_","WebSocket","acquireRelease","ws","sync","removeAllListeners","close","offer","queue","log","runtime","flatMap","async","resume","run","runFork","addEventListener","message","all","debug","data","concurrency","discard","cause","fail","waitForOpen","timeout","timeoutFail","suspend","readyState","OPEN","unit","once","onTimeout","duration","send","take","tap","failSync","forever","make","gen","Log","connect","url","takeOutbound","onConnecting","openTimeout","seconds","unbounded","zipRight","scoped","retryWhile","WS","Tag","LiveWS","effect"],"sources":["../src/DiscordGateway/WS.ts"],"sourcesContent":[null],"mappings":"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"}
1
+ {"version":3,"file":"WS.js","names":["_Context","require","Duration","_interopRequireWildcard","Effect","Layer","Queue","Ref","_Log","_isomorphicWs","_interopRequireDefault","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Reconnect","Symbol","exports","WebSocketError","reason","error","_tag","constructor","WebSocketCloseError","code","isReconnect","e","socket","urlRef","acquireRelease","ws","sync","removeAllListeners","close","map","_","WebSocket","offer","queue","log","async","resume","addEventListener","message","runFork","zipRight","debug","data","cause","fail","waitForOpen","timeout","timeoutFail","suspend","readyState","OPEN","unit","once","onTimeout","duration","send","take","forever","tap","failSync","make","gen","Log","connect","url","takeOutbound","onConnecting","openTimeout","seconds","unbounded","run","retryWhile","scoped","flatMap","all","concurrency","discard","WS","Tag","LiveWS","effect"],"sources":["../src/DiscordGateway/WS.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -17,5 +17,5 @@ export interface DiscordGateway {
17
17
  }
18
18
  export declare const DiscordGateway: Tag<DiscordGateway, DiscordGateway>;
19
19
  export declare const make: Effect.Effect<Sharder, never, DiscordGateway>;
20
- export declare const LiveDiscordGateway: Layer.Layer<import("./DiscordConfig").DiscordConfig | import("./Log").Log | import("./RateLimit").RateLimitStore | import("./DiscordREST").DiscordREST | import("./DiscordGateway/ShardStore").ShardStore | import("./DiscordGateway/DiscordWS").DiscordWSCodec, never, DiscordGateway>;
20
+ export declare const LiveDiscordGateway: Layer.Layer<import("./DiscordConfig").DiscordConfig | import("./Log").Log | import("./RateLimit").RateLimitStore | import("./DiscordREST").DiscordREST | import("./DiscordGateway/DiscordWS").DiscordWSCodec | import("./DiscordGateway/ShardStore").ShardStore, never, DiscordGateway>;
21
21
  //# sourceMappingURL=DiscordGateway.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DiscordGateway.d.ts","sourceRoot":"","sources":["./src/DiscordGateway.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAC1C,OAAO,KAAK,KAAK,OAAO,MAAM,sBAAsB,CAAA;AACpD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAE3C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAEzC,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAe,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAChF,OAAO,KAAK,KAAK,OAAO,MAAM,WAAW,CAAA;AAyBzC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CACzB,KAAK,EACL,cAAc,GAAG,mBAAmB,EACpC,KAAK,CACN,CAAA;IACD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAC9B,KAAK,EACL,KAAK,EACL,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,CAC7C,CAAA;IACD,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,SAAS,MAAM,OAAO,CAAC,aAAa,EAC3D,KAAK,EAAE,CAAC,KACL,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1D,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,SAAS,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACtE,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAChE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;IAC/B,QAAQ,CAAC,IAAI,EAAE,CACb,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,KAC/C,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAA;CAC5E;AACD,eAAO,MAAM,cAAc,qCAAwB,CAAA;AAEnD,eAAO,MAAM,IAAI,+CA0Bf,CAAA;AAEF,eAAO,MAAM,kBAAkB,yRAG9B,CAAA"}
1
+ {"version":3,"file":"DiscordGateway.d.ts","sourceRoot":"","sources":["./src/DiscordGateway.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAC1C,OAAO,KAAK,KAAK,OAAO,MAAM,sBAAsB,CAAA;AACpD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAE3C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAEzC,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAe,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAChF,OAAO,KAAK,KAAK,OAAO,MAAM,WAAW,CAAA;AA4BzC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CACzB,KAAK,EACL,cAAc,GAAG,mBAAmB,EACpC,KAAK,CACN,CAAA;IACD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAC9B,KAAK,EACL,KAAK,EACL,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,CAC7C,CAAA;IACD,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,SAAS,MAAM,OAAO,CAAC,aAAa,EAC3D,KAAK,EAAE,CAAC,KACL,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1D,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,SAAS,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACtE,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAChE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;IAC/B,QAAQ,CAAC,IAAI,EAAE,CACb,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,KAC/C,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAA;CAC5E;AACD,eAAO,MAAM,cAAc,qCAAwB,CAAA;AAEnD,eAAO,MAAM,IAAI,+CA0Bf,CAAA;AAEF,eAAO,MAAM,kBAAkB,yRAG9B,CAAA"}
package/DiscordGateway.js CHANGED
@@ -14,7 +14,7 @@ var _Sharder = /*#__PURE__*/require("dfx/DiscordGateway/Sharder");
14
14
  var EffectUtils = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/utils/Effect"));
15
15
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
16
16
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
- const fromDispatchFactory = source => event => Stream.filter(source, p => p.t === event).pipe(Stream.map(p => p.d));
17
+ const fromDispatchFactory = source => event => Stream.map(Stream.filter(source, p => p.t === event), p => p.d);
18
18
  const handleDispatchFactory = hub => (event, handle) => EffectUtils.subscribeForEachPar(hub, _ => {
19
19
  if (_.t === event) {
20
20
  return handle(_.d);
@@ -1 +1 @@
1
- {"version":3,"file":"DiscordGateway.js","names":["_Context","require","Effect","_interopRequireWildcard","Hub","Layer","Queue","Stream","_Sharder","EffectUtils","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","fromDispatchFactory","source","event","filter","p","t","pipe","map","d","handleDispatchFactory","hub","handle","subscribeForEachPar","_","unit","DiscordGateway","Tag","exports","make","gen","sharder","Sharder","unbounded","sendQueue","send","payload","offer","dispatch","fromHub","fromDispatch","handleDispatch","run","of","shards","LiveDiscordGateway","provide","LiveSharder","effect"],"sources":["./src/DiscordGateway.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,QAAA,gBAAAC,OAAA;AAEA,IAAAC,MAAA,gBAAAC,uBAAA,eAAAF,OAAA;AACA,IAAAG,GAAA,gBAAAD,uBAAA,eAAAF,OAAA;AACA,IAAAI,KAAA,gBAAAF,uBAAA,eAAAF,OAAA;AACA,IAAAK,KAAA,gBAAAH,uBAAA,eAAAF,OAAA;AACA,IAAAM,MAAA,gBAAAJ,uBAAA,eAAAF,OAAA;AAEA,IAAAO,QAAA,gBAAAP,OAAA;AAGA,IAAAQ,WAAA,gBAAAN,uBAAA,eAAAF,OAAA;AAA+C,SAAAS,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAR,wBAAAY,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAE/C,MAAMW,mBAAmB,GAErBC,MAAyE,IAGzEC,KAAQ,IAER3B,MAAM,CAAC4B,MAAM,CAACF,MAAM,EAAEG,CAAC,IAAIA,CAAC,CAACC,CAAC,KAAKH,KAAK,CAAC,CAACI,IAAI,CAAC/B,MAAM,CAACgC,GAAG,CAACH,CAAC,IAAIA,CAAC,CAACI,CAAS,CAAC,CAAC;AAEhF,MAAMC,qBAAqB,GACxBC,GAA0D,IAC3D,CACER,KAAQ,EACRS,MAAmE,KAEnElC,WAAW,CAACmC,mBAAmB,CAACF,GAAG,EAAEG,CAAC,IAAG;EACvC,IAAIA,CAAC,CAACR,CAAC,KAAKH,KAAK,EAAE;IACjB,OAAOS,MAAM,CAACE,CAAC,CAACL,CAAQ,CAAC;;EAE3B,OAAOtC,MAAM,CAAC4C,IAAI;AACpB,CAAC,CAAC;AAyBC,MAAMC,cAAc,gBAAG,IAAAC,YAAG,GAAkB;AAAAC,OAAA,CAAAF,cAAA,GAAAA,cAAA;AAE5C,MAAMG,IAAI,gBAAGhD,MAAM,CAACiD,GAAG,CAAC,WAAWN,CAAC;EACzC,MAAMO,OAAO,GAAG,OAAOP,CAAC,CAACQ,gBAAO,CAAC;EACjC,MAAMX,GAAG,GAAG,OAAOG,CAAC,CAClBzC,GAAG,CAACkD,SAAS,EAAgD,CAC9D;EAED,MAAMC,SAAS,GAAG,OAAOV,CAAC,CACxBvC,KAAK,CAACgD,SAAS,EAA6C,CAC7D;EACD,MAAME,IAAI,GAAIC,OAAkD,IAC9DF,SAAS,CAACG,KAAK,CAACD,OAAO,CAAC;EAE1B,MAAME,QAAQ,GAAGpD,MAAM,CAACqD,OAAO,CAAClB,GAAG,CAAC;EACpC,MAAMmB,YAAY,GAAG7B,mBAAmB,CAAC2B,QAAQ,CAAC;EAClD,MAAMG,cAAc,GAAGrB,qBAAqB,CAACC,GAAG,CAAC;EAEjD,MAAMqB,GAAG,GAAGX,OAAO,CAACW,GAAG,CAACrB,GAAG,EAAEa,SAAS,CAAC;EAEvC,OAAOR,cAAc,CAACiB,EAAE,CAAC;IACvBD,GAAG;IACHJ,QAAQ;IACRE,YAAY;IACZC,cAAc;IACdN,IAAI;IACJS,MAAM,EAAEb,OAAO,CAACa;GACjB,CAAC;AACJ,CAAC,CAAC;AAAAhB,OAAA,CAAAC,IAAA,GAAAA,IAAA;AAEK,MAAMgB,kBAAkB,gBAAG7D,KAAK,CAAC8D,OAAO,CAC7CC,oBAAW,eACX/D,KAAK,CAACgE,MAAM,CAACtB,cAAc,EAAEG,IAAI,CAAC,CACnC;AAAAD,OAAA,CAAAiB,kBAAA,GAAAA,kBAAA"}
1
+ {"version":3,"file":"DiscordGateway.js","names":["_Context","require","Effect","_interopRequireWildcard","Hub","Layer","Queue","Stream","_Sharder","EffectUtils","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","fromDispatchFactory","source","event","map","filter","p","t","d","handleDispatchFactory","hub","handle","subscribeForEachPar","_","unit","DiscordGateway","Tag","exports","make","gen","sharder","Sharder","unbounded","sendQueue","send","payload","offer","dispatch","fromHub","fromDispatch","handleDispatch","run","of","shards","LiveDiscordGateway","provide","LiveSharder","effect"],"sources":["./src/DiscordGateway.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,QAAA,gBAAAC,OAAA;AAEA,IAAAC,MAAA,gBAAAC,uBAAA,eAAAF,OAAA;AACA,IAAAG,GAAA,gBAAAD,uBAAA,eAAAF,OAAA;AACA,IAAAI,KAAA,gBAAAF,uBAAA,eAAAF,OAAA;AACA,IAAAK,KAAA,gBAAAH,uBAAA,eAAAF,OAAA;AACA,IAAAM,MAAA,gBAAAJ,uBAAA,eAAAF,OAAA;AAEA,IAAAO,QAAA,gBAAAP,OAAA;AAGA,IAAAQ,WAAA,gBAAAN,uBAAA,eAAAF,OAAA;AAA+C,SAAAS,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAR,wBAAAY,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAE/C,MAAMW,mBAAmB,GAErBC,MAAyE,IAGzEC,KAAQ,IAER3B,MAAM,CAAC4B,GAAG,CACR5B,MAAM,CAAC6B,MAAM,CAACH,MAAM,EAAEI,CAAC,IAAIA,CAAC,CAACC,CAAC,KAAKJ,KAAK,CAAC,EACzCG,CAAC,IAAIA,CAAC,CAACE,CAAS,CACjB;AAEL,MAAMC,qBAAqB,GACxBC,GAA0D,IAC3D,CACEP,KAAQ,EACRQ,MAAmE,KAEnEjC,WAAW,CAACkC,mBAAmB,CAACF,GAAG,EAAEG,CAAC,IAAG;EACvC,IAAIA,CAAC,CAACN,CAAC,KAAKJ,KAAK,EAAE;IACjB,OAAOQ,MAAM,CAACE,CAAC,CAACL,CAAQ,CAAC;;EAE3B,OAAOrC,MAAM,CAAC2C,IAAI;AACpB,CAAC,CAAC;AAyBC,MAAMC,cAAc,gBAAG,IAAAC,YAAG,GAAkB;AAAAC,OAAA,CAAAF,cAAA,GAAAA,cAAA;AAE5C,MAAMG,IAAI,gBAAG/C,MAAM,CAACgD,GAAG,CAAC,WAAWN,CAAC;EACzC,MAAMO,OAAO,GAAG,OAAOP,CAAC,CAACQ,gBAAO,CAAC;EACjC,MAAMX,GAAG,GAAG,OAAOG,CAAC,CAClBxC,GAAG,CAACiD,SAAS,EAAgD,CAC9D;EAED,MAAMC,SAAS,GAAG,OAAOV,CAAC,CACxBtC,KAAK,CAAC+C,SAAS,EAA6C,CAC7D;EACD,MAAME,IAAI,GAAIC,OAAkD,IAC9DF,SAAS,CAACG,KAAK,CAACD,OAAO,CAAC;EAE1B,MAAME,QAAQ,GAAGnD,MAAM,CAACoD,OAAO,CAAClB,GAAG,CAAC;EACpC,MAAMmB,YAAY,GAAG5B,mBAAmB,CAAC0B,QAAQ,CAAC;EAClD,MAAMG,cAAc,GAAGrB,qBAAqB,CAACC,GAAG,CAAC;EAEjD,MAAMqB,GAAG,GAAGX,OAAO,CAACW,GAAG,CAACrB,GAAG,EAAEa,SAAS,CAAC;EAEvC,OAAOR,cAAc,CAACiB,EAAE,CAAC;IACvBD,GAAG;IACHJ,QAAQ;IACRE,YAAY;IACZC,cAAc;IACdN,IAAI;IACJS,MAAM,EAAEb,OAAO,CAACa;GACjB,CAAC;AACJ,CAAC,CAAC;AAAAhB,OAAA,CAAAC,IAAA,GAAAA,IAAA;AAEK,MAAMgB,kBAAkB,gBAAG5D,KAAK,CAAC6D,OAAO,CAC7CC,oBAAW,eACX9D,KAAK,CAAC+D,MAAM,CAACtB,cAAc,EAAEG,IAAI,CAAC,CACnC;AAAAD,OAAA,CAAAiB,kBAAA,GAAAA,kBAAA"}
@@ -16,7 +16,7 @@ export interface RunOpts {
16
16
  /**
17
17
  * @tsplus pipeable dfx/InteractionBuilder runGateway
18
18
  */
19
- export declare const run: <R, R2, E, TE, E2>(postHandler: (effect: Effect.Effect<DiscordREST | R | Discord.Interaction, DiscordRESTError | TE | DefinitionNotFound, void>) => Effect.Effect<R2, E2, void>, { sync }?: RunOpts) => (ix: InteractionBuilder<R, E, TE>) => Effect.Effect<DiscordREST | DiscordGateway | Exclude<R2, Discord.Interaction>, DiscordRESTError | Http.error.ResponseError | E2, never>;
19
+ export declare const run: <R, R2, E, TE, E2>(postHandler: (effect: Effect.Effect<DiscordREST | Discord.Interaction | R, DiscordRESTError | DefinitionNotFound | TE, void>) => Effect.Effect<R2, E2, void>, { sync }?: RunOpts) => (ix: InteractionBuilder<R, E, TE>) => Effect.Effect<DiscordREST | DiscordGateway | Exclude<R2, Discord.Interaction>, DiscordRESTError | Http.error.ResponseError | E2, never>;
20
20
  export interface InteractionsRegistry {
21
21
  readonly register: <E>(ix: InteractionBuilder<never, E, never>) => Effect.Effect<never, never, void>;
22
22
  readonly run: <R, E>(onError: (_: Cause<DiscordRESTError | DefinitionNotFound>) => Effect.Effect<R, E, void>, opts?: RunOpts) => Effect.Effect<DiscordREST | DiscordGateway | Exclude<R, Discord.Interaction>, DiscordRESTError | Http.error.ResponseError | E, never>;
package/gateway.d.ts CHANGED
@@ -16,6 +16,6 @@ export { DiscordGateway, LiveDiscordGateway } from "dfx/DiscordGateway";
16
16
  export { InteractionsRegistry, InteractionsRegistryLive, run as runIx, } from "dfx/Interactions/gateway";
17
17
  export { CachePrelude, DiscordWS, SendEvent, Shard, ShardStore, WS };
18
18
  export declare const MemoryRateLimit: Layer.Layer<Log.Log, never, RateLimiter>;
19
- export declare const MemoryBot: Layer.Layer<DiscordConfig.DiscordConfig | Log.Log, never, RateLimiter | DiscordREST | InteractionsRegistry | DiscordGateway>;
19
+ export declare const MemoryBot: Layer.Layer<DiscordConfig.DiscordConfig | Log.Log, never, RateLimiter | DiscordREST | DiscordGateway | InteractionsRegistry>;
20
20
  export declare const gatewayLayer: (config: Config.Config.Wrap<DiscordConfig.MakeOpts>) => Layer.Layer<never, ConfigError.ConfigError, RateLimiter | Log.Log | InteractionsRegistry | DiscordREST | DiscordGateway | DiscordConfig.DiscordConfig>;
21
21
  //# sourceMappingURL=gateway.d.ts.map
@@ -35,20 +35,21 @@ export const make = /*#__PURE__*/Effect.gen(function* (_) {
35
35
  const send = p => Effect.flatMap(Ref.get(phase), phase => phase === 2 /* Phase.Connected */ ? Queue.offer(outboundQueue, p) : Queue.offer(pendingQueue, p));
36
36
  const heartbeatSend = p => Effect.flatMap(Ref.get(phase), phase => phase !== 0 /* Phase.Connecting */ ? Queue.offer(outboundQueue, p) : Effect.succeed(false));
37
37
  const prioritySend = p => Queue.offer(outboundQueue, p);
38
- const resume = setPhase(2 /* Phase.Connected */).pipe(Effect.zipRight(Queue.takeAll(pendingQueue)), Effect.tap(_ => Queue.offerAll(outboundQueue, _)), Effect.asUnit);
39
- const onConnecting = Queue.takeAll(outboundQueue).pipe(Effect.tap(msgs => Queue.offerAll(pendingQueue, 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 */)));
38
+ const resume = Effect.asUnit(Effect.tap(_ => Queue.offerAll(outboundQueue, _))(Effect.zipRight(Queue.takeAll(pendingQueue))(setPhase(2 /* Phase.Connected */))));
39
+ const onConnecting = Effect.zipRight(setPhase(0 /* Phase.Connecting */))(Effect.tap(msgs => Queue.offerAll(pendingQueue, Chunk.filter(msgs, msg => msg !== Reconnect && msg.op !== Discord.GatewayOpcode.IDENTIFY && msg.op !== Discord.GatewayOpcode.RESUME && msg.op !== Discord.GatewayOpcode.HEARTBEAT)))(Queue.takeAll(outboundQueue)));
40
40
  const socket = yield* _(dws.connect({
41
41
  outbound,
42
42
  onConnecting
43
43
  }));
44
- const [latestReady, updateLatestReady] = yield* _(Utils.latest(p => Option.some(p).pipe(Option.filter(p => p.op === Discord.GatewayOpcode.DISPATCH && p.t === "READY"), Option.map(p => p.d))));
44
+ const isReady = Option.liftPredicate(p => p.op === Discord.GatewayOpcode.DISPATCH && p.t === "READY");
45
+ const [latestReady, updateLatestReady] = yield* _(Utils.latest(p => Option.map(isReady(p), p => p.d)));
45
46
  const [latestSequence, updateLatestSequence] = yield* _(Utils.latest(p => Option.fromNullable(p.s)));
46
- const maybeUpdateUrl = p => Option.some(p).pipe(Option.filter(p => p.op === Discord.GatewayOpcode.DISPATCH && p.t === "READY"), Option.map(p => p.d), Option.match({
47
+ const maybeUpdateUrl = p => Option.match(Option.map(isReady(p), p => p.d), {
47
48
  onNone: () => Effect.unit,
48
49
  onSome: ({
49
50
  resume_gateway_url
50
51
  }) => socket.setUrl(resume_gateway_url)
51
- }));
52
+ });
52
53
  const hellos = yield* _(Queue.unbounded());
53
54
  const acks = yield* _(Queue.unbounded());
54
55
  // heartbeats
@@ -60,10 +61,10 @@ export const make = /*#__PURE__*/Effect.gen(function* (_) {
60
61
  intents: gateway.intents,
61
62
  presence: gateway.presence
62
63
  }, latestReady, latestSequence);
63
- const onPayload = p => updateLatestReady(p).pipe(Effect.zipRight(updateLatestSequence(p)), Effect.zipRight(maybeUpdateUrl(p)), Effect.tap(() => {
64
+ const onPayload = p => Effect.tap(() => {
64
65
  switch (p.op) {
65
66
  case Discord.GatewayOpcode.HELLO:
66
- return Effect.tap(identify, prioritySend).pipe(Effect.zipRight(setPhase(1 /* Phase.Handshake */)), Effect.zipRight(Queue.offer(hellos, p)));
67
+ return Effect.zipRight(Queue.offer(hellos, p))(Effect.zipRight(setPhase(1 /* Phase.Handshake */))(Effect.tap(identify, prioritySend)));
67
68
  case Discord.GatewayOpcode.HEARTBEAT_ACK:
68
69
  return Queue.offer(acks, p);
69
70
  case Discord.GatewayOpcode.INVALID_SESSION:
@@ -73,11 +74,12 @@ export const make = /*#__PURE__*/Effect.gen(function* (_) {
73
74
  return Effect.zipRight(resume, Hub.publish(hub, p));
74
75
  }
75
76
  return Hub.publish(hub, p);
77
+ default:
78
+ return Effect.unit;
76
79
  }
77
- return Effect.unit;
78
- }));
79
- const drainSendQueue = Queue.take(sendQueue).pipe(Effect.tap(send), Effect.forever);
80
- const run = Effect.all([socket.take.pipe(Effect.flatMap(onPayload), Effect.forever), heartbeats, drainSendQueue, socket.run], {
80
+ })(Effect.zipRight(maybeUpdateUrl(p))(Effect.zipRight(updateLatestSequence(p))(updateLatestReady(p))));
81
+ const drainSendQueue = Effect.forever(Effect.tap(Queue.take(sendQueue), send));
82
+ const run = Effect.all([Effect.forever(Effect.flatMap(socket.take, onPayload)), heartbeats, drainSendQueue, socket.run], {
81
83
  discard: true,
82
84
  concurrency: "unbounded"
83
85
  });