@jsse/eslint-config 0.8.3 → 0.8.4

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @jsse/eslint-config
2
2
 
3
+ ## 0.8.4
4
+
5
+ ### Patch Changes
6
+
7
+ - add e18e
8
+
3
9
  ## 0.8.3
4
10
 
5
11
  ### Patch Changes
package/dist/cli.js CHANGED
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
- import { r as VERSION, t as DEBUG } from "./const-BGD6_tOf.js";
2
+ import { r as VERSION, t as DEBUG } from "./const-D_tT7WuW.js";
3
3
  import process from "node:process";
4
4
  import fs from "node:fs";
5
5
  import path from "node:path";
6
- //#region node_modules/.pnpm/@optique+core@1.1.0/node_modules/@optique/core/dist/internal/annotations.js
6
+ //#region node_modules/.pnpm/@optique+core@1.1.1/node_modules/@optique/core/dist/internal/annotations.js
7
7
  /**
8
8
  * Runtime context extension system for Optique parsers.
9
9
  *
@@ -269,7 +269,7 @@ function isInjectedAnnotationWrapper(value) {
269
269
  return value != null && typeof value === "object" && (injectedAnnotationWrappers.has(value) || hasInjectedAnnotationWrapperShape(value));
270
270
  }
271
271
  //#endregion
272
- //#region node_modules/.pnpm/@optique+core@1.1.0/node_modules/@optique/core/dist/displaywidth.js
272
+ //#region node_modules/.pnpm/@optique+core@1.1.1/node_modules/@optique/core/dist/displaywidth.js
273
273
  const ansiRegex = /\x1B(?:\[[0-9;:]*[@-~]|\][^\x1B\x07]*(?:\x1B\\|\x07))/g;
274
274
  const segmenter = new Intl.Segmenter(void 0, { granularity: "grapheme" });
275
275
  /**
@@ -310,7 +310,7 @@ function isEastAsianWide(cp) {
310
310
  return cp >= 4352 && cp <= 4447 || cp >= 9001 && cp <= 9002 || cp >= 9776 && cp <= 9783 || cp >= 9866 && cp <= 9871 || cp >= 11904 && cp <= 12255 || cp >= 12272 && cp <= 12350 || cp >= 12353 && cp <= 40959 || cp >= 40960 && cp <= 42191 || cp >= 43360 && cp <= 43391 || cp >= 44032 && cp <= 55215 || cp >= 63744 && cp <= 64255 || cp >= 65040 && cp <= 65049 || cp >= 65072 && cp <= 65135 || cp >= 65281 && cp <= 65376 || cp >= 65504 && cp <= 65510 || cp >= 94176 && cp <= 101759 || cp >= 110576 && cp <= 111359 || cp >= 127488 && cp <= 127490 || cp >= 127504 && cp <= 127547 || cp >= 127552 && cp <= 127560 || cp >= 127568 && cp <= 127569 || cp >= 127584 && cp <= 127589 || cp >= 131072 && cp <= 196605 || cp >= 196608 && cp <= 262141;
311
311
  }
312
312
  //#endregion
313
- //#region node_modules/.pnpm/@optique+core@1.1.0/node_modules/@optique/core/dist/message.js
313
+ //#region node_modules/.pnpm/@optique+core@1.1.1/node_modules/@optique/core/dist/message.js
314
314
  /**
315
315
  * Creates a deep clone of a {@link MessageTerm}. Most variants contain only
316
316
  * primitive fields and are cloned via object spread. The `url` variant
@@ -695,7 +695,7 @@ function formatMessage(msg, options = {}) {
695
695
  return output;
696
696
  }
697
697
  //#endregion
698
- //#region node_modules/.pnpm/@optique+core@1.1.0/node_modules/@optique/core/dist/validate.js
698
+ //#region node_modules/.pnpm/@optique+core@1.1.1/node_modules/@optique/core/dist/validate.js
699
699
  /**
700
700
  * Matches Unicode control characters: C0 (U+0000–U+001F), DEL (U+007F),
701
701
  * C1 (U+0080–U+009F), and line separators (U+2028, U+2029).
@@ -857,7 +857,7 @@ function validateContextIds(contexts) {
857
857
  }
858
858
  }
859
859
  //#endregion
860
- //#region node_modules/.pnpm/@optique+core@1.1.0/node_modules/@optique/core/dist/usage.js
860
+ //#region node_modules/.pnpm/@optique+core@1.1.1/node_modules/@optique/core/dist/usage.js
861
861
  /**
862
862
  * Returns whether the term should be hidden from usage output.
863
863
  */
@@ -1437,7 +1437,7 @@ function* formatUsageTermInternal(term, options) {
1437
1437
  } else throw new TypeError(`Unknown usage term type: ${term["type"]}.`);
1438
1438
  }
1439
1439
  //#endregion
1440
- //#region node_modules/.pnpm/@optique+core@1.1.0/node_modules/@optique/core/dist/doc.js
1440
+ //#region node_modules/.pnpm/@optique+core@1.1.1/node_modules/@optique/core/dist/doc.js
1441
1441
  /**
1442
1442
  * Returns whether a doc entry's term is hidden from documentation.
1443
1443
  * Only term types with a `hidden` field (argument, option, command,
@@ -1946,7 +1946,7 @@ function lastLineVisibleLength(text$1) {
1946
1946
  return getDisplayWidth(lastNewline === -1 ? text$1 : text$1.slice(lastNewline + 1));
1947
1947
  }
1948
1948
  //#endregion
1949
- //#region node_modules/.pnpm/@optique+core@1.1.0/node_modules/@optique/core/dist/internal/mode-dispatch.js
1949
+ //#region node_modules/.pnpm/@optique+core@1.1.1/node_modules/@optique/core/dist/internal/mode-dispatch.js
1950
1950
  /**
1951
1951
  * Dispatches to sync or async implementation based on mode.
1952
1952
  *
@@ -1998,7 +1998,7 @@ function dispatchIterableByMode(mode, syncFn, asyncFn) {
1998
1998
  return syncFn();
1999
1999
  }
2000
2000
  //#endregion
2001
- //#region node_modules/.pnpm/@optique+core@1.1.0/node_modules/@optique/core/dist/internal/dependency.js
2001
+ //#region node_modules/.pnpm/@optique+core@1.1.1/node_modules/@optique/core/dist/internal/dependency.js
2002
2002
  /**
2003
2003
  * A unique symbol used to identify dependency sources at compile time.
2004
2004
  * This marker is used to distinguish {@link DependencySource} from regular
@@ -2198,7 +2198,7 @@ function isWrappedDependencySource(parser) {
2198
2198
  return typeof parser === "object" && parser !== null && wrappedDependencySourceMarker in parser;
2199
2199
  }
2200
2200
  //#endregion
2201
- //#region node_modules/.pnpm/@optique+core@1.1.0/node_modules/@optique/core/dist/input-trace.js
2201
+ //#region node_modules/.pnpm/@optique+core@1.1.1/node_modules/@optique/core/dist/input-trace.js
2202
2202
  const symbolKeys = /* @__PURE__ */ new WeakMap();
