@graphql-eslint/eslint-plugin 4.0.0-alpha-20230801163310-8bc4340 → 4.0.0-alpha-20230810155929-e89edf7

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 (222) hide show
  1. package/README.md +2 -0
  2. package/cjs/cache.js +10 -19
  3. package/cjs/configs/index.d.ts +42 -16
  4. package/cjs/configs/index.js +10 -19
  5. package/cjs/configs/operations-all.d.ts +4 -3
  6. package/cjs/configs/operations-all.js +5 -4
  7. package/cjs/configs/operations-recommended.d.ts +3 -1
  8. package/cjs/configs/operations-recommended.js +3 -1
  9. package/cjs/configs/schema-all.d.ts +6 -1
  10. package/cjs/configs/schema-all.js +5 -2
  11. package/cjs/configs/schema-recommended.d.ts +19 -1
  12. package/cjs/configs/schema-recommended.js +22 -2
  13. package/cjs/documents.js +17 -32
  14. package/cjs/estree-converter/converter.js +14 -27
  15. package/cjs/estree-converter/index.js +4 -7
  16. package/cjs/estree-converter/types.js +3 -5
  17. package/cjs/estree-converter/utils.d.ts +2 -3
  18. package/cjs/estree-converter/utils.js +15 -45
  19. package/cjs/flat-configs.d.ts +59 -12
  20. package/cjs/flat-configs.js +9 -14
  21. package/cjs/graphql-config.d.ts +4 -3
  22. package/cjs/graphql-config.js +23 -44
  23. package/cjs/index.d.ts +10 -4
  24. package/cjs/index.js +8 -16
  25. package/cjs/parser.d.ts +4 -3
  26. package/cjs/parser.js +38 -45
  27. package/cjs/processor.d.ts +5 -1
  28. package/cjs/processor.js +25 -57
  29. package/cjs/rules/alphabetize.d.ts +6 -16
  30. package/cjs/rules/alphabetize.js +60 -132
  31. package/cjs/rules/description-style.d.ts +4 -3
  32. package/cjs/rules/description-style.js +11 -18
  33. package/cjs/rules/graphql-js-validation.d.ts +4 -3
  34. package/cjs/rules/graphql-js-validation.js +151 -225
  35. package/cjs/rules/index.d.ts +15 -13
  36. package/cjs/rules/index.js +8 -45
  37. package/cjs/rules/input-name.d.ts +4 -3
  38. package/cjs/rules/input-name.js +43 -59
  39. package/cjs/rules/lone-executable-definition.d.ts +6 -5
  40. package/cjs/rules/lone-executable-definition.js +14 -28
  41. package/cjs/rules/match-document-filename.d.ts +4 -3
  42. package/cjs/rules/match-document-filename.js +39 -70
  43. package/cjs/rules/naming-convention.d.ts +4 -3
  44. package/cjs/rules/naming-convention.js +56 -74
  45. package/cjs/rules/no-anonymous-operations.d.ts +4 -3
  46. package/cjs/rules/no-anonymous-operations.js +11 -18
  47. package/cjs/rules/no-deprecated.d.ts +4 -3
  48. package/cjs/rules/no-deprecated.js +15 -29
  49. package/cjs/rules/no-duplicate-fields.d.ts +4 -3
  50. package/cjs/rules/no-duplicate-fields.js +13 -23
  51. package/cjs/rules/no-hashtag-description.d.ts +4 -3
  52. package/cjs/rules/no-hashtag-description.js +16 -29
  53. package/cjs/rules/no-one-place-fragments.d.ts +4 -3
  54. package/cjs/rules/no-one-place-fragments.js +17 -29
  55. package/cjs/rules/no-root-type.d.ts +4 -3
  56. package/cjs/rules/no-root-type.js +15 -25
  57. package/cjs/rules/no-scalar-result-type-on-mutation.d.ts +4 -3
  58. package/cjs/rules/no-scalar-result-type-on-mutation.js +18 -30
  59. package/cjs/rules/no-typename-prefix.d.ts +4 -3
  60. package/cjs/rules/no-typename-prefix.js +26 -33
  61. package/cjs/rules/no-unreachable-types.d.ts +4 -3
  62. package/cjs/rules/no-unreachable-types.js +25 -47
  63. package/cjs/rules/no-unused-fields.d.ts +4 -3
  64. package/cjs/rules/no-unused-fields.js +24 -49
  65. package/cjs/rules/relay-arguments.d.ts +4 -3
  66. package/cjs/rules/relay-arguments.js +20 -43
  67. package/cjs/rules/relay-connection-types.d.ts +4 -3
  68. package/cjs/rules/relay-connection-types.js +14 -45
  69. package/cjs/rules/relay-edge-types.d.ts +4 -3
  70. package/cjs/rules/relay-edge-types.js +48 -99
  71. package/cjs/rules/relay-page-info.d.ts +4 -3
  72. package/cjs/rules/relay-page-info.js +21 -44
  73. package/cjs/rules/require-deprecation-date.d.ts +4 -3
  74. package/cjs/rules/require-deprecation-date.js +15 -31
  75. package/cjs/rules/require-deprecation-reason.d.ts +4 -3
  76. package/cjs/rules/require-deprecation-reason.js +12 -20
  77. package/cjs/rules/require-description.d.ts +4 -3
  78. package/cjs/rules/require-description.js +39 -65
  79. package/cjs/rules/require-field-of-type-query-in-mutation-result.d.ts +4 -3
  80. package/cjs/rules/require-field-of-type-query-in-mutation-result.js +16 -31
  81. package/cjs/rules/require-import-fragment.d.ts +4 -3
  82. package/cjs/rules/require-import-fragment.js +22 -40
  83. package/cjs/rules/require-nullable-fields-with-oneof.d.ts +4 -3
  84. package/cjs/rules/require-nullable-fields-with-oneof.js +11 -22
  85. package/cjs/rules/require-nullable-result-in-root.d.ts +4 -3
  86. package/cjs/rules/require-nullable-result-in-root.js +34 -44
  87. package/cjs/rules/{require-id-when-available.d.ts → require-selections.d.ts} +4 -3
  88. package/cjs/rules/require-selections.js +198 -0
  89. package/cjs/rules/require-type-pattern-with-oneof.d.ts +4 -3
  90. package/cjs/rules/require-type-pattern-with-oneof.js +15 -23
  91. package/cjs/rules/selection-set-depth.d.ts +4 -3
  92. package/cjs/rules/selection-set-depth.js +18 -34
  93. package/cjs/rules/strict-id-in-types.d.ts +4 -3
  94. package/cjs/rules/strict-id-in-types.js +25 -43
  95. package/cjs/rules/{no-case-insensitive-enum-values-duplicates.d.ts → unique-enum-value-names.d.ts} +4 -3
  96. package/cjs/rules/{no-case-insensitive-enum-values-duplicates.js → unique-enum-value-names.js} +16 -21
  97. package/cjs/rules/unique-fragment-name.d.ts +3 -2
  98. package/cjs/rules/unique-fragment-name.js +24 -36
  99. package/cjs/rules/unique-operation-name.d.ts +4 -3
  100. package/cjs/rules/unique-operation-name.js +10 -12
  101. package/cjs/schema.d.ts +4 -3
  102. package/cjs/schema.js +14 -27
  103. package/cjs/siblings.d.ts +24 -8
  104. package/cjs/siblings.js +42 -82
  105. package/cjs/types.d.ts +74 -7
  106. package/cjs/types.js +3 -5
  107. package/cjs/utils.d.ts +3 -2
  108. package/cjs/utils.js +27 -44
  109. package/esm/cache.js +4 -8
  110. package/esm/{chunk-BMTV3EA2.js → chunk-U3TKCM4X.js} +1 -1
  111. package/esm/configs/index.d.mts +42 -16
  112. package/esm/configs/index.js +4 -4
  113. package/esm/configs/operations-all.d.mts +4 -3
  114. package/esm/configs/operations-all.js +6 -5
  115. package/esm/configs/operations-recommended.d.mts +3 -1
  116. package/esm/configs/operations-recommended.js +4 -2
  117. package/esm/configs/schema-all.d.mts +6 -1
  118. package/esm/configs/schema-all.js +6 -3
  119. package/esm/configs/schema-recommended.d.mts +19 -1
  120. package/esm/configs/schema-recommended.js +23 -3
  121. package/esm/configs/{relay.js → schema-relay.js} +4 -4
  122. package/esm/documents.js +10 -17
  123. package/esm/estree-converter/converter.js +9 -18
  124. package/esm/estree-converter/utils.d.mts +2 -3
  125. package/esm/estree-converter/utils.js +11 -38
  126. package/esm/flat-configs.d.mts +59 -12
  127. package/esm/flat-configs.js +4 -5
  128. package/esm/graphql-config.d.mts +4 -3
  129. package/esm/graphql-config.js +18 -34
  130. package/esm/index.d.mts +10 -4
  131. package/esm/index.js +1 -1
  132. package/esm/parser.d.mts +4 -3
  133. package/esm/parser.js +33 -27
  134. package/esm/processor.d.mts +5 -1
  135. package/esm/processor.js +21 -46
  136. package/esm/rules/alphabetize.d.mts +6 -16
  137. package/esm/rules/alphabetize.js +53 -118
  138. package/esm/rules/description-style.d.mts +4 -3
  139. package/esm/rules/description-style.js +7 -11
  140. package/esm/rules/graphql-js-validation.d.mts +4 -3
  141. package/esm/rules/graphql-js-validation.js +178 -218
  142. package/esm/rules/index.d.mts +15 -13
  143. package/esm/rules/index.js +5 -5
  144. package/esm/rules/input-name.d.mts +4 -3
  145. package/esm/rules/input-name.js +39 -52
  146. package/esm/rules/lone-executable-definition.d.mts +6 -5
  147. package/esm/rules/lone-executable-definition.js +10 -20
  148. package/esm/rules/match-document-filename.d.mts +4 -3
  149. package/esm/rules/match-document-filename.js +35 -61
  150. package/esm/rules/naming-convention.d.mts +4 -3
  151. package/esm/rules/naming-convention.js +51 -65
  152. package/esm/rules/no-anonymous-operations.d.mts +4 -3
  153. package/esm/rules/no-anonymous-operations.js +6 -9
  154. package/esm/rules/no-deprecated.d.mts +4 -3
  155. package/esm/rules/no-deprecated.js +10 -20
  156. package/esm/rules/no-duplicate-fields.d.mts +4 -3
  157. package/esm/rules/no-duplicate-fields.js +9 -16
  158. package/esm/rules/no-hashtag-description.d.mts +4 -3
  159. package/esm/rules/no-hashtag-description.js +11 -20
  160. package/esm/rules/no-one-place-fragments.d.mts +4 -3
  161. package/esm/rules/no-one-place-fragments.js +12 -19
  162. package/esm/rules/no-root-type.d.mts +4 -3
  163. package/esm/rules/no-root-type.js +11 -18
  164. package/esm/rules/no-scalar-result-type-on-mutation.d.mts +4 -3
  165. package/esm/rules/no-scalar-result-type-on-mutation.js +13 -21
  166. package/esm/rules/no-typename-prefix.d.mts +4 -3
  167. package/esm/rules/no-typename-prefix.js +22 -26
  168. package/esm/rules/no-unreachable-types.d.mts +4 -3
  169. package/esm/rules/no-unreachable-types.js +18 -33
  170. package/esm/rules/no-unused-fields.d.mts +4 -3
  171. package/esm/rules/no-unused-fields.js +19 -40
  172. package/esm/rules/relay-arguments.d.mts +4 -3
  173. package/esm/rules/relay-arguments.js +15 -34
  174. package/esm/rules/relay-connection-types.d.mts +4 -3
  175. package/esm/rules/relay-connection-types.js +10 -38
  176. package/esm/rules/relay-edge-types.d.mts +4 -3
  177. package/esm/rules/relay-edge-types.js +43 -89
  178. package/esm/rules/relay-page-info.d.mts +4 -3
  179. package/esm/rules/relay-page-info.js +16 -34
  180. package/esm/rules/require-deprecation-date.d.mts +4 -3
  181. package/esm/rules/require-deprecation-date.js +10 -22
  182. package/esm/rules/require-deprecation-reason.d.mts +4 -3
  183. package/esm/rules/require-deprecation-reason.js +7 -11
  184. package/esm/rules/require-description.d.mts +4 -3
  185. package/esm/rules/require-description.js +34 -55
  186. package/esm/rules/require-field-of-type-query-in-mutation-result.d.mts +4 -3
  187. package/esm/rules/require-field-of-type-query-in-mutation-result.js +11 -22
  188. package/esm/rules/require-import-fragment.d.mts +4 -3
  189. package/esm/rules/require-import-fragment.js +14 -26
  190. package/esm/rules/require-nullable-fields-with-oneof.d.mts +4 -3
  191. package/esm/rules/require-nullable-fields-with-oneof.js +6 -13
  192. package/esm/rules/require-nullable-result-in-root.d.mts +4 -3
  193. package/esm/rules/require-nullable-result-in-root.js +29 -35
  194. package/esm/rules/{require-id-when-available.d.mts → require-selections.d.mts} +4 -3
  195. package/esm/rules/{require-id-when-available.js → require-selections.js} +43 -80
  196. package/esm/rules/require-type-pattern-with-oneof.d.mts +4 -3
  197. package/esm/rules/require-type-pattern-with-oneof.js +11 -16
  198. package/esm/rules/selection-set-depth.d.mts +4 -3
  199. package/esm/rules/selection-set-depth.js +11 -20
  200. package/esm/rules/strict-id-in-types.d.mts +4 -3
  201. package/esm/rules/strict-id-in-types.js +20 -34
  202. package/esm/rules/{no-case-insensitive-enum-values-duplicates.d.mts → unique-enum-value-names.d.mts} +4 -3
  203. package/esm/rules/{no-case-insensitive-enum-values-duplicates.js → unique-enum-value-names.js} +8 -9
  204. package/esm/rules/unique-fragment-name.d.mts +3 -2
  205. package/esm/rules/unique-fragment-name.js +20 -27
  206. package/esm/rules/unique-operation-name.d.mts +4 -3
  207. package/esm/rules/unique-operation-name.js +6 -5
  208. package/esm/schema.d.mts +4 -3
  209. package/esm/schema.js +7 -12
  210. package/esm/siblings.d.mts +24 -8
  211. package/esm/siblings.js +37 -73
  212. package/esm/types.d.mts +74 -7
  213. package/esm/utils.d.mts +3 -2
  214. package/esm/utils.js +20 -31
  215. package/index.browser.mjs +5323 -0
  216. package/package.json +8 -13
  217. package/cjs/rules/require-id-when-available.js +0 -241
  218. package/cjs/types-8d5f4ae0.d.ts +0 -107
  219. package/esm/types-ace77d86.d.ts +0 -107
  220. /package/cjs/configs/{relay.d.ts → schema-relay.d.ts} +0 -0
  221. /package/cjs/configs/{relay.js → schema-relay.js} +0 -0
  222. /package/esm/configs/{relay.d.mts → schema-relay.d.mts} +0 -0
