dfx 0.21.0 → 0.21.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,10 +1,9 @@
1
1
  import { Discord, Effect, Option } from "dfx/_common";
2
- import type { F } from "ts-toolbelt";
3
2
  import { FocusedOptionContext, ResolvedDataNotFound, SubCommandContext } from "./context.js";
4
3
  type DescriptionMissing<A> = A extends {
5
4
  type: Exclude<Discord.ApplicationCommandType, 1>;
6
5
  } ? false : A extends {
7
- description: string;
6
+ readonly description: string;
8
7
  } ? false : true;
9
8
  export type InteractionDefinition<R, E> = GlobalApplicationCommand<R, E> | GuildApplicationCommand<R, E> | MessageComponent<R, E> | ModalSubmit<R, E> | Autocomplete<R, E>;
10
9
  export declare class GlobalApplicationCommand<R, E> {
@@ -13,14 +12,14 @@ export declare class GlobalApplicationCommand<R, E> {
13
12
  readonly _tag = "GlobalApplicationCommand";
14
13
  constructor(command: Discord.CreateGlobalApplicationCommandParams, handle: CommandHandler<R, E>);
15
14
  }
16
- export declare const global: <R, E, A extends Discord.CreateGlobalApplicationCommandParams>(command: F.Narrow<A>, handle: DescriptionMissing<A> extends true ? "command description is missing" : CommandHandler<R, E, A>) => GlobalApplicationCommand<Exclude<R, Discord.Interaction | Discord.ApplicationCommandDatum>, E>;
15
+ export declare const global: <R, E, A extends DeepReadonlyObject<Discord.CreateGlobalApplicationCommandParams>>(command: A, handle: DescriptionMissing<A> extends true ? "command description is missing" : CommandHandler<R, E, A>) => GlobalApplicationCommand<Exclude<R, Discord.Interaction | Discord.ApplicationCommandDatum>, E>;
17
16
  export declare class GuildApplicationCommand<R, E> {
18
17
  readonly command: Discord.CreateGuildApplicationCommandParams;
19
18
  readonly handle: CommandHandler<R, E>;
20
19
  readonly _tag = "GuildApplicationCommand";
21
20
  constructor(command: Discord.CreateGuildApplicationCommandParams, handle: CommandHandler<R, E>);
22
21
  }
23
- export declare const guild: <R, E, A extends Discord.CreateGuildApplicationCommandParams>(command: F.Narrow<A>, handle: DescriptionMissing<A> extends true ? "command description is missing" : CommandHandler<R, E, A>) => GuildApplicationCommand<Exclude<R, Discord.Interaction | Discord.ApplicationCommandDatum>, E>;
22
+ export declare const guild: <R, E, A extends DeepReadonlyObject<Discord.CreateGuildApplicationCommandParams>>(command: A, handle: DescriptionMissing<A> extends true ? "command description is missing" : CommandHandler<R, E, A>) => GuildApplicationCommand<Exclude<R, Discord.Interaction | Discord.ApplicationCommandDatum>, E>;
24
23
  export declare class MessageComponent<R, E> {
25
24
  readonly predicate: (customId: string) => Effect.Effect<R, E, boolean>;
26
25
  readonly handle: Effect.Effect<R, E, Discord.InteractionResponse>;
@@ -42,6 +41,12 @@ export declare class Autocomplete<R, E> {
42
41
  constructor(predicate: (data: Discord.ApplicationCommandDatum, focusedOption: Discord.ApplicationCommandInteractionDataOption) => Effect.Effect<R, E, boolean>, handle: Effect.Effect<R, E, Discord.InteractionResponse>);
43
42
  }
44
43
  export declare const autocomplete: <R1, R2, E1, E2>(pred: (data: Discord.ApplicationCommandDatum, focusedOption: Discord.ApplicationCommandInteractionDataOption) => Effect.Effect<R1, E1, boolean>, handle: Effect.Effect<R2, E2, Discord.InteractionResponse>) => Autocomplete<Exclude<R1, Discord.Interaction | Discord.ApplicationCommandDatum | FocusedOptionContext> | Exclude<R2, Discord.Interaction | Discord.ApplicationCommandDatum | FocusedOptionContext>, E1 | E2>;
44
+ type DeepReadonly<T> = T extends (infer R)[] ? DeepReadonlyArray<R> : T extends Function ? T : T extends object ? DeepReadonlyObject<T> : T;
45
+ interface DeepReadonlyArray<T> extends ReadonlyArray<DeepReadonly<T>> {
46
+ }
47
+ type DeepReadonlyObject<T> = {
48
+ readonly [P in keyof T]: DeepReadonly<T[P]>;
49
+ };
45
50
  type CommandHandler<R, E, A = any> = Effect.Effect<R, E, Discord.InteractionResponse> | CommandHandlerFn<R, E, A>;
46
51
  export interface CommandHelper<A> {
47
52
  resolve: <T>(name: AllResolvables<A>["name"], f: (id: Discord.Snowflake, data: Discord.ResolvedDatum) => T | undefined) => Effect.Effect<Discord.Interaction, ResolvedDataNotFound, T>;
@@ -67,23 +72,23 @@ export interface CommandHelper<A> {
67
72
  ] ? E : never, Discord.InteractionResponse>;
68
73
  }
69
74
  type CommandHandlerFn<R, E, A> = (i: CommandHelper<A>) => Effect.Effect<R, E, Discord.InteractionResponse>;
70
- type SubCommands<A> = A extends {
75
+ type SubCommands<A> = A extends DeepReadonly<{
71
76
  type: Discord.ApplicationCommandOptionType.SUB_COMMAND;
72
77
  options?: Discord.ApplicationCommandOption[];
73
- } ? A : A extends {
78
+ }> ? A : A extends DeepReadonly<{
74
79
  options: Discord.ApplicationCommandOption[];
75
- } ? SubCommands<A["options"][number]> : never;
80
+ }> ? SubCommands<A["options"][number]> : never;
76
81
  type SubCommandNames<A> = Option<SubCommands<A>>["name"];
77
82
  type CommandOptionType = Exclude<Discord.ApplicationCommandOptionType, Discord.ApplicationCommandOptionType.SUB_COMMAND | Discord.ApplicationCommandOptionType.SUB_COMMAND_GROUP>;
78
83
  type CommandOptions<A> = OptionsWithLiteral<A, {
79
- type: CommandOptionType;
84
+ readonly type: CommandOptionType;
80
85
  }>;
81
86
  type SubCommandOptions<A> = Extract<Option<Exclude<SubCommands<A>["options"], undefined>[number]>, {
82
- type: CommandOptionType;
87
+ readonly type: CommandOptionType;
83
88
  }>;
84
89
  type AllCommandOptions<A> = CommandOptions<A> | SubCommandOptions<A>;
85
90
  type CommandWithName<A, N> = Extract<AllCommandOptions<A>, {
86
- name: N;
91
+ readonly name: N;
87
92
  }>;
88
93
  type OptionTypeValue = {
89
94
  [Discord.ApplicationCommandOptionType.BOOLEAN]: boolean;
@@ -92,26 +97,26 @@ type OptionTypeValue = {
92
97
  };
93
98
  type CommandValue<A, N> = CommandWithName<A, N>["type"] extends keyof OptionTypeValue ? OptionTypeValue[CommandWithName<A, N>["type"]] : string;
94
99
  type RequiredCommandOptions<A> = OptionsWithLiteral<A, {
95
- type: CommandOptionType;
96
- required: true;
100
+ readonly type: CommandOptionType;
101
+ readonly required: true;
97
102
  }>;
98
103
  type RequiredSubCommandOptions<A> = Extract<SubCommandOptions<A>, {
99
- required: true;
104
+ readonly required: true;
100
105
  }>;
101
106
  type AllRequiredCommandOptions<A> = RequiredCommandOptions<A> | RequiredSubCommandOptions<A>;
102
107
  type ResolvableType = Discord.ApplicationCommandOptionType.ROLE | Discord.ApplicationCommandOptionType.USER | Discord.ApplicationCommandOptionType.MENTIONABLE | Discord.ApplicationCommandOptionType.CHANNEL;
103
108
  type Resolvables<A> = OptionsWithLiteral<A, {
104
- type: ResolvableType;
109
+ readonly type: ResolvableType;
105
110
  }>;
106
111
  type SubCommandResolvables<A> = Extract<Option<Exclude<SubCommands<A>["options"], undefined>[number]>, {
107
- type: ResolvableType;
112
+ readonly type: ResolvableType;
108
113
  }>;
109
114
  type AllResolvables<A> = Resolvables<A> | SubCommandResolvables<A>;
110
115
  type StringLiteral<T> = T extends string ? string extends T ? never : T : never;
111
116
  type Option<A> = A extends {
112
- name: infer N;
117
+ readonly name: infer N;
113
118
  } ? N extends StringLiteral<N> ? A : never : never;
114
- type OptionsWithLiteral<A, T> = A extends {
119
+ type OptionsWithLiteral<A, T> = A extends DeepReadonly<{
115
120
  options: Discord.ApplicationCommandOption[];
116
- } ? Extract<A["options"][number], Option<A["options"][number]> & T> : never;
121
+ }> ? Extract<A["options"][number], Option<A["options"][number]> & T> : never;
117
122
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/Interactions/definitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAU,MAAM,aAAa,CAAA;AAuBrD,MAAM,OAAO,wBAAwB;IAGxB;IACA;IAHF,IAAI,GAAG,0BAA0B,CAAA;IAC1C,YACW,OAAqD,EACrD,MAA4B;QAD5B,YAAO,GAAP,OAAO,CAA8C;QACrD,WAAM,GAAN,MAAM,CAAsB;IACpC,CAAC;CACL;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,CAKpB,OAAoB,EACpB,MAE2B,EAC3B,EAAE,CACF,IAAI,wBAAwB,CAG1B,OAAc,EAAE,MAAa,CAAC,CAAA;AAElC,MAAM,OAAO,uBAAuB;IAGvB;IACA;IAHF,IAAI,GAAG,yBAAyB,CAAA;IACzC,YACW,OAAoD,EACpD,MAA4B;QAD5B,YAAO,GAAP,OAAO,CAA6C;QACpD,WAAM,GAAN,MAAM,CAAsB;IACpC,CAAC;CACL;AAED,MAAM,CAAC,MAAM,KAAK,GAAG,CAKnB,OAAoB,EACpB,MAE2B,EAC3B,EAAE,CACF,IAAI,uBAAuB,CAGzB,OAAc,EAAE,MAAa,CAAC,CAAA;AAElC,MAAM,OAAO,gBAAgB;IAGhB;IACA;IAHF,IAAI,GAAG,kBAAkB,CAAA;IAClC,YACW,SAA6D,EAC7D,MAAwD;QADxD,cAAS,GAAT,SAAS,CAAoD;QAC7D,WAAM,GAAN,MAAM,CAAkD;IAChE,CAAC;CACL;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,IAA0D,EAC1D,MAA2D,EAC3D,EAAE,CACF,IAAI,gBAAgB,CAGlB,IAAW,EAAE,MAAa,CAAC,CAAA;AAE/B,MAAM,OAAO,WAAW;IAGX;IACA;IAHF,IAAI,GAAG,aAAa,CAAA;IAC7B,YACW,SAA6D,EAC7D,MAAwD;QADxD,cAAS,GAAT,SAAS,CAAoD;QAC7D,WAAM,GAAN,MAAM,CAAkD;IAChE,CAAC;CACL;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,IAA0D,EAC1D,MAA0D,EAC1D,EAAE,CACF,IAAI,WAAW,CAGb,IAAW,EAAE,MAAa,CAAC,CAAA;AAE/B,MAAM,OAAO,YAAY;IAGZ;IAIA;IANF,IAAI,GAAG,cAAc,CAAA;IAC9B,YACW,SAGwB,EACxB,MAAwD;QAJxD,cAAS,GAAT,SAAS,CAGe;QACxB,WAAM,GAAN,MAAM,CAAkD;IAChE,CAAC;CACL;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,IAGmC,EACnC,MAA0D,EAC1D,EAAE,CACF,IAAI,YAAY,CAQd,IAAW,EAAE,MAAa,CAAC,CAAA"}
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/Interactions/definitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAU,MAAM,aAAa,CAAA;AAsBrD,MAAM,OAAO,wBAAwB;IAGxB;IACA;IAHF,IAAI,GAAG,0BAA0B,CAAA;IAC1C,YACW,OAAqD,EACrD,MAA4B;QAD5B,YAAO,GAAP,OAAO,CAA8C;QACrD,WAAM,GAAN,MAAM,CAAsB;IACpC,CAAC;CACL;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,CAKpB,OAAU,EACV,MAE2B,EAC3B,EAAE,CACF,IAAI,wBAAwB,CAG1B,OAAc,EAAE,MAAa,CAAC,CAAA;AAElC,MAAM,OAAO,uBAAuB;IAGvB;IACA;IAHF,IAAI,GAAG,yBAAyB,CAAA;IACzC,YACW,OAAoD,EACpD,MAA4B;QAD5B,YAAO,GAAP,OAAO,CAA6C;QACpD,WAAM,GAAN,MAAM,CAAsB;IACpC,CAAC;CACL;AAED,MAAM,CAAC,MAAM,KAAK,GAAG,CAKnB,OAAU,EACV,MAE2B,EAC3B,EAAE,CACF,IAAI,uBAAuB,CAGzB,OAAc,EAAE,MAAa,CAAC,CAAA;AAElC,MAAM,OAAO,gBAAgB;IAGhB;IACA;IAHF,IAAI,GAAG,kBAAkB,CAAA;IAClC,YACW,SAA6D,EAC7D,MAAwD;QADxD,cAAS,GAAT,SAAS,CAAoD;QAC7D,WAAM,GAAN,MAAM,CAAkD;IAChE,CAAC;CACL;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,IAA0D,EAC1D,MAA2D,EAC3D,EAAE,CACF,IAAI,gBAAgB,CAGlB,IAAW,EAAE,MAAa,CAAC,CAAA;AAE/B,MAAM,OAAO,WAAW;IAGX;IACA;IAHF,IAAI,GAAG,aAAa,CAAA;IAC7B,YACW,SAA6D,EAC7D,MAAwD;QADxD,cAAS,GAAT,SAAS,CAAoD;QAC7D,WAAM,GAAN,MAAM,CAAkD;IAChE,CAAC;CACL;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,IAA0D,EAC1D,MAA0D,EAC1D,EAAE,CACF,IAAI,WAAW,CAGb,IAAW,EAAE,MAAa,CAAC,CAAA;AAE/B,MAAM,OAAO,YAAY;IAGZ;IAIA;IANF,IAAI,GAAG,cAAc,CAAA;IAC9B,YACW,SAGwB,EACxB,MAAwD;QAJxD,cAAS,GAAT,SAAS,CAGe;QACxB,WAAM,GAAN,MAAM,CAAkD;IAChE,CAAC;CACL;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,IAGmC,EACnC,MAA0D,EAC1D,EAAE,CACF,IAAI,YAAY,CAQd,IAAW,EAAE,MAAa,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dfx",
3
- "version": "0.21.0",
3
+ "version": "0.21.2",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -27,13 +27,12 @@
27
27
  "@tim-smart/discord-api-docs-parser": "^0.4.1",
28
28
  "@types/ws": "^8.5.3",
29
29
  "lerna": "^6.1.0",
30
- "typescript": "https://cdn.jsdelivr.net/npm/@tsplus/installer/compiler/typescript.tgz"
30
+ "typescript": "https://cdn.jsdelivr.net/npm/@tsplus/installer@0.0.161/compiler/typescript.tgz"
31
31
  },
32
32
  "dependencies": {
33
33
  "@effect/io": "~0.0.41",
34
34
  "@effect/stream": "~0.0.3",
35
35
  "@fp-ts/data": "~0.0.30",
36
- "ts-toolbelt": "^9.6.0",
37
36
  "tweetnacl": "^1.0.3"
38
37
  },
39
38
  "optionalDependencies": {
@@ -43,5 +42,5 @@
43
42
  "ws": "^8.11.0"
44
43
  },
45
44
  "sideEffects": false,
46
- "gitHead": "7ee1a7233c14362dc49ec46e30abafe7cb74a90b"
45
+ "gitHead": "4250ee61326a05b5636ccc3f8ae3b8291dcc1033"
47
46
  }