@fallencodes/seyfert-utils 1.3.6 → 1.4.1

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,4 +1,4 @@
1
- import { OKFunction, GuildRole, StopFunction, AllGuildChannels, CommandContext } from 'seyfert';
1
+ import { OKFunction, GuildRole, StopFunction, AllGuildChannels, CommandContext, User } from 'seyfert';
2
2
  interface StringOption {
3
3
  value: string;
4
4
  context: CommandContext;
@@ -9,5 +9,6 @@ export declare function dateOptionValue({ value }: StringOption, ok: OKFunction<
9
9
  export declare function relativeTimeOptionValue({ value }: StringOption, ok: OKFunction<number>, fail: StopFunction): void;
10
10
  export declare function rolesOptionValue({ value: values, context }: StringOption, ok: OKFunction<[GuildRole, ...GuildRole[]]>, fail: StopFunction): Promise<void>;
11
11
  export declare function channelsOptionValue({ value: values, context }: StringOption, ok: OKFunction<[AllGuildChannels, ...AllGuildChannels[]]>, fail: StopFunction): Promise<void>;
12
+ export declare function usersOptionValue({ value: values, context }: StringOption, ok: OKFunction<[User, ...User[]]>, fail: StopFunction): Promise<void>;
12
13
  export {};
13
14
  //# sourceMappingURL=options.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAOhG,UAAU,YAAY;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,cAAc,CAAC;CAC3B;AAGD,eAAO,MAAM,oBAAoB,GAAI,WAAW,YAAY,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,YAAY,SAGvG,CAAC;AAGF,eAAO,MAAM,mBAAmB,GAAI,WAAW,YAAY,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,YAAY,SAStG,CAAC;AAGF,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,QAIhG;AAGD,wBAAgB,uBAAuB,CAAC,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,YAAY,QAI1G;AAGD,wBAAsB,gBAAgB,CAClC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,YAAY,EACxC,EAAE,EAAE,UAAU,CAAC,CAAC,SAAS,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC,EAC3C,IAAI,EAAE,YAAY,iBA4BrB;AAGD,wBAAsB,mBAAmB,CACrC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,YAAY,EACxC,EAAE,EAAE,UAAU,CAAC,CAAC,gBAAgB,EAAE,GAAG,gBAAgB,EAAE,CAAC,CAAC,EACzD,IAAI,EAAE,YAAY,iBA8BrB"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAOtG,UAAU,YAAY;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,cAAc,CAAC;CAC3B;AAGD,eAAO,MAAM,oBAAoB,GAAI,WAAW,YAAY,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,YAAY,SAGvG,CAAC;AAGF,eAAO,MAAM,mBAAmB,GAAI,WAAW,YAAY,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,YAAY,SAStG,CAAC;AAGF,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,QAIhG;AAGD,wBAAgB,uBAAuB,CAAC,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,YAAY,QAI1G;AAGD,wBAAsB,gBAAgB,CAClC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,YAAY,EACxC,EAAE,EAAE,UAAU,CAAC,CAAC,SAAS,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC,EAC3C,IAAI,EAAE,YAAY,iBA4BrB;AAGD,wBAAsB,mBAAmB,CACrC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,YAAY,EACxC,EAAE,EAAE,UAAU,CAAC,CAAC,gBAAgB,EAAE,GAAG,gBAAgB,EAAE,CAAC,CAAC,EACzD,IAAI,EAAE,YAAY,iBA8BrB;AAED,wBAAsB,gBAAgB,CAClC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,YAAY,EACxC,EAAE,EAAE,UAAU,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,EACjC,IAAI,EAAE,YAAY,iBAkBrB"}
package/build/options.js CHANGED
@@ -2,7 +2,7 @@ import { isValidSnowflake } from './utilities.js';
2
2
  import dayjs from 'dayjs';
3
3
  import ms from 'ms';
4
4
  import fuzzy from 'fuzzysort';
5
- import { channelMentionRegex, hexRegex, roleMentionRegex } from './variables.js';
5
+ import { channelMentionRegex, hexRegex, roleMentionRegex, userMentionRegex } from './variables.js';
6
6
  /* Returns a valid string snowflake value. */
7
7
  export const snowflakeOptionValue = ({ value }, ok, fail) => {
8
8
  if (isValidSnowflake(value))
@@ -106,3 +106,24 @@ export async function channelsOptionValue({ value: values, context }, ok, fail)
106
106
  ok(resolvedChannels);
107
107
  }
108
108
  ;
109
+ export async function usersOptionValue({ value: values, context }, ok, fail) {
110
+ const resolvedUsers = [];
111
+ for await (const value of values.split(',').map((value) => value.trim())) {
112
+ let user;
113
+ const mentionMatch = userMentionRegex.exec(value)?.[1];
114
+ if (mentionMatch)
115
+ user = await context.client.users.fetch(mentionMatch).catch(() => undefined);
116
+ if (!user && isValidSnowflake(value))
117
+ user = await context.client.users.fetch(value).catch(() => undefined);
118
+ if (user)
119
+ resolvedUsers.push(user);
120
+ else
121
+ return fail(`Hold up! | The specified user "${user}" wasn't found.`);
122
+ }
123
+ ;
124
+ if (resolvedUsers.length < 1)
125
+ return fail(`Hold up! | You didn't specify any valid users.`);
126
+ // @ts-expect-error
127
+ ok(resolvedUsers);
128
+ }
129
+ ;
@@ -6,7 +6,7 @@ export declare function randomId(length: number): string;
6
6
  export declare function wait(time: number): Promise<unknown>;
7
7
  export declare function isValidSnowflake(snowflake: string): boolean;
8
8
  export declare function truncateString(string: string, maxLength?: number): string;
9
- type NameType = 'display' | 'display-s' | 'display-username' | 'display-username-s' | 'username-id' | 'username-id-s';
9
+ type NameType = 'display' | 'display-s' | 'display-username' | 'display-username-s' | 'username-id' | 'username-id-s' | 'multi-line';
10
10
  export declare function name(user: User | GuildMember | InteractionGuildMember, type?: NameType): string;
11
11
  export declare function reviver(_key: string, value: any): any;
12
12
  export declare function replacer(_key: string, value: any): any;
@@ -1 +1 @@
1
- {"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../src/utilities.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,wBAAgB,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzC;AAGD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE/C;AAGD,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAEnD;AAGD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAI3D;AAGD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,GAAE,MAAY,GAAG,MAAM,CAI9E;AAED,KAAK,QAAQ,GACX,SAAS,GACT,WAAW,GACX,kBAAkB,GAClB,oBAAoB,GACpB,aAAa,GACb,eAAe,CAAA;AAGjB,wBAAgB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,WAAW,GAAG,sBAAsB,EAAE,IAAI,GAAE,QAAoB,GAAG,MAAM,CAW1G;AAGD,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAG/C;AAGD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAIhD;AAGD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,UAExC;AAGD,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,aAAa,GAAG,aAAa,CAAC,aAAa,CAAC,GAAG,MAAM,EAAE,CAUtG;AAID,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAE5G;AAGD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,GAAE,MAAa,EAAE,SAAS,GAAE,MAAa,YActG;AAGD,wBAAgB,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CASxD"}
1
+ {"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../src/utilities.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,wBAAgB,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzC;AAGD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE/C;AAGD,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAEnD;AAGD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAI3D;AAGD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,GAAE,MAAY,GAAG,MAAM,CAI9E;AAED,KAAK,QAAQ,GACX,SAAS,GACT,WAAW,GACX,kBAAkB,GAClB,oBAAoB,GACpB,aAAa,GACb,eAAe,GACf,YAAY,CAAA;AAGd,wBAAgB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,WAAW,GAAG,sBAAsB,EAAE,IAAI,GAAE,QAAoB,GAAG,MAAM,CAgB1G;AAGD,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAG/C;AAGD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAIhD;AAGD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,UAExC;AAGD,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,aAAa,GAAG,aAAa,CAAC,aAAa,CAAC,GAAG,MAAM,EAAE,CAUtG;AAID,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAE5G;AAGD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,GAAE,MAAa,EAAE,SAAS,GAAE,MAAa,YActG;AAGD,wBAAgB,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CASxD"}
@@ -39,10 +39,15 @@ export function name(user, type = 'display') {
39
39
  switch (type) {
40
40
  case 'display': return display ?? user.username;
41
41
  case 'display-s': return s(display ?? user.username);
42
- case 'display-username': return display ? `${display} (${user.username})` : user.username;
43
- case 'display-username-s': return s(display ? `${display} (${user.username})` : user.username);
44
- case 'username-id': return `${user.username} (${user.id})`;
45
- case 'username-id-s': return s(`${user.username} (${user.id})`);
42
+ case 'display-username': return display ? `${display} (@${user.username})` : user.username;
43
+ case 'display-username-s': return s(display ? `${display} (@${user.username})` : user.username);
44
+ case 'username-id': return `${user.username} [${user.id}]`;
45
+ case 'username-id-s': return s(`${user.username} [${user.id}]`);
46
+ case 'multi-line': return [
47
+ `__ID__: ${user.id}\n`,
48
+ `__Mention__: ${user.toString()}\n`,
49
+ `__Display Name: ${s(display ? `${display} (@${user.username})` : user.username)}`
50
+ ].join('');
46
51
  }
47
52
  ;
48
53
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fallencodes/seyfert-utils",
3
3
  "type": "module",
4
- "version": "1.3.6",
4
+ "version": "1.4.1",
5
5
  "license": "MIT",
6
6
  "description": "A collection of various utility/helper code I use in my Seyfert projects.",
7
7
  "main": "build/index.js",