@vinicunca/eslint-config 3.5.1 → 3.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -7932,12 +7932,6 @@ interface RuleOptions {
7932
7932
  * @see https://eslint.vuejs.org/rules/component-options-name-casing.html
7933
7933
  */
7934
7934
  'vue/component-options-name-casing'?: Linter.RuleEntry<VueComponentOptionsNameCasing>
7935
- /**
7936
- * enforce order of component top-level elements
7937
- * @see https://eslint.vuejs.org/rules/component-tags-order.html
7938
- * @deprecated
7939
- */
7940
- 'vue/component-tags-order'?: Linter.RuleEntry<VueComponentTagsOrder>
7941
7935
  /**
7942
7936
  * enforce specific casing for custom event name
7943
7937
  * @see https://eslint.vuejs.org/rules/custom-event-name-casing.html
@@ -8004,7 +7998,7 @@ interface RuleOptions {
8004
7998
  */
8005
7999
  'vue/html-closing-bracket-spacing'?: Linter.RuleEntry<VueHtmlClosingBracketSpacing>
8006
8000
  /**
8007
- * enforce unified line brake in HTML comments
8001
+ * enforce unified line break in HTML comments
8008
8002
  * @see https://eslint.vuejs.org/rules/html-comment-content-newline.html
8009
8003
  */
8010
8004
  'vue/html-comment-content-newline'?: Linter.RuleEntry<VueHtmlCommentContentNewline>
@@ -8314,11 +8308,15 @@ interface RuleOptions {
8314
8308
  */
8315
8309
  'vue/no-extra-parens'?: Linter.RuleEntry<VueNoExtraParens>
8316
8310
  /**
8317
- * require valid keys in model option
8318
- * @see https://eslint.vuejs.org/rules/no-invalid-model-keys.html
8319
- * @deprecated
8311
+ * Disallow shorthand type conversions in `<template>`
8312
+ * @see https://eslint.vuejs.org/rules/no-implicit-coercion.html
8320
8313
  */
8321
- 'vue/no-invalid-model-keys'?: Linter.RuleEntry<[]>
8314
+ 'vue/no-implicit-coercion'?: Linter.RuleEntry<VueNoImplicitCoercion>
8315
+ /**
8316
+ * disallow importing Vue compiler macros
8317
+ * @see https://eslint.vuejs.org/rules/no-import-compiler-macros.html
8318
+ */
8319
+ 'vue/no-import-compiler-macros'?: Linter.RuleEntry<[]>
8322
8320
  /**
8323
8321
  * disallow irregular whitespace in `.vue` files
8324
8322
  * @see https://eslint.vuejs.org/rules/no-irregular-whitespace.html
@@ -8345,12 +8343,12 @@ interface RuleOptions {
8345
8343
  */
8346
8344
  'vue/no-multi-spaces'?: Linter.RuleEntry<VueNoMultiSpaces>
8347
8345
  /**
8348
- * disallow to pass multiple objects into array to class
8346
+ * disallow passing multiple objects in an array to class
8349
8347
  * @see https://eslint.vuejs.org/rules/no-multiple-objects-in-class.html
8350
8348
  */
8351
8349
  'vue/no-multiple-objects-in-class'?: Linter.RuleEntry<[]>
8352
8350
  /**
8353
- * disallow to pass multiple arguments to scoped slots
8351
+ * disallow passing multiple arguments to scoped slots
8354
8352
  * @see https://eslint.vuejs.org/rules/no-multiple-slot-args.html
8355
8353
  */
8356
8354
  'vue/no-multiple-slot-args'?: Linter.RuleEntry<[]>
@@ -8379,12 +8377,6 @@ interface RuleOptions {
8379
8377
  * @see https://eslint.vuejs.org/rules/no-ref-as-operand.html
8380
8378
  */
8381
8379
  'vue/no-ref-as-operand'?: Linter.RuleEntry<[]>
8382
- /**
8383
- * disallow usages of ref objects that can lead to loss of reactivity
8384
- * @see https://eslint.vuejs.org/rules/no-ref-object-destructure.html
8385
- * @deprecated
8386
- */
8387
- 'vue/no-ref-object-destructure'?: Linter.RuleEntry<[]>
8388
8380
  /**
8389
8381
  * disallow usages of ref objects that can lead to loss of reactivity
8390
8382
  * @see https://eslint.vuejs.org/rules/no-ref-object-reactivity-loss.html
@@ -8475,12 +8467,6 @@ interface RuleOptions {
8475
8467
  * @see https://eslint.vuejs.org/rules/no-root-v-if.html
8476
8468
  */
8477
8469
  'vue/no-root-v-if'?: Linter.RuleEntry<[]>
8478
- /**
8479
- * disallow usages that lose the reactivity of `props` passed to `setup`
8480
- * @see https://eslint.vuejs.org/rules/no-setup-props-destructure.html
8481
- * @deprecated
8482
- */
8483
- 'vue/no-setup-props-destructure'?: Linter.RuleEntry<[]>
8484
8470
  /**
8485
8471
  * disallow usages that lose the reactivity of `props` passed to `setup`
8486
8472
  * @see https://eslint.vuejs.org/rules/no-setup-props-reactivity-loss.html
@@ -8614,6 +8600,7 @@ interface RuleOptions {
8614
8600
  /**
8615
8601
  * disallow `key` attribute on `<template v-for>`
8616
8602
  * @see https://eslint.vuejs.org/rules/no-v-for-template-key.html
8603
+ * @deprecated
8617
8604
  */
8618
8605
  'vue/no-v-for-template-key'?: Linter.RuleEntry<[]>
8619
8606
  /**
@@ -8629,6 +8616,7 @@ interface RuleOptions {
8629
8616
  /**
8630
8617
  * disallow adding an argument to `v-model` used in custom component
8631
8618
  * @see https://eslint.vuejs.org/rules/no-v-model-argument.html
8619
+ * @deprecated
8632
8620
  */
8633
8621
  'vue/no-v-model-argument'?: Linter.RuleEntry<[]>
8634
8622
  /**
@@ -8861,12 +8849,6 @@ interface RuleOptions {
8861
8849
  * @see https://eslint.vuejs.org/rules/script-indent.html
8862
8850
  */
8863
8851
  'vue/script-indent'?: Linter.RuleEntry<VueScriptIndent>
8864
- /**
8865
- * prevent `<script setup>` variables used in `<template>` to be marked as unused
8866
- * @see https://eslint.vuejs.org/rules/script-setup-uses-vars.html
8867
- * @deprecated
8868
- */
8869
- 'vue/script-setup-uses-vars'?: Linter.RuleEntry<[]>
8870
8852
  /**
8871
8853
  * require a line break before and after the contents of a singleline element
8872
8854
  * @see https://eslint.vuejs.org/rules/singleline-html-element-content-newline.html
@@ -8937,12 +8919,6 @@ interface RuleOptions {
8937
8919
  * @see https://eslint.vuejs.org/rules/v-on-event-hyphenation.html
8938
8920
  */
8939
8921
  'vue/v-on-event-hyphenation'?: Linter.RuleEntry<VueVOnEventHyphenation>
8940
- /**
8941
- * enforce or forbid parentheses after method calls without arguments in `v-on` directives
8942
- * @see https://eslint.vuejs.org/rules/v-on-function-call.html
8943
- * @deprecated
8944
- */
8945
- 'vue/v-on-function-call'?: Linter.RuleEntry<VueVOnFunctionCall>
8946
8922
  /**
8947
8923
  * enforce writing style for handlers in `v-on` directives
8948
8924
  * @see https://eslint.vuejs.org/rules/v-on-handler-style.html
@@ -8981,6 +8957,7 @@ interface RuleOptions {
8981
8957
  /**
8982
8958
  * require valid keys in model option
8983
8959
  * @see https://eslint.vuejs.org/rules/valid-model-definition.html
8960
+ * @deprecated
8984
8961
  */
8985
8962
  'vue/valid-model-definition'?: Linter.RuleEntry<[]>
8986
8963
  /**
@@ -9001,6 +8978,7 @@ interface RuleOptions {
9001
8978
  /**
9002
8979
  * enforce valid `.sync` modifier on `v-bind` directives
9003
8980
  * @see https://eslint.vuejs.org/rules/valid-v-bind-sync.html
8981
+ * @deprecated
9004
8982
  */
9005
8983
  'vue/valid-v-bind-sync'?: Linter.RuleEntry<[]>
9006
8984
  /**
@@ -11593,18 +11571,7 @@ type NodeNoRestrictedRequire = []|[(string | {
11593
11571
  // ----- node/no-sync -----
11594
11572
  type NodeNoSync = []|[{
11595
11573
  allowAtRootLevel?: boolean
11596
- ignores?: (string | {
11597
- from?: "file"
11598
- path?: string
11599
- name?: string[]
11600
- } | {
11601
- from?: "lib"
11602
- name?: string[]
11603
- } | {
11604
- from?: "package"
11605
- package?: string
11606
- name?: string[]
11607
- })[]
11574
+ ignores?: string[]
11608
11575
  }]
11609
11576
  // ----- node/no-unpublished-bin -----
11610
11577
  type NodeNoUnpublishedBin = []|[{
@@ -17243,16 +17210,10 @@ type VueComponentNameInTemplateCasing = []|[("PascalCase" | "kebab-case")]|[("Pa
17243
17210
  }]
17244
17211
  // ----- vue/component-options-name-casing -----
17245
17212
  type VueComponentOptionsNameCasing = []|[("camelCase" | "kebab-case" | "PascalCase")]
17246
- // ----- vue/component-tags-order -----
17247
- type VueComponentTagsOrder = []|[{
17248
- order?: (string | string[])[]
17249
- }]
17250
17213
  // ----- vue/custom-event-name-casing -----
17251
- type VueCustomEventNameCasing = ([]|[("kebab-case" | "camelCase")]|[("kebab-case" | "camelCase"), {
17214
+ type VueCustomEventNameCasing = []|[("kebab-case" | "camelCase")]|[("kebab-case" | "camelCase"), {
17252
17215
  ignores?: string[]
17253
- }] | []|[{
17254
- ignores?: string[]
17255
- }])
17216
+ }]
17256
17217
  // ----- vue/define-emits-declaration -----
17257
17218
  type VueDefineEmitsDeclaration = []|[("type-based" | "type-literal" | "runtime")]
17258
17219
  // ----- vue/define-macros-order -----
@@ -17883,6 +17844,14 @@ type VueNoExtraParens = ([]|["functions"] | []|["all"]|["all", {
17883
17844
  enforceForFunctionPrototypeMethods?: boolean
17884
17845
  allowParensAfterCommentPattern?: string
17885
17846
  }])
17847
+ // ----- vue/no-implicit-coercion -----
17848
+ type VueNoImplicitCoercion = []|[{
17849
+ boolean?: boolean
17850
+ number?: boolean
17851
+ string?: boolean
17852
+ disallowTemplateShorthand?: boolean
17853
+ allow?: ("~" | "!!" | "+" | "- -" | "-" | "*")[]
17854
+ }]
17886
17855
  // ----- vue/no-irregular-whitespace -----
17887
17856
  type VueNoIrregularWhitespace = []|[{
17888
17857
  skipComments?: boolean
@@ -18174,9 +18143,13 @@ type VuePaddingLinesInComponentDefinition = []|[(("always" | "never") | {
18174
18143
  groupSingleLineProperties?: boolean
18175
18144
  })]
18176
18145
  // ----- vue/prefer-true-attribute-shorthand -----
18177
- type VuePreferTrueAttributeShorthand = []|[("always" | "never")]
18146
+ type VuePreferTrueAttributeShorthand = []|[("always" | "never")]|[("always" | "never"), {
18147
+ except?: string[]
18148
+ }]
18178
18149
  // ----- vue/prop-name-casing -----
18179
- type VuePropNameCasing = []|[("camelCase" | "snake_case")]
18150
+ type VuePropNameCasing = []|[("camelCase" | "snake_case")]|[("camelCase" | "snake_case"), {
18151
+ ignoreProps?: string[]
18152
+ }]
18180
18153
  // ----- vue/quote-props -----
18181
18154
  type VueQuoteProps = ([]|[("always" | "as-needed" | "consistent" | "consistent-as-needed")] | []|[("always" | "as-needed" | "consistent" | "consistent-as-needed")]|[("always" | "as-needed" | "consistent" | "consistent-as-needed"), {
18182
18155
  keywords?: boolean
@@ -18241,7 +18214,6 @@ type VueSortKeys = []|[("asc" | "desc")]|[("asc" | "desc"), {
18241
18214
  ignoreGrandchildrenOf?: unknown[]
18242
18215
  minKeys?: number
18243
18216
  natural?: boolean
18244
- runOutsideVue?: boolean
18245
18217
  }]
18246
18218
  // ----- vue/space-in-parens -----
18247
18219
  type VueSpaceInParens = []|[("always" | "never")]|[("always" | "never"), {
@@ -18279,10 +18251,6 @@ type VueVOnEventHyphenation = []|[("always" | "never")]|[("always" | "never"), {
18279
18251
  })[]
18280
18252
  ignoreTags?: string[]
18281
18253
  }]
18282
- // ----- vue/v-on-function-call -----
18283
- type VueVOnFunctionCall = []|[("always" | "never")]|[("always" | "never"), {
18284
- ignoreIncludesComment?: boolean
18285
- }]
18286
18254
  // ----- vue/v-on-handler-style -----
18287
18255
  type VueVOnHandlerStyle = []|[(("inline" | "inline-function") | ["method", ("inline" | "inline-function")])]|[(("inline" | "inline-function") | ["method", ("inline" | "inline-function")]), {
18288
18256
  ignoreIncludesComment?: boolean
package/dist/index.js CHANGED
@@ -2171,10 +2171,11 @@ async function unicorn(options = {}) {
2171
2171
  unicorn: default7
2172
2172
  },
2173
2173
  rules: {
2174
- ...options.allRecommended ? default7.configs["flat/recommended"].rules : {
2174
+ ...options.allRecommended ? default7.configs.recommended.rules : {
2175
+ "unicorn/consistent-empty-array-spread": ERROR,
2175
2176
  "unicorn/error-message": ERROR,
2176
2177
  "unicorn/escape-case": ERROR,
2177
- "unicorn/no-instanceof-array": ERROR,
2178
+ "unicorn/no-instanceof-builtins": ERROR,
2178
2179
  "unicorn/no-new-array": ERROR,
2179
2180
  "unicorn/no-new-buffer": ERROR,
2180
2181
  "unicorn/number-literal-case": ERROR,
@@ -2295,9 +2296,9 @@ async function vue(options = {}) {
2295
2296
  ]),
2296
2297
  rules: {
2297
2298
  ...pluginVue.configs.base.rules,
2298
- ...pluginVue.configs["vue3-essential"].rules,
2299
- ...pluginVue.configs["vue3-strongly-recommended"].rules,
2300
- ...pluginVue.configs["vue3-recommended"].rules,
2299
+ ...pluginVue.configs["flat/essential"].map((c) => c.rules).reduce((acc, c) => ({ ...acc, ...c }), {}),
2300
+ ...pluginVue.configs["flat/strongly-recommended"].map((c) => c.rules).reduce((acc, c) => ({ ...acc, ...c }), {}),
2301
+ ...pluginVue.configs["flat/recommended"].map((c) => c.rules).reduce((acc, c) => ({ ...acc, ...c }), {}),
2301
2302
  "node/prefer-global/process": OFF,
2302
2303
  "vue/block-order": [ERROR, {
2303
2304
  order: ["script", "template", "style"]
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vinicunca/eslint-config",
3
3
  "type": "module",
4
- "version": "3.5.1",
4
+ "version": "3.6.0",
5
5
  "description": "Vinicunca ESLint config",
6
6
  "author": {
7
7
  "name": "praburangki",
@@ -54,7 +54,7 @@
54
54
  "peerDependencies": {
55
55
  "@eslint-react/eslint-plugin": "^1.19.0",
56
56
  "@prettier/plugin-xml": "^3.4.1",
57
- "@unocss/eslint-plugin": ">=0.50.0",
57
+ "@unocss/eslint-plugin": "^66.1.0-beta.3",
58
58
  "astro-eslint-parser": "^1.0.2",
59
59
  "eslint": "^9.10.0",
60
60
  "eslint-plugin-astro": "^1.2.0",
@@ -127,7 +127,7 @@
127
127
  "eslint-plugin-import-x": "^4.6.1",
128
128
  "eslint-plugin-jsdoc": "^50.6.3",
129
129
  "eslint-plugin-jsonc": "^2.19.1",
130
- "eslint-plugin-n": "^17.16.1",
130
+ "eslint-plugin-n": "^17.16.2",
131
131
  "eslint-plugin-no-only-tests": "^3.3.0",
132
132
  "eslint-plugin-perfectionist": "^4.9.0",
133
133
  "eslint-plugin-regexp": "^2.7.0",
@@ -135,14 +135,14 @@
135
135
  "eslint-plugin-toml": "^0.12.0",
136
136
  "eslint-plugin-unicorn": "^57.0.0",
137
137
  "eslint-plugin-unused-imports": "^4.1.4",
138
- "eslint-plugin-vue": "^9.32.0",
138
+ "eslint-plugin-vue": "^10.0.0",
139
139
  "eslint-plugin-yml": "^1.17.0",
140
140
  "eslint-processor-vue-blocks": "^2.0.0",
141
141
  "globals": "^16.0.0",
142
142
  "jsonc-eslint-parser": "^2.4.0",
143
143
  "local-pkg": "^1.1.1",
144
144
  "toml-eslint-parser": "^0.10.0",
145
- "vue-eslint-parser": "^9.4.3",
145
+ "vue-eslint-parser": "^10.1.1",
146
146
  "yaml-eslint-parser": "^1.3.0"
147
147
  },
148
148
  "scripts": {