dfx 0.45.4 → 0.45.5

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.
@@ -1,4 +1,4 @@
1
- import { Effect, Discord, Hub } from "dfx/_common";
1
+ import { Maybe, Schedule, Effect, Discord, Hub } from "dfx/_common";
2
2
  import { DiscordConfig } from "dfx/DiscordConfig";
3
3
  import { DiscordREST } from "dfx/DiscordREST";
4
4
  import { RateLimiter } from "../RateLimit.js";
@@ -1,28 +1,30 @@
1
- import * as tsplus_module_1 from "dfx/_common";
2
- import * as tsplus_module_2 from "@effect/io/Effect";
3
- import * as tsplus_module_3 from "@effect/data/Chunk";
4
- import * as tsplus_module_4 from "@effect/io/Deferred";
5
- import * as tsplus_module_5 from "@effect/io/Ref";
6
- import * as tsplus_module_6 from "@effect/data/Duration";
7
- import * as tsplus_module_7 from "@effect/data/Option";
8
- import * as tsplus_module_8 from "@effect/io/Layer";
1
+ import * as tsplus_module_1 from "@effect/data/Option";
2
+ import * as tsplus_module_2 from "@effect/data/Duration";
3
+ import * as tsplus_module_3 from "@effect/io/Schedule";
4
+ import * as tsplus_module_4 from "dfx/_common";
5
+ import * as tsplus_module_5 from "@effect/io/Effect";
6
+ import * as tsplus_module_6 from "@effect/data/Chunk";
7
+ import * as tsplus_module_7 from "@effect/io/Deferred";
8
+ import * as tsplus_module_8 from "@effect/io/Ref";
9
+ import * as tsplus_module_9 from "@effect/io/Layer";
9
10
  import { millis } from "@effect/data/Duration";
10
11
  import { DiscordConfig } from "dfx/DiscordConfig";
11
12
  import { DiscordREST } from "dfx/DiscordREST";
12
13
  import { LiveRateLimiter, RateLimiter } from "../RateLimit.js";
13
14
  import { LiveShard, Shard } from "./Shard.js";
14
15
  import { ShardStore } from "./ShardStore.js";