@@ -3,18 +3,14 @@ var __create = Object.create;
3
3
  var __defProp = Object.defineProperty;
4
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
8
7
  var __export = (target, all) => {
9
8
  for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
9
+ __defProp(target, name, { get: all[name], enumerable: !0 });
10
+ }, __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from == "object" || typeof from == "function")
14
12
  for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
13
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
14
  return to;
19
15
  };
20
16
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
@@ -22,43 +18,34 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
22
18
  // file that has been converted to a CommonJS file using a Babel-
23
19
  // compatible transform (i.e. "__esModule" has not been set), then set
24
20
  // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
21
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
26
22
  mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
23
+ )), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
29
24
  var alphabetize_exports = {};
30
25
  __export(alphabetize_exports, {
31
26
  rule: () => rule
32
27
  });
33
28
  module.exports = __toCommonJS(alphabetize_exports);
34
- var import_graphql = require("graphql");
35
- var import_lodash = __toESM(require("lodash.lowercase"));
36
- var import_utils = require("../utils.js");
37
- const RULE_ID = "alphabetize";
38
- const fieldsEnum = [
29
+ var import_graphql = require("graphql"), import_lodash = __toESM(require("lodash.lowercase")), import_utils = require("../utils.js");
30
+ const RULE_ID = "alphabetize", fieldsEnum = [
39
31
  import_graphql.Kind.OBJECT_TYPE_DEFINITION,
40
32
  import_graphql.Kind.INTERFACE_TYPE_DEFINITION,
41
33
  import_graphql.Kind.INPUT_OBJECT_TYPE_DEFINITION
42
- ];
43
- const valuesEnum = [import_graphql.Kind.ENUM_TYPE_DEFINITION];
44
- const selectionsEnum = [
34
+ ], selectionsEnum = [
45
35
  import_graphql.Kind.OPERATION_DEFINITION,
46
36
  import_graphql.Kind.FRAGMENT_DEFINITION
47
- ];
48
- const variablesEnum = [import_graphql.Kind.OPERATION_DEFINITION];
49
- const argumentsEnum = [
37
+ ], argumentsEnum = [
50
38
  import_graphql.Kind.FIELD_DEFINITION,
51
39
  import_graphql.Kind.FIELD,
52
40
  import_graphql.Kind.DIRECTIVE_DEFINITION,
53
41
  import_graphql.Kind.DIRECTIVE
54
- ];
55
- const schema = {
42
+ ], schema = {
56
43
  type: "array",
57
44
  minItems: 1,
58
45
  maxItems: 1,
59
46
  items: {
60
47
  type: "object",
61
- additionalProperties: false,
48
+ additionalProperties: !1,
62
49
  minProperties: 1,
63
50
  properties: {
64
51
  fields: {
@@ -69,10 +56,7 @@ const schema = {
69
56
  description: "Fields of `type`, `interface`, and `input`."
70
57
  },
71
58
  values: {
72
- ...import_utils.ARRAY_DEFAULT_OPTIONS,
73
- items: {
74
- enum: valuesEnum
75
- },
59
+ type: "boolean",
76
60
  description: "Values of `enum`."
77
61
  },
78
62
  selections: {
@@ -83,10 +67,7 @@ const schema = {
83
67
  description: "Selections of `fragment` and operations `query`, `mutation` and `subscription`."
84
68
  },
85
69
  variables: {
86
- ...import_utils.ARRAY_DEFAULT_OPTIONS,
87
- items: {
88
- enum: variablesEnum
89
- },
70
+ type: "boolean",
90
71
  description: "Variables of operations `query`, `mutation` and `subscription`."
91
72
  },
92
73
  arguments: {
@@ -98,8 +79,7 @@ const schema = {
98
79
  },
99
80
  definitions: {
100
81
  type: "boolean",
101
- description: "Definitions \u2013 `type`, `interface`, `enum`, `scalar`, `input`, `union` and `directive`.",
102
- default: false
82
+ description: "Definitions \u2013 `type`, `interface`, `enum`, `scalar`, `input`, `union` and `directive`."
103
83
  },
104
84
  groups: {
105
85
  ...import_utils.ARRAY_DEFAULT_OPTIONS,
@@ -108,8 +88,7 @@ const schema = {
108
88
  }
109
89
  }
110
90
  }
111
- };
112
- const rule = {
91
+ }, rule = {
113
92
  meta: {
114
93
  type: "suggestion",
115
94
  fixable: "code",
@@ -150,7 +129,7 @@ const rule = {
150
129
  },
151
130
  {
152
131
  title: "Incorrect",
153
- usage: [{ values: [import_graphql.Kind.ENUM_TYPE_DEFINITION] }],
132
+ usage: [{ values: !0 }],
154
133
  code: (
155
134
  /* GraphQL */
156
135
  `
@@ -165,7 +144,7 @@ const rule = {
165
144
  },
166
145
  {
167
146
  title: "Correct",
168
- usage: [{ values: [import_graphql.Kind.ENUM_TYPE_DEFINITION] }],
147
+ usage: [{ values: !0 }],
169
148
  code: (
170
149
  /* GraphQL */
171
150
  `
@@ -214,19 +193,20 @@ const rule = {
214
193
  configOptions: {
215
194
  schema: [
216
195
  {
196
+ definitions: !0,
217
197
  fields: fieldsEnum,
218
- values: valuesEnum,
219
- arguments: argumentsEnum
220
- // TODO: add in graphql-eslint v4
221
- // definitions: true,
222
- // groups: ['id', '*', 'createdAt', 'updatedAt']
198
+ values: !0,
199
+ arguments: argumentsEnum,
200
+ groups: ["id", "*", "createdAt", "updatedAt"]
223
201
  }
224
202
  ],
225
203
  operations: [
226
204
  {
205
+ definitions: !0,
227
206
  selections: selectionsEnum,
228
- variables: variablesEnum,
229
- arguments: [import_graphql.Kind.FIELD, import_graphql.Kind.DIRECTIVE]
207
+ variables: !0,
208
+ arguments: [import_graphql.Kind.FIELD, import_graphql.Kind.DIRECTIVE],
209
+ groups: ["id", "*", "createdAt", "updatedAt"]
230
210
  }
231
211
  ]
232
212
  }
@@ -237,77 +217,51 @@ const rule = {
237
217
  schema
238
218
  },
239
219
  create(context) {
240
- var _a, _b, _c, _d, _e;
241
220
  const sourceCode = context.getSourceCode();
242
221
  function isNodeAndCommentOnSameLine(node, comment) {
243
222
  return node.loc.end.line === comment.loc.start.line;
244
223
  }
245
224
  function getBeforeComments(node) {
246
225
  const commentsBefore = sourceCode.getCommentsBefore(node);
247
- if (commentsBefore.length === 0) {
226
+ if (commentsBefore.length === 0)
248
227
  return [];
249
- }
250
228
  const tokenBefore = sourceCode.getTokenBefore(node);
251
- if (tokenBefore) {
229
+ if (tokenBefore)
252
230
  return commentsBefore.filter((comment) => !isNodeAndCommentOnSameLine(tokenBefore, comment));
253
- }
254
- const filteredComments = [];
255
- const nodeLine = node.loc.start.line;
231
+ const filteredComments = [], nodeLine = node.loc.start.line;
256
232
  for (let i = commentsBefore.length - 1; i >= 0; i -= 1) {
257
233
  const comment = commentsBefore[i];
258
- if (nodeLine - comment.loc.start.line - filteredComments.length > 1) {
234
+ if (nodeLine - comment.loc.start.line - filteredComments.length > 1)
259
235
  break;
260
- }
261
236
  filteredComments.unshift(comment);
262
237
  }
263
238
  return filteredComments;
264
239
  }
265
240
  function getRangeWithComments(node) {
266
- if (node.kind === import_graphql.Kind.VARIABLE) {
267
- node = node.parent;
268
- }
269
- const [firstBeforeComment] = getBeforeComments(node);
270
- const [firstAfterComment] = sourceCode.getCommentsAfter(node);
271
- const from = firstBeforeComment || node;
272
- const to = firstAfterComment && isNodeAndCommentOnSameLine(node, firstAfterComment) ? firstAfterComment : node;
241
+ node.kind === import_graphql.Kind.VARIABLE && (node = node.parent);
242
+ const [firstBeforeComment] = getBeforeComments(node), [firstAfterComment] = sourceCode.getCommentsAfter(node), from = firstBeforeComment || node, to = firstAfterComment && isNodeAndCommentOnSameLine(node, firstAfterComment) ? firstAfterComment : node;
273
243
  return [from.range[0], to.range[1]];
274
244
  }
275
245
  function checkNodes(nodes = []) {
276
- var _a2, _b2, _c2, _d2;
277
246
  for (let i = 1; i < nodes.length; i += 1) {
278
- const currNode = nodes[i];
279
- const currName = "alias" in currNode && ((_a2 = currNode.alias) == null ? void 0 : _a2.value) || "name" in currNode && ((_b2 = currNode.name) == null ? void 0 : _b2.value);
280
- if (!currName) {
247
+ const currNode = nodes[i], currName = "alias" in currNode && currNode.alias?.value || "name" in currNode && currNode.name?.value;
248
+ if (!currName)
281
249
  continue;
282
- }
283
- const prevNode = nodes[i - 1];
284
- const prevName = "alias" in prevNode && ((_c2 = prevNode.alias) == null ? void 0 : _c2.value) || "name" in prevNode && ((_d2 = prevNode.name) == null ? void 0 : _d2.value);
250
+ const prevNode = nodes[i - 1], prevName = "alias" in prevNode && prevNode.alias?.value || "name" in prevNode && prevNode.name?.value;
285
251
  if (prevName) {
286
- const compareResult = prevName.localeCompare(currName);
287
- const { groups } = opts;
288
- let shouldSortByGroup = false;
289
- if (groups == null ? void 0 : groups.length) {
290
- if (!groups.includes("*")) {
252
+ const compareResult = prevName.localeCompare(currName), { groups } = opts;
253
+ let shouldSortByGroup = !1;
254
+ if (groups?.length) {
255
+ if (!groups.includes("*"))
291
256
  throw new Error("`groups` option should contain `*` string.");
292
- }
293
257
  let indexForPrev = groups.indexOf(prevName);
294
- if (indexForPrev === -1)
295
- indexForPrev = groups.indexOf("*");
258
+ indexForPrev === -1 && (indexForPrev = groups.indexOf("*"));
296
259
  let indexForCurr = groups.indexOf(currName);
297
- if (indexForCurr === -1)
298
- indexForCurr = groups.indexOf("*");
299
- shouldSortByGroup = indexForPrev - indexForCurr > 0;
300
- if (indexForPrev < indexForCurr) {
260
+ if (indexForCurr === -1 && (indexForCurr = groups.indexOf("*")), shouldSortByGroup = indexForPrev - indexForCurr > 0, indexForPrev < indexForCurr)
301
261
  continue;
302
- }
303
- }
304
- const shouldSort = compareResult === 1;
305
- if (!shouldSortByGroup && !shouldSort) {
306
- const isSameName = compareResult === 0;
307
- if (!isSameName || !prevNode.kind.endsWith("Extension") || currNode.kind.endsWith("Extension")) {
308
- continue;
309
- }
310
262
  }
263
+ if (!shouldSortByGroup && !(compareResult === 1) && (!(compareResult === 0) || !prevNode.kind.endsWith("Extension") || currNode.kind.endsWith("Extension")))
264
+ continue;
311
265
  }
312
266
  context.report({
313
267
  // @ts-expect-error can't be undefined
@@ -318,13 +272,11 @@ const rule = {
318
272
  prevNode: prevName ? (0, import_utils.displayNodeName)(prevNode) : (0, import_lodash.default)(prevNode.kind)
319
273
  },
320
274
  *fix(fixer) {
321
- const prevRange = getRangeWithComments(prevNode);
322
- const currRange = getRangeWithComments(currNode);
275
+ const prevRange = getRangeWithComments(prevNode), currRange = getRangeWithComments(currNode);
323
276
  yield fixer.replaceTextRange(
324
277
  prevRange,
325
278
  sourceCode.getText({ range: currRange })
326
- );
327
- yield fixer.replaceTextRange(
279
+ ), yield fixer.replaceTextRange(
328
280
  currRange,
329
281
  sourceCode.getText({ range: prevRange })
330
282
  );
@@ -332,10 +284,7 @@ const rule = {
332
284
  });
333
285
  }
334
286
  }
335
- const opts = context.options[0];
336
- const fields = new Set((_a = opts.fields) != null ? _a : []);
337
- const listeners = {};
338
- const kinds = [
287
+ const opts = context.options[0], fields = new Set(opts.fields ?? []), listeners = {}, fieldsSelector = [
339
288
  fields.has(import_graphql.Kind.OBJECT_TYPE_DEFINITION) && [
340
289
  import_graphql.Kind.OBJECT_TYPE_DEFINITION,
341
290
  import_graphql.Kind.OBJECT_TYPE_EXTENSION
@@ -348,45 +297,24 @@ const rule = {
348
297
  import_graphql.Kind.INPUT_OBJECT_TYPE_DEFINITION,
349
298
  import_graphql.Kind.INPUT_OBJECT_TYPE_EXTENSION
350
299
  ]
351
- ].filter(import_utils.truthy).flat();
352
- const fieldsSelector = kinds.join(",");
353
- const hasEnumValues = ((_b = opts.values) == null ? void 0 : _b[0]) === import_graphql.Kind.ENUM_TYPE_DEFINITION;
354
- const selectionsSelector = (_c = opts.selections) == null ? void 0 : _c.join(",");
355
- const hasVariables = ((_d = opts.variables) == null ? void 0 : _d[0]) === import_graphql.Kind.OPERATION_DEFINITION;
356
- const argumentsSelector = (_e = opts.arguments) == null ? void 0 : _e.join(",");
357
- if (fieldsSelector) {
358
- listeners[fieldsSelector] = (node) => {
359
- checkNodes(node.fields);
360
- };
361
- }
362
- if (hasEnumValues) {
300
+ ].filter(import_utils.truthy).flat().join(","), selectionsSelector = opts.selections?.join(","), argumentsSelector = opts.arguments?.join(",");
301
+ if (fieldsSelector && (listeners[fieldsSelector] = (node) => {
302
+ checkNodes(node.fields);
303
+ }), opts.values) {
363
304
  const enumValuesSelector = [import_graphql.Kind.ENUM_TYPE_DEFINITION, import_graphql.Kind.ENUM_TYPE_EXTENSION].join(",");
364
305
  listeners[enumValuesSelector] = (node) => {
365
306
  checkNodes(node.values);
366
307
  };
367
308
  }
368
- if (selectionsSelector) {
369
- listeners[`:matches(${selectionsSelector}) SelectionSet`] = (node) => {
370
- checkNodes(node.selections);
371
- };
372
- }
373
- if (hasVariables) {
374
- listeners.OperationDefinition = (node) => {
375
- var _a2;
376
- checkNodes((_a2 = node.variableDefinitions) == null ? void 0 : _a2.map((varDef) => varDef.variable));
377
- };
378
- }
379
- if (argumentsSelector) {
380
- listeners[argumentsSelector] = (node) => {
381
- checkNodes(node.arguments);
382
- };
383
- }
384
- if (opts.definitions) {
385
- listeners.Document = (node) => {
386
- checkNodes(node.definitions);
387
- };
388
- }
389
- return listeners;
309
+ return selectionsSelector && (listeners[`:matches(${selectionsSelector}) SelectionSet`] = (node) => {
310
+ checkNodes(node.selections);
311
+ }), opts.variables && (listeners.OperationDefinition = (node) => {
312
+ checkNodes(node.variableDefinitions?.map((varDef) => varDef.variable));
313
+ }), argumentsSelector && (listeners[argumentsSelector] = (node) => {
314
+ checkNodes(node.arguments);
315
+ }), opts.definitions && (listeners.Document = (node) => {
316
+ checkNodes(node.definitions);
317
+ }), listeners;
390
318
  }
391
319
  };
392
320
  // Annotate the CommonJS export names for ESM import in node:
@@ -1,11 +1,12 @@
1
1
  import { FromSchema } from 'json-schema-to-ts';
2
- import { f as GraphQLESLintRule } from '../types-8d5f4ae0.js';
3
- import '@graphql-tools/utils';
2
+ import { GraphQLESLintRule } from '../types.js';
4
3
  import 'eslint';
5
4
  import 'estree';
6
5
  import 'graphql';
7
- import 'graphql-config';
6
+ import '../siblings.js';
7
+ import '@graphql-tools/utils';
8
8
  import '../estree-converter/types.js';
9
+ import 'graphql-config';
9
10
 
10
11
  declare const schema: {
11
12
  readonly type: "array";
@@ -5,17 +5,14 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
6
  var __export = (target, all) => {
7
7
  for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
8
+ __defProp(target, name, { get: all[name], enumerable: !0 });
9
+ }, __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from == "object" || typeof from == "function")
12
11
  for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
12
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
13
  return to;
17
14
  };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
19
16
  var description_style_exports = {};
20
17
  __export(description_style_exports, {
21
18
  rule: () => rule
@@ -27,7 +24,7 @@ const schema = {
27
24
  maxItems: 1,
28
25
  items: {
29
26
  type: "object",
30
- additionalProperties: false,
27
+ additionalProperties: !1,
31
28
  minProperties: 1,
32
29
  properties: {
33
30
  style: {
@@ -36,11 +33,10 @@ const schema = {
36
33
  }
37
34
  }
38
35
  }
39
- };
40
- const rule = {
36
+ }, rule = {
41
37
  meta: {
42
38
  type: "suggestion",
43
- hasSuggestions: true,
39
+ hasSuggestions: !0,
44
40
  docs: {
45
41
  examples: [
46
42
  {
@@ -73,13 +69,12 @@ const rule = {
73
69
  description: "Require all comments to follow the same style (either block or inline).",
74
70
  category: "Schema",
75
71
  url: "https://the-guild.dev/graphql/eslint/rules/description-style",
76
- recommended: true
72
+ recommended: !0
77
73
  },
78
74
  schema
79
75
  },
80
76
  create(context) {
81
- const { style = "block" } = context.options[0] || {};
82
- const isBlock = style === "block";
77
+ const { style = "block" } = context.options[0] || {}, isBlock = style === "block";
83
78
  return {
84
79
  [`.description[type=StringValue][block!=${isBlock}]`](node) {
85
80
  context.report({
@@ -91,9 +86,7 @@ const rule = {
91
86
  {
92
87
  desc: `Change to ${isBlock ? "block" : "inline"} style description`,
93
88
  fix(fixer) {
94
- const sourceCode = context.getSourceCode();
95
- const originalText = sourceCode.getText(node);
96
- const newText = isBlock ? originalText.replace(/(^")|("$)/g, '"""') : originalText.replace(/(^""")|("""$)/g, '"').replace(/\s+/g, " ");
89
+ const originalText = context.getSourceCode().getText(node), newText = isBlock ? originalText.replace(/(^")|("$)/g, '"""') : originalText.replace(/(^""")|("""$)/g, '"').replace(/\s+/g, " ");
97
90
  return fixer.replaceText(node, newText);
98
91
  }
99
92
  }
@@ -1,11 +1,12 @@
1
- import { f as GraphQLESLintRule } from '../types-8d5f4ae0.js';
2
- import '@graphql-tools/utils';
1
+ import { GraphQLESLintRule } from '../types.js';
3
2
  import 'eslint';
4
3
  import 'estree';
5
4
  import 'graphql';
6
- import 'graphql-config';
7
5
  import 'json-schema-to-ts';
6
+ import '../siblings.js';
7
+ import '@graphql-tools/utils';
8
8
  import '../estree-converter/types.js';
9
+ import 'graphql-config';
9
10
 
10
11
  declare const GRAPHQL_JS_VALIDATIONS: Record<string, GraphQLESLintRule>;
11
12