dfx 0.77.2 → 0.78.0
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/prelude.d.ts +3 -3
- package/DiscordConfig.d.ts +7 -6
- package/DiscordConfig.d.ts.map +1 -1
- package/DiscordConfig.js +1 -3
- package/DiscordConfig.js.map +1 -1
- package/DiscordGateway/DiscordWS.d.ts +12 -11
- package/DiscordGateway/DiscordWS.d.ts.map +1 -1
- package/DiscordGateway/DiscordWS.js +8 -5
- package/DiscordGateway/DiscordWS.js.map +1 -1
- package/DiscordGateway/Messaging.d.ts +28 -0
- package/DiscordGateway/Messaging.d.ts.map +1 -0
- package/DiscordGateway/Messaging.js +41 -0
- package/DiscordGateway/Messaging.js.map +1 -0
- package/DiscordGateway/Shard.d.ts +14 -11
- package/DiscordGateway/Shard.d.ts.map +1 -1
- package/DiscordGateway/Shard.js +20 -17
- package/DiscordGateway/Shard.js.map +1 -1
- package/DiscordGateway/ShardStore.d.ts +5 -2
- package/DiscordGateway/ShardStore.d.ts.map +1 -1
- package/DiscordGateway/ShardStore.js +1 -1
- package/DiscordGateway/ShardStore.js.map +1 -1
- package/DiscordGateway/Sharder.d.ts +9 -18
- package/DiscordGateway/Sharder.d.ts.map +1 -1
- package/DiscordGateway/Sharder.js +36 -45
- package/DiscordGateway/Sharder.js.map +1 -1
- package/DiscordGateway/WS.d.ts +14 -10
- package/DiscordGateway/WS.d.ts.map +1 -1
- package/DiscordGateway/WS.js +31 -21
- package/DiscordGateway/WS.js.map +1 -1
- package/DiscordGateway.d.ts +10 -7
- package/DiscordGateway.d.ts.map +1 -1
- package/DiscordGateway.js +13 -31
- package/DiscordGateway.js.map +1 -1
- package/DiscordREST.d.ts +6 -4
- package/DiscordREST.d.ts.map +1 -1
- package/DiscordREST.js +7 -6
- package/DiscordREST.js.map +1 -1
- package/Interactions/context.d.ts +35 -17
- package/Interactions/context.d.ts.map +1 -1
- package/Interactions/context.js +6 -6
- package/Interactions/context.js.map +1 -1
- package/Interactions/definitions.d.ts +11 -11
- package/Interactions/definitions.d.ts.map +1 -1
- package/Interactions/definitions.js.map +1 -1
- package/Interactions/gateway.d.ts +7 -6
- package/Interactions/gateway.d.ts.map +1 -1
- package/Interactions/gateway.js +1 -1
- package/Interactions/gateway.js.map +1 -1
- package/Interactions/handlers.d.ts +2 -1
- package/Interactions/handlers.d.ts.map +1 -1
- package/Interactions/webhook.d.ts +5 -6
- package/Interactions/webhook.d.ts.map +1 -1
- package/Interactions/webhook.js +1 -1
- package/Interactions/webhook.js.map +1 -1
- package/RateLimit/memory.d.ts +2 -2
- package/RateLimit/memory.d.ts.map +1 -1
- package/RateLimit/memory.js.map +1 -1
- package/RateLimit.d.ts +10 -9
- package/RateLimit.d.ts.map +1 -1
- package/RateLimit.js +4 -5
- package/RateLimit.js.map +1 -1
- package/gateway.d.ts +2 -2
- package/gateway.d.ts.map +1 -1
- package/gateway.js +1 -2
- package/gateway.js.map +1 -1
- package/index.d.ts +1 -2
- package/index.d.ts.map +1 -1
- package/index.js +1 -3
- package/index.js.map +1 -1
- package/mjs/DiscordConfig.mjs +1 -3
- package/mjs/DiscordConfig.mjs.map +1 -1
- package/mjs/DiscordGateway/DiscordWS.mjs +8 -5
- package/mjs/DiscordGateway/DiscordWS.mjs.map +1 -1
- package/mjs/DiscordGateway/Messaging.mjs +33 -0
- package/mjs/DiscordGateway/Messaging.mjs.map +1 -0
- package/mjs/DiscordGateway/Shard.mjs +20 -17
- package/mjs/DiscordGateway/Shard.mjs.map +1 -1
- package/mjs/DiscordGateway/ShardStore.mjs +1 -1
- package/mjs/DiscordGateway/ShardStore.mjs.map +1 -1
- package/mjs/DiscordGateway/Sharder.mjs +35 -44
- package/mjs/DiscordGateway/Sharder.mjs.map +1 -1
- package/mjs/DiscordGateway/WS.mjs +32 -22
- package/mjs/DiscordGateway/WS.mjs.map +1 -1
- package/mjs/DiscordGateway.mjs +12 -30
- package/mjs/DiscordGateway.mjs.map +1 -1
- package/mjs/DiscordREST.mjs +7 -6
- package/mjs/DiscordREST.mjs.map +1 -1
- package/mjs/Interactions/context.mjs +6 -6
- package/mjs/Interactions/context.mjs.map +1 -1
- package/mjs/Interactions/definitions.mjs.map +1 -1
- package/mjs/Interactions/gateway.mjs +1 -1
- package/mjs/Interactions/gateway.mjs.map +1 -1
- package/mjs/Interactions/webhook.mjs +1 -1
- package/mjs/Interactions/webhook.mjs.map +1 -1
- package/mjs/RateLimit/memory.mjs.map +1 -1
- package/mjs/RateLimit.mjs +4 -5
- package/mjs/RateLimit.mjs.map +1 -1
- package/mjs/gateway.mjs +1 -2
- package/mjs/gateway.mjs.map +1 -1
- package/mjs/index.mjs +1 -2
- package/mjs/index.mjs.map +1 -1
- package/mjs/version.mjs +1 -1
- package/mjs/webhooks.mjs +1 -2
- package/mjs/webhooks.mjs.map +1 -1
- package/package.json +2 -2
- package/src/DiscordConfig.ts +10 -8
- package/src/DiscordGateway/DiscordWS.ts +23 -13
- package/src/DiscordGateway/Messaging.ts +72 -0
- package/src/DiscordGateway/Shard.ts +51 -33
- package/src/DiscordGateway/ShardStore.ts +8 -3
- package/src/DiscordGateway/Sharder.ts +72 -97
- package/src/DiscordGateway/WS.ts +64 -32
- package/src/DiscordGateway.ts +22 -71
- package/src/DiscordREST.ts +40 -27
- package/src/Interactions/context.ts +47 -10
- package/src/Interactions/definitions.ts +22 -20
- package/src/Interactions/gateway.ts +14 -6
- package/src/Interactions/handlers.ts +1 -1
- package/src/Interactions/webhook.ts +18 -4
- package/src/RateLimit/memory.ts +2 -2
- package/src/RateLimit.ts +17 -8
- package/src/gateway.ts +0 -2
- package/src/index.ts +0 -2
- package/src/version.ts +1 -1
- package/src/webhooks.ts +1 -2
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/webhooks.d.ts +1 -2
- package/webhooks.d.ts.map +1 -1
- package/webhooks.js +1 -2
- package/webhooks.js.map +1 -1
- package/src/Log.ts +0 -24
package/RateLimit.d.ts
CHANGED
|
@@ -3,13 +3,12 @@ import * as Duration from "effect/Duration";
|
|
|
3
3
|
import type * as Option from "effect/Option";
|
|
4
4
|
import * as Effect from "effect/Effect";
|
|
5
5
|
import * as Layer from "effect/Layer";
|
|
6
|
-
import { Log } from "dfx/Log";
|
|
7
6
|
export type BucketDetails = {
|
|
8
7
|
key: "global" | string;
|
|
9
8
|
resetAfter: number;
|
|
10
9
|
limit: number;
|
|
11
10
|
};
|
|
12
|
-
export interface
|
|
11
|
+
export interface RateLimitStoreService {
|
|
13
12
|
readonly hasBucket: (bucketKey: string) => Effect.Effect<never, never, boolean>;
|
|
14
13
|
readonly putBucket: (bucket: BucketDetails) => Effect.Effect<never, never, void>;
|
|
15
14
|
readonly getBucketForRoute: (route: string) => Effect.Effect<never, never, Option.Option<BucketDetails>>;
|
|
@@ -17,14 +16,16 @@ export interface RateLimitStore {
|
|
|
17
16
|
readonly incrementCounter: (key: string, window: number, limit: number) => Effect.Effect<never, never, readonly [count: number, ttl: number]>;
|
|
18
17
|
readonly removeCounter: (key: string) => Effect.Effect<never, never, void>;
|
|
19
18
|
}
|
|
20
|
-
export
|
|
19
|
+
export interface RateLimitStore {
|
|
20
|
+
readonly _: unique symbol;
|
|
21
|
+
}
|
|
22
|
+
export declare const RateLimitStore: Tag<RateLimitStore, RateLimitStoreService>;
|
|
21
23
|
export declare const MemoryRateLimitStoreLive: Layer.Layer<never, never, RateLimitStore>;
|
|
22
|
-
|
|
24
|
+
export interface RateLimiter {
|
|
25
|
+
readonly _: unique symbol;
|
|
26
|
+
}
|
|
27
|
+
export declare const RateLimiter: Tag<RateLimiter, {
|
|
23
28
|
maybeWait: (key: string, window: Duration.Duration, limit: number, multiplier?: number) => Effect.Effect<never, never, void>;
|
|
24
29
|
}>;
|
|
25
|
-
export
|
|
26
|
-
}
|
|
27
|
-
export declare const RateLimiter: Tag<RateLimiter, RateLimiter>;
|
|
28
|
-
export declare const RateLimiterLive: Layer.Layer<Log | RateLimitStore, never, RateLimiter>;
|
|
29
|
-
export {};
|
|
30
|
+
export declare const RateLimiterLive: Layer.Layer<RateLimitStore, never, RateLimiter>;
|
|
30
31
|
//# sourceMappingURL=RateLimit.d.ts.map
|
package/RateLimit.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RateLimit.d.ts","sourceRoot":"","sources":["./src/RateLimit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AACpC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"RateLimit.d.ts","sourceRoot":"","sources":["./src/RateLimit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AACpC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAIrC,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,EAAE,QAAQ,GAAG,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,CAClB,SAAS,EAAE,MAAM,KACd,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;IAEzC,QAAQ,CAAC,SAAS,EAAE,CAClB,MAAM,EAAE,aAAa,KAClB,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IAEtC,QAAQ,CAAC,iBAAiB,EAAE,CAC1B,KAAK,EAAE,MAAM,KACV,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAA;IAE9D,QAAQ,CAAC,cAAc,EAAE,CACvB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,KACd,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IAEtC,QAAQ,CAAC,gBAAgB,EAAE,CACzB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,KACV,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;IAEvE,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;CAC3E;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,CAAC,EAAE,OAAO,MAAM,CAAA;CAC1B;AAED,eAAO,MAAM,cAAc,4CAE1B,CAAA;AACD,eAAO,MAAM,wBAAwB,2CAA0C,CAAA;AAmC/E,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,CAAC,EAAE,OAAO,MAAM,CAAA;CAC1B;AACD,eAAO,MAAM,WAAW;qBAhCf,MAAM,UACH,iBAAiB,SAClB,MAAM;EAiCa,CAAA;AAC9B,eAAO,MAAM,eAAe,iDAAyC,CAAA"}
|
package/RateLimit.js
CHANGED
|
@@ -8,19 +8,18 @@ var _Context = /*#__PURE__*/require("effect/Context");
|
|
|
8
8
|
var Duration = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Duration"));
|
|
9
9
|
var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
|
|
10
10
|
var Layer = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Layer"));
|
|
11
|
-
var _Log = /*#__PURE__*/require("dfx/Log");
|
|
12
11
|
var Memory = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/RateLimit/memory"));
|
|
13
12
|
var _utils = /*#__PURE__*/require("dfx/RateLimit/utils");
|
|
14
13
|
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); }
|
|
15
14
|
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; }
|
|
16
|
-
const RateLimitStore = exports.RateLimitStore = /*#__PURE__*/(0, _Context.Tag)();
|
|
15
|
+
const RateLimitStore = exports.RateLimitStore = /*#__PURE__*/(0, _Context.Tag)("dfx/RateLimit/RateLimitStore");
|
|
17
16
|
const MemoryRateLimitStoreLive = exports.MemoryRateLimitStoreLive = /*#__PURE__*/Layer.sync(RateLimitStore, Memory.make);
|
|
18
17
|
const makeLimiter = /*#__PURE__*/Effect.gen(function* (_) {
|
|
19
18
|
const store = yield* _(RateLimitStore);
|
|
20
|
-
const log = yield* _(_Log.Log);
|
|
21
19
|
const maybeWait = (key, window, limit, multiplier = 1.05) => {
|
|
22
20
|
const windowMs = Duration.toMillis(window) * multiplier;
|
|
23
|
-
return store.incrementCounter(key, windowMs, limit).pipe(Effect.map(([count, ttl]) => (0, _utils.delayFrom)(windowMs, limit, count, ttl)), Effect.tap(d =>
|
|
21
|
+
return store.incrementCounter(key, windowMs, limit).pipe(Effect.map(([count, ttl]) => (0, _utils.delayFrom)(windowMs, limit, count, ttl)), Effect.tap(d => Effect.annotateLogs(Effect.logTrace("maybeWait"), {
|
|
22
|
+
service: "RateLimit",
|
|
24
23
|
key,
|
|
25
24
|
window: Duration.toMillis(window),
|
|
26
25
|
windowMs,
|
|
@@ -32,6 +31,6 @@ const makeLimiter = /*#__PURE__*/Effect.gen(function* (_) {
|
|
|
32
31
|
maybeWait
|
|
33
32
|
};
|
|
34
33
|
});
|
|
35
|
-
const RateLimiter = exports.RateLimiter = /*#__PURE__*/(0, _Context.Tag)();
|
|
34
|
+
const RateLimiter = exports.RateLimiter = /*#__PURE__*/(0, _Context.Tag)("dfx/RateLimit/RateLimiter");
|
|
36
35
|
const RateLimiterLive = exports.RateLimiterLive = /*#__PURE__*/Layer.effect(RateLimiter, makeLimiter);
|
|
37
36
|
//# sourceMappingURL=RateLimit.js.map
|
package/RateLimit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RateLimit.js","names":["_Context","require","Duration","_interopRequireWildcard","Effect","Layer","
|
|
1
|
+
{"version":3,"file":"RateLimit.js","names":["_Context","require","Duration","_interopRequireWildcard","Effect","Layer","Memory","_utils","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","RateLimitStore","exports","Tag","MemoryRateLimitStoreLive","sync","make","makeLimiter","gen","_","store","maybeWait","key","window","limit","multiplier","windowMs","toMillis","incrementCounter","pipe","map","count","ttl","delayFrom","tap","d","annotateLogs","logTrace","service","delay","unit","sleep","asUnit","RateLimiter","RateLimiterLive","effect"],"sources":["./src/RateLimit.ts"],"sourcesContent":[null],"mappings":"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"}
|
package/gateway.d.ts
CHANGED
|
@@ -8,6 +8,6 @@ import * as Layer from "effect/Layer";
|
|
|
8
8
|
export { DiscordGateway, DiscordGatewayLive } from "dfx/DiscordGateway";
|
|
9
9
|
export { InteractionsRegistry, InteractionsRegistryLive, interactionsSync, run as runIx, setInteractionsSync, } from "dfx/Interactions/gateway";
|
|
10
10
|
export { CachePrelude, DiscordWS, SendEvent, Shard, ShardStore, WS };
|
|
11
|
-
export declare const DiscordLive: Layer.Layer<import("./DiscordConfig").DiscordConfig, never, import("dfx/
|
|
12
|
-
export declare const DiscordIxLive: Layer.Layer<import("./DiscordConfig").DiscordConfig, never, import("dfx/
|
|
11
|
+
export declare const DiscordLive: Layer.Layer<import("./DiscordConfig").DiscordConfig, never, import("dfx/RateLimit").RateLimiter | import("dfx/DiscordREST").DiscordREST | import("dfx/DiscordGateway").DiscordGateway>;
|
|
12
|
+
export declare const DiscordIxLive: Layer.Layer<import("./DiscordConfig").DiscordConfig, never, import("dfx/RateLimit").RateLimiter | import("dfx/DiscordREST").DiscordREST | import("dfx/DiscordGateway").DiscordGateway | import("dfx/Interactions/gateway").InteractionsRegistry>;
|
|
13
13
|
//# sourceMappingURL=gateway.d.ts.map
|
package/gateway.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["./src/gateway.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD,OAAO,KAAK,SAAS,MAAM,8BAA8B,CAAA;AAEzD,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAA;AACjD,OAAO,KAAK,SAAS,MAAM,qCAAqC,CAAA;AAChE,OAAO,KAAK,UAAU,MAAM,+BAA+B,CAAA;AAE3D,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["./src/gateway.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD,OAAO,KAAK,SAAS,MAAM,8BAA8B,CAAA;AAEzD,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAA;AACjD,OAAO,KAAK,SAAS,MAAM,qCAAqC,CAAA;AAChE,OAAO,KAAK,UAAU,MAAM,+BAA+B,CAAA;AAE3D,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAI3C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAEvE,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,gBAAgB,EAChB,GAAG,IAAI,KAAK,EACZ,mBAAmB,GACpB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,CAAA;AAEpE,eAAO,MAAM,WAAW,wLAQvB,CAAA;AAED,eAAO,MAAM,aAAa,kPAEzB,CAAA"}
|
package/gateway.js
CHANGED
|
@@ -65,11 +65,10 @@ var WS = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/Discord
|
|
|
65
65
|
exports.WS = WS;
|
|
66
66
|
var _DiscordREST = /*#__PURE__*/require("dfx/DiscordREST");
|
|
67
67
|
var _gateway = /*#__PURE__*/require("dfx/Interactions/gateway");
|
|
68
|
-
var _Log = /*#__PURE__*/require("dfx/Log");
|
|
69
68
|
var _RateLimit = /*#__PURE__*/require("dfx/RateLimit");
|
|
70
69
|
var Layer = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Layer"));
|
|
71
70
|
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); }
|
|
72
71
|
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; }
|
|
73
|
-
const DiscordLive = exports.DiscordLive = /*#__PURE__*/Layer.mergeAll(_RateLimit.RateLimiterLive, _DiscordGateway.DiscordGatewayLive).pipe( /*#__PURE__*/Layer.provideMerge(_DiscordREST.DiscordRESTLive), /*#__PURE__*/Layer.provide(_DiscordWS.JsonDiscordWSCodecLive), /*#__PURE__*/Layer.provide(_RateLimit.MemoryRateLimitStoreLive), /*#__PURE__*/Layer.provide(_ShardStore.MemoryShardStoreLive)
|
|
72
|
+
const DiscordLive = exports.DiscordLive = /*#__PURE__*/Layer.mergeAll(_RateLimit.RateLimiterLive, _DiscordGateway.DiscordGatewayLive).pipe( /*#__PURE__*/Layer.provideMerge(_DiscordREST.DiscordRESTLive), /*#__PURE__*/Layer.provide(_DiscordWS.JsonDiscordWSCodecLive), /*#__PURE__*/Layer.provide(_RateLimit.MemoryRateLimitStoreLive), /*#__PURE__*/Layer.provide(_ShardStore.MemoryShardStoreLive));
|
|
74
73
|
const DiscordIxLive = exports.DiscordIxLive = /*#__PURE__*/_gateway.InteractionsRegistryLive.pipe( /*#__PURE__*/Layer.provideMerge(DiscordLive));
|
|
75
74
|
//# sourceMappingURL=gateway.js.map
|
package/gateway.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway.js","names":["CachePrelude","_interopRequireWildcard","require","exports","_DiscordGateway","_DiscordWS","DiscordWS","Shard","SendEvent","_ShardStore","ShardStore","WS","_DiscordREST","_gateway","
|
|
1
|
+
{"version":3,"file":"gateway.js","names":["CachePrelude","_interopRequireWildcard","require","exports","_DiscordGateway","_DiscordWS","DiscordWS","Shard","SendEvent","_ShardStore","ShardStore","WS","_DiscordREST","_gateway","_RateLimit","Layer","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","DiscordLive","mergeAll","RateLimiterLive","DiscordGatewayLive","pipe","provideMerge","DiscordRESTLive","provide","JsonDiscordWSCodecLive","MemoryRateLimitStoreLive","MemoryShardStoreLive","DiscordIxLive","InteractionsRegistryLive"],"sources":["./src/gateway.ts"],"sourcesContent":[null],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -7,9 +7,8 @@ import * as Members from "dfx/Helpers/members";
|
|
|
7
7
|
import * as Perms from "dfx/Helpers/permissions";
|
|
8
8
|
import * as UI from "dfx/Helpers/ui";
|
|
9
9
|
import * as Ix from "dfx/Interactions/index";
|
|
10
|
-
import * as Log from "dfx/Log";
|
|
11
10
|
import * as Discord from "dfx/types";
|
|
12
11
|
export { DiscordREST, DiscordRESTLive } from "dfx/DiscordREST";
|
|
13
12
|
export { BucketDetails, MemoryRateLimitStoreLive, RateLimiterLive, RateLimiter, RateLimitStore, } from "dfx/RateLimit";
|
|
14
|
-
export { Cache, Discord, DiscordConfig, Flags, Intents, Ix, IxHelpers,
|
|
13
|
+
export { Cache, Discord, DiscordConfig, Flags, Intents, Ix, IxHelpers, Members, Perms, UI, };
|
|
15
14
|
//# sourceMappingURL=index.d.ts.map
|
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["./src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,WAAW,CAAA;AAClC,OAAO,KAAK,aAAa,MAAM,mBAAmB,CAAA;AAClD,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAA;AAC1C,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAA;AAC9C,OAAO,KAAK,SAAS,MAAM,0BAA0B,CAAA;AACrD,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAA;AAC9C,OAAO,KAAK,KAAK,MAAM,yBAAyB,CAAA;AAChD,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACpC,OAAO,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAC5C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["./src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,WAAW,CAAA;AAClC,OAAO,KAAK,aAAa,MAAM,mBAAmB,CAAA;AAClD,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAA;AAC1C,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAA;AAC9C,OAAO,KAAK,SAAS,MAAM,0BAA0B,CAAA;AACrD,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAA;AAC9C,OAAO,KAAK,KAAK,MAAM,yBAAyB,CAAA;AAChD,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACpC,OAAO,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAC5C,OAAO,KAAK,OAAO,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAE9D,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,eAAe,EACf,WAAW,EACX,cAAc,GACf,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,KAAK,EACL,OAAO,EACP,aAAa,EACb,KAAK,EACL,OAAO,EACP,EAAE,EACF,SAAS,EACT,OAAO,EACP,KAAK,EACL,EAAE,GACH,CAAA"}
|
package/index.js
CHANGED
|
@@ -16,7 +16,7 @@ Object.defineProperty(exports, "DiscordRESTLive", {
|
|
|
16
16
|
return _DiscordREST.DiscordRESTLive;
|
|
17
17
|
}
|
|
18
18
|
});
|
|
19
|
-
exports.Members = exports.
|
|
19
|
+
exports.Members = exports.IxHelpers = exports.Ix = exports.Intents = exports.Flags = void 0;
|
|
20
20
|
Object.defineProperty(exports, "MemoryRateLimitStoreLive", {
|
|
21
21
|
enumerable: true,
|
|
22
22
|
get: function () {
|
|
@@ -61,8 +61,6 @@ var UI = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/Helpers
|
|
|
61
61
|
exports.UI = UI;
|
|
62
62
|
var Ix = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/Interactions/index"));
|
|
63
63
|
exports.Ix = Ix;
|
|
64
|
-
var Log = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/Log"));
|
|
65
|
-
exports.Log = Log;
|
|
66
64
|
var Discord = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/types"));
|
|
67
65
|
exports.Discord = Discord;
|
|
68
66
|
var _DiscordREST = /*#__PURE__*/require("dfx/DiscordREST");
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["Cache","_interopRequireWildcard","require","exports","DiscordConfig","Flags","Intents","IxHelpers","Members","Perms","UI","Ix","
|
|
1
|
+
{"version":3,"file":"index.js","names":["Cache","_interopRequireWildcard","require","exports","DiscordConfig","Flags","Intents","IxHelpers","Members","Perms","UI","Ix","Discord","_DiscordREST","_RateLimit","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set"],"sources":["./src/index.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,KAAA,gBAAAC,uBAAA,eAAAC,OAAA;AAAkCC,OAAA,CAAAH,KAAA,GAAAA,KAAA;AAClC,IAAAI,aAAA,gBAAAH,uBAAA,eAAAC,OAAA;AAAkDC,OAAA,CAAAC,aAAA,GAAAA,aAAA;AAClD,IAAAC,KAAA,gBAAAJ,uBAAA,eAAAC,OAAA;AAA0CC,OAAA,CAAAE,KAAA,GAAAA,KAAA;AAC1C,IAAAC,OAAA,gBAAAL,uBAAA,eAAAC,OAAA;AAA8CC,OAAA,CAAAG,OAAA,GAAAA,OAAA;AAC9C,IAAAC,SAAA,gBAAAN,uBAAA,eAAAC,OAAA;AAAqDC,OAAA,CAAAI,SAAA,GAAAA,SAAA;AACrD,IAAAC,OAAA,gBAAAP,uBAAA,eAAAC,OAAA;AAA8CC,OAAA,CAAAK,OAAA,GAAAA,OAAA;AAC9C,IAAAC,KAAA,gBAAAR,uBAAA,eAAAC,OAAA;AAAgDC,OAAA,CAAAM,KAAA,GAAAA,KAAA;AAChD,IAAAC,EAAA,gBAAAT,uBAAA,eAAAC,OAAA;AAAoCC,OAAA,CAAAO,EAAA,GAAAA,EAAA;AACpC,IAAAC,EAAA,gBAAAV,uBAAA,eAAAC,OAAA;AAA4CC,OAAA,CAAAQ,EAAA,GAAAA,EAAA;AAC5C,IAAAC,OAAA,gBAAAX,uBAAA,eAAAC,OAAA;AAAoCC,OAAA,CAAAS,OAAA,GAAAA,OAAA;AAEpC,IAAAC,YAAA,gBAAAX,OAAA;AAEA,IAAAY,UAAA,gBAAAZ,OAAA;AAMsB,SAAAa,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,SAAAf,wBAAAe,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,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA"}
|
package/mjs/DiscordConfig.mjs
CHANGED
|
@@ -5,15 +5,13 @@ import * as Effect from "effect/Effect";
|
|
|
5
5
|
import * as Layer from "effect/Layer";
|
|
6
6
|
import * as Discord from "dfx/types";
|
|
7
7
|
const VERSION = 10;
|
|
8
|
-
export const DiscordConfig = /*#__PURE__*/Tag();
|
|
8
|
+
export const DiscordConfig = /*#__PURE__*/Tag("dfx/DiscordConfig");
|
|
9
9
|
export const make = ({
|
|
10
|
-
debug = false,
|
|
11
10
|
gateway,
|
|
12
11
|
rest,
|
|
13
12
|
token
|
|
14
13
|
}) => ({
|
|
15
14
|
token,
|
|
16
|
-
debug,
|
|
17
15
|
rest: {
|
|
18
16
|
baseUrl: `https://discord.com/api/v${VERSION}`,
|
|
19
17
|
...(rest ?? {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiscordConfig.mjs","names":["Tag","Duration","Config","Effect","Layer","Discord","VERSION","DiscordConfig","make","
|
|
1
|
+
{"version":3,"file":"DiscordConfig.mjs","names":["Tag","Duration","Config","Effect","Layer","Discord","VERSION","DiscordConfig","make","gateway","rest","token","baseUrl","globalRateLimit","limit","window","seconds","intents","GatewayIntents","GUILDS","identifyRateLimit","layer","opts","succeed","layerConfig","_","effect","map","config","unwrap"],"sources":["../src/DiscordConfig.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAG,QAAQ,gBAAgB;AACpC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AAGvC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,OAAO,MAAM,WAAW;AAEpC,MAAMC,OAAO,GAAG,EAAE;AAuBlB,OAAO,MAAMC,aAAa,gBAAGP,GAAG,CAC9B,mBAAmB,CACpB;AAQD,OAAO,MAAMQ,IAAI,GAAGA,CAAC;EACnBC,OAAO;EACPC,IAAI;EACJC;AAAK,CACI,MAA4B;EACrCA,KAAK;EACLD,IAAI,EAAE;IACJE,OAAO,EAAE,4BAA4BN,OAAO,EAAE;IAC9C,IAAII,IAAI,IAAI,EAAE,CAAC;IACfG,eAAe,EAAE;MACfC,KAAK,EAAE,EAAE;MACTC,MAAM,EAAEd,QAAQ,CAACe,OAAO,CAAC,CAAC,CAAC;MAC3B,IAAIN,IAAI,EAAEG,eAAe,IAAI,EAAE;;GAElC;EACDJ,OAAO,EAAE;IACPQ,OAAO,EAAEZ,OAAO,CAACa,cAAc,CAACC,MAAM;IACtCC,iBAAiB,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5B,IAAIX,OAAO,IAAI,EAAE;;CAEpB,CAAC;AAEF,OAAO,MAAMY,KAAK,GAChBC,IAAc,IAEdlB,KAAK,CAACmB,OAAO,CAAChB,aAAa,EAAEC,IAAI,CAACc,IAAI,CAAC,CAAC;AAE1C,OAAO,MAAME,WAAW,GACtBC,CAA+B,IAE/BrB,KAAK,CAACsB,MAAM,CAACnB,aAAa,EAAEJ,MAAM,CAACwB,GAAG,CAACxB,MAAM,CAACyB,MAAM,CAAC1B,MAAM,CAAC2B,MAAM,CAACJ,CAAC,CAAC,CAAC,EAAEjB,IAAI,CAAC,CAAC"}
|
|
@@ -3,7 +3,7 @@ import * as Effect from "effect/Effect";
|
|
|
3
3
|
import * as Layer from "effect/Layer";
|
|
4
4
|
import * as Ref from "effect/Ref";
|
|
5
5
|
import { WSLive, Reconnect, WS } from "dfx/DiscordGateway/WS";
|
|
6
|
-
export const DiscordWSCodec = /*#__PURE__*/Tag();
|
|
6
|
+
export const DiscordWSCodec = /*#__PURE__*/Tag("dfx/DiscordGateway/DiscordWS/Codec");
|
|
7
7
|
export const JsonDiscordWSCodecLive = /*#__PURE__*/Layer.succeed(DiscordWSCodec, {
|
|
8
8
|
type: "json",
|
|
9
9
|
encode: p => JSON.stringify(p),
|
|
@@ -21,11 +21,14 @@ const make = /*#__PURE__*/Effect.gen(function* (_) {
|
|
|
21
21
|
const urlRef = yield* _(Ref.make(`${url}?v=${version}&encoding=${encoding.type}`));
|
|
22
22
|
const setUrl = url => Ref.set(urlRef, `${url}?v=${version}&encoding=${encoding.type}`);
|
|
23
23
|
const takeOutbound = Effect.map(outbound, msg => msg === Reconnect ? msg : encoding.encode(msg));
|
|
24
|
-
const socket = yield* _(ws.connect(
|
|
24
|
+
const socket = yield* _(ws.connect({
|
|
25
|
+
urlRef,
|
|
26
|
+
takeOutbound,
|
|
27
|
+
onConnecting,
|
|
28
|
+
reconnectWhen: e => e._tag === "WebSocketCloseError" && e.code < 2000 || e._tag === "WebSocketError" && e.reason === "open-timeout"
|
|
29
|
+
}));
|
|
25
30
|
const take = Effect.map(socket.take, encoding.decode);
|
|
26
|
-
const run = Effect.retryWhile(socket.run, e => e._tag === "WebSocketCloseError" && e.code < 2000 || e._tag === "WebSocketError" && e.reason === "open-timeout");
|
|
27
31
|
return {
|
|
28
|
-
run,
|
|
29
32
|
take,
|
|
30
33
|
setUrl
|
|
31
34
|
};
|
|
@@ -34,6 +37,6 @@ const make = /*#__PURE__*/Effect.gen(function* (_) {
|
|
|
34
37
|
connect
|
|
35
38
|
};
|
|
36
39
|
});
|
|
37
|
-
export const DiscordWS = /*#__PURE__*/Tag();
|
|
40
|
+
export const DiscordWS = /*#__PURE__*/Tag("dfx/DiscordGateway/DiscordWS");
|
|
38
41
|
export const DiscordWSLive = /*#__PURE__*/Layer.provide( /*#__PURE__*/Layer.effect(DiscordWS, make), WSLive);
|
|
39
42
|
//# sourceMappingURL=DiscordWS.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiscordWS.mjs","names":["Tag","Effect","Layer","Ref","WSLive","Reconnect","WS","DiscordWSCodec","JsonDiscordWSCodecLive","succeed","type","encode","p","JSON","stringify","decode","parse","toString","make","gen","_","ws","encoding","connect","onConnecting","outbound","url","version","urlRef","setUrl","set","takeOutbound","map","msg","socket","
|
|
1
|
+
{"version":3,"file":"DiscordWS.mjs","names":["Tag","Effect","Layer","Ref","WSLive","Reconnect","WS","DiscordWSCodec","JsonDiscordWSCodecLive","succeed","type","encode","p","JSON","stringify","decode","parse","toString","make","gen","_","ws","encoding","connect","onConnecting","outbound","url","version","urlRef","setUrl","set","takeOutbound","map","msg","socket","reconnectWhen","e","_tag","code","reason","take","DiscordWS","DiscordWSLive","provide","effect"],"sources":["../../src/DiscordGateway/DiscordWS.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAG,QAAQ,gBAAgB;AACpC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,GAAG,MAAM,YAAY;AACjC,SAASC,MAAM,EAAEC,SAAS,EAAEC,EAAE,QAAQ,uBAAuB;AAsB7D,OAAO,MAAMC,cAAc,gBAAGP,GAAG,CAC/B,oCAAoC,CACrC;AACD,OAAO,MAAMQ,sBAAsB,gBAAGN,KAAK,CAACO,OAAO,CAACF,cAAc,EAAE;EAClEG,IAAI,EAAE,MAAM;EACZC,MAAM,EAAEC,CAAC,IAAIC,IAAI,CAACC,SAAS,CAACF,CAAC,CAAC;EAC9BG,MAAM,EAAEH,CAAC,IAAIC,IAAI,CAACG,KAAK,CAACJ,CAAC,CAACK,QAAQ,CAAC,MAAM,CAAC;CAC3C,CAAC;AAEF,MAAMC,IAAI,gBAAGjB,MAAM,CAACkB,GAAG,CAAC,WAAWC,CAAC;EAClC,MAAMC,EAAE,GAAG,OAAOD,CAAC,CAACd,EAAE,CAAC;EACvB,MAAMgB,QAAQ,GAAG,OAAOF,CAAC,CAACb,cAAc,CAAC;EAEzC,MAAMgB,OAAO,GAAGA,CAAC;IACfC,YAAY;IACZC,QAAQ;IACRC,GAAG,GAAG,2BAA2B;IACjCC,OAAO,GAAG;EAAE,CACH,KACT1B,MAAM,CAACkB,GAAG,CAAC,WAAWC,CAAC;IACrB,MAAMQ,MAAM,GAAG,OAAOR,CAAC,CACrBjB,GAAG,CAACe,IAAI,CAAC,GAAGQ,GAAG,MAAMC,OAAO,aAAaL,QAAQ,CAACZ,IAAI,EAAE,CAAC,CAC1D;IACD,MAAMmB,MAAM,GAAIH,GAAW,IACzBvB,GAAG,CAAC2B,GAAG,CAACF,MAAM,EAAE,GAAGF,GAAG,MAAMC,OAAO,aAAaL,QAAQ,CAACZ,IAAI,EAAE,CAAC;IAClE,MAAMqB,YAAY,GAAG9B,MAAM,CAAC+B,GAAG,CAACP,QAAQ,EAAEQ,GAAG,IAC3CA,GAAG,KAAK5B,SAAS,GAAG4B,GAAG,GAAGX,QAAQ,CAACX,MAAM,CAACsB,GAAG,CAAC,CAC/C;IACD,MAAMC,MAAM,GAAG,OAAOd,CAAC,CACrBC,EAAE,CAACE,OAAO,CAAC;MACTK,MAAM;MACNG,YAAY;MACZP,YAAY;MACZW,aAAa,EAAEC,CAAC,IACbA,CAAC,CAACC,IAAI,KAAK,qBAAqB,IAAID,CAAC,CAACE,IAAI,GAAG,IAAI,IACjDF,CAAC,CAACC,IAAI,KAAK,gBAAgB,IAAID,CAAC,CAACG,MAAM,KAAK;KAChD,CAAC,CACH;IACD,MAAMC,IAAI,GAAGvC,MAAM,CAAC+B,GAAG,CAACE,MAAM,CAACM,IAAI,EAAElB,QAAQ,CAACP,MAAM,CAAC;IAErD,OAAO;MACLyB,IAAI;MACJX;KACQ;EACZ,CAAC,CAAC;EAEJ,OAAO;IAAEN;EAAO,CAAW;AAC7B,CAAC,CAAC;AAKF,OAAO,MAAMkB,SAAS,gBAAGzC,GAAG,CAC1B,8BAA8B,CAC/B;AACD,OAAO,MAAM0C,aAAa,gBAAGxC,KAAK,CAACyC,OAAO,eACxCzC,KAAK,CAAC0C,MAAM,CAACH,SAAS,EAAEvB,IAAI,CAAC,EAC7Bd,MAAM,CACP"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Tag } from "effect/Context";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as PubSub from "effect/PubSub";
|
|
4
|
+
import * as Layer from "effect/Layer";
|
|
5
|
+
import * as Queue from "effect/Queue";
|
|
6
|
+
import * as Stream from "effect/Stream";
|
|
7
|
+
import * as EffectUtils from "dfx/utils/Effect";
|
|
8
|
+
const fromDispatchFactory = source => event => Stream.map(Stream.filter(source, p => p.t === event), p => p.d);
|
|
9
|
+
const handleDispatchFactory = hub => (event, handle) => EffectUtils.subscribeForEachPar(hub, _ => {
|
|
10
|
+
if (_.t === event) {
|
|
11
|
+
return handle(_.d);
|
|
12
|
+
}
|
|
13
|
+
return Effect.unit;
|
|
14
|
+
});
|
|
15
|
+
export const make = /*#__PURE__*/Effect.gen(function* (_) {
|
|
16
|
+
const hub = yield* _(Effect.acquireRelease(PubSub.unbounded(), PubSub.shutdown));
|
|
17
|
+
const sendQueue = yield* _(Effect.acquireRelease(Queue.unbounded(), Queue.shutdown));
|
|
18
|
+
const send = payload => sendQueue.offer(payload);
|
|
19
|
+
const dispatch = Stream.fromPubSub(hub);
|
|
20
|
+
const fromDispatch = fromDispatchFactory(dispatch);
|
|
21
|
+
const handleDispatch = handleDispatchFactory(hub);
|
|
22
|
+
return {
|
|
23
|
+
hub,
|
|
24
|
+
sendQueue,
|
|
25
|
+
dispatch,
|
|
26
|
+
fromDispatch,
|
|
27
|
+
handleDispatch,
|
|
28
|
+
send
|
|
29
|
+
};
|
|
30
|
+
});
|
|
31
|
+
export const Messaging = /*#__PURE__*/Tag("dfx/DiscordGateway/Messaging");
|
|
32
|
+
export const MesssagingLive = /*#__PURE__*/Layer.scoped(Messaging, make);
|
|
33
|
+
//# sourceMappingURL=Messaging.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Messaging.mjs","names":["Tag","Effect","PubSub","Layer","Queue","Stream","EffectUtils","fromDispatchFactory","source","event","map","filter","p","t","d","handleDispatchFactory","hub","handle","subscribeForEachPar","_","unit","make","gen","acquireRelease","unbounded","shutdown","sendQueue","send","payload","offer","dispatch","fromPubSub","fromDispatch","handleDispatch","Messaging","MesssagingLive","scoped"],"sources":["../../src/DiscordGateway/Messaging.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAG,QAAQ,gBAAgB;AACpC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AAEvC,OAAO,KAAKC,WAAW,MAAM,kBAAkB;AAE/C,MAAMC,mBAAmB,GAErBC,MAAyE,IAGzEC,KAAQ,IAERJ,MAAM,CAACK,GAAG,CACRL,MAAM,CAACM,MAAM,CAACH,MAAM,EAAEI,CAAC,IAAIA,CAAC,CAACC,CAAC,KAAKJ,KAAK,CAAC,EACzCG,CAAC,IAAIA,CAAC,CAACE,CAAS,CACjB;AAEL,MAAMC,qBAAqB,GACxBC,GAAgE,IACjE,CACEP,KAAQ,EACRQ,MAAmE,KAEnEX,WAAW,CAACY,mBAAmB,CAACF,GAAG,EAAEG,CAAC,IAAG;EACvC,IAAIA,CAAC,CAACN,CAAC,KAAKJ,KAAK,EAAE;IACjB,OAAOQ,MAAM,CAACE,CAAC,CAACL,CAAQ,CAAC;EAC3B;EACA,OAAOb,MAAM,CAACmB,IAAW;AAC3B,CAAC,CAAC;AAEN,OAAO,MAAMC,IAAI,gBAAGpB,MAAM,CAACqB,GAAG,CAAC,WAAWH,CAAC;EACzC,MAAMH,GAAG,GAAG,OAAOG,CAAC,CAClBlB,MAAM,CAACsB,cAAc,CACnBrB,MAAM,CAACsB,SAAS,EAAgD,EAChEtB,MAAM,CAACuB,QAAQ,CAChB,CACF;EAED,MAAMC,SAAS,GAAG,OAAOP,CAAC,CACxBlB,MAAM,CAACsB,cAAc,CACnBnB,KAAK,CAACoB,SAAS,EAA6C,EAC5DpB,KAAK,CAACqB,QAAQ,CACf,CACF;EACD,MAAME,IAAI,GAAIC,OAAkD,IAC9DF,SAAS,CAACG,KAAK,CAACD,OAAO,CAAC;EAE1B,MAAME,QAAQ,GAAGzB,MAAM,CAAC0B,UAAU,CAACf,GAAG,CAAC;EACvC,MAAMgB,YAAY,GAAGzB,mBAAmB,CAACuB,QAAQ,CAAC;EAClD,MAAMG,cAAc,GAAGlB,qBAAqB,CAACC,GAAG,CAAC;EAEjD,OAAO;IACLA,GAAG;IACHU,SAAS;IACTI,QAAQ;IACRE,YAAY;IACZC,cAAc;IACdN;GACQ;AACZ,CAAC,CAAC;AAKF,OAAO,MAAMO,SAAS,gBAAGlC,GAAG,CAC1B,8BAA8B,CAC/B;AACD,OAAO,MAAMmC,cAAc,gBAAGhC,KAAK,CAACiC,MAAM,CAACF,SAAS,EAAEb,IAAI,CAAC"}
|
|
@@ -16,9 +16,9 @@ import * as Identify from "dfx/DiscordGateway/Shard/identify";
|
|
|
16
16
|
import * as InvalidSession from "dfx/DiscordGateway/Shard/invalidSession";
|
|
17
17
|
import * as Utils from "dfx/DiscordGateway/Shard/utils";
|
|
18
18
|
import { Reconnect } from "dfx/DiscordGateway/WS";
|
|
19
|
-
import { Log } from "dfx/Log";
|
|
20
19
|
import { RateLimiterLive, RateLimiter } from "dfx/RateLimit";
|
|
21
20
|
import * as Discord from "dfx/types";
|
|
21
|
+
import { Messaging, MesssagingLive } from "dfx/DiscordGateway/Messaging";
|
|
22
22
|
export const make = /*#__PURE__*/Effect.gen(function* (_) {
|
|
23
23
|
const {
|
|
24
24
|
gateway,
|
|
@@ -26,12 +26,15 @@ export const make = /*#__PURE__*/Effect.gen(function* (_) {
|
|
|
26
26
|
} = yield* _(DiscordConfig);
|
|
27
27
|
const limiter = yield* _(RateLimiter);
|
|
28
28
|
const dws = yield* _(DiscordWS);
|
|
29
|
-
const
|
|
30
|
-
|
|
29
|
+
const {
|
|
30
|
+
hub,
|
|
31
|
+
sendQueue
|
|
32
|
+
} = yield* _(Messaging);
|
|
33
|
+
const connect = shard => Effect.gen(function* (_) {
|
|
31
34
|
const outboundQueue = yield* _(Queue.unbounded());
|
|
32
35
|
const pendingQueue = yield* _(Queue.unbounded());
|
|
33
36
|
const phase = yield* _(Ref.make(0 /* Phase.Connecting */));
|
|
34
|
-
const setPhase = p => Effect.zipLeft(Ref.set(phase, p),
|
|
37
|
+
const setPhase = p => Effect.zipLeft(Ref.set(phase, p), Effect.annotateLogs(Effect.logTrace("phase transition"), "phase", p));
|
|
35
38
|
const outbound = Effect.zipLeft(Queue.take(outboundQueue), limiter.maybeWait("dfx.shard.send", Duration.minutes(1), 120));
|
|
36
39
|
const send = p => Effect.flatMap(Ref.get(phase), phase => phase === 2 /* Phase.Connected */ ? Queue.offer(outboundQueue, p) : Queue.offer(pendingQueue, p));
|
|
37
40
|
const heartbeatSend = p => Effect.flatMap(Ref.get(phase), phase => phase !== 0 /* Phase.Connecting */ ? Queue.offer(outboundQueue, p) : Effect.succeed(false));
|
|
@@ -51,10 +54,10 @@ export const make = /*#__PURE__*/Effect.gen(function* (_) {
|
|
|
51
54
|
resume_gateway_url
|
|
52
55
|
}) => socket.setUrl(resume_gateway_url)
|
|
53
56
|
});
|
|
54
|
-
const hellos = yield* _(Queue.unbounded());
|
|
55
|
-
const acks = yield* _(Queue.unbounded());
|
|
57
|
+
const hellos = yield* _(Effect.acquireRelease(Queue.unbounded(), Queue.shutdown));
|
|
58
|
+
const acks = yield* _(Effect.acquireRelease(Queue.unbounded(), Queue.shutdown));
|
|
56
59
|
// heartbeats
|
|
57
|
-
|
|
60
|
+
yield* _(Heartbeats.send(hellos, acks, latestSequence, heartbeatSend), Effect.forkScoped);
|
|
58
61
|
// identify
|
|
59
62
|
const identify = Identify.identifyOrResume({
|
|
60
63
|
token: ConfigSecret.value(token),
|
|
@@ -79,21 +82,21 @@ export const make = /*#__PURE__*/Effect.gen(function* (_) {
|
|
|
79
82
|
return Effect.unit;
|
|
80
83
|
}
|
|
81
84
|
}));
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
discard: true,
|
|
85
|
-
concurrency: "unbounded"
|
|
86
|
-
});
|
|
85
|
+
yield* _(Queue.take(sendQueue), Effect.tap(send), Effect.forever, Effect.forkScoped);
|
|
86
|
+
yield* _(socket.take, Effect.flatMap(onPayload), Effect.forever, Effect.forkScoped);
|
|
87
87
|
return {
|
|
88
88
|
id: shard,
|
|
89
|
-
send
|
|
90
|
-
run
|
|
89
|
+
send
|
|
91
90
|
};
|
|
92
|
-
})
|
|
91
|
+
}).pipe(Effect.annotateLogs({
|
|
92
|
+
package: "dfx",
|
|
93
|
+
module: "DiscordGateway/Shard",
|
|
94
|
+
shard
|
|
95
|
+
}));
|
|
93
96
|
return {
|
|
94
97
|
connect
|
|
95
98
|
};
|
|
96
99
|
});
|
|
97
|
-
export const Shard = /*#__PURE__*/Tag();
|
|
98
|
-
export const ShardLive = /*#__PURE__*/Layer.
|
|
100
|
+
export const Shard = /*#__PURE__*/Tag("dfx/DiscordGateway/Shard");
|
|
101
|
+
export const ShardLive = /*#__PURE__*/Layer.effect(Shard, make).pipe( /*#__PURE__*/Layer.provide(DiscordWSLive), /*#__PURE__*/Layer.provide(MesssagingLive), /*#__PURE__*/Layer.provide(RateLimiterLive));
|
|
99
102
|
//# sourceMappingURL=Shard.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Shard.mjs","names":["Chunk","Tag","Duration","pipe","Option","ConfigSecret","Effect","PubSub","Layer","Queue","Ref","DiscordConfig","DiscordWS","DiscordWSLive","Heartbeats","Identify","InvalidSession","Utils","Reconnect","
|
|
1
|
+
{"version":3,"file":"Shard.mjs","names":["Chunk","Tag","Duration","pipe","Option","ConfigSecret","Effect","PubSub","Layer","Queue","Ref","DiscordConfig","DiscordWS","DiscordWSLive","Heartbeats","Identify","InvalidSession","Utils","Reconnect","RateLimiterLive","RateLimiter","Discord","Messaging","MesssagingLive","make","gen","_","gateway","token","limiter","dws","hub","sendQueue","connect","shard","outboundQueue","unbounded","pendingQueue","phase","setPhase","p","zipLeft","set","annotateLogs","logTrace","outbound","take","maybeWait","minutes","send","flatMap","get","offer","heartbeatSend","succeed","prioritySend","resume","zipRight","takeAll","tap","offerAll","asUnit","onConnecting","msgs","filter","msg","op","GatewayOpcode","IDENTIFY","RESUME","HEARTBEAT","socket","isReady","liftPredicate","DISPATCH","t","latestReady","updateLatestReady","latest","map","d","latestSequence","updateLatestSequence","fromNullable","s","maybeUpdateUrl","match","onNone","unit","onSome","resume_gateway_url","setUrl","hellos","acquireRelease","shutdown","acks","forkScoped","identify","identifyOrResume","value","intents","presence","onPayload","HELLO","HEARTBEAT_ACK","INVALID_SESSION","fromPayload","publish","forever","id","package","module","Shard","ShardLive","effect","provide"],"sources":["../../src/DiscordGateway/Shard.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { Tag } from "effect/Context";
|
|
|
2
2
|
import * as Option from "effect/Option";
|
|
3
3
|
import * as Effect from "effect/Effect";
|
|
4
4
|
import * as Layer from "effect/Layer";
|
|
5
|
-
export const ShardStore = /*#__PURE__*/Tag();
|
|
5
|
+
export const ShardStore = /*#__PURE__*/Tag("dfx/DiscordGateway/ShardStore");
|
|
6
6
|
// Very basic shard id store, that does no health checks
|
|
7
7
|
const memoryStore = () => {
|
|
8
8
|
let currentId = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShardStore.mjs","names":["Tag","Option","Effect","Layer","ShardStore","memoryStore","currentId","claimId","totalCount","sync","none","id","some","allClaimed","MemoryShardStoreLive"],"sources":["../../src/DiscordGateway/ShardStore.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAG,QAAQ,gBAAgB;AACpC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;
|
|
1
|
+
{"version":3,"file":"ShardStore.mjs","names":["Tag","Option","Effect","Layer","ShardStore","memoryStore","currentId","claimId","totalCount","sync","none","id","some","allClaimed","MemoryShardStoreLive"],"sources":["../../src/DiscordGateway/ShardStore.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAG,QAAQ,gBAAgB;AACpC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AAiBrC,OAAO,MAAMC,UAAU,gBAAGJ,GAAG,CAC3B,+BAA+B,CAChC;AAED;AACA,MAAMK,WAAW,GAAGA,CAAA,KAAwB;EAC1C,IAAIC,SAAS,GAAG,CAAC;EAEjB,OAAO;IACLC,OAAO,EAAEA,CAAC;MAAEC;IAAU,CAAE,KACtBN,MAAM,CAACO,IAAI,CAAC,MAAK;MACf,IAAIH,SAAS,IAAIE,UAAU,EAAE;QAC3B,OAAOP,MAAM,CAACS,IAAI,EAAE;MACtB;MAEA,MAAMC,EAAE,GAAGL,SAAS;MACpBA,SAAS,EAAE;MACX,OAAOL,MAAM,CAACW,IAAI,CAACD,EAAE,CAAC;IACxB,CAAC,CAAC;IAEJE,UAAU,EAAEL,UAAU,IAAIN,MAAM,CAACO,IAAI,CAAC,MAAMH,SAAS,IAAIE,UAAU;GACpE;AACH,CAAC;AAED,OAAO,MAAMM,oBAAoB,gBAAGX,KAAK,CAACM,IAAI,CAACL,UAAU,EAAEC,WAAW,CAAC"}
|
|
@@ -1,18 +1,16 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { DiscordConfig } from "dfx/DiscordConfig";
|
|
2
|
+
import { Shard, ShardLive } from "dfx/DiscordGateway/Shard";
|
|
3
|
+
import { ShardStore } from "dfx/DiscordGateway/ShardStore";
|
|
4
|
+
import { DiscordREST, DiscordRESTLive } from "dfx/DiscordREST";
|
|
5
|
+
import { RateLimiter, RateLimiterLive } from "dfx/RateLimit";
|
|
2
6
|
import { Tag } from "effect/Context";
|
|
3
7
|
import * as Duration from "effect/Duration";
|
|
8
|
+
import * as Effect from "effect/Effect";
|
|
4
9
|
import { pipe } from "effect/Function";
|
|
5
10
|
import * as HashSet from "effect/HashSet";
|
|
6
|
-
import * as Deferred from "effect/Deferred";
|
|
7
|
-
import * as Effect from "effect/Effect";
|
|
8
11
|
import * as Layer from "effect/Layer";
|
|
9
12
|
import * as Ref from "effect/Ref";
|
|
10
13
|
import * as Schedule from "effect/Schedule";
|
|
11
|
-
import { DiscordConfig } from "dfx/DiscordConfig";
|
|
12
|
-
import { ShardLive, Shard } from "dfx/DiscordGateway/Shard";
|
|
13
|
-
import { ShardStore } from "dfx/DiscordGateway/ShardStore";
|
|
14
|
-
import { DiscordREST } from "dfx/DiscordREST";
|
|
15
|
-
import { RateLimiterLive, RateLimiter } from "dfx/RateLimit";
|
|
16
14
|
const claimRepeatPolicy = /*#__PURE__*/Schedule.spaced("3 minutes").pipe( /*#__PURE__*/Schedule.whileInput(_ => _._tag === "None"), Schedule.passthrough);
|
|
17
15
|
const make = /*#__PURE__*/Effect.gen(function* (_) {
|
|
18
16
|
const store = yield* _(ShardStore);
|
|
@@ -23,17 +21,6 @@ const make = /*#__PURE__*/Effect.gen(function* (_) {
|
|
|
23
21
|
const limiter = yield* _(RateLimiter);
|
|
24
22
|
const shard = yield* _(Shard);
|
|
25
23
|
const currentShards = yield* _(Ref.make(HashSet.empty()));
|
|
26
|
-
const takeConfig = totalCount => Effect.gen(function* (_) {
|
|
27
|
-
const currentCount = yield* _(Ref.make(0));
|
|
28
|
-
const claimId = sharderCount => pipe(store.claimId({
|
|
29
|
-
totalCount,
|
|
30
|
-
sharderCount
|
|
31
|
-
}), Effect.repeat(claimRepeatPolicy), Effect.map(_ => _.value));
|
|
32
|
-
return pipe(Ref.getAndUpdate(currentCount, _ => _ + 1), Effect.flatMap(claimId), Effect.map(id => ({
|
|
33
|
-
id,
|
|
34
|
-
totalCount
|
|
35
|
-
})));
|
|
36
|
-
});
|
|
37
24
|
const gateway = yield* _(rest.getGatewayBot(), Effect.flatMap(r => r.json), Effect.catchAll(() => Effect.succeed({
|
|
38
25
|
url: "wss://gateway.discord.gg/",
|
|
39
26
|
shards: 1,
|
|
@@ -44,31 +31,35 @@ const make = /*#__PURE__*/Effect.gen(function* (_) {
|
|
|
44
31
|
max_concurrency: 1
|
|
45
32
|
}
|
|
46
33
|
})));
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
34
|
+
const totalCount = config.shardCount ?? gateway.shards;
|
|
35
|
+
const currentCount = yield* _(Ref.make(0));
|
|
36
|
+
const claimId = sharderCount => pipe(store.claimId({
|
|
37
|
+
totalCount,
|
|
38
|
+
sharderCount
|
|
39
|
+
}), Effect.repeat(claimRepeatPolicy), Effect.map(_ => _.value));
|
|
40
|
+
const takeConfig = pipe(Ref.getAndUpdate(currentCount, _ => _ + 1), Effect.flatMap(claimId), Effect.map(id => ({
|
|
41
|
+
id,
|
|
42
|
+
totalCount
|
|
43
|
+
})));
|
|
44
|
+
const spawner = pipe(takeConfig, Effect.map(config => ({
|
|
45
|
+
...config,
|
|
46
|
+
url: gateway.url,
|
|
47
|
+
concurrency: gateway.session_start_limit.max_concurrency
|
|
48
|
+
})), Effect.tap(({
|
|
49
|
+
concurrency,
|
|
50
|
+
id
|
|
51
|
+
}) => limiter.maybeWait(`dfx.sharder.${id % concurrency}`, Duration.millis(config.identifyRateLimit[0]), config.identifyRateLimit[1])), Effect.flatMap(c => shard.connect([c.id, c.totalCount])), Effect.flatMap(shard => Ref.update(currentShards, HashSet.add(shard))), Effect.forever);
|
|
52
|
+
yield* _(Effect.replicateEffect(spawner, gateway.session_start_limit.max_concurrency, {
|
|
53
|
+
concurrency: "unbounded",
|
|
54
|
+
discard: true
|
|
55
|
+
}), Effect.scoped, Effect.catchAllCause(Effect.logError), Effect.ensuring(Ref.set(currentShards, HashSet.empty())), Effect.forever, Effect.forkScoped);
|
|
67
56
|
return {
|
|
68
|
-
shards: Ref.get(currentShards)
|
|
69
|
-
run
|
|
57
|
+
shards: Ref.get(currentShards)
|
|
70
58
|
};
|
|
71
|
-
})
|
|
72
|
-
|
|
73
|
-
|
|
59
|
+
}).pipe( /*#__PURE__*/Effect.annotateLogs({
|
|
60
|
+
package: "dfx",
|
|
61
|
+
module: "DiscordGateway/Sharder"
|
|
62
|
+
}));
|
|
63
|
+
export const Sharder = /*#__PURE__*/Tag("dfx/DiscordGateway/Sharder");
|
|
64
|
+
export const SharderLive = /*#__PURE__*/Layer.scoped(Sharder, make).pipe( /*#__PURE__*/Layer.provide(DiscordRESTLive), /*#__PURE__*/Layer.provide(RateLimiterLive), /*#__PURE__*/Layer.provide(ShardLive));
|
|
74
65
|
//# sourceMappingURL=Sharder.mjs.map
|