@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,58 +5,45 @@ 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 unique_fragment_name_exports = {};
20
17
  __export(unique_fragment_name_exports, {
21
18
  checkNode: () => checkNode,
22
19
  rule: () => rule
23
20
  });
24
21
  module.exports = __toCommonJS(unique_fragment_name_exports);
25
- var import_path = require("path");
26
- var import_graphql = require("graphql");
27
- var import_utils = require("../utils.js");
28
- const RULE_ID = "unique-fragment-name";
29
- const checkNode = (context, node, ruleId) => {
30
- const documentName = node.name.value;
31
- const siblings = (0, import_utils.requireSiblingsOperations)(ruleId, context);
32
- const siblingDocuments = node.kind === import_graphql.Kind.FRAGMENT_DEFINITION ? siblings.getFragment(documentName) : siblings.getOperation(documentName);
33
- const filepath = context.getFilename();
34
- const conflictingDocuments = siblingDocuments.filter((f) => {
35
- var _a;
36
- const isSameName = ((_a = f.document.name) == null ? void 0 : _a.value) === documentName;
37
- const isSamePath = (0, import_utils.normalizePath)(f.filePath) === (0, import_utils.normalizePath)(filepath);
22
+ var import_node_path = require("node:path"), import_graphql = require("graphql"), import_utils = require("../utils.js");
23
+ const RULE_ID = "unique-fragment-name", checkNode = (context, node, ruleId) => {
24
+ const documentName = node.name.value, siblings = (0, import_utils.requireSiblingsOperations)(ruleId, context), siblingDocuments = node.kind === import_graphql.Kind.FRAGMENT_DEFINITION ? siblings.getFragment(documentName) : siblings.getOperation(documentName), filepath = context.filename, conflictingDocuments = siblingDocuments.filter((f) => {
25
+ const isSameName = f.document.name?.value === documentName, isSamePath = (0, import_utils.normalizePath)(f.filePath) === (0, import_utils.normalizePath)(filepath);
38
26
  return isSameName && !isSamePath;
39
27
  });
40
- if (conflictingDocuments.length > 0) {
41
- context.report({
42
- messageId: ruleId,
43
- data: {
44
- documentName,
45
- summary: conflictingDocuments.map((f) => ` ${(0, import_path.relative)(import_utils.CWD, f.filePath.replace(import_utils.VIRTUAL_DOCUMENT_REGEX, ""))}`).join("\n")
46
- },
47
- // @ts-expect-error name will exist
48
- node: node.name
49
- });
50
- }
51
- };
52
- const rule = {
28
+ conflictingDocuments.length > 0 && context.report({
29
+ messageId: ruleId,
30
+ data: {
31
+ documentName,
32
+ summary: conflictingDocuments.map((f) => ` ${(0, import_node_path.relative)(import_utils.CWD, f.filePath.replace(import_utils.VIRTUAL_DOCUMENT_REGEX, ""))}`).join(`
33
+ `)
34
+ },
35
+ // @ts-expect-error name will exist
36
+ node: node.name
37
+ });
38
+ }, rule = {
53
39
  meta: {
54
40
  type: "suggestion",
55
41
  docs: {
56
42
  category: "Operations",
57
43
  description: "Enforce unique fragment names across your project.",
58
44
  url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`,
59
- requiresSiblings: true,
45
+ requiresSiblings: !0,
46
+ recommended: !0,
60
47
  examples: [
61
48
  {
62
49
  title: "Incorrect",
@@ -99,7 +86,8 @@ const rule = {
99
86
  ]
100
87
  },
101
88
  messages: {
102
- [RULE_ID]: 'Fragment named "{{ documentName }}" already defined in:\n{{ summary }}'
89
+ [RULE_ID]: `Fragment named "{{ documentName }}" already defined in:
90
+ {{ summary }}`
103
91
  },
104
92
  schema: []
105
93
  },
@@ -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,32 +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 unique_operation_name_exports = {};
20
17
  __export(unique_operation_name_exports, {
21
18
  rule: () => rule
22
19
  });
23
20
  module.exports = __toCommonJS(unique_operation_name_exports);
24
21
  var import_unique_fragment_name = require("./unique-fragment-name.js");
25
- const RULE_ID = "unique-operation-name";
26
- const rule = {
22
+ const RULE_ID = "unique-operation-name", rule = {
27
23
  meta: {
28
24
  type: "suggestion",
29
25
  docs: {
30
26
  category: "Operations",
31
27
  description: "Enforce unique operation names across your project.",
32
28
  url: `https://the-guild.dev/graphql/eslint/rules/${RULE_ID}`,
33
- requiresSiblings: true,
29
+ requiresSiblings: !0,
30
+ recommended: !0,
34
31
  examples: [
35
32
  {
36
33
  title: "Incorrect",
@@ -77,7 +74,8 @@ const rule = {
77
74
  ]
78
75
  },
79
76
  messages: {
80
- [RULE_ID]: 'Operation named "{{ documentName }}" already defined in:\n{{ summary }}'
77
+ [RULE_ID]: `Operation named "{{ documentName }}" already defined in:
78
+ {{ summary }}`
81
79
  },
82
80
  schema: []
83
81
  },
package/cjs/schema.d.ts CHANGED
@@ -1,12 +1,13 @@
1
1
  import { GraphQLProjectConfig } from 'graphql-config';
2
- import { P as ParserOptions, S as Schema } from './types-8d5f4ae0.js';
3
- import '@graphql-tools/utils';
2
+ import { Schema } from './types.js';
4
3
  import 'eslint';
5
4
  import 'estree';
6
5
  import 'graphql';
7
6
  import 'json-schema-to-ts';
7
+ import './siblings.js';
8
+ import '@graphql-tools/utils';
8
9
  import './estree-converter/types.js';
9
10
 
10
- declare function getSchema(project: GraphQLProjectConfig, schemaOptions?: ParserOptions['schemaOptions']): Schema;
11
+ declare function getSchema(project: GraphQLProjectConfig): Schema;
11
12
 
12
13
  export { getSchema };
package/cjs/schema.js CHANGED
@@ -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,42 +18,33 @@ 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 schema_exports = {};
30
25
  __export(schema_exports, {
31
26
  getSchema: () => getSchema
32
27
  });
33
28
  module.exports = __toCommonJS(schema_exports);
34
- var import_debug = __toESM(require("debug"));
35
- var import_fast_glob = __toESM(require("fast-glob"));
36
- var import_graphql = require("graphql");
37
- var import_cache = require("./cache.js");
38
- const schemaCache = new import_cache.ModuleCache();
39
- const debug = (0, import_debug.default)("graphql-eslint:schema");
40
- function getSchema(project, schemaOptions) {
29
+ var import_debug = __toESM(require("debug")), import_fast_glob = __toESM(require("fast-glob")), import_graphql = require("graphql"), import_cache = require("./cache.js");
30
+ const schemaCache = new import_cache.ModuleCache(), debug = (0, import_debug.default)("graphql-eslint:schema");
31
+ function getSchema(project) {
41
32
  const schemaKey = project.schema;
42
- if (!schemaKey) {
33
+ if (!schemaKey)
43
34
  return null;
44
- }
45
35
  const cache = schemaCache.get(schemaKey);
46
- if (cache) {
36
+ if (cache)
47
37
  return cache;
48
- }
49
38
  debug("Loading schema from %o", project.schema);
50
39
  const schema = project.loadSchemaSync(project.schema, "GraphQLSchema", {
51
- ...schemaOptions,
52
40
  pluckConfig: project.extensions.pluckConfig
53
41
  });
54
42
  if (debug.enabled) {
55
43
  debug("Schema loaded: %o", schema instanceof import_graphql.GraphQLSchema);
56
- const schemaPaths = import_fast_glob.default.sync(project.schema, { absolute: true });
44
+ const schemaPaths = import_fast_glob.default.sync(project.schema, { absolute: !0 });
57
45
  debug("Schema pointers %O", schemaPaths);
58
46
  }
59
- schemaCache.set(schemaKey, schema);
60
- return schema;
47
+ return schemaCache.set(schemaKey, schema), schema;
61
48
  }
62
49
  // Annotate the CommonJS export names for ESM import in node:
63
50
  0 && (module.exports = {
package/cjs/siblings.d.ts CHANGED
@@ -1,8 +1,24 @@
1
- import 'graphql';
2
- import 'graphql-config';
3
- export { F as FragmentSource, h as OperationSource, g as SiblingOperations, i as getSiblings } from './types-8d5f4ae0.js';
4
- import '@graphql-tools/utils';
5
- import 'eslint';
6
- import 'estree';
7
- import 'json-schema-to-ts';
8
- import './estree-converter/types.js';
1
+ import { Source } from '@graphql-tools/utils';
2
+ import { FragmentDefinitionNode, OperationDefinitionNode, SelectionSetNode, OperationTypeNode } from 'graphql';
3
+
4
+ type FragmentSource = {
5
+ filePath: string;
6
+ document: FragmentDefinitionNode;
7
+ };
8
+ type OperationSource = {
9
+ filePath: string;
10
+ document: OperationDefinitionNode;
11
+ };
12
+ type SiblingOperations = {
13
+ available: boolean;
14
+ getFragment(fragmentName: string): FragmentSource[];
15
+ getFragments(): FragmentSource[];
16
+ getFragmentByType(typeName: string): FragmentSource[];
17
+ getFragmentsInUse(baseOperation: FragmentDefinitionNode | OperationDefinitionNode | SelectionSetNode, recursive?: boolean): FragmentDefinitionNode[];
18
+ getOperation(operationName: string): OperationSource[];
19
+ getOperations(): OperationSource[];
20
+ getOperationByType(operationType: OperationTypeNode): OperationSource[];
21
+ };
22
+ declare function getSiblings(documents: Source[]): SiblingOperations;
23
+
24
+ export { FragmentSource, OperationSource, SiblingOperations, getSiblings };
package/cjs/siblings.js CHANGED
@@ -5,42 +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 siblings_exports = {};
20
17
  __export(siblings_exports, {
21
18
  getSiblings: () => getSiblings
22
19
  });
23
20
  module.exports = __toCommonJS(siblings_exports);
24
- var import_utils = require("@graphql-tools/utils");
25
- var import_graphql = require("graphql");
26
- var import_documents = require("./documents.js");
27
- var import_utils2 = require("./utils.js");
21
+ var import_graphql = require("graphql"), import_utils2 = require("./utils.js");
28
22
  const siblingOperationsCache = /* @__PURE__ */ new Map();
29
- function getSiblings(project, documents) {
30
- const siblings = project ? (0, import_documents.getDocuments)(project) : typeof documents === "string" ? [(0, import_utils.parseGraphQLSDL)("operation.graphql", documents, { noLocation: true })] : [];
31
- if (siblings.length === 0) {
32
- let printed = false;
33
- const noopWarn = () => {
34
- if (!printed) {
35
- import_utils2.logger.warn(
36
- 'getSiblingOperations was called without any operations. Make sure to set "parserOptions.operations" to make this feature available!'
37
- );
38
- printed = true;
39
- }
40
- return [];
41
- };
23
+ function getSiblings(documents) {
24
+ if (documents.length === 0) {
25
+ let printed = !1;
26
+ const noopWarn = () => (printed || (import_utils2.logger.warn(
27
+ "getSiblingOperations was called without any operations. Make sure to set graphql-config `documents` field to make this feature available! See https://the-guild.dev/graphql/config/docs/user/documents for more info"
28
+ ), printed = !0), []);
42
29
  return {
43
- available: false,
30
+ available: !1,
44
31
  getFragment: noopWarn,
45
32
  getFragments: noopWarn,
46
33
  getFragmentByType: noopWarn,
@@ -50,85 +37,58 @@ function getSiblings(project, documents) {
50
37
  getOperationByType: noopWarn
51
38
  };
52
39
  }
53
- const value = siblingOperationsCache.get(siblings);
54
- if (value) {
40
+ const value = siblingOperationsCache.get(documents);
41
+ if (value)
55
42
  return value;
56
- }
57
43
  let fragmentsCache = null;
58
44
  const getFragments = () => {
59
- var _a;
60
45
  if (fragmentsCache === null) {
61
46
  const result = [];
62
- for (const source of siblings) {
63
- for (const definition of ((_a = source.document) == null ? void 0 : _a.definitions) || []) {
64
- if (definition.kind === import_graphql.Kind.FRAGMENT_DEFINITION) {
65
- result.push({
66
- filePath: source.location,
67
- document: definition
68
- });
69
- }
70
- }
71
- }
47
+ for (const source of documents)
48
+ for (const definition of source.document?.definitions || [])
49
+ definition.kind === import_graphql.Kind.FRAGMENT_DEFINITION && result.push({
50
+ filePath: source.location,
51
+ document: definition
52
+ });
72
53
  fragmentsCache = result;
73
54
  }
74
55
  return fragmentsCache;
75
56
  };
76
57
  let cachedOperations = null;
77
58
  const getOperations = () => {
78
- var _a;
79
59
  if (cachedOperations === null) {
80
60
  const result = [];
81
- for (const source of siblings) {
82
- for (const definition of ((_a = source.document) == null ? void 0 : _a.definitions) || []) {
83
- if (definition.kind === import_graphql.Kind.OPERATION_DEFINITION) {
84
- result.push({
85
- filePath: source.location,
86
- document: definition
87
- });
88
- }
89
- }
90
- }
61
+ for (const source of documents)
62
+ for (const definition of source.document?.definitions || [])
63
+ definition.kind === import_graphql.Kind.OPERATION_DEFINITION && result.push({
64
+ filePath: source.location,
65
+ document: definition
66
+ });
91
67
  cachedOperations = result;
92
68
  }
93
69
  return cachedOperations;
94
- };
95
- const getFragment = (name) => getFragments().filter((f) => f.document.name.value === name);
96
- const collectFragments = (selectable, recursive, collected = /* @__PURE__ */ new Map()) => {
97
- (0, import_graphql.visit)(selectable, {
98
- FragmentSpread(spread) {
99
- const fragmentName = spread.name.value;
100
- const [fragment] = getFragment(fragmentName);
101
- if (!fragment) {
102
- import_utils2.logger.warn(
103
- `Unable to locate fragment named "${fragmentName}", please make sure it's loaded using "parserOptions.operations"`
104
- );
105
- return;
106
- }
107
- if (!collected.has(fragmentName)) {
108
- collected.set(fragmentName, fragment.document);
109
- if (recursive) {
110
- collectFragments(fragment.document, recursive, collected);
111
- }
112
- }
70
+ }, getFragment = (name) => getFragments().filter((f) => f.document.name.value === name), collectFragments = (selectable, recursive, collected = /* @__PURE__ */ new Map()) => ((0, import_graphql.visit)(selectable, {
71
+ FragmentSpread(spread) {
72
+ const fragmentName = spread.name.value, [fragment] = getFragment(fragmentName);
73
+ if (!fragment) {
74
+ import_utils2.logger.warn(
75
+ `Unable to locate fragment named "${fragmentName}", please make sure it's loaded using "parserOptions.operations"`
76
+ );
77
+ return;
113
78
  }
114
- });
115
- return collected;
116
- };
117
- const siblingOperations = {
118
- available: true,
79
+ collected.has(fragmentName) || (collected.set(fragmentName, fragment.document), recursive && collectFragments(fragment.document, recursive, collected));
80
+ }
81
+ }), collected), siblingOperations = {
82
+ available: !0,
119
83
  getFragment,
120
84
  getFragments,
121
85
  getFragmentByType: (typeName) => getFragments().filter((f) => f.document.typeCondition.name.value === typeName),
122
- getFragmentsInUse: (selectable, recursive = true) => Array.from(collectFragments(selectable, recursive).values()),
123
- getOperation: (name) => getOperations().filter((o) => {
124
- var _a;
125
- return ((_a = o.document.name) == null ? void 0 : _a.value) === name;
126
- }),
86
+ getFragmentsInUse: (selectable, recursive = !0) => Array.from(collectFragments(selectable, recursive).values()),
87
+ getOperation: (name) => getOperations().filter((o) => o.document.name?.value === name),
127
88
  getOperations,
128
89
  getOperationByType: (type) => getOperations().filter((o) => o.document.operation === type)
129
90
  };
130
- siblingOperationsCache.set(siblings, siblingOperations);
131
- return siblingOperations;
91
+ return siblingOperationsCache.set(documents, siblingOperations), siblingOperations;
132
92
  }
133
93
  // Annotate the CommonJS export names for ESM import in node:
134
94
  0 && (module.exports = {
package/cjs/types.d.ts CHANGED
@@ -1,8 +1,75 @@
1
+ import { Linter, Rule, AST } from 'eslint';
2
+ import * as ESTree from 'estree';
3
+ import { GraphQLSchema, ASTKindToNode } from 'graphql';
4
+ import { JSONSchema } from 'json-schema-to-ts';
5
+ import { SiblingOperations } from './siblings.js';
6
+ import { GraphQLESTreeNode } from './estree-converter/types.js';
7
+ import { IGraphQLConfig } from 'graphql-config';
1
8
  import '@graphql-tools/utils';
2
- import 'eslint';
3
- import 'estree';
4
- import 'graphql';
5
- import 'graphql-config';
6
- import 'json-schema-to-ts';
7
- export { C as CategoryType, G as GraphQLESLintParseResult, f as GraphQLESLintRule, c as GraphQLESLintRuleContext, e as GraphQLESLintRuleListener, O as OmitRecursively, P as ParserOptions, b as ParserServices, a as Pointer, R as ReportDescriptor, d as RuleDocsInfo, S as Schema, V as ValueOf } from './types-8d5f4ae0.js';
8
- import './estree-converter/types.js';
9
+
10
+ type Schema = GraphQLSchema | null;
11
+ type Pointer = string | string[];
12
+ interface ParserOptions {
13
+ graphQLConfig?: IGraphQLConfig;
14
+ filePath: string;
15
+ }
16
+ type ParserServices = {
17
+ schema: Schema;
18
+ siblingOperations: SiblingOperations;
19
+ };
20
+ type GraphQLESLintParseResult = Linter.ESLintParseResult & {
21
+ services: ParserServices;
22
+ };
23
+ type Location = AST.SourceLocation | ESTree.Position;
24
+ type ReportDescriptorLocation = {
25
+ loc: Location;
26
+ } | {
27
+ node: {
28
+ loc: Location;
29
+ };
30
+ };
31
+ type ReportDescriptor = ReportDescriptorLocation & Rule.ReportDescriptorMessage & Rule.ReportDescriptorOptions;
32
+ type GraphQLESLintRuleContext<Options = any[]> = Omit<Rule.RuleContext, 'options' | 'parserServices' | 'report'> & {
33
+ options: Options;
34
+ parserServices: ParserServices;
35
+ report(descriptor: ReportDescriptor): void;
36
+ };
37
+ type CategoryType = 'Operations' | 'Schema';
38
+ type RuleMetaDataDocs = Required<Rule.RuleMetaData>['docs'];
39
+ type RuleDocsInfo<T> = Omit<RuleMetaDataDocs, 'category' | 'suggestion'> & {
40
+ category: CategoryType | CategoryType[];
41
+ requiresSchema?: true;
42
+ requiresSiblings?: true;
43
+ examples?: {
44
+ title: string;
45
+ code: string;
46
+ usage?: T;
47
+ }[];
48
+ configOptions?: T | {
49
+ schema?: T;
50
+ operations?: T;
51
+ };
52
+ graphQLJSRuleName?: string;
53
+ isDisabledForAllConfig?: true;
54
+ };
55
+ type GraphQLESLintRuleListener<WithTypeInfo extends boolean = false> = Record<string, any> & {
56
+ [K in keyof ASTKindToNode]?: (node: GraphQLESTreeNode<ASTKindToNode[K], WithTypeInfo>) => void;
57
+ };
58
+ type GraphQLESLintRule<Options = [], WithTypeInfo extends boolean = false> = {
59
+ meta: Omit<Rule.RuleMetaData, 'docs' | 'schema'> & {
60
+ docs?: RuleDocsInfo<Options>;
61
+ schema: Readonly<JSONSchema> | [];
62
+ };
63
+ create(context: GraphQLESLintRuleContext<Options>): GraphQLESLintRuleListener<WithTypeInfo>;
64
+ };
65
+ type ValueOf<T> = T[keyof T];
66
+ type Id<T> = {
67
+ [P in keyof T]: T[P];
68
+ } & {};
69
+ type OmitDistributive<T, K extends PropertyKey> = T extends object ? Id<OmitRecursively<T, K>> : T;
70
+ type OmitRecursively<T extends object, K extends PropertyKey> = Omit<{
71
+ [P in keyof T]: OmitDistributive<T[P], K>;
72
+ }, K>;
73
+ type ConfigName = 'operations-all' | 'operations-recommended' | 'schema-all' | 'schema-recommended' | 'schema-relay';
74
+
75
+ export { CategoryType, ConfigName, GraphQLESLintParseResult, GraphQLESLintRule, GraphQLESLintRuleContext, GraphQLESLintRuleListener, OmitRecursively, ParserOptions, ParserServices, Pointer, ReportDescriptor, RuleDocsInfo, Schema, ValueOf };
package/cjs/types.js CHANGED
@@ -4,13 +4,11 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
6
  var __copyProps = (to, from, except, desc) => {
7
- if (from && typeof from === "object" || typeof from === "function") {
7
+ if (from && typeof from == "object" || typeof from == "function")
8
8
  for (let key of __getOwnPropNames(from))
9
- if (!__hasOwnProp.call(to, key) && key !== except)
10
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
- }
9
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
12
10
  return to;
13
11
  };
14
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
12
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
15
13
  var types_exports = {};
16
14
  module.exports = __toCommonJS(types_exports);
package/cjs/utils.d.ts CHANGED
@@ -1,11 +1,12 @@
1
1
  import { AST } from 'eslint';
2
2
  import { Position } from 'estree';
3
3
  import { GraphQLSchema, ASTNode, Kind } from 'graphql';
4
- import { c as GraphQLESLintRuleContext, g as SiblingOperations } from './types-8d5f4ae0.js';
4
+ import { SiblingOperations } from './siblings.js';
5
+ import { GraphQLESLintRuleContext } from './types.js';
5
6
  import { GraphQLESTreeNode } from './estree-converter/types.js';
6
7
  import '@graphql-tools/utils';
7
- import 'graphql-config';
8
8
  import 'json-schema-to-ts';
9
+ import 'graphql-config';
9
10
 
10
11
  declare function requireSiblingsOperations(ruleId: string, context: GraphQLESLintRuleContext): SiblingOperations | never;
11
12
  declare function requireGraphQLSchemaFromContext(ruleId: string, context: GraphQLESLintRuleContext): GraphQLSchema | never;