@graphql-eslint/eslint-plugin 3.19.3 → 3.20.0-alpha-20230703154330-0d51273

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 (302) hide show
  1. package/{typings → cjs}/cache.d.ts +3 -1
  2. package/cjs/cache.js +57 -26
  3. package/{typings → cjs}/configs/index.d.ts +3 -1
  4. package/cjs/configs/index.js +47 -14
  5. package/{typings → cjs}/configs/operations-all.d.ts +2 -1
  6. package/cjs/configs/operations-all.js +47 -30
  7. package/{typings → cjs}/configs/operations-recommended.d.ts +2 -1
  8. package/cjs/configs/operations-recommended.js +72 -55
  9. package/{typings → cjs}/configs/relay.d.ts +2 -1
  10. package/cjs/configs/relay.js +31 -11
  11. package/{typings → cjs}/configs/schema-all.d.ts +2 -1
  12. package/cjs/configs/schema-all.js +41 -24
  13. package/{typings → cjs}/configs/schema-recommended.d.ts +2 -1
  14. package/cjs/configs/schema-recommended.js +68 -51
  15. package/{typings → cjs}/documents.d.ts +4 -1
  16. package/cjs/documents.js +74 -43
  17. package/cjs/estree-converter/converter.d.ts +8 -0
  18. package/cjs/estree-converter/converter.js +80 -59
  19. package/cjs/estree-converter/index.d.ts +8 -0
  20. package/cjs/estree-converter/index.js +25 -5
  21. package/{typings → cjs}/estree-converter/types.d.ts +7 -5
  22. package/cjs/estree-converter/types.js +16 -0
  23. package/cjs/estree-converter/utils.d.ts +18 -0
  24. package/cjs/estree-converter/utils.js +119 -95
  25. package/{typings → cjs}/flat-configs.d.ts +12 -1
  26. package/cjs/flat-configs.js +56 -32
  27. package/cjs/graphql-config.d.ts +13 -0
  28. package/cjs/graphql-config.js +78 -47
  29. package/cjs/index.d.ts +22 -0
  30. package/cjs/index.js +50 -18
  31. package/cjs/parser.d.ts +12 -0
  32. package/cjs/parser.js +96 -76
  33. package/cjs/processor.d.ts +9 -0
  34. package/cjs/processor.js +119 -88
  35. package/{typings → cjs}/rules/alphabetize.d.ts +12 -4
  36. package/cjs/rules/alphabetize.js +337 -295
  37. package/{typings → cjs}/rules/description-style.d.ts +12 -4
  38. package/cjs/rules/description-style.js +96 -66
  39. package/cjs/rules/graphql-js-validation.d.ts +12 -0
  40. package/cjs/rules/graphql-js-validation.js +595 -433
  41. package/cjs/rules/index.d.ts +125 -0
  42. package/cjs/rules/index.js +97 -76
  43. package/{typings → cjs}/rules/input-name.d.ts +12 -4
  44. package/cjs/rules/input-name.js +153 -123
  45. package/{typings → cjs}/rules/lone-executable-definition.d.ts +12 -4
  46. package/cjs/rules/lone-executable-definition.js +101 -72
  47. package/{typings → cjs}/rules/match-document-filename.d.ts +14 -6
  48. package/cjs/rules/match-document-filename.js +229 -182
  49. package/{typings → cjs}/rules/naming-convention.d.ts +12 -4
  50. package/cjs/rules/naming-convention.js +380 -316
  51. package/cjs/rules/no-anonymous-operations.d.ts +12 -0
  52. package/cjs/rules/no-anonymous-operations.js +88 -57
  53. package/cjs/rules/no-case-insensitive-enum-values-duplicates.d.ts +12 -0
  54. package/cjs/rules/no-case-insensitive-enum-values-duplicates.js +82 -50
  55. package/cjs/rules/no-deprecated.d.ts +12 -0
  56. package/cjs/rules/no-deprecated.js +106 -75
  57. package/cjs/rules/no-duplicate-fields.d.ts +12 -0
  58. package/cjs/rules/no-duplicate-fields.js +116 -82
  59. package/cjs/rules/no-hashtag-description.d.ts +13 -0
  60. package/cjs/rules/no-hashtag-description.js +119 -82
  61. package/cjs/rules/no-one-place-fragments.d.ts +12 -0
  62. package/cjs/rules/no-one-place-fragments.js +88 -58
  63. package/{typings → cjs}/rules/no-root-type.d.ts +12 -4
  64. package/cjs/rules/no-root-type.js +101 -74
  65. package/cjs/rules/no-scalar-result-type-on-mutation.d.ts +12 -0
  66. package/cjs/rules/no-scalar-result-type-on-mutation.js +90 -60
  67. package/cjs/rules/no-typename-prefix.d.ts +12 -0
  68. package/cjs/rules/no-typename-prefix.js +88 -55
  69. package/cjs/rules/no-unreachable-types.d.ts +12 -0
  70. package/cjs/rules/no-unreachable-types.js +169 -134
  71. package/cjs/rules/no-unused-fields.d.ts +12 -0
  72. package/cjs/rules/no-unused-fields.js +117 -92
  73. package/{typings → cjs}/rules/relay-arguments.d.ts +12 -4
  74. package/cjs/rules/relay-arguments.js +136 -110
  75. package/cjs/rules/relay-connection-types.d.ts +13 -0
  76. package/cjs/rules/relay-connection-types.js +123 -94
  77. package/{typings → cjs}/rules/relay-edge-types.d.ts +12 -4
  78. package/cjs/rules/relay-edge-types.js +196 -179
  79. package/cjs/rules/relay-page-info.d.ts +12 -0
  80. package/cjs/rules/relay-page-info.js +108 -89
  81. package/{typings → cjs}/rules/require-deprecation-date.d.ts +12 -4
  82. package/cjs/rules/require-deprecation-date.js +143 -112
  83. package/cjs/rules/require-deprecation-reason.d.ts +12 -0
  84. package/cjs/rules/require-deprecation-reason.js +80 -46
  85. package/{typings → cjs}/rules/require-description.d.ts +13 -5
  86. package/cjs/rules/require-description.js +170 -132
  87. package/cjs/rules/require-field-of-type-query-in-mutation-result.d.ts +12 -0
  88. package/cjs/rules/require-field-of-type-query-in-mutation-result.js +81 -51
  89. package/{typings → cjs}/rules/require-id-when-available.d.ts +12 -4
  90. package/cjs/rules/require-id-when-available.js +196 -173
  91. package/cjs/rules/require-import-fragment.d.ts +12 -0
  92. package/cjs/rules/require-import-fragment.js +138 -88
  93. package/cjs/rules/require-nullable-fields-with-oneof.d.ts +12 -0
  94. package/cjs/rules/require-nullable-fields-with-oneof.js +80 -50
  95. package/cjs/rules/require-nullable-result-in-root.d.ts +12 -0
  96. package/cjs/rules/require-nullable-result-in-root.js +97 -68
  97. package/cjs/rules/require-type-pattern-with-oneof.d.ts +12 -0
  98. package/cjs/rules/require-type-pattern-with-oneof.js +70 -42
  99. package/{typings → cjs}/rules/selection-set-depth.d.ts +12 -4
  100. package/cjs/rules/selection-set-depth.js +147 -107
  101. package/{typings → cjs}/rules/strict-id-in-types.d.ts +12 -4
  102. package/cjs/rules/strict-id-in-types.js +143 -122
  103. package/cjs/rules/unique-fragment-name.d.ts +13 -0
  104. package/cjs/rules/unique-fragment-name.js +88 -62
  105. package/cjs/rules/unique-operation-name.d.ts +12 -0
  106. package/cjs/rules/unique-operation-name.js +65 -35
  107. package/cjs/schema.d.ts +12 -0
  108. package/cjs/schema.js +62 -30
  109. package/cjs/siblings.d.ts +8 -0
  110. package/cjs/siblings.js +124 -106
  111. package/cjs/testkit.d.ts +8 -0
  112. package/cjs/testkit.js +165 -144
  113. package/cjs/types-e3367e3c.d.ts +129 -0
  114. package/cjs/types.d.ts +8 -0
  115. package/cjs/types.js +16 -0
  116. package/cjs/utils.d.ts +44 -0
  117. package/cjs/utils.js +181 -124
  118. package/{typings/cache.d.cts → esm/cache.d.mts} +3 -1
  119. package/esm/cache.js +25 -23
  120. package/{typings/configs/index.d.cts → esm/configs/index.d.mts} +3 -1
  121. package/esm/configs/index.js +14 -11
  122. package/{typings/configs/operations-all.d.cts → esm/configs/operations-all.d.mts} +2 -1
  123. package/esm/configs/operations-all.js +28 -28
  124. package/{typings/configs/operations-recommended.d.cts → esm/configs/operations-recommended.d.mts} +2 -1
  125. package/esm/configs/operations-recommended.js +53 -53
  126. package/{typings/configs/relay.d.cts → esm/configs/relay.d.mts} +2 -1
  127. package/esm/configs/relay.js +12 -9
  128. package/{typings/configs/schema-all.d.cts → esm/configs/schema-all.d.mts} +2 -1
  129. package/esm/configs/schema-all.js +22 -22
  130. package/{typings/configs/schema-recommended.d.cts → esm/configs/schema-recommended.d.mts} +2 -1
  131. package/esm/configs/schema-recommended.js +49 -49
  132. package/{typings/documents.d.cts → esm/documents.d.mts} +4 -1
  133. package/esm/documents.js +41 -39
  134. package/esm/estree-converter/converter.d.mts +8 -0
  135. package/esm/estree-converter/converter.js +63 -57
  136. package/esm/estree-converter/index.d.mts +8 -0
  137. package/esm/estree-converter/index.js +3 -3
  138. package/{typings/estree-converter/types.d.cts → esm/estree-converter/types.d.mts} +7 -5
  139. package/esm/estree-converter/utils.d.mts +18 -0
  140. package/esm/estree-converter/utils.js +102 -93
  141. package/{typings/flat-configs.d.cts → esm/flat-configs.d.mts} +13 -2
  142. package/esm/flat-configs.js +33 -30
  143. package/esm/graphql-config.d.mts +13 -0
  144. package/esm/graphql-config.js +49 -44
  145. package/esm/index.d.mts +22 -0
  146. package/esm/index.js +18 -9
  147. package/esm/package.json +1 -1
  148. package/esm/parser.d.mts +12 -0
  149. package/esm/parser.js +64 -73
  150. package/esm/processor.d.mts +9 -0
  151. package/esm/processor.js +98 -86
  152. package/{typings/rules/alphabetize.d.cts → esm/rules/alphabetize.d.mts} +12 -4
  153. package/esm/rules/alphabetize.js +304 -290
  154. package/{typings/rules/description-style.d.cts → esm/rules/description-style.d.mts} +12 -4
  155. package/esm/rules/description-style.js +73 -64
  156. package/esm/rules/graphql-js-validation.d.mts +12 -0
  157. package/esm/rules/graphql-js-validation.js +580 -429
  158. package/esm/rules/index.d.mts +125 -0
  159. package/esm/rules/index.js +74 -74
  160. package/{typings/rules/input-name.d.cts → esm/rules/input-name.d.mts} +12 -4
  161. package/esm/rules/input-name.js +132 -121
  162. package/{typings/rules/lone-executable-definition.d.cts → esm/rules/lone-executable-definition.d.mts} +12 -4
  163. package/esm/rules/lone-executable-definition.js +78 -70
  164. package/{typings/rules/match-document-filename.d.cts → esm/rules/match-document-filename.d.mts} +14 -6
  165. package/esm/rules/match-document-filename.js +210 -180
  166. package/{typings/rules/naming-convention.d.cts → esm/rules/naming-convention.d.mts} +12 -4
  167. package/esm/rules/naming-convention.js +363 -314
  168. package/esm/rules/no-anonymous-operations.d.mts +12 -0
  169. package/esm/rules/no-anonymous-operations.js +65 -55
  170. package/esm/rules/no-case-insensitive-enum-values-duplicates.d.mts +12 -0
  171. package/esm/rules/no-case-insensitive-enum-values-duplicates.js +59 -48
  172. package/esm/rules/no-deprecated.d.mts +12 -0
  173. package/esm/rules/no-deprecated.js +83 -73
  174. package/esm/rules/no-duplicate-fields.d.mts +12 -0
  175. package/esm/rules/no-duplicate-fields.js +93 -80
  176. package/esm/rules/no-hashtag-description.d.mts +13 -0
  177. package/esm/rules/no-hashtag-description.js +95 -80
  178. package/esm/rules/no-one-place-fragments.d.mts +12 -0
  179. package/esm/rules/no-one-place-fragments.js +65 -56
  180. package/{typings/rules/no-root-type.d.cts → esm/rules/no-root-type.d.mts} +12 -4
  181. package/esm/rules/no-root-type.js +78 -72
  182. package/esm/rules/no-scalar-result-type-on-mutation.d.mts +12 -0
  183. package/esm/rules/no-scalar-result-type-on-mutation.js +67 -58
  184. package/esm/rules/no-typename-prefix.d.mts +12 -0
  185. package/esm/rules/no-typename-prefix.js +65 -53
  186. package/esm/rules/no-unreachable-types.d.mts +12 -0
  187. package/esm/rules/no-unreachable-types.js +141 -131
  188. package/esm/rules/no-unused-fields.d.mts +12 -0
  189. package/esm/rules/no-unused-fields.js +94 -90
  190. package/{typings/rules/relay-arguments.d.cts → esm/rules/relay-arguments.d.mts} +12 -4
  191. package/esm/rules/relay-arguments.js +113 -108
  192. package/esm/rules/relay-connection-types.d.mts +13 -0
  193. package/esm/rules/relay-connection-types.js +98 -91
  194. package/{typings/rules/relay-edge-types.d.cts → esm/rules/relay-edge-types.d.mts} +12 -4
  195. package/esm/rules/relay-edge-types.js +178 -177
  196. package/esm/rules/relay-page-info.d.mts +12 -0
  197. package/esm/rules/relay-page-info.js +84 -86
  198. package/{typings/rules/require-deprecation-date.d.cts → esm/rules/require-deprecation-date.d.mts} +12 -4
  199. package/esm/rules/require-deprecation-date.js +120 -110
  200. package/esm/rules/require-deprecation-reason.d.mts +12 -0
  201. package/esm/rules/require-deprecation-reason.js +57 -44
  202. package/{typings/rules/require-description.d.cts → esm/rules/require-description.d.mts} +13 -5
  203. package/esm/rules/require-description.js +151 -130
  204. package/esm/rules/require-field-of-type-query-in-mutation-result.d.mts +12 -0
  205. package/esm/rules/require-field-of-type-query-in-mutation-result.js +58 -49
  206. package/{typings/rules/require-id-when-available.d.cts → esm/rules/require-id-when-available.d.mts} +12 -4
  207. package/esm/rules/require-id-when-available.js +186 -171
  208. package/esm/rules/require-import-fragment.d.mts +12 -0
  209. package/esm/rules/require-import-fragment.js +105 -85
  210. package/esm/rules/require-nullable-fields-with-oneof.d.mts +12 -0
  211. package/esm/rules/require-nullable-fields-with-oneof.js +57 -48
  212. package/esm/rules/require-nullable-result-in-root.d.mts +12 -0
  213. package/esm/rules/require-nullable-result-in-root.js +74 -66
  214. package/esm/rules/require-type-pattern-with-oneof.d.mts +12 -0
  215. package/esm/rules/require-type-pattern-with-oneof.js +47 -40
  216. package/{typings/rules/selection-set-depth.d.cts → esm/rules/selection-set-depth.d.mts} +12 -4
  217. package/esm/rules/selection-set-depth.js +114 -104
  218. package/{typings/rules/strict-id-in-types.d.cts → esm/rules/strict-id-in-types.d.mts} +12 -4
  219. package/esm/rules/strict-id-in-types.js +125 -119
  220. package/esm/rules/unique-fragment-name.d.mts +13 -0
  221. package/esm/rules/unique-fragment-name.js +65 -60
  222. package/esm/rules/unique-operation-name.d.mts +12 -0
  223. package/esm/rules/unique-operation-name.js +42 -33
  224. package/esm/schema.d.mts +12 -0
  225. package/esm/schema.js +29 -26
  226. package/esm/siblings.d.mts +8 -0
  227. package/esm/siblings.js +105 -104
  228. package/esm/testkit.d.mts +8 -0
  229. package/esm/testkit.js +132 -141
  230. package/esm/types-2e1afd7c.d.ts +129 -0
  231. package/esm/types.d.mts +8 -0
  232. package/esm/utils.d.mts +44 -0
  233. package/esm/utils.js +138 -116
  234. package/package.json +40 -30
  235. package/typings/estree-converter/converter.d.cts +0 -3
  236. package/typings/estree-converter/converter.d.ts +0 -3
  237. package/typings/estree-converter/index.d.cts +0 -3
  238. package/typings/estree-converter/index.d.ts +0 -3
  239. package/typings/estree-converter/utils.d.cts +0 -13
  240. package/typings/estree-converter/utils.d.ts +0 -13
  241. package/typings/graphql-config.d.cts +0 -4
  242. package/typings/graphql-config.d.ts +0 -4
  243. package/typings/index.d.cts +0 -10
  244. package/typings/index.d.ts +0 -10
  245. package/typings/parser.d.cts +0 -2
  246. package/typings/parser.d.ts +0 -2
  247. package/typings/processor.d.cts +0 -6
  248. package/typings/processor.d.ts +0 -6
  249. package/typings/rules/graphql-js-validation.d.cts +0 -2
  250. package/typings/rules/graphql-js-validation.d.ts +0 -2
  251. package/typings/rules/index.d.cts +0 -111
  252. package/typings/rules/index.d.ts +0 -111
  253. package/typings/rules/no-anonymous-operations.d.cts +0 -2
  254. package/typings/rules/no-anonymous-operations.d.ts +0 -2
  255. package/typings/rules/no-case-insensitive-enum-values-duplicates.d.cts +0 -2
  256. package/typings/rules/no-case-insensitive-enum-values-duplicates.d.ts +0 -2
  257. package/typings/rules/no-deprecated.d.cts +0 -2
  258. package/typings/rules/no-deprecated.d.ts +0 -2
  259. package/typings/rules/no-duplicate-fields.d.cts +0 -2
  260. package/typings/rules/no-duplicate-fields.d.ts +0 -2
  261. package/typings/rules/no-hashtag-description.d.cts +0 -3
  262. package/typings/rules/no-hashtag-description.d.ts +0 -3
  263. package/typings/rules/no-one-place-fragments.d.cts +0 -2
  264. package/typings/rules/no-one-place-fragments.d.ts +0 -2
  265. package/typings/rules/no-scalar-result-type-on-mutation.d.cts +0 -2
  266. package/typings/rules/no-scalar-result-type-on-mutation.d.ts +0 -2
  267. package/typings/rules/no-typename-prefix.d.cts +0 -2
  268. package/typings/rules/no-typename-prefix.d.ts +0 -2
  269. package/typings/rules/no-unreachable-types.d.cts +0 -2
  270. package/typings/rules/no-unreachable-types.d.ts +0 -2
  271. package/typings/rules/no-unused-fields.d.cts +0 -2
  272. package/typings/rules/no-unused-fields.d.ts +0 -2
  273. package/typings/rules/relay-connection-types.d.cts +0 -4
  274. package/typings/rules/relay-connection-types.d.ts +0 -4
  275. package/typings/rules/relay-page-info.d.cts +0 -2
  276. package/typings/rules/relay-page-info.d.ts +0 -2
  277. package/typings/rules/require-deprecation-reason.d.cts +0 -2
  278. package/typings/rules/require-deprecation-reason.d.ts +0 -2
  279. package/typings/rules/require-field-of-type-query-in-mutation-result.d.cts +0 -2
  280. package/typings/rules/require-field-of-type-query-in-mutation-result.d.ts +0 -2
  281. package/typings/rules/require-import-fragment.d.cts +0 -2
  282. package/typings/rules/require-import-fragment.d.ts +0 -2
  283. package/typings/rules/require-nullable-fields-with-oneof.d.cts +0 -2
  284. package/typings/rules/require-nullable-fields-with-oneof.d.ts +0 -2
  285. package/typings/rules/require-nullable-result-in-root.d.cts +0 -2
  286. package/typings/rules/require-nullable-result-in-root.d.ts +0 -2
  287. package/typings/rules/require-type-pattern-with-oneof.d.cts +0 -2
  288. package/typings/rules/require-type-pattern-with-oneof.d.ts +0 -2
  289. package/typings/rules/unique-fragment-name.d.cts +0 -5
  290. package/typings/rules/unique-fragment-name.d.ts +0 -5
  291. package/typings/rules/unique-operation-name.d.cts +0 -2
  292. package/typings/rules/unique-operation-name.d.ts +0 -2
  293. package/typings/schema.d.cts +0 -3
  294. package/typings/schema.d.ts +0 -3
  295. package/typings/siblings.d.cts +0 -22
  296. package/typings/siblings.d.ts +0 -22
  297. package/typings/testkit.d.cts +0 -29
  298. package/typings/testkit.d.ts +0 -29
  299. package/typings/types.d.cts +0 -83
  300. package/typings/types.d.ts +0 -83
  301. package/typings/utils.d.cts +0 -40
  302. package/typings/utils.d.ts +0 -40
