@d3lm/lint-preset 1.6.1 → 1.6.3

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.
@@ -677,4 +677,4 @@ export {
677
677
  tsRulesOxlint,
678
678
  tsRulesEslint
679
679
  };
680
- //# sourceMappingURL=chunk-SMTCD6GW.js.map
680
+ //# sourceMappingURL=chunk-3H72UCKF.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/configs/unicorn.ts","../src/configs/abbreviations.ts","../src/configs/javascript.ts","../src/configs/react.ts","../src/configs/typescript.ts"],"sourcesContent":["import type { Linter } from 'eslint';\n\n/**\n * Mirrors `eslint-plugin-unicorn`'s recommended config, split by runtime.\n *\n * Oxlint natively implements most unicorn rules, so we enable those under the canonical\n * `unicorn/` prefix (fast, Rust). Rules oxlint hasn't ported run through the original JS\n * plugin, aliased as `unicornx` in `jsPlugins` (see `src/oxlint.ts`), because oxlint's\n * built-in plugin owns the `unicorn/` namespace.\n *\n * `unicorn/name-replacements` is also not ported. It lives in `javascript.ts` because it\n * takes user-configurable options.\n */\n\n/**\n * Lists the Unicorn recommended rules natively implemented by Oxlint, grouped by the oxlint category\n * they belong to. Only the correctness group is enabled by oxlint's defaults (as `warn`). Everything is\n * set explicitly to `error` to match the recommended config.\n */\nexport const unicornRulesOxlint: Linter.RulesRecord = {\n // correctness\n 'unicorn/no-await-in-promise-methods': 'error',\n 'unicorn/no-empty-file': 'warn',\n 'unicorn/no-invalid-fetch-options': 'error',\n 'unicorn/no-invalid-remove-event-listener': 'error',\n 'unicorn/no-new-array': 'error',\n 'unicorn/no-single-promise-in-promise-methods': 'error',\n 'unicorn/no-thenable': 'error',\n 'unicorn/no-unnecessary-await': 'error',\n 'unicorn/no-useless-fallback-in-spread': 'error',\n 'unicorn/no-useless-length-check': 'error',\n 'unicorn/no-useless-spread': 'error',\n 'unicorn/prefer-set-size': 'error',\n 'unicorn/prefer-string-starts-ends-with': 'error',\n\n // perf\n 'unicorn/prefer-array-find': 'error',\n 'unicorn/prefer-array-flat-map': 'error',\n 'unicorn/prefer-set-has': 'error',\n\n // restriction\n 'unicorn/no-abusive-eslint-disable': 'error',\n 'unicorn/no-anonymous-default-export': 'error',\n 'unicorn/no-array-for-each': 'error',\n 'unicorn/no-array-reduce': 'error',\n 'unicorn/no-document-cookie': 'error',\n 'unicorn/no-magic-array-flat-depth': 'error',\n 'unicorn/no-process-exit': 'error',\n 'unicorn/no-useless-error-capture-stack-trace': 'error',\n 'unicorn/prefer-modern-math-apis': 'error',\n 'unicorn/prefer-module': 'error',\n 'unicorn/prefer-node-protocol': 'error',\n 'unicorn/prefer-number-properties': 'error',\n\n // suspicious\n 'unicorn/consistent-function-scoping': 'error',\n 'unicorn/no-accessor-recursion': 'error',\n 'unicorn/no-array-reverse': 'error',\n 'unicorn/no-array-sort': 'error',\n 'unicorn/no-instanceof-builtins': 'error',\n 'unicorn/prefer-add-event-listener': 'error',\n 'unicorn/require-module-specifiers': 'error',\n\n // pedantic\n 'unicorn/consistent-assert': 'error',\n 'unicorn/consistent-empty-array-spread': 'error',\n 'unicorn/escape-case': 'error',\n 'unicorn/explicit-length-check': 'error',\n 'unicorn/new-for-builtins': 'error',\n 'unicorn/no-array-callback-reference': 'error',\n 'unicorn/no-hex-escape': 'error',\n 'unicorn/no-immediate-mutation': 'error',\n 'unicorn/no-lonely-if': 'error',\n 'unicorn/no-negation-in-equality-check': 'error',\n 'unicorn/no-new-buffer': 'error',\n 'unicorn/no-object-as-default-parameter': 'error',\n 'unicorn/no-static-only-class': 'error',\n 'unicorn/no-this-assignment': 'error',\n 'unicorn/no-typeof-undefined': 'error',\n 'unicorn/no-unnecessary-array-flat-depth': 'error',\n 'unicorn/no-unnecessary-array-splice-count': 'error',\n 'unicorn/no-unnecessary-slice-end': 'error',\n 'unicorn/no-unreadable-iife': 'error',\n 'unicorn/no-useless-promise-resolve-reject': 'error',\n 'unicorn/no-useless-switch-case': 'error',\n 'unicorn/prefer-array-flat': 'error',\n 'unicorn/prefer-array-some': 'error',\n 'unicorn/prefer-at': 'error',\n 'unicorn/prefer-blob-reading-methods': 'error',\n 'unicorn/prefer-code-point': 'error',\n 'unicorn/prefer-date-now': 'error',\n 'unicorn/prefer-dom-node-append': 'error',\n 'unicorn/prefer-dom-node-dataset': 'error',\n 'unicorn/prefer-dom-node-remove': 'error',\n 'unicorn/prefer-event-target': 'error',\n 'unicorn/prefer-math-min-max': 'error',\n 'unicorn/prefer-math-trunc': 'error',\n 'unicorn/prefer-native-coercion-functions': 'error',\n 'unicorn/prefer-prototype-methods': 'error',\n 'unicorn/prefer-query-selector': 'error',\n 'unicorn/prefer-regexp-test': 'error',\n 'unicorn/prefer-string-replace-all': 'error',\n 'unicorn/prefer-string-slice': 'error',\n 'unicorn/prefer-top-level-await': 'error',\n 'unicorn/prefer-type-error': 'error',\n 'unicorn/require-number-to-fixed-digits-argument': 'error',\n\n // style\n 'unicorn/catch-error-name': ['error', { name: 'error' }],\n 'unicorn/consistent-date-clone': 'error',\n 'unicorn/consistent-existence-index-check': 'error',\n 'unicorn/consistent-template-literal-escape': 'error',\n 'unicorn/empty-brace-spaces': 'error',\n 'unicorn/error-message': 'error',\n 'unicorn/no-array-method-this-argument': 'error',\n 'unicorn/no-await-expression-member': 'error',\n 'unicorn/no-console-spaces': 'error',\n 'unicorn/no-unreadable-array-destructuring': 'error',\n 'unicorn/no-useless-collection-argument': 'error',\n 'unicorn/no-zero-fractions': 'error',\n 'unicorn/numeric-separators-style': 'error',\n 'unicorn/prefer-array-index-of': 'error',\n 'unicorn/prefer-bigint-literals': 'error',\n 'unicorn/prefer-class-fields': 'error',\n 'unicorn/prefer-classlist-toggle': 'error',\n 'unicorn/prefer-default-parameters': 'error',\n 'unicorn/prefer-dom-node-text-content': 'error',\n 'unicorn/prefer-global-this': 'error',\n 'unicorn/prefer-includes': 'error',\n 'unicorn/prefer-keyboard-event-key': 'error',\n 'unicorn/prefer-logical-operator-over-ternary': 'error',\n 'unicorn/prefer-modern-dom-apis': 'error',\n 'unicorn/prefer-negative-index': 'error',\n 'unicorn/prefer-object-from-entries': 'error',\n 'unicorn/prefer-optional-catch-binding': 'error',\n 'unicorn/prefer-reflect-apply': 'error',\n 'unicorn/prefer-response-static-json': 'error',\n 'unicorn/prefer-spread': 'error',\n 'unicorn/prefer-string-raw': 'error',\n 'unicorn/prefer-string-trim-start-end': 'error',\n 'unicorn/prefer-structured-clone': 'error',\n 'unicorn/relative-url-style': 'error',\n 'unicorn/require-array-join-separator': 'error',\n 'unicorn/require-module-attributes': 'error',\n 'unicorn/switch-case-braces': 'error',\n 'unicorn/switch-case-break-position': 'error',\n 'unicorn/text-encoding-identifier-case': 'error',\n 'unicorn/throw-new-error': 'error',\n};\n\n/**\n * Lists the Unicorn recommended rules that Oxlint hasn't ported. They run inside Oxlint through the\n * original JS plugin under the `unicornx` alias.\n */\nexport const unicornRulesJsPlugin: Linter.RulesRecord = {\n 'unicornx/isolated-functions': 'error',\n 'unicornx/no-for-loop': 'error',\n 'unicornx/no-named-default': 'error',\n 'unicornx/no-unnecessary-polyfills': 'error',\n 'unicornx/no-unreadable-for-of-expression': 'error',\n 'unicornx/prefer-export-from': 'error',\n 'unicornx/prefer-simple-condition-first': 'error',\n 'unicornx/prefer-single-call': 'error',\n 'unicornx/prefer-switch': 'error',\n 'unicornx/template-indent': 'error',\n\n /**\n * Native port exists but only in oxlint's nursery category, which can't be enabled from config,\n * so we run the JS original instead.\n */\n 'unicornx/no-useless-iterator-to-array': 'error',\n\n /**\n * Oxlint's port hardcodes uppercase hexadecimal digits, which fights Prettier's lowercase\n * formatting, so we run the JS original with the lowercase option instead.\n */\n 'unicornx/number-literal-case': ['error', { hexadecimalValue: 'lowercase' }],\n};\n\n/**\n * Lists the Unicorn recommended rules that can't run inside Oxlint's JS-plugin host yet because the\n * compat layer is missing ESLint APIs (e.g. `sourceCode.getDisableDirectives`). ESLint picks them up\n * after Oxlint runs.\n */\nexport const unicornRulesEslint: Linter.RulesRecord = {\n 'unicorn/expiring-todo-comments': 'error',\n};\n","export const DEFAULT_ABBREVIATION_ALLOW_LIST = ['fn', 'cb', 'err', 'prev', 'dev', 'i'];\n\nexport const ABBREVIATION_REPLACEMENTS: Record<string, Record<string, boolean> | false> = {\n ref: false,\n refs: false,\n dev: false,\n dir: false,\n env: false,\n prop: false,\n props: false,\n util: false,\n utils: false,\n lib: false,\n libs: false,\n param: false,\n params: false,\n arg: false,\n args: false,\n db: false,\n ev: { event: true },\n val: { value: true },\n msg: { message: true },\n el: { element: true },\n elem: { element: true },\n btn: { button: true },\n cb: { callback: true },\n fn: { function: true },\n err: { error: true },\n opts: { options: true },\n cfg: { config: true },\n obj: { object: true },\n arr: { array: true },\n str: { string: true },\n num: { number: true },\n curr: { current: true },\n len: { length: true },\n e: { event: true, error: true },\n};\n","import type { Linter } from 'eslint';\nimport { ABBREVIATION_REPLACEMENTS, DEFAULT_ABBREVIATION_ALLOW_LIST } from './abbreviations.js';\nimport { unicornRulesJsPlugin, unicornRulesOxlint } from './unicorn.js';\n\nexport const jsFileExtensions = ['**/*.js', '**/*.jsx', '**/*.mjs', '**/*.cjs'];\n\nexport const paddingLineEntries = [\n {\n blankLine: 'always',\n prev: '*',\n next: ['block', 'block-like', 'class', 'const', 'let'],\n },\n {\n blankLine: 'always',\n prev: 'block',\n next: '*',\n },\n {\n blankLine: 'always',\n prev: ['const'],\n next: '*',\n },\n {\n blankLine: 'always',\n prev: ['let'],\n next: '*',\n },\n {\n blankLine: 'any',\n prev: ['const'],\n next: ['const'],\n },\n {\n blankLine: 'any',\n prev: ['let'],\n next: ['let'],\n },\n {\n blankLine: 'always',\n prev: ['let'],\n next: ['const'],\n },\n {\n blankLine: 'always',\n prev: ['const'],\n next: ['let'],\n },\n {\n blankLine: 'always',\n prev: ['singleline-const'],\n next: ['multiline-const'],\n },\n {\n blankLine: 'always',\n prev: ['multiline-const'],\n next: ['singleline-const'],\n },\n {\n blankLine: 'always',\n prev: ['singleline-let'],\n next: ['multiline-let'],\n },\n {\n blankLine: 'always',\n prev: ['multiline-let'],\n next: ['singleline-let'],\n },\n {\n blankLine: 'any',\n prev: ['case', 'block', 'block-like'],\n next: ['case', 'default'],\n },\n {\n blankLine: 'always',\n prev: '*',\n next: ['break', 'continue'],\n },\n {\n blankLine: 'always',\n prev: 'if',\n next: '*',\n },\n {\n blankLine: 'always',\n prev: {\n selector:\n 'ExpressionStatement:matches([expression.type=\"CallExpression\"], [expression.type=\"AwaitExpression\"][expression.argument.type=\"CallExpression\"])',\n },\n next: { selector: 'ExpressionStatement[expression.type=\"AssignmentExpression\"]' },\n },\n {\n blankLine: 'always',\n prev: { selector: 'ExpressionStatement[expression.type=\"AssignmentExpression\"]' },\n next: {\n selector:\n 'ExpressionStatement:matches([expression.type=\"CallExpression\"], [expression.type=\"AwaitExpression\"][expression.argument.type=\"CallExpression\"])',\n },\n },\n /**\n * The rule applies the last entry that matches a statement pair, so the import-to-import entry\n * must come after the surrounding `*` entries.\n */\n {\n blankLine: 'always',\n prev: 'import',\n next: '*',\n },\n {\n blankLine: 'always',\n prev: '*',\n next: 'import',\n },\n {\n blankLine: 'any',\n prev: 'import',\n next: 'import',\n },\n /**\n * The rule applies the last entry that matches a statement pair, so the export-to-export entry\n * must come after the surrounding `*` entries.\n */\n {\n blankLine: 'always',\n prev: 'export',\n next: '*',\n },\n {\n blankLine: 'always',\n prev: '*',\n next: 'export',\n },\n {\n blankLine: 'any',\n prev: 'export',\n next: 'export',\n },\n];\n\nexport const jsdocTagLineOptions = ['never', { startLines: 1, applyToEndTag: false }];\n\nexport interface JavaScriptRuleOptions {\n preventAbbreviations?: {\n allowList?: string[];\n inheritAllowList?: boolean;\n replacements?: Record<string, Record<string, boolean> | false>;\n inheritReplacements?: boolean;\n };\n}\n\nexport function jsRulesOxlint(options: JavaScriptRuleOptions = {}): Linter.RulesRecord {\n const { preventAbbreviations: preventAbbreviationsOptions } = options;\n\n const {\n inheritAllowList = true,\n inheritReplacements = true,\n allowList = [],\n replacements = {},\n } = preventAbbreviationsOptions ?? {};\n\n const effectiveAllowList = inheritAllowList ? [...DEFAULT_ABBREVIATION_ALLOW_LIST, ...allowList] : allowList;\n\n return {\n 'consistent-return': 'error',\n curly: ['error', 'all'],\n 'arrow-body-style': 'off',\n 'dot-notation': 'error',\n 'no-debugger': 'warn',\n 'no-unused-vars': 'off',\n 'no-async-promise-executor': 'error',\n 'no-case-declarations': 'error',\n 'default-case-last': 'error',\n 'no-cond-assign': 'error',\n 'no-return-assign': ['error', 'always'],\n 'no-dynamic-delete': 'off',\n 'no-unneeded-ternary': 'error',\n 'object-shorthand': 'error',\n 'no-constant-condition': ['error', { checkLoops: false }],\n\n '@stylistic/padding-line-between-statements': ['error', ...paddingLineEntries],\n '@stylistic/no-trailing-spaces': 'error',\n\n /**\n * Indentation is owned by Prettier. Oxlint's @stylistic/indent port diverges from eslint-stylistic on edge cases\n * (e.g., multiline object args inside ternaries), so we leave the rule off.\n */\n '@stylistic/indent': 'off',\n '@stylistic/no-multiple-empty-lines': ['error', { max: 1 }],\n '@stylistic/multiline-comment-style': ['error', 'starred-block'],\n '@stylistic/spaced-comment': [\n 'error',\n 'always',\n {\n block: { balanced: true },\n },\n ],\n '@stylistic/brace-style': ['error', '1tbs'],\n '@stylistic/lines-around-comment': [\n 'error',\n {\n beforeBlockComment: true,\n beforeLineComment: true,\n allowBlockStart: true,\n allowBlockEnd: false,\n allowObjectStart: true,\n allowObjectEnd: false,\n allowArrayStart: true,\n allowArrayEnd: true,\n allowClassStart: true,\n allowInterfaceStart: true,\n allowInterfaceEnd: true,\n allowEnumStart: true,\n allowEnumEnd: true,\n allowTypeStart: true,\n allowTypeEnd: false,\n },\n ],\n\n ...unicornRulesOxlint,\n ...unicornRulesJsPlugin,\n\n /**\n * Oxlint's built-in `unicorn` / `jsdoc` plugins don't implement these, so we wire the original JS\n * plugins under aliased names (see jsPlugins in `src/oxlint.ts`). Rule IDs use the alias instead\n * of the canonical prefix.\n */\n 'unicornx/name-replacements': [\n 'error',\n {\n replacements: inheritReplacements ? { ...ABBREVIATION_REPLACEMENTS, ...replacements } : replacements,\n allowList: Object.fromEntries(effectiveAllowList.map((name) => [name, true])),\n },\n ],\n\n 'jsdocx/tag-lines': ['error', ...jsdocTagLineOptions],\n };\n}\n\n/**\n * These rules can't run under Oxlint. They are ESLint-core rules that Oxlint hasn't implemented\n * (`prefer-arrow-callback`) or only ships in its nursery category (`no-useless-assignment`), and no\n * plugin we can alias into oxlint's `jsPlugins` exposes them, because the `@eslint/js` package only\n * ships configs, not a raw `rules` object. ESLint picks them up after Oxlint runs.\n */\nexport function jsRulesEslint(_options: JavaScriptRuleOptions = {}): Linter.RulesRecord {\n return {\n 'prefer-arrow-callback': 'error',\n 'no-useless-assignment': 'error',\n };\n}\n","import type { Linter } from 'eslint';\n\nexport interface ReactRuleOptions {\n fastRefresh?: boolean;\n performance?: boolean;\n}\n\nexport type ReactConfigOptions = boolean | ReactRuleOptions;\n\ninterface ResolvedReactRuleOptions {\n fastRefresh: boolean;\n performance: boolean;\n}\n\nexport const reactFileExtensions = ['**/*.jsx', '**/*.tsx'];\n\nexport function resolveReactRuleOptions(options: ReactConfigOptions = false): ResolvedReactRuleOptions {\n if (options === false) {\n return {\n fastRefresh: false,\n performance: false,\n };\n }\n\n if (options === true) {\n return {\n fastRefresh: true,\n performance: true,\n };\n }\n\n return {\n fastRefresh: options.fastRefresh ?? true,\n performance: options.performance ?? true,\n };\n}\n\nexport function reactRulesOxlint(options: ReactConfigOptions = false): Linter.RulesRecord {\n const resolvedOptions = resolveReactRuleOptions(options);\n\n return {\n 'react/jsx-key': 'error',\n 'react/jsx-no-duplicate-props': 'error',\n 'react/no-children-prop': 'error',\n 'react/no-danger-with-children': 'error',\n 'react/void-dom-elements-no-children': 'error',\n 'react/no-unknown-property': 'error',\n 'react/style-prop-object': 'error',\n 'react/button-has-type': 'error',\n 'react/checked-requires-onchange-or-readonly': 'error',\n 'react/forward-ref-uses-ref': 'error',\n 'react/jsx-props-no-spread-multi': 'error',\n 'react/jsx-no-script-url': 'error',\n 'react/jsx-no-target-blank': 'error',\n 'react/jsx-no-constructed-context-values': 'error',\n 'react/no-unstable-nested-components': 'error',\n 'react/no-array-index-key': 'warn',\n 'react/no-object-type-as-default-prop': 'warn',\n 'react/iframe-missing-sandbox': 'error',\n 'react/no-danger': 'warn',\n\n ...(resolvedOptions.fastRefresh && {\n 'react/only-export-components': ['warn', { allowConstantExport: true }],\n }),\n\n ...(resolvedOptions.performance && {\n 'react-perf/jsx-no-new-object-as-prop': 'warn',\n 'react-perf/jsx-no-new-array-as-prop': 'warn',\n 'react-perf/jsx-no-new-function-as-prop': 'warn',\n 'react-perf/jsx-no-jsx-as-prop': 'warn',\n }),\n };\n}\n","import type { Linter } from 'eslint';\nimport { jsRulesOxlint, type JavaScriptRuleOptions } from './javascript.js';\n\nexport const tsFileExtensions = ['**/*.ts', '**/*.tsx', '**/*.mts', '**/*.cts'];\n\nconst tsIgnoreDescriptionFormat = String.raw`^: TS\\d+ because .+$`;\n\nexport interface TypeScriptRuleOptions extends JavaScriptRuleOptions {\n namingConvention?: {\n variable?: {\n inheritFormat?: boolean;\n format?: string[];\n exceptions?: string[];\n };\n parameter?: {\n inheritFormat?: boolean;\n format?: string[];\n exceptions?: string[];\n };\n typeLike?: {\n inheritFormat?: boolean;\n format?: string[];\n exceptions?: string[];\n };\n memberLike?: {\n inheritFormat?: boolean;\n format?: string[];\n exceptions?: string[];\n };\n function?: {\n inheritFormat?: boolean;\n format?: string[];\n exceptions?: string[];\n };\n };\n}\n\ninterface NamingConventionFormatOptions {\n inheritFormat?: boolean;\n format?: string[];\n}\n\n/**\n * Lists the type-aware typescript-eslint rules that Oxlint executes natively through tsgolint (`options.typeAware`).\n * They mirror what typescript-eslint's `strictTypeChecked` + `stylisticTypeChecked` presets enabled when these rules\n * still ran under ESLint (same severities, same options), so moving them here changed which engine serves them,\n * not the behavior.\n *\n * Type-aware rules in oxlint's `correctness` category (e.g. `await-thenable`,\n * `unbound-method`) are not listed. They already run via the default category,\n * as `warn`, matching the pre-migration state.\n *\n * `typescript/naming-convention` is one of the two typescript-eslint type-aware rules tsgolint\n * doesn't implement. It stays in ESLint (see {@link tsRulesEslint}).\n */\nexport const tsTypeAwareRulesOxlint: Linter.RulesRecord = {\n 'typescript/no-confusing-void-expression': 'error',\n 'typescript/no-deprecated': 'error',\n 'typescript/no-floating-promises': 'error',\n 'typescript/no-misused-promises': 'error',\n 'typescript/no-mixed-enums': 'error',\n 'typescript/no-unnecessary-boolean-literal-compare': 'error',\n 'typescript/no-unnecessary-condition': 'error',\n 'typescript/no-unnecessary-template-expression': 'error',\n 'typescript/no-unnecessary-type-arguments': 'error',\n 'typescript/no-unnecessary-type-assertion': 'error',\n 'typescript/no-unnecessary-type-conversion': 'error',\n 'typescript/no-unnecessary-type-parameters': 'error',\n 'typescript/no-unsafe-argument': 'error',\n 'typescript/no-unsafe-assignment': 'error',\n 'typescript/no-unsafe-call': 'error',\n 'typescript/no-unsafe-enum-comparison': 'error',\n 'typescript/no-unsafe-member-access': 'error',\n 'typescript/no-unsafe-return': 'error',\n 'typescript/non-nullable-type-assertion-style': 'error',\n 'typescript/only-throw-error': 'error',\n 'typescript/prefer-find': 'error',\n 'typescript/prefer-includes': 'error',\n 'typescript/prefer-nullish-coalescing': ['error', { ignorePrimitives: true }],\n 'typescript/prefer-optional-chain': 'error',\n 'typescript/prefer-promise-reject-errors': 'error',\n 'typescript/prefer-reduce-type-parameter': 'error',\n 'typescript/prefer-regexp-exec': 'error',\n 'typescript/prefer-return-this-type': 'error',\n 'typescript/prefer-string-starts-ends-with': 'error',\n 'typescript/related-getter-setter-pairs': 'error',\n 'typescript/restrict-plus-operands': [\n 'error',\n {\n allowAny: false,\n allowBoolean: false,\n allowNullish: false,\n allowNumberAndString: false,\n allowRegExp: false,\n },\n ],\n 'typescript/return-await': ['error', 'error-handling-correctness-only'],\n 'typescript/use-unknown-in-catch-callback-variable': 'error',\n};\n\n/**\n * Lists the syntax-only rules that Oxlint ports natively and that used to reach ESLint through\n * typescript-eslint's presets. They are the `strictTypeChecked` and `stylisticTypeChecked` rules that\n * don't need type information, plus the ESLint-core rules that typescript-eslint's `eslintRecommended`\n * config raises for TypeScript files (hence the `eslint/` prefix and the TS-files-only scope).\n */\nexport const tsSyntaxRulesOxlint: Linter.RulesRecord = {\n 'typescript/adjacent-overload-signatures': 'error',\n 'typescript/ban-tslint-comment': 'error',\n 'typescript/class-literal-property-style': 'error',\n 'typescript/consistent-generic-constructors': 'error',\n 'typescript/consistent-indexed-object-style': 'error',\n 'typescript/consistent-type-assertions': 'error',\n 'typescript/consistent-type-definitions': 'error',\n 'typescript/no-array-constructor': 'error',\n 'typescript/no-confusing-non-null-assertion': 'error',\n 'typescript/no-empty-object-type': 'error',\n 'typescript/no-extraneous-class': 'error',\n 'typescript/no-inferrable-types': 'error',\n 'typescript/no-invalid-void-type': 'error',\n 'typescript/no-namespace': 'error',\n 'typescript/no-non-null-asserted-nullish-coalescing': 'error',\n 'typescript/no-require-imports': 'error',\n 'typescript/no-unnecessary-type-constraint': 'error',\n 'typescript/no-unsafe-function-type': 'error',\n 'typescript/no-useless-constructor': 'error',\n 'typescript/prefer-for-of': 'error',\n 'typescript/prefer-function-type': 'error',\n 'typescript/prefer-literal-enum-member': 'error',\n 'typescript/unified-signatures': 'error',\n\n 'eslint/no-var': 'error',\n 'eslint/prefer-const': ['error', { destructuring: 'any', ignoreReadBeforeAssign: false }],\n 'eslint/prefer-rest-params': 'error',\n 'eslint/prefer-spread': 'error',\n};\n\nexport function tsRulesOxlint(options: TypeScriptRuleOptions = {}): Linter.RulesRecord {\n return {\n ...jsRulesOxlint(options),\n\n ...tsTypeAwareRulesOxlint,\n ...tsSyntaxRulesOxlint,\n\n 'typescript/no-unused-vars': [\n 'error',\n {\n argsIgnorePattern: '^_',\n ignoreRestSiblings: true,\n },\n ],\n 'typescript/no-non-null-assertion': 'error',\n 'typescript/no-empty-function': 'off',\n 'typescript/no-explicit-any': 'off',\n 'typescript/no-base-to-string': 'off',\n 'typescript/no-dynamic-delete': 'off',\n 'typescript/no-extra-non-null-assertion': 'error',\n 'typescript/no-non-null-asserted-optional-chain': 'error',\n 'typescript/explicit-module-boundary-types': 'off',\n 'typescript/ban-ts-comment': [\n 'error',\n {\n 'ts-expect-error': { descriptionFormat: tsIgnoreDescriptionFormat },\n 'ts-ignore': { descriptionFormat: tsIgnoreDescriptionFormat },\n 'ts-nocheck': true,\n 'ts-check': false,\n },\n ],\n\n '@stylistic/type-annotation-spacing': 'error',\n\n // comment handling conflicts with the padding-line heuristics\n '@stylistic/lines-around-comment': 'off',\n };\n}\n\n/**\n * Only rules Oxlint can't run remain here. `naming-convention` is one of the two typescript-eslint\n * type-aware rules tsgolint doesn't implement, and `explicit-member-accessibility` has no Oxlint\n * port at all.\n */\nexport function tsRulesEslint(options: TypeScriptRuleOptions = {}): Linter.RulesRecord {\n return {\n ...getESLintNamingConventionRule(options.namingConvention),\n '@typescript-eslint/explicit-member-accessibility': ['error', { accessibility: 'no-public' }],\n '@typescript-eslint/no-dynamic-delete': 'off',\n '@typescript-eslint/array-type': 'off',\n '@typescript-eslint/require-await': 'off',\n '@typescript-eslint/no-explicit-any': 'off',\n '@typescript-eslint/no-empty-function': 'off',\n '@typescript-eslint/no-unused-vars': [\n 'error',\n {\n argsIgnorePattern: '^_',\n varsIgnorePattern: '^_',\n caughtErrorsIgnorePattern: '^_',\n destructuredArrayIgnorePattern: '^_',\n ignoreRestSiblings: true,\n },\n ],\n };\n}\n\nexport function getESLintNamingConventionRule(\n extensions?: TypeScriptRuleOptions['namingConvention'],\n): Linter.RulesRecord {\n const oxlintRules = getNamingConventionRule(extensions);\n\n return {\n '@typescript-eslint/naming-convention': oxlintRules['typescript/naming-convention'],\n };\n}\n\nexport function getNamingConventionRule(extensions?: TypeScriptRuleOptions['namingConvention']): Linter.RulesRecord {\n return {\n 'typescript/naming-convention': [\n 'error',\n {\n selector: ['variable'],\n format: mergeFormat(['camelCase', 'UPPER_CASE', 'PascalCase'], extensions?.variable),\n leadingUnderscore: 'allowSingleOrDouble',\n trailingUnderscore: 'forbid',\n filter: {\n regex: generateFilterRegex(['__dirname'], extensions?.variable?.exceptions),\n match: false,\n },\n },\n {\n selector: ['function'],\n format: mergeFormat(['camelCase', 'UPPER_CASE', 'PascalCase'], extensions?.function),\n leadingUnderscore: 'allowSingleOrDouble',\n trailingUnderscore: 'forbid',\n filter: {\n regex: generateFilterRegex(['__dirname'], extensions?.function?.exceptions),\n match: false,\n },\n },\n {\n selector: 'parameter',\n format: mergeFormat(['camelCase', 'UPPER_CASE', 'PascalCase'], extensions?.parameter),\n leadingUnderscore: 'allow',\n ...(extensions?.parameter?.exceptions?.length && {\n filter: {\n regex: generateFilterRegex([], extensions.parameter.exceptions),\n match: false,\n },\n }),\n },\n {\n selector: 'typeLike',\n format: mergeFormat(['PascalCase'], extensions?.typeLike),\n ...(extensions?.typeLike?.exceptions?.length && {\n filter: {\n regex: generateFilterRegex([], extensions.typeLike.exceptions),\n match: false,\n },\n }),\n },\n {\n selector: 'memberLike',\n modifiers: ['private'],\n format: mergeFormat(['camelCase', 'PascalCase'], extensions?.memberLike),\n leadingUnderscore: 'require',\n ...(extensions?.memberLike?.exceptions?.length && {\n filter: {\n regex: generateFilterRegex([], extensions.memberLike.exceptions),\n match: false,\n },\n }),\n },\n ],\n };\n}\n\nfunction mergeFormat(defaults: string[], extensions?: NamingConventionFormatOptions) {\n return [...new Set([...((extensions?.inheritFormat ?? true) ? defaults : []), ...(extensions?.format ?? [])])];\n}\n\nfunction generateFilterRegex(defaults: string[], extensions: string[] = []) {\n return `^(${[...defaults, ...extensions].join('|')})$`;\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/configs/unicorn.ts","../src/configs/abbreviations.ts","../src/configs/javascript.ts","../src/configs/react.ts","../src/configs/typescript.ts"],"sourcesContent":["import type { Linter } from 'eslint';\n\n/**\n * Mirrors `eslint-plugin-unicorn`'s recommended config, split by runtime.\n *\n * Oxlint natively implements most unicorn rules, so we enable those under the canonical\n * `unicorn/` prefix (fast, Rust). Rules oxlint hasn't ported run through the original JS\n * plugin, aliased as `unicornx` in `jsPlugins` (see `src/oxlint.ts`), because oxlint's\n * built-in plugin owns the `unicorn/` namespace.\n *\n * `unicorn/name-replacements` is also not ported. It lives in `javascript.ts` because it\n * takes user-configurable options.\n */\n\n/**\n * Lists the Unicorn recommended rules natively implemented by Oxlint, grouped by the oxlint category\n * they belong to. Only the correctness group is enabled by oxlint's defaults (as `warn`). Everything is\n * set explicitly to `error` to match the recommended config.\n */\nexport const unicornRulesOxlint: Linter.RulesRecord = {\n // correctness\n 'unicorn/no-await-in-promise-methods': 'error',\n 'unicorn/no-empty-file': 'warn',\n 'unicorn/no-invalid-fetch-options': 'error',\n 'unicorn/no-invalid-remove-event-listener': 'error',\n 'unicorn/no-new-array': 'error',\n 'unicorn/no-single-promise-in-promise-methods': 'error',\n 'unicorn/no-thenable': 'error',\n 'unicorn/no-unnecessary-await': 'error',\n 'unicorn/no-useless-fallback-in-spread': 'error',\n 'unicorn/no-useless-length-check': 'error',\n 'unicorn/no-useless-spread': 'error',\n 'unicorn/prefer-set-size': 'error',\n 'unicorn/prefer-string-starts-ends-with': 'error',\n\n // perf\n 'unicorn/prefer-array-find': 'error',\n 'unicorn/prefer-array-flat-map': 'error',\n 'unicorn/prefer-set-has': 'error',\n\n // restriction\n 'unicorn/no-abusive-eslint-disable': 'error',\n 'unicorn/no-anonymous-default-export': 'error',\n 'unicorn/no-array-for-each': 'error',\n 'unicorn/no-array-reduce': 'error',\n 'unicorn/no-document-cookie': 'error',\n 'unicorn/no-magic-array-flat-depth': 'error',\n 'unicorn/no-process-exit': 'error',\n 'unicorn/no-useless-error-capture-stack-trace': 'error',\n 'unicorn/prefer-modern-math-apis': 'error',\n 'unicorn/prefer-module': 'error',\n 'unicorn/prefer-node-protocol': 'error',\n 'unicorn/prefer-number-properties': 'error',\n\n // suspicious\n 'unicorn/consistent-function-scoping': 'error',\n 'unicorn/no-accessor-recursion': 'error',\n 'unicorn/no-array-reverse': 'error',\n 'unicorn/no-array-sort': 'error',\n 'unicorn/no-instanceof-builtins': 'error',\n 'unicorn/prefer-add-event-listener': 'error',\n 'unicorn/require-module-specifiers': 'error',\n\n // pedantic\n 'unicorn/consistent-assert': 'error',\n 'unicorn/consistent-empty-array-spread': 'error',\n 'unicorn/escape-case': 'error',\n 'unicorn/explicit-length-check': 'error',\n 'unicorn/new-for-builtins': 'error',\n 'unicorn/no-array-callback-reference': 'error',\n 'unicorn/no-hex-escape': 'error',\n 'unicorn/no-immediate-mutation': 'error',\n 'unicorn/no-lonely-if': 'error',\n 'unicorn/no-negation-in-equality-check': 'error',\n 'unicorn/no-new-buffer': 'error',\n 'unicorn/no-object-as-default-parameter': 'error',\n 'unicorn/no-static-only-class': 'error',\n 'unicorn/no-this-assignment': 'error',\n 'unicorn/no-typeof-undefined': 'error',\n 'unicorn/no-unnecessary-array-flat-depth': 'error',\n 'unicorn/no-unnecessary-array-splice-count': 'error',\n 'unicorn/no-unnecessary-slice-end': 'error',\n 'unicorn/no-unreadable-iife': 'error',\n 'unicorn/no-useless-promise-resolve-reject': 'error',\n 'unicorn/no-useless-switch-case': 'error',\n 'unicorn/prefer-array-flat': 'error',\n 'unicorn/prefer-array-some': 'error',\n 'unicorn/prefer-at': 'error',\n 'unicorn/prefer-blob-reading-methods': 'error',\n 'unicorn/prefer-code-point': 'error',\n 'unicorn/prefer-date-now': 'error',\n 'unicorn/prefer-dom-node-append': 'error',\n 'unicorn/prefer-dom-node-dataset': 'error',\n 'unicorn/prefer-dom-node-remove': 'error',\n 'unicorn/prefer-event-target': 'error',\n 'unicorn/prefer-math-min-max': 'error',\n 'unicorn/prefer-math-trunc': 'error',\n 'unicorn/prefer-native-coercion-functions': 'error',\n 'unicorn/prefer-prototype-methods': 'error',\n 'unicorn/prefer-query-selector': 'error',\n 'unicorn/prefer-regexp-test': 'error',\n 'unicorn/prefer-string-replace-all': 'error',\n 'unicorn/prefer-string-slice': 'error',\n 'unicorn/prefer-top-level-await': 'error',\n 'unicorn/prefer-type-error': 'error',\n 'unicorn/require-number-to-fixed-digits-argument': 'error',\n\n // style\n 'unicorn/catch-error-name': ['error', { name: 'error' }],\n 'unicorn/consistent-date-clone': 'error',\n 'unicorn/consistent-existence-index-check': 'error',\n 'unicorn/consistent-template-literal-escape': 'error',\n 'unicorn/empty-brace-spaces': 'error',\n 'unicorn/error-message': 'error',\n 'unicorn/no-array-method-this-argument': 'error',\n 'unicorn/no-await-expression-member': 'error',\n 'unicorn/no-console-spaces': 'error',\n 'unicorn/no-unreadable-array-destructuring': 'error',\n 'unicorn/no-useless-collection-argument': 'error',\n 'unicorn/no-zero-fractions': 'error',\n 'unicorn/numeric-separators-style': 'error',\n 'unicorn/prefer-array-index-of': 'error',\n 'unicorn/prefer-bigint-literals': 'error',\n 'unicorn/prefer-class-fields': 'error',\n 'unicorn/prefer-classlist-toggle': 'error',\n 'unicorn/prefer-default-parameters': 'error',\n 'unicorn/prefer-dom-node-text-content': 'error',\n 'unicorn/prefer-global-this': 'error',\n 'unicorn/prefer-includes': 'error',\n 'unicorn/prefer-keyboard-event-key': 'error',\n 'unicorn/prefer-logical-operator-over-ternary': 'error',\n 'unicorn/prefer-modern-dom-apis': 'error',\n 'unicorn/prefer-negative-index': 'error',\n 'unicorn/prefer-object-from-entries': 'error',\n 'unicorn/prefer-optional-catch-binding': 'error',\n 'unicorn/prefer-reflect-apply': 'error',\n 'unicorn/prefer-response-static-json': 'error',\n 'unicorn/prefer-spread': 'error',\n 'unicorn/prefer-string-raw': 'error',\n 'unicorn/prefer-string-trim-start-end': 'error',\n 'unicorn/prefer-structured-clone': 'error',\n 'unicorn/relative-url-style': 'error',\n 'unicorn/require-array-join-separator': 'error',\n 'unicorn/require-module-attributes': 'error',\n 'unicorn/switch-case-braces': 'error',\n 'unicorn/switch-case-break-position': 'error',\n 'unicorn/text-encoding-identifier-case': 'error',\n 'unicorn/throw-new-error': 'error',\n};\n\n/**\n * Lists the Unicorn recommended rules that Oxlint hasn't ported. They run inside Oxlint through the\n * original JS plugin under the `unicornx` alias.\n */\nexport const unicornRulesJsPlugin: Linter.RulesRecord = {\n 'unicornx/isolated-functions': 'error',\n 'unicornx/no-for-loop': 'error',\n 'unicornx/no-named-default': 'error',\n 'unicornx/no-unnecessary-polyfills': 'error',\n 'unicornx/no-unreadable-for-of-expression': 'error',\n 'unicornx/prefer-export-from': 'error',\n 'unicornx/prefer-simple-condition-first': 'error',\n 'unicornx/prefer-single-call': 'error',\n 'unicornx/prefer-switch': 'error',\n 'unicornx/template-indent': 'error',\n\n /**\n * Native port exists but only in oxlint's nursery category, which can't be enabled from config,\n * so we run the JS original instead.\n */\n 'unicornx/no-useless-iterator-to-array': 'error',\n\n /**\n * Oxlint's port hardcodes uppercase hexadecimal digits, which fights Prettier's lowercase\n * formatting, so we run the JS original with the lowercase option instead.\n */\n 'unicornx/number-literal-case': ['error', { hexadecimalValue: 'lowercase' }],\n};\n\n/**\n * Lists the Unicorn recommended rules that can't run inside Oxlint's JS-plugin host yet because the\n * compat layer is missing ESLint APIs (e.g. `sourceCode.getDisableDirectives`). ESLint picks them up\n * after Oxlint runs.\n */\nexport const unicornRulesEslint: Linter.RulesRecord = {\n 'unicorn/expiring-todo-comments': 'error',\n};\n","export const DEFAULT_ABBREVIATION_ALLOW_LIST = ['fn', 'cb', 'err', 'prev', 'dev', 'i'];\n\nexport const ABBREVIATION_REPLACEMENTS: Record<string, Record<string, boolean> | false> = {\n ref: false,\n refs: false,\n dev: false,\n dir: false,\n env: false,\n prop: false,\n props: false,\n util: false,\n utils: false,\n lib: false,\n libs: false,\n param: false,\n params: false,\n arg: false,\n args: false,\n db: false,\n ev: { event: true },\n val: { value: true },\n msg: { message: true },\n el: { element: true },\n elem: { element: true },\n btn: { button: true },\n cb: { callback: true },\n fn: { function: true },\n err: { error: true },\n opts: { options: true },\n cfg: { config: true },\n obj: { object: true },\n arr: { array: true },\n str: { string: true },\n num: { number: true },\n curr: { current: true },\n len: { length: true },\n e: { event: true, error: true },\n};\n","import type { Linter } from 'eslint';\nimport { ABBREVIATION_REPLACEMENTS, DEFAULT_ABBREVIATION_ALLOW_LIST } from './abbreviations.js';\nimport { unicornRulesJsPlugin, unicornRulesOxlint } from './unicorn.js';\n\nexport const jsFileExtensions = ['**/*.js', '**/*.jsx', '**/*.mjs', '**/*.cjs'];\n\nexport const paddingLineEntries = [\n {\n blankLine: 'always',\n prev: '*',\n next: ['block', 'block-like', 'class', 'const', 'let'],\n },\n {\n blankLine: 'always',\n prev: 'block',\n next: '*',\n },\n {\n blankLine: 'always',\n prev: ['const'],\n next: '*',\n },\n {\n blankLine: 'always',\n prev: ['let'],\n next: '*',\n },\n {\n blankLine: 'any',\n prev: ['const'],\n next: ['const'],\n },\n {\n blankLine: 'any',\n prev: ['let'],\n next: ['let'],\n },\n {\n blankLine: 'always',\n prev: ['let'],\n next: ['const'],\n },\n {\n blankLine: 'always',\n prev: ['const'],\n next: ['let'],\n },\n {\n blankLine: 'always',\n prev: ['singleline-const'],\n next: ['multiline-const'],\n },\n {\n blankLine: 'always',\n prev: ['multiline-const'],\n next: ['singleline-const'],\n },\n {\n blankLine: 'always',\n prev: ['singleline-let'],\n next: ['multiline-let'],\n },\n {\n blankLine: 'always',\n prev: ['multiline-let'],\n next: ['singleline-let'],\n },\n {\n blankLine: 'any',\n prev: ['case', 'block', 'block-like'],\n next: ['case', 'default'],\n },\n {\n blankLine: 'always',\n prev: '*',\n next: ['break', 'continue'],\n },\n {\n blankLine: 'always',\n prev: 'if',\n next: '*',\n },\n {\n blankLine: 'always',\n prev: {\n selector:\n 'ExpressionStatement:matches([expression.type=\"CallExpression\"], [expression.type=\"AwaitExpression\"][expression.argument.type=\"CallExpression\"])',\n },\n next: { selector: 'ExpressionStatement[expression.type=\"AssignmentExpression\"]' },\n },\n {\n blankLine: 'always',\n prev: { selector: 'ExpressionStatement[expression.type=\"AssignmentExpression\"]' },\n next: {\n selector:\n 'ExpressionStatement:matches([expression.type=\"CallExpression\"], [expression.type=\"AwaitExpression\"][expression.argument.type=\"CallExpression\"])',\n },\n },\n /**\n * The rule applies the last entry that matches a statement pair, so the import-to-import entry\n * must come after the surrounding `*` entries.\n */\n {\n blankLine: 'always',\n prev: 'import',\n next: '*',\n },\n {\n blankLine: 'always',\n prev: '*',\n next: 'import',\n },\n {\n blankLine: 'any',\n prev: 'import',\n next: 'import',\n },\n /**\n * The rule applies the last entry that matches a statement pair, so the export-to-export entry\n * must come after the surrounding `*` entries.\n */\n {\n blankLine: 'always',\n prev: 'export',\n next: '*',\n },\n {\n blankLine: 'always',\n prev: '*',\n next: 'export',\n },\n {\n blankLine: 'any',\n prev: 'export',\n next: 'export',\n },\n];\n\nexport const jsdocTagLineOptions = ['never', { startLines: 1, applyToEndTag: false }];\n\nexport interface JavaScriptRuleOptions {\n preventAbbreviations?: {\n allowList?: string[];\n inheritAllowList?: boolean;\n replacements?: Record<string, Record<string, boolean> | false>;\n inheritReplacements?: boolean;\n };\n}\n\nexport function jsRulesOxlint(options: JavaScriptRuleOptions = {}): Linter.RulesRecord {\n const { preventAbbreviations: preventAbbreviationsOptions } = options;\n\n const {\n inheritAllowList = true,\n inheritReplacements = true,\n allowList = [],\n replacements = {},\n } = preventAbbreviationsOptions ?? {};\n\n const effectiveAllowList = inheritAllowList ? [...DEFAULT_ABBREVIATION_ALLOW_LIST, ...allowList] : allowList;\n\n return {\n 'consistent-return': 'error',\n curly: ['error', 'all'],\n 'arrow-body-style': 'off',\n 'dot-notation': 'error',\n 'no-debugger': 'warn',\n 'no-unused-vars': 'off',\n 'no-async-promise-executor': 'error',\n 'no-case-declarations': 'error',\n 'default-case-last': 'error',\n 'no-cond-assign': 'error',\n 'no-return-assign': ['error', 'always'],\n 'no-dynamic-delete': 'off',\n 'no-unneeded-ternary': 'error',\n 'object-shorthand': 'error',\n 'no-constant-condition': ['error', { checkLoops: false }],\n\n '@stylistic/padding-line-between-statements': ['error', ...paddingLineEntries],\n '@stylistic/no-trailing-spaces': 'error',\n\n /**\n * Indentation is owned by Prettier. Oxlint's @stylistic/indent port diverges from eslint-stylistic on edge cases\n * (e.g., multiline object args inside ternaries), so we leave the rule off.\n */\n '@stylistic/indent': 'off',\n '@stylistic/no-multiple-empty-lines': ['error', { max: 1 }],\n '@stylistic/multiline-comment-style': ['error', 'starred-block'],\n '@stylistic/spaced-comment': [\n 'error',\n 'always',\n {\n block: { balanced: true },\n },\n ],\n '@stylistic/brace-style': ['error', '1tbs'],\n '@stylistic/lines-around-comment': [\n 'error',\n {\n beforeBlockComment: true,\n beforeLineComment: true,\n allowBlockStart: true,\n allowBlockEnd: false,\n allowObjectStart: true,\n allowObjectEnd: false,\n allowArrayStart: true,\n allowArrayEnd: true,\n allowClassStart: true,\n allowInterfaceStart: true,\n allowInterfaceEnd: true,\n allowEnumStart: true,\n allowEnumEnd: true,\n allowTypeStart: true,\n allowTypeEnd: false,\n },\n ],\n\n ...unicornRulesOxlint,\n ...unicornRulesJsPlugin,\n\n /**\n * Oxlint's built-in `unicorn` / `jsdoc` plugins don't implement these, so we wire the original JS\n * plugins under aliased names (see jsPlugins in `src/oxlint.ts`). Rule IDs use the alias instead\n * of the canonical prefix.\n */\n 'unicornx/name-replacements': [\n 'error',\n {\n replacements: inheritReplacements ? { ...ABBREVIATION_REPLACEMENTS, ...replacements } : replacements,\n allowList: Object.fromEntries(effectiveAllowList.map((name) => [name, true])),\n },\n ],\n\n 'jsdocx/tag-lines': ['error', ...jsdocTagLineOptions],\n };\n}\n\n/**\n * These rules can't run under Oxlint. They are ESLint-core rules that Oxlint hasn't implemented\n * (`prefer-arrow-callback`) or only ships in its nursery category (`no-useless-assignment`), and\n * no plugin we can alias into oxlint's `jsPlugins` exposes them, because the `@eslint/js` package\n * only ships configs, not a raw `rules` object. ESLint picks them up after Oxlint runs.\n */\nexport function jsRulesEslint(_options: JavaScriptRuleOptions = {}): Linter.RulesRecord {\n return {\n 'prefer-arrow-callback': 'error',\n 'no-useless-assignment': 'error',\n };\n}\n","import type { Linter } from 'eslint';\n\nexport interface ReactRuleOptions {\n fastRefresh?: boolean;\n performance?: boolean;\n}\n\nexport type ReactConfigOptions = boolean | ReactRuleOptions;\n\ninterface ResolvedReactRuleOptions {\n fastRefresh: boolean;\n performance: boolean;\n}\n\nexport const reactFileExtensions = ['**/*.jsx', '**/*.tsx'];\n\nexport function resolveReactRuleOptions(options: ReactConfigOptions = false): ResolvedReactRuleOptions {\n if (options === false) {\n return {\n fastRefresh: false,\n performance: false,\n };\n }\n\n if (options === true) {\n return {\n fastRefresh: true,\n performance: true,\n };\n }\n\n return {\n fastRefresh: options.fastRefresh ?? true,\n performance: options.performance ?? true,\n };\n}\n\nexport function reactRulesOxlint(options: ReactConfigOptions = false): Linter.RulesRecord {\n const resolvedOptions = resolveReactRuleOptions(options);\n\n return {\n 'react/jsx-key': 'error',\n 'react/jsx-no-duplicate-props': 'error',\n 'react/no-children-prop': 'error',\n 'react/no-danger-with-children': 'error',\n 'react/void-dom-elements-no-children': 'error',\n 'react/no-unknown-property': 'error',\n 'react/style-prop-object': 'error',\n 'react/button-has-type': 'error',\n 'react/checked-requires-onchange-or-readonly': 'error',\n 'react/forward-ref-uses-ref': 'error',\n 'react/jsx-props-no-spread-multi': 'error',\n 'react/jsx-no-script-url': 'error',\n 'react/jsx-no-target-blank': 'error',\n 'react/jsx-no-constructed-context-values': 'error',\n 'react/no-unstable-nested-components': 'error',\n 'react/no-array-index-key': 'warn',\n 'react/no-object-type-as-default-prop': 'warn',\n 'react/iframe-missing-sandbox': 'error',\n 'react/no-danger': 'warn',\n\n ...(resolvedOptions.fastRefresh && {\n 'react/only-export-components': ['warn', { allowConstantExport: true }],\n }),\n\n ...(resolvedOptions.performance && {\n 'react-perf/jsx-no-new-object-as-prop': 'warn',\n 'react-perf/jsx-no-new-array-as-prop': 'warn',\n 'react-perf/jsx-no-new-function-as-prop': 'warn',\n 'react-perf/jsx-no-jsx-as-prop': 'warn',\n }),\n };\n}\n","import type { Linter } from 'eslint';\nimport { jsRulesOxlint, type JavaScriptRuleOptions } from './javascript.js';\n\nexport const tsFileExtensions = ['**/*.ts', '**/*.tsx', '**/*.mts', '**/*.cts'];\n\nconst tsIgnoreDescriptionFormat = String.raw`^: TS\\d+ because .+$`;\n\nexport interface TypeScriptRuleOptions extends JavaScriptRuleOptions {\n namingConvention?: {\n variable?: {\n inheritFormat?: boolean;\n format?: string[];\n exceptions?: string[];\n };\n parameter?: {\n inheritFormat?: boolean;\n format?: string[];\n exceptions?: string[];\n };\n typeLike?: {\n inheritFormat?: boolean;\n format?: string[];\n exceptions?: string[];\n };\n memberLike?: {\n inheritFormat?: boolean;\n format?: string[];\n exceptions?: string[];\n };\n function?: {\n inheritFormat?: boolean;\n format?: string[];\n exceptions?: string[];\n };\n };\n}\n\ninterface NamingConventionFormatOptions {\n inheritFormat?: boolean;\n format?: string[];\n}\n\n/**\n * Lists the type-aware typescript-eslint rules that Oxlint executes natively through tsgolint (`options.typeAware`).\n * They mirror what typescript-eslint's `strictTypeChecked` + `stylisticTypeChecked` presets enabled when these rules\n * still ran under ESLint (same severities, same options), so moving them here changed which engine serves them,\n * not the behavior.\n *\n * Type-aware rules in oxlint's `correctness` category (e.g. `await-thenable`,\n * `unbound-method`) are not listed. They already run via the default category,\n * as `warn`, matching the pre-migration state.\n *\n * `typescript/naming-convention` is one of the two typescript-eslint type-aware rules tsgolint\n * doesn't implement. It stays in ESLint (see {@link tsRulesEslint}).\n */\nexport const tsTypeAwareRulesOxlint: Linter.RulesRecord = {\n 'typescript/no-confusing-void-expression': 'error',\n 'typescript/no-deprecated': 'error',\n 'typescript/no-floating-promises': 'error',\n 'typescript/no-misused-promises': 'error',\n 'typescript/no-mixed-enums': 'error',\n 'typescript/no-unnecessary-boolean-literal-compare': 'error',\n 'typescript/no-unnecessary-condition': 'error',\n 'typescript/no-unnecessary-template-expression': 'error',\n 'typescript/no-unnecessary-type-arguments': 'error',\n 'typescript/no-unnecessary-type-assertion': 'error',\n 'typescript/no-unnecessary-type-conversion': 'error',\n 'typescript/no-unnecessary-type-parameters': 'error',\n 'typescript/no-unsafe-argument': 'error',\n 'typescript/no-unsafe-assignment': 'error',\n 'typescript/no-unsafe-call': 'error',\n 'typescript/no-unsafe-enum-comparison': 'error',\n 'typescript/no-unsafe-member-access': 'error',\n 'typescript/no-unsafe-return': 'error',\n 'typescript/non-nullable-type-assertion-style': 'error',\n 'typescript/only-throw-error': 'error',\n 'typescript/prefer-find': 'error',\n 'typescript/prefer-includes': 'error',\n 'typescript/prefer-nullish-coalescing': ['error', { ignorePrimitives: true }],\n 'typescript/prefer-optional-chain': 'error',\n 'typescript/prefer-promise-reject-errors': 'error',\n 'typescript/prefer-reduce-type-parameter': 'error',\n 'typescript/prefer-regexp-exec': 'error',\n 'typescript/prefer-return-this-type': 'error',\n 'typescript/prefer-string-starts-ends-with': 'error',\n 'typescript/related-getter-setter-pairs': 'error',\n 'typescript/restrict-plus-operands': [\n 'error',\n {\n allowAny: false,\n allowBoolean: false,\n allowNullish: false,\n allowNumberAndString: false,\n allowRegExp: false,\n },\n ],\n 'typescript/return-await': ['error', 'error-handling-correctness-only'],\n 'typescript/use-unknown-in-catch-callback-variable': 'error',\n};\n\n/**\n * Lists the syntax-only rules that Oxlint ports natively and that used to reach ESLint through\n * typescript-eslint's presets. They are the `strictTypeChecked` and `stylisticTypeChecked` rules that\n * don't need type information, plus the ESLint-core rules that typescript-eslint's `eslintRecommended`\n * config raises for TypeScript files (hence the `eslint/` prefix and the TS-files-only scope).\n */\nexport const tsSyntaxRulesOxlint: Linter.RulesRecord = {\n 'typescript/adjacent-overload-signatures': 'error',\n 'typescript/ban-tslint-comment': 'error',\n 'typescript/class-literal-property-style': 'error',\n 'typescript/consistent-generic-constructors': 'error',\n 'typescript/consistent-indexed-object-style': 'error',\n 'typescript/consistent-type-assertions': 'error',\n 'typescript/consistent-type-definitions': 'error',\n 'typescript/no-array-constructor': 'error',\n 'typescript/no-confusing-non-null-assertion': 'error',\n 'typescript/no-empty-object-type': 'error',\n 'typescript/no-extraneous-class': 'error',\n 'typescript/no-inferrable-types': 'error',\n 'typescript/no-invalid-void-type': 'error',\n 'typescript/no-namespace': 'error',\n 'typescript/no-non-null-asserted-nullish-coalescing': 'error',\n 'typescript/no-require-imports': 'error',\n 'typescript/no-unnecessary-type-constraint': 'error',\n 'typescript/no-unsafe-function-type': 'error',\n 'typescript/no-useless-constructor': 'error',\n 'typescript/prefer-for-of': 'error',\n 'typescript/prefer-function-type': 'error',\n 'typescript/prefer-literal-enum-member': 'error',\n 'typescript/unified-signatures': 'error',\n\n 'eslint/no-var': 'error',\n 'eslint/prefer-const': ['error', { destructuring: 'any', ignoreReadBeforeAssign: false }],\n 'eslint/prefer-rest-params': 'error',\n 'eslint/prefer-spread': 'error',\n};\n\nexport function tsRulesOxlint(options: TypeScriptRuleOptions = {}): Linter.RulesRecord {\n return {\n ...jsRulesOxlint(options),\n\n ...tsTypeAwareRulesOxlint,\n ...tsSyntaxRulesOxlint,\n\n 'typescript/no-unused-vars': [\n 'error',\n {\n argsIgnorePattern: '^_',\n ignoreRestSiblings: true,\n },\n ],\n 'typescript/no-non-null-assertion': 'error',\n 'typescript/no-empty-function': 'off',\n 'typescript/no-explicit-any': 'off',\n 'typescript/no-base-to-string': 'off',\n 'typescript/no-dynamic-delete': 'off',\n 'typescript/no-extra-non-null-assertion': 'error',\n 'typescript/no-non-null-asserted-optional-chain': 'error',\n 'typescript/explicit-module-boundary-types': 'off',\n 'typescript/ban-ts-comment': [\n 'error',\n {\n 'ts-expect-error': { descriptionFormat: tsIgnoreDescriptionFormat },\n 'ts-ignore': { descriptionFormat: tsIgnoreDescriptionFormat },\n 'ts-nocheck': true,\n 'ts-check': false,\n },\n ],\n\n '@stylistic/type-annotation-spacing': 'error',\n\n // comment handling conflicts with the padding-line heuristics\n '@stylistic/lines-around-comment': 'off',\n };\n}\n\n/**\n * Only rules Oxlint can't run remain here. `naming-convention` is one of the two typescript-eslint\n * type-aware rules tsgolint doesn't implement, and `explicit-member-accessibility` has no Oxlint\n * port at all.\n */\nexport function tsRulesEslint(options: TypeScriptRuleOptions = {}): Linter.RulesRecord {\n return {\n ...getESLintNamingConventionRule(options.namingConvention),\n '@typescript-eslint/explicit-member-accessibility': ['error', { accessibility: 'no-public' }],\n '@typescript-eslint/no-dynamic-delete': 'off',\n '@typescript-eslint/array-type': 'off',\n '@typescript-eslint/require-await': 'off',\n '@typescript-eslint/no-explicit-any': 'off',\n '@typescript-eslint/no-empty-function': 'off',\n '@typescript-eslint/no-unused-vars': [\n 'error',\n {\n argsIgnorePattern: '^_',\n varsIgnorePattern: '^_',\n caughtErrorsIgnorePattern: '^_',\n destructuredArrayIgnorePattern: '^_',\n ignoreRestSiblings: true,\n },\n ],\n };\n}\n\nexport function getESLintNamingConventionRule(\n extensions?: TypeScriptRuleOptions['namingConvention'],\n): Linter.RulesRecord {\n const oxlintRules = getNamingConventionRule(extensions);\n\n return {\n '@typescript-eslint/naming-convention': oxlintRules['typescript/naming-convention'],\n };\n}\n\nexport function getNamingConventionRule(extensions?: TypeScriptRuleOptions['namingConvention']): Linter.RulesRecord {\n return {\n 'typescript/naming-convention': [\n 'error',\n {\n selector: ['variable'],\n format: mergeFormat(['camelCase', 'UPPER_CASE', 'PascalCase'], extensions?.variable),\n leadingUnderscore: 'allowSingleOrDouble',\n trailingUnderscore: 'forbid',\n filter: {\n regex: generateFilterRegex(['__dirname'], extensions?.variable?.exceptions),\n match: false,\n },\n },\n {\n selector: ['function'],\n format: mergeFormat(['camelCase', 'UPPER_CASE', 'PascalCase'], extensions?.function),\n leadingUnderscore: 'allowSingleOrDouble',\n trailingUnderscore: 'forbid',\n filter: {\n regex: generateFilterRegex(['__dirname'], extensions?.function?.exceptions),\n match: false,\n },\n },\n {\n selector: 'parameter',\n format: mergeFormat(['camelCase', 'UPPER_CASE', 'PascalCase'], extensions?.parameter),\n leadingUnderscore: 'allow',\n ...(extensions?.parameter?.exceptions?.length && {\n filter: {\n regex: generateFilterRegex([], extensions.parameter.exceptions),\n match: false,\n },\n }),\n },\n {\n selector: 'typeLike',\n format: mergeFormat(['PascalCase'], extensions?.typeLike),\n ...(extensions?.typeLike?.exceptions?.length && {\n filter: {\n regex: generateFilterRegex([], extensions.typeLike.exceptions),\n match: false,\n },\n }),\n },\n {\n selector: 'memberLike',\n modifiers: ['private'],\n format: mergeFormat(['camelCase', 'PascalCase'], extensions?.memberLike),\n leadingUnderscore: 'require',\n ...(extensions?.memberLike?.exceptions?.length && {\n filter: {\n regex: generateFilterRegex([], extensions.memberLike.exceptions),\n match: false,\n },\n }),\n },\n ],\n };\n}\n\nfunction mergeFormat(defaults: string[], extensions?: NamingConventionFormatOptions) {\n return [...new Set([...((extensions?.inheritFormat ?? true) ? defaults : []), ...(extensions?.format ?? [])])];\n}\n\nfunction generateFilterRegex(defaults: string[], extensions: string[] = []) {\n return `^(${[...defaults, ...extensions].join('|')})$`;\n}\n"],"mappings":"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","names":[]}
@@ -677,4 +677,4 @@ function generateFilterRegex(defaults, extensions = []) {
677
677
 
678
678
 
679
679
  exports.unicornRulesEslint = unicornRulesEslint; exports.jsFileExtensions = jsFileExtensions; exports.jsRulesOxlint = jsRulesOxlint; exports.jsRulesEslint = jsRulesEslint; exports.reactFileExtensions = reactFileExtensions; exports.resolveReactRuleOptions = resolveReactRuleOptions; exports.reactRulesOxlint = reactRulesOxlint; exports.tsFileExtensions = tsFileExtensions; exports.tsRulesOxlint = tsRulesOxlint; exports.tsRulesEslint = tsRulesEslint;
680
- //# sourceMappingURL=chunk-M3BAUCCR.cjs.map
680
+ //# sourceMappingURL=chunk-HEEMZMIV.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/lint-preset/lint-preset/dist/chunk-M3BAUCCR.cjs","../src/configs/unicorn.ts","../src/configs/abbreviations.ts","../src/configs/javascript.ts","../src/configs/react.ts","../src/configs/typescript.ts"],"names":[],"mappings":"AAAA;ACmBO,IAAM,mBAAA,EAAyC;AAAA;AAAA,EAEpD,qCAAA,EAAuC,OAAA;AAAA,EACvC,uBAAA,EAAyB,MAAA;AAAA,EACzB,kCAAA,EAAoC,OAAA;AAAA,EACpC,0CAAA,EAA4C,OAAA;AAAA,EAC5C,sBAAA,EAAwB,OAAA;AAAA,EACxB,8CAAA,EAAgD,OAAA;AAAA,EAChD,qBAAA,EAAuB,OAAA;AAAA,EACvB,8BAAA,EAAgC,OAAA;AAAA,EAChC,uCAAA,EAAyC,OAAA;AAAA,EACzC,iCAAA,EAAmC,OAAA;AAAA,EACnC,2BAAA,EAA6B,OAAA;AAAA,EAC7B,yBAAA,EAA2B,OAAA;AAAA,EAC3B,wCAAA,EAA0C,OAAA;AAAA;AAAA,EAG1C,2BAAA,EAA6B,OAAA;AAAA,EAC7B,+BAAA,EAAiC,OAAA;AAAA,EACjC,wBAAA,EAA0B,OAAA;AAAA;AAAA,EAG1B,mCAAA,EAAqC,OAAA;AAAA,EACrC,qCAAA,EAAuC,OAAA;AAAA,EACvC,2BAAA,EAA6B,OAAA;AAAA,EAC7B,yBAAA,EAA2B,OAAA;AAAA,EAC3B,4BAAA,EAA8B,OAAA;AAAA,EAC9B,mCAAA,EAAqC,OAAA;AAAA,EACrC,yBAAA,EAA2B,OAAA;AAAA,EAC3B,8CAAA,EAAgD,OAAA;AAAA,EAChD,iCAAA,EAAmC,OAAA;AAAA,EACnC,uBAAA,EAAyB,OAAA;AAAA,EACzB,8BAAA,EAAgC,OAAA;AAAA,EAChC,kCAAA,EAAoC,OAAA;AAAA;AAAA,EAGpC,qCAAA,EAAuC,OAAA;AAAA,EACvC,+BAAA,EAAiC,OAAA;AAAA,EACjC,0BAAA,EAA4B,OAAA;AAAA,EAC5B,uBAAA,EAAyB,OAAA;AAAA,EACzB,gCAAA,EAAkC,OAAA;AAAA,EAClC,mCAAA,EAAqC,OAAA;AAAA,EACrC,mCAAA,EAAqC,OAAA;AAAA;AAAA,EAGrC,2BAAA,EAA6B,OAAA;AAAA,EAC7B,uCAAA,EAAyC,OAAA;AAAA,EACzC,qBAAA,EAAuB,OAAA;AAAA,EACvB,+BAAA,EAAiC,OAAA;AAAA,EACjC,0BAAA,EAA4B,OAAA;AAAA,EAC5B,qCAAA,EAAuC,OAAA;AAAA,EACvC,uBAAA,EAAyB,OAAA;AAAA,EACzB,+BAAA,EAAiC,OAAA;AAAA,EACjC,sBAAA,EAAwB,OAAA;AAAA,EACxB,uCAAA,EAAyC,OAAA;AAAA,EACzC,uBAAA,EAAyB,OAAA;AAAA,EACzB,wCAAA,EAA0C,OAAA;AAAA,EAC1C,8BAAA,EAAgC,OAAA;AAAA,EAChC,4BAAA,EAA8B,OAAA;AAAA,EAC9B,6BAAA,EAA+B,OAAA;AAAA,EAC/B,yCAAA,EAA2C,OAAA;AAAA,EAC3C,2CAAA,EAA6C,OAAA;AAAA,EAC7C,kCAAA,EAAoC,OAAA;AAAA,EACpC,4BAAA,EAA8B,OAAA;AAAA,EAC9B,2CAAA,EAA6C,OAAA;AAAA,EAC7C,gCAAA,EAAkC,OAAA;AAAA,EAClC,2BAAA,EAA6B,OAAA;AAAA,EAC7B,2BAAA,EAA6B,OAAA;AAAA,EAC7B,mBAAA,EAAqB,OAAA;AAAA,EACrB,qCAAA,EAAuC,OAAA;AAAA,EACvC,2BAAA,EAA6B,OAAA;AAAA,EAC7B,yBAAA,EAA2B,OAAA;AAAA,EAC3B,gCAAA,EAAkC,OAAA;AAAA,EAClC,iCAAA,EAAmC,OAAA;AAAA,EACnC,gCAAA,EAAkC,OAAA;AAAA,EAClC,6BAAA,EAA+B,OAAA;AAAA,EAC/B,6BAAA,EAA+B,OAAA;AAAA,EAC/B,2BAAA,EAA6B,OAAA;AAAA,EAC7B,0CAAA,EAA4C,OAAA;AAAA,EAC5C,kCAAA,EAAoC,OAAA;AAAA,EACpC,+BAAA,EAAiC,OAAA;AAAA,EACjC,4BAAA,EAA8B,OAAA;AAAA,EAC9B,mCAAA,EAAqC,OAAA;AAAA,EACrC,6BAAA,EAA+B,OAAA;AAAA,EAC/B,gCAAA,EAAkC,OAAA;AAAA,EAClC,2BAAA,EAA6B,OAAA;AAAA,EAC7B,iDAAA,EAAmD,OAAA;AAAA;AAAA,EAGnD,0BAAA,EAA4B,CAAC,OAAA,EAAS,EAAE,IAAA,EAAM,QAAQ,CAAC,CAAA;AAAA,EACvD,+BAAA,EAAiC,OAAA;AAAA,EACjC,0CAAA,EAA4C,OAAA;AAAA,EAC5C,4CAAA,EAA8C,OAAA;AAAA,EAC9C,4BAAA,EAA8B,OAAA;AAAA,EAC9B,uBAAA,EAAyB,OAAA;AAAA,EACzB,uCAAA,EAAyC,OAAA;AAAA,EACzC,oCAAA,EAAsC,OAAA;AAAA,EACtC,2BAAA,EAA6B,OAAA;AAAA,EAC7B,2CAAA,EAA6C,OAAA;AAAA,EAC7C,wCAAA,EAA0C,OAAA;AAAA,EAC1C,2BAAA,EAA6B,OAAA;AAAA,EAC7B,kCAAA,EAAoC,OAAA;AAAA,EACpC,+BAAA,EAAiC,OAAA;AAAA,EACjC,gCAAA,EAAkC,OAAA;AAAA,EAClC,6BAAA,EAA+B,OAAA;AAAA,EAC/B,iCAAA,EAAmC,OAAA;AAAA,EACnC,mCAAA,EAAqC,OAAA;AAAA,EACrC,sCAAA,EAAwC,OAAA;AAAA,EACxC,4BAAA,EAA8B,OAAA;AAAA,EAC9B,yBAAA,EAA2B,OAAA;AAAA,EAC3B,mCAAA,EAAqC,OAAA;AAAA,EACrC,8CAAA,EAAgD,OAAA;AAAA,EAChD,gCAAA,EAAkC,OAAA;AAAA,EAClC,+BAAA,EAAiC,OAAA;AAAA,EACjC,oCAAA,EAAsC,OAAA;AAAA,EACtC,uCAAA,EAAyC,OAAA;AAAA,EACzC,8BAAA,EAAgC,OAAA;AAAA,EAChC,qCAAA,EAAuC,OAAA;AAAA,EACvC,uBAAA,EAAyB,OAAA;AAAA,EACzB,2BAAA,EAA6B,OAAA;AAAA,EAC7B,sCAAA,EAAwC,OAAA;AAAA,EACxC,iCAAA,EAAmC,OAAA;AAAA,EACnC,4BAAA,EAA8B,OAAA;AAAA,EAC9B,sCAAA,EAAwC,OAAA;AAAA,EACxC,mCAAA,EAAqC,OAAA;AAAA,EACrC,4BAAA,EAA8B,OAAA;AAAA,EAC9B,oCAAA,EAAsC,OAAA;AAAA,EACtC,uCAAA,EAAyC,OAAA;AAAA,EACzC,yBAAA,EAA2B;AAC7B,CAAA;AAMO,IAAM,qBAAA,EAA2C;AAAA,EACtD,6BAAA,EAA+B,OAAA;AAAA,EAC/B,sBAAA,EAAwB,OAAA;AAAA,EACxB,2BAAA,EAA6B,OAAA;AAAA,EAC7B,mCAAA,EAAqC,OAAA;AAAA,EACrC,0CAAA,EAA4C,OAAA;AAAA,EAC5C,6BAAA,EAA+B,OAAA;AAAA,EAC/B,wCAAA,EAA0C,OAAA;AAAA,EAC1C,6BAAA,EAA+B,OAAA;AAAA,EAC/B,wBAAA,EAA0B,OAAA;AAAA,EAC1B,0BAAA,EAA4B,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM5B,uCAAA,EAAyC,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMzC,8BAAA,EAAgC,CAAC,OAAA,EAAS,EAAE,gBAAA,EAAkB,YAAY,CAAC;AAC7E,CAAA;AAOO,IAAM,mBAAA,EAAyC;AAAA,EACpD,gCAAA,EAAkC;AACpC,CAAA;ADnCA;AACA;AExJO,IAAM,gCAAA,EAAkC,CAAC,IAAA,EAAM,IAAA,EAAM,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,GAAG,CAAA;AAE9E,IAAM,0BAAA,EAA6E;AAAA,EACxF,GAAA,EAAK,KAAA;AAAA,EACL,IAAA,EAAM,KAAA;AAAA,EACN,GAAA,EAAK,KAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA,EACL,GAAA,EAAK,KAAA;AAAA,EACL,IAAA,EAAM,KAAA;AAAA,EACN,KAAA,EAAO,KAAA;AAAA,EACP,IAAA,EAAM,KAAA;AAAA,EACN,KAAA,EAAO,KAAA;AAAA,EACP,GAAA,EAAK,KAAA;AAAA,EACL,IAAA,EAAM,KAAA;AAAA,EACN,KAAA,EAAO,KAAA;AAAA,EACP,MAAA,EAAQ,KAAA;AAAA,EACR,GAAA,EAAK,KAAA;AAAA,EACL,IAAA,EAAM,KAAA;AAAA,EACN,EAAA,EAAI,KAAA;AAAA,EACJ,EAAA,EAAI,EAAE,KAAA,EAAO,KAAK,CAAA;AAAA,EAClB,GAAA,EAAK,EAAE,KAAA,EAAO,KAAK,CAAA;AAAA,EACnB,GAAA,EAAK,EAAE,OAAA,EAAS,KAAK,CAAA;AAAA,EACrB,EAAA,EAAI,EAAE,OAAA,EAAS,KAAK,CAAA;AAAA,EACpB,IAAA,EAAM,EAAE,OAAA,EAAS,KAAK,CAAA;AAAA,EACtB,GAAA,EAAK,EAAE,MAAA,EAAQ,KAAK,CAAA;AAAA,EACpB,EAAA,EAAI,EAAE,QAAA,EAAU,KAAK,CAAA;AAAA,EACrB,EAAA,EAAI,EAAE,QAAA,EAAU,KAAK,CAAA;AAAA,EACrB,GAAA,EAAK,EAAE,KAAA,EAAO,KAAK,CAAA;AAAA,EACnB,IAAA,EAAM,EAAE,OAAA,EAAS,KAAK,CAAA;AAAA,EACtB,GAAA,EAAK,EAAE,MAAA,EAAQ,KAAK,CAAA;AAAA,EACpB,GAAA,EAAK,EAAE,MAAA,EAAQ,KAAK,CAAA;AAAA,EACpB,GAAA,EAAK,EAAE,KAAA,EAAO,KAAK,CAAA;AAAA,EACnB,GAAA,EAAK,EAAE,MAAA,EAAQ,KAAK,CAAA;AAAA,EACpB,GAAA,EAAK,EAAE,MAAA,EAAQ,KAAK,CAAA;AAAA,EACpB,IAAA,EAAM,EAAE,OAAA,EAAS,KAAK,CAAA;AAAA,EACtB,GAAA,EAAK,EAAE,MAAA,EAAQ,KAAK,CAAA;AAAA,EACpB,CAAA,EAAG,EAAE,KAAA,EAAO,IAAA,EAAM,KAAA,EAAO,KAAK;AAChC,CAAA;AFyJA;AACA;AG3LO,IAAM,iBAAA,EAAmB,CAAC,SAAA,EAAW,UAAA,EAAY,UAAA,EAAY,UAAU,CAAA;AAEvE,IAAM,mBAAA,EAAqB;AAAA,EAChC;AAAA,IACE,SAAA,EAAW,QAAA;AAAA,IACX,IAAA,EAAM,GAAA;AAAA,IACN,IAAA,EAAM,CAAC,OAAA,EAAS,YAAA,EAAc,OAAA,EAAS,OAAA,EAAS,KAAK;AAAA,EACvD,CAAA;AAAA,EACA;AAAA,IACE,SAAA,EAAW,QAAA;AAAA,IACX,IAAA,EAAM,OAAA;AAAA,IACN,IAAA,EAAM;AAAA,EACR,CAAA;AAAA,EACA;AAAA,IACE,SAAA,EAAW,QAAA;AAAA,IACX,IAAA,EAAM,CAAC,OAAO,CAAA;AAAA,IACd,IAAA,EAAM;AAAA,EACR,CAAA;AAAA,EACA;AAAA,IACE,SAAA,EAAW,QAAA;AAAA,IACX,IAAA,EAAM,CAAC,KAAK,CAAA;AAAA,IACZ,IAAA,EAAM;AAAA,EACR,CAAA;AAAA,EACA;AAAA,IACE,SAAA,EAAW,KAAA;AAAA,IACX,IAAA,EAAM,CAAC,OAAO,CAAA;AAAA,IACd,IAAA,EAAM,CAAC,OAAO;AAAA,EAChB,CAAA;AAAA,EACA;AAAA,IACE,SAAA,EAAW,KAAA;AAAA,IACX,IAAA,EAAM,CAAC,KAAK,CAAA;AAAA,IACZ,IAAA,EAAM,CAAC,KAAK;AAAA,EACd,CAAA;AAAA,EACA;AAAA,IACE,SAAA,EAAW,QAAA;AAAA,IACX,IAAA,EAAM,CAAC,KAAK,CAAA;AAAA,IACZ,IAAA,EAAM,CAAC,OAAO;AAAA,EAChB,CAAA;AAAA,EACA;AAAA,IACE,SAAA,EAAW,QAAA;AAAA,IACX,IAAA,EAAM,CAAC,OAAO,CAAA;AAAA,IACd,IAAA,EAAM,CAAC,KAAK;AAAA,EACd,CAAA;AAAA,EACA;AAAA,IACE,SAAA,EAAW,QAAA;AAAA,IACX,IAAA,EAAM,CAAC,kBAAkB,CAAA;AAAA,IACzB,IAAA,EAAM,CAAC,iBAAiB;AAAA,EAC1B,CAAA;AAAA,EACA;AAAA,IACE,SAAA,EAAW,QAAA;AAAA,IACX,IAAA,EAAM,CAAC,iBAAiB,CAAA;AAAA,IACxB,IAAA,EAAM,CAAC,kBAAkB;AAAA,EAC3B,CAAA;AAAA,EACA;AAAA,IACE,SAAA,EAAW,QAAA;AAAA,IACX,IAAA,EAAM,CAAC,gBAAgB,CAAA;AAAA,IACvB,IAAA,EAAM,CAAC,eAAe;AAAA,EACxB,CAAA;AAAA,EACA;AAAA,IACE,SAAA,EAAW,QAAA;AAAA,IACX,IAAA,EAAM,CAAC,eAAe,CAAA;AAAA,IACtB,IAAA,EAAM,CAAC,gBAAgB;AAAA,EACzB,CAAA;AAAA,EACA;AAAA,IACE,SAAA,EAAW,KAAA;AAAA,IACX,IAAA,EAAM,CAAC,MAAA,EAAQ,OAAA,EAAS,YAAY,CAAA;AAAA,IACpC,IAAA,EAAM,CAAC,MAAA,EAAQ,SAAS;AAAA,EAC1B,CAAA;AAAA,EACA;AAAA,IACE,SAAA,EAAW,QAAA;AAAA,IACX,IAAA,EAAM,GAAA;AAAA,IACN,IAAA,EAAM,CAAC,OAAA,EAAS,UAAU;AAAA,EAC5B,CAAA;AAAA,EACA;AAAA,IACE,SAAA,EAAW,QAAA;AAAA,IACX,IAAA,EAAM,IAAA;AAAA,IACN,IAAA,EAAM;AAAA,EACR,CAAA;AAAA,EACA;AAAA,IACE,SAAA,EAAW,QAAA;AAAA,IACX,IAAA,EAAM;AAAA,MACJ,QAAA,EACE;AAAA,IACJ,CAAA;AAAA,IACA,IAAA,EAAM,EAAE,QAAA,EAAU,8DAA8D;AAAA,EAClF,CAAA;AAAA,EACA;AAAA,IACE,SAAA,EAAW,QAAA;AAAA,IACX,IAAA,EAAM,EAAE,QAAA,EAAU,8DAA8D,CAAA;AAAA,IAChF,IAAA,EAAM;AAAA,MACJ,QAAA,EACE;AAAA,IACJ;AAAA,EACF,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA;AAAA,IACE,SAAA,EAAW,QAAA;AAAA,IACX,IAAA,EAAM,QAAA;AAAA,IACN,IAAA,EAAM;AAAA,EACR,CAAA;AAAA,EACA;AAAA,IACE,SAAA,EAAW,QAAA;AAAA,IACX,IAAA,EAAM,GAAA;AAAA,IACN,IAAA,EAAM;AAAA,EACR,CAAA;AAAA,EACA;AAAA,IACE,SAAA,EAAW,KAAA;AAAA,IACX,IAAA,EAAM,QAAA;AAAA,IACN,IAAA,EAAM;AAAA,EACR,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA;AAAA,IACE,SAAA,EAAW,QAAA;AAAA,IACX,IAAA,EAAM,QAAA;AAAA,IACN,IAAA,EAAM;AAAA,EACR,CAAA;AAAA,EACA;AAAA,IACE,SAAA,EAAW,QAAA;AAAA,IACX,IAAA,EAAM,GAAA;AAAA,IACN,IAAA,EAAM;AAAA,EACR,CAAA;AAAA,EACA;AAAA,IACE,SAAA,EAAW,KAAA;AAAA,IACX,IAAA,EAAM,QAAA;AAAA,IACN,IAAA,EAAM;AAAA,EACR;AACF,CAAA;AAEO,IAAM,oBAAA,EAAsB,CAAC,OAAA,EAAS,EAAE,UAAA,EAAY,CAAA,EAAG,aAAA,EAAe,MAAM,CAAC,CAAA;AAW7E,SAAS,aAAA,CAAc,QAAA,EAAiC,CAAC,CAAA,EAAuB;AACrF,EAAA,MAAM,EAAE,oBAAA,EAAsB,4BAA4B,EAAA,EAAI,OAAA;AAE9D,EAAA,MAAM;AAAA,IACJ,iBAAA,EAAmB,IAAA;AAAA,IACnB,oBAAA,EAAsB,IAAA;AAAA,IACtB,UAAA,EAAY,CAAC,CAAA;AAAA,IACb,aAAA,EAAe,CAAC;AAAA,EAClB,EAAA,mBAAI,2BAAA,UAA+B,CAAC,GAAA;AAEpC,EAAA,MAAM,mBAAA,EAAqB,iBAAA,EAAmB,CAAC,GAAG,+BAAA,EAAiC,GAAG,SAAS,EAAA,EAAI,SAAA;AAEnG,EAAA,OAAO;AAAA,IACL,mBAAA,EAAqB,OAAA;AAAA,IACrB,KAAA,EAAO,CAAC,OAAA,EAAS,KAAK,CAAA;AAAA,IACtB,kBAAA,EAAoB,KAAA;AAAA,IACpB,cAAA,EAAgB,OAAA;AAAA,IAChB,aAAA,EAAe,MAAA;AAAA,IACf,gBAAA,EAAkB,KAAA;AAAA,IAClB,2BAAA,EAA6B,OAAA;AAAA,IAC7B,sBAAA,EAAwB,OAAA;AAAA,IACxB,mBAAA,EAAqB,OAAA;AAAA,IACrB,gBAAA,EAAkB,OAAA;AAAA,IAClB,kBAAA,EAAoB,CAAC,OAAA,EAAS,QAAQ,CAAA;AAAA,IACtC,mBAAA,EAAqB,KAAA;AAAA,IACrB,qBAAA,EAAuB,OAAA;AAAA,IACvB,kBAAA,EAAoB,OAAA;AAAA,IACpB,uBAAA,EAAyB,CAAC,OAAA,EAAS,EAAE,UAAA,EAAY,MAAM,CAAC,CAAA;AAAA,IAExD,4CAAA,EAA8C,CAAC,OAAA,EAAS,GAAG,kBAAkB,CAAA;AAAA,IAC7E,+BAAA,EAAiC,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMjC,mBAAA,EAAqB,KAAA;AAAA,IACrB,oCAAA,EAAsC,CAAC,OAAA,EAAS,EAAE,GAAA,EAAK,EAAE,CAAC,CAAA;AAAA,IAC1D,oCAAA,EAAsC,CAAC,OAAA,EAAS,eAAe,CAAA;AAAA,IAC/D,2BAAA,EAA6B;AAAA,MAC3B,OAAA;AAAA,MACA,QAAA;AAAA,MACA;AAAA,QACE,KAAA,EAAO,EAAE,QAAA,EAAU,KAAK;AAAA,MAC1B;AAAA,IACF,CAAA;AAAA,IACA,wBAAA,EAA0B,CAAC,OAAA,EAAS,MAAM,CAAA;AAAA,IAC1C,iCAAA,EAAmC;AAAA,MACjC,OAAA;AAAA,MACA;AAAA,QACE,kBAAA,EAAoB,IAAA;AAAA,QACpB,iBAAA,EAAmB,IAAA;AAAA,QACnB,eAAA,EAAiB,IAAA;AAAA,QACjB,aAAA,EAAe,KAAA;AAAA,QACf,gBAAA,EAAkB,IAAA;AAAA,QAClB,cAAA,EAAgB,KAAA;AAAA,QAChB,eAAA,EAAiB,IAAA;AAAA,QACjB,aAAA,EAAe,IAAA;AAAA,QACf,eAAA,EAAiB,IAAA;AAAA,QACjB,mBAAA,EAAqB,IAAA;AAAA,QACrB,iBAAA,EAAmB,IAAA;AAAA,QACnB,cAAA,EAAgB,IAAA;AAAA,QAChB,YAAA,EAAc,IAAA;AAAA,QACd,cAAA,EAAgB,IAAA;AAAA,QAChB,YAAA,EAAc;AAAA,MAChB;AAAA,IACF,CAAA;AAAA,IAEA,GAAG,kBAAA;AAAA,IACH,GAAG,oBAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOH,4BAAA,EAA8B;AAAA,MAC5B,OAAA;AAAA,MACA;AAAA,QACE,YAAA,EAAc,oBAAA,EAAsB,EAAE,GAAG,yBAAA,EAA2B,GAAG,aAAa,EAAA,EAAI,YAAA;AAAA,QACxF,SAAA,EAAW,MAAA,CAAO,WAAA,CAAY,kBAAA,CAAmB,GAAA,CAAI,CAAC,IAAA,EAAA,GAAS,CAAC,IAAA,EAAM,IAAI,CAAC,CAAC;AAAA,MAC9E;AAAA,IACF,CAAA;AAAA,IAEA,kBAAA,EAAoB,CAAC,OAAA,EAAS,GAAG,mBAAmB;AAAA,EACtD,CAAA;AACF;AAQO,SAAS,aAAA,CAAc,SAAA,EAAkC,CAAC,CAAA,EAAuB;AACtF,EAAA,OAAO;AAAA,IACL,uBAAA,EAAyB,OAAA;AAAA,IACzB,uBAAA,EAAyB;AAAA,EAC3B,CAAA;AACF;AHgKA;AACA;AI3YO,IAAM,oBAAA,EAAsB,CAAC,UAAA,EAAY,UAAU,CAAA;AAEnD,SAAS,uBAAA,CAAwB,QAAA,EAA8B,KAAA,EAAiC;AACrG,EAAA,GAAA,CAAI,QAAA,IAAY,KAAA,EAAO;AACrB,IAAA,OAAO;AAAA,MACL,WAAA,EAAa,KAAA;AAAA,MACb,WAAA,EAAa;AAAA,IACf,CAAA;AAAA,EACF;AAEA,EAAA,GAAA,CAAI,QAAA,IAAY,IAAA,EAAM;AACpB,IAAA,OAAO;AAAA,MACL,WAAA,EAAa,IAAA;AAAA,MACb,WAAA,EAAa;AAAA,IACf,CAAA;AAAA,EACF;AAEA,EAAA,OAAO;AAAA,IACL,WAAA,mBAAa,OAAA,CAAQ,WAAA,UAAe,MAAA;AAAA,IACpC,WAAA,mBAAa,OAAA,CAAQ,WAAA,UAAe;AAAA,EACtC,CAAA;AACF;AAEO,SAAS,gBAAA,CAAiB,QAAA,EAA8B,KAAA,EAA2B;AACxF,EAAA,MAAM,gBAAA,EAAkB,uBAAA,CAAwB,OAAO,CAAA;AAEvD,EAAA,OAAO;AAAA,IACL,eAAA,EAAiB,OAAA;AAAA,IACjB,8BAAA,EAAgC,OAAA;AAAA,IAChC,wBAAA,EAA0B,OAAA;AAAA,IAC1B,+BAAA,EAAiC,OAAA;AAAA,IACjC,qCAAA,EAAuC,OAAA;AAAA,IACvC,2BAAA,EAA6B,OAAA;AAAA,IAC7B,yBAAA,EAA2B,OAAA;AAAA,IAC3B,uBAAA,EAAyB,OAAA;AAAA,IACzB,6CAAA,EAA+C,OAAA;AAAA,IAC/C,4BAAA,EAA8B,OAAA;AAAA,IAC9B,iCAAA,EAAmC,OAAA;AAAA,IACnC,yBAAA,EAA2B,OAAA;AAAA,IAC3B,2BAAA,EAA6B,OAAA;AAAA,IAC7B,yCAAA,EAA2C,OAAA;AAAA,IAC3C,qCAAA,EAAuC,OAAA;AAAA,IACvC,0BAAA,EAA4B,MAAA;AAAA,IAC5B,sCAAA,EAAwC,MAAA;AAAA,IACxC,8BAAA,EAAgC,OAAA;AAAA,IAChC,iBAAA,EAAmB,MAAA;AAAA,IAEnB,GAAI,eAAA,CAAgB,YAAA,GAAe;AAAA,MACjC,8BAAA,EAAgC,CAAC,MAAA,EAAQ,EAAE,mBAAA,EAAqB,KAAK,CAAC;AAAA,IACxE,CAAA;AAAA,IAEA,GAAI,eAAA,CAAgB,YAAA,GAAe;AAAA,MACjC,sCAAA,EAAwC,MAAA;AAAA,MACxC,qCAAA,EAAuC,MAAA;AAAA,MACvC,wCAAA,EAA0C,MAAA;AAAA,MAC1C,+BAAA,EAAiC;AAAA,IACnC;AAAA,EACF,CAAA;AACF;AJsYA;AACA;AK5cO,IAAM,iBAAA,EAAmB,CAAC,SAAA,EAAW,UAAA,EAAY,UAAA,EAAY,UAAU,CAAA;AAE9E,IAAM,0BAAA,EAA4B,MAAA,CAAO,GAAA,CAAA,oBAAA,CAAA;AAkDlC,IAAM,uBAAA,EAA6C;AAAA,EACxD,yCAAA,EAA2C,OAAA;AAAA,EAC3C,0BAAA,EAA4B,OAAA;AAAA,EAC5B,iCAAA,EAAmC,OAAA;AAAA,EACnC,gCAAA,EAAkC,OAAA;AAAA,EAClC,2BAAA,EAA6B,OAAA;AAAA,EAC7B,mDAAA,EAAqD,OAAA;AAAA,EACrD,qCAAA,EAAuC,OAAA;AAAA,EACvC,+CAAA,EAAiD,OAAA;AAAA,EACjD,0CAAA,EAA4C,OAAA;AAAA,EAC5C,0CAAA,EAA4C,OAAA;AAAA,EAC5C,2CAAA,EAA6C,OAAA;AAAA,EAC7C,2CAAA,EAA6C,OAAA;AAAA,EAC7C,+BAAA,EAAiC,OAAA;AAAA,EACjC,iCAAA,EAAmC,OAAA;AAAA,EACnC,2BAAA,EAA6B,OAAA;AAAA,EAC7B,sCAAA,EAAwC,OAAA;AAAA,EACxC,oCAAA,EAAsC,OAAA;AAAA,EACtC,6BAAA,EAA+B,OAAA;AAAA,EAC/B,8CAAA,EAAgD,OAAA;AAAA,EAChD,6BAAA,EAA+B,OAAA;AAAA,EAC/B,wBAAA,EAA0B,OAAA;AAAA,EAC1B,4BAAA,EAA8B,OAAA;AAAA,EAC9B,sCAAA,EAAwC,CAAC,OAAA,EAAS,EAAE,gBAAA,EAAkB,KAAK,CAAC,CAAA;AAAA,EAC5E,kCAAA,EAAoC,OAAA;AAAA,EACpC,yCAAA,EAA2C,OAAA;AAAA,EAC3C,yCAAA,EAA2C,OAAA;AAAA,EAC3C,+BAAA,EAAiC,OAAA;AAAA,EACjC,oCAAA,EAAsC,OAAA;AAAA,EACtC,2CAAA,EAA6C,OAAA;AAAA,EAC7C,wCAAA,EAA0C,OAAA;AAAA,EAC1C,mCAAA,EAAqC;AAAA,IACnC,OAAA;AAAA,IACA;AAAA,MACE,QAAA,EAAU,KAAA;AAAA,MACV,YAAA,EAAc,KAAA;AAAA,MACd,YAAA,EAAc,KAAA;AAAA,MACd,oBAAA,EAAsB,KAAA;AAAA,MACtB,WAAA,EAAa;AAAA,IACf;AAAA,EACF,CAAA;AAAA,EACA,yBAAA,EAA2B,CAAC,OAAA,EAAS,iCAAiC,CAAA;AAAA,EACtE,mDAAA,EAAqD;AACvD,CAAA;AAQO,IAAM,oBAAA,EAA0C;AAAA,EACrD,yCAAA,EAA2C,OAAA;AAAA,EAC3C,+BAAA,EAAiC,OAAA;AAAA,EACjC,yCAAA,EAA2C,OAAA;AAAA,EAC3C,4CAAA,EAA8C,OAAA;AAAA,EAC9C,4CAAA,EAA8C,OAAA;AAAA,EAC9C,uCAAA,EAAyC,OAAA;AAAA,EACzC,wCAAA,EAA0C,OAAA;AAAA,EAC1C,iCAAA,EAAmC,OAAA;AAAA,EACnC,4CAAA,EAA8C,OAAA;AAAA,EAC9C,iCAAA,EAAmC,OAAA;AAAA,EACnC,gCAAA,EAAkC,OAAA;AAAA,EAClC,gCAAA,EAAkC,OAAA;AAAA,EAClC,iCAAA,EAAmC,OAAA;AAAA,EACnC,yBAAA,EAA2B,OAAA;AAAA,EAC3B,oDAAA,EAAsD,OAAA;AAAA,EACtD,+BAAA,EAAiC,OAAA;AAAA,EACjC,2CAAA,EAA6C,OAAA;AAAA,EAC7C,oCAAA,EAAsC,OAAA;AAAA,EACtC,mCAAA,EAAqC,OAAA;AAAA,EACrC,0BAAA,EAA4B,OAAA;AAAA,EAC5B,iCAAA,EAAmC,OAAA;AAAA,EACnC,uCAAA,EAAyC,OAAA;AAAA,EACzC,+BAAA,EAAiC,OAAA;AAAA,EAEjC,eAAA,EAAiB,OAAA;AAAA,EACjB,qBAAA,EAAuB,CAAC,OAAA,EAAS,EAAE,aAAA,EAAe,KAAA,EAAO,sBAAA,EAAwB,MAAM,CAAC,CAAA;AAAA,EACxF,2BAAA,EAA6B,OAAA;AAAA,EAC7B,sBAAA,EAAwB;AAC1B,CAAA;AAEO,SAAS,aAAA,CAAc,QAAA,EAAiC,CAAC,CAAA,EAAuB;AACrF,EAAA,OAAO;AAAA,IACL,GAAG,aAAA,CAAc,OAAO,CAAA;AAAA,IAExB,GAAG,sBAAA;AAAA,IACH,GAAG,mBAAA;AAAA,IAEH,2BAAA,EAA6B;AAAA,MAC3B,OAAA;AAAA,MACA;AAAA,QACE,iBAAA,EAAmB,IAAA;AAAA,QACnB,kBAAA,EAAoB;AAAA,MACtB;AAAA,IACF,CAAA;AAAA,IACA,kCAAA,EAAoC,OAAA;AAAA,IACpC,8BAAA,EAAgC,KAAA;AAAA,IAChC,4BAAA,EAA8B,KAAA;AAAA,IAC9B,8BAAA,EAAgC,KAAA;AAAA,IAChC,8BAAA,EAAgC,KAAA;AAAA,IAChC,wCAAA,EAA0C,OAAA;AAAA,IAC1C,gDAAA,EAAkD,OAAA;AAAA,IAClD,2CAAA,EAA6C,KAAA;AAAA,IAC7C,2BAAA,EAA6B;AAAA,MAC3B,OAAA;AAAA,MACA;AAAA,QACE,iBAAA,EAAmB,EAAE,iBAAA,EAAmB,0BAA0B,CAAA;AAAA,QAClE,WAAA,EAAa,EAAE,iBAAA,EAAmB,0BAA0B,CAAA;AAAA,QAC5D,YAAA,EAAc,IAAA;AAAA,QACd,UAAA,EAAY;AAAA,MACd;AAAA,IACF,CAAA;AAAA,IAEA,oCAAA,EAAsC,OAAA;AAAA;AAAA,IAGtC,iCAAA,EAAmC;AAAA,EACrC,CAAA;AACF;AAOO,SAAS,aAAA,CAAc,QAAA,EAAiC,CAAC,CAAA,EAAuB;AACrF,EAAA,OAAO;AAAA,IACL,GAAG,6BAAA,CAA8B,OAAA,CAAQ,gBAAgB,CAAA;AAAA,IACzD,kDAAA,EAAoD,CAAC,OAAA,EAAS,EAAE,aAAA,EAAe,YAAY,CAAC,CAAA;AAAA,IAC5F,sCAAA,EAAwC,KAAA;AAAA,IACxC,+BAAA,EAAiC,KAAA;AAAA,IACjC,kCAAA,EAAoC,KAAA;AAAA,IACpC,oCAAA,EAAsC,KAAA;AAAA,IACtC,sCAAA,EAAwC,KAAA;AAAA,IACxC,mCAAA,EAAqC;AAAA,MACnC,OAAA;AAAA,MACA;AAAA,QACE,iBAAA,EAAmB,IAAA;AAAA,QACnB,iBAAA,EAAmB,IAAA;AAAA,QACnB,yBAAA,EAA2B,IAAA;AAAA,QAC3B,8BAAA,EAAgC,IAAA;AAAA,QAChC,kBAAA,EAAoB;AAAA,MACtB;AAAA,IACF;AAAA,EACF,CAAA;AACF;AAEO,SAAS,6BAAA,CACd,UAAA,EACoB;AACpB,EAAA,MAAM,YAAA,EAAc,uBAAA,CAAwB,UAAU,CAAA;AAEtD,EAAA,OAAO;AAAA,IACL,sCAAA,EAAwC,WAAA,CAAY,8BAA8B;AAAA,EACpF,CAAA;AACF;AAEO,SAAS,uBAAA,CAAwB,UAAA,EAA4E;AAClH,EAAA,OAAO;AAAA,IACL,8BAAA,EAAgC;AAAA,MAC9B,OAAA;AAAA,MACA;AAAA,QACE,QAAA,EAAU,CAAC,UAAU,CAAA;AAAA,QACrB,MAAA,EAAQ,WAAA,CAAY,CAAC,WAAA,EAAa,YAAA,EAAc,YAAY,CAAA,kBAAG,UAAA,2BAAY,UAAQ,CAAA;AAAA,QACnF,iBAAA,EAAmB,qBAAA;AAAA,QACnB,kBAAA,EAAoB,QAAA;AAAA,QACpB,MAAA,EAAQ;AAAA,UACN,KAAA,EAAO,mBAAA,CAAoB,CAAC,WAAW,CAAA,kBAAG,UAAA,6BAAY,QAAA,6BAAU,YAAU,CAAA;AAAA,UAC1E,KAAA,EAAO;AAAA,QACT;AAAA,MACF,CAAA;AAAA,MACA;AAAA,QACE,QAAA,EAAU,CAAC,UAAU,CAAA;AAAA,QACrB,MAAA,EAAQ,WAAA,CAAY,CAAC,WAAA,EAAa,YAAA,EAAc,YAAY,CAAA,kBAAG,UAAA,6BAAY,UAAQ,CAAA;AAAA,QACnF,iBAAA,EAAmB,qBAAA;AAAA,QACnB,kBAAA,EAAoB,QAAA;AAAA,QACpB,MAAA,EAAQ;AAAA,UACN,KAAA,EAAO,mBAAA,CAAoB,CAAC,WAAW,CAAA,kBAAG,UAAA,6BAAY,QAAA,6BAAU,YAAU,CAAA;AAAA,UAC1E,KAAA,EAAO;AAAA,QACT;AAAA,MACF,CAAA;AAAA,MACA;AAAA,QACE,QAAA,EAAU,WAAA;AAAA,QACV,MAAA,EAAQ,WAAA,CAAY,CAAC,WAAA,EAAa,YAAA,EAAc,YAAY,CAAA,kBAAG,UAAA,6BAAY,WAAS,CAAA;AAAA,QACpF,iBAAA,EAAmB,OAAA;AAAA,QACnB,mBAAI,UAAA,6BAAY,SAAA,6BAAW,UAAA,+BAAY,SAAA,GAAU;AAAA,UAC/C,MAAA,EAAQ;AAAA,YACN,KAAA,EAAO,mBAAA,CAAoB,CAAC,CAAA,EAAG,UAAA,CAAW,SAAA,CAAU,UAAU,CAAA;AAAA,YAC9D,KAAA,EAAO;AAAA,UACT;AAAA,QACF;AAAA,MACF,CAAA;AAAA,MACA;AAAA,QACE,QAAA,EAAU,UAAA;AAAA,QACV,MAAA,EAAQ,WAAA,CAAY,CAAC,YAAY,CAAA,kBAAG,UAAA,+BAAY,UAAQ,CAAA;AAAA,QACxD,mBAAI,UAAA,+BAAY,QAAA,+BAAU,UAAA,+BAAY,SAAA,GAAU;AAAA,UAC9C,MAAA,EAAQ;AAAA,YACN,KAAA,EAAO,mBAAA,CAAoB,CAAC,CAAA,EAAG,UAAA,CAAW,QAAA,CAAS,UAAU,CAAA;AAAA,YAC7D,KAAA,EAAO;AAAA,UACT;AAAA,QACF;AAAA,MACF,CAAA;AAAA,MACA;AAAA,QACE,QAAA,EAAU,YAAA;AAAA,QACV,SAAA,EAAW,CAAC,SAAS,CAAA;AAAA,QACrB,MAAA,EAAQ,WAAA,CAAY,CAAC,WAAA,EAAa,YAAY,CAAA,kBAAG,UAAA,+BAAY,YAAU,CAAA;AAAA,QACvE,iBAAA,EAAmB,SAAA;AAAA,QACnB,mBAAI,UAAA,+BAAY,UAAA,+BAAY,UAAA,+BAAY,SAAA,GAAU;AAAA,UAChD,MAAA,EAAQ;AAAA,YACN,KAAA,EAAO,mBAAA,CAAoB,CAAC,CAAA,EAAG,UAAA,CAAW,UAAA,CAAW,UAAU,CAAA;AAAA,YAC/D,KAAA,EAAO;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA;AACF;AAEA,SAAS,WAAA,CAAY,QAAA,EAAoB,UAAA,EAA4C;AACnF,EAAA,OAAO,CAAC,mBAAG,IAAI,GAAA,CAAI,CAAC,oCAAK,UAAA,+BAAY,eAAA,UAAiB,OAAA,EAAQ,SAAA,EAAW,CAAC,CAAA,EAAI,oCAAI,UAAA,+BAAY,QAAA,UAAU,CAAC,GAAE,CAAC,CAAC,CAAA;AAC/G;AAEA,SAAS,mBAAA,CAAoB,QAAA,EAAoB,WAAA,EAAuB,CAAC,CAAA,EAAG;AAC1E,EAAA,OAAO,CAAA,EAAA,EAAK,CAAC,GAAG,QAAA,EAAU,GAAG,UAAU,CAAA,CAAE,IAAA,CAAK,GAAG,CAAC,CAAA,EAAA,CAAA;AACpD;ALkYA;AACA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,icAAC","file":"/home/runner/work/lint-preset/lint-preset/dist/chunk-M3BAUCCR.cjs","sourcesContent":[null,"import type { Linter } from 'eslint';\n\n/**\n * Mirrors `eslint-plugin-unicorn`'s recommended config, split by runtime.\n *\n * Oxlint natively implements most unicorn rules, so we enable those under the canonical\n * `unicorn/` prefix (fast, Rust). Rules oxlint hasn't ported run through the original JS\n * plugin, aliased as `unicornx` in `jsPlugins` (see `src/oxlint.ts`), because oxlint's\n * built-in plugin owns the `unicorn/` namespace.\n *\n * `unicorn/name-replacements` is also not ported. It lives in `javascript.ts` because it\n * takes user-configurable options.\n */\n\n/**\n * Lists the Unicorn recommended rules natively implemented by Oxlint, grouped by the oxlint category\n * they belong to. Only the correctness group is enabled by oxlint's defaults (as `warn`). Everything is\n * set explicitly to `error` to match the recommended config.\n */\nexport const unicornRulesOxlint: Linter.RulesRecord = {\n // correctness\n 'unicorn/no-await-in-promise-methods': 'error',\n 'unicorn/no-empty-file': 'warn',\n 'unicorn/no-invalid-fetch-options': 'error',\n 'unicorn/no-invalid-remove-event-listener': 'error',\n 'unicorn/no-new-array': 'error',\n 'unicorn/no-single-promise-in-promise-methods': 'error',\n 'unicorn/no-thenable': 'error',\n 'unicorn/no-unnecessary-await': 'error',\n 'unicorn/no-useless-fallback-in-spread': 'error',\n 'unicorn/no-useless-length-check': 'error',\n 'unicorn/no-useless-spread': 'error',\n 'unicorn/prefer-set-size': 'error',\n 'unicorn/prefer-string-starts-ends-with': 'error',\n\n // perf\n 'unicorn/prefer-array-find': 'error',\n 'unicorn/prefer-array-flat-map': 'error',\n 'unicorn/prefer-set-has': 'error',\n\n // restriction\n 'unicorn/no-abusive-eslint-disable': 'error',\n 'unicorn/no-anonymous-default-export': 'error',\n 'unicorn/no-array-for-each': 'error',\n 'unicorn/no-array-reduce': 'error',\n 'unicorn/no-document-cookie': 'error',\n 'unicorn/no-magic-array-flat-depth': 'error',\n 'unicorn/no-process-exit': 'error',\n 'unicorn/no-useless-error-capture-stack-trace': 'error',\n 'unicorn/prefer-modern-math-apis': 'error',\n 'unicorn/prefer-module': 'error',\n 'unicorn/prefer-node-protocol': 'error',\n 'unicorn/prefer-number-properties': 'error',\n\n // suspicious\n 'unicorn/consistent-function-scoping': 'error',\n 'unicorn/no-accessor-recursion': 'error',\n 'unicorn/no-array-reverse': 'error',\n 'unicorn/no-array-sort': 'error',\n 'unicorn/no-instanceof-builtins': 'error',\n 'unicorn/prefer-add-event-listener': 'error',\n 'unicorn/require-module-specifiers': 'error',\n\n // pedantic\n 'unicorn/consistent-assert': 'error',\n 'unicorn/consistent-empty-array-spread': 'error',\n 'unicorn/escape-case': 'error',\n 'unicorn/explicit-length-check': 'error',\n 'unicorn/new-for-builtins': 'error',\n 'unicorn/no-array-callback-reference': 'error',\n 'unicorn/no-hex-escape': 'error',\n 'unicorn/no-immediate-mutation': 'error',\n 'unicorn/no-lonely-if': 'error',\n 'unicorn/no-negation-in-equality-check': 'error',\n 'unicorn/no-new-buffer': 'error',\n 'unicorn/no-object-as-default-parameter': 'error',\n 'unicorn/no-static-only-class': 'error',\n 'unicorn/no-this-assignment': 'error',\n 'unicorn/no-typeof-undefined': 'error',\n 'unicorn/no-unnecessary-array-flat-depth': 'error',\n 'unicorn/no-unnecessary-array-splice-count': 'error',\n 'unicorn/no-unnecessary-slice-end': 'error',\n 'unicorn/no-unreadable-iife': 'error',\n 'unicorn/no-useless-promise-resolve-reject': 'error',\n 'unicorn/no-useless-switch-case': 'error',\n 'unicorn/prefer-array-flat': 'error',\n 'unicorn/prefer-array-some': 'error',\n 'unicorn/prefer-at': 'error',\n 'unicorn/prefer-blob-reading-methods': 'error',\n 'unicorn/prefer-code-point': 'error',\n 'unicorn/prefer-date-now': 'error',\n 'unicorn/prefer-dom-node-append': 'error',\n 'unicorn/prefer-dom-node-dataset': 'error',\n 'unicorn/prefer-dom-node-remove': 'error',\n 'unicorn/prefer-event-target': 'error',\n 'unicorn/prefer-math-min-max': 'error',\n 'unicorn/prefer-math-trunc': 'error',\n 'unicorn/prefer-native-coercion-functions': 'error',\n 'unicorn/prefer-prototype-methods': 'error',\n 'unicorn/prefer-query-selector': 'error',\n 'unicorn/prefer-regexp-test': 'error',\n 'unicorn/prefer-string-replace-all': 'error',\n 'unicorn/prefer-string-slice': 'error',\n 'unicorn/prefer-top-level-await': 'error',\n 'unicorn/prefer-type-error': 'error',\n 'unicorn/require-number-to-fixed-digits-argument': 'error',\n\n // style\n 'unicorn/catch-error-name': ['error', { name: 'error' }],\n 'unicorn/consistent-date-clone': 'error',\n 'unicorn/consistent-existence-index-check': 'error',\n 'unicorn/consistent-template-literal-escape': 'error',\n 'unicorn/empty-brace-spaces': 'error',\n 'unicorn/error-message': 'error',\n 'unicorn/no-array-method-this-argument': 'error',\n 'unicorn/no-await-expression-member': 'error',\n 'unicorn/no-console-spaces': 'error',\n 'unicorn/no-unreadable-array-destructuring': 'error',\n 'unicorn/no-useless-collection-argument': 'error',\n 'unicorn/no-zero-fractions': 'error',\n 'unicorn/numeric-separators-style': 'error',\n 'unicorn/prefer-array-index-of': 'error',\n 'unicorn/prefer-bigint-literals': 'error',\n 'unicorn/prefer-class-fields': 'error',\n 'unicorn/prefer-classlist-toggle': 'error',\n 'unicorn/prefer-default-parameters': 'error',\n 'unicorn/prefer-dom-node-text-content': 'error',\n 'unicorn/prefer-global-this': 'error',\n 'unicorn/prefer-includes': 'error',\n 'unicorn/prefer-keyboard-event-key': 'error',\n 'unicorn/prefer-logical-operator-over-ternary': 'error',\n 'unicorn/prefer-modern-dom-apis': 'error',\n 'unicorn/prefer-negative-index': 'error',\n 'unicorn/prefer-object-from-entries': 'error',\n 'unicorn/prefer-optional-catch-binding': 'error',\n 'unicorn/prefer-reflect-apply': 'error',\n 'unicorn/prefer-response-static-json': 'error',\n 'unicorn/prefer-spread': 'error',\n 'unicorn/prefer-string-raw': 'error',\n 'unicorn/prefer-string-trim-start-end': 'error',\n 'unicorn/prefer-structured-clone': 'error',\n 'unicorn/relative-url-style': 'error',\n 'unicorn/require-array-join-separator': 'error',\n 'unicorn/require-module-attributes': 'error',\n 'unicorn/switch-case-braces': 'error',\n 'unicorn/switch-case-break-position': 'error',\n 'unicorn/text-encoding-identifier-case': 'error',\n 'unicorn/throw-new-error': 'error',\n};\n\n/**\n * Lists the Unicorn recommended rules that Oxlint hasn't ported. They run inside Oxlint through the\n * original JS plugin under the `unicornx` alias.\n */\nexport const unicornRulesJsPlugin: Linter.RulesRecord = {\n 'unicornx/isolated-functions': 'error',\n 'unicornx/no-for-loop': 'error',\n 'unicornx/no-named-default': 'error',\n 'unicornx/no-unnecessary-polyfills': 'error',\n 'unicornx/no-unreadable-for-of-expression': 'error',\n 'unicornx/prefer-export-from': 'error',\n 'unicornx/prefer-simple-condition-first': 'error',\n 'unicornx/prefer-single-call': 'error',\n 'unicornx/prefer-switch': 'error',\n 'unicornx/template-indent': 'error',\n\n /**\n * Native port exists but only in oxlint's nursery category, which can't be enabled from config,\n * so we run the JS original instead.\n */\n 'unicornx/no-useless-iterator-to-array': 'error',\n\n /**\n * Oxlint's port hardcodes uppercase hexadecimal digits, which fights Prettier's lowercase\n * formatting, so we run the JS original with the lowercase option instead.\n */\n 'unicornx/number-literal-case': ['error', { hexadecimalValue: 'lowercase' }],\n};\n\n/**\n * Lists the Unicorn recommended rules that can't run inside Oxlint's JS-plugin host yet because the\n * compat layer is missing ESLint APIs (e.g. `sourceCode.getDisableDirectives`). ESLint picks them up\n * after Oxlint runs.\n */\nexport const unicornRulesEslint: Linter.RulesRecord = {\n 'unicorn/expiring-todo-comments': 'error',\n};\n","export const DEFAULT_ABBREVIATION_ALLOW_LIST = ['fn', 'cb', 'err', 'prev', 'dev', 'i'];\n\nexport const ABBREVIATION_REPLACEMENTS: Record<string, Record<string, boolean> | false> = {\n ref: false,\n refs: false,\n dev: false,\n dir: false,\n env: false,\n prop: false,\n props: false,\n util: false,\n utils: false,\n lib: false,\n libs: false,\n param: false,\n params: false,\n arg: false,\n args: false,\n db: false,\n ev: { event: true },\n val: { value: true },\n msg: { message: true },\n el: { element: true },\n elem: { element: true },\n btn: { button: true },\n cb: { callback: true },\n fn: { function: true },\n err: { error: true },\n opts: { options: true },\n cfg: { config: true },\n obj: { object: true },\n arr: { array: true },\n str: { string: true },\n num: { number: true },\n curr: { current: true },\n len: { length: true },\n e: { event: true, error: true },\n};\n","import type { Linter } from 'eslint';\nimport { ABBREVIATION_REPLACEMENTS, DEFAULT_ABBREVIATION_ALLOW_LIST } from './abbreviations.js';\nimport { unicornRulesJsPlugin, unicornRulesOxlint } from './unicorn.js';\n\nexport const jsFileExtensions = ['**/*.js', '**/*.jsx', '**/*.mjs', '**/*.cjs'];\n\nexport const paddingLineEntries = [\n {\n blankLine: 'always',\n prev: '*',\n next: ['block', 'block-like', 'class', 'const', 'let'],\n },\n {\n blankLine: 'always',\n prev: 'block',\n next: '*',\n },\n {\n blankLine: 'always',\n prev: ['const'],\n next: '*',\n },\n {\n blankLine: 'always',\n prev: ['let'],\n next: '*',\n },\n {\n blankLine: 'any',\n prev: ['const'],\n next: ['const'],\n },\n {\n blankLine: 'any',\n prev: ['let'],\n next: ['let'],\n },\n {\n blankLine: 'always',\n prev: ['let'],\n next: ['const'],\n },\n {\n blankLine: 'always',\n prev: ['const'],\n next: ['let'],\n },\n {\n blankLine: 'always',\n prev: ['singleline-const'],\n next: ['multiline-const'],\n },\n {\n blankLine: 'always',\n prev: ['multiline-const'],\n next: ['singleline-const'],\n },\n {\n blankLine: 'always',\n prev: ['singleline-let'],\n next: ['multiline-let'],\n },\n {\n blankLine: 'always',\n prev: ['multiline-let'],\n next: ['singleline-let'],\n },\n {\n blankLine: 'any',\n prev: ['case', 'block', 'block-like'],\n next: ['case', 'default'],\n },\n {\n blankLine: 'always',\n prev: '*',\n next: ['break', 'continue'],\n },\n {\n blankLine: 'always',\n prev: 'if',\n next: '*',\n },\n {\n blankLine: 'always',\n prev: {\n selector:\n 'ExpressionStatement:matches([expression.type=\"CallExpression\"], [expression.type=\"AwaitExpression\"][expression.argument.type=\"CallExpression\"])',\n },\n next: { selector: 'ExpressionStatement[expression.type=\"AssignmentExpression\"]' },\n },\n {\n blankLine: 'always',\n prev: { selector: 'ExpressionStatement[expression.type=\"AssignmentExpression\"]' },\n next: {\n selector:\n 'ExpressionStatement:matches([expression.type=\"CallExpression\"], [expression.type=\"AwaitExpression\"][expression.argument.type=\"CallExpression\"])',\n },\n },\n /**\n * The rule applies the last entry that matches a statement pair, so the import-to-import entry\n * must come after the surrounding `*` entries.\n */\n {\n blankLine: 'always',\n prev: 'import',\n next: '*',\n },\n {\n blankLine: 'always',\n prev: '*',\n next: 'import',\n },\n {\n blankLine: 'any',\n prev: 'import',\n next: 'import',\n },\n /**\n * The rule applies the last entry that matches a statement pair, so the export-to-export entry\n * must come after the surrounding `*` entries.\n */\n {\n blankLine: 'always',\n prev: 'export',\n next: '*',\n },\n {\n blankLine: 'always',\n prev: '*',\n next: 'export',\n },\n {\n blankLine: 'any',\n prev: 'export',\n next: 'export',\n },\n];\n\nexport const jsdocTagLineOptions = ['never', { startLines: 1, applyToEndTag: false }];\n\nexport interface JavaScriptRuleOptions {\n preventAbbreviations?: {\n allowList?: string[];\n inheritAllowList?: boolean;\n replacements?: Record<string, Record<string, boolean> | false>;\n inheritReplacements?: boolean;\n };\n}\n\nexport function jsRulesOxlint(options: JavaScriptRuleOptions = {}): Linter.RulesRecord {\n const { preventAbbreviations: preventAbbreviationsOptions } = options;\n\n const {\n inheritAllowList = true,\n inheritReplacements = true,\n allowList = [],\n replacements = {},\n } = preventAbbreviationsOptions ?? {};\n\n const effectiveAllowList = inheritAllowList ? [...DEFAULT_ABBREVIATION_ALLOW_LIST, ...allowList] : allowList;\n\n return {\n 'consistent-return': 'error',\n curly: ['error', 'all'],\n 'arrow-body-style': 'off',\n 'dot-notation': 'error',\n 'no-debugger': 'warn',\n 'no-unused-vars': 'off',\n 'no-async-promise-executor': 'error',\n 'no-case-declarations': 'error',\n 'default-case-last': 'error',\n 'no-cond-assign': 'error',\n 'no-return-assign': ['error', 'always'],\n 'no-dynamic-delete': 'off',\n 'no-unneeded-ternary': 'error',\n 'object-shorthand': 'error',\n 'no-constant-condition': ['error', { checkLoops: false }],\n\n '@stylistic/padding-line-between-statements': ['error', ...paddingLineEntries],\n '@stylistic/no-trailing-spaces': 'error',\n\n /**\n * Indentation is owned by Prettier. Oxlint's @stylistic/indent port diverges from eslint-stylistic on edge cases\n * (e.g., multiline object args inside ternaries), so we leave the rule off.\n */\n '@stylistic/indent': 'off',\n '@stylistic/no-multiple-empty-lines': ['error', { max: 1 }],\n '@stylistic/multiline-comment-style': ['error', 'starred-block'],\n '@stylistic/spaced-comment': [\n 'error',\n 'always',\n {\n block: { balanced: true },\n },\n ],\n '@stylistic/brace-style': ['error', '1tbs'],\n '@stylistic/lines-around-comment': [\n 'error',\n {\n beforeBlockComment: true,\n beforeLineComment: true,\n allowBlockStart: true,\n allowBlockEnd: false,\n allowObjectStart: true,\n allowObjectEnd: false,\n allowArrayStart: true,\n allowArrayEnd: true,\n allowClassStart: true,\n allowInterfaceStart: true,\n allowInterfaceEnd: true,\n allowEnumStart: true,\n allowEnumEnd: true,\n allowTypeStart: true,\n allowTypeEnd: false,\n },\n ],\n\n ...unicornRulesOxlint,\n ...unicornRulesJsPlugin,\n\n /**\n * Oxlint's built-in `unicorn` / `jsdoc` plugins don't implement these, so we wire the original JS\n * plugins under aliased names (see jsPlugins in `src/oxlint.ts`). Rule IDs use the alias instead\n * of the canonical prefix.\n */\n 'unicornx/name-replacements': [\n 'error',\n {\n replacements: inheritReplacements ? { ...ABBREVIATION_REPLACEMENTS, ...replacements } : replacements,\n allowList: Object.fromEntries(effectiveAllowList.map((name) => [name, true])),\n },\n ],\n\n 'jsdocx/tag-lines': ['error', ...jsdocTagLineOptions],\n };\n}\n\n/**\n * These rules can't run under Oxlint. They are ESLint-core rules that Oxlint hasn't implemented\n * (`prefer-arrow-callback`) or only ships in its nursery category (`no-useless-assignment`), and no\n * plugin we can alias into oxlint's `jsPlugins` exposes them, because the `@eslint/js` package only\n * ships configs, not a raw `rules` object. ESLint picks them up after Oxlint runs.\n */\nexport function jsRulesEslint(_options: JavaScriptRuleOptions = {}): Linter.RulesRecord {\n return {\n 'prefer-arrow-callback': 'error',\n 'no-useless-assignment': 'error',\n };\n}\n","import type { Linter } from 'eslint';\n\nexport interface ReactRuleOptions {\n fastRefresh?: boolean;\n performance?: boolean;\n}\n\nexport type ReactConfigOptions = boolean | ReactRuleOptions;\n\ninterface ResolvedReactRuleOptions {\n fastRefresh: boolean;\n performance: boolean;\n}\n\nexport const reactFileExtensions = ['**/*.jsx', '**/*.tsx'];\n\nexport function resolveReactRuleOptions(options: ReactConfigOptions = false): ResolvedReactRuleOptions {\n if (options === false) {\n return {\n fastRefresh: false,\n performance: false,\n };\n }\n\n if (options === true) {\n return {\n fastRefresh: true,\n performance: true,\n };\n }\n\n return {\n fastRefresh: options.fastRefresh ?? true,\n performance: options.performance ?? true,\n };\n}\n\nexport function reactRulesOxlint(options: ReactConfigOptions = false): Linter.RulesRecord {\n const resolvedOptions = resolveReactRuleOptions(options);\n\n return {\n 'react/jsx-key': 'error',\n 'react/jsx-no-duplicate-props': 'error',\n 'react/no-children-prop': 'error',\n 'react/no-danger-with-children': 'error',\n 'react/void-dom-elements-no-children': 'error',\n 'react/no-unknown-property': 'error',\n 'react/style-prop-object': 'error',\n 'react/button-has-type': 'error',\n 'react/checked-requires-onchange-or-readonly': 'error',\n 'react/forward-ref-uses-ref': 'error',\n 'react/jsx-props-no-spread-multi': 'error',\n 'react/jsx-no-script-url': 'error',\n 'react/jsx-no-target-blank': 'error',\n 'react/jsx-no-constructed-context-values': 'error',\n 'react/no-unstable-nested-components': 'error',\n 'react/no-array-index-key': 'warn',\n 'react/no-object-type-as-default-prop': 'warn',\n 'react/iframe-missing-sandbox': 'error',\n 'react/no-danger': 'warn',\n\n ...(resolvedOptions.fastRefresh && {\n 'react/only-export-components': ['warn', { allowConstantExport: true }],\n }),\n\n ...(resolvedOptions.performance && {\n 'react-perf/jsx-no-new-object-as-prop': 'warn',\n 'react-perf/jsx-no-new-array-as-prop': 'warn',\n 'react-perf/jsx-no-new-function-as-prop': 'warn',\n 'react-perf/jsx-no-jsx-as-prop': 'warn',\n }),\n };\n}\n","import type { Linter } from 'eslint';\nimport { jsRulesOxlint, type JavaScriptRuleOptions } from './javascript.js';\n\nexport const tsFileExtensions = ['**/*.ts', '**/*.tsx', '**/*.mts', '**/*.cts'];\n\nconst tsIgnoreDescriptionFormat = String.raw`^: TS\\d+ because .+$`;\n\nexport interface TypeScriptRuleOptions extends JavaScriptRuleOptions {\n namingConvention?: {\n variable?: {\n inheritFormat?: boolean;\n format?: string[];\n exceptions?: string[];\n };\n parameter?: {\n inheritFormat?: boolean;\n format?: string[];\n exceptions?: string[];\n };\n typeLike?: {\n inheritFormat?: boolean;\n format?: string[];\n exceptions?: string[];\n };\n memberLike?: {\n inheritFormat?: boolean;\n format?: string[];\n exceptions?: string[];\n };\n function?: {\n inheritFormat?: boolean;\n format?: string[];\n exceptions?: string[];\n };\n };\n}\n\ninterface NamingConventionFormatOptions {\n inheritFormat?: boolean;\n format?: string[];\n}\n\n/**\n * Lists the type-aware typescript-eslint rules that Oxlint executes natively through tsgolint (`options.typeAware`).\n * They mirror what typescript-eslint's `strictTypeChecked` + `stylisticTypeChecked` presets enabled when these rules\n * still ran under ESLint (same severities, same options), so moving them here changed which engine serves them,\n * not the behavior.\n *\n * Type-aware rules in oxlint's `correctness` category (e.g. `await-thenable`,\n * `unbound-method`) are not listed. They already run via the default category,\n * as `warn`, matching the pre-migration state.\n *\n * `typescript/naming-convention` is one of the two typescript-eslint type-aware rules tsgolint\n * doesn't implement. It stays in ESLint (see {@link tsRulesEslint}).\n */\nexport const tsTypeAwareRulesOxlint: Linter.RulesRecord = {\n 'typescript/no-confusing-void-expression': 'error',\n 'typescript/no-deprecated': 'error',\n 'typescript/no-floating-promises': 'error',\n 'typescript/no-misused-promises': 'error',\n 'typescript/no-mixed-enums': 'error',\n 'typescript/no-unnecessary-boolean-literal-compare': 'error',\n 'typescript/no-unnecessary-condition': 'error',\n 'typescript/no-unnecessary-template-expression': 'error',\n 'typescript/no-unnecessary-type-arguments': 'error',\n 'typescript/no-unnecessary-type-assertion': 'error',\n 'typescript/no-unnecessary-type-conversion': 'error',\n 'typescript/no-unnecessary-type-parameters': 'error',\n 'typescript/no-unsafe-argument': 'error',\n 'typescript/no-unsafe-assignment': 'error',\n 'typescript/no-unsafe-call': 'error',\n 'typescript/no-unsafe-enum-comparison': 'error',\n 'typescript/no-unsafe-member-access': 'error',\n 'typescript/no-unsafe-return': 'error',\n 'typescript/non-nullable-type-assertion-style': 'error',\n 'typescript/only-throw-error': 'error',\n 'typescript/prefer-find': 'error',\n 'typescript/prefer-includes': 'error',\n 'typescript/prefer-nullish-coalescing': ['error', { ignorePrimitives: true }],\n 'typescript/prefer-optional-chain': 'error',\n 'typescript/prefer-promise-reject-errors': 'error',\n 'typescript/prefer-reduce-type-parameter': 'error',\n 'typescript/prefer-regexp-exec': 'error',\n 'typescript/prefer-return-this-type': 'error',\n 'typescript/prefer-string-starts-ends-with': 'error',\n 'typescript/related-getter-setter-pairs': 'error',\n 'typescript/restrict-plus-operands': [\n 'error',\n {\n allowAny: false,\n allowBoolean: false,\n allowNullish: false,\n allowNumberAndString: false,\n allowRegExp: false,\n },\n ],\n 'typescript/return-await': ['error', 'error-handling-correctness-only'],\n 'typescript/use-unknown-in-catch-callback-variable': 'error',\n};\n\n/**\n * Lists the syntax-only rules that Oxlint ports natively and that used to reach ESLint through\n * typescript-eslint's presets. They are the `strictTypeChecked` and `stylisticTypeChecked` rules that\n * don't need type information, plus the ESLint-core rules that typescript-eslint's `eslintRecommended`\n * config raises for TypeScript files (hence the `eslint/` prefix and the TS-files-only scope).\n */\nexport const tsSyntaxRulesOxlint: Linter.RulesRecord = {\n 'typescript/adjacent-overload-signatures': 'error',\n 'typescript/ban-tslint-comment': 'error',\n 'typescript/class-literal-property-style': 'error',\n 'typescript/consistent-generic-constructors': 'error',\n 'typescript/consistent-indexed-object-style': 'error',\n 'typescript/consistent-type-assertions': 'error',\n 'typescript/consistent-type-definitions': 'error',\n 'typescript/no-array-constructor': 'error',\n 'typescript/no-confusing-non-null-assertion': 'error',\n 'typescript/no-empty-object-type': 'error',\n 'typescript/no-extraneous-class': 'error',\n 'typescript/no-inferrable-types': 'error',\n 'typescript/no-invalid-void-type': 'error',\n 'typescript/no-namespace': 'error',\n 'typescript/no-non-null-asserted-nullish-coalescing': 'error',\n 'typescript/no-require-imports': 'error',\n 'typescript/no-unnecessary-type-constraint': 'error',\n 'typescript/no-unsafe-function-type': 'error',\n 'typescript/no-useless-constructor': 'error',\n 'typescript/prefer-for-of': 'error',\n 'typescript/prefer-function-type': 'error',\n 'typescript/prefer-literal-enum-member': 'error',\n 'typescript/unified-signatures': 'error',\n\n 'eslint/no-var': 'error',\n 'eslint/prefer-const': ['error', { destructuring: 'any', ignoreReadBeforeAssign: false }],\n 'eslint/prefer-rest-params': 'error',\n 'eslint/prefer-spread': 'error',\n};\n\nexport function tsRulesOxlint(options: TypeScriptRuleOptions = {}): Linter.RulesRecord {\n return {\n ...jsRulesOxlint(options),\n\n ...tsTypeAwareRulesOxlint,\n ...tsSyntaxRulesOxlint,\n\n 'typescript/no-unused-vars': [\n 'error',\n {\n argsIgnorePattern: '^_',\n ignoreRestSiblings: true,\n },\n ],\n 'typescript/no-non-null-assertion': 'error',\n 'typescript/no-empty-function': 'off',\n 'typescript/no-explicit-any': 'off',\n 'typescript/no-base-to-string': 'off',\n 'typescript/no-dynamic-delete': 'off',\n 'typescript/no-extra-non-null-assertion': 'error',\n 'typescript/no-non-null-asserted-optional-chain': 'error',\n 'typescript/explicit-module-boundary-types': 'off',\n 'typescript/ban-ts-comment': [\n 'error',\n {\n 'ts-expect-error': { descriptionFormat: tsIgnoreDescriptionFormat },\n 'ts-ignore': { descriptionFormat: tsIgnoreDescriptionFormat },\n 'ts-nocheck': true,\n 'ts-check': false,\n },\n ],\n\n '@stylistic/type-annotation-spacing': 'error',\n\n // comment handling conflicts with the padding-line heuristics\n '@stylistic/lines-around-comment': 'off',\n };\n}\n\n/**\n * Only rules Oxlint can't run remain here. `naming-convention` is one of the two typescript-eslint\n * type-aware rules tsgolint doesn't implement, and `explicit-member-accessibility` has no Oxlint\n * port at all.\n */\nexport function tsRulesEslint(options: TypeScriptRuleOptions = {}): Linter.RulesRecord {\n return {\n ...getESLintNamingConventionRule(options.namingConvention),\n '@typescript-eslint/explicit-member-accessibility': ['error', { accessibility: 'no-public' }],\n '@typescript-eslint/no-dynamic-delete': 'off',\n '@typescript-eslint/array-type': 'off',\n '@typescript-eslint/require-await': 'off',\n '@typescript-eslint/no-explicit-any': 'off',\n '@typescript-eslint/no-empty-function': 'off',\n '@typescript-eslint/no-unused-vars': [\n 'error',\n {\n argsIgnorePattern: '^_',\n varsIgnorePattern: '^_',\n caughtErrorsIgnorePattern: '^_',\n destructuredArrayIgnorePattern: '^_',\n ignoreRestSiblings: true,\n },\n ],\n };\n}\n\nexport function getESLintNamingConventionRule(\n extensions?: TypeScriptRuleOptions['namingConvention'],\n): Linter.RulesRecord {\n const oxlintRules = getNamingConventionRule(extensions);\n\n return {\n '@typescript-eslint/naming-convention': oxlintRules['typescript/naming-convention'],\n };\n}\n\nexport function getNamingConventionRule(extensions?: TypeScriptRuleOptions['namingConvention']): Linter.RulesRecord {\n return {\n 'typescript/naming-convention': [\n 'error',\n {\n selector: ['variable'],\n format: mergeFormat(['camelCase', 'UPPER_CASE', 'PascalCase'], extensions?.variable),\n leadingUnderscore: 'allowSingleOrDouble',\n trailingUnderscore: 'forbid',\n filter: {\n regex: generateFilterRegex(['__dirname'], extensions?.variable?.exceptions),\n match: false,\n },\n },\n {\n selector: ['function'],\n format: mergeFormat(['camelCase', 'UPPER_CASE', 'PascalCase'], extensions?.function),\n leadingUnderscore: 'allowSingleOrDouble',\n trailingUnderscore: 'forbid',\n filter: {\n regex: generateFilterRegex(['__dirname'], extensions?.function?.exceptions),\n match: false,\n },\n },\n {\n selector: 'parameter',\n format: mergeFormat(['camelCase', 'UPPER_CASE', 'PascalCase'], extensions?.parameter),\n leadingUnderscore: 'allow',\n ...(extensions?.parameter?.exceptions?.length && {\n filter: {\n regex: generateFilterRegex([], extensions.parameter.exceptions),\n match: false,\n },\n }),\n },\n {\n selector: 'typeLike',\n format: mergeFormat(['PascalCase'], extensions?.typeLike),\n ...(extensions?.typeLike?.exceptions?.length && {\n filter: {\n regex: generateFilterRegex([], extensions.typeLike.exceptions),\n match: false,\n },\n }),\n },\n {\n selector: 'memberLike',\n modifiers: ['private'],\n format: mergeFormat(['camelCase', 'PascalCase'], extensions?.memberLike),\n leadingUnderscore: 'require',\n ...(extensions?.memberLike?.exceptions?.length && {\n filter: {\n regex: generateFilterRegex([], extensions.memberLike.exceptions),\n match: false,\n },\n }),\n },\n ],\n };\n}\n\nfunction mergeFormat(defaults: string[], extensions?: NamingConventionFormatOptions) {\n return [...new Set([...((extensions?.inheritFormat ?? true) ? defaults : []), ...(extensions?.format ?? [])])];\n}\n\nfunction generateFilterRegex(defaults: string[], extensions: string[] = []) {\n return `^(${[...defaults, ...extensions].join('|')})$`;\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/lint-preset/lint-preset/dist/chunk-HEEMZMIV.cjs","../src/configs/unicorn.ts","../src/configs/abbreviations.ts","../src/configs/javascript.ts","../src/configs/react.ts","../src/configs/typescript.ts"],"names":[],"mappings":"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","file":"/home/runner/work/lint-preset/lint-preset/dist/chunk-HEEMZMIV.cjs","sourcesContent":[null,"import type { Linter } from 'eslint';\n\n/**\n * Mirrors `eslint-plugin-unicorn`'s recommended config, split by runtime.\n *\n * Oxlint natively implements most unicorn rules, so we enable those under the canonical\n * `unicorn/` prefix (fast, Rust). Rules oxlint hasn't ported run through the original JS\n * plugin, aliased as `unicornx` in `jsPlugins` (see `src/oxlint.ts`), because oxlint's\n * built-in plugin owns the `unicorn/` namespace.\n *\n * `unicorn/name-replacements` is also not ported. It lives in `javascript.ts` because it\n * takes user-configurable options.\n */\n\n/**\n * Lists the Unicorn recommended rules natively implemented by Oxlint, grouped by the oxlint category\n * they belong to. Only the correctness group is enabled by oxlint's defaults (as `warn`). Everything is\n * set explicitly to `error` to match the recommended config.\n */\nexport const unicornRulesOxlint: Linter.RulesRecord = {\n // correctness\n 'unicorn/no-await-in-promise-methods': 'error',\n 'unicorn/no-empty-file': 'warn',\n 'unicorn/no-invalid-fetch-options': 'error',\n 'unicorn/no-invalid-remove-event-listener': 'error',\n 'unicorn/no-new-array': 'error',\n 'unicorn/no-single-promise-in-promise-methods': 'error',\n 'unicorn/no-thenable': 'error',\n 'unicorn/no-unnecessary-await': 'error',\n 'unicorn/no-useless-fallback-in-spread': 'error',\n 'unicorn/no-useless-length-check': 'error',\n 'unicorn/no-useless-spread': 'error',\n 'unicorn/prefer-set-size': 'error',\n 'unicorn/prefer-string-starts-ends-with': 'error',\n\n // perf\n 'unicorn/prefer-array-find': 'error',\n 'unicorn/prefer-array-flat-map': 'error',\n 'unicorn/prefer-set-has': 'error',\n\n // restriction\n 'unicorn/no-abusive-eslint-disable': 'error',\n 'unicorn/no-anonymous-default-export': 'error',\n 'unicorn/no-array-for-each': 'error',\n 'unicorn/no-array-reduce': 'error',\n 'unicorn/no-document-cookie': 'error',\n 'unicorn/no-magic-array-flat-depth': 'error',\n 'unicorn/no-process-exit': 'error',\n 'unicorn/no-useless-error-capture-stack-trace': 'error',\n 'unicorn/prefer-modern-math-apis': 'error',\n 'unicorn/prefer-module': 'error',\n 'unicorn/prefer-node-protocol': 'error',\n 'unicorn/prefer-number-properties': 'error',\n\n // suspicious\n 'unicorn/consistent-function-scoping': 'error',\n 'unicorn/no-accessor-recursion': 'error',\n 'unicorn/no-array-reverse': 'error',\n 'unicorn/no-array-sort': 'error',\n 'unicorn/no-instanceof-builtins': 'error',\n 'unicorn/prefer-add-event-listener': 'error',\n 'unicorn/require-module-specifiers': 'error',\n\n // pedantic\n 'unicorn/consistent-assert': 'error',\n 'unicorn/consistent-empty-array-spread': 'error',\n 'unicorn/escape-case': 'error',\n 'unicorn/explicit-length-check': 'error',\n 'unicorn/new-for-builtins': 'error',\n 'unicorn/no-array-callback-reference': 'error',\n 'unicorn/no-hex-escape': 'error',\n 'unicorn/no-immediate-mutation': 'error',\n 'unicorn/no-lonely-if': 'error',\n 'unicorn/no-negation-in-equality-check': 'error',\n 'unicorn/no-new-buffer': 'error',\n 'unicorn/no-object-as-default-parameter': 'error',\n 'unicorn/no-static-only-class': 'error',\n 'unicorn/no-this-assignment': 'error',\n 'unicorn/no-typeof-undefined': 'error',\n 'unicorn/no-unnecessary-array-flat-depth': 'error',\n 'unicorn/no-unnecessary-array-splice-count': 'error',\n 'unicorn/no-unnecessary-slice-end': 'error',\n 'unicorn/no-unreadable-iife': 'error',\n 'unicorn/no-useless-promise-resolve-reject': 'error',\n 'unicorn/no-useless-switch-case': 'error',\n 'unicorn/prefer-array-flat': 'error',\n 'unicorn/prefer-array-some': 'error',\n 'unicorn/prefer-at': 'error',\n 'unicorn/prefer-blob-reading-methods': 'error',\n 'unicorn/prefer-code-point': 'error',\n 'unicorn/prefer-date-now': 'error',\n 'unicorn/prefer-dom-node-append': 'error',\n 'unicorn/prefer-dom-node-dataset': 'error',\n 'unicorn/prefer-dom-node-remove': 'error',\n 'unicorn/prefer-event-target': 'error',\n 'unicorn/prefer-math-min-max': 'error',\n 'unicorn/prefer-math-trunc': 'error',\n 'unicorn/prefer-native-coercion-functions': 'error',\n 'unicorn/prefer-prototype-methods': 'error',\n 'unicorn/prefer-query-selector': 'error',\n 'unicorn/prefer-regexp-test': 'error',\n 'unicorn/prefer-string-replace-all': 'error',\n 'unicorn/prefer-string-slice': 'error',\n 'unicorn/prefer-top-level-await': 'error',\n 'unicorn/prefer-type-error': 'error',\n 'unicorn/require-number-to-fixed-digits-argument': 'error',\n\n // style\n 'unicorn/catch-error-name': ['error', { name: 'error' }],\n 'unicorn/consistent-date-clone': 'error',\n 'unicorn/consistent-existence-index-check': 'error',\n 'unicorn/consistent-template-literal-escape': 'error',\n 'unicorn/empty-brace-spaces': 'error',\n 'unicorn/error-message': 'error',\n 'unicorn/no-array-method-this-argument': 'error',\n 'unicorn/no-await-expression-member': 'error',\n 'unicorn/no-console-spaces': 'error',\n 'unicorn/no-unreadable-array-destructuring': 'error',\n 'unicorn/no-useless-collection-argument': 'error',\n 'unicorn/no-zero-fractions': 'error',\n 'unicorn/numeric-separators-style': 'error',\n 'unicorn/prefer-array-index-of': 'error',\n 'unicorn/prefer-bigint-literals': 'error',\n 'unicorn/prefer-class-fields': 'error',\n 'unicorn/prefer-classlist-toggle': 'error',\n 'unicorn/prefer-default-parameters': 'error',\n 'unicorn/prefer-dom-node-text-content': 'error',\n 'unicorn/prefer-global-this': 'error',\n 'unicorn/prefer-includes': 'error',\n 'unicorn/prefer-keyboard-event-key': 'error',\n 'unicorn/prefer-logical-operator-over-ternary': 'error',\n 'unicorn/prefer-modern-dom-apis': 'error',\n 'unicorn/prefer-negative-index': 'error',\n 'unicorn/prefer-object-from-entries': 'error',\n 'unicorn/prefer-optional-catch-binding': 'error',\n 'unicorn/prefer-reflect-apply': 'error',\n 'unicorn/prefer-response-static-json': 'error',\n 'unicorn/prefer-spread': 'error',\n 'unicorn/prefer-string-raw': 'error',\n 'unicorn/prefer-string-trim-start-end': 'error',\n 'unicorn/prefer-structured-clone': 'error',\n 'unicorn/relative-url-style': 'error',\n 'unicorn/require-array-join-separator': 'error',\n 'unicorn/require-module-attributes': 'error',\n 'unicorn/switch-case-braces': 'error',\n 'unicorn/switch-case-break-position': 'error',\n 'unicorn/text-encoding-identifier-case': 'error',\n 'unicorn/throw-new-error': 'error',\n};\n\n/**\n * Lists the Unicorn recommended rules that Oxlint hasn't ported. They run inside Oxlint through the\n * original JS plugin under the `unicornx` alias.\n */\nexport const unicornRulesJsPlugin: Linter.RulesRecord = {\n 'unicornx/isolated-functions': 'error',\n 'unicornx/no-for-loop': 'error',\n 'unicornx/no-named-default': 'error',\n 'unicornx/no-unnecessary-polyfills': 'error',\n 'unicornx/no-unreadable-for-of-expression': 'error',\n 'unicornx/prefer-export-from': 'error',\n 'unicornx/prefer-simple-condition-first': 'error',\n 'unicornx/prefer-single-call': 'error',\n 'unicornx/prefer-switch': 'error',\n 'unicornx/template-indent': 'error',\n\n /**\n * Native port exists but only in oxlint's nursery category, which can't be enabled from config,\n * so we run the JS original instead.\n */\n 'unicornx/no-useless-iterator-to-array': 'error',\n\n /**\n * Oxlint's port hardcodes uppercase hexadecimal digits, which fights Prettier's lowercase\n * formatting, so we run the JS original with the lowercase option instead.\n */\n 'unicornx/number-literal-case': ['error', { hexadecimalValue: 'lowercase' }],\n};\n\n/**\n * Lists the Unicorn recommended rules that can't run inside Oxlint's JS-plugin host yet because the\n * compat layer is missing ESLint APIs (e.g. `sourceCode.getDisableDirectives`). ESLint picks them up\n * after Oxlint runs.\n */\nexport const unicornRulesEslint: Linter.RulesRecord = {\n 'unicorn/expiring-todo-comments': 'error',\n};\n","export const DEFAULT_ABBREVIATION_ALLOW_LIST = ['fn', 'cb', 'err', 'prev', 'dev', 'i'];\n\nexport const ABBREVIATION_REPLACEMENTS: Record<string, Record<string, boolean> | false> = {\n ref: false,\n refs: false,\n dev: false,\n dir: false,\n env: false,\n prop: false,\n props: false,\n util: false,\n utils: false,\n lib: false,\n libs: false,\n param: false,\n params: false,\n arg: false,\n args: false,\n db: false,\n ev: { event: true },\n val: { value: true },\n msg: { message: true },\n el: { element: true },\n elem: { element: true },\n btn: { button: true },\n cb: { callback: true },\n fn: { function: true },\n err: { error: true },\n opts: { options: true },\n cfg: { config: true },\n obj: { object: true },\n arr: { array: true },\n str: { string: true },\n num: { number: true },\n curr: { current: true },\n len: { length: true },\n e: { event: true, error: true },\n};\n","import type { Linter } from 'eslint';\nimport { ABBREVIATION_REPLACEMENTS, DEFAULT_ABBREVIATION_ALLOW_LIST } from './abbreviations.js';\nimport { unicornRulesJsPlugin, unicornRulesOxlint } from './unicorn.js';\n\nexport const jsFileExtensions = ['**/*.js', '**/*.jsx', '**/*.mjs', '**/*.cjs'];\n\nexport const paddingLineEntries = [\n {\n blankLine: 'always',\n prev: '*',\n next: ['block', 'block-like', 'class', 'const', 'let'],\n },\n {\n blankLine: 'always',\n prev: 'block',\n next: '*',\n },\n {\n blankLine: 'always',\n prev: ['const'],\n next: '*',\n },\n {\n blankLine: 'always',\n prev: ['let'],\n next: '*',\n },\n {\n blankLine: 'any',\n prev: ['const'],\n next: ['const'],\n },\n {\n blankLine: 'any',\n prev: ['let'],\n next: ['let'],\n },\n {\n blankLine: 'always',\n prev: ['let'],\n next: ['const'],\n },\n {\n blankLine: 'always',\n prev: ['const'],\n next: ['let'],\n },\n {\n blankLine: 'always',\n prev: ['singleline-const'],\n next: ['multiline-const'],\n },\n {\n blankLine: 'always',\n prev: ['multiline-const'],\n next: ['singleline-const'],\n },\n {\n blankLine: 'always',\n prev: ['singleline-let'],\n next: ['multiline-let'],\n },\n {\n blankLine: 'always',\n prev: ['multiline-let'],\n next: ['singleline-let'],\n },\n {\n blankLine: 'any',\n prev: ['case', 'block', 'block-like'],\n next: ['case', 'default'],\n },\n {\n blankLine: 'always',\n prev: '*',\n next: ['break', 'continue'],\n },\n {\n blankLine: 'always',\n prev: 'if',\n next: '*',\n },\n {\n blankLine: 'always',\n prev: {\n selector:\n 'ExpressionStatement:matches([expression.type=\"CallExpression\"], [expression.type=\"AwaitExpression\"][expression.argument.type=\"CallExpression\"])',\n },\n next: { selector: 'ExpressionStatement[expression.type=\"AssignmentExpression\"]' },\n },\n {\n blankLine: 'always',\n prev: { selector: 'ExpressionStatement[expression.type=\"AssignmentExpression\"]' },\n next: {\n selector:\n 'ExpressionStatement:matches([expression.type=\"CallExpression\"], [expression.type=\"AwaitExpression\"][expression.argument.type=\"CallExpression\"])',\n },\n },\n /**\n * The rule applies the last entry that matches a statement pair, so the import-to-import entry\n * must come after the surrounding `*` entries.\n */\n {\n blankLine: 'always',\n prev: 'import',\n next: '*',\n },\n {\n blankLine: 'always',\n prev: '*',\n next: 'import',\n },\n {\n blankLine: 'any',\n prev: 'import',\n next: 'import',\n },\n /**\n * The rule applies the last entry that matches a statement pair, so the export-to-export entry\n * must come after the surrounding `*` entries.\n */\n {\n blankLine: 'always',\n prev: 'export',\n next: '*',\n },\n {\n blankLine: 'always',\n prev: '*',\n next: 'export',\n },\n {\n blankLine: 'any',\n prev: 'export',\n next: 'export',\n },\n];\n\nexport const jsdocTagLineOptions = ['never', { startLines: 1, applyToEndTag: false }];\n\nexport interface JavaScriptRuleOptions {\n preventAbbreviations?: {\n allowList?: string[];\n inheritAllowList?: boolean;\n replacements?: Record<string, Record<string, boolean> | false>;\n inheritReplacements?: boolean;\n };\n}\n\nexport function jsRulesOxlint(options: JavaScriptRuleOptions = {}): Linter.RulesRecord {\n const { preventAbbreviations: preventAbbreviationsOptions } = options;\n\n const {\n inheritAllowList = true,\n inheritReplacements = true,\n allowList = [],\n replacements = {},\n } = preventAbbreviationsOptions ?? {};\n\n const effectiveAllowList = inheritAllowList ? [...DEFAULT_ABBREVIATION_ALLOW_LIST, ...allowList] : allowList;\n\n return {\n 'consistent-return': 'error',\n curly: ['error', 'all'],\n 'arrow-body-style': 'off',\n 'dot-notation': 'error',\n 'no-debugger': 'warn',\n 'no-unused-vars': 'off',\n 'no-async-promise-executor': 'error',\n 'no-case-declarations': 'error',\n 'default-case-last': 'error',\n 'no-cond-assign': 'error',\n 'no-return-assign': ['error', 'always'],\n 'no-dynamic-delete': 'off',\n 'no-unneeded-ternary': 'error',\n 'object-shorthand': 'error',\n 'no-constant-condition': ['error', { checkLoops: false }],\n\n '@stylistic/padding-line-between-statements': ['error', ...paddingLineEntries],\n '@stylistic/no-trailing-spaces': 'error',\n\n /**\n * Indentation is owned by Prettier. Oxlint's @stylistic/indent port diverges from eslint-stylistic on edge cases\n * (e.g., multiline object args inside ternaries), so we leave the rule off.\n */\n '@stylistic/indent': 'off',\n '@stylistic/no-multiple-empty-lines': ['error', { max: 1 }],\n '@stylistic/multiline-comment-style': ['error', 'starred-block'],\n '@stylistic/spaced-comment': [\n 'error',\n 'always',\n {\n block: { balanced: true },\n },\n ],\n '@stylistic/brace-style': ['error', '1tbs'],\n '@stylistic/lines-around-comment': [\n 'error',\n {\n beforeBlockComment: true,\n beforeLineComment: true,\n allowBlockStart: true,\n allowBlockEnd: false,\n allowObjectStart: true,\n allowObjectEnd: false,\n allowArrayStart: true,\n allowArrayEnd: true,\n allowClassStart: true,\n allowInterfaceStart: true,\n allowInterfaceEnd: true,\n allowEnumStart: true,\n allowEnumEnd: true,\n allowTypeStart: true,\n allowTypeEnd: false,\n },\n ],\n\n ...unicornRulesOxlint,\n ...unicornRulesJsPlugin,\n\n /**\n * Oxlint's built-in `unicorn` / `jsdoc` plugins don't implement these, so we wire the original JS\n * plugins under aliased names (see jsPlugins in `src/oxlint.ts`). Rule IDs use the alias instead\n * of the canonical prefix.\n */\n 'unicornx/name-replacements': [\n 'error',\n {\n replacements: inheritReplacements ? { ...ABBREVIATION_REPLACEMENTS, ...replacements } : replacements,\n allowList: Object.fromEntries(effectiveAllowList.map((name) => [name, true])),\n },\n ],\n\n 'jsdocx/tag-lines': ['error', ...jsdocTagLineOptions],\n };\n}\n\n/**\n * These rules can't run under Oxlint. They are ESLint-core rules that Oxlint hasn't implemented\n * (`prefer-arrow-callback`) or only ships in its nursery category (`no-useless-assignment`), and\n * no plugin we can alias into oxlint's `jsPlugins` exposes them, because the `@eslint/js` package\n * only ships configs, not a raw `rules` object. ESLint picks them up after Oxlint runs.\n */\nexport function jsRulesEslint(_options: JavaScriptRuleOptions = {}): Linter.RulesRecord {\n return {\n 'prefer-arrow-callback': 'error',\n 'no-useless-assignment': 'error',\n };\n}\n","import type { Linter } from 'eslint';\n\nexport interface ReactRuleOptions {\n fastRefresh?: boolean;\n performance?: boolean;\n}\n\nexport type ReactConfigOptions = boolean | ReactRuleOptions;\n\ninterface ResolvedReactRuleOptions {\n fastRefresh: boolean;\n performance: boolean;\n}\n\nexport const reactFileExtensions = ['**/*.jsx', '**/*.tsx'];\n\nexport function resolveReactRuleOptions(options: ReactConfigOptions = false): ResolvedReactRuleOptions {\n if (options === false) {\n return {\n fastRefresh: false,\n performance: false,\n };\n }\n\n if (options === true) {\n return {\n fastRefresh: true,\n performance: true,\n };\n }\n\n return {\n fastRefresh: options.fastRefresh ?? true,\n performance: options.performance ?? true,\n };\n}\n\nexport function reactRulesOxlint(options: ReactConfigOptions = false): Linter.RulesRecord {\n const resolvedOptions = resolveReactRuleOptions(options);\n\n return {\n 'react/jsx-key': 'error',\n 'react/jsx-no-duplicate-props': 'error',\n 'react/no-children-prop': 'error',\n 'react/no-danger-with-children': 'error',\n 'react/void-dom-elements-no-children': 'error',\n 'react/no-unknown-property': 'error',\n 'react/style-prop-object': 'error',\n 'react/button-has-type': 'error',\n 'react/checked-requires-onchange-or-readonly': 'error',\n 'react/forward-ref-uses-ref': 'error',\n 'react/jsx-props-no-spread-multi': 'error',\n 'react/jsx-no-script-url': 'error',\n 'react/jsx-no-target-blank': 'error',\n 'react/jsx-no-constructed-context-values': 'error',\n 'react/no-unstable-nested-components': 'error',\n 'react/no-array-index-key': 'warn',\n 'react/no-object-type-as-default-prop': 'warn',\n 'react/iframe-missing-sandbox': 'error',\n 'react/no-danger': 'warn',\n\n ...(resolvedOptions.fastRefresh && {\n 'react/only-export-components': ['warn', { allowConstantExport: true }],\n }),\n\n ...(resolvedOptions.performance && {\n 'react-perf/jsx-no-new-object-as-prop': 'warn',\n 'react-perf/jsx-no-new-array-as-prop': 'warn',\n 'react-perf/jsx-no-new-function-as-prop': 'warn',\n 'react-perf/jsx-no-jsx-as-prop': 'warn',\n }),\n };\n}\n","import type { Linter } from 'eslint';\nimport { jsRulesOxlint, type JavaScriptRuleOptions } from './javascript.js';\n\nexport const tsFileExtensions = ['**/*.ts', '**/*.tsx', '**/*.mts', '**/*.cts'];\n\nconst tsIgnoreDescriptionFormat = String.raw`^: TS\\d+ because .+$`;\n\nexport interface TypeScriptRuleOptions extends JavaScriptRuleOptions {\n namingConvention?: {\n variable?: {\n inheritFormat?: boolean;\n format?: string[];\n exceptions?: string[];\n };\n parameter?: {\n inheritFormat?: boolean;\n format?: string[];\n exceptions?: string[];\n };\n typeLike?: {\n inheritFormat?: boolean;\n format?: string[];\n exceptions?: string[];\n };\n memberLike?: {\n inheritFormat?: boolean;\n format?: string[];\n exceptions?: string[];\n };\n function?: {\n inheritFormat?: boolean;\n format?: string[];\n exceptions?: string[];\n };\n };\n}\n\ninterface NamingConventionFormatOptions {\n inheritFormat?: boolean;\n format?: string[];\n}\n\n/**\n * Lists the type-aware typescript-eslint rules that Oxlint executes natively through tsgolint (`options.typeAware`).\n * They mirror what typescript-eslint's `strictTypeChecked` + `stylisticTypeChecked` presets enabled when these rules\n * still ran under ESLint (same severities, same options), so moving them here changed which engine serves them,\n * not the behavior.\n *\n * Type-aware rules in oxlint's `correctness` category (e.g. `await-thenable`,\n * `unbound-method`) are not listed. They already run via the default category,\n * as `warn`, matching the pre-migration state.\n *\n * `typescript/naming-convention` is one of the two typescript-eslint type-aware rules tsgolint\n * doesn't implement. It stays in ESLint (see {@link tsRulesEslint}).\n */\nexport const tsTypeAwareRulesOxlint: Linter.RulesRecord = {\n 'typescript/no-confusing-void-expression': 'error',\n 'typescript/no-deprecated': 'error',\n 'typescript/no-floating-promises': 'error',\n 'typescript/no-misused-promises': 'error',\n 'typescript/no-mixed-enums': 'error',\n 'typescript/no-unnecessary-boolean-literal-compare': 'error',\n 'typescript/no-unnecessary-condition': 'error',\n 'typescript/no-unnecessary-template-expression': 'error',\n 'typescript/no-unnecessary-type-arguments': 'error',\n 'typescript/no-unnecessary-type-assertion': 'error',\n 'typescript/no-unnecessary-type-conversion': 'error',\n 'typescript/no-unnecessary-type-parameters': 'error',\n 'typescript/no-unsafe-argument': 'error',\n 'typescript/no-unsafe-assignment': 'error',\n 'typescript/no-unsafe-call': 'error',\n 'typescript/no-unsafe-enum-comparison': 'error',\n 'typescript/no-unsafe-member-access': 'error',\n 'typescript/no-unsafe-return': 'error',\n 'typescript/non-nullable-type-assertion-style': 'error',\n 'typescript/only-throw-error': 'error',\n 'typescript/prefer-find': 'error',\n 'typescript/prefer-includes': 'error',\n 'typescript/prefer-nullish-coalescing': ['error', { ignorePrimitives: true }],\n 'typescript/prefer-optional-chain': 'error',\n 'typescript/prefer-promise-reject-errors': 'error',\n 'typescript/prefer-reduce-type-parameter': 'error',\n 'typescript/prefer-regexp-exec': 'error',\n 'typescript/prefer-return-this-type': 'error',\n 'typescript/prefer-string-starts-ends-with': 'error',\n 'typescript/related-getter-setter-pairs': 'error',\n 'typescript/restrict-plus-operands': [\n 'error',\n {\n allowAny: false,\n allowBoolean: false,\n allowNullish: false,\n allowNumberAndString: false,\n allowRegExp: false,\n },\n ],\n 'typescript/return-await': ['error', 'error-handling-correctness-only'],\n 'typescript/use-unknown-in-catch-callback-variable': 'error',\n};\n\n/**\n * Lists the syntax-only rules that Oxlint ports natively and that used to reach ESLint through\n * typescript-eslint's presets. They are the `strictTypeChecked` and `stylisticTypeChecked` rules that\n * don't need type information, plus the ESLint-core rules that typescript-eslint's `eslintRecommended`\n * config raises for TypeScript files (hence the `eslint/` prefix and the TS-files-only scope).\n */\nexport const tsSyntaxRulesOxlint: Linter.RulesRecord = {\n 'typescript/adjacent-overload-signatures': 'error',\n 'typescript/ban-tslint-comment': 'error',\n 'typescript/class-literal-property-style': 'error',\n 'typescript/consistent-generic-constructors': 'error',\n 'typescript/consistent-indexed-object-style': 'error',\n 'typescript/consistent-type-assertions': 'error',\n 'typescript/consistent-type-definitions': 'error',\n 'typescript/no-array-constructor': 'error',\n 'typescript/no-confusing-non-null-assertion': 'error',\n 'typescript/no-empty-object-type': 'error',\n 'typescript/no-extraneous-class': 'error',\n 'typescript/no-inferrable-types': 'error',\n 'typescript/no-invalid-void-type': 'error',\n 'typescript/no-namespace': 'error',\n 'typescript/no-non-null-asserted-nullish-coalescing': 'error',\n 'typescript/no-require-imports': 'error',\n 'typescript/no-unnecessary-type-constraint': 'error',\n 'typescript/no-unsafe-function-type': 'error',\n 'typescript/no-useless-constructor': 'error',\n 'typescript/prefer-for-of': 'error',\n 'typescript/prefer-function-type': 'error',\n 'typescript/prefer-literal-enum-member': 'error',\n 'typescript/unified-signatures': 'error',\n\n 'eslint/no-var': 'error',\n 'eslint/prefer-const': ['error', { destructuring: 'any', ignoreReadBeforeAssign: false }],\n 'eslint/prefer-rest-params': 'error',\n 'eslint/prefer-spread': 'error',\n};\n\nexport function tsRulesOxlint(options: TypeScriptRuleOptions = {}): Linter.RulesRecord {\n return {\n ...jsRulesOxlint(options),\n\n ...tsTypeAwareRulesOxlint,\n ...tsSyntaxRulesOxlint,\n\n 'typescript/no-unused-vars': [\n 'error',\n {\n argsIgnorePattern: '^_',\n ignoreRestSiblings: true,\n },\n ],\n 'typescript/no-non-null-assertion': 'error',\n 'typescript/no-empty-function': 'off',\n 'typescript/no-explicit-any': 'off',\n 'typescript/no-base-to-string': 'off',\n 'typescript/no-dynamic-delete': 'off',\n 'typescript/no-extra-non-null-assertion': 'error',\n 'typescript/no-non-null-asserted-optional-chain': 'error',\n 'typescript/explicit-module-boundary-types': 'off',\n 'typescript/ban-ts-comment': [\n 'error',\n {\n 'ts-expect-error': { descriptionFormat: tsIgnoreDescriptionFormat },\n 'ts-ignore': { descriptionFormat: tsIgnoreDescriptionFormat },\n 'ts-nocheck': true,\n 'ts-check': false,\n },\n ],\n\n '@stylistic/type-annotation-spacing': 'error',\n\n // comment handling conflicts with the padding-line heuristics\n '@stylistic/lines-around-comment': 'off',\n };\n}\n\n/**\n * Only rules Oxlint can't run remain here. `naming-convention` is one of the two typescript-eslint\n * type-aware rules tsgolint doesn't implement, and `explicit-member-accessibility` has no Oxlint\n * port at all.\n */\nexport function tsRulesEslint(options: TypeScriptRuleOptions = {}): Linter.RulesRecord {\n return {\n ...getESLintNamingConventionRule(options.namingConvention),\n '@typescript-eslint/explicit-member-accessibility': ['error', { accessibility: 'no-public' }],\n '@typescript-eslint/no-dynamic-delete': 'off',\n '@typescript-eslint/array-type': 'off',\n '@typescript-eslint/require-await': 'off',\n '@typescript-eslint/no-explicit-any': 'off',\n '@typescript-eslint/no-empty-function': 'off',\n '@typescript-eslint/no-unused-vars': [\n 'error',\n {\n argsIgnorePattern: '^_',\n varsIgnorePattern: '^_',\n caughtErrorsIgnorePattern: '^_',\n destructuredArrayIgnorePattern: '^_',\n ignoreRestSiblings: true,\n },\n ],\n };\n}\n\nexport function getESLintNamingConventionRule(\n extensions?: TypeScriptRuleOptions['namingConvention'],\n): Linter.RulesRecord {\n const oxlintRules = getNamingConventionRule(extensions);\n\n return {\n '@typescript-eslint/naming-convention': oxlintRules['typescript/naming-convention'],\n };\n}\n\nexport function getNamingConventionRule(extensions?: TypeScriptRuleOptions['namingConvention']): Linter.RulesRecord {\n return {\n 'typescript/naming-convention': [\n 'error',\n {\n selector: ['variable'],\n format: mergeFormat(['camelCase', 'UPPER_CASE', 'PascalCase'], extensions?.variable),\n leadingUnderscore: 'allowSingleOrDouble',\n trailingUnderscore: 'forbid',\n filter: {\n regex: generateFilterRegex(['__dirname'], extensions?.variable?.exceptions),\n match: false,\n },\n },\n {\n selector: ['function'],\n format: mergeFormat(['camelCase', 'UPPER_CASE', 'PascalCase'], extensions?.function),\n leadingUnderscore: 'allowSingleOrDouble',\n trailingUnderscore: 'forbid',\n filter: {\n regex: generateFilterRegex(['__dirname'], extensions?.function?.exceptions),\n match: false,\n },\n },\n {\n selector: 'parameter',\n format: mergeFormat(['camelCase', 'UPPER_CASE', 'PascalCase'], extensions?.parameter),\n leadingUnderscore: 'allow',\n ...(extensions?.parameter?.exceptions?.length && {\n filter: {\n regex: generateFilterRegex([], extensions.parameter.exceptions),\n match: false,\n },\n }),\n },\n {\n selector: 'typeLike',\n format: mergeFormat(['PascalCase'], extensions?.typeLike),\n ...(extensions?.typeLike?.exceptions?.length && {\n filter: {\n regex: generateFilterRegex([], extensions.typeLike.exceptions),\n match: false,\n },\n }),\n },\n {\n selector: 'memberLike',\n modifiers: ['private'],\n format: mergeFormat(['camelCase', 'PascalCase'], extensions?.memberLike),\n leadingUnderscore: 'require',\n ...(extensions?.memberLike?.exceptions?.length && {\n filter: {\n regex: generateFilterRegex([], extensions.memberLike.exceptions),\n match: false,\n },\n }),\n },\n ],\n };\n}\n\nfunction mergeFormat(defaults: string[], extensions?: NamingConventionFormatOptions) {\n return [...new Set([...((extensions?.inheritFormat ?? true) ? defaults : []), ...(extensions?.format ?? [])])];\n}\n\nfunction generateFilterRegex(defaults: string[], extensions: string[] = []) {\n return `^(${[...defaults, ...extensions].join('|')})$`;\n}\n"]}
package/dist/comments.cjs CHANGED
@@ -132,6 +132,7 @@ function findStyleIssues(lines) {
132
132
  // src/comments/wrap.ts
133
133
  var CLAUSE_END = /[.!?,;:]["')\]*_]*$/;
134
134
  var SENTENCE_END = /[.!?]["')\]*_]*$/;
135
+ var STATEMENT_END = /[.!?;:]["')\]*_]*$/;
135
136
  var ABBREVIATIONS = /* @__PURE__ */ new Set([
136
137
  "e.g.",
137
138
  "i.e.",
@@ -363,8 +364,8 @@ function bindParentheticals(tokens, limit) {
363
364
  }
364
365
  return units;
365
366
  }
366
- function endsClause(token) {
367
- return CLAUSE_END.test(token) && !isAbbreviation(token);
367
+ function endsStatement(token) {
368
+ return STATEMENT_END.test(token) && !isAbbreviation(token);
368
369
  }
369
370
  function endsSentence(token) {
370
371
  return SENTENCE_END.test(token) && !isAbbreviation(token);
@@ -373,7 +374,7 @@ function opensAside(token) {
373
374
  return /^[([]/.test(token) && !/[)\]]["'`.,;:!?]*$/.test(token);
374
375
  }
375
376
  function isOrphan(previous, token) {
376
- return opensAside(token) || endsClause(previous) && !CLAUSE_END.test(token);
377
+ return opensAside(token) || endsStatement(previous) && !CLAUSE_END.test(token);
377
378
  }
378
379
  function startsBlock(token) {
379
380
  return /^(?:\+|-+|=+|\*+|_{3,}|\d+[.)]|#{1,6})$/.test(token) || /^(?:>|@[A-Za-z]|`{3}|~{3}|\||<(?:\/?[A-Za-z]|[!?]))/.test(token);
@@ -774,6 +775,7 @@ var ISSUE_TIERS = {
774
775
  underfill: "verdict",
775
776
  widow: "verdict",
776
777
  unbalanced: "verdict",
778
+ wide: "verdict",
777
779
  orphan: "hint",
778
780
  "split-parenthetical": "hint",
779
781
  banner: "hint",
@@ -1360,6 +1362,14 @@ function analyzeParagraph(paragraph, options, language) {
1360
1362
  const restLines = layoutTokens(rest, restLimit, restLimit, restOptions);
1361
1363
  return sameLayout(breakAfterSentence(restLines, restLimit, restLimit, restOptions), currentLines.slice(line + 1));
1362
1364
  };
1365
+ const differenceAt = (line) => {
1366
+ const longest = Math.max(...wrapped.map((words) => words.join(" ").length));
1367
+ const wide = currentLines.flatMap((words, position) => {
1368
+ const limit = (position === 0 ? firstLimit : restLimit) + layoutOptions.tolerance;
1369
+ return words.join(" ").length > Math.max(limit, longest) ? [{ type: "wide", line: position }] : [];
1370
+ });
1371
+ return wide.length > 0 ? wide : [{ type: "unbalanced", line }];
1372
+ };
1363
1373
  if (overflow.length === 0 && (currentLines.length === wrapped.length || options.maxWidth !== void 0)) {
1364
1374
  const line = Math.max(
1365
1375
  wrapped.findIndex((words, position) => words.join(" ") !== _optionalChain([currentLines, 'access', _38 => _38[position], 'optionalAccess', _39 => _39.join, 'call', _40 => _40(" ")])),
@@ -1368,9 +1378,11 @@ function analyzeParagraph(paragraph, options, language) {
1368
1378
  if (lineIssues.length === 0 && (sameLayout(even, currentLines) || keepsOnlySentenceStarts())) {
1369
1379
  lineIssues.push({ type: "orphan", line });
1370
1380
  } else if (lineIssues.length === 0) {
1371
- lineIssues.push({ type: splitsOnlyParenthetical(line) ? "split-parenthetical" : "unbalanced", line });
1381
+ lineIssues.push(
1382
+ ...splitsOnlyParenthetical(line) ? [{ type: "split-parenthetical", line }] : differenceAt(line)
1383
+ );
1372
1384
  } else if (lineIssues.every((issue) => issue.type === "orphan") && !sameLayout(even, currentLines) && !keepsOnlyOrphans()) {
1373
- lineIssues.push({ type: "unbalanced", line });
1385
+ lineIssues.push(...differenceAt(line));
1374
1386
  }
1375
1387
  }
1376
1388
  const splitLine = splitTokenLine(currentLines, tokens);
@@ -1388,14 +1400,15 @@ function analyzeParagraph(paragraph, options, language) {
1388
1400
  return false;
1389
1401
  };
1390
1402
  const staysNearLayout = () => {
1391
- if (currentLines.length !== wrapped.length || splitTokenLine(currentLines, units) !== -1) {
1403
+ if (layoutOptions.tolerance === 0 || currentLines.length !== wrapped.length || splitTokenLine(currentLines, units) !== -1) {
1392
1404
  return false;
1393
1405
  }
1406
+ const shortest = Math.min(...wrapped.slice(0, -1).map((words) => words.join(" ").length));
1394
1407
  return currentLines.every((words, position) => {
1395
1408
  const length = words.join(" ").length;
1396
- const suggestedLength = wrapped[position].join(" ").length;
1397
1409
  const limit = (position === 0 ? firstLimit : restLimit) + layoutOptions.tolerance;
1398
- return Math.abs(length - suggestedLength) <= layoutOptions.tolerance && length <= Math.max(suggestedLength, limit);
1410
+ const isLast = position === currentLines.length - 1;
1411
+ return (isLast || length >= shortest - layoutOptions.tolerance) && length <= Math.max(wrapped[position].join(" ").length, limit);
1399
1412
  });
1400
1413
  };
1401
1414
  const hasVerdict = lineIssues.some((issue) => isVerdict(issue));
@@ -1747,7 +1760,7 @@ When rules pull in different directions, the earlier one wins.
1747
1760
  ## Layout
1748
1761
 
1749
1762
  - After you finish, the tool rewraps prose paragraphs, list items, and JSDoc tag descriptions. The width is a preferred target. A parenthetical may extend a line up to the configured maximum so it stays together, and lines may go up to the configured tolerance past the width when that saves a line. In longer paragraphs, balanced lines take priority over keeping every parenthetical on one line. The tool also avoids short last lines where possible. Leave these line breaks to the tool, except for the sentence-orphan case below.
1750
- - Don't end a line with the first word of a new sentence, clause, or parenthetical, like \`This\` after a period, \`the\` after a comma, or \`(the\`. Move it to the next line instead. The same goes for the first two words of a sentence, like \`It allocates\` after a period, when the note points at them. A long word, like an identifier or a code span, may stay at the end of a line when moving it would leave that line far shorter than the lines around it. Then leave the line breaks as they are.
1763
+ - Don't end a line with the first word of a new sentence or parenthetical, like \`This\` after a period or \`(the\`, or with the first word after a semicolon or colon. Move it to the next line instead. The same goes for the first two words of a sentence, like \`It allocates\` after a period, when the note points at them. A long word, like an identifier or a code span, may stay at the end of a line when moving it would leave that line far shorter than the lines around it. Then leave the line breaks as they are. The word after a comma is no such word. A line may end with it, like \`and\` in \`...the teardown paths, and\`.
1751
1764
  - In a paragraph of two lines, the first line ends with a sentence whenever the rest fits on the second line and is no longer than the first. Don't end it with the start of the next sentence, like \`A wrap\` in \`...lay out differently. A wrap\`. Move those words to the second line instead.
1752
1765
  - A comment whose whole text is one paragraph stays on a single line when that line fits a separate, larger single-line width, even past the width. Only a longer comment wraps to the width.
1753
1766
  - Separate paragraphs with an empty comment line.