@isentinel/eslint-config 6.0.0-beta.30 → 6.0.0-beta.32

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
@@ -9,7 +9,7 @@ import path from "node:path";
9
9
  import { existsSync, readFileSync } from "fs";
10
10
  import { execSync } from "node:child_process";
11
11
  //#region package.json
12
- var version = "6.0.0-beta.30";
12
+ var version = "6.0.0-beta.32";
13
13
  var package_default = {
14
14
  name: "@isentinel/eslint-config",
15
15
  version,
package/dist/index.d.mts CHANGED
@@ -533,7 +533,7 @@ interface JsoncRuleDefaults {
533
533
  "*": "error";
534
534
  };
535
535
  "sonar/no-parameter-reassignment": {
536
- "*": "error";
536
+ "*": "off";
537
537
  };
538
538
  "sonar/no-redundant-boolean": {
539
539
  "*": "error";
@@ -854,6 +854,9 @@ interface MainRuleDefaults {
854
854
  "flawless/no-export-default-arrow": {
855
855
  "*": "error";
856
856
  };
857
+ "flawless/no-floating-point-equality": {
858
+ "*": "error";
859
+ };
857
860
  "flawless/prefer-parameter-destructuring": {
858
861
  "*": ["warn", {
859
862
  "allowSideEffectReordering": true;
@@ -2393,7 +2396,7 @@ interface MainRuleDefaults {
2393
2396
  "*": "error";
2394
2397
  };
2395
2398
  "sonar/no-parameter-reassignment": {
2396
- "*": "error";
2399
+ "*": "off";
2397
2400
  };
2398
2401
  "sonar/no-redundant-boolean": {
2399
2402
  "*": "error";
@@ -5915,7 +5918,7 @@ interface TomlRuleDefaults {
5915
5918
  "*": "error";
5916
5919
  };
5917
5920
  "sonar/no-parameter-reassignment": {
5918
- "*": "error";
5921
+ "*": "off";
5919
5922
  };
5920
5923
  "sonar/no-redundant-boolean": {
5921
5924
  "*": "error";
@@ -6227,7 +6230,7 @@ interface YamlRuleDefaults {
6227
6230
  "*": "error";
6228
6231
  };
6229
6232
  "sonar/no-parameter-reassignment": {
6230
- "*": "error";
6233
+ "*": "off";
6231
6234
  };
6232
6235
  "sonar/no-redundant-boolean": {
6233
6236
  "*": "error";
@@ -7078,102 +7081,107 @@ interface RuleOptions {
7078
7081
  'eslint-plugin/unique-test-case-names'?: Linter.RuleEntry<[]>;
7079
7082
  /**
7080
7083
  * Enforce arrow function return style based on line length
7081
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/arrow-return-style/documentation.md
7084
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/arrow-return-style/documentation.md
7082
7085
  */
7083
7086
  'flawless/arrow-return-style'?: Linter.RuleEntry<FlawlessArrowReturnStyle>;
7084
7087
  /**
7085
7088
  * Disallow shorthand boolean JSX attributes
7086
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/jsx-shorthand-boolean/documentation.md
7089
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/jsx-shorthand-boolean/documentation.md
7087
7090
  */
7088
7091
  'flawless/jsx-shorthand-boolean'?: Linter.RuleEntry<[]>;
7089
7092
  /**
7090
7093
  * Enforce a consistent fragment form: the shorthand `<>...</>` or a named fragment
7091
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/jsx-shorthand-fragment/documentation.md
7094
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/jsx-shorthand-fragment/documentation.md
7092
7095
  */
7093
7096
  'flawless/jsx-shorthand-fragment'?: Linter.RuleEntry<FlawlessJsxShorthandFragment>;
7094
7097
  /**
7095
7098
  * Enforce a maximum number of lines of code in a function
7096
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/max-lines-per-function/documentation.md
7099
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/max-lines-per-function/documentation.md
7097
7100
  */
7098
7101
  'flawless/max-lines-per-function'?: Linter.RuleEntry<FlawlessMaxLinesPerFunction>;
7099
7102
  /**
7100
7103
  * Enforce naming conventions for everything across a codebase
7101
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/naming-convention/documentation.md
7104
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/naming-convention/documentation.md
7102
7105
  */
7103
7106
  'flawless/naming-convention'?: Linter.RuleEntry<FlawlessNamingConvention>;
7104
7107
  /**
7105
7108
  * Disallow conditional logic in tests
7106
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/no-conditional-in-test/documentation.md
7109
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/no-conditional-in-test/documentation.md
7107
7110
  */
7108
7111
  'flawless/no-conditional-in-test'?: Linter.RuleEntry<FlawlessNoConditionalInTest>;
7109
7112
  /**
7110
7113
  * Disallow anonymous arrow functions as export default declarations
7111
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/no-export-default-arrow/documentation.md
7114
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/no-export-default-arrow/documentation.md
7112
7115
  */
7113
7116
  'flawless/no-export-default-arrow'?: Linter.RuleEntry<[]>;
7117
+ /**
7118
+ * Disallow exact equality checks involving floating-point-sensitive values
7119
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/no-floating-point-equality/documentation.md
7120
+ */
7121
+ 'flawless/no-floating-point-equality'?: Linter.RuleEntry<[]>;
7114
7122
  /**
7115
7123
  * Disallow tsconfig options that redundantly re-set a value already provided by an extended config
7116
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/no-redundant-tsconfig-options/documentation.md
7124
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/no-redundant-tsconfig-options/documentation.md
7117
7125
  */
7118
7126
  'flawless/no-redundant-tsconfig-options'?: Linter.RuleEntry<[]>;
7119
7127
  /**
7120
7128
  * Disallow unnecessary usage of 'useCallback'
7121
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/no-unnecessary-use-callback/documentation.md
7129
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/no-unnecessary-use-callback/documentation.md
7122
7130
  */
7123
7131
  'flawless/no-unnecessary-use-callback'?: Linter.RuleEntry<[]>;
7124
7132
  /**
7125
7133
  * Disallow unnecessary usage of 'useMemo'
7126
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/no-unnecessary-use-memo/documentation.md
7134
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/no-unnecessary-use-memo/documentation.md
7127
7135
  */
7128
7136
  'flawless/no-unnecessary-use-memo'?: Linter.RuleEntry<[]>;
7129
7137
  /**
7130
7138
  * Enforce a blank line after `expect.assertions` and `expect.hasAssertions`
7131
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/padding-after-expect-assertions/documentation.md
7139
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/padding-after-expect-assertions/documentation.md
7132
7140
  */
7133
7141
  'flawless/padding-after-expect-assertions'?: Linter.RuleEntry<[]>;
7134
7142
  /**
7135
7143
  * Enforce destructuring assignment for component props
7136
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/prefer-destructuring-assignment/documentation.md
7144
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/prefer-destructuring-assignment/documentation.md
7137
7145
  */
7138
7146
  'flawless/prefer-destructuring-assignment'?: Linter.RuleEntry<[]>;
7139
7147
  /**
7140
7148
  * Prefer having the last statement in a test be an assertion
7141
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/prefer-ending-with-an-expect/documentation.md
7149
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/prefer-ending-with-an-expect/documentation.md
7142
7150
  */
7143
7151
  'flawless/prefer-ending-with-an-expect'?: Linter.RuleEntry<FlawlessPreferEndingWithAnExpect>;
7144
7152
  /**
7145
7153
  * Prefer `expect.assertions(<count>)` over `expect.hasAssertions()`
7146
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/prefer-expect-assertions-count/documentation.md
7154
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/prefer-expect-assertions-count/documentation.md
7147
7155
  */
7148
7156
  'flawless/prefer-expect-assertions-count'?: Linter.RuleEntry<[]>;
7149
7157
  /**
7150
7158
  * Enforce destructuring parameters in the function signature
7151
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/prefer-parameter-destructuring/documentation.md
7159
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/prefer-parameter-destructuring/documentation.md
7152
7160
  */
7153
7161
  'flawless/prefer-parameter-destructuring'?: Linter.RuleEntry<FlawlessPreferParameterDestructuring>;
7154
7162
  /**
7155
7163
  * Enforce that function component props are read-only
7156
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/prefer-read-only-props/documentation.md
7164
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/prefer-read-only-props/documentation.md
7157
7165
  */
7158
7166
  'flawless/prefer-read-only-props'?: Linter.RuleEntry<FlawlessPreferReadOnlyProps>;
7159
7167
  /**
7160
7168
  * Disallow impure calls such as `math.random` or `os.clock` during render
7161
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/purity/documentation.md
7169
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/purity/documentation.md
7162
7170
  */
7163
7171
  'flawless/purity'?: Linter.RuleEntry<FlawlessPurity>;
7164
7172
  /**
7165
7173
  * Prefer named imports for React runtime values and the React namespace for React types
7166
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/react-namespace/documentation.md
7174
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/react-namespace/documentation.md
7167
7175
  */
7168
7176
  'flawless/react-namespace'?: Linter.RuleEntry<[]>;
7169
7177
  /**
7170
7178
  * Enforce a configured sort order for TOML keys and tables
7171
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/toml-sort-keys/documentation.md
7179
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/toml-sort-keys/documentation.md
7172
7180
  */
7173
7181
  'flawless/toml-sort-keys'?: Linter.RuleEntry<FlawlessTomlSortKeys>;
7174
7182
  /**
7175
7183
  * Enforce blank lines around top-level YAML block collection keys
7176
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/yaml-block-key-blank-lines/documentation.md
7184
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/yaml-block-key-blank-lines/documentation.md
7177
7185
  */
7178
7186
  'flawless/yaml-block-key-blank-lines'?: Linter.RuleEntry<[]>;
7179
7187
  /**
@@ -27586,7 +27594,7 @@ declare const GLOB_GRAPHQL = "**/*.{g,graph}ql";
27586
27594
  */
27587
27595
  declare const GLOB_TYPE_TESTS = "**/*.{test,spec}-d.{,c,m}[jt]s{,x}";
27588
27596
  declare const GLOB_TESTS: Array<string>;
27589
- declare const GLOB_BUILD_TOOLS: Array<string>;
27597
+ declare const GLOB_BUILD_CONFIGS: Array<string>;
27590
27598
  declare const GLOB_ALL_SRC: string[];
27591
27599
  declare const GLOB_EXCLUDE: string[];
27592
27600
  //#endregion
@@ -27806,4 +27814,4 @@ declare function unicorn({ complementIgnores, nameReplacements, roblox, root: cu
27806
27814
  //#region src/eslint/configs/yaml.d.ts
27807
27815
  declare function yaml({ files, overrides, stylistic }?: OptionsFiles & OptionsOverrides & OptionsStylistic): Promise<Array<TypedFlatConfigItem>>;
27808
27816
  //#endregion
27809
- export { type Awaitable, type ConfigNames, type FlatConfigComposer, GLOB_ALL_JSON, GLOB_ALL_SRC, GLOB_BIN, GLOB_BUILD_TOOLS, GLOB_CSS, GLOB_DTS, GLOB_EXCLUDE, GLOB_GRAPHQL, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_LINTABLE_EXTENSIONS, GLOB_LUA, GLOB_MARKDOWN, GLOB_MARKDOWN_BLOCKS, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_MISE, GLOB_PACKAGE_JSON, GLOB_PACKAGE_JSON_ROOT, GLOB_POSTCSS, GLOB_ROOT, GLOB_ROOT_SRC, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_SRC_EXTENSIONS, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSCONFIG, GLOB_TSX, GLOB_TYPE_TESTS, GLOB_XML, GLOB_YAML, GitignoreOptions, type JsdocOptions, MARKDOWN_PROCESSOR_NAME, type NamedFlatConfigItem, type NamedOptionsConfig, type NamingConfig, type NamingSelector, type OptionsComponentExtensions, type OptionsConfig, type OptionsE18e, type OptionsFiles, type OptionsFilesTypeAware, type OptionsFormatters, type OptionsHasRoblox, type OptionsHasTypeScript, type OptionsIsInEditor, type OptionsJest, type OptionsOverrides, type OptionsOverridesTypeAware, type OptionsPnpm, type OptionsProjectType, type OptionsStylistic, type OptionsTestFramework, type OptionsTypeScriptErasableOnly, type OptionsTypeScriptParserOptions, type OptionsTypeScriptWithTypes, type OptionsTypescript, type OptionsUnicorn, type OptionsVitest, type OxfmtOptions, type PerfectionistConfig, type PrettierOptions, type ReactConfig, type ReactSettings, type Rules, type SpellCheckConfig, type StylisticConfig, StylisticConfigDefaults, type TypedFlatConfigItem, comments, isentinel as default, isentinel, defaultPluginRenaming, disables, e18e, eslintPlugin, flawless, gitignore, ignores$1 as ignores, imports, isAgentAutofixDisabled, isInAgentSession, isInEditorEnvironment, isInGitHooksOrLintStaged, javascript, jsdoc, jsonc, loadSmallRulesPlugin, markdown, naming, node, oxfmt, packageJson, perfectionist, pnpm, promise, react, roblox$1 as roblox, smallRules, sonarjs, sortCspell, sortGithubAction, sortMiseToml, sortPnpmWorkspace, sortRojoProject, sortTsconfig, spelling, stylistic$1 as stylistic, test, toml, typescript, unicorn, yaml };
27817
+ export { type Awaitable, type ConfigNames, type FlatConfigComposer, GLOB_ALL_JSON, GLOB_ALL_SRC, GLOB_BIN, GLOB_BUILD_CONFIGS, GLOB_CSS, GLOB_DTS, GLOB_EXCLUDE, GLOB_GRAPHQL, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_LINTABLE_EXTENSIONS, GLOB_LUA, GLOB_MARKDOWN, GLOB_MARKDOWN_BLOCKS, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_MISE, GLOB_PACKAGE_JSON, GLOB_PACKAGE_JSON_ROOT, GLOB_POSTCSS, GLOB_ROOT, GLOB_ROOT_SRC, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_SRC_EXTENSIONS, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSCONFIG, GLOB_TSX, GLOB_TYPE_TESTS, GLOB_XML, GLOB_YAML, GitignoreOptions, type JsdocOptions, MARKDOWN_PROCESSOR_NAME, type NamedFlatConfigItem, type NamedOptionsConfig, type NamingConfig, type NamingSelector, type OptionsComponentExtensions, type OptionsConfig, type OptionsE18e, type OptionsFiles, type OptionsFilesTypeAware, type OptionsFormatters, type OptionsHasRoblox, type OptionsHasTypeScript, type OptionsIsInEditor, type OptionsJest, type OptionsOverrides, type OptionsOverridesTypeAware, type OptionsPnpm, type OptionsProjectType, type OptionsStylistic, type OptionsTestFramework, type OptionsTypeScriptErasableOnly, type OptionsTypeScriptParserOptions, type OptionsTypeScriptWithTypes, type OptionsTypescript, type OptionsUnicorn, type OptionsVitest, type OxfmtOptions, type PerfectionistConfig, type PrettierOptions, type ReactConfig, type ReactSettings, type Rules, type SpellCheckConfig, type StylisticConfig, StylisticConfigDefaults, type TypedFlatConfigItem, comments, isentinel as default, isentinel, defaultPluginRenaming, disables, e18e, eslintPlugin, flawless, gitignore, ignores$1 as ignores, imports, isAgentAutofixDisabled, isInAgentSession, isInEditorEnvironment, isInGitHooksOrLintStaged, javascript, jsdoc, jsonc, loadSmallRulesPlugin, markdown, naming, node, oxfmt, packageJson, perfectionist, pnpm, promise, react, roblox$1 as roblox, smallRules, sonarjs, sortCspell, sortGithubAction, sortMiseToml, sortPnpmWorkspace, sortRojoProject, sortTsconfig, spelling, stylistic$1 as stylistic, test, toml, typescript, unicorn, yaml };
package/dist/index.mjs CHANGED
@@ -166,17 +166,11 @@ const GLOB_TESTS = [
166
166
  `**/*.bench.${GLOB_SRC_EXT}`,
167
167
  `**/*.benchmark.${GLOB_SRC_EXT}`
168
168
  ];
169
- const GLOB_BUILD_TOOLS = [
169
+ const GLOB_BUILD_CONFIGS = [
170
170
  "**/.husky/**/*",
171
171
  `**/config/${GLOB_SRC}`,
172
172
  `**/*config.${GLOB_SRC_EXT}`,
173
- `**/*config.*.${GLOB_SRC_EXT}`,
174
- `**/build/${GLOB_SRC}`,
175
- `**/tools/${GLOB_SRC}`,
176
- `**/setup/${GLOB_SRC}`,
177
- `**/dev/${GLOB_SRC}`,
178
- `**/tasks/${GLOB_SRC}`,
179
- "**/.github/scripts/**/*"
173
+ `**/*config.*.${GLOB_SRC_EXT}`
180
174
  ];
181
175
  const GLOB_ALL_SRC = [
182
176
  GLOB_SRC,
@@ -1361,7 +1355,7 @@ function disables({ root, workspaceRoot }) {
1361
1355
  {
1362
1356
  name: "isentinel/disables/scripts",
1363
1357
  basePath: workspaceRoot,
1364
- files: [`**/scripts/${GLOB_SRC}`],
1358
+ files: [`**/scripts/${GLOB_SRC}`, "**/.github/scripts/**/*"],
1365
1359
  rules: {
1366
1360
  "antfu/no-top-level-await": "off",
1367
1361
  "max-lines": "off",
@@ -1380,9 +1374,9 @@ function disables({ root, workspaceRoot }) {
1380
1374
  }
1381
1375
  },
1382
1376
  {
1383
- name: "isentinel/disables/build-tools",
1377
+ name: "isentinel/disables/build-configs",
1384
1378
  basePath: workspaceRoot,
1385
- files: GLOB_BUILD_TOOLS,
1379
+ files: GLOB_BUILD_CONFIGS,
1386
1380
  rules: {
1387
1381
  "antfu/no-top-level-await": "off",
1388
1382
  "no-console": "off",
@@ -1640,6 +1634,7 @@ function flawlessRules({ stylistic = true, ...arrowOptions } = {}) {
1640
1634
  skipComments: true
1641
1635
  }],
1642
1636
  "flawless/no-export-default-arrow": "error",
1637
+ "flawless/no-floating-point-equality": "error",
1643
1638
  "flawless/prefer-parameter-destructuring": "warn",
1644
1639
  ...arrowStyleRules(arrowOptions)
1645
1640
  };
@@ -4018,7 +4013,7 @@ function sonarjsRules({ isInEditor, roblox = true }) {
4018
4013
  "sonar/no-nested-incdec": "error",
4019
4014
  "sonar/no-nested-switch": "error",
4020
4015
  "sonar/no-nested-template-literals": "error",
4021
- "sonar/no-parameter-reassignment": "error",
4016
+ "sonar/no-parameter-reassignment": "off",
4022
4017
  "sonar/no-redundant-boolean": "error",
4023
4018
  "sonar/no-redundant-jump": "error",
4024
4019
  "sonar/no-redundant-optional": "error",
@@ -15538,6 +15533,7 @@ const oxlintRuleMapping = {
15538
15533
  "flawless/max-lines-per-function": "js-plugin",
15539
15534
  "flawless/no-conditional-in-test": "js-plugin",
15540
15535
  "flawless/no-export-default-arrow": "js-plugin",
15536
+ "flawless/no-floating-point-equality": "js-plugin",
15541
15537
  "flawless/no-unnecessary-use-callback": "js-plugin",
15542
15538
  "flawless/no-unnecessary-use-memo": "js-plugin",
15543
15539
  "flawless/padding-after-expect-assertions": "js-plugin",
@@ -16626,4 +16622,4 @@ async function isentinel(options, ...userConfigs) {
16626
16622
  return composer;
16627
16623
  }
16628
16624
  //#endregion
16629
- export { GLOB_ALL_JSON, GLOB_ALL_SRC, GLOB_BIN, GLOB_BUILD_TOOLS, GLOB_CSS, GLOB_DTS, GLOB_EXCLUDE, GLOB_GRAPHQL, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_LINTABLE_EXTENSIONS, GLOB_LUA, GLOB_MARKDOWN, GLOB_MARKDOWN_BLOCKS, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_MISE, GLOB_PACKAGE_JSON, GLOB_PACKAGE_JSON_ROOT, GLOB_POSTCSS, GLOB_ROOT, GLOB_ROOT_SRC, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_SRC_EXTENSIONS, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSCONFIG, GLOB_TSX, GLOB_TYPE_TESTS, GLOB_XML, GLOB_YAML, MARKDOWN_PROCESSOR_NAME, StylisticConfigDefaults, comments, isentinel as default, isentinel, defaultPluginRenaming, disables, e18e, eslintPlugin, flawless, gitignore, ignores, imports, isAgentAutofixDisabled, isInAgentSession, isInEditorEnvironment, isInGitHooksOrLintStaged, javascript, jsdoc, jsonc, loadSmallRulesPlugin, markdown, naming, node, oxfmt, packageJson, perfectionist, pnpm, promise, react, roblox, smallRules, sonarjs, sortCspell, sortGithubAction, sortMiseToml, sortPnpmWorkspace, sortRojoProject, sortTsconfig, spelling, stylistic, test, toml, typescript, unicorn, yaml };
16625
+ export { GLOB_ALL_JSON, GLOB_ALL_SRC, GLOB_BIN, GLOB_BUILD_CONFIGS, GLOB_CSS, GLOB_DTS, GLOB_EXCLUDE, GLOB_GRAPHQL, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_LINTABLE_EXTENSIONS, GLOB_LUA, GLOB_MARKDOWN, GLOB_MARKDOWN_BLOCKS, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_MISE, GLOB_PACKAGE_JSON, GLOB_PACKAGE_JSON_ROOT, GLOB_POSTCSS, GLOB_ROOT, GLOB_ROOT_SRC, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_SRC_EXTENSIONS, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSCONFIG, GLOB_TSX, GLOB_TYPE_TESTS, GLOB_XML, GLOB_YAML, MARKDOWN_PROCESSOR_NAME, StylisticConfigDefaults, comments, isentinel as default, isentinel, defaultPluginRenaming, disables, e18e, eslintPlugin, flawless, gitignore, ignores, imports, isAgentAutofixDisabled, isInAgentSession, isInEditorEnvironment, isInGitHooksOrLintStaged, javascript, jsdoc, jsonc, loadSmallRulesPlugin, markdown, naming, node, oxfmt, packageJson, perfectionist, pnpm, promise, react, roblox, smallRules, sonarjs, sortCspell, sortGithubAction, sortMiseToml, sortPnpmWorkspace, sortRojoProject, sortTsconfig, spelling, stylistic, test, toml, typescript, unicorn, yaml };
package/dist/lint-cli.mjs CHANGED
@@ -36,7 +36,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
36
36
  }) : target, mod));
37
37
  //#endregion
38
38
  //#region package.json
39
- var version = "6.0.0-beta.30";
39
+ var version = "6.0.0-beta.32";
40
40
  //#endregion
41
41
  //#region src/lint-cli/lib/cli/types.ts
42
42
  /**
package/dist/oxlint.d.mts CHANGED
@@ -428,6 +428,9 @@ interface OxlintMainRuleDefaults {
428
428
  "flawless/no-export-default-arrow": {
429
429
  "*": "error";
430
430
  };
431
+ "flawless/no-floating-point-equality": {
432
+ "*": "error";
433
+ };
431
434
  "flawless/prefer-parameter-destructuring": {
432
435
  "*": "warn";
433
436
  };
@@ -1627,7 +1630,7 @@ interface OxlintMainRuleDefaults {
1627
1630
  "*": "error";
1628
1631
  };
1629
1632
  "sonar/no-parameter-reassignment": {
1630
- "*": "error";
1633
+ "*": "off";
1631
1634
  };
1632
1635
  "sonar/no-redundant-boolean": {
1633
1636
  "*": "error";
@@ -4280,102 +4283,107 @@ interface RuleOptions {
4280
4283
  'eslint-plugin/unique-test-case-names'?: Linter.RuleEntry<[]>;
4281
4284
  /**
4282
4285
  * Enforce arrow function return style based on line length
4283
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/arrow-return-style/documentation.md
4286
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/arrow-return-style/documentation.md
4284
4287
  */
4285
4288
  'flawless/arrow-return-style'?: Linter.RuleEntry<FlawlessArrowReturnStyle>;
4286
4289
  /**
4287
4290
  * Disallow shorthand boolean JSX attributes
4288
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/jsx-shorthand-boolean/documentation.md
4291
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/jsx-shorthand-boolean/documentation.md
4289
4292
  */
4290
4293
  'flawless/jsx-shorthand-boolean'?: Linter.RuleEntry<[]>;
4291
4294
  /**
4292
4295
  * Enforce a consistent fragment form: the shorthand `<>...</>` or a named fragment
4293
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/jsx-shorthand-fragment/documentation.md
4296
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/jsx-shorthand-fragment/documentation.md
4294
4297
  */
4295
4298
  'flawless/jsx-shorthand-fragment'?: Linter.RuleEntry<FlawlessJsxShorthandFragment>;
4296
4299
  /**
4297
4300
  * Enforce a maximum number of lines of code in a function
4298
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/max-lines-per-function/documentation.md
4301
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/max-lines-per-function/documentation.md
4299
4302
  */
4300
4303
  'flawless/max-lines-per-function'?: Linter.RuleEntry<FlawlessMaxLinesPerFunction>;
4301
4304
  /**
4302
4305
  * Enforce naming conventions for everything across a codebase
4303
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/naming-convention/documentation.md
4306
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/naming-convention/documentation.md
4304
4307
  */
4305
4308
  'flawless/naming-convention'?: Linter.RuleEntry<FlawlessNamingConvention>;
4306
4309
  /**
4307
4310
  * Disallow conditional logic in tests
4308
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/no-conditional-in-test/documentation.md
4311
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/no-conditional-in-test/documentation.md
4309
4312
  */
4310
4313
  'flawless/no-conditional-in-test'?: Linter.RuleEntry<FlawlessNoConditionalInTest>;
4311
4314
  /**
4312
4315
  * Disallow anonymous arrow functions as export default declarations
4313
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/no-export-default-arrow/documentation.md
4316
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/no-export-default-arrow/documentation.md
4314
4317
  */
4315
4318
  'flawless/no-export-default-arrow'?: Linter.RuleEntry<[]>;
4319
+ /**
4320
+ * Disallow exact equality checks involving floating-point-sensitive values
4321
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/no-floating-point-equality/documentation.md
4322
+ */
4323
+ 'flawless/no-floating-point-equality'?: Linter.RuleEntry<[]>;
4316
4324
  /**
4317
4325
  * Disallow tsconfig options that redundantly re-set a value already provided by an extended config
4318
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/no-redundant-tsconfig-options/documentation.md
4326
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/no-redundant-tsconfig-options/documentation.md
4319
4327
  */
4320
4328
  'flawless/no-redundant-tsconfig-options'?: Linter.RuleEntry<[]>;
4321
4329
  /**
4322
4330
  * Disallow unnecessary usage of 'useCallback'
4323
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/no-unnecessary-use-callback/documentation.md
4331
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/no-unnecessary-use-callback/documentation.md
4324
4332
  */
4325
4333
  'flawless/no-unnecessary-use-callback'?: Linter.RuleEntry<[]>;
4326
4334
  /**
4327
4335
  * Disallow unnecessary usage of 'useMemo'
4328
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/no-unnecessary-use-memo/documentation.md
4336
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/no-unnecessary-use-memo/documentation.md
4329
4337
  */
4330
4338
  'flawless/no-unnecessary-use-memo'?: Linter.RuleEntry<[]>;
4331
4339
  /**
4332
4340
  * Enforce a blank line after `expect.assertions` and `expect.hasAssertions`
4333
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/padding-after-expect-assertions/documentation.md
4341
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/padding-after-expect-assertions/documentation.md
4334
4342
  */
4335
4343
  'flawless/padding-after-expect-assertions'?: Linter.RuleEntry<[]>;
4336
4344
  /**
4337
4345
  * Enforce destructuring assignment for component props
4338
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/prefer-destructuring-assignment/documentation.md
4346
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/prefer-destructuring-assignment/documentation.md
4339
4347
  */
4340
4348
  'flawless/prefer-destructuring-assignment'?: Linter.RuleEntry<[]>;
4341
4349
  /**
4342
4350
  * Prefer having the last statement in a test be an assertion
4343
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/prefer-ending-with-an-expect/documentation.md
4351
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/prefer-ending-with-an-expect/documentation.md
4344
4352
  */
4345
4353
  'flawless/prefer-ending-with-an-expect'?: Linter.RuleEntry<FlawlessPreferEndingWithAnExpect>;
4346
4354
  /**
4347
4355
  * Prefer `expect.assertions(<count>)` over `expect.hasAssertions()`
4348
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/prefer-expect-assertions-count/documentation.md
4356
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/prefer-expect-assertions-count/documentation.md
4349
4357
  */
4350
4358
  'flawless/prefer-expect-assertions-count'?: Linter.RuleEntry<[]>;
4351
4359
  /**
4352
4360
  * Enforce destructuring parameters in the function signature
4353
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/prefer-parameter-destructuring/documentation.md
4361
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/prefer-parameter-destructuring/documentation.md
4354
4362
  */
4355
4363
  'flawless/prefer-parameter-destructuring'?: Linter.RuleEntry<FlawlessPreferParameterDestructuring>;
4356
4364
  /**
4357
4365
  * Enforce that function component props are read-only
4358
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/prefer-read-only-props/documentation.md
4366
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/prefer-read-only-props/documentation.md
4359
4367
  */
4360
4368
  'flawless/prefer-read-only-props'?: Linter.RuleEntry<FlawlessPreferReadOnlyProps>;
4361
4369
  /**
4362
4370
  * Disallow impure calls such as `math.random` or `os.clock` during render
4363
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/purity/documentation.md
4371
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/purity/documentation.md
4364
4372
  */
4365
4373
  'flawless/purity'?: Linter.RuleEntry<FlawlessPurity>;
4366
4374
  /**
4367
4375
  * Prefer named imports for React runtime values and the React namespace for React types
4368
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/react-namespace/documentation.md
4376
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/react-namespace/documentation.md
4369
4377
  */
4370
4378
  'flawless/react-namespace'?: Linter.RuleEntry<[]>;
4371
4379
  /**
4372
4380
  * Enforce a configured sort order for TOML keys and tables
4373
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/toml-sort-keys/documentation.md
4381
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/toml-sort-keys/documentation.md
4374
4382
  */
4375
4383
  'flawless/toml-sort-keys'?: Linter.RuleEntry<FlawlessTomlSortKeys>;
4376
4384
  /**
4377
4385
  * Enforce blank lines around top-level YAML block collection keys
4378
- * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.4.3/src/rules/yaml-block-key-blank-lines/documentation.md
4386
+ * @see https://github.com/christopher-buss/eslint-plugin-flawless/blob/v1.5.0/src/rules/yaml-block-key-blank-lines/documentation.md
4379
4387
  */
4380
4388
  'flawless/yaml-block-key-blank-lines'?: Linter.RuleEntry<[]>;
4381
4389
  /**
package/dist/oxlint.mjs CHANGED
@@ -1396,6 +1396,7 @@ const oxlintRuleMapping = {
1396
1396
  "flawless/max-lines-per-function": "js-plugin",
1397
1397
  "flawless/no-conditional-in-test": "js-plugin",
1398
1398
  "flawless/no-export-default-arrow": "js-plugin",
1399
+ "flawless/no-floating-point-equality": "js-plugin",
1399
1400
  "flawless/no-unnecessary-use-callback": "js-plugin",
1400
1401
  "flawless/no-unnecessary-use-memo": "js-plugin",
1401
1402
  "flawless/padding-after-expect-assertions": "js-plugin",
@@ -1904,17 +1905,11 @@ const GLOB_TESTS = [
1904
1905
  `**/*.bench.${GLOB_SRC_EXT}`,
1905
1906
  `**/*.benchmark.${GLOB_SRC_EXT}`
1906
1907
  ];
1907
- const GLOB_BUILD_TOOLS = [
1908
+ const GLOB_BUILD_CONFIGS = [
1908
1909
  "**/.husky/**/*",
1909
1910
  `**/config/${GLOB_SRC}`,
1910
1911
  `**/*config.${GLOB_SRC_EXT}`,
1911
- `**/*config.*.${GLOB_SRC_EXT}`,
1912
- `**/build/${GLOB_SRC}`,
1913
- `**/tools/${GLOB_SRC}`,
1914
- `**/setup/${GLOB_SRC}`,
1915
- `**/dev/${GLOB_SRC}`,
1916
- `**/tasks/${GLOB_SRC}`,
1917
- "**/.github/scripts/**/*"
1912
+ `**/*config.*.${GLOB_SRC_EXT}`
1918
1913
  ];
1919
1914
  const GLOB_EXCLUDE = [
1920
1915
  "**/.pnpm-store",
@@ -3252,8 +3247,8 @@ function oxlintDisables({ configDirectory, root, workspaceRoot }) {
3252
3247
  }
3253
3248
  }),
3254
3249
  ...createOxlintConfigs({
3255
- name: "isentinel/disables/build-tools",
3256
- files: GLOB_BUILD_TOOLS,
3250
+ name: "isentinel/disables/build-configs",
3251
+ files: GLOB_BUILD_CONFIGS,
3257
3252
  rules: {
3258
3253
  "antfu/no-top-level-await": "off",
3259
3254
  "no-console": "off",
@@ -3525,6 +3520,7 @@ function flawlessRules({ stylistic = true, ...arrowOptions } = {}) {
3525
3520
  skipComments: true
3526
3521
  }],
3527
3522
  "flawless/no-export-default-arrow": "error",
3523
+ "flawless/no-floating-point-equality": "error",
3528
3524
  "flawless/prefer-parameter-destructuring": "warn",
3529
3525
  ...arrowStyleRules(arrowOptions)
3530
3526
  };
@@ -3661,7 +3657,7 @@ function oxlintImports({ excludeFiles, roblox = true, stylistic = true } = {}) {
3661
3657
  name: "isentinel/imports/oxlint/default-export",
3662
3658
  excludeFiles: [
3663
3659
  GLOB_DTS,
3664
- ...GLOB_BUILD_TOOLS,
3660
+ ...GLOB_BUILD_CONFIGS,
3665
3661
  ...exclude
3666
3662
  ],
3667
3663
  files: [GLOB_SRC],
@@ -4883,7 +4879,7 @@ function sonarjsRules({ isInEditor, roblox = true }) {
4883
4879
  "sonar/no-nested-incdec": "error",
4884
4880
  "sonar/no-nested-switch": "error",
4885
4881
  "sonar/no-nested-template-literals": "error",
4886
- "sonar/no-parameter-reassignment": "error",
4882
+ "sonar/no-parameter-reassignment": "off",
4887
4883
  "sonar/no-redundant-boolean": "error",
4888
4884
  "sonar/no-redundant-jump": "error",
4889
4885
  "sonar/no-redundant-optional": "error",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@isentinel/eslint-config",
3
- "version": "6.0.0-beta.30",
3
+ "version": "6.0.0-beta.32",
4
4
  "description": "iSentinel's ESLint config",
5
5
  "keywords": [
6
6
  "eslint-config",
@@ -76,7 +76,7 @@
76
76
  "eslint-plugin-better-max-params": "1.0.0",
77
77
  "eslint-plugin-comment-length": "2.3.1",
78
78
  "eslint-plugin-de-morgan": "2.1.3",
79
- "eslint-plugin-flawless": "1.4.3",
79
+ "eslint-plugin-flawless": "1.5.0",
80
80
  "eslint-plugin-format-lua": "2.0.0",
81
81
  "eslint-plugin-import-lite": "0.6.0",
82
82
  "eslint-plugin-jsdoc": "63.2.0",
@@ -142,7 +142,7 @@
142
142
  "typescript": "6.0.3",
143
143
  "unplugin-unused": "0.5.7",
144
144
  "vitest": "4.1.10",
145
- "@isentinel/eslint-config": "6.0.0-beta.30"
145
+ "@isentinel/eslint-config": "6.0.0-beta.32"
146
146
  },
147
147
  "peerDependencies": {
148
148
  "@vitest/eslint-plugin": "^1.6.4",