dfx 0.51.0 → 0.51.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/driver.d.ts +17 -16
- package/Cache/driver.d.ts.map +1 -1
- package/Cache/driver.js +10 -2
- package/Cache/driver.js.map +1 -1
- package/Cache/memory.d.ts +3 -3
- package/Cache/memory.d.ts.map +1 -1
- package/Cache/memory.js +55 -45
- package/Cache/memory.js.map +1 -1
- package/Cache/memoryTTL.d.ts +7 -6
- package/Cache/memoryTTL.d.ts.map +1 -1
- package/Cache/memoryTTL.js +126 -118
- package/Cache/memoryTTL.js.map +1 -1
- package/Cache/prelude.d.ts +53 -47
- package/Cache/prelude.d.ts.map +1 -1
- package/Cache/prelude.js +125 -96
- package/Cache/prelude.js.map +1 -1
- package/Cache.d.ts +33 -32
- package/Cache.d.ts.map +1 -1
- package/Cache.js +137 -65
- package/Cache.js.map +1 -1
- package/DiscordConfig.d.ts +26 -20
- package/DiscordConfig.d.ts.map +1 -1
- package/DiscordConfig.js +43 -25
- package/DiscordConfig.js.map +1 -1
- package/DiscordGateway/DiscordWS.d.ts +17 -14
- package/DiscordGateway/DiscordWS.d.ts.map +1 -1
- package/DiscordGateway/DiscordWS.js +49 -30
- package/DiscordGateway/DiscordWS.js.map +1 -1
- package/DiscordGateway/Shard/heartbeats.d.ts +7 -3
- package/DiscordGateway/Shard/heartbeats.d.ts.map +1 -1
- package/DiscordGateway/Shard/heartbeats.js +28 -18
- package/DiscordGateway/Shard/heartbeats.js.map +1 -1
- package/DiscordGateway/Shard/identify.d.ts +10 -8
- package/DiscordGateway/Shard/identify.d.ts.map +1 -1
- package/DiscordGateway/Shard/identify.js +41 -24
- package/DiscordGateway/Shard/identify.js.map +1 -1
- package/DiscordGateway/Shard/invalidSession.d.ts +6 -3
- package/DiscordGateway/Shard/invalidSession.d.ts.map +1 -1
- package/DiscordGateway/Shard/invalidSession.js +14 -5
- package/DiscordGateway/Shard/invalidSession.js.map +1 -1
- package/DiscordGateway/Shard/sendEvents.d.ts +1 -1
- package/DiscordGateway/Shard/sendEvents.d.ts.map +1 -1
- package/DiscordGateway/Shard/sendEvents.js +30 -18
- package/DiscordGateway/Shard/sendEvents.js.map +1 -1
- package/DiscordGateway/Shard/utils.d.ts +7 -3
- package/DiscordGateway/Shard/utils.d.ts.map +1 -1
- package/DiscordGateway/Shard/utils.js +19 -9
- package/DiscordGateway/Shard/utils.js.map +1 -1
- package/DiscordGateway/Shard.d.ts +15 -10
- package/DiscordGateway/Shard.d.ts.map +1 -1
- package/DiscordGateway/Shard.js +109 -87
- package/DiscordGateway/Shard.js.map +1 -1
- package/DiscordGateway/ShardStore.d.ts +9 -6
- package/DiscordGateway/ShardStore.d.ts.map +1 -1
- package/DiscordGateway/ShardStore.js +30 -18
- package/DiscordGateway/ShardStore.js.map +1 -1
- package/DiscordGateway/Sharder.d.ts +17 -11
- package/DiscordGateway/Sharder.d.ts.map +1 -1
- package/DiscordGateway/Sharder.js +82 -52
- package/DiscordGateway/Sharder.js.map +1 -1
- package/DiscordGateway/WS.d.ts +13 -10
- package/DiscordGateway/WS.d.ts.map +1 -1
- package/DiscordGateway/WS.js +100 -74
- package/DiscordGateway/WS.js.map +1 -1
- package/DiscordGateway.d.ts +19 -13
- package/DiscordGateway.d.ts.map +1 -1
- package/DiscordGateway.js +45 -32
- package/DiscordGateway.js.map +1 -1
- package/DiscordREST/types.d.ts +5 -5
- package/DiscordREST/types.d.ts.map +1 -1
- package/DiscordREST/types.js +5 -1
- package/DiscordREST/types.js.map +1 -1
- package/DiscordREST/utils.d.ts +3 -2
- package/DiscordREST/utils.d.ts.map +1 -1
- package/DiscordREST/utils.js +27 -17
- package/DiscordREST/utils.js.map +1 -1
- package/DiscordREST.d.ts +11 -8
- package/DiscordREST.d.ts.map +1 -1
- package/DiscordREST.js +141 -127
- package/DiscordREST.js.map +1 -1
- package/Helpers/flags.js +31 -19
- package/Helpers/flags.js.map +1 -1
- package/Helpers/intents.d.ts.map +1 -1
- package/Helpers/intents.js +22 -10
- package/Helpers/intents.js.map +1 -1
- package/Helpers/interactions.d.ts +22 -21
- package/Helpers/interactions.d.ts.map +1 -1
- package/Helpers/interactions.js +75 -39
- package/Helpers/interactions.js.map +1 -1
- package/Helpers/members.d.ts +3 -3
- package/Helpers/members.d.ts.map +1 -1
- package/Helpers/members.js +10 -3
- package/Helpers/members.js.map +1 -1
- package/Helpers/permissions.d.ts +5 -4
- package/Helpers/permissions.d.ts.map +1 -1
- package/Helpers/permissions.js +69 -52
- package/Helpers/permissions.js.map +1 -1
- package/Helpers/ui.d.ts +1 -1
- package/Helpers/ui.d.ts.map +1 -1
- package/Helpers/ui.js +44 -29
- package/Helpers/ui.js.map +1 -1
- package/Interactions/builder.d.ts +20 -19
- package/Interactions/builder.d.ts.map +1 -1
- package/Interactions/builder.js +66 -63
- package/Interactions/builder.js.map +1 -1
- package/Interactions/context.d.ts +26 -23
- package/Interactions/context.d.ts.map +1 -1
- package/Interactions/context.js +86 -57
- package/Interactions/context.js.map +1 -1
- package/Interactions/definitions.d.ts +33 -30
- package/Interactions/definitions.d.ts.map +1 -1
- package/Interactions/definitions.js +61 -47
- package/Interactions/definitions.js.map +1 -1
- package/Interactions/gateway.d.ts +15 -10
- package/Interactions/gateway.d.ts.map +1 -1
- package/Interactions/gateway.js +55 -42
- package/Interactions/gateway.js.map +1 -1
- package/Interactions/handlers.d.ts +6 -4
- package/Interactions/handlers.d.ts.map +1 -1
- package/Interactions/handlers.js +68 -57
- package/Interactions/handlers.js.map +1 -1
- package/Interactions/index.d.ts +11 -10
- package/Interactions/index.d.ts.map +1 -1
- package/Interactions/index.js +95 -10
- package/Interactions/index.js.map +1 -1
- package/Interactions/utils.d.ts +42 -40
- package/Interactions/utils.d.ts.map +1 -1
- package/Interactions/utils.js +40 -32
- package/Interactions/utils.js.map +1 -1
- package/Interactions/webhook.d.ts +20 -16
- package/Interactions/webhook.d.ts.map +1 -1
- package/Interactions/webhook.js +73 -41
- package/Interactions/webhook.js.map +1 -1
- package/Log.d.ts +8 -5
- package/Log.d.ts.map +1 -1
- package/Log.js +23 -14
- package/Log.js.map +1 -1
- package/RateLimit/memory.d.ts +1 -1
- package/RateLimit/memory.d.ts.map +1 -1
- package/RateLimit/memory.js +46 -33
- package/RateLimit/memory.js.map +1 -1
- package/RateLimit/utils.d.ts +1 -1
- package/RateLimit/utils.d.ts.map +1 -1
- package/RateLimit/utils.js +23 -16
- package/RateLimit/utils.js.map +1 -1
- package/RateLimit.d.ts +18 -14
- package/RateLimit.d.ts.map +1 -1
- package/RateLimit.js +40 -26
- package/RateLimit.js.map +1 -1
- package/gateway.d.ts +20 -13
- package/gateway.d.ts.map +1 -1
- package/gateway.js +72 -25
- package/gateway.js.map +1 -1
- package/index.d.ts +14 -13
- package/index.d.ts.map +1 -1
- package/index.js +71 -13
- package/index.js.map +1 -1
- package/mjs/Cache/driver.mjs +3 -0
- package/mjs/Cache/driver.mjs.map +1 -0
- package/mjs/Cache/memory.mjs +48 -0
- package/mjs/Cache/memory.mjs.map +1 -0
- package/mjs/Cache/memoryTTL.mjs +119 -0
- package/mjs/Cache/memoryTTL.mjs.map +1 -0
- package/mjs/Cache/prelude.mjs +125 -0
- package/mjs/Cache/prelude.mjs.map +1 -0
- package/mjs/Cache.mjs +87 -0
- package/mjs/Cache.mjs.map +1 -0
- package/mjs/DiscordConfig.mjs +34 -0
- package/mjs/DiscordConfig.mjs.map +1 -0
- package/mjs/DiscordGateway/DiscordWS.mjs +39 -0
- package/mjs/DiscordGateway/DiscordWS.mjs.map +1 -0
- package/mjs/DiscordGateway/Shard/heartbeats.mjs +21 -0
- package/mjs/DiscordGateway/Shard/heartbeats.mjs.map +1 -0
- package/mjs/DiscordGateway/Shard/identify.mjs +37 -0
- package/mjs/DiscordGateway/Shard/identify.mjs.map +1 -0
- package/mjs/DiscordGateway/Shard/invalidSession.mjs +6 -0
- package/mjs/DiscordGateway/Shard/invalidSession.mjs.map +1 -0
- package/mjs/DiscordGateway/Shard/sendEvents.mjs +25 -0
- package/mjs/DiscordGateway/Shard/sendEvents.mjs.map +1 -0
- package/mjs/DiscordGateway/Shard/utils.mjs +11 -0
- package/mjs/DiscordGateway/Shard/utils.mjs.map +1 -0
- package/mjs/DiscordGateway/Shard.mjs +99 -0
- package/mjs/DiscordGateway/Shard.mjs.map +1 -0
- package/mjs/DiscordGateway/ShardStore.mjs +24 -0
- package/mjs/DiscordGateway/ShardStore.mjs.map +1 -0
- package/mjs/DiscordGateway/Sharder.mjs +73 -0
- package/mjs/DiscordGateway/Sharder.mjs.map +1 -0
- package/mjs/DiscordGateway/WS.mjs +94 -0
- package/mjs/DiscordGateway/WS.mjs.map +1 -0
- package/mjs/DiscordGateway.mjs +36 -0
- package/mjs/DiscordGateway.mjs.map +1 -0
- package/mjs/DiscordREST/types.mjs +2 -0
- package/mjs/DiscordREST/types.mjs.map +1 -0
- package/mjs/DiscordREST/utils.mjs +19 -0
- package/mjs/DiscordREST/utils.mjs.map +1 -0
- package/mjs/DiscordREST.mjs +129 -0
- package/mjs/DiscordREST.mjs.map +1 -0
- package/mjs/Helpers/flags.mjs +36 -0
- package/mjs/Helpers/flags.mjs.map +1 -0
- package/mjs/Helpers/intents.mjs +27 -0
- package/mjs/Helpers/intents.mjs.map +1 -0
- package/mjs/Helpers/interactions.mjs +104 -0
- package/mjs/Helpers/interactions.mjs.map +1 -0
- package/mjs/Helpers/members.mjs +9 -0
- package/mjs/Helpers/members.mjs.map +1 -0
- package/mjs/Helpers/permissions.mjs +82 -0
- package/mjs/Helpers/permissions.mjs.map +1 -0
- package/mjs/Helpers/ui.mjs +66 -0
- package/mjs/Helpers/ui.mjs.map +1 -0
- package/mjs/Interactions/builder.mjs +62 -0
- package/mjs/Interactions/builder.mjs.map +1 -0
- package/mjs/Interactions/context.mjs +63 -0
- package/mjs/Interactions/context.mjs.map +1 -0
- package/mjs/Interactions/definitions.mjs +51 -0
- package/mjs/Interactions/definitions.mjs.map +1 -0
- package/mjs/Interactions/gateway.mjs +48 -0
- package/mjs/Interactions/gateway.mjs.map +1 -0
- package/mjs/Interactions/handlers.mjs +61 -0
- package/mjs/Interactions/handlers.mjs.map +1 -0
- package/mjs/Interactions/index.mjs +12 -0
- package/mjs/Interactions/index.mjs.map +1 -0
- package/mjs/Interactions/utils.mjs +35 -0
- package/mjs/Interactions/utils.mjs.map +1 -0
- package/mjs/Interactions/webhook.mjs +73 -0
- package/mjs/Interactions/webhook.mjs.map +1 -0
- package/mjs/Log.mjs +15 -0
- package/mjs/Log.mjs.map +1 -0
- package/mjs/RateLimit/memory.mjs +39 -0
- package/mjs/RateLimit/memory.mjs.map +1 -0
- package/mjs/RateLimit/utils.mjs +18 -0
- package/mjs/RateLimit/utils.mjs.map +1 -0
- package/mjs/RateLimit.mjs +29 -0
- package/mjs/RateLimit.mjs.map +1 -0
- package/mjs/gateway.mjs +27 -0
- package/mjs/gateway.mjs.map +1 -0
- package/mjs/index.mjs +15 -0
- package/mjs/index.mjs.map +1 -0
- package/mjs/types.mjs +1211 -0
- package/mjs/types.mjs.map +1 -0
- package/mjs/utils/Effect.mjs +28 -0
- package/mjs/utils/Effect.mjs.map +1 -0
- package/mjs/utils/tsplus.mjs +2 -0
- package/mjs/utils/tsplus.mjs.map +1 -0
- package/mjs/version.mjs +2 -0
- package/mjs/version.mjs.map +1 -0
- package/mjs/webhooks.mjs +30 -0
- package/mjs/webhooks.mjs.map +1 -0
- package/package.json +46 -50
- package/src/Cache/driver.ts +27 -15
- package/src/Cache/memory.ts +9 -5
- package/src/Cache/memoryTTL.ts +69 -53
- package/src/Cache/prelude.ts +113 -91
- package/src/Cache.ts +73 -58
- package/src/DiscordConfig.ts +33 -19
- package/src/DiscordGateway/DiscordWS.ts +28 -25
- package/src/DiscordGateway/Shard/heartbeats.ts +47 -27
- package/src/DiscordGateway/Shard/identify.ts +29 -25
- package/src/DiscordGateway/Shard/invalidSession.ts +9 -7
- package/src/DiscordGateway/Shard/sendEvents.ts +1 -1
- package/src/DiscordGateway/Shard/utils.ts +33 -9
- package/src/DiscordGateway/Shard.ts +119 -99
- package/src/DiscordGateway/ShardStore.ts +12 -5
- package/src/DiscordGateway/Sharder.ts +95 -74
- package/src/DiscordGateway/WS.ts +85 -60
- package/src/DiscordGateway.ts +58 -18
- package/src/DiscordREST/types.ts +5 -5
- package/src/DiscordREST/utils.ts +10 -7
- package/src/DiscordREST.ts +152 -132
- package/src/Helpers/intents.ts +1 -0
- package/src/Helpers/interactions.ts +51 -38
- package/src/Helpers/members.ts +2 -0
- package/src/Helpers/permissions.ts +6 -5
- package/src/Helpers/ui.ts +1 -1
- package/src/Interactions/builder.ts +56 -43
- package/src/Interactions/context.ts +68 -38
- package/src/Interactions/definitions.ts +32 -24
- package/src/Interactions/gateway.ts +72 -47
- package/src/Interactions/handlers.ts +56 -39
- package/src/Interactions/index.ts +6 -5
- package/src/Interactions/utils.ts +32 -21
- package/src/Interactions/webhook.ts +78 -42
- package/src/Log.ts +4 -0
- package/src/RateLimit/memory.ts +10 -4
- package/src/RateLimit/utils.ts +1 -1
- package/src/RateLimit.ts +38 -25
- package/src/gateway.ts +62 -25
- package/src/index.ts +29 -15
- package/src/utils/Effect.ts +69 -0
- package/src/version.ts +1 -0
- package/src/webhooks.ts +47 -20
- package/tsconfig.base.json +48 -0
- package/tsconfig.build.json +10 -0
- package/tsconfig.examples.json +11 -0
- package/tsconfig.json +12 -8
- package/tsconfig.madge.json +12 -0
- package/tsconfig.test.json +10 -0
- package/types.d.ts.map +1 -1
- package/types.js +1216 -1200
- package/types.js.map +1 -1
- package/utils/Effect.d.ts +8 -0
- package/utils/Effect.d.ts.map +1 -0
- package/utils/Effect.js +38 -0
- package/utils/Effect.js.map +1 -0
- package/utils/tsplus.js +5 -1
- package/utils/tsplus.js.map +1 -1
- package/version.d.ts +2 -0
- package/version.d.ts.map +1 -0
- package/version.js +9 -0
- package/version.js.map +1 -0
- package/webhooks.d.ts +14 -9
- package/webhooks.d.ts.map +1 -1
- package/webhooks.js +76 -27
- package/webhooks.js.map +1 -1
- package/_common.d.ts +0 -37
- package/_common.d.ts.map +0 -1
- package/_common.js +0 -8
- package/_common.js.map +0 -1
- package/global.d.ts +0 -18
- package/global.d.ts.map +0 -1
- package/global.js +0 -2
- package/global.js.map +0 -1
- package/src/_common.ts +0 -43
- package/src/global.ts +0 -45
- package/src/package.json +0 -52
- package/src/utils/effect.ts +0 -0
- package/src/utils/hub.ts +0 -47
- package/tsplus.config.json +0 -8
- package/utils/effect.d.ts +0 -2
- package/utils/effect.d.ts.map +0 -1
- package/utils/effect.js +0 -2
- package/utils/effect.js.map +0 -1
- package/utils/hub.d.ts +0 -12
- package/utils/hub.d.ts.map +0 -1
- package/utils/hub.js +0 -26
- package/utils/hub.js.map +0 -1
package/index.js
CHANGED
|
@@ -1,14 +1,72 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.DiscordConfig = exports.Discord = exports.Cache = void 0;
|
|
7
|
+
Object.defineProperty(exports, "DiscordREST", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () {
|
|
10
|
+
return _DiscordREST.DiscordREST;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
exports.IxHelpers = exports.Ix = exports.Intents = exports.Flags = void 0;
|
|
14
|
+
Object.defineProperty(exports, "LiveDiscordREST", {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function () {
|
|
17
|
+
return _DiscordREST.LiveDiscordREST;
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
Object.defineProperty(exports, "LiveMemoryRateLimitStore", {
|
|
21
|
+
enumerable: true,
|
|
22
|
+
get: function () {
|
|
23
|
+
return _RateLimit.LiveMemoryRateLimitStore;
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
Object.defineProperty(exports, "LiveRateLimiter", {
|
|
27
|
+
enumerable: true,
|
|
28
|
+
get: function () {
|
|
29
|
+
return _RateLimit.LiveRateLimiter;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
exports.Perms = exports.Members = exports.Log = void 0;
|
|
33
|
+
Object.defineProperty(exports, "RateLimitStore", {
|
|
34
|
+
enumerable: true,
|
|
35
|
+
get: function () {
|
|
36
|
+
return _RateLimit.RateLimitStore;
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
Object.defineProperty(exports, "RateLimiter", {
|
|
40
|
+
enumerable: true,
|
|
41
|
+
get: function () {
|
|
42
|
+
return _RateLimit.RateLimiter;
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
exports.UI = void 0;
|
|
46
|
+
var Cache = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/Cache"));
|
|
47
|
+
exports.Cache = Cache;
|
|
48
|
+
var DiscordConfig = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/DiscordConfig"));
|
|
49
|
+
exports.DiscordConfig = DiscordConfig;
|
|
50
|
+
var Flags = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/Helpers/flags"));
|
|
51
|
+
exports.Flags = Flags;
|
|
52
|
+
var Intents = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/Helpers/intents"));
|
|
53
|
+
exports.Intents = Intents;
|
|
54
|
+
var IxHelpers = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/Helpers/interactions"));
|
|
55
|
+
exports.IxHelpers = IxHelpers;
|
|
56
|
+
var Members = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/Helpers/members"));
|
|
57
|
+
exports.Members = Members;
|
|
58
|
+
var Perms = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/Helpers/permissions"));
|
|
59
|
+
exports.Perms = Perms;
|
|
60
|
+
var UI = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/Helpers/ui"));
|
|
61
|
+
exports.UI = UI;
|
|
62
|
+
var Ix = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/Interactions/index"));
|
|
63
|
+
exports.Ix = Ix;
|
|
64
|
+
var Log = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/Log"));
|
|
65
|
+
exports.Log = Log;
|
|
66
|
+
var Discord = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/types"));
|
|
67
|
+
exports.Discord = Discord;
|
|
68
|
+
var _DiscordREST = /*#__PURE__*/require("dfx/DiscordREST");
|
|
69
|
+
var _RateLimit = /*#__PURE__*/require("dfx/RateLimit");
|
|
70
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
71
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
14
72
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","
|
|
1
|
+
{"version":3,"file":"index.js","names":["Cache","_interopRequireWildcard","require","exports","DiscordConfig","Flags","Intents","IxHelpers","Members","Perms","UI","Ix","Log","Discord","_DiscordREST","_RateLimit","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","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,GAAA,gBAAAX,uBAAA,eAAAC,OAAA;AAA8BC,OAAA,CAAAS,GAAA,GAAAA,GAAA;AAC9B,IAAAC,OAAA,gBAAAZ,uBAAA,eAAAC,OAAA;AAAoCC,OAAA,CAAAU,OAAA,GAAAA,OAAA;AAEpC,IAAAC,YAAA,gBAAAZ,OAAA;AACA,IAAAa,UAAA,gBAAAb,OAAA;AAMsB,SAAAc,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAhB,wBAAAoB,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"driver.mjs","names":["createParentDriver","driver","createDriver"],"sources":["../../src/Cache/driver.ts"],"sourcesContent":[null],"mappings":"AA8BA,OAAO,MAAMA,kBAAkB,GAAUC,MAA+B,IACtEA,MAAM;AAWR,OAAO,MAAMC,YAAY,GAAUD,MAAyB,IAAKA,MAAM"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { createDriver, createParentDriver } from "dfx/Cache/driver";
|
|
2
|
+
import * as Effect from "@effect/io/Effect";
|
|
3
|
+
import * as Option from "@effect/data/Option";
|
|
4
|
+
export const createWithParent = () => Effect.sync(() => {
|
|
5
|
+
const map = new Map();
|
|
6
|
+
return createParentDriver({
|
|
7
|
+
size: Effect.sync(() => {
|
|
8
|
+
let count = 0;
|
|
9
|
+
for (const a of map.values()) {
|
|
10
|
+
count += a.size;
|
|
11
|
+
}
|
|
12
|
+
return count;
|
|
13
|
+
}),
|
|
14
|
+
sizeForParent: parentId => Effect.sync(() => map.get(parentId)?.size ?? 0),
|
|
15
|
+
get: (parentId, resourceId) => Effect.sync(() => Option.fromNullable(map.get(parentId)?.get(resourceId))),
|
|
16
|
+
getForParent: parentId => Effect.sync(() => Option.fromNullable(map.get(parentId))),
|
|
17
|
+
set: (parentId, resourceId, resource) => Effect.sync(() => {
|
|
18
|
+
if (!map.has(parentId)) {
|
|
19
|
+
map.set(parentId, new Map());
|
|
20
|
+
}
|
|
21
|
+
map.get(parentId).set(resourceId, resource);
|
|
22
|
+
}),
|
|
23
|
+
delete: (parentId, resourceId) => Effect.sync(() => {
|
|
24
|
+
map.get(parentId)?.delete(resourceId);
|
|
25
|
+
}),
|
|
26
|
+
parentDelete: parentId => Effect.sync(() => {
|
|
27
|
+
map.delete(parentId);
|
|
28
|
+
}),
|
|
29
|
+
refreshTTL: () => Effect.unit,
|
|
30
|
+
run: Effect.never
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
export const create = () => Effect.sync(() => {
|
|
34
|
+
const map = new Map();
|
|
35
|
+
return createDriver({
|
|
36
|
+
size: Effect.sync(() => map.size),
|
|
37
|
+
get: resourceId => Effect.sync(() => Option.fromNullable(map.get(resourceId))),
|
|
38
|
+
set: (resourceId, resource) => Effect.sync(() => {
|
|
39
|
+
map.set(resourceId, resource);
|
|
40
|
+
}),
|
|
41
|
+
delete: resourceId => Effect.sync(() => {
|
|
42
|
+
map.delete(resourceId);
|
|
43
|
+
}),
|
|
44
|
+
refreshTTL: () => Effect.unit,
|
|
45
|
+
run: Effect.never
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=memory.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.mjs","names":["createDriver","createParentDriver","Effect","Option","createWithParent","sync","map","Map","size","count","a","values","sizeForParent","parentId","get","resourceId","fromNullable","getForParent","set","resource","has","delete","parentDelete","refreshTTL","unit","run","never","create"],"sources":["../../src/Cache/memory.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import * as Duration from "@effect/data/Duration";
|
|
2
|
+
import * as Option from "@effect/data/Option";
|
|
3
|
+
import * as ReadonlyArray from "@effect/data/ReadonlyArray";
|
|
4
|
+
import * as Effect from "@effect/io/Effect";
|
|
5
|
+
import { createDriver, createParentDriver } from "dfx/Cache/driver";
|
|
6
|
+
const make = ({
|
|
7
|
+
resolution = Duration.minutes(1),
|
|
8
|
+
strategy = "usage",
|
|
9
|
+
ttl
|
|
10
|
+
}) => {
|
|
11
|
+
const resolutionMs = Duration.toMillis(resolution);
|
|
12
|
+
const additionalMilliseconds = (Math.floor(Duration.toMillis(ttl) / resolutionMs) + 1) * resolutionMs;
|
|
13
|
+
const items = new Map();
|
|
14
|
+
const buckets = [];
|
|
15
|
+
const refreshTTL = item => {
|
|
16
|
+
const now = Date.now();
|
|
17
|
+
const remainder = now % resolutionMs;
|
|
18
|
+
const expires = now - remainder + additionalMilliseconds;
|
|
19
|
+
let currentBucket = buckets[buckets.length - 1];
|
|
20
|
+
if ((currentBucket?.expires || 0) < expires) {
|
|
21
|
+
currentBucket = {
|
|
22
|
+
expires,
|
|
23
|
+
items: []
|
|
24
|
+
};
|
|
25
|
+
buckets.push(currentBucket);
|
|
26
|
+
}
|
|
27
|
+
currentBucket.items.push(item);
|
|
28
|
+
};
|
|
29
|
+
const sweep = () => {
|
|
30
|
+
const now = Date.now();
|
|
31
|
+
const remainder = now % resolutionMs;
|
|
32
|
+
const currentExpires = now - remainder;
|
|
33
|
+
while (buckets.length && buckets[0].expires <= currentExpires) {
|
|
34
|
+
buckets.shift();
|
|
35
|
+
}
|
|
36
|
+
if (global.gc) {
|
|
37
|
+
global.gc();
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
const getSync = resourceId => {
|
|
41
|
+
const ref = items.get(resourceId);
|
|
42
|
+
if (!ref) return undefined;
|
|
43
|
+
const item = ref.deref();
|
|
44
|
+
if (!item) {
|
|
45
|
+
items.delete(resourceId);
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
if (strategy !== "expiry") {
|
|
49
|
+
refreshTTL(item);
|
|
50
|
+
}
|
|
51
|
+
return item.resource;
|
|
52
|
+
};
|
|
53
|
+
return createDriver({
|
|
54
|
+
size: Effect.sync(() => items.size),
|
|
55
|
+
get: resourceId => Effect.sync(() => Option.fromNullable(getSync(resourceId))),
|
|
56
|
+
refreshTTL: id => Effect.sync(() => {
|
|
57
|
+
getSync(id);
|
|
58
|
+
}),
|
|
59
|
+
set: (resourceId, resource) => Effect.sync(() => {
|
|
60
|
+
const item = items.get(resourceId)?.deref();
|
|
61
|
+
if (item && strategy !== "activity") {
|
|
62
|
+
item.resource = resource;
|
|
63
|
+
} else {
|
|
64
|
+
const newItem = {
|
|
65
|
+
resource
|
|
66
|
+
};
|
|
67
|
+
refreshTTL(newItem);
|
|
68
|
+
items.set(resourceId, new WeakRef(newItem));
|
|
69
|
+
}
|
|
70
|
+
}),
|
|
71
|
+
delete: resourceId => Effect.sync(() => {
|
|
72
|
+
items.delete(resourceId);
|
|
73
|
+
}),
|
|
74
|
+
run: Effect.sync(sweep).pipe(Effect.delay(Duration.times(resolution, 0.5)), Effect.forever)
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
export const create = opts => Effect.sync(() => make(opts));
|
|
78
|
+
export const createWithParent = opts => Effect.sync(() => {
|
|
79
|
+
const store = make(opts);
|
|
80
|
+
const parentIds = new Map();
|
|
81
|
+
return createParentDriver({
|
|
82
|
+
size: store.size,
|
|
83
|
+
sizeForParent: parentId => Effect.sync(() => parentIds.get(parentId)?.size ?? 0),
|
|
84
|
+
refreshTTL: (_, id) => store.refreshTTL(id),
|
|
85
|
+
get: (_, id) => store.get(id),
|
|
86
|
+
getForParent: parentId => Option.fromNullable(parentIds.get(parentId)).pipe(Effect.flatMap(ids => Effect.forEach(ids, id => store.get(id).pipe(Effect.tap(item => Effect.sync(() => {
|
|
87
|
+
if (item._tag === "None") {
|
|
88
|
+
ids.delete(id);
|
|
89
|
+
}
|
|
90
|
+
})), Effect.map(item => [id, item])), {
|
|
91
|
+
concurrency: "unbounded"
|
|
92
|
+
})), Effect.map(ReadonlyArray.reduce(new Map(), (acc, [id, item]) => item._tag === "Some" ? acc.set(id, item.value) : acc)), Effect.option),
|
|
93
|
+
set: (parentId, resourceId, resource) => Effect.zipRight(store.set(resourceId, resource), Effect.sync(() => {
|
|
94
|
+
if (!parentIds.has(parentId)) {
|
|
95
|
+
parentIds.set(parentId, new Set());
|
|
96
|
+
}
|
|
97
|
+
parentIds.get(parentId).add(resourceId);
|
|
98
|
+
})),
|
|
99
|
+
delete: (parentId, resourceId) => Effect.zipRight(store.delete(resourceId), Effect.sync(() => {
|
|
100
|
+
parentIds.get(parentId)?.delete(resourceId);
|
|
101
|
+
})),
|
|
102
|
+
parentDelete: parentId => Effect.suspend(() => {
|
|
103
|
+
const ids = parentIds.get(parentId);
|
|
104
|
+
parentIds.delete(parentId);
|
|
105
|
+
const effects = [];
|
|
106
|
+
if (ids) {
|
|
107
|
+
ids.forEach(id => {
|
|
108
|
+
effects.push(store.delete(id));
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
return Effect.all(effects, {
|
|
112
|
+
concurrency: "unbounded",
|
|
113
|
+
discard: true
|
|
114
|
+
});
|
|
115
|
+
}),
|
|
116
|
+
run: store.run
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
//# sourceMappingURL=memoryTTL.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memoryTTL.mjs","names":["Duration","Option","ReadonlyArray","Effect","createDriver","createParentDriver","make","resolution","minutes","strategy","ttl","resolutionMs","toMillis","additionalMilliseconds","Math","floor","items","Map","buckets","refreshTTL","item","now","Date","remainder","expires","currentBucket","length","push","sweep","currentExpires","shift","global","gc","getSync","resourceId","ref","get","undefined","deref","delete","resource","size","sync","fromNullable","id","set","newItem","WeakRef","run","pipe","delay","times","forever","create","opts","createWithParent","store","parentIds","sizeForParent","parentId","_","getForParent","flatMap","ids","forEach","tap","_tag","map","concurrency","reduce","acc","value","option","zipRight","has","Set","add","parentDelete","suspend","effects","all","discard"],"sources":["../../src/Cache/memoryTTL.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import * as Effect from "@effect/io/Effect";
|
|
2
|
+
import * as Stream from "@effect/stream/Stream";
|
|
3
|
+
import { DiscordREST } from "dfx";
|
|
4
|
+
import { CacheMissError, make, makeWithParent } from "dfx/Cache";
|
|
5
|
+
import { DiscordGateway } from "dfx/DiscordGateway";
|
|
6
|
+
export const opsWithParent = ({
|
|
7
|
+
create,
|
|
8
|
+
fromParent,
|
|
9
|
+
id,
|
|
10
|
+
parentRemove,
|
|
11
|
+
remove,
|
|
12
|
+
update
|
|
13
|
+
}) => {
|
|
14
|
+
const fromParentOps = Stream.flatMap(fromParent, ([parentId, a]) => Stream.fromIterable(a.map(resource => ({
|
|
15
|
+
op: "create",
|
|
16
|
+
parentId,
|
|
17
|
+
resourceId: id(resource),
|
|
18
|
+
resource
|
|
19
|
+
}))));
|
|
20
|
+
const createOps = Stream.map(create, ([parentId, resource]) => ({
|
|
21
|
+
op: "create",
|
|
22
|
+
parentId,
|
|
23
|
+
resourceId: id(resource),
|
|
24
|
+
resource
|
|
25
|
+
}));
|
|
26
|
+
const updateOps = Stream.map(update, ([parentId, resource]) => ({
|
|
27
|
+
op: "update",
|
|
28
|
+
parentId,
|
|
29
|
+
resourceId: id(resource),
|
|
30
|
+
resource
|
|
31
|
+
}));
|
|
32
|
+
const removeOps = Stream.map(remove, ([parentId, resourceId]) => ({
|
|
33
|
+
op: "delete",
|
|
34
|
+
parentId,
|
|
35
|
+
resourceId
|
|
36
|
+
}));
|
|
37
|
+
const parentRemoveOps = Stream.map(parentRemove, parentId => ({
|
|
38
|
+
op: "parentDelete",
|
|
39
|
+
parentId
|
|
40
|
+
}));
|
|
41
|
+
return Stream.merge(fromParentOps, createOps).pipe(Stream.merge(updateOps), Stream.merge(removeOps), Stream.merge(parentRemoveOps));
|
|
42
|
+
};
|
|
43
|
+
export const ops = ({
|
|
44
|
+
create,
|
|
45
|
+
id,
|
|
46
|
+
remove,
|
|
47
|
+
update
|
|
48
|
+
}) => {
|
|
49
|
+
const createOps = Stream.map(create, resource => ({
|
|
50
|
+
op: "create",
|
|
51
|
+
resourceId: id(resource),
|
|
52
|
+
resource
|
|
53
|
+
}));
|
|
54
|
+
const updateOps = Stream.map(update, resource => ({
|
|
55
|
+
op: "update",
|
|
56
|
+
resourceId: id(resource),
|
|
57
|
+
resource
|
|
58
|
+
}));
|
|
59
|
+
const removeOps = Stream.map(remove, resourceId => ({
|
|
60
|
+
op: "delete",
|
|
61
|
+
resourceId
|
|
62
|
+
}));
|
|
63
|
+
return Stream.merge(createOps, updateOps).pipe(Stream.merge(removeOps));
|
|
64
|
+
};
|
|
65
|
+
export const guilds = makeDriver => Effect.gen(function* (_) {
|
|
66
|
+
const driver = yield* _(makeDriver);
|
|
67
|
+
const gateway = yield* _(DiscordGateway);
|
|
68
|
+
const rest = yield* _(DiscordREST);
|
|
69
|
+
return make({
|
|
70
|
+
driver,
|
|
71
|
+
id: _ => _.id,
|
|
72
|
+
ops: ops({
|
|
73
|
+
id: g => g.id,
|
|
74
|
+
create: Stream.map(gateway.fromDispatch("GUILD_CREATE"), g => ({
|
|
75
|
+
...g,
|
|
76
|
+
channels: [],
|
|
77
|
+
roles: [],
|
|
78
|
+
emojis: [],
|
|
79
|
+
members: []
|
|
80
|
+
})),
|
|
81
|
+
update: gateway.fromDispatch("GUILD_UPDATE"),
|
|
82
|
+
remove: Stream.map(gateway.fromDispatch("GUILD_DELETE"), a => a.id)
|
|
83
|
+
}),
|
|
84
|
+
onMiss: id => Effect.flatMap(rest.getGuild(id), r => r.json)
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
export const channels = makeDriver => Effect.gen(function* (_) {
|
|
88
|
+
const driver = yield* _(makeDriver);
|
|
89
|
+
const gateway = yield* _(DiscordGateway);
|
|
90
|
+
const rest = yield* _(DiscordREST);
|
|
91
|
+
return makeWithParent({
|
|
92
|
+
driver,
|
|
93
|
+
id: _ => Effect.succeed([_.guild_id, _.id]),
|
|
94
|
+
ops: opsWithParent({
|
|
95
|
+
id: a => a.id,
|
|
96
|
+
fromParent: Stream.map(gateway.fromDispatch("GUILD_CREATE"), g => [g.id, g.channels.concat(g.threads)]),
|
|
97
|
+
create: Stream.merge(gateway.fromDispatch("CHANNEL_CREATE"), gateway.fromDispatch("THREAD_CREATE")).pipe(Stream.map(c => [c.guild_id, c])),
|
|
98
|
+
update: Stream.merge(gateway.fromDispatch("CHANNEL_UPDATE"), gateway.fromDispatch("THREAD_UPDATE")).pipe(Stream.map(c => [c.guild_id, c])),
|
|
99
|
+
remove: Stream.merge(gateway.fromDispatch("CHANNEL_DELETE"), gateway.fromDispatch("THREAD_DELETE")).pipe(Stream.map(a => [a.guild_id, a.id])),
|
|
100
|
+
parentRemove: Stream.map(gateway.fromDispatch("GUILD_DELETE"), g => g.id)
|
|
101
|
+
}),
|
|
102
|
+
onMiss: (_, id) => Effect.flatMap(rest.getChannel(id), r => r.json),
|
|
103
|
+
onParentMiss: guildId => rest.getGuildChannels(guildId).pipe(Effect.flatMap(r => r.json), Effect.map(a => a.map(a => [a.id, a])))
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
export const roles = makeDriver => Effect.gen(function* (_) {
|
|
107
|
+
const driver = yield* _(makeDriver);
|
|
108
|
+
const gateway = yield* _(DiscordGateway);
|
|
109
|
+
const rest = yield* _(DiscordREST);
|
|
110
|
+
return makeWithParent({
|
|
111
|
+
driver,
|
|
112
|
+
id: _ => Effect.fail(new CacheMissError("RolesCache/id", _.id)),
|
|
113
|
+
ops: opsWithParent({
|
|
114
|
+
id: a => a.id,
|
|
115
|
+
fromParent: Stream.map(gateway.fromDispatch("GUILD_CREATE"), g => [g.id, g.roles]),
|
|
116
|
+
create: Stream.map(gateway.fromDispatch("GUILD_ROLE_CREATE"), r => [r.guild_id, r.role]),
|
|
117
|
+
update: Stream.map(gateway.fromDispatch("GUILD_ROLE_UPDATE"), r => [r.guild_id, r.role]),
|
|
118
|
+
remove: Stream.map(gateway.fromDispatch("GUILD_ROLE_DELETE"), r => [r.guild_id, r.role_id]),
|
|
119
|
+
parentRemove: Stream.map(gateway.fromDispatch("GUILD_DELETE"), g => g.id)
|
|
120
|
+
}),
|
|
121
|
+
onMiss: (_, id) => Effect.fail(new CacheMissError("RolesCache", id)),
|
|
122
|
+
onParentMiss: guildId => rest.getGuildRoles(guildId).pipe(Effect.flatMap(r => r.json), Effect.map(_ => _.map(role => [role.id, role])))
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
//# sourceMappingURL=prelude.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prelude.mjs","names":["Effect","Stream","DiscordREST","CacheMissError","make","makeWithParent","DiscordGateway","opsWithParent","create","fromParent","id","parentRemove","remove","update","fromParentOps","flatMap","parentId","a","fromIterable","map","resource","op","resourceId","createOps","updateOps","removeOps","parentRemoveOps","merge","pipe","ops","guilds","makeDriver","gen","_","driver","gateway","rest","g","fromDispatch","channels","roles","emojis","members","onMiss","getGuild","r","json","succeed","guild_id","concat","threads","c","getChannel","onParentMiss","guildId","getGuildChannels","fail","role","role_id","getGuildRoles"],"sources":["../../src/Cache/prelude.ts"],"sourcesContent":[null],"mappings":"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"}
|
package/mjs/Cache.mjs
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import * as Effect from "@effect/io/Effect";
|
|
2
|
+
import * as Option from "@effect/data/Option";
|
|
3
|
+
import * as Stream from "@effect/stream/Stream";
|
|
4
|
+
export * from "dfx/Cache/driver";
|
|
5
|
+
export { create as memoryDriver, createWithParent as memoryParentDriver } from "dfx/Cache/memory";
|
|
6
|
+
export { create as memoryTTLDriver, createWithParent as memoryTTLParentDriver } from "dfx/Cache/memoryTTL";
|
|
7
|
+
export const makeWithParent = ({
|
|
8
|
+
driver,
|
|
9
|
+
id,
|
|
10
|
+
onMiss,
|
|
11
|
+
onParentMiss,
|
|
12
|
+
ops = Stream.empty
|
|
13
|
+
}) => {
|
|
14
|
+
const sync = Stream.runDrain(Stream.tap(ops, op => {
|
|
15
|
+
switch (op.op) {
|
|
16
|
+
case "create":
|
|
17
|
+
case "update":
|
|
18
|
+
return driver.set(op.parentId, op.resourceId, op.resource);
|
|
19
|
+
case "delete":
|
|
20
|
+
return driver.delete(op.parentId, op.resourceId);
|
|
21
|
+
case "parentDelete":
|
|
22
|
+
return driver.parentDelete(op.parentId);
|
|
23
|
+
}
|
|
24
|
+
}));
|
|
25
|
+
const get = (parentId, id) => Effect.flatMap(driver.get(parentId, id), Option.match({
|
|
26
|
+
onNone: () => Effect.tap(onMiss(parentId, id), a => driver.set(parentId, id, a)),
|
|
27
|
+
onSome: Effect.succeed
|
|
28
|
+
}));
|
|
29
|
+
const put = _ => Effect.flatMap(id(_), ([parentId, id]) => driver.set(parentId, id, _));
|
|
30
|
+
const update = (parentId, id, f) => get(parentId, id).pipe(Effect.flatMap(f), Effect.tap(_ => driver.set(parentId, id, _)));
|
|
31
|
+
return {
|
|
32
|
+
...driver,
|
|
33
|
+
get,
|
|
34
|
+
put,
|
|
35
|
+
update,
|
|
36
|
+
getForParent: parentId => Effect.flatMap(driver.getForParent(parentId), Option.match({
|
|
37
|
+
onNone: () => onParentMiss(parentId).pipe(Effect.tap(entries => Effect.all(entries.map(([id, a]) => driver.set(parentId, id, a)), {
|
|
38
|
+
concurrency: "unbounded"
|
|
39
|
+
})), Effect.map(entries => new Map(entries))),
|
|
40
|
+
onSome: Effect.succeed
|
|
41
|
+
})),
|
|
42
|
+
run: Effect.zipRight(sync, driver.run, {
|
|
43
|
+
parallel: true
|
|
44
|
+
})
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
export const make = ({
|
|
48
|
+
driver,
|
|
49
|
+
id,
|
|
50
|
+
onMiss,
|
|
51
|
+
ops = Stream.empty
|
|
52
|
+
}) => {
|
|
53
|
+
const sync = Stream.runDrain(Stream.tap(ops, op => {
|
|
54
|
+
switch (op.op) {
|
|
55
|
+
case "create":
|
|
56
|
+
case "update":
|
|
57
|
+
return driver.set(op.resourceId, op.resource);
|
|
58
|
+
case "delete":
|
|
59
|
+
return driver.delete(op.resourceId);
|
|
60
|
+
}
|
|
61
|
+
}));
|
|
62
|
+
const get = id => Effect.flatMap(driver.get(id), Option.match({
|
|
63
|
+
onNone: () => Effect.tap(onMiss(id), a => driver.set(id, a)),
|
|
64
|
+
onSome: Effect.succeed
|
|
65
|
+
}));
|
|
66
|
+
const put = _ => driver.set(id(_), _);
|
|
67
|
+
const update = (id, f) => get(id).pipe(Effect.flatMap(f), Effect.tap(_ => driver.set(id, _)));
|
|
68
|
+
return {
|
|
69
|
+
...driver,
|
|
70
|
+
get,
|
|
71
|
+
put,
|
|
72
|
+
update,
|
|
73
|
+
run: Effect.zipRight(sync, driver.run, {
|
|
74
|
+
parallel: true
|
|
75
|
+
})
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
export class CacheMissError {
|
|
79
|
+
cacheName;
|
|
80
|
+
id;
|
|
81
|
+
_tag = "CacheMissError";
|
|
82
|
+
constructor(cacheName, id) {
|
|
83
|
+
this.cacheName = cacheName;
|
|
84
|
+
this.id = id;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=Cache.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Cache.mjs","names":["Effect","Option","Stream","create","memoryDriver","createWithParent","memoryParentDriver","memoryTTLDriver","memoryTTLParentDriver","makeWithParent","driver","id","onMiss","onParentMiss","ops","empty","sync","runDrain","tap","op","set","parentId","resourceId","resource","delete","parentDelete","get","flatMap","match","onNone","a","onSome","succeed","put","_","update","f","pipe","getForParent","entries","all","map","concurrency","Map","run","zipRight","parallel","make","CacheMissError","cacheName","_tag","constructor"],"sources":["../src/Cache.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Tag } from "@effect/data/Context";
|
|
2
|
+
import * as Duration from "@effect/data/Duration";
|
|
3
|
+
import * as Config from "@effect/io/Config";
|
|
4
|
+
import * as Effect from "@effect/io/Effect";
|
|
5
|
+
import * as Layer from "@effect/io/Layer";
|
|
6
|
+
import * as Discord from "dfx/types";
|
|
7
|
+
const VERSION = 10;
|
|
8
|
+
export const DiscordConfig = /*#__PURE__*/Tag();
|
|
9
|
+
export const make = ({
|
|
10
|
+
token,
|
|
11
|
+
debug = false,
|
|
12
|
+
rest,
|
|
13
|
+
gateway
|
|
14
|
+
}) => ({
|
|
15
|
+
token,
|
|
16
|
+
debug,
|
|
17
|
+
rest: {
|
|
18
|
+
baseUrl: `https://discord.com/api/v${VERSION}`,
|
|
19
|
+
...(rest ?? {}),
|
|
20
|
+
globalRateLimit: {
|
|
21
|
+
limit: 50,
|
|
22
|
+
window: Duration.seconds(1),
|
|
23
|
+
...(rest?.globalRateLimit ?? {})
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
gateway: {
|
|
27
|
+
intents: Discord.GatewayIntents.GUILDS,
|
|
28
|
+
identifyRateLimit: [5000, 1],
|
|
29
|
+
...(gateway ?? {})
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
export const makeLayer = opts => Layer.succeed(DiscordConfig, make(opts));
|
|
33
|
+
export const makeFromConfig = _ => Layer.effect(DiscordConfig, Effect.map(Effect.config(Config.unwrap(_)), make));
|
|
34
|
+
//# sourceMappingURL=DiscordConfig.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DiscordConfig.mjs","names":["Tag","Duration","Config","Effect","Layer","Discord","VERSION","DiscordConfig","make","token","debug","rest","gateway","baseUrl","globalRateLimit","limit","window","seconds","intents","GatewayIntents","GUILDS","identifyRateLimit","makeLayer","opts","succeed","makeFromConfig","_","effect","map","config","unwrap"],"sources":["../src/DiscordConfig.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAG,QAAQ,sBAAsB;AAC1C,OAAO,KAAKC,QAAQ,MAAM,uBAAuB;AACjD,OAAO,KAAKC,MAAM,MAAM,mBAAmB;AAG3C,OAAO,KAAKC,MAAM,MAAM,mBAAmB;AAC3C,OAAO,KAAKC,KAAK,MAAM,kBAAkB;AACzC,OAAO,KAAKC,OAAO,MAAM,WAAW;AAEpC,MAAMC,OAAO,GAAG,EAAE;AAoBlB,OAAO,MAAMC,aAAa,gBAAGP,GAAG,EAAiB;AASjD,OAAO,MAAMQ,IAAI,GAAGA,CAAC;EACnBC,KAAK;EACLC,KAAK,GAAG,KAAK;EACbC,IAAI;EACJC;AAAO,CACE,MAAqB;EAC9BH,KAAK;EACLC,KAAK;EACLC,IAAI,EAAE;IACJE,OAAO,EAAE,4BAA4BP,OAAO,EAAE;IAC9C,IAAIK,IAAI,IAAI,EAAE,CAAC;IACfG,eAAe,EAAE;MACfC,KAAK,EAAE,EAAE;MACTC,MAAM,EAAEf,QAAQ,CAACgB,OAAO,CAAC,CAAC,CAAC;MAC3B,IAAIN,IAAI,EAAEG,eAAe,IAAI,EAAE;;GAElC;EACDF,OAAO,EAAE;IACPM,OAAO,EAAEb,OAAO,CAACc,cAAc,CAACC,MAAM;IACtCC,iBAAiB,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5B,IAAIT,OAAO,IAAI,EAAE;;CAEpB,CAAC;AAEF,OAAO,MAAMU,SAAS,GACpBC,IAAc,IAEdnB,KAAK,CAACoB,OAAO,CAACjB,aAAa,EAAEC,IAAI,CAACe,IAAI,CAAC,CAAC;AAE1C,OAAO,MAAME,cAAc,GACzBC,CAA+B,IAE/BtB,KAAK,CAACuB,MAAM,CAACpB,aAAa,EAAEJ,MAAM,CAACyB,GAAG,CAACzB,MAAM,CAAC0B,MAAM,CAAC3B,MAAM,CAAC4B,MAAM,CAACJ,CAAC,CAAC,CAAC,EAAElB,IAAI,CAAC,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { LiveWS, Reconnect, WS } from "dfx/DiscordGateway/WS";
|
|
2
|
+
import * as Effect from "@effect/io/Effect";
|
|
3
|
+
import * as Layer from "@effect/io/Layer";
|
|
4
|
+
import { Tag } from "@effect/data/Context";
|
|
5
|
+
import * as Ref from "@effect/io/Ref";
|
|
6
|
+
export const DiscordWSCodec = /*#__PURE__*/Tag();
|
|
7
|
+
export const LiveJsonDiscordWSCodec = /*#__PURE__*/Layer.succeed(DiscordWSCodec, {
|
|
8
|
+
type: "json",
|
|
9
|
+
encode: p => JSON.stringify(p),
|
|
10
|
+
decode: p => JSON.parse(p.toString("utf8"))
|
|
11
|
+
});
|
|
12
|
+
const make = /*#__PURE__*/Effect.gen(function* (_) {
|
|
13
|
+
const ws = yield* _(WS);
|
|
14
|
+
const encoding = yield* _(DiscordWSCodec);
|
|
15
|
+
const connect = ({
|
|
16
|
+
url = "wss://gateway.discord.gg/",
|
|
17
|
+
version = 10,
|
|
18
|
+
outbound,
|
|
19
|
+
onConnecting
|
|
20
|
+
}) => Effect.gen(function* (_) {
|
|
21
|
+
const urlRef = yield* _(Ref.make(`${url}?v=${version}&encoding=${encoding.type}`));
|
|
22
|
+
const setUrl = url => Ref.set(urlRef, `${url}?v=${version}&encoding=${encoding.type}`);
|
|
23
|
+
const takeOutbound = Effect.map(outbound, msg => msg === Reconnect ? msg : encoding.encode(msg));
|
|
24
|
+
const socket = yield* _(ws.connect(urlRef, takeOutbound, onConnecting));
|
|
25
|
+
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
|
+
return {
|
|
28
|
+
run,
|
|
29
|
+
take,
|
|
30
|
+
setUrl
|
|
31
|
+
};
|
|
32
|
+
});
|
|
33
|
+
return {
|
|
34
|
+
connect
|
|
35
|
+
};
|
|
36
|
+
});
|
|
37
|
+
export const DiscordWS = /*#__PURE__*/Tag();
|
|
38
|
+
export const LiveDiscordWS = /*#__PURE__*/Layer.provide(LiveWS, /*#__PURE__*/Layer.effect(DiscordWS, make));
|
|
39
|
+
//# sourceMappingURL=DiscordWS.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DiscordWS.mjs","names":["LiveWS","Reconnect","WS","Effect","Layer","Tag","Ref","DiscordWSCodec","LiveJsonDiscordWSCodec","succeed","type","encode","p","JSON","stringify","decode","parse","toString","make","gen","_","ws","encoding","connect","url","version","outbound","onConnecting","urlRef","setUrl","set","takeOutbound","map","msg","socket","take","run","retryWhile","e","_tag","code","reason","DiscordWS","LiveDiscordWS","provide","effect"],"sources":["../../src/DiscordGateway/DiscordWS.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAM,EAAEC,SAAS,EAAEC,EAAE,QAAQ,uBAAuB;AAG7D,OAAO,KAAKC,MAAM,MAAM,mBAAmB;AAC3C,OAAO,KAAKC,KAAK,MAAM,kBAAkB;AACzC,SAASC,GAAG,QAAQ,sBAAsB;AAC1C,OAAO,KAAKC,GAAG,MAAM,gBAAgB;AAiBrC,OAAO,MAAMC,cAAc,gBAAGF,GAAG,EAAkB;AACnD,OAAO,MAAMG,sBAAsB,gBAAGJ,KAAK,CAACK,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,gBAAGf,MAAM,CAACgB,GAAG,CAAC,WAAWC,CAAC;EAClC,MAAMC,EAAE,GAAG,OAAOD,CAAC,CAAClB,EAAE,CAAC;EACvB,MAAMoB,QAAQ,GAAG,OAAOF,CAAC,CAACb,cAAc,CAAC;EAEzC,MAAMgB,OAAO,GAAGA,CAAC;IACfC,GAAG,GAAG,2BAA2B;IACjCC,OAAO,GAAG,EAAE;IACZC,QAAQ;IACRC;EAAY,CACH,KACTxB,MAAM,CAACgB,GAAG,CAAC,WAAWC,CAAC;IACrB,MAAMQ,MAAM,GAAG,OAAOR,CAAC,CACrBd,GAAG,CAACY,IAAI,CAAC,GAAGM,GAAG,MAAMC,OAAO,aAAaH,QAAQ,CAACZ,IAAI,EAAE,CAAC,CAC1D;IACD,MAAMmB,MAAM,GAAIL,GAAW,IACzBlB,GAAG,CAACwB,GAAG,CAACF,MAAM,EAAE,GAAGJ,GAAG,MAAMC,OAAO,aAAaH,QAAQ,CAACZ,IAAI,EAAE,CAAC;IAClE,MAAMqB,YAAY,GAAG5B,MAAM,CAAC6B,GAAG,CAACN,QAAQ,EAAEO,GAAG,IAC3CA,GAAG,KAAKhC,SAAS,GAAGgC,GAAG,GAAGX,QAAQ,CAACX,MAAM,CAACsB,GAAG,CAAC,CAC/C;IACD,MAAMC,MAAM,GAAG,OAAOd,CAAC,CAACC,EAAE,CAACE,OAAO,CAACK,MAAM,EAAEG,YAAY,EAAEJ,YAAY,CAAC,CAAC;IACvE,MAAMQ,IAAI,GAAGhC,MAAM,CAAC6B,GAAG,CAACE,MAAM,CAACC,IAAI,EAAEb,QAAQ,CAACP,MAAM,CAAC;IAErD,MAAMqB,GAAG,GAAGjC,MAAM,CAACkC,UAAU,CAC3BH,MAAM,CAACE,GAAG,EACVE,CAAC,IACEA,CAAC,CAACC,IAAI,KAAK,qBAAqB,IAAID,CAAC,CAACE,IAAI,GAAG,IAAI,IACjDF,CAAC,CAACC,IAAI,KAAK,gBAAgB,IAAID,CAAC,CAACG,MAAM,KAAK,cAAe,CAC/D;IAED,OAAO;MACLL,GAAG;MACHD,IAAI;MACJN;KACQ;EACZ,CAAC,CAAC;EAEJ,OAAO;IAAEN;EAAO,CAAW;AAC7B,CAAC,CAAC;AAGF,OAAO,MAAMmB,SAAS,gBAAGrC,GAAG,EAAa;AACzC,OAAO,MAAMsC,aAAa,gBAAGvC,KAAK,CAACwC,OAAO,CACxC5C,MAAM,eACNI,KAAK,CAACyC,MAAM,CAACH,SAAS,EAAExB,IAAI,CAAC,CAC9B"}
|