dfx 0.110.1 → 0.111.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 (39) hide show
  1. package/DiscordGateway/Shard.d.ts +1 -1
  2. package/DiscordGateway/Sharder.d.ts +1 -1
  3. package/Helpers/interactions.d.ts +4 -0
  4. package/Helpers/interactions.d.ts.map +1 -1
  5. package/Helpers/interactions.js +13 -2
  6. package/Helpers/interactions.js.map +1 -1
  7. package/Interactions/commandHelper.d.ts +99 -0
  8. package/Interactions/commandHelper.d.ts.map +1 -0
  9. package/Interactions/commandHelper.js +54 -0
  10. package/Interactions/commandHelper.js.map +1 -0
  11. package/Interactions/context.d.ts +4 -18
  12. package/Interactions/context.d.ts.map +1 -1
  13. package/Interactions/context.js +1 -19
  14. package/Interactions/context.js.map +1 -1
  15. package/Interactions/definitions.d.ts +2 -79
  16. package/Interactions/definitions.d.ts.map +1 -1
  17. package/Interactions/definitions.js.map +1 -1
  18. package/Interactions/utils.d.ts.map +1 -1
  19. package/Interactions/utils.js +2 -9
  20. package/Interactions/utils.js.map +1 -1
  21. package/mjs/Helpers/interactions.mjs +10 -0
  22. package/mjs/Helpers/interactions.mjs.map +1 -1
  23. package/mjs/Interactions/commandHelper.mjs +45 -0
  24. package/mjs/Interactions/commandHelper.mjs.map +1 -0
  25. package/mjs/Interactions/context.mjs +0 -14
  26. package/mjs/Interactions/context.mjs.map +1 -1
  27. package/mjs/Interactions/definitions.mjs.map +1 -1
  28. package/mjs/Interactions/utils.mjs +2 -9
  29. package/mjs/Interactions/utils.mjs.map +1 -1
  30. package/mjs/version.mjs +1 -1
  31. package/package.json +2 -2
  32. package/src/Helpers/interactions.ts +22 -0
  33. package/src/Interactions/commandHelper.ts +236 -0
  34. package/src/Interactions/context.ts +3 -72
  35. package/src/Interactions/definitions.ts +1 -166
  36. package/src/Interactions/utils.ts +2 -10
  37. package/src/version.ts +1 -1
  38. package/version.d.ts +1 -1
  39. package/version.js +1 -1
@@ -6,20 +6,13 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.splitDefinitions = exports.flattenDefinitions = void 0;
7
7
  var Chunk = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Chunk"));
8
8
  var Effect = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Effect"));
9
- var Ctx = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("dfx/Interactions/context"));
10
9
  var Array = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Array"));
10
+ var _commandHelper = /*#__PURE__*/require("./commandHelper");
11
11
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
12
12
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
- const context = {
14
- resolve: Ctx.resolved,
15
- option: Ctx.option,
16
- optionValue: Ctx.optionValue,
17
- optionValueOptional: Ctx.optionValueOptional,
18
- subCommands: Ctx.handleSubCommands
19
- };
20
13
  const flattenDefinitions = (definitions, handleResponse) => Array.map(Chunk.toReadonlyArray(definitions), ([definition, transform]) => ({
21
14
  ...definition,
22
- handle: Effect.isEffect(definition.handle) ? i => Effect.scoped(transform(Effect.flatMap(definition.handle, _ => handleResponse(i, _)))) : i => Effect.scoped(transform(Effect.flatMap(definition.handle(context), _ => handleResponse(i, _))))
15
+ 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, _))))
23
16
  }));
24
17
  exports.flattenDefinitions = flattenDefinitions;
