dfx 0.21.19 → 0.21.21

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 (76) hide show
  1. package/Cache/index.js +11 -11
  2. package/Cache/index.js.map +1 -1
  3. package/Cache/memory.js +6 -6
  4. package/Cache/memory.js.map +1 -1
  5. package/Cache/memoryTTL.js +23 -23
  6. package/Cache/memoryTTL.js.map +1 -1
  7. package/Cache/prelude.js +52 -52
  8. package/Cache/prelude.js.map +1 -1
  9. package/DiscordConfig/index.d.ts +1 -1
  10. package/DiscordConfig/index.js +6 -5
  11. package/DiscordConfig/index.js.map +1 -1
  12. package/DiscordGateway/DiscordWS/index.js +12 -12
  13. package/DiscordGateway/DiscordWS/index.js.map +1 -1
  14. package/DiscordGateway/Shard/heartbeats.js +11 -12
  15. package/DiscordGateway/Shard/heartbeats.js.map +1 -1
  16. package/DiscordGateway/Shard/identify.js +4 -4
  17. package/DiscordGateway/Shard/identify.js.map +1 -1
  18. package/DiscordGateway/Shard/index.js +16 -16
  19. package/DiscordGateway/Shard/index.js.map +1 -1
  20. package/DiscordGateway/Shard/invalidSession.js +2 -2
  21. package/DiscordGateway/Shard/invalidSession.js.map +1 -1
  22. package/DiscordGateway/Shard/utils.d.ts +1 -1
  23. package/DiscordGateway/Shard/utils.js +5 -5
  24. package/DiscordGateway/Shard/utils.js.map +1 -1
  25. package/DiscordGateway/ShardStore/index.js +3 -3
  26. package/DiscordGateway/ShardStore/index.js.map +1 -1
  27. package/DiscordGateway/Sharder/index.js +16 -16
  28. package/DiscordGateway/Sharder/index.js.map +1 -1
  29. package/DiscordGateway/WS/index.js +14 -14
  30. package/DiscordGateway/WS/index.js.map +1 -1
  31. package/DiscordGateway/index.js +9 -10
  32. package/DiscordGateway/index.js.map +1 -1
  33. package/DiscordREST/index.js +34 -34
  34. package/DiscordREST/index.js.map +1 -1
  35. package/DiscordREST/utils.d.ts +7 -7
  36. package/DiscordREST/utils.js +3 -3
  37. package/DiscordREST/utils.js.map +1 -1
  38. package/Helpers/flags.js +1 -1
  39. package/Helpers/flags.js.map +1 -1
  40. package/Helpers/interactions.d.ts +14 -13
  41. package/Helpers/interactions.js +21 -20
  42. package/Helpers/interactions.js.map +1 -1
  43. package/Helpers/members.js +1 -1
  44. package/Helpers/members.js.map +1 -1
  45. package/Helpers/permissions.js +7 -7
  46. package/Helpers/permissions.js.map +1 -1
  47. package/Helpers/ui.js +1 -1
  48. package/Helpers/ui.js.map +1 -1
  49. package/Http/index.js +6 -6
  50. package/Http/index.js.map +1 -1
  51. package/Interactions/context.d.ts +2 -2
  52. package/Interactions/context.js +11 -11
  53. package/Interactions/context.js.map +1 -1
  54. package/Interactions/gateway.js +7 -7
  55. package/Interactions/gateway.js.map +1 -1
  56. package/Interactions/handlers.js +17 -17
  57. package/Interactions/handlers.js.map +1 -1
  58. package/Interactions/index.js +6 -6
  59. package/Interactions/index.js.map +1 -1
  60. package/Interactions/webhook.js +9 -9
  61. package/Interactions/webhook.js.map +1 -1
  62. package/RateLimit/index.js +5 -5
  63. package/RateLimit/index.js.map +1 -1
  64. package/RateLimit/memory.js +5 -5
  65. package/RateLimit/memory.js.map +1 -1
  66. package/RateLimit/utils.js +1 -1
  67. package/RateLimit/utils.js.map +1 -1
  68. package/_common.d.ts +9 -9
  69. package/_common.js +1 -1
  70. package/_common.js.map +1 -1
  71. package/global.d.ts +3 -3
  72. package/index.d.ts +0 -1
  73. package/package.json +13 -10
  74. package/types.d.ts +3 -1
  75. package/types.js +9 -9
  76. package/types.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"identify.js","sourceRoot":"","sources":["../../../src/DiscordGateway/Shard/identify.ts"],"names":[],"mappings":";;;;;AAAA,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAcnC,MAAM,QAAQ,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAW,EAAE,EAAE,CAChE,UAAU,CAAC,QAAQ,CAAC;IAClB,KAAK;IACL,OAAO;IACP,UAAU,EAAE;QACV,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE;QACjB,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,KAAK;KACd;IACD,KAAK;IACL,QAAQ;CACT,CAAC,CAAA;AAEJ,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,KAAyB,EAAE,GAAW,EAAE,EAAE,CACvE,UAAU,CAAC,MAAM,CAAC;IAChB,KAAK;IACL,UAAU,EAAE,KAAK,CAAC,UAAU;IAC5B,GAAG;CACJ,CAAC,CAAA;AAEJ,MAAM,gBAAgB,GAAG,CACvB,IAAa,EACb,KAAqC,EACrC,GAAuB,EACvB,EAAE,yBAEM,UAAU,wBACV,SAAS,IAER,sBAIL,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EACpB,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,EALnE,uBAAa;IAClB,UAAU;IACV,SAAS;CACV,CAAC,CAGD,sBARmB,GAAG,wBADF,KAAK,EAU1B,CAAA;AAEJ,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,MAA4C,EAC5C,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,IAAI,EAA0B,EAChE,EAAE,CACF,0BACE,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,WAAW,EAAE,cAAc,CAAC,EAD3D,MAAM,CAAC,MAAM,CAAC,sCAAiD,CAE9D,CAAA"}
1
+ {"version":3,"file":"identify.js","sourceRoot":"","sources":["../../../src/DiscordGateway/Shard/identify.ts"],"names":[],"mappings":";;;;;AAAA,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAcnC,MAAM,QAAQ,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAW,EAAE,EAAE,CAChE,UAAU,CAAC,QAAQ,CAAC;IAClB,KAAK;IACL,OAAO;IACP,UAAU,EAAE;QACV,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE;QACjB,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,KAAK;KACd;IACD,KAAK;IACL,QAAQ;CACT,CAAC,CAAA;AAEJ,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,KAAyB,EAAE,GAAW,EAAE,EAAE,CACvE,UAAU,CAAC,MAAM,CAAC;IAChB,KAAK;IACL,UAAU,EAAE,KAAK,CAAC,UAAU;IAC5B,GAAG;CACJ,CAAC,CAAA;AAEJ,MAAM,gBAAgB,GAAG,CACvB,IAAa,EACb,KAAqC,EACrC,GAAuB,EACvB,EAAE,6CAEqB,KAAK,GAApB,UAAU,4CACI,GAAG,GAAjB,SAAS,IAER,sBAIL,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EACpB,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,EALnE,uBAAa;IAClB,UAAU;IACV,SAAS;CACV,CAAC,CAGD,EACD,CAAA;AAEJ,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,MAA4C,EAC5C,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,IAAI,EAA0B,EAChE,EAAE,CACF,0BAAA,MAAM,CAAC,MAAM,CAAC,sCAAiD,EAC7D,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,WAAW,EAAE,cAAc,CAAC,CAC1D,CAAA"}
@@ -3,42 +3,42 @@ import * as tsplus_module_2 from "dfx/gateway";
3
3
  import * as tsplus_module_3 from "@effect/stream/Stream";