package/cjs/parser.js CHANGED
@@ -1,82 +1,102 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseForESLint = void 0;
4
- const tslib_1 = require("tslib");
5
- const utils_1 = require("@graphql-tools/utils");
6
- const debug_1 = tslib_1.__importDefault(require("debug"));
7
- const graphql_1 = require("graphql");
8
- const index_js_1 = require("./estree-converter/index.js");
9
- const graphql_config_js_1 = require("./graphql-config.js");
10
- const schema_js_1 = require("./schema.js");
11
- const siblings_js_1 = require("./siblings.js");
12
- const utils_js_1 = require("./utils.js");
13
- const debug = (0, debug_1.default)('graphql-eslint:parser');
14
- debug('cwd %o', utils_js_1.CWD);
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ 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") {
14
+ 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
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var parser_exports = {};
30
+ __export(parser_exports, {
31
+ parseForESLint: () => parseForESLint
32
+ });
33
+ module.exports = __toCommonJS(parser_exports);
34
+ var import_utils = require("@graphql-tools/utils");
35
+ var import_debug = __toESM(require("debug"));
36
+ var import_graphql = require("graphql");
37
+ var import_estree_converter = require("./estree-converter/index.js");
38
+ var import_graphql_config = require("./graphql-config.js");
39
+ var import_schema = require("./schema.js");
40
+ var import_siblings = require("./siblings.js");
41
+ var import_utils2 = require("./utils.js");
42
+ const debug = (0, import_debug.default)("graphql-eslint:parser");
43
+ debug("cwd %o", import_utils2.CWD);
15
44
  function parseForESLint(code, options) {
16
- var _a, _b;
45
+ try {
46
+ const { filePath } = options;
47
+ options.documents ||= options.operations;
48
+ const { document } = (0, import_utils.parseGraphQLSDL)(filePath, code, {
49
+ ...options.graphQLParserOptions,
50
+ noLocation: false
51
+ });
52
+ const gqlConfig = (0, import_graphql_config.loadGraphQLConfig)(options);
53
+ const realFilepath = filePath.replace(import_utils2.VIRTUAL_DOCUMENT_REGEX, "");
54
+ const project = gqlConfig.getProjectForFile(realFilepath);
55
+ let schema = null;
17
56
  try {
18
- const { filePath } = options;
19
- // TODO: remove in graphql-eslint v4
20
- options.documents || (options.documents = options.operations);
21
- // First parse code from file, in case of syntax error do not try load schema,
22
- // documents or even graphql-config instance
23
- const { document } = (0, utils_1.parseGraphQLSDL)(filePath, code, {
24
- ...options.graphQLParserOptions,
25
- noLocation: false,
26
- });
27
- const gqlConfig = (0, graphql_config_js_1.loadGraphQLConfig)(options);
28
- const realFilepath = filePath.replace(utils_js_1.VIRTUAL_DOCUMENT_REGEX, '');
29
- const project = gqlConfig.getProjectForFile(realFilepath);
30
- let schema = null;
31
- try {
32
- schema = project
33
- ? (0, schema_js_1.getSchema)(project, options.schemaOptions)
34
- : typeof options.schema === 'string'
35
- ? (0, graphql_1.buildSchema)(options.schema)
36
- : null;
37
- }
38
- catch (error) {
39
- if (error instanceof Error) {
40
- error.message = `Error while loading schema: ${error.message}`;
41
- }
42
- throw error;
43
- }
44
- const rootTree = (0, index_js_1.convertToESTree)(document, schema);
45
- return {
46
- services: {
47
- schema,
48
- siblingOperations: (0, siblings_js_1.getSiblings)(project, options.documents),
49
- },
50
- ast: {
51
- comments: (0, index_js_1.extractComments)(document.loc),
52
- tokens: (0, index_js_1.extractTokens)(filePath, code),
53
- loc: rootTree.loc,
54
- range: rootTree.range,
55
- type: 'Program',
56
- sourceType: 'script',
57
- body: [rootTree],
58
- },
59
- };
57
+ schema = project ? (0, import_schema.getSchema)(project, options.schemaOptions) : typeof options.schema === "string" ? (0, import_graphql.buildSchema)(options.schema) : null;
58
+ } catch (error) {
59
+ if (error instanceof Error) {
60
+ error.message = `Error while loading schema: ${error.message}`;
61
+ }
62
+ throw error;
60
63
  }
61
- catch (error) {
62
- if (error instanceof Error) {
63
- error.message = `[graphql-eslint] ${error.message}`;
64
- }
65
- // In case of GraphQL parser error, we report it to ESLint as a parser error that matches the requirements
66
- // of ESLint. This will make sure to display it correctly in IDEs and lint results.
67
- if (error instanceof graphql_1.GraphQLError) {
68
- const location = (_a = error.locations) === null || _a === void 0 ? void 0 : _a[0];
69
- const eslintError = {
70
- index: (_b = error.positions) === null || _b === void 0 ? void 0 : _b[0],
71
- ...(location && {
72
- lineNumber: location.line,
73
- column: location.column - 1,
74
- }),
75
- message: error.message,
76
- };
77
- throw eslintError;
78
- }
79
- throw error;
64
+ const rootTree = (0, import_estree_converter.convertToESTree)(document, schema);
65
+ return {
66
+ services: {
67
+ schema,
68
+ siblingOperations: (0, import_siblings.getSiblings)(project, options.documents)
69
+ },
70
+ ast: {
71
+ comments: (0, import_estree_converter.extractComments)(document.loc),
72
+ tokens: (0, import_estree_converter.extractTokens)(filePath, code),
73
+ loc: rootTree.loc,
74
+ range: rootTree.range,
75
+ type: "Program",
76
+ sourceType: "script",
77
+ body: [rootTree]
78
+ }
79
+ };
80
+ } catch (error) {
81
+ if (error instanceof Error) {
82
+ error.message = `[graphql-eslint] ${error.message}`;
80
83
  }
84
+ if (error instanceof import_graphql.GraphQLError) {
85
+ const location = error.locations?.[0];
86
+ const eslintError = {
87
+ index: error.positions?.[0],
88
+ ...location && {
89
+ lineNumber: location.line,
90
+ column: location.column - 1
91
+ },
92
+ message: error.message
93
+ };
94
+ throw eslintError;
95
+ }
96
+ throw error;
97
+ }
81
98
  }
82
- exports.parseForESLint = parseForESLint;
99
+ // Annotate the CommonJS export names for ESM import in node:
100
+ 0 && (module.exports = {
101
+ parseForESLint
102
+ });
@@ -0,0 +1,9 @@
1
+ import { Linter } from 'eslint';
2
+
3
+ type Block = Linter.ProcessorFile & {
4
+ lineOffset: number;
5
+ offset: number;
6
+ };
7
+ declare const processor: Linter.Processor<Block | string>;
8
+
9
+ export { Block, processor };
package/cjs/processor.js CHANGED
@@ -1,96 +1,127 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.processor = void 0;
4
- const path_1 = require("path");
5
- const graphql_tag_pluck_1 = require("@graphql-tools/graphql-tag-pluck");
6
- const utils_1 = require("@graphql-tools/utils");
7
- const graphql_config_js_1 = require("./graphql-config.js");
8
- const utils_js_1 = require("./utils.js");
9
- const blocksMap = new Map();
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
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") {
12
+ 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
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var processor_exports = {};
20
+ __export(processor_exports, {
21
+ processor: () => processor
22
+ });
23
+ module.exports = __toCommonJS(processor_exports);
24
+ var import_path = require("path");
25
+ var import_graphql_tag_pluck = require("@graphql-tools/graphql-tag-pluck");
26
+ var import_utils = require("@graphql-tools/utils");
27
+ var import_graphql_config2 = require("./graphql-config.js");
28
+ var import_utils2 = require("./utils.js");
29
+ const blocksMap = /* @__PURE__ */ new Map();
10
30
  let onDiskConfig;
11
31
  let onDiskConfigLoaded = false;
12
- const RELEVANT_KEYWORDS = ['gql', 'graphql', 'GraphQL'];
13
- exports.processor = {
14
- supportsAutofix: true,
15
- preprocess(code, filePath) {
16
- if (!onDiskConfigLoaded) {
17
- onDiskConfig = (0, graphql_config_js_1.loadOnDiskGraphQLConfig)(filePath);
18
- onDiskConfigLoaded = true;
19
- }
20
- let keywords = RELEVANT_KEYWORDS;
21
- const pluckConfig = onDiskConfig === null || onDiskConfig === void 0 ? void 0 : onDiskConfig.getProjectForFile(filePath).extensions.pluckConfig;
22
- if (pluckConfig) {
23
- const { modules = [], globalGqlIdentifierName = ['gql', 'graphql'], gqlMagicComment = 'GraphQL', } = pluckConfig;
24
- keywords = [
25
- ...new Set([
26
- ...modules.map(({ identifier }) => identifier),
27
- ...(0, utils_1.asArray)(globalGqlIdentifierName),
28
- gqlMagicComment,
29
- ].filter(utils_js_1.truthy)),
30
- ];
31
- }
32
- if (keywords.every(keyword => !code.includes(keyword))) {
33
- return [code];
32
+ const RELEVANT_KEYWORDS = ["gql", "graphql", "GraphQL"];
33
+ const processor = {
34
+ supportsAutofix: true,
35
+ preprocess(code, filePath) {
36
+ if (!onDiskConfigLoaded) {
37
+ onDiskConfig = (0, import_graphql_config2.loadOnDiskGraphQLConfig)(filePath);
38
+ onDiskConfigLoaded = true;
39
+ }
40
+ let keywords = RELEVANT_KEYWORDS;
41
+ const pluckConfig = onDiskConfig?.getProjectForFile(filePath).extensions.pluckConfig;
42
+ if (pluckConfig) {
43
+ const {
44
+ modules = [],
45
+ globalGqlIdentifierName = ["gql", "graphql"],
46
+ gqlMagicComment = "GraphQL"
47
+ } = pluckConfig;
48
+ keywords = [
49
+ ...new Set(
50
+ [
51
+ ...modules.map(({ identifier }) => identifier),
52
+ ...(0, import_utils.asArray)(globalGqlIdentifierName),
53
+ gqlMagicComment
54
+ ].filter(import_utils2.truthy)
55
+ )
56
+ ];
57
+ }
58
+ if (keywords.every((keyword) => !code.includes(keyword))) {
59
+ return [code];
60
+ }
61
+ try {
62
+ const sources = (0, import_graphql_tag_pluck.gqlPluckFromCodeStringSync)(filePath, code, {
63
+ skipIndent: true,
64
+ ...pluckConfig
65
+ });
66
+ const blocks = sources.map((item) => ({
67
+ filename: "document.graphql",
68
+ text: item.body,
69
+ lineOffset: item.locationOffset.line - 1,
70
+ // @ts-expect-error -- `index` field exist but show ts error
71
+ offset: item.locationOffset.index + 1
72
+ }));
73
+ blocksMap.set(filePath, blocks);
74
+ return [
75
+ ...blocks,
76
+ code
77
+ /* source code must be provided and be last */
78
+ ];
79
+ } catch (error) {
80
+ if (error instanceof Error) {
81
+ error.message = `[graphql-eslint] Error while preprocessing "${(0, import_path.relative)(
82
+ import_utils2.CWD,
83
+ filePath
84
+ )}" file
85
+
86
+ ${error.message}`;
87
+ }
88
+ console.error(error);
89
+ return [code];
90
+ }
91
+ },
92
+ postprocess(messages, filePath) {
93
+ const blocks = blocksMap.get(filePath) || [];
94
+ for (let i = 0; i < blocks.length; i += 1) {
95
+ const { lineOffset, offset } = blocks[i];
96
+ for (const message of messages[i] || []) {
97
+ const isVueOrSvelte = /\.(vue|svelte)$/.test(filePath);
98
+ if (isVueOrSvelte) {
99
+ delete message.endLine;
100
+ delete message.endColumn;
101
+ delete message.fix;
102
+ delete message.suggestions;
103
+ Object.assign(message, import_utils2.REPORT_ON_FIRST_CHARACTER);
104
+ continue;
34
105
  }
35
- try {
36
- const sources = (0, graphql_tag_pluck_1.gqlPluckFromCodeStringSync)(filePath, code, {
37
- skipIndent: true,
38
- ...pluckConfig,
39
- });
40
- const blocks = sources.map(item => ({
41
- filename: 'document.graphql',
42
- text: item.body,
43
- lineOffset: item.locationOffset.line - 1,
44
- // @ts-expect-error -- `index` field exist but show ts error
45
- offset: item.locationOffset.index + 1,
46
- }));
47
- blocksMap.set(filePath, blocks);
48
- return [...blocks, code /* source code must be provided and be last */];
106
+ message.line += lineOffset;
107
+ if (typeof message.endLine === "number") {
108
+ message.endLine += lineOffset;
49
109
  }
50
- catch (error) {
51
- if (error instanceof Error) {
52
- error.message = `[graphql-eslint] Error while preprocessing "${(0, path_1.relative)(utils_js_1.CWD, filePath)}" file\n\n${error.message}`;
53
- }
54
- // eslint-disable-next-line no-console
55
- console.error(error);
56
- // in case of parsing error return code as is
57
- return [code];
110
+ if (message.fix) {
111
+ message.fix.range[0] += offset;
112
+ message.fix.range[1] += offset;
58
113
  }
59
- },
60
- postprocess(messages, filePath) {
61
- const blocks = blocksMap.get(filePath) || [];
62
- for (let i = 0; i < blocks.length; i += 1) {
63
- const { lineOffset, offset } = blocks[i];
64
- for (const message of messages[i] || []) {
65
- const isVueOrSvelte = /\.(vue|svelte)$/.test(filePath);
66
- if (isVueOrSvelte) {
67
- // We can't show correct report location because after processing with
68
- // graphql-tag-pluck location is incorrect, disable fixes as well
69
- delete message.endLine;
70
- delete message.endColumn;
71
- delete message.fix;
72
- delete message.suggestions;
73
- Object.assign(message, utils_js_1.REPORT_ON_FIRST_CHARACTER);
74
- continue;
75
- }
76
- message.line += lineOffset;
77
- // endLine can not exist if only `loc: { start, column }` was provided to context.report
78
- if (typeof message.endLine === 'number') {
79
- message.endLine += lineOffset;
80
- }
81
- if (message.fix) {
82
- message.fix.range[0] += offset;
83
- message.fix.range[1] += offset;
84
- }
85
- for (const suggestion of message.suggestions || []) {
86
- // DO NOT mutate until https://github.com/eslint/eslint/issues/16716
87
- const [start, end] = suggestion.fix.range;
88
- suggestion.fix.range = [start + offset, end + offset];
89
- }
90
- }
114
+ for (const suggestion of message.suggestions || []) {
115
+ const [start, end] = suggestion.fix.range;
116
+ suggestion.fix.range = [start + offset, end + offset];
91
117
  }
92
- const result = messages.flat();
93
- // sort eslint/graphql-eslint messages by line/column
94
- return result.sort((a, b) => a.line - b.line || a.column - b.column);
95
- },
118
+ }
119
+ }
120
+ const result = messages.flat();
121
+ return result.sort((a, b) => a.line - b.line || a.column - b.column);
122
+ }
96
123
  };
124
+ // Annotate the CommonJS export names for ESM import in node:
125
+ 0 && (module.exports = {
126
+ processor
127
+ });
@@ -1,5 +1,12 @@
1
1
  import { FromSchema } from 'json-schema-to-ts';
2
- import { GraphQLESLintRule } from '../types.js';
2
+ import { i as GraphQLESLintRule } from '../types-e3367e3c.js';
3
+ import '@graphql-tools/utils';
4
+ import 'eslint';
5
+ import 'estree';
6
+ import 'graphql';
7
+ import 'graphql-config';
8
+ import '../estree-converter/types.js';
9
+
3
10
  declare const schema: {
4
11
  readonly type: "array";
5
12
  readonly minItems: 1;
@@ -71,6 +78,7 @@ declare const schema: {
71
78
  };
72
79
  };
73
80
  };
74
- export type RuleOptions = FromSchema<typeof schema>;
75
- export declare const rule: GraphQLESLintRule<RuleOptions>;
76
- export {};
81
+ type RuleOptions = FromSchema<typeof schema>;
82
+ declare const rule: GraphQLESLintRule<RuleOptions>;
83
+
84
+ export { RuleOptions, rule };