@azurioh/discord-kernel 0.1.0 → 1.0.0

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 (529) hide show
  1. package/README.md +318 -1
  2. package/dist/authz/require-level-guard.d.ts +1 -1
  3. package/dist/authz/require-level-guard.d.ts.map +1 -1
  4. package/dist/color.d.ts +42 -0
  5. package/dist/color.d.ts.map +1 -0
  6. package/dist/color.js +130 -0
  7. package/dist/color.js.map +1 -0
  8. package/dist/discord/command/all-required.d.ts +8 -0
  9. package/dist/discord/command/all-required.d.ts.map +1 -0
  10. package/dist/discord/command/all-required.js +12 -0
  11. package/dist/discord/command/all-required.js.map +1 -0
  12. package/dist/discord/command/autocomplete-dispatcher.d.ts.map +1 -1
  13. package/dist/discord/command/autocomplete-dispatcher.js +2 -1
  14. package/dist/discord/command/autocomplete-dispatcher.js.map +1 -1
  15. package/dist/discord/command/autocomplete-limits.d.ts +3 -0
  16. package/dist/discord/command/autocomplete-limits.d.ts.map +1 -0
  17. package/dist/discord/command/autocomplete-limits.js +6 -0
  18. package/dist/discord/command/autocomplete-limits.js.map +1 -0
  19. package/dist/discord/command/autocomplete.d.ts +6 -1
  20. package/dist/discord/command/autocomplete.d.ts.map +1 -1
  21. package/dist/discord/command/autocomplete.js +6 -6
  22. package/dist/discord/command/autocomplete.js.map +1 -1
  23. package/dist/discord/command/command-responders.d.ts +26 -0
  24. package/dist/discord/command/command-responders.d.ts.map +1 -0
  25. package/dist/discord/command/command-responders.js +16 -0
  26. package/dist/discord/command/command-responders.js.map +1 -0
  27. package/dist/discord/command/context.d.ts +8 -17
  28. package/dist/discord/command/context.d.ts.map +1 -1
  29. package/dist/discord/command/context.js +8 -37
  30. package/dist/discord/command/context.js.map +1 -1
  31. package/dist/discord/command/cooldown-guard.d.ts +1 -1
  32. package/dist/discord/command/cooldown-guard.d.ts.map +1 -1
  33. package/dist/discord/command/create-command.d.ts +1 -8
  34. package/dist/discord/command/create-command.d.ts.map +1 -1
  35. package/dist/discord/command/create-command.js +17 -65
  36. package/dist/discord/command/create-command.js.map +1 -1
  37. package/dist/discord/command/create-context-menu-command.d.ts +3 -9
  38. package/dist/discord/command/create-context-menu-command.d.ts.map +1 -1
  39. package/dist/discord/command/create-context-menu-command.js +14 -65
  40. package/dist/discord/command/create-context-menu-command.js.map +1 -1
  41. package/dist/discord/command/errors.d.ts +1 -1
  42. package/dist/discord/command/errors.d.ts.map +1 -1
  43. package/dist/discord/command/errors.js +2 -2
  44. package/dist/discord/command/errors.js.map +1 -1
  45. package/dist/discord/command/guard.d.ts +15 -8
  46. package/dist/discord/command/guard.d.ts.map +1 -1
  47. package/dist/discord/command/guard.js +4 -4
  48. package/dist/discord/command/guard.js.map +1 -1
  49. package/dist/discord/command/options.d.ts +1 -10
  50. package/dist/discord/command/options.d.ts.map +1 -1
  51. package/dist/discord/command/options.js +127 -320
  52. package/dist/discord/command/options.js.map +1 -1
  53. package/dist/discord/command/passes-guard.d.ts +14 -0
  54. package/dist/discord/command/passes-guard.d.ts.map +1 -0
  55. package/dist/discord/command/passes-guard.js +27 -0
  56. package/dist/discord/command/passes-guard.js.map +1 -0
  57. package/dist/discord/command/permission-guard.d.ts +1 -1
  58. package/dist/discord/command/permission-guard.d.ts.map +1 -1
  59. package/dist/discord/command/render-command-failure.d.ts +23 -0
  60. package/dist/discord/command/render-command-failure.d.ts.map +1 -0
  61. package/dist/discord/command/render-command-failure.js +40 -0
  62. package/dist/discord/command/render-command-failure.js.map +1 -0
  63. package/dist/discord/command/route-key.d.ts +8 -0
  64. package/dist/discord/command/route-key.d.ts.map +1 -0
  65. package/dist/discord/command/route-key.js +13 -0
  66. package/dist/discord/command/route-key.js.map +1 -0
  67. package/dist/discord/command/router.d.ts +32 -7
  68. package/dist/discord/command/router.d.ts.map +1 -1
  69. package/dist/discord/command/router.js +48 -10
  70. package/dist/discord/command/router.js.map +1 -1
  71. package/dist/discord/command/send-embed.d.ts +14 -0
  72. package/dist/discord/command/send-embed.d.ts.map +1 -0
  73. package/dist/discord/command/send-embed.js +37 -0
  74. package/dist/discord/command/send-embed.js.map +1 -0
  75. package/dist/discord/command/types.d.ts +7 -1
  76. package/dist/discord/command/types.d.ts.map +1 -1
  77. package/dist/discord/components/component-access.d.ts +12 -0
  78. package/dist/discord/components/component-access.d.ts.map +1 -0
  79. package/dist/discord/components/component-access.js +21 -0
  80. package/dist/discord/components/component-access.js.map +1 -0
  81. package/dist/discord/components/component-router.d.ts +37 -15
  82. package/dist/discord/components/component-router.d.ts.map +1 -1
  83. package/dist/discord/components/component-router.js +44 -32
  84. package/dist/discord/components/component-router.js.map +1 -1
  85. package/dist/discord/components/interactive-message/index.d.ts +3 -1
  86. package/dist/discord/components/interactive-message/index.d.ts.map +1 -1
  87. package/dist/discord/components/interactive-message/index.js +5 -3
  88. package/dist/discord/components/interactive-message/index.js.map +1 -1
  89. package/dist/discord/components/interactive-message/interactive-message-collector.d.ts +3 -28
  90. package/dist/discord/components/interactive-message/interactive-message-collector.d.ts.map +1 -1
  91. package/dist/discord/components/interactive-message/interactive-message-collector.js +6 -53
  92. package/dist/discord/components/interactive-message/interactive-message-collector.js.map +1 -1
  93. package/dist/discord/components/interactive-message/message-edit-options.d.ts +18 -0
  94. package/dist/discord/components/interactive-message/message-edit-options.d.ts.map +1 -0
  95. package/dist/discord/components/interactive-message/message-edit-options.js +40 -0
  96. package/dist/discord/components/interactive-message/message-edit-options.js.map +1 -0
  97. package/dist/discord/components/interactive-message/mount-interactive-message.d.ts +2 -1
  98. package/dist/discord/components/interactive-message/mount-interactive-message.d.ts.map +1 -1
  99. package/dist/discord/components/interactive-message/mount-interactive-message.js +4 -2
  100. package/dist/discord/components/interactive-message/mount-interactive-message.js.map +1 -1
  101. package/dist/discord/components/interactive-message/state-store.d.ts +12 -0
  102. package/dist/discord/components/interactive-message/state-store.d.ts.map +1 -0
  103. package/dist/discord/components/interactive-message/state-store.js +14 -0
  104. package/dist/discord/components/interactive-message/state-store.js.map +1 -0
  105. package/dist/discord/components/paginator/mount-paginator.js +7 -5
  106. package/dist/discord/components/paginator/mount-paginator.js.map +1 -1
  107. package/dist/discord/components/paginator/paginator-view.d.ts +1 -1
  108. package/dist/discord/components/paginator/paginator-view.d.ts.map +1 -1
  109. package/dist/discord/components/persistent-paginator.d.ts +1 -1
  110. package/dist/discord/components/persistent-paginator.d.ts.map +1 -1
  111. package/dist/discord/components/persistent-paginator.js +6 -6
  112. package/dist/discord/components/persistent-paginator.js.map +1 -1
  113. package/dist/discord/components/settings-editor/from-declaration-controls.d.ts +67 -0
  114. package/dist/discord/components/settings-editor/from-declaration-controls.d.ts.map +1 -0
  115. package/dist/discord/components/settings-editor/from-declaration-controls.js +245 -0
  116. package/dist/discord/components/settings-editor/from-declaration-controls.js.map +1 -0
  117. package/dist/discord/components/settings-editor/from-declaration-display.d.ts +23 -0
  118. package/dist/discord/components/settings-editor/from-declaration-display.d.ts.map +1 -0
  119. package/dist/discord/components/settings-editor/from-declaration-display.js +114 -0
  120. package/dist/discord/components/settings-editor/from-declaration-display.js.map +1 -0
  121. package/dist/discord/components/settings-editor/from-declaration-layout.d.ts +33 -0
  122. package/dist/discord/components/settings-editor/from-declaration-layout.d.ts.map +1 -0
  123. package/dist/discord/components/settings-editor/from-declaration-layout.js +178 -0
  124. package/dist/discord/components/settings-editor/from-declaration-layout.js.map +1 -0
  125. package/dist/discord/components/settings-editor/from-declaration-search.d.ts +27 -0
  126. package/dist/discord/components/settings-editor/from-declaration-search.d.ts.map +1 -0
  127. package/dist/discord/components/settings-editor/from-declaration-search.js +58 -0
  128. package/dist/discord/components/settings-editor/from-declaration-search.js.map +1 -0
  129. package/dist/discord/components/settings-editor/from-declaration-stored.d.ts +21 -0
  130. package/dist/discord/components/settings-editor/from-declaration-stored.d.ts.map +1 -0
  131. package/dist/discord/components/settings-editor/from-declaration-stored.js +37 -0
  132. package/dist/discord/components/settings-editor/from-declaration-stored.js.map +1 -0
  133. package/dist/discord/components/settings-editor/from-declaration-subject.d.ts +32 -0
  134. package/dist/discord/components/settings-editor/from-declaration-subject.d.ts.map +1 -0
  135. package/dist/discord/components/settings-editor/from-declaration-subject.js +65 -0
  136. package/dist/discord/components/settings-editor/from-declaration-subject.js.map +1 -0
  137. package/dist/discord/components/settings-editor/from-declaration-values.d.ts +57 -0
  138. package/dist/discord/components/settings-editor/from-declaration-values.d.ts.map +1 -0
  139. package/dist/discord/components/settings-editor/from-declaration-values.js +187 -0
  140. package/dist/discord/components/settings-editor/from-declaration-values.js.map +1 -0
  141. package/dist/discord/components/settings-editor/from-declaration.d.ts +39 -0
  142. package/dist/discord/components/settings-editor/from-declaration.d.ts.map +1 -0
  143. package/dist/discord/components/settings-editor/from-declaration.js +132 -0
  144. package/dist/discord/components/settings-editor/from-declaration.js.map +1 -0
  145. package/dist/discord/components/settings-editor/index.d.ts +3 -1
  146. package/dist/discord/components/settings-editor/index.d.ts.map +1 -1
  147. package/dist/discord/components/settings-editor/index.js +6 -3
  148. package/dist/discord/components/settings-editor/index.js.map +1 -1
  149. package/dist/discord/components/settings-editor/mount-settings-editor.d.ts +16 -2
  150. package/dist/discord/components/settings-editor/mount-settings-editor.d.ts.map +1 -1
  151. package/dist/discord/components/settings-editor/mount-settings-editor.js +14 -10
  152. package/dist/discord/components/settings-editor/mount-settings-editor.js.map +1 -1
  153. package/dist/discord/components/settings-editor/navigation.d.ts +20 -0
  154. package/dist/discord/components/settings-editor/navigation.d.ts.map +1 -1
  155. package/dist/discord/components/settings-editor/navigation.js +22 -0
  156. package/dist/discord/components/settings-editor/navigation.js.map +1 -1
  157. package/dist/discord/components/settings-editor/settings-editor-card.view.d.ts +4 -3
  158. package/dist/discord/components/settings-editor/settings-editor-card.view.d.ts.map +1 -1
  159. package/dist/discord/components/settings-editor/settings-editor-card.view.js +60 -34
  160. package/dist/discord/components/settings-editor/settings-editor-card.view.js.map +1 -1
  161. package/dist/discord/components/settings-editor/settings-editor-field-modal.d.ts +2 -1
  162. package/dist/discord/components/settings-editor/settings-editor-field-modal.d.ts.map +1 -1
  163. package/dist/discord/components/settings-editor/settings-editor-field-modal.js +48 -72
  164. package/dist/discord/components/settings-editor/settings-editor-field-modal.js.map +1 -1
  165. package/dist/discord/components/settings-editor/settings-editor-field-values.d.ts +6 -0
  166. package/dist/discord/components/settings-editor/settings-editor-field-values.d.ts.map +1 -0
  167. package/dist/discord/components/settings-editor/settings-editor-field-values.js +13 -0
  168. package/dist/discord/components/settings-editor/settings-editor-field-values.js.map +1 -0
  169. package/dist/discord/components/settings-editor/settings-editor-fields.d.ts +6 -5
  170. package/dist/discord/components/settings-editor/settings-editor-fields.d.ts.map +1 -1
  171. package/dist/discord/components/settings-editor/settings-editor-fields.js +0 -10
  172. package/dist/discord/components/settings-editor/settings-editor-fields.js.map +1 -1
  173. package/dist/discord/components/settings-editor/settings-editor.view.d.ts +3 -2
  174. package/dist/discord/components/settings-editor/settings-editor.view.d.ts.map +1 -1
  175. package/dist/discord/components/settings-editor/settings-editor.view.js +4 -21
  176. package/dist/discord/components/settings-editor/settings-editor.view.js.map +1 -1
  177. package/dist/discord/events/event-guild-id.d.ts +10 -0
  178. package/dist/discord/events/event-guild-id.d.ts.map +1 -0
  179. package/dist/discord/events/event-guild-id.js +37 -0
  180. package/dist/discord/events/event-guild-id.js.map +1 -0
  181. package/dist/discord/events/event-router.d.ts +17 -3
  182. package/dist/discord/events/event-router.d.ts.map +1 -1
  183. package/dist/discord/events/event-router.js +33 -9
  184. package/dist/discord/events/event-router.js.map +1 -1
  185. package/dist/discord/i18n.d.ts +17 -2
  186. package/dist/discord/i18n.d.ts.map +1 -1
  187. package/dist/discord/i18n.js +43 -6
  188. package/dist/discord/i18n.js.map +1 -1
  189. package/dist/discord/interaction/interaction-locale.d.ts +14 -0
  190. package/dist/discord/interaction/interaction-locale.d.ts.map +1 -0
  191. package/dist/discord/interaction/interaction-locale.js +12 -0
  192. package/dist/discord/interaction/interaction-locale.js.map +1 -0
  193. package/dist/discord/interaction/locale-resolver.d.ts +27 -0
  194. package/dist/discord/interaction/locale-resolver.d.ts.map +1 -0
  195. package/dist/discord/interaction/locale-resolver.js +3 -0
  196. package/dist/discord/interaction/locale-resolver.js.map +1 -0
  197. package/dist/discord/interaction/modal.d.ts.map +1 -1
  198. package/dist/discord/interaction/modal.js +5 -40
  199. package/dist/discord/interaction/modal.js.map +1 -1
  200. package/dist/discord/interaction/reply-locale.d.ts +18 -0
  201. package/dist/discord/interaction/reply-locale.d.ts.map +1 -0
  202. package/dist/discord/interaction/reply-locale.js +25 -0
  203. package/dist/discord/interaction/reply-locale.js.map +1 -0
  204. package/dist/discord/interaction/select-bounds.d.ts +19 -0
  205. package/dist/discord/interaction/select-bounds.d.ts.map +1 -0
  206. package/dist/discord/interaction/select-bounds.js +17 -0
  207. package/dist/discord/interaction/select-bounds.js.map +1 -0
  208. package/dist/discord/interaction/select-menu.d.ts.map +1 -1
  209. package/dist/discord/interaction/select-menu.js +2 -9
  210. package/dist/discord/interaction/select-menu.js.map +1 -1
  211. package/dist/discord/placeholder-registry.d.ts +1 -1
  212. package/dist/discord/placeholder-registry.d.ts.map +1 -1
  213. package/dist/discord/presenter.d.ts +1 -1
  214. package/dist/discord/presenter.d.ts.map +1 -1
  215. package/dist/discord/settings/discord-guild-directory.d.ts +28 -0
  216. package/dist/discord/settings/discord-guild-directory.d.ts.map +1 -0
  217. package/dist/discord/settings/discord-guild-directory.js +171 -0
  218. package/dist/discord/settings/discord-guild-directory.js.map +1 -0
  219. package/dist/discord/settings/guild-locale-resolver.d.ts +25 -0
  220. package/dist/discord/settings/guild-locale-resolver.d.ts.map +1 -0
  221. package/dist/discord/settings/guild-locale-resolver.js +33 -0
  222. package/dist/discord/settings/guild-locale-resolver.js.map +1 -0
  223. package/dist/discord/settings/is-module-disabled.d.ts +16 -0
  224. package/dist/discord/settings/is-module-disabled.d.ts.map +1 -0
  225. package/dist/discord/settings/is-module-disabled.js +20 -0
  226. package/dist/discord/settings/is-module-disabled.js.map +1 -0
  227. package/dist/discord/settings/module-disabled-embed.d.ts +13 -0
  228. package/dist/discord/settings/module-disabled-embed.d.ts.map +1 -0
  229. package/dist/discord/settings/module-disabled-embed.js +16 -0
  230. package/dist/discord/settings/module-disabled-embed.js.map +1 -0
  231. package/dist/discord/settings/require-configured.d.ts +26 -0
  232. package/dist/discord/settings/require-configured.d.ts.map +1 -0
  233. package/dist/discord/settings/require-configured.js +62 -0
  234. package/dist/discord/settings/require-configured.js.map +1 -0
  235. package/dist/discord/ui/color-aliases.d.ts +31 -0
  236. package/dist/discord/ui/color-aliases.d.ts.map +1 -0
  237. package/dist/discord/ui/color-aliases.js +66 -0
  238. package/dist/discord/ui/color-aliases.js.map +1 -0
  239. package/dist/discord/ui/color-input.d.ts +5 -32
  240. package/dist/discord/ui/color-input.d.ts.map +1 -1
  241. package/dist/discord/ui/color-input.js +8 -157
  242. package/dist/discord/ui/color-input.js.map +1 -1
  243. package/dist/discord/ui/colors.d.ts +0 -2
  244. package/dist/discord/ui/colors.d.ts.map +1 -1
  245. package/dist/discord/ui/colors.js +4 -5
  246. package/dist/discord/ui/colors.js.map +1 -1
  247. package/dist/discord/ui/embed.d.ts.map +1 -1
  248. package/dist/discord/ui/embed.js +3 -8
  249. package/dist/discord/ui/embed.js.map +1 -1
  250. package/dist/discord/ui/truncate-text.d.ts +11 -0
  251. package/dist/discord/ui/truncate-text.d.ts.map +1 -0
  252. package/dist/discord/ui/truncate-text.js +19 -0
  253. package/dist/discord/ui/truncate-text.js.map +1 -0
  254. package/dist/errors/error-message.d.ts +9 -0
  255. package/dist/errors/error-message.d.ts.map +1 -0
  256. package/dist/errors/error-message.js +14 -0
  257. package/dist/errors/error-message.js.map +1 -0
  258. package/dist/i18n/business-message.d.ts +1 -1
  259. package/dist/i18n/business-message.d.ts.map +1 -1
  260. package/dist/i18n/catalog.d.ts +9 -0
  261. package/dist/i18n/catalog.d.ts.map +1 -1
  262. package/dist/i18n/catalog.js +4 -0
  263. package/dist/i18n/catalog.js.map +1 -1
  264. package/dist/i18n/locale.d.ts +2 -0
  265. package/dist/i18n/locale.d.ts.map +1 -1
  266. package/dist/i18n/locale.js +3 -1
  267. package/dist/i18n/locale.js.map +1 -1
  268. package/dist/i18n/translator.d.ts +2 -0
  269. package/dist/i18n/translator.d.ts.map +1 -1
  270. package/dist/i18n/translator.js.map +1 -1
  271. package/dist/module/module.d.ts +15 -1
  272. package/dist/module/module.d.ts.map +1 -1
  273. package/dist/resilience/retry.js +2 -2
  274. package/dist/resilience/retry.js.map +1 -1
  275. package/dist/scheduler/scheduler.d.ts.map +1 -1
  276. package/dist/scheduler/scheduler.js +2 -4
  277. package/dist/scheduler/scheduler.js.map +1 -1
  278. package/dist/settings/cache.d.ts +29 -0
  279. package/dist/settings/cache.d.ts.map +1 -0
  280. package/dist/settings/cache.js +47 -0
  281. package/dist/settings/cache.js.map +1 -0
  282. package/dist/settings/choice.d.ts +10 -0
  283. package/dist/settings/choice.d.ts.map +1 -0
  284. package/dist/settings/choice.js +3 -0
  285. package/dist/settings/choice.js.map +1 -0
  286. package/dist/settings/decode-stored.d.ts +20 -0
  287. package/dist/settings/decode-stored.d.ts.map +1 -0
  288. package/dist/settings/decode-stored.js +35 -0
  289. package/dist/settings/decode-stored.js.map +1 -0
  290. package/dist/settings/define-settings.d.ts +52 -0
  291. package/dist/settings/define-settings.d.ts.map +1 -0
  292. package/dist/settings/define-settings.js +141 -0
  293. package/dist/settings/define-settings.js.map +1 -0
  294. package/dist/settings/describe-field.d.ts +19 -0
  295. package/dist/settings/describe-field.d.ts.map +1 -0
  296. package/dist/settings/describe-field.js +131 -0
  297. package/dist/settings/describe-field.js.map +1 -0
  298. package/dist/settings/describe.d.ts +27 -0
  299. package/dist/settings/describe.d.ts.map +1 -0
  300. package/dist/settings/describe.js +62 -0
  301. package/dist/settings/describe.js.map +1 -0
  302. package/dist/settings/duration.d.ts +16 -0
  303. package/dist/settings/duration.d.ts.map +1 -0
  304. package/dist/settings/duration.js +56 -0
  305. package/dist/settings/duration.js.map +1 -0
  306. package/dist/settings/field-order.d.ts +37 -0
  307. package/dist/settings/field-order.d.ts.map +1 -0
  308. package/dist/settings/field-order.js +100 -0
  309. package/dist/settings/field-order.js.map +1 -0
  310. package/dist/settings/field-search.d.ts +10 -0
  311. package/dist/settings/field-search.d.ts.map +1 -0
  312. package/dist/settings/field-search.js +18 -0
  313. package/dist/settings/field-search.js.map +1 -0
  314. package/dist/settings/fields/builders.d.ts +41 -0
  315. package/dist/settings/fields/builders.d.ts.map +1 -0
  316. package/dist/settings/fields/builders.js +83 -0
  317. package/dist/settings/fields/builders.js.map +1 -0
  318. package/dist/settings/fields/field.d.ts +199 -0
  319. package/dist/settings/fields/field.d.ts.map +1 -0
  320. package/dist/settings/fields/field.js +33 -0
  321. package/dist/settings/fields/field.js.map +1 -0
  322. package/dist/settings/fields/zod-schema.d.ts +67 -0
  323. package/dist/settings/fields/zod-schema.d.ts.map +1 -0
  324. package/dist/settings/fields/zod-schema.js +281 -0
  325. package/dist/settings/fields/zod-schema.js.map +1 -0
  326. package/dist/settings/in-memory/in-memory-guild-directory.d.ts +24 -0
  327. package/dist/settings/in-memory/in-memory-guild-directory.d.ts.map +1 -0
  328. package/dist/settings/in-memory/in-memory-guild-directory.js +42 -0
  329. package/dist/settings/in-memory/in-memory-guild-directory.js.map +1 -0
  330. package/dist/settings/in-memory/in-memory-settings-store.d.ts +8 -0
  331. package/dist/settings/in-memory/in-memory-settings-store.d.ts.map +1 -0
  332. package/dist/settings/in-memory/in-memory-settings-store.js +43 -0
  333. package/dist/settings/in-memory/in-memory-settings-store.js.map +1 -0
  334. package/dist/settings/in-memory/in-process-notifier.d.ts +9 -0
  335. package/dist/settings/in-memory/in-process-notifier.d.ts.map +1 -0
  336. package/dist/settings/in-memory/in-process-notifier.js +32 -0
  337. package/dist/settings/in-memory/in-process-notifier.js.map +1 -0
  338. package/dist/settings/index.d.ts +22 -0
  339. package/dist/settings/index.d.ts.map +1 -0
  340. package/dist/settings/index.js +31 -0
  341. package/dist/settings/index.js.map +1 -0
  342. package/dist/settings/is-plain-object.d.ts +6 -0
  343. package/dist/settings/is-plain-object.d.ts.map +1 -0
  344. package/dist/settings/is-plain-object.js +15 -0
  345. package/dist/settings/is-plain-object.js.map +1 -0
  346. package/dist/settings/messages.d.ts +61 -0
  347. package/dist/settings/messages.d.ts.map +1 -0
  348. package/dist/settings/messages.js +155 -0
  349. package/dist/settings/messages.js.map +1 -0
  350. package/dist/settings/migrate.d.ts +35 -0
  351. package/dist/settings/migrate.d.ts.map +1 -0
  352. package/dist/settings/migrate.js +42 -0
  353. package/dist/settings/migrate.js.map +1 -0
  354. package/dist/settings/ports/guild-directory.d.ts +61 -0
  355. package/dist/settings/ports/guild-directory.d.ts.map +1 -0
  356. package/dist/settings/ports/guild-directory.js +3 -0
  357. package/dist/settings/ports/guild-directory.js.map +1 -0
  358. package/dist/settings/ports/settings-changed-notifier.d.ts +20 -0
  359. package/dist/settings/ports/settings-changed-notifier.d.ts.map +1 -0
  360. package/dist/settings/ports/settings-changed-notifier.js +3 -0
  361. package/dist/settings/ports/settings-changed-notifier.js.map +1 -0
  362. package/dist/settings/ports/settings-store.d.ts +76 -0
  363. package/dist/settings/ports/settings-store.d.ts.map +1 -0
  364. package/dist/settings/ports/settings-store.js +3 -0
  365. package/dist/settings/ports/settings-store.js.map +1 -0
  366. package/dist/settings/registry.d.ts +31 -0
  367. package/dist/settings/registry.d.ts.map +1 -0
  368. package/dist/settings/registry.js +102 -0
  369. package/dist/settings/registry.js.map +1 -0
  370. package/dist/settings/settings-declaration-error.d.ts +13 -0
  371. package/dist/settings/settings-declaration-error.d.ts.map +1 -0
  372. package/dist/settings/settings-declaration-error.js +22 -0
  373. package/dist/settings/settings-declaration-error.js.map +1 -0
  374. package/dist/settings/settings-service.d.ts +148 -0
  375. package/dist/settings/settings-service.d.ts.map +1 -0
  376. package/dist/settings/settings-service.js +279 -0
  377. package/dist/settings/settings-service.js.map +1 -0
  378. package/dist/settings/settings-validation-error.d.ts +23 -0
  379. package/dist/settings/settings-validation-error.d.ts.map +1 -0
  380. package/dist/settings/settings-validation-error.js +17 -0
  381. package/dist/settings/settings-validation-error.js.map +1 -0
  382. package/dist/settings/status.d.ts +16 -0
  383. package/dist/settings/status.d.ts.map +1 -0
  384. package/dist/settings/status.js +18 -0
  385. package/dist/settings/status.js.map +1 -0
  386. package/dist/settings/suggest.d.ts +77 -0
  387. package/dist/settings/suggest.d.ts.map +1 -0
  388. package/dist/settings/suggest.js +192 -0
  389. package/dist/settings/suggest.js.map +1 -0
  390. package/dist/settings/system/kernel-settings.d.ts +43 -0
  391. package/dist/settings/system/kernel-settings.d.ts.map +1 -0
  392. package/dist/settings/system/kernel-settings.js +53 -0
  393. package/dist/settings/system/kernel-settings.js.map +1 -0
  394. package/dist/settings/system/module-gate.d.ts +31 -0
  395. package/dist/settings/system/module-gate.d.ts.map +1 -0
  396. package/dist/settings/system/module-gate.js +34 -0
  397. package/dist/settings/system/module-gate.js.map +1 -0
  398. package/dist/settings/testing/index.d.ts +2 -0
  399. package/dist/settings/testing/index.d.ts.map +1 -0
  400. package/dist/settings/testing/index.js +6 -0
  401. package/dist/settings/testing/index.js.map +1 -0
  402. package/dist/settings/testing/settings-store-contract.d.ts +29 -0
  403. package/dist/settings/testing/settings-store-contract.d.ts.map +1 -0
  404. package/dist/settings/testing/settings-store-contract.js +192 -0
  405. package/dist/settings/testing/settings-store-contract.js.map +1 -0
  406. package/dist/settings/timed-search.d.ts +26 -0
  407. package/dist/settings/timed-search.d.ts.map +1 -0
  408. package/dist/settings/timed-search.js +48 -0
  409. package/dist/settings/timed-search.js.map +1 -0
  410. package/dist/settings/types.d.ts +37 -0
  411. package/dist/settings/types.d.ts.map +1 -0
  412. package/dist/settings/types.js +3 -0
  413. package/dist/settings/types.js.map +1 -0
  414. package/dist/settings/validate.d.ts +55 -0
  415. package/dist/settings/validate.d.ts.map +1 -0
  416. package/dist/settings/validate.js +196 -0
  417. package/dist/settings/validate.js.map +1 -0
  418. package/package.json +463 -88
  419. package/src/authz/require-level-guard.ts +1 -1
  420. package/src/color.ts +134 -0
  421. package/src/discord/command/all-required.ts +12 -0
  422. package/src/discord/command/autocomplete-dispatcher.ts +2 -1
  423. package/src/discord/command/autocomplete-limits.ts +2 -0
  424. package/src/discord/command/autocomplete.ts +8 -7
  425. package/src/discord/command/command-responders.ts +39 -0
  426. package/src/discord/command/context.ts +14 -54
  427. package/src/discord/command/cooldown-guard.ts +1 -1
  428. package/src/discord/command/create-command.ts +19 -94
  429. package/src/discord/command/create-context-menu-command.ts +19 -97
  430. package/src/discord/command/errors.ts +1 -1
  431. package/src/discord/command/guard.ts +24 -12
  432. package/src/discord/command/options.ts +202 -412
  433. package/src/discord/command/passes-guard.ts +37 -0
  434. package/src/discord/command/permission-guard.ts +1 -1
  435. package/src/discord/command/render-command-failure.ts +71 -0
  436. package/src/discord/command/route-key.ts +9 -0
  437. package/src/discord/command/router.ts +73 -12
  438. package/src/discord/command/send-embed.ts +42 -0
  439. package/src/discord/command/types.ts +7 -1
  440. package/src/discord/components/component-access.ts +20 -0
  441. package/src/discord/components/component-router.ts +73 -36
  442. package/src/discord/components/interactive-message/index.ts +5 -3
  443. package/src/discord/components/interactive-message/interactive-message-collector.ts +4 -68
  444. package/src/discord/components/interactive-message/message-edit-options.ts +47 -0
  445. package/src/discord/components/interactive-message/mount-interactive-message.ts +5 -3
  446. package/src/discord/components/interactive-message/state-store.ts +20 -0
  447. package/src/discord/components/paginator/mount-paginator.ts +3 -3
  448. package/src/discord/components/paginator/paginator-view.ts +1 -1
  449. package/src/discord/components/persistent-paginator.ts +8 -9
  450. package/src/discord/components/settings-editor/from-declaration-controls.ts +371 -0
  451. package/src/discord/components/settings-editor/from-declaration-display.ts +155 -0
  452. package/src/discord/components/settings-editor/from-declaration-layout.ts +247 -0
  453. package/src/discord/components/settings-editor/from-declaration-search.ts +77 -0
  454. package/src/discord/components/settings-editor/from-declaration-stored.ts +39 -0
  455. package/src/discord/components/settings-editor/from-declaration-subject.ts +110 -0
  456. package/src/discord/components/settings-editor/from-declaration-values.ts +240 -0
  457. package/src/discord/components/settings-editor/from-declaration.ts +218 -0
  458. package/src/discord/components/settings-editor/index.ts +5 -2
  459. package/src/discord/components/settings-editor/mount-settings-editor.ts +28 -10
  460. package/src/discord/components/settings-editor/navigation.ts +41 -0
  461. package/src/discord/components/settings-editor/settings-editor-card.view.ts +79 -36
  462. package/src/discord/components/settings-editor/settings-editor-field-modal.ts +76 -68
  463. package/src/discord/components/settings-editor/settings-editor-field-values.ts +11 -0
  464. package/src/discord/components/settings-editor/settings-editor-fields.ts +6 -11
  465. package/src/discord/components/settings-editor/settings-editor.view.ts +11 -24
  466. package/src/discord/events/event-guild-id.ts +35 -0
  467. package/src/discord/events/event-router.ts +46 -13
  468. package/src/discord/i18n.ts +47 -8
  469. package/src/discord/interaction/interaction-locale.ts +19 -0
  470. package/src/discord/interaction/locale-resolver.ts +28 -0
  471. package/src/discord/interaction/modal.ts +5 -40
  472. package/src/discord/interaction/reply-locale.ts +35 -0
  473. package/src/discord/interaction/select-bounds.ts +33 -0
  474. package/src/discord/interaction/select-menu.ts +2 -9
  475. package/src/discord/placeholder-registry.ts +1 -1
  476. package/src/discord/presenter.ts +1 -1
  477. package/src/discord/settings/discord-guild-directory.ts +214 -0
  478. package/src/discord/settings/guild-locale-resolver.ts +38 -0
  479. package/src/discord/settings/is-module-disabled.ts +22 -0
  480. package/src/discord/settings/module-disabled-embed.ts +19 -0
  481. package/src/discord/settings/require-configured.ts +68 -0
  482. package/src/discord/ui/color-aliases.ts +70 -0
  483. package/src/discord/ui/color-input.ts +8 -173
  484. package/src/discord/ui/colors.ts +2 -3
  485. package/src/discord/ui/embed.ts +3 -9
  486. package/src/discord/ui/truncate-text.ts +15 -0
  487. package/src/errors/error-message.ts +10 -0
  488. package/src/i18n/business-message.ts +1 -1
  489. package/src/i18n/catalog.ts +14 -0
  490. package/src/i18n/locale.ts +3 -0
  491. package/src/i18n/translator.ts +3 -0
  492. package/src/module/module.ts +15 -1
  493. package/src/resilience/retry.ts +1 -1
  494. package/src/scheduler/scheduler.ts +2 -5
  495. package/src/settings/cache.ts +70 -0
  496. package/src/settings/choice.ts +9 -0
  497. package/src/settings/decode-stored.ts +40 -0
  498. package/src/settings/define-settings.ts +214 -0
  499. package/src/settings/describe-field.ts +155 -0
  500. package/src/settings/describe.ts +90 -0
  501. package/src/settings/duration.ts +54 -0
  502. package/src/settings/field-order.ts +128 -0
  503. package/src/settings/field-search.ts +16 -0
  504. package/src/settings/fields/builders.ts +161 -0
  505. package/src/settings/fields/field.ts +205 -0
  506. package/src/settings/fields/zod-schema.ts +300 -0
  507. package/src/settings/in-memory/in-memory-guild-directory.ts +69 -0
  508. package/src/settings/in-memory/in-memory-settings-store.ts +46 -0
  509. package/src/settings/in-memory/in-process-notifier.ts +40 -0
  510. package/src/settings/index.ts +72 -0
  511. package/src/settings/is-plain-object.ts +11 -0
  512. package/src/settings/messages.ts +161 -0
  513. package/src/settings/migrate.ts +58 -0
  514. package/src/settings/ports/guild-directory.ts +48 -0
  515. package/src/settings/ports/settings-changed-notifier.ts +20 -0
  516. package/src/settings/ports/settings-store.ts +74 -0
  517. package/src/settings/registry.ts +137 -0
  518. package/src/settings/settings-declaration-error.ts +16 -0
  519. package/src/settings/settings-service.ts +535 -0
  520. package/src/settings/settings-validation-error.ts +41 -0
  521. package/src/settings/status.ts +25 -0
  522. package/src/settings/suggest.ts +267 -0
  523. package/src/settings/system/kernel-settings.ts +74 -0
  524. package/src/settings/system/module-gate.ts +49 -0
  525. package/src/settings/testing/index.ts +7 -0
  526. package/src/settings/testing/settings-store-contract.ts +278 -0
  527. package/src/settings/timed-search.ts +56 -0
  528. package/src/settings/types.ts +42 -0
  529. package/src/settings/validate.ts +298 -0