25
18
  const splitDefinitions = definitions => {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["Chunk","_interopRequireWildcard","require","Effect","Ctx","Array","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","context","resolve","resolved","option","optionValue","optionValueOptional","subCommands","handleSubCommands","flattenDefinitions","definitions","handleResponse","map","toReadonlyArray","definition","transform","handle","isEffect","scoped","flatMap","_","exports","splitDefinitions","grouped","reduce","Autocomplete","GlobalApplicationCommand","GuildApplicationCommand","MessageComponent","ModalSubmit","Commands","acc","d","_tag","push","command","name"],"sources":["../src/Interactions/utils.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"utils.js","names":["Chunk","_interopRequireWildcard","require","Effect","Array","_commandHelper","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","flattenDefinitions","definitions","handleResponse","map","toReadonlyArray","definition","transform","handle","isEffect","scoped","flatMap","_","CommandHelper","exports","splitDefinitions","grouped","reduce","Autocomplete","GlobalApplicationCommand","GuildApplicationCommand","MessageComponent","ModalSubmit","Commands","acc","d","_tag","push","command","name"],"sources":["../src/Interactions/utils.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -7,6 +7,16 @@ import * as Option from "effect/Option";
7
7
  * Option find a sub-command within the interaction options.
8
8
  */
9
9
  export const allSubCommands = interaction => pipe(optionsWithNested(interaction), Arr.filter(o => o.type === Discord.ApplicationCommandOptionType.SUB_COMMAND));
10
+ /**
11
+ * Get the target for the application command data.
12
+ */
13
+ export const target = interaction => targetTypes[interaction.type](interaction);
14
+ const targetTypes = {
15
+ [Discord.ApplicationCommandType.USER]: data => data.resolved.users[data.target_id],
16
+ [Discord.ApplicationCommandType.MESSAGE]: data => data.resolved.messages[data.target_id],
17
+ [Discord.ApplicationCommandType.CHAT_INPUT]: data => data,
18
+ [Discord.ApplicationCommandType.PRIMARY_ENTRY_POINT]: data => data
19
+ };
10
20
  /**
11
21
  * Option find a sub-command within the interaction options.
12
22
  */
@@ -1 +1 @@
1
- {"version":3,"file":"interactions.mjs","names":["Discord","Arr","identity","pipe","HashMap","Option","allSubCommands","interaction","optionsWithNested","filter","o","type","ApplicationCommandOptionType","SUB_COMMAND","findSubCommand","name","findFirst","isSubCommand","_","isSome","subCommandOptions","flatMapNullable","options","data","optsFromOption","opt","fromNullable","map","opts","flatMap","match","onNone","onSome","getOrElse","transformOptions","reduce","option","set","value","empty","optionsMap","getOption","focusedOption","focused","optionValue","resolved","a","resolveOptionValue","f","Do","bind","id","r","resolveValues","values","getSomes","extractComponents","c","components","componentsWithValue","undefined","transformComponents","custom_id","componentsMap","getComponent","componentValue","response"],"sources":["../../src/Helpers/interactions.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"interactions.mjs","names":["Discord","Arr","identity","pipe","HashMap","Option","allSubCommands","interaction","optionsWithNested","filter","o","type","ApplicationCommandOptionType","SUB_COMMAND","target","targetTypes","ApplicationCommandType","USER","data","resolved","users","target_id","MESSAGE","messages","CHAT_INPUT","PRIMARY_ENTRY_POINT","findSubCommand","name","findFirst","isSubCommand","_","isSome","subCommandOptions","flatMapNullable","options","optsFromOption","opt","fromNullable","map","opts","flatMap","match","onNone","onSome","getOrElse","transformOptions","reduce","option","set","value","empty","optionsMap","getOption","focusedOption","focused","optionValue","a","resolveOptionValue","f","Do","bind","id","r","resolveValues","values","getSomes","extractComponents","c","components","componentsWithValue","undefined","transformComponents","custom_id","componentsMap","getComponent","componentValue","response"],"sources":["../../src/Helpers/interactions.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,45 @@
1
+ import * as Option from "effect/Option";
2
+ import * as Effect from "effect/Effect";
3
+ import { SubCommandContext, SubCommandNotFound } from "dfx/Interactions/context";
4
+ import * as Helpers from "dfx/Helpers/interactions";
5
+ import * as Arr from "effect/Array";
6
+ export class CommandHelper {
7
+ interaction;
8
+ constructor(interaction) {
9
+ this.interaction = interaction;
10
+ this.target = Helpers.target(interaction.data);
11
+ this.data = interaction.data;
12
+ }
13
+ data;
14
+ target;
15
+ resolve(name, f) {
16
+ return Helpers.resolveOptionValue(name, f)(this.interaction);
17
+ }
18
+ resolvedValues(f) {
19
+ return Helpers.resolveValues(f)(this.interaction);
20
+ }
21
+ option(name) {
22
+ return Helpers.getOption(name)(this.data);
23
+ }
24
+ optionValue(name) {
25
+ return Option.getOrThrow(this.optionValueOptional(name));
26
+ }
27
+ optionValueOptional(name) {
28
+ return Option.map(this.option(name), _ => _.value);
29
+ }
30
+ optionValueOrElse(name, orElse) {
31
+ return Option.getOrElse(this.option(name), orElse);
32
+ }
33
+ subCommands(commands) {
34
+ const commands_ = commands;
35
+ return Effect.mapError(Arr.findFirst(Helpers.allSubCommands(this.data), _ => !!commands_[_.name]), () => new SubCommandNotFound({
36
+ data: this.data
37
+ })).pipe(Effect.flatMap(command => Effect.provideService(commands_[command.name], SubCommandContext, {
38
+ command
39
+ })));
40
+ }
41
+ get optionsMap() {
42
+ return Helpers.optionsMap(this.data);
43
+ }
44
+ }
45
+ //# sourceMappingURL=commandHelper.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commandHelper.mjs","names":["Option","Effect","SubCommandContext","SubCommandNotFound","Helpers","Arr","CommandHelper","interaction","constructor","target","data","resolve","name","f","resolveOptionValue","resolvedValues","resolveValues","option","getOption","optionValue","getOrThrow","optionValueOptional","map","_","value","optionValueOrElse","orElse","getOrElse","subCommands","commands","commands_","mapError","findFirst","allSubCommands","pipe","flatMap","command","provideService","optionsMap"],"sources":["../../src/Interactions/commandHelper.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,SACEC,iBAAiB,EACjBC,kBAAkB,QAGb,0BAA0B;AAEjC,OAAO,KAAKC,OAAO,MAAM,0BAA0B;AACnD,OAAO,KAAKC,GAAG,MAAM,cAAc;AAGnC,OAAM,MAAOC,aAAa;EACHC,WAAA;EAArBC,YAAqBD,WAAgC;IAAhC,KAAAA,WAAW,GAAXA,WAAW;IAC9B,IAAI,CAACE,MAAM,GAAGL,OAAO,CAACK,MAAM,CAACF,WAAW,CAACG,IAAW,CAAQ;IAC5D,IAAI,CAACA,IAAI,GAAGH,WAAW,CAACG,IAAW;EACrC;EACSA,IAAI;EACJD,MAAM;EAWfE,OAAOA,CACLC,IAA+B,EAC/BC,CAAwE;IAExE,OAAOT,OAAO,CAACU,kBAAkB,CAACF,IAAI,EAAEC,CAAC,CAAC,CAAC,IAAI,CAACN,WAAW,CAAC;EAC9D;EAEAQ,cAAcA,CACZF,CAAwE;IAExE,OAAOT,OAAO,CAACY,aAAa,CAACH,CAAC,CAAC,CAAC,IAAI,CAACN,WAAW,CAAC;EACnD;EAEAU,MAAMA,CACJL,IAAkC;IAElC,OAAOR,OAAO,CAACc,SAAS,CAACN,IAAI,CAAC,CAAC,IAAI,CAACF,IAAI,CAAC;EAC3C;EAEAS,WAAWA,CACTP,IAAO;IAEP,OAAOZ,MAAM,CAACoB,UAAU,CAAC,IAAI,CAACC,mBAAmB,CAACT,IAAI,CAAC,CAAC;EAC1D;EAEAS,mBAAmBA,CACjBT,IAAO;IAEP,OAAOZ,MAAM,CAACsB,GAAG,CAAC,IAAI,CAACL,MAAM,CAACL,IAAI,CAAC,EAAEW,CAAC,IAAIA,CAAC,CAACC,KAAK,CAAQ;EAC3D;EAEAC,iBAAiBA,CACfb,IAAO,EACPc,MAAoB;IAEpB,OAAO1B,MAAM,CAAC2B,SAAS,CAAC,IAAI,CAACV,MAAM,CAACL,IAAI,CAAC,EAAEc,MAAM,CAAQ;EAC3D;EAEAE,WAAWA,CAQTC,QAAa;IAmBb,MAAMC,SAAS,GAAGD,QAA+B;IACjD,OAAO5B,MAAM,CAAC8B,QAAQ,CACpB1B,GAAG,CAAC2B,SAAS,CACX5B,OAAO,CAAC6B,cAAc,CAAC,IAAI,CAACvB,IAAI,CAAC,EACjCa,CAAC,IAAI,CAAC,CAACO,SAAS,CAACP,CAAC,CAACX,IAAI,CAAC,CACzB,EACD,MAAM,IAAIT,kBAAkB,CAAC;MAAEO,IAAI,EAAE,IAAI,CAACA;IAAI,CAAE,CAAC,CAClD,CAACwB,IAAI,CACJjC,MAAM,CAACkC,OAAO,CAACC,OAAO,IACpBnC,MAAM,CAACoC,cAAc,CAACP,SAAS,CAACM,OAAO,CAACxB,IAAI,CAAC,EAAEV,iBAAiB,EAAE;MAChEkC;KACD,CAAC,CACH,CACK;EACV;EAEA,IAAIE,UAAUA,CAAA;IACZ,OAAOlC,OAAO,CAACkC,UAAU,CAAC,IAAI,CAAC5B,IAAI,CAAC;EACtC","ignoreList":[]}
@@ -3,8 +3,6 @@ import * as IxHelpers from "dfx/Helpers/interactions";
3
3
  import { InteractionsErrorTypeId } from "dfx/Interactions/error";
4
4
  import { GenericTag } from "effect/Context";
5
5
  import * as Effect from "effect/Effect";
6
- import * as Option from "effect/Option";
7
- import * as Arr from "effect/Array";
8
6
  export const Interaction = /*#__PURE__*/GenericTag("dfx/Interactions/Interaction");
9
7
  export const ApplicationCommand = /*#__PURE__*/GenericTag("dfx/Interactions/ApplicationCommand");
10
8
  export const MessageComponentData = /*#__PURE__*/GenericTag("dfx/Interactions/MessageComponentData");
@@ -15,13 +13,7 @@ export const resolvedValues = f => Effect.flatMap(Interaction, ix => IxHelpers.r
15
13
  export const resolved = (name, f) => Effect.flatMap(Interaction, ix => IxHelpers.resolveOptionValue(name, f)(ix));
16
14
  export const focusedOptionValue = /*#__PURE__*/Effect.map(FocusedOptionContext, _ => _.value ?? "");
17
15
  export class SubCommandNotFound extends /*#__PURE__*/TypeIdError(InteractionsErrorTypeId, "SubCommandNotFound") {}
18
- export const handleSubCommands = commands => ApplicationCommand.pipe(Effect.flatMap(data => Effect.mapError(Arr.findFirst(IxHelpers.allSubCommands(data), _ => !!commands[_.name]), () => new SubCommandNotFound({
19
- data
20
- }))), Effect.flatMap(command => Effect.provideService(commands[command.name], SubCommandContext, {
21
- command
22
- })));
23
16
  export const currentSubCommand = /*#__PURE__*/Effect.map(SubCommandContext, _ => _.command);
24
- export const optionsMap = /*#__PURE__*/Effect.map(ApplicationCommand, IxHelpers.optionsMap);
25
17
  export class RequiredOptionNotFound {
26
18
  data;
27
19
  name;
@@ -31,12 +23,6 @@ export class RequiredOptionNotFound {
31
23
  this.name = name;
32
24
  }
33
25
  }
34
- export const option = name => Effect.map(ApplicationCommand, IxHelpers.getOption(name));
35
- export const optionValue = name => Effect.flatMap(option(name), _ => Option.match(Option.flatMapNullable(_, a => a.value), {
36
- onNone: () => Effect.flatMap(ApplicationCommand, data => Effect.fail(new RequiredOptionNotFound(data, name))),
37
- onSome: Effect.succeed
38
- }));
39
- export const optionValueOptional = name => Effect.map(option(name), Option.flatMapNullable(o => o.value));
40
26
  export const modalValues = /*#__PURE__*/Effect.map(ModalSubmitData, IxHelpers.componentsMap);
41
27
  export const modalValueOption = name => Effect.map(ModalSubmitData, IxHelpers.componentValue(name));
42
28
  export const modalValue = name => Effect.flatMap(ModalSubmitData, data => IxHelpers.componentValue(name)(data));
@@ -1 +1 @@
1
- {"version":3,"file":"context.mjs","names":["TypeIdError","IxHelpers","InteractionsErrorTypeId","GenericTag","Effect","Option","Arr","Interaction","ApplicationCommand","MessageComponentData","ModalSubmitData","FocusedOptionContext","SubCommandContext","resolvedValues","f","flatMap","ix","resolveValues","resolved","name","resolveOptionValue","focusedOptionValue","map","_","value","SubCommandNotFound","handleSubCommands","commands","pipe","data","mapError","findFirst","allSubCommands","command","provideService","currentSubCommand","optionsMap","RequiredOptionNotFound","_tag","constructor","option","getOption","optionValue","match","flatMapNullable","a","onNone","fail","onSome","succeed","optionValueOptional","o","modalValues","componentsMap","modalValueOption","componentValue","modalValue"],"sources":["../../src/Interactions/context.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"context.mjs","names":["TypeIdError","IxHelpers","InteractionsErrorTypeId","GenericTag","Effect","Interaction","ApplicationCommand","MessageComponentData","ModalSubmitData","FocusedOptionContext","SubCommandContext","resolvedValues","f","flatMap","ix","resolveValues","resolved","name","resolveOptionValue","focusedOptionValue","map","_","value","SubCommandNotFound","currentSubCommand","command","RequiredOptionNotFound","data","_tag","constructor","modalValues","componentsMap","modalValueOption","componentValue","modalValue"],"sources":["../../src/Interactions/context.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAW,QAAQ,wBAAwB;AACpD,OAAO,KAAKC,SAAS,MAAM,0BAA0B;AACrD,SAASC,uBAAuB,QAAQ,wBAAwB;AAGhE,SAASC,UAAU,QAAQ,gBAAgB;AAC3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AAQvC,OAAO,MAAMC,WAAW,gBAAGF,UAAU,CACnC,8BAA8B,CAC/B;AAKD,OAAO,MAAMG,kBAAkB,gBAAGH,UAAU,CAG1C,qCAAqC,CAAC;AAKxC,OAAO,MAAMI,oBAAoB,gBAAGJ,UAAU,CAG5C,uCAAuC,CAAC;AAK1C,OAAO,MAAMK,eAAe,gBAAGL,UAAU,CAGvC,kCAAkC,CAAC;AAKrC,OAAO,MAAMM,oBAAoB,gBAAGN,UAAU,CAG5C,uCAAuC,CAAC;AAQ1C,OAAO,MAAMO,iBAAiB,gBAAGP,UAAU,CAGzC,oCAAoC,CAAC;AAEvC,OAAO,MAAMQ,cAAc,GACzBC,CAAwE,IAKrER,MAAM,CAACS,OAAO,CAACR,WAAW,EAAES,EAAE,IAAIb,SAAS,CAACc,aAAa,CAACH,CAAC,CAAC,CAACE,EAAE,CAAC,CAAC;AAEtE,OAAO,MAAME,QAAQ,GAAGA,CACtBC,IAAY,EACZL,CAAwE,KAExER,MAAM,CAACS,OAAO,CAACR,WAAW,EAAES,EAAE,IAAIb,SAAS,CAACiB,kBAAkB,CAACD,IAAI,EAAEL,CAAC,CAAC,CAACE,EAAE,CAAC,CAAC;AAE9E,OAAO,MAAMK,kBAAkB,gBAAGf,MAAM,CAACgB,GAAG,CAC1CX,oBAAoB,EACpBY,CAAC,IAAIA,CAAC,CAACC,KAAK,IAAI,EAAE,CACnB;AAED,OAAM,MAAOC,kBAAmB,sBAAQvB,WAAW,CACjDE,uBAAuB,EACvB,oBAAoB,CAGpB;AAEF,OAAO,MAAMsB,iBAAiB,gBAI1BpB,MAAM,CAACgB,GAAG,CAACV,iBAAiB,EAAEW,CAAC,IAAIA,CAAC,CAACI,OAAO,CAAC;AAEjD,OAAM,MAAOC,sBAAsB;EAGtBC,IAAA;EAGAV,IAAA;EALFW,IAAI,GAAG,wBAAwB;EACxCC,YACWF,IAE0C,EAC1CV,IAAY;IAHZ,KAAAU,IAAI,GAAJA,IAAI;IAGJ,KAAAV,IAAI,GAAJA,IAAI;EACZ;;AAGL,OAAO,MAAMa,WAAW,gBAAG1B,MAAM,CAACgB,GAAG,CAACZ,eAAe,EAAEP,SAAS,CAAC8B,aAAa,CAAC;AAE/E,OAAO,MAAMC,gBAAgB,GAAIf,IAAY,IAC3Cb,MAAM,CAACgB,GAAG,CAACZ,eAAe,EAAEP,SAAS,CAACgC,cAAc,CAAChB,IAAI,CAAC,CAAC;AAE7D,OAAO,MAAMiB,UAAU,GACrBjB,IAAY,IAEZb,MAAM,CAACS,OAAO,CAACL,eAAe,EAAEmB,IAAI,IAAI1B,SAAS,CAACgC,cAAc,CAAChB,IAAI,CAAC,CAACU,IAAI,CAAC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.mjs","names":["GlobalApplicationCommand","command","handle","_tag","constructor","global","GuildApplicationCommand","guild","MessageComponent","predicate","messageComponent","pred","ModalSubmit","modalSubmit","Autocomplete","autocomplete"],"sources":["../../src/Interactions/definitions.ts"],"sourcesContent":[null],"mappings":"AAqBA,OAAM,MAAOA,wBAAwB;EAGxBC,OAAA;EACAC,MAAA;EAHFC,IAAI,GAAG,0BAA0B;EAC1CC,YACWH,OAAqD,EACrDC,MAA4B;IAD5B,KAAAD,OAAO,GAAPA,OAAO;IACP,KAAAC,MAAM,GAANA,MAAM;EACd;;AAGL,OAAO,MAAMG,MAAM,GAAGA,CAKpBJ,OAAU,EACVC,MAA+B,KAE/B,IAAIF,wBAAwB,CAG1BC,OAAc,EAAEC,MAAa,CAAC;AAElC,OAAM,MAAOI,uBAAuB;EAGvBL,OAAA;EACAC,MAAA;EAHFC,IAAI,GAAG,yBAAyB;EACzCC,YACWH,OAAoD,EACpDC,MAA4B;IAD5B,KAAAD,OAAO,GAAPA,OAAO;IACP,KAAAC,MAAM,GAANA,MAAM;EACd;;AAGL,OAAO,MAAMK,KAAK,GAAGA,CAKnBN,OAAU,EACVC,MAA+B,KAE/B,IAAII,uBAAuB,CAGzBL,OAAc,EAAEC,MAAa,CAAC;AAElC,OAAM,MAAOM,gBAAgB;EAGhBC,SAAA;EACAP,MAAA;EAHFC,IAAI,GAAG,kBAAkB;EAClCC,YACWK,SAAwC,EACxCP,MAAwD;IADxD,KAAAO,SAAS,GAATA,SAAS;IACT,KAAAP,MAAM,GAANA,MAAM;EACd;;AAGL,OAAO,MAAMQ,gBAAgB,GAAGA,CAC9BC,IAAmC,EACnCT,MAAyD,KAEzD,IAAIM,gBAAgB,CAGlBG,IAAI,EAAET,MAAa,CAAC;AAExB,OAAM,MAAOU,WAAW;EAGXH,SAAA;EACAP,MAAA;EAHFC,IAAI,GAAG,aAAa;EAC7BC,YACWK,SAAwC,EACxCP,MAAwD;IADxD,KAAAO,SAAS,GAATA,SAAS;IACT,KAAAP,MAAM,GAANA,MAAM;EACd;;AAGL,OAAO,MAAMW,WAAW,GAAGA,CACzBF,IAAmC,EACnCT,MAAwD,KAExD,IAAIU,WAAW,CAGbD,IAAI,EAAET,MAAa,CAAC;AAExB,OAAM,MAAOY,YAAY;EAGZL,SAAA;EAIAP,MAAA;EANFC,IAAI,GAAG,cAAc;EAC9BC,YACWK,SAGG,EACHP,MAAwD;IAJxD,KAAAO,SAAS,GAATA,SAAS;IAIT,KAAAP,MAAM,GAANA,MAAM;EACd;;AAGL,OAAO,MAAMa,YAAY,GAAGA,CAC1BJ,IAGY,EACZT,MAAwD,KAExD,IAAIY,YAAY,CASdH,IAAI,EAAET,MAAa,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"definitions.mjs","names":["GlobalApplicationCommand","command","handle","_tag","constructor","global","GuildApplicationCommand","guild","MessageComponent","predicate","messageComponent","pred","ModalSubmit","modalSubmit","Autocomplete","autocomplete"],"sources":["../../src/Interactions/definitions.ts"],"sourcesContent":[null],"mappings":"AAmBA,OAAM,MAAOA,wBAAwB;EAGxBC,OAAA;EACAC,MAAA;EAHFC,IAAI,GAAG,0BAA0B;EAC1CC,YACWH,OAAqD,EACrDC,MAA4B;IAD5B,KAAAD,OAAO,GAAPA,OAAO;IACP,KAAAC,MAAM,GAANA,MAAM;EACd;;AAGL,OAAO,MAAMG,MAAM,GAAGA,CAKpBJ,OAAU,EACVC,MAA+B,KAE/B,IAAIF,wBAAwB,CAG1BC,OAAc,EAAEC,MAAa,CAAC;AAElC,OAAM,MAAOI,uBAAuB;EAGvBL,OAAA;EACAC,MAAA;EAHFC,IAAI,GAAG,yBAAyB;EACzCC,YACWH,OAAoD,EACpDC,MAA4B;IAD5B,KAAAD,OAAO,GAAPA,OAAO;IACP,KAAAC,MAAM,GAANA,MAAM;EACd;;AAGL,OAAO,MAAMK,KAAK,GAAGA,CAKnBN,OAAU,EACVC,MAA+B,KAE/B,IAAII,uBAAuB,CAGzBL,OAAc,EAAEC,MAAa,CAAC;AAElC,OAAM,MAAOM,gBAAgB;EAGhBC,SAAA;EACAP,MAAA;EAHFC,IAAI,GAAG,kBAAkB;EAClCC,YACWK,SAAwC,EACxCP,MAAwD;IADxD,KAAAO,SAAS,GAATA,SAAS;IACT,KAAAP,MAAM,GAANA,MAAM;EACd;;AAGL,OAAO,MAAMQ,gBAAgB,GAAGA,CAC9BC,IAAmC,EACnCT,MAAyD,KAEzD,IAAIM,gBAAgB,CAGlBG,IAAI,EAAET,MAAa,CAAC;AAExB,OAAM,MAAOU,WAAW;EAGXH,SAAA;EACAP,MAAA;EAHFC,IAAI,GAAG,aAAa;EAC7BC,YACWK,SAAwC,EACxCP,MAAwD;IADxD,KAAAO,SAAS,GAATA,SAAS;IACT,KAAAP,MAAM,GAANA,MAAM;EACd;;AAGL,OAAO,MAAMW,WAAW,GAAGA,CACzBF,IAAmC,EACnCT,MAAwD,KAExD,IAAIU,WAAW,CAGbD,IAAI,EAAET,MAAa,CAAC;AAExB,OAAM,MAAOY,YAAY;EAGZL,SAAA;EAIAP,MAAA;EANFC,IAAI,GAAG,cAAc;EAC9BC,YACWK,SAGG,EACHP,MAAwD;IAJxD,KAAAO,SAAS,GAATA,SAAS;IAIT,KAAAP,MAAM,GAANA,MAAM;EACd;;AAGL,OAAO,MAAMa,YAAY,GAAGA,CAC1BJ,IAGY,EACZT,MAAwD,KAExD,IAAIY,YAAY,CASdH,IAAI,EAAET,MAAa,CAAC","ignoreList":[]}
@@ -1,17 +1,10 @@
1
1
  import * as Chunk from "effect/Chunk";
2
2
  import * as Effect from "effect/Effect";
3
- import * as Ctx from "dfx/Interactions/context";
4
3
  import * as Array from "effect/Array";
5
- const context = {
6
- resolve: Ctx.resolved,
7
- option: Ctx.option,
8
- optionValue: Ctx.optionValue,
9
- optionValueOptional: Ctx.optionValueOptional,
10
- subCommands: Ctx.handleSubCommands
11
- };
4
+ import { CommandHelper } from "./commandHelper";
12
5
  export const flattenDefinitions = (definitions, handleResponse) => Array.map(Chunk.toReadonlyArray(definitions), ([definition, transform]) => ({
13
6
  ...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(context), _ => handleResponse(i, _))))
7
+ 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(i)), _ => handleResponse(i, _))))
15
8
  }));
