dfx 0.51.0 → 0.51.1
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 +42 -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/DiscordREST/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","
|
|
1
|
+
{"version":3,"file":"utils.js","names":["Option","_interopRequireWildcard","require","Duration","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","majorResources","routeFromConfig","path","method","routeURL","split","replace","match","resource","includes","exports","numberHeader","headers","fromNullable","pipe","map","parseFloat","filter","n","isNaN","retryAfter","orElse","seconds","rateLimitFromHeaders","all","bucket","limit","remaining"],"sources":["../src/DiscordREST/utils.ts"],"sourcesContent":[null],"mappings":"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"}
|
package/DiscordREST.d.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import { Effect, Discord } from "dfx/_common";
|
|
2
1
|
import * as Http from "@effect-http/client";
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
2
|
+
import { Tag } from "@effect/data/Context";
|
|
3
|
+
import * as Effect from "@effect/io/Effect";
|
|
4
|
+
import * as Layer from "@effect/io/Layer";
|
|
5
|
+
import { DiscordConfig } from "dfx/DiscordConfig";
|
|
6
|
+
import type { ResponseWithData } from "dfx/DiscordREST/types";
|
|
7
|
+
import { Log } from "dfx/Log";
|
|
8
|
+
import { RateLimitStore } from "dfx/RateLimit";
|
|
9
|
+
import * as Discord from "dfx/types";
|
|
7
10
|
export declare class DiscordRESTError {
|
|
8
11
|
readonly error: Http.HttpClientError;
|
|
9
12
|
readonly body?: unknown;
|
|
@@ -12,8 +15,8 @@ export declare class DiscordRESTError {
|
|
|
12
15
|
}
|
|
13
16
|
export { ResponseDecodeError } from "@effect-http/client";
|
|
14
17
|
export interface DiscordREST extends Discord.Endpoints<Partial<Http.MakeOptions>> {
|
|
15
|
-
readonly executor: <A = unknown>(request: Http.Request) => Effect<never, DiscordRESTError, ResponseWithData<A>>;
|
|
18
|
+
readonly executor: <A = unknown>(request: Http.Request) => Effect.Effect<never, DiscordRESTError, ResponseWithData<A>>;
|
|
16
19
|
}
|
|
17
|
-
export declare const DiscordREST:
|
|
18
|
-
export declare const LiveDiscordREST:
|
|
20
|
+
export declare const DiscordREST: Tag<DiscordREST, DiscordREST>;
|
|
21
|
+
export declare const LiveDiscordREST: Layer.Layer<DiscordConfig | Http.HttpRequestExecutor | Log | RateLimitStore, never, DiscordREST>;
|
|
19
22
|
//# sourceMappingURL=DiscordREST.d.ts.map
|
package/DiscordREST.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiscordREST.d.ts","sourceRoot":"","sources":["src/DiscordREST.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DiscordREST.d.ts","sourceRoot":"","sources":["./src/DiscordREST.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,qBAAqB,CAAA;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAO1C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAgB,MAAM,uBAAuB,CAAA;AAM3E,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAmB,cAAc,EAAe,MAAM,eAAe,CAAA;AAC5E,OAAO,KAAK,OAAO,MAAM,WAAW,CAAA;AAGpC,qBAAa,gBAAgB;IAEf,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe;IAAE,QAAQ,CAAC,IAAI,CAAC;IADhE,QAAQ,CAAC,IAAI,sBAAqB;gBACb,KAAK,EAAE,IAAI,CAAC,eAAe,EAAW,IAAI,CAAC,SAAS;CAC1E;AAED,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAmNzD,MAAM,WAAW,WACf,SAAQ,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACpD,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,OAAO,EAC7B,OAAO,EAAE,IAAI,CAAC,OAAO,KAClB,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;CACjE;AAED,eAAO,MAAM,WAAW,+BAAqB,CAAA;AAC7C,eAAO,MAAM,eAAe,kGAG3B,CAAA"}
|
package/DiscordREST.js
CHANGED
|
@@ -1,130 +1,144 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.LiveDiscordREST = exports.DiscordRESTError = exports.DiscordREST = void 0;
|
|
7
|
+
Object.defineProperty(exports, "ResponseDecodeError", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () {
|
|
10
|
+
return Http.ResponseDecodeError;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
var Http = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect-http/client"));
|
|
14
|
+
var _Context = /*#__PURE__*/require("@effect/data/Context");
|
|
15
|
+
var Duration = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/data/Duration"));
|
|
16
|
+
var HashSet = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/data/HashSet"));
|
|
17
|
+
var Option = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/data/Option"));
|
|
18
|
+
var ConfigSecret = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/io/Config/Secret"));
|
|
19
|
+
var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/io/Effect"));
|
|
20
|
+
var Layer = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/io/Layer"));
|
|
21
|
+
var Ref = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/io/Ref"));
|
|
22
|
+
var _DiscordConfig = /*#__PURE__*/require("dfx/DiscordConfig");
|
|
23
|
+
var _utils = /*#__PURE__*/require("dfx/DiscordREST/utils");
|
|
24
|
+
var _Log = /*#__PURE__*/require("dfx/Log");
|
|
25
|
+
var _RateLimit = /*#__PURE__*/require("dfx/RateLimit");
|
|
26
|
+
var Discord = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/types"));
|
|
27
|
+
var _version = /*#__PURE__*/require("dfx/version");
|
|
28
|
+
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); }
|
|
29
|
+
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; }
|
|
30
|
+
class DiscordRESTError {
|
|
31
|
+
error;
|
|
32
|
+
body;
|
|
33
|
+
_tag = "DiscordRESTError";
|
|
34
|
+
constructor(error, body) {
|
|
35
|
+
this.error = error;
|
|
36
|
+
this.body = body;
|
|
37
|
+
}
|
|
27
38
|
}
|
|
28
|
-
|
|
29
|
-
const make =
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
? tsplus_module_3.flatMap(tsplus_module_3.mapError(error.response.json, _ => new DiscordRESTError(_)), body => tsplus_module_3.fail(new DiscordRESTError(error, body)))
|
|
81
|
-
: tsplus_module_3.fail(new DiscordRESTError(error)));
|
|
82
|
-
const executor = (request) => tsplus_module_3.catchTag(tsplus_module_3.flatMap(requestRateLimit(request.url, request), () => tsplus_module_3.flatMap(globalRateLimit, () => tsplus_module_3.flatMap(httpExecutor(request), response => tsplus_module_3.map(updateBuckets(request, response), () => response)))), "DiscordRESTError", e => {
|
|
83
|
-
if (e.error._tag !== "StatusCodeError") {
|
|
84
|
-
return tsplus_module_3.fail(e);
|
|
85
|
-
}
|
|
86
|
-
const response = e.error.response;
|
|
87
|
-
switch (e.error.status) {
|
|
88
|
-
case 403:
|
|
89
|
-
return tsplus_module_3.flatMap(tsplus_module_3.all([
|
|
90
|
-
log.info("DiscordREST", "403", request.url),
|
|
91
|
-
addBadRoute(routeFromConfig(request.url, request.method)),
|
|
92
|
-
updateBuckets(request, response),
|
|
93
|
-
], { concurrency: "unbounded", discard: true }), () => tsplus_module_3.fail(e));
|
|
94
|
-
case 429:
|
|
95
|
-
return tsplus_module_3.flatMap(tsplus_module_3.all([
|
|
96
|
-
log.info("DiscordREST", "429", request.url),
|
|
97
|
-
addBadRoute(routeFromConfig(request.url, request.method)),
|
|
98
|
-
updateBuckets(request, response),
|
|
99
|
-
tsplus_module_3.sleep(tsplus_module_5.getOrElse(retryAfter(response.headers), () => tsplus_module_4.seconds(5))),
|
|
100
|
-
], { concurrency: "unbounded", discard: true }), () => executor(request));
|
|
101
|
-
}
|
|
102
|
-
return tsplus_module_3.fail(e);
|
|
103
|
-
});
|
|
104
|
-
const routes = tsplus_module_2.Discord.createRoutes(({ method, url, params, options = {}, }) => {
|
|
105
|
-
const hasBody = method !== "GET" && method !== "DELETE";
|
|
106
|
-
let request = Http.make(method)(url, options);
|
|
107
|
-
if (!hasBody) {
|
|
108
|
-
if (params) {
|
|
109
|
-
request = tsplus_module_1.appendParams(request, params);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
else if (params &&
|
|
113
|
-
request.body._tag === "Some" &&
|
|
114
|
-
request.body.value._tag === "FormDataBody") {
|
|
115
|
-
request.body.value.value.append("payload_json", JSON.stringify(params));
|
|
116
|
-
}
|
|
117
|
-
else if (params) {
|
|
118
|
-
request = tsplus_module_1.jsonBody(request, params);
|
|
119
|
-
}
|
|
120
|
-
return executor(request);
|
|
121
|
-
});
|
|
122
|
-
return {
|
|
123
|
-
...routes,
|
|
124
|
-
executor,
|
|
125
|
-
};
|
|
39
|
+
exports.DiscordRESTError = DiscordRESTError;
|
|
40
|
+
const make = /*#__PURE__*/Effect.gen(function* (_) {
|
|
41
|
+
const {
|
|
42
|
+
rest,
|
|
43
|
+
token
|
|
44
|
+
} = yield* _(_DiscordConfig.DiscordConfig);
|
|
45
|
+
const http = yield* _(Http.HttpRequestExecutor);
|
|
46
|
+
const log = yield* _(_Log.Log);
|
|
47
|
+
const store = yield* _(_RateLimit.RateLimitStore);
|
|
48
|
+
const {
|
|
49
|
+
maybeWait
|
|
50
|
+
} = yield* _(_RateLimit.RateLimiter);
|
|
51
|
+
const globalRateLimit = maybeWait("dfx.rest.global", Duration.decode(rest.globalRateLimit.window), rest.globalRateLimit.limit);
|
|
52
|
+
// Invalid route handling (40x)
|
|
53
|
+
const badRoutesRef = yield* _(Ref.make(HashSet.empty()));
|
|
54
|
+
const tenMinutes = Duration.toMillis(Duration.minutes(10));
|
|
55
|
+
const addBadRoute = route => Effect.all(log.info("DiscordREST", "addBadRoute", route), Ref.update(badRoutesRef, HashSet.add(route)), store.incrementCounter("dfx.rest.invalid", tenMinutes, 10000), {
|
|
56
|
+
discard: true,
|
|
57
|
+
concurrency: "unbounded"
|
|
58
|
+
});
|
|
59
|
+
const isBadRoute = route => Effect.map(Ref.get(badRoutesRef), HashSet.has(route));
|
|
60
|
+
const removeBadRoute = route => Ref.update(badRoutesRef, HashSet.remove(route));
|
|
61
|
+
const invalidRateLimit = route => isBadRoute(route).pipe(Effect.tap(invalid => invalid ? maybeWait("dfx.rest.invalid", Duration.minutes(10), 10000) : Effect.unit), Effect.asUnit);
|
|
62
|
+
// Request rate limiting
|
|
63
|
+
const requestRateLimit = (path, request) => Effect.Do.pipe(Effect.let("route", () => (0, _utils.routeFromConfig)(path, request.method)), Effect.bind("maybeBucket", ({
|
|
64
|
+
route
|
|
65
|
+
}) => store.getBucketForRoute(route)), Effect.flatMap(({
|
|
66
|
+
maybeBucket,
|
|
67
|
+
route
|
|
68
|
+
}) => Option.match(maybeBucket, {
|
|
69
|
+
onNone: () => invalidRateLimit(route),
|
|
70
|
+
onSome: bucket => Effect.zipRight(invalidRateLimit(route), maybeWait(`dfx.rest.${bucket.key}`, (0, Duration.millis)(bucket.resetAfter), bucket.limit))
|
|
71
|
+
})));
|
|
72
|
+
// Update rate limit buckets
|
|
73
|
+
const updateBuckets = (request, response) => Effect.Do.pipe(Effect.let("route", () => (0, _utils.routeFromConfig)(request.url, request.method)), Effect.bind("rateLimit", () => (0, _utils.rateLimitFromHeaders)(response.headers)), Effect.bind("hasBucket", ({
|
|
74
|
+
rateLimit
|
|
75
|
+
}) => store.hasBucket(rateLimit.bucket)), Effect.flatMap(({
|
|
76
|
+
hasBucket,
|
|
77
|
+
rateLimit,
|
|
78
|
+
route
|
|
79
|
+
}) => {
|
|
80
|
+
const effectsToRun = [removeBadRoute(route), store.putBucketRoute(route, rateLimit.bucket)];
|
|
81
|
+
if (!hasBucket || rateLimit.limit - 1 === rateLimit.remaining) {
|
|
82
|
+
effectsToRun.push(store.removeCounter(`dfx.rest.?.${route}`), store.putBucket({
|
|
83
|
+
key: rateLimit.bucket,
|
|
84
|
+
resetAfter: Duration.toMillis(rateLimit.retryAfter),
|
|
85
|
+
limit: !hasBucket && rateLimit.remaining > 0 ? rateLimit.remaining : rateLimit.limit
|
|
86
|
+
}));
|
|
87
|
+
}
|
|
88
|
+
return Effect.all(effectsToRun, {
|
|
89
|
+
concurrency: "unbounded",
|
|
90
|
+
discard: true
|
|
126
91
|
});
|
|
127
|
-
}))
|
|
128
|
-
|
|
129
|
-
|
|
92
|
+
}), Effect.ignore);
|
|
93
|
+
const httpExecutor = Http.executor.catchAll(error => error._tag === "StatusCodeError" ? error.response.json.pipe(Effect.mapError(_ => new DiscordRESTError(_)), Effect.flatMap(body => Effect.fail(new DiscordRESTError(error, body)))) : Effect.fail(new DiscordRESTError(error)))(Http.executor.contramap(req => Http.setHeaders({
|
|
94
|
+
Authorization: `Bot ${ConfigSecret.value(token)}`,
|
|
95
|
+
"User-Agent": `DiscordBot (https://github.com/tim-smart/dfx, ${_version.LIB_VERSION})`
|
|
96
|
+
})(Http.updateUrl(req, _ => `${rest.baseUrl}${_}`)))(Http.executor.filterStatusOk(http.execute)));
|
|
97
|
+
const executor = request => requestRateLimit(request.url, request).pipe(Effect.zipLeft(globalRateLimit), Effect.zipRight(httpExecutor(request)), Effect.tap(response => updateBuckets(request, response)), Effect.catchTag("DiscordRESTError", e => {
|
|
98
|
+
if (e.error._tag !== "StatusCodeError") {
|
|
99
|
+
return Effect.fail(e);
|
|
100
|
+
}
|
|
101
|
+
const response = e.error.response;
|
|
102
|
+
switch (e.error.status) {
|
|
103
|
+
case 403:
|
|
104
|
+
return Effect.zipRight(Effect.all([log.info("DiscordREST", "403", request.url), addBadRoute((0, _utils.routeFromConfig)(request.url, request.method)), updateBuckets(request, response)], {
|
|
105
|
+
concurrency: "unbounded",
|
|
106
|
+
discard: true
|
|
107
|
+
}), Effect.fail(e));
|
|
108
|
+
case 429:
|
|
109
|
+
return Effect.zipRight(Effect.all(log.info("DiscordREST", "429", request.url), addBadRoute((0, _utils.routeFromConfig)(request.url, request.method)), updateBuckets(request, response), Effect.sleep(Option.getOrElse((0, _utils.retryAfter)(response.headers), () => Duration.seconds(5))), {
|
|
110
|
+
concurrency: "unbounded",
|
|
111
|
+
discard: true
|
|
112
|
+
}), executor(request));
|
|
113
|
+
}
|
|
114
|
+
return Effect.fail(e);
|
|
115
|
+
}));
|
|
116
|
+
const routes = Discord.createRoutes(({
|
|
117
|
+
method,
|
|
118
|
+
options = {},
|
|
119
|
+
params,
|
|
120
|
+
url
|
|
121
|
+
}) => {
|
|
122
|
+
const hasBody = method !== "GET" && method !== "DELETE";
|
|
123
|
+
let request = Http.make(method)(url, options);
|
|
124
|
+
if (!hasBody) {
|
|
125
|
+
if (params) {
|
|
126
|
+
request = Http.appendParams(request, params);
|
|
127
|
+
}
|
|
128
|
+
} else if (params && request.body._tag === "Some" && request.body.value._tag === "FormDataBody") {
|
|
129
|
+
request.body.value.value.append("payload_json", JSON.stringify(params));
|
|
130
|
+
} else if (params) {
|
|
131
|
+
request = Http.jsonBody(request, params);
|
|
132
|
+
}
|
|
133
|
+
return executor(request);
|
|
134
|
+
});
|
|
135
|
+
return {
|
|
136
|
+
...routes,
|
|
137
|
+
executor
|
|
138
|
+
};
|
|
139
|
+
});
|
|
140
|
+
const DiscordREST = /*#__PURE__*/(0, _Context.Tag)();
|
|
141
|
+
exports.DiscordREST = DiscordREST;
|
|
142
|
+
const LiveDiscordREST = /*#__PURE__*/Layer.provide(_RateLimit.LiveRateLimiter, /*#__PURE__*/Layer.effect(DiscordREST, make));
|
|
143
|
+
exports.LiveDiscordREST = LiveDiscordREST;
|
|
130
144
|
//# sourceMappingURL=DiscordREST.js.map
|
package/DiscordREST.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiscordREST.js","sourceRoot":"","sources":["src/DiscordREST.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DiscordREST.js","names":["Http","_interopRequireWildcard","require","_Context","Duration","HashSet","Option","ConfigSecret","Effect","Layer","Ref","_DiscordConfig","_utils","_Log","_RateLimit","Discord","_version","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","DiscordRESTError","error","body","_tag","constructor","exports","make","gen","_","rest","token","DiscordConfig","http","HttpRequestExecutor","log","Log","store","RateLimitStore","maybeWait","RateLimiter","globalRateLimit","decode","window","limit","badRoutesRef","empty","tenMinutes","toMillis","minutes","addBadRoute","route","all","info","update","add","incrementCounter","discard","concurrency","isBadRoute","map","removeBadRoute","remove","invalidRateLimit","pipe","tap","invalid","unit","asUnit","requestRateLimit","path","request","Do","let","routeFromConfig","method","bind","getBucketForRoute","flatMap","maybeBucket","match","onNone","onSome","bucket","zipRight","millis","resetAfter","updateBuckets","response","url","rateLimitFromHeaders","headers","rateLimit","hasBucket","effectsToRun","putBucketRoute","remaining","push","removeCounter","putBucket","retryAfter","ignore","httpExecutor","executor","catchAll","json","mapError","fail","contramap","req","setHeaders","Authorization","value","LIB_VERSION","updateUrl","baseUrl","filterStatusOk","execute","zipLeft","catchTag","e","status","sleep","getOrElse","seconds","routes","createRoutes","options","params","hasBody","appendParams","append","JSON","stringify","jsonBody","DiscordREST","Tag","LiveDiscordREST","provide","LiveRateLimiter","effect"],"sources":["./src/DiscordREST.ts"],"sourcesContent":[null],"mappings":"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"}
|
package/Helpers/flags.js
CHANGED
|
@@ -1,36 +1,48 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.all = all;
|
|
7
|
+
exports.hasBigInt = exports.has = exports.fromListBigint = exports.fromList = void 0;
|
|
8
|
+
exports.toList = toList;
|
|
9
|
+
function all(flags) {
|
|
10
|
+
return Object.values(flags).reduce((acc, flag) => acc | flag);
|
|
3
11
|
}
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
12
|
+
function toList(flags) {
|
|
13
|
+
const entries = Object.entries(flags);
|
|
14
|
+
return val => entries.reduce((acc, [key, flag]) => (val & flag) === flag ? [...acc, key] : acc, []);
|
|
7
15
|
}
|
|
8
16
|
/**
|
|
9
17
|
* Returns a function that converts a list of flags names to a bigint bitfield.
|
|
10
18
|
*/
|
|
11
|
-
|
|
19
|
+
const fromListBigint = flags => list => list.reduce((acc, key) => acc | flags[key], BigInt(0));
|
|
12
20
|
/**
|
|
13
21
|
* Returns a function that converts a list of flags names to a bitfield.
|
|
14
22
|
*/
|
|
15
|
-
|
|
23
|
+
exports.fromListBigint = fromListBigint;
|
|
24
|
+
const fromList = flags => list => list.reduce((acc, key) => acc | flags[key], 0);
|
|
16
25
|
/**
|
|
17
26
|
* Checks if a bigint bitfield contains and a flag value.
|
|
18
27
|
*/
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
28
|
+
exports.fromList = fromList;
|
|
29
|
+
const hasBigInt = flag => {
|
|
30
|
+
const flagBigInt = BigInt(flag);
|
|
31
|
+
return bits => {
|
|
32
|
+
const bitsBigInt = BigInt(bits);
|
|
33
|
+
return (bitsBigInt & flagBigInt) === flagBigInt;
|
|
34
|
+
};
|
|
25
35
|
};
|
|
26
36
|
/**
|
|
27
37
|
* Checks if a bitfield contains and a flag value.
|
|
28
38
|
*/
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
39
|
+
exports.hasBigInt = hasBigInt;
|
|
40
|
+
const has = flag => {
|
|
41
|
+
const flagNumber = +flag;
|
|
42
|
+
return bits => {
|
|
43
|
+
const bitsNumber = +bits;
|
|
44
|
+
return (bitsNumber & flagNumber) === flagNumber;
|
|
45
|
+
};
|
|
35
46
|
};
|
|
47
|
+
exports.has = has;
|
|
36
48
|
//# sourceMappingURL=flags.js.map
|
package/Helpers/flags.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flags.js","
|
|
1
|
+
{"version":3,"file":"flags.js","names":["all","flags","Object","values","reduce","acc","flag","toList","entries","val","key","fromListBigint","list","BigInt","exports","fromList","hasBigInt","flagBigInt","bits","bitsBigInt","has","flagNumber","bitsNumber"],"sources":["../src/Helpers/flags.ts"],"sourcesContent":[null],"mappings":";;;;;;;;AAOM,SAAUA,GAAGA,CAACC,KAAiB;EACnC,OAAOC,MAAM,CAACC,MAAM,CAACF,KAAK,CAAC,CAACG,MAAM,CAAC,CAACC,GAAG,EAAEC,IAAI,KAAKD,GAAG,GAAGC,IAAI,CAAC;AAC/D;AAWM,SAAUC,MAAMA,CACpBN,KAAQ;EAER,MAAMO,OAAO,GAAGN,MAAM,CAACM,OAAO,CAACP,KAAK,CAAC;EACrC,OAAOQ,GAAG,IACRD,OAAO,CAACJ,MAAM,CACZ,CAACC,GAAG,EAAE,CAACK,GAAG,EAAEJ,IAAI,CAAC,KAAM,CAACG,GAAG,GAAGH,IAAI,MAAMA,IAAI,GAAG,CAAC,GAAGD,GAAG,EAAEK,GAAG,CAAC,GAAGL,GAAI,EACnE,EAAiB,CAClB;AACL;AAEA;;;AAGO,MAAMM,cAAc,GACCV,KAAQ,IACjCW,IAAiB,IAChBA,IAAI,CAACR,MAAM,CAAC,CAACC,GAAG,EAAEK,GAAG,KAAKL,GAAG,GAAGJ,KAAK,CAACS,GAAG,CAAC,EAAEG,MAAM,CAAC,CAAC,CAAC,CAAC;AAE1D;;;AAAAC,OAAA,CAAAH,cAAA,GAAAA,cAAA;AAGO,MAAMI,QAAQ,GACOd,KAAQ,IACjCW,IAAiB,IAChBA,IAAI,CAACR,MAAM,CAAC,CAACC,GAAG,EAAEK,GAAG,KAAKL,GAAG,GAAGJ,KAAK,CAACS,GAAG,CAAC,EAAE,CAAC,CAAC;AAElD;;;AAAAI,OAAA,CAAAC,QAAA,GAAAA,QAAA;AAGO,MAAMC,SAAS,GAAIV,IAAqB,IAAI;EACjD,MAAMW,UAAU,GAAGJ,MAAM,CAACP,IAAI,CAAC;EAC/B,OAAQY,IAAqB,IAAI;IAC/B,MAAMC,UAAU,GAAGN,MAAM,CAACK,IAAI,CAAC;IAC/B,OAAO,CAACC,UAAU,GAAGF,UAAU,MAAMA,UAAU;EACjD,CAAC;AACH,CAAC;AAED;;;AAAAH,OAAA,CAAAE,SAAA,GAAAA,SAAA;AAGO,MAAMI,GAAG,GAAId,IAAqB,IAAI;EAC3C,MAAMe,UAAU,GAAG,CAACf,IAAI;EACxB,OAAQY,IAAqB,IAAI;IAC/B,MAAMI,UAAU,GAAG,CAACJ,IAAI;IACxB,OAAO,CAACI,UAAU,GAAGD,UAAU,MAAMA,UAAU;EACjD,CAAC;AACH,CAAC;AAAAP,OAAA,CAAAM,GAAA,GAAAA,GAAA"}
|
package/Helpers/intents.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intents.d.ts","sourceRoot":"","sources":["../src/Helpers/intents.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"intents.d.ts","sourceRoot":"","sources":["../src/Helpers/intents.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,eAAO,MAAM,GAAG,QAAoC,CAAA;AAEpD;;GAEG;AACH,eAAO,MAAM,UAAU,QAGiB,CAAA;AAExC;;GAEG;AACH,eAAO,MAAM,YAAY,QAAmB,CAAA;AAE5C;;GAEG;AACH,eAAO,MAAM,MAAM,kdAAuC,CAAA;AAE1D;;GAEG;AACH,eAAO,MAAM,QAAQ,8cAAyC,CAAA;AAE9D;;GAEG;AACH,eAAO,MAAM,GAAG,+DAAY,CAAA"}
|
package/Helpers/intents.js
CHANGED
|
@@ -1,29 +1,41 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.toList = exports.has = exports.fromList = exports.UNPRIVILEGED = exports.PRIVILEGED = exports.ALL = void 0;
|
|
7
|
+
var Flags = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/Helpers/flags"));
|
|
8
|
+
var Discord = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/types"));
|
|
9
|
+
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); }
|
|
10
|
+
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; }
|
|
3
11
|
/**
|
|
4
12
|
* All the intents
|
|
5
13
|
*/
|
|
6
|
-
|
|
14
|
+
const ALL = /*#__PURE__*/Flags.all(Discord.GatewayIntents);
|
|
7
15
|
/**
|
|
8
16
|
* Privileged intents
|
|
9
17
|
*/
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
tsplus_module_1.Discord.GatewayIntents.MESSAGE_CONTENT;
|
|
18
|
+
exports.ALL = ALL;
|
|
19
|
+
const PRIVILEGED = Discord.GatewayIntents.GUILD_PRESENCES | Discord.GatewayIntents.GUILD_MEMBERS | Discord.GatewayIntents.MESSAGE_CONTENT;
|
|
13
20
|
/**
|
|
14
21
|
* Un-privileged intents
|
|
15
22
|
*/
|
|
16
|
-
|
|
23
|
+
exports.PRIVILEGED = PRIVILEGED;
|
|
24
|
+
const UNPRIVILEGED = ALL ^ PRIVILEGED;
|
|
17
25
|
/**
|
|
18
26
|
* Function that converts a intents bitfield value to a list of intent names.
|
|
19
27
|
*/
|
|
20
|
-
|
|
28
|
+
exports.UNPRIVILEGED = UNPRIVILEGED;
|
|
29
|
+
const toList = /*#__PURE__*/Flags.toList(Discord.GatewayIntents);
|
|
21
30
|
/**
|
|
22
31
|
* Function that converts a list of intent names to a bitfield value.
|
|
23
32
|
*/
|
|
24
|
-
|
|
33
|
+
exports.toList = toList;
|
|
34
|
+
const fromList = /*#__PURE__*/Flags.fromList(Discord.GatewayIntents);
|
|
25
35
|
/**
|
|
26
36
|
* Check if an intent flag exists in the permissions.
|
|
27
37
|
*/
|
|
28
|
-
|
|
38
|
+
exports.fromList = fromList;
|
|
39
|
+
const has = Flags.has;
|
|
40
|
+
exports.has = has;
|
|
29
41
|
//# sourceMappingURL=intents.js.map
|
package/Helpers/intents.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intents.js","
|
|
1
|
+
{"version":3,"file":"intents.js","names":["Flags","_interopRequireWildcard","require","Discord","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ALL","all","GatewayIntents","exports","PRIVILEGED","GUILD_PRESENCES","GUILD_MEMBERS","MESSAGE_CONTENT","UNPRIVILEGED","toList","fromList"],"sources":["../src/Helpers/intents.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,KAAA,gBAAAC,uBAAA,eAAAC,OAAA;AACA,IAAAC,OAAA,gBAAAF,uBAAA,eAAAC,OAAA;AAAoC,SAAAE,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,SAAAJ,wBAAAQ,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;AAEpC;;;AAGO,MAAMW,GAAG,gBAAG1B,KAAK,CAAC2B,GAAG,CAACxB,OAAO,CAACyB,cAAc,CAAC;AAEpD;;;AAAAC,OAAA,CAAAH,GAAA,GAAAA,GAAA;AAGO,MAAMI,UAAU,GACrB3B,OAAO,CAACyB,cAAc,CAACG,eAAe,GACtC5B,OAAO,CAACyB,cAAc,CAACI,aAAa,GACpC7B,OAAO,CAACyB,cAAc,CAACK,eAAe;AAExC;;;AAAAJ,OAAA,CAAAC,UAAA,GAAAA,UAAA;AAGO,MAAMI,YAAY,GAAGR,GAAG,GAAGI,UAAU;AAE5C;;;AAAAD,OAAA,CAAAK,YAAA,GAAAA,YAAA;AAGO,MAAMC,MAAM,gBAAGnC,KAAK,CAACmC,MAAM,CAAChC,OAAO,CAACyB,cAAc,CAAC;AAE1D;;;AAAAC,OAAA,CAAAM,MAAA,GAAAA,MAAA;AAGO,MAAMC,QAAQ,gBAAGpC,KAAK,CAACoC,QAAQ,CAACjC,OAAO,CAACyB,cAAc,CAAC;AAE9D;;;AAAAC,OAAA,CAAAO,QAAA,GAAAA,QAAA;AAGO,MAAMvB,GAAG,GAAGb,KAAK,CAACa,GAAG;AAAAgB,OAAA,CAAAhB,GAAA,GAAAA,GAAA"}
|