@zoodogood/utils 1.2.3-change.1466 → 1.2.5-change.1483

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.
@@ -40,7 +40,10 @@ function justSendMessage(target, options) {
40
40
  setTimeout(() => message.delete(), options.delete);
41
41
  }
42
42
  if (options.reactions) {
43
- options.reactions.filter(Boolean).forEach((react) => message.react(react));
43
+ options.reactions
44
+ .filter(Boolean)
45
+ .filter((react) => !message.reactions.cache.some((compared) => compared.emoji.code === react))
46
+ .forEach((react) => message.react(react));
44
47
  }
45
48
  return message;
46
49
  });
@@ -1,13 +1,13 @@
1
1
  import { BracketsParser } from "./BracketsParser.js";
2
- interface ITextMatch {
2
+ export interface ITextMatch {
3
3
  regex: RegExp;
4
4
  name: string;
5
5
  }
6
- declare namespace BracketsNamespace {
6
+ export declare namespace BracketsNamespace {
7
7
  type Context = InstanceType<typeof BracketsParser.ParseContext>;
8
8
  type GroupElement = InstanceType<typeof BracketsManager.GroupElement>;
9
9
  }
10
- declare class BracketsManager extends BracketsParser {
10
+ export declare class BracketsManager extends BracketsParser {
11
11
  primary: BracketsNamespace.GroupElement[];
12
12
  constructor();
13
13
  parse(): BracketsNamespace.Context;
@@ -20,21 +20,23 @@ declare class BracketsManager extends BracketsParser {
20
20
  };
21
21
  toStringGroup(index: number): string;
22
22
  findPrimaryGroups(context: BracketsNamespace.Context): BracketsNamespace.GroupElement[];
23
+ groupStampRegex: RegExp;
23
24
  findBracketStamp(text: string): RegExpMatchArray | null;
24
25
  processBracketGroupFromStringStamp(raw: string): BracketsNamespace.GroupElement | null;
26
+ replaceBracketsStamps(text: string, replacer?: (group: BracketsNamespace.GroupElement) => string): string;
25
27
  }
26
- interface IFlagCapture {
28
+ export interface IFlagCapture {
27
29
  name?: string;
28
30
  capture: string[];
29
31
  expectValue?: boolean;
30
32
  }
31
- declare class FlagsManager {
33
+ export declare class FlagsManager {
32
34
  unhandledFlags?: Array<RegExpMatchArray>;
33
35
  captureResidueFlags(context: CliParserRunContext): this;
34
36
  captureFlags(flags: IFlagCapture[], context: CliParserRunContext): this;
35
37
  }
36
- type TCaptureValue = string | RegExpMatchArray;
37
- declare class CapturedContent {
38
+ export type TCaptureValue = string | RegExpMatchArray;
39
+ export declare class CapturedContent {
38
40
  content: TCaptureValue;
39
41
  context?: CliParserRunContext;
40
42
  constructor(content: TCaptureValue);
@@ -59,7 +61,11 @@ declare class CapturedContent {
59
61
  smart?: boolean | undefined;
60
62
  }): string | undefined;
61
63
  }
62
- declare class CliParserRunContext {
64
+ export declare class CapturedContentFlagMatchArray extends CapturedContent {
65
+ content: RegExpMatchArray;
66
+ valueOfFlag(): string | null;
67
+ }
68
+ export declare class CliParserRunContext {
63
69
  parser: CliParser;
64
70
  input: string;
65
71
  captures: Map<string, CapturedContent | null>;
@@ -87,4 +93,3 @@ export declare class CliParser {
87
93
  static BracketsManager: typeof BracketsManager;
88
94
  static FlagsManager: typeof FlagsManager;
89
95
  }
90
- export {};
@@ -1,9 +1,10 @@
1
1
  /* eslint-disable @typescript-eslint/no-namespace */
2
2
  import { BracketsParser } from "./BracketsParser.js";
3
- class BracketsManager extends BracketsParser {
3
+ export class BracketsManager extends BracketsParser {
4
4
  constructor() {
5
5
  super();
6
6
  this.primary = [];
7
+ this.groupStampRegex = /\[Group\*(?<index>\d+)\]/;
7
8
  this.addBracketVariant(...BracketsParser.defaultBracketVariants);
8
9
  }
9
10
  parse() {
@@ -27,7 +28,7 @@ class BracketsManager extends BracketsParser {
27
28
  return context.groups.filter((group) => group.depth === 0);
28
29
  }
29
30
  findBracketStamp(text) {
30
- return text.trim().match(/^\[Group\*(?<index>\d+)\]$/);
31
+ return text.trim().match(RegExp(`^${this.groupStampRegex.source}$`));
31
32
  }
32
33
  processBracketGroupFromStringStamp(raw) {
33
34
  const match = this.findBracketStamp(raw);
@@ -37,8 +38,11 @@ class BracketsManager extends BracketsParser {
37
38
  const { index } = match.groups;
38
39
  return this.primary.at(+index);
39
40
  }
41
+ replaceBracketsStamps(text, replacer = (group) => String(group === null || group === void 0 ? void 0 : group.content)) {
42
+ return text.replaceAll(RegExp(this.groupStampRegex, "g"), (full) => replacer(this.processBracketGroupFromStringStamp(full)));
43
+ }
40
44
  }
41
- class FlagsManager {
45
+ export class FlagsManager {
42
46
  captureResidueFlags(context) {
43
47
  let match;
44
48
  const { parser } = context;
@@ -66,7 +70,7 @@ class FlagsManager {
66
70
  return this;
67
71
  }
68
72
  }
69
- class CapturedContent {
73
+ export class CapturedContent {
70
74
  constructor(content) {
71
75
  this.content = content;
72
76
  }
@@ -154,13 +158,13 @@ class CapturedContent {
154
158
  return value;
155
159
  }
156
160
  }
157
- class CapturedContentFlagMatchArray extends CapturedContent {
161
+ export class CapturedContentFlagMatchArray extends CapturedContent {
158
162
  valueOfFlag() {
159
163
  var _a;
160
164
  return ((_a = this.content.groups) === null || _a === void 0 ? void 0 : _a.value) || null;
161
165
  }
162
166
  }
163
- class CliParserRunContext {
167
+ export class CliParserRunContext {
164
168
  constructor(parser) {
165
169
  this.input = "";
166
170
  this.captures = new Map();
@@ -1,6 +1,6 @@
1
1
  export * from "./TextTableBuilder.js";
2
2
  export * from "./BracketsParser.js";
3
- export * from "./CliParser.js";
3
+ export { CliParser } from "./CliParser.js";
4
4
  interface IEndingOptions {
5
5
  unite?: (quantity: number, word: string) => string;
6
6
  }
@@ -1,6 +1,6 @@
1
1
  export * from "./TextTableBuilder.js";
2
2
  export * from "./BracketsParser.js";
3
- export * from "./CliParser.js";
3
+ export { CliParser } from "./CliParser.js";
4
4
  function ending(quantity = 0, base, multiple, alone, double, options = {}) {
5
5
  if (isNaN(quantity))
6
6
  return NaN;
package/package.json CHANGED
@@ -1,27 +1,19 @@
1
1
  {
2
2
  "name": "@zoodogood/utils",
3
3
  "type": "module",
4
- "version": "1.2.3-change.1466",
4
+ "version": "1.2.5-change.1483",
5
5
  "description": "",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/index.d.ts",
8
8
  "homepage": "https://zoodogood.github.io/utils",
9
- "scripts": {
10
- "test": "vitest run",
11
- "docs-build": "cd ./docs && retype build --output ./public",
12
- "docs-watch": "cd ./docs && retype watch",
13
- "prepack": "yarn build && yarn test && yarn docs-build",
14
- "build": "tsc",
15
- "tsc": "tsc",
16
- "vitest": "vitest"
17
- },
18
9
  "typings": "lib/index",
19
10
  "exports": {
20
11
  ".": "./lib/index.js",
21
12
  "./primitives": "./lib/primitives/mod.js",
22
13
  "./objectives": "./lib/objectives/mod.js",
23
14
  "./discordjs": "./lib/discordjs/mod.js",
24
- "./nodejs": "./lib/nodejs/mod.js"
15
+ "./nodejs": "./lib/nodejs/mod.js",
16
+ "./CliParser": "./lib/primitives/CliParser.js"
25
17
  },
26
18
  "repository": {
27
19
  "type": "git",
@@ -69,5 +61,13 @@
69
61
  "lib/nodejs/mod.d.ts"
70
62
  ]
71
63
  }
64
+ },
65
+ "scripts": {
66
+ "test": "vitest run",
67
+ "docs-build": "cd ./docs && retype build --output ./public",
68
+ "docs-watch": "cd ./docs && retype watch",
69
+ "build": "tsc",
70
+ "tsc": "tsc",
71
+ "vitest": "vitest"
72
72
  }
73
- }
73
+ }