dfx 0.61.1 → 0.61.3
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.
- package/DiscordGateway/DiscordWS.d.ts +1 -1
- package/DiscordGateway/Shard/heartbeats.d.ts.map +1 -1
- package/DiscordGateway/Shard/heartbeats.js +8 -9
- package/DiscordGateway/Shard/heartbeats.js.map +1 -1
- package/DiscordGateway/Shard.d.ts +2 -2
- package/DiscordGateway/Sharder.d.ts +2 -2
- package/DiscordGateway/Sharder.js +1 -1
- package/DiscordGateway/Sharder.js.map +1 -1
- package/DiscordGateway.d.ts +1 -1
- package/Interactions/gateway.d.ts +1 -1
- package/gateway.d.ts +1 -1
- package/mjs/DiscordGateway/Shard/heartbeats.mjs +8 -9
- package/mjs/DiscordGateway/Shard/heartbeats.mjs.map +1 -1
- package/mjs/DiscordGateway/Sharder.mjs +1 -1
- package/mjs/DiscordGateway/Sharder.mjs.map +1 -1
- package/mjs/utils/Effect.mjs +7 -15
- package/mjs/utils/Effect.mjs.map +1 -1
- package/mjs/version.mjs +1 -1
- package/package.json +2 -2
- package/src/DiscordGateway/Shard/heartbeats.ts +19 -24
- package/src/DiscordGateway/Sharder.ts +1 -1
- package/src/utils/Effect.ts +28 -30
- package/src/version.ts +1 -1
- package/utils/Effect.d.ts +0 -3
- package/utils/Effect.d.ts.map +1 -1
- package/utils/Effect.js +7 -15
- package/utils/Effect.js.map +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/webhooks.d.ts +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<
|
|
23
|
+
declare const make: Effect.Effect<WS | DiscordWSCodec, 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>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heartbeats.d.ts","sourceRoot":"","sources":["../../src/DiscordGateway/Shard/heartbeats.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAC7C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AACzC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AAErC,OAAO,KAAK,KAAK,SAAS,MAAM,8BAA8B,CAAA;AAG9D,OAAO,KAAK,KAAK,OAAO,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"heartbeats.d.ts","sourceRoot":"","sources":["../../src/DiscordGateway/Shard/heartbeats.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAC7C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AACzC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AAErC,OAAO,KAAK,KAAK,SAAS,MAAM,8BAA8B,CAAA;AAG9D,OAAO,KAAK,KAAK,OAAO,MAAM,WAAW,CAAA;AAmBzC,eAAO,MAAM,IAAI,WACP,MAAM,OAAO,CAAC,QAAQ,cAAc,CAAC,QACvC,MAAM,OAAO,CAAC,QAAQ,cAAc,CAAC,UACnC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,YAC5B,UAAU,OAAO,KAAK,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,sCA6BlE,CAAA"}
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.send = void 0;
|
|
7
|
-
var
|
|
7
|
+
var Duration = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/data/Duration"));
|
|
8
8
|
var Option = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/data/Option"));
|
|
9
9
|
var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/io/Effect"));
|
|
10
10
|
var Queue = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/io/Queue"));
|
|
@@ -15,16 +15,15 @@ var _WS = /*#__PURE__*/require("dfx/DiscordGateway/WS");
|
|
|
15
15
|
var EffectU = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/utils/Effect"));
|
|
16
16
|
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); }
|
|
17
17
|
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; }
|
|
18
|
-
const payload =
|
|
19
|
-
const payloadOrReconnect = (ref, seqRef) => Effect.flatMap(Ref.get(ref), acked => acked ? payload(
|
|
20
|
-
const send = (hellos, acks, seqRef, send) => Effect.
|
|
21
|
-
const
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
return yield* _(Effect.all([run, heartbeats], {
|
|
18
|
+
const payload = seqRef => Effect.map(Ref.get(seqRef), seq => SendEvents.heartbeat(Option.getOrNull(seq)));
|
|
19
|
+
const payloadOrReconnect = (ref, seqRef) => Effect.flatMap(Ref.get(ref), acked => acked ? payload(seqRef) : Effect.succeed(_WS.Reconnect));
|
|
20
|
+
const send = (hellos, acks, seqRef, send) => Effect.flatMap(Ref.make(true), ackedRef => {
|
|
21
|
+
const heartbeats = EffectU.foreverSwitch(Effect.zipLeft(Queue.take(hellos), Ref.set(ackedRef, true)), p => payloadOrReconnect(ackedRef, seqRef).pipe(Effect.zipLeft(Ref.set(ackedRef, false)), Effect.tap(send), Effect.schedule(Schedule.andThen(Schedule.duration(Duration.millis(p.d.heartbeat_interval * Math.random())), Schedule.spaced(Duration.millis(p.d.heartbeat_interval))))));
|
|
22
|
+
const run = Queue.take(acks).pipe(Effect.zipLeft(Ref.set(ackedRef, true)), Effect.forever);
|
|
23
|
+
return Effect.all([run, heartbeats], {
|
|
25
24
|
concurrency: "unbounded",
|
|
26
25
|
discard: true
|
|
27
|
-
})
|
|
26
|
+
});
|
|
28
27
|
});
|
|
29
28
|
exports.send = send;
|
|
30
29
|
//# sourceMappingURL=heartbeats.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heartbeats.js","names":["
|
|
1
|
+
{"version":3,"file":"heartbeats.js","names":["Duration","_interopRequireWildcard","require","Option","Effect","Queue","Ref","Schedule","SendEvents","_WS","EffectU","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","payload","seqRef","map","seq","heartbeat","getOrNull","payloadOrReconnect","ref","flatMap","acked","succeed","Reconnect","send","hellos","acks","make","ackedRef","heartbeats","foreverSwitch","zipLeft","take","p","pipe","tap","schedule","andThen","duration","millis","d","heartbeat_interval","Math","random","spaced","run","forever","all","concurrency","discard","exports"],"sources":["../../src/DiscordGateway/Shard/heartbeats.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -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<
|
|
12
|
+
export declare const make: Effect.Effect<DiscordConfig | RateLimiter | Log | 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<RateLimiter | Log | 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<import("dfx/RateLimit").RateLimitStore | Log | import("dfx/DiscordGateway/DiscordWS").DiscordWSCodec
|
|
22
|
+
export declare const LiveShard: Layer.Layer<DiscordConfig | import("dfx/RateLimit").RateLimitStore | Log | 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
|
|
@@ -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<
|
|
15
|
+
declare const make: Effect.Effect<DiscordConfig | RateLimiter | DiscordREST | ShardStore | Shard, 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<
|
|
22
|
+
export declare const LiveSharder: Layer.Layer<DiscordConfig | import("../Log").Log | import("dfx/RateLimit").RateLimitStore | DiscordREST | ShardStore | import("./DiscordWS").DiscordWSCodec, never, Sharder>;
|
|
23
23
|
export {};
|
|
24
24
|
//# sourceMappingURL=Sharder.d.ts.map
|
|
@@ -20,7 +20,7 @@ var _DiscordREST = /*#__PURE__*/require("dfx/DiscordREST");
|
|
|
20
20
|
var _RateLimit = /*#__PURE__*/require("dfx/RateLimit");
|
|
21
21
|
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); }
|
|
22
22
|
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; }
|
|
23
|
-
const claimRepeatPolicy = /*#__PURE__*/Schedule.
|
|
23
|
+
const claimRepeatPolicy = /*#__PURE__*/Schedule.spaced("3 minutes").pipe( /*#__PURE__*/Schedule.whileInput(_ => _._tag === "None"), Schedule.passthrough);
|
|
24
24
|
const make = /*#__PURE__*/Effect.gen(function* (_) {
|
|
25
25
|
const store = yield* _(_ShardStore.ShardStore);
|
|
26
26
|
const rest = yield* _(_DiscordREST.DiscordREST);
|
|
@@ -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","
|
|
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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"}
|
package/DiscordGateway.d.ts
CHANGED
|
@@ -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("./
|
|
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>;
|
|
21
21
|
//# sourceMappingURL=DiscordGateway.d.ts.map
|
|
@@ -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<
|
|
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>;
|
|
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<
|
|
19
|
+
export declare const MemoryBot: Layer.Layer<DiscordConfig.DiscordConfig | Log.Log, never, RateLimiter | DiscordREST | InteractionsRegistry | DiscordGateway>;
|
|
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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as Duration from "@effect/data/Duration";
|
|
2
2
|
import * as Option from "@effect/data/Option";
|
|
3
3
|
import * as Effect from "@effect/io/Effect";
|
|
4
4
|
import * as Queue from "@effect/io/Queue";
|
|
@@ -7,15 +7,14 @@ import * as Schedule from "@effect/io/Schedule";
|
|
|
7
7
|
import * as SendEvents from "dfx/DiscordGateway/Shard/sendEvents";
|
|
8
8
|
import { Reconnect } from "dfx/DiscordGateway/WS";
|
|
9
9
|
import * as EffectU from "dfx/utils/Effect";
|
|
10
|
-
const payload =
|
|
11
|
-
const payloadOrReconnect = (ref, seqRef) => Effect.flatMap(Ref.get(ref), acked => acked ? payload(
|
|
12
|
-
export const send = (hellos, acks, seqRef, send) => Effect.
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
return yield* _(Effect.all([run, heartbeats], {
|
|
10
|
+
const payload = seqRef => Effect.map(Ref.get(seqRef), seq => SendEvents.heartbeat(Option.getOrNull(seq)));
|
|
11
|
+
const payloadOrReconnect = (ref, seqRef) => Effect.flatMap(Ref.get(ref), acked => acked ? payload(seqRef) : Effect.succeed(Reconnect));
|
|
12
|
+
export const send = (hellos, acks, seqRef, send) => Effect.flatMap(Ref.make(true), ackedRef => {
|
|
13
|
+
const heartbeats = EffectU.foreverSwitch(Effect.zipLeft(Queue.take(hellos), Ref.set(ackedRef, true)), p => payloadOrReconnect(ackedRef, seqRef).pipe(Effect.zipLeft(Ref.set(ackedRef, false)), Effect.tap(send), Effect.schedule(Schedule.andThen(Schedule.duration(Duration.millis(p.d.heartbeat_interval * Math.random())), Schedule.spaced(Duration.millis(p.d.heartbeat_interval))))));
|
|
14
|
+
const run = Queue.take(acks).pipe(Effect.zipLeft(Ref.set(ackedRef, true)), Effect.forever);
|
|
15
|
+
return Effect.all([run, heartbeats], {
|
|
17
16
|
concurrency: "unbounded",
|
|
18
17
|
discard: true
|
|
19
|
-
})
|
|
18
|
+
});
|
|
20
19
|
});
|
|
21
20
|
//# sourceMappingURL=heartbeats.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heartbeats.mjs","names":["
|
|
1
|
+
{"version":3,"file":"heartbeats.mjs","names":["Duration","Option","Effect","Queue","Ref","Schedule","SendEvents","Reconnect","EffectU","payload","seqRef","map","get","seq","heartbeat","getOrNull","payloadOrReconnect","ref","flatMap","acked","succeed","send","hellos","acks","make","ackedRef","heartbeats","foreverSwitch","zipLeft","take","set","p","pipe","tap","schedule","andThen","duration","millis","d","heartbeat_interval","Math","random","spaced","run","forever","all","concurrency","discard"],"sources":["../../../src/DiscordGateway/Shard/heartbeats.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,QAAQ,MAAM,uBAAuB;AACjD,OAAO,KAAKC,MAAM,MAAM,qBAAqB;AAC7C,OAAO,KAAKC,MAAM,MAAM,mBAAmB;AAC3C,OAAO,KAAKC,KAAK,MAAM,kBAAkB;AACzC,OAAO,KAAKC,GAAG,MAAM,gBAAgB;AACrC,OAAO,KAAKC,QAAQ,MAAM,qBAAqB;AAE/C,OAAO,KAAKC,UAAU,MAAM,qCAAqC;AACjE,SAASC,SAAS,QAAQ,uBAAuB;AAEjD,OAAO,KAAKC,OAAO,MAAM,kBAAkB;AAE3C,MAAMC,OAAO,GAAIC,MAAsC,IACrDR,MAAM,CAACS,GAAG,CACRP,GAAG,CAACQ,GAAG,CAACF,MAAM,CAAC,EACfG,GAAG,IAAIP,UAAU,CAACQ,SAAS,CAACb,MAAM,CAACc,SAAS,CAACF,GAAG,CAAC,CAAC,CACnD;AAEH,MAAMG,kBAAkB,GAAGA,CACzBC,GAAqB,EACrBP,MAAsC,KAEtCR,MAAM,CAACgB,OAAO,CACZd,GAAG,CAACQ,GAAG,CAACK,GAAG,CAAC,EACXE,KAAK,IACJA,KAAK,GAAGV,OAAO,CAACC,MAAM,CAAC,GAAGR,MAAM,CAACkB,OAAO,CAACb,SAAS,CAAC,CACtD;AAEH,OAAO,MAAMc,IAAI,GAAGA,CAClBC,MAA6C,EAC7CC,IAA2C,EAC3Cb,MAAsC,EACtCW,IAAoE,KAEpEnB,MAAM,CAACgB,OAAO,CAACd,GAAG,CAACoB,IAAI,CAAC,IAAI,CAAC,EAAEC,QAAQ,IAAG;EACxC,MAAMC,UAAU,GAAGlB,OAAO,CAACmB,aAAa,CACtCzB,MAAM,CAAC0B,OAAO,CAACzB,KAAK,CAAC0B,IAAI,CAACP,MAAM,CAAC,EAAElB,GAAG,CAAC0B,GAAG,CAACL,QAAQ,EAAE,IAAI,CAAC,CAAC,EAC3DM,CAAC,IACCf,kBAAkB,CAACS,QAAQ,EAAEf,MAAM,CAAC,CAACsB,IAAI,CACvC9B,MAAM,CAAC0B,OAAO,CAACxB,GAAG,CAAC0B,GAAG,CAACL,QAAQ,EAAE,KAAK,CAAC,CAAC,EACxCvB,MAAM,CAAC+B,GAAG,CAACZ,IAAI,CAAC,EAChBnB,MAAM,CAACgC,QAAQ,CACb7B,QAAQ,CAAC8B,OAAO,CACd9B,QAAQ,CAAC+B,QAAQ,CACfpC,QAAQ,CAACqC,MAAM,CAACN,CAAC,CAACO,CAAE,CAACC,kBAAkB,GAAGC,IAAI,CAACC,MAAM,EAAE,CAAC,CACzD,EACDpC,QAAQ,CAACqC,MAAM,CAAC1C,QAAQ,CAACqC,MAAM,CAACN,CAAC,CAACO,CAAE,CAACC,kBAAkB,CAAC,CAAC,CAC1D,CACF,CACF,CACJ;EAED,MAAMI,GAAG,GAAGxC,KAAK,CAAC0B,IAAI,CAACN,IAAI,CAAC,CAACS,IAAI,CAC/B9B,MAAM,CAAC0B,OAAO,CAACxB,GAAG,CAAC0B,GAAG,CAACL,QAAQ,EAAE,IAAI,CAAC,CAAC,EACvCvB,MAAM,CAAC0C,OAAO,CACf;EAED,OAAO1C,MAAM,CAAC2C,GAAG,CAAC,CAACF,GAAG,EAAEjB,UAAU,CAAC,EAAE;IACnCoB,WAAW,EAAE,WAAW;IACxBC,OAAO,EAAE;GACV,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -12,7 +12,7 @@ import { LiveShard, Shard } from "dfx/DiscordGateway/Shard";
|
|
|
12
12
|
import { ShardStore } from "dfx/DiscordGateway/ShardStore";
|
|
13
13
|
import { DiscordREST } from "dfx/DiscordREST";
|
|
14
14
|
import { LiveRateLimiter, RateLimiter } from "dfx/RateLimit";
|
|
15
|
-
const claimRepeatPolicy = /*#__PURE__*/Schedule.
|
|
15
|
+
const claimRepeatPolicy = /*#__PURE__*/Schedule.spaced("3 minutes").pipe( /*#__PURE__*/Schedule.whileInput(_ => _._tag === "None"), Schedule.passthrough);
|
|
16
16
|
const make = /*#__PURE__*/Effect.gen(function* (_) {
|
|
17
17
|
const store = yield* _(ShardStore);
|
|
18
18
|
const rest = yield* _(DiscordREST);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sharder.mjs","names":["Chunk","Tag","Duration","HashSet","Deferred","Effect","Layer","Ref","Schedule","DiscordConfig","LiveShard","Shard","ShardStore","DiscordREST","LiveRateLimiter","RateLimiter","claimRepeatPolicy","
|
|
1
|
+
{"version":3,"file":"Sharder.mjs","names":["Chunk","Tag","Duration","HashSet","Deferred","Effect","Layer","Ref","Schedule","DiscordConfig","LiveShard","Shard","ShardStore","DiscordREST","LiveRateLimiter","RateLimiter","claimRepeatPolicy","spaced","pipe","whileInput","_","_tag","passthrough","make","gen","store","rest","gateway","config","limiter","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","get","Sharder","LiveSharder","provide","merge","effect"],"sources":["../../src/DiscordGateway/Sharder.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,oBAAoB;AAC3C,SAASC,GAAG,QAAQ,sBAAsB;AAC1C,OAAO,KAAKC,QAAQ,MAAM,uBAAuB;AACjD,OAAO,KAAKC,OAAO,MAAM,sBAAsB;AAE/C,OAAO,KAAKC,QAAQ,MAAM,qBAAqB;AAC/C,OAAO,KAAKC,MAAM,MAAM,mBAAmB;AAE3C,OAAO,KAAKC,KAAK,MAAM,kBAAkB;AAEzC,OAAO,KAAKC,GAAG,MAAM,gBAAgB;AACrC,OAAO,KAAKC,QAAQ,MAAM,qBAAqB;AAC/C,SAASC,aAAa,QAAQ,mBAAmB;AAEjD,SAASC,SAAS,EAAEC,KAAK,QAAQ,0BAA0B;AAC3D,SAASC,UAAU,QAAQ,+BAA+B;AAE1D,SAASC,WAAW,QAAQ,iBAAiB;AAC7C,SAASC,eAAe,EAAEC,WAAW,QAAQ,eAAe;AAG5D,MAAMC,iBAAiB,gBAAGR,QAAQ,CAACS,MAAM,CAAC,WAAW,CAAC,CAACC,IAAI,eACzDV,QAAQ,CAACW,UAAU,CAAEC,CAAwB,IAAKA,CAAC,CAACC,IAAI,KAAK,MAAM,CAAC,EACpEb,QAAQ,CAACc,WAAW,CACmD;AAEzE,MAAMC,IAAI,gBAAGlB,MAAM,CAACmB,GAAG,CAAC,WAAUJ,CAAC;EACjC,MAAMK,KAAK,GAAG,OAAOL,CAAC,CAACR,UAAU,CAAC;EAClC,MAAMc,IAAI,GAAG,OAAON,CAAC,CAACP,WAAW,CAAC;EAClC,MAAM;IAAEc,OAAO,EAAEC;EAAM,CAAE,GAAG,OAAOR,CAAC,CAACX,aAAa,CAAC;EACnD,MAAMoB,OAAO,GAAG,OAAOT,CAAC,CAACL,WAAW,CAAC;EACrC,MAAMe,KAAK,GAAG,OAAOV,CAAC,CAACT,KAAK,CAAC;EAC7B,MAAMoB,aAAa,GAAG,OAAOX,CAAC,CAACb,GAAG,CAACgB,IAAI,CAACpB,OAAO,CAAC6B,KAAK,EAAgB,CAAC,CAAC;EAEvE,MAAMC,UAAU,GAAIC,UAAkB,IACpC7B,MAAM,CAACmB,GAAG,CAAC,WAAUJ,CAAC;IACpB,MAAMe,YAAY,GAAG,OAAOf,CAAC,CAACb,GAAG,CAACgB,IAAI,CAAC,CAAC,CAAC,CAAC;IAE1C,MAAMa,OAAO,GACXC,YAAoB,IAEpBZ,KAAK,CACFW,OAAO,CAAC;MACPF,UAAU;MACVG;KACD,CAAC,CACDnB,IAAI,CACHb,MAAM,CAACiC,MAAM,CAACtB,iBAAiB,CAAC,EAChCX,MAAM,CAACkC,GAAG,CAACnB,CAAC,IAAIA,CAAC,CAACoB,KAAK,CAAC,CACzB;IAEL,OAAOjC,GAAG,CAACkC,YAAY,CAACN,YAAY,EAAEf,CAAC,IAAIA,CAAC,GAAG,CAAC,CAAC,CAACF,IAAI,CACpDb,MAAM,CAACqC,OAAO,CAACN,OAAO,CAAC,EACvB/B,MAAM,CAACkC,GAAG,CAACI,EAAE,KAAK;MAAEA,EAAE;MAAET;IAAU,CAAY,EAAC,CAChD;EACH,CAAC,CAAC;EAEJ,MAAMP,OAAO,GAAG,OAAOP,CAAC,CACtBM,IAAI,CAACkB,aAAa,EAAE,EACpBvC,MAAM,CAACqC,OAAO,CAACG,CAAC,IAAIA,CAAC,CAACC,IAAI,CAAC,EAC3BzC,MAAM,CAAC0C,QAAQ,CAAC,MACd1C,MAAM,CAAC2C,OAAO,CAAgC;IAC5CC,GAAG,EAAE,2BAA2B;IAChCC,MAAM,EAAE,CAAC;IACTC,mBAAmB,EAAE;MACnBC,KAAK,EAAE,CAAC;MACRC,SAAS,EAAE,CAAC;MACZC,WAAW,EAAE,CAAC;MACdC,eAAe,EAAE;;GAEpB,CAAC,CACH,CACF;EAED,MAAMC,GAAG,GAAGA,CACVC,GAA0D,EAC1DC,SAAmE,KAEnErD,MAAM,CAACmB,GAAG,CAAC,WAAUJ,CAAC;IACpB,MAAMuC,QAAQ,GAAG,OAAOvC,CAAC,CACvBhB,QAAQ,CAACmB,IAAI,EAA+C,CAC7D;IACD,MAAMqC,IAAI,GAAG,OAAOxC,CAAC,CAACa,UAAU,CAACL,MAAM,CAACiC,UAAU,IAAIlC,OAAO,CAACuB,MAAM,CAAC,CAAC;IAEtE,MAAMY,OAAO,GAAGF,IAAI,CAAC1C,IAAI,CACvBb,MAAM,CAACkC,GAAG,CAACX,MAAM,KAAK;MACpB,GAAGA,MAAM;MACTqB,GAAG,EAAEtB,OAAO,CAACsB,GAAG;MAChBc,WAAW,EAAEpC,OAAO,CAACwB,mBAAmB,CAACI;KAC1C,CAAC,CAAC,EACHlD,MAAM,CAAC2D,GAAG,CAAC,CAAC;MAAED,WAAW;MAAEpB;IAAE,CAAE,KAC7Bd,OAAO,CAACoC,SAAS,CACf,eAAetB,EAAE,GAAGoB,WAAW,EAAE,EACjC7D,QAAQ,CAACgE,MAAM,CAACtC,MAAM,CAACuC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAC5CvC,MAAM,CAACuC,iBAAiB,CAAC,CAAC,CAAC,CAC5B,CACF,EACD9D,MAAM,CAACqC,OAAO,CAAC0B,CAAC,IACdtC,KAAK,CAACuC,OAAO,CAAC,CAACD,CAAC,CAACzB,EAAE,EAAEyB,CAAC,CAAClC,UAAU,CAAC,EAAEuB,GAAG,EAAEC,SAAS,CAAC,CACpD,EACDrD,MAAM,CAACqC,OAAO,CAACZ,KAAK,IAClBzB,MAAM,CAACiE,iBAAiB,CACtB/D,GAAG,CAACgE,MAAM,CAACxC,aAAa,EAAE5B,OAAO,CAACqE,GAAG,CAAC1C,KAAK,CAAC,CAAC,EAC7C,MAAMA,KAAK,CAAC0B,GAAG,EACf,MAAMjD,GAAG,CAACgE,MAAM,CAACxC,aAAa,EAAE5B,OAAO,CAACsE,MAAM,CAAC3C,KAAK,CAAC,CAAC,CACvD,CAACZ,IAAI,CACJb,MAAM,CAACqE,aAAa,CAACtD,CAAC,IAAIhB,QAAQ,CAACuE,SAAS,CAAChB,QAAQ,EAAEvC,CAAC,CAAC,CAAC,EAC1Df,MAAM,CAACuE,IAAI,CACZ,CACF,EACDvE,MAAM,CAACwE,OAAO,CACf;IAED,MAAMC,QAAQ,GAAG9E,KAAK,CAACuC,GAAG,CACxBvC,KAAK,CAAC+E,KAAK,CAAC,CAAC,EAAEpD,OAAO,CAACwB,mBAAmB,CAACI,eAAe,CAAC,EAC3D,MAAMO,OAAO,CACd;IAED,OAAO,OAAO1C,CAAC,CACbf,MAAM,CAAC2E,GAAG,CACR,CACE3E,MAAM,CAAC2E,GAAG,CAACF,QAAQ,EAAE;MAAEf,WAAW,EAAE,WAAW;MAAEkB,OAAO,EAAE;IAAI,CAAE,CAAC,EACjE7E,QAAQ,CAAC8E,KAAK,CAACvB,QAAQ,CAAC,CACzB,EACD;MAAEI,WAAW,EAAE,WAAW;MAAEkB,OAAO,EAAE;IAAI,CAAE,CACyB,CACvE;EACH,CAAC,CAAC;EAEJ,OAAO;IAAE/B,MAAM,EAAE3C,GAAG,CAAC4E,GAAG,CAACpD,aAAa,CAAC;IAAEyB;EAAG,CAAW;AACzD,CAAC,CAAC;AAGF,OAAO,MAAM4B,OAAO,gBAAGnF,GAAG,EAAW;AACrC,OAAO,MAAMoF,WAAW,gBAAG/E,KAAK,CAACgF,OAAO,eACtChF,KAAK,CAACiF,KAAK,CAACzE,eAAe,EAAEJ,SAAS,CAAC,eACvCJ,KAAK,CAACkF,MAAM,CAACJ,OAAO,EAAE7D,IAAI,CAAC,CAC5B"}
|
package/mjs/utils/Effect.mjs
CHANGED
|
@@ -1,28 +1,20 @@
|
|
|
1
|
-
import * as Option from "@effect/data/Option";
|
|
2
1
|
import * as Deferred from "@effect/io/Deferred";
|
|
3
2
|
import * as Effect from "@effect/io/Effect";
|
|
4
|
-
import * as Fiber from "@effect/io/Fiber";
|
|
5
3
|
import * as Hub from "@effect/io/Hub";
|
|
6
4
|
import * as Queue from "@effect/io/Queue";
|
|
7
|
-
import * as
|
|
5
|
+
import * as ScopedRef from "@effect/io/ScopedRef";
|
|
8
6
|
export const subscribeForEachPar = (self, effect) => Effect.flatMap(Deferred.make(), deferred => {
|
|
9
|
-
const run = Hub.subscribe(self).pipe(Effect.flatMap(queue => Queue.take(queue).pipe(Effect.flatMap(_ => effect(_).pipe(Effect.catchAllCause(_ => Deferred.failCause(deferred, _)), Effect.
|
|
7
|
+
const run = Hub.subscribe(self).pipe(Effect.flatMap(queue => Queue.take(queue).pipe(Effect.flatMap(_ => effect(_).pipe(Effect.catchAllCause(_ => Deferred.failCause(deferred, _)), Effect.forkScoped)), Effect.forever)), Effect.scoped);
|
|
10
8
|
return Effect.all([run, Deferred.await(deferred)], {
|
|
11
9
|
concurrency: "unbounded",
|
|
12
10
|
discard: true
|
|
13
|
-
})
|
|
11
|
+
});
|
|
14
12
|
});
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
*/
|
|
18
|
-
export const foreverSwitch = (self, f) => Effect.flatMap(Effect.all([Deferred.make(), Ref.make(Option.none())]), ([causeDeferred, fiberRef]) => {
|
|
19
|
-
const run = Effect.flatMap(self, _ => f(_).pipe(Effect.tapErrorCause(_ => Deferred.failCause(causeDeferred, _)), Effect.fork)).pipe(Effect.flatMap(fiber => Ref.getAndSet(fiberRef, Option.some(fiber))), Effect.tap(_ => Option.match(_, {
|
|
20
|
-
onNone: () => Effect.unit,
|
|
21
|
-
onSome: fiber => Fiber.interrupt(fiber)
|
|
22
|
-
})), Effect.forever);
|
|
13
|
+
export const foreverSwitch = (self, f) => Effect.all([Deferred.make(), ScopedRef.fromAcquire(Effect.fork(Effect.unit))]).pipe(Effect.flatMap(([causeDeferred, fiberRef]) => {
|
|
14
|
+
const run = self.pipe(Effect.flatMap(_ => ScopedRef.set(fiberRef, f(_).pipe(Effect.tapErrorCause(_ => Deferred.failCause(causeDeferred, _)), Effect.forkScoped))), Effect.forever);
|
|
23
15
|
return Effect.all([run, Deferred.await(causeDeferred)], {
|
|
24
16
|
concurrency: "unbounded",
|
|
25
17
|
discard: true
|
|
26
|
-
})
|
|
27
|
-
});
|
|
18
|
+
});
|
|
19
|
+
}), Effect.scoped);
|
|
28
20
|
//# sourceMappingURL=Effect.mjs.map
|
package/mjs/utils/Effect.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Effect.mjs","names":["
|
|
1
|
+
{"version":3,"file":"Effect.mjs","names":["Deferred","Effect","Hub","Queue","ScopedRef","subscribeForEachPar","self","effect","flatMap","make","deferred","run","subscribe","pipe","queue","take","_","catchAllCause","failCause","forkScoped","forever","scoped","all","await","concurrency","discard","foreverSwitch","f","fromAcquire","fork","unit","causeDeferred","fiberRef","set","tapErrorCause"],"sources":["../../src/utils/Effect.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,QAAQ,MAAM,qBAAqB;AAC/C,OAAO,KAAKC,MAAM,MAAM,mBAAmB;AAE3C,OAAO,KAAKC,GAAG,MAAM,gBAAgB;AACrC,OAAO,KAAKC,KAAK,MAAM,kBAAkB;AACzC,OAAO,KAAKC,SAAS,MAAM,sBAAsB;AAEjD,OAAO,MAAMC,mBAAmB,GAAGA,CACjCC,IAAgB,EAChBC,MAAwC,KAExCN,MAAM,CAACO,OAAO,CAACR,QAAQ,CAACS,IAAI,EAAY,EAAEC,QAAQ,IAAG;EACnD,MAAMC,GAAG,GAAGT,GAAG,CAACU,SAAS,CAACN,IAAI,CAAC,CAACO,IAAI,CAClCZ,MAAM,CAACO,OAAO,CAACM,KAAK,IAClBX,KAAK,CAACY,IAAI,CAACD,KAAK,CAAC,CAACD,IAAI,CACpBZ,MAAM,CAACO,OAAO,CAACQ,CAAC,IACdT,MAAM,CAACS,CAAC,CAAC,CAACH,IAAI,CACZZ,MAAM,CAACgB,aAAa,CAACD,CAAC,IAAIhB,QAAQ,CAACkB,SAAS,CAACR,QAAQ,EAAEM,CAAC,CAAC,CAAC,EAC1Df,MAAM,CAACkB,UAAU,CAClB,CACF,EACDlB,MAAM,CAACmB,OAAO,CACf,CACF,EACDnB,MAAM,CAACoB,MAAM,CACd;EAED,OAAOpB,MAAM,CAACqB,GAAG,CAAC,CAACX,GAAG,EAAEX,QAAQ,CAACuB,KAAK,CAACb,QAAQ,CAAC,CAAC,EAAE;IACjDc,WAAW,EAAE,WAAW;IACxBC,OAAO,EAAE;GACV,CAA+B;AAClC,CAAC,CAAC;AAEJ,OAAO,MAAMC,aAAa,GAAGA,CAC3BpB,IAA4B,EAC5BqB,CAAqC,KAErC1B,MAAM,CAACqB,GAAG,CAAC,CACTtB,QAAQ,CAACS,IAAI,EAAa,EAC1BL,SAAS,CAACwB,WAAW,CACnB3B,MAAM,CAAC4B,IAAI,CAAC5B,MAAM,CAAC6B,IAAI,CAAC,CACzB,CACF,CAAC,CAACjB,IAAI,CACLZ,MAAM,CAACO,OAAO,CACZ,CAAC,CAACuB,aAAa,EAAEC,QAAQ,CAAC,KAAI;EAC5B,MAAMrB,GAAG,GAAGL,IAAI,CAACO,IAAI,CACnBZ,MAAM,CAACO,OAAO,CAACQ,CAAC,IACdZ,SAAS,CAAC6B,GAAG,CACXD,QAAQ,EACRL,CAAC,CAACX,CAAC,CAAC,CAACH,IAAI,CACPZ,MAAM,CAACiC,aAAa,CAAClB,CAAC,IAAIhB,QAAQ,CAACkB,SAAS,CAACa,aAAa,EAAEf,CAAC,CAAC,CAAC,EAC/Df,MAAM,CAACkB,UAAU,CAClB,CACF,CACF,EACDlB,MAAM,CAACmB,OAAO,CACf;EAED,OAAOnB,MAAM,CAACqB,GAAG,CAAC,CAACX,GAAG,EAAEX,QAAQ,CAACuB,KAAK,CAACQ,aAAa,CAAC,CAAC,EAAE;IACtDP,WAAW,EAAE,WAAW;IACxBC,OAAO,EAAE;GACV,CAAyC;AAC5C,CAAC,CACF,EACDxB,MAAM,CAACoB,MAAM,CACd"}
|
package/mjs/version.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const LIB_VERSION = "0.61.
|
|
1
|
+
export const LIB_VERSION = "0.61.3";
|
|
2
2
|
//# sourceMappingURL=version.mjs.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dfx",
|
|
3
|
-
"version": "0.61.
|
|
3
|
+
"version": "0.61.3",
|
|
4
4
|
"description": "Effect-TS discord library",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -49,6 +49,6 @@
|
|
|
49
49
|
"discord-verify": "^1.2.0",
|
|
50
50
|
"utf-8-validate": "^6.0.3"
|
|
51
51
|
},
|
|
52
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "9132c4d987f23b0c7d89e2d5ce37e535fb075ff2",
|
|
53
53
|
"main": "./index.js"
|
|
54
54
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as Duration from "@effect/data/Duration"
|
|
2
2
|
import * as Option from "@effect/data/Option"
|
|
3
3
|
import * as Effect from "@effect/io/Effect"
|
|
4
4
|
import * as Queue from "@effect/io/Queue"
|
|
@@ -10,13 +10,10 @@ import { Reconnect } from "dfx/DiscordGateway/WS"
|
|
|
10
10
|
import type * as Discord from "dfx/types"
|
|
11
11
|
import * as EffectU from "dfx/utils/Effect"
|
|
12
12
|
|
|
13
|
-
const payload = (
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
Ref.get(seqRef).pipe(
|
|
18
|
-
Effect.map(o => SendEvents.heartbeat(Option.getOrNull(o))),
|
|
19
|
-
Effect.tap(() => Ref.set(ref, false)),
|
|
13
|
+
const payload = (seqRef: Ref.Ref<Option.Option<number>>) =>
|
|
14
|
+
Effect.map(
|
|
15
|
+
Ref.get(seqRef),
|
|
16
|
+
seq => SendEvents.heartbeat(Option.getOrNull(seq)),
|
|
20
17
|
)
|
|
21
18
|
|
|
22
19
|
const payloadOrReconnect = (
|
|
@@ -26,7 +23,7 @@ const payloadOrReconnect = (
|
|
|
26
23
|
Effect.flatMap(
|
|
27
24
|
Ref.get(ref),
|
|
28
25
|
(acked): Effect.Effect<never, never, DiscordWS.Message> =>
|
|
29
|
-
acked ? payload(
|
|
26
|
+
acked ? payload(seqRef) : Effect.succeed(Reconnect),
|
|
30
27
|
)
|
|
31
28
|
|
|
32
29
|
export const send = (
|
|
@@ -35,33 +32,31 @@ export const send = (
|
|
|
35
32
|
seqRef: Ref.Ref<Option.Option<number>>,
|
|
36
33
|
send: (p: DiscordWS.Message) => Effect.Effect<never, never, boolean>,
|
|
37
34
|
) =>
|
|
38
|
-
Effect.
|
|
39
|
-
const ackedRef = yield* _(Ref.make(true))
|
|
40
|
-
|
|
35
|
+
Effect.flatMap(Ref.make(true), ackedRef => {
|
|
41
36
|
const heartbeats = EffectU.foreverSwitch(
|
|
42
|
-
Queue.take(hellos)
|
|
37
|
+
Effect.zipLeft(Queue.take(hellos), Ref.set(ackedRef, true)),
|
|
43
38
|
p =>
|
|
44
39
|
payloadOrReconnect(ackedRef, seqRef).pipe(
|
|
40
|
+
Effect.zipLeft(Ref.set(ackedRef, false)),
|
|
45
41
|
Effect.tap(send),
|
|
46
42
|
Effect.schedule(
|
|
47
|
-
Schedule.
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
43
|
+
Schedule.andThen(
|
|
44
|
+
Schedule.duration(
|
|
45
|
+
Duration.millis(p.d!.heartbeat_interval * Math.random()),
|
|
46
|
+
),
|
|
47
|
+
Schedule.spaced(Duration.millis(p.d!.heartbeat_interval)),
|
|
51
48
|
),
|
|
52
49
|
),
|
|
53
50
|
),
|
|
54
51
|
)
|
|
55
52
|
|
|
56
53
|
const run = Queue.take(acks).pipe(
|
|
57
|
-
Effect.
|
|
54
|
+
Effect.zipLeft(Ref.set(ackedRef, true)),
|
|
58
55
|
Effect.forever,
|
|
59
56
|
)
|
|
60
57
|
|
|
61
|
-
return
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}),
|
|
66
|
-
)
|
|
58
|
+
return Effect.all([run, heartbeats], {
|
|
59
|
+
concurrency: "unbounded",
|
|
60
|
+
discard: true,
|
|
61
|
+
})
|
|
67
62
|
})
|
|
@@ -19,7 +19,7 @@ import { DiscordREST } from "dfx/DiscordREST"
|
|
|
19
19
|
import { LiveRateLimiter, RateLimiter } from "dfx/RateLimit"
|
|
20
20
|
import type * as Discord from "dfx/types"
|
|
21
21
|
|
|
22
|
-
const claimRepeatPolicy = Schedule.
|
|
22
|
+
const claimRepeatPolicy = Schedule.spaced("3 minutes").pipe(
|
|
23
23
|
Schedule.whileInput((_: Option.Option<number>) => _._tag === "None"),
|
|
24
24
|
Schedule.passthrough,
|
|
25
25
|
) as Schedule.Schedule<never, Option.Option<number>, Option.Some<number>>
|
package/src/utils/Effect.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import * as Option from "@effect/data/Option"
|
|
2
1
|
import * as Deferred from "@effect/io/Deferred"
|
|
3
2
|
import * as Effect from "@effect/io/Effect"
|
|
4
|
-
import * as Fiber from "@effect/io/Fiber"
|
|
3
|
+
import type * as Fiber from "@effect/io/Fiber"
|
|
5
4
|
import * as Hub from "@effect/io/Hub"
|
|
6
5
|
import * as Queue from "@effect/io/Queue"
|
|
7
|
-
import * as
|
|
6
|
+
import * as ScopedRef from "@effect/io/ScopedRef"
|
|
8
7
|
|
|
9
8
|
export const subscribeForEachPar = <R, E, A, X>(
|
|
10
9
|
self: Hub.Hub<A>,
|
|
@@ -17,7 +16,7 @@ export const subscribeForEachPar = <R, E, A, X>(
|
|
|
17
16
|
Effect.flatMap(_ =>
|
|
18
17
|
effect(_).pipe(
|
|
19
18
|
Effect.catchAllCause(_ => Deferred.failCause(deferred, _)),
|
|
20
|
-
Effect.
|
|
19
|
+
Effect.forkScoped,
|
|
21
20
|
)
|
|
22
21
|
),
|
|
23
22
|
Effect.forever,
|
|
@@ -29,40 +28,39 @@ export const subscribeForEachPar = <R, E, A, X>(
|
|
|
29
28
|
return Effect.all([run, Deferred.await(deferred)], {
|
|
30
29
|
concurrency: "unbounded",
|
|
31
30
|
discard: true,
|
|
32
|
-
}).
|
|
31
|
+
}) as Effect.Effect<R, E, never>
|
|
33
32
|
})
|
|
34
33
|
|
|
35
|
-
/**
|
|
36
|
-
* @tsplus fluent effect/io/Effect foreverSwitch
|
|
37
|
-
*/
|
|
38
34
|
export const foreverSwitch = <R, E, A, R1, E1, X>(
|
|
39
35
|
self: Effect.Effect<R, E, A>,
|
|
40
36
|
f: (_: A) => Effect.Effect<R1, E1, X>,
|
|
41
37
|
): Effect.Effect<R | R1, E | E1, never> =>
|
|
42
|
-
Effect.
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
Effect.
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
38
|
+
Effect.all([
|
|
39
|
+
Deferred.make<E1, never>(),
|
|
40
|
+
ScopedRef.fromAcquire<R1, never, Fiber.RuntimeFiber<unknown, unknown>>(
|
|
41
|
+
Effect.fork(Effect.unit),
|
|
42
|
+
),
|
|
43
|
+
]).pipe(
|
|
44
|
+
Effect.flatMap(
|
|
45
|
+
([causeDeferred, fiberRef]) => {
|
|
46
|
+
const run = self.pipe(
|
|
47
|
+
Effect.flatMap(_ =>
|
|
48
|
+
ScopedRef.set(
|
|
49
|
+
fiberRef,
|
|
50
|
+
f(_).pipe(
|
|
51
|
+
Effect.tapErrorCause(_ => Deferred.failCause(causeDeferred, _)),
|
|
52
|
+
Effect.forkScoped,
|
|
53
|
+
),
|
|
54
|
+
)
|
|
59
55
|
),
|
|
60
56
|
Effect.forever,
|
|
61
57
|
)
|
|
62
58
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
59
|
+
return Effect.all([run, Deferred.await(causeDeferred)], {
|
|
60
|
+
concurrency: "unbounded",
|
|
61
|
+
discard: true,
|
|
62
|
+
}) as Effect.Effect<R | R1, E | E1, never>
|
|
63
|
+
},
|
|
64
|
+
),
|
|
65
|
+
Effect.scoped,
|
|
68
66
|
)
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const LIB_VERSION = "0.61.
|
|
1
|
+
export const LIB_VERSION = "0.61.3";
|
package/utils/Effect.d.ts
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import * as Effect from "@effect/io/Effect";
|
|
2
2
|
import * as Hub from "@effect/io/Hub";
|
|
3
3
|
export declare const subscribeForEachPar: <R, E, A, X>(self: Hub.Hub<A>, effect: (_: A) => Effect.Effect<R, E, X>) => Effect.Effect<R, E, never>;
|
|
4
|
-
/**
|
|
5
|
-
* @tsplus fluent effect/io/Effect foreverSwitch
|
|
6
|
-
*/
|
|
7
4
|
export declare const foreverSwitch: <R, E, A, R1, E1, X>(self: Effect.Effect<R, E, A>, f: (_: A) => Effect.Effect<R1, E1, X>) => Effect.Effect<R | R1, E | E1, never>;
|
|
8
5
|
//# sourceMappingURL=Effect.d.ts.map
|
package/utils/Effect.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Effect.d.ts","sourceRoot":"","sources":["../src/utils/Effect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Effect.d.ts","sourceRoot":"","sources":["../src/utils/Effect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAE3C,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AAIrC,eAAO,MAAM,mBAAmB,wGAwB5B,CAAA;AAEJ,eAAO,MAAM,aAAa,mIAgCvB,CAAA"}
|
package/utils/Effect.js
CHANGED
|
@@ -4,35 +4,27 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.subscribeForEachPar = exports.foreverSwitch = void 0;
|
|
7
|
-
var Option = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/data/Option"));
|
|
8
7
|
var Deferred = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/io/Deferred"));
|
|
9
8
|
var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/io/Effect"));
|
|
10
|
-
var Fiber = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/io/Fiber"));
|
|
11
9
|
var Hub = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/io/Hub"));
|
|
12
10
|
var Queue = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/io/Queue"));
|
|
13
|
-
var
|
|
11
|
+
var ScopedRef = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/io/ScopedRef"));
|
|
14
12
|
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); }
|
|
15
13
|
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; }
|
|
16
14
|
const subscribeForEachPar = (self, effect) => Effect.flatMap(Deferred.make(), deferred => {
|
|
17
|
-
const run = Hub.subscribe(self).pipe(Effect.flatMap(queue => Queue.take(queue).pipe(Effect.flatMap(_ => effect(_).pipe(Effect.catchAllCause(_ => Deferred.failCause(deferred, _)), Effect.
|
|
15
|
+
const run = Hub.subscribe(self).pipe(Effect.flatMap(queue => Queue.take(queue).pipe(Effect.flatMap(_ => effect(_).pipe(Effect.catchAllCause(_ => Deferred.failCause(deferred, _)), Effect.forkScoped)), Effect.forever)), Effect.scoped);
|
|
18
16
|
return Effect.all([run, Deferred.await(deferred)], {
|
|
19
17
|
concurrency: "unbounded",
|
|
20
18
|
discard: true
|
|
21
|
-
})
|
|
19
|
+
});
|
|
22
20
|
});
|
|
23
|
-
/**
|
|
24
|
-
* @tsplus fluent effect/io/Effect foreverSwitch
|
|
25
|
-
*/
|
|
26
21
|
exports.subscribeForEachPar = subscribeForEachPar;
|
|
27
|
-
const foreverSwitch = (self, f) => Effect.
|
|
28
|
-
const run = Effect.flatMap(
|
|
29
|
-
onNone: () => Effect.unit,
|
|
30
|
-
onSome: fiber => Fiber.interrupt(fiber)
|
|
31
|
-
})), Effect.forever);
|
|
22
|
+
const foreverSwitch = (self, f) => Effect.all([Deferred.make(), ScopedRef.fromAcquire(Effect.fork(Effect.unit))]).pipe(Effect.flatMap(([causeDeferred, fiberRef]) => {
|
|
23
|
+
const run = self.pipe(Effect.flatMap(_ => ScopedRef.set(fiberRef, f(_).pipe(Effect.tapErrorCause(_ => Deferred.failCause(causeDeferred, _)), Effect.forkScoped))), Effect.forever);
|
|
32
24
|
return Effect.all([run, Deferred.await(causeDeferred)], {
|
|
33
25
|
concurrency: "unbounded",
|
|
34
26
|
discard: true
|
|
35
|
-
})
|
|
36
|
-
});
|
|
27
|
+
});
|
|
28
|
+
}), Effect.scoped);
|
|
37
29
|
exports.foreverSwitch = foreverSwitch;
|
|
38
30
|
//# sourceMappingURL=Effect.js.map
|
package/utils/Effect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Effect.js","names":["
|
|
1
|
+
{"version":3,"file":"Effect.js","names":["Deferred","_interopRequireWildcard","require","Effect","Hub","Queue","ScopedRef","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","subscribeForEachPar","self","effect","flatMap","make","deferred","run","subscribe","pipe","queue","take","_","catchAllCause","failCause","forkScoped","forever","scoped","all","await","concurrency","discard","exports","foreverSwitch","f","fromAcquire","fork","unit","causeDeferred","fiberRef","tapErrorCause"],"sources":["../src/utils/Effect.ts"],"sourcesContent":[null],"mappings":"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"}
|
package/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const LIB_VERSION = "0.61.
|
|
1
|
+
export declare const LIB_VERSION = "0.61.3";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/version.js
CHANGED
package/webhooks.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ import * as Log from "dfx/Log";
|
|
|
8
8
|
import type { RateLimiter } from "dfx/RateLimit";
|
|
9
9
|
export { BadWebhookSignature, makeConfigLayer, makeHandler, makeSimpleHandler, WebhookConfig, WebhookParseError, } from "dfx/Interactions/webhook";
|
|
10
10
|
export declare const MemoryRateLimit: Layer.Layer<Log.Log, never, RateLimiter>;
|
|
11
|
-
export declare const MemoryREST: Layer.Layer<
|
|
11
|
+
export declare const MemoryREST: Layer.Layer<DiscordConfig.DiscordConfig | Log.Log, never, DiscordREST>;
|
|
12
12
|
export declare const webhookLayer: (options: DiscordConfig.MakeOpts & MakeConfigOpts) => Layer.Layer<never, ConfigError.ConfigError, RateLimiter | DiscordREST | WebhookConfig>;
|
|
13
13
|
export declare const webhookLayerConfig: (config: Config.Config.Wrap<DiscordConfig.MakeOpts & MakeConfigOpts>) => Layer.Layer<never, ConfigError.ConfigError, RateLimiter | DiscordREST | WebhookConfig>;
|
|
14
14
|
//# sourceMappingURL=webhooks.d.ts.map
|