dfx 1.0.3 → 1.0.5
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/dist/Cache/driver.d.ts +24 -0
- package/dist/Cache/driver.d.ts.map +1 -0
- package/dist/Cache/driver.js +3 -0
- package/dist/Cache/driver.js.map +1 -0
- package/dist/Cache/memory.d.ts +5 -0
- package/dist/Cache/memory.d.ts.map +1 -0
- package/dist/Cache/memory.js +48 -0
- package/dist/Cache/memory.js.map +1 -0
- package/dist/Cache/memoryTTL.d.ts +23 -0
- package/dist/Cache/memoryTTL.d.ts.map +1 -0
- package/dist/Cache/memoryTTL.js +113 -0
- package/dist/Cache/memoryTTL.js.map +1 -0
- package/dist/Cache/prelude.d.ts +32 -0
- package/dist/Cache/prelude.d.ts.map +1 -0
- package/dist/Cache/prelude.js +130 -0
- package/dist/Cache/prelude.js.map +1 -0
- package/dist/Cache.d.ts +81 -0
- package/dist/Cache.d.ts.map +1 -0
- package/dist/Cache.js +77 -0
- package/dist/Cache.js.map +1 -0
- package/dist/DiscordConfig.d.ts +35 -0
- package/dist/DiscordConfig.d.ts.map +1 -0
- package/dist/DiscordConfig.js +29 -0
- package/dist/DiscordConfig.js.map +1 -0
- package/dist/DiscordGateway/DiscordWS.d.ts +37 -0
- package/dist/DiscordGateway/DiscordWS.d.ts.map +1 -0
- package/dist/DiscordGateway/DiscordWS.js +74 -0
- package/dist/DiscordGateway/DiscordWS.js.map +1 -0
- package/dist/DiscordGateway/Messaging.d.ts +587 -0
- package/dist/DiscordGateway/Messaging.d.ts.map +1 -0
- package/dist/DiscordGateway/Messaging.js +34 -0
- package/dist/DiscordGateway/Messaging.js.map +1 -0
- package/dist/DiscordGateway/Shard/StateStore.d.ts +24 -0
- package/dist/DiscordGateway/Shard/StateStore.d.ts.map +1 -0
- package/dist/DiscordGateway/Shard/StateStore.js +41 -0
- package/dist/DiscordGateway/Shard/StateStore.js.map +1 -0
- package/dist/DiscordGateway/Shard/heartbeats.d.ts +8 -0
- package/dist/DiscordGateway/Shard/heartbeats.d.ts.map +1 -0
- package/dist/DiscordGateway/Shard/heartbeats.js +25 -0
- package/dist/DiscordGateway/Shard/heartbeats.js.map +1 -0
- package/dist/DiscordGateway/Shard/identify.d.ts +12 -0
- package/dist/DiscordGateway/Shard/identify.d.ts.map +1 -0
- package/dist/DiscordGateway/Shard/identify.js +26 -0
- package/dist/DiscordGateway/Shard/identify.js.map +1 -0
- package/dist/DiscordGateway/Shard/sendEvents.d.ts +8 -0
- package/dist/DiscordGateway/Shard/sendEvents.d.ts.map +1 -0
- package/dist/DiscordGateway/Shard/sendEvents.js +26 -0
- package/dist/DiscordGateway/Shard/sendEvents.js.map +1 -0
- package/dist/DiscordGateway/Shard/utils.d.ts +6 -0
- package/dist/DiscordGateway/Shard/utils.d.ts.map +1 -0
- package/dist/DiscordGateway/Shard/utils.js +3 -0
- package/dist/DiscordGateway/Shard/utils.js.map +1 -0
- package/dist/DiscordGateway/Shard.d.ts +29 -0
- package/dist/DiscordGateway/Shard.d.ts.map +1 -0
- package/dist/DiscordGateway/Shard.js +134 -0
- package/dist/DiscordGateway/Shard.js.map +1 -0
- package/dist/DiscordGateway/ShardStore.d.ts +19 -0
- package/dist/DiscordGateway/ShardStore.d.ts.map +1 -0
- package/dist/DiscordGateway/ShardStore.js +23 -0
- package/dist/DiscordGateway/ShardStore.js.map +1 -0
- package/dist/DiscordGateway/Sharder.d.ts +14 -0
- package/dist/DiscordGateway/Sharder.d.ts.map +1 -0
- package/dist/DiscordGateway/Sharder.js +57 -0
- package/dist/DiscordGateway/Sharder.js.map +1 -0
- package/dist/DiscordGateway.d.ts +33 -0
- package/dist/DiscordGateway.d.ts.map +1 -0
- package/dist/DiscordGateway.js +21 -0
- package/dist/DiscordGateway.js.map +1 -0
- package/dist/DiscordREST/Generated.d.ts +5577 -0
- package/dist/DiscordREST/Generated.d.ts.map +1 -0
- package/dist/DiscordREST/Generated.js +2302 -0
- package/dist/DiscordREST/Generated.js.map +1 -0
- package/dist/DiscordREST/utils.d.ts +14 -0
- package/dist/DiscordREST/utils.d.ts.map +1 -0
- package/dist/DiscordREST/utils.js +23 -0
- package/dist/DiscordREST/utils.js.map +1 -0
- package/dist/DiscordREST.d.ts +22 -0
- package/dist/DiscordREST.d.ts.map +1 -0
- package/dist/DiscordREST.js +123 -0
- package/dist/DiscordREST.js.map +1 -0
- package/dist/Helpers/flags.d.ts +28 -0
- package/dist/Helpers/flags.d.ts.map +1 -0
- package/dist/Helpers/flags.js +45 -0
- package/dist/Helpers/flags.js.map +1 -0
- package/dist/Helpers/intents.d.ts +25 -0
- package/dist/Helpers/intents.d.ts.map +1 -0
- package/dist/Helpers/intents.js +29 -0
- package/dist/Helpers/intents.js.map +1 -0
- package/dist/Helpers/interactions.d.ts +116 -0
- package/dist/Helpers/interactions.d.ts.map +1 -0
- package/dist/Helpers/interactions.js +114 -0
- package/dist/Helpers/interactions.js.map +1 -0
- package/dist/Helpers/members.d.ts +10 -0
- package/dist/Helpers/members.d.ts.map +1 -0
- package/dist/Helpers/members.js +10 -0
- package/dist/Helpers/members.js.map +1 -0
- package/dist/Helpers/permissions.d.ts +42 -0
- package/dist/Helpers/permissions.d.ts.map +1 -0
- package/dist/Helpers/permissions.js +84 -0
- package/dist/Helpers/permissions.js.map +1 -0
- package/dist/Helpers/ui.d.ts +105 -0
- package/dist/Helpers/ui.d.ts.map +1 -0
- package/dist/Helpers/ui.js +135 -0
- package/dist/Helpers/ui.js.map +1 -0
- package/dist/Interactions/builder.d.ts +48 -0
- package/dist/Interactions/builder.d.ts.map +1 -0
- package/dist/Interactions/builder.js +63 -0
- package/dist/Interactions/builder.js.map +1 -0
- package/dist/Interactions/commandHelper.d.ts +83 -0
- package/dist/Interactions/commandHelper.d.ts.map +1 -0
- package/dist/Interactions/commandHelper.js +47 -0
- package/dist/Interactions/commandHelper.js.map +1 -0
- package/dist/Interactions/context.d.ts +53 -0
- package/dist/Interactions/context.d.ts.map +1 -0
- package/dist/Interactions/context.js +35 -0
- package/dist/Interactions/context.js.map +1 -0
- package/dist/Interactions/definitions.d.ts +43 -0
- package/dist/Interactions/definitions.d.ts.map +1 -0
- package/dist/Interactions/definitions.js +51 -0
- package/dist/Interactions/definitions.js.map +1 -0
- package/dist/Interactions/error.d.ts +2 -0
- package/dist/Interactions/error.d.ts.map +1 -0
- package/dist/Interactions/error.js +2 -0
- package/dist/Interactions/error.js.map +1 -0
- package/dist/Interactions/gateway.d.ts +20 -0
- package/dist/Interactions/gateway.d.ts.map +1 -0
- package/dist/Interactions/gateway.js +75 -0
- package/dist/Interactions/gateway.js.map +1 -0
- package/dist/Interactions/handlers.d.ts +15 -0
- package/dist/Interactions/handlers.d.ts.map +1 -0
- package/dist/Interactions/handlers.js +61 -0
- package/dist/Interactions/handlers.js.map +1 -0
- package/dist/Interactions/index.d.ts +17 -0
- package/dist/Interactions/index.d.ts.map +1 -0
- package/dist/Interactions/index.js +11 -0
- package/dist/Interactions/index.js.map +1 -0
- package/dist/Interactions/utils.d.ts +61 -0
- package/dist/Interactions/utils.d.ts.map +1 -0
- package/dist/Interactions/utils.js +29 -0
- package/dist/Interactions/utils.js.map +1 -0
- package/dist/Interactions/webhook.d.ts +71 -0
- package/dist/Interactions/webhook.d.ts.map +1 -0
- package/dist/Interactions/webhook.js +56 -0
- package/dist/Interactions/webhook.js.map +1 -0
- package/dist/LICENSE +21 -0
- package/{examples/readme.ts → dist/README.md} +13 -3
- package/dist/RateLimit/memory.d.ts +3 -0
- package/dist/RateLimit/memory.d.ts.map +1 -0
- package/dist/RateLimit/memory.js +35 -0
- package/dist/RateLimit/memory.js.map +1 -0
- package/dist/RateLimit/utils.d.ts +3 -0
- package/dist/RateLimit/utils.d.ts.map +1 -0
- package/dist/RateLimit/utils.js +18 -0
- package/dist/RateLimit/utils.js.map +1 -0
- package/dist/RateLimit.d.ts +30 -0
- package/dist/RateLimit.d.ts.map +1 -0
- package/dist/RateLimit.js +28 -0
- package/dist/RateLimit.js.map +1 -0
- package/dist/gateway.d.ts +19 -0
- package/dist/gateway.d.ts.map +1 -0
- package/dist/gateway.js +19 -0
- package/dist/gateway.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/mjs/Cache/driver.mjs +3 -0
- package/dist/mjs/Cache/driver.mjs.map +1 -0
- package/dist/mjs/Cache/memory.mjs +48 -0
- package/dist/mjs/Cache/memory.mjs.map +1 -0
- package/dist/mjs/Cache/memoryTTL.mjs +119 -0
- package/dist/mjs/Cache/memoryTTL.mjs.map +1 -0
- package/dist/mjs/Cache/prelude.mjs +131 -0
- package/dist/mjs/Cache/prelude.mjs.map +1 -0
- package/dist/mjs/Cache.mjs +90 -0
- package/dist/mjs/Cache.mjs.map +1 -0
- package/dist/mjs/DiscordConfig.mjs +32 -0
- package/dist/mjs/DiscordConfig.mjs.map +1 -0
- package/dist/mjs/DiscordGateway/DiscordWS.mjs +77 -0
- package/dist/mjs/DiscordGateway/DiscordWS.mjs.map +1 -0
- package/dist/mjs/DiscordGateway/Messaging.mjs +35 -0
- package/dist/mjs/DiscordGateway/Messaging.mjs.map +1 -0
- package/dist/mjs/DiscordGateway/Shard/StateStore.mjs +41 -0
- package/dist/mjs/DiscordGateway/Shard/StateStore.mjs.map +1 -0
- package/dist/mjs/DiscordGateway/Shard/heartbeats.mjs +25 -0
- package/dist/mjs/DiscordGateway/Shard/heartbeats.mjs.map +1 -0
- package/dist/mjs/DiscordGateway/Shard/identify.mjs +29 -0
- package/dist/mjs/DiscordGateway/Shard/identify.mjs.map +1 -0
- package/dist/mjs/DiscordGateway/Shard/sendEvents.mjs +26 -0
- package/dist/mjs/DiscordGateway/Shard/sendEvents.mjs.map +1 -0
- package/dist/mjs/DiscordGateway/Shard/utils.mjs +3 -0
- package/dist/mjs/DiscordGateway/Shard/utils.mjs.map +1 -0
- package/dist/mjs/DiscordGateway/Shard.mjs +147 -0
- package/dist/mjs/DiscordGateway/Shard.mjs.map +1 -0
- package/dist/mjs/DiscordGateway/ShardStore.mjs +24 -0
- package/dist/mjs/DiscordGateway/ShardStore.mjs.map +1 -0
- package/dist/mjs/DiscordGateway/Sharder.mjs +67 -0
- package/dist/mjs/DiscordGateway/Sharder.mjs.map +1 -0
- package/dist/mjs/DiscordGateway.mjs +21 -0
- package/dist/mjs/DiscordGateway.mjs.map +1 -0
- package/dist/mjs/DiscordREST/Generated.mjs +2471 -0
- package/dist/mjs/DiscordREST/Generated.mjs.map +1 -0
- package/dist/mjs/DiscordREST/utils.mjs +21 -0
- package/dist/mjs/DiscordREST/utils.mjs.map +1 -0
- package/dist/mjs/DiscordREST.mjs +119 -0
- package/dist/mjs/DiscordREST.mjs.map +1 -0
- package/dist/mjs/Helpers/flags.mjs +45 -0
- package/dist/mjs/Helpers/flags.mjs.map +1 -0
- package/dist/mjs/Helpers/intents.mjs +27 -0
- package/dist/mjs/Helpers/intents.mjs.map +1 -0
- package/dist/mjs/Helpers/interactions.mjs +115 -0
- package/dist/mjs/Helpers/interactions.mjs.map +1 -0
- package/dist/mjs/Helpers/members.mjs +9 -0
- package/dist/mjs/Helpers/members.mjs.map +1 -0
- package/dist/mjs/Helpers/permissions.mjs +84 -0
- package/dist/mjs/Helpers/permissions.mjs.map +1 -0
- package/dist/mjs/Helpers/ui.mjs +137 -0
- package/dist/mjs/Helpers/ui.mjs.map +1 -0
- package/dist/mjs/Interactions/builder.mjs +56 -0
- package/dist/mjs/Interactions/builder.mjs.map +1 -0
- package/dist/mjs/Interactions/commandHelper.mjs +49 -0
- package/dist/mjs/Interactions/commandHelper.mjs.map +1 -0
- package/dist/mjs/Interactions/context.mjs +28 -0
- package/dist/mjs/Interactions/context.mjs.map +1 -0
- package/dist/mjs/Interactions/definitions.mjs +51 -0
- package/dist/mjs/Interactions/definitions.mjs.map +1 -0
- package/dist/mjs/Interactions/error.mjs +2 -0
- package/dist/mjs/Interactions/error.mjs.map +1 -0
- package/dist/mjs/Interactions/gateway.mjs +82 -0
- package/dist/mjs/Interactions/gateway.mjs.map +1 -0
- package/dist/mjs/Interactions/handlers.mjs +64 -0
- package/dist/mjs/Interactions/handlers.mjs.map +1 -0
- package/dist/mjs/Interactions/index.mjs +11 -0
- package/dist/mjs/Interactions/index.mjs.map +1 -0
- package/dist/mjs/Interactions/utils.mjs +26 -0
- package/dist/mjs/Interactions/utils.mjs.map +1 -0
- package/dist/mjs/Interactions/webhook.mjs +75 -0
- package/dist/mjs/Interactions/webhook.mjs.map +1 -0
- package/dist/mjs/RateLimit/memory.mjs +39 -0
- package/dist/mjs/RateLimit/memory.mjs.map +1 -0
- package/dist/mjs/RateLimit/utils.mjs +18 -0
- package/dist/mjs/RateLimit/utils.mjs.map +1 -0
- package/dist/mjs/RateLimit.mjs +28 -0
- package/dist/mjs/RateLimit.mjs.map +1 -0
- package/dist/mjs/gateway.mjs +19 -0
- package/dist/mjs/gateway.mjs.map +1 -0
- package/dist/mjs/index.mjs +18 -0
- package/dist/mjs/index.mjs.map +1 -0
- package/dist/mjs/types.mjs +356 -0
- package/dist/mjs/types.mjs.map +1 -0
- package/dist/mjs/utils/Effect.mjs +44 -0
- package/dist/mjs/utils/Effect.mjs.map +1 -0
- package/dist/mjs/version.mjs +2 -0
- package/dist/mjs/version.mjs.map +1 -0
- package/dist/mjs/webhooks.mjs +6 -0
- package/dist/mjs/webhooks.mjs.map +1 -0
- package/dist/package.json +48 -0
- package/dist/src/Cache/driver.ts +37 -0
- package/dist/src/Cache/memory.ts +83 -0
- package/dist/src/Cache/memoryTTL.ts +225 -0
- package/dist/src/Cache/prelude.ts +279 -0
- package/dist/src/Cache.ts +261 -0
- package/dist/src/DiscordConfig.ts +67 -0
- package/dist/src/DiscordGateway/DiscordWS.ts +157 -0
- package/dist/src/DiscordGateway/Messaging.ts +71 -0
- package/dist/src/DiscordGateway/Shard/StateStore.ts +72 -0
- package/dist/src/DiscordGateway/Shard/heartbeats.ts +60 -0
- package/dist/src/DiscordGateway/Shard/identify.ts +50 -0
- package/dist/src/DiscordGateway/Shard/sendEvents.ts +43 -0
- package/dist/src/DiscordGateway/Shard/utils.ts +13 -0
- package/dist/src/DiscordGateway/Shard.ts +205 -0
- package/dist/src/DiscordGateway/ShardStore.ts +42 -0
- package/dist/src/DiscordGateway/Sharder.ts +118 -0
- package/dist/src/DiscordGateway.ts +79 -0
- package/dist/src/DiscordREST/Generated.ts +10832 -0
- package/dist/src/DiscordREST/utils.ts +42 -0
- package/dist/src/DiscordREST.ts +256 -0
- package/dist/src/Helpers/flags.ts +73 -0
- package/dist/src/Helpers/intents.ts +35 -0
- package/dist/src/Helpers/interactions.ts +317 -0
- package/dist/src/Helpers/members.ts +18 -0
- package/dist/src/Helpers/permissions.ts +145 -0
- package/dist/src/Helpers/ui.ts +253 -0
- package/dist/src/Interactions/builder.ts +171 -0
- package/dist/src/Interactions/commandHelper.ts +231 -0
- package/dist/src/Interactions/context.ts +104 -0
- package/dist/src/Interactions/definitions.ts +144 -0
- package/dist/src/Interactions/error.ts +3 -0
- package/dist/src/Interactions/gateway.ts +193 -0
- package/dist/src/Interactions/handlers.ts +108 -0
- package/dist/src/Interactions/index.ts +30 -0
- package/dist/src/Interactions/utils.ts +93 -0
- package/dist/src/Interactions/webhook.ts +204 -0
- package/dist/src/RateLimit/memory.ts +63 -0
- package/dist/src/RateLimit/utils.ts +28 -0
- package/dist/src/RateLimit.ts +90 -0
- package/dist/src/gateway.ts +50 -0
- package/dist/src/index.ts +44 -0
- package/dist/src/types.ts +3090 -0
- package/dist/src/utils/Effect.ts +65 -0
- package/dist/src/version.ts +1 -0
- package/dist/src/webhooks.ts +25 -0
- package/dist/types.d.ts +2458 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +356 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/Effect.d.ts +5 -0
- package/dist/utils/Effect.d.ts.map +1 -0
- package/dist/utils/Effect.js +42 -0
- package/dist/utils/Effect.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +2 -0
- package/dist/version.js.map +1 -0
- package/dist/webhooks.d.ts +8 -0
- package/dist/webhooks.d.ts.map +1 -0
- package/dist/webhooks.js +6 -0
- package/dist/webhooks.js.map +1 -0
- package/package.json +19 -11
- package/src/version.ts +1 -0
- package/.babel.cjs.json +0 -11
- package/.babel.mjs.json +0 -10
- package/.envrc +0 -1
- package/.gitmodules +0 -3
- package/.husky/pre-commit +0 -2
- package/.oxlintrc.json +0 -72
- package/.prettierignore +0 -0
- package/.prettierrc.json +0 -5
- package/.tool-versions +0 -1
- package/.vscode/debug.cjs +0 -8
- package/.vscode/launch.json +0 -23
- package/.vscode/settings.json +0 -29
- package/.vscode/tasks.json +0 -44
- package/AGENTS.md +0 -15
- package/CHANGELOG.md +0 -1566
- package/examples/.env.example +0 -5
- package/examples/interactions.ts +0 -79
- package/examples/registry.ts +0 -66
- package/flake.lock +0 -27
- package/flake.nix +0 -21
- package/lerna.json +0 -12
- package/pnpm-workspace.yaml +0 -7
- package/scripts/generate-client.sh +0 -10
- package/scripts/worktree-setup.sh +0 -8
- package/test/index.test.ts +0 -5
- package/vitest.config.ts +0 -22
- /package/{tsconfig.base.json → dist/tsconfig.base.json} +0 -0
- /package/{tsconfig.build.json → dist/tsconfig.build.json} +0 -0
- /package/{tsconfig.examples.json → dist/tsconfig.examples.json} +0 -0
- /package/{tsconfig.json → dist/tsconfig.json} +0 -0
- /package/{tsconfig.madge.json → dist/tsconfig.madge.json} +0 -0
- /package/{tsconfig.test.json → dist/tsconfig.test.json} +0 -0
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import * as Discord from "../types.ts";
|
|
2
|
+
import * as HashMap from "effect/HashMap";
|
|
3
|
+
import * as Option from "effect/Option";
|
|
4
|
+
/**
|
|
5
|
+
* Option find a sub-command within the interaction options.
|
|
6
|
+
*/
|
|
7
|
+
export declare const allSubCommands: (interaction: Discord.APIApplicationCommandInteraction["data"]) => Discord.APIApplicationCommandInteractionDataSubcommandOption<import("discord-api-types/v10").InteractionType>[];
|
|
8
|
+
/**
|
|
9
|
+
* Get the target for the application command data.
|
|
10
|
+
*/
|
|
11
|
+
export declare const target: (interaction: Discord.APIApplicationCommandInteraction["data"]) => Discord.APIApplicationCommandInteraction["data"] | Discord.UserResponse | Discord.MessageResponse;
|
|
12
|
+
/**
|
|
13
|
+
* Option find a sub-command within the interaction options.
|
|
14
|
+
*/
|
|
15
|
+
export declare const findSubCommand: (name: string) => (interaction: Discord.APIApplicationCommandInteraction["data"]) => Option.Option<Discord.APIApplicationCommandInteractionDataSubcommandOption<import("discord-api-types/v10").InteractionType>>;
|
|
16
|
+
/**
|
|
17
|
+
* If the sub-command exists return `true`, else `false`.
|
|
18
|
+
*/
|
|
19
|
+
export declare const isSubCommand: (name: string) => (_: Discord.APIApplicationCommandInteraction["data"]) => boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Option get the options for a sub-command
|
|
22
|
+
*/
|
|
23
|
+
export declare const subCommandOptions: (name: string) => (_: Discord.APIApplicationCommandInteraction["data"]) => Option.Option<import("discord-api-types/v10").APIApplicationCommandInteractionDataBasicOption<import("discord-api-types/v10").InteractionType>[]>;
|
|
24
|
+
/**
|
|
25
|
+
* A lens for accessing nested options in a interaction.
|
|
26
|
+
*/
|
|
27
|
+
export declare const optionsWithNested: (data: {
|
|
28
|
+
readonly options?: ReadonlyArray<Discord.APIApplicationCommandInteractionDataOption> | undefined;
|
|
29
|
+
}) => Array<Discord.APIApplicationCommandInteractionDataOption>;
|
|
30
|
+
/**
|
|
31
|
+
* Return the interaction options as a name / value map.
|
|
32
|
+
*/
|
|
33
|
+
export declare const transformOptions: (options: Array<Discord.APIApplicationCommandInteractionDataOption>) => HashMap.HashMap<string, any>;
|
|
34
|
+
/**
|
|
35
|
+
* Return the interaction options as a name / value map.
|
|
36
|
+
*/
|
|
37
|
+
export declare const optionsMap: (data: {
|
|
38
|
+
readonly options?: ReadonlyArray<Discord.APIApplicationCommandInteractionDataOption> | undefined;
|
|
39
|
+
}) => HashMap.HashMap<string, any>;
|
|
40
|
+
/**
|
|
41
|
+
* Try find a matching option from the interaction.
|
|
42
|
+
*/
|
|
43
|
+
export declare const getOption: (name: string) => (data: {
|
|
44
|
+
readonly options?: ReadonlyArray<Discord.APIApplicationCommandInteractionDataOption> | undefined;
|
|
45
|
+
}) => Option.Option<Discord.APIApplicationCommandInteractionDataOption>;
|
|
46
|
+
/**
|
|
47
|
+
* Try find a matching option from the interaction.
|
|
48
|
+
*/
|
|
49
|
+
export declare const focusedOption: (data: {
|
|
50
|
+
readonly options?: ReadonlyArray<Discord.APIApplicationCommandInteractionDataOption> | undefined;
|
|
51
|
+
}) => Option.Option<Discord.APIApplicationCommandInteractionDataOption>;
|
|
52
|
+
/**
|
|
53
|
+
* Try find a matching option value from the interaction.
|
|
54
|
+
*/
|
|
55
|
+
export declare const optionValue: (name: string) => (data: {
|
|
56
|
+
readonly options?: ReadonlyArray<Discord.APIApplicationCommandInteractionDataOption> | undefined;
|
|
57
|
+
}) => Option.Option<NonNullable<string | number | boolean | undefined>>;
|
|
58
|
+
/**
|
|
59
|
+
* Try extract resolved data
|
|
60
|
+
*/
|
|
61
|
+
export declare const resolved: (data: Discord.APIInteraction) => Option.Option<Discord.InteractionDataResolved>;
|
|
62
|
+
/**
|
|
63
|
+
* Try find a matching option value from the interaction.
|
|
64
|
+
*/
|
|
65
|
+
export declare const resolveOptionValue: <T>(name: string, f: (id: Discord.Snowflake, data: Discord.InteractionDataResolved) => T | undefined) => (a: Discord.APIInteraction) => Option.Option<T>;
|
|
66
|
+
/**
|
|
67
|
+
* Try find matching option values from the interaction.
|
|
68
|
+
*/
|
|
69
|
+
export declare const resolveValues: <T>(f: (id: Discord.Snowflake, data: Discord.InteractionDataResolved) => T | undefined) => (a: Discord.APIInteraction) => Option.Option<ReadonlyArray<T>>;
|
|
70
|
+
/**
|
|
71
|
+
* A lens for accessing the components in a interaction.
|
|
72
|
+
*/
|
|
73
|
+
export declare const components: (a: Discord.APIModalSubmission) => Array<Discord.AllComponents>;
|
|
74
|
+
/**
|
|
75
|
+
* A lens for accessing the components in a interaction.
|
|
76
|
+
*/
|
|
77
|
+
export declare const componentsWithValue: (data: Discord.APIModalSubmission) => Discord.AllComponents[];
|
|
78
|
+
/**
|
|
79
|
+
* Return the interaction components as an id / value map.
|
|
80
|
+
*/
|
|
81
|
+
export declare const transformComponents: (options: Array<Discord.AllComponents>) => HashMap.HashMap<string, string | null | undefined>;
|
|
82
|
+
/**
|
|
83
|
+
* Return the interaction components as an id / value map.
|
|
84
|
+
*/
|
|
85
|
+
export declare const componentsMap: (data: Discord.APIModalSubmission) => HashMap.HashMap<string, string | null | undefined>;
|
|
86
|
+
/**
|
|
87
|
+
* Try find a matching component from the interaction.
|
|
88
|
+
*/
|
|
89
|
+
export declare const getComponent: (id: string) => (data: Discord.APIModalSubmission) => Option.Option<Discord.AllComponents>;
|
|
90
|
+
/**
|
|
91
|
+
* Try find a matching component value from the interaction.
|
|
92
|
+
*/
|
|
93
|
+
export declare const componentValue: (id: string) => (data: Discord.APIModalSubmission) => Option.Option<string>;
|
|
94
|
+
export type InteractionResponse = {
|
|
95
|
+
type: typeof Discord.InteractionCallbackTypes.CHANNEL_MESSAGE_WITH_SOURCE;
|
|
96
|
+
data: Discord.IncomingWebhookInteractionRequest;
|
|
97
|
+
files?: ReadonlyArray<File>;
|
|
98
|
+
} | {
|
|
99
|
+
type: typeof Discord.InteractionCallbackTypes.UPDATE_MESSAGE;
|
|
100
|
+
data: Discord.IncomingWebhookUpdateForInteractionCallbackRequestPartial;
|
|
101
|
+
files?: ReadonlyArray<File>;
|
|
102
|
+
} | {
|
|
103
|
+
type: typeof Discord.InteractionCallbackTypes.MODAL;
|
|
104
|
+
data: Discord.ModalInteractionCallbackRequestData;
|
|
105
|
+
} | {
|
|
106
|
+
type: typeof Discord.InteractionCallbackTypes.DEFERRED_UPDATE_MESSAGE;
|
|
107
|
+
} | {
|
|
108
|
+
type: typeof Discord.InteractionCallbackTypes.DEFERRED_CHANNEL_MESSAGE_WITH_SOURCE;
|
|
109
|
+
} | {
|
|
110
|
+
type: typeof Discord.InteractionCallbackTypes.APPLICATION_COMMAND_AUTOCOMPLETE_RESULT;
|
|
111
|
+
data: Discord.ApplicationCommandAutocompleteCallbackRequest["data"];
|
|
112
|
+
} | {
|
|
113
|
+
type: typeof Discord.InteractionCallbackTypes.LAUNCH_ACTIVITY;
|
|
114
|
+
};
|
|
115
|
+
export declare const response: (r: InteractionResponse) => Discord.CreateInteractionResponseRequest;
|
|
116
|
+
//# sourceMappingURL=interactions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactions.d.ts","sourceRoot":"","sources":["../src/Helpers/interactions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import * as Discord from "../types.js";
|
|
2
|
+
import * as Arr from "effect/Array";
|
|
3
|
+
import { identity, pipe } from "effect/Function";
|
|
4
|
+
import * as HashMap from "effect/HashMap";
|
|
5
|
+
import * as Option from "effect/Option";
|
|
6
|
+
/**
|
|
7
|
+
* Option find a sub-command within the interaction options.
|
|
8
|
+
*/
|
|
9
|
+
export const allSubCommands = (interaction) => pipe(optionsWithNested(interaction), Arr.filter(o => o.type === Discord.ApplicationCommandOptionType.SUB_COMMAND));
|
|
10
|
+
/**
|
|
11
|
+
* Get the target for the application command data.
|
|
12
|
+
*/
|
|
13
|
+
export const target = (interaction) => targetTypes[interaction.type](interaction);
|
|
14
|
+
const targetTypes = {
|
|
15
|
+
[Discord.ApplicationCommandType.USER]: data => data.resolved.users[data.target_id],
|
|
16
|
+
[Discord.ApplicationCommandType.MESSAGE]: data => data.resolved.messages[data.target_id],
|
|
17
|
+
[Discord.ApplicationCommandType.CHAT]: data => data,
|
|
18
|
+
[Discord.ApplicationCommandType.PRIMARY_ENTRY_POINT]: data => data,
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Option find a sub-command within the interaction options.
|
|
22
|
+
*/
|
|
23
|
+
export const findSubCommand = (name) => (interaction) => pipe(optionsWithNested(interaction), Arr.findFirst((o) => o.type === Discord.ApplicationCommandOptionType.SUB_COMMAND &&
|
|
24
|
+
o.name === name));
|
|
25
|
+
/**
|
|
26
|
+
* If the sub-command exists return `true`, else `false`.
|
|
27
|
+
*/
|
|
28
|
+
export const isSubCommand = (name) => (_) => Option.isSome(findSubCommand(name)(_));
|
|
29
|
+
/**
|
|
30
|
+
* Option get the options for a sub-command
|
|
31
|
+
*/
|
|
32
|
+
export const subCommandOptions = (name) => (_) => Option.flatMapNullishOr(findSubCommand(name)(_), o => o.options);
|
|
33
|
+
/**
|
|
34
|
+
* A lens for accessing nested options in a interaction.
|
|
35
|
+
*/
|
|
36
|
+
export const optionsWithNested = (data) => {
|
|
37
|
+
const optsFromOption = (opt) => Option.fromNullishOr(opt.options).pipe(Option.map(opts => [
|
|
38
|
+
...opts,
|
|
39
|
+
...opts.flatMap(_ => optsFromOption(_)),
|
|
40
|
+
]), Option.match({ onNone: () => [], onSome: identity }));
|
|
41
|
+
return Option.fromNullishOr(data.options).pipe(Option.map(opts => [
|
|
42
|
+
...opts,
|
|
43
|
+
...opts.flatMap(_ => optsFromOption(_)),
|
|
44
|
+
]), Option.getOrElse(() => []));
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Return the interaction options as a name / value map.
|
|
48
|
+
*/
|
|
49
|
+
export const transformOptions = (options) => options.reduce((map, option) => HashMap.set(map, option.name, option.value), HashMap.empty());
|
|
50
|
+
/**
|
|
51
|
+
* Return the interaction options as a name / value map.
|
|
52
|
+
*/
|
|
53
|
+
export const optionsMap = (data) => transformOptions(optionsWithNested(data));
|
|
54
|
+
/**
|
|
55
|
+
* Try find a matching option from the interaction.
|
|
56
|
+
*/
|
|
57
|
+
export const getOption = (name) => (data) => Arr.findFirst(optionsWithNested(data), o => o.name === name);
|
|
58
|
+
/**
|
|
59
|
+
* Try find a matching option from the interaction.
|
|
60
|
+
*/
|
|
61
|
+
export const focusedOption = (data) => Arr.findFirst(optionsWithNested(data), o => "focused" in o && o.focused === true);
|
|
62
|
+
/**
|
|
63
|
+
* Try find a matching option value from the interaction.
|
|
64
|
+
*/
|
|
65
|
+
export const optionValue = (name) => (data) => Option.flatMapNullishOr(getOption(name)(data), o => "value" in o ? o.value : undefined);
|
|
66
|
+
/**
|
|
67
|
+
* Try extract resolved data
|
|
68
|
+
*/
|
|
69
|
+
export const resolved = (data) => Option.flatMapNullishOr(Option.fromNullishOr(data.data), a => "resolved" in a
|
|
70
|
+
? a.resolved
|
|
71
|
+
: undefined);
|
|
72
|
+
/**
|
|
73
|
+
* Try find a matching option value from the interaction.
|
|
74
|
+
*/
|
|
75
|
+
export const resolveOptionValue = (name, f) => (a) => Option.Do.pipe(Option.bind("data", () => Option.fromNullishOr(a.data)), Option.bind("id", ({ data }) => Option.flatMapNullishOr(getOption(name)(data), ({ value }) => value)), Option.bind("r", () => resolved(a)), Option.flatMapNullishOr(({ id, r }) => f(id, r)));
|
|
76
|
+
/**
|
|
77
|
+
* Try find matching option values from the interaction.
|
|
78
|
+
*/
|
|
79
|
+
export const resolveValues = (f) => (a) => Option.Do.pipe(Option.bind("values", () => Option.flatMapNullishOr(Option.fromNullishOr(a.data), data => data.values)), Option.bind("r", () => resolved(a)), Option.map(({ r, values }) => Arr.getSomes(values.map(value => Option.fromNullishOr(f(value, r))))));
|
|
80
|
+
const extractComponents = (c) => {
|
|
81
|
+
if ("components" in c) {
|
|
82
|
+
return [...c.components, ...c.components.flatMap(extractComponents)];
|
|
83
|
+
}
|
|
84
|
+
return [];
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* A lens for accessing the components in a interaction.
|
|
88
|
+
*/
|
|
89
|
+
export const components = (a) => [
|
|
90
|
+
...a.components,
|
|
91
|
+
...a.components.flatMap(extractComponents),
|
|
92
|
+
];
|
|
93
|
+
/**
|
|
94
|
+
* A lens for accessing the components in a interaction.
|
|
95
|
+
*/
|
|
96
|
+
export const componentsWithValue = (data) => Arr.filter(components(data), c => "value" in c && c.value !== undefined);
|
|
97
|
+
/**
|
|
98
|
+
* Return the interaction components as an id / value map.
|
|
99
|
+
*/
|
|
100
|
+
export const transformComponents = (options) => options.reduce((map, c) => (c.custom_id ? HashMap.set(map, c.custom_id, c.value) : map), HashMap.empty());
|
|
101
|
+
/**
|
|
102
|
+
* Return the interaction components as an id / value map.
|
|
103
|
+
*/
|
|
104
|
+
export const componentsMap = (data) => transformComponents(components(data));
|
|
105
|
+
/**
|
|
106
|
+
* Try find a matching component from the interaction.
|
|
107
|
+
*/
|
|
108
|
+
export const getComponent = (id) => (data) => Arr.findFirst(components(data), o => o.custom_id === id);
|
|
109
|
+
/**
|
|
110
|
+
* Try find a matching component value from the interaction.
|
|
111
|
+
*/
|
|
112
|
+
export const componentValue = (id) => (data) => Option.flatMapNullishOr(getComponent(id)(data), o => o.value);
|
|
113
|
+
export const response = (r) => r;
|
|
114
|
+
//# sourceMappingURL=interactions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactions.js","sourceRoot":"","sources":["../../src/Helpers/interactions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type * as Discord from "../types.ts";
|
|
2
|
+
/**
|
|
3
|
+
* From a list of roles, filter out the ones the guild member has.
|
|
4
|
+
*/
|
|
5
|
+
export declare const roles: (guildRoles: Array<Discord.GuildRoleResponse>) => (member: Discord.GuildMemberResponse) => Discord.GuildRoleResponse[];
|
|
6
|
+
/**
|
|
7
|
+
* Type-guard function for checking if the object is a guild member
|
|
8
|
+
*/
|
|
9
|
+
export declare const is: (thing: unknown) => thing is Discord.GuildMemberResponse;
|
|
10
|
+
//# sourceMappingURL=members.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"members.d.ts","sourceRoot":"","sources":["../src/Helpers/members.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,OAAO,MAAM,aAAa,CAAA;AAE3C;;GAEG;AACH,eAAO,MAAM,KAAK,GACf,YAAY,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAC5C,QAAQ,OAAO,CAAC,mBAAmB,gCAGjC,CAAA;AAEL;;GAEG;AACH,eAAO,MAAM,EAAE,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,OAAO,CAAC,mBAEK,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* From a list of roles, filter out the ones the guild member has.
|
|
3
|
+
*/
|
|
4
|
+
export const roles = (guildRoles) => (member) => guildRoles.filter(role => member.roles.includes(role.id) || role.name === "@everyone");
|
|
5
|
+
/**
|
|
6
|
+
* Type-guard function for checking if the object is a guild member
|
|
7
|
+
*/
|
|
8
|
+
export const is = (thing) => Object.prototype.hasOwnProperty.call(thing, "roles") &&
|
|
9
|
+
Object.prototype.hasOwnProperty.call(thing, "joined_at");
|
|
10
|
+
//# sourceMappingURL=members.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"members.js","sourceRoot":"","sources":["../../src/Helpers/members.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAChB,CAAC,UAA4C,EAAE,EAAE,CACjD,CAAC,MAAmC,EAAE,EAAE,CACtC,UAAU,CAAC,MAAM,CACf,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,CACpE,CAAA;AAEL;;GAEG;AACH,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAc,EAAwC,EAAE,CACzE,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC;IACpD,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as Discord from "../types.ts";
|
|
3
|
+
/**
|
|
4
|
+
* A constant of all the permissions
|
|
5
|
+
*/
|
|
6
|
+
export declare const ALL: bigint;
|
|
7
|
+
/**
|
|
8
|
+
* Check if a flag exists in the permissions.
|
|
9
|
+
*/
|
|
10
|
+
export declare const has: (flag: bigint | string) => (bits: bigint | string) => boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Convert a permissions bitfield to a list of flag names.
|
|
13
|
+
*/
|
|
14
|
+
export declare const toList: (bitfield: bigint) => ("Stream" | "CreateInstantInvite" | "KickMembers" | "BanMembers" | "Administrator" | "ManageChannels" | "ManageGuild" | "AddReactions" | "ViewAuditLog" | "PrioritySpeaker" | "ViewChannel" | "SendMessages" | "SendTTSMessages" | "ManageMessages" | "EmbedLinks" | "AttachFiles" | "ReadMessageHistory" | "MentionEveryone" | "UseExternalEmojis" | "ViewGuildInsights" | "Connect" | "Speak" | "MuteMembers" | "DeafenMembers" | "MoveMembers" | "UseVAD" | "ChangeNickname" | "ManageNicknames" | "ManageRoles" | "ManageWebhooks" | "ManageEmojisAndStickers" | "ManageGuildExpressions" | "UseApplicationCommands" | "RequestToSpeak" | "ManageEvents" | "ManageThreads" | "CreatePublicThreads" | "CreatePrivateThreads" | "UseExternalStickers" | "SendMessagesInThreads" | "UseEmbeddedActivities" | "ModerateMembers" | "ViewCreatorMonetizationAnalytics" | "UseSoundboard" | "CreateGuildExpressions" | "CreateEvents" | "UseExternalSounds" | "SendVoiceMessages" | "SendPolls" | "UseExternalApps" | "PinMessages" | "BypassSlowmode")[];
|
|
15
|
+
/**
|
|
16
|
+
* Convert a list of flag names to a bitfield.
|
|
17
|
+
*/
|
|
18
|
+
export declare const fromList: (list: ("Stream" | "CreateInstantInvite" | "KickMembers" | "BanMembers" | "Administrator" | "ManageChannels" | "ManageGuild" | "AddReactions" | "ViewAuditLog" | "PrioritySpeaker" | "ViewChannel" | "SendMessages" | "SendTTSMessages" | "ManageMessages" | "EmbedLinks" | "AttachFiles" | "ReadMessageHistory" | "MentionEveryone" | "UseExternalEmojis" | "ViewGuildInsights" | "Connect" | "Speak" | "MuteMembers" | "DeafenMembers" | "MoveMembers" | "UseVAD" | "ChangeNickname" | "ManageNicknames" | "ManageRoles" | "ManageWebhooks" | "ManageEmojisAndStickers" | "ManageGuildExpressions" | "UseApplicationCommands" | "RequestToSpeak" | "ManageEvents" | "ManageThreads" | "CreatePublicThreads" | "CreatePrivateThreads" | "UseExternalStickers" | "SendMessagesInThreads" | "UseEmbeddedActivities" | "ModerateMembers" | "ViewCreatorMonetizationAnalytics" | "UseSoundboard" | "CreateGuildExpressions" | "CreateEvents" | "UseExternalSounds" | "SendVoiceMessages" | "SendPolls" | "UseExternalApps" | "PinMessages" | "BypassSlowmode")[]) => bigint;
|
|
19
|
+
/**
|
|
20
|
+
* Reduce a list of roles to a bitfield of all the permissions added together.
|
|
21
|
+
*/
|
|
22
|
+
export declare const forRoles: (roles: Array<Discord.GuildRoleResponse>) => bigint;
|
|
23
|
+
/**
|
|
24
|
+
* From a list of roles, calculate the permissions bitfield for the member.
|
|
25
|
+
*/
|
|
26
|
+
export declare const forMember: (roles: Array<Discord.GuildRoleResponse>) => (member: Discord.GuildMemberResponse) => bigint;
|
|
27
|
+
/**
|
|
28
|
+
* From a list of roles and a channel, calculate the permission bitfield for
|
|
29
|
+
* the guild member or role for that channel.
|
|
30
|
+
*/
|
|
31
|
+
export declare const forChannel: (roles: Array<Discord.GuildRoleResponse>) => ({ guild_id, permission_overwrites }: Discord.GuildChannelResponse) => (memberOrRole: Discord.GuildMemberResponse | Discord.GuildRoleResponse) => bigint;
|
|
32
|
+
/**
|
|
33
|
+
* Apply permission overwrites to a bitfield.
|
|
34
|
+
*/
|
|
35
|
+
export declare const applyOverwrites: (permissions: bigint) => (overwrites: ReadonlyArray<Discord.ChannelPermissionOverwriteResponse>) => bigint;
|
|
36
|
+
interface RolesCache<E> {
|
|
37
|
+
getForParent: (parentId: string) => Effect.Effect<ReadonlyMap<string, Discord.GuildRoleResponse>, E>;
|
|
38
|
+
}
|
|
39
|
+
export declare const hasInChannel: <E>(rolesCache: RolesCache<E>, permission: bigint) => (channel: Discord.GuildChannelResponse, memberOrRole: Discord.GuildMemberResponse | Discord.GuildRoleResponse) => Effect.Effect<boolean, E, never>;
|
|
40
|
+
export declare const hasInGuild: <E>(rolesCache: RolesCache<E>, permission: bigint) => (guildId: Discord.Snowflake, member: Discord.GuildMemberResponse) => Effect.Effect<boolean, E, never>;
|
|
41
|
+
export {};
|
|
42
|
+
//# sourceMappingURL=permissions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../src/Helpers/permissions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,OAAO,MAAM,aAAa,CAAA;AAEtC;;GAEG;AACH,eAAO,MAAM,GAAG,QAAiC,CAAA;AAEjD;;GAEG;AACH,eAAO,MAAM,GAAG,8BA0CkC,qBAC1C,YA3C0B,CAAA;AAElC;;GAEG;AACH,eAAO,MAAM,MAAM,8gCAAoC,CAAA;AAEvD;;GAEG;AACH,eAAO,MAAM,QAAQ,0gCAA4C,CAAA;AAEjE;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,WAI7D,CAAA;AAEH;;GAEG;AACH,eAAO,MAAM,SAAS,GACnB,OAAO,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,MACvC,QAAQ,OAAO,CAAC,mBAAmB,WACU,CAAA;AAuBhD;;;GAGG;AACH,eAAO,MAAM,UAAU,GACpB,OAAO,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,MACvC,qCAAqC,OAAO,CAAC,oBAAoB,MACjE,cAAc,OAAO,CAAC,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,WA8BrE,CAAA;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe,GACzB,aAAa,MAAM,MACnB,YAAY,aAAa,CAAC,OAAO,CAAC,kCAAkC,CAAC,WAKnE,CAAA;AAEL,UAAU,UAAU,CAAC,CAAC;IACpB,YAAY,EAAE,CACZ,QAAQ,EAAE,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAA;CACtE;AAED,eAAO,MAAM,YAAY,GACtB,CAAC,EAAE,YAAY,UAAU,CAAC,CAAC,CAAC,EAAE,YAAY,MAAM,MAE/C,SAAS,OAAO,CAAC,oBAAoB,EACrC,cAAc,OAAO,CAAC,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,qCAOnE,CAAA;AAEN,eAAO,MAAM,UAAU,GACpB,CAAC,EAAE,YAAY,UAAU,CAAC,CAAC,CAAC,EAAE,YAAY,MAAM,MAChD,SAAS,OAAO,CAAC,SAAS,EAAE,QAAQ,OAAO,CAAC,mBAAmB,qCAQ5D,CAAA"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { pipe } from "effect/Function";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as Flags from "./flags.js";
|
|
4
|
+
import * as Members from "./members.js";
|
|
5
|
+
import * as Discord from "../types.js";
|
|
6
|
+
/**
|
|
7
|
+
* A constant of all the permissions
|
|
8
|
+
*/
|
|
9
|
+
export const ALL = Flags.all(Discord.Permissions);
|
|
10
|
+
/**
|
|
11
|
+
* Check if a flag exists in the permissions.
|
|
12
|
+
*/
|
|
13
|
+
export const has = Flags.hasBigInt;
|
|
14
|
+
/**
|
|
15
|
+
* Convert a permissions bitfield to a list of flag names.
|
|
16
|
+
*/
|
|
17
|
+
export const toList = Flags.toList(Discord.Permissions);
|
|
18
|
+
/**
|
|
19
|
+
* Convert a list of flag names to a bitfield.
|
|
20
|
+
*/
|
|
21
|
+
export const fromList = Flags.fromListBigint(Discord.Permissions);
|
|
22
|
+
/**
|
|
23
|
+
* Reduce a list of roles to a bitfield of all the permissions added together.
|
|
24
|
+
*/
|
|
25
|
+
export const forRoles = (roles) => roles.reduce((permissions, role) => permissions | BigInt(role.permissions), BigInt(0));
|
|
26
|
+
/**
|
|
27
|
+
* From a list of roles, calculate the permissions bitfield for the member.
|
|
28
|
+
*/
|
|
29
|
+
export const forMember = (roles) => (member) => pipe(Members.roles(roles)(member), forRoles);
|
|
30
|
+
const overwriteIsForMember = (guildId) => (member) => (overwrite) => {
|
|
31
|
+
if (overwrite.type === 0) {
|
|
32
|
+
return overwrite.id === guildId || member.roles.includes(overwrite.id);
|
|
33
|
+
}
|
|
34
|
+
return overwrite.id === member.user?.id;
|
|
35
|
+
};
|
|
36
|
+
const overwriteIsForRole = (guildId) => (role) => (overwrite) => {
|
|
37
|
+
if (overwrite.type === 0) {
|
|
38
|
+
return overwrite.id === guildId || overwrite.id === role.id;
|
|
39
|
+
}
|
|
40
|
+
return false;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* From a list of roles and a channel, calculate the permission bitfield for
|
|
44
|
+
* the guild member or role for that channel.
|
|
45
|
+
*/
|
|
46
|
+
export const forChannel = (roles) => ({ guild_id, permission_overwrites }) => (memberOrRole) => {
|
|
47
|
+
const overwrites = permission_overwrites || [];
|
|
48
|
+
const hasAdmin = has(Discord.Permissions.Administrator);
|
|
49
|
+
let basePermissions;
|
|
50
|
+
let filteredOverwrites;
|
|
51
|
+
if (Members.is(memberOrRole)) {
|
|
52
|
+
if (memberOrRole.permissions)
|
|
53
|
+
return BigInt(memberOrRole.permissions);
|
|
54
|
+
const memberRoles = Members.roles(roles)(memberOrRole);
|
|
55
|
+
basePermissions = forRoles(memberRoles);
|
|
56
|
+
filteredOverwrites = overwrites.filter(overwriteIsForMember(guild_id)(memberOrRole));
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
const everyone = roles.find(role => role.name === "@everyone");
|
|
60
|
+
basePermissions =
|
|
61
|
+
BigInt(everyone?.permissions || "0") | BigInt(memberOrRole.permissions);
|
|
62
|
+
filteredOverwrites = overwrites.filter(overwriteIsForRole(guild_id)(memberOrRole));
|
|
63
|
+
}
|
|
64
|
+
if (hasAdmin(basePermissions)) {
|
|
65
|
+
return ALL;
|
|
66
|
+
}
|
|
67
|
+
return applyOverwrites(basePermissions)(filteredOverwrites);
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Apply permission overwrites to a bitfield.
|
|
71
|
+
*/
|
|
72
|
+
export const applyOverwrites = (permissions) => (overwrites) => overwrites.reduce((current, overwrite) => (current & ~BigInt(overwrite.deny)) | BigInt(overwrite.allow), permissions);
|
|
73
|
+
export const hasInChannel = (rolesCache, permission) => (channel, memberOrRole) => Effect.map(rolesCache.getForParent(channel.guild_id), roles => {
|
|
74
|
+
const channelPerms = forChannel([...roles.values()])(channel)(memberOrRole);
|
|
75
|
+
return has(permission)(channelPerms);
|
|
76
|
+
});
|
|
77
|
+
export const hasInGuild = (rolesCache, permission) => (guildId, member) => Effect.map(rolesCache.getForParent(guildId), roles => {
|
|
78
|
+
const hasPerm = has(permission);
|
|
79
|
+
return member.roles.some(id => {
|
|
80
|
+
const role = roles.get(id);
|
|
81
|
+
return role ? hasPerm(role.permissions) : false;
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
//# sourceMappingURL=permissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/Helpers/permissions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import type { ActionRowComponentForMessageRequest, ActionRowComponentForModalRequest, ButtonComponentForMessageRequest, ChannelSelectComponentForMessageRequest, ContainerComponentForMessageRequest, FileComponentForMessageRequest, MediaGalleryComponentForMessageRequest, MentionableSelectComponentForMessageRequest, MessageCreateRequest, PollCreateRequest, PollMediaCreateRequest, RoleSelectComponentForMessageRequest, SectionComponentForMessageRequest, SeparatorComponentForMessageRequest, StringSelectComponentForMessageRequest, TextDisplayComponentForMessageRequest, TextInputComponentForModalRequest, ThumbnailComponentForMessageRequest, UserSelectComponentForMessageRequest } from "../types.ts";
|
|
2
|
+
import { TextInputStyleTypes, MessageComponentTypes, MessageFlags } from "../types.ts";
|
|
3
|
+
type ActionRowComponents = ReadonlyArray<ActionRowComponentForMessageRequest["components"][number] | ActionRowComponentForModalRequest["components"][number]>;
|
|
4
|
+
/**
|
|
5
|
+
* Helper to create an Action Row.
|
|
6
|
+
*/
|
|
7
|
+
export declare const row: <const C extends ActionRowComponents>(components: C) => {
|
|
8
|
+
readonly type: typeof MessageComponentTypes.ACTION_ROW;
|
|
9
|
+
readonly components: C;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Helper to create an Action Row grid.
|
|
13
|
+
*/
|
|
14
|
+
export declare const grid: <C extends ActionRowComponents>(items: ReadonlyArray<C>) => ReadonlyArray<{
|
|
15
|
+
readonly type: typeof MessageComponentTypes.ACTION_ROW;
|
|
16
|
+
readonly components: C;
|
|
17
|
+
}>;
|
|
18
|
+
/**
|
|
19
|
+
* Helper to create a single column of components
|
|
20
|
+
*/
|
|
21
|
+
export declare const singleColumn: <C extends ActionRowComponents>(items: C) => ReadonlyArray<{
|
|
22
|
+
readonly type: typeof MessageComponentTypes.ACTION_ROW;
|
|
23
|
+
readonly components: C;
|
|
24
|
+
}>;
|
|
25
|
+
/**
|
|
26
|
+
* Helper to create a button component.
|
|
27
|
+
*/
|
|
28
|
+
export declare const button: (options: Partial<ButtonComponentForMessageRequest>) => ButtonComponentForMessageRequest;
|
|
29
|
+
/**
|
|
30
|
+
* Helper to create a select component.
|
|
31
|
+
*/
|
|
32
|
+
export declare const select: (options: Omit<StringSelectComponentForMessageRequest, "type">) => StringSelectComponentForMessageRequest;
|
|
33
|
+
/**
|
|
34
|
+
* Helper to create a select component.
|
|
35
|
+
*/
|
|
36
|
+
export declare const userSelect: (options: Omit<UserSelectComponentForMessageRequest, "type">) => UserSelectComponentForMessageRequest;
|
|
37
|
+
/**
|
|
38
|
+
* Helper to create a select component.
|
|
39
|
+
*/
|
|
40
|
+
export declare const roleSelect: (options: Omit<RoleSelectComponentForMessageRequest, "type">) => RoleSelectComponentForMessageRequest;
|
|
41
|
+
/**
|
|
42
|
+
* Helper to create a select component.
|
|
43
|
+
*/
|
|
44
|
+
export declare const mentionableSelect: (options: Omit<MentionableSelectComponentForMessageRequest, "type">) => MentionableSelectComponentForMessageRequest;
|
|
45
|
+
/**
|
|
46
|
+
* Helper to create a select component.
|
|
47
|
+
*/
|
|
48
|
+
export declare const channelSelect: (options: Omit<ChannelSelectComponentForMessageRequest, "type">) => ChannelSelectComponentForMessageRequest;
|
|
49
|
+
type TextInputOpts = Omit<TextInputComponentForModalRequest, "type" | "style"> & {
|
|
50
|
+
style?: TextInputStyleTypes;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Helper to create a text input
|
|
54
|
+
*/
|
|
55
|
+
export declare const textInput: (input: TextInputOpts) => TextInputComponentForModalRequest;
|
|
56
|
+
/**
|
|
57
|
+
* Helper to create a poll
|
|
58
|
+
*/
|
|
59
|
+
export declare const poll: (input: Omit<PollCreateRequest, "answers"> & {
|
|
60
|
+
readonly answers: ReadonlyArray<PollMediaCreateRequest>;
|
|
61
|
+
}) => PollCreateRequest;
|
|
62
|
+
/**
|
|
63
|
+
* Helper to create a media gallery
|
|
64
|
+
*/
|
|
65
|
+
export declare const mediaGallery: (options: Omit<MediaGalleryComponentForMessageRequest, "type">) => MediaGalleryComponentForMessageRequest;
|
|
66
|
+
/**
|
|
67
|
+
* Helper to create a file component
|
|
68
|
+
*/
|
|
69
|
+
export declare const file: (options: Omit<FileComponentForMessageRequest, "type">) => FileComponentForMessageRequest;
|
|
70
|
+
/**
|
|
71
|
+
* Helper to create a container component
|
|
72
|
+
*/
|
|
73
|
+
export declare const container: (options: Omit<ContainerComponentForMessageRequest, "type">) => ContainerComponentForMessageRequest;
|
|
74
|
+
/**
|
|
75
|
+
* Helper to create a section component
|
|
76
|
+
*/
|
|
77
|
+
export declare const section: (options: Omit<SectionComponentForMessageRequest, "type">) => SectionComponentForMessageRequest;
|
|
78
|
+
/**
|
|
79
|
+
* Helper to create a thumbnail component
|
|
80
|
+
*/
|
|
81
|
+
export declare const thumbnail: (options: {
|
|
82
|
+
readonly url: string;
|
|
83
|
+
readonly description?: string | undefined;
|
|
84
|
+
readonly spoiler?: boolean | undefined;
|
|
85
|
+
}) => ThumbnailComponentForMessageRequest;
|
|
86
|
+
/**
|
|
87
|
+
* Helper to create a separator component
|
|
88
|
+
*/
|
|
89
|
+
export declare const seperator: (options?: Omit<SeparatorComponentForMessageRequest, "type">) => SeparatorComponentForMessageRequest;
|
|
90
|
+
/**
|
|
91
|
+
* Helper to create a text display component
|
|
92
|
+
*/
|
|
93
|
+
export declare const textDisplay: (content: string) => TextDisplayComponentForMessageRequest;
|
|
94
|
+
type MessageComponents = NonNullable<MessageCreateRequest["components"]>[number];
|
|
95
|
+
/**
|
|
96
|
+
* Create a components v2 message
|
|
97
|
+
*/
|
|
98
|
+
export declare const components: <const C extends ReadonlyArray<MessageComponents>>(items: C, options?: {
|
|
99
|
+
readonly ephemeral?: boolean | undefined;
|
|
100
|
+
}) => {
|
|
101
|
+
readonly flags: MessageFlags;
|
|
102
|
+
readonly components: C;
|
|
103
|
+
};
|
|
104
|
+
export {};
|
|
105
|
+
//# sourceMappingURL=ui.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/Helpers/ui.ts"],"names":[],"mappings":"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"}
|