dfx 0.61.1 → 0.61.2
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.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/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/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
|
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"}
|
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.2";
|
|
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.2",
|
|
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": "5178b6ea4342980e335c9caea337d8324f06d531",
|
|
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
|
})
|
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.2";
|
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.2";
|
|
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
|