@eslinted/defaults 12.16.1-rc.1 → 12.16.1

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.
Files changed (88) hide show
  1. package/.github/workflows/RELEASE.yml +30 -30
  2. package/.github/workflows/rc.yml +30 -30
  3. package/.markdownlint.jsonc +97 -97
  4. package/.mocharc.yml +11 -11
  5. package/LICENSE +20 -20
  6. package/README.md +4 -4
  7. package/eslint.config.js +3 -3
  8. package/package.json +53 -54
  9. package/src/files/_factory/index.ts +76 -76
  10. package/src/files/_factory/project/index.ts +2 -2
  11. package/src/files/_factory/project/roots.ts +4 -4
  12. package/src/files/_factory/project/subroots.ts +8 -8
  13. package/src/files/css.ts +5 -5
  14. package/src/files/html.ts +5 -5
  15. package/src/files/index.ts +23 -23
  16. package/src/files/js.ts +5 -5
  17. package/src/files/json.ts +5 -5
  18. package/src/files/jsonc.ts +5 -5
  19. package/src/files/jsoncc.ts +9 -9
  20. package/src/files/mocha.ts +5 -5
  21. package/src/files/svelte.ts +5 -5
  22. package/src/files/ts.ts +5 -5
  23. package/src/files/yml.ts +8 -8
  24. package/src/ignores/base.ts +5 -5
  25. package/src/ignores/ignores/css.ts +1 -1
  26. package/src/ignores/ignores/html.ts +1 -1
  27. package/src/ignores/ignores/js.ts +1 -1
  28. package/src/ignores/ignores/json.ts +1 -1
  29. package/src/ignores/ignores/jsonc.ts +1 -1
  30. package/src/ignores/ignores/jsoncc.ts +1 -1
  31. package/src/ignores/ignores/mocha.ts +1 -1
  32. package/src/ignores/ignores/svelte.ts +1 -1
  33. package/src/ignores/ignores/ts.ts +1 -1
  34. package/src/ignores/ignores/yml.ts +1 -1
  35. package/src/ignores/index.ts +25 -25
  36. package/src/index.ts +10 -10
  37. package/src/rules/_strings/id.ts +21 -21
  38. package/src/rules/_strings/index.ts +3 -3
  39. package/src/rules/_strings/option.ts +30 -30
  40. package/src/rules/_strings/state.spec.ts +64 -64
  41. package/src/rules/_strings/state.ts +4 -4
  42. package/src/rules/css/enable.ts +31 -31
  43. package/src/rules/css/index.ts +3 -3
  44. package/src/rules/enable.ts +390 -390
  45. package/src/rules/html/index.ts +3 -3
  46. package/src/rules/html/plugin/index.ts +114 -114
  47. package/src/rules/index.ts +27 -27
  48. package/src/rules/json/enable.ts +18 -18
  49. package/src/rules/json/index.ts +9 -9
  50. package/src/rules/json/plugin/extension.ts +60 -60
  51. package/src/rules/json/plugin/index.ts +35 -35
  52. package/src/rules/jsonc/index.ts +3 -3
  53. package/src/rules/jsonc/plugin/index.ts +12 -12
  54. package/src/rules/jsoncc/index.ts +3 -3
  55. package/src/rules/jsoncc/plugin/index.ts +16 -16
  56. package/src/rules/mocha/chai/expect.ts +16 -16
  57. package/src/rules/mocha/chai/index.ts +18 -18
  58. package/src/rules/mocha/disable.ts +13 -13
  59. package/src/rules/mocha/enable.ts +36 -36
  60. package/src/rules/mocha/index.ts +11 -11
  61. package/src/rules/stylistic.ts +507 -507
  62. package/src/rules/svelte/disable.ts +19 -19
  63. package/src/rules/svelte/enable.ts +157 -157
  64. package/src/rules/svelte/extension/disable.ts +14 -14
  65. package/src/rules/svelte/extension/index.ts +17 -17
  66. package/src/rules/svelte/index.ts +11 -11
  67. package/src/rules/ts/disable.ts +30 -30
  68. package/src/rules/ts/enable.ts +188 -188
  69. package/src/rules/ts/extension/disable.ts +35 -35
  70. package/src/rules/ts/extension/index.ts +62 -62
  71. package/src/rules/ts/index.ts +11 -11
  72. package/src/rules/yml/enable.ts +32 -32
  73. package/src/rules/yml/extension.ts +53 -53
  74. package/src/rules/yml/index.ts +7 -7
  75. package/src/settings/base.ts +6 -6
  76. package/src/settings/index.ts +7 -7
  77. package/src/settings/registry.ts +23 -23
  78. package/src/settings/settings/css.ts +9 -9
  79. package/src/settings/settings/html.ts +10 -10
  80. package/src/settings/settings/js.ts +8 -8
  81. package/src/settings/settings/json.ts +7 -7
  82. package/src/settings/settings/jsonc.ts +9 -9
  83. package/src/settings/settings/jsoncc.ts +9 -9
  84. package/src/settings/settings/mocha.ts +8 -8
  85. package/src/settings/settings/svelte.ts +10 -10
  86. package/src/settings/settings/ts.ts +30 -30
  87. package/src/settings/settings/yml.ts +9 -9
  88. package/tsconfig.json +75 -75