@@ -12,11 +12,16 @@ exports.createChannelOption = createChannelOption;
12
12
  exports.createRoleOption = createRoleOption;
13
13
  exports.createMentionableOption = createMentionableOption;
14
14
  exports.createAttachmentOption = createAttachmentOption;
15
- exports.allRequired = allRequired;
16
15
  const datetime_1 = require("../../datetime");
17
16
  const errors_1 = require("../../discord/command/errors");
18
- /** Applies the localization maps to a builder, if any were provided. */
19
- function applyOptionLocalizations(option, localizations) {
17
+ /**
18
+ * The block every option type opens with: its name, description, whether it
19
+ * is required, and its translated labels.
20
+ */
21
+ function describeOption(option, name, declared, localizations) {
22
+ option.setName(name);
23
+ option.setDescription(declared.description);
24
+ option.setRequired(declared.isRequired);
20
25
  if (localizations.nameLocalizations) {
21
26
  option.setNameLocalizations(localizations.nameLocalizations);
22
27
  }
@@ -63,8 +68,7 @@ class StringOption {
63
68
  apply(container, name) {
64
69
  assertChoicesAndAutocompleteExclusive(this.choiceValues !== null, this.autocomplete);
65
70
  container.addStringOption((option) => {
66
- option.setName(name).setDescription(this.description).setRequired(this.isRequired);
67
- applyOptionLocalizations(option, this.localizations);
71
+ describeOption(option, name, this, this.localizations);
68
72
  if (this.choiceValues) {
69
73
  option.addChoices(...this.choiceValues.map((value) => ({ name: value, value })));
70
74
  }
@@ -91,71 +95,70 @@ class StringOption {
91
95
  function createStringOption(description, bounds = {}, localizations = {}) {
92
96
  return new StringOption(description, false, null, null, bounds, undefined, localizations);
93
97
  }
94
- class UserOption {
98
+ /** Adapt a `configure` step to the builder callback discord.js expects back. */
99
+ function configuring(configure) {
100
+ return (option) => {
101
+ configure(option);
102
+ return option;
103
+ };
104
+ }
105
+ /**
106
+ * An option type that supports neither choices nor autocomplete: every
107
+ * difference between two of them lives in their {@link OptionKind}.
108
+ */
109
+ class PlainOption {
110
+ kind;
95
111
  description;
96
112
  isRequired;
97
113
  localizations;
98
- constructor(description, isRequired, localizations = {}) {
114
+ constructor(kind, description, isRequired, localizations = {}) {
115
+ this.kind = kind;
99
116
  this.description = description;
100
117
  this.isRequired = isRequired;
101
118
  this.localizations = localizations;
102
119
  }
103
120
  required() {
104
- return new UserOption(this.description, true, this.localizations);
121
+ return new PlainOption(this.kind, this.description, true, this.localizations);
105
122
  }
106
123
  choices(_values) {
107
- throw new errors_1.OptionValidationError("User options do not support choices.");
124
+ throw new errors_1.OptionValidationError(`${this.kind.label} options do not support choices.`);
108
125
  }
109
126
  apply(container, name) {
110
- container.addUserOption((option) => {
111
- option.setName(name).setDescription(this.description).setRequired(this.isRequired);
112
- applyOptionLocalizations(option, this.localizations);
113
- return option;
114
- });
127
+ this.kind.add(container, (option) => describeOption(option, name, this, this.localizations));
115
128
  }
116
129
  read(interaction, name) {
117
- return interaction.options.getUser(name, this.isRequired);
130
+ return this.kind.read(interaction, name, this.isRequired);
118
131
  }
119
132
  }
133
+ const USER_KIND = {
134
+ label: "User",
135
+ add: (container, configure) => container.addUserOption(configuring(configure)),
136
+ read: (interaction, name, required) => interaction.options.getUser(name, required),
137
+ };
120
138
  function createUserOption(description, localizations = {}) {
121
- return new UserOption(description, false, localizations);
122
- }
123
- class BooleanOption {
124
- description;
125
- isRequired;
126
- localizations;
127
- constructor(description, isRequired, localizations = {}) {
128
- this.description = description;
129
- this.isRequired = isRequired;
130
- this.localizations = localizations;
131
- }
132
- required() {
133
- return new BooleanOption(this.description, true, this.localizations);
134
- }
135
- choices(_values) {
136
- throw new errors_1.OptionValidationError("Boolean options do not support choices.");
137
- }
138
- apply(container, name) {
139
- container.addBooleanOption((option) => {
140
- option.setName(name).setDescription(this.description).setRequired(this.isRequired);
141
- applyOptionLocalizations(option, this.localizations);
142
- return option;
143
- });
144
- }
145
- read(interaction, name) {
146
- return interaction.options.getBoolean(name, this.isRequired);
147
- }
139
+ return new PlainOption(USER_KIND, description, false, localizations);
148
140
  }
141
+ const BOOLEAN_KIND = {
142
+ label: "Boolean",
143
+ add: (container, configure) => container.addBooleanOption(configuring(configure)),
144
+ read: (interaction, name, required) => interaction.options.getBoolean(name, required),
145
+ };
149
146
  function createBooleanOption(description, localizations = {}) {
150
- return new BooleanOption(description, false, localizations);
147
+ return new PlainOption(BOOLEAN_KIND, description, false, localizations);
151
148
  }
152
- class IntegerOption {
149
+ /**
150
+ * An integer or a number option: bounded, autocompletable, never offered as a
151
+ * fixed choice list. The two differ only in their {@link OptionKind}.
152
+ */
153
+ class NumericOption {
154
+ kind;
153
155
  description;
154
156
  isRequired;
155
157
  bounds;
156
158
  autocomplete;
157
159
  localizations;
158
- constructor(description, isRequired, bounds, autocomplete, localizations = {}) {
160
+ constructor(kind, description, isRequired, bounds, autocomplete, localizations = {}) {
161
+ this.kind = kind;
159
162
  this.description = description;
160
163
  this.isRequired = isRequired;
161
164
  this.bounds = bounds;
@@ -163,18 +166,17 @@ class IntegerOption {
163
166
  this.localizations = localizations;
164
167
  }
165
168
  required() {
166
- return new IntegerOption(this.description, true, this.bounds, this.autocomplete, this.localizations);
169
+ return new NumericOption(this.kind, this.description, true, this.bounds, this.autocomplete, this.localizations);
167
170
  }
168
171
  choices(_values) {
169
- throw new errors_1.OptionValidationError("Integer options do not support choices.");
172
+ throw new errors_1.OptionValidationError(`${this.kind.label} options do not support choices.`);
170
173
  }
171
174
  withAutocomplete(resolver) {
172
- return new IntegerOption(this.description, this.isRequired, this.bounds, resolver, this.localizations);
175
+ return new NumericOption(this.kind, this.description, this.isRequired, this.bounds, resolver, this.localizations);
173
176
  }
174
177
  apply(container, name) {
175
- container.addIntegerOption((option) => {
176
- option.setName(name).setDescription(this.description).setRequired(this.isRequired);
177
- applyOptionLocalizations(option, this.localizations);
178
+ this.kind.add(container, (option) => {
179
+ describeOption(option, name, this, this.localizations);
178
180
  if (this.bounds.min !== undefined) {
179
181
  option.setMinValue(this.bounds.min);
180
182
  }
@@ -184,100 +186,48 @@ class IntegerOption {
184
186
  if (this.autocomplete !== undefined) {
185
187
  option.setAutocomplete(true);
186
188
  }
187
- return option;
188
189
  });
189
190
  }
190
191
  read(interaction, name) {
191
- return interaction.options.getInteger(name, this.isRequired);
192
+ return this.kind.read(interaction, name, this.isRequired);
192
193
  }
193
194
  }
195
+ const INTEGER_KIND = {
196
+ label: "Integer",
197
+ add: (container, configure) => container.addIntegerOption(configuring(configure)),
198
+ read: (interaction, name, required) => interaction.options.getInteger(name, required),
199
+ };
194
200
  function createIntegerOption(description, bounds = {}, localizations = {}) {
195
- return new IntegerOption(description, false, bounds, undefined, localizations);
196
- }
197
- class NumberOption {
198
- description;
199
- isRequired;
200
- bounds;
201
- autocomplete;
202
- localizations;
203
- constructor(description, isRequired, bounds, autocomplete, localizations = {}) {
204
- this.description = description;
205
- this.isRequired = isRequired;
206
- this.bounds = bounds;
207
- this.autocomplete = autocomplete;
208
- this.localizations = localizations;
209
- }
210
- required() {
211
- return new NumberOption(this.description, true, this.bounds, this.autocomplete, this.localizations);
212
- }
213
- choices(_values) {
214
- throw new errors_1.OptionValidationError("Number options do not support choices.");
215
- }
216
- withAutocomplete(resolver) {
217
- return new NumberOption(this.description, this.isRequired, this.bounds, resolver, this.localizations);
218
- }
219
- apply(container, name) {
220
- container.addNumberOption((option) => {
221
- option.setName(name).setDescription(this.description).setRequired(this.isRequired);
222
- applyOptionLocalizations(option, this.localizations);
223
- if (this.bounds.min !== undefined) {
224
- option.setMinValue(this.bounds.min);
225
- }
226
- if (this.bounds.max !== undefined) {
227
- option.setMaxValue(this.bounds.max);
228
- }
229
- if (this.autocomplete !== undefined) {
230
- option.setAutocomplete(true);
231
- }
232
- return option;
233
- });
234
- }
235
- read(interaction, name) {
236
- return interaction.options.getNumber(name, this.isRequired);
237
- }
201
+ return new NumericOption(INTEGER_KIND, description, false, bounds, undefined, localizations);
238
202
  }
203
+ const NUMBER_KIND = {
204
+ label: "Number",
205
+ add: (container, configure) => container.addNumberOption(configuring(configure)),
206
+ read: (interaction, name, required) => interaction.options.getNumber(name, required),
207
+ };
239
208
  function createNumberOption(description, bounds = {}, localizations = {}) {
240
- return new NumberOption(description, false, bounds, undefined, localizations);
209
+ return new NumericOption(NUMBER_KIND, description, false, bounds, undefined, localizations);
241
210
  }
242
- const INVALID_DATETIME_MESSAGE = "Invalid date format. Use `YYYY-MM-DD HH:MM` (e.g. `2025-03-15 14:00`).";
243
- function assertValidDate(value, message) {
244
- if (Number.isNaN(Date.parse(value))) {
245
- throw new errors_1.OptionValidationError(message);
246
- }
211
+ /** A plain string input whose raw text is validated, then converted, by `parse`. */
212
+ function textKind(label, parse) {
213
+ return {
214
+ label,
215
+ add: (container, configure) => container.addStringOption(configuring(configure)),
216
+ read: (interaction, name, required) => {
217
+ const raw = interaction.options.getString(name, required);
218
+ return raw === null ? null : parse(raw);
219
+ },
220
+ };
247
221
  }
248
- class DateTimeOption {
249
- description;
250
- isRequired;
251
- localizations;
252
- constructor(description, isRequired, localizations = {}) {
253
- this.description = description;
254
- this.isRequired = isRequired;
255
- this.localizations = localizations;
256
- }
257
- required() {
258
- return new DateTimeOption(this.description, true, this.localizations);
259
- }
260
- choices(_values) {
261
- throw new errors_1.OptionValidationError("Date options do not support choices.");
262
- }
263
- apply(container, name) {
264
- container.addStringOption((option) => {
265
- option.setName(name).setDescription(this.description).setRequired(this.isRequired);
266
- applyOptionLocalizations(option, this.localizations);
267
- return option;
268
- });
269
- }
270
- read(interaction, name) {
271
- const raw = interaction.options.getString(name, this.isRequired);
272
- if (raw === null) {
273
- return null;
274
- }
275
- assertValidDate(raw, INVALID_DATETIME_MESSAGE);
276
- return new Date(raw.replace(" ", "T"));
222
+ const INVALID_DATETIME_MESSAGE = "Invalid date format. Use `YYYY-MM-DD HH:MM` (e.g. `2025-03-15 14:00`).";
223
+ const DATE_TIME_KIND = textKind("Date", (raw) => {
224
+ if (Number.isNaN(Date.parse(raw))) {
225
+ throw new errors_1.OptionValidationError(INVALID_DATETIME_MESSAGE);
277
226
  }
278
- }
227
+ return new Date(raw.replace(" ", "T"));
228
+ });
279
229
  function createDateTimeOption(description, localizations = {}) {
280
- return new DateTimeOption(description, false, localizations);
230
+ return new PlainOption(DATE_TIME_KIND, description, false, localizations);
281
231
  }
282
232
  const INVALID_WALL_CLOCK_MESSAGE = "Invalid date format. Use `YYYY-MM-DD` or `YYYY-MM-DD HH:MM` (e.g. `2025-03-15 14:00`).";
283
233
  const INVALID_DATE_ONLY_MESSAGE = "Invalid date format. Use `YYYY-MM-DD` (e.g. `2025-03-15`).";
@@ -289,83 +239,29 @@ const DATE_ONLY_PATTERN = /^\d{4}-\d{2}-\d{2}$/;
289
239
  * IANA zone applies. This is what lets the same option be reused by any module
290
240
  * that needs a wall-clock input.
291
241
  */
292
- class WallClockOption {
293
- description;
294
- isRequired;
295
- localizations;
296
- constructor(description, isRequired, localizations = {}) {
297
- this.description = description;
298
- this.isRequired = isRequired;
299
- this.localizations = localizations;
300
- }
301
- required() {
302
- return new WallClockOption(this.description, true, this.localizations);
303
- }
304
- choices(_values) {
305
- throw new errors_1.OptionValidationError("Wall-clock options do not support choices.");
306
- }
307
- apply(container, name) {
308
- container.addStringOption((option) => {
309
- option.setName(name).setDescription(this.description).setRequired(this.isRequired);
310
- applyOptionLocalizations(option, this.localizations);
311
- return option;
312
- });
313
- }
314
- read(interaction, name) {
315
- const raw = interaction.options.getString(name, this.isRequired);
316
- if (raw === null) {
317
- return null;
318
- }
319
- if (!(0, datetime_1.isValidWallClock)(raw)) {
320
- throw new errors_1.OptionValidationError(INVALID_WALL_CLOCK_MESSAGE);
321
- }
322
- return raw;
242
+ const WALL_CLOCK_KIND = textKind("Wall-clock", (raw) => {
243
+ if (!(0, datetime_1.isValidWallClock)(raw)) {
244
+ throw new errors_1.OptionValidationError(INVALID_WALL_CLOCK_MESSAGE);
323
245
  }
324
- }
246
+ return raw;
247
+ });
325
248
  /**
326
249
  * A `YYYY-MM-DD[ HH:MM[:SS]]` string option, validated against the wall-clock
327
250
  * grammar but left unanchored (no `Date` conversion, no assumed timezone) — the
328
251
  * caller anchors it with `zonedWallClockToUtc` once it knows the guild zone.
329
252
  */
330
253
  function createWallClockOption(description, localizations = {}) {
331
- return new WallClockOption(description, false, localizations);
254
+ return new PlainOption(WALL_CLOCK_KIND, description, false, localizations);
332
255
  }
333
256
  /** A strict, date-only (`YYYY-MM-DD`) option — rejects any time component. */
334
- class DateOption {
335
- description;
336
- isRequired;
337
- localizations;
338
- constructor(description, isRequired, localizations = {}) {
339
- this.description = description;
340
- this.isRequired = isRequired;
341
- this.localizations = localizations;
342
- }
343
- required() {
344
- return new DateOption(this.description, true, this.localizations);
345
- }
346
- choices(_values) {
347
- throw new errors_1.OptionValidationError("Date options do not support choices.");
348
- }
349
- apply(container, name) {
350
- container.addStringOption((option) => {
351
- option.setName(name).setDescription(this.description).setRequired(this.isRequired);
352
- applyOptionLocalizations(option, this.localizations);
353
- return option;
354
- });
355
- }
356
- read(interaction, name) {
357
- const raw = interaction.options.getString(name, this.isRequired);
358
- if (raw === null) {
359
- return null;
360
- }
361
- // Strict `YYYY-MM-DD` with a real-calendar check (rejects `2026/03/15`,
362
- // time-bearing input, and impossible dates like `2026-02-30`).
363
- if (!DATE_ONLY_PATTERN.test(raw) || !(0, datetime_1.isValidWallClock)(raw)) {
364
- throw new errors_1.OptionValidationError(INVALID_DATE_ONLY_MESSAGE);
365
- }
366
- return new Date(raw);
367
- }
368
- }
257
+ const DATE_KIND = textKind("Date", (raw) => {
258
+ // Strict `YYYY-MM-DD` with a real-calendar check (rejects `2026/03/15`,
259
+ // time-bearing input, and impossible dates like `2026-02-30`).
260
+ if (!DATE_ONLY_PATTERN.test(raw) || !(0, datetime_1.isValidWallClock)(raw)) {
261
+ throw new errors_1.OptionValidationError(INVALID_DATE_ONLY_MESSAGE);
262
+ }
263
+ return new Date(raw);
264
+ });
369
265
  /**
370
266
  * A strict date-only (`YYYY-MM-DD`) option. The returned `Date` is UTC
371
267
  * midnight of that calendar day — a caller that needs it anchored to a guild
@@ -373,137 +269,48 @@ class DateOption {
373
269
  * `endOfGuildDay` from `core/datetime`.
374
270
  */
375
271
  function createDateOption(description, localizations = {}) {
376
- return new DateOption(description, false, localizations);
272
+ return new PlainOption(DATE_KIND, description, false, localizations);
377
273
  }
378
- class ChannelOption {
379
- description;
380
- isRequired;
381
- channelTypes;
382
- localizations;
383
- constructor(description, isRequired, channelTypes, localizations = {}) {
384
- this.description = description;
385
- this.isRequired = isRequired;
386
- this.channelTypes = channelTypes;
387
- this.localizations = localizations;
388
- }
389
- required() {
390
- return new ChannelOption(this.description, true, this.channelTypes, this.localizations);
391
- }
392
- choices(_values) {
393
- throw new errors_1.OptionValidationError("Channel options do not support choices.");
394
- }
395
- apply(container, name) {
396
- container.addChannelOption((option) => {
397
- option.setName(name).setDescription(this.description).setRequired(this.isRequired);
398
- applyOptionLocalizations(option, this.localizations);
399
- if (this.channelTypes !== undefined) {
400
- option.addChannelTypes(...this.channelTypes);
274
+ function channelKind(channelTypes) {
275
+ return {
276
+ label: "Channel",
277
+ add: (container, configure) => container.addChannelOption((option) => {
278
+ configure(option);
279
+ if (channelTypes !== undefined) {
280
+ option.addChannelTypes(...channelTypes);
401
281
  }
402
282
  return option;
403
- });
404
- }
405
- read(interaction, name) {
283
+ }),
406
284
  // The declared types are re-sent at read time: `addChannelTypes` only drives
407
285
  // the client-side picker, so Discord can still deliver another channel kind.
408
- return interaction.options.getChannel(name, this.isRequired, this.channelTypes);
409
- }
286
+ read: (interaction, name, required) => interaction.options.getChannel(name, required, channelTypes),
287
+ };
410
288
  }
411
289
  function createChannelOption(description, channelTypes, localizations = {}) {
412
- return new ChannelOption(description, false, channelTypes, localizations);
413
- }
414
- class RoleOption {
415
- description;
416
- isRequired;
417
- localizations;
418
- constructor(description, isRequired, localizations = {}) {
419
- this.description = description;
420
- this.isRequired = isRequired;
421
- this.localizations = localizations;
422
- }
423
- required() {
424
- return new RoleOption(this.description, true, this.localizations);
425
- }
426
- choices(_values) {
427
- throw new errors_1.OptionValidationError("Role options do not support choices.");
428
- }
429
- apply(container, name) {
430
- container.addRoleOption((option) => {
431
- option.setName(name).setDescription(this.description).setRequired(this.isRequired);
432
- applyOptionLocalizations(option, this.localizations);
433
- return option;
434
- });
435
- }
436
- read(interaction, name) {
437
- return interaction.options.getRole(name, this.isRequired);
438
- }
290
+ return new PlainOption(channelKind(channelTypes), description, false, localizations);
439
291
  }
292
+ const ROLE_KIND = {
293
+ label: "Role",
294
+ add: (container, configure) => container.addRoleOption(configuring(configure)),
295
+ read: (interaction, name, required) => interaction.options.getRole(name, required),
296
+ };
440
297
  function createRoleOption(description, localizations = {}) {
441
- return new RoleOption(description, false, localizations);
442
- }
443
- class MentionableOption {
444
- description;
445
- isRequired;
446
- localizations;
447
- constructor(description, isRequired, localizations = {}) {
448
- this.description = description;
449
- this.isRequired = isRequired;
450
- this.localizations = localizations;
451
- }
452
- required() {
453
- return new MentionableOption(this.description, true, this.localizations);
454
- }
455
- choices(_values) {
456
- throw new errors_1.OptionValidationError("Mentionable options do not support choices.");
457
- }
458
- apply(container, name) {
459
- container.addMentionableOption((option) => {
460
- option.setName(name).setDescription(this.description).setRequired(this.isRequired);
461
- applyOptionLocalizations(option, this.localizations);
462
- return option;
463
- });
464
- }
465
- read(interaction, name) {
466
- return interaction.options.getMentionable(name, this.isRequired);
467
- }
298
+ return new PlainOption(ROLE_KIND, description, false, localizations);
468
299
  }
300
+ const MENTIONABLE_KIND = {
301
+ label: "Mentionable",
302
+ add: (container, configure) => container.addMentionableOption(configuring(configure)),
303
+ read: (interaction, name, required) => interaction.options.getMentionable(name, required),
304
+ };
469
305
  function createMentionableOption(description, localizations = {}) {
470
- return new MentionableOption(description, false, localizations);
471
- }
472
- class AttachmentOption {
473
- description;
474
- isRequired;
475
- localizations;
476
- constructor(description, isRequired, localizations = {}) {
477
- this.description = description;
478
- this.isRequired = isRequired;
479
- this.localizations = localizations;
480
- }
481
- required() {
482
- return new AttachmentOption(this.description, true, this.localizations);
483
- }
484
- choices(_values) {
485
- throw new errors_1.OptionValidationError("Attachment options do not support choices.");
486
- }
487
- apply(container, name) {
488
- container.addAttachmentOption((option) => {
489
- option.setName(name).setDescription(this.description).setRequired(this.isRequired);
490
- applyOptionLocalizations(option, this.localizations);
491
- return option;
492
- });
493
- }
494
- read(interaction, name) {
495
- return interaction.options.getAttachment(name, this.isRequired);
496
- }
306
+ return new PlainOption(MENTIONABLE_KIND, description, false, localizations);
497
307
  }
308
+ const ATTACHMENT_KIND = {
309
+ label: "Attachment",
310
+ add: (container, configure) => container.addAttachmentOption(configuring(configure)),
311
+ read: (interaction, name, required) => interaction.options.getAttachment(name, required),
312
+ };
498
313
  function createAttachmentOption(description, localizations = {}) {
499
- return new AttachmentOption(description, false, localizations);
500
- }
501
- /** Turn every option in a record into its required variant. */
502
- function allRequired(fields) {
503
- const out = {};
504
- for (const [key, option] of Object.entries(fields)) {
505
- out[key] = option.required();
506
- }
507
- return out;
314
+ return new PlainOption(ATTACHMENT_KIND, description, false, localizations);
508
315
  }
509
316
  //# sourceMappingURL=options.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/discord/command/options.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/discord/command/options.ts"],"names":[],"mappings":";;AA+OA,gDAcC;AAgED,4CAKC;AAQD,kDAKC;AAqFD,kDAaC;AAQD,gDAaC;AA2BD,oDAKC;AA0BD,sDAKC;AAkBD,4CAKC;AA6CD,kDAWC;AAQD,4CAKC;AASD,0DAKC;AAQD,wDAKC;AAxmBD,yCAA8C;AAC9C,qDAAiE;AAuBjE;;;GAGG;AACH,SAAS,cAAc,CACtB,MAAqB,EACrB,IAAY,EACZ,QAAwE,EACxE,aAAkC;IAElC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACrB,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACxC,IAAI,aAAa,CAAC,iBAAiB,EAAE,CAAC;QACrC,MAAM,CAAC,oBAAoB,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,aAAa,CAAC,wBAAwB,EAAE,CAAC;QAC5C,MAAM,CAAC,2BAA2B,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC;IAC5E,CAAC;AACF,CAAC;AAyED,MAAM,iCAAiC,GACtC,0FAA0F,CAAC;AAE5F;;;GAGG;AACH,SAAS,qCAAqC,CAC7C,UAAmB,EACnB,QAA0C;IAE1C,IAAI,UAAU,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC1C,MAAM,IAAI,8BAAqB,CAAC,iCAAiC,CAAC,CAAC;IACpE,CAAC;AACF,CAAC;AAQD,MAAM,YAAY;IAIP;IACA;IACQ;IACA;IACA;IACR;IACQ;IAPlB,YACU,WAAmB,EACnB,UAAqB,EACb,YAAsC,EACtC,SAA2C,EAC3C,MAA0B,EAClC,YAAmC,EAC3B,gBAAqC,EAAE;QAN/C,gBAAW,GAAX,WAAW,CAAQ;QACnB,eAAU,GAAV,UAAU,CAAW;QACb,iBAAY,GAAZ,YAAY,CAA0B;QACtC,cAAS,GAAT,SAAS,CAAkC;QAC3C,WAAM,GAAN,MAAM,CAAoB;QAClC,iBAAY,GAAZ,YAAY,CAAuB;QAC3B,kBAAa,GAAb,aAAa,CAA0B;IACtD,CAAC;IAEJ,QAAQ;QACP,OAAO,IAAI,YAAY,CACtB,IAAI,CAAC,WAAW,EAChB,IAAI,EACJ,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,aAAa,CAClB,CAAC;IACH,CAAC;IAED,OAAO,CAAoC,MAAS;QACnD,OAAO,IAAI,YAAY,CACtB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,UAAU,EACf,MAAyC,EACzC,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,aAAa,CACyB,CAAC;IAC9C,CAAC;IAED,gBAAgB,CAAC,QAA8B;QAC9C,OAAO,IAAI,YAAY,CACtB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,MAAM,EACX,QAAQ,EACR,IAAI,CAAC,aAAa,CAClB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAA0B,EAAE,IAAY;QAC7C,qCAAqC,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACrF,SAAS,CAAC,eAAe,CAAC,CAAC,MAAM,EAAE,EAAE;YACpC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACvD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACvB,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;YAClF,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACzC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACzC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;YACD,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBACrC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC;YACD,OAAO,MAAM,CAAC;QACf,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,CACH,WAAwC,EACxC,IAAY;QAEZ,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,UAAqB,CAAC,CAAC;QAC5E,IAAI,GAAG,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QACD,OAAO,GAAsD,CAAC;IAC/D,CAAC;CACD;AAED,SAAgB,kBAAkB,CACjC,WAAmB,EACnB,SAA6B,EAAE,EAC/B,gBAAqC,EAAE;IAEvC,OAAO,IAAI,YAAY,CACtB,WAAW,EACX,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,SAAS,EACT,aAAa,CACb,CAAC;AACH,CAAC;AAcD,gFAAgF;AAChF,SAAS,WAAW,CACnB,SAAkC;IAElC,OAAO,CAAC,MAAM,EAAE,EAAE;QACjB,SAAS,CAAC,MAAM,CAAC,CAAC;QAClB,OAAO,MAAM,CAAC;IACf,CAAC,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,WAAW;IAEE;IACR;IACA;IACQ;IAJlB,YACkB,IAAuC,EAC/C,WAAmB,EACnB,UAAqB,EACb,gBAAqC,EAAE;QAHvC,SAAI,GAAJ,IAAI,CAAmC;QAC/C,gBAAW,GAAX,WAAW,CAAQ;QACnB,eAAU,GAAV,UAAU,CAAW;QACb,kBAAa,GAAb,aAAa,CAA0B;IACtD,CAAC;IAEJ,QAAQ;QACP,OAAO,IAAI,WAAW,CAAe,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAC7F,CAAC;IAED,OAAO,CAAoC,OAAU;QACpD,MAAM,IAAI,8BAAqB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,kCAAkC,CAAC,CAAC;IACvF,CAAC;IAED,KAAK,CAAC,SAA0B,EAAE,IAAY;QAC7C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAC9F,CAAC;IAED,IAAI,CACH,WAAwC,EACxC,IAAY;QAEZ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAExC,CAAC;IAClB,CAAC;CACD;AAED,MAAM,SAAS,GAAoC;IAClD,KAAK,EAAE,MAAM;IACb,GAAG,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAC9E,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;CAClF,CAAC;AAEF,SAAgB,gBAAgB,CAC/B,WAAmB,EACnB,gBAAqC,EAAE;IAEvC,OAAO,IAAI,WAAW,CAAc,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;AACnF,CAAC;AAED,MAAM,YAAY,GAAuC;IACxD,KAAK,EAAE,SAAS;IAChB,GAAG,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACjF,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC;CACrF,CAAC;AAEF,SAAgB,mBAAmB,CAClC,WAAmB,EACnB,gBAAqC,EAAE;IAEvC,OAAO,IAAI,WAAW,CAAiB,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;AACzF,CAAC;AAcD;;;GAGG;AACH,MAAM,aAAa;IAEA;IACR;IACA;IACQ;IACR;IACQ;IANlB,YACkB,IAA8C,EACtD,WAAmB,EACnB,UAAqB,EACb,MAAqB,EAC7B,YAAmC,EAC3B,gBAAqC,EAAE;QALvC,SAAI,GAAJ,IAAI,CAA0C;QACtD,gBAAW,GAAX,WAAW,CAAQ;QACnB,eAAU,GAAV,UAAU,CAAW;QACb,WAAM,GAAN,MAAM,CAAe;QAC7B,iBAAY,GAAZ,YAAY,CAAuB;QAC3B,kBAAa,GAAb,aAAa,CAA0B;IACtD,CAAC;IAEJ,QAAQ;QACP,OAAO,IAAI,aAAa,CACvB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,WAAW,EAChB,IAAI,EACJ,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,aAAa,CAClB,CAAC;IACH,CAAC;IAED,OAAO,CAAoC,OAAU;QACpD,MAAM,IAAI,8BAAqB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,kCAAkC,CAAC,CAAC;IACvF,CAAC;IAED,gBAAgB,CAAC,QAA8B;QAC9C,OAAO,IAAI,aAAa,CACvB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,MAAM,EACX,QAAQ,EACR,IAAI,CAAC,aAAa,CAClB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAA0B,EAAE,IAAY;QAC7C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE;YACnC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACvD,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gBACnC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACrC,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gBACnC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACrC,CAAC;YACD,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBACrC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,CACH,WAAwC,EACxC,IAAY;QAEZ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAExC,CAAC;IAClB,CAAC;CACD;AAED,MAAM,YAAY,GAA6C;IAC9D,KAAK,EAAE,SAAS;IAChB,GAAG,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACjF,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC;CACrF,CAAC;AAEF,SAAgB,mBAAmB,CAClC,WAAmB,EACnB,SAAwB,EAAE,EAC1B,gBAAqC,EAAE;IAEvC,OAAO,IAAI,aAAa,CACvB,YAAY,EACZ,WAAW,EACX,KAAK,EACL,MAAM,EACN,SAAS,EACT,aAAa,CACb,CAAC;AACH,CAAC;AAED,MAAM,WAAW,GAA6C;IAC7D,KAAK,EAAE,QAAQ;IACf,GAAG,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,eAAe,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAChF,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC;CACpF,CAAC;AAEF,SAAgB,kBAAkB,CACjC,WAAmB,EACnB,SAAwB,EAAE,EAC1B,gBAAqC,EAAE;IAEvC,OAAO,IAAI,aAAa,CACvB,WAAW,EACX,WAAW,EACX,KAAK,EACL,MAAM,EACN,SAAS,EACT,aAAa,CACb,CAAC;AACH,CAAC;AAED,oFAAoF;AACpF,SAAS,QAAQ,CAChB,KAAa,EACb,KAA8B;IAE9B,OAAO;QACN,KAAK;QACL,GAAG,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,eAAe,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAChF,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YACrC,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC1D,OAAO,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzC,CAAC;KACD,CAAC;AACH,CAAC;AAED,MAAM,wBAAwB,GAC7B,wEAAwE,CAAC;AAE1E,MAAM,cAAc,GAAG,QAAQ,CAAO,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE;IACrD,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,8BAAqB,CAAC,wBAAwB,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC;AAEH,SAAgB,oBAAoB,CACnC,WAAmB,EACnB,gBAAqC,EAAE;IAEvC,OAAO,IAAI,WAAW,CAAc,cAAc,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;AACxF,CAAC;AAED,MAAM,0BAA0B,GAC/B,wFAAwF,CAAC;AAC1F,MAAM,yBAAyB,GAAG,4DAA4D,CAAC;AAC/F,MAAM,iBAAiB,GAAG,qBAAqB,CAAC;AAEhD;;;;;;GAMG;AACH,MAAM,eAAe,GAAG,QAAQ,CAAS,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE;IAC9D,IAAI,CAAC,IAAA,2BAAgB,EAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,8BAAqB,CAAC,0BAA0B,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC,CAAC;AAEH;;;;GAIG;AACH,SAAgB,qBAAqB,CACpC,WAAmB,EACnB,gBAAqC,EAAE;IAEvC,OAAO,IAAI,WAAW,CAAgB,eAAe,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;AAC3F,CAAC;AAED,8EAA8E;AAC9E,MAAM,SAAS,GAAG,QAAQ,CAAO,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE;IAChD,wEAAwE;IACxE,+DAA+D;IAC/D,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAA,2BAAgB,EAAC,GAAG,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,8BAAqB,CAAC,yBAAyB,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC;AAEH;;;;;GAKG;AACH,SAAgB,gBAAgB,CAC/B,WAAmB,EACnB,gBAAqC,EAAE;IAEvC,OAAO,IAAI,WAAW,CAAc,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;AACnF,CAAC;AAqBD,SAAS,WAAW,CACnB,YAA0C;IAE1C,OAAO;QACN,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,CAC7B,SAAS,CAAC,gBAAgB,CAAC,CAAC,MAAM,EAAE,EAAE;YACrC,SAAS,CAAC,MAAM,CAAC,CAAC;YAClB,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAChC,MAAM,CAAC,eAAe,CAAC,GAAG,YAAY,CAAC,CAAC;YACzC,CAAC;YACD,OAAO,MAAM,CAAC;QACf,CAAC,CAAC;QACH,6EAA6E;QAC7E,6EAA6E;QAC7E,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CACrC,WAAW,CAAC,OAAO,CAAC,UAAU,CAC7B,IAAI,EACJ,QAAQ,EACR,YAAY,CACwB;KACtC,CAAC;AACH,CAAC;AAED,SAAgB,mBAAmB,CAClC,WAAmB,EACnB,YAA+B,EAC/B,gBAAqC,EAAE;IAEvC,OAAO,IAAI,WAAW,CACrB,WAAW,CAAC,YAAY,CAAC,EACzB,WAAW,EACX,KAAK,EACL,aAAa,CACb,CAAC;AACH,CAAC;AAED,MAAM,SAAS,GAAoC;IAClD,KAAK,EAAE,MAAM;IACb,GAAG,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAC9E,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAgB;CACjG,CAAC;AAEF,SAAgB,gBAAgB,CAC/B,WAAmB,EACnB,gBAAqC,EAAE;IAEvC,OAAO,IAAI,WAAW,CAAc,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;AACnF,CAAC;AAED,MAAM,gBAAgB,GAA2C;IAChE,KAAK,EAAE,aAAa;IACpB,GAAG,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,oBAAoB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACrF,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CACrC,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAuB;CACzE,CAAC;AAEF,SAAgB,uBAAuB,CACtC,WAAmB,EACnB,gBAAqC,EAAE;IAEvC,OAAO,IAAI,WAAW,CAAqB,gBAAgB,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;AACjG,CAAC;AAED,MAAM,eAAe,GAA0C;IAC9D,KAAK,EAAE,YAAY;IACnB,GAAG,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,mBAAmB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACpF,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC;CACxF,CAAC;AAEF,SAAgB,sBAAsB,CACrC,WAAmB,EACnB,gBAAqC,EAAE;IAEvC,OAAO,IAAI,WAAW,CAAoB,eAAe,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;AAC/F,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { type CommandInteraction, type MessageComponentInteraction, type ModalSubmitInteraction } from "discord.js";
2
+ import type { Guard } from "../../discord/command/guard";
3
+ import { type ReplyLocaleDeps } from "../../discord/interaction/reply-locale";
4
+ import type { Presenter } from "../../discord/presenter";
5
+ /**
6
+ * Run a command's or a component's guard, if it has one. The guard gets the
7
+ * reply dependencies, to word its denial in the reply language. On a denial,
8
+ * answer with the guard's own message (ephemeral) and return `false`, so the
9
+ * handler never runs.
10
+ */
11
+ export declare function passesGuard<I extends CommandInteraction | MessageComponentInteraction | ModalSubmitInteraction>(interaction: I, guard: Guard<I> | undefined, runtime: ReplyLocaleDeps & {
12
+ readonly presenter: Presenter;
13
+ }): Promise<boolean>;
14
+ //# sourceMappingURL=passes-guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passes-guard.d.ts","sourceRoot":"","sources":["../../../src/discord/command/passes-guard.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,kBAAkB,EACvB,KAAK,2BAA2B,EAEhC,KAAK,sBAAsB,EAC3B,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,KAAK,eAAe,EAAe,MAAM,oCAAoC,CAAC;AACvF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;;;GAKG;AACH,wBAAsB,WAAW,CAChC,CAAC,SAAS,kBAAkB,GAAG,2BAA2B,GAAG,sBAAsB,EAEnF,WAAW,EAAE,CAAC,EACd,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,EAC3B,OAAO,EAAE,eAAe,GAAG;IAAE,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;CAAE,GAC1D,OAAO,CAAC,OAAO,CAAC,CAclB"}