2203
2203
  let symbolCounter$1 = 0;
2204
2204
  /** Length-prefix a raw segment so that no delimiter escaping is needed. */
@@ -2251,7 +2251,7 @@ function createInputTrace() {
2251
2251
  return new InputTraceImpl();
2252
2252
  }
2253
2253
  //#endregion
2254
- //#region node_modules/.pnpm/@optique+core@1.1.0/node_modules/@optique/core/dist/internal/parser.js
2254
+ //#region node_modules/.pnpm/@optique+core@1.1.1/node_modules/@optique/core/dist/internal/parser.js
2255
2255
  /**
2256
2256
  * Internal marker for wrappers whose `{ hasCliValue: false }` states should
2257
2257
  * be treated as unmatched dependency-source states during completion-time
@@ -2613,7 +2613,7 @@ function buildDocPage(parser, context, args, matchedCommandArgIndices) {
2613
2613
  };
2614
2614
  }
2615
2615
  //#endregion
2616
- //#region node_modules/.pnpm/@optique+core@1.1.0/node_modules/@optique/core/dist/dependency-runtime.js
2616
+ //#region node_modules/.pnpm/@optique+core@1.1.1/node_modules/@optique/core/dist/dependency-runtime.js
2617
2617
  const symbolIds = /* @__PURE__ */ new WeakMap();
2618
2618
  let symbolCounter = 0;
