@isentinel/eslint-config 4.2.1 → 4.3.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.
package/dist/cli.mjs CHANGED
@@ -1,16 +1,16 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import process from "node:process";
1
4
  import { cancel, confirm, group, intro, log, multiselect, note, outro } from "@clack/prompts";
5
+ import fsp from "node:fs/promises";
2
6
  import ansis from "ansis";
3
- import process from "node:process";
4
7
  import yargs from "yargs";
5
8
  import { hideBin } from "yargs/helpers";
6
- import fs from "node:fs";
7
- import fsp from "node:fs/promises";
8
- import path from "node:path";
9
9
  import { existsSync, readFileSync } from "fs";
10
10
  import { execSync } from "node:child_process";
11
11
 
12
12
  //#region package.json
13
- var version = "4.2.1";
13
+ var version = "4.3.0";
14
14
  var package_default = {
15
15
  name: "@isentinel/eslint-config",
16
16
  version,
@@ -488,8 +488,8 @@ const versionsMap = {
488
488
  "eslint": "9.39.1",
489
489
  "eslint-plugin-jest": "29.0.1",
490
490
  "eslint-plugin-react-hooks": "7.0.1",
491
- "eslint-plugin-react-naming-convention": "2.3.4",
492
- "eslint-plugin-react-x": "2.3.4"
491
+ "eslint-plugin-react-naming-convention": "2.3.5",
492
+ "eslint-plugin-react-x": "2.3.5"
493
493
  };
494
494
 
495
495
  //#endregion
package/dist/index.d.mts CHANGED
@@ -2739,6 +2739,21 @@ interface RuleOptions {
2739
2739
  * @see https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/blob/HEAD/docs/rules/valid-exports.md
2740
2740
  */
2741
2741
  'package-json/valid-exports'?: Linter.RuleEntry<[]>;
2742
+ /**
2743
+ * Enforce that the `files` property is valid.
2744
+ * @see https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/blob/HEAD/docs/rules/valid-files.md
2745
+ */
2746
+ 'package-json/valid-files'?: Linter.RuleEntry<[]>;
2747
+ /**
2748
+ * Enforce that the `homepage` property is valid.
2749
+ * @see https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/blob/HEAD/docs/rules/valid-homepage.md
2750
+ */
2751
+ 'package-json/valid-homepage'?: Linter.RuleEntry<[]>;
2752
+ /**
2753
+ * Enforce that the `keywords` property is valid.
2754
+ * @see https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/blob/HEAD/docs/rules/valid-keywords.md
2755
+ */
2756
+ 'package-json/valid-keywords'?: Linter.RuleEntry<[]>;
2742
2757
  /**
2743
2758
  * Enforce that the `license` property is valid.
2744
2759
  * @see https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/blob/HEAD/docs/rules/valid-license.md
@@ -2750,6 +2765,11 @@ interface RuleOptions {
2750
2765
  * @deprecated
2751
2766
  */
2752
2767
  'package-json/valid-local-dependency'?: Linter.RuleEntry<[]>;
2768
+ /**
2769
+ * Enforce that the `main` property is valid.
2770
+ * @see https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/blob/HEAD/docs/rules/valid-main.md
2771
+ */
2772
+ 'package-json/valid-main'?: Linter.RuleEntry<[]>;
2753
2773
  /**
2754
2774
  * Enforce that package names are valid npm package names
2755
2775
  * @see https://github.com/JoshuaKGoldberg/eslint-plugin-package-json/blob/HEAD/docs/rules/valid-name.md
@@ -3680,6 +3700,11 @@ interface RuleOptions {
3680
3700
  * @see https://github.com/roblox-ts/eslint-plugin-roblox-ts/tree/main/src/rules/no-private-identifier/documentation.md
3681
3701
  */
3682
3702
  'roblox/no-private-identifier'?: Linter.RuleEntry<[]>;
3703
+ /**
3704
+ * Enforce that only npm scopes listed in typeRoots can be imported
3705
+ * @see https://github.com/roblox-ts/eslint-plugin-roblox-ts/tree/main/src/rules/no-undeclared-scope/documentation.md
3706
+ */
3707
+ 'roblox/no-undeclared-scope'?: Linter.RuleEntry<[]>;
3683
3708
  /**
3684
3709
  * Disallow unsupported syntax in roblox-ts
3685
3710
  * @see https://github.com/roblox-ts/eslint-plugin-roblox-ts/tree/main/src/rules/no-unsupported-syntax/documentation.md
@@ -16582,7 +16607,9 @@ type TypedFlatConfigItem = Omit<Linter.Config<Linter.RulesRecord & Rules>, "plug
16582
16607
  declare function comments(options?: OptionsFormatters & OptionsStylistic): Promise<Array<TypedFlatConfigItem>>;
16583
16608
  //#endregion
16584
16609
  //#region src/configs/disables.d.ts
16585
- declare function disables(): Promise<Array<TypedFlatConfigItem>>;
16610
+ declare function disables(options: {
16611
+ root: Array<string>;
16612
+ }): Promise<Array<TypedFlatConfigItem>>;
16586
16613
  //#endregion
16587
16614
  //#region src/configs/eslint-plugin.d.ts
16588
16615
  declare function eslintPlugin(options?: OptionsFiles & OptionsOverrides): Promise<Array<TypedFlatConfigItem>>;
package/dist/index.mjs CHANGED
@@ -1,8 +1,8 @@
1
1
  import Module, { createRequire } from "node:module";
2
- import process from "node:process";
2
+ import { isPackageExists } from "local-pkg";
3
3
  import fs from "node:fs";
4
4
  import path, { dirname, join, relative, resolve } from "node:path";
5
- import { isPackageExists } from "local-pkg";
5
+ import process from "node:process";
6
6
  import prettier$1 from "prettier";
7
7
  import { findUpSync } from "find-up-simple";
8
8
  import { convertIgnorePatternToMinimatch } from "@eslint/compat";
@@ -446,7 +446,8 @@ async function comments(options = {}) {
446
446
 
447
447
  //#endregion
448
448
  //#region src/configs/disables.ts
449
- async function disables() {
449
+ async function disables(options) {
450
+ const { root } = options;
450
451
  return [
451
452
  {
452
453
  files: [`**/scripts/${GLOB_SRC}`],
@@ -516,7 +517,7 @@ async function disables() {
516
517
  rules: { "ts/no-require-imports": "off" }
517
518
  },
518
519
  {
519
- files: ["*.?([cm])[jt]s?(x)", `*.md/${GLOB_SRC}`],
520
+ files: [...root, `*.md/${GLOB_SRC}`],
520
521
  name: "isentinel/disables/root",
521
522
  rules: {
522
523
  "sonar/file-name-differ-from-class": "off",
@@ -4576,7 +4577,11 @@ async function packageJson(options = {}) {
4576
4577
  "package-json/valid-devDependencies": "error",
4577
4578
  "package-json/valid-directories": "error",
4578
4579
  "package-json/valid-exports": "error",
4580
+ "package-json/valid-files": "error",
4581
+ "package-json/valid-homepage": "error",
4582
+ "package-json/valid-keywords": "error",
4579
4583
  "package-json/valid-license": "error",
4584
+ "package-json/valid-main": "error",
4580
4585
  "package-json/valid-name": "error",
4581
4586
  "package-json/valid-optionalDependencies": "error",
4582
4587
  "package-json/valid-peerDependencies": "error",
@@ -4965,6 +4970,7 @@ const defaultPluginRenaming = {
4965
4970
  */
4966
4971
  async function isentinel(options = {}, ...userConfigs) {
4967
4972
  const { autoRenamePlugins = true, componentExts: componentExtensions = [], eslintPlugin: enableEslintPlugin = false, formatters, gitignore: enableGitignore = true, jsdoc: enableJsdoc = true, jsx: enableJsx = true, pnpm: enableCatalogs = false, react: enableReact = false, root: customRootGlobs, spellCheck: enableSpellCheck, typescript: enableTypeScript } = options;
4973
+ const rootGlobs = mergeGlobs(GLOB_ROOT, customRootGlobs);
4968
4974
  const enableRoblox = options.roblox !== false;
4969
4975
  let { isInEditor } = options;
4970
4976
  if (isInEditor === void 0) {
@@ -5024,7 +5030,7 @@ async function isentinel(options = {}, ...userConfigs) {
5024
5030
  componentExts: componentExtensions,
5025
5031
  stylistic: stylisticOptions
5026
5032
  }), unicorn({
5027
- root: customRootGlobs,
5033
+ root: rootGlobs,
5028
5034
  stylistic: stylisticOptions
5029
5035
  }));
5030
5036
  if (options.flawless === true) configs.push(flawless({ ...getOverrides(options, "flawless") }));
@@ -5092,7 +5098,7 @@ async function isentinel(options = {}, ...userConfigs) {
5092
5098
  componentExts: componentExtensions,
5093
5099
  isInEditor
5094
5100
  }));
5095
- configs.push(disables());
5101
+ configs.push(disables({ root: rootGlobs }));
5096
5102
  if (stylisticOptions !== false) configs.push(prettier({
5097
5103
  ...resolveWithDefaults(enableTypeScript, {}),
5098
5104
  ...getOverrides(options, "typescript"),
@@ -5500,6 +5506,7 @@ async function roblox(options = {}, formatLua = true) {
5500
5506
  "roblox/no-object-math": "error",
5501
5507
  "roblox/no-post-fix-new": "error",
5502
5508
  "roblox/no-preceding-spread-element": "error",
5509
+ "roblox/no-undeclared-scope": "error",
5503
5510
  "roblox/size-method": "error",
5504
5511
  "sentinel/explicit-size-check": "error"
5505
5512
  };
@@ -9190,7 +9197,7 @@ var require_RuleCreator = /* @__PURE__ */ __commonJS({ "node_modules/.pnpm/@type
9190
9197
  * @returns Function to create a rule with the docs URL format.
9191
9198
  */
9192
9199
  function RuleCreator(urlCreator) {
9193
- return function createNamedRule({ meta, name: name$1,...rule$4 }) {
9200
+ return function createNamedRule({ meta, name: name$1, ...rule$4 }) {
9194
9201
  return createRule$1({
9195
9202
  meta: {
9196
9203
  ...meta,
@@ -17195,18 +17202,18 @@ var require_dist = /* @__PURE__ */ __commonJS({ "node_modules/.pnpm/@typescript-
17195
17202
  }) });
17196
17203
 
17197
17204
  //#endregion
17198
- //#region node_modules/.pnpm/eslint-plugin-erasable-syntax-only@0.4.0_@typescript-eslint+parser@8.46.3_eslint@9.39.1_d9d9d8c21ee26dabf7a90d7ffed9d171/node_modules/eslint-plugin-erasable-syntax-only/lib/utils.js
17205
+ //#region node_modules/.pnpm/eslint-plugin-erasable-syntax-only@0.4.0_@typescript-eslint+parser@8.46.4_eslint@9.39.1_d8eeaeac748d966eb9d82c66f54ffe53/node_modules/eslint-plugin-erasable-syntax-only/lib/utils.js
17199
17206
  var import_dist$3, createRule;
17200
- var init_utils = __esm({ "node_modules/.pnpm/eslint-plugin-erasable-syntax-only@0.4.0_@typescript-eslint+parser@8.46.3_eslint@9.39.1_d9d9d8c21ee26dabf7a90d7ffed9d171/node_modules/eslint-plugin-erasable-syntax-only/lib/utils.js": (() => {
17201
- import_dist$3 = /* @__PURE__ */ __toESM(require_dist(), 1);
17207
+ var init_utils = __esm({ "node_modules/.pnpm/eslint-plugin-erasable-syntax-only@0.4.0_@typescript-eslint+parser@8.46.4_eslint@9.39.1_d8eeaeac748d966eb9d82c66f54ffe53/node_modules/eslint-plugin-erasable-syntax-only/lib/utils.js": (() => {
17208
+ import_dist$3 = require_dist();
17202
17209
  createRule = import_dist$3.ESLintUtils.RuleCreator((name$1) => `https://github.com/JoshuaKGoldberg/eslint-plugin-erasable-syntax-only/blob/main/docs/rules/${name$1}.md`);
17203
17210
  }) });
