dfx 0.90.0 → 0.90.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/Cache.d.ts.map +1 -1
- package/Cache.js +4 -4
- package/Cache.js.map +1 -1
- package/DiscordGateway/DiscordWS.d.ts.map +1 -1
- package/DiscordGateway/DiscordWS.js +2 -2
- package/DiscordGateway/DiscordWS.js.map +1 -1
- package/DiscordGateway/Shard.d.ts.map +1 -1
- package/DiscordGateway/Shard.js +24 -10
- package/DiscordGateway/Shard.js.map +1 -1
- package/DiscordGateway/Sharder.d.ts.map +1 -1
- package/DiscordGateway/Sharder.js +1 -1
- package/DiscordGateway/Sharder.js.map +1 -1
- package/Interactions/gateway.d.ts.map +1 -1
- package/Interactions/gateway.js +1 -1
- package/Interactions/gateway.js.map +1 -1
- package/mjs/Cache.mjs +4 -4
- package/mjs/Cache.mjs.map +1 -1
- package/mjs/DiscordGateway/DiscordWS.mjs +2 -2
- package/mjs/DiscordGateway/DiscordWS.mjs.map +1 -1
- package/mjs/DiscordGateway/Shard.mjs +24 -10
- package/mjs/DiscordGateway/Shard.mjs.map +1 -1
- package/mjs/DiscordGateway/Sharder.mjs +1 -1
- package/mjs/DiscordGateway/Sharder.mjs.map +1 -1
- package/mjs/Interactions/gateway.mjs +1 -1
- package/mjs/Interactions/gateway.mjs.map +1 -1
- package/mjs/utils/Effect.mjs +2 -2
- package/mjs/utils/Effect.mjs.map +1 -1
- package/mjs/version.mjs +1 -1
- package/package.json +4 -4
- package/src/Cache.ts +4 -0
- package/src/DiscordGateway/DiscordWS.ts +2 -0
- package/src/DiscordGateway/Shard.ts +16 -5
- package/src/DiscordGateway/Sharder.ts +1 -0
- package/src/Interactions/gateway.ts +1 -0
- package/src/utils/Effect.ts +2 -0
- package/src/version.ts +1 -1
- package/utils/Effect.d.ts.map +1 -1
- package/utils/Effect.js +2 -2
- package/utils/Effect.js.map +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/DiscordGateway/WS.d.ts +0 -38
- package/DiscordGateway/WS.d.ts.map +0 -1
- package/DiscordGateway/WS.js +0 -115
- package/DiscordGateway/WS.js.map +0 -1
- package/mjs/DiscordGateway/WS.mjs +0 -104
- package/mjs/DiscordGateway/WS.mjs.map +0 -1
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import { GenericTag } from "effect/Context";
|
|
2
|
-
import { identity, pipe } from "effect/Function";
|
|
3
|
-
import * as Effect from "effect/Effect";
|
|
4
|
-
import * as Layer from "effect/Layer";
|
|
5
|
-
import * as Queue from "effect/Queue";
|
|
6
|
-
import * as Ref from "effect/Ref";
|
|
7
|
-
import WebSocket from "isomorphic-ws";
|
|
8
|
-
import * as Schedule from "effect/Schedule";
|
|
9
|
-
export const Reconnect = /*#__PURE__*/Symbol();
|
|
10
|
-
export class WebSocketError {
|
|
11
|
-
reason;
|
|
12
|
-
error;
|
|
13
|
-
_tag = "WebSocketError";
|
|
14
|
-
constructor(reason, error) {
|
|
15
|
-
this.reason = reason;
|
|
16
|
-
this.error = error;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
export class WebSocketCloseError {
|
|
20
|
-
code;
|
|
21
|
-
reason;
|
|
22
|
-
_tag = "WebSocketCloseError";
|
|
23
|
-
constructor(code, reason) {
|
|
24
|
-
this.code = code;
|
|
25
|
-
this.reason = reason;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
const isReconnect = e => e._tag === "WebSocketCloseError" && e.code === 1012;
|
|
29
|
-
const socket = urlRef => pipe(Ref.get(urlRef), Effect.map(_ => new WebSocket(_)), Effect.acquireRelease(ws => Effect.sync(() => {
|
|
30
|
-
// eslint-disable-next-line no-extra-semi
|
|
31
|
-
;
|
|
32
|
-
ws.removeAllListeners?.();
|
|
33
|
-
ws.close();
|
|
34
|
-
})));
|
|
35
|
-
const offer = (ws, queue) => Effect.async(resume => {
|
|
36
|
-
ws.addEventListener("message", message => {
|
|
37
|
-
Queue.unsafeOffer(queue, message.data);
|
|
38
|
-
});
|
|
39
|
-
ws.addEventListener("error", cause => {
|
|
40
|
-
resume(Effect.fail(new WebSocketError("error", cause)));
|
|
41
|
-
});
|
|
42
|
-
ws.addEventListener("close", e => {
|
|
43
|
-
resume(Effect.fail(new WebSocketCloseError(e.code, e.reason)));
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
const waitForOpen = (ws, timeout) => Effect.timeoutFail(Effect.suspend(() => {
|
|
47
|
-
if (ws.readyState === WebSocket.OPEN) {
|
|
48
|
-
return Effect.unit;
|
|
49
|
-
}
|
|
50
|
-
return Effect.async(resume => {
|
|
51
|
-
ws.addEventListener("open", () => resume(Effect.unit), {
|
|
52
|
-
once: true
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
}), {
|
|
56
|
-
onTimeout: () => new WebSocketError("open-timeout"),
|
|
57
|
-
duration: timeout
|
|
58
|
-
});
|
|
59
|
-
const send = (ws, take) => pipe(take, Effect.tap(data => Effect.logTrace(data)), Effect.tap(data => {
|
|
60
|
-
if (data === Reconnect) {
|
|
61
|
-
return Effect.failSync(() => {
|
|
62
|
-
ws.close(1012, "reconnecting");
|
|
63
|
-
return new WebSocketCloseError(1012, "reconnecting");
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
return Effect.sync(() => {
|
|
67
|
-
ws.send(data);
|
|
68
|
-
});
|
|
69
|
-
}), Effect.forever, Effect.annotateLogs("method", "send"));
|
|
70
|
-
const wsImpl = {
|
|
71
|
-
connect: ({
|
|
72
|
-
onConnecting = Effect.unit,
|
|
73
|
-
openTimeout = "3 seconds",
|
|
74
|
-
reconnectWhen,
|
|
75
|
-
takeOutbound,
|
|
76
|
-
urlRef
|
|
77
|
-
}) => Effect.gen(function* (_) {
|
|
78
|
-
const scope = yield* _(Effect.scope);
|
|
79
|
-
const queue = yield* _(Effect.acquireRelease(Queue.unbounded(), Queue.shutdown));
|
|
80
|
-
const take = Effect.annotateLogs(Effect.tap(Queue.take(queue), data => Effect.logTrace(data)), {
|
|
81
|
-
package: "dfx",
|
|
82
|
-
module: "DiscordGateway/WS",
|
|
83
|
-
method: "take"
|
|
84
|
-
});
|
|
85
|
-
const run = pipe(onConnecting, Effect.zipRight(socket(urlRef)), Effect.flatMap(ws => Effect.all([offer(ws, queue), Effect.zipRight(waitForOpen(ws, openTimeout), send(ws, takeOutbound))], {
|
|
86
|
-
concurrency: "unbounded",
|
|
87
|
-
discard: true
|
|
88
|
-
})), Effect.scoped, Effect.retry({
|
|
89
|
-
while: isReconnect
|
|
90
|
-
}), reconnectWhen ? Effect.retry({
|
|
91
|
-
while: reconnectWhen
|
|
92
|
-
}) : identity, Effect.catchAllCause(Effect.logError), Effect.repeat(Schedule.exponential("500 millis").pipe(Schedule.union(Schedule.spaced("30 seconds")))), Effect.forkIn(scope));
|
|
93
|
-
yield* _(run);
|
|
94
|
-
return {
|
|
95
|
-
take
|
|
96
|
-
};
|
|
97
|
-
}).pipe(Effect.annotateLogs({
|
|
98
|
-
package: "dfx",
|
|
99
|
-
module: "DiscordGateway/WS"
|
|
100
|
-
}))
|
|
101
|
-
};
|
|
102
|
-
export const WS = /*#__PURE__*/GenericTag("dfx/DiscordGateway/WS");
|
|
103
|
-
export const WSLive = /*#__PURE__*/Layer.succeed(WS, wsImpl);
|
|
104
|
-
//# sourceMappingURL=WS.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WS.mjs","names":["GenericTag","identity","pipe","Effect","Layer","Queue","Ref","WebSocket","Schedule","Reconnect","Symbol","WebSocketError","reason","error","_tag","constructor","WebSocketCloseError","code","isReconnect","e","socket","urlRef","get","map","_","acquireRelease","ws","sync","removeAllListeners","close","offer","queue","async","resume","addEventListener","message","unsafeOffer","data","cause","fail","waitForOpen","timeout","timeoutFail","suspend","readyState","OPEN","unit","once","onTimeout","duration","send","take","tap","logTrace","failSync","forever","annotateLogs","wsImpl","connect","onConnecting","openTimeout","reconnectWhen","takeOutbound","gen","scope","unbounded","shutdown","package","module","method","run","zipRight","flatMap","all","concurrency","discard","scoped","retry","while","catchAllCause","logError","repeat","exponential","union","spaced","forkIn","WS","WSLive","succeed"],"sources":["../../src/DiscordGateway/WS.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAU,QAAQ,gBAAgB;AAE3C,SAASC,QAAQ,EAAEC,IAAI,QAAQ,iBAAiB;AAChD,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,GAAG,MAAM,YAAY;AACjC,OAAOC,SAAS,MAAM,eAAe;AAErC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAE3C,OAAO,MAAMC,SAAS,gBAAGC,MAAM,EAAE;AAIjC,OAAM,MAAOC,cAAc;EAGdC,MAAA;EACAC,KAAA;EAHFC,IAAI,GAAG,gBAAgB;EAChCC,YACWH,MAAgC,EAChCC,KAAe;IADf,KAAAD,MAAM,GAANA,MAAM;IACN,KAAAC,KAAK,GAALA,KAAK;EACb;;AAGL,OAAM,MAAOG,mBAAmB;EAGnBC,IAAA;EACAL,MAAA;EAHFE,IAAI,GAAG,qBAAqB;EACrCC,YACWE,IAAY,EACZL,MAAc;IADd,KAAAK,IAAI,GAAJA,IAAI;IACJ,KAAAL,MAAM,GAANA,MAAM;EACd;;AAGL,MAAMM,WAAW,GACfC,CAAuC,IAEvCA,CAAC,CAACL,IAAI,KAAK,qBAAqB,IAAIK,CAAC,CAACF,IAAI,KAAK,IAAI;AAErD,MAAMG,MAAM,GAAIC,MAAuB,IACrCnB,IAAI,CACFI,GAAG,CAACgB,GAAG,CAACD,MAAM,CAAC,EACflB,MAAM,CAACoB,GAAG,CAACC,CAAC,IAAI,IAAIjB,SAAS,CAACiB,CAAC,CAAgC,CAAC,EAChErB,MAAM,CAACsB,cAAc,CAACC,EAAE,IACtBvB,MAAM,CAACwB,IAAI,CAAC,MAAK;EACf;EACA;EAAED,EAAU,CAACE,kBAAkB,GAAE,CAAE;EACnCF,EAAE,CAACG,KAAK,EAAE;AACZ,CAAC,CAAC,CACH,CACF;AAEH,MAAMC,KAAK,GAAGA,CACZJ,EAAwB,EACxBK,KAAoC,KAEpC5B,MAAM,CAAC6B,KAAK,CAA8CC,MAAM,IAAG;EACjEP,EAAE,CAACQ,gBAAgB,CAAC,SAAS,EAAEC,OAAO,IAAG;IACvC9B,KAAK,CAAC+B,WAAW,CAACL,KAAK,EAAEI,OAAO,CAACE,IAAI,CAAC;EACxC,CAAC,CAAC;EAEFX,EAAE,CAACQ,gBAAgB,CAAC,OAAO,EAAEI,KAAK,IAAG;IACnCL,MAAM,CAAC9B,MAAM,CAACoC,IAAI,CAAC,IAAI5B,cAAc,CAAC,OAAO,EAAE2B,KAAK,CAAC,CAAC,CAAC;EACzD,CAAC,CAAC;EAEFZ,EAAE,CAACQ,gBAAgB,CAAC,OAAO,EAAEf,CAAC,IAAG;IAC/Bc,MAAM,CAAC9B,MAAM,CAACoC,IAAI,CAAC,IAAIvB,mBAAmB,CAACG,CAAC,CAACF,IAAI,EAAEE,CAAC,CAACP,MAAM,CAAC,CAAC,CAAC;EAChE,CAAC,CAAC;AACJ,CAAC,CAAC;AAEJ,MAAM4B,WAAW,GAAGA,CAClBd,EAAwB,EACxBe,OAA+B,KAE/BtC,MAAM,CAACuC,WAAW,CAChBvC,MAAM,CAACwC,OAAO,CAAC,MAAK;EAClB,IAAIjB,EAAE,CAACkB,UAAU,KAAKrC,SAAS,CAACsC,IAAI,EAAE;IACpC,OAAO1C,MAAM,CAAC2C,IAAI;EACpB;EAEA,OAAO3C,MAAM,CAAC6B,KAAK,CAAOC,MAAM,IAAG;IACjCP,EAAE,CAACQ,gBAAgB,CAAC,MAAM,EAAE,MAAMD,MAAM,CAAC9B,MAAM,CAAC2C,IAAI,CAAC,EAAE;MACrDC,IAAI,EAAE;KACP,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC,EACF;EACEC,SAAS,EAAEA,CAAA,KAAM,IAAIrC,cAAc,CAAC,cAAc,CAAC;EACnDsC,QAAQ,EAAER;CACX,CACF;AAEH,MAAMS,IAAI,GAAGA,CAACxB,EAAwB,EAAEyB,IAA4B,KAClEjD,IAAI,CACFiD,IAAI,EACJhD,MAAM,CAACiD,GAAG,CAACf,IAAI,IAAIlC,MAAM,CAACkD,QAAQ,CAAChB,IAAI,CAAC,CAAC,EACzClC,MAAM,CAACiD,GAAG,CAACf,IAAI,IAAG;EAChB,IAAIA,IAAI,KAAK5B,SAAS,EAAE;IACtB,OAAON,MAAM,CAACmD,QAAQ,CAAC,MAAK;MAC1B5B,EAAE,CAACG,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC;MAC9B,OAAO,IAAIb,mBAAmB,CAAC,IAAI,EAAE,cAAc,CAAC;IACtD,CAAC,CAAC;EACJ;EAEA,OAAOb,MAAM,CAACwB,IAAI,CAAC,MAAK;IACtBD,EAAE,CAACwB,IAAI,CAACb,IAAI,CAAC;EACf,CAAC,CAAC;AACJ,CAAC,CAAC,EACFlC,MAAM,CAACoD,OAAO,EACdpD,MAAM,CAACqD,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CACtC;AAEH,MAAMC,MAAM,GAAG;EACbC,OAAO,EAAEA,CAAC;IACRC,YAAY,GAAGxD,MAAM,CAAC2C,IAAI;IAC1Bc,WAAW,GAAG,WAAW;IACzBC,aAAa;IACbC,YAAY;IACZzC;EAAM,CAOP,KACClB,MAAM,CAAC4D,GAAG,CAAC,WAAWvC,CAAC;IACrB,MAAMwC,KAAK,GAAG,OAAOxC,CAAC,CAACrB,MAAM,CAAC6D,KAAK,CAAC;IACpC,MAAMjC,KAAK,GAAG,OAAOP,CAAC,CACpBrB,MAAM,CAACsB,cAAc,CACnBpB,KAAK,CAAC4D,SAAS,EAAkB,EACjC5D,KAAK,CAAC6D,QAAQ,CACf,CACF;IACD,MAAMf,IAAI,GAAGhD,MAAM,CAACqD,YAAY,CAC9BrD,MAAM,CAACiD,GAAG,CAAC/C,KAAK,CAAC8C,IAAI,CAACpB,KAAK,CAAC,EAAEM,IAAI,IAAIlC,MAAM,CAACkD,QAAQ,CAAChB,IAAI,CAAC,CAAC,EAC5D;MACE8B,OAAO,EAAE,KAAK;MACdC,MAAM,EAAE,mBAAmB;MAC3BC,MAAM,EAAE;KACT,CACF;IAED,MAAMC,GAAG,GAAGpE,IAAI,CACdyD,YAAY,EACZxD,MAAM,CAACoE,QAAQ,CAACnD,MAAM,CAACC,MAAM,CAAC,CAAC,EAC/BlB,MAAM,CAACqE,OAAO,CAAC9C,EAAE,IACfvB,MAAM,CAACsE,GAAG,CACR,CACE3C,KAAK,CAACJ,EAAE,EAAEK,KAAK,CAAC,EAChB5B,MAAM,CAACoE,QAAQ,CACb/B,WAAW,CAACd,EAAE,EAAEkC,WAAW,CAAC,EAC5BV,IAAI,CAACxB,EAAE,EAAEoC,YAAY,CAAC,CACvB,CACF,EACD;MAAEY,WAAW,EAAE,WAAW;MAAEC,OAAO,EAAE;IAAI,CAAE,CAC5C,CACF,EACDxE,MAAM,CAACyE,MAAM,EACbzE,MAAM,CAAC0E,KAAK,CAAC;MAAEC,KAAK,EAAE5D;IAAW,CAAE,CAAC,EACpC2C,aAAa,GAAG1D,MAAM,CAAC0E,KAAK,CAAC;MAAEC,KAAK,EAAEjB;IAAa,CAAE,CAAC,GAAG5D,QAAQ,EACjEE,MAAM,CAAC4E,aAAa,CAAC5E,MAAM,CAAC6E,QAAQ,CAAC,EACrC7E,MAAM,CAAC8E,MAAM,CACXzE,QAAQ,CAAC0E,WAAW,CAAC,YAAY,CAAC,CAAChF,IAAI,CACrCM,QAAQ,CAAC2E,KAAK,CAAC3E,QAAQ,CAAC4E,MAAM,CAAC,YAAY,CAAC,CAAC,CAC9C,CACF,EACDjF,MAAM,CAACkF,MAAM,CAACrB,KAAK,CAAC,CACrB;IAED,OAAOxC,CAAC,CAAC8C,GAAG,CAAC;IAEb,OAAO;MAAEnB;IAAI,CAAW;EAC1B,CAAC,CAAC,CAACjD,IAAI,CACLC,MAAM,CAACqD,YAAY,CAAC;IAClBW,OAAO,EAAE,KAAK;IACdC,MAAM,EAAE;GACT,CAAC;CAEE;AAKV,OAAO,MAAMkB,EAAE,gBAAGtF,UAAU,CAAoB,uBAAuB,CAAC;AACxE,OAAO,MAAMuF,MAAM,gBAAGnF,KAAK,CAACoF,OAAO,CAACF,EAAE,EAAE7B,MAAM,CAAC","ignoreList":[]}
|