16
9
  export const splitDefinitions = definitions => {
17
10
  const grouped = Array.reduce(definitions, {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.mjs","names":["Chunk","Effect","Ctx","Array","context","resolve","resolved","option","optionValue","optionValueOptional","subCommands","handleSubCommands","flattenDefinitions","definitions","handleResponse","map","toReadonlyArray","definition","transform","handle","isEffect","i","scoped","flatMap","_","splitDefinitions","grouped","reduce","Autocomplete","GlobalApplicationCommand","GuildApplicationCommand","MessageComponent","ModalSubmit","Commands","acc","d","_tag","push","command","name"],"sources":["../../src/Interactions/utils.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,GAAG,MAAM,0BAA0B;AAG/C,OAAO,KAAKC,KAAK,MAAM,cAAc;AAgBrC,MAAMC,OAAO,GAAyB;EACpCC,OAAO,EAAEH,GAAG,CAACI,QAAQ;EACrBC,MAAM,EAAEL,GAAG,CAACK,MAAM;EAClBC,WAAW,EAAEN,GAAG,CAACM,WAAW;EAC5BC,mBAAmB,EAAEP,GAAG,CAACO,mBAAmB;EAC5CC,WAAW,EAAER,GAAG,CAACS;CACX;AAER,OAAO,MAAMC,kBAAkB,GAAGA,CAChCC,WAKC,EACDC,cAG2B,KAE3BX,KAAK,CAACY,GAAG,CAACf,KAAK,CAACgB,eAAe,CAACH,WAAW,CAAC,EAAE,CAAC,CAACI,UAAU,EAAEC,SAAS,CAAC,MAAM;EAC1E,GAAGD,UAAU;EACbE,MAAM,EAAElB,MAAM,CAACmB,QAAQ,CAACH,UAAU,CAACE,MAAM,CAAC,GACrCE,CAAsB,IACrBpB,MAAM,CAACqB,MAAM,CACXJ,SAAS,CACPjB,MAAM,CAACsB,OAAO,CACZN,UAAU,CAACE,MAAoD,EAC/DK,CAAC,IAAIV,cAAc,CAACO,CAAC,EAAEG,CAAC,CAAC,CAC1B,CACF,CACF,GACFH,CAAsB,IACrBpB,MAAM,CAACqB,MAAM,CACXJ,SAAS,CACPjB,MAAM,CAACsB,OAAO,CAEVN,UAAU,CAACE,MAGZ,CAACf,OAAO,CAAC,EACVoB,CAAC,IAAIV,cAAc,CAACO,CAAC,EAAEG,CAAC,CAAC,CAC1B,CACF;CAEV,CAAC,CAAC;AAEL,OAAO,MAAMC,gBAAgB,GAC3BZ,WAA4D,IAC1D;EACF,MAAMa,OAAO,GAAGvB,KAAK,CAACwB,MAAM,CAC1Bd,WAAW,EACX;IACEe,YAAY,EAAE,EAAE;IAChBC,wBAAwB,EAAE,EAAE;IAC5BC,uBAAuB,EAAE,EAAE;IAC3BC,gBAAgB,EAAE,EAAE;IACpBC,WAAW,EAAE,EAAE;IACfC,QAAQ,EAAE;GAOX,EACD,CAACC,GAAG,EAAEC,CAAC,KAAI;IACTD,GAAG,CAACC,CAAC,CAACC,IAAI,CAAC,CAACC,IAAI,CAACF,CAAQ,CAAC;IAC1B,IACEA,CAAC,CAACC,IAAI,KAAK,0BAA0B,IACrCD,CAAC,CAACC,IAAI,KAAK,yBAAyB,EACpC;MACAF,GAAG,CAACD,QAAQ,CAACE,CAAC,CAACG,OAAO,CAACC,IAAI,CAAC,GAAGJ,CAAQ;IACzC;IACA,OAAOD,GAAG;EACZ,CAAC,CACF;EAED,OAAOR,OAAO;AAChB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"utils.mjs","names":["Chunk","Effect","Array","CommandHelper","flattenDefinitions","definitions","handleResponse","map","toReadonlyArray","definition","transform","handle","isEffect","i","scoped","flatMap","_","splitDefinitions","grouped","reduce","Autocomplete","GlobalApplicationCommand","GuildApplicationCommand","MessageComponent","ModalSubmit","Commands","acc","d","_tag","push","command","name"],"sources":["../../src/Interactions/utils.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AAGvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,SAASC,aAAa,QAAQ,iBAAiB;AAgB/C,OAAO,MAAMC,kBAAkB,GAAGA,CAChCC,WAKC,EACDC,cAG2B,KAE3BJ,KAAK,CAACK,GAAG,CAACP,KAAK,CAACQ,eAAe,CAACH,WAAW,CAAC,EAAE,CAAC,CAACI,UAAU,EAAEC,SAAS,CAAC,MAAM;EAC1E,GAAGD,UAAU;EACbE,MAAM,EAAEV,MAAM,CAACW,QAAQ,CAACH,UAAU,CAACE,MAAM,CAAC,GACrCE,CAAsB,IACrBZ,MAAM,CAACa,MAAM,CACXJ,SAAS,CACPT,MAAM,CAACc,OAAO,CACZN,UAAU,CAACE,MAAoD,EAC/DK,CAAC,IAAIV,cAAc,CAACO,CAAC,EAAEG,CAAC,CAAC,CAC1B,CACF,CACF,GACFH,CAAsB,IACrBZ,MAAM,CAACa,MAAM,CACXJ,SAAS,CACPT,MAAM,CAACc,OAAO,CAEVN,UAAU,CAACE,MAGZ,CAAC,IAAIR,aAAa,CAACU,CAAC,CAAC,CAAC,EACvBG,CAAC,IAAIV,cAAc,CAACO,CAAC,EAAEG,CAAC,CAAC,CAC1B,CACF;CAEV,CAAC,CAAC;AAEL,OAAO,MAAMC,gBAAgB,GAC3BZ,WAA4D,IAC1D;EACF,MAAMa,OAAO,GAAGhB,KAAK,CAACiB,MAAM,CAC1Bd,WAAW,EACX;IACEe,YAAY,EAAE,EAAE;IAChBC,wBAAwB,EAAE,EAAE;IAC5BC,uBAAuB,EAAE,EAAE;IAC3BC,gBAAgB,EAAE,EAAE;IACpBC,WAAW,EAAE,EAAE;IACfC,QAAQ,EAAE;GAOX,EACD,CAACC,GAAG,EAAEC,CAAC,KAAI;IACTD,GAAG,CAACC,CAAC,CAACC,IAAI,CAAC,CAACC,IAAI,CAACF,CAAQ,CAAC;IAC1B,IACEA,CAAC,CAACC,IAAI,KAAK,0BAA0B,IACrCD,CAAC,CAACC,IAAI,KAAK,yBAAyB,EACpC;MACAF,GAAG,CAACD,QAAQ,CAACE,CAAC,CAACG,OAAO,CAACC,IAAI,CAAC,GAAGJ,CAAQ;IACzC;IACA,OAAOD,GAAG;EACZ,CAAC,CACF;EAED,OAAOR,OAAO;AAChB,CAAC","ignoreList":[]}
package/mjs/version.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export const LIB_VERSION = "0.110.1";
1
+ export const LIB_VERSION = "0.111.0";
2
2
  //# sourceMappingURL=version.mjs.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dfx",
3
- "version": "0.110.1",
3
+ "version": "0.111.0",
4
4
  "description": "Effect-TS discord library",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -41,6 +41,6 @@
41
41
  "optionalDependencies": {
42
42
  "discord-verify": "^1.2.0"
43
43
  },
44
- "gitHead": "1d48830eefc49182982c77ec0a6db80da5c33ea2",
44
+ "gitHead": "e097ca2129cf44e65891f203a1299ed6a24cde31",
45
45
  "main": "./index.js"
46
46
  }
@@ -15,6 +15,28 @@ export const allSubCommands = (interaction: Discord.ApplicationCommandDatum) =>
15
15
  ),
16
16
  )