2619
2619
  function stableSymbolKey(sym) {
@@ -3180,7 +3180,7 @@ function buildRuntimeNodesFromPairs(pairs, state, parentPath) {
3180
3180
  return nodes;
3181
3181
  }
3182
3182
  //#endregion
3183
- //#region node_modules/.pnpm/@optique+core@1.1.0/node_modules/@optique/core/dist/annotation-state.js
3183
+ //#region node_modules/.pnpm/@optique+core@1.1.1/node_modules/@optique/core/dist/annotation-state.js
3184
3184
  /**
3185
3185
  * Shared targets for annotation-view proxies.
3186
3186
  *
@@ -3589,7 +3589,7 @@ function reconcileObjectChildState(parentState, childState) {
3589
3589
  return inheritAnnotations(parentState, childState);
3590
3590
  }
3591
3591
  //#endregion
3592
- //#region node_modules/.pnpm/@optique+core@1.1.0/node_modules/@optique/core/dist/internal/command-alias.js
3592
+ //#region node_modules/.pnpm/@optique+core@1.1.1/node_modules/@optique/core/dist/internal/command-alias.js
3593
3593
  /**
3594
3594
  * Internal key used to bypass duplicate leading command name validation when
3595
3595
  * composing built-in meta commands with user parsers.
@@ -3601,7 +3601,7 @@ const allowDuplicateLeadingCommandNamesKey = Symbol("allowDuplicateLeadingComman
3601
3601
  */
3602
3602
  const hiddenCommandAliasesKey = Symbol("hiddenCommandAliases");
3603
3603
  //#endregion
3604
- //#region node_modules/.pnpm/@optique+core@1.1.0/node_modules/@optique/core/dist/execution-context.js
3604
+ //#region node_modules/.pnpm/@optique+core@1.1.1/node_modules/@optique/core/dist/execution-context.js
3605
3605
  /**
3606
3606
  * Appends a child parser segment to the current execution path.
3607
3607
  * @internal
@@ -3652,7 +3652,7 @@ function withChildContext(context, segment, state, usage) {
3652
3652
  };
3653
3653
  }
3654
3654
  //#endregion
3655
- //#region node_modules/.pnpm/@optique+core@1.1.0/node_modules/@optique/core/dist/phase2-seed.js
3655
+ //#region node_modules/.pnpm/@optique+core@1.1.1/node_modules/@optique/core/dist/phase2-seed.js
3656
3656
  /**
3657
3657
  * Internal parser hook key for phase-two seed extraction.
3658
3658
  *
@@ -3703,7 +3703,7 @@ function completeOrExtractPhase2Seed(parser, state, exec) {
3703
3703
  });
3704
3704
  }
3705
3705
  //#endregion
3706
- //#region node_modules/.pnpm/@optique+core@1.1.0/node_modules/@optique/core/dist/suggestion.js
3706
+ //#region node_modules/.pnpm/@optique+core@1.1.1/node_modules/@optique/core/dist/suggestion.js
3707
3707
  /**
3708
3708
  * Calculates the Levenshtein distance between two strings.
3709
3709
  *
@@ -4013,7 +4013,7 @@ function deduplicateSuggestions(suggestions) {
4013
4013
  return order.map((key) => entries.get(key));
4014
4014
  }
4015
4015
  //#endregion
4016
- //#region node_modules/.pnpm/@optique+core@1.1.0/node_modules/@optique/core/dist/usage-internals.js
4016
+ //#region node_modules/.pnpm/@optique+core@1.1.1/node_modules/@optique/core/dist/usage-internals.js
4017
4017
  /**
4018
4018
  * Collects option names and command names that are valid as the *immediate*
4019
4019
  * next token at the current parse position ("leading candidates").
@@ -4090,7 +4090,7 @@ function extractLeadingCommandNames(usage) {
4090
4090
  return commands;
4091
4091
  }
4092
4092
  //#endregion
4093
- //#region node_modules/.pnpm/@optique+core@1.1.0/node_modules/@optique/core/dist/constructs.js
4093
+ //#region node_modules/.pnpm/@optique+core@1.1.1/node_modules/@optique/core/dist/constructs.js
4094
4094
  /**
4095
4095
  * A shared empty set used as the `leadingNames` value for parsers that
4096
4096
  * do not match any specific name at the first buffer position.
@@ -7057,7 +7057,7 @@ function group(label, parser, options = {}) {
7057
7057
  return groupParser;
7058
7058
  }
7059
7059
  //#endregion
7060
- //#region node_modules/.pnpm/@optique+core@1.1.0/node_modules/@optique/core/dist/dependency-metadata.js
7060
+ //#region node_modules/.pnpm/@optique+core@1.1.1/node_modules/@optique/core/dist/dependency-metadata.js
7061
7061
  /**
7062
7062
  * Extracts {@link ParserDependencyMetadata} from a value parser by reading
7063
7063
  * old-protocol markers (`dependencySourceMarker`, `derivedValueParserMarker`,
@@ -7186,7 +7186,7 @@ function composeDependencyMetadata(inner, wrapperKind, options) {
7186
7186
  }
7187
7187
  }
7188
7188
  //#endregion
7189
- //#region node_modules/.pnpm/@optique+core@1.1.0/node_modules/@optique/core/dist/modifiers.js
7189
+ //#region node_modules/.pnpm/@optique+core@1.1.1/node_modules/@optique/core/dist/modifiers.js
7190
7190
  function isTerminalMultipleItemState(state) {
7191
7191
  const unwrapped = unwrapMultipleItemState(state).value;
7192
7192
  return unwrapped != null && typeof unwrapped === "object" && Object.hasOwn(unwrapped, "success") && typeof unwrapped.success === "boolean";
@@ -8438,7 +8438,7 @@ function multiple(parser, options = {}) {
8438
8438
  return resultParser;
8439
8439
  }
8440
8440
  //#endregion
8441
- //#region node_modules/.pnpm/@optique+core@1.1.0/node_modules/@optique/core/dist/nonempty.js
8441
+ //#region node_modules/.pnpm/@optique+core@1.1.1/node_modules/@optique/core/dist/nonempty.js
8442
8442
  /**
8443
8443
  * Asserts that a string is non-empty.
8444
8444
  * Throws a `TypeError` if the string is empty.
@@ -8450,7 +8450,7 @@ function ensureNonEmptyString(value) {
8450
8450
  if (value === "") throw new TypeError("Expected a non-empty string.");
8451
8451
  }
8452
8452
  //#endregion
8453
- //#region node_modules/.pnpm/@optique+core@1.1.0/node_modules/@optique/core/dist/valueparser.js
8453
+ //#region node_modules/.pnpm/@optique+core@1.1.1/node_modules/@optique/core/dist/valueparser.js
8454
8454
  /**
8455
8455
  * A predicate function that checks if an object is a {@link ValueParser}.
8456
8456
  * @param object The object to check.
@@ -8531,7 +8531,7 @@ const SEMVER_SUGGESTIONS = Object.freeze([
8531
8531
  ]);
8532
8532
  Object.freeze([...SEMVER_SUGGESTIONS, ...SEMVER_SUGGESTIONS.map((s) => `v${s}`)]);
8533
8533
  //#endregion
8534
- //#region node_modules/.pnpm/@optique+core@1.1.0/node_modules/@optique/core/dist/primitives.js
8534
+ //#region node_modules/.pnpm/@optique+core@1.1.1/node_modules/@optique/core/dist/primitives.js
8535
8535
  /**
8536
8536
  * A shared empty set used as the `leadingNames` value for parsers that
8537
8537
  * do not match any specific name at the first buffer position.
@@ -9926,7 +9926,7 @@ function command(name, parser, options = {}) {
9926
9926
  return result;
9927
9927
  }
9928
9928
  //#endregion
9929
- //#region node_modules/.pnpm/@optique+core@1.1.0/node_modules/@optique/core/dist/completion.js
9929
+ //#region node_modules/.pnpm/@optique+core@1.1.1/node_modules/@optique/core/dist/completion.js
9930
9930
  /**
9931
9931
  * A regular expression pattern for valid program names that can be safely
9932
9932
  * interpolated into shell scripts.
@@ -11218,7 +11218,7 @@ ${escapedArgs ? ` \$completionArgs += @(${escapedArgs})
11218
11218
  }
11219
11219
  };
11220
11220
  //#endregion
11221
- //#region node_modules/.pnpm/@optique+core@1.1.0/node_modules/@optique/core/dist/facade.js
11221
+ //#region node_modules/.pnpm/@optique+core@1.1.1/node_modules/@optique/core/dist/facade.js
11222
11222
  /**
11223
11223
  * Combines built-in meta commands while intentionally bypassing duplicate
11224
11224
  * leading command name validation in `createLongestMatch()`.
@@ -12240,6 +12240,7 @@ function runParser(parserOrProgram, programNameOrArgs, argsOrOptions, optionsPar
12240
12240
  ], programName, parser, classified.source === "command" ? completionParsers.completionCommand : completionParsers.completionOption, stdout, stderr, onCompletionResult, onErrorResult, availableShells, colors, maxWidth, completionCommandNames[0], completionOptionNames[0], classified.source === "option", sectionOrder, rootOptionSuggestions);
12241
12241
  case "help": {
12242
12242
  let helpGeneratorParser;
12243
+ let docGeneratorParser;
12243
12244
  const helpAsCommand = helpCommandConfig != null;
12244
12245
  const versionAsCommand = versionCommandConfig != null;
12245
12246
  const completionAsCommand = completionCommandConfig != null;
@@ -12247,10 +12248,16 @@ function runParser(parserOrProgram, programNameOrArgs, argsOrOptions, optionsPar
12247
12248
  const versionAsOption = versionOptionConfig != null;
12248
12249
  const completionAsOption = completionOptionConfig != null;
12249
12250
  const requestedCommand = classified.commands[0];
12250
- if (requestedCommand != null && !classified.preferUserCommandDocs && completionCommandNames.includes(requestedCommand) && completionAsCommand && completionParsers.completionCommand) helpGeneratorParser = completionParsers.completionCommand;
12251
- else if (requestedCommand != null && !classified.preferUserCommandDocs && helpCommandNames.includes(requestedCommand) && helpAsCommand && helpParsers.helpCommand) helpGeneratorParser = helpParsers.helpCommand;
12252
- else if (requestedCommand != null && !classified.preferUserCommandDocs && versionCommandNames.includes(requestedCommand) && versionAsCommand && versionParsers.versionCommand) helpGeneratorParser = versionParsers.versionCommand;
12253
- else {
12251
+ if (requestedCommand != null && !classified.preferUserCommandDocs && completionCommandNames.includes(requestedCommand) && completionAsCommand && completionParsers.completionCommand) {
12252
+ helpGeneratorParser = completionParsers.completionCommand;
12253
+ docGeneratorParser = helpGeneratorParser;
12254
+ } else if (requestedCommand != null && !classified.preferUserCommandDocs && helpCommandNames.includes(requestedCommand) && helpAsCommand && helpParsers.helpCommand) {
12255
+ helpGeneratorParser = helpParsers.helpCommand;
12256
+ docGeneratorParser = helpGeneratorParser;
12257
+ } else if (requestedCommand != null && !classified.preferUserCommandDocs && versionCommandNames.includes(requestedCommand) && versionAsCommand && versionParsers.versionCommand) {
12258
+ helpGeneratorParser = versionParsers.versionCommand;
12259
+ docGeneratorParser = helpGeneratorParser;
12260
+ } else {
12254
12261
  const commandParsers = [parser];
12255
12262
  const groupedMeta = {};
12256
12263
  const ungroupedMeta = [];
@@ -12278,6 +12285,7 @@ function runParser(parserOrProgram, programNameOrArgs, argsOrOptions, optionsPar
12278
12285
  else commandParsers.push(group(label, longestMatch(...optParsers)));
12279
12286
  if (commandParsers.length === 1) helpGeneratorParser = commandParsers[0];
12280
12287
  else helpGeneratorParser = longestMatchForMetaCommands(...commandParsers);
12288
+ docGeneratorParser = classified.commands.length > 0 ? parser : helpGeneratorParser;
12281
12289
  }
12282
12290
  const reportInvalidHelpCommand = (validationError) => {
12283
12291
  stderr(`Usage: ${indentLines(formatUsage(programName, augmentedParser.usage, {
@@ -12346,7 +12354,7 @@ function runParser(parserOrProgram, programNameOrArgs, argsOrOptions, optionsPar
12346
12354
  res = processStep(next instanceof Promise ? await next : next);
12347
12355
  }
12348
12356
  if (res != null) return reportInvalidHelpCommand(res);
12349
- const docOrPromise$1 = getDocPage(helpGeneratorParser, classified.commands);
12357
+ const docOrPromise$1 = getDocPage(docGeneratorParser, classified.commands);
12350
12358
  return docOrPromise$1 instanceof Promise ? docOrPromise$1.then(displayHelp) : displayHelp(docOrPromise$1);
12351
12359
  };
12352
12360
  return stepResult.then(asyncValidate);
@@ -12355,7 +12363,7 @@ function runParser(parserOrProgram, programNameOrArgs, argsOrOptions, optionsPar
12355
12363
  }
12356
12364
  if (validationResult != null) return reportInvalidHelpCommand(validationResult);
12357
12365
  }
12358
- const docOrPromise = getDocPage(helpGeneratorParser, classified.commands);
12366
+ const docOrPromise = getDocPage(docGeneratorParser, classified.commands);
12359
12367
  if (docOrPromise instanceof Promise) return docOrPromise.then(displayHelp);
12360
12368
  return displayHelp(docOrPromise);
12361
12369
  }
@@ -12709,7 +12717,7 @@ function injectAnnotationsIntoParser(parser, annotations) {
12709
12717
  return Object.create(Object.getPrototypeOf(parser), descriptors);
12710
12718
  }
12711
12719
  //#endregion
12712
- //#region node_modules/.pnpm/@optique+run@1.1.0/node_modules/@optique/run/dist/run.js
12720
+ //#region node_modules/.pnpm/@optique+run@1.1.1/node_modules/@optique/run/dist/run.js
12713
12721
  function getProgramHelpMetadata(metadata) {
12714
12722
  return {
12715
12723
  brief: metadata.brief,
@@ -1,6 +1,6 @@
1
1
  import process from "node:process";
2
2
  //#region src/_generated/version.ts
3
- const VERSION = "0.8.3";
3
+ const VERSION = "0.8.4";
4
4
  //#endregion
5
5
  //#region src/const.ts
6
6
  /**
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import pluginE18e from "@e18e/eslint-plugin";
1
2
  import pluginEslintComments from "@eslint-community/eslint-plugin-eslint-comments";
2
3
  import pluginTs from "@typescript-eslint/eslint-plugin";
3
4
  import * as parserTs from "@typescript-eslint/parser";
@@ -15,7 +16,7 @@ import { Linter } from "eslint";
15
16
  import { FlatGitignoreOptions } from "eslint-config-flat-gitignore";
16
17
 
17
18
  //#region src/_generated/version.d.ts
18
- declare const VERSION = "0.8.3";
19
+ declare const VERSION = "0.8.4";
19
20
  //#endregion
20
21
  //#region src/_generated/dts/builtins.d.ts
21
22
  interface BuiltinsRuleOptions {
@@ -526,7 +527,7 @@ interface BuiltinsRuleOptions {
526
527
  * Disallow expressions where the operation doesn't affect the value
527
528
  * @see https://eslint.org/docs/latest/rules/no-constant-binary-expression
528
529
  */
529
- "no-constant-binary-expression"?: Linter.RuleEntry<[]>;
530
+ "no-constant-binary-expression"?: Linter.RuleEntry<NoConstantBinaryExpression>;
530
531
  /**
531
532
  * Disallow constant expressions in conditions
532
533
  * @see https://eslint.org/docs/latest/rules/no-constant-condition
@@ -2330,6 +2331,9 @@ type NoConfusingArrow = [] | [{
2330
2331
  }]; // ----- no-console -----
2331
2332
  type NoConsole = [] | [{
2332
2333
  allow?: [string, ...string[]];
2334
+ }]; // ----- no-constant-binary-expression -----
2335
+ type NoConstantBinaryExpression = [] | [{
2336
+ checkRelationalComparisons?: boolean;
2333
2337
  }]; // ----- no-constant-condition -----
2334
2338
  type NoConstantCondition = [] | [{
2335
2339
  checkLoops?: "all" | "allExceptWhileTrue" | "none" | true | false;
@@ -2993,6 +2997,125 @@ interface DeMorganRuleOptions {
2993
2997
  "de-morgan/no-negated-disjunction"?: Linter.RuleEntry<[]>;
2994
2998
  }
2995
2999
  //#endregion
3000
+ //#region src/_generated/dts/e18e.d.ts
3001
+ interface E18eRuleOptions {
3002
+ /**
3003
+ * Disallow dependencies in favor of more performant or secure alternatives
3004
+ */
3005
+ "e18e/ban-dependencies"?: Linter.RuleEntry<E18EBanDependencies>;
3006
+ /**
3007
+ * Disallow `delete` on properties — V8 deoptimizes the object to dictionary mode
3008
+ */
3009
+ "e18e/no-delete-property"?: Linter.RuleEntry<[]>;
3010
+ /**
3011
+ * Prefer optimized alternatives to `indexOf()` equality checks
3012
+ */
3013
+ "e18e/no-indexof-equality"?: Linter.RuleEntry<[]>;
3014
+ /**
3015
+ * Disallow spreading the accumulator inside a `reduce` callback (O(N²) growth)
3016
+ */
3017
+ "e18e/no-spread-in-reduce"?: Linter.RuleEntry<[]>;
3018
+ /**
3019
+ * Prefer Array.prototype.at() over length-based indexing
3020
+ */
3021
+ "e18e/prefer-array-at"?: Linter.RuleEntry<[]>;
3022
+ /**
3023
+ * Prefer Array.prototype.fill() over Array.from or map with constant values
3024
+ */
3025
+ "e18e/prefer-array-fill"?: Linter.RuleEntry<[]>;
3026
+ /**
3027
+ * Prefer Array.from(iterable, mapper) over [...iterable].map(mapper) to avoid intermediate array allocation
3028
+ */
3029
+ "e18e/prefer-array-from-map"?: Linter.RuleEntry<[]>;
3030
+ /**
3031
+ * Prefer Array.some() over Array.find() and Array.filter().length checks when checking for element existence
3032
+ */
3033
+ "e18e/prefer-array-some"?: Linter.RuleEntry<[]>;
3034
+ /**
3035
+ * Prefer Array.prototype.toReversed() over copying and reversing arrays
3036
+ */
3037
+ "e18e/prefer-array-to-reversed"?: Linter.RuleEntry<[]>;
3038
+ /**
3039
+ * Prefer Array.prototype.toSorted() over copying and sorting arrays
3040
+ */
3041
+ "e18e/prefer-array-to-sorted"?: Linter.RuleEntry<[]>;
3042
+ /**
3043
+ * Prefer Array.prototype.toSpliced() over copying and splicing arrays
3044
+ */
3045
+ "e18e/prefer-array-to-spliced"?: Linter.RuleEntry<[]>;
3046
+ /**
3047
+ * Prefer Date.now() over new Date().getTime() and +new Date()
3048
+ */
3049
+ "e18e/prefer-date-now"?: Linter.RuleEntry<[]>;
3050
+ /**
3051
+ * Prefer the exponentiation operator ** over Math.pow()
3052
+ */
3053
+ "e18e/prefer-exponentiation-operator"?: Linter.RuleEntry<[]>;
3054
+ /**
3055
+ * Prefer Array.prototype.flatMap() over .map(fn).flat() to avoid the intermediate array
3056
+ */
3057
+ "e18e/prefer-flatmap-over-map-flat"?: Linter.RuleEntry<[]>;
3058
+ /**
3059
+ * Prefer `Map.prototype.getOrInsert()` over reading an entry with a default and writing it back
3060
+ */
3061
+ "e18e/prefer-get-or-insert"?: Linter.RuleEntry<[]>;
3062
+ /**
3063
+ * Prefer .includes() over indexOf() comparisons for arrays and strings
3064
+ */
3065
+ "e18e/prefer-includes"?: Linter.RuleEntry<[]>;
3066
+ /**
3067
+ * Prefer String.prototype.{includes,startsWith,endsWith} over equivalent regex.test() calls
3068
+ */
3069
+ "e18e/prefer-includes-over-regex-test"?: Linter.RuleEntry<[]>;
3070
+ /**
3071
+ * Prefer inline equality checks over temporary object creation for simple comparisons
3072
+ */
3073
+ "e18e/prefer-inline-equality"?: Linter.RuleEntry<[]>;
3074
+ /**
3075
+ * Prefer nullish coalescing operator (?? and ??=) over verbose null checks
3076
+ */
3077
+ "e18e/prefer-nullish-coalescing"?: Linter.RuleEntry<[]>;
3078
+ /**
3079
+ * Prefer Object.hasOwn() over Object.prototype.hasOwnProperty.call() and obj.hasOwnProperty()
3080
+ */
3081
+ "e18e/prefer-object-has-own"?: Linter.RuleEntry<[]>;
3082
+ /**
3083
+ * prefer `RegExp.test()` over `String.match()` and `RegExp.exec()` when only checking for match existence
3084
+ */
3085
+ "e18e/prefer-regex-test"?: Linter.RuleEntry<[]>;
3086
+ /**
3087
+ * Prefer spread syntax over Array.concat(), Array.from(), Object.assign({}, ...), and Function.apply()
3088
+ */
3089
+ "e18e/prefer-spread-syntax"?: Linter.RuleEntry<[]>;
3090
+ /**
3091
+ * Prefer hoisting an `Intl.Collator` instance over calling localeCompare in a sort callback
3092
+ */
3093
+ "e18e/prefer-static-collator"?: Linter.RuleEntry<[]>;
3094
+ /**
3095
+ * Prefer defining regular expressions at module scope to avoid re-compilation on every function call
3096
+ */
3097
+ "e18e/prefer-static-regex"?: Linter.RuleEntry<[]>;
3098
+ /**
3099
+ * Prefer String.fromCharCode() over String.fromCodePoint() for code points below 0x10000
3100
+ */
3101
+ "e18e/prefer-string-fromcharcode"?: Linter.RuleEntry<[]>;
3102
+ /**
3103
+ * Prefer passing function and arguments directly to setTimeout/setInterval instead of wrapping in an arrow function or using bind
3104
+ */
3105
+ "e18e/prefer-timer-args"?: Linter.RuleEntry<[]>;
3106
+ /**
3107
+ * Prefer URL.canParse() over try-catch blocks for URL validation
3108
+ */
3109
+ "e18e/prefer-url-canparse"?: Linter.RuleEntry<[]>;
3110
+ }
3111
+ /* ======= Declarations ======= */
3112
+ // ----- e18e/ban-dependencies -----
3113
+ type E18EBanDependencies = [] | [{
3114
+ presets?: string[];
3115
+ modules?: string[];
3116
+ allowed?: string[];
3117
+ }];
3118
+ //#endregion
2996
3119
  //#region src/_generated/dts/eslint-comments.d.ts
