dfx 0.90.1 → 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 +2 -2
- package/DiscordGateway/Shard.d.ts.map +1 -1
- package/DiscordGateway/Shard.js +25 -11
- package/DiscordGateway/Shard.js.map +1 -1
- package/DiscordGateway/Sharder.d.ts +1 -1
- package/DiscordGateway/Sharder.d.ts.map +1 -1
- package/DiscordGateway/Sharder.js +1 -1
- package/DiscordGateway/Sharder.js.map +1 -1
- package/DiscordGateway.d.ts +1 -1
- package/DiscordREST.d.ts +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 +25 -11
- 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 +17 -6
- 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
package/DiscordGateway/WS.js
DELETED
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.WebSocketError = exports.WebSocketCloseError = exports.WSLive = exports.WS = exports.Reconnect = void 0;
|
|
7
|
-
var _Context = /*#__PURE__*/require("effect/Context");
|
|
8
|
-
var _Function = /*#__PURE__*/require("effect/Function");
|
|
9
|
-
var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
|
|
10
|
-
var Layer = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Layer"));
|
|
11
|
-
var Queue = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Queue"));
|
|
12
|
-
var Ref = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Ref"));
|
|
13
|
-
var _isomorphicWs = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("isomorphic-ws"));
|
|
14
|
-
var Schedule = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Schedule"));
|
|
15
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
17
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
18
|
-
const Reconnect = exports.Reconnect = /*#__PURE__*/Symbol();
|
|
19
|
-
class WebSocketError {
|
|
20
|
-
reason;
|
|
21
|
-
error;
|
|
22
|
-
_tag = "WebSocketError";
|
|
23
|
-
constructor(reason, error) {
|
|
24
|
-
this.reason = reason;
|
|
25
|
-
this.error = error;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
exports.WebSocketError = WebSocketError;
|
|
29
|
-
class WebSocketCloseError {
|
|
30
|
-
code;
|
|
31
|
-
reason;
|
|
32
|
-
_tag = "WebSocketCloseError";
|
|
33
|
-
constructor(code, reason) {
|
|
34
|
-
this.code = code;
|
|
35
|
-
this.reason = reason;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
exports.WebSocketCloseError = WebSocketCloseError;
|
|
39
|
-
const isReconnect = e => e._tag === "WebSocketCloseError" && e.code === 1012;
|
|
40
|
-
const socket = urlRef => (0, _Function.pipe)(Ref.get(urlRef), Effect.map(_ => new _isomorphicWs.default(_)), Effect.acquireRelease(ws => Effect.sync(() => {
|
|
41
|
-
// eslint-disable-next-line no-extra-semi
|
|
42
|
-
;
|
|
43
|
-
ws.removeAllListeners?.();
|
|
44
|
-
ws.close();
|
|
45
|
-
})));
|
|
46
|
-
const offer = (ws, queue) => Effect.async(resume => {
|
|
47
|
-
ws.addEventListener("message", message => {
|
|
48
|
-
Queue.unsafeOffer(queue, message.data);
|
|
49
|
-
});
|
|
50
|
-
ws.addEventListener("error", cause => {
|
|
51
|
-
resume(Effect.fail(new WebSocketError("error", cause)));
|
|
52
|
-
});
|
|
53
|
-
ws.addEventListener("close", e => {
|
|
54
|
-
resume(Effect.fail(new WebSocketCloseError(e.code, e.reason)));
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
const waitForOpen = (ws, timeout) => Effect.timeoutFail(Effect.suspend(() => {
|
|
58
|
-
if (ws.readyState === _isomorphicWs.default.OPEN) {
|
|
59
|
-
return Effect.unit;
|
|
60
|
-
}
|
|
61
|
-
return Effect.async(resume => {
|
|
62
|
-
ws.addEventListener("open", () => resume(Effect.unit), {
|
|
63
|
-
once: true
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
}), {
|
|
67
|
-
onTimeout: () => new WebSocketError("open-timeout"),
|
|
68
|
-
duration: timeout
|
|
69
|
-
});
|
|
70
|
-
const send = (ws, take) => (0, _Function.pipe)(take, Effect.tap(data => Effect.logTrace(data)), Effect.tap(data => {
|
|
71
|
-
if (data === Reconnect) {
|
|
72
|
-
return Effect.failSync(() => {
|
|
73
|
-
ws.close(1012, "reconnecting");
|
|
74
|
-
return new WebSocketCloseError(1012, "reconnecting");
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
return Effect.sync(() => {
|
|
78
|
-
ws.send(data);
|
|
79
|
-
});
|
|
80
|
-
}), Effect.forever, Effect.annotateLogs("method", "send"));
|
|
81
|
-
const wsImpl = {
|
|
82
|
-
connect: ({
|
|
83
|
-
onConnecting = Effect.unit,
|
|
84
|
-
openTimeout = "3 seconds",
|
|
85
|
-
reconnectWhen,
|
|
86
|
-
takeOutbound,
|
|
87
|
-
urlRef
|
|
88
|
-
}) => Effect.gen(function* (_) {
|
|
89
|
-
const scope = yield* _(Effect.scope);
|
|
90
|
-
const queue = yield* _(Effect.acquireRelease(Queue.unbounded(), Queue.shutdown));
|
|
91
|
-
const take = Effect.annotateLogs(Effect.tap(Queue.take(queue), data => Effect.logTrace(data)), {
|
|
92
|
-
package: "dfx",
|
|
93
|
-
module: "DiscordGateway/WS",
|
|
94
|
-
method: "take"
|
|
95
|
-
});
|
|
96
|
-
const run = (0, _Function.pipe)(onConnecting, Effect.zipRight(socket(urlRef)), Effect.flatMap(ws => Effect.all([offer(ws, queue), Effect.zipRight(waitForOpen(ws, openTimeout), send(ws, takeOutbound))], {
|
|
97
|
-
concurrency: "unbounded",
|
|
98
|
-
discard: true
|
|
99
|
-
})), Effect.scoped, Effect.retry({
|
|
100
|
-
while: isReconnect
|
|
101
|
-
}), reconnectWhen ? Effect.retry({
|
|
102
|
-
while: reconnectWhen
|
|
103
|
-
}) : _Function.identity, Effect.catchAllCause(Effect.logError), Effect.repeat(Schedule.exponential("500 millis").pipe(Schedule.union(Schedule.spaced("30 seconds")))), Effect.forkIn(scope));
|
|
104
|
-
yield* _(run);
|
|
105
|
-
return {
|
|
106
|
-
take
|
|
107
|
-
};
|
|
108
|
-
}).pipe(Effect.annotateLogs({
|
|
109
|
-
package: "dfx",
|
|
110
|
-
module: "DiscordGateway/WS"
|
|
111
|
-
}))
|
|
112
|
-
};
|
|
113
|
-
const WS = exports.WS = /*#__PURE__*/(0, _Context.GenericTag)("dfx/DiscordGateway/WS");
|
|
114
|
-
const WSLive = exports.WSLive = /*#__PURE__*/Layer.succeed(WS, wsImpl);
|
|
115
|
-
//# sourceMappingURL=WS.js.map
|
package/DiscordGateway/WS.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WS.js","names":["_Context","require","_Function","Effect","_interopRequireWildcard","Layer","Queue","Ref","_isomorphicWs","_interopRequireDefault","Schedule","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","Reconnect","exports","Symbol","WebSocketError","reason","error","_tag","constructor","WebSocketCloseError","code","isReconnect","socket","urlRef","pipe","map","_","WebSocket","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","identity","catchAllCause","logError","repeat","exponential","union","spaced","forkIn","WS","GenericTag","WSLive","succeed"],"sources":["../src/DiscordGateway/WS.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -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":"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","ignoreList":[]}
|