4
4
  import * as tsplus_module_4 from "@effect/io/Config/Secret";
5
5
  import * as tsplus_module_5 from "dfx/_common";
6
- import * as tsplus_module_6 from "@fp-ts/data/Option";
7
- import * as tsplus_module_7 from "@fp-ts/data/Duration";
6
+ import * as tsplus_module_6 from "@fp-ts/core/Option";
7
+ import * as tsplus_module_7 from "@effect/data/Duration";
8
8
  import * as tsplus_module_8 from "@effect/io/Queue";
9
9
  import * as tsplus_module_9 from "dfx";
10
10
  import * as Heartbeats from "./heartbeats.js";
11
11
  import * as Identify from "./identify.js";
12
12
  import * as InvalidSession from "./invalidSession.js";
13
13
  import * as Utils from "./utils.js";
14
- export const make = (shard) => tsplus_module_1.flatMap(({ token, gateway }) => tsplus_module_1.flatMap(limiter => tsplus_module_1.flatMap(outboundQueue => {
15
- const outbound = tsplus_module_1.tap(() => limiter.maybeWait("dfx.shard.send", tsplus_module_7.minutes(1), 120))(outboundQueue
16
- .take());
14
+ export const make = (shard) => tsplus_module_1.flatMap(tsplus_module_1.service(tsplus_module_9.DiscordConfig.DiscordConfig), ({ token, gateway }) => tsplus_module_1.flatMap(tsplus_module_1.service(tsplus_module_9.RateLimiter), limiter => tsplus_module_1.flatMap(tsplus_module_8.unbounded(), outboundQueue => {
15
+ const outbound = tsplus_module_1.tap(outboundQueue
16
+ .take(), () => limiter.maybeWait("dfx.shard.send", tsplus_module_7.minutes(1), 120));
17
17
  const send = (p) => outboundQueue.offer(p);
18
- return tsplus_module_1.flatMap(socket => tsplus_module_1.flatMap(raw => tsplus_module_1.flatMap(([latestReady, updateLatestReady]) => tsplus_module_1.map(([latestSequence, updateLatestSequence]) => {
19
- const maybeUpdateUrl = (p) => tsplus_module_6.match(() => tsplus_module_1.unit(), (a) => socket.setUrl(a.resume_gateway_url))(tsplus_module_6.map((p) => p.d)(tsplus_module_6.filter((p) => p.op === 0 /* Discord.GatewayOpcode.DISPATCH */ && p.t === "READY")(tsplus_module_6.some(p))));
20
- const updateRefs = tsplus_module_3.runDrain(tsplus_module_3.tap(maybeUpdateUrl)(tsplus_module_3.tap(updateLatestSequence)(tsplus_module_3.tap(updateLatestReady)(raw))));
18
+ return tsplus_module_1.flatMap(tsplus_module_2.DiscordWS.make({ outbound }), socket => tsplus_module_1.flatMap(tsplus_module_3.broadcastDynamic(socket.source, 1), raw => tsplus_module_1.flatMap(Utils.latest(p => tsplus_module_6.map(p => p.d)(tsplus_module_6.filter((p) => p.op === 0 /* Discord.GatewayOpcode.DISPATCH */ && p.t === "READY")(tsplus_module_6.some(p)))), ([latestReady, updateLatestReady]) => tsplus_module_1.map(Utils.latest(p => tsplus_module_6.fromNullable(p.s)), ([latestSequence, updateLatestSequence]) => {
19
+ const maybeUpdateUrl = (p) => tsplus_module_6.match(() => tsplus_module_1.unit(), a => socket.setUrl(a.resume_gateway_url))(tsplus_module_6.map(p => p.d)(tsplus_module_6.filter((p) => p.op === 0 /* Discord.GatewayOpcode.DISPATCH */ && p.t === "READY")(tsplus_module_6.some(p))));
20
+ const updateRefs = tsplus_module_3.runDrain(tsplus_module_3.tap(tsplus_module_3.tap(tsplus_module_3.tap(raw, updateLatestReady), updateLatestSequence), maybeUpdateUrl));
21
21
  // heartbeats
22
- const heartbeatEffects = tsplus_module_3.runForEach(send)(Heartbeats.fromRaw(raw, latestSequence));
23
- const dispatch = tsplus_module_3.filter((p) => p.op === 0 /* Discord.GatewayOpcode.DISPATCH */)(raw);
22
+ const heartbeatEffects = tsplus_module_3.runForEach(Heartbeats.fromRaw(raw, latestSequence), send);
23
+ const dispatch = tsplus_module_3.filter(raw, (p) => p.op === 0 /* Discord.GatewayOpcode.DISPATCH */);
24
24
  // identify
25
- const identifyEffects = tsplus_module_3.runForEach(send)(Identify.fromRaw(raw, {
25
+ const identifyEffects = tsplus_module_3.runForEach(Identify.fromRaw(raw, {
26
26
  token: tsplus_module_4.value(token),
27
27
  shard,
28
28
  intents: gateway.intents,
29
29
  presence: gateway.presence,
30
30
  latestSequence,
31
31
  latestReady,
32
- }));
32
+ }), send);
33
33
  // invalid session
34
- const invalidEffects = tsplus_module_3.runForEach(send)(InvalidSession.fromRaw(raw, latestReady));
34
+ const invalidEffects = tsplus_module_3.runForEach(InvalidSession.fromRaw(raw, latestReady), send);
35
35
  return {
36
- run: tsplus_module_1.asUnit(tsplus_module_1.zipPar(invalidEffects)(tsplus_module_1.zipPar(identifyEffects)(tsplus_module_1.zipPar(heartbeatEffects)(updateRefs)))),
36
+ run: tsplus_module_1.asUnit(tsplus_module_1.zipPar(tsplus_module_1.zipPar(tsplus_module_1.zipPar(updateRefs, heartbeatEffects), identifyEffects), invalidEffects)),
37
37
  raw,
38
38
  dispatch,
39
39
  send: (p) => send(p),
40
40
  reconnect: send(tsplus_module_2.WS.Reconnect),
41
41
  };
42
- })(Utils.latest((p) => tsplus_module_6.fromNullable(p.s))))(Utils.latest((p) => tsplus_module_6.map((p) => p.d)(tsplus_module_6.filter((p) => p.op === 0 /* Discord.GatewayOpcode.DISPATCH */ && p.t === "READY")(tsplus_module_6.some(p))))))(tsplus_module_3.broadcastDynamic(1)(socket.source)))(tsplus_module_2.DiscordWS.make({ outbound }));
43
- })(tsplus_module_8.unbounded()))(tsplus_module_1.service(tsplus_module_9.RateLimiter)))(tsplus_module_1.service(tsplus_module_9.DiscordConfig.DiscordConfig));
42
+ }))));
43
+ })));
44
44
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/DiscordGateway/Shard/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/DiscordGateway/Shard/index.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import * as tsplus_module_1 from "dfx/gateway";
2
2
  import * as tsplus_module_2 from "@effect/io/Effect";
3
- import * as tsplus_module_3 from "@fp-ts/data/Option";
3
+ import * as tsplus_module_3 from "@fp-ts/core/Option";
4
4
  import * as tsplus_module_4 from "@effect/io/Ref";