17204
17211
 
17205
17212
  //#endregion
17206
- //#region node_modules/.pnpm/eslint-plugin-erasable-syntax-only@0.4.0_@typescript-eslint+parser@8.46.3_eslint@9.39.1_d9d9d8c21ee26dabf7a90d7ffed9d171/node_modules/eslint-plugin-erasable-syntax-only/lib/rules/enums.js
17213
+ //#region node_modules/.pnpm/eslint-plugin-erasable-syntax-only@0.4.0_@typescript-eslint+parser@8.46.4_eslint@9.39.1_d8eeaeac748d966eb9d82c66f54ffe53/node_modules/eslint-plugin-erasable-syntax-only/lib/rules/enums.js
17207
17214
  var import_dist$2, rule;
17208
- var init_enums = __esm({ "node_modules/.pnpm/eslint-plugin-erasable-syntax-only@0.4.0_@typescript-eslint+parser@8.46.3_eslint@9.39.1_d9d9d8c21ee26dabf7a90d7ffed9d171/node_modules/eslint-plugin-erasable-syntax-only/lib/rules/enums.js": (() => {
17209
- import_dist$2 = /* @__PURE__ */ __toESM(require_dist(), 1);
17215
+ var init_enums = __esm({ "node_modules/.pnpm/eslint-plugin-erasable-syntax-only@0.4.0_@typescript-eslint+parser@8.46.4_eslint@9.39.1_d8eeaeac748d966eb9d82c66f54ffe53/node_modules/eslint-plugin-erasable-syntax-only/lib/rules/enums.js": (() => {
17216
+ import_dist$2 = require_dist();
17210
17217
  init_utils();
17211
17218
  rule = createRule({
17212
17219
  create(context) {
@@ -17269,10 +17276,10 @@ ${isExported ? "export " : ""}type ${name$1} = typeof ${name$1}[keyof typeof ${n
17269
17276
  }) });
17270
17277
 
17271
17278
  //#endregion
17272
- //#region node_modules/.pnpm/eslint-plugin-erasable-syntax-only@0.4.0_@typescript-eslint+parser@8.46.3_eslint@9.39.1_d9d9d8c21ee26dabf7a90d7ffed9d171/node_modules/eslint-plugin-erasable-syntax-only/lib/rules/import-aliases.js
17279
+ //#region node_modules/.pnpm/eslint-plugin-erasable-syntax-only@0.4.0_@typescript-eslint+parser@8.46.4_eslint@9.39.1_d8eeaeac748d966eb9d82c66f54ffe53/node_modules/eslint-plugin-erasable-syntax-only/lib/rules/import-aliases.js
17273
17280
  var import_dist$1, rule$1;
17274
- var init_import_aliases = __esm({ "node_modules/.pnpm/eslint-plugin-erasable-syntax-only@0.4.0_@typescript-eslint+parser@8.46.3_eslint@9.39.1_d9d9d8c21ee26dabf7a90d7ffed9d171/node_modules/eslint-plugin-erasable-syntax-only/lib/rules/import-aliases.js": (() => {
17275
- import_dist$1 = /* @__PURE__ */ __toESM(require_dist(), 1);
17281
+ var init_import_aliases = __esm({ "node_modules/.pnpm/eslint-plugin-erasable-syntax-only@0.4.0_@typescript-eslint+parser@8.46.4_eslint@9.39.1_d8eeaeac748d966eb9d82c66f54ffe53/node_modules/eslint-plugin-erasable-syntax-only/lib/rules/import-aliases.js": (() => {
17282
+ import_dist$1 = require_dist();
17276
17283
  init_utils();
17277
17284
  rule$1 = createRule({
17278
17285
  create(context) {
@@ -17341,7 +17348,7 @@ var init_lib$1 = __esm({ "node_modules/.pnpm/cached-factory@0.1.0/node_modules/c
17341
17348
  }) });
17342
17349
 
17343
17350
  //#endregion
17344
- //#region node_modules/.pnpm/eslint-plugin-erasable-syntax-only@0.4.0_@typescript-eslint+parser@8.46.3_eslint@9.39.1_d9d9d8c21ee26dabf7a90d7ffed9d171/node_modules/eslint-plugin-erasable-syntax-only/lib/rules/namespaces.js
17351
+ //#region node_modules/.pnpm/eslint-plugin-erasable-syntax-only@0.4.0_@typescript-eslint+parser@8.46.4_eslint@9.39.1_d8eeaeac748d966eb9d82c66f54ffe53/node_modules/eslint-plugin-erasable-syntax-only/lib/rules/namespaces.js
17345
17352
  function skipExportParent(node$1) {
17346
17353
  return node$1.parent.type == import_dist.AST_NODE_TYPES.ExportNamedDeclaration ? node$1.parent : node$1;
17347
17354
  }
@@ -17349,8 +17356,8 @@ function skipModuleParent(node$1) {
17349
17356
  return node$1.parent.type === import_dist.AST_NODE_TYPES.TSModuleDeclaration ? node$1.parent : node$1;
17350
17357
  }
17351
17358
  var import_dist, rule$2;
17352
- var init_namespaces = __esm({ "node_modules/.pnpm/eslint-plugin-erasable-syntax-only@0.4.0_@typescript-eslint+parser@8.46.3_eslint@9.39.1_d9d9d8c21ee26dabf7a90d7ffed9d171/node_modules/eslint-plugin-erasable-syntax-only/lib/rules/namespaces.js": (() => {
17353
- import_dist = /* @__PURE__ */ __toESM(require_dist(), 1);
17359
+ var init_namespaces = __esm({ "node_modules/.pnpm/eslint-plugin-erasable-syntax-only@0.4.0_@typescript-eslint+parser@8.46.4_eslint@9.39.1_d8eeaeac748d966eb9d82c66f54ffe53/node_modules/eslint-plugin-erasable-syntax-only/lib/rules/namespaces.js": (() => {
17360
+ import_dist = require_dist();
17354
17361
  init_lib$1();
17355
17362
  init_utils();
17356
17363
  rule$2 = createRule({
@@ -17384,9 +17391,9 @@ var init_namespaces = __esm({ "node_modules/.pnpm/eslint-plugin-erasable-syntax-
17384
17391
  }) });
17385
17392
 
17386
17393
  //#endregion
17387
- //#region node_modules/.pnpm/eslint-plugin-erasable-syntax-only@0.4.0_@typescript-eslint+parser@8.46.3_eslint@9.39.1_d9d9d8c21ee26dabf7a90d7ffed9d171/node_modules/eslint-plugin-erasable-syntax-only/lib/rules/parameter-properties.js
17394
+ //#region node_modules/.pnpm/eslint-plugin-erasable-syntax-only@0.4.0_@typescript-eslint+parser@8.46.4_eslint@9.39.1_d8eeaeac748d966eb9d82c66f54ffe53/node_modules/eslint-plugin-erasable-syntax-only/lib/rules/parameter-properties.js
17388
17395
  var rule$3;
17389
- var init_parameter_properties = __esm({ "node_modules/.pnpm/eslint-plugin-erasable-syntax-only@0.4.0_@typescript-eslint+parser@8.46.3_eslint@9.39.1_d9d9d8c21ee26dabf7a90d7ffed9d171/node_modules/eslint-plugin-erasable-syntax-only/lib/rules/parameter-properties.js": (() => {
17396
+ var init_parameter_properties = __esm({ "node_modules/.pnpm/eslint-plugin-erasable-syntax-only@0.4.0_@typescript-eslint+parser@8.46.4_eslint@9.39.1_d8eeaeac748d966eb9d82c66f54ffe53/node_modules/eslint-plugin-erasable-syntax-only/lib/rules/parameter-properties.js": (() => {
17390
17397
  init_utils();
17391
17398
  rule$3 = createRule({
17392
17399
  create(context) {
@@ -17409,9 +17416,9 @@ var init_parameter_properties = __esm({ "node_modules/.pnpm/eslint-plugin-erasab
17409
17416
  }) });
17410
17417
 
17411
17418
  //#endregion
17412
- //#region node_modules/.pnpm/eslint-plugin-erasable-syntax-only@0.4.0_@typescript-eslint+parser@8.46.3_eslint@9.39.1_d9d9d8c21ee26dabf7a90d7ffed9d171/node_modules/eslint-plugin-erasable-syntax-only/lib/rules/index.js
17419
+ //#region node_modules/.pnpm/eslint-plugin-erasable-syntax-only@0.4.0_@typescript-eslint+parser@8.46.4_eslint@9.39.1_d8eeaeac748d966eb9d82c66f54ffe53/node_modules/eslint-plugin-erasable-syntax-only/lib/rules/index.js
17413
17420
  var rules;
17414
- var init_rules = __esm({ "node_modules/.pnpm/eslint-plugin-erasable-syntax-only@0.4.0_@typescript-eslint+parser@8.46.3_eslint@9.39.1_d9d9d8c21ee26dabf7a90d7ffed9d171/node_modules/eslint-plugin-erasable-syntax-only/lib/rules/index.js": (() => {
17421
+ var init_rules = __esm({ "node_modules/.pnpm/eslint-plugin-erasable-syntax-only@0.4.0_@typescript-eslint+parser@8.46.4_eslint@9.39.1_d8eeaeac748d966eb9d82c66f54ffe53/node_modules/eslint-plugin-erasable-syntax-only/lib/rules/index.js": (() => {
17415
17422
  init_enums();
17416
17423
  init_import_aliases();
17417
17424
  init_namespaces();
@@ -17425,14 +17432,14 @@ var init_rules = __esm({ "node_modules/.pnpm/eslint-plugin-erasable-syntax-only@
17425
17432
  }) });
17426
17433
 
17427
17434
  //#endregion
17428
- //#region node_modules/.pnpm/eslint-plugin-erasable-syntax-only@0.4.0_@typescript-eslint+parser@8.46.3_eslint@9.39.1_d9d9d8c21ee26dabf7a90d7ffed9d171/node_modules/eslint-plugin-erasable-syntax-only/lib/index.js
17435
+ //#region node_modules/.pnpm/eslint-plugin-erasable-syntax-only@0.4.0_@typescript-eslint+parser@8.46.4_eslint@9.39.1_d8eeaeac748d966eb9d82c66f54ffe53/node_modules/eslint-plugin-erasable-syntax-only/lib/index.js
17429
17436
  var lib_exports = /* @__PURE__ */ __export({
17430
17437
  default: () => index_default,
17431
17438
  plugin: () => plugin,
17432
17439
  rules: () => rules
17433
17440
  });
17434
17441
  var name, version, plugin, recommended, index_default;
17435
- var init_lib = __esm({ "node_modules/.pnpm/eslint-plugin-erasable-syntax-only@0.4.0_@typescript-eslint+parser@8.46.3_eslint@9.39.1_d9d9d8c21ee26dabf7a90d7ffed9d171/node_modules/eslint-plugin-erasable-syntax-only/lib/index.js": (() => {
17442
+ var init_lib = __esm({ "node_modules/.pnpm/eslint-plugin-erasable-syntax-only@0.4.0_@typescript-eslint+parser@8.46.4_eslint@9.39.1_d8eeaeac748d966eb9d82c66f54ffe53/node_modules/eslint-plugin-erasable-syntax-only/lib/index.js": (() => {
17436
17443
  init_rules();
17437
17444
  ({name, version} = Module.createRequire(import.meta.url)("../package.json"));
17438
17445
  plugin = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@isentinel/eslint-config",
3
- "version": "4.2.1",
3
+ "version": "4.3.0",
4
4
  "description": "iSentinel's ESLint config",
5
5
  "keywords": [
6
6
  "eslint-config",
@@ -41,7 +41,7 @@
41
41
  "dependencies": {
42
42
  "@antfu/install-pkg": "1.1.0",
43
43
  "@clack/prompts": "0.11.0",
44
- "@cspell/eslint-plugin": "9.3.0",
44
+ "@cspell/eslint-plugin": "9.3.1",
45
45
  "@eslint-community/eslint-plugin-eslint-comments": "4.5.0",
46
46
  "@eslint/compat": "1.4.1",
47
47
  "@eslint/markdown": "7.5.1",
@@ -51,8 +51,8 @@
51
51
  "@prettier/plugin-oxc": "0.0.4",
52
52
  "@shopify/eslint-plugin": "50.0.0",
53
53
  "@stylistic/eslint-plugin": "5.5.0",
54
- "@typescript-eslint/eslint-plugin": "8.46.3",
55
- "@typescript-eslint/parser": "8.46.3",
54
+ "@typescript-eslint/eslint-plugin": "8.46.4",
55
+ "@typescript-eslint/parser": "8.46.4",
56
56
  "ansis": "4.2.0",
57
57
  "eslint-config-flat-gitignore": "2.1.0",
58
58
  "eslint-config-prettier": "10.1.8",
@@ -69,12 +69,12 @@
69
69
  "eslint-plugin-jsdoc": "61.1.12",
70
70
  "eslint-plugin-jsonc": "2.21.0",
71
71
  "eslint-plugin-no-only-tests": "3.3.0",
72
- "eslint-plugin-package-json": "0.65.3",
72
+ "eslint-plugin-package-json": "0.69.0",
73
73
  "eslint-plugin-perfectionist": "4.15.1",
74
74
  "eslint-plugin-pnpm": "1.3.0",
75
75
  "eslint-plugin-prettier": "5.5.4",
76
76
  "eslint-plugin-promise": "7.2.1",
77
- "eslint-plugin-roblox-ts": "1.2.1",
77
+ "eslint-plugin-roblox-ts": "1.3.0",
78
78
  "eslint-plugin-sentinel": "0.1.2",
79
79
  "eslint-plugin-sonarjs": "3.0.5",
80
80
  "eslint-plugin-toml": "0.12.0",
@@ -100,7 +100,7 @@
100
100
  "@types/node": "22.16.0",
101
101
  "@types/prompts": "2.4.9",
102
102
  "@types/yargs": "17.0.34",
103
- "@vitest/eslint-plugin": "1.4.1",
103
+ "@vitest/eslint-plugin": "1.4.2",
104
104
  "bumpp": "10.3.1",
105
105
  "eslint": "9.39.1",
106
106
  "eslint-plugin-erasable-syntax-only": "0.4.0",
@@ -108,8 +108,8 @@
108
108
  "eslint-plugin-jest": "29.0.1",
109
109
  "eslint-plugin-n": "17.23.1",
110
110
  "eslint-plugin-react-hooks": "7.0.1",
111
- "eslint-plugin-react-naming-convention": "2.3.4",
112
- "eslint-plugin-react-x": "2.3.4",
111
+ "eslint-plugin-react-naming-convention": "2.3.5",
112
+ "eslint-plugin-react-x": "2.3.5",
113
113
  "eslint-typegen": "2.3.0",
114
114
  "esno": "4.8.0",
115
115
  "execa": "9.6.0",
@@ -121,10 +121,10 @@
121
121
  "pnpm-workspace-yaml": "1.3.0",
122
122
  "rimraf": "6.1.0",
123
123
  "simple-git-hooks": "2.13.1",
124
- "tsdown": "0.16.1",
124
+ "tsdown": "0.16.4",
125
125
  "type-fest": "5.2.0",
126
126
  "typescript": "5.9.3",
127
- "@isentinel/eslint-config": "4.2.1"
127
+ "@isentinel/eslint-config": "4.3.0"
128
128
  },
129
129
  "peerDependencies": {
130
130
  "@vitest/eslint-plugin": "^1.0.0",