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
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import * as Option from "@effect/data/Option";
|
|
2
|
+
import * as Discord from "dfx/types";
|
|
3
|
+
import * as HashMap from "@effect/data/HashMap";
|
|
3
4
|
/**
|
|
4
|
-
*
|
|
5
|
+
* Option find a sub-command within the interaction options.
|
|
5
6
|
*/
|
|
6
|
-
export declare const allSubCommands: (interaction: Discord.ApplicationCommandDatum) =>
|
|
7
|
+
export declare const allSubCommands: (interaction: Discord.ApplicationCommandDatum) => Discord.ApplicationCommandInteractionDataOption[];
|
|
7
8
|
/**
|
|
8
|
-
*
|
|
9
|
+
* Option find a sub-command within the interaction options.
|
|
9
10
|
*/
|
|
10
|
-
export declare const findSubCommand: (name: string) => (interaction: Discord.ApplicationCommandDatum) =>
|
|
11
|
+
export declare const findSubCommand: (name: string) => (interaction: Discord.ApplicationCommandDatum) => Option.Option<Discord.ApplicationCommandInteractionDataOption>;
|
|
11
12
|
/**
|
|
12
13
|
* If the sub-command exists return `true`, else `false`.
|
|
13
14
|
*/
|
|
14
15
|
export declare const isSubCommand: (name: string) => (_: Discord.ApplicationCommandDatum) => boolean;
|
|
15
16
|
/**
|
|
16
|
-
*
|
|
17
|
+
* Option get the options for a sub-command
|
|
17
18
|
*/
|
|
18
|
-
export declare const subCommandOptions: (name: string) => (_: Discord.ApplicationCommandDatum) =>
|
|
19
|
+
export declare const subCommandOptions: (name: string) => (_: Discord.ApplicationCommandDatum) => Option.Option<Discord.ApplicationCommandInteractionDataOption[]>;
|
|
19
20
|
/**
|
|
20
21
|
* A lens for accessing nested options in a interaction.
|
|
21
22
|
*/
|
|
@@ -23,35 +24,35 @@ export declare const optionsWithNested: (data: Pick<Discord.ApplicationCommandDa
|
|
|
23
24
|
/**
|
|
24
25
|
* Return the interaction options as a name / value map.
|
|
25
26
|
*/
|
|
26
|
-
export declare const transformOptions: (options: Discord.ApplicationCommandInteractionDataOption[]) =>
|
|
27
|
+
export declare const transformOptions: (options: Discord.ApplicationCommandInteractionDataOption[]) => HashMap.HashMap<string, string | undefined>;
|
|
27
28
|
/**
|
|
28
29
|
* Return the interaction options as a name / value map.
|
|
29
30
|
*/
|
|
30
|
-
export declare const optionsMap: (data: Pick<Discord.ApplicationCommandDatum, "options">) =>
|
|
31
|
+
export declare const optionsMap: (data: Pick<Discord.ApplicationCommandDatum, "options">) => HashMap.HashMap<string, string | undefined>;
|
|
31
32
|
/**
|
|
32
33
|
* Try find a matching option from the interaction.
|
|
33
34
|
*/
|
|
34
|
-
export declare const getOption: (name: string) => (data: Pick<Discord.ApplicationCommandDatum, "options">) =>
|
|
35
|
+
export declare const getOption: (name: string) => (data: Pick<Discord.ApplicationCommandDatum, "options">) => Option.Option<Discord.ApplicationCommandInteractionDataOption>;
|
|
35
36
|
/**
|
|
36
37
|
* Try find a matching option from the interaction.
|
|
37
38
|
*/
|
|
38
|
-
export declare const focusedOption: (data: Pick<Discord.ApplicationCommandDatum, "options">) =>
|
|
39
|
+
export declare const focusedOption: (data: Pick<Discord.ApplicationCommandDatum, "options">) => Option.Option<Discord.ApplicationCommandInteractionDataOption>;
|
|
39
40
|
/**
|
|
40
41
|
* Try find a matching option value from the interaction.
|
|
41
42
|
*/
|
|
42
|
-
export declare const optionValue: (name: string) => (data: Pick<Discord.ApplicationCommandDatum, "options">) =>
|
|
43
|
+
export declare const optionValue: (name: string) => (data: Pick<Discord.ApplicationCommandDatum, "options">) => Option.Option<string>;
|
|
43
44
|
/**
|
|
44
45
|
* Try extract resolved data
|
|
45
46
|
*/
|
|
46
|
-
export declare const resolved: (data: Discord.Interaction) =>
|
|
47
|
+
export declare const resolved: (data: Discord.Interaction) => Option.Option<Discord.ResolvedDatum>;
|
|
47
48
|
/**
|
|
48
49
|
* Try find a matching option value from the interaction.
|
|
49
50
|
*/
|
|
50
|
-
export declare const resolveOptionValue: <T>(name: string, f: (id: Discord.Snowflake, data: Discord.ResolvedDatum) => T | undefined) => (a: Discord.Interaction) =>
|
|
51
|
+
export declare const resolveOptionValue: <T>(name: string, f: (id: Discord.Snowflake, data: Discord.ResolvedDatum) => T | undefined) => (a: Discord.Interaction) => Option.Option<T>;
|
|
51
52
|
/**
|
|
52
53
|
* Try find matching option values from the interaction.
|
|
53
54
|
*/
|
|
54
|
-
export declare const resolveValues: <T>(f: (id: Discord.Snowflake, data: Discord.ResolvedDatum) => T | undefined) => (a: Discord.Interaction) =>
|
|
55
|
+
export declare const resolveValues: <T>(f: (id: Discord.Snowflake, data: Discord.ResolvedDatum) => T | undefined) => (a: Discord.Interaction) => Option.Option<readonly T[]>;
|
|
55
56
|
/**
|
|
56
57
|
* A lens for accessing the components in a interaction.
|
|
57
58
|
*/
|
|
@@ -59,23 +60,23 @@ export declare const components: (a: Discord.ModalSubmitDatum) => Discord.Compon
|
|
|
59
60
|
/**
|
|
60
61
|
* A lens for accessing the components in a interaction.
|
|
61
62
|
*/
|
|
62
|
-
export declare const componentsWithValue: (data: Discord.ModalSubmitDatum) =>
|
|
63
|
+
export declare const componentsWithValue: (data: Discord.ModalSubmitDatum) => Discord.Component[];
|
|
63
64
|
/**
|
|
64
65
|
* Return the interaction components as an id / value map.
|
|
65
66
|
*/
|
|
66
|
-
export declare const transformComponents: (options: Discord.Component[]) =>
|
|
67
|
+
export declare const transformComponents: (options: Discord.Component[]) => HashMap.HashMap<string, string | undefined>;
|
|
67
68
|
/**
|
|
68
69
|
* Return the interaction components as an id / value map.
|
|
69
70
|
*/
|
|
70
|
-
export declare const componentsMap: (data: Discord.ModalSubmitDatum) =>
|
|
71
|
+
export declare const componentsMap: (data: Discord.ModalSubmitDatum) => HashMap.HashMap<string, string | undefined>;
|
|
71
72
|
/**
|
|
72
73
|
* Try find a matching component from the interaction.
|
|
73
74
|
*/
|
|
74
|
-
export declare const getComponent: (id: string) => (data: Discord.ModalSubmitDatum) =>
|
|
75
|
+
export declare const getComponent: (id: string) => (data: Discord.ModalSubmitDatum) => Option.Option<Discord.Component>;
|
|
75
76
|
/**
|
|
76
77
|
* Try find a matching component value from the interaction.
|
|
77
78
|
*/
|
|
78
|
-
export declare const componentValue: (id: string) => (data: Discord.ModalSubmitDatum) =>
|
|
79
|
+
export declare const componentValue: (id: string) => (data: Discord.ModalSubmitDatum) => Option.Option<string>;
|
|
79
80
|
export type InteractionResponse = {
|
|
80
81
|
type: Discord.InteractionCallbackType.CHANNEL_MESSAGE_WITH_SOURCE;
|
|
81
82
|
data: Discord.InteractionCallbackMessage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactions.d.ts","sourceRoot":"","sources":["../src/Helpers/interactions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"interactions.d.ts","sourceRoot":"","sources":["../src/Helpers/interactions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAE7C,OAAO,KAAK,OAAO,MAAM,WAAW,CAAA;AAEpC,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAE/C;;GAEG;AACH,eAAO,MAAM,cAAc,gBAAiB,QAAQ,uBAAuB,sDAMxE,CAAA;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc,SAClB,MAAM,mBAAmB,QAAQ,uBAAuB,mEAQ5D,CAAA;AAEL;;GAEG;AACH,eAAO,MAAM,YAAY,SAChB,MAAM,SAAS,QAAQ,uBAAuB,YACb,CAAA;AAE1C;;GAEG;AACH,eAAO,MAAM,iBAAiB,SACrB,MAAM,SAAS,QAAQ,uBAAuB,qEACY,CAAA;AAEnE;;GAEG;AACH,eAAO,MAAM,iBAAiB,SACtB,KAAK,QAAQ,uBAAuB,EAAE,SAAS,CAAC,KACrD,QAAQ,uCAAuC,EAajD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,YAClB,QAAQ,uCAAuC,EAAE,gDAKzD,CAAA;AAEH;;GAEG;AACH,eAAO,MAAM,UAAU,SACf,KAAK,QAAQ,uBAAuB,EAAE,SAAS,CAAC,gDACV,CAAA;AAE9C;;GAEG;AACH,eAAO,MAAM,SAAS,SACb,MAAM,YAAY,KAAK,QAAQ,uBAAuB,EAAE,SAAS,CAAC,mEACX,CAAA;AAEhE;;GAEG;AACH,eAAO,MAAM,aAAa,SAClB,KAAK,QAAQ,uBAAuB,EAAE,SAAS,CAAC,mEACY,CAAA;AAEpE;;GAEG;AACH,eAAO,MAAM,WAAW,SACf,MAAM,YAAY,KAAK,QAAQ,uBAAuB,EAAE,SAAS,CAAC,0BACZ,CAAA;AAE/D;;GAEG;AACH,eAAO,MAAM,QAAQ,SAAU,QAAQ,WAAW,yCAI/C,CAAA;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB,YAErB,MAAM,UACJ,QAAQ,SAAS,QAAQ,QAAQ,aAAa,2BAEpD,QAAQ,WAAW,qBAapB,CAAA;AAEL;;GAEG;AACH,eAAO,MAAM,aAAa,cAEd,QAAQ,SAAS,QAAQ,QAAQ,aAAa,2BAEpD,QAAQ,WAAW,gCAYpB,CAAA;AAUL;;GAEG;AACH,eAAO,MAAM,UAAU,MAClB,QAAQ,gBAAgB,KAC1B,QAAQ,SAAS,EAGnB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,SAAU,QAAQ,gBAAgB,wBACQ,CAAA;AAE1E;;GAEG;AACH,eAAO,MAAM,mBAAmB,YAAa,QAAQ,SAAS,EAAE,gDAI7D,CAAA;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa,SAAU,QAAQ,gBAAgB,gDACrB,CAAA;AAEvC;;GAEG;AACH,eAAO,MAAM,YAAY,OAAQ,MAAM,YAAY,QAAQ,gBAAgB,qCAIxE,CAAA;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc,OACpB,MAAM,YAAY,QAAQ,gBAAgB,0BAI5C,CAAA;AAEL,MAAM,MAAM,mBAAmB,GAC3B;IACE,IAAI,EAAE,OAAO,CAAC,uBAAuB,CAAC,2BAA2B,CAAA;IACjE,IAAI,EAAE,OAAO,CAAC,0BAA0B,CAAA;CACzC,GACD;IACE,IAAI,EAAE,OAAO,CAAC,uBAAuB,CAAC,cAAc,CAAA;IACpD,IAAI,EAAE,OAAO,CAAC,0BAA0B,CAAA;CACzC,GACD;IACE,IAAI,EAAE,OAAO,CAAC,uBAAuB,CAAC,KAAK,CAAA;IAC3C,IAAI,EAAE,OAAO,CAAC,wBAAwB,CAAA;CACvC,GACD;IACE,IAAI,EAAE,OAAO,CAAC,uBAAuB,CAAC,uBAAuB,CAAA;CAC9D,GACD;IACE,IAAI,EAAE,OAAO,CAAC,uBAAuB,CAAC,oCAAoC,CAAA;CAC3E,GACD;IACE,IAAI,EAAE,OAAO,CAAC,uBAAuB,CAAC,uCAAuC,CAAA;IAC7E,IAAI,EAAE,OAAO,CAAC,+BAA+B,CAAA;CAC9C,CAAA;AAEL,eAAO,MAAM,QAAQ,MAAO,mBAAmB,wBAAM,CAAA"}
|
package/Helpers/interactions.js
CHANGED
|
@@ -1,96 +1,132 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.transformOptions = exports.transformComponents = exports.subCommandOptions = exports.response = exports.resolved = exports.resolveValues = exports.resolveOptionValue = exports.optionsWithNested = exports.optionsMap = exports.optionValue = exports.isSubCommand = exports.getOption = exports.getComponent = exports.focusedOption = exports.findSubCommand = exports.componentsWithValue = exports.componentsMap = exports.components = exports.componentValue = exports.allSubCommands = void 0;
|
|
7
|
+
var Option = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/data/Option"));
|
|
8
|
+
var Arr = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/data/ReadonlyArray"));
|
|
9
|
+
var _Function = /*#__PURE__*/require("@effect/data/Function");
|
|
10
|
+
var HashMap = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/data/HashMap"));
|
|
11
|
+
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); }
|
|
12
|
+
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; }
|
|
6
13
|
/**
|
|
7
|
-
*
|
|
14
|
+
* Option find a sub-command within the interaction options.
|
|
8
15
|
*/
|
|
9
|
-
|
|
16
|
+
const allSubCommands = interaction => Arr.filter(o => o.type === 1 /* Discord.ApplicationCommandOptionType.SUB_COMMAND */)(optionsWithNested(interaction));
|
|
10
17
|
/**
|
|
11
|
-
*
|
|
18
|
+
* Option find a sub-command within the interaction options.
|
|
12
19
|
*/
|
|
13
|
-
|
|
14
|
-
|
|
20
|
+
exports.allSubCommands = allSubCommands;
|
|
21
|
+
const findSubCommand = name => interaction => Arr.findFirst(o => o.type === 1 /* Discord.ApplicationCommandOptionType.SUB_COMMAND */ && o.name === name)(optionsWithNested(interaction));
|
|
15
22
|
/**
|
|
16
23
|
* If the sub-command exists return `true`, else `false`.
|
|
17
24
|
*/
|
|
18
|
-
|
|
25
|
+
exports.findSubCommand = findSubCommand;
|
|
26
|
+
const isSubCommand = name => _ => Option.isSome(findSubCommand(name)(_));
|
|
19
27
|
/**
|
|
20
|
-
*
|
|
28
|
+
* Option get the options for a sub-command
|
|
21
29
|
*/
|
|
22
|
-
|
|
30
|
+
exports.isSubCommand = isSubCommand;
|
|
31
|
+
const subCommandOptions = name => _ => Option.flatMapNullable(findSubCommand(name)(_), o => o.options);
|
|
23
32
|
/**
|
|
24
33
|
* A lens for accessing nested options in a interaction.
|
|
25
34
|
*/
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
35
|
+
exports.subCommandOptions = subCommandOptions;
|
|
36
|
+
const optionsWithNested = data => {
|
|
37
|
+
const optsFromOption = opt => Option.fromNullable(opt.options).pipe(Option.map(opts => [...opts, ...opts.flatMap(optsFromOption)]), Option.match({
|
|
38
|
+
onNone: () => [],
|
|
39
|
+
onSome: _Function.identity
|
|
40
|
+
}));
|
|
41
|
+
return Option.fromNullable(data.options).pipe(Option.map(opts => [...opts, ...opts.flatMap(optsFromOption)]), Option.getOrElse(() => []));
|
|
29
42
|
};
|
|
30
43
|
/**
|
|
31
44
|
* Return the interaction options as a name / value map.
|
|
32
45
|
*/
|
|
33
|
-
|
|
46
|
+
exports.optionsWithNested = optionsWithNested;
|
|
47
|
+
const transformOptions = options => options.reduce((map, option) => HashMap.set(map, option.name, option.value), HashMap.empty());
|
|
34
48
|
/**
|
|
35
49
|
* Return the interaction options as a name / value map.
|
|
36
50
|
*/
|
|
37
|
-
|
|
51
|
+
exports.transformOptions = transformOptions;
|
|
52
|
+
const optionsMap = data => transformOptions(optionsWithNested(data));
|
|
38
53
|
/**
|
|
39
54
|
* Try find a matching option from the interaction.
|
|
40
55
|
*/
|
|
41
|
-
|
|
56
|
+
exports.optionsMap = optionsMap;
|
|
57
|
+
const getOption = name => data => Arr.findFirst(optionsWithNested(data), o => o.name === name);
|
|
42
58
|
/**
|
|
43
59
|
* Try find a matching option from the interaction.
|
|
44
60
|
*/
|
|
45
|
-
|
|
61
|
+
exports.getOption = getOption;
|
|
62
|
+
const focusedOption = data => Arr.findFirst(optionsWithNested(data), o => o.focused === true);
|
|
46
63
|
/**
|
|
47
64
|
* Try find a matching option value from the interaction.
|
|
48
65
|
*/
|
|
49
|
-
|
|
66
|
+
exports.focusedOption = focusedOption;
|
|
67
|
+
const optionValue = name => data => Option.flatMapNullable(getOption(name)(data), o => o.value);
|
|
50
68
|
/**
|
|
51
69
|
* Try extract resolved data
|
|
52
70
|
*/
|
|
53
|
-
|
|
71
|
+
exports.optionValue = optionValue;
|
|
72
|
+
const resolved = data => Option.flatMapNullable(Option.fromNullable(data.data), a => a.resolved);
|
|
54
73
|
/**
|
|
55
74
|
* Try find a matching option value from the interaction.
|
|
56
75
|
*/
|
|
57
|
-
|
|
76
|
+
exports.resolved = resolved;
|
|
77
|
+
const resolveOptionValue = (name, f) => a => Option.Do().pipe(Option.bind("data", () => Option.fromNullable(a.data)), Option.bind("id", ({
|
|
78
|
+
data
|
|
79
|
+
}) => Option.flatMapNullable(getOption(name)(data), ({
|
|
80
|
+
value
|
|
81
|
+
}) => value)), Option.bind("r", () => resolved(a)), Option.flatMapNullable(({
|
|
82
|
+
id,
|
|
83
|
+
r
|
|
84
|
+
}) => f(id, r)));
|
|
58
85
|
/**
|
|
59
86
|
* Try find matching option values from the interaction.
|
|
60
87
|
*/
|
|
61
|
-
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
88
|
+
exports.resolveOptionValue = resolveOptionValue;
|
|
89
|
+
const resolveValues = f => a => Option.Do().pipe(Option.bind("values", () => Option.flatMapNullable(Option.fromNullable(a.data), a => a.values)), Option.bind("r", () => resolved(a)), Option.map(({
|
|
90
|
+
values,
|
|
91
|
+
r
|
|
92
|
+
}) => Arr.compact(values.map(a => Option.fromNullable(f(a, r))))));
|
|
93
|
+
exports.resolveValues = resolveValues;
|
|
94
|
+
const extractComponents = c => {
|
|
95
|
+
if ("components" in c) {
|
|
96
|
+
return [...c.components, ...c.components.flatMap(extractComponents)];
|
|
97
|
+
}
|
|
98
|
+
return [];
|
|
67
99
|
};
|
|
68
100
|
/**
|
|
69
101
|
* A lens for accessing the components in a interaction.
|
|
70
102
|
*/
|
|
71
|
-
|
|
72
|
-
...a.components,
|
|
73
|
-
...a.components.flatMap(extractComponents),
|
|
74
|
-
];
|
|
103
|
+
const components = a => [...a.components, ...a.components.flatMap(extractComponents)];
|
|
75
104
|
/**
|
|
76
105
|
* A lens for accessing the components in a interaction.
|
|
77
106
|
*/
|
|
78
|
-
|
|
107
|
+
exports.components = components;
|
|
108
|
+
const componentsWithValue = data => Arr.filter(components(data), c => "value" in c && c.value !== undefined);
|
|
79
109
|
/**
|
|
80
110
|
* Return the interaction components as an id / value map.
|
|
81
111
|
*/
|
|
82
|
-
|
|
112
|
+
exports.componentsWithValue = componentsWithValue;
|
|
113
|
+
const transformComponents = options => options.reduce((map, c) => c.custom_id ? HashMap.set(map, c.custom_id, c.value) : map, HashMap.empty());
|
|
83
114
|
/**
|
|
84
115
|
* Return the interaction components as an id / value map.
|
|
85
116
|
*/
|
|
86
|
-
|
|
117
|
+
exports.transformComponents = transformComponents;
|
|
118
|
+
const componentsMap = data => transformComponents(components(data));
|
|
87
119
|
/**
|
|
88
120
|
* Try find a matching component from the interaction.
|
|
89
121
|
*/
|
|
90
|
-
|
|
122
|
+
exports.componentsMap = componentsMap;
|
|
123
|
+
const getComponent = id => data => Arr.findFirst(components(data), o => o.custom_id === id);
|
|
91
124
|
/**
|
|
92
125
|
* Try find a matching component value from the interaction.
|
|
93
126
|
*/
|
|
94
|
-
|
|
95
|
-
|
|
127
|
+
exports.getComponent = getComponent;
|
|
128
|
+
const componentValue = id => data => Option.flatMapNullable(getComponent(id)(data), o => o.value);
|
|
129
|
+
exports.componentValue = componentValue;
|
|
130
|
+
const response = r => r;
|
|
131
|
+
exports.response = response;
|
|
96
132
|
//# sourceMappingURL=interactions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactions.js","
|
|
1
|
+
{"version":3,"file":"interactions.js","names":["Option","_interopRequireWildcard","require","Arr","_Function","HashMap","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","allSubCommands","interaction","filter","o","type","optionsWithNested","exports","findSubCommand","name","findFirst","isSubCommand","_","isSome","subCommandOptions","flatMapNullable","options","data","optsFromOption","opt","fromNullable","pipe","map","opts","flatMap","match","onNone","onSome","identity","getOrElse","transformOptions","reduce","option","value","empty","optionsMap","getOption","focusedOption","focused","optionValue","resolved","a","resolveOptionValue","f","Do","bind","id","r","resolveValues","values","compact","extractComponents","c","components","componentsWithValue","undefined","transformComponents","custom_id","componentsMap","getComponent","componentValue","response"],"sources":["../src/Helpers/interactions.ts"],"sourcesContent":[null],"mappings":"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"}
|
package/Helpers/members.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as Discord from "dfx/types";
|
|
2
2
|
/**
|
|
3
3
|
* From a list of roles, filter out the ones the guild member has.
|
|
4
4
|
*/
|
|
5
|
-
export declare const roles: (roles: Discord.Role[]) => (member: Discord.GuildMember) =>
|
|
5
|
+
export declare const roles: (roles: Discord.Role[]) => (member: Discord.GuildMember) => Discord.Role[];
|
|
6
6
|
/**
|
|
7
7
|
* Type-guard function for checking if the object is a guild member
|
|
8
8
|
*/
|
|
9
|
-
export declare const is: (thing: unknown) => thing is
|
|
9
|
+
export declare const is: (thing: unknown) => thing is Discord.GuildMember;
|
|
10
10
|
//# sourceMappingURL=members.d.ts.map
|
package/Helpers/members.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"members.d.ts","sourceRoot":"","sources":["../src/Helpers/members.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"members.d.ts","sourceRoot":"","sources":["../src/Helpers/members.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAA;AAEpC;;GAEG;AACH,eAAO,MAAM,KAAK,UAAW,QAAQ,IAAI,EAAE,cAAc,QAAQ,WAAW,mBAGzE,CAAA;AAEH;;GAEG;AACH,eAAO,MAAM,EAAE,UAAW,OAAO,iCAEyB,CAAA"}
|
package/Helpers/members.js
CHANGED
|
@@ -1,10 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.roles = exports.is = void 0;
|
|
1
7
|
/**
|
|
2
8
|
* From a list of roles, filter out the ones the guild member has.
|
|
3
9
|
*/
|
|
4
|
-
|
|
10
|
+
const roles = roles => member => roles.filter(role => member.roles.includes(role.id) || role.name === "@everyone");
|
|
5
11
|
/**
|
|
6
12
|
* Type-guard function for checking if the object is a guild member
|
|
7
13
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
14
|
+
exports.roles = roles;
|
|
15
|
+
const is = thing => Object.prototype.hasOwnProperty.call(thing, "roles") && Object.prototype.hasOwnProperty.call(thing, "joined_at");
|
|
16
|
+
exports.is = is;
|
|
10
17
|
//# sourceMappingURL=members.js.map
|
package/Helpers/members.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"members.js","
|
|
1
|
+
{"version":3,"file":"members.js","names":["roles","member","filter","role","includes","id","name","exports","is","thing","Object","prototype","hasOwnProperty","call"],"sources":["../src/Helpers/members.ts"],"sourcesContent":[null],"mappings":";;;;;;AAEA;;;AAGO,MAAMA,KAAK,GAAIA,KAAqB,IAAMC,MAA2B,IAC1ED,KAAK,CAACE,MAAM,CACVC,IAAI,IAAIF,MAAM,CAACD,KAAK,CAACI,QAAQ,CAACD,IAAI,CAACE,EAAE,CAAC,IAAIF,IAAI,CAACG,IAAI,KAAK,WAAW,CACpE;AAEH;;;AAAAC,OAAA,CAAAP,KAAA,GAAAA,KAAA;AAGO,MAAMQ,EAAE,GAAIC,KAAc,IAC/BC,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACJ,KAAK,EAAE,OAAO,CAAC,IACpDC,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACJ,KAAK,EAAE,WAAW,CAAC;AAAAF,OAAA,CAAAC,EAAA,GAAAA,EAAA"}
|
package/Helpers/permissions.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as Effect from "@effect/io/Effect";
|
|
2
|
+
import * as Discord from "dfx/types";
|
|
2
3
|
/**
|
|
3
4
|
* A constant of all the permissions
|
|
4
5
|
*/
|
|
@@ -33,9 +34,9 @@ export declare const forChannel: (roles: Discord.Role[]) => ({ guild_id, permiss
|
|
|
33
34
|
*/
|
|
34
35
|
export declare const applyOverwrites: (permissions: bigint) => (overwrites: Discord.Overwrite[]) => bigint;
|
|
35
36
|
interface RolesCache<E> {
|
|
36
|
-
getForParent: (parentId: string) => Effect<never, E, ReadonlyMap<string, Discord.Role>>;
|
|
37
|
+
getForParent: (parentId: string) => Effect.Effect<never, E, ReadonlyMap<string, Discord.Role>>;
|
|
37
38
|
}
|
|
38
|
-
export declare const hasInChannel: <E>(rolesCache: RolesCache<E>, permission: bigint) => (channel: Discord.Channel, memberOrRole: Discord.GuildMember | Discord.Role) =>
|
|
39
|
-
export declare const hasInGuild: <E>(rolesCache: RolesCache<E>, permission: bigint) => (guildId: Discord.Snowflake, member: Discord.GuildMember) =>
|
|
39
|
+
export declare const hasInChannel: <E>(rolesCache: RolesCache<E>, permission: bigint) => (channel: Discord.Channel, memberOrRole: Discord.GuildMember | Discord.Role) => Effect.Effect<never, E, boolean>;
|
|
40
|
+
export declare const hasInGuild: <E>(rolesCache: RolesCache<E>, permission: bigint) => (guildId: Discord.Snowflake, member: Discord.GuildMember) => Effect.Effect<never, E, boolean>;
|
|
40
41
|
export {};
|
|
41
42
|
//# sourceMappingURL=permissions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../src/Helpers/permissions.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../src/Helpers/permissions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAG3C,OAAO,KAAK,OAAO,MAAM,WAAW,CAAA;AAEpC;;GAEG;AACH,eAAO,MAAM,GAAG,QAAoC,CAAA;AAEpD;;GAEG;AACH,eAAO,MAAM,GAAG,+DAAkB,CAAA;AAElC;;GAEG;AACH,eAAO,MAAM,MAAM,67BAAuC,CAAA;AAE1D;;GAEG;AACH,eAAO,MAAM,QAAQ,y7BAA+C,CAAA;AAEpE;;GAEG;AACH,eAAO,MAAM,QAAQ,UAAW,QAAQ,IAAI,EAAE,WAI3C,CAAA;AAEH;;GAEG;AACH,eAAO,MAAM,SAAS,UACZ,QAAQ,IAAI,EAAE,cAAc,QAAQ,WAAW,WACT,CAAA;AAuBhD;;;GAGG;AACH,eAAO,MAAM,UAAU,UACb,QAAQ,IAAI,EAAE,uDACiC,QAAQ,OAAO,oBACvD,QAAQ,WAAW,GAAG,QAAQ,IAAI,WA4BhD,CAAA;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe,gBACZ,MAAM,kBAAkB,QAAQ,SAAS,EAAE,WAKtD,CAAA;AAEL,UAAU,UAAU,CAAC,CAAC;IACpB,YAAY,EAAE,CACZ,QAAQ,EAAE,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;CAChE;AAED,eAAO,MAAM,YAAY,6CACoB,MAAM,eAEtC,QAAQ,OAAO,gBACV,QAAQ,WAAW,GAAG,QAAQ,IAAI,qCAO9C,CAAA;AAEN,eAAO,MAAM,UAAU,6CACsB,MAAM,eACvC,QAAQ,SAAS,UAAU,QAAQ,WAAW,qCAQpD,CAAA"}
|
package/Helpers/permissions.js
CHANGED
|
@@ -1,83 +1,100 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.toList = exports.hasInGuild = exports.hasInChannel = exports.has = exports.fromList = exports.forRoles = exports.forMember = exports.forChannel = exports.applyOverwrites = exports.ALL = void 0;
|
|
7
|
+
var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/io/Effect"));
|
|
8
|
+
var Flags = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/Helpers/flags"));
|
|
9
|
+
var Members = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/Helpers/members"));
|
|
10
|
+
var Discord = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("dfx/types"));
|
|
11
|
+
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); }
|
|
12
|
+
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; }
|
|
6
13
|
/**
|
|
7
14
|
* A constant of all the permissions
|
|
8
15
|
*/
|
|
9
|
-
|
|
16
|
+
const ALL = /*#__PURE__*/Flags.all(Discord.PermissionFlag);
|
|
10
17
|
/**
|
|
11
18
|
* Check if a flag exists in the permissions.
|
|
12
19
|
*/
|
|
13
|
-
|
|
20
|
+
exports.ALL = ALL;
|
|
21
|
+
const has = Flags.hasBigInt;
|
|
14
22
|
/**
|
|
15
23
|
* Convert a permissions bitfield to a list of flag names.
|
|
16
24
|
*/
|
|
17
|
-
|
|
25
|
+
exports.has = has;
|
|
26
|
+
const toList = /*#__PURE__*/Flags.toList(Discord.PermissionFlag);
|
|
18
27
|
/**
|
|
19
28
|
* Convert a list of flag names to a bitfield.
|
|
20
29
|
*/
|
|
21
|
-
|
|
30
|
+
exports.toList = toList;
|
|
31
|
+
const fromList = /*#__PURE__*/Flags.fromListBigint(Discord.PermissionFlag);
|
|
22
32
|
/**
|
|
23
33
|
* Reduce a list of roles to a bitfield of all the permissions added together.
|
|
24
34
|
*/
|
|
25
|
-
|
|
35
|
+
exports.fromList = fromList;
|
|
36
|
+
const forRoles = roles => roles.reduce((permissions, role) => permissions | BigInt(role.permissions), BigInt(0));
|
|
26
37
|
/**
|
|
27
38
|
* From a list of roles, calculate the permissions bitfield for the member.
|
|
28
39
|
*/
|
|
29
|
-
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
return overwrite.id === member.
|
|
40
|
+
exports.forRoles = forRoles;
|
|
41
|
+
const forMember = roles => member => forRoles(Members.roles(roles)(member));
|
|
42
|
+
exports.forMember = forMember;
|
|
43
|
+
const overwriteIsForMember = guildId => member => overwrite => {
|
|
44
|
+
if (overwrite.type === 0) {
|
|
45
|
+
return overwrite.id === guildId || member.roles.includes(overwrite.id);
|
|
46
|
+
}
|
|
47
|
+
return overwrite.id === member.user?.id;
|
|
35
48
|
};
|
|
36
|
-
const overwriteIsForRole =
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
49
|
+
const overwriteIsForRole = guildId => role => overwrite => {
|
|
50
|
+
if (overwrite.type === 0) {
|
|
51
|
+
return overwrite.id === guildId || overwrite.id === role.id;
|
|
52
|
+
}
|
|
53
|
+
return false;
|
|
41
54
|
};
|
|
42
55
|
/**
|
|
43
56
|
* From a list of roles and a channel, calculate the permission bitfield for
|
|
44
57
|
* the guild member or role for that channel.
|
|
45
58
|
*/
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
59
|
+
const forChannel = roles => ({
|
|
60
|
+
guild_id,
|
|
61
|
+
permission_overwrites: overwrites = []
|
|
62
|
+
}) => memberOrRole => {
|
|
63
|
+
const hasAdmin = has(Discord.PermissionFlag.ADMINISTRATOR);
|
|
64
|
+
let basePermissions;
|
|
65
|
+
let filteredOverwrites;
|
|
66
|
+
if (Members.is(memberOrRole)) {
|
|
67
|
+
if (memberOrRole.permissions) return BigInt(memberOrRole.permissions);
|
|
68
|
+
const memberRoles = Members.roles(roles)(memberOrRole);
|
|
69
|
+
basePermissions = forRoles(memberRoles);
|
|
70
|
+
filteredOverwrites = overwrites.filter(overwriteIsForMember(guild_id)(memberOrRole));
|
|
71
|
+
} else {
|
|
72
|
+
const everyone = roles.find(role => role.name === "@everyone");
|
|
73
|
+
basePermissions = BigInt(everyone?.permissions || "0") | BigInt(memberOrRole.permissions);
|
|
74
|
+
filteredOverwrites = overwrites.filter(overwriteIsForRole(guild_id)(memberOrRole));
|
|
75
|
+
}
|
|
76
|
+
if (hasAdmin(basePermissions)) {
|
|
77
|
+
return ALL;
|
|
78
|
+
}
|
|
79
|
+
return applyOverwrites(basePermissions)(filteredOverwrites);
|
|
67
80
|
};
|
|
68
81
|
/**
|
|
69
82
|
* Apply permission overwrites to a bitfield.
|
|
70
83
|
*/
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
84
|
+
exports.forChannel = forChannel;
|
|
85
|
+
const applyOverwrites = permissions => overwrites => overwrites.reduce((permissions, overwrite) => permissions & ~BigInt(overwrite.deny) | BigInt(overwrite.allow), permissions);
|
|
86
|
+
exports.applyOverwrites = applyOverwrites;
|
|
87
|
+
const hasInChannel = (rolesCache, permission) => (channel, memberOrRole) => Effect.map(rolesCache.getForParent(channel.guild_id), roles => {
|
|
88
|
+
const channelPerms = forChannel([...roles.values()])(channel)(memberOrRole);
|
|
89
|
+
return has(permission)(channelPerms);
|
|
75
90
|
});
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
91
|
+
exports.hasInChannel = hasInChannel;
|
|
92
|
+
const hasInGuild = (rolesCache, permission) => (guildId, member) => Effect.map(rolesCache.getForParent(guildId), roles => {
|
|
93
|
+
const hasPerm = has(permission);
|
|
94
|
+
return member.roles.some(id => {
|
|
95
|
+
const role = roles.get(id);
|
|
96
|
+
return role ? hasPerm(role.permissions) : false;
|
|
97
|
+
});
|
|
82
98
|
});
|
|
99
|
+
exports.hasInGuild = hasInGuild;
|
|
83
100
|
//# sourceMappingURL=permissions.js.map
|