5
5
  import * as tsplus_module_5 from "dfx/_common";
6
6
  import * as tsplus_module_6 from "@effect/stream/Stream";
7
7
  import { opCode } from "./utils.js";
8
- export const fromRaw = (raw, latestReady) => tsplus_module_6.map(() => tsplus_module_1.WS.Reconnect)(tsplus_module_6.tap((p) => (p.d ? tsplus_module_2.unit() : tsplus_module_4.set(latestReady, tsplus_module_3.none)))(opCode(raw)(9 /* Discord.GatewayOpcode.INVALID_SESSION */)));
8
+ export const fromRaw = (raw, latestReady) => tsplus_module_6.map(tsplus_module_6.tap(opCode(raw)(9 /* Discord.GatewayOpcode.INVALID_SESSION */), p => (p.d ? tsplus_module_2.unit() : tsplus_module_4.set(latestReady, tsplus_module_3.none()))), () => tsplus_module_1.WS.Reconnect);
9
9
  //# sourceMappingURL=invalidSession.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"invalidSession.js","sourceRoot":"","sources":["../../../src/DiscordGateway/Shard/invalidSession.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAEnC,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,GAAyC,EACzC,WAA2C,EAC3C,EAAE,CACF,oBAIO,GAAsB,EAAE,CAAC,gBAAA,EAAE,CAAC,SAAS,EAJ5C,oBAGO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAa,CAAC,CAAC,CAAC,oBAAA,WAAW,uBAAgB,CAAC,EAHjE,MAAM,CAAC,GAAG,CAAC,+CAEV,CACiE,CACrB,CAAA"}
1
+ {"version":3,"file":"invalidSession.js","sourceRoot":"","sources":["../../../src/DiscordGateway/Shard/invalidSession.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAEnC,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,GAAyC,EACzC,WAA2C,EAC3C,EAAE,CACF,oBAAA,oBAAA,MAAM,CAAC,GAAG,CAAC,+CAEV,EACM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAa,CAAC,CAAC,CAAC,oBAAA,WAAW,EAAK,sBAAY,CAAC,CAAC,CAAC,EAC3D,GAAsB,EAAE,CAAC,gBAAA,EAAE,CAAC,SAAS,CAAC,CAAA"}
@@ -1,3 +1,3 @@
1
1
  import { Stream, Discord, Maybe, Ref } from "dfx/_common";
2
2
  export declare const opCode: <R, E>(source: import("../../_common.js").Stream<R, E, import("../../types.js").GatewayPayload<any>>) => <T = any>(code: Discord.GatewayOpcode) => import("../../_common.js").Stream<R, E, import("../../types.js").GatewayPayload<T>>;
3
- export declare const latest: <T>(f: (p: Discord.GatewayPayload) => import("../../index.js").Maybe<T>) => import("../../_common.js").Effect<never, never, readonly [import("../../_common.js").Ref<import("../../index.js").Maybe<T>>, (p: import("../../types.js").GatewayPayload<any>) => import("../../_common.js").Effect<never, never, void>]>;
3
+ export declare const latest: <T>(f: (p: Discord.GatewayPayload) => import("../../_common.js").Maybe<T>) => import("../../_common.js").Effect<never, never, readonly [import("../../_common.js").Ref<import("../../_common.js").Maybe<T>>, (p: import("../../types.js").GatewayPayload<any>) => import("../../_common.js").Effect<never, never, void>]>;
@@ -1,9 +1,9 @@
1
1
  import * as tsplus_module_1 from "@effect/stream/Stream";
2
2
  import * as tsplus_module_2 from "@effect/io/Effect";
3
- import * as tsplus_module_3 from "@fp-ts/data/Option";
3
+ import * as tsplus_module_3 from "@fp-ts/core/Option";
4
4
  import * as tsplus_module_4 from "@effect/io/Ref";
5
- import * as tsplus_module_5 from "@fp-ts/data/Function";
6
- export const opCode = (source) => (code) => tsplus_module_1.filter((p) => p.op === code)(source);
7
- const maybeUpdateRef = (f, ref) => tsplus_module_5.flow(f, (o) => tsplus_module_3.match(tsplus_module_2.unit, (a) => tsplus_module_4.set(ref, tsplus_module_3.some(a)))(o));
8
- export const latest = (f) => tsplus_module_2.map((ref) => [ref, maybeUpdateRef(f, ref)])(tsplus_module_4.make(tsplus_module_3.none));
5
+ import * as tsplus_module_5 from "@fp-ts/core/Function";
6
+ export const opCode = (source) => (code) => tsplus_module_1.filter(source, (p) => p.op === code);
7
+ const maybeUpdateRef = (f, ref) => tsplus_module_5.flow(f, o => tsplus_module_3.match(tsplus_module_2.unit, a => tsplus_module_4.set(ref, tsplus_module_3.some(a)))(o));
8
+ export const latest = (f) => tsplus_module_2.map(tsplus_module_4.make(tsplus_module_3.none()), ref => [ref, maybeUpdateRef(f, ref)]);
9
9
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/DiscordGateway/Shard/utils.ts"],"names":[],"mappings":";;;;;AAAA,MAAM,CAAC,MAAM,MAAM,GACjB,CAAO,MAA4C,EAAE,EAAE,CACvD,CAAU,IAA2B,EAAE,EAAE,CACvC,uBAAc,CAAC,CAAC,EAAkC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,EAAlE,MAAM,CAA6D,CAAA;AAEvE,MAAM,cAAc,GAAG,CACrB,CAA0C,EAC1C,GAAkB,EAClB,EAAE,CAAC,gBAAA,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,4CAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAA,GAAG,EAAK,qBAAW,CAAC,CAAC,CAAC,EAAlD,CAAC,CAAkD,CAAC,CAAA;AAExE,MAAM,CAAC,MAAM,MAAM,GAAG,CAAI,CAA0C,EAAE,EAAE,CACtE,oBACE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAU,EADjD,0CAA8B,CAE7B,CAAA"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/DiscordGateway/Shard/utils.ts"],"names":[],"mappings":";;;;;AAAA,MAAM,CAAC,MAAM,MAAM,GACjB,CAAO,MAA4C,EAAE,EAAE,CACvD,CAAU,IAA2B,EAAE,EAAE,CACvC,uBAAA,MAAM,EAAQ,CAAC,CAAC,EAAkC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAA;AAEvE,MAAM,cAAc,GAAG,CACrB,CAA0C,EAC1C,GAAkB,EAClB,EAAE,CAAC,gBAAA,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,4CAAqB,CAAC,CAAC,EAAE,CAAC,oBAAA,GAAG,EAAK,qBAAW,CAAC,CAAC,CAAC,EAAhD,CAAC,CAAgD,CAAC,CAAA;AAEpE,MAAM,CAAC,MAAM,MAAM,GAAG,CAAI,CAA0C,EAAE,EAAE,CACtE,oBAAA,qBAAmB,sBAAY,CAAC,EAC9B,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAU,CAC9C,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import * as tsplus_module_1 from "dfx/_common";
2
- import * as tsplus_module_2 from "@fp-ts/data/Option";
2
+ import * as tsplus_module_2 from "@fp-ts/core/Option";
3
3
  import * as tsplus_module_3 from "@effect/io/Effect";
4
4
  import * as tsplus_module_4 from "@effect/io/Layer";
5
5
  export const ShardStore = tsplus_module_1.Tag();
@@ -9,13 +9,13 @@ const memoryStore = () => {
9
9
  return {
10
10
  claimId: ({ totalCount }) => tsplus_module_3.sync(() => {
11
11
  if (currentId >= totalCount) {
12
- return tsplus_module_2.none;
12
+ return tsplus_module_2.none();
13
13
  }
14
14
  const id = currentId;
15
15
  currentId++;
16
16
  return tsplus_module_2.some(id);
17
17
  }),
18
- allClaimed: (totalCount) => tsplus_module_3.sync(() => currentId >= totalCount),
18
+ allClaimed: totalCount => tsplus_module_3.sync(() => currentId >= totalCount),
19
19
  };
20
20
  };
21
21
  export const LiveMemoryShardStore = tsplus_module_4.sync(ShardStore, memoryStore);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/DiscordGateway/ShardStore/index.ts"],"names":[],"mappings":";;;;AAUA,MAAM,CAAC,MAAM,UAAU,GAAG,gBAAA,GAAG,EAAc,CAAA;AAE3C,wDAAwD;AACxD,MAAM,WAAW,GAAG,GAAe,EAAE;IACnC,IAAI,SAAS,GAAG,CAAC,CAAA;IAEjB,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAC1B,qBAAY,GAAG,EAAE;YACf,IAAI,SAAS,IAAI,UAAU,EAAE;gBAC3B,4BAAiB;aAClB;YAED,MAAM,EAAE,GAAG,SAAS,CAAA;YACpB,SAAS,EAAE,CAAA;YACX,OAAO,qBAAW,EAAE,CAAC,CAAA;QACvB,CAAC,CAAC;QAEJ,UAAU,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,qBAAY,GAAG,EAAE,CAAC,SAAS,IAAI,UAAU,CAAC;KACvE,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,qBAAW,UAAU,EAAE,WAAW,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/DiscordGateway/ShardStore/index.ts"],"names":[],"mappings":";;;;AAUA,MAAM,CAAC,MAAM,UAAU,GAAG,gBAAA,GAAG,EAAc,CAAA;AAE3C,wDAAwD;AACxD,MAAM,WAAW,GAAG,GAAe,EAAE;IACnC,IAAI,SAAS,GAAG,CAAC,CAAA;IAEjB,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAC1B,qBAAY,GAAG,EAAE;YACf,IAAI,SAAS,IAAI,UAAU,EAAE;gBAC3B,OAAO,sBAAY,CAAA;aACpB;YAED,MAAM,EAAE,GAAG,SAAS,CAAA;YACpB,SAAS,EAAE,CAAA;YACX,OAAO,qBAAW,EAAE,CAAC,CAAA;QACvB,CAAC,CAAC;QAEJ,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,qBAAY,GAAG,EAAE,CAAC,SAAS,IAAI,UAAU,CAAC;KACrE,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,qBAAW,UAAU,EAAE,WAAW,CAAC,CAAA"}
@@ -2,30 +2,27 @@ import * as tsplus_module_1 from "@effect/stream/Stream";
2
2
  import * as tsplus_module_2 from "dfx/gateway";
3
3
  import * as tsplus_module_3 from "@effect/io/Effect";
4
4
  import * as tsplus_module_4 from "@effect/stream/GroupBy";
5
- import * as tsplus_module_5 from "@fp-ts/data/Duration";
6
- import * as tsplus_module_6 from "@fp-ts/data/Option";
5
+ import * as tsplus_module_5 from "@effect/data/Duration";
6
+ import * as tsplus_module_6 from "@fp-ts/core/Option";
7
7
  import * as tsplus_module_7 from "dfx";
8
8
  import * as tsplus_module_8 from "dfx/_common";
9
9
  import * as tsplus_module_9 from "@effect/io/Layer";
10
- import { millis } from "@fp-ts/data/Duration";
10
+ import { millis } from "@effect/data/Duration";
11
11
  import { ShardStore } from "../ShardStore/index.js";
12
- const make = tsplus_module_3.flatMap(store => tsplus_module_3.flatMap(rest => tsplus_module_3.flatMap(({ gateway: config }) => tsplus_module_3.flatMap(limiter => {
12
+ const make = tsplus_module_3.flatMap(tsplus_module_3.service(ShardStore), store => tsplus_module_3.flatMap(tsplus_module_3.service(tsplus_module_7.DiscordREST), rest => tsplus_module_3.flatMap(tsplus_module_3.service(tsplus_module_7.DiscordConfig.DiscordConfig), ({ gateway: config }) => tsplus_module_3.flatMap(tsplus_module_3.service(tsplus_module_7.RateLimiter), limiter => {
13
13
  const configs = (totalCount) => {
14
- const claimId = (sharderCount) => tsplus_module_3.flatMap((a) => tsplus_module_6.match(() => tsplus_module_3.delay(tsplus_module_5.minutes(3))(claimId(sharderCount)), (id) => tsplus_module_3.succeed(id))(a))(store
14
+ const claimId = (sharderCount) => tsplus_module_3.flatMap(store
15
15
  .claimId({
16
16
  totalCount,
17
17
  sharderCount,
18
- }));
19
- return tsplus_module_1.map((id) => ({
18
+ }), a => tsplus_module_6.match(() => tsplus_module_3.delay(claimId(sharderCount), tsplus_module_5.minutes(3)), id => tsplus_module_3.succeed(id))(a));
19
+ return tsplus_module_1.map(tsplus_module_1.unfoldEffect(0, sharderCount => tsplus_module_3.map(claimId(sharderCount), id => tsplus_module_6.some([id, sharderCount + 1]))), id => ({
20
20
  id,
21
21
  totalCount,
22
- }))(tsplus_module_1.unfoldEffect(0, (sharderCount) => tsplus_module_3.map((id) => tsplus_module_6.some([id, sharderCount + 1]))(claimId(sharderCount))));
22
+ }));
23
23
  };
24
- return tsplus_module_3.flatMap(gateway => tsplus_module_3.map(shards => ({ shards }))(tsplus_module_1.broadcastDynamic(1)(tsplus_module_1.flatMap((shard) => tsplus_module_1.merge(tsplus_module_1.drain(tsplus_module_1.fromEffect(shard.run)))(tsplus_module_1.succeed(shard)))(tsplus_module_4.evaluate((key, shardConfig) => tsplus_module_1.mapEffect((c) => tsplus_module_2.Shard.make([c.id, c.totalCount]))(tsplus_module_1.tap(() => limiter.maybeWait(`dfx.sharder.${key}`, millis(config.identifyRateLimit[0]), config.identifyRateLimit[1]))(shardConfig)))(tsplus_module_1.groupBy((c) => tsplus_module_3.succeed([c.id % c.concurrency, c]))(tsplus_module_1.map((config) => ({
25
- ...config,
26
- url: gateway.url,
27
- concurrency: gateway.session_start_limit.max_concurrency,
28
- }))(configs(config.shardCount ?? gateway.shards))))))))(tsplus_module_3.catchAll(() => tsplus_module_3.succeed({
24
+ return tsplus_module_3.flatMap(tsplus_module_3.catchAll(tsplus_module_3.flatMap(rest
25
+ .getGatewayBot(), r => r.json), () => tsplus_module_3.succeed({
29
26
  url: "wss://gateway.discord.gg/",
30
27
  shards: 1,
31
28
  session_start_limit: {
@@ -34,9 +31,12 @@ const make = tsplus_module_3.flatMap(store => tsplus_module_3.flatMap(rest => ts
34
31
  reset_after: 0,
35
32
  max_concurrency: 1,
36
33
  },
37
- }))(tsplus_module_3.flatMap((r) => r.json)(rest
38
- .getGatewayBot())));
39
- })(tsplus_module_3.service(tsplus_module_7.RateLimiter)))(tsplus_module_3.service(tsplus_module_7.DiscordConfig.DiscordConfig)))(tsplus_module_3.service(tsplus_module_7.DiscordREST)))(tsplus_module_3.service(ShardStore));
34
+ })), gateway => tsplus_module_3.map(tsplus_module_1.broadcastDynamic(tsplus_module_1.flatMap(tsplus_module_4.evaluate(tsplus_module_1.groupBy(tsplus_module_1.map(configs(config.shardCount ?? gateway.shards), config => ({
35
+ ...config,
36
+ url: gateway.url,
37
+ concurrency: gateway.session_start_limit.max_concurrency,
38
+ })), c => tsplus_module_3.succeed([c.id % c.concurrency, c])), (key, shardConfig) => tsplus_module_1.mapEffect(tsplus_module_1.tap(shardConfig, () => limiter.maybeWait(`dfx.sharder.${key}`, millis(config.identifyRateLimit[0]), config.identifyRateLimit[1])), c => tsplus_module_2.Shard.make([c.id, c.totalCount]))), shard => tsplus_module_1.merge(tsplus_module_1.succeed(shard), tsplus_module_1.drain(tsplus_module_1.fromEffect(shard.run)))), 1), shards => ({ shards })));
39
+ }))));
40
40
  export const Sharder = tsplus_module_8.Tag();
41
41
  export const LiveSharder = tsplus_module_9.scoped(Sharder, make);
42
42
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/DiscordGateway/Sharder/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/DiscordGateway/Sharder/index.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import * as tsplus_module_2 from "@effect/io/Ref";
3
3
  import * as tsplus_module_3 from "@effect/stream/Stream";
4
4
  import * as tsplus_module_4 from "@effect/io/Schedule";
5
5
  import * as tsplus_module_5 from "dfx";
6
- import * as tsplus_module_6 from "@fp-ts/data/Function";
6
+ import * as tsplus_module_6 from "@fp-ts/core/Function";
7
7
  import WebSocket from "isomorphic-ws";
8
8
  export const Reconnect = Symbol();
9
9
  export class WebSocketError {
@@ -22,30 +22,30 @@ export class WebSocketCloseError {
22
22
  this.reason = reason;
23
23
  }
24
24
  }
25
- const socket = (urlRef) => tsplus_module_1.acquireRelease(tsplus_module_1.flatMap(url => {
25
+ const socket = (urlRef) => tsplus_module_1.acquireRelease(tsplus_module_1.flatMap(tsplus_module_2.get(urlRef), url => {
26
26
  const ws = new WebSocket(url);
27
- return tsplus_module_1.map(() => ws)(tsplus_module_1.async((resume) => {
27
+ return tsplus_module_1.map(tsplus_module_1.async(resume => {
28
28
  ws.addEventListener("open", () => resume(tsplus_module_1.unit()), {
29
29
  once: true,
30
30
  });
31
- }));
32
- })(tsplus_module_2.get(urlRef)), (ws) => tsplus_module_1.sync(() => {
31
+ }), () => ws);
32
+ }), ws => tsplus_module_1.sync(() => {
33
33
  ;
34
34
  ws.removeAllListeners?.();
35
35
  ws.close();
36
36
  }));
37
- const recv = (ws) => tsplus_module_3.asyncEffect((emit) => tsplus_module_1.sync(() => {
38
- ws.addEventListener("message", (message) => {
37
+ const recv = (ws) => tsplus_module_3.asyncEffect(emit => tsplus_module_1.sync(() => {
38
+ ws.addEventListener("message", message => {
39
39
  emit.single(message.data);
40
40
  });
41
- ws.addEventListener("error", (cause) => {
41
+ ws.addEventListener("error", cause => {
42
42
  emit.fail(new WebSocketError(cause));
43
43
  });
44
- ws.addEventListener("close", (e) => {
44
+ ws.addEventListener("close", e => {
45
45
  emit.fail(new WebSocketCloseError(e.code, e.reason));
46
46
  });
47
47
  }));
48
- const send = (ws, take, log) => tsplus_module_1.forever(tsplus_module_1.tap((data) => {
48
+ const send = (ws, take, log) => tsplus_module_1.forever(tsplus_module_1.tap(tsplus_module_1.tap(take, data => log.debug("WS", "send", data)), (data) => {
49
49
  if (data === Reconnect) {
50
50
  return tsplus_module_1.failSync(() => {
51
51
  ws.close(1012, "reconnecting");
@@ -55,9 +55,9 @@ const send = (ws, take, log) => tsplus_module_1.forever(tsplus_module_1.tap((dat
55
55
  return tsplus_module_1.sync(() => {
56
56
  ws.send(data);
57
57
  });
58
- })(tsplus_module_1.tap((data) => log.debug("WS", "send", data))(take)));
59
- export const make = (url, takeOutbound) => tsplus_module_6.pipe(tsplus_module_1.flatMap(log => tsplus_module_1.map(ws => {
58
+ }));
59
+ export const make = (url, takeOutbound) => tsplus_module_6.pipe(tsplus_module_1.flatMap(tsplus_module_1.service(tsplus_module_5.Log.Log), log => tsplus_module_1.map(socket(url), ws => {
60
60
  const sendEffect = send(ws, takeOutbound, log);
61
- return tsplus_module_3.retry(tsplus_module_4.recurWhile((e) => e._tag === "WebSocketCloseError" && e.code === 1012))(tsplus_module_3.merge(tsplus_module_3.fromEffect(sendEffect))(recv(ws)));
62
- })(socket(url)))(tsplus_module_1.service(tsplus_module_5.Log.Log)), tsplus_module_3.unwrapScoped);
61
+ return tsplus_module_3.retry(tsplus_module_3.merge(recv(ws), tsplus_module_3.fromEffect(sendEffect)), tsplus_module_4.recurWhile(e => e._tag === "WebSocketCloseError" && e.code === 1012));
62
+ })), tsplus_module_3.unwrapScoped);
63
63
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/DiscordGateway/WS/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/DiscordGateway/WS/index.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,11 @@
1
1
  import * as tsplus_module_1 from "@effect/stream/Stream";
2
- import * as tsplus_module_2 from "@fp-ts/data/Function";
3
- import * as tsplus_module_3 from "@effect/io/Effect";
4
- import * as tsplus_module_4 from "dfx/_common";
5
- import * as tsplus_module_5 from "@effect/io/Layer";
2
+ import * as tsplus_module_2 from "@effect/io/Effect";
3
+ import * as tsplus_module_3 from "dfx/_common";
4
+ import * as tsplus_module_4 from "@effect/io/Layer";
6
5
  import { Sharder } from "./Sharder/index.js";
7
- const fromDispatchFactory = (source) => (event) => tsplus_module_1.map((p) => p.d)(tsplus_module_1.filter((p) => p.t === event)(source));
8
- const handleDispatchFactory = (source) => (event, handle) => tsplus_module_1.runDrain(tsplus_module_2.pipe(tsplus_module_1.filter((p) => p.t === event)(source), tsplus_module_1.flatMapPar(128)((a) => tsplus_module_1.fromEffect(handle(a.d)))));
9
- export const make = tsplus_module_3.flatMap(sharder => tsplus_module_3.flatMap(raw => tsplus_module_3.map(dispatch => {
6
+ const fromDispatchFactory = (source) => (event) => tsplus_module_1.map(tsplus_module_1.filter(source, p => p.t === event), p => p.d);
7
+ const handleDispatchFactory = (source) => (event, handle) => tsplus_module_1.runDrain(tsplus_module_1.flatMapPar(tsplus_module_1.filter(source, p => p.t === event), a => tsplus_module_1.fromEffect(handle(a.d)), Number.POSITIVE_INFINITY));
8
+ export const make = tsplus_module_2.flatMap(tsplus_module_2.service(Sharder), sharder => tsplus_module_2.flatMap(tsplus_module_1.broadcastDynamic(tsplus_module_1.flatMapPar(sharder.shards, s => s.raw, Number.POSITIVE_INFINITY), 8), raw => tsplus_module_2.map(tsplus_module_1.broadcastDynamic(tsplus_module_1.flatMapPar(sharder.shards, s => s.dispatch, Number.POSITIVE_INFINITY), 8), dispatch => {
10
9
  const fromDispatch = fromDispatchFactory(dispatch);
11
10
  const handleDispatch = handleDispatchFactory(dispatch);
12
11
  return {
@@ -15,7 +14,7 @@ export const make = tsplus_module_3.flatMap(sharder => tsplus_module_3.flatMap(r
15
14
  fromDispatch,
16
15
  handleDispatch,
17
16
  };
18
- })(tsplus_module_1.broadcastDynamic(1)(tsplus_module_2.pipe(sharder.shards, tsplus_module_1.flatMapPar(1024)((s) => s.dispatch)))))(tsplus_module_1.broadcastDynamic(1)(tsplus_module_2.pipe(sharder.shards, tsplus_module_1.flatMapPar(1024)((s) => s.raw)))))(tsplus_module_3.service(Sharder));
19
- export const DiscordGateway = tsplus_module_4.Tag();
20
- export const LiveDiscordGateway = tsplus_module_5.scoped(DiscordGateway, make);
17
+ })));
18
+ export const DiscordGateway = tsplus_module_3.Tag();
19
+ export const LiveDiscordGateway = tsplus_module_4.scoped(DiscordGateway, make);
21
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/DiscordGateway/index.ts"],"names":[],"mappings":";;;;;AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAE5C,MAAM,mBAAmB,GACvB,CAAO,MAAkE,EAAE,EAAE,CAC7E,CACE,KAAQ,EACgC,EAAE,CAC1C,oBAAwC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAS,EAA1D,uBAAc,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,EAAlC,MAAM,CAA6B,CAAwB,CAAA;AAE/D,MAAM,qBAAqB,GACzB,CAAO,MAAkE,EAAE,EAAE,CAC7E,CACE,KAAQ,EACR,MAA8D,EAChC,EAAE,0BAChC,gBAAA,IAAI,CACF,uBAAc,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,EAAlC,MAAM,CAA6B,EACnC,2BAAkB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,2BAAkB,MAAM,CAAC,CAAC,CAAC,CAAQ,CAAC,CAAC,CAAC,CACrE,CAAS,CAAA;AAEd,MAAM,CAAC,MAAM,IAAI,2BACT,OAAO,4BACP,GAAG,wBAMH,QAAQ;IAMd,MAAM,YAAY,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAA;IAClD,MAAM,cAAc,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAA;IAEtD,OAAO;QACL,GAAG;QACH,QAAQ;QACR,YAAY;QACZ,cAAc;KACf,CAAA;GAbC,iCAGmB,CAAC,EAHpB,gBAAA,IAAI,CACF,OAAO,CAAC,MAAM,EACd,2BAAkB,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAC3C,CAAoB,GATrB,iCAGmB,CAAC,EAHpB,gBAAA,IAAI,CACF,OAAO,CAAC,MAAM,EACd,2BAAkB,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CACtC,CAAoB,GALL,wBAAe,OAAO,CAAC,CAsBzC,CAAA;AAGF,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAA,GAAG,EAAkB,CAAA;AACnD,MAAM,CAAC,MAAM,kBAAkB,GAAG,uBAAa,cAAc,EAAE,IAAI,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/DiscordGateway/index.ts"],"names":[],"mappings":";;;;AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAE5C,MAAM,mBAAmB,GACvB,CAAO,MAAkE,EAAE,EAAE,CAC7E,CACE,KAAQ,EACgC,EAAE,CAC1C,oBAAA,uBAAA,MAAM,EAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,EAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAS,CAAC,CAAA;AAE3D,MAAM,qBAAqB,GACzB,CAAO,MAAkE,EAAE,EAAE,CAC7E,CACE,KAAQ,EACR,MAA8D,EAChC,EAAE,0BAChC,2BAAA,uBAAA,MAAM,EACI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,EAEzB,CAAC,CAAC,EAAE,CAAC,2BAAkB,MAAM,CAAC,CAAC,CAAC,CAAQ,CAAC,CAAC,EAC1C,MAAM,CAAC,iBAAiB,CACzB,CAAS,CAAA;AAEhB,MAAM,CAAC,MAAM,IAAI,2BACG,wBAAe,OAAO,CAAC,EAAnC,OAAO,4BAEX,iCAAA,2BAAA,OAAO,CAAC,MAAM,EACA,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,iBAAiB,CAAC,EAC/B,CAAC,CAAC,EAHlB,GAAG,wBAMP,iCAAA,2BAAA,OAAO,CAAC,MAAM,EACA,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,iBAAiB,CAAC,EACpC,CAAC,CAAC,EAHlB,QAAQ;IAKd,MAAM,YAAY,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAA;IAClD,MAAM,cAAc,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAA;IAEtD,OAAO;QACL,GAAG;QACH,QAAQ;QACR,YAAY;QACZ,cAAc;KACf,CAAA;IACD,CAAA;AAGF,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAA,GAAG,EAAkB,CAAA;AACnD,MAAM,CAAC,MAAM,kBAAkB,GAAG,uBAAa,cAAc,EAAE,IAAI,CAAC,CAAA"}
@@ -1,50 +1,50 @@
1
1
  import * as tsplus_module_1 from "dfx/_common";
2
2
  import * as tsplus_module_2 from "@effect/io/Effect";
3
- import * as tsplus_module_3 from "@fp-ts/data/Duration";
4
- import * as tsplus_module_4 from "@fp-ts/data/Option";
3
+ import * as tsplus_module_3 from "@effect/data/Duration";
4
+ import * as tsplus_module_4 from "@fp-ts/core/Option";
5
5
  import * as tsplus_module_5 from "@effect/io/Config/Secret";
6
- import * as tsplus_module_6 from "@fp-ts/data/HashSet";
6
+ import * as tsplus_module_6 from "@effect/data/HashSet";
7
7
  import * as tsplus_module_7 from "@effect/io/Ref";
8
8
  import * as tsplus_module_8 from "dfx";
9
9
  import * as tsplus_module_9 from "@effect/io/Layer";
10
- import { millis } from "@fp-ts/data/Duration";
10
+ import { millis } from "@effect/data/Duration";
11
11
  import Pkg from "../package.json" assert { type: "json" };
12
12
  import { rateLimitFromHeaders, retryAfter, routeFromConfig } from "./utils.js";
13
- const make = tsplus_module_2.flatMap(http => tsplus_module_2.flatMap(({ token, rest }) => tsplus_module_2.flatMap(log => tsplus_module_2.flatMap(store => tsplus_module_2.flatMap(({ maybeWait }) => {
13
+ const make = tsplus_module_2.flatMap(tsplus_module_2.service(tsplus_module_8.Http), http => tsplus_module_2.flatMap(tsplus_module_2.service(tsplus_module_8.DiscordConfig.DiscordConfig), ({ token, rest }) => tsplus_module_2.flatMap(tsplus_module_2.service(tsplus_module_8.Log.Log), log => tsplus_module_2.flatMap(tsplus_module_2.service(tsplus_module_8.RateLimitStore), store => tsplus_module_2.flatMap(tsplus_module_2.service(tsplus_module_8.RateLimiter), ({ maybeWait }) => {
14
14
  const globalRateLimit = maybeWait("dfx.rest.global", rest.globalRateLimit.window, rest.globalRateLimit.limit);
15
- return tsplus_module_2.map(badRoutesRef => {
15
+ return tsplus_module_2.map(tsplus_module_7.make(tsplus_module_6.empty()), badRoutesRef => {
16
16
  const addBadRoute = (route) => tsplus_module_2.collectAllParDiscard([
17
17
  log.info("DiscordREST", "addBadRoute", route),
18
- tsplus_module_7.update(badRoutesRef, (s) => tsplus_module_6.add(route)(s)),
18
+ tsplus_module_7.update(badRoutesRef, s => tsplus_module_6.add(s, route)),
19
19
  store.incrementCounter("dfx.rest.invalid", tsplus_module_3.minutes(10).millis, 10000),
20
20
  ]);
21
- const isBadRoute = (route) => tsplus_module_2.map((s) => tsplus_module_6.has(route)(s))(tsplus_module_7.get(badRoutesRef));
22
- const removeBadRoute = (route) => tsplus_module_7.update(badRoutesRef, (s) => tsplus_module_6.remove(route)(s));
23
- const invalidRateLimit = (route) => tsplus_module_2.asUnit(tsplus_module_2.tap((invalid) => invalid
21
+ const isBadRoute = (route) => tsplus_module_2.map(tsplus_module_7.get(badRoutesRef), s => tsplus_module_6.has(s, route));
22
+ const removeBadRoute = (route) => tsplus_module_7.update(badRoutesRef, s => tsplus_module_6.remove(s, route));
23
+ const invalidRateLimit = (route) => tsplus_module_2.asUnit(tsplus_module_2.tap(isBadRoute(route), invalid => invalid
24
24
  ? maybeWait("dfx.rest.invalid", tsplus_module_3.minutes(10), 10000)
25
- : tsplus_module_2.unit())(isBadRoute(route)));
25
+ : tsplus_module_2.unit()));
26
26
  // Request rate limiting
27
27
  const requestRateLimit = (path, init) => (() => {
28
28
  const route = routeFromConfig(path, init);
29
- return tsplus_module_2.flatMap(maybeBucket => {
29
+ return tsplus_module_2.flatMap(store.getBucketForRoute(route), maybeBucket => {
30
30
  const bucket = tsplus_module_4.getOrElse(() => ({
31
31
  key: `?.${route}`,
32
32
  resetAfter: 5000,
33
33
  limit: 1,
34
34
  }))(maybeBucket);
35
35
  const resetAfter = millis(bucket.resetAfter);
36
- return tsplus_module_2.flatMap(() => tsplus_module_2.map(() => void 0)(maybeWait(`dfx.rest.${bucket.key}`, resetAfter, bucket.limit)))(invalidRateLimit(route));
37
- })(store.getBucketForRoute(route));
36
+ return tsplus_module_2.flatMap(invalidRateLimit(route), () => tsplus_module_2.map(maybeWait(`dfx.rest.${bucket.key}`, resetAfter, bucket.limit), () => void 0));
37
+ });
38
38
  })();
39
39
  // Update rate limit buckets
40
40
  const updateBuckets = (path, init, response) => tsplus_module_2.ignore((() => {
41
41
  const route = routeFromConfig(path, init);
42
- return tsplus_module_2.flatMap(({ bucket, retryAfter, limit, remaining }) => {
42
+ return tsplus_module_2.flatMap(tsplus_module_2.fromOption(rateLimitFromHeaders(response.headers)), ({ bucket, retryAfter, limit, remaining }) => {
43
43
  const effectsToRun = [
44
44
  removeBadRoute(route),
45
45
  store.putBucketRoute(route, bucket),
46
46
  ];
47
- return tsplus_module_2.flatMap(hasBucket => {
47
+ return tsplus_module_2.flatMap(store.hasBucket(bucket), hasBucket => {
48
48
  if (!hasBucket || limit - 1 === remaining) {
49
49
  effectsToRun.push(store.removeCounter(`dfx.rest.?.${route}`), store.putBucket({
50
50
  key: bucket,
@@ -52,35 +52,35 @@ const make = tsplus_module_2.flatMap(http => tsplus_module_2.flatMap(({ token, r
52
52
  limit: !hasBucket && remaining > 0 ? remaining : limit,
53
53
  }));
54
54
  }
55
- return tsplus_module_2.map(() => void 0)(tsplus_module_2.collectAllParDiscard(effectsToRun));
56
- })(store.hasBucket(bucket));
57
- })(tsplus_module_2.fromOption(rateLimitFromHeaders(response.headers)));
55
+ return tsplus_module_2.map(tsplus_module_2.collectAllParDiscard(effectsToRun), () => void 0);
56
+ });
57
+ });
58
58
  })());
59
- const request = (path, init = {}) => tsplus_module_2.catchTag("StatusCodeError", (e) => {
59
+ const request = (path, init = {}) => tsplus_module_2.catchTag(tsplus_module_2.flatMap(requestRateLimit(path, init), () => tsplus_module_2.flatMap(globalRateLimit, () => tsplus_module_2.flatMap(http.requestWithJson(`${rest.baseUrl}${path}`, {
60
+ ...init,
61
+ headers: {
62
+ ...(init?.headers ?? {}),
63
+ Authorization: `Bot ${tsplus_module_5.value(token)}`,
64
+ "User-Agent": `DiscordBot (https://github.com/tim-smart/dfx, ${Pkg.version})`,
65
+ },
66
+ }), response => tsplus_module_2.map(updateBuckets(path, init, response.response), () => response)))), "StatusCodeError", e => {
60
67
  switch (e.code) {
61
68
  case 403:
62
- return tsplus_module_2.flatMap(() => tsplus_module_2.fail(e))(tsplus_module_2.collectAllParDiscard([
69
+ return tsplus_module_2.flatMap(tsplus_module_2.collectAllParDiscard([
63
70
  log.info("DiscordREST", "403", path),
64
71
  addBadRoute(routeFromConfig(path, init)),
65
72
  updateBuckets(path, init, e.response),
66
- ]));
73
+ ]), () => tsplus_module_2.fail(e));
67
74
  case 429:
68
- return tsplus_module_2.flatMap(() => request(path, init))(tsplus_module_2.collectAllParDiscard([
75
+ return tsplus_module_2.flatMap(tsplus_module_2.collectAllParDiscard([
69
76
  log.info("DiscordREST", "429", path),
70
77
  addBadRoute(routeFromConfig(path, init)),
71
78
  updateBuckets(path, init, e.response),
72
79
  tsplus_module_2.sleep(tsplus_module_4.getOrElse(() => tsplus_module_3.seconds(5))(retryAfter(e.response.headers))),
73
- ]));
80
+ ]), () => request(path, init));
74
81
  }
75
82
  return tsplus_module_2.fail(e);
76
- })(tsplus_module_2.flatMap(() => tsplus_module_2.flatMap(() => tsplus_module_2.flatMap(response => tsplus_module_2.map(() => response)(updateBuckets(path, init, response.response)))(http.requestWithJson(`${rest.baseUrl}${path}`, {
77
- ...init,
78
- headers: {
79
- ...(init?.headers ?? {}),
80
- Authorization: `Bot ${tsplus_module_5.value(token)}`,
81
- "User-Agent": `DiscordBot (https://github.com/tim-smart/dfx, ${Pkg.version})`,
82
- },
83
- })))(globalRateLimit))(requestRateLimit(path, init)));
83
+ });
84
84
  const routes = tsplus_module_1.Discord.createRoutes(({ method, url, params, options = {}, }) => {
85
85
  const hasBody = method !== "GET" && method !== "DELETE";
86
86
  let hasFormData = typeof options?.body?.append === "function";
@@ -115,8 +115,8 @@ const make = tsplus_module_2.flatMap(http => tsplus_module_2.flatMap(({ token, r
115
115
  });
116
116
  });
117
117
  return { request, ...routes };
118
- })(tsplus_module_7.make(tsplus_module_6.empty()));
119
- })(tsplus_module_2.service(tsplus_module_8.RateLimiter)))(tsplus_module_2.service(tsplus_module_8.RateLimitStore)))(tsplus_module_2.service(tsplus_module_8.Log.Log)))(tsplus_module_2.service(tsplus_module_8.DiscordConfig.DiscordConfig)))(tsplus_module_2.service(tsplus_module_8.Http));
118
+ });
119
+ })))));
120
120
  export const DiscordREST = tsplus_module_1.Tag();
121
121
  export const LiveDiscordREST = tsplus_module_9.effect(DiscordREST, make);
122
122
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/DiscordREST/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/DiscordREST/index.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  export declare const routeFromConfig: (path: string, init: RequestInit) => string;
2
- export declare const numberHeader: (headers: Headers) => (key: string) => import("../index.js").Maybe<number>;
3
- export declare const retryAfter: (headers: Headers) => import("../index.js").Maybe<import("../_common.js").Duration>;
4
- export declare const rateLimitFromHeaders: (headers: Headers) => import("../index.js").Maybe<{
5
- readonly bucket: string;
6
- readonly retryAfter: import("../_common.js").Duration;
7
- readonly limit: number;
8
- readonly remaining: number;
2
+ export declare const numberHeader: (headers: Headers) => (key: string) => import("../_common.js").Maybe<number>;
3
+ export declare const retryAfter: (headers: Headers) => import("../_common.js").Maybe<import("../_common.js").Duration>;
4
+ export declare const rateLimitFromHeaders: (headers: Headers) => import("../_common.js").Maybe<{
5
+ bucket: string;
6
+ retryAfter: import("../_common.js").Duration;
7
+ limit: number;
8
+ remaining: number;
9
9
  }>;
10
10
  export type RateLimitDetails = ReturnType<typeof rateLimitFromHeaders>;
@@ -1,5 +1,5 @@
1
- import * as tsplus_module_1 from "@fp-ts/data/Option";
2
- import * as tsplus_module_2 from "@fp-ts/data/Duration";
1
+ import * as tsplus_module_1 from "@fp-ts/core/Option";
2
+ import * as tsplus_module_2 from "@effect/data/Duration";
3
3
  const majorResources = ["channels", "guilds", "webhooks"];
4
4
  export const routeFromConfig = (path, init) => {
5
5
  const method = (init?.method ?? "get").toLowerCase();
@@ -11,7 +11,7 @@ export const routeFromConfig = (path, init) => {
11
11
  .replace(/\/reactions\/(.*)/, "/reactions");
12
12
  return `${method}-${routeURL}`;
13
13
  };
14
- export const numberHeader = (headers) => (key) => tsplus_module_1.filter((n) => !isNaN(n))(tsplus_module_1.map(parseFloat)(tsplus_module_1.fromNullable(headers.get(key))));
14
+ export const numberHeader = (headers) => (key) => tsplus_module_1.filter(n => !isNaN(n))(tsplus_module_1.map(parseFloat)(tsplus_module_1.fromNullable(headers.get(key))));
15
15
  export const retryAfter = (headers) => tsplus_module_1.map(tsplus_module_2.seconds)(tsplus_module_1.catchAll(() => numberHeader(headers)("retry-after"))(numberHeader(headers)("x-ratelimit-reset-after")));
16
16
  export const rateLimitFromHeaders = (headers) => tsplus_module_1.struct({
17
17
  bucket: tsplus_module_1.fromNullable(headers.get("x-ratelimit-bucket")),
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/DiscordREST/utils.ts"],"names":[],"mappings":";;AAAA,MAAM,cAAc,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAU,CAAA;AAElE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,IAAiB,EAAE,EAAE;IACjE,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAA;IAEpD,uBAAuB;IACvB,MAAM,QAAQ,GAAG,IAAI;SAClB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACb,OAAO,CAAC,iCAAiC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAC9D,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,CAC3D;QACD,kBAAkB;SACjB,OAAO,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAA;IAE7C,OAAO,GAAG,MAAM,IAAI,QAAQ,EAAE,CAAA;AAChC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAgB,EAAE,EAAE,CAAC,CAAC,GAAW,EAAE,EAAE,CAChE,uBAEU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAF1B,oBACO,UAAU,EADjB,6BAAmB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAClB,CACS,CAAA;AAE7B,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAgB,EAAE,EAAE,CAC7C,6CAAA,yBACY,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,EADtD,YAAY,CAAC,OAAO,CAAC,CAAC,yBAAyB,CAAC,CACO,CAC/B,CAAA;AAE1B,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,OAAgB,EAAE,EAAE,CACvD,uBAAa;IACX,MAAM,EAAE,6BAAmB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAC7D,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC;IAC/B,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,mBAAmB,CAAC;IACjD,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,uBAAuB,CAAC;CAC1D,CAAC,CAAA"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/DiscordREST/utils.ts"],"names":[],"mappings":";;AAAA,MAAM,cAAc,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAU,CAAA;AAElE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,IAAiB,EAAE,EAAE;IACjE,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAA;IAEpD,uBAAuB;IACvB,MAAM,QAAQ,GAAG,IAAI;SAClB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACb,OAAO,CAAC,iCAAiC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAC9D,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,CAC3D;QACD,kBAAkB;SACjB,OAAO,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAA;IAE7C,OAAO,GAAG,MAAM,IAAI,QAAQ,EAAE,CAAA;AAChC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAgB,EAAE,EAAE,CAAC,CAAC,GAAW,EAAE,EAAE,CAChE,uBAEU,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAFxB,oBACO,UAAU,EADjB,6BAAmB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAClB,CACO,CAAA;AAE3B,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAgB,EAAE,EAAE,CAC7C,6CAAA,yBACY,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,EADtD,YAAY,CAAC,OAAO,CAAC,CAAC,yBAAyB,CAAC,CACO,CAC/B,CAAA;AAE1B,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,OAAgB,EAAE,EAAE,CACvD,uBAAa;IACX,MAAM,EAAE,6BAAmB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAC7D,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC;IAC/B,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,mBAAmB,CAAC;IACjD,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,uBAAuB,CAAC;CAC1D,CAAC,CAAA"}