17
17
 
18
+ /**
19
+ * Get the target for the application command data.
20
+ */
21
+ export const target = (
22
+ interaction: Discord.ApplicationCommandDatum,
23
+ ): Discord.ApplicationCommandDatum | Discord.User | Discord.Message =>
24
+ targetTypes[interaction.type as Discord.ApplicationCommandType](interaction)
25
+
26
+ const targetTypes: Record<
27
+ Discord.ApplicationCommandType,
28
+ (
29
+ data: Discord.ApplicationCommandDatum,
30
+ ) => Discord.User | Discord.Message | Discord.ApplicationCommandDatum
31
+ > = {
32
+ [Discord.ApplicationCommandType.USER]: data =>
33
+ data.resolved!.users![data.target_id!],
34
+ [Discord.ApplicationCommandType.MESSAGE]: data =>
35
+ data.resolved!.messages![data.target_id!],
36
+ [Discord.ApplicationCommandType.CHAT_INPUT]: data => data,
37
+ [Discord.ApplicationCommandType.PRIMARY_ENTRY_POINT]: data => data,
38
+ }
39
+
18
40
  /**
19
41
  * Option find a sub-command within the interaction options.
20
42
  */
@@ -0,0 +1,236 @@
1
+ import * as Option from "effect/Option"
2
+ import * as Effect from "effect/Effect"
3
+ import {
4
+ SubCommandContext,
5
+ SubCommandNotFound,
6
+ type DiscordApplicationCommand,
7
+ type DiscordInteraction,
8
+ } from "dfx/Interactions/context"
9
+ import type * as Discord from "dfx/types"
10
+ import * as Helpers from "dfx/Helpers/interactions"
11
+ import * as Arr from "effect/Array"
12
+ import type { HashMap } from "effect/HashMap"
13
+
14
+ export class CommandHelper<A> {
15
+ constructor(readonly interaction: Discord.Interaction) {
16
+ this.target = Helpers.target(interaction.data as any) as any
17
+ this.data = interaction.data as any
18
+ }
19
+ readonly data: Discord.ApplicationCommandDatum
20
+ readonly target: CommandTypeMap<
21
+ A,
22
+ {
23
+ [Discord.ApplicationCommandType
24
+ .CHAT_INPUT]: Discord.ApplicationCommandDatum
25
+ [Discord.ApplicationCommandType.MESSAGE]: Discord.Message
26
+ [Discord.ApplicationCommandType.USER]: Discord.User
27
+ [Discord.ApplicationCommandType.PRIMARY_ENTRY_POINT]: undefined
28
+ }
29
+ >
30
+
31
+ resolve<T>(
32
+ name: AllResolvables<A>["name"],
33
+ f: (id: Discord.Snowflake, data: Discord.ResolvedDatum) => T | undefined,
34
+ ): Option.Option<T> {
35
+ return Helpers.resolveOptionValue(name, f)(this.interaction)
36
+ }
37
+
38
+ resolvedValues<T>(
39
+ f: (id: Discord.Snowflake, data: Discord.ResolvedDatum) => T | undefined,
40
+ ): Option.Option<ReadonlyArray<T>> {
41
+ return Helpers.resolveValues(f)(this.interaction)
42
+ }
43
+
44
+ option(
45
+ name: AllCommandOptions<A>["name"],
46
+ ): Option.Option<Discord.ApplicationCommandInteractionDataOption> {
47
+ return Helpers.getOption(name)(this.data)
48
+ }
49
+
50
+ optionValue<N extends AllRequiredCommandOptions<A>["name"]>(
51
+ name: N,
52
+ ): CommandValue<A, N> {
53
+ return Option.getOrThrow(this.optionValueOptional(name))
54
+ }
55
+
56
+ optionValueOptional<N extends AllCommandOptions<A>["name"]>(
57
+ name: N,
58
+ ): Option.Option<CommandValue<A, N>> {
59
+ return Option.map(this.option(name), _ => _.value) as any
60
+ }
61
+
62
+ optionValueOrElse<N extends AllCommandOptions<A>["name"], const OrElse>(
63
+ name: N,
64
+ orElse: () => OrElse,
65
+ ): Option.Option<CommandValue<A, N>> {
66
+ return Option.getOrElse(this.option(name), orElse) as any
67
+ }
68
+
69
+ subCommands<
70
+ NER extends SubCommandNames<A> extends never
71
+ ? never
72
+ : Record<
73
+ SubCommandNames<A>,
74
+ Effect.Effect<Discord.InteractionResponse, any, any>
75
+ >,
76
+ >(
77
+ commands: NER,
78
+ ): Effect.Effect<
79
+ Discord.InteractionResponse,
80
+ [NER[keyof NER]] extends [
81
+ { [Effect.EffectTypeId]: { _E: (_: never) => infer E } },
82
+ ]
83
+ ? E
84
+ : never,
85
+ | Exclude<
86
+ [NER[keyof NER]] extends [
87
+ { [Effect.EffectTypeId]: { _R: (_: never) => infer R } },
88
+ ]
89
+ ? R
90
+ : never,
91
+ SubCommandContext
92
+ >
93
+ | DiscordInteraction
94
+ | DiscordApplicationCommand
95
+ > {
96
+ const commands_ = commands as Record<string, any>
97
+ return Effect.mapError(
98
+ Arr.findFirst(
99
+ Helpers.allSubCommands(this.data),
100
+ _ => !!commands_[_.name],
101
+ ),
102
+ () => new SubCommandNotFound({ data: this.data }),
103
+ ).pipe(
104
+ Effect.flatMap(command =>
105
+ Effect.provideService(commands_[command.name], SubCommandContext, {
106
+ command,
107
+ }),
108
+ ),
109
+ ) as any
110
+ }
111
+
112
+ get optionsMap(): HashMap<string, string | undefined> {
113
+ return Helpers.optionsMap(this.data)
114
+ }
115
+ }
116
+
117
+ export type CommandHandlerFn<R, E, A> = (
118
+ i: CommandHelper<A>,
119
+ ) => Effect.Effect<Discord.InteractionResponse, E, R>
120
+
121
+ interface CommandOption {
122
+ readonly type: any
123
+ readonly name: string
124
+ readonly options?: ReadonlyArray<CommandOption>
125
+ }
126
+
127
+ type CommandTypeMap<
128
+ A,
129
+ Options extends Record<Discord.ApplicationCommandType, any>,
130
+ > = A extends { readonly type: infer T }
131
+ ? T extends keyof Options
132
+ ? Options[T]
133
+ : never
134
+ : Options[Discord.ApplicationCommandType.CHAT_INPUT]
135
+
136
+ // == Sub commands
137
+ type SubCommands<A> = A extends {
138
+ readonly type: Discord.ApplicationCommandOptionType.SUB_COMMAND
139
+ readonly options?: ReadonlyArray<CommandOption>
140
+ }
141
+ ? A
142
+ : A extends { readonly options: ReadonlyArray<CommandOption> }
143
+ ? SubCommands<A["options"][number]>
144
+ : never
145
+
146
+ type SubCommandNames<A> = Option<SubCommands<A>>["name"]
147
+
148
+ // == Command options
149
+ type CommandOptionType = Exclude<
150
+ Discord.ApplicationCommandOptionType,
151
+ | Discord.ApplicationCommandOptionType.SUB_COMMAND
152
+ | Discord.ApplicationCommandOptionType.SUB_COMMAND_GROUP
153
+ >
154
+
155
+ type CommandOptions<A> = OptionsWithLiteral<
156
+ A,
157
+ {
158
+ readonly type: CommandOptionType
159
+ }
160
+ >
161
+
162
+ type SubCommandOptions<A> = Extract<
163
+ Option<Exclude<SubCommands<A>["options"], undefined>[number]>,
164
+ {
165
+ readonly type: CommandOptionType
166
+ }
167
+ >
168
+
169
+ type AllCommandOptions<A> = CommandOptions<A> | SubCommandOptions<A>
170
+
171
+ type CommandWithName<A, N> = Extract<AllCommandOptions<A>, { readonly name: N }>
172
+
173
+ type OptionTypeValue = {
174
+ [Discord.ApplicationCommandOptionType.BOOLEAN]: boolean
175
+ [Discord.ApplicationCommandOptionType.INTEGER]: number
176
+ [Discord.ApplicationCommandOptionType.NUMBER]: number
177
+ }
178
+ type CommandValue<A, N> = CommandWithName<
179
+ A,
180
+ N
181
+ >["type"] extends keyof OptionTypeValue
182
+ ? OptionTypeValue[CommandWithName<A, N>["type"]]
183
+ : string
184
+
185
+ // == Required options
186
+ type RequiredCommandOptions<A> = OptionsWithLiteral<
187
+ A,
188
+ {
189
+ readonly type: CommandOptionType
190
+ readonly required: true
191
+ }
192
+ >
193
+
194
+ type RequiredSubCommandOptions<A> = Extract<
195
+ SubCommandOptions<A>,
196
+ { readonly required: true }
197
+ >
198
+
199
+ type AllRequiredCommandOptions<A> =
200
+ | RequiredCommandOptions<A>
201
+ | RequiredSubCommandOptions<A>
202
+
203
+ // == Resolveables
204
+ type ResolvableType =
205
+ | Discord.ApplicationCommandOptionType.ROLE
206
+ | Discord.ApplicationCommandOptionType.USER
207
+ | Discord.ApplicationCommandOptionType.MENTIONABLE
208
+ | Discord.ApplicationCommandOptionType.CHANNEL
209
+
210
+ type Resolvables<A> = OptionsWithLiteral<A, { readonly type: ResolvableType }>
211
+ type SubCommandResolvables<A> = Extract<
212
+ Option<Exclude<SubCommands<A>["options"], undefined>[number]>,
213
+ {
214
+ readonly type: ResolvableType
215
+ }
216
+ >
217
+ type AllResolvables<A> = Resolvables<A> | SubCommandResolvables<A>
218
+
219
+ // == Utilities
220
+ type StringLiteral<T> = T extends string
221
+ ? string extends T
222
+ ? never
223
+ : T
224
+ : never
225
+
226
+ type Option<A> = A extends { readonly name: infer N }
227
+ ? N extends StringLiteral<N>
228
+ ? A
229
+ : never
230
+ : never
231
+
232
+ type OptionsWithLiteral<A, T> = A extends {
233
+ readonly options: ReadonlyArray<CommandOption>
234
+ }
235
+ ? Extract<A["options"][number], Option<A["options"][number]> & T>
236
+ : never
@@ -5,9 +5,9 @@ import type * as Discord from "dfx/types"
5
5
  import type { NoSuchElementException } from "effect/Cause"
