@imranbarbhuiya/oxc-config 0.1.6 → 0.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/common.js CHANGED
@@ -51,22 +51,7 @@ const config = defineConfig({
51
51
  "import/no-self-import": 2,
52
52
  "import-js/no-useless-path-segments": 2,
53
53
  "import/no-webpack-loader-syntax": 2,
54
- "import-js/order": [2, {
55
- alphabetize: {
56
- caseInsensitive: true,
57
- order: "asc"
58
- },
59
- groups: [
60
- "builtin",
61
- "index",
62
- "external",
63
- "internal",
64
- "sibling",
65
- "parent",
66
- "type"
67
- ],
68
- "newlines-between": "always"
69
- }],
54
+ "import-js/order": 0,
70
55
  "no-alert": 2,
71
56
  "no-array-constructor": 2,
72
57
  "no-async-promise-executor": 2,
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","names":[],"sources":["../src/common.ts"],"sourcesContent":["import { defineConfig } from 'oxlint';\n\nimport { nativePlugins, packagePlugin } from './config.js';\n\nimport type { OxlintConfig } from 'oxlint';\n\nconst rules: NonNullable<OxlintConfig['rules']> = {\n\t'array-callback-return': 2,\n\t'eslint-js/arrow-body-style': [2, 'as-needed'],\n\t'block-scoped-var': 2,\n\t'consistent-return': 2,\n\t'eslint-js/consistent-this': [2, 'self'],\n\t'constructor-super': 2,\n\tcurly: [2, 'multi-or-nest'],\n\t'default-case': 2,\n\t'default-case-last': 2,\n\t'default-param-last': 2,\n\t'dot-notation': 2,\n\teqeqeq: 2,\n\t'for-direction': 2,\n\t'func-name-matching': 2,\n\t'func-names': [2, 'as-needed'],\n\t'func-style': [\n\t\t2,\n\t\t'declaration',\n\t\t{\n\t\t\tallowArrowFunctions: true,\n\t\t},\n\t],\n\t'getter-return': 2,\n\t'grouped-accessor-pairs': [2, 'getBeforeSet'],\n\t'guard-for-in': 2,\n\t'import/export': 2,\n\t'import/first': 2,\n\t'import/newline-after-import': 2,\n\t'import/no-absolute-path': 2,\n\t'import/no-amd': 2,\n\t'import/no-duplicates': 2,\n\t'import/no-dynamic-require': 2,\n\t'import-js/no-extraneous-dependencies': [\n\t\t2,\n\t\t{\n\t\t\tdevDependencies: true,\n\t\t\toptionalDependencies: true,\n\t\t\tpeerDependencies: true,\n\t\t},\n\t],\n\t'import/no-mutable-exports': 2,\n\t'import/no-self-import': 2,\n\t'import-js/no-useless-path-segments': 2,\n\t'import/no-webpack-loader-syntax': 2,\n\t'import-js/order': [\n\t\t2,\n\t\t{\n\t\t\talphabetize: {\n\t\t\t\tcaseInsensitive: true,\n\t\t\t\torder: 'asc',\n\t\t\t},\n\t\t\tgroups: ['builtin', 'index', 'external', 'internal', 'sibling', 'parent', 'type'],\n\t\t\t'newlines-between': 'always',\n\t\t},\n\t],\n\t'no-alert': 2,\n\t'no-array-constructor': 2,\n\t'no-async-promise-executor': 2,\n\t'no-caller': 2,\n\t'no-case-declarations': 2,\n\t'no-class-assign': 2,\n\t'no-compare-neg-zero': 2,\n\t'no-cond-assign': 2,\n\t'no-const-assign': 2,\n\t'no-constructor-return': 2,\n\t'no-control-regex': 2,\n\t'no-debugger': 2,\n\t'no-delete-var': 2,\n\t'eslint-js/no-dupe-args': 2,\n\t'no-dupe-class-members': 2,\n\t'no-dupe-else-if': 2,\n\t'no-dupe-keys': 2,\n\t'no-duplicate-case': 2,\n\t'no-empty-character-class': 2,\n\t'no-empty-pattern': 2,\n\t'no-eval': 2,\n\t'no-ex-assign': 2,\n\t'no-extend-native': 2,\n\t'no-extra-bind': 2,\n\t'no-extra-boolean-cast': 2,\n\t'no-extra-label': 2,\n\t'no-fallthrough': 2,\n\t'no-func-assign': 2,\n\t'no-global-assign': 2,\n\t'no-implicit-coercion': 2,\n\t'no-implicit-globals': 2,\n\t'no-implied-eval': 2,\n\t'no-import-assign': 2,\n\t'no-inner-declarations': 2,\n\t'no-invalid-regexp': 2,\n\t'no-irregular-whitespace': 2,\n\t'no-iterator': 2,\n\t'no-label-var': 2,\n\t'no-labels': 2,\n\t'no-lone-blocks': 2,\n\t'no-lonely-if': 2,\n\t'no-loss-of-precision': 2,\n\t'no-misleading-character-class': 2,\n\t'no-multi-assign': 2,\n\t'no-multi-str': 2,\n\t'no-new-func': 2,\n\t'no-new-wrappers': 2,\n\t'no-nonoctal-decimal-escape': 2,\n\t'no-obj-calls': 2,\n\t'eslint-js/no-octal': 2,\n\t'eslint-js/no-octal-escape': 2,\n\t'no-promise-executor-return': 2,\n\t'no-proto': 2,\n\t'no-prototype-builtins': 2,\n\t'no-redeclare': [\n\t\t2,\n\t\t{\n\t\t\tbuiltinGlobals: true,\n\t\t},\n\t],\n\t'no-regex-spaces': 2,\n\t'no-return-assign': 2,\n\t'no-script-url': 2,\n\t'no-self-assign': 2,\n\t'no-self-compare': 2,\n\t'no-sequences': 2,\n\t'no-setter-return': 2,\n\t'no-shadow': [\n\t\t2,\n\t\t{\n\t\t\tbuiltinGlobals: false,\n\t\t\thoist: 'all',\n\t\t},\n\t],\n\t'no-shadow-restricted-names': 2,\n\t'no-template-curly-in-string': 2,\n\t'no-this-before-super': 2,\n\t'no-throw-literal': 2,\n\t'no-undef': 2,\n\t'eslint-js/no-undef-init': 2,\n\t'no-unexpected-multiline': 2,\n\t'no-unmodified-loop-condition': 2,\n\t'no-unneeded-ternary': 2,\n\t'no-unreachable-loop': 2,\n\t'no-unsafe-finally': 2,\n\t'no-unsafe-negation': 2,\n\t'no-unsafe-optional-chaining': 2,\n\t'no-unused-expressions': 2,\n\t'no-unused-labels': 2,\n\t'no-unused-vars': 2,\n\t'no-use-before-define': [\n\t\t2,\n\t\t{\n\t\t\tclasses: true,\n\t\t\tfunctions: false,\n\t\t\tvariables: true,\n\t\t},\n\t],\n\t'no-useless-backreference': 2,\n\t'no-useless-call': 2,\n\t'no-useless-catch': 2,\n\t'no-useless-computed-key': 2,\n\t'no-useless-concat': 2,\n\t'no-useless-constructor': 2,\n\t'no-useless-escape': 2,\n\t'no-useless-rename': [\n\t\t2,\n\t\t{\n\t\t\tignoreDestructuring: false,\n\t\t\tignoreExport: false,\n\t\t\tignoreImport: false,\n\t\t},\n\t],\n\t'no-useless-return': 2,\n\t'no-var': 2,\n\t'no-with': 2,\n\t'object-shorthand': [2, 'always'],\n\t'one-var': [2, 'never'],\n\t'operator-assignment': [2, 'always'],\n\t'prefer-arrow-callback': 2,\n\t'prefer-const': 2,\n\t'prefer-exponentiation-operator': 2,\n\t'prefer-numeric-literals': 2,\n\t'prefer-object-has-own': 2,\n\t'prefer-object-spread': 2,\n\t'prefer-promise-reject-errors': 2,\n\t'prefer-regex-literals': [\n\t\t2,\n\t\t{\n\t\t\tdisallowRedundantWrapping: true,\n\t\t},\n\t],\n\t'prefer-rest-params': 2,\n\t'prefer-spread': 2,\n\t'promise/param-names': 2,\n\t'promise/prefer-await-to-callbacks': 1,\n\t'promise/prefer-await-to-then': 2,\n\t'promise/valid-params': 2,\n\tradix: 2,\n\t'require-yield': 2,\n\t'sort-vars': 2,\n\t'eslint-js/strict': [2, 'never'],\n\t'symbol-description': 2,\n\t'unicode-bom': [2, 'never'],\n\t'unicorn/catch-error-name': [\n\t\t2,\n\t\t{\n\t\t\tname: 'error',\n\t\t},\n\t],\n\t'unicorn/consistent-function-scoping': 2,\n\t'unicorn/empty-brace-spaces': 2,\n\t'unicorn/error-message': 2,\n\t'unicorn/escape-case': 2,\n\t'unicorn/new-for-builtins': 2,\n\t'unicorn/no-abusive-eslint-disable': 2,\n\t'unicorn-js/no-for-each': 1,\n\t'unicorn/no-array-method-this-argument': 2,\n\t'unicorn/no-await-in-promise-methods': 2,\n\t'unicorn/no-document-cookie': 2,\n\t'unicorn/no-empty-file': 2,\n\t'unicorn-js/no-for-loop': 2,\n\t'unicorn-js/prefer-unicode-code-point-escapes': 2,\n\t'unicorn/no-instanceof-array': 2,\n\t'unicorn/no-invalid-remove-event-listener': 2,\n\t'unicorn/no-lonely-if': 2,\n\t'unicorn/no-negated-condition': 2,\n\t'unicorn/no-new-array': 2,\n\t'unicorn/no-new-buffer': 2,\n\t'unicorn/no-object-as-default-parameter': 2,\n\t'unicorn/no-single-promise-in-promise-methods': 2,\n\t'unicorn/no-static-only-class': 2,\n\t'unicorn/no-thenable': 2,\n\t'unicorn/no-this-assignment': 2,\n\t'unicorn/no-typeof-undefined': 2,\n\t'unicorn/no-unnecessary-await': 2,\n\t'unicorn/no-unreadable-iife': 2,\n\t'unicorn-js/no-unused-properties': 2,\n\t'unicorn/no-useless-fallback-in-spread': 2,\n\t'unicorn/no-useless-length-check': 2,\n\t'unicorn/no-useless-promise-resolve-reject': 2,\n\t'unicorn/no-useless-spread': 2,\n\t'unicorn/no-useless-switch-case': 2,\n\t'unicorn/no-zero-fractions': 2,\n\t'unicorn/numeric-separators-style': [\n\t\t2,\n\t\t{\n\t\t\tbinary: {\n\t\t\t\tonlyIfContainsSeparator: true,\n\t\t\t},\n\t\t\thexadecimal: {\n\t\t\t\tonlyIfContainsSeparator: true,\n\t\t\t},\n\t\t\tnumber: {\n\t\t\t\tgroupLength: 3,\n\t\t\t\tminimumDigits: 0,\n\t\t\t},\n\t\t\toctal: {\n\t\t\t\tonlyIfContainsSeparator: true,\n\t\t\t},\n\t\t},\n\t],\n\t'unicorn/prefer-array-find': 2,\n\t'unicorn/prefer-array-flat': 2,\n\t'unicorn/prefer-array-flat-map': 2,\n\t'unicorn/prefer-array-index-of': 2,\n\t'unicorn/prefer-array-some': 2,\n\t'unicorn/prefer-code-point': 2,\n\t'unicorn/prefer-date-now': 2,\n\t'unicorn/prefer-default-parameters': 2,\n\t'unicorn/prefer-export-from': 2,\n\t'unicorn/prefer-includes': 2,\n\t'unicorn/prefer-math-trunc': 2,\n\t'unicorn/prefer-modern-math-apis': 2,\n\t'unicorn/prefer-native-coercion-functions': 2,\n\t'unicorn/prefer-number-properties': 2,\n\t'unicorn/prefer-object-from-entries': 2,\n\t'unicorn/prefer-optional-catch-binding': 2,\n\t'unicorn/prefer-query-selector': 2,\n\t'unicorn/prefer-reflect-apply': 2,\n\t'unicorn/prefer-regexp-test': 2,\n\t'unicorn/prefer-set-size': 2,\n\t'unicorn/prefer-string-replace-all': 2,\n\t'unicorn/prefer-string-slice': 2,\n\t'unicorn/prefer-string-starts-ends-with': 2,\n\t'unicorn/prefer-string-trim-start-end': 2,\n\t'unicorn/prefer-type-error': 2,\n\t'unicorn/relative-url-style': [2, 'never'],\n\t'unicorn/require-array-join-separator': 2,\n\t'unicorn/require-number-to-fixed-digits-argument': 2,\n\t'unicorn/require-post-message-target-origin': 2,\n\t'unicorn-js/template-indent': 2,\n\t'unicorn/text-encoding-identifier-case': 2,\n\t'unicorn/throw-new-error': 2,\n\t'use-isnan': 2,\n\t'valid-typeof': [\n\t\t2,\n\t\t{\n\t\t\trequireStringLiterals: true,\n\t\t},\n\t],\n\t'vars-on-top': 2,\n\tyoda: [2, 'never'],\n};\n\nconst config = defineConfig({\n\tplugins: nativePlugins,\n\tjsPlugins: [\n\t\tpackagePlugin('eslint-js', 'oxlint-plugin-eslint'),\n\t\tpackagePlugin('import-js', 'eslint-plugin-import-x'),\n\t\tpackagePlugin('unicorn-js', 'eslint-plugin-unicorn'),\n\t],\n\tcategories: {\n\t\tcorrectness: 'off',\n\t},\n\toptions: {\n\t\treportUnusedDisableDirectives: 'warn',\n\t},\n\trules,\n});\n\nexport default config;\n"],"mappings":"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"}
1
+ {"version":3,"file":"common.js","names":[],"sources":["../src/common.ts"],"sourcesContent":["import { defineConfig } from 'oxlint';\n\nimport { nativePlugins, packagePlugin } from './config.js';\n\nimport type { OxlintConfig } from 'oxlint';\n\nconst rules: NonNullable<OxlintConfig['rules']> = {\n\t'array-callback-return': 2,\n\t'eslint-js/arrow-body-style': [2, 'as-needed'],\n\t'block-scoped-var': 2,\n\t'consistent-return': 2,\n\t'eslint-js/consistent-this': [2, 'self'],\n\t'constructor-super': 2,\n\tcurly: [2, 'multi-or-nest'],\n\t'default-case': 2,\n\t'default-case-last': 2,\n\t'default-param-last': 2,\n\t'dot-notation': 2,\n\teqeqeq: 2,\n\t'for-direction': 2,\n\t'func-name-matching': 2,\n\t'func-names': [2, 'as-needed'],\n\t'func-style': [\n\t\t2,\n\t\t'declaration',\n\t\t{\n\t\t\tallowArrowFunctions: true,\n\t\t},\n\t],\n\t'getter-return': 2,\n\t'grouped-accessor-pairs': [2, 'getBeforeSet'],\n\t'guard-for-in': 2,\n\t'import/export': 2,\n\t'import/first': 2,\n\t'import/newline-after-import': 2,\n\t'import/no-absolute-path': 2,\n\t'import/no-amd': 2,\n\t'import/no-duplicates': 2,\n\t'import/no-dynamic-require': 2,\n\t'import-js/no-extraneous-dependencies': [\n\t\t2,\n\t\t{\n\t\t\tdevDependencies: true,\n\t\t\toptionalDependencies: true,\n\t\t\tpeerDependencies: true,\n\t\t},\n\t],\n\t'import/no-mutable-exports': 2,\n\t'import/no-self-import': 2,\n\t'import-js/no-useless-path-segments': 2,\n\t'import/no-webpack-loader-syntax': 2,\n\t'import-js/order': 0,\n\t'no-alert': 2,\n\t'no-array-constructor': 2,\n\t'no-async-promise-executor': 2,\n\t'no-caller': 2,\n\t'no-case-declarations': 2,\n\t'no-class-assign': 2,\n\t'no-compare-neg-zero': 2,\n\t'no-cond-assign': 2,\n\t'no-const-assign': 2,\n\t'no-constructor-return': 2,\n\t'no-control-regex': 2,\n\t'no-debugger': 2,\n\t'no-delete-var': 2,\n\t'eslint-js/no-dupe-args': 2,\n\t'no-dupe-class-members': 2,\n\t'no-dupe-else-if': 2,\n\t'no-dupe-keys': 2,\n\t'no-duplicate-case': 2,\n\t'no-empty-character-class': 2,\n\t'no-empty-pattern': 2,\n\t'no-eval': 2,\n\t'no-ex-assign': 2,\n\t'no-extend-native': 2,\n\t'no-extra-bind': 2,\n\t'no-extra-boolean-cast': 2,\n\t'no-extra-label': 2,\n\t'no-fallthrough': 2,\n\t'no-func-assign': 2,\n\t'no-global-assign': 2,\n\t'no-implicit-coercion': 2,\n\t'no-implicit-globals': 2,\n\t'no-implied-eval': 2,\n\t'no-import-assign': 2,\n\t'no-inner-declarations': 2,\n\t'no-invalid-regexp': 2,\n\t'no-irregular-whitespace': 2,\n\t'no-iterator': 2,\n\t'no-label-var': 2,\n\t'no-labels': 2,\n\t'no-lone-blocks': 2,\n\t'no-lonely-if': 2,\n\t'no-loss-of-precision': 2,\n\t'no-misleading-character-class': 2,\n\t'no-multi-assign': 2,\n\t'no-multi-str': 2,\n\t'no-new-func': 2,\n\t'no-new-wrappers': 2,\n\t'no-nonoctal-decimal-escape': 2,\n\t'no-obj-calls': 2,\n\t'eslint-js/no-octal': 2,\n\t'eslint-js/no-octal-escape': 2,\n\t'no-promise-executor-return': 2,\n\t'no-proto': 2,\n\t'no-prototype-builtins': 2,\n\t'no-redeclare': [\n\t\t2,\n\t\t{\n\t\t\tbuiltinGlobals: true,\n\t\t},\n\t],\n\t'no-regex-spaces': 2,\n\t'no-return-assign': 2,\n\t'no-script-url': 2,\n\t'no-self-assign': 2,\n\t'no-self-compare': 2,\n\t'no-sequences': 2,\n\t'no-setter-return': 2,\n\t'no-shadow': [\n\t\t2,\n\t\t{\n\t\t\tbuiltinGlobals: false,\n\t\t\thoist: 'all',\n\t\t},\n\t],\n\t'no-shadow-restricted-names': 2,\n\t'no-template-curly-in-string': 2,\n\t'no-this-before-super': 2,\n\t'no-throw-literal': 2,\n\t'no-undef': 2,\n\t'eslint-js/no-undef-init': 2,\n\t'no-unexpected-multiline': 2,\n\t'no-unmodified-loop-condition': 2,\n\t'no-unneeded-ternary': 2,\n\t'no-unreachable-loop': 2,\n\t'no-unsafe-finally': 2,\n\t'no-unsafe-negation': 2,\n\t'no-unsafe-optional-chaining': 2,\n\t'no-unused-expressions': 2,\n\t'no-unused-labels': 2,\n\t'no-unused-vars': 2,\n\t'no-use-before-define': [\n\t\t2,\n\t\t{\n\t\t\tclasses: true,\n\t\t\tfunctions: false,\n\t\t\tvariables: true,\n\t\t},\n\t],\n\t'no-useless-backreference': 2,\n\t'no-useless-call': 2,\n\t'no-useless-catch': 2,\n\t'no-useless-computed-key': 2,\n\t'no-useless-concat': 2,\n\t'no-useless-constructor': 2,\n\t'no-useless-escape': 2,\n\t'no-useless-rename': [\n\t\t2,\n\t\t{\n\t\t\tignoreDestructuring: false,\n\t\t\tignoreExport: false,\n\t\t\tignoreImport: false,\n\t\t},\n\t],\n\t'no-useless-return': 2,\n\t'no-var': 2,\n\t'no-with': 2,\n\t'object-shorthand': [2, 'always'],\n\t'one-var': [2, 'never'],\n\t'operator-assignment': [2, 'always'],\n\t'prefer-arrow-callback': 2,\n\t'prefer-const': 2,\n\t'prefer-exponentiation-operator': 2,\n\t'prefer-numeric-literals': 2,\n\t'prefer-object-has-own': 2,\n\t'prefer-object-spread': 2,\n\t'prefer-promise-reject-errors': 2,\n\t'prefer-regex-literals': [\n\t\t2,\n\t\t{\n\t\t\tdisallowRedundantWrapping: true,\n\t\t},\n\t],\n\t'prefer-rest-params': 2,\n\t'prefer-spread': 2,\n\t'promise/param-names': 2,\n\t'promise/prefer-await-to-callbacks': 1,\n\t'promise/prefer-await-to-then': 2,\n\t'promise/valid-params': 2,\n\tradix: 2,\n\t'require-yield': 2,\n\t'sort-vars': 2,\n\t'eslint-js/strict': [2, 'never'],\n\t'symbol-description': 2,\n\t'unicode-bom': [2, 'never'],\n\t'unicorn/catch-error-name': [\n\t\t2,\n\t\t{\n\t\t\tname: 'error',\n\t\t},\n\t],\n\t'unicorn/consistent-function-scoping': 2,\n\t'unicorn/empty-brace-spaces': 2,\n\t'unicorn/error-message': 2,\n\t'unicorn/escape-case': 2,\n\t'unicorn/new-for-builtins': 2,\n\t'unicorn/no-abusive-eslint-disable': 2,\n\t'unicorn-js/no-for-each': 1,\n\t'unicorn/no-array-method-this-argument': 2,\n\t'unicorn/no-await-in-promise-methods': 2,\n\t'unicorn/no-document-cookie': 2,\n\t'unicorn/no-empty-file': 2,\n\t'unicorn-js/no-for-loop': 2,\n\t'unicorn-js/prefer-unicode-code-point-escapes': 2,\n\t'unicorn/no-instanceof-array': 2,\n\t'unicorn/no-invalid-remove-event-listener': 2,\n\t'unicorn/no-lonely-if': 2,\n\t'unicorn/no-negated-condition': 2,\n\t'unicorn/no-new-array': 2,\n\t'unicorn/no-new-buffer': 2,\n\t'unicorn/no-object-as-default-parameter': 2,\n\t'unicorn/no-single-promise-in-promise-methods': 2,\n\t'unicorn/no-static-only-class': 2,\n\t'unicorn/no-thenable': 2,\n\t'unicorn/no-this-assignment': 2,\n\t'unicorn/no-typeof-undefined': 2,\n\t'unicorn/no-unnecessary-await': 2,\n\t'unicorn/no-unreadable-iife': 2,\n\t'unicorn-js/no-unused-properties': 2,\n\t'unicorn/no-useless-fallback-in-spread': 2,\n\t'unicorn/no-useless-length-check': 2,\n\t'unicorn/no-useless-promise-resolve-reject': 2,\n\t'unicorn/no-useless-spread': 2,\n\t'unicorn/no-useless-switch-case': 2,\n\t'unicorn/no-zero-fractions': 2,\n\t'unicorn/numeric-separators-style': [\n\t\t2,\n\t\t{\n\t\t\tbinary: {\n\t\t\t\tonlyIfContainsSeparator: true,\n\t\t\t},\n\t\t\thexadecimal: {\n\t\t\t\tonlyIfContainsSeparator: true,\n\t\t\t},\n\t\t\tnumber: {\n\t\t\t\tgroupLength: 3,\n\t\t\t\tminimumDigits: 0,\n\t\t\t},\n\t\t\toctal: {\n\t\t\t\tonlyIfContainsSeparator: true,\n\t\t\t},\n\t\t},\n\t],\n\t'unicorn/prefer-array-find': 2,\n\t'unicorn/prefer-array-flat': 2,\n\t'unicorn/prefer-array-flat-map': 2,\n\t'unicorn/prefer-array-index-of': 2,\n\t'unicorn/prefer-array-some': 2,\n\t'unicorn/prefer-code-point': 2,\n\t'unicorn/prefer-date-now': 2,\n\t'unicorn/prefer-default-parameters': 2,\n\t'unicorn/prefer-export-from': 2,\n\t'unicorn/prefer-includes': 2,\n\t'unicorn/prefer-math-trunc': 2,\n\t'unicorn/prefer-modern-math-apis': 2,\n\t'unicorn/prefer-native-coercion-functions': 2,\n\t'unicorn/prefer-number-properties': 2,\n\t'unicorn/prefer-object-from-entries': 2,\n\t'unicorn/prefer-optional-catch-binding': 2,\n\t'unicorn/prefer-query-selector': 2,\n\t'unicorn/prefer-reflect-apply': 2,\n\t'unicorn/prefer-regexp-test': 2,\n\t'unicorn/prefer-set-size': 2,\n\t'unicorn/prefer-string-replace-all': 2,\n\t'unicorn/prefer-string-slice': 2,\n\t'unicorn/prefer-string-starts-ends-with': 2,\n\t'unicorn/prefer-string-trim-start-end': 2,\n\t'unicorn/prefer-type-error': 2,\n\t'unicorn/relative-url-style': [2, 'never'],\n\t'unicorn/require-array-join-separator': 2,\n\t'unicorn/require-number-to-fixed-digits-argument': 2,\n\t'unicorn/require-post-message-target-origin': 2,\n\t'unicorn-js/template-indent': 2,\n\t'unicorn/text-encoding-identifier-case': 2,\n\t'unicorn/throw-new-error': 2,\n\t'use-isnan': 2,\n\t'valid-typeof': [\n\t\t2,\n\t\t{\n\t\t\trequireStringLiterals: true,\n\t\t},\n\t],\n\t'vars-on-top': 2,\n\tyoda: [2, 'never'],\n};\n\nconst config = defineConfig({\n\tplugins: nativePlugins,\n\tjsPlugins: [\n\t\tpackagePlugin('eslint-js', 'oxlint-plugin-eslint'),\n\t\tpackagePlugin('import-js', 'eslint-plugin-import-x'),\n\t\tpackagePlugin('unicorn-js', 'eslint-plugin-unicorn'),\n\t],\n\tcategories: {\n\t\tcorrectness: 'off',\n\t},\n\toptions: {\n\t\treportUnusedDisableDirectives: 'warn',\n\t},\n\trules,\n});\n\nexport default config;\n"],"mappings":";;;;AAySA,MAAM,SAAS,aAAa;CAC3B,SAAS;CACT,WAAW;EACV,cAAc,aAAa,sBAAsB;EACjD,cAAc,aAAa,wBAAwB;EACnD,cAAc,cAAc,uBAAuB;CACpD;CACA,YAAY,EACX,aAAa,MACd;CACA,SAAS,EACR,+BAA+B,OAChC;CACA;EA/SA,yBAAyB;EACzB,8BAA8B,CAAC,GAAG,WAAW;EAC7C,oBAAoB;EACpB,qBAAqB;EACrB,6BAA6B,CAAC,GAAG,MAAM;EACvC,qBAAqB;EACrB,OAAO,CAAC,GAAG,eAAe;EAC1B,gBAAgB;EAChB,qBAAqB;EACrB,sBAAsB;EACtB,gBAAgB;EAChB,QAAQ;EACR,iBAAiB;EACjB,sBAAsB;EACtB,cAAc,CAAC,GAAG,WAAW;EAC7B,cAAc;GACb;GACA;GACA,EACC,qBAAqB,KACtB;EACD;EACA,iBAAiB;EACjB,0BAA0B,CAAC,GAAG,cAAc;EAC5C,gBAAgB;EAChB,iBAAiB;EACjB,gBAAgB;EAChB,+BAA+B;EAC/B,2BAA2B;EAC3B,iBAAiB;EACjB,wBAAwB;EACxB,6BAA6B;EAC7B,wCAAwC,CACvC,GACA;GACC,iBAAiB;GACjB,sBAAsB;GACtB,kBAAkB;EACnB,CACD;EACA,6BAA6B;EAC7B,yBAAyB;EACzB,sCAAsC;EACtC,mCAAmC;EACnC,mBAAmB;EACnB,YAAY;EACZ,wBAAwB;EACxB,6BAA6B;EAC7B,aAAa;EACb,wBAAwB;EACxB,mBAAmB;EACnB,uBAAuB;EACvB,kBAAkB;EAClB,mBAAmB;EACnB,yBAAyB;EACzB,oBAAoB;EACpB,eAAe;EACf,iBAAiB;EACjB,0BAA0B;EAC1B,yBAAyB;EACzB,mBAAmB;EACnB,gBAAgB;EAChB,qBAAqB;EACrB,4BAA4B;EAC5B,oBAAoB;EACpB,WAAW;EACX,gBAAgB;EAChB,oBAAoB;EACpB,iBAAiB;EACjB,yBAAyB;EACzB,kBAAkB;EAClB,kBAAkB;EAClB,kBAAkB;EAClB,oBAAoB;EACpB,wBAAwB;EACxB,uBAAuB;EACvB,mBAAmB;EACnB,oBAAoB;EACpB,yBAAyB;EACzB,qBAAqB;EACrB,2BAA2B;EAC3B,eAAe;EACf,gBAAgB;EAChB,aAAa;EACb,kBAAkB;EAClB,gBAAgB;EAChB,wBAAwB;EACxB,iCAAiC;EACjC,mBAAmB;EACnB,gBAAgB;EAChB,eAAe;EACf,mBAAmB;EACnB,8BAA8B;EAC9B,gBAAgB;EAChB,sBAAsB;EACtB,6BAA6B;EAC7B,8BAA8B;EAC9B,YAAY;EACZ,yBAAyB;EACzB,gBAAgB,CACf,GACA,EACC,gBAAgB,KACjB,CACD;EACA,mBAAmB;EACnB,oBAAoB;EACpB,iBAAiB;EACjB,kBAAkB;EAClB,mBAAmB;EACnB,gBAAgB;EAChB,oBAAoB;EACpB,aAAa,CACZ,GACA;GACC,gBAAgB;GAChB,OAAO;EACR,CACD;EACA,8BAA8B;EAC9B,+BAA+B;EAC/B,wBAAwB;EACxB,oBAAoB;EACpB,YAAY;EACZ,2BAA2B;EAC3B,2BAA2B;EAC3B,gCAAgC;EAChC,uBAAuB;EACvB,uBAAuB;EACvB,qBAAqB;EACrB,sBAAsB;EACtB,+BAA+B;EAC/B,yBAAyB;EACzB,oBAAoB;EACpB,kBAAkB;EAClB,wBAAwB,CACvB,GACA;GACC,SAAS;GACT,WAAW;GACX,WAAW;EACZ,CACD;EACA,4BAA4B;EAC5B,mBAAmB;EACnB,oBAAoB;EACpB,2BAA2B;EAC3B,qBAAqB;EACrB,0BAA0B;EAC1B,qBAAqB;EACrB,qBAAqB,CACpB,GACA;GACC,qBAAqB;GACrB,cAAc;GACd,cAAc;EACf,CACD;EACA,qBAAqB;EACrB,UAAU;EACV,WAAW;EACX,oBAAoB,CAAC,GAAG,QAAQ;EAChC,WAAW,CAAC,GAAG,OAAO;EACtB,uBAAuB,CAAC,GAAG,QAAQ;EACnC,yBAAyB;EACzB,gBAAgB;EAChB,kCAAkC;EAClC,2BAA2B;EAC3B,yBAAyB;EACzB,wBAAwB;EACxB,gCAAgC;EAChC,yBAAyB,CACxB,GACA,EACC,2BAA2B,KAC5B,CACD;EACA,sBAAsB;EACtB,iBAAiB;EACjB,uBAAuB;EACvB,qCAAqC;EACrC,gCAAgC;EAChC,wBAAwB;EACxB,OAAO;EACP,iBAAiB;EACjB,aAAa;EACb,oBAAoB,CAAC,GAAG,OAAO;EAC/B,sBAAsB;EACtB,eAAe,CAAC,GAAG,OAAO;EAC1B,4BAA4B,CAC3B,GACA,EACC,MAAM,QACP,CACD;EACA,uCAAuC;EACvC,8BAA8B;EAC9B,yBAAyB;EACzB,uBAAuB;EACvB,4BAA4B;EAC5B,qCAAqC;EACrC,0BAA0B;EAC1B,yCAAyC;EACzC,uCAAuC;EACvC,8BAA8B;EAC9B,yBAAyB;EACzB,0BAA0B;EAC1B,gDAAgD;EAChD,+BAA+B;EAC/B,4CAA4C;EAC5C,wBAAwB;EACxB,gCAAgC;EAChC,wBAAwB;EACxB,yBAAyB;EACzB,0CAA0C;EAC1C,gDAAgD;EAChD,gCAAgC;EAChC,uBAAuB;EACvB,8BAA8B;EAC9B,+BAA+B;EAC/B,gCAAgC;EAChC,8BAA8B;EAC9B,mCAAmC;EACnC,yCAAyC;EACzC,mCAAmC;EACnC,6CAA6C;EAC7C,6BAA6B;EAC7B,kCAAkC;EAClC,6BAA6B;EAC7B,oCAAoC,CACnC,GACA;GACC,QAAQ,EACP,yBAAyB,KAC1B;GACA,aAAa,EACZ,yBAAyB,KAC1B;GACA,QAAQ;IACP,aAAa;IACb,eAAe;GAChB;GACA,OAAO,EACN,yBAAyB,KAC1B;EACD,CACD;EACA,6BAA6B;EAC7B,6BAA6B;EAC7B,iCAAiC;EACjC,iCAAiC;EACjC,6BAA6B;EAC7B,6BAA6B;EAC7B,2BAA2B;EAC3B,qCAAqC;EACrC,8BAA8B;EAC9B,2BAA2B;EAC3B,6BAA6B;EAC7B,mCAAmC;EACnC,4CAA4C;EAC5C,oCAAoC;EACpC,sCAAsC;EACtC,yCAAyC;EACzC,iCAAiC;EACjC,gCAAgC;EAChC,8BAA8B;EAC9B,2BAA2B;EAC3B,qCAAqC;EACrC,+BAA+B;EAC/B,0CAA0C;EAC1C,wCAAwC;EACxC,6BAA6B;EAC7B,8BAA8B,CAAC,GAAG,OAAO;EACzC,wCAAwC;EACxC,mDAAmD;EACnD,8CAA8C;EAC9C,8BAA8B;EAC9B,yCAAyC;EACzC,2BAA2B;EAC3B,aAAa;EACb,gBAAgB,CACf,GACA,EACC,uBAAuB,KACxB,CACD;EACA,eAAe;EACf,MAAM,CAAC,GAAG,OAAO;CAgBb;AACL,CAAC"}
package/dist/nest.js CHANGED
@@ -4,7 +4,7 @@ import { defineConfig } from "oxlint";
4
4
  //#region src/nest.ts
5
5
  const config = defineConfig({
6
6
  plugins: nativePlugins,
7
- jsPlugins: [localPlugin("nestjs-typed", "./nest-plugin.js")],
7
+ jsPlugins: [localPlugin("nestjs-typed", "./plugins/nest.js")],
8
8
  rules: { "nestjs-typed/sort-module-metadata-arrays": 2 }
9
9
  });
10
10
 
package/dist/nest.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"nest.js","names":[],"sources":["../src/nest.ts"],"sourcesContent":["import { defineConfig } from 'oxlint';\n\nimport { localPlugin, nativePlugins } from './config.js';\n\nimport type { OxlintConfig } from 'oxlint';\n\nconst rules: NonNullable<OxlintConfig['rules']> = {\n\t'nestjs-typed/sort-module-metadata-arrays': 2,\n};\n\nconst config = defineConfig({\n\tplugins: nativePlugins,\n\tjsPlugins: [localPlugin('nestjs-typed', './nest-plugin.js')],\n\trules,\n});\n\nexport default config;\n"],"mappings":";;;;AAUA,MAAM,SAAS,aAAa;CAC3B,SAAS;CACT,WAAW,CAAC,YAAY,gBAAgB,kBAAkB,CAAC;CAC3D,SANA,4CAA4C,EAMxC;AACL,CAAC"}
1
+ {"version":3,"file":"nest.js","names":[],"sources":["../src/nest.ts"],"sourcesContent":["import { defineConfig } from 'oxlint';\n\nimport { localPlugin, nativePlugins } from './config.js';\n\nimport type { OxlintConfig } from 'oxlint';\n\nconst rules: NonNullable<OxlintConfig['rules']> = {\n\t'nestjs-typed/sort-module-metadata-arrays': 2,\n};\n\nconst config = defineConfig({\n\tplugins: nativePlugins,\n\tjsPlugins: [localPlugin('nestjs-typed', './plugins/nest.js')],\n\trules,\n});\n\nexport default config;\n"],"mappings":";;;;AAUA,MAAM,SAAS,aAAa;CAC3B,SAAS;CACT,WAAW,CAAC,YAAY,gBAAgB,mBAAmB,CAAC;CAC5D,SANA,4CAA4C,EAMxC;AACL,CAAC"}
package/dist/oxfmt.d.ts CHANGED
@@ -7,6 +7,9 @@ declare const _default: {
7
7
  trailingComma: "all";
8
8
  endOfLine: "lf";
9
9
  ignorePatterns: string[];
10
+ sortImports: {
11
+ groups: string[];
12
+ };
10
13
  };
11
14
  //#endregion
12
15
  export { _default as default };
package/dist/oxfmt.js CHANGED
@@ -8,7 +8,16 @@ var oxfmt_default = defineConfig({
8
8
  quoteProps: "as-needed",
9
9
  trailingComma: "all",
10
10
  endOfLine: "lf",
11
- ignorePatterns: ["tests/fixtures/**"]
11
+ ignorePatterns: ["tests/fixtures/**"],
12
+ sortImports: { groups: [
13
+ "value-builtin",
14
+ "value-index",
15
+ "value-external",
16
+ "value-internal",
17
+ "value-sibling",
18
+ "value-parent",
19
+ "type-import"
20
+ ] }
12
21
  });
13
22
 
14
23
  //#endregion
package/dist/oxfmt.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"oxfmt.js","names":[],"sources":["../src/oxfmt.ts"],"sourcesContent":["import { defineConfig } from 'oxfmt';\n\nexport default defineConfig({\n\tprintWidth: 120,\n\tuseTabs: true,\n\tsingleQuote: true,\n\tquoteProps: 'as-needed',\n\ttrailingComma: 'all',\n\tendOfLine: 'lf',\n\tignorePatterns: ['tests/fixtures/**'],\n});\n"],"mappings":";;;AAEA,oBAAe,aAAa;CAC3B,YAAY;CACZ,SAAS;CACT,aAAa;CACb,YAAY;CACZ,eAAe;CACf,WAAW;CACX,gBAAgB,CAAC,mBAAmB;AACrC,CAAC"}
1
+ {"version":3,"file":"oxfmt.js","names":[],"sources":["../src/oxfmt.ts"],"sourcesContent":["import { defineConfig } from 'oxfmt';\n\nexport default defineConfig({\n\tprintWidth: 120,\n\tuseTabs: true,\n\tsingleQuote: true,\n\tquoteProps: 'as-needed',\n\ttrailingComma: 'all',\n\tendOfLine: 'lf',\n\tignorePatterns: ['tests/fixtures/**'],\n\tsortImports: {\n\t\tgroups: [\n\t\t\t'value-builtin',\n\t\t\t'value-index',\n\t\t\t'value-external',\n\t\t\t'value-internal',\n\t\t\t'value-sibling',\n\t\t\t'value-parent',\n\t\t\t'type-import',\n\t\t],\n\t},\n});\n"],"mappings":";;;AAEA,oBAAe,aAAa;CAC3B,YAAY;CACZ,SAAS;CACT,aAAa;CACb,YAAY;CACZ,eAAe;CACf,WAAW;CACX,gBAAgB,CAAC,mBAAmB;CACpC,aAAa,EACZ,QAAQ;EACP;EACA;EACA;EACA;EACA;EACA;EACA;CACD,EACD;AACD,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { TSESLint } from "@typescript-eslint/utils";
2
+ //#region src/plugins/nest.d.ts
3
+ declare const plugin: TSESLint.FlatConfig.Plugin;
4
+ //#endregion
5
+ export { plugin as default };
6
+ //# sourceMappingURL=nest.d.ts.map
@@ -0,0 +1,57 @@
1
+ //#region src/plugins/nest.ts
2
+ const DEFAULT_LOCALE = "en-US";
3
+ function isSortable(node) {
4
+ return node?.type === "Identifier" || node?.type === "CallExpression";
5
+ }
6
+ function nodeName(node) {
7
+ if (node.type === "Identifier") return node.name;
8
+ if (node.type === "CallExpression" && node.callee.type === "MemberExpression" && node.callee.object.type === "Identifier") return node.callee.object.name;
9
+ return "";
10
+ }
11
+ function isFactoryProviderInjectArray(node) {
12
+ if (node.parent.type !== "Property") return false;
13
+ const property = node.parent;
14
+ if (property.key.type !== "Identifier" || property.key.name !== "inject") return false;
15
+ if (property.parent.type !== "ObjectExpression") return false;
16
+ return property.parent.properties.some((item) => item.type === "Property" && item.key.type === "Identifier" && item.key.name === "useFactory");
17
+ }
18
+ const plugin = {
19
+ meta: {
20
+ name: "eslint-plugin-mahir-nest",
21
+ version: "1.0.0"
22
+ },
23
+ rules: { "sort-module-metadata-arrays": {
24
+ meta: {
25
+ type: "suggestion",
26
+ docs: { description: "Ensure Module metadata arrays are sorted alphabetically" },
27
+ fixable: "code",
28
+ schema: [{
29
+ type: "object",
30
+ additionalProperties: false,
31
+ properties: { locale: { type: "string" } }
32
+ }],
33
+ messages: { moduleMetadataArraysAreSorted: "`Module` metadata arrays should be sorted in ASC alphabetical order" }
34
+ },
35
+ defaultOptions: [{ locale: DEFAULT_LOCALE }],
36
+ create(context) {
37
+ const locale = context.options[0].locale ?? DEFAULT_LOCALE;
38
+ const sourceCode = context.sourceCode;
39
+ return { "ClassDeclaration > Decorator[expression.callee.name=\"Module\"] Property > ArrayExpression"(node) {
40
+ if (isFactoryProviderInjectArray(node)) return;
41
+ const sortable = node.elements.filter(isSortable);
42
+ const sorted = sortable.toSorted((left, right) => nodeName(left).localeCompare(nodeName(right), locale));
43
+ if (sortable.every((element, index) => element === sorted[index])) return;
44
+ const texts = sorted.map((element) => sourceCode.getText(element));
45
+ context.report({
46
+ node,
47
+ messageId: "moduleMetadataArraysAreSorted",
48
+ fix: (fixer) => sortable.map((element, index) => fixer.replaceText(element, texts[index] ?? ""))
49
+ });
50
+ } };
51
+ }
52
+ } }
53
+ };
54
+
55
+ //#endregion
56
+ export { plugin as default };
57
+ //# sourceMappingURL=nest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nest.js","names":[],"sources":["../../src/plugins/nest.ts"],"sourcesContent":["import type { TSESLint, TSESTree } from '@typescript-eslint/utils';\n\nconst DEFAULT_LOCALE = 'en-US';\n\ntype Options = [\n\t{\n\t\tlocale?: string;\n\t},\n];\n\nfunction isSortable(\n\tnode: TSESTree.Expression | TSESTree.SpreadElement | null,\n): node is TSESTree.CallExpression | TSESTree.Identifier {\n\treturn node?.type === 'Identifier' || node?.type === 'CallExpression';\n}\n\nfunction nodeName(node: TSESTree.Node) {\n\tif (node.type === 'Identifier') return node.name;\n\tif (\n\t\tnode.type === 'CallExpression' &&\n\t\tnode.callee.type === 'MemberExpression' &&\n\t\tnode.callee.object.type === 'Identifier'\n\t)\n\t\treturn node.callee.object.name;\n\treturn '';\n}\n\nfunction isFactoryProviderInjectArray(node: TSESTree.ArrayExpression) {\n\tif (node.parent.type !== 'Property') return false;\n\tconst property = node.parent;\n\tif (property.key.type !== 'Identifier' || property.key.name !== 'inject') return false;\n\tif (property.parent.type !== 'ObjectExpression') return false;\n\treturn property.parent.properties.some(\n\t\t(item) => item.type === 'Property' && item.key.type === 'Identifier' && item.key.name === 'useFactory',\n\t);\n}\n\nconst sortModuleMetadataArrays: TSESLint.RuleModule<'moduleMetadataArraysAreSorted', Options> = {\n\tmeta: {\n\t\ttype: 'suggestion',\n\t\tdocs: {\n\t\t\tdescription: 'Ensure Module metadata arrays are sorted alphabetically',\n\t\t},\n\t\tfixable: 'code',\n\t\tschema: [\n\t\t\t{\n\t\t\t\ttype: 'object',\n\t\t\t\tadditionalProperties: false,\n\t\t\t\tproperties: {\n\t\t\t\t\tlocale: { type: 'string' },\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\tmessages: {\n\t\t\tmoduleMetadataArraysAreSorted: '`Module` metadata arrays should be sorted in ASC alphabetical order',\n\t\t},\n\t},\n\tdefaultOptions: [{ locale: DEFAULT_LOCALE }],\n\tcreate(context) {\n\t\tconst locale = context.options[0].locale ?? DEFAULT_LOCALE;\n\t\tconst sourceCode = context.sourceCode;\n\t\treturn {\n\t\t\t'ClassDeclaration > Decorator[expression.callee.name=\"Module\"] Property > ArrayExpression'(\n\t\t\t\tnode: TSESTree.ArrayExpression,\n\t\t\t) {\n\t\t\t\tif (isFactoryProviderInjectArray(node)) return;\n\t\t\t\tconst sortable = node.elements.filter(isSortable);\n\t\t\t\tconst sorted = sortable.toSorted((left, right) => nodeName(left).localeCompare(nodeName(right), locale));\n\t\t\t\tif (sortable.every((element, index) => element === sorted[index])) return;\n\t\t\t\tconst texts = sorted.map((element) => sourceCode.getText(element));\n\t\t\t\tcontext.report({\n\t\t\t\t\tnode,\n\t\t\t\t\tmessageId: 'moduleMetadataArraysAreSorted',\n\t\t\t\t\tfix: (fixer) => sortable.map((element, index) => fixer.replaceText(element, texts[index] ?? '')),\n\t\t\t\t});\n\t\t\t},\n\t\t};\n\t},\n};\n\nconst plugin: TSESLint.FlatConfig.Plugin = {\n\tmeta: {\n\t\tname: 'eslint-plugin-mahir-nest',\n\t\tversion: '1.0.0',\n\t},\n\trules: {\n\t\t'sort-module-metadata-arrays': sortModuleMetadataArrays,\n\t},\n};\n\nexport default plugin;\n"],"mappings":";AAEA,MAAM,iBAAiB;AAQvB,SAAS,WACR,MACwD;CACxD,OAAO,MAAM,SAAS,gBAAgB,MAAM,SAAS;AACtD;AAEA,SAAS,SAAS,MAAqB;CACtC,IAAI,KAAK,SAAS,cAAc,OAAO,KAAK;CAC5C,IACC,KAAK,SAAS,oBACd,KAAK,OAAO,SAAS,sBACrB,KAAK,OAAO,OAAO,SAAS,cAE5B,OAAO,KAAK,OAAO,OAAO;CAC3B,OAAO;AACR;AAEA,SAAS,6BAA6B,MAAgC;CACrE,IAAI,KAAK,OAAO,SAAS,YAAY,OAAO;CAC5C,MAAM,WAAW,KAAK;CACtB,IAAI,SAAS,IAAI,SAAS,gBAAgB,SAAS,IAAI,SAAS,UAAU,OAAO;CACjF,IAAI,SAAS,OAAO,SAAS,oBAAoB,OAAO;CACxD,OAAO,SAAS,OAAO,WAAW,MAChC,SAAS,KAAK,SAAS,cAAc,KAAK,IAAI,SAAS,gBAAgB,KAAK,IAAI,SAAS,YAC3F;AACD;AA6CA,MAAM,SAAqC;CAC1C,MAAM;EACL,MAAM;EACN,SAAS;CACV;CACA,OAAO,EACN,+BAA+B;EAhDhC,MAAM;GACL,MAAM;GACN,MAAM,EACL,aAAa,0DACd;GACA,SAAS;GACT,QAAQ,CACP;IACC,MAAM;IACN,sBAAsB;IACtB,YAAY,EACX,QAAQ,EAAE,MAAM,SAAS,EAC1B;GACD,CACD;GACA,UAAU,EACT,+BAA+B,sEAChC;EACD;EACA,gBAAgB,CAAC,EAAE,QAAQ,eAAe,CAAC;EAC3C,OAAO,SAAS;GACf,MAAM,SAAS,QAAQ,QAAQ,EAAE,CAAC,UAAU;GAC5C,MAAM,aAAa,QAAQ;GAC3B,OAAO,EACN,6FACC,MACC;IACD,IAAI,6BAA6B,IAAI,GAAG;IACxC,MAAM,WAAW,KAAK,SAAS,OAAO,UAAU;IAChD,MAAM,SAAS,SAAS,UAAU,MAAM,UAAU,SAAS,IAAI,CAAC,CAAC,cAAc,SAAS,KAAK,GAAG,MAAM,CAAC;IACvG,IAAI,SAAS,OAAO,SAAS,UAAU,YAAY,OAAO,MAAM,GAAG;IACnE,MAAM,QAAQ,OAAO,KAAK,YAAY,WAAW,QAAQ,OAAO,CAAC;IACjE,QAAQ,OAAO;KACd;KACA,WAAW;KACX,MAAM,UAAU,SAAS,KAAK,SAAS,UAAU,MAAM,YAAY,SAAS,MAAM,UAAU,EAAE,CAAC;IAChG,CAAC;GACF,EACD;EACD;CASuD,EACvD;AACD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@imranbarbhuiya/oxc-config",
3
- "version": "0.1.6",
3
+ "version": "0.1.9",
4
4
  "description": "Shared Oxlint and Oxfmt configs for JavaScript and TypeScript projects",
5
5
  "keywords": [
6
6
  "config",
@@ -194,7 +194,6 @@
194
194
  },
195
195
  "dependencies": {
196
196
  "@clack/prompts": "^1.7.0",
197
- "@darraghor/eslint-plugin-nestjs-typed": "^7.2.5",
198
197
  "@typescript-eslint/eslint-plugin": "^8.63.0",
199
198
  "eslint-plugin-better-tailwindcss": "^4.6.1",
200
199
  "eslint-plugin-import-x": "^4.17.1",
@@ -1,2 +0,0 @@
1
- import { plugin as eslint_plugin_nestjs_typed_default } from "@darraghor/eslint-plugin-nestjs-typed";
2
- export { eslint_plugin_nestjs_typed_default as default };
@@ -1,3 +0,0 @@
1
- import { plugin as eslint_plugin_nestjs_typed_default } from "@darraghor/eslint-plugin-nestjs-typed";
2
-
3
- export { eslint_plugin_nestjs_typed_default as default };