@@ -1,3 +1,3 @@
1
- import { HtmlEnablePlugin } from "./plugin";
2
-
3
- export default [HtmlEnablePlugin];
1
+ import { HtmlEnablePlugin } from "./plugin";
2
+
3
+ export default [HtmlEnablePlugin];
@@ -1,114 +1,114 @@
1
- import {
2
- ID,
3
- // OFF,
4
- ON,
5
- } from "../../_strings";
6
-
7
- export const HtmlEnablePlugin = {
8
- id: ID.Enable.Plugin.Plugin,
9
- rules: {
10
- // #region BEST PRACTICE
11
- // DOC: https://html-eslint.org/docs/rules#best-practice
12
- // "@html-eslint/max-element-depth": OFF /* @preference: simply do not care */,
13
- "@html-eslint/no-duplicate-attrs": ON,
14
- "@html-eslint/no-duplicate-class": ON,
15
- "@html-eslint/no-duplicate-id": ON,
16
- "@html-eslint/no-duplicate-in-head": ON,
17
- "@html-eslint/no-ineffective-attrs": ON,
18
- // "@html-eslint/no-inline-styles": OFF /* @CONFLICT: breaks Svelte app.html */,
19
- "@html-eslint/no-invalid-entity": ON,
20
- "@html-eslint/no-nested-interactive": ON,
21
- "@html-eslint/no-obsolete-tags": ON,
22
- // "@html-eslint/no-restricted-attr-values": OFF,
23
- // "@html-eslint/no-restricted-attrs": OFF,
24
- // "@html-eslint/no-script-style-type": OFF,
25
- "@html-eslint/no-target-blank": ON,
26
- // "@html-eslint/prefer-https": OFF /* @CONFLICT: not everything is https */,
27
- // "@html-eslint/require-attrs": OFF,
28
- "@html-eslint/require-button-type": ON,
29
- "@html-eslint/require-closing-tags": ON,
30
- "@html-eslint/require-doctype": ON,
31
- // "@html-eslint/require-explicit-size": OFF /* preference, prefer using css */,
32
- "@html-eslint/require-li-container": ON,
33
- "@html-eslint/require-meta-charset": ON,
34
- "@html-eslint/use-baseline": ON,
35
- // #endregion
36
-
37
- // #region SEO
38
- // DOC: https://html-eslint.org/docs/rules#seo
39
- "@html-eslint/no-multiple-h1": ON,
40
- "@html-eslint/require-lang": ON,
41
- // "@html-eslint/require-meta-description": OFF /* @CONFLICT: breaks Svelte which leaves meta descriptions to route leaves */,
42
- // "@html-eslint/require-open-graph-protocol": OFF /* idk what this is, also it probably breaks Svelte */,
43
- // "@html-eslint/require-title": OFF /* @CONFLICT: breaks Svelte which leaves title to route leaves */,
44
- // #endregion
45
-
46
- // #region ACCESSIBILITY
47
- // DOC: https://html-eslint.org/docs/rules#accessibility
48
- "@html-eslint/no-abstract-roles": ON,
49
- "@html-eslint/no-accesskey-attrs": ON,
50
- "@html-eslint/no-aria-hidden-body": ON,
51
- "@html-eslint/no-aria-hidden-on-focusable": ON,
52
- "@html-eslint/no-empty-headings": ON,
53
- "@html-eslint/no-heading-inside-button": ON,
54
- "@html-eslint/no-invalid-role": ON,
55
- "@html-eslint/no-non-scalable-viewport": ON,
56
- "@html-eslint/no-positive-tabindex": ON,
57
- "@html-eslint/no-skip-heading-levels": ON,
58
- "@html-eslint/require-form-method": ON,
59
- "@html-eslint/require-frame-title": ON,
60
- "@html-eslint/require-img-alt": ON,
61
- "@html-eslint/require-input-label": ON,
62
- "@html-eslint/require-meta-viewport": ON,
63
- // #endregion
64
-
65
- // #region STYLE
66
- // DOC: https://html-eslint.org/docs/rules#style
67
- "@html-eslint/attrs-newline": [
68
- ON,
69
- {
70
- ifAttrsMoreThan: 0,
71
- // closeStyle: "newline" /* sameline | @default newline */,
72
- },
73
- ],
74
- "@html-eslint/element-newline": [
75
- ON,
76
- {
77
- skip: ["head"],
78
- inline: ["$inline"],
79
- },
80
- ],
81
- // "@html-eslint/id-naming-convention": OFF,
82
- "@html-eslint/indent": [
83
- ON,
84
- 2 /* tab | number | @default 4 */,
85
- // {
86
- // Attribute: 1 /* number | @default 1 */,
87
- // tagChildrenIndent: {
88
- // html: 0 /* number */,
89
- // } /* @default {} */,
90
- // },
91
- ] /* TBD: @CONFIGURE: indents for specific child tags: https://html-eslint.org/docs/rules/indent */,
92
- "@html-eslint/lowercase": ON,
93
- "@html-eslint/no-extra-spacing-attrs": [
94
- ON,
95
- {
96
- // enforceBeforeSelfClose: false /* @default false */,
97
- disallowMissing: true /* @default false */,
98
- disallowTabs: true /* @default false */,
99
- disallowInAssignment: true /* @default false */,
100
- },
101
- ],
102
- "@html-eslint/no-extra-spacing-text": ON,
103
- "@html-eslint/no-multiple-empty-lines": [
104
- ON,
105
- {
106
- max: 1 /* number | @default 2 */,
107
- },
108
- ],
109
- "@html-eslint/no-trailing-spaces": ON,
110
- "@html-eslint/quotes": ON,
111
- // "@html-eslint/sort-attrs": OFF,
112
- // #endregion
113
- } as const,
114
- };
1
+ import {
2
+ ID,
3
+ // OFF,
4
+ ON,
5
+ } from "../../_strings";
6
+
7
+ export const HtmlEnablePlugin = {
8
+ id: ID.Enable.Plugin.Plugin,
9
+ rules: {
10
+ // #region BEST PRACTICE
11
+ // DOC: https://html-eslint.org/docs/rules#best-practice
12
+ // "@html-eslint/max-element-depth": OFF /* @preference: simply do not care */,
13
+ "@html-eslint/no-duplicate-attrs": ON,
14
+ "@html-eslint/no-duplicate-class": ON,
15
+ "@html-eslint/no-duplicate-id": ON,
16
+ "@html-eslint/no-duplicate-in-head": ON,
17
+ "@html-eslint/no-ineffective-attrs": ON,
18
+ // "@html-eslint/no-inline-styles": OFF /* @CONFLICT: breaks Svelte app.html */,
19
+ "@html-eslint/no-invalid-entity": ON,
20
+ "@html-eslint/no-nested-interactive": ON,
21
+ "@html-eslint/no-obsolete-tags": ON,
22
+ // "@html-eslint/no-restricted-attr-values": OFF,
23
+ // "@html-eslint/no-restricted-attrs": OFF,
24
+ // "@html-eslint/no-script-style-type": OFF,
25
+ "@html-eslint/no-target-blank": ON,
26
+ // "@html-eslint/prefer-https": OFF /* @CONFLICT: not everything is https */,
27
+ // "@html-eslint/require-attrs": OFF,
28
+ "@html-eslint/require-button-type": ON,
29
+ "@html-eslint/require-closing-tags": ON,
30
+ "@html-eslint/require-doctype": ON,
31
+ // "@html-eslint/require-explicit-size": OFF /* preference, prefer using css */,
32
+ "@html-eslint/require-li-container": ON,
33
+ "@html-eslint/require-meta-charset": ON,
34
+ "@html-eslint/use-baseline": ON,
35
+ // #endregion
36
+
37
+ // #region SEO
38
+ // DOC: https://html-eslint.org/docs/rules#seo
39
+ "@html-eslint/no-multiple-h1": ON,
40
+ "@html-eslint/require-lang": ON,
41
+ // "@html-eslint/require-meta-description": OFF /* @CONFLICT: breaks Svelte which leaves meta descriptions to route leaves */,
42
+ // "@html-eslint/require-open-graph-protocol": OFF /* idk what this is, also it probably breaks Svelte */,
43
+ // "@html-eslint/require-title": OFF /* @CONFLICT: breaks Svelte which leaves title to route leaves */,
44
+ // #endregion
45
+
46
+ // #region ACCESSIBILITY
47
+ // DOC: https://html-eslint.org/docs/rules#accessibility
48
+ "@html-eslint/no-abstract-roles": ON,
49
+ "@html-eslint/no-accesskey-attrs": ON,
50
+ "@html-eslint/no-aria-hidden-body": ON,
51
+ "@html-eslint/no-aria-hidden-on-focusable": ON,
52
+ "@html-eslint/no-empty-headings": ON,
53
+ "@html-eslint/no-heading-inside-button": ON,
54
+ "@html-eslint/no-invalid-role": ON,
55
+ "@html-eslint/no-non-scalable-viewport": ON,
56
+ "@html-eslint/no-positive-tabindex": ON,
57
+ "@html-eslint/no-skip-heading-levels": ON,
58
+ "@html-eslint/require-form-method": ON,
59
+ "@html-eslint/require-frame-title": ON,
60
+ "@html-eslint/require-img-alt": ON,
61
+ "@html-eslint/require-input-label": ON,
62
+ "@html-eslint/require-meta-viewport": ON,
63
+ // #endregion
64
+
65
+ // #region STYLE
66
+ // DOC: https://html-eslint.org/docs/rules#style
67
+ "@html-eslint/attrs-newline": [
68
+ ON,
69
+ {
70
+ ifAttrsMoreThan: 0,
71
+ // closeStyle: "newline" /* sameline | @default newline */,
72
+ },
73
+ ],
74
+ "@html-eslint/element-newline": [
75
+ ON,
76
+ {
77
+ skip: ["head"],
78
+ inline: ["$inline"],
79
+ },
80
+ ],
81
+ // "@html-eslint/id-naming-convention": OFF,
82
+ "@html-eslint/indent": [
83
+ ON,
84
+ 2 /* tab | number | @default 4 */,
85
+ // {
86
+ // Attribute: 1 /* number | @default 1 */,
87
+ // tagChildrenIndent: {
88
+ // html: 0 /* number */,
89
+ // } /* @default {} */,
90
+ // },
91
+ ] /* TBD: @CONFIGURE: indents for specific child tags: https://html-eslint.org/docs/rules/indent */,
92
+ "@html-eslint/lowercase": ON,
93
+ "@html-eslint/no-extra-spacing-attrs": [
94
+ ON,
95
+ {
96
+ // enforceBeforeSelfClose: false /* @default false */,
97
+ disallowMissing: true /* @default false */,
98
+ disallowTabs: true /* @default false */,
99
+ disallowInAssignment: true /* @default false */,
100
+ },
101
+ ],
102
+ "@html-eslint/no-extra-spacing-text": ON,
103
+ "@html-eslint/no-multiple-empty-lines": [
104
+ ON,
105
+ {
106
+ max: 1 /* number | @default 2 */,
107
+ },
108
+ ],
109
+ "@html-eslint/no-trailing-spaces": ON,
110
+ "@html-eslint/quotes": ON,
111
+ // "@html-eslint/sort-attrs": OFF,
112
+ // #endregion
113
+ } as const,
114
+ };
@@ -1,27 +1,27 @@
1
- import eslint from "./enable";
2
- import stylistic from "./stylistic";
3
- import ts from "./ts";
4
- import mocha from "./mocha";
5
- import svelte from "./svelte";
6
- import html from "./html";
7
- import css from "./css";
8
- import json from "./json";
9
- import jsonc from "./jsonc";
10
- import jsoncc from "./jsoncc";
11
- import yml from "./yml";
12
-
13
- export const rules = {
14
- js: [
15
- eslint,
16
- stylistic,
17
- ],
18
- ts,
19
- mocha,
20
- svelte,
21
- html,
22
- css,
23
- json,
24
- jsonc,
25
- jsoncc,
26
- yml,
27
- };
1
+ import eslint from "./enable";
2
+ import stylistic from "./stylistic";
3
+ import ts from "./ts";
4
+ import mocha from "./mocha";
5
+ import svelte from "./svelte";
6
+ import html from "./html";
7
+ import css from "./css";
8
+ import json from "./json";
9
+ import jsonc from "./jsonc";
10
+ import jsoncc from "./jsoncc";
11
+ import yml from "./yml";
12
+
13
+ export const rules = {
14
+ js: [
15
+ eslint,
16
+ stylistic,
17
+ ],
18
+ ts,
19
+ mocha,
20
+ svelte,
21
+ html,
22
+ css,
23
+ json,
24
+ jsonc,
25
+ jsoncc,
26
+ yml,
27
+ };
@@ -1,18 +1,18 @@
1
- import {
2
- ID,
3
- // OFF,
4
- ON,
5
- } from "../_strings";
6
-
7
- export const JsonEnable = {
8
- id: ID.Enable.Enable,
9
- rules: {
10
- // DOC: https://github.com/eslint/json?tab=readme-ov-file#rules
11
- "json/no-duplicate-keys": ON /* replaces jsonc/no-dupe-keys */,
12
- // "json/no-empty-keys": OFF /* preference: I use empty keys or keys with only whitespace sometimes, as does `package-lock.json` per DOC: "jsonc/no-dupe-keys": ON /* ESLint: json/no-duplicate-keys */,
13
- "json/no-unsafe-values": ON,
14
- "json/no-unnormalized-keys": ON,
15
- // "json/sort-keys": OFF /* replaces jsonc/sort-keys BUT preference: I don't like sorting keys, it makes diffs harder to read, and I don't see the point of it in JSON */,
16
- "json/top-level-interop": ON,
17
- } as const,
18
- };
1
+ import {
2
+ ID,
3
+ // OFF,
4
+ ON,
5
+ } from "../_strings";
6
+
7
+ export const JsonEnable = {
8
+ id: ID.Enable.Enable,
9
+ rules: {
10
+ // DOC: https://github.com/eslint/json?tab=readme-ov-file#rules
11
+ "json/no-duplicate-keys": ON /* replaces jsonc/no-dupe-keys */,
12
+ // "json/no-empty-keys": OFF /* preference: I use empty keys or keys with only whitespace sometimes, as does `package-lock.json` per DOC: "jsonc/no-dupe-keys": ON /* ESLint: json/no-duplicate-keys */,
13
+ "json/no-unsafe-values": ON,
14
+ "json/no-unnormalized-keys": ON,
15
+ // "json/sort-keys": OFF /* replaces jsonc/sort-keys BUT preference: I don't like sorting keys, it makes diffs harder to read, and I don't see the point of it in JSON */,
16
+ "json/top-level-interop": ON,
17
+ } as const,
18
+ };
@@ -1,9 +1,9 @@
1
- import { JsonEnable } from "./enable";
2
- import { JsonEnablePlugin } from "./plugin";
3
- import { JsonEnablePluginExtension } from "./plugin/extension";
4
-
5
- export default [
6
- JsonEnable,
7
- JsonEnablePlugin,
8
- JsonEnablePluginExtension,
9
- ];
1
+ import { JsonEnable } from "./enable";
2
+ import { JsonEnablePlugin } from "./plugin";
3
+ import { JsonEnablePluginExtension } from "./plugin/extension";
4
+
5
+ export default [
6
+ JsonEnable,
7
+ JsonEnablePlugin,
8
+ JsonEnablePluginExtension,
9
+ ];
@@ -1,60 +1,60 @@
1
- import {
2
- ID,
3
- // OFF,
4
- ON,
5
- always,
6
- consistent,
7
- } from "../../_strings";
8
-
9
- export const JsonEnablePluginExtension = {
10
- id: ID.Enable.Plugin.Extension,
11
- rules: {
12
- // DOC: https://ota-meshi.github.io/eslint-plugin-jsonc/rules/#extension-rules
13
- // "jsonc/array-bracket-newline": OFF /* @OVERRIDE: BIGGER BUG: i mean this basically just doesn't work, even with multiple lines it will still fail| BUG: the spec says: `requires line breaks if the number of elements is at least the given integer. If this is 0, this condition will act the same as the option "always". If this is null (the default), this condition is disabled`. However, when null, the jsonc plugin actually errors when there are linebreaks with a single item | (was: MUST match @stylistic/array-bracket-newline) */,
14
- "jsonc/array-bracket-spacing": ON /* MUST match @stylistic/array-bracket-spacing */,
15
- "jsonc/array-element-newline": [
16
- ON,
17
- consistent,
18
- ] /* WOULD match @stylistic/array-element-newline, but jsonc plugin has slightly different options */,
19
- "jsonc/comma-dangle": ON /* trailing commas are NOT allowed in JSON */,
20
- "jsonc/comma-style": ON,
21
- "jsonc/indent": [
22
- ON,
23
- 2,
24
- ],
25
- "jsonc/key-spacing": ON /* MUST match @stylistic/key-spacing */,
26
- // "jsonc/no-dupe-keys": OFF /* ESLint: json/no-duplicate-keys */,
27
- "jsonc/no-floating-decimal": ON,
28
- "jsonc/no-irregular-whitespace": [
29
- ON,
30
- {
31
- skipStrings: true,
32
- skipComments: true,
33
- skipRegExps: true,
34
- skipTemplates: true,
35
- skipJSXText: true,
36
- },
37
- ],
38
- "jsonc/no-multi-str": ON,
39
- "jsonc/no-octal-escape": ON,
40
- "jsonc/no-octal": ON,
41
- "jsonc/no-sparse-arrays": ON,
42
- "jsonc/no-useless-escape": ON,
43
- "jsonc/object-curly-newline": [
44
- ON,
45
- {
46
- consistent: true,
47
- multiline: true,
48
- minProperties: 2 /* instead of 3 in stylistic */,
49
- },
50
- ] /* @OVERRIDE @stylistic/object-curly-newline */,
51
- "jsonc/object-curly-spacing": [
52
- ON,
53
- always,
54
- ] /* MUST match @stylistic/object-curly-spacing */,
55
- "jsonc/object-property-newline": ON /* MUST match @stylistic/object-property-newline */,
56
- "jsonc/quote-props": ON,
57
- "jsonc/quotes": ON,
58
- "jsonc/space-unary-ops": ON,
59
- } as const,
60
- };
1
+ import {
2
+ ID,
3
+ // OFF,
4
+ ON,
5
+ always,
6
+ consistent,
7
+ } from "../../_strings";
8
+
9
+ export const JsonEnablePluginExtension = {
10
+ id: ID.Enable.Plugin.Extension,
11
+ rules: {
12
+ // DOC: https://ota-meshi.github.io/eslint-plugin-jsonc/rules/#extension-rules
13
+ // "jsonc/array-bracket-newline": OFF /* @OVERRIDE: BIGGER BUG: i mean this basically just doesn't work, even with multiple lines it will still fail| BUG: the spec says: `requires line breaks if the number of elements is at least the given integer. If this is 0, this condition will act the same as the option "always". If this is null (the default), this condition is disabled`. However, when null, the jsonc plugin actually errors when there are linebreaks with a single item | (was: MUST match @stylistic/array-bracket-newline) */,
14
+ "jsonc/array-bracket-spacing": ON /* MUST match @stylistic/array-bracket-spacing */,
15
+ "jsonc/array-element-newline": [
16
+ ON,
17
+ consistent,
18
+ ] /* WOULD match @stylistic/array-element-newline, but jsonc plugin has slightly different options */,
19
+ "jsonc/comma-dangle": ON /* trailing commas are NOT allowed in JSON */,
20
+ "jsonc/comma-style": ON,
21
+ "jsonc/indent": [
22
+ ON,
23
+ 2,
24
+ ],
25
+ "jsonc/key-spacing": ON /* MUST match @stylistic/key-spacing */,
26
+ // "jsonc/no-dupe-keys": OFF /* ESLint: json/no-duplicate-keys */,
27
+ "jsonc/no-floating-decimal": ON,
28
+ "jsonc/no-irregular-whitespace": [
29
+ ON,
30
+ {
31
+ skipStrings: true,
32
+ skipComments: true,
33
+ skipRegExps: true,
34
+ skipTemplates: true,
35
+ skipJSXText: true,
36
+ },
37
+ ],
38
+ "jsonc/no-multi-str": ON,
39
+ "jsonc/no-octal-escape": ON,
40
+ "jsonc/no-octal": ON,
41
+ "jsonc/no-sparse-arrays": ON,
42
+ "jsonc/no-useless-escape": ON,
43
+ "jsonc/object-curly-newline": [
44
+ ON,
45
+ {
46
+ consistent: true,
47
+ multiline: true,
48
+ minProperties: 2 /* instead of 3 in stylistic */,
49
+ },
50
+ ] /* @OVERRIDE @stylistic/object-curly-newline */,
51
+ "jsonc/object-curly-spacing": [
52
+ ON,
53
+ always,
54
+ ] /* MUST match @stylistic/object-curly-spacing */,
55
+ "jsonc/object-property-newline": ON /* MUST match @stylistic/object-property-newline */,
56
+ "jsonc/quote-props": ON,
57
+ "jsonc/quotes": ON,
58
+ "jsonc/space-unary-ops": ON,
59
+ } as const,
60
+ };
@@ -1,35 +1,35 @@
1
- import {
2
- ID,
3
- // OFF,
4
- ON,
5
- } from "../../_strings";
6
-
7
- export const JsonEnablePlugin = {
8
- id: ID.Enable.Plugin.Plugin,
9
- rules: {
10
- // DOC: https://ota-meshi.github.io/eslint-plugin-jsonc/rules/#jsonc-rules
11
- // "jsonc/auto": OFF,
12
- // "jsonc/key-name-casing": OFF,
13
- "jsonc/no-bigint-literals": ON,
14
- "jsonc/no-binary-expression": ON,
15
- "jsonc/no-binary-numeric-literals": ON,
16
- "jsonc/no-comments": ON /* comments are NOT allowed in JSON */,
17
- "jsonc/no-escape-sequence-in-identifier": ON,
18
- "jsonc/no-hexadecimal-numeric-literals": ON,
19
- "jsonc/no-infinity": ON,
20
- "jsonc/no-nan": ON,
21
- "jsonc/no-number-props": ON,
22
- "jsonc/no-numeric-separators": ON,
23
- "jsonc/no-octal-numeric-literals": ON,
24
- "jsonc/no-parenthesized": ON,
25
- "jsonc/no-plus-sign": ON,
26
- "jsonc/no-regexp-literals": ON,
27
- "jsonc/no-template-literals": ON,
28
- "jsonc/no-undefined-value": ON,
29
- "jsonc/no-unicode-codepoint-escapes": ON,
30
- // "jsonc/sort-array-values": OFF /* preference: this makes no sense, arrays can be ordered */,
31
- // "jsonc/sort-keys": OFF /* ESLint: json/sort-keys BUT preference: only sort keys manually when I'd like */,
32
- "jsonc/valid-json-number": ON,
33
- "jsonc/vue-custom-block/no-parsing-error": ON,
34
- } as const,
35
- };
1
+ import {
2
+ ID,
3
+ // OFF,
4
+ ON,
5
+ } from "../../_strings";
6
+
7
+ export const JsonEnablePlugin = {
8
+ id: ID.Enable.Plugin.Plugin,
9
+ rules: {
10
+ // DOC: https://ota-meshi.github.io/eslint-plugin-jsonc/rules/#jsonc-rules
11
+ // "jsonc/auto": OFF,
12
+ // "jsonc/key-name-casing": OFF,
13
+ "jsonc/no-bigint-literals": ON,
14
+ "jsonc/no-binary-expression": ON,
15
+ "jsonc/no-binary-numeric-literals": ON,
16
+ "jsonc/no-comments": ON /* comments are NOT allowed in JSON */,
17
+ "jsonc/no-escape-sequence-in-identifier": ON,
18
+ "jsonc/no-hexadecimal-numeric-literals": ON,
19
+ "jsonc/no-infinity": ON,
20
+ "jsonc/no-nan": ON,
21
+ "jsonc/no-number-props": ON,
22
+ "jsonc/no-numeric-separators": ON,
23
+ "jsonc/no-octal-numeric-literals": ON,
24
+ "jsonc/no-parenthesized": ON,
25
+ "jsonc/no-plus-sign": ON,
26
+ "jsonc/no-regexp-literals": ON,
27
+ "jsonc/no-template-literals": ON,
28
+ "jsonc/no-undefined-value": ON,
29
+ "jsonc/no-unicode-codepoint-escapes": ON,
30
+ // "jsonc/sort-array-values": OFF /* preference: this makes no sense, arrays can be ordered */,
31
+ // "jsonc/sort-keys": OFF /* ESLint: json/sort-keys BUT preference: only sort keys manually when I'd like */,
32
+ "jsonc/valid-json-number": ON,
33
+ "jsonc/vue-custom-block/no-parsing-error": ON,
34
+ } as const,
35
+ };
@@ -1,3 +1,3 @@
1
- import { JsoncPluginDisable } from "./plugin";
2
-
3
- export default [JsoncPluginDisable];
1
+ import { JsoncPluginDisable } from "./plugin";
2
+
3
+ export default [JsoncPluginDisable];
@@ -1,12 +1,12 @@
1
- import {
2
- ID,
3
- OFF,
4
- } from "../../_strings";
5
-
6
- export const JsoncPluginDisable = {
7
- id: ID.Disable.Plugin.Plugin,
8
- rules: {
9
- // DOC: https://ota-meshi.github.io/eslint-plugin-jsonc/rules/#jsonc-rules
10
- "jsonc/no-comments": OFF /* comments ARE allowed in JSONC */,
11
- } as const,
12
- };
1
+ import {
2
+ ID,
3
+ OFF,
4
+ } from "../../_strings";
5
+
6
+ export const JsoncPluginDisable = {
7
+ id: ID.Disable.Plugin.Plugin,
8
+ rules: {
9
+ // DOC: https://ota-meshi.github.io/eslint-plugin-jsonc/rules/#jsonc-rules
10
+ "jsonc/no-comments": OFF /* comments ARE allowed in JSONC */,
11
+ } as const,
12
+ };
@@ -1,3 +1,3 @@
1
- import { JsoncCommaPluginDisable } from "./plugin";
2
-
3
- export default [JsoncCommaPluginDisable];
1
+ import { JsoncCommaPluginDisable } from "./plugin";
2
+
3
+ export default [JsoncCommaPluginDisable];
@@ -1,16 +1,16 @@
1
- import {
2
- ID,
3
- ON,
4
- always_multiline,
5
- } from "../../_strings";
6
-
7
- export const JsoncCommaPluginDisable = {
8
- id: ID.Disable.Plugin.Plugin,
9
- rules: {
10
- // DOC: https://ota-meshi.github.io/eslint-plugin-jsonc/rules/#jsonc-rules
11
- "jsonc/comma-dangle": [
12
- ON,
13
- always_multiline,
14
- ] /* trailing commas ARE allowed in JSONC */,
15
- } as const,
16
- };
1
+ import {
2
+ ID,
3
+ ON,
4
+ always_multiline,
5
+ } from "../../_strings";
6
+
7
+ export const JsoncCommaPluginDisable = {
8
+ id: ID.Disable.Plugin.Plugin,
9
+ rules: {
10
+ // DOC: https://ota-meshi.github.io/eslint-plugin-jsonc/rules/#jsonc-rules
11
+ "jsonc/comma-dangle": [
12
+ ON,
13
+ always_multiline,
14
+ ] /* trailing commas ARE allowed in JSONC */,
15
+ } as const,
16
+ };
@@ -1,16 +1,16 @@
1
- import {
2
- ID,
3
- // OFF,
4
- ON,
5
- } from "../../_strings";
6
-
7
- export const MochaEnablePluginChaiExpect = {
8
- id: `${ID.Enable.Plugin.Plugin}/chai/expect`,
9
- rules: {
10
- // DOC: https://github.com/turbo87/eslint-plugin-chai-expect?tab=readme-ov-file#rules
11
- "chai-expect/no-inner-compare": ON,
12
- "chai-expect/no-inner-literal": ON,
13
- "chai-expect/missing-assertion": ON,
14
- // "chai-expect/terminating-properties": OFF,
15
- } as const,
16
- };
1
+ import {
2
+ ID,
3
+ // OFF,
4
+ ON,
5
+ } from "../../_strings";
6
+
7
+ export const MochaEnablePluginChaiExpect = {
8
+ id: `${ID.Enable.Plugin.Plugin}/chai/expect`,
9
+ rules: {
10
+ // DOC: https://github.com/turbo87/eslint-plugin-chai-expect?tab=readme-ov-file#rules
11
+ "chai-expect/no-inner-compare": ON,
12
+ "chai-expect/no-inner-literal": ON,
13
+ "chai-expect/missing-assertion": ON,
14
+ // "chai-expect/terminating-properties": OFF,
15
+ } as const,
16
+ };