dfx 1.0.3 → 1.0.4

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.
Files changed (299) hide show
  1. package/Cache/driver.d.ts +24 -0
  2. package/Cache/driver.d.ts.map +1 -0
  3. package/Cache/driver.js +11 -0
  4. package/Cache/driver.js.map +1 -0
  5. package/Cache/memory.d.ts +5 -0
  6. package/Cache/memory.d.ts.map +1 -0
  7. package/Cache/memory.js +57 -0
  8. package/Cache/memory.js.map +1 -0
  9. package/Cache/memoryTTL.d.ts +23 -0
  10. package/Cache/memoryTTL.d.ts.map +1 -0
  11. package/Cache/memoryTTL.js +128 -0
  12. package/Cache/memoryTTL.js.map +1 -0
  13. package/Cache/prelude.d.ts +32 -0
  14. package/Cache/prelude.d.ts.map +1 -0
  15. package/Cache/prelude.js +143 -0
  16. package/Cache/prelude.js.map +1 -0
  17. package/Cache.d.ts +81 -0
  18. package/Cache.d.ts.map +1 -0
  19. package/Cache.js +145 -0
  20. package/Cache.js.map +1 -0
  21. package/DiscordConfig.d.ts +35 -0
  22. package/DiscordConfig.d.ts.map +1 -0
  23. package/DiscordConfig.js +43 -0
  24. package/DiscordConfig.js.map +1 -0
  25. package/DiscordGateway/DiscordWS.d.ts +37 -0
  26. package/DiscordGateway/DiscordWS.d.ts.map +1 -0
  27. package/DiscordGateway/DiscordWS.js +86 -0
  28. package/DiscordGateway/DiscordWS.js.map +1 -0
  29. package/DiscordGateway/Messaging.d.ts +587 -0
  30. package/DiscordGateway/Messaging.d.ts.map +1 -0
  31. package/DiscordGateway/Messaging.js +43 -0
  32. package/DiscordGateway/Messaging.js.map +1 -0
  33. package/DiscordGateway/Shard/StateStore.d.ts +24 -0
  34. package/DiscordGateway/Shard/StateStore.d.ts.map +1 -0
  35. package/DiscordGateway/Shard/StateStore.js +49 -0
  36. package/DiscordGateway/Shard/StateStore.js.map +1 -0
  37. package/DiscordGateway/Shard/heartbeats.d.ts +8 -0
  38. package/DiscordGateway/Shard/heartbeats.d.ts.map +1 -0
  39. package/DiscordGateway/Shard/heartbeats.js +33 -0
  40. package/DiscordGateway/Shard/heartbeats.js.map +1 -0
  41. package/DiscordGateway/Shard/identify.d.ts +12 -0
  42. package/DiscordGateway/Shard/identify.d.ts.map +1 -0
  43. package/DiscordGateway/Shard/identify.js +37 -0
  44. package/DiscordGateway/Shard/identify.js.map +1 -0
  45. package/DiscordGateway/Shard/sendEvents.d.ts +8 -0
  46. package/DiscordGateway/Shard/sendEvents.d.ts.map +1 -0
  47. package/DiscordGateway/Shard/sendEvents.js +39 -0
  48. package/DiscordGateway/Shard/sendEvents.js.map +1 -0
  49. package/DiscordGateway/Shard/utils.d.ts +6 -0
  50. package/DiscordGateway/Shard/utils.d.ts.map +1 -0
  51. package/DiscordGateway/Shard/utils.js +11 -0
  52. package/DiscordGateway/Shard/utils.js.map +1 -0
  53. package/DiscordGateway/Shard.d.ts +29 -0
  54. package/DiscordGateway/Shard.d.ts.map +1 -0
  55. package/DiscordGateway/Shard.js +155 -0
  56. package/DiscordGateway/Shard.js.map +1 -0
  57. package/DiscordGateway/ShardStore.d.ts +19 -0
  58. package/DiscordGateway/ShardStore.d.ts.map +1 -0
  59. package/DiscordGateway/ShardStore.js +32 -0
  60. package/DiscordGateway/ShardStore.js.map +1 -0
  61. package/DiscordGateway/Sharder.d.ts +14 -0
  62. package/DiscordGateway/Sharder.d.ts.map +1 -0
  63. package/DiscordGateway/Sharder.js +75 -0
  64. package/DiscordGateway/Sharder.js.map +1 -0
  65. package/DiscordGateway.d.ts +33 -0
  66. package/DiscordGateway.d.ts.map +1 -0
  67. package/DiscordGateway.js +28 -0
  68. package/DiscordGateway.js.map +1 -0
  69. package/DiscordREST/Generated.d.ts +5577 -0
  70. package/DiscordREST/Generated.d.ts.map +1 -0
  71. package/DiscordREST/Generated.js +2480 -0
  72. package/DiscordREST/Generated.js.map +1 -0
  73. package/DiscordREST/utils.d.ts +14 -0
  74. package/DiscordREST/utils.d.ts.map +1 -0
  75. package/DiscordREST/utils.js +32 -0
  76. package/DiscordREST/utils.js.map +1 -0
  77. package/DiscordREST.d.ts +22 -0
  78. package/DiscordREST.d.ts.map +1 -0
  79. package/DiscordREST.js +128 -0
  80. package/DiscordREST.js.map +1 -0
  81. package/Helpers/flags.d.ts +28 -0
  82. package/Helpers/flags.d.ts.map +1 -0
  83. package/Helpers/flags.js +57 -0
  84. package/Helpers/flags.js.map +1 -0
  85. package/Helpers/intents.d.ts +25 -0
  86. package/Helpers/intents.d.ts.map +1 -0
  87. package/Helpers/intents.js +34 -0
  88. package/Helpers/intents.js.map +1 -0
  89. package/Helpers/interactions.d.ts +116 -0
  90. package/Helpers/interactions.d.ts.map +1 -0
  91. package/Helpers/interactions.js +143 -0
  92. package/Helpers/interactions.js.map +1 -0
  93. package/Helpers/members.d.ts +10 -0
  94. package/Helpers/members.d.ts.map +1 -0
  95. package/Helpers/members.js +17 -0
  96. package/Helpers/members.js.map +1 -0
  97. package/Helpers/permissions.d.ts +42 -0
  98. package/Helpers/permissions.d.ts.map +1 -0
  99. package/Helpers/permissions.js +97 -0
  100. package/Helpers/permissions.js.map +1 -0
  101. package/Helpers/ui.d.ts +105 -0
  102. package/Helpers/ui.d.ts.map +1 -0
  103. package/Helpers/ui.js +162 -0
  104. package/Helpers/ui.js.map +1 -0
  105. package/Interactions/builder.d.ts +48 -0
  106. package/Interactions/builder.d.ts.map +1 -0
  107. package/Interactions/builder.js +64 -0
  108. package/Interactions/builder.js.map +1 -0
  109. package/Interactions/commandHelper.d.ts +83 -0
  110. package/Interactions/commandHelper.d.ts.map +1 -0
  111. package/Interactions/commandHelper.js +57 -0
  112. package/Interactions/commandHelper.js.map +1 -0
  113. package/Interactions/context.d.ts +53 -0
  114. package/Interactions/context.d.ts.map +1 -0
  115. package/Interactions/context.js +47 -0
  116. package/Interactions/context.js.map +1 -0
  117. package/Interactions/definitions.d.ts +43 -0
  118. package/Interactions/definitions.d.ts.map +1 -0
  119. package/Interactions/definitions.js +67 -0
  120. package/Interactions/definitions.js.map +1 -0
  121. package/Interactions/error.d.ts +2 -0
  122. package/Interactions/error.d.ts.map +1 -0
  123. package/Interactions/error.js +8 -0
  124. package/Interactions/error.js.map +1 -0
  125. package/Interactions/gateway.d.ts +20 -0
  126. package/Interactions/gateway.d.ts.map +1 -0
  127. package/Interactions/gateway.js +92 -0
  128. package/Interactions/gateway.js.map +1 -0
  129. package/Interactions/handlers.d.ts +15 -0
  130. package/Interactions/handlers.d.ts.map +1 -0
  131. package/Interactions/handlers.js +73 -0
  132. package/Interactions/handlers.js.map +1 -0
  133. package/Interactions/index.d.ts +17 -0
  134. package/Interactions/index.d.ts.map +1 -0
  135. package/Interactions/index.js +94 -0
  136. package/Interactions/index.js.map +1 -0
  137. package/Interactions/utils.d.ts +61 -0
  138. package/Interactions/utils.d.ts.map +1 -0
  139. package/Interactions/utils.js +35 -0
  140. package/Interactions/utils.js.map +1 -0
  141. package/Interactions/webhook.d.ts +71 -0
  142. package/Interactions/webhook.d.ts.map +1 -0
  143. package/Interactions/webhook.js +89 -0
  144. package/Interactions/webhook.js.map +1 -0
  145. package/RateLimit/memory.d.ts +3 -0
  146. package/RateLimit/memory.d.ts.map +1 -0
  147. package/RateLimit/memory.js +47 -0
  148. package/RateLimit/memory.js.map +1 -0
  149. package/RateLimit/utils.d.ts +3 -0
  150. package/RateLimit/utils.d.ts.map +1 -0
  151. package/RateLimit/utils.js +25 -0
  152. package/RateLimit/utils.js.map +1 -0
  153. package/RateLimit.d.ts +30 -0
  154. package/RateLimit.d.ts.map +1 -0
  155. package/RateLimit.js +37 -0
  156. package/RateLimit.js.map +1 -0
  157. package/gateway.d.ts +19 -0
  158. package/gateway.d.ts.map +1 -0
  159. package/gateway.js +72 -0
  160. package/gateway.js.map +1 -0
  161. package/index.d.ts +18 -0
  162. package/index.d.ts.map +1 -0
  163. package/index.js +71 -0
  164. package/index.js.map +1 -0
  165. package/mjs/Cache/driver.mjs +3 -0
  166. package/mjs/Cache/driver.mjs.map +1 -0
  167. package/mjs/Cache/memory.mjs +48 -0
  168. package/mjs/Cache/memory.mjs.map +1 -0
  169. package/mjs/Cache/memoryTTL.mjs +119 -0
  170. package/mjs/Cache/memoryTTL.mjs.map +1 -0
  171. package/mjs/Cache/prelude.mjs +131 -0
  172. package/mjs/Cache/prelude.mjs.map +1 -0
  173. package/mjs/Cache.mjs +90 -0
  174. package/mjs/Cache.mjs.map +1 -0
  175. package/mjs/DiscordConfig.mjs +32 -0
  176. package/mjs/DiscordConfig.mjs.map +1 -0
  177. package/mjs/DiscordGateway/DiscordWS.mjs +77 -0
  178. package/mjs/DiscordGateway/DiscordWS.mjs.map +1 -0
  179. package/mjs/DiscordGateway/Messaging.mjs +35 -0
  180. package/mjs/DiscordGateway/Messaging.mjs.map +1 -0
  181. package/mjs/DiscordGateway/Shard/StateStore.mjs +41 -0
  182. package/mjs/DiscordGateway/Shard/StateStore.mjs.map +1 -0
  183. package/mjs/DiscordGateway/Shard/heartbeats.mjs +25 -0
  184. package/mjs/DiscordGateway/Shard/heartbeats.mjs.map +1 -0
  185. package/mjs/DiscordGateway/Shard/identify.mjs +29 -0
  186. package/mjs/DiscordGateway/Shard/identify.mjs.map +1 -0
  187. package/mjs/DiscordGateway/Shard/sendEvents.mjs +26 -0
  188. package/mjs/DiscordGateway/Shard/sendEvents.mjs.map +1 -0
  189. package/mjs/DiscordGateway/Shard/utils.mjs +3 -0
  190. package/mjs/DiscordGateway/Shard/utils.mjs.map +1 -0
  191. package/mjs/DiscordGateway/Shard.mjs +147 -0
  192. package/mjs/DiscordGateway/Shard.mjs.map +1 -0
  193. package/mjs/DiscordGateway/ShardStore.mjs +24 -0
  194. package/mjs/DiscordGateway/ShardStore.mjs.map +1 -0
  195. package/mjs/DiscordGateway/Sharder.mjs +67 -0
  196. package/mjs/DiscordGateway/Sharder.mjs.map +1 -0
  197. package/mjs/DiscordGateway.mjs +21 -0
  198. package/mjs/DiscordGateway.mjs.map +1 -0
  199. package/mjs/DiscordREST/Generated.mjs +2471 -0
  200. package/mjs/DiscordREST/Generated.mjs.map +1 -0
  201. package/mjs/DiscordREST/utils.mjs +21 -0
  202. package/mjs/DiscordREST/utils.mjs.map +1 -0
  203. package/mjs/DiscordREST.mjs +119 -0
  204. package/mjs/DiscordREST.mjs.map +1 -0
  205. package/mjs/Helpers/flags.mjs +45 -0
  206. package/mjs/Helpers/flags.mjs.map +1 -0
  207. package/mjs/Helpers/intents.mjs +27 -0
  208. package/mjs/Helpers/intents.mjs.map +1 -0
  209. package/mjs/Helpers/interactions.mjs +115 -0
  210. package/mjs/Helpers/interactions.mjs.map +1 -0
  211. package/mjs/Helpers/members.mjs +9 -0
  212. package/mjs/Helpers/members.mjs.map +1 -0
  213. package/mjs/Helpers/permissions.mjs +84 -0
  214. package/mjs/Helpers/permissions.mjs.map +1 -0
  215. package/mjs/Helpers/ui.mjs +137 -0
  216. package/mjs/Helpers/ui.mjs.map +1 -0
  217. package/mjs/Interactions/builder.mjs +56 -0
  218. package/mjs/Interactions/builder.mjs.map +1 -0
  219. package/mjs/Interactions/commandHelper.mjs +49 -0
  220. package/mjs/Interactions/commandHelper.mjs.map +1 -0
  221. package/mjs/Interactions/context.mjs +28 -0
  222. package/mjs/Interactions/context.mjs.map +1 -0
  223. package/mjs/Interactions/definitions.mjs +51 -0
  224. package/mjs/Interactions/definitions.mjs.map +1 -0
  225. package/mjs/Interactions/error.mjs +2 -0
  226. package/mjs/Interactions/error.mjs.map +1 -0
  227. package/mjs/Interactions/gateway.mjs +82 -0
  228. package/mjs/Interactions/gateway.mjs.map +1 -0
  229. package/mjs/Interactions/handlers.mjs +64 -0
  230. package/mjs/Interactions/handlers.mjs.map +1 -0
  231. package/mjs/Interactions/index.mjs +11 -0
  232. package/mjs/Interactions/index.mjs.map +1 -0
  233. package/mjs/Interactions/utils.mjs +26 -0
  234. package/mjs/Interactions/utils.mjs.map +1 -0
  235. package/mjs/Interactions/webhook.mjs +75 -0
  236. package/mjs/Interactions/webhook.mjs.map +1 -0
  237. package/mjs/RateLimit/memory.mjs +39 -0
  238. package/mjs/RateLimit/memory.mjs.map +1 -0
  239. package/mjs/RateLimit/utils.mjs +18 -0
  240. package/mjs/RateLimit/utils.mjs.map +1 -0
  241. package/mjs/RateLimit.mjs +28 -0
  242. package/mjs/RateLimit.mjs.map +1 -0
  243. package/mjs/gateway.mjs +19 -0
  244. package/mjs/gateway.mjs.map +1 -0
  245. package/mjs/index.mjs +18 -0
  246. package/mjs/index.mjs.map +1 -0
  247. package/mjs/types.mjs +356 -0
  248. package/mjs/types.mjs.map +1 -0
  249. package/mjs/utils/Effect.mjs +44 -0
  250. package/mjs/utils/Effect.mjs.map +1 -0
  251. package/mjs/version.mjs +2 -0
  252. package/mjs/version.mjs.map +1 -0
  253. package/mjs/webhooks.mjs +6 -0
  254. package/mjs/webhooks.mjs.map +1 -0
  255. package/package.json +33 -77
  256. package/src/version.ts +1 -0
  257. package/types.d.ts +2458 -0
  258. package/types.d.ts.map +1 -0
  259. package/types.js +408 -0
  260. package/types.js.map +1 -0
  261. package/utils/Effect.d.ts +5 -0
  262. package/utils/Effect.d.ts.map +1 -0
  263. package/utils/Effect.js +53 -0
  264. package/utils/Effect.js.map +1 -0
  265. package/version.d.ts +2 -0
  266. package/version.d.ts.map +1 -0
  267. package/version.js +8 -0
  268. package/version.js.map +1 -0
  269. package/webhooks.d.ts +8 -0
  270. package/webhooks.d.ts.map +1 -0
  271. package/webhooks.js +55 -0
  272. package/webhooks.js.map +1 -0
  273. package/.babel.cjs.json +0 -11
  274. package/.babel.mjs.json +0 -10
  275. package/.envrc +0 -1
  276. package/.gitmodules +0 -3
  277. package/.husky/pre-commit +0 -2
  278. package/.oxlintrc.json +0 -72
  279. package/.prettierignore +0 -0
  280. package/.prettierrc.json +0 -5
  281. package/.tool-versions +0 -1
  282. package/.vscode/debug.cjs +0 -8
  283. package/.vscode/launch.json +0 -23
  284. package/.vscode/settings.json +0 -29
  285. package/.vscode/tasks.json +0 -44
  286. package/AGENTS.md +0 -15
  287. package/CHANGELOG.md +0 -1566
  288. package/examples/.env.example +0 -5
  289. package/examples/interactions.ts +0 -79
  290. package/examples/readme.ts +0 -56
  291. package/examples/registry.ts +0 -66
  292. package/flake.lock +0 -27
  293. package/flake.nix +0 -21
  294. package/lerna.json +0 -12
  295. package/pnpm-workspace.yaml +0 -7
  296. package/scripts/generate-client.sh +0 -10
  297. package/scripts/worktree-setup.sh +0 -8
  298. package/test/index.test.ts +0 -5
  299. package/vitest.config.ts +0 -22
