dfx 0.95.0 → 0.95.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.js +4 -4
- package/Cache.js.map +1 -1
- package/DiscordGateway/DiscordWS.js +2 -2
- package/DiscordGateway/DiscordWS.js.map +1 -1
- package/DiscordGateway/Shard/StateStore.d.ts +25 -0
- package/DiscordGateway/Shard/StateStore.d.ts.map +1 -0
- package/DiscordGateway/Shard/StateStore.js +33 -0
- package/DiscordGateway/Shard/StateStore.js.map +1 -0
- package/DiscordGateway/Shard/heartbeats.d.ts +2 -2
- package/DiscordGateway/Shard/heartbeats.d.ts.map +1 -1
- package/DiscordGateway/Shard/heartbeats.js +4 -4
- package/DiscordGateway/Shard/heartbeats.js.map +1 -1
- package/DiscordGateway/Shard/identify.d.ts +2 -6
- package/DiscordGateway/Shard/identify.d.ts.map +1 -1
- package/DiscordGateway/Shard/identify.js +5 -12
- package/DiscordGateway/Shard/identify.js.map +1 -1
- package/DiscordGateway/Shard/utils.d.ts +1 -8
- package/DiscordGateway/Shard/utils.d.ts.map +1 -1
- package/DiscordGateway/Shard/utils.js +1 -10
- package/DiscordGateway/Shard/utils.js.map +1 -1
- package/DiscordGateway/Shard.d.ts +5 -4
- package/DiscordGateway/Shard.d.ts.map +1 -1
- package/DiscordGateway/Shard.js +43 -28
- 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/DiscordGateway.d.ts.map +1 -1
- package/DiscordREST.d.ts +1 -1
- package/Helpers/intents.d.ts +2 -2
- package/Helpers/intents.d.ts.map +1 -1
- package/Helpers/permissions.d.ts +2 -2
- package/Helpers/permissions.d.ts.map +1 -1
- package/Helpers/ui.d.ts +7 -1
- package/Helpers/ui.d.ts.map +1 -1
- package/Helpers/ui.js +11 -1
- package/Helpers/ui.js.map +1 -1
- package/Interactions/gateway.js +1 -1
- package/Interactions/gateway.js.map +1 -1
- package/gateway.d.ts +2 -2
- package/gateway.d.ts.map +1 -1
- package/gateway.js +2 -1
- package/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/StateStore.mjs +25 -0
- package/mjs/DiscordGateway/Shard/StateStore.mjs.map +1 -0
- package/mjs/DiscordGateway/Shard/heartbeats.mjs +4 -4
- package/mjs/DiscordGateway/Shard/heartbeats.mjs.map +1 -1
- package/mjs/DiscordGateway/Shard/identify.mjs +5 -12
- package/mjs/DiscordGateway/Shard/identify.mjs.map +1 -1
- package/mjs/DiscordGateway/Shard/utils.mjs +0 -8
- package/mjs/DiscordGateway/Shard/utils.mjs.map +1 -1
- package/mjs/DiscordGateway/Shard.mjs +43 -28
- 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/Helpers/ui.mjs +9 -0
- package/mjs/Helpers/ui.mjs.map +1 -1
- package/mjs/Interactions/gateway.mjs +1 -1
- package/mjs/Interactions/gateway.mjs.map +1 -1
- package/mjs/gateway.mjs +2 -1
- package/mjs/gateway.mjs.map +1 -1
- package/mjs/types.mjs +45 -2
- package/mjs/types.mjs.map +1 -1
- package/mjs/version.mjs +1 -1
- package/package.json +2 -2
- package/src/Cache.ts +4 -4
- package/src/DiscordGateway/DiscordWS.ts +2 -2
- package/src/DiscordGateway/Shard/StateStore.ts +46 -0
- package/src/DiscordGateway/Shard/heartbeats.ts +8 -7
- package/src/DiscordGateway/Shard/identify.ts +10 -18
- package/src/DiscordGateway/Shard/utils.ts +1 -28
- package/src/DiscordGateway/Shard.ts +55 -52
- package/src/DiscordGateway/Sharder.ts +1 -1
- package/src/Helpers/ui.ts +15 -0
- package/src/Interactions/gateway.ts +1 -1
- package/src/gateway.ts +2 -0
- package/src/types.ts +168 -3
- package/src/version.ts +1 -1
- package/types.d.ts +134 -4
- package/types.d.ts.map +1 -1
- package/types.js +46 -3
- package/types.js.map +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/src/DiscordGateway/Shard/invalidSession.ts +0 -11
package/Cache.js
CHANGED
|
@@ -67,7 +67,7 @@ const makeWithParent = ({
|
|
|
67
67
|
onParentMiss,
|
|
68
68
|
ops = Stream.empty
|
|
69
69
|
}) => Effect.gen(function* () {
|
|
70
|
-
yield Stream.runDrain(Stream.tap(ops, op => {
|
|
70
|
+
yield* Stream.runDrain(Stream.tap(ops, op => {
|
|
71
71
|
switch (op.op) {
|
|
72
72
|
case "create":
|
|
73
73
|
case "update":
|
|
@@ -78,7 +78,7 @@ const makeWithParent = ({
|
|
|
78
78
|
return driver.parentDelete(op.parentId);
|
|
79
79
|
}
|
|
80
80
|
})).pipe(Effect.tapErrorCause(_ => Effect.logError("ops error, restarting", _)), Effect.retry(retryPolicy), Effect.forkScoped, Effect.interruptible);
|
|
81
|
-
yield driver.run.pipe(Effect.tapErrorCause(_ => Effect.logError("cache driver error, restarting", _)), Effect.retry(retryPolicy), Effect.forkScoped, Effect.interruptible);
|
|
81
|
+
yield* driver.run.pipe(Effect.tapErrorCause(_ => Effect.logError("cache driver error, restarting", _)), Effect.retry(retryPolicy), Effect.forkScoped, Effect.interruptible);
|
|
82
82
|
const get = (parentId, id) => Effect.flatMap(driver.get(parentId, id), Option.match({
|
|
83
83
|
onNone: () => Effect.tap(onMiss(parentId, id), a => driver.set(parentId, id, a)),
|
|
84
84
|
onSome: Effect.succeed
|
|
@@ -108,7 +108,7 @@ const make = ({
|
|
|
108
108
|
onMiss,
|
|
109
109
|
ops = Stream.empty
|
|
110
110
|
}) => Effect.gen(function* () {
|
|
111
|
-
yield Stream.runDrain(Stream.tap(ops, op => {
|
|
111
|
+
yield* Stream.runDrain(Stream.tap(ops, op => {
|
|
112
112
|
switch (op.op) {
|
|
113
113
|
case "create":
|
|
114
114
|
case "update":
|
|
@@ -117,7 +117,7 @@ const make = ({
|
|
|
117
117
|
return driver.delete(op.resourceId);
|
|
118
118
|
}
|
|
119
119
|
})).pipe(Effect.tapErrorCause(_ => Effect.logError("ops error, restarting", _)), Effect.retry(retryPolicy), Effect.forkScoped, Effect.interruptible);
|
|
120
|
-
yield driver.run.pipe(Effect.tapErrorCause(_ => Effect.logError("cache driver error, restarting", _)), Effect.retry(retryPolicy), Effect.forkScoped, Effect.interruptible);
|
|
120
|
+
yield* driver.run.pipe(Effect.tapErrorCause(_ => Effect.logError("cache driver error, restarting", _)), Effect.retry(retryPolicy), Effect.forkScoped, Effect.interruptible);
|
|
121
121
|
const get = id => Effect.flatMap(driver.get(id), Option.match({
|
|
122
122
|
onNone: () => Effect.tap(onMiss(id), a => driver.set(id, a)),
|
|
123
123
|
onSome: Effect.succeed
|
package/Cache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cache.js","names":["_Error","require","Effect","_interopRequireWildcard","Option","Schedule","Stream","_driver","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_memory","_memoryTTL","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","n","__proto__","a","getOwnPropertyDescriptor","u","i","set","retryPolicy","exponential","pipe","union","spaced","makeWithParent","driver","id","onMiss","onParentMiss","ops","empty","gen","runDrain","tap","op","parentId","resourceId","resource","delete","parentDelete","tapErrorCause","_","logError","retry","forkScoped","interruptible","run","flatMap","match","onNone","onSome","succeed","put","update","f","getForParent","entries","all","map","concurrency","Map","annotateLogs","package","service","make","CacheErrorTypeId","Symbol","for","CacheMissError","TypeIdError","message","cacheName"],"sources":["./src/Cache.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,gBAAAC,OAAA;AAEA,IAAAC,MAAA,gBAAAC,uBAAA,eAAAF,OAAA;AACA,IAAAG,MAAA,gBAAAD,uBAAA,eAAAF,OAAA;AACA,IAAAI,QAAA,gBAAAF,uBAAA,eAAAF,OAAA;AAEA,IAAAK,MAAA,gBAAAH,uBAAA,eAAAF,OAAA;AAEA,IAAAM,OAAA,gBAAAN,OAAA;AAAAO,MAAA,CAAAC,IAAA,CAAAF,OAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,OAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,OAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,OAAA,gBAAAnB,OAAA;AAIA,IAAAoB,UAAA,gBAAApB,OAAA;AAG4B,SAAAqB,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAApB,wBAAAoB,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAP,GAAA,CAAAI,CAAA,OAAAO,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAxB,MAAA,CAAAS,cAAA,IAAAT,MAAA,CAAAyB,wBAAA,WAAAC,CAAA,IAAAX,CAAA,oBAAAW,CAAA,OAAArB,cAAA,CAAAC,IAAA,CAAAS,CAAA,EAAAW,CAAA,SAAAC,CAAA,GAAAH,CAAA,GAAAxB,MAAA,CAAAyB,wBAAA,CAAAV,CAAA,EAAAW,CAAA,UAAAC,CAAA,KAAAA,CAAA,CAAAhB,GAAA,IAAAgB,CAAA,CAAAC,GAAA,IAAA5B,MAAA,CAAAS,cAAA,CAAAa,CAAA,EAAAI,CAAA,EAAAC,CAAA,IAAAL,CAAA,CAAAI,CAAA,IAAAX,CAAA,CAAAW,CAAA,YAAAJ,CAAA,CAAAF,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAU,GAAA,CAAAb,CAAA,EAAAO,CAAA,GAAAA,CAAA;AAa5B,MAAMO,WAAW,gBAAGhC,QAAQ,CAACiC,WAAW,CAAC,YAAY,CAAC,CAACC,IAAI,eACzDlC,QAAQ,CAACmC,KAAK,eAACnC,QAAQ,CAACoC,MAAM,CAAC,YAAY,CAAC,CAAC,CAC9C;AAkCM,MAAMC,cAAc,GAAGA,CAAkC;EAC9DC,MAAM;EACNC,EAAE;EACFC,MAAM;EACNC,YAAY;EACZC,GAAG,GAAGzC,MAAM,CAAC0C;AAAK,CASnB,KACC9C,MAAM,CAAC+C,GAAG,CAAC,aAAS;EAClB,
|
|
1
|
+
{"version":3,"file":"Cache.js","names":["_Error","require","Effect","_interopRequireWildcard","Option","Schedule","Stream","_driver","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_memory","_memoryTTL","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","n","__proto__","a","getOwnPropertyDescriptor","u","i","set","retryPolicy","exponential","pipe","union","spaced","makeWithParent","driver","id","onMiss","onParentMiss","ops","empty","gen","runDrain","tap","op","parentId","resourceId","resource","delete","parentDelete","tapErrorCause","_","logError","retry","forkScoped","interruptible","run","flatMap","match","onNone","onSome","succeed","put","update","f","getForParent","entries","all","map","concurrency","Map","annotateLogs","package","service","make","CacheErrorTypeId","Symbol","for","CacheMissError","TypeIdError","message","cacheName"],"sources":["./src/Cache.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -37,13 +37,13 @@ const make = /*#__PURE__*/Effect.gen(function* () {
|
|
|
37
37
|
openTimeout: 5000
|
|
38
38
|
});
|
|
39
39
|
const write = yield* socket.writer;
|
|
40
|
-
yield outbound.pipe(Effect.flatMap(_ => {
|
|
40
|
+
yield* outbound.pipe(Effect.flatMap(_ => {
|
|
41
41
|
if (_ === Reconnect) {
|
|
42
42
|
return Effect.zipRight(Effect.logTrace("Reconnecting"), write(new Socket.CloseEvent(1012, "reconnecting")));
|
|
43
43
|
}
|
|
44
44
|
return Effect.zipRight(Effect.logTrace(_), write(encoding.encode(_)));
|
|
45
45
|
}), Effect.forever, Effect.annotateLogs("channel", "outbound"), Effect.forkScoped, Effect.interruptible);
|
|
46
|
-
yield onConnecting.pipe(Effect.zipRight(socket.runRaw(_ => {
|
|
46
|
+
yield* onConnecting.pipe(Effect.zipRight(socket.runRaw(_ => {
|
|
47
47
|
const message = encoding.decode(_);
|
|
48
48
|
return Effect.zipRight(Effect.logTrace(message), messages.offer(message));
|
|
49
49
|
})), Effect.retry({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiscordWS.js","names":["_Context","require","Effect","_interopRequireWildcard","Layer","Ref","Socket","Queue","Schedule","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Reconnect","exports","Symbol","for","decoder","TextDecoder","DiscordWSCodec","GenericTag","JsonDiscordWSCodecLive","succeed","type","encode","p","JSON","stringify","decode","parse","make","gen","encoding","connect","onConnecting","outbound","url","version","urlRef","setUrl","messages","unbounded","socket","makeWebSocket","closeCodeIsError","_","openTimeout","write","writer","pipe","flatMap","zipRight","logTrace","CloseEvent","forever","annotateLogs","forkScoped","interruptible","runRaw","message","offer","retry","while","reason","code","catchAllCause","cause","logDebug","repeat","exponential","union","spaced","take","module","DiscordWS","DiscordWSLive","effect"],"sources":["../src/DiscordGateway/DiscordWS.ts"],"sourcesContent":[null],"mappings":"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
|
|
1
|
+
{"version":3,"file":"DiscordWS.js","names":["_Context","require","Effect","_interopRequireWildcard","Layer","Ref","Socket","Queue","Schedule","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Reconnect","exports","Symbol","for","decoder","TextDecoder","DiscordWSCodec","GenericTag","JsonDiscordWSCodecLive","succeed","type","encode","p","JSON","stringify","decode","parse","make","gen","encoding","connect","onConnecting","outbound","url","version","urlRef","setUrl","messages","unbounded","socket","makeWebSocket","closeCodeIsError","_","openTimeout","write","writer","pipe","flatMap","zipRight","logTrace","CloseEvent","forever","annotateLogs","forkScoped","interruptible","runRaw","message","offer","retry","while","reason","code","catchAllCause","cause","logDebug","repeat","exponential","union","spaced","take","module","DiscordWS","DiscordWSLive","effect"],"sources":["../src/DiscordGateway/DiscordWS.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as Option from "effect/Option";
|
|
3
|
+
import * as Context from "effect/Context";
|
|
4
|
+
import * as Layer from "effect/Layer";
|
|
5
|
+
export interface ShardState {
|
|
6
|
+
readonly resumeUrl: string;
|
|
7
|
+
readonly sequence: number | null;
|
|
8
|
+
readonly sessionId: string;
|
|
9
|
+
}
|
|
10
|
+
export interface ShardStateStore {
|
|
11
|
+
readonly _: unique symbol;
|
|
12
|
+
}
|
|
13
|
+
export interface StateStore {
|
|
14
|
+
readonly get: Effect.Effect<Option.Option<ShardState>>;
|
|
15
|
+
readonly set: (state: ShardState) => Effect.Effect<void>;
|
|
16
|
+
readonly clear: Effect.Effect<void>;
|
|
17
|
+
}
|
|
18
|
+
export declare const ShardStateStore: Context.Tag<ShardStateStore, {
|
|
19
|
+
readonly forShard: (id: [
|
|
20
|
+
id: number,
|
|
21
|
+
count: number
|
|
22
|
+
]) => StateStore;
|
|
23
|
+
}>;
|
|
24
|
+
export declare const MemoryShardStateStoreLive: Layer.Layer<ShardStateStore, never, never>;
|
|
25
|
+
//# sourceMappingURL=StateStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StateStore.d.ts","sourceRoot":"","sources":["../../src/DiscordGateway/Shard/StateStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,CAAC,EAAE,OAAO,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAA;IACtD,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACxD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CACpC;AAED,eAAO,MAAM,eAAe;uBAEL,CAAC,EAAE,EAAE;QAAC,EAAE,EAAE,MAAM;QAAE,KAAK,EAAE,MAAM;KAAC,KAAK,UAAU;EAC7C,CAAA;AAEzB,eAAO,MAAM,yBAAyB,4CAmBpC,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ShardStateStore = exports.MemoryShardStateStoreLive = void 0;
|
|
7
|
+
var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
|
|
8
|
+
var Option = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Option"));
|
|
9
|
+
var Context = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Context"));
|
|
10
|
+
var Layer = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Layer"));
|
|
11
|
+
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); }
|
|
12
|
+
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 && {}.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; }
|
|
13
|
+
const ShardStateStore = exports.ShardStateStore = /*#__PURE__*/Context.GenericTag("dfx/Shard/StateStore");
|
|
14
|
+
const MemoryShardStateStoreLive = exports.MemoryShardStateStoreLive = /*#__PURE__*/Layer.sync(ShardStateStore, () => {
|
|
15
|
+
const store = new Map();
|
|
16
|
+
return ShardStateStore.of({
|
|
17
|
+
forShard: ([id, count]) => {
|
|
18
|
+
const key = `${id}-${count}`;
|
|
19
|
+
return {
|
|
20
|
+
get: Effect.sync(() => Option.fromNullable(store.get(key))),
|
|
21
|
+
set(state) {
|
|
22
|
+
return Effect.sync(() => {
|
|
23
|
+
store.set(key, state);
|
|
24
|
+
});
|
|
25
|
+
},
|
|
26
|
+
clear: Effect.sync(() => {
|
|
27
|
+
store.delete(key);
|
|
28
|
+
})
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
//# sourceMappingURL=StateStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StateStore.js","names":["Effect","_interopRequireWildcard","require","Option","Context","Layer","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ShardStateStore","exports","GenericTag","MemoryShardStateStoreLive","sync","store","Map","of","forShard","id","count","key","fromNullable","state","clear","delete"],"sources":["../../src/DiscordGateway/Shard/StateStore.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,MAAA,gBAAAC,uBAAA,eAAAC,OAAA;AACA,IAAAC,MAAA,gBAAAF,uBAAA,eAAAC,OAAA;AACA,IAAAE,OAAA,gBAAAH,uBAAA,eAAAC,OAAA;AACA,IAAAG,KAAA,gBAAAJ,uBAAA,eAAAC,OAAA;AAAqC,SAAAI,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAN,wBAAAM,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAkB9B,MAAMW,eAAe,GAAAC,OAAA,CAAAD,eAAA,gBAAGtB,OAAO,CAACwB,UAAU,CAG/C,sBAAsB,CAAC;AAElB,MAAMC,yBAAyB,GAAAF,OAAA,CAAAE,yBAAA,gBAAGxB,KAAK,CAACyB,IAAI,CAACJ,eAAe,EAAE,MAAK;EACxE,MAAMK,KAAK,GAAG,IAAIC,GAAG,EAAsB;EAE3C,OAAON,eAAe,CAACO,EAAE,CAAC;IACxBC,QAAQ,EAAEA,CAAC,CAACC,EAAE,EAAEC,KAAK,CAAC,KAAI;MACxB,MAAMC,GAAG,GAAG,GAAGF,EAAE,IAAIC,KAAK,EAAE;MAC5B,OAAO;QACLtB,GAAG,EAAEd,MAAM,CAAC8B,IAAI,CAAC,MAAM3B,MAAM,CAACmC,YAAY,CAACP,KAAK,CAACjB,GAAG,CAACuB,GAAG,CAAC,CAAC,CAAC;QAC3DZ,GAAGA,CAACc,KAAK;UACP,OAAOvC,MAAM,CAAC8B,IAAI,CAAC,MAAK;YACtBC,KAAK,CAACN,GAAG,CAACY,GAAG,EAAEE,KAAK,CAAC;UACvB,CAAC,CAAC;QACJ,CAAC;QACDC,KAAK,EAAExC,MAAM,CAAC8B,IAAI,CAAC,MAAK;UACtBC,KAAK,CAACU,MAAM,CAACJ,GAAG,CAAC;QACnB,CAAC;OACF;IACH;GACD,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as Option from "effect/Option";
|
|
2
2
|
import * as Effect from "effect/Effect";
|
|
3
3
|
import * as Queue from "effect/Queue";
|
|
4
|
-
import * as Ref from "effect/Ref";
|
|
5
4
|
import * as DiscordWS from "dfx/DiscordGateway/DiscordWS";
|
|
6
5
|
import type * as Discord from "dfx/types";
|
|
7
|
-
|
|
6
|
+
import type { ShardState } from "dfx/DiscordGateway/Shard/StateStore";
|
|
7
|
+
export declare const send: (hellos: Queue.Dequeue<Discord.GatewayPayload>, acks: Queue.Dequeue<Discord.GatewayPayload>, state: Effect.Effect<Option.Option<ShardState>>, send: (p: DiscordWS.Message) => Effect.Effect<boolean>) => Effect.Effect<void, never, never>;
|
|
8
8
|
//# sourceMappingURL=heartbeats.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heartbeats.d.ts","sourceRoot":"","sources":["../../src/DiscordGateway/Shard/heartbeats.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"heartbeats.d.ts","sourceRoot":"","sources":["../../src/DiscordGateway/Shard/heartbeats.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC,OAAO,KAAK,SAAS,MAAM,8BAA8B,CAAA;AAEzD,OAAO,KAAK,KAAK,OAAO,MAAM,WAAW,CAAA;AAEzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAA;AAiBrE,eAAO,MAAM,IAAI,WACP,MAAM,OAAO,CAAC,QAAQ,cAAc,CAAC,QACvC,MAAM,OAAO,CAAC,QAAQ,cAAc,CAAC,SACpC,OAAO,MAAM,CAAC,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC,QACzC,CAAC,CAAC,EAAE,UAAU,OAAO,KAAK,OAAO,MAAM,CAAC,OAAO,CAAC,sCA6BpD,CAAA"}
|
|
@@ -15,10 +15,10 @@ var SendEvents = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx
|
|
|
15
15
|
var EffectU = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/utils/Effect"));
|
|
16
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
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 && {}.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 payload =
|
|
19
|
-
const payloadOrReconnect = (ref,
|
|
20
|
-
const send = (hellos, acks,
|
|
21
|
-
const heartbeats = EffectU.foreverSwitch(Effect.zipLeft(Queue.take(hellos), Ref.set(ackedRef, true)), p => payloadOrReconnect(ackedRef,
|
|
18
|
+
const payload = state => Effect.map(state, state => SendEvents.heartbeat(Option.getOrNull(Option.map(state, s => s.sequence))));
|
|
19
|
+
const payloadOrReconnect = (ref, state) => Effect.flatMap(Ref.get(ref), acked => acked ? payload(state) : Effect.succeed(DiscordWS.Reconnect));
|
|
20
|
+
const send = (hellos, acks, state, send) => Effect.flatMap(Ref.make(true), ackedRef => {
|
|
21
|
+
const heartbeats = EffectU.foreverSwitch(Effect.zipLeft(Queue.take(hellos), Ref.set(ackedRef, true)), p => payloadOrReconnect(ackedRef, state).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
22
|
const run = Queue.take(acks).pipe(Effect.zipLeft(Ref.set(ackedRef, true)), Effect.forever);
|
|
23
23
|
return Effect.all([run, heartbeats], {
|
|
24
24
|
concurrency: "unbounded",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heartbeats.js","names":["Duration","_interopRequireWildcard","require","Option","Effect","Queue","Ref","Schedule","DiscordWS","SendEvents","EffectU","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","payload","
|
|
1
|
+
{"version":3,"file":"heartbeats.js","names":["Duration","_interopRequireWildcard","require","Option","Effect","Queue","Ref","Schedule","DiscordWS","SendEvents","EffectU","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","payload","state","map","heartbeat","getOrNull","s","sequence","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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","ignoreList":[]}
|
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
import * as Option from "effect/Option";
|
|
2
2
|
import * as Effect from "effect/Effect";
|
|
3
|
-
import * as Ref from "effect/Ref";
|
|
4
3
|
import type * as Discord from "dfx/types";
|
|
4
|
+
import type { ShardState } from "dfx/DiscordGateway/Shard/StateStore";
|
|
5
5
|
export interface Options {
|
|
6
6
|
readonly token: string;
|
|
7
7
|
readonly intents: number;
|
|
8
8
|
readonly shard: [number, number];
|
|
9
9
|
readonly presence?: Discord.UpdatePresence;
|
|
10
10
|
}
|
|
11
|
-
export
|
|
12
|
-
readonly latestReady: Ref.Ref<Option.Option<Discord.ReadyEvent>>;
|
|
13
|
-
readonly latestSequence: Ref.Ref<Option.Option<number>>;
|
|
14
|
-
}
|
|
15
|
-
export declare const identifyOrResume: (opts: Options, ready: Ref.Ref<Option.Option<Discord.ReadyEvent>>, seq: Ref.Ref<Option.Option<number>>) => Effect.Effect<Discord.GatewayPayload<Discord.Identify> | Discord.GatewayPayload<Discord.Resume>>;
|
|
11
|
+
export declare const identifyOrResume: (opts: Options, state: Effect.Effect<Option.Option<ShardState>>) => Effect.Effect<Discord.GatewayPayload<Discord.Identify> | Discord.GatewayPayload<Discord.Resume>>;
|
|
16
12
|
//# sourceMappingURL=identify.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identify.d.ts","sourceRoot":"","sources":["../../src/DiscordGateway/Shard/identify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"identify.d.ts","sourceRoot":"","sources":["../../src/DiscordGateway/Shard/identify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,KAAK,OAAO,MAAM,WAAW,CAAA;AAEzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAA;AAErE,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,cAAc,CAAA;CAC3C;AAsBD,eAAO,MAAM,gBAAgB,SACrB,OAAO,SACN,OAAO,MAAM,CAAC,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC,KAC9C,OAAO,MAAM,CACZ,QAAQ,cAAc,CAAC,QAAQ,QAAQ,CAAC,GACxC,QAAQ,cAAc,CAAC,QAAQ,MAAM,CAAC,CAQvC,CAAA"}
|
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.identifyOrResume = void 0;
|
|
7
7
|
var Option = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Option"));
|
|
8
8
|
var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
|
|
9
|
-
var Ref = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Ref"));
|
|
10
9
|
var SendEvents = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/DiscordGateway/Shard/sendEvents"));
|
|
11
10
|
var OS = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("os"));
|
|
12
11
|
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); }
|
|
@@ -27,20 +26,14 @@ const identify = ({
|
|
|
27
26
|
shard,
|
|
28
27
|
presence
|
|
29
28
|
});
|
|
30
|
-
const resume = (token,
|
|
29
|
+
const resume = (token, session_id, seq) => SendEvents.resume({
|
|
31
30
|
token,
|
|
32
|
-
session_id
|
|
33
|
-
seq
|
|
31
|
+
session_id,
|
|
32
|
+
seq: seq
|
|
34
33
|
});
|
|
35
|
-
const identifyOrResume = (opts,
|
|
36
|
-
readyEvent,
|
|
37
|
-
seqNumber
|
|
38
|
-
}), {
|
|
34
|
+
const identifyOrResume = (opts, state) => Effect.map(state, Option.match({
|
|
39
35
|
onNone: () => identify(opts),
|
|
40
|
-
onSome: (
|
|
41
|
-
readyEvent,
|
|
42
|
-
seqNumber
|
|
43
|
-
}) => resume(opts.token, readyEvent, seqNumber)
|
|
36
|
+
onSome: state => resume(opts.token, state.sessionId, state.sequence)
|
|
44
37
|
}));
|
|
45
38
|
exports.identifyOrResume = identifyOrResume;
|
|
46
39
|
//# sourceMappingURL=identify.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identify.js","names":["Option","_interopRequireWildcard","require","Effect","
|
|
1
|
+
{"version":3,"file":"identify.js","names":["Option","_interopRequireWildcard","require","Effect","SendEvents","OS","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","identify","intents","presence","shard","token","properties","os","platform","browser","device","resume","session_id","seq","identifyOrResume","opts","state","map","match","onNone","onSome","sessionId","sequence","exports"],"sources":["../../src/DiscordGateway/Shard/identify.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,MAAA,gBAAAC,uBAAA,eAAAC,OAAA;AACA,IAAAC,MAAA,gBAAAF,uBAAA,eAAAC,OAAA;AACA,IAAAE,UAAA,gBAAAH,uBAAA,eAAAC,OAAA;AAEA,IAAAG,EAAA,gBAAAJ,uBAAA,eAAAC,OAAA;AAAwB,SAAAI,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAN,wBAAAM,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAUxB,MAAMW,QAAQ,GAAGA,CAAC;EAAEC,OAAO;EAAEC,QAAQ;EAAEC,KAAK;EAAEC;AAAK,CAAW,KAC5D1B,UAAU,CAACsB,QAAQ,CAAC;EAClBI,KAAK;EACLH,OAAO;EACPI,UAAU,EAAE;IACVC,EAAE,EAAE3B,EAAE,CAAC4B,QAAQ,EAAE;IACjBC,OAAO,EAAE,KAAK;IACdC,MAAM,EAAE;GACT;EACDN,KAAK;EACLD;CACD,CAAC;AAEJ,MAAMQ,MAAM,GAAGA,CAACN,KAAa,EAAEO,UAAkB,EAAEC,GAAkB,KACnElC,UAAU,CAACgC,MAAM,CAAC;EAChBN,KAAK;EACLO,UAAU;EACVC,GAAG,EAAEA;CACN,CAAC;AAEG,MAAMC,gBAAgB,GAAGA,CAC9BC,IAAa,EACbC,KAA+C,KAK/CtC,MAAM,CAACuC,GAAG,CACRD,KAAK,EACLzC,MAAM,CAAC2C,KAAK,CAAC;EACXC,MAAM,EAAEA,CAAA,KAAMlB,QAAQ,CAACc,IAAI,CAAC;EAC5BK,MAAM,EAAEJ,KAAK,IAAIL,MAAM,CAACI,IAAI,CAACV,KAAK,EAAEW,KAAK,CAACK,SAAS,EAAEL,KAAK,CAACM,QAAQ;CACpE,CAAC,CACH;AAAAC,OAAA,CAAAT,gBAAA,GAAAA,gBAAA","ignoreList":[]}
|
|
@@ -1,11 +1,4 @@
|
|
|
1
|
-
import * as Option from "effect/Option";
|
|
2
|
-
import * as Effect from "effect/Effect";
|
|
3
|
-
import * as Ref from "effect/Ref";
|
|
4
|
-
import * as Stream from "effect/Stream";
|
|
5
1
|
import type * as Discord from "dfx/types";
|
|
2
|
+
import * as Stream from "effect/Stream";
|
|
6
3
|
export declare const opCode: <R, E>(source: Stream.Stream<Discord.GatewayPayload, E, R>) => <T = any>(code: Discord.GatewayOpcode) => Stream.Stream<Discord.GatewayPayload<T>, E, R>;
|
|
7
|
-
export declare const latest: <T>(f: (p: Discord.GatewayPayload) => Option.Option<T>) => Effect.Effect<readonly [
|
|
8
|
-
Ref.Ref<Option.Option<T>>,
|
|
9
|
-
(_: Discord.GatewayPayload<any>) => Effect.Effect<void>
|
|
10
|
-
]>;
|
|
11
4
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/DiscordGateway/Shard/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/DiscordGateway/Shard/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,OAAO,MAAM,WAAW,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,eAAO,MAAM,MAAM,iBACF,OAAO,MAAM,CAAC,QAAQ,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC,qBAElD,QAAQ,aAAa,KAC1B,OAAO,MAAM,CAAC,QAAQ,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAG7C,CAAA"}
|
|
@@ -3,19 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.opCode =
|
|
7
|
-
var Option = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Option"));
|
|
8
|
-
var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
|
|
9
|
-
var Ref = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Ref"));
|
|
6
|
+
exports.opCode = void 0;
|
|
10
7
|
var Stream = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Stream"));
|
|
11
8
|
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); }
|
|
12
9
|
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 && {}.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; }
|
|
13
10
|
const opCode = source => code => source.pipe(Stream.filter(p => p.op === code));
|
|
14
11
|
exports.opCode = opCode;
|
|
15
|
-
const maybeUpdateRef = (f, ref) => _ => Option.match(f(_), {
|
|
16
|
-
onNone: () => Effect.void,
|
|
17
|
-
onSome: a => Ref.set(ref, Option.some(a))
|
|
18
|
-
});
|
|
19
|
-
const latest = f => Effect.map(Ref.make(Option.none()), ref => [ref, maybeUpdateRef(f, ref)]);
|
|
20
|
-
exports.latest = latest;
|
|
21
12
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["
|
|
1
|
+
{"version":3,"file":"utils.js","names":["Stream","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","opCode","source","code","pipe","filter","p","op","exports"],"sources":["../../src/DiscordGateway/Shard/utils.ts"],"sourcesContent":[null],"mappings":";;;;;;AACA,IAAAA,MAAA,gBAAAC,uBAAA,eAAAC,OAAA;AAAuC,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAEhC,MAAMW,MAAM,GACVC,MAAmD,IAExDC,IAA2B,IAE3BD,MAAM,CAACE,IAAI,CACT1B,MAAM,CAAC2B,MAAM,CAAEC,CAAC,IAAqCA,CAAC,CAACC,EAAE,KAAKJ,IAAI,CAAC,CACpE;AAAAK,OAAA,CAAAP,MAAA,GAAAA,MAAA","ignoreList":[]}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import * as Effect from "effect/Effect";
|
|
2
|
-
import * as Layer from "effect/Layer";
|
|
3
1
|
import { DiscordConfig } from "dfx/DiscordConfig";
|
|
4
2
|
import type { Message } from "dfx/DiscordGateway/DiscordWS";
|
|
5
3
|
import { DiscordWS } from "dfx/DiscordGateway/DiscordWS";
|
|
4
|
+
import { ShardStateStore } from "dfx/DiscordGateway/Shard/StateStore";
|
|
6
5
|
import { RateLimiter } from "dfx/RateLimit";
|
|
6
|
+
import * as Effect from "effect/Effect";
|
|
7
|
+
import * as Layer from "effect/Layer";
|
|
7
8
|
export declare const make: Effect.Effect<{
|
|
8
9
|
readonly connect: (shard: [id: number, count: number]) => Effect.Effect<{
|
|
9
10
|
readonly id: [id: number, count: number];
|
|
10
11
|
readonly send: (p: Message) => Effect.Effect<boolean, never, never>;
|
|
11
12
|
}, never, import("effect/Scope").Scope>;
|
|
12
|
-
}, never, import("dfx/DiscordGateway/Messaging").Messsaging |
|
|
13
|
+
}, never, DiscordConfig | RateLimiter | ShardStateStore | import("dfx/DiscordGateway/Messaging").Messsaging | DiscordWS>;
|
|
13
14
|
type ShardService = Effect.Effect.Success<typeof make>;
|
|
14
15
|
export interface Shard {
|
|
15
16
|
readonly _: unique symbol;
|
|
@@ -20,7 +21,7 @@ export declare const Shard: import("effect/Context").Tag<Shard, {
|
|
|
20
21
|
readonly send: (p: Message) => Effect.Effect<boolean, never, never>;
|
|
21
22
|
}, never, import("effect/Scope").Scope>;
|
|
22
23
|
}>;
|
|
23
|
-
export declare const ShardLive: Layer.Layer<Shard, never, DiscordConfig | import("dfx/RateLimit").RateLimitStore | import("dfx/DiscordGateway/DiscordWS").DiscordWSCodec>;
|
|
24
|
+
export declare const ShardLive: Layer.Layer<Shard, never, DiscordConfig | import("dfx/RateLimit").RateLimitStore | ShardStateStore | import("dfx/DiscordGateway/DiscordWS").DiscordWSCodec>;
|
|
24
25
|
export interface RunningShard extends Effect.Effect.Success<ReturnType<ShardService["connect"]>> {
|
|
25
26
|
}
|
|
26
27
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Shard.d.ts","sourceRoot":"","sources":["../src/DiscordGateway/Shard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Shard.d.ts","sourceRoot":"","sources":["../src/DiscordGateway/Shard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EACL,SAAS,EAGV,MAAM,8BAA8B,CAAA;AAGrC,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAGrE,OAAO,EAAE,WAAW,EAAmB,MAAM,eAAe,CAAA;AAK5D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAcrC,eAAO,MAAM,IAAI;8BAOS,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;;2BAwB9B,OAAO;;wHAoJ5B,CAAA;AAEF,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,CAAA;AAEtD,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,CAAC,EAAE,OAAO,MAAM,CAAA;CAC1B;AACD,eAAO,MAAM,KAAK;8BAnLQ,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;;2BAwB9B,OAAO;;EA2JkD,CAAA;AAChF,eAAO,MAAM,SAAS,6JAIrB,CAAA;AAED,MAAM,WAAW,YACf,SAAQ,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;CAAG"}
|
package/DiscordGateway/Shard.js
CHANGED
|
@@ -4,26 +4,25 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.make = exports.ShardLive = exports.Shard = void 0;
|
|
7
|
+
var _DiscordConfig = /*#__PURE__*/require("dfx/DiscordConfig");
|
|
8
|
+
var _DiscordWS = /*#__PURE__*/require("dfx/DiscordGateway/DiscordWS");
|
|
9
|
+
var _Messaging = /*#__PURE__*/require("dfx/DiscordGateway/Messaging");
|
|
10
|
+
var _StateStore = /*#__PURE__*/require("dfx/DiscordGateway/Shard/StateStore");
|
|
11
|
+
var Heartbeats = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/DiscordGateway/Shard/heartbeats"));
|
|
12
|
+
var Identify = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/DiscordGateway/Shard/identify"));
|
|
13
|
+
var _RateLimit = /*#__PURE__*/require("dfx/RateLimit");
|
|
14
|
+
var Discord = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/types"));
|
|
7
15
|
var Chunk = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Chunk"));
|
|
8
16
|
var _Context = /*#__PURE__*/require("effect/Context");
|
|
9
17
|
var Duration = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Duration"));
|
|
18
|
+
var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
|
|
10
19
|
var _Function = /*#__PURE__*/require("effect/Function");
|
|
20
|
+
var Layer = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Layer"));
|
|
11
21
|
var Option = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Option"));
|
|
12
|
-
var Secret = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Secret"));
|
|
13
|
-
var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
|
|
14
22
|
var PubSub = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/PubSub"));
|
|
15
|
-
var Layer = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Layer"));
|
|
16
23
|
var Queue = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Queue"));
|
|
17
24
|
var Ref = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Ref"));
|
|
18
|
-
var
|
|
19
|
-
var _DiscordWS = /*#__PURE__*/require("dfx/DiscordGateway/DiscordWS");
|
|
20
|
-
var Heartbeats = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/DiscordGateway/Shard/heartbeats"));
|
|
21
|
-
var Identify = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/DiscordGateway/Shard/identify"));
|
|
22
|
-
var InvalidSession = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/DiscordGateway/Shard/invalidSession"));
|
|
23
|
-
var Utils = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/DiscordGateway/Shard/utils"));
|
|
24
|
-
var _RateLimit = /*#__PURE__*/require("dfx/RateLimit");
|
|
25
|
-
var Discord = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/types"));
|
|
26
|
-
var _Messaging = /*#__PURE__*/require("dfx/DiscordGateway/Messaging");
|
|
25
|
+
var Secret = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Secret"));
|
|
27
26
|
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); }
|
|
28
27
|
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 && {}.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; }
|
|
29
28
|
const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
|
|
@@ -37,10 +36,17 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
|
|
|
37
36
|
hub,
|
|
38
37
|
sendQueue
|
|
39
38
|
} = yield* _Messaging.Messaging;
|
|
40
|
-
const
|
|
39
|
+
const shardState = yield* _StateStore.ShardStateStore;
|
|
40
|
+
const connect = shard => Effect.gen(function* (_) {
|
|
41
41
|
const outboundQueue = yield* Queue.unbounded();
|
|
42
42
|
const pendingQueue = yield* Queue.unbounded();
|
|
43
43
|
const phase = yield* Ref.make(0 /* Phase.Connecting */);
|
|
44
|
+
const stateStore = shardState.forShard(shard);
|
|
45
|
+
const resumeState = Option.getOrElse(yield* stateStore.get, () => ({
|
|
46
|
+
resumeUrl: "",
|
|
47
|
+
sessionId: "",
|
|
48
|
+
sequence: 0
|
|
49
|
+
}));
|
|
44
50
|
const setPhase = p => Effect.zipLeft(Ref.set(phase, p), Effect.annotateLogs(Effect.logTrace("phase transition"), "phase", p));
|
|
45
51
|
const outbound = Effect.zipLeft(Queue.take(outboundQueue), limiter.maybeWait("dfx.shard.send", Duration.minutes(1), 120));
|
|
46
52
|
const send = p => Effect.flatMap(Ref.get(phase), phase => phase === 2 /* Phase.Connected */ ? Queue.offer(outboundQueue, p) : Queue.offer(pendingQueue, p));
|
|
@@ -52,27 +58,32 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
|
|
|
52
58
|
outbound,
|
|
53
59
|
onConnecting
|
|
54
60
|
});
|
|
55
|
-
const isReady = Option.liftPredicate(p => p.op === Discord.GatewayOpcode.DISPATCH && p.t === "READY");
|
|
56
|
-
const [latestReady, updateLatestReady] = yield* Utils.latest(p => Option.map(isReady(p), p => p.d));
|
|
57
|
-
const [latestSequence, updateLatestSequence] = yield* Utils.latest(p => Option.fromNullable(p.s));
|
|
58
|
-
const maybeUpdateUrl = p => Option.match(Option.map(isReady(p), p => p.d), {
|
|
59
|
-
onNone: () => Effect.void,
|
|
60
|
-
onSome: ({
|
|
61
|
-
resume_gateway_url
|
|
62
|
-
}) => socket.setUrl(resume_gateway_url)
|
|
63
|
-
});
|
|
64
61
|
const hellos = yield* Effect.acquireRelease(Queue.unbounded(), Queue.shutdown);
|
|
65
62
|
const acks = yield* Effect.acquireRelease(Queue.unbounded(), Queue.shutdown);
|
|
66
63
|
// heartbeats
|
|
67
|
-
yield Heartbeats.send(hellos, acks,
|
|
64
|
+
yield* Heartbeats.send(hellos, acks, stateStore.get, heartbeatSend).pipe(Effect.forkScoped, Effect.interruptible);
|
|
68
65
|
// identify
|
|
69
66
|
const identify = Identify.identifyOrResume({
|
|
70
67
|
token: Secret.value(token),
|
|
71
68
|
shard,
|
|
72
69
|
intents: gateway.intents,
|
|
73
70
|
presence: gateway.presence
|
|
74
|
-
},
|
|
75
|
-
const onPayload = p => (0, _Function.pipe)(
|
|
71
|
+
}, stateStore.get);
|
|
72
|
+
const onPayload = p => (0, _Function.pipe)(Effect.suspend(() => {
|
|
73
|
+
if (typeof p.s === "number") {
|
|
74
|
+
resumeState.sequence = p.s;
|
|
75
|
+
}
|
|
76
|
+
if (p.op === Discord.GatewayOpcode.DISPATCH && p.t === "READY") {
|
|
77
|
+
const payload = p.d;
|
|
78
|
+
resumeState.sessionId = payload.session_id;
|
|
79
|
+
resumeState.resumeUrl = payload.resume_gateway_url;
|
|
80
|
+
return Effect.zipRight(stateStore.set(resumeState), socket.setUrl(payload.resume_gateway_url));
|
|
81
|
+
}
|
|
82
|
+
if (resumeState.resumeUrl !== "" && resumeState.sessionId !== "") {
|
|
83
|
+
return stateStore.set(resumeState);
|
|
84
|
+
}
|
|
85
|
+
return Effect.void;
|
|
86
|
+
}), Effect.tap(() => {
|
|
76
87
|
switch (p.op) {
|
|
77
88
|
case Discord.GatewayOpcode.HELLO:
|
|
78
89
|
{
|
|
@@ -84,7 +95,11 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
|
|
|
84
95
|
}
|
|
85
96
|
case Discord.GatewayOpcode.INVALID_SESSION:
|
|
86
97
|
{
|
|
87
|
-
|
|
98
|
+
if (p.d) {
|
|
99
|
+
return send(_DiscordWS.Reconnect);
|
|
100
|
+
}
|
|
101
|
+
resumeState.sessionId = "";
|
|
102
|
+
return Effect.zipRight(stateStore.clear, send(_DiscordWS.Reconnect));
|
|
88
103
|
}
|
|
89
104
|
case Discord.GatewayOpcode.DISPATCH:
|
|
90
105
|
{
|
|
@@ -103,8 +118,8 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
|
|
|
103
118
|
}
|
|
104
119
|
}
|
|
105
120
|
}));
|
|
106
|
-
yield Queue.take(sendQueue).pipe(Effect.tap(send), Effect.forever, Effect.forkScoped, Effect.interruptible);
|
|
107
|
-
yield socket.take.pipe(Effect.flatMap(onPayload), Effect.forever, Effect.forkScoped, Effect.interruptible);
|
|
121
|
+
yield* Queue.take(sendQueue).pipe(Effect.tap(send), Effect.forever, Effect.forkScoped, Effect.interruptible);
|
|
122
|
+
yield* socket.take.pipe(Effect.flatMap(onPayload), Effect.forever, Effect.forkScoped, Effect.interruptible);
|
|
108
123
|
return {
|
|
109
124
|
id: shard,
|
|
110
125
|
send
|