@graphql-eslint/eslint-plugin 4.0.0-alpha-20230801163310-8bc4340 → 4.0.0-alpha-20230810160036-304c2c0

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
@@ -5,39 +5,30 @@ 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 match_document_filename_exports = {};
20
17
  __export(match_document_filename_exports, {
21
18
  rule: () => rule
22
19
  });
23
20
  module.exports = __toCommonJS(match_document_filename_exports);
24
- var import_path = require("path");
25
- var import_graphql = require("graphql");
26
- var import_utils = require("../utils.js");
27
- const MATCH_EXTENSION = "MATCH_EXTENSION";
28
- const MATCH_STYLE = "MATCH_STYLE";
29
- const CASE_STYLES = [
21
+ var import_node_path = require("node:path"), import_graphql = require("graphql"), import_utils = require("../utils.js");
22
+ const MATCH_EXTENSION = "MATCH_EXTENSION", MATCH_STYLE = "MATCH_STYLE", CASE_STYLES = [
30
23
  "camelCase",
31
24
  "PascalCase",
32
25
  "snake_case",
33
26
  "UPPER_CASE",
34
27
  "kebab-case",
35
28
  "matchDocumentStyle"
36
- ];
37
- const schemaOption = {
29
+ ], schemaOption = {
38
30
  oneOf: [{ $ref: "#/definitions/asString" }, { $ref: "#/definitions/asObject" }]
39
- };
40
- const schema = {
31
+ }, schema = {
41
32
  definitions: {
42
33
  asString: {
43
34
  enum: CASE_STYLES,
@@ -45,7 +36,7 @@ const schema = {
45
36
  },
46
37
  asObject: {
47
38
  type: "object",
48
- additionalProperties: false,
39
+ additionalProperties: !1,
49
40
  minProperties: 1,
50
41
  properties: {
51
42
  style: { enum: CASE_STYLES },
@@ -59,7 +50,7 @@ const schema = {
59
50
  maxItems: 1,
60
51
  items: {
61
52
  type: "object",
62
- additionalProperties: false,
53
+ additionalProperties: !1,
63
54
  minProperties: 1,
64
55
  properties: {
65
56
  fileExtension: { enum: [".gql", ".graphql"] },
@@ -69,8 +60,7 @@ const schema = {
69
60
  fragment: schemaOption
70
61
  }
71
62
  }
72
- };
73
- const rule = {
63
+ }, rule = {
74
64
  meta: {
75
65
  type: "suggestion",
76
66
  docs: {
@@ -210,68 +200,47 @@ const rule = {
210
200
  create(context) {
211
201
  const options = context.options[0] || {
212
202
  fileExtension: null
213
- };
214
- const filePath = context.getFilename();
215
- const isVirtualFile = import_utils.VIRTUAL_DOCUMENT_REGEX.test(filePath);
216
- if (isVirtualFile) {
203
+ }, filePath = context.filename;
204
+ if (import_utils.VIRTUAL_DOCUMENT_REGEX.test(filePath))
217
205
  return {};
218
- }
219
- const fileExtension = (0, import_path.extname)(filePath);
220
- const filename = (0, import_path.basename)(filePath, fileExtension);
206
+ const fileExtension = (0, import_node_path.extname)(filePath), filename = (0, import_node_path.basename)(filePath, fileExtension);
221
207
  return {
222
208
  Document(documentNode) {
223
- var _a;
224
- if (options.fileExtension && options.fileExtension !== fileExtension) {
225
- context.report({
226
- loc: import_utils.REPORT_ON_FIRST_CHARACTER,
227
- messageId: MATCH_EXTENSION,
228
- data: {
229
- fileExtension,
230
- expectedFileExtension: options.fileExtension
231
- }
232
- });
233
- }
209
+ options.fileExtension && options.fileExtension !== fileExtension && context.report({
210
+ loc: import_utils.REPORT_ON_FIRST_CHARACTER,
211
+ messageId: MATCH_EXTENSION,
212
+ data: {
213
+ fileExtension,
214
+ expectedFileExtension: options.fileExtension
215
+ }
216
+ });
234
217
  const firstOperation = documentNode.definitions.find(
235
218
  (n) => n.kind === import_graphql.Kind.OPERATION_DEFINITION
236
- );
237
- const firstFragment = documentNode.definitions.find(
219
+ ), firstFragment = documentNode.definitions.find(
238
220
  (n) => n.kind === import_graphql.Kind.FRAGMENT_DEFINITION
239
- );
240
- const node = firstOperation || firstFragment;
241
- if (!node) {
221
+ ), node = firstOperation || firstFragment;
222
+ if (!node)
242
223
  return;
243
- }
244
- const docName = (_a = node.name) == null ? void 0 : _a.value;
245
- if (!docName) {
224
+ const docName = node.name?.value;
225
+ if (!docName)
246
226
  return;
247
- }
248
227
  const docType = "operation" in node ? node.operation : "fragment";
249
228
  let option = options[docType];
250
- if (!option) {
229
+ if (!option)
251
230
  return;
252
- }
253
- if (typeof option === "string") {
254
- option = { style: option };
255
- }
231
+ typeof option == "string" && (option = { style: option });
256
232
  const expectedExtension = options.fileExtension || fileExtension;
257
233
  let expectedFilename = option.prefix || "";
258
- if (option.style) {
259
- expectedFilename += option.style === "matchDocumentStyle" ? docName : (0, import_utils.convertCase)(option.style, docName);
260
- } else {
261
- expectedFilename += filename;
262
- }
263
- expectedFilename += (option.suffix || "") + expectedExtension;
234
+ option.style ? expectedFilename += option.style === "matchDocumentStyle" ? docName : (0, import_utils.convertCase)(option.style, docName) : expectedFilename += filename, expectedFilename += (option.suffix || "") + expectedExtension;
264
235
  const filenameWithExtension = filename + expectedExtension;
265
- if (expectedFilename !== filenameWithExtension) {
266
- context.report({
267
- loc: import_utils.REPORT_ON_FIRST_CHARACTER,
268
- messageId: MATCH_STYLE,
269
- data: {
270
- expectedFilename,
271
- filename: filenameWithExtension
272
- }
273
- });
274
- }
236
+ expectedFilename !== filenameWithExtension && context.report({
237
+ loc: import_utils.REPORT_ON_FIRST_CHARACTER,
238
+ messageId: MATCH_STYLE,
239
+ data: {
240
+ expectedFilename,
241
+ filename: filenameWithExtension
242
+ }
243
+ });
275
244
  }
276
245
  };
277
246
  }
@@ -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
  type AllowedStyle = 'camelCase' | 'PascalCase' | 'snake_case' | 'UPPER_CASE';
11
12
  declare const schema: {
@@ -5,24 +5,20 @@ 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 naming_convention_exports = {};
20
17
  __export(naming_convention_exports, {
21
18
  rule: () => rule
22
19
  });
23
20
  module.exports = __toCommonJS(naming_convention_exports);
24
- var import_graphql = require("graphql");
25
- var import_utils = require("../utils.js");
21
+ var import_graphql = require("graphql"), import_utils = require("../utils.js");
26
22
  const KindToDisplayName = {
27
23
  // types
28
24
  [import_graphql.Kind.OBJECT_TYPE_DEFINITION]: "Type",
@@ -41,19 +37,14 @@ const KindToDisplayName = {
41
37
  [import_graphql.Kind.OPERATION_DEFINITION]: "Operation",
42
38
  [import_graphql.Kind.FRAGMENT_DEFINITION]: "Fragment",
43
39
  [import_graphql.Kind.VARIABLE_DEFINITION]: "Variable"
44
- };
45
- const StyleToRegex = {
40
+ }, StyleToRegex = {
46
41
  camelCase: /^[a-z][\dA-Za-z]*$/,
47
42
  PascalCase: /^[A-Z][\dA-Za-z]*$/,
48
43
  snake_case: /^[a-z][\d_a-z]*[\da-z]*$/,
49
44
  UPPER_CASE: /^[A-Z][\dA-Z_]*[\dA-Z]*$/
50
- };
51
- const ALLOWED_KINDS = Object.keys(KindToDisplayName).sort();
52
- const ALLOWED_STYLES = Object.keys(StyleToRegex);
53
- const schemaOption = {
45
+ }, ALLOWED_KINDS = Object.keys(KindToDisplayName).sort(), ALLOWED_STYLES = Object.keys(StyleToRegex), schemaOption = {
54
46
  oneOf: [{ $ref: "#/definitions/asString" }, { $ref: "#/definitions/asObject" }]
55
- };
56
- const schema = {
47
+ }, schema = {
57
48
  definitions: {
58
49
  asString: {
59
50
  enum: ALLOWED_STYLES,
@@ -61,7 +52,7 @@ const schema = {
61
52
  },
62
53
  asObject: {
63
54
  type: "object",
64
- additionalProperties: false,
55
+ additionalProperties: !1,
65
56
  properties: {
66
57
  style: { enum: ALLOWED_STYLES },
67
58
  prefix: { type: "string" },
@@ -81,12 +72,13 @@ const schema = {
81
72
  maxItems: 1,
82
73
  items: {
83
74
  type: "object",
84
- additionalProperties: false,
75
+ additionalProperties: !1,
85
76
  properties: {
86
77
  types: {
87
78
  ...schemaOption,
88
79
  description: `Includes:
89
- ${import_utils.TYPES_KINDS.map((kind) => `- \`${kind}\``).join("\n")}`
80
+ ${import_utils.TYPES_KINDS.map((kind) => `- \`${kind}\``).join(`
81
+ `)}`
90
82
  },
91
83
  ...Object.fromEntries(
92
84
  ALLOWED_KINDS.map((kind) => [
@@ -99,11 +91,11 @@ ${import_utils.TYPES_KINDS.map((kind) => `- \`${kind}\``).join("\n")}`
99
91
  ),
100
92
  allowLeadingUnderscore: {
101
93
  type: "boolean",
102
- default: false
94
+ default: !1
103
95
  },
104
96
  allowTrailingUnderscore: {
105
97
  type: "boolean",
106
- default: false
98
+ default: !1
107
99
  }
108
100
  },
109
101
  patternProperties: {
@@ -115,16 +107,16 @@ ${import_utils.TYPES_KINDS.map((kind) => `- \`${kind}\``).join("\n")}`
115
107
  "> Paste or drop code into the editor in [ASTExplorer](https://astexplorer.net) and inspect the generated AST to compose your selector.",
116
108
  ">",
117
109
  "> Example: pattern property `FieldDefinition[parent.name.value=Query]` will match only fields for type `Query`."
118
- ].join("\n")
110
+ ].join(`
111
+ `)
119
112
  }
120
- };
121
- const rule = {
113
+ }, rule = {
122
114
  meta: {
123
115
  type: "suggestion",
124
116
  docs: {
125
117
  description: "Require names to follow specified conventions.",
126
118
  category: ["Schema", "Operations"],
127
- recommended: true,
119
+ recommended: !0,
128
120
  url: "https://the-guild.dev/graphql/eslint/rules/naming-convention",
129
121
  examples: [
130
122
  {
@@ -280,6 +272,22 @@ const rule = {
280
272
  "FieldDefinition[parent.name.value=Subscription]": {
281
273
  forbiddenPrefixes: ["subscription"],
282
274
  forbiddenSuffixes: ["Subscription"]
275
+ },
276
+ "EnumTypeDefinition,EnumTypeExtension": {
277
+ forbiddenPrefixes: ["Enum"],
278
+ forbiddenSuffixes: ["Enum"]
279
+ },
280
+ "InterfaceTypeDefinition,InterfaceTypeExtension": {
281
+ forbiddenPrefixes: ["Interface"],
282
+ forbiddenSuffixes: ["Interface"]
283
+ },
284
+ "UnionTypeDefinition,UnionTypeExtension": {
285
+ forbiddenPrefixes: ["Union"],
286
+ forbiddenSuffixes: ["Union"]
287
+ },
288
+ "ObjectTypeDefinition,ObjectTypeExtension": {
289
+ forbiddenPrefixes: ["Type"],
290
+ forbiddenSuffixes: ["Type"]
283
291
  }
284
292
  }
285
293
  ],
@@ -300,15 +308,14 @@ const rule = {
300
308
  ]
301
309
  }
302
310
  },
303
- hasSuggestions: true,
311
+ hasSuggestions: !0,
304
312
  schema
305
313
  },
306
314
  create(context) {
307
- const options = context.options[0] || {};
308
- const { allowLeadingUnderscore, allowTrailingUnderscore, types, ...restOptions } = options;
315
+ const options = context.options[0] || {}, { allowLeadingUnderscore, allowTrailingUnderscore, types, ...restOptions } = options;
309
316
  function normalisePropertyOption(kind) {
310
317
  const style = restOptions[kind] || types;
311
- return typeof style === "object" ? style : { style };
318
+ return typeof style == "object" ? style : { style };
312
319
  }
313
320
  function report(node, message, suggestedNames) {
314
321
  context.report({
@@ -322,9 +329,8 @@ const rule = {
322
329
  }
323
330
  const checkNode = (selector) => (n) => {
324
331
  const { name: node } = n.kind === import_graphql.Kind.VARIABLE_DEFINITION ? n.variable : n;
325
- if (!node) {
332
+ if (!node)
326
333
  return;
327
- }
328
334
  const {
329
335
  prefix,
330
336
  suffix,
@@ -334,97 +340,73 @@ const rule = {
334
340
  ignorePattern,
335
341
  requiredPrefixes,
336
342
  requiredSuffixes
337
- } = normalisePropertyOption(selector);
338
- const nodeType = KindToDisplayName[n.kind] || n.kind;
339
- const nodeName = node.value;
340
- const error = getError();
343
+ } = normalisePropertyOption(selector), nodeType = KindToDisplayName[n.kind] || n.kind, nodeName = node.value, error = getError();
341
344
  if (error) {
342
- const { errorMessage, renameToNames } = error;
343
- const [leadingUnderscores] = nodeName.match(/^_*/);
344
- const [trailingUnderscores] = nodeName.match(/_*$/);
345
- const suggestedNames = renameToNames.map(
345
+ const { errorMessage, renameToNames } = error, [leadingUnderscores] = nodeName.match(/^_*/), [trailingUnderscores] = nodeName.match(/_*$/), suggestedNames = renameToNames.map(
346
346
  (renameToName) => leadingUnderscores + renameToName + trailingUnderscores
347
347
  );
348
348
  report(node, `${nodeType} "${nodeName}" should ${errorMessage}`, suggestedNames);
349
349
  }
350
350
  function getError() {
351
351
  const name = nodeName.replace(/(^_+)|(_+$)/g, "");
352
- if (ignorePattern && new RegExp(ignorePattern, "u").test(name)) {
352
+ if (ignorePattern && new RegExp(ignorePattern, "u").test(name))
353
353
  return;
354
- }
355
- if (prefix && !name.startsWith(prefix)) {
354
+ if (prefix && !name.startsWith(prefix))
356
355
  return {
357
356
  errorMessage: `have "${prefix}" prefix`,
358
357
  renameToNames: [prefix + name]
359
358
  };
360
- }
361
- if (suffix && !name.endsWith(suffix)) {
359
+ if (suffix && !name.endsWith(suffix))
362
360
  return {
363
361
  errorMessage: `have "${suffix}" suffix`,
364
362
  renameToNames: [name + suffix]
365
363
  };
366
- }
367
- const forbiddenPrefix = forbiddenPrefixes == null ? void 0 : forbiddenPrefixes.find((prefix2) => name.startsWith(prefix2));
368
- if (forbiddenPrefix) {
364
+ const forbiddenPrefix = forbiddenPrefixes?.find((prefix2) => name.startsWith(prefix2));
365
+ if (forbiddenPrefix)
369
366
  return {
370
367
  errorMessage: `not have "${forbiddenPrefix}" prefix`,
371
368
  renameToNames: [name.replace(new RegExp(`^${forbiddenPrefix}`), "")]
372
369
  };
373
- }
374
- const forbiddenSuffix = forbiddenSuffixes == null ? void 0 : forbiddenSuffixes.find((suffix2) => name.endsWith(suffix2));
375
- if (forbiddenSuffix) {
370
+ const forbiddenSuffix = forbiddenSuffixes?.find((suffix2) => name.endsWith(suffix2));
371
+ if (forbiddenSuffix)
376
372
  return {
377
373
  errorMessage: `not have "${forbiddenSuffix}" suffix`,
378
374
  renameToNames: [name.replace(new RegExp(`${forbiddenSuffix}$`), "")]
379
375
  };
380
- }
381
- if (requiredPrefixes && !requiredPrefixes.some((requiredPrefix) => name.startsWith(requiredPrefix))) {
376
+ if (requiredPrefixes && !requiredPrefixes.some((requiredPrefix) => name.startsWith(requiredPrefix)))
382
377
  return {
383
378
  errorMessage: `have one of the following prefixes: ${(0, import_utils.englishJoinWords)(
384
379
  requiredPrefixes
385
380
  )}`,
386
381
  renameToNames: style ? requiredPrefixes.map((prefix2) => (0, import_utils.convertCase)(style, `${prefix2} ${name}`)) : requiredPrefixes.map((prefix2) => `${prefix2}${name}`)
387
382
  };
388
- }
389
- if (requiredSuffixes && !requiredSuffixes.some((requiredSuffix) => name.endsWith(requiredSuffix))) {
383
+ if (requiredSuffixes && !requiredSuffixes.some((requiredSuffix) => name.endsWith(requiredSuffix)))
390
384
  return {
391
385
  errorMessage: `have one of the following suffixes: ${(0, import_utils.englishJoinWords)(
392
386
  requiredSuffixes
393
387
  )}`,
394
388
  renameToNames: style ? requiredSuffixes.map((suffix2) => (0, import_utils.convertCase)(style, `${name} ${suffix2}`)) : requiredSuffixes.map((suffix2) => `${name}${suffix2}`)
395
389
  };
396
- }
397
- if (!style) {
390
+ if (!style)
398
391
  return;
399
- }
400
- const caseRegex = StyleToRegex[style];
401
- if (!caseRegex.test(name)) {
392
+ if (!StyleToRegex[style].test(name))
402
393
  return {
403
394
  errorMessage: `be in ${style} format`,
404
395
  renameToNames: [(0, import_utils.convertCase)(style, name)]
405
396
  };
406
- }
407
397
  }
408
- };
409
- const checkUnderscore = (isLeading) => (node) => {
398
+ }, checkUnderscore = (isLeading) => (node) => {
410
399
  const suggestedName = node.value.replace(isLeading ? /^_+/ : /_+$/, "");
411
400
  report(node, `${isLeading ? "Leading" : "Trailing"} underscores are not allowed`, [
412
401
  suggestedName
413
402
  ]);
414
- };
415
- const listeners = {};
416
- if (!allowLeadingUnderscore) {
417
- listeners["Name[value=/^_/]:matches([parent.kind!=Field], [parent.kind=Field][parent.alias])"] = checkUnderscore(true);
418
- }
419
- if (!allowTrailingUnderscore) {
420
- listeners["Name[value=/_$/]:matches([parent.kind!=Field], [parent.kind=Field][parent.alias])"] = checkUnderscore(false);
421
- }
403
+ }, listeners = {};
404
+ allowLeadingUnderscore || (listeners["Name[value=/^_/]:matches([parent.kind!=Field], [parent.kind=Field][parent.alias])"] = checkUnderscore(!0)), allowTrailingUnderscore || (listeners["Name[value=/_$/]:matches([parent.kind!=Field], [parent.kind=Field][parent.alias])"] = checkUnderscore(!1));
422
405
  const selectors = new Set(
423
406
  [types && import_utils.TYPES_KINDS, Object.keys(restOptions)].flat().filter(import_utils.truthy)
424
407
  );
425
- for (const selector of selectors) {
408
+ for (const selector of selectors)
426
409
  listeners[selector] = checkNode(selector);
427
- }
428
410
  return listeners;
429
411
  }
430
412
  };
@@ -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 rule: GraphQLESLintRule;
11
12
 
@@ -5,33 +5,28 @@ 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 no_anonymous_operations_exports = {};
20
17
  __export(no_anonymous_operations_exports, {
21
18
  rule: () => rule
22
19
  });
23
20
  module.exports = __toCommonJS(no_anonymous_operations_exports);
24
- var import_graphql = require("graphql");
25
- var import_utils = require("../utils.js");
26
- const RULE_ID = "no-anonymous-operations";
27
- const rule = {
21
+ var import_graphql = require("graphql"), import_utils = require("../utils.js");
22
+ const RULE_ID = "no-anonymous-operations", rule = {
28
23
  meta: {
29
24
  type: "suggestion",
30
- hasSuggestions: true,
25
+ hasSuggestions: !0,
31
26
  docs: {
32
27
  category: "Operations",
33
28
  description: "Require name for your GraphQL operations. This is useful since most GraphQL client libraries are using the operation name for caching purposes.",
34
- recommended: true,
29
+ recommended: !0,
35
30
  url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`,
36
31
  examples: [
37
32
  {
@@ -66,8 +61,7 @@ const rule = {
66
61
  create(context) {
67
62
  return {
68
63
  "OperationDefinition[name=undefined]"(node) {
69
- const [firstSelection] = node.selectionSet.selections;
70
- const suggestedName = firstSelection.kind === import_graphql.Kind.FIELD ? (firstSelection.alias || firstSelection.name).value : node.operation;
64
+ const [firstSelection] = node.selectionSet.selections, suggestedName = firstSelection.kind === import_graphql.Kind.FIELD ? (firstSelection.alias || firstSelection.name).value : node.operation;
71
65
  context.report({
72
66
  loc: (0, import_utils.getLocation)(node.loc.start, node.operation),
73
67
  messageId: RULE_ID,
@@ -78,8 +72,7 @@ const rule = {
78
72
  {
79
73
  desc: `Rename to \`${suggestedName}\``,
80
74
  fix(fixer) {
81
- const sourceCode = context.getSourceCode();
82
- const hasQueryKeyword = sourceCode.getText({ range: [node.range[0], node.range[0] + 1] }) !== "{";
75
+ const hasQueryKeyword = context.getSourceCode().getText({ range: [node.range[0], node.range[0] + 1] }) !== "{";
83
76
  return fixer.insertTextAfterRange(
84
77
  [node.range[0], node.range[0] + (hasQueryKeyword ? node.operation.length : 0)],
85
78
  `${hasQueryKeyword ? "" : "query"} ${suggestedName}${hasQueryKeyword ? "" : " "}`
@@ -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 rule: GraphQLESLintRule<[], true>;
11
12
 
@@ -5,34 +5,29 @@ 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 no_deprecated_exports = {};
20
17
  __export(no_deprecated_exports, {
21
18
  rule: () => rule
22
19
  });
23
20
  module.exports = __toCommonJS(no_deprecated_exports);
24
- var import_graphql = require("graphql");
25
- var import_utils = require("../utils.js");
26
- const RULE_ID = "no-deprecated";
27
- const rule = {
21
+ var import_graphql = require("graphql"), import_utils = require("../utils.js");
22
+ const RULE_ID = "no-deprecated", rule = {
28
23
  meta: {
29
24
  type: "suggestion",
30
- hasSuggestions: true,
25
+ hasSuggestions: !0,
31
26
  docs: {
32
27
  category: "Operations",
33
28
  description: "Enforce that deprecated fields or enum values are not in use by operations.",
34
29
  url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`,
35
- requiresSchema: true,
30
+ requiresSchema: !0,
36
31
  examples: [
37
32
  {
38
33
  title: "Incorrect (field)",
@@ -104,7 +99,7 @@ const rule = {
104
99
  )
105
100
  }
106
101
  ],
107
- recommended: true
102
+ recommended: !0
108
103
  },
109
104
  messages: {
110
105
  [RULE_ID]: "This {{ type }} is marked as deprecated in your GraphQL schema (reason: {{ reason }})"
@@ -114,8 +109,7 @@ const rule = {
114
109
  create(context) {
115
110
  (0, import_utils.requireGraphQLSchemaFromContext)(RULE_ID, context);
116
111
  function report(node, reason) {
117
- const nodeName = node.kind === import_graphql.Kind.ENUM ? node.value : node.name.value;
118
- const nodeType = node.kind === import_graphql.Kind.ENUM ? "enum value" : "field";
112
+ const nodeName = node.kind === import_graphql.Kind.ENUM ? node.value : node.name.value, nodeType = node.kind === import_graphql.Kind.ENUM ? "enum value" : "field";
119
113
  context.report({
120
114
  node,
121
115
  messageId: RULE_ID,
@@ -133,20 +127,12 @@ const rule = {
133
127
  }
134
128
  return {
135
129
  EnumValue(node) {
136
- var _a;
137
- const typeInfo = node.typeInfo();
138
- const reason = (_a = typeInfo.enumValue) == null ? void 0 : _a.deprecationReason;
139
- if (reason) {
140
- report(node, reason);
141
- }
130
+ const reason = node.typeInfo().enumValue?.deprecationReason;
131
+ reason && report(node, reason);
142
132
  },
143
133
  Field(node) {
144
- var _a;
145
- const typeInfo = node.typeInfo();
146
- const reason = (_a = typeInfo.fieldDef) == null ? void 0 : _a.deprecationReason;
147
- if (reason) {
148
- report(node, reason);
149
- }
134
+ const reason = node.typeInfo().fieldDef?.deprecationReason;
135
+ reason && report(node, reason);
150
136
  }
151
137
  };
152
138
  }