eslint-plugin-yml 1.10.0 → 1.12.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/lib/meta.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  export declare const name: "eslint-plugin-yml";
2
- export declare const version: "1.10.0";
2
+ export declare const version: "1.12.0";
package/lib/meta.js CHANGED
@@ -2,4 +2,4 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.version = exports.name = void 0;
4
4
  exports.name = "eslint-plugin-yml";
5
- exports.version = "1.10.0";
5
+ exports.version = "1.12.0";
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const utils_1 = require("../utils");
4
4
  const compat_1 = require("../utils/compat");
5
- const coreRule = (0, utils_1.getCoreRule)("object-curly-spacing");
5
+ const ast_utils_1 = require("../utils/ast-utils");
6
6
  exports.default = (0, utils_1.createRule)("flow-mapping-curly-spacing", {
7
7
  meta: {
8
8
  docs: {
@@ -11,33 +11,181 @@ exports.default = (0, utils_1.createRule)("flow-mapping-curly-spacing", {
11
11
  extensionRule: "object-curly-spacing",
12
12
  layout: true,
13
13
  },
14
- fixable: coreRule.meta.fixable,
15
- hasSuggestions: coreRule.meta.hasSuggestions,
16
- schema: coreRule.meta.schema,
17
- messages: coreRule.meta.messages,
18
- type: coreRule.meta.type,
14
+ type: "layout",
15
+ fixable: "whitespace",
16
+ schema: [
17
+ {
18
+ type: "string",
19
+ enum: ["always", "never"],
20
+ },
21
+ {
22
+ type: "object",
23
+ properties: {
24
+ arraysInObjects: {
25
+ type: "boolean",
26
+ },
27
+ objectsInObjects: {
28
+ type: "boolean",
29
+ },
30
+ },
31
+ additionalProperties: false,
32
+ },
33
+ ],
34
+ messages: {
35
+ requireSpaceBefore: "A space is required before '{{token}}'.",
36
+ requireSpaceAfter: "A space is required after '{{token}}'.",
37
+ unexpectedSpaceBefore: "There should be no space before '{{token}}'.",
38
+ unexpectedSpaceAfter: "There should be no space after '{{token}}'.",
39
+ },
19
40
  },
20
41
  create(context) {
21
42
  const sourceCode = (0, compat_1.getSourceCode)(context);
22
43
  if (!sourceCode.parserServices.isYAML) {
23
44
  return {};
24
45
  }
25
- return (0, utils_1.defineWrapperListener)(coreRule, context, {
26
- options: context.options,
27
- createListenerProxy(listener) {
28
- return {
29
- YAMLMapping(node) {
30
- if (node.style === "flow") {
31
- listener.ObjectExpression((0, utils_1.getProxyNode)(node, {
32
- type: "ObjectExpression",
33
- get properties() {
34
- return node.pairs;
35
- },
36
- }));
37
- }
38
- },
39
- };
46
+ const spaced = context.options[0] === "always";
47
+ function isOptionSet(option) {
48
+ return context.options[1]
49
+ ? context.options[1][option] === !spaced
50
+ : false;
51
+ }
52
+ const options = {
53
+ spaced,
54
+ arraysInObjectsException: isOptionSet("arraysInObjects"),
55
+ objectsInObjectsException: isOptionSet("objectsInObjects"),
56
+ isOpeningCurlyBraceMustBeSpaced(second) {
57
+ var _a;
58
+ const targetPenultimateType = options.arraysInObjectsException && (0, ast_utils_1.isOpeningBracketToken)(second)
59
+ ? "YAMLSequence"
60
+ : options.objectsInObjectsException && (0, ast_utils_1.isOpeningBraceToken)(second)
61
+ ? "YAMLMapping"
62
+ : null;
63
+ return targetPenultimateType &&
64
+ ((_a = sourceCode.getNodeByRangeIndex(second.range[0])) === null || _a === void 0 ? void 0 : _a.type) ===
65
+ targetPenultimateType
66
+ ? !options.spaced
67
+ : options.spaced;
68
+ },
69
+ isClosingCurlyBraceMustBeSpaced(penultimate) {
70
+ var _a;
71
+ const targetPenultimateType = options.arraysInObjectsException && (0, ast_utils_1.isClosingBracketToken)(penultimate)
72
+ ? "YAMLSequence"
73
+ : options.objectsInObjectsException &&
74
+ (0, ast_utils_1.isClosingBraceToken)(penultimate)
75
+ ? "YAMLMapping"
76
+ : null;
77
+ return targetPenultimateType &&
78
+ ((_a = sourceCode.getNodeByRangeIndex(penultimate.range[0])) === null || _a === void 0 ? void 0 : _a.type) ===
79
+ targetPenultimateType
80
+ ? !options.spaced
81
+ : options.spaced;
82
+ },
83
+ };
84
+ function reportNoBeginningSpace(node, token) {
85
+ const nextToken = sourceCode.getTokenAfter(token, {
86
+ includeComments: true,
87
+ });
88
+ context.report({
89
+ node,
90
+ loc: { start: token.loc.end, end: nextToken.loc.start },
91
+ messageId: "unexpectedSpaceAfter",
92
+ data: {
93
+ token: token.value,
94
+ },
95
+ fix(fixer) {
96
+ return fixer.removeRange([token.range[1], nextToken.range[0]]);
97
+ },
98
+ });
99
+ }
100
+ function reportNoEndingSpace(node, token) {
101
+ const previousToken = sourceCode.getTokenBefore(token, {
102
+ includeComments: true,
103
+ });
104
+ context.report({
105
+ node,
106
+ loc: { start: previousToken.loc.end, end: token.loc.start },
107
+ messageId: "unexpectedSpaceBefore",
108
+ data: {
109
+ token: token.value,
110
+ },
111
+ fix(fixer) {
112
+ return fixer.removeRange([previousToken.range[1], token.range[0]]);
113
+ },
114
+ });
115
+ }
116
+ function reportRequiredBeginningSpace(node, token) {
117
+ context.report({
118
+ node,
119
+ loc: token.loc,
120
+ messageId: "requireSpaceAfter",
121
+ data: {
122
+ token: token.value,
123
+ },
124
+ fix(fixer) {
125
+ return fixer.insertTextAfter(token, " ");
126
+ },
127
+ });
128
+ }
129
+ function reportRequiredEndingSpace(node, token) {
130
+ context.report({
131
+ node,
132
+ loc: token.loc,
133
+ messageId: "requireSpaceBefore",
134
+ data: {
135
+ token: token.value,
136
+ },
137
+ fix(fixer) {
138
+ return fixer.insertTextBefore(token, " ");
139
+ },
140
+ });
141
+ }
142
+ function validateBraceSpacing(node, first, second, penultimate, last) {
143
+ if ((0, ast_utils_1.isTokenOnSameLine)(first, second)) {
144
+ const firstSpaced = sourceCode.isSpaceBetweenTokens(first, second);
145
+ if (options.isOpeningCurlyBraceMustBeSpaced(second)) {
146
+ if (!firstSpaced)
147
+ reportRequiredBeginningSpace(node, first);
148
+ }
149
+ else {
150
+ if (firstSpaced && second.type !== "Line")
151
+ reportNoBeginningSpace(node, first);
152
+ }
153
+ }
154
+ if ((0, ast_utils_1.isTokenOnSameLine)(penultimate, last)) {
155
+ const lastSpaced = sourceCode.isSpaceBetweenTokens(penultimate, last);
156
+ if (options.isClosingCurlyBraceMustBeSpaced(penultimate)) {
157
+ if (!lastSpaced)
158
+ reportRequiredEndingSpace(node, last);
159
+ }
160
+ else {
161
+ if (lastSpaced)
162
+ reportNoEndingSpace(node, last);
163
+ }
164
+ }
165
+ }
166
+ function getClosingBraceOfObject(node) {
167
+ const lastProperty = node.pairs[node.pairs.length - 1];
168
+ return sourceCode.getTokenAfter(lastProperty, ast_utils_1.isClosingBraceToken);
169
+ }
170
+ function checkForObject(node) {
171
+ if (node.pairs.length === 0)
172
+ return;
173
+ const first = sourceCode.getFirstToken(node);
174
+ const last = getClosingBraceOfObject(node);
175
+ const second = sourceCode.getTokenAfter(first, {
176
+ includeComments: true,
177
+ });
178
+ const penultimate = sourceCode.getTokenBefore(last, {
179
+ includeComments: true,
180
+ });
181
+ validateBraceSpacing(node, first, second, penultimate, last);
182
+ }
183
+ return {
184
+ YAMLMapping(node) {
185
+ if (node.style === "flow") {
186
+ checkForObject(node);
187
+ }
40
188
  },
41
- });
189
+ };
42
190
  },
43
191
  });
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const utils_1 = require("../utils");
4
4
  const compat_1 = require("../utils/compat");
5
- const coreRule = (0, utils_1.getCoreRule)("array-bracket-spacing");
5
+ const ast_utils_1 = require("../utils/ast-utils");
6
6
  exports.default = (0, utils_1.createRule)("flow-sequence-bracket-spacing", {
7
7
  meta: {
8
8
  docs: {
@@ -11,33 +11,173 @@ exports.default = (0, utils_1.createRule)("flow-sequence-bracket-spacing", {
11
11
  extensionRule: "array-bracket-spacing",
12
12
  layout: true,
13
13
  },
14
- fixable: coreRule.meta.fixable,
15
- hasSuggestions: coreRule.meta.hasSuggestions,
16
- schema: coreRule.meta.schema,
17
- messages: coreRule.meta.messages,
18
- type: coreRule.meta.type,
14
+ type: "layout",
15
+ fixable: "whitespace",
16
+ schema: [
17
+ {
18
+ type: "string",
19
+ enum: ["always", "never"],
20
+ },
21
+ {
22
+ type: "object",
23
+ properties: {
24
+ singleValue: {
25
+ type: "boolean",
26
+ },
27
+ objectsInArrays: {
28
+ type: "boolean",
29
+ },
30
+ arraysInArrays: {
31
+ type: "boolean",
32
+ },
33
+ },
34
+ additionalProperties: false,
35
+ },
36
+ ],
37
+ messages: {
38
+ unexpectedSpaceAfter: "There should be no space after '{{tokenValue}}'.",
39
+ unexpectedSpaceBefore: "There should be no space before '{{tokenValue}}'.",
40
+ missingSpaceAfter: "A space is required after '{{tokenValue}}'.",
41
+ missingSpaceBefore: "A space is required before '{{tokenValue}}'.",
42
+ },
19
43
  },
20
44
  create(context) {
21
45
  const sourceCode = (0, compat_1.getSourceCode)(context);
22
46
  if (!sourceCode.parserServices.isYAML) {
23
47
  return {};
24
48
  }
25
- return (0, utils_1.defineWrapperListener)(coreRule, context, {
26
- options: context.options,
27
- createListenerProxy(listener) {
28
- return {
29
- YAMLSequence(node) {
30
- if (node.style === "flow") {
31
- listener.ArrayExpression((0, utils_1.getProxyNode)(node, {
32
- type: "ArrayExpression",
33
- get elements() {
34
- return node.entries;
35
- },
36
- }));
37
- }
38
- },
39
- };
49
+ const spaced = context.options[0] === "always";
50
+ function isOptionSet(option) {
51
+ return context.options[1]
52
+ ? context.options[1][option] === !spaced
53
+ : false;
54
+ }
55
+ const options = {
56
+ spaced,
57
+ singleElementException: isOptionSet("singleValue"),
58
+ objectsInArraysException: isOptionSet("objectsInArrays"),
59
+ arraysInArraysException: isOptionSet("arraysInArrays"),
60
+ isOpeningBracketMustBeSpaced(node) {
61
+ if (options.singleElementException && node.entries.length === 1) {
62
+ return !options.spaced;
63
+ }
64
+ const firstElement = node.entries[0];
65
+ return firstElement &&
66
+ ((options.objectsInArraysException && isObjectType(firstElement)) ||
67
+ (options.arraysInArraysException && isArrayType(firstElement)))
68
+ ? !options.spaced
69
+ : options.spaced;
70
+ },
71
+ isClosingBracketMustBeSpaced(node) {
72
+ if (options.singleElementException && node.entries.length === 1) {
73
+ return !options.spaced;
74
+ }
75
+ const lastElement = node.entries[node.entries.length - 1];
76
+ return lastElement &&
77
+ ((options.objectsInArraysException && isObjectType(lastElement)) ||
78
+ (options.arraysInArraysException && isArrayType(lastElement)))
79
+ ? !options.spaced
80
+ : options.spaced;
81
+ },
82
+ };
83
+ function reportNoBeginningSpace(node, token) {
84
+ const nextToken = sourceCode.getTokenAfter(token);
85
+ context.report({
86
+ node,
87
+ loc: { start: token.loc.end, end: nextToken.loc.start },
88
+ messageId: "unexpectedSpaceAfter",
89
+ data: {
90
+ tokenValue: token.value,
91
+ },
92
+ fix(fixer) {
93
+ return fixer.removeRange([token.range[1], nextToken.range[0]]);
94
+ },
95
+ });
96
+ }
97
+ function reportNoEndingSpace(node, token) {
98
+ const previousToken = sourceCode.getTokenBefore(token);
99
+ context.report({
100
+ node,
101
+ loc: { start: previousToken.loc.end, end: token.loc.start },
102
+ messageId: "unexpectedSpaceBefore",
103
+ data: {
104
+ tokenValue: token.value,
105
+ },
106
+ fix(fixer) {
107
+ return fixer.removeRange([previousToken.range[1], token.range[0]]);
108
+ },
109
+ });
110
+ }
111
+ function reportRequiredBeginningSpace(node, token) {
112
+ context.report({
113
+ node,
114
+ loc: token.loc,
115
+ messageId: "missingSpaceAfter",
116
+ data: {
117
+ tokenValue: token.value,
118
+ },
119
+ fix(fixer) {
120
+ return fixer.insertTextAfter(token, " ");
121
+ },
122
+ });
123
+ }
124
+ function reportRequiredEndingSpace(node, token) {
125
+ context.report({
126
+ node,
127
+ loc: token.loc,
128
+ messageId: "missingSpaceBefore",
129
+ data: {
130
+ tokenValue: token.value,
131
+ },
132
+ fix(fixer) {
133
+ return fixer.insertTextBefore(token, " ");
134
+ },
135
+ });
136
+ }
137
+ function isObjectType(node) {
138
+ return node && node.type === "YAMLMapping";
139
+ }
140
+ function isArrayType(node) {
141
+ return node && node.type === "YAMLSequence";
142
+ }
143
+ function validateArraySpacing(node) {
144
+ if (options.spaced && node.entries.length === 0)
145
+ return;
146
+ const first = sourceCode.getFirstToken(node);
147
+ const last = sourceCode.getLastToken(node);
148
+ const second = sourceCode.getTokenAfter(first, {
149
+ includeComments: true,
150
+ });
151
+ const penultimate = sourceCode.getTokenBefore(last, {
152
+ includeComments: true,
153
+ });
154
+ if ((0, ast_utils_1.isTokenOnSameLine)(first, second)) {
155
+ if (options.isOpeningBracketMustBeSpaced(node)) {
156
+ if (!sourceCode.isSpaceBetweenTokens(first, second))
157
+ reportRequiredBeginningSpace(node, first);
158
+ }
159
+ else {
160
+ if (sourceCode.isSpaceBetweenTokens(first, second))
161
+ reportNoBeginningSpace(node, first);
162
+ }
163
+ }
164
+ if (first !== penultimate && (0, ast_utils_1.isTokenOnSameLine)(penultimate, last)) {
165
+ if (options.isClosingBracketMustBeSpaced(node)) {
166
+ if (!sourceCode.isSpaceBetweenTokens(penultimate, last))
167
+ reportRequiredEndingSpace(node, last);
168
+ }
169
+ else {
170
+ if (sourceCode.isSpaceBetweenTokens(penultimate, last))
171
+ reportNoEndingSpace(node, last);
172
+ }
173
+ }
174
+ }
175
+ return {
176
+ YAMLSequence(node) {
177
+ if (node.style === "flow") {
178
+ validateArraySpacing(node);
179
+ }
40
180
  },
41
- });
181
+ };
42
182
  },
43
183
  });
@@ -1,8 +1,4 @@
1
1
  "use strict";
2
- var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
- if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
- return cooked;
5
- };
6
2
  Object.defineProperty(exports, "__esModule", { value: true });
7
3
  const yaml_eslint_parser_1 = require("yaml-eslint-parser");
8
4
  const utils_1 = require("../utils");
@@ -67,7 +63,7 @@ exports.default = (0, utils_1.createRule)("plain-scalar", {
67
63
  const option = context.options[0] || "always";
68
64
  const ignorePatterns = toRegExps((_b = (_a = context.options[1]) === null || _a === void 0 ? void 0 : _a.ignorePatterns) !== null && _b !== void 0 ? _b : (option === "always"
69
65
  ? [
70
- String.raw(templateObject_1 || (templateObject_1 = __makeTemplateObject(["[\v\f\u0085\u00A0\u1680\u180E\u2000-\u200B\u2028\u2029\u202F\u205F\u3000\uFEFF]"], ["[\\v\\f\\u0085\\u00a0\\u1680\\u180e\\u2000-\\u200b\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff]"]))),
66
+ String.raw `[\v\f\u0085\u00a0\u1680\u180e\u2000-\u200b\u2028\u2029\u202f\u205f\u3000\ufeff]`,
71
67
  ]
72
68
  : []));
73
69
  let currentDocument;
@@ -171,4 +167,3 @@ exports.default = (0, utils_1.createRule)("plain-scalar", {
171
167
  };
172
168
  },
173
169
  });
174
- var templateObject_1;
@@ -63,7 +63,7 @@ class YAMLMappingData {
63
63
  while (p) {
64
64
  if (p.type === "YAMLPair") {
65
65
  const name = getPropertyName(p, sourceCode);
66
- if (/^[$_a-z][\w$]*$/iu.test(name)) {
66
+ if (/^[$a-z_][\w$]*$/iu.test(name)) {
67
67
  path = `.${name}${path}`;
68
68
  }
69
69
  else {
@@ -181,7 +181,7 @@ function parseOptions(options, sourceCode) {
181
181
  while (p) {
182
182
  if (p.type === "YAMLPair") {
183
183
  const name = getPropertyName(p);
184
- if (/^[$_a-z][\w$]*$/iu.test(name)) {
184
+ if (/^[$a-z_][\w$]*$/iu.test(name)) {
185
185
  path = `.${name}${path}`;
186
186
  }
187
187
  else {
@@ -5,3 +5,7 @@ export declare function isQuestion(token: YAMLToken | null): token is YAMLToken;
5
5
  export declare function isHyphen(token: YAMLToken | null): token is YAMLToken;
6
6
  export declare function isColon(token: YAMLToken | null): token is YAMLToken;
7
7
  export declare function isComma(token: YAMLToken | null): token is YAMLToken;
8
+ export declare function isOpeningBracketToken(token: YAMLToken | null): token is YAMLToken;
9
+ export declare function isClosingBracketToken(token: YAMLToken | null): token is YAMLToken;
10
+ export declare function isOpeningBraceToken(token: YAMLToken | null): token is YAMLToken;
11
+ export declare function isClosingBraceToken(token: YAMLToken | null): token is YAMLToken;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isComma = exports.isColon = exports.isHyphen = exports.isQuestion = exports.isTokenOnSameLine = exports.isCommentToken = void 0;
3
+ exports.isClosingBraceToken = exports.isOpeningBraceToken = exports.isClosingBracketToken = exports.isOpeningBracketToken = exports.isComma = exports.isColon = exports.isHyphen = exports.isQuestion = exports.isTokenOnSameLine = exports.isCommentToken = void 0;
4
4
  function isCommentToken(token) {
5
5
  return Boolean(token && (token.type === "Block" || token.type === "Line"));
6
6
  }
@@ -25,3 +25,19 @@ function isComma(token) {
25
25
  return token != null && token.type === "Punctuator" && token.value === ",";
26
26
  }
27
27
  exports.isComma = isComma;
28
+ function isOpeningBracketToken(token) {
29
+ return token != null && token.value === "[" && token.type === "Punctuator";
30
+ }
31
+ exports.isOpeningBracketToken = isOpeningBracketToken;
32
+ function isClosingBracketToken(token) {
33
+ return token != null && token.value === "]" && token.type === "Punctuator";
34
+ }
35
+ exports.isClosingBracketToken = isClosingBracketToken;
36
+ function isOpeningBraceToken(token) {
37
+ return token != null && token.value === "{" && token.type === "Punctuator";
38
+ }
39
+ exports.isOpeningBraceToken = isOpeningBraceToken;
40
+ function isClosingBraceToken(token) {
41
+ return token != null && token.value === "}" && token.type === "Punctuator";
42
+ }
43
+ exports.isClosingBraceToken = isClosingBraceToken;
@@ -1,15 +1,2 @@
1
- import type { RuleListener, RuleModule, PartialRuleModule, RuleContext } from "../types";
2
- import type { Rule } from "eslint";
3
- import type { AST } from "yaml-eslint-parser";
1
+ import type { RuleModule, PartialRuleModule } from "../types";
4
2
  export declare function createRule(ruleName: string, rule: PartialRuleModule): RuleModule;
5
- type CoreRuleListener = {
6
- [key: string]: (node: any) => void;
7
- };
8
- export declare function defineWrapperListener(coreRule: Rule.RuleModule, context: RuleContext, proxyOptions: {
9
- options: any[];
10
- createListenerProxy?: (listener: CoreRuleListener) => RuleListener;
11
- }): RuleListener;
12
- export declare function getProxyNode(node: AST.YAMLNode, properties: any): any;
13
- export declare function isNode(data: any): boolean;
14
- export declare function getCoreRule(ruleName: string): Rule.RuleModule;
15
- export {};
@@ -26,12 +26,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.getCoreRule = exports.isNode = exports.getProxyNode = exports.defineWrapperListener = exports.createRule = void 0;
29
+ exports.createRule = void 0;
30
30
  const yamlESLintParser = __importStar(require("yaml-eslint-parser"));
31
- const debug_1 = __importDefault(require("debug"));
32
31
  const path_1 = __importDefault(require("path"));
33
32
  const compat_1 = require("./compat");
34
- const log = (0, debug_1.default)("eslint-plugin-yml:utils/index");
35
33
  function createRule(ruleName, rule) {
36
34
  return {
37
35
  meta: Object.assign(Object.assign({}, rule.meta), { docs: Object.assign(Object.assign({}, rule.meta.docs), { url: `https://ota-meshi.github.io/eslint-plugin-yml/rules/${ruleName}.html`, ruleId: `yml/${ruleName}`, ruleName }) }),
@@ -56,60 +54,3 @@ function createRule(ruleName, rule) {
56
54
  };
57
55
  }
58
56
  exports.createRule = createRule;
59
- function defineWrapperListener(coreRule, context, proxyOptions) {
60
- var _a, _b;
61
- const sourceCode = (0, compat_1.getSourceCode)(context);
62
- if (!sourceCode.parserServices.isYAML) {
63
- return {};
64
- }
65
- const listener = coreRule.create({
66
- __proto__: context,
67
- options: proxyOptions.options,
68
- });
69
- const yamlListener = (_b = (_a = proxyOptions.createListenerProxy) === null || _a === void 0 ? void 0 : _a.call(proxyOptions, listener)) !== null && _b !== void 0 ? _b : listener;
70
- return yamlListener;
71
- }
72
- exports.defineWrapperListener = defineWrapperListener;
73
- function getProxyNode(node, properties) {
74
- const safeKeys = new Set([
75
- "range",
76
- "typeAnnotation",
77
- ]);
78
- const cache = {};
79
- return new Proxy(node, {
80
- get(_t, key) {
81
- if (key in cache) {
82
- return cache[key];
83
- }
84
- if (key in properties) {
85
- return (cache[key] = properties[key]);
86
- }
87
- if (!safeKeys.has(key)) {
88
- log(`fallback: ${String(key)}`);
89
- }
90
- return node[key];
91
- },
92
- });
93
- }
94
- exports.getProxyNode = getProxyNode;
95
- function isNode(data) {
96
- return (data &&
97
- typeof data.type === "string" &&
98
- Array.isArray(data.range) &&
99
- data.range.length === 2 &&
100
- typeof data.range[0] === "number" &&
101
- typeof data.range[1] === "number");
102
- }
103
- exports.isNode = isNode;
104
- let ruleMap = null;
105
- function getCoreRule(ruleName) {
106
- let map;
107
- if (ruleMap) {
108
- map = ruleMap;
109
- }
110
- else {
111
- ruleMap = map = new (require("eslint").Linter)().getRules();
112
- }
113
- return map.get(ruleName);
114
- }
115
- exports.getCoreRule = getCoreRule;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eslint-plugin-yml",
3
- "version": "1.10.0",
3
+ "version": "1.12.0",
4
4
  "description": "This ESLint plugin provides linting rules for YAML.",
5
5
  "main": "lib/index.js",
6
6
  "files": [
@@ -57,7 +57,7 @@
57
57
  "homepage": "https://ota-meshi.github.io/eslint-plugin-yml/",
58
58
  "dependencies": {
59
59
  "debug": "^4.3.2",
60
- "eslint-compat-utils": "^0.1.0",
60
+ "eslint-compat-utils": "^0.2.1",
61
61
  "lodash": "^4.17.21",
62
62
  "natural-compare": "^1.4.0",
63
63
  "yaml-eslint-parser": "^1.2.1"
@@ -66,7 +66,7 @@
66
66
  "eslint": ">=6.0.0"
67
67
  },
68
68
  "devDependencies": {
69
- "@changesets/changelog-github": "^0.4.6",
69
+ "@changesets/changelog-github": "^0.5.0",
70
70
  "@changesets/cli": "^2.24.2",
71
71
  "@ota-meshi/eslint-plugin": "^0.15.0",
72
72
  "@ota-meshi/site-kit-eslint-editor-vue": "^0.1.2",
@@ -78,7 +78,7 @@
78
78
  "@types/lodash": "^4.14.158",
79
79
  "@types/mocha": "^10.0.0",
80
80
  "@types/natural-compare": "^1.4.0",
81
- "@types/node": "^18.0.0",
81
+ "@types/node": "^20.0.0",
82
82
  "@types/semver": "^7.3.1",
83
83
  "@typescript-eslint/eslint-plugin": "^6.0.0",
84
84
  "@typescript-eslint/parser": "^6.0.0",
@@ -90,30 +90,30 @@
90
90
  "eslint-config-prettier": "^9.0.0",
91
91
  "eslint-plugin-eslint-comments": "^3.2.0",
92
92
  "eslint-plugin-eslint-plugin": "^5.0.0",
93
- "eslint-plugin-json-schema-validator": "^4.0.0",
93
+ "eslint-plugin-json-schema-validator": "^4.7.4",
94
94
  "eslint-plugin-jsonc": "^2.0.0",
95
95
  "eslint-plugin-markdown": "^3.0.0",
96
96
  "eslint-plugin-n": "^16.0.1",
97
97
  "eslint-plugin-node-dependencies": "^0.11.0",
98
98
  "eslint-plugin-prettier": "^5.0.0",
99
- "eslint-plugin-regexp": "^1.0.0",
99
+ "eslint-plugin-regexp": "^2.0.0",
100
100
  "eslint-plugin-vue": "^9.0.0",
101
101
  "eslint-plugin-yml": "^1.0.0",
102
102
  "espree": "^9.0.0",
103
103
  "events": "^3.3.0",
104
104
  "mocha": "^10.0.0",
105
- "monaco-editor": "^0.44.0",
105
+ "monaco-editor": "^0.45.0",
106
106
  "nyc": "^15.1.0",
107
107
  "pako": "^2.1.0",
108
108
  "prettier": "^3.0.3",
109
109
  "semver": "^7.3.2",
110
- "stylelint": "^15.0.0",
110
+ "stylelint": "^16.0.0",
111
111
  "stylelint-config-recommended-vue": "^1.0.0",
112
- "stylelint-config-standard": "^34.0.0",
112
+ "stylelint-config-standard": "^36.0.0",
113
113
  "stylelint-config-standard-vue": "^1.0.0",
114
- "stylelint-stylus": "^0.18.0",
115
- "typescript": "~5.2.0",
116
- "vite-plugin-eslint4b": "^0.2.1",
114
+ "stylelint-stylus": "^1.0.0",
115
+ "typescript": "~5.3.0",
116
+ "vite-plugin-eslint4b": "^0.2.3",
117
117
  "vitepress": "^1.0.0-rc.17",
118
118
  "vue-eslint-parser": "^9.0.0",
119
119
  "yaml": "^2.1.1"