6
6
  import { GenericTag } from "effect/Context"
7
7
  import * as Effect from "effect/Effect"
8
- import type * as HashMap from "effect/HashMap"
9
- import * as Option from "effect/Option"
10
- import * as Arr from "effect/Array"
8
+ // @ts-ignore
9
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
10
+ import * as Types from "effect/Types"
11
11
 
12
12
  export interface DiscordInteraction {
13
13
  readonly _: unique symbol
@@ -85,58 +85,12 @@ export class SubCommandNotFound extends TypeIdError(
85
85
  data: Discord.ApplicationCommandDatum
86
86
  }> {}
87
87
 
88
- export const handleSubCommands = <
89
- NER extends Record<
90
- string,
91
- Effect.Effect<Discord.InteractionResponse, any, any>
92
- >,
93
- >(
94
- commands: NER,
95
- ): Effect.Effect<
96
- Discord.InteractionResponse,
97
- | ([NER[keyof NER]] extends [
98
- { [Effect.EffectTypeId]: { _E: (_: never) => infer E } },
99
- ]
100
- ? E
101
- : never)
102
- | SubCommandNotFound,
103
- | Exclude<
104
- [NER[keyof NER]] extends [
105
- { [Effect.EffectTypeId]: { _R: (_: never) => infer R } },
106
- ]
107
- ? R
108
- : never,
109
- SubCommandContext
110
- >
111
- | Discord.Interaction
112
- | Discord.ApplicationCommandDatum
113
- > =>
114
- ApplicationCommand.pipe(
115
- Effect.flatMap(data =>
116
- Effect.mapError(
117
- Arr.findFirst(IxHelpers.allSubCommands(data), _ => !!commands[_.name]),
118
- () => new SubCommandNotFound({ data }),
119
- ),
120
- ),
121
- Effect.flatMap(command =>
122
- Effect.provideService(commands[command.name], SubCommandContext, {
123
- command,
124
- }),
125
- ),
126
- )
127
-
128
88
  export const currentSubCommand: Effect.Effect<
129
89
  Discord.ApplicationCommandInteractionDataOption,
130
90
  never,
131
91
  DiscordSubCommand
132
92
  > = Effect.map(SubCommandContext, _ => _.command)
133
93
 
134
- export const optionsMap: Effect.Effect<
135
- HashMap.HashMap<string, string | undefined>,
136
- never,
137
- DiscordApplicationCommand
138
- > = Effect.map(ApplicationCommand, IxHelpers.optionsMap)
139
-
140
94
  export class RequiredOptionNotFound {
141
95
  readonly _tag = "RequiredOptionNotFound"
142
96
  constructor(
@@ -147,29 +101,6 @@ export class RequiredOptionNotFound {
147
101
  ) {}
148
102
  }
149
103
 
150
- export const option = (name: string) =>
151
- Effect.map(ApplicationCommand, IxHelpers.getOption(name))
152
-
153
- export const optionValue = (name: string) =>
154
- Effect.flatMap(option(name), _ =>
155
- Option.match(
156
- Option.flatMapNullable(_, a => a.value),
157
- {
158
- onNone: () =>
159
- Effect.flatMap(ApplicationCommand, data =>
160
- Effect.fail(new RequiredOptionNotFound(data, name)),
161
- ),
162
- onSome: Effect.succeed,
163
- },
164
- ),
165
- )
166
-
167
- export const optionValueOptional = (name: string) =>
168
- Effect.map(
169
- option(name),
170
- Option.flatMapNullable(o => o.value),
171
- )
172
-
173
104
  export const modalValues = Effect.map(ModalSubmitData, IxHelpers.componentsMap)
174
105
 
175
106
  export const modalValueOption = (name: string) =>