2997
3120
  interface EslintCommentsRuleOptions {
2998
3121
  /**
@@ -16056,7 +16179,7 @@ type YamlSpacedComment = [] | ["always" | "never"] | ["always" | "never", {
16056
16179
  }];
16057
16180
  //#endregion
16058
16181
  //#region src/_generated/rule-options.d.ts
16059
- type RuleOptionsUnion = BuiltinsRuleOptions & AntfuRuleOptions & CommandRuleOptions & DeMorganRuleOptions & EslintCommentsRuleOptions & EslintReactRuleOptions & IgnoresRuleOptions & ImportsRuleOptions & JavascriptRuleOptions$1 & JsdocRuleOptions & JsoncRuleOptions & MarkdownRuleOptions & NRuleOptions & NoOnlyTestsRuleOptions & PerfectionistRuleOptions & PnpmRuleOptions & PrettierRuleOptions & ReactHooksRuleOptions & RegexpRuleOptions & SortPackageJsonRuleOptions & SortTsconfigRuleOptions & StylisticRuleOptions & TomlRuleOptions & TypescriptRuleOptions & UnicornRuleOptions & VitestRuleOptions & YmlRuleOptions;
16182
+ type RuleOptionsUnion = BuiltinsRuleOptions & AntfuRuleOptions & CommandRuleOptions & DeMorganRuleOptions & E18eRuleOptions & EslintCommentsRuleOptions & EslintReactRuleOptions & IgnoresRuleOptions & ImportsRuleOptions & JavascriptRuleOptions$1 & JsdocRuleOptions & JsoncRuleOptions & MarkdownRuleOptions & NRuleOptions & NoOnlyTestsRuleOptions & PerfectionistRuleOptions & PnpmRuleOptions & PrettierRuleOptions & ReactHooksRuleOptions & RegexpRuleOptions & SortPackageJsonRuleOptions & SortTsconfigRuleOptions & StylisticRuleOptions & TomlRuleOptions & TypescriptRuleOptions & UnicornRuleOptions & VitestRuleOptions & YmlRuleOptions;
16060
16183
  //#endregion
16061
16184
  //#region src/types.d.ts
16062
16185
  type RulesRecord = Linter.RulesRecord & RuleOptionsUnion;
@@ -16797,4 +16920,4 @@ declare function error2warn<T extends Config>(configs: T[]): T[];
16797
16920
  declare function warn2error<T extends Config>(configs: T[]): T[];
16798
16921
  declare function replaceTypescriptEslintPrefixInplace<T>(items: Record<string, T>, tsPrefix: string): void;
16799
16922
  //#endregion
16800
- export { type Awaitable, type Config, type EslintConfigFn, type JavascriptRuleOptions, type LanguageOptions, type OptionsCommon, type OptionsComponentExts, type OptionsConfig, type OptionsFiles, type OptionsHasTypeScript, type OptionsIsInEditor, type OptionsOverrides, type OptionsPrefix, type OptionsReact, type OptionsStylistic, type OptionsTypeScriptParserOptions, type OptionsTypeScriptWithTypes, type OptionsTypescript, type RenamePrefix, type RuleName, type RulesRecord, SLOW_RULES, type StylisticConfig, type TailwindEslintSettings, type TailwindOptions, type TypedFlatConfigItemWithId, type TypescriptConfigRules, type UnPromise, VERSION, changeRuleEntrySeverity, combine, combineAsync, jsse as default, jsse, defaultOptions, defineConfig, error2warn, globs_d_exports as globs, importPluginMarkdown, importPluginReact, importPluginReactRefresh, importPluginStylistic, interopDefault, isCI, isInEditor, jsseReact, normalizeOptions, parserPlain, parserTs, pluginAntfu, pluginDeMorgan, pluginEslintComments, pluginImportLite, pluginN, pluginPerfectionist, pluginPnpm, pluginRegexp, pluginTs, pluginUnicorn, pluginUnusedImports, renameRules, replaceTypescriptEslintPrefixInplace, scopeTypeScriptRules, turnOffRules, uniqueStrings, warn2error };
16923
+ export { type Awaitable, type Config, type EslintConfigFn, type JavascriptRuleOptions, type LanguageOptions, type OptionsCommon, type OptionsComponentExts, type OptionsConfig, type OptionsFiles, type OptionsHasTypeScript, type OptionsIsInEditor, type OptionsOverrides, type OptionsPrefix, type OptionsReact, type OptionsStylistic, type OptionsTypeScriptParserOptions, type OptionsTypeScriptWithTypes, type OptionsTypescript, type RenamePrefix, type RuleName, type RulesRecord, SLOW_RULES, type StylisticConfig, type TailwindEslintSettings, type TailwindOptions, type TypedFlatConfigItemWithId, type TypescriptConfigRules, type UnPromise, VERSION, changeRuleEntrySeverity, combine, combineAsync, jsse as default, jsse, defaultOptions, defineConfig, error2warn, globs_d_exports as globs, importPluginMarkdown, importPluginReact, importPluginReactRefresh, importPluginStylistic, interopDefault, isCI, isInEditor, jsseReact, normalizeOptions, parserPlain, parserTs, pluginAntfu, pluginDeMorgan, pluginE18e, pluginEslintComments, pluginImportLite, pluginN, pluginPerfectionist, pluginPnpm, pluginRegexp, pluginTs, pluginUnicorn, pluginUnusedImports, renameRules, replaceTypescriptEslintPrefixInplace, scopeTypeScriptRules, turnOffRules, uniqueStrings, warn2error };
package/dist/index.js CHANGED
@@ -1,9 +1,10 @@
1
1
  import { n as __exportAll, r as __toESM, t as __commonJSMin } from "./rolldown-runtime-DJK8HYOj.js";
2
- import { n as SLOW_RULES, r as VERSION, t as DEBUG } from "./const-BGD6_tOf.js";
2
+ import { n as SLOW_RULES, r as VERSION, t as DEBUG } from "./const-D_tT7WuW.js";
3
3
  import { builtinModules, createRequire } from "node:module";
4
4
  import process$1 from "node:process";
5
5
  import fs, { realpathSync, statSync } from "node:fs";
6
6
  import Debug from "debug";
7
+ import pluginE18e from "@e18e/eslint-plugin";
7
8
  import pluginEslintComments from "@eslint-community/eslint-plugin-eslint-comments";
8
9
  import pluginTs from "@typescript-eslint/eslint-plugin";
9
10
  import * as parserTs from "@typescript-eslint/parser";
@@ -418,6 +419,29 @@ const deMorgan = async () => {
418
419
  }];
419
420
  };
420
421
  //#endregion
422
+ //#region src/configs/e18e.ts
423
+ async function e18e(options = {}) {
424
+ const { isInEditor = false, modernization = true, type = "app", moduleReplacements = type === "lib" && isInEditor, overrides = {}, performanceImprovements = true } = options;
425
+ const configs = pluginE18e.configs;
426
+ return [{
427
+ name: "jsse/e18e/rules",
428
+ plugins: { e18e: pluginE18e },
429
+ rules: {
430
+ ...modernization && { ...configs.modernization.rules },
431
+ ...moduleReplacements && { ...configs.moduleReplacements.rules },
432
+ ...performanceImprovements && { ...configs.performanceImprovements.rules },
433
+ ...type !== "lib" && { "e18e/prefer-static-regex": "off" },
434
+ "e18e/prefer-array-at": "off",
435
+ "e18e/prefer-array-from-map": "off",
436
+ "e18e/prefer-array-to-reversed": "off",
437
+ "e18e/prefer-array-to-sorted": "off",
438
+ "e18e/prefer-array-to-spliced": "off",
439
+ "e18e/prefer-spread-syntax": "off",
440
+ ...overrides
441
+ }
442
+ }];
443
+ }
444
+ //#endregion
421
445
  //#region src/configs/eslint-comments.ts
422
446
  const eslintComments = async () => [{
423
447
  files: GLOB_CODE,
@@ -12697,7 +12721,7 @@ async function jsse(options = {}, ...userConfigs) {
12697
12721
  isInEditor,
12698
12722
  overrides: overrides.javascript,
12699
12723
  reportUnusedDisableDirectives
12700
- }), eslintComments(), n(), jsdoc(), imports({ stylistic: stylisticOptions }), unicorn(), antfu(), deMorgan());
12724
+ }), eslintComments(), n(), jsdoc(), imports({ stylistic: stylisticOptions }), unicorn(), antfu(), deMorgan(), e18e());
12701
12725
  if (enableSortImports) configs.push(perfectionist());
12702
12726
  /**
12703
12727
  * =========================================================================
@@ -12794,4 +12818,4 @@ const jsseReact = (options, ...configs) => {
12794
12818
  }, ...configs);
12795
12819
  };
12796
12820
  //#endregion
12797
- export { SLOW_RULES, VERSION, changeRuleEntrySeverity, combine, combineAsync, jsse as default, jsse, defaultOptions, defineConfig, error2warn, globs_exports as globs, importPluginMarkdown, importPluginReact, importPluginReactRefresh, importPluginStylistic, interopDefault, isCI, isInEditor, jsseReact, normalizeOptions, parserPlain, parserTs, pluginAntfu, pluginDeMorgan, pluginEslintComments, pluginImportLite, pluginN, pluginPerfectionist, pluginPnpm, pluginRegexp, pluginTs, pluginUnicorn, pluginUnusedImports, renameRules, replaceTypescriptEslintPrefixInplace, scopeTypeScriptRules, turnOffRules, uniqueStrings, warn2error };
12821
+ export { SLOW_RULES, VERSION, changeRuleEntrySeverity, combine, combineAsync, jsse as default, jsse, defaultOptions, defineConfig, error2warn, globs_exports as globs, importPluginMarkdown, importPluginReact, importPluginReactRefresh, importPluginStylistic, interopDefault, isCI, isInEditor, jsseReact, normalizeOptions, parserPlain, parserTs, pluginAntfu, pluginDeMorgan, pluginE18e, pluginEslintComments, pluginImportLite, pluginN, pluginPerfectionist, pluginPnpm, pluginRegexp, pluginTs, pluginUnicorn, pluginUnusedImports, renameRules, replaceTypescriptEslintPrefixInplace, scopeTypeScriptRules, turnOffRules, uniqueStrings, warn2error };
@@ -1 +1 @@
1
- {"root":["../src/cli.ts","../src/config-fns.ts","../src/configs.test.ts","../src/const.ts","../src/define-config.ts","../src/fixable.test.ts","../src/fixable.ts","../src/globs.ts","../src/index.ts","../src/lager.ts","../src/options.test.ts","../src/options.ts","../src/plugins-all.test.ts","../src/plugins-all.ts","../src/plugins.ts","../src/postprocess.test.ts","../src/postprocess.ts","../src/presets.ts","../src/types.ts","../src/utils.ts","../src/_generated/fixable-rules-map.ts","../src/_generated/rule-options.d.ts","../src/_generated/version.ts","../src/_generated/dts/antfu.d.ts","../src/_generated/dts/builtins.d.ts","../src/_generated/dts/command.d.ts","../src/_generated/dts/de-morgan.d.ts","../src/_generated/dts/eslint-comments.d.ts","../src/_generated/dts/eslint-react.d.ts","../src/_generated/dts/ignores.d.ts","../src/_generated/dts/imports.d.ts","../src/_generated/dts/javascript.d.ts","../src/_generated/dts/jsdoc.d.ts","../src/_generated/dts/jsonc.d.ts","../src/_generated/dts/markdown.d.ts","../src/_generated/dts/n.d.ts","../src/_generated/dts/no-only-tests.d.ts","../src/_generated/dts/perfectionist.d.ts","../src/_generated/dts/pnpm.d.ts","../src/_generated/dts/prettier.d.ts","../src/_generated/dts/react-hooks.d.ts","../src/_generated/dts/regexp.d.ts","../src/_generated/dts/sort-package-json.d.ts","../src/_generated/dts/sort-tsconfig.d.ts","../src/_generated/dts/stylistic.d.ts","../src/_generated/dts/toml.d.ts","../src/_generated/dts/typescript.d.ts","../src/_generated/dts/unicorn.d.ts","../src/_generated/dts/vitest.d.ts","../src/_generated/dts/yml.d.ts","../src/configs/_template.ts","../src/configs/antfu.ts","../src/configs/command.ts","../src/configs/de-morgan.ts","../src/configs/disables.ts","../src/configs/eslint-comments.ts","../src/configs/eslint-react.ts","../src/configs/ignores.ts","../src/configs/imports.ts","../src/configs/javascript.ts","../src/configs/jsdoc.ts","../src/configs/jsonc.ts","../src/configs/markdown.ts","../src/configs/n.ts","../src/configs/no-only-tests.ts","../src/configs/perfectionist.ts","../src/configs/pnpm.ts","../src/configs/prettier.ts","../src/configs/react-hooks.ts","../src/configs/react.ts","../src/configs/regexp.ts","../src/configs/rules.test.ts","../src/configs/sort-package-json.ts","../src/configs/sort-tsconfig.ts","../src/configs/stylistic.ts","../src/configs/toml.ts","../src/configs/tsdoc.ts","../src/configs/unicorn.ts","../src/configs/vitest.ts","../src/configs/yml.ts","../src/configs/_legacy/tailwind.ts","../src/configs/ts/parser.ts","../src/configs/ts/requires-type-checking.ts","../src/configs/ts/typescript-language-options.ts","../src/configs/ts/typescript-rules.ts","../src/configs/ts/typescript.ts"],"version":"6.0.3"}
1
+ {"root":["../src/cli.ts","../src/config-fns.ts","../src/configs.test.ts","../src/const.ts","../src/define-config.ts","../src/fixable.test.ts","../src/fixable.ts","../src/globs.ts","../src/index.ts","../src/lager.ts","../src/options.test.ts","../src/options.ts","../src/plugins-all.test.ts","../src/plugins-all.ts","../src/plugins.ts","../src/postprocess.test.ts","../src/postprocess.ts","../src/presets.ts","../src/types.ts","../src/utils.ts","../src/_generated/fixable-rules-map.ts","../src/_generated/rule-options.d.ts","../src/_generated/version.ts","../src/_generated/dts/antfu.d.ts","../src/_generated/dts/builtins.d.ts","../src/_generated/dts/command.d.ts","../src/_generated/dts/de-morgan.d.ts","../src/_generated/dts/e18e.d.ts","../src/_generated/dts/eslint-comments.d.ts","../src/_generated/dts/eslint-react.d.ts","../src/_generated/dts/ignores.d.ts","../src/_generated/dts/imports.d.ts","../src/_generated/dts/javascript.d.ts","../src/_generated/dts/jsdoc.d.ts","../src/_generated/dts/jsonc.d.ts","../src/_generated/dts/markdown.d.ts","../src/_generated/dts/n.d.ts","../src/_generated/dts/no-only-tests.d.ts","../src/_generated/dts/perfectionist.d.ts","../src/_generated/dts/pnpm.d.ts","../src/_generated/dts/prettier.d.ts","../src/_generated/dts/react-hooks.d.ts","../src/_generated/dts/regexp.d.ts","../src/_generated/dts/sort-package-json.d.ts","../src/_generated/dts/sort-tsconfig.d.ts","../src/_generated/dts/stylistic.d.ts","../src/_generated/dts/toml.d.ts","../src/_generated/dts/typescript.d.ts","../src/_generated/dts/unicorn.d.ts","../src/_generated/dts/vitest.d.ts","../src/_generated/dts/yml.d.ts","../src/configs/_template.ts","../src/configs/antfu.ts","../src/configs/command.ts","../src/configs/de-morgan.ts","../src/configs/disables.ts","../src/configs/e18e.ts","../src/configs/eslint-comments.ts","../src/configs/eslint-react.ts","../src/configs/ignores.ts","../src/configs/imports.ts","../src/configs/javascript.ts","../src/configs/jsdoc.ts","../src/configs/jsonc.ts","../src/configs/markdown.ts","../src/configs/n.ts","../src/configs/no-only-tests.ts","../src/configs/perfectionist.ts","../src/configs/pnpm.ts","../src/configs/prettier.ts","../src/configs/react-hooks.ts","../src/configs/react.ts","../src/configs/regexp.ts","../src/configs/rules.test.ts","../src/configs/sort-package-json.ts","../src/configs/sort-tsconfig.ts","../src/configs/stylistic.ts","../src/configs/toml.ts","../src/configs/tsdoc.ts","../src/configs/unicorn.ts","../src/configs/vitest.ts","../src/configs/yml.ts","../src/configs/_legacy/tailwind.ts","../src/configs/ts/parser.ts","../src/configs/ts/requires-type-checking.ts","../src/configs/ts/typescript-language-options.ts","../src/configs/ts/typescript-rules.ts","../src/configs/ts/typescript.ts"],"version":"6.0.3"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@jsse/eslint-config",
3
3
  "type": "module",
4
- "version": "0.8.3",
4
+ "version": "0.8.4",
5
5
  "description": "@jsse/eslint-config ~ WYSIWYG",
6
6
  "author": "jessekrubin <jessekrubin@gmail.com> (https://github.com/jessekrubin/)",
7
7
  "license": "MIT",
@@ -63,13 +63,14 @@
63
63
  }
64
64
  },
65
65
  "dependencies": {
66
+ "@e18e/eslint-plugin": "^0.5.1",
66
67
  "@eslint-community/eslint-plugin-eslint-comments": "^4.7.2",
67
68
  "@eslint/js": "^10.0.1",
68
69
  "@eslint/markdown": "^8.0.2",
69
70
  "@stylistic/eslint-plugin": "5.10.0",
70
- "@typescript-eslint/eslint-plugin": "^8.62.0",
71
- "@typescript-eslint/parser": "^8.62.0",
72
- "@typescript-eslint/rule-tester": "^8.62.0",
71
+ "@typescript-eslint/eslint-plugin": "^8.62.1",
72
+ "@typescript-eslint/parser": "^8.62.1",
73
+ "@typescript-eslint/rule-tester": "^8.62.1",
73
74
  "debug": "^4.4.3",
74
75
  "eslint-config-flat-gitignore": "^2.3.0",
75
76
  "eslint-merge-processors": "^2.0.0",
@@ -77,7 +78,7 @@
77
78
  "eslint-plugin-command": "^3.5.2",
78
79
  "eslint-plugin-de-morgan": "^2.1.2",
79
80
  "eslint-plugin-import-lite": "^0.6.0",
80
- "eslint-plugin-jsdoc": "^63.0.7",
81
+ "eslint-plugin-jsdoc": "^63.0.10",
81
82
  "eslint-plugin-jsonc": "^3.2.0",
82
83
  "eslint-plugin-n": "^18.2.1",
83
84
  "eslint-plugin-no-only-tests": "^3.4.0",
@@ -85,7 +86,7 @@
85
86
  "eslint-plugin-pnpm": "^1.6.1",
86
87
  "eslint-plugin-react-hooks": "^7.1.1",
87
88
  "eslint-plugin-react-refresh": "^0.5.3",
88
- "eslint-plugin-regexp": "^3.1.0",
89
+ "eslint-plugin-regexp": "^3.1.1",
89
90
  "eslint-plugin-toml": "^1.4.0",
90
91
  "eslint-plugin-unicorn": "^69.0.0",
91
92
  "eslint-plugin-unused-imports": "^4.4.1",
@@ -97,16 +98,16 @@
97
98
  },
98
99
  "devDependencies": {
99
100
  "@changesets/cli": "^2.31.0",
100
- "@eslint-react/eslint-plugin": "^5.9.2",
101
+ "@eslint-react/eslint-plugin": "^5.10.0",
101
102
  "@jsse/prettier-config": "^1.0.2",
102
103
  "@jsse/tsconfig": "^0.5.1",
103
- "@optique/core": "^1.1.0",
104
- "@optique/run": "^1.1.0",
104
+ "@optique/core": "^1.1.1",
105
+ "@optique/run": "^1.1.1",
105
106
  "@types/debug": "^4.1.13",
106
107
  "@types/fs-extra": "^11.0.4",
107
108
  "@types/node": "^24.13.2",
108
109
  "@vitest/eslint-plugin": "^1.6.20",
109
- "eslint": "^10.5.0",
110
+ "eslint": "^10.6.0",
110
111
  "eslint-flat-config-utils": "^3.2.0",
111
112
  "eslint-plugin-react": "^7.37.5",
112
113
  "eslint-typegen": "^2.3.1",
@@ -115,12 +116,12 @@
115
116
  "fast-glob": "^3.3.3",
116
117
  "fs-extra": "^11.3.5",
117
118
  "globals": "^17.7.0",
118
- "knip": "^6.18.0",
119
+ "knip": "^6.23.0",
119
120
  "local-pkg": "^1.2.1",
120
121
  "oxfmt": "^0.56.0",
121
122
  "oxlint": "^1.71.0",
122
123
  "picocolors": "^1.1.1",
123
- "prettier": "^3.8.4",
124
+ "prettier": "^3.9.3",
124
125
  "publint": "^0.3.21",
125
126
  "react": "~19.2.7",
126
127
  "rimraf": "^6.1.3",