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

Sign up to get free protection for your applications and to get access to all the features.
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
  }