@@ -0,0 +1,43 @@
1
+ import type * as Effect from "effect/Effect";
2
+ import type * as Discord from "../types.ts";
3
+ import type { Scope } from "effect/Scope";
4
+ import type { CommandHelper } from "./commandHelper.ts";
5
+ export type InteractionDefinition<R, E> = GlobalApplicationCommand<R, E> | GuildApplicationCommand<R, E> | MessageComponent<R, E> | ModalSubmit<R, E> | Autocomplete<R, E>;
6
+ export declare class GlobalApplicationCommand<R, E> {
7
+ readonly command: Discord.ApplicationCommandCreateRequest;
8
+ readonly handle: CommandHandler<R, E>;
9
+ readonly _tag = "GlobalApplicationCommand";
10
+ constructor(command: Discord.ApplicationCommandCreateRequest, handle: CommandHandler<R, E>);
11
+ }
12
+ export declare const global: <R, E, const A extends Discord.ApplicationCommandCreateRequest>(command: A, handle: CommandHandler<R, E, A>) => GlobalApplicationCommand<Exclude<R, Scope | import("./context.ts").Interaction | import("./context.ts").ApplicationCommand>, E>;
13
+ export declare class GuildApplicationCommand<R, E> {
14
+ readonly command: Discord.ApplicationCommandCreateRequest;
15
+ readonly handle: CommandHandler<R, E>;
16
+ readonly _tag = "GuildApplicationCommand";
17
+ constructor(command: Discord.ApplicationCommandCreateRequest, handle: CommandHandler<R, E>);
18
+ }
19
+ export declare const guild: <R, E, const A extends Discord.ApplicationCommandCreateRequest>(command: A, handle: CommandHandler<R, E, A>) => GuildApplicationCommand<Exclude<R, Scope | import("./context.ts").Interaction | import("./context.ts").ApplicationCommand>, E>;
20
+ export declare class MessageComponent<R, E> {
21
+ readonly predicate: (customId: string) => boolean;
22
+ readonly handle: Effect.Effect<Discord.CreateInteractionResponseRequest, E, R>;
23
+ readonly _tag = "MessageComponent";
24
+ constructor(predicate: (customId: string) => boolean, handle: Effect.Effect<Discord.CreateInteractionResponseRequest, E, R>);
25
+ }
26
+ export declare const messageComponent: <E, R>(pred: (customId: string) => boolean, handle: Effect.Effect<Discord.CreateInteractionResponseRequest, E, R>) => MessageComponent<Exclude<R, Scope | import("./context.ts").Interaction | import("./context.ts").MessageComponentData>, E>;
27
+ export declare class ModalSubmit<R, E> {
28
+ readonly predicate: (customId: string) => boolean;
29
+ readonly handle: Effect.Effect<Discord.CreateInteractionResponseRequest, E, R>;
30
+ readonly _tag = "ModalSubmit";
31
+ constructor(predicate: (customId: string) => boolean, handle: Effect.Effect<Discord.CreateInteractionResponseRequest, E, R>);
32
+ }
33
+ export declare const modalSubmit: <R, E>(pred: (customId: string) => boolean, handle: Effect.Effect<Discord.CreateInteractionResponseRequest, E, R>) => ModalSubmit<Exclude<R, Scope | import("./context.ts").Interaction | import("./context.ts").ModalSubmitData>, E>;
34
+ export declare class Autocomplete<R, E> {
35
+ readonly predicate: (data: Discord.APIApplicationCommandInteraction["data"], focusedOption: Discord.APIApplicationCommandInteractionDataOption) => boolean;
36
+ readonly handle: Effect.Effect<Discord.CreateInteractionResponseRequest, E, R>;
37
+ readonly _tag = "Autocomplete";
38
+ constructor(predicate: (data: Discord.APIApplicationCommandInteraction["data"], focusedOption: Discord.APIApplicationCommandInteractionDataOption) => boolean, handle: Effect.Effect<Discord.CreateInteractionResponseRequest, E, R>);
39
+ }
40
+ export declare const autocomplete: <R, E>(pred: (data: Discord.APIApplicationCommandInteraction["data"], focusedOption: Discord.APIApplicationCommandInteractionDataOption) => boolean, handle: Effect.Effect<Discord.CreateInteractionResponseRequest, E, R>) => Autocomplete<Exclude<R, Scope | import("./context.ts").Interaction | import("./context.ts").ApplicationCommand | import("./context.ts").FocusedOptionContext>, E>;
41
+ export type CommandHandler<R, E, A = any> = Effect.Effect<Discord.CreateInteractionResponseRequest, E, R> | CommandHandlerFn<R, E, A>;
42
+ export type CommandHandlerFn<R, E, A> = (i: CommandHelper<A>) => Effect.Effect<Discord.CreateInteractionResponseRequest, E, R>;
43
+ //# sourceMappingURL=definitions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../src/Interactions/definitions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.modalSubmit = exports.messageComponent = exports.guild = exports.global = exports.autocomplete = exports.ModalSubmit = exports.MessageComponent = exports.GuildApplicationCommand = exports.GlobalApplicationCommand = exports.Autocomplete = void 0;
7
+ class GlobalApplicationCommand {
8
+ command;
9
+ handle;
10
+ _tag = "GlobalApplicationCommand";
11
+ constructor(command, handle) {
12
+ this.command = command;
13
+ this.handle = handle;
14
+ }
15
+ }
16
+ exports.GlobalApplicationCommand = GlobalApplicationCommand;
17
+ const global = (command, handle) => new GlobalApplicationCommand(command, handle);
18
+ exports.global = global;
19
+ class GuildApplicationCommand {
20
+ command;
21
+ handle;
22
+ _tag = "GuildApplicationCommand";
23
+ constructor(command, handle) {
24
+ this.command = command;
25
+ this.handle = handle;
26
+ }
27
+ }
28
+ exports.GuildApplicationCommand = GuildApplicationCommand;
29
+ const guild = (command, handle) => new GuildApplicationCommand(command, handle);
30
+ exports.guild = guild;
31
+ class MessageComponent {
32
+ predicate;
33
+ handle;
34
+ _tag = "MessageComponent";
35
+ constructor(predicate, handle) {
36
+ this.predicate = predicate;
37
+ this.handle = handle;
38
+ }
39
+ }
40
+ exports.MessageComponent = MessageComponent;
41
+ const messageComponent = (pred, handle) => new MessageComponent(pred, handle);
42
+ exports.messageComponent = messageComponent;
43
+ class ModalSubmit {
44
+ predicate;
45
+ handle;
46
+ _tag = "ModalSubmit";
47
+ constructor(predicate, handle) {
48
+ this.predicate = predicate;
49
+ this.handle = handle;
50
+ }
51
+ }
52
+ exports.ModalSubmit = ModalSubmit;
53
+ const modalSubmit = (pred, handle) => new ModalSubmit(pred, handle);
54
+ exports.modalSubmit = modalSubmit;
55
+ class Autocomplete {
56
+ predicate;
57
+ handle;
58
+ _tag = "Autocomplete";
59
+ constructor(predicate, handle) {
60
+ this.predicate = predicate;
61
+ this.handle = handle;
62
+ }
63
+ }
64
+ exports.Autocomplete = Autocomplete;
65
+ const autocomplete = (pred, handle) => new Autocomplete(pred, handle);
66
+ exports.autocomplete = autocomplete;
67
+ //# sourceMappingURL=definitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definitions.js","names":["GlobalApplicationCommand","command","handle","_tag","constructor","exports","global","GuildApplicationCommand","guild","MessageComponent","predicate","messageComponent","pred","ModalSubmit","modalSubmit","Autocomplete","autocomplete"],"sources":["../src/Interactions/definitions.ts"],"sourcesContent":[null],"mappings":";;;;;;AAmBM,MAAOA,wBAAwB;EAGxBC,OAAA;EACAC,MAAA;EAHFC,IAAI,GAAG,0BAA0B;EAC1CC,YACWH,OAAgD,EAChDC,MAA4B;IAD5B,KAAAD,OAAO,GAAPA,OAAO;IACP,KAAAC,MAAM,GAANA,MAAM;EACd;;AACJG,OAAA,CAAAL,wBAAA,GAAAA,wBAAA;AAEM,MAAMM,MAAM,GAAGA,CAKpBL,OAAU,EACVC,MAA+B,KAE/B,IAAIF,wBAAwB,CAG1BC,OAAc,EAAEC,MAAa,CAAC;AAAAG,OAAA,CAAAC,MAAA,GAAAA,MAAA;AAE5B,MAAOC,uBAAuB;EAGvBN,OAAA;EACAC,MAAA;EAHFC,IAAI,GAAG,yBAAyB;EACzCC,YACWH,OAAgD,EAChDC,MAA4B;IAD5B,KAAAD,OAAO,GAAPA,OAAO;IACP,KAAAC,MAAM,GAANA,MAAM;EACd;;AACJG,OAAA,CAAAE,uBAAA,GAAAA,uBAAA;AAEM,MAAMC,KAAK,GAAGA,CAKnBP,OAAU,EACVC,MAA+B,KAE/B,IAAIK,uBAAuB,CAGzBN,OAAc,EAAEC,MAAa,CAAC;AAAAG,OAAA,CAAAG,KAAA,GAAAA,KAAA;AAE5B,MAAOC,gBAAgB;EAGhBC,SAAA;EACAR,MAAA;EAHFC,IAAI,GAAG,kBAAkB;EAClCC,YACWM,SAAwC,EACxCR,MAIR;IALQ,KAAAQ,SAAS,GAATA,SAAS;IACT,KAAAR,MAAM,GAANA,MAAM;EAKd;;AACJG,OAAA,CAAAI,gBAAA,GAAAA,gBAAA;AAEM,MAAME,gBAAgB,GAAGA,CAC9BC,IAAmC,EACnCV,MAAqE,KAErE,IAAIO,gBAAgB,CAGlBG,IAAI,EAAEV,MAAa,CAAC;AAAAG,OAAA,CAAAM,gBAAA,GAAAA,gBAAA;AAElB,MAAOE,WAAW;EAGXH,SAAA;EACAR,MAAA;EAHFC,IAAI,GAAG,aAAa;EAC7BC,YACWM,SAAwC,EACxCR,MAIR;IALQ,KAAAQ,SAAS,GAATA,SAAS;IACT,KAAAR,MAAM,GAANA,MAAM;EAKd;;AACJG,OAAA,CAAAQ,WAAA,GAAAA,WAAA;AAEM,MAAMC,WAAW,GAAGA,CACzBF,IAAmC,EACnCV,MAAqE,KAErE,IAAIW,WAAW,CAGbD,IAAI,EAAEV,MAAa,CAAC;AAAAG,OAAA,CAAAS,WAAA,GAAAA,WAAA;AAElB,MAAOC,YAAY;EAGZL,SAAA;EAIAR,MAAA;EANFC,IAAI,GAAG,cAAc;EAC9BC,YACWM,SAGG,EACHR,MAIR;IARQ,KAAAQ,SAAS,GAATA,SAAS;IAIT,KAAAR,MAAM,GAANA,MAAM;EAKd;;AACJG,OAAA,CAAAU,YAAA,GAAAA,YAAA;AAEM,MAAMC,YAAY,GAAGA,CAC1BJ,IAGY,EACZV,MAAqE,KAErE,IAAIa,YAAY,CASdH,IAAI,EAAEV,MAAa,CAAC;AAAAG,OAAA,CAAAW,YAAA,GAAAA,YAAA","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export declare const InteractionsErrorTypeId: unique symbol;
2
+ //# sourceMappingURL=error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/Interactions/error.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,eAEnC,CAAA"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.InteractionsErrorTypeId = void 0;
7
+ const InteractionsErrorTypeId = exports.InteractionsErrorTypeId = /*#__PURE__*/Symbol.for("dfx/Interactions/InteractionsError");
8
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","names":["InteractionsErrorTypeId","exports","Symbol","for"],"sources":["../src/Interactions/error.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAO,MAAMA,uBAAuB,GAAAC,OAAA,CAAAD,uBAAA,gBAAGE,MAAM,CAACC,GAAG,CAC/C,oCAAoC,CACrC","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as Layer from "effect/Layer";
3
+ import * as ServiceMap from "effect/ServiceMap";
4
+ import { DiscordGateway } from "../DiscordGateway.ts";
5
+ import type { DiscordRESTError } from "../DiscordREST.ts";
6
+ import { DiscordREST } from "../DiscordREST.ts";
7
+ import type { DefinitionNotFound } from "./handlers.ts";
8
+ import type { DiscordInteraction, InteractionBuilder } from "./index.ts";
9
+ export declare const interactionsSync: ServiceMap.Reference<boolean>;
10
+ export declare const setInteractionsSync: (enabled: boolean) => <RIn2, E2, ROut2>(self: Layer.Layer<ROut2, E2, RIn2>) => Layer.Layer<ROut2, E2, Exclude<RIn2, never>>;
11
+ export declare const run: <R, R2, E, TE, E2>(postHandler: (effect: Effect.Effect<void, TE | DiscordRESTError | DefinitionNotFound, R | DiscordREST | DiscordInteraction>) => Effect.Effect<void, E2, R2>) => (ix: InteractionBuilder<R, E, TE>) => Effect.Effect<never, E2 | DiscordRESTError, DiscordREST | DiscordGateway | Exclude<R2, DiscordInteraction>>;
12
+ export interface InteractionsRegistryService {
13
+ readonly register: <E>(ix: InteractionBuilder<never, E, never>) => Effect.Effect<void>;
14
+ }
15
+ declare const InteractionsRegistry_base: ServiceMap.ServiceClass<InteractionsRegistry, "dfx/Interactions/InteractionsRegistry", InteractionsRegistryService>;
16
+ export declare class InteractionsRegistry extends InteractionsRegistry_base {
17
+ }
18
+ export declare const InteractionsRegistryLive: Layer.Layer<InteractionsRegistry, never, DiscordREST | DiscordGateway>;
19
+ export {};
20
+ //# sourceMappingURL=gateway.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../src/Interactions/gateway.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAIrC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAM/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAEvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAIxE,eAAO,MAAM,gBAAgB,+BAE3B,CAAA;AAEF,eAAO,MAAM,mBAAmB,GAAI,SAAS,OAAO,0GACK,CAAA;AAMzD,eAAO,MAAM,GAAG,GACb,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EACf,aAAa,CACX,MAAM,EAAE,MAAM,CAAC,MAAM,CACnB,IAAI,EACJ,EAAE,GAAG,gBAAgB,GAAG,kBAAkB,EAC1C,CAAC,GAAG,WAAW,GAAG,kBAAkB,CACrC,KACE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,MAGhC,IAAI,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAC/B,MAAM,CAAC,MAAM,CACd,KAAK,EACL,EAAE,GAAG,gBAAgB,EACrB,WAAW,GAAG,cAAc,GAAG,OAAO,CAAC,EAAE,EAAE,kBAAkB,CAAC,CA4F5D,CAAA;AAmCN,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,EACnB,EAAE,EAAE,kBAAkB,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,KACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CACzB;;AAED,qBAAa,oBAAqB,SAAQ,yBAGE;CAAG;AAE/C,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,KAAK,CAChD,oBAAoB,EACpB,KAAK,EACL,WAAW,GAAG,cAAc,CACsB,CAAA"}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.setInteractionsSync = exports.run = exports.interactionsSync = exports.InteractionsRegistryLive = exports.InteractionsRegistry = void 0;
7
+ var Arr = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Array"));
8
+ var Chunk = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Chunk"));
9
+ var Duration = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Duration"));
10
+ var Effect = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Effect"));
11
+ var _Function = /*#__PURE__*/require("effect/Function");
12
+ var Layer = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Layer"));
13
+ var Queue = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Queue"));
14
+ var Ref = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Ref"));
15
+ var Schedule = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Schedule"));
16
+ var ServiceMap = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/ServiceMap"));
17
+ var _DiscordGateway = /*#__PURE__*/require("../DiscordGateway.js");
18
+ var _DiscordREST = /*#__PURE__*/require("../DiscordREST.js");
19
+ var _handlers = /*#__PURE__*/require("./handlers.js");
20
+ var _index = /*#__PURE__*/require("./index.js");
21
+ var EffectUtils = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("../utils/Effect.js"));
22
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
23
+ const interactionsSync = exports.interactionsSync = /*#__PURE__*/ServiceMap.Reference("dfx/Interactions/sync", {
24
+ defaultValue: () => true
25
+ });
26
+ const setInteractionsSync = enabled => Layer.provide(Layer.succeed(interactionsSync, enabled));
27
+ exports.setInteractionsSync = setInteractionsSync;
28
+ const retryPolicy = /*#__PURE__*/Schedule.exponential("1 seconds").pipe(/*#__PURE__*/Schedule.either(/*#__PURE__*/Schedule.spaced("20 seconds")));
29
+ const run = postHandler => ix => Effect.gen(function* () {
30
+ const GlobalApplicationCommand = ix.definitions.pipe(Chunk.map(_ => _[0]), Chunk.filter(_ => _._tag === "GlobalApplicationCommand"), Chunk.toReadonlyArray);
31
+ const GuildApplicationCommand = ix.definitions.pipe(Chunk.map(_ => _[0]), Chunk.filter(_ => _._tag === "GuildApplicationCommand"), Chunk.toReadonlyArray);
32
+ const gateway = yield* _DiscordGateway.DiscordGateway;
33
+ const rest = yield* _DiscordREST.DiscordREST;
34
+ const application = yield* rest.getMyApplication();
35
+ const globalSync = rest.bulkSetApplicationCommands(application.id, GlobalApplicationCommand.map(_ => _.command));
36
+ const runGuildSync = Effect.gen(function* () {
37
+ const commands = GuildApplicationCommand.map(_ => _.command);
38
+ let results = undefined;
39
+ while (true) {
40
+ const next = yield* rest.listMyGuilds({
41
+ after: results && Arr.lastNonEmpty(results).id
42
+ });
43
+ if (!Arr.isReadonlyArrayNonEmpty(next)) break;
44
+ results = next;
45
+ yield* Effect.forEach(results, guild => rest.bulkSetGuildApplicationCommands(application.id, guild.id, commands), {
46
+ concurrency: "unbounded",
47
+ discard: true
48
+ });
49
+ }
50
+ return yield* gateway.handleDispatch("GUILD_CREATE", a => rest.bulkSetGuildApplicationCommands(application.id, a.id, GuildApplicationCommand.map(_ => _.command)));
51
+ });
52
+ const guildSync = GuildApplicationCommand.length ? runGuildSync : Effect.never;
53
+ const handle = (0, _handlers.handlers)(ix.definitions, (i, r) => {
54
+ const hasFiles = "files" in r;
55
+ const payload = hasFiles ? {
56
+ ...r,
57
+ files: undefined
58
+ } : r;
59
+ const effect = rest.createInteractionResponse(i.id, i.token, {
60
+ payload
61
+ });
62
+ return hasFiles ? rest.withFiles(r.files)(effect) : effect;
63
+ });
64
+ const interactionRun = gateway.handleDispatch("INTERACTION_CREATE", i => Effect.withSpan(Effect.provideService(postHandler(handle[i.type](i)), _index.Interaction, i), "dfx.Interaction", {
65
+ attributes: {
66
+ interactionId: i.id
67
+ },
68
+ captureStackTrace: false
69
+ }));
70
+ const sync = yield* interactionsSync;
71
+ return yield* sync ? Effect.forever(Effect.all([interactionRun, globalSync, guildSync], {
72
+ concurrency: "unbounded",
73
+ discard: true
74
+ })) : interactionRun;
75
+ });
76
+ exports.run = run;
77
+ const makeRegistry = /*#__PURE__*/Effect.gen(function* () {
78
+ const ref = yield* Ref.make(_index.builder);
79
+ const queue = yield* Queue.sliding(1);
80
+ const register = ix => Effect.flatMap(Ref.updateAndGet(ref, _ => _.concat(ix)), _ => Queue.offer(queue, _));
81
+ yield* EffectUtils.foreverSwitch(Queue.take(queue), ix => (0, _Function.pipe)(ix, run(Effect.catchCause(_ => Effect.logError("unhandled error", _))), Effect.delay(Duration.seconds(5)))).pipe(Effect.tapCause(_ => Effect.logError("registry error", _)), Effect.retry(retryPolicy), Effect.forkScoped, Effect.interruptible);
82
+ return {
83
+ register
84
+ };
85
+ }).pipe(/*#__PURE__*/Effect.annotateLogs({
86
+ package: "dfx",
87
+ service: "InteractionsRegistry"
88
+ }));
89
+ class InteractionsRegistry extends /*#__PURE__*/ServiceMap.Service()("dfx/Interactions/InteractionsRegistry") {}
90
+ exports.InteractionsRegistry = InteractionsRegistry;
91
+ const InteractionsRegistryLive = exports.InteractionsRegistryLive = /*#__PURE__*/Layer.effect(InteractionsRegistry, makeRegistry);
92
+ //# sourceMappingURL=gateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway.js","names":["Arr","_interopRequireWildcard","require","Chunk","Duration","Effect","_Function","Layer","Queue","Ref","Schedule","ServiceMap","_DiscordGateway","_DiscordREST","_handlers","_index","EffectUtils","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","interactionsSync","exports","Reference","defaultValue","setInteractionsSync","enabled","provide","succeed","retryPolicy","exponential","pipe","either","spaced","run","postHandler","ix","gen","GlobalApplicationCommand","definitions","map","_","filter","_tag","toReadonlyArray","GuildApplicationCommand","gateway","DiscordGateway","rest","DiscordREST","application","getMyApplication","globalSync","bulkSetApplicationCommands","id","command","runGuildSync","commands","results","undefined","next","listMyGuilds","after","lastNonEmpty","isReadonlyArrayNonEmpty","forEach","guild","bulkSetGuildApplicationCommands","concurrency","discard","handleDispatch","a","guildSync","length","never","handle","handlers","hasFiles","payload","files","effect","createInteractionResponse","token","withFiles","interactionRun","withSpan","provideService","type","Interaction","attributes","interactionId","captureStackTrace","sync","forever","all","makeRegistry","ref","make","builder","queue","sliding","register","flatMap","updateAndGet","concat","offer","foreverSwitch","take","catchCause","logError","delay","seconds","tapCause","retry","forkScoped","interruptible","annotateLogs","package","service","InteractionsRegistry","Service","InteractionsRegistryLive"],"sources":["../src/Interactions/gateway.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ import type * as Chunk from "effect/Chunk";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Ctx from "./context.ts";
4
+ import type * as D from "./definitions.ts";
5
+ import * as Discord from "../types.ts";
6
+ import type { Scope } from "effect/Scope";
7
+ export declare class DefinitionNotFound {
8
+ readonly interaction: Discord.APIInteraction;
9
+ readonly _tag = "DefinitionNotFound";
10
+ constructor(interaction: Discord.APIInteraction);
11
+ }
12
+ type Handler<R, E, A> = Effect.Effect<A, E | DefinitionNotFound, R | Ctx.DiscordInteraction>;
13
+ export declare const handlers: <R, E, TE, A, B>(definitions: Chunk.Chunk<readonly [handler: D.InteractionDefinition<R, E>, transform: (self: Effect.Effect<A, E, R>) => Effect.Effect<B, TE, R>]>, handleResponse: (ix: Discord.APIInteraction, _: Discord.CreateInteractionResponseRequest) => Effect.Effect<A, E, R>) => Record<Discord.InteractionTypes, (i: Discord.APIInteraction) => Handler<Exclude<R, Scope>, E, B>>;
14
+ export {};
15
+ //# sourceMappingURL=handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../src/Interactions/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,GAAG,MAAM,cAAc,CAAA;AACnC,OAAO,KAAK,KAAK,CAAC,MAAM,kBAAkB,CAAA;AAE1C,OAAO,KAAK,OAAO,MAAM,aAAa,CAAA;AACtC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAEzC,qBAAa,kBAAkB;IAEjB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,cAAc;IADxD,QAAQ,CAAC,IAAI,wBAAuB;gBACf,WAAW,EAAE,OAAO,CAAC,cAAc;CACzD;AAED,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,CACnC,CAAC,EACD,CAAC,GAAG,kBAAkB,EACtB,CAAC,GAAG,GAAG,CAAC,kBAAkB,CAC3B,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EACrC,aAAa,KAAK,CAAC,KAAK,CACtB,SAAS,CACP,OAAO,EAAE,CAAC,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,EACtC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CACrE,CACF,EACD,gBAAgB,CACd,EAAE,EAAE,OAAO,CAAC,cAAc,EAC1B,CAAC,EAAE,OAAO,CAAC,gCAAgC,KACxC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC1B,MAAM,CACP,OAAO,CAAC,gBAAgB,EACxB,CAAC,CAAC,EAAE,OAAO,CAAC,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CA0EhE,CAAA"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.handlers = exports.DefinitionNotFound = void 0;
7
+ var Effect = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Effect"));
8
+ var IxHelpers = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("../Helpers/interactions.js"));
9
+ var Ctx = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./context.js"));
10
+ var _utils = /*#__PURE__*/require("./utils.js");
11
+ var Discord = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("../types.js"));
12
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
13
+ class DefinitionNotFound {
14
+ interaction;
15
+ _tag = "DefinitionNotFound";
16
+ constructor(interaction) {
17
+ this.interaction = interaction;
18
+ }
19
+ }
20
+ exports.DefinitionNotFound = DefinitionNotFound;
21
+ const handlers = (definitions, handleResponse) => {
22
+ const flattened = (0, _utils.flattenDefinitions)(definitions, handleResponse);
23
+ const {
24
+ Autocomplete,
25
+ Commands,
26
+ MessageComponent,
27
+ ModalSubmit
28
+ } = (0, _utils.splitDefinitions)(flattened);
29
+ return {
30
+ [Discord.InteractionTypes.PING]: _ => Effect.succeed({
31
+ type: Discord.InteractionCallbackTypes.PONG
32
+ }),
33
+ [Discord.InteractionTypes.APPLICATION_COMMAND]: i => {
34
+ const data = i.data;
35
+ const command = Commands[data.name];
36
+ if (command === undefined) {
37
+ return Effect.fail(new DefinitionNotFound(i));
38
+ }
39
+ return Effect.provideService(command.handle(i), Ctx.ApplicationCommand, data);
40
+ },
41
+ [Discord.InteractionTypes.SOCIAL_LAYER_SKU_PURCHASE_ELIGIBILITY]: i => Effect.fail(new DefinitionNotFound(i)),
42
+ [Discord.InteractionTypes.MODAL_SUBMIT]: i => {
43
+ const data = i.data;
44
+ const match = ModalSubmit.find(_ => _.predicate(data.custom_id));
45
+ if (match === undefined) {
46
+ return Effect.fail(new DefinitionNotFound(i));
47
+ }
48
+ return Effect.provideService(match.handle(i), Ctx.ModalSubmitData, data);
49
+ },
50
+ [Discord.InteractionTypes.MESSAGE_COMPONENT]: i => {
51
+ const data = i.data;
52
+ const match = MessageComponent.find(_ => _.predicate(data.custom_id));
53
+ if (match === undefined) {
54
+ return Effect.fail(new DefinitionNotFound(i));
55
+ }
56
+ return Effect.provideService(match.handle(i), Ctx.MessageComponentData, data);
57
+ },
58
+ [Discord.InteractionTypes.APPLICATION_COMMAND_AUTOCOMPLETE]: i => {
59
+ const data = i.data;
60
+ const option = IxHelpers.focusedOption(data);
61
+ if (option._tag === "None") {
62
+ return Effect.fail(new DefinitionNotFound(i));
63
+ }
64
+ const match = Autocomplete.find(_ => _.predicate(data, option.value));
65
+ if (match === undefined) {
66
+ return Effect.fail(new DefinitionNotFound(i));
67
+ }
68
+ return match.handle(i).pipe(Effect.provideService(Ctx.ApplicationCommand, data), Effect.provideService(Ctx.FocusedOptionContext, option.value));
69
+ }
70
+ };
71
+ };
72
+ exports.handlers = handlers;
73
+ //# sourceMappingURL=handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.js","names":["Effect","_interopRequireWildcard","require","IxHelpers","Ctx","_utils","Discord","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DefinitionNotFound","interaction","_tag","constructor","exports","handlers","definitions","handleResponse","flattened","flattenDefinitions","Autocomplete","Commands","MessageComponent","ModalSubmit","splitDefinitions","InteractionTypes","PING","_","succeed","type","InteractionCallbackTypes","PONG","APPLICATION_COMMAND","data","command","name","undefined","fail","provideService","handle","ApplicationCommand","SOCIAL_LAYER_SKU_PURCHASE_ELIGIBILITY","MODAL_SUBMIT","match","find","predicate","custom_id","ModalSubmitData","MESSAGE_COMPONENT","MessageComponentData","APPLICATION_COMMAND_AUTOCOMPLETE","option","focusedOption","value","pipe","FocusedOptionContext"],"sources":["../src/Interactions/handlers.ts"],"sourcesContent":[null],"mappings":";;;;;;AACA,IAAAA,MAAA,gBAAAC,uBAAA,cAAAC,OAAA;AACA,IAAAC,SAAA,gBAAAF,uBAAA,cAAAC,OAAA;AACA,IAAAE,GAAA,gBAAAH,uBAAA,cAAAC,OAAA;AAEA,IAAAG,MAAA,gBAAAH,OAAA;AACA,IAAAI,OAAA,gBAAAL,uBAAA,cAAAC,OAAA;AAAsC,SAAAD,wBAAAM,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAR,uBAAA,YAAAA,CAAAM,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAGhC,MAAOkB,kBAAkB;EAERC,WAAA;EADZC,IAAI,GAAG,oBAAoB;EACpCC,YAAqBF,WAAmC;IAAnC,KAAAA,WAAW,GAAXA,WAAW;EAA2B;;AAC5DG,OAAA,CAAAJ,kBAAA,GAAAA,kBAAA;AAQM,MAAMK,QAAQ,GAAGA,CACtBC,WAKC,EACDC,cAG2B,KAIzB;EACF,MAAMC,SAAS,GAAG,IAAAC,yBAAkB,EAACH,WAAW,EAAEC,cAAc,CAAC;EAEjE,MAAM;IAAEG,YAAY;IAAEC,QAAQ;IAAEC,gBAAgB;IAAEC;EAAW,CAAE,GAC7D,IAAAC,uBAAgB,EAACN,SAAS,CAAC;EAE7B,OAAO;IACL,CAAC5B,OAAO,CAACmC,gBAAgB,CAACC,IAAI,GAAGC,CAAC,IAChC3C,MAAM,CAAC4C,OAAO,CAAC;MACbC,IAAI,EAAEvC,OAAO,CAACwC,wBAAwB,CAACC;KACjC,CAAC;IAEX,CAACzC,OAAO,CAACmC,gBAAgB,CAACO,mBAAmB,GAAGlC,CAAC,IAAG;MAClD,MAAMmC,IAAI,GACRnC,CAAC,CAACmC,IAA6D;MACjE,MAAMC,OAAO,GAAGb,QAAQ,CAACY,IAAI,CAACE,IAAI,CAAC;MACnC,IAAID,OAAO,KAAKE,SAAS,EAAE;QACzB,OAAOpD,MAAM,CAACqD,IAAI,CAAC,IAAI3B,kBAAkB,CAACZ,CAAC,CAAC,CAAC;MAC/C;MACA,OAAOd,MAAM,CAACsD,cAAc,CAC1BJ,OAAO,CAACK,MAAM,CAACzC,CAAC,CAAC,EACjBV,GAAG,CAACoD,kBAAkB,EACtBP,IAAI,CAC+B;IACvC,CAAC;IAED,CAAC3C,OAAO,CAACmC,gBAAgB,CAACgB,qCAAqC,GAAG3C,CAAC,IACjEd,MAAM,CAACqD,IAAI,CAAC,IAAI3B,kBAAkB,CAACZ,CAAC,CAAC,CAAC;IAExC,CAACR,OAAO,CAACmC,gBAAgB,CAACiB,YAAY,GAAG5C,CAAC,IAAG;MAC3C,MAAMmC,IAAI,GAAGnC,CAAC,CAACmC,IAAkC;MACjD,MAAMU,KAAK,GAAGpB,WAAW,CAACqB,IAAI,CAACjB,CAAC,IAAIA,CAAC,CAACkB,SAAS,CAACZ,IAAI,CAACa,SAAS,CAAC,CAAC;MAChE,IAAIH,KAAK,KAAKP,SAAS,EAAE;QACvB,OAAOpD,MAAM,CAACqD,IAAI,CAAC,IAAI3B,kBAAkB,CAACZ,CAAC,CAAC,CAAC;MAC/C;MACA,OAAOd,MAAM,CAACsD,cAAc,CAC1BK,KAAK,CAACJ,MAAM,CAACzC,CAAC,CAAC,EACfV,GAAG,CAAC2D,eAAe,EACnBd,IAAI,CAC+B;IACvC,CAAC;IAED,CAAC3C,OAAO,CAACmC,gBAAgB,CAACuB,iBAAiB,GAAGlD,CAAC,IAAG;MAChD,MAAMmC,IAAI,GAAGnC,CAAC,CAACmC,IAAkD;MACjE,MAAMU,KAAK,GAAGrB,gBAAgB,CAACsB,IAAI,CAACjB,CAAC,IAAIA,CAAC,CAACkB,SAAS,CAACZ,IAAI,CAACa,SAAS,CAAC,CAAC;MACrE,IAAIH,KAAK,KAAKP,SAAS,EAAE;QACvB,OAAOpD,MAAM,CAACqD,IAAI,CAAC,IAAI3B,kBAAkB,CAACZ,CAAC,CAAC,CAAC;MAC/C;MACA,OAAOd,MAAM,CAACsD,cAAc,CAC1BK,KAAK,CAACJ,MAAM,CAACzC,CAAC,CAAC,EACfV,GAAG,CAAC6D,oBAAoB,EACxBhB,IAAI,CAC+B;IACvC,CAAC;IAED,CAAC3C,OAAO,CAACmC,gBAAgB,CAACyB,gCAAgC,GAAGpD,CAAC,IAAG;MAC/D,MAAMmC,IAAI,GAAGnC,CAAC,CAACmC,IAAwD;MACvE,MAAMkB,MAAM,GAAGhE,SAAS,CAACiE,aAAa,CAACnB,IAAW,CAAC;MACnD,IAAIkB,MAAM,CAACvC,IAAI,KAAK,MAAM,EAAE;QAC1B,OAAO5B,MAAM,CAACqD,IAAI,CAAC,IAAI3B,kBAAkB,CAACZ,CAAC,CAAC,CAAC;MAC/C;MACA,MAAM6C,KAAK,GAAGvB,YAAY,CAACwB,IAAI,CAACjB,CAAC,IAAIA,CAAC,CAACkB,SAAS,CAACZ,IAAI,EAAEkB,MAAM,CAACE,KAAK,CAAC,CAAC;MACrE,IAAIV,KAAK,KAAKP,SAAS,EAAE;QACvB,OAAOpD,MAAM,CAACqD,IAAI,CAAC,IAAI3B,kBAAkB,CAACZ,CAAC,CAAC,CAAC;MAC/C;MACA,OAAO6C,KAAK,CACTJ,MAAM,CAACzC,CAAC,CAAC,CACTwD,IAAI,CACHtE,MAAM,CAACsD,cAAc,CAAClD,GAAG,CAACoD,kBAAkB,EAAEP,IAAI,CAAC,EACnDjD,MAAM,CAACsD,cAAc,CAAClD,GAAG,CAACmE,oBAAoB,EAAEJ,MAAM,CAACE,KAAK,CAAC,CAC1B;IACzC;GACD;AACH,CAAC;AAAAvC,OAAA,CAAAC,QAAA,GAAAA,QAAA","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ export { response } from "../Helpers/interactions.ts";
2
+ export * from "./builder.ts";
3
+ export * from "./context.ts";
4
+ export type { InteractionDefinition } from "./definitions.ts";
5
+ export { autocomplete, global, guild, messageComponent, modalSubmit, } from "./definitions.ts";
6
+ export declare const id: (query: string) => (customId: string) => boolean;
7
+ export declare const idStartsWith: (query: string) => (customId: string) => boolean;
8
+ export declare const idRegex: (query: RegExp) => (customId: string) => boolean;
9
+ export declare const option: (command: string, optionName: string) => (data: {
10
+ readonly name: string;
11
+ }, focusedOption: {
12
+ readonly name: string;
13
+ }) => boolean;
14
+ export declare const optionOnly: (optionName: string) => (_: unknown, focusedOption: {
15
+ readonly name: string;
16
+ }) => boolean;
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/Interactions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AACrD,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,YAAY,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EACL,YAAY,EACZ,MAAM,EACN,KAAK,EACL,gBAAgB,EAChB,WAAW,GACZ,MAAM,kBAAkB,CAAA;AAGzB,eAAO,MAAM,EAAE,GAAI,OAAO,MAAM,MAAM,UAAU,MAAM,YAAuB,CAAA;AAE7E,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,MAAM,UAAU,MAAM,YACpC,CAAA;AAE5B,eAAO,MAAM,OAAO,GAAI,OAAO,MAAM,MAAM,UAAU,MAAM,YACrC,CAAA;AAEtB,eAAO,MAAM,MAAM,GAChB,SAAS,MAAM,EAAE,YAAY,MAAM,MACnC,MAAM;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,eAAe;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,YACd,CAAA;AAE9D,eAAO,MAAM,UAAU,GACpB,YAAY,MAAM,MAClB,GAAG,OAAO,EAAE,eAAe;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,YAClB,CAAA"}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {
7
+ id: true,
8
+ idStartsWith: true,
9
+ idRegex: true,
10
+ option: true,
11
+ optionOnly: true,
12
+ response: true,
13
+ autocomplete: true,
14
+ global: true,
15
+ guild: true,
16
+ messageComponent: true,
17
+ modalSubmit: true
18
+ };
19
+ Object.defineProperty(exports, "autocomplete", {
20
+ enumerable: true,
21
+ get: function () {
22
+ return _definitions.autocomplete;
23
+ }
24
+ });
25
+ Object.defineProperty(exports, "global", {
26
+ enumerable: true,
27
+ get: function () {
28
+ return _definitions.global;
29
+ }
30
+ });
31
+ Object.defineProperty(exports, "guild", {
32
+ enumerable: true,
33
+ get: function () {
34
+ return _definitions.guild;
35
+ }
36
+ });
37
+ exports.idStartsWith = exports.idRegex = exports.id = void 0;
38
+ Object.defineProperty(exports, "messageComponent", {
39
+ enumerable: true,
40
+ get: function () {
41
+ return _definitions.messageComponent;
42
+ }
43
+ });
44
+ Object.defineProperty(exports, "modalSubmit", {
45
+ enumerable: true,
46
+ get: function () {
47
+ return _definitions.modalSubmit;
48
+ }
49
+ });
50
+ exports.optionOnly = exports.option = void 0;
51
+ Object.defineProperty(exports, "response", {
52
+ enumerable: true,
53
+ get: function () {
54
+ return _interactions.response;
55
+ }
56
+ });
57
+ var _interactions = /*#__PURE__*/require("../Helpers/interactions.js");
58
+ var _builder = /*#__PURE__*/require("./builder.js");
59
+ Object.keys(_builder).forEach(function (key) {
60
+ if (key === "default" || key === "__esModule") return;
61
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
62
+ if (key in exports && exports[key] === _builder[key]) return;
63
+ Object.defineProperty(exports, key, {
64
+ enumerable: true,
65
+ get: function () {
66
+ return _builder[key];
67
+ }
68
+ });
69
+ });
70
+ var _context = /*#__PURE__*/require("./context.js");
71
+ Object.keys(_context).forEach(function (key) {
72
+ if (key === "default" || key === "__esModule") return;
73
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
74
+ if (key in exports && exports[key] === _context[key]) return;
75
+ Object.defineProperty(exports, key, {
76
+ enumerable: true,
77
+ get: function () {
78
+ return _context[key];
79
+ }
80
+ });
81
+ });
82
+ var _definitions = /*#__PURE__*/require("./definitions.js");
83
+ // Filters
84
+ const id = query => customId => query === customId;
85
+ exports.id = id;
86
+ const idStartsWith = query => customId => customId.startsWith(query);
87
+ exports.idStartsWith = idStartsWith;
88
+ const idRegex = query => customId => query.test(customId);
89
+ exports.idRegex = idRegex;
90
+ const option = (command, optionName) => (data, focusedOption) => data.name === command && focusedOption.name === optionName;
91
+ exports.option = option;
92
+ const optionOnly = optionName => (_, focusedOption) => focusedOption.name === optionName;
93
+ exports.optionOnly = optionOnly;
94
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_interactions","require","_builder","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_context","_definitions","id","query","customId","idStartsWith","startsWith","idRegex","test","option","command","optionName","data","focusedOption","name","optionOnly","_"],"sources":["../src/Interactions/index.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,aAAA,gBAAAC,OAAA;AACA,IAAAC,QAAA,gBAAAD,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAF,QAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,QAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,QAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,QAAA,gBAAAd,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAW,QAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,QAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,QAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AAEA,IAAAU,YAAA,gBAAAf,OAAA;AAQA;AACO,MAAMgB,EAAE,GAAIC,KAAa,IAAMC,QAAgB,IAAKD,KAAK,KAAKC,QAAQ;AAAAR,OAAA,CAAAM,EAAA,GAAAA,EAAA;AAEtE,MAAMG,YAAY,GAAIF,KAAa,IAAMC,QAAgB,IAC9DA,QAAQ,CAACE,UAAU,CAACH,KAAK,CAAC;AAAAP,OAAA,CAAAS,YAAA,GAAAA,YAAA;AAErB,MAAME,OAAO,GAAIJ,KAAa,IAAMC,QAAgB,IACzDD,KAAK,CAACK,IAAI,CAACJ,QAAQ,CAAC;AAAAR,OAAA,CAAAW,OAAA,GAAAA,OAAA;AAEf,MAAME,MAAM,GACjBA,CAACC,OAAe,EAAEC,UAAkB,KACpC,CAACC,IAA+B,EAAEC,aAAwC,KACxED,IAAI,CAACE,IAAI,KAAKJ,OAAO,IAAIG,aAAa,CAACC,IAAI,KAAKH,UAAU;AAAAf,OAAA,CAAAa,MAAA,GAAAA,MAAA;AAEvD,MAAMM,UAAU,GACpBJ,UAAkB,IACnB,CAACK,CAAU,EAAEH,aAAwC,KACnDA,aAAa,CAACC,IAAI,KAAKH,UAAU;AAAAf,OAAA,CAAAmB,UAAA,GAAAA,UAAA","ignoreList":[]}
@@ -0,0 +1,61 @@
1
+ import * as Chunk from "effect/Chunk";
2
+ import * as Effect from "effect/Effect";
3
+ import type * as D from "./definitions.ts";
4
+ import type * as Discord from "../types.ts";
5
+ export type DefinitionFlattened<R, E, TE, A> = D.InteractionDefinition<R, E> extends infer Def ? {
6
+ [K in keyof Def]: K extends "handle" ? (_: Discord.APIInteraction) => Effect.Effect<A, TE, R> : Def[K];
7
+ } : never;
8
+ export type DefinitionFlattenedCommand<R, E, TE, A> = Extract<DefinitionFlattened<R, E, TE, A>, {
9
+ _tag: "GlobalApplicationCommand" | "GuildApplicationCommand";
10
+ }>;
11
+ export declare const flattenDefinitions: <R, E, TE, A, B>(definitions: Chunk.Chunk<readonly [handler: D.InteractionDefinition<R, E>, transform: (self: Effect.Effect<A, E, R>) => Effect.Effect<B, TE, R>]>, handleResponse: (ix: Discord.APIInteraction, _: Discord.CreateInteractionResponseRequest) => Effect.Effect<A, E, R>) => ({
12
+ handle: (i: Discord.APIInteraction) => Effect.Effect<B, TE, Exclude<R, import("effect/Scope").Scope>>;
13
+ _tag: "GlobalApplicationCommand";
14
+ command: Discord.ApplicationCommandCreateRequest;
15
+ } | {
16
+ handle: (i: Discord.APIInteraction) => Effect.Effect<B, TE, Exclude<R, import("effect/Scope").Scope>>;
17
+ _tag: "GuildApplicationCommand";
18
+ command: Discord.ApplicationCommandCreateRequest;
19
+ } | {
20
+ handle: (i: Discord.APIInteraction) => Effect.Effect<B, TE, Exclude<R, import("effect/Scope").Scope>>;
21
+ _tag: "MessageComponent";
22
+ predicate: (customId: string) => boolean;
23
+ } | {
24
+ handle: (i: Discord.APIInteraction) => Effect.Effect<B, TE, Exclude<R, import("effect/Scope").Scope>>;
25
+ _tag: "ModalSubmit";
26
+ predicate: (customId: string) => boolean;
27
+ } | {
28
+ handle: (i: Discord.APIInteraction) => Effect.Effect<B, TE, Exclude<R, import("effect/Scope").Scope>>;
29
+ _tag: "Autocomplete";
30
+ predicate: (data: Discord.APIApplicationCommandInteraction["data"], focusedOption: Discord.APIApplicationCommandInteractionDataOption) => boolean;
31
+ })[];
32
+ export declare const splitDefinitions: <R, E, TE, A>(definitions: ReadonlyArray<DefinitionFlattened<R, E, TE, A>>) => {
33
+ GlobalApplicationCommand: {
34
+ readonly _tag: "GlobalApplicationCommand";
35
+ readonly command: Discord.ApplicationCommandCreateRequest;
36
+ readonly handle: (_: Discord.APIInteraction) => Effect.Effect<A, TE, R>;
37
+ }[];
38
+ GuildApplicationCommand: {
39
+ readonly _tag: "GuildApplicationCommand";
40
+ readonly command: Discord.ApplicationCommandCreateRequest;
41
+ readonly handle: (_: Discord.APIInteraction) => Effect.Effect<A, TE, R>;
42
+ }[];
43
+ MessageComponent: {
44
+ readonly _tag: "MessageComponent";
45
+ readonly predicate: (customId: string) => boolean;
46
+ readonly handle: (_: Discord.APIInteraction) => Effect.Effect<A, TE, R>;
47
+ }[];
48
+ ModalSubmit: {
49
+ readonly _tag: "ModalSubmit";
50
+ readonly predicate: (customId: string) => boolean;
51
+ readonly handle: (_: Discord.APIInteraction) => Effect.Effect<A, TE, R>;
52
+ }[];
53
+ Autocomplete: {
54
+ readonly _tag: "Autocomplete";
55
+ readonly predicate: (data: Discord.APIApplicationCommandInteraction["data"], focusedOption: Discord.APIApplicationCommandInteractionDataOption) => boolean;
56
+ readonly handle: (_: Discord.APIInteraction) => Effect.Effect<A, TE, R>;
57
+ }[];
58
+ } & {
59
+ readonly Commands: Record<string, DefinitionFlattenedCommand<R, E, TE, A>>;
60
+ };
61
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/Interactions/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,CAAC,MAAM,kBAAkB,CAAA;AAC1C,OAAO,KAAK,KAAK,OAAO,MAAM,aAAa,CAAA;AAI3C,MAAM,MAAM,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IACzC,CAAC,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,GAC3C;KACG,CAAC,IAAI,MAAM,GAAG,GAAG,CAAC,SAAS,QAAQ,GAChC,CAAC,CAAC,EAAE,OAAO,CAAC,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GACtD,GAAG,CAAC,CAAC,CAAC;CACX,GACD,KAAK,CAAA;AAEX,MAAM,MAAM,0BAA0B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,OAAO,CAC3D,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAChC;IAAE,IAAI,EAAE,0BAA0B,GAAG,yBAAyB,CAAA;CAAE,CACjE,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAC/C,aAAa,KAAK,CAAC,KAAK,CACtB,SAAS,CACP,OAAO,EAAE,CAAC,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,EACtC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CACrE,CACF,EACD,gBAAgB,CACd,EAAE,EAAE,OAAO,CAAC,cAAc,EAC1B,CAAC,EAAE,OAAO,CAAC,gCAAgC,KACxC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAKjB,OAAO,CAAC,cAAc;;;;gBAAtB,OAAO,CAAC,cAAc;;;;gBAAtB,OAAO,CAAC,cAAc;;;;gBAAtB,OAAO,CAAC,cAAc;;;;gBAAtB,OAAO,CAAC,cAAc;;;IAsB7B,CAAA;AAEL,eAAO,MAAM,gBAAgB,GAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAC1C,aAAa,aAAa,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;;;;6BAlD9C,OAAO,CAAC,cAAc;;;;;6BAAtB,OAAO,CAAC,cAAc;;;;;6BAAtB,OAAO,CAAC,cAAc;;;;;6BAAtB,OAAO,CAAC,cAAc;;;;;6BAAtB,OAAO,CAAC,cAAc;;;uBAkEb,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;CAe/E,CAAA"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.splitDefinitions = exports.flattenDefinitions = void 0;
7
+ var Chunk = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Chunk"));
8
+ var Effect = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Effect"));
9
+ var Array = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Array"));
10
+ var _commandHelper = /*#__PURE__*/require("./commandHelper.js");
11
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
12
+ const flattenDefinitions = (definitions, handleResponse) => Array.map(Chunk.toReadonlyArray(definitions), ([definition, transform]) => ({
13
+ ...definition,
14
+ handle: Effect.isEffect(definition.handle) ? i => Effect.scoped(transform(Effect.flatMap(definition.handle, _ => handleResponse(i, _)))) : i => Effect.scoped(transform(Effect.flatMap(definition.handle(new _commandHelper.CommandHelper(i)), _ => handleResponse(i, _))))
15
+ }));
16
+ exports.flattenDefinitions = flattenDefinitions;
17
+ const splitDefinitions = definitions => {
18
+ const grouped = Array.reduce(definitions, {
19
+ Autocomplete: [],
20
+ GlobalApplicationCommand: [],
21
+ GuildApplicationCommand: [],
22
+ MessageComponent: [],
23
+ ModalSubmit: [],
24
+ Commands: {}
25
+ }, (acc, d) => {
26
+ acc[d._tag].push(d);
27
+ if (d._tag === "GlobalApplicationCommand" || d._tag === "GuildApplicationCommand") {
28
+ acc.Commands[d.command.name] = d;
29
+ }
30
+ return acc;
31
+ });
32
+ return grouped;
33
+ };
34
+ exports.splitDefinitions = splitDefinitions;
35
+ //# sourceMappingURL=utils.js.map