15
- const make = tsplus_module_2.flatMap(ShardStore, store => tsplus_module_2.flatMap(DiscordREST, rest => tsplus_module_2.flatMap(DiscordConfig, ({ gateway: config }) => tsplus_module_2.flatMap(RateLimiter, limiter => tsplus_module_2.flatMap(Shard, shard => {
16
- const takeConfig = (totalCount) => tsplus_module_2.map(tsplus_module_5.make(0), currentCount => {
17
- const claimId = (sharderCount) => tsplus_module_2.flatMap(store
16
+ const claimRepeatPolicy = tsplus_module_3.passthrough(tsplus_module_3.whileInput(tsplus_module_3.fixed(tsplus_module_2.minutes(3)), (_) => tsplus_module_1.isNone(_)));
17
+ const make = tsplus_module_5.flatMap(ShardStore, store => tsplus_module_5.flatMap(DiscordREST, rest => tsplus_module_5.flatMap(DiscordConfig, ({ gateway: config }) => tsplus_module_5.flatMap(RateLimiter, limiter => tsplus_module_5.flatMap(Shard, shard => {
18
+ const takeConfig = (totalCount) => tsplus_module_5.map(tsplus_module_8.make(0), currentCount => {
19
+ const claimId = (sharderCount) => tsplus_module_5.map(tsplus_module_5.repeat(store
18
20
  .claimId({
19
21
  totalCount,
20
22
  sharderCount,
21
- }), a => tsplus_module_7.match(a, () => tsplus_module_2.delay(claimId(sharderCount), tsplus_module_6.minutes(3)), id => tsplus_module_2.succeed(id)));
22
- return tsplus_module_2.map(tsplus_module_2.flatMap(tsplus_module_5.getAndUpdate(currentCount, _ => _ + 1), claimId), id => ({ id, totalCount }));
23
+ }), claimRepeatPolicy), _ => _.value);
24
+ return tsplus_module_5.map(tsplus_module_5.flatMap(tsplus_module_8.getAndUpdate(currentCount, _ => _ + 1), claimId), id => ({ id, totalCount }));
23
25
  });
24
- return tsplus_module_2.map(tsplus_module_2.catchAll(tsplus_module_2.flatMap(rest
25
- .getGatewayBot(), r => r.json), () => tsplus_module_2.succeed({
26
+ return tsplus_module_5.map(tsplus_module_5.catchAll(tsplus_module_5.flatMap(rest
27
+ .getGatewayBot(), r => r.json), () => tsplus_module_5.succeed({
26
28
  url: "wss://gateway.discord.gg/",
27
29
  shards: 1,
28
30
  session_start_limit: {
@@ -32,18 +34,18 @@ const make = tsplus_module_2.flatMap(ShardStore, store => tsplus_module_2.flatMa
32
34
  max_concurrency: 1,
33
35
  },
34
36
  })), gateway => {
35
- const run = (hub) => tsplus_module_2.flatMap(tsplus_module_4.make(), deferred => tsplus_module_2.flatMap(takeConfig(config.shardCount ?? gateway.shards), take => {
36
- const spawner = tsplus_module_2.forever(tsplus_module_2.flatMap(tsplus_module_2.flatMap(tsplus_module_2.tap(tsplus_module_2.map(take, config => ({
37
+ const run = (hub) => tsplus_module_5.flatMap(tsplus_module_7.make(), deferred => tsplus_module_5.flatMap(takeConfig(config.shardCount ?? gateway.shards), take => {
38
+ const spawner = tsplus_module_5.forever(tsplus_module_5.flatMap(tsplus_module_5.flatMap(tsplus_module_5.tap(tsplus_module_5.map(take, config => ({
37
39
  ...config,
38
40
  url: gateway.url,
39
41
  concurrency: gateway.session_start_limit.max_concurrency,
40
- })), ({ id, concurrency }) => limiter.maybeWait(`dfx.sharder.${id % concurrency}`, millis(config.identifyRateLimit[0]), config.identifyRateLimit[1])), c => shard.connect([c.id, c.totalCount], hub)), shard => tsplus_module_2.fork(tsplus_module_2.catchAllCause(shard.run, _ => tsplus_module_4.failCause(deferred, _)))));
41
- const spawners = tsplus_module_3.map(tsplus_module_3.range(1, gateway.session_start_limit.max_concurrency), () => spawner);
42
- return tsplus_module_2.zipParLeft(tsplus_module_2.allParDiscard(spawners), tsplus_module_1.deferredAwait(deferred));
42
+ })), ({ id, concurrency }) => limiter.maybeWait(`dfx.sharder.${id % concurrency}`, millis(config.identifyRateLimit[0]), config.identifyRateLimit[1])), c => shard.connect([c.id, c.totalCount], hub)), shard => tsplus_module_5.fork(tsplus_module_5.catchAllCause(shard.run, _ => tsplus_module_7.failCause(deferred, _)))));
43
+ const spawners = tsplus_module_6.map(tsplus_module_6.range(1, gateway.session_start_limit.max_concurrency), () => spawner);
44
+ return tsplus_module_5.zipParLeft(tsplus_module_5.allParDiscard(spawners), tsplus_module_4.deferredAwait(deferred));
43
45
  }));
44
46
  return { run };
45
47
  });
46
48
  })))));
47
- export const Sharder = tsplus_module_1.Tag();
48
- export const LiveSharder = tsplus_module_8.provide(tsplus_module_2.toLayer(make, Sharder))((tsplus_module_8.merge(LiveShard)(LiveRateLimiter)));
49
+ export const Sharder = tsplus_module_4.Tag();
50
+ export const LiveSharder = tsplus_module_9.provide(tsplus_module_5.toLayer(make, Sharder))((tsplus_module_9.merge(LiveShard)(LiveRateLimiter)));
49
51
  //# sourceMappingURL=Sharder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Sharder.js","sourceRoot":"","sources":["../src/DiscordGateway/Sharder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Sharder.js","sourceRoot":"","sources":["../src/DiscordGateway/Sharder.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dfx",
3
- "version": "0.45.4",
3
+ "version": "0.45.5",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -48,5 +48,5 @@
48
48
  "ws": "^8.13.0"
49
49
  },
50
50
  "sideEffects": false,
51
- "gitHead": "31dd767b15c1b9b0dab7d57832285f0745f9db5a"
51
+ "gitHead": "bf1e0d84f67cfc5cd65c9c61c554b17e5552ba32"
52
52
  }
@@ -5,6 +5,11 @@ import { LiveRateLimiter, RateLimiter } from "../RateLimit.js"
5
5
  import { LiveShard, Shard } from "./Shard.js"
6
6
  import { ShardStore } from "./ShardStore.js"
7
7
  import { WebSocketCloseError, WebSocketError } from "./WS.js"
8
+ import { Some } from "@effect/data/Option"
9
+
10
+ const claimRepeatPolicy = Schedule.fixed(Duration.minutes(3)).whileInput(
11
+ (_: Maybe<number>) => _.isNone(),
12
+ ).passthrough as Schedule<never, Maybe<number>, Some<number>>
8
13
 
9
14
  const make = Do($ => {
10
15
  const store = $(ShardStore)
@@ -23,12 +28,8 @@ const make = Do($ => {
23
28
  totalCount,
24
29
  sharderCount,
25
30
  })
26
- .flatMap(a =>
27
- a.match(
28
- () => claimId(sharderCount).delay(Duration.minutes(3)),
29
- id => Effect.succeed(id),
30
- ),
31
- )
31
+ .repeat(claimRepeatPolicy)
32
+ .map(_ => _.value)
32
33
 
33
34
  return currentCount
34
35
  .getAndUpdate(_ => _ + 1)
package/src/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dfx",
3
- "version": "0.45.4",
3
+ "version": "0.45.5",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -48,5 +48,5 @@
48
48
  "ws": "^8.13.0"
49
49
  },
50
50
  "sideEffects": false,
51
- "gitHead": "31dd767b15c1b9b0dab7d57832285f0745f9db5a"
51
+ "gitHead": "bf1e0d84f67cfc5cd65c9c61c554b17e5552ba32"
52
52
  }