@graphql-eslint/eslint-plugin 4.0.0-alpha.5 → 4.0.0-alpha.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (215) hide show
  1. package/cjs/cache.js +8 -36
  2. package/cjs/chunk-UIAXBAMD.js +8 -0
  3. package/cjs/configs/index.d.cts +15 -5
  4. package/cjs/configs/index.js +31 -45
  5. package/cjs/configs/operations-all.js +33 -26
  6. package/cjs/configs/operations-recommended.js +59 -52
  7. package/cjs/configs/schema-all.js +29 -22
  8. package/cjs/configs/schema-recommended.js +73 -66
  9. package/cjs/configs/schema-relay.js +17 -10
  10. package/cjs/documents.js +12 -37
  11. package/cjs/estree-converter/converter.js +16 -30
  12. package/cjs/estree-converter/index.js +3 -23
  13. package/cjs/estree-converter/types.js +1 -14
  14. package/cjs/estree-converter/utils.js +22 -40
  15. package/cjs/graphql-config.js +15 -41
  16. package/cjs/index.d.cts +165 -10
  17. package/cjs/index.js +24 -41
  18. package/cjs/meta.d.cts +1 -1
  19. package/cjs/meta.js +5 -34
  20. package/cjs/parser.d.cts +1 -1
  21. package/cjs/parser.js +29 -49
  22. package/cjs/processor.d.cts +1 -1
  23. package/cjs/processor.js +22 -35
  24. package/{esm/rules/alphabetize.d.ts → cjs/rules/alphabetize/index.d.cts} +3 -3
  25. package/cjs/rules/{alphabetize.js → alphabetize/index.js} +47 -71
  26. package/{esm/rules/description-style.d.ts → cjs/rules/description-style/index.d.cts} +3 -3
  27. package/cjs/rules/{description-style.js → description-style/index.js} +7 -27
  28. package/cjs/rules/graphql-js-validation.js +93 -70
  29. package/cjs/rules/index.d.cts +5 -5
  30. package/cjs/rules/index.js +74 -60
  31. package/{esm/rules/input-name.d.ts → cjs/rules/input-name/index.d.cts} +3 -3
  32. package/cjs/rules/{input-name.js → input-name/index.js} +10 -28
  33. package/{esm/rules/lone-executable-definition.d.ts → cjs/rules/lone-executable-definition/index.d.cts} +3 -3
  34. package/cjs/rules/{lone-executable-definition.js → lone-executable-definition/index.js} +13 -32
  35. package/cjs/rules/{match-document-filename.d.cts → match-document-filename/index.d.cts} +4 -4
  36. package/cjs/rules/{match-document-filename.js → match-document-filename/index.js} +20 -34
  37. package/{esm/rules/naming-convention.d.ts → cjs/rules/naming-convention/index.d.cts} +3 -3
  38. package/cjs/rules/{naming-convention.js → naming-convention/index.js} +41 -54
  39. package/cjs/rules/no-anonymous-operations/index.d.cts +13 -0
  40. package/cjs/rules/{no-anonymous-operations.js → no-anonymous-operations/index.js} +9 -28
  41. package/cjs/rules/{no-deprecated.d.cts → no-deprecated/index.d.cts} +3 -3
  42. package/cjs/rules/{no-deprecated.js → no-deprecated/index.js} +11 -30
  43. package/cjs/rules/no-duplicate-fields/index.d.cts +13 -0
  44. package/cjs/rules/{no-duplicate-fields.js → no-duplicate-fields/index.js} +8 -28
  45. package/cjs/rules/{no-hashtag-description.d.cts → no-hashtag-description/index.d.cts} +3 -3
  46. package/cjs/rules/{no-hashtag-description.js → no-hashtag-description/index.js} +11 -31
  47. package/cjs/rules/no-one-place-fragments/index.d.cts +13 -0
  48. package/cjs/rules/{no-one-place-fragments.js → no-one-place-fragments/index.js} +11 -29
  49. package/cjs/rules/{no-root-type.d.cts → no-root-type/index.d.cts} +3 -3
  50. package/cjs/rules/{no-root-type.js → no-root-type/index.js} +9 -29
  51. package/cjs/rules/no-scalar-result-type-on-mutation/index.d.cts +13 -0
  52. package/cjs/rules/no-scalar-result-type-on-mutation/index.js +69 -0
  53. package/cjs/rules/no-typename-prefix/index.d.cts +13 -0
  54. package/cjs/rules/{no-typename-prefix.js → no-typename-prefix/index.js} +5 -25
  55. package/cjs/rules/no-unreachable-types/index.d.cts +13 -0
  56. package/cjs/rules/no-unreachable-types/index.js +155 -0
  57. package/cjs/rules/no-unused-fields/index.d.cts +13 -0
  58. package/cjs/rules/{no-unused-fields.js → no-unused-fields/index.js} +12 -30
  59. package/{esm/rules/relay-arguments.d.ts → cjs/rules/relay-arguments/index.d.cts} +3 -3
  60. package/cjs/rules/{relay-arguments.js → relay-arguments/index.js} +11 -30
  61. package/{esm/rules/relay-connection-types.d.ts → cjs/rules/relay-connection-types/index.d.cts} +3 -3
  62. package/cjs/rules/{relay-connection-types.js → relay-connection-types/index.js} +19 -40
  63. package/{esm/rules/relay-edge-types.d.ts → cjs/rules/relay-edge-types/index.d.cts} +3 -3
  64. package/cjs/rules/{relay-edge-types.js → relay-edge-types/index.js} +30 -43
  65. package/cjs/rules/relay-page-info/index.d.cts +13 -0
  66. package/cjs/rules/{relay-page-info.js → relay-page-info/index.js} +12 -30
  67. package/{esm/rules/require-deprecation-date.d.ts → cjs/rules/require-deprecation-date/index.d.cts} +3 -3
  68. package/cjs/rules/{require-deprecation-date.js → require-deprecation-date/index.js} +13 -32
  69. package/cjs/rules/require-deprecation-reason/index.d.cts +13 -0
  70. package/cjs/rules/require-deprecation-reason/index.js +66 -0
  71. package/cjs/rules/{require-description.d.cts → require-description/index.d.cts} +3 -3
  72. package/cjs/rules/{require-description.js → require-description/index.js} +30 -44
  73. package/cjs/rules/require-field-of-type-query-in-mutation-result/index.d.cts +13 -0
  74. package/cjs/rules/{require-field-of-type-query-in-mutation-result.js → require-field-of-type-query-in-mutation-result/index.js} +10 -29
  75. package/cjs/rules/require-import-fragment/index.d.cts +13 -0
  76. package/cjs/rules/{require-import-fragment.js → require-import-fragment/index.js} +11 -38
  77. package/cjs/rules/require-nullable-fields-with-oneof/index.d.cts +13 -0
  78. package/cjs/rules/require-nullable-fields-with-oneof/index.js +62 -0
  79. package/cjs/rules/require-nullable-result-in-root/index.d.cts +13 -0
  80. package/cjs/rules/{require-nullable-result-in-root.js → require-nullable-result-in-root/index.js} +12 -31
  81. package/cjs/rules/{require-selections.d.cts → require-selections/index.d.cts} +3 -3
  82. package/cjs/rules/{require-selections.js → require-selections/index.js} +38 -43
  83. package/cjs/rules/require-type-pattern-with-oneof/index.d.cts +13 -0
  84. package/cjs/rules/require-type-pattern-with-oneof/index.js +63 -0
  85. package/{esm/rules/selection-set-depth.d.ts → cjs/rules/selection-set-depth/index.d.cts} +3 -3
  86. package/cjs/rules/{selection-set-depth.js → selection-set-depth/index.js} +15 -41
  87. package/cjs/rules/{strict-id-in-types.d.cts → strict-id-in-types/index.d.cts} +3 -3
  88. package/cjs/rules/{strict-id-in-types.js → strict-id-in-types/index.js} +26 -39
  89. package/cjs/rules/unique-enum-value-names/index.d.cts +13 -0
  90. package/cjs/rules/{unique-enum-value-names.js → unique-enum-value-names/index.js} +10 -29
  91. package/{esm/rules/unique-fragment-name.d.ts → cjs/rules/unique-fragment-name/index.d.cts} +3 -3
  92. package/cjs/rules/unique-fragment-name/index.js +87 -0
  93. package/cjs/rules/unique-operation-name/index.d.cts +13 -0
  94. package/cjs/rules/{unique-operation-name.js → unique-operation-name/index.js} +7 -27
  95. package/cjs/schema.js +11 -36
  96. package/cjs/siblings.js +17 -33
  97. package/cjs/types.js +1 -14
  98. package/cjs/utils.d.cts +2 -2
  99. package/cjs/utils.js +71 -115
  100. package/esm/configs/index.d.ts +15 -5
  101. package/esm/configs/index.js +17 -7
  102. package/esm/index.d.ts +165 -10
  103. package/esm/index.js +9 -2
  104. package/esm/meta.d.ts +1 -1
  105. package/esm/meta.js +1 -2
  106. package/esm/parser.d.ts +1 -1
  107. package/esm/processor.d.ts +1 -1
  108. package/{cjs/rules/alphabetize.d.cts → esm/rules/alphabetize/index.d.ts} +3 -3
  109. package/esm/rules/{alphabetize.js → alphabetize/index.js} +2 -2
  110. package/{cjs/rules/description-style.d.cts → esm/rules/description-style/index.d.ts} +3 -3
  111. package/esm/rules/{description-style.js → description-style/index.js} +2 -2
  112. package/esm/rules/index.d.ts +5 -5
  113. package/esm/rules/index.js +34 -34
  114. package/{cjs/rules/input-name.d.cts → esm/rules/input-name/index.d.ts} +3 -3
  115. package/esm/rules/{input-name.js → input-name/index.js} +1 -1
  116. package/{cjs/rules/lone-executable-definition.d.cts → esm/rules/lone-executable-definition/index.d.ts} +3 -3
  117. package/esm/rules/{lone-executable-definition.js → lone-executable-definition/index.js} +2 -2
  118. package/esm/rules/{match-document-filename.d.ts → match-document-filename/index.d.ts} +4 -4
  119. package/esm/rules/{match-document-filename.js → match-document-filename/index.js} +2 -2
  120. package/{cjs/rules/naming-convention.d.cts → esm/rules/naming-convention/index.d.ts} +3 -3
  121. package/esm/rules/{naming-convention.js → naming-convention/index.js} +2 -2
  122. package/{cjs/rules/no-anonymous-operations.d.cts → esm/rules/no-anonymous-operations/index.d.ts} +3 -3
  123. package/esm/rules/{no-anonymous-operations.js → no-anonymous-operations/index.js} +2 -2
  124. package/esm/rules/{no-deprecated.d.ts → no-deprecated/index.d.ts} +3 -3
  125. package/esm/rules/{no-deprecated.js → no-deprecated/index.js} +2 -2
  126. package/{cjs/rules/no-one-place-fragments.d.cts → esm/rules/no-duplicate-fields/index.d.ts} +3 -3
  127. package/esm/rules/{no-duplicate-fields.js → no-duplicate-fields/index.js} +1 -1
  128. package/esm/rules/{no-hashtag-description.d.ts → no-hashtag-description/index.d.ts} +3 -3
  129. package/esm/rules/{no-hashtag-description.js → no-hashtag-description/index.js} +2 -2
  130. package/{cjs/rules/no-duplicate-fields.d.cts → esm/rules/no-one-place-fragments/index.d.ts} +3 -3
  131. package/esm/rules/{no-one-place-fragments.js → no-one-place-fragments/index.js} +2 -2
  132. package/esm/rules/{no-root-type.d.ts → no-root-type/index.d.ts} +3 -3
  133. package/esm/rules/{no-root-type.js → no-root-type/index.js} +2 -2
  134. package/{cjs/rules/no-scalar-result-type-on-mutation.d.cts → esm/rules/no-scalar-result-type-on-mutation/index.d.ts} +3 -3
  135. package/esm/rules/{no-scalar-result-type-on-mutation.js → no-scalar-result-type-on-mutation/index.js} +2 -2
  136. package/esm/rules/no-typename-prefix/index.d.ts +13 -0
  137. package/esm/rules/{no-typename-prefix.js → no-typename-prefix/index.js} +1 -1
  138. package/esm/rules/no-unreachable-types/index.d.ts +13 -0
  139. package/esm/rules/{no-unreachable-types.js → no-unreachable-types/index.js} +3 -3
  140. package/esm/rules/no-unused-fields/index.d.ts +13 -0
  141. package/esm/rules/{no-unused-fields.js → no-unused-fields/index.js} +3 -3
  142. package/{cjs/rules/relay-arguments.d.cts → esm/rules/relay-arguments/index.d.ts} +3 -3
  143. package/esm/rules/{relay-arguments.js → relay-arguments/index.js} +2 -2
  144. package/{cjs/rules/relay-connection-types.d.cts → esm/rules/relay-connection-types/index.d.ts} +3 -3
  145. package/esm/rules/{relay-connection-types.js → relay-connection-types/index.js} +1 -1
  146. package/{cjs/rules/relay-edge-types.d.cts → esm/rules/relay-edge-types/index.d.ts} +3 -3
  147. package/esm/rules/{relay-edge-types.js → relay-edge-types/index.js} +2 -2
  148. package/esm/rules/relay-page-info/index.d.ts +13 -0
  149. package/esm/rules/{relay-page-info.js → relay-page-info/index.js} +3 -3
  150. package/{cjs/rules/require-deprecation-date.d.cts → esm/rules/require-deprecation-date/index.d.ts} +3 -3
  151. package/esm/rules/{require-deprecation-date.js → require-deprecation-date/index.js} +3 -3
  152. package/esm/rules/require-deprecation-reason/index.d.ts +13 -0
  153. package/esm/rules/{require-deprecation-reason.js → require-deprecation-reason/index.js} +3 -3
  154. package/esm/rules/{require-description.d.ts → require-description/index.d.ts} +3 -3
  155. package/esm/rules/{require-description.js → require-description/index.js} +2 -2
  156. package/esm/rules/require-field-of-type-query-in-mutation-result/index.d.ts +13 -0
  157. package/esm/rules/{require-field-of-type-query-in-mutation-result.js → require-field-of-type-query-in-mutation-result/index.js} +2 -2
  158. package/esm/rules/require-import-fragment/index.d.ts +13 -0
  159. package/esm/rules/{require-import-fragment.js → require-import-fragment/index.js} +2 -2
  160. package/esm/rules/require-nullable-fields-with-oneof/index.d.ts +13 -0
  161. package/esm/rules/{require-nullable-fields-with-oneof.js → require-nullable-fields-with-oneof/index.js} +2 -2
  162. package/esm/rules/require-nullable-result-in-root/index.d.ts +13 -0
  163. package/esm/rules/{require-nullable-result-in-root.js → require-nullable-result-in-root/index.js} +2 -2
  164. package/esm/rules/{require-selections.d.ts → require-selections/index.d.ts} +3 -3
  165. package/esm/rules/{require-selections.js → require-selections/index.js} +3 -4
  166. package/esm/rules/require-type-pattern-with-oneof/index.d.ts +13 -0
  167. package/esm/rules/{require-type-pattern-with-oneof.js → require-type-pattern-with-oneof/index.js} +2 -2
  168. package/{cjs/rules/selection-set-depth.d.cts → esm/rules/selection-set-depth/index.d.ts} +3 -3
  169. package/esm/rules/{selection-set-depth.js → selection-set-depth/index.js} +2 -2
  170. package/esm/rules/{strict-id-in-types.d.ts → strict-id-in-types/index.d.ts} +3 -3
  171. package/esm/rules/{strict-id-in-types.js → strict-id-in-types/index.js} +2 -2
  172. package/esm/rules/unique-enum-value-names/index.d.ts +13 -0
  173. package/esm/rules/{unique-enum-value-names.js → unique-enum-value-names/index.js} +2 -2
  174. package/{cjs/rules/unique-fragment-name.d.cts → esm/rules/unique-fragment-name/index.d.ts} +3 -3
  175. package/esm/rules/{unique-fragment-name.js → unique-fragment-name/index.js} +3 -3
  176. package/esm/rules/unique-operation-name/index.d.ts +13 -0
  177. package/esm/rules/{unique-operation-name.js → unique-operation-name/index.js} +2 -2
  178. package/esm/utils.d.ts +2 -2
  179. package/esm/utils.js +2 -2
  180. package/index.browser.js +54 -115
  181. package/package.json +2 -2
  182. package/cjs/rules/no-scalar-result-type-on-mutation.js +0 -88
  183. package/cjs/rules/no-typename-prefix.d.cts +0 -13
  184. package/cjs/rules/no-unreachable-types.d.cts +0 -13
  185. package/cjs/rules/no-unreachable-types.js +0 -175
  186. package/cjs/rules/no-unused-fields.d.cts +0 -13
  187. package/cjs/rules/relay-page-info.d.cts +0 -13
  188. package/cjs/rules/require-deprecation-reason.d.cts +0 -13
  189. package/cjs/rules/require-deprecation-reason.js +0 -85
  190. package/cjs/rules/require-field-of-type-query-in-mutation-result.d.cts +0 -13
  191. package/cjs/rules/require-import-fragment.d.cts +0 -13
  192. package/cjs/rules/require-nullable-fields-with-oneof.d.cts +0 -13
  193. package/cjs/rules/require-nullable-fields-with-oneof.js +0 -81
  194. package/cjs/rules/require-nullable-result-in-root.d.cts +0 -13
  195. package/cjs/rules/require-type-pattern-with-oneof.d.cts +0 -13
  196. package/cjs/rules/require-type-pattern-with-oneof.js +0 -83
  197. package/cjs/rules/unique-enum-value-names.d.cts +0 -13
  198. package/cjs/rules/unique-fragment-name.js +0 -106
  199. package/cjs/rules/unique-operation-name.d.cts +0 -13
  200. package/esm/rules/no-anonymous-operations.d.ts +0 -13
  201. package/esm/rules/no-duplicate-fields.d.ts +0 -13
  202. package/esm/rules/no-one-place-fragments.d.ts +0 -13
  203. package/esm/rules/no-scalar-result-type-on-mutation.d.ts +0 -13
  204. package/esm/rules/no-typename-prefix.d.ts +0 -13
  205. package/esm/rules/no-unreachable-types.d.ts +0 -13
  206. package/esm/rules/no-unused-fields.d.ts +0 -13
  207. package/esm/rules/relay-page-info.d.ts +0 -13
  208. package/esm/rules/require-deprecation-reason.d.ts +0 -13
  209. package/esm/rules/require-field-of-type-query-in-mutation-result.d.ts +0 -13
  210. package/esm/rules/require-import-fragment.d.ts +0 -13
  211. package/esm/rules/require-nullable-fields-with-oneof.d.ts +0 -13
  212. package/esm/rules/require-nullable-result-in-root.d.ts +0 -13
  213. package/esm/rules/require-type-pattern-with-oneof.d.ts +0 -13
  214. package/esm/rules/unique-enum-value-names.d.ts +0 -13
  215. package/esm/rules/unique-operation-name.d.ts +0 -13
package/esm/index.d.ts CHANGED
@@ -1,29 +1,184 @@
1
+ import { RuleOptions } from './rules/require-description/index.js';
2
+ import { CaseStyle } from './utils.js';
3
+ export { requireGraphQLSchemaFromContext, requireSiblingsOperations } from './utils.js';
4
+ import * as graphql from 'graphql';
5
+ import { GraphQLESLintRule } from './types.js';
6
+ export { CategoryType, ConfigName, GraphQLESLintParseResult, GraphQLESLintRuleContext, GraphQLESLintRuleListener, OmitRecursively, ParserOptions, ParserServices, Pointer, ReportDescriptor, RuleDocsInfo, Schema, ValueOf } from './types.js';
1
7
  import * as eslint from 'eslint';
2
8
  import { Block } from './processor.js';
3
- export { parseForESLint, parser } from './parser.js';
4
- export { rules } from './rules/index.js';
5
- export { CategoryType, ConfigName, GraphQLESLintParseResult, GraphQLESLintRule, GraphQLESLintRuleContext, GraphQLESLintRuleListener, OmitRecursively, ParserOptions, ParserServices, Pointer, ReportDescriptor, RuleDocsInfo, Schema, ValueOf } from './types.js';
6
- export { requireGraphQLSchemaFromContext, requireSiblingsOperations } from './utils.js';
7
9
  export { configs } from './configs/index.js';
10
+ import { parseForESLint } from './parser.js';
11
+ export { parser } from './parser.js';
12
+ export { rules } from './rules/index.js';
8
13
  export { GraphQLESTreeNode } from './estree-converter/types.js';
9
- import './rules/require-description.js';
10
- import 'graphql';
11
14
  import 'estree';
12
- import 'graphql-config';
13
- import 'json-schema-to-ts';
14
15
  import './siblings.js';
15
16
  import '@graphql-tools/utils';
17
+ import 'graphql-config';
18
+ import 'json-schema-to-ts';
16
19
 
17
20
  declare const processors: {
18
21
  graphql: {
19
22
  meta: {
20
23
  name: string;
21
- version: string;
24
+ version: string | undefined;
25
+ };
26
+ supportsAutofix: true;
27
+ preprocess(code: string, filePath: string): (string | Block)[];
28
+ postprocess(messages: eslint.Linter.LintMessage[][], filePath: string): eslint.Linter.LintMessage[];
29
+ };
30
+ };
31
+
32
+ declare const _default: {
33
+ parser: {
34
+ parseForESLint: typeof parseForESLint;
35
+ meta: {
36
+ name: string;
37
+ version: string | undefined;
38
+ };
39
+ };
40
+ processor: {
41
+ meta: {
42
+ name: string;
43
+ version: string | undefined;
22
44
  };
23
45
  supportsAutofix: true;
24
46
  preprocess(code: string, filePath: string): (string | Block)[];
25
47
  postprocess(messages: eslint.Linter.LintMessage[][], filePath: string): eslint.Linter.LintMessage[];
26
48
  };
49
+ rules: {
50
+ alphabetize: GraphQLESLintRule<{
51
+ definitions?: boolean | undefined;
52
+ selections?: ("OperationDefinition" | "FragmentDefinition")[] | undefined;
53
+ arguments?: ("Field" | "Directive" | "FieldDefinition" | "DirectiveDefinition")[] | undefined;
54
+ values?: boolean | undefined;
55
+ fields?: ("ObjectTypeDefinition" | "InterfaceTypeDefinition" | "InputObjectTypeDefinition")[] | undefined;
56
+ variables?: boolean | undefined;
57
+ groups?: string[] | undefined;
58
+ }[]>;
59
+ 'description-style': GraphQLESLintRule<{
60
+ style: "block" | "inline";
61
+ }[]>;
62
+ 'input-name': GraphQLESLintRule<{
63
+ checkInputType?: boolean | undefined;
64
+ caseSensitiveInputType?: boolean | undefined;
65
+ checkQueries?: boolean | undefined;
66
+ checkMutations?: boolean | undefined;
67
+ }[]>;
68
+ 'lone-executable-definition': GraphQLESLintRule<{
69
+ ignore?: (graphql.OperationTypeNode | "fragment")[] | undefined;
70
+ }[]>;
71
+ 'match-document-filename': GraphQLESLintRule<{
72
+ fragment?: (CaseStyle | "matchDocumentStyle") | {
73
+ style?: (CaseStyle | "matchDocumentStyle") | undefined;
74
+ suffix?: string | undefined;
75
+ prefix?: string | undefined;
76
+ } | undefined;
77
+ mutation?: (CaseStyle | "matchDocumentStyle") | {
78
+ style?: (CaseStyle | "matchDocumentStyle") | undefined;
79
+ suffix?: string | undefined;
80
+ prefix?: string | undefined;
81
+ } | undefined;
82
+ subscription?: (CaseStyle | "matchDocumentStyle") | {
83
+ style?: (CaseStyle | "matchDocumentStyle") | undefined;
84
+ suffix?: string | undefined;
85
+ prefix?: string | undefined;
86
+ } | undefined;
87
+ query?: (CaseStyle | "matchDocumentStyle") | {
88
+ style?: (CaseStyle | "matchDocumentStyle") | undefined;
89
+ suffix?: string | undefined;
90
+ prefix?: string | undefined;
91
+ } | undefined;
92
+ fileExtension?: ".gql" | ".graphql" | undefined;
93
+ }[]>;
94
+ 'naming-convention': GraphQLESLintRule<{
95
+ [x: string]: unknown;
96
+ types?: ("camelCase" | "PascalCase" | "snake_case" | "UPPER_CASE") | {
97
+ style?: ("camelCase" | "PascalCase" | "snake_case" | "UPPER_CASE") | undefined;
98
+ suffix?: string | undefined;
99
+ prefix?: string | undefined;
100
+ forbiddenPrefixes?: string[] | undefined;
101
+ forbiddenSuffixes?: string[] | undefined;
102
+ requiredPrefixes?: string[] | undefined;
103
+ requiredSuffixes?: string[] | undefined;
104
+ ignorePattern?: string | undefined;
105
+ } | undefined;
106
+ allowLeadingUnderscore?: boolean | undefined;
107
+ allowTrailingUnderscore?: boolean | undefined;
108
+ }[]>;
109
+ 'no-anonymous-operations': GraphQLESLintRule;
110
+ 'no-deprecated': GraphQLESLintRule<[], true>;
111
+ 'no-duplicate-fields': GraphQLESLintRule;
112
+ 'no-hashtag-description': GraphQLESLintRule;
113
+ 'no-one-place-fragments': GraphQLESLintRule;
114
+ 'no-root-type': GraphQLESLintRule<{
115
+ disallow: ("mutation" | "subscription")[];
116
+ }[]>;
117
+ 'no-scalar-result-type-on-mutation': GraphQLESLintRule;
118
+ 'no-typename-prefix': GraphQLESLintRule;
119
+ 'no-unreachable-types': GraphQLESLintRule;
120
+ 'no-unused-fields': GraphQLESLintRule;
121
+ 'relay-arguments': GraphQLESLintRule<{
122
+ includeBoth: boolean;
123
+ }[], true>;
124
+ 'relay-connection-types': GraphQLESLintRule;
125
+ 'relay-edge-types': GraphQLESLintRule<{
126
+ withEdgeSuffix?: boolean | undefined;
127
+ shouldImplementNode?: boolean | undefined;
128
+ listTypeCanWrapOnlyEdgeType?: boolean | undefined;
129
+ }[], true>;
130
+ 'relay-page-info': GraphQLESLintRule;
131
+ 'require-deprecation-date': GraphQLESLintRule<{
132
+ argumentName?: string | undefined;
133
+ }[]>;
134
+ 'require-deprecation-reason': GraphQLESLintRule;
135
+ 'require-description': GraphQLESLintRule<RuleOptions>;
136
+ 'require-field-of-type-query-in-mutation-result': GraphQLESLintRule;
137
+ 'require-import-fragment': GraphQLESLintRule;
138
+ 'require-nullable-fields-with-oneof': GraphQLESLintRule;
139
+ 'require-nullable-result-in-root': GraphQLESLintRule;
140
+ 'require-selections': GraphQLESLintRule<{
141
+ fieldName: string | string[];
142
+ }[], true>;
143
+ 'require-type-pattern-with-oneof': GraphQLESLintRule;
144
+ 'selection-set-depth': GraphQLESLintRule<{
145
+ ignore?: string[] | undefined;
146
+ maxDepth: number;
147
+ }[]>;
148
+ 'strict-id-in-types': GraphQLESLintRule<{
149
+ acceptedIdNames?: string[] | undefined;
150
+ acceptedIdTypes?: string[] | undefined;
151
+ exceptions?: {
152
+ types?: string[] | undefined;
153
+ suffixes?: string[] | undefined;
154
+ } | undefined;
155
+ }[]>;
156
+ 'unique-enum-value-names': GraphQLESLintRule;
157
+ 'unique-fragment-name': GraphQLESLintRule;
158
+ 'unique-operation-name': GraphQLESLintRule;
159
+ };
160
+ configs: {
161
+ 'schema-recommended': any;
162
+ 'schema-all': any;
163
+ 'schema-relay': any;
164
+ 'operations-recommended': any;
165
+ 'operations-all': any;
166
+ 'flat/schema-recommended': {
167
+ rules: any;
168
+ };
169
+ 'flat/schema-all': {
170
+ rules: any;
171
+ };
172
+ 'flat/schema-relay': {
173
+ rules: any;
174
+ };
175
+ 'flat/operations-recommended': {
176
+ rules: any;
177
+ };
178
+ 'flat/operations-all': {
179
+ rules: any;
180
+ };
181
+ };
27
182
  };
28
183
 
29
- export { processors };
184
+ export { GraphQLESLintRule, _default as default, parseForESLint, processors };
package/esm/index.js CHANGED
@@ -1,13 +1,20 @@
1
1
  import "./chunk-UIAXBAMD.js";
2
+ import { configs } from "./configs/index.js";
3
+ import { parseForESLint, parser } from "./parser.js";
2
4
  import { processor } from "./processor.js";
3
- import { parser, parseForESLint } from "./parser.js";
4
5
  import { rules } from "./rules/index.js";
5
6
  export * from "./types.js";
6
7
  import { requireGraphQLSchemaFromContext, requireSiblingsOperations } from "./utils.js";
7
8
  const processors = { graphql: processor };
8
- import { configs } from "./configs/index.js";
9
+ var src_default = {
10
+ parser,
11
+ processor,
12
+ rules,
13
+ configs
14
+ };
9
15
  export {
10
16
  configs,
17
+ src_default as default,
11
18
  parseForESLint,
12
19
  parser,
13
20
  processors,
package/esm/meta.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- declare const version: string;
1
+ declare const version: string | undefined;
2
2
 
3
3
  export { version };
package/esm/meta.js CHANGED
@@ -1,6 +1,5 @@
1
1
  import "./chunk-UIAXBAMD.js";
2
- import packageJson from "../package.json" with { type: "json" };
3
- const { version } = packageJson;
2
+ const version = "4.0.0-alpha.7";
4
3
  export {
5
4
  version
6
5
  };
package/esm/parser.d.ts CHANGED
@@ -13,7 +13,7 @@ declare const parser: {
13
13
  parseForESLint: typeof parseForESLint;
14
14
  meta: {
15
15
  name: string;
16
- version: string;
16
+ version: string | undefined;
17
17
  };
18
18
  };
19
19
 
@@ -7,7 +7,7 @@ type Block = Linter.ProcessorFile & {
7
7
  declare const processor: {
8
8
  meta: {
9
9
  name: string;
10
- version: string;
10
+ version: string | undefined;
11
11
  };
12
12
  supportsAutofix: true;
13
13
  preprocess(code: string, filePath: string): (string | Block)[];
@@ -1,11 +1,11 @@
1
1
  import { FromSchema } from 'json-schema-to-ts';
2
- import { GraphQLESLintRule } from '../types.cjs';
2
+ import { GraphQLESLintRule } from '../../types.js';
3
3
  import 'eslint';
4
4
  import 'estree';
5
5
  import 'graphql';
6
6
  import 'graphql-config';
7
- import '../estree-converter/types.cjs';
8
- import '../siblings.cjs';
7
+ import '../../estree-converter/types.js';
8
+ import '../../siblings.js';
9
9
  import '@graphql-tools/utils';
10
10
 
11
11
  declare const schema: {
@@ -1,9 +1,9 @@
1
- import "../chunk-UIAXBAMD.js";
1
+ import "../../chunk-UIAXBAMD.js";
2
2
  import {
3
3
  Kind
4
4
  } from "graphql";
5
5
  import lowerCase from "lodash.lowercase";
6
- import { ARRAY_DEFAULT_OPTIONS, displayNodeName, truthy } from "../utils.js";
6
+ import { ARRAY_DEFAULT_OPTIONS, displayNodeName, truthy } from "../../utils.js";
7
7
  const RULE_ID = "alphabetize", fieldsEnum = [
8
8
  Kind.OBJECT_TYPE_DEFINITION,
9
9
  Kind.INTERFACE_TYPE_DEFINITION,
@@ -1,11 +1,11 @@
1
1
  import { FromSchema } from 'json-schema-to-ts';
2
- import { GraphQLESLintRule } from '../types.cjs';
2
+ import { GraphQLESLintRule } from '../../types.js';
3
3
  import 'eslint';
4
4
  import 'estree';
5
5
  import 'graphql';
6
6
  import 'graphql-config';
7
- import '../estree-converter/types.cjs';
8
- import '../siblings.cjs';
7
+ import '../../estree-converter/types.js';
8
+ import '../../siblings.js';
9
9
  import '@graphql-tools/utils';
10
10
 
11
11
  declare const schema: {
@@ -1,5 +1,5 @@
1
- import "../chunk-UIAXBAMD.js";
2
- import { getNodeName } from "../utils.js";
1
+ import "../../chunk-UIAXBAMD.js";
2
+ import { getNodeName } from "../../utils.js";
3
3
  const schema = {
4
4
  type: "array",
5
5
  maxItems: 1,
@@ -1,4 +1,4 @@
1
- import { RuleOptions } from './require-description.js';
1
+ import { RuleOptions } from './require-description/index.js';
2
2
  import { CaseStyle } from '../utils.js';
3
3
  import * as graphql from 'graphql';
4
4
  import { GraphQLESLintRule } from '../types.js';
@@ -38,22 +38,22 @@ declare const rules: {
38
38
  suffix?: string | undefined;
39
39
  prefix?: string | undefined;
40
40
  } | undefined;
41
- fileExtension?: ".gql" | ".graphql" | undefined;
42
- query?: (CaseStyle | "matchDocumentStyle") | {
41
+ mutation?: (CaseStyle | "matchDocumentStyle") | {
43
42
  style?: (CaseStyle | "matchDocumentStyle") | undefined;
44
43
  suffix?: string | undefined;
45
44
  prefix?: string | undefined;
46
45
  } | undefined;
47
- mutation?: (CaseStyle | "matchDocumentStyle") | {
46
+ subscription?: (CaseStyle | "matchDocumentStyle") | {
48
47
  style?: (CaseStyle | "matchDocumentStyle") | undefined;
49
48
  suffix?: string | undefined;
50
49
  prefix?: string | undefined;
51
50
  } | undefined;
52
- subscription?: (CaseStyle | "matchDocumentStyle") | {
51
+ query?: (CaseStyle | "matchDocumentStyle") | {
53
52
  style?: (CaseStyle | "matchDocumentStyle") | undefined;
54
53
  suffix?: string | undefined;
55
54
  prefix?: string | undefined;
56
55
  } | undefined;
56
+ fileExtension?: ".gql" | ".graphql" | undefined;
57
57
  }[]>;
58
58
  'naming-convention': GraphQLESLintRule<{
59
59
  [x: string]: unknown;
@@ -1,39 +1,39 @@
1
1
  import "../chunk-UIAXBAMD.js";
2
- import { rule as alphabetize } from "./alphabetize.js";
3
- import { rule as descriptionStyle } from "./description-style.js";
2
+ import { rule as alphabetize } from "./alphabetize/index.js";
3
+ import { rule as descriptionStyle } from "./description-style/index.js";
4
4
  import { GRAPHQL_JS_VALIDATIONS } from "./graphql-js-validation.js";
5
- import { rule as inputName } from "./input-name.js";
6
- import { rule as loneExecutableDefinition } from "./lone-executable-definition.js";
7
- import { rule as matchDocumentFilename } from "./match-document-filename.js";
8
- import { rule as namingConvention } from "./naming-convention.js";
9
- import { rule as noAnonymousOperations } from "./no-anonymous-operations.js";
10
- import { rule as noDeprecated } from "./no-deprecated.js";
11
- import { rule as noDuplicateFields } from "./no-duplicate-fields.js";
12
- import { rule as noHashtagDescription } from "./no-hashtag-description.js";
13
- import { rule as noOnePlaceFragments } from "./no-one-place-fragments.js";
14
- import { rule as noRootType } from "./no-root-type.js";
15
- import { rule as noScalarResultTypeOnMutation } from "./no-scalar-result-type-on-mutation.js";
16
- import { rule as noTypenamePrefix } from "./no-typename-prefix.js";
17
- import { rule as noUnreachableTypes } from "./no-unreachable-types.js";
18
- import { rule as noUnusedFields } from "./no-unused-fields.js";
19
- import { rule as relayArguments } from "./relay-arguments.js";
20
- import { rule as relayConnectionTypes } from "./relay-connection-types.js";
21
- import { rule as relayEdgeTypes } from "./relay-edge-types.js";
22
- import { rule as relayPageInfo } from "./relay-page-info.js";
23
- import { rule as requireDeprecationDate } from "./require-deprecation-date.js";
24
- import { rule as requireDeprecationReason } from "./require-deprecation-reason.js";
25
- import { rule as requireDescription } from "./require-description.js";
26
- import { rule as requireFieldOfTypeQueryInMutationResult } from "./require-field-of-type-query-in-mutation-result.js";
27
- import { rule as requireImportFragment } from "./require-import-fragment.js";
28
- import { rule as requireNullableFieldsWithOneof } from "./require-nullable-fields-with-oneof.js";
29
- import { rule as requireNullableResultInRoot } from "./require-nullable-result-in-root.js";
30
- import { rule as requireSelections } from "./require-selections.js";
31
- import { rule as requireTypePatternWithOneof } from "./require-type-pattern-with-oneof.js";
32
- import { rule as selectionSetDepth } from "./selection-set-depth.js";
33
- import { rule as strictIdInTypes } from "./strict-id-in-types.js";
34
- import { rule as uniqueEnumValueNames } from "./unique-enum-value-names.js";
35
- import { rule as uniqueFragmentName } from "./unique-fragment-name.js";
36
- import { rule as uniqueOperationName } from "./unique-operation-name.js";
5
+ import { rule as inputName } from "./input-name/index.js";
6
+ import { rule as loneExecutableDefinition } from "./lone-executable-definition/index.js";
7
+ import { rule as matchDocumentFilename } from "./match-document-filename/index.js";
8
+ import { rule as namingConvention } from "./naming-convention/index.js";
9
+ import { rule as noAnonymousOperations } from "./no-anonymous-operations/index.js";
10
+ import { rule as noDeprecated } from "./no-deprecated/index.js";
11
+ import { rule as noDuplicateFields } from "./no-duplicate-fields/index.js";
12
+ import { rule as noHashtagDescription } from "./no-hashtag-description/index.js";
13
+ import { rule as noOnePlaceFragments } from "./no-one-place-fragments/index.js";
14
+ import { rule as noRootType } from "./no-root-type/index.js";
15
+ import { rule as noScalarResultTypeOnMutation } from "./no-scalar-result-type-on-mutation/index.js";
16
+ import { rule as noTypenamePrefix } from "./no-typename-prefix/index.js";
17
+ import { rule as noUnreachableTypes } from "./no-unreachable-types/index.js";
18
+ import { rule as noUnusedFields } from "./no-unused-fields/index.js";
19
+ import { rule as relayArguments } from "./relay-arguments/index.js";
20
+ import { rule as relayConnectionTypes } from "./relay-connection-types/index.js";
21
+ import { rule as relayEdgeTypes } from "./relay-edge-types/index.js";
22
+ import { rule as relayPageInfo } from "./relay-page-info/index.js";
23
+ import { rule as requireDeprecationDate } from "./require-deprecation-date/index.js";
24
+ import { rule as requireDeprecationReason } from "./require-deprecation-reason/index.js";
25
+ import { rule as requireDescription } from "./require-description/index.js";
26
+ import { rule as requireFieldOfTypeQueryInMutationResult } from "./require-field-of-type-query-in-mutation-result/index.js";
27
+ import { rule as requireImportFragment } from "./require-import-fragment/index.js";
28
+ import { rule as requireNullableFieldsWithOneof } from "./require-nullable-fields-with-oneof/index.js";
29
+ import { rule as requireNullableResultInRoot } from "./require-nullable-result-in-root/index.js";
30
+ import { rule as requireSelections } from "./require-selections/index.js";
31
+ import { rule as requireTypePatternWithOneof } from "./require-type-pattern-with-oneof/index.js";
32
+ import { rule as selectionSetDepth } from "./selection-set-depth/index.js";
33
+ import { rule as strictIdInTypes } from "./strict-id-in-types/index.js";
34
+ import { rule as uniqueEnumValueNames } from "./unique-enum-value-names/index.js";
35
+ import { rule as uniqueFragmentName } from "./unique-fragment-name/index.js";
36
+ import { rule as uniqueOperationName } from "./unique-operation-name/index.js";
37
37
  const rules = {
38
38
  ...GRAPHQL_JS_VALIDATIONS,
39
39
  alphabetize,
@@ -1,11 +1,11 @@
1
1
  import { FromSchema } from 'json-schema-to-ts';
2
- import { GraphQLESLintRule } from '../types.cjs';
2
+ import { GraphQLESLintRule } from '../../types.js';
3
3
  import 'eslint';
4
4
  import 'estree';
5
5
  import 'graphql';
6
6
  import 'graphql-config';
7
- import '../estree-converter/types.cjs';
8
- import '../siblings.cjs';
7
+ import '../../estree-converter/types.js';
8
+ import '../../siblings.js';
9
9
  import '@graphql-tools/utils';
10
10
 
11
11
  declare const schema: {
@@ -1,4 +1,4 @@
1
- import "../chunk-UIAXBAMD.js";
1
+ import "../../chunk-UIAXBAMD.js";
2
2
  import {
3
3
  Kind
4
4
  } from "graphql";
@@ -1,11 +1,11 @@
1
1
  import { OperationTypeNode } from 'graphql';
2
2
  import { FromSchema } from 'json-schema-to-ts';
3
- import { GraphQLESLintRule } from '../types.cjs';
3
+ import { GraphQLESLintRule } from '../../types.js';
4
4
  import 'eslint';
5
5
  import 'estree';
6
6
  import 'graphql-config';
7
- import '../estree-converter/types.cjs';
8
- import '../siblings.cjs';
7
+ import '../../estree-converter/types.js';
8
+ import '../../siblings.js';
9
9
  import '@graphql-tools/utils';
10
10
 
11
11
  declare const schema: {
@@ -1,6 +1,6 @@
1
- import "../chunk-UIAXBAMD.js";
1
+ import "../../chunk-UIAXBAMD.js";
2
2
  import { OperationTypeNode } from "graphql";
3
- import { ARRAY_DEFAULT_OPTIONS, getLocation, pascalCase } from "../utils.js";
3
+ import { ARRAY_DEFAULT_OPTIONS, getLocation, pascalCase } from "../../utils.js";
4
4
  const RULE_ID = "lone-executable-definition", definitionTypes = ["fragment", ...Object.values(OperationTypeNode)], schema = {
5
5
  type: "array",
6
6
  maxItems: 1,
@@ -1,12 +1,12 @@
1
1
  import { FromSchema } from 'json-schema-to-ts';
2
- import { GraphQLESLintRule } from '../types.js';
3
- import { CaseStyle as CaseStyle$1 } from '../utils.js';
2
+ import { GraphQLESLintRule } from '../../types.js';
3
+ import { CaseStyle as CaseStyle$1 } from '../../utils.js';
4
4
  import 'eslint';
5
5
  import 'estree';
6
6
  import 'graphql';
7
7
  import 'graphql-config';
8
- import '../estree-converter/types.js';
9
- import '../siblings.js';
8
+ import '../../estree-converter/types.js';
9
+ import '../../siblings.js';
10
10
  import '@graphql-tools/utils';
11
11
 
12
12
  type CaseStyle = CaseStyle$1 | 'matchDocumentStyle';
@@ -1,11 +1,11 @@
1
- import "../chunk-UIAXBAMD.js";
1
+ import "../../chunk-UIAXBAMD.js";
2
2
  import { basename, extname } from "node:path";
3
3
  import { Kind } from "graphql";
4
4
  import {
5
5
  convertCase,
6
6
  REPORT_ON_FIRST_CHARACTER,
7
7
  VIRTUAL_DOCUMENT_REGEX
8
- } from "../utils.js";
8
+ } from "../../utils.js";
9
9
  const MATCH_EXTENSION = "MATCH_EXTENSION", MATCH_STYLE = "MATCH_STYLE", CASE_STYLES = [
10
10
  "camelCase",
11
11
  "PascalCase",
@@ -1,11 +1,11 @@
1
1
  import { FromSchema } from 'json-schema-to-ts';
2
- import { GraphQLESLintRule } from '../types.cjs';
2
+ import { GraphQLESLintRule } from '../../types.js';
3
3
  import 'eslint';
4
4
  import 'estree';
5
5
  import 'graphql';
6
6
  import 'graphql-config';
7
- import '../estree-converter/types.cjs';
8
- import '../siblings.cjs';
7
+ import '../../estree-converter/types.js';
8
+ import '../../siblings.js';
9
9
  import '@graphql-tools/utils';
10
10
 
11
11
  type AllowedStyle = 'camelCase' | 'PascalCase' | 'snake_case' | 'UPPER_CASE';
@@ -1,4 +1,4 @@
1
- import "../chunk-UIAXBAMD.js";
1
+ import "../../chunk-UIAXBAMD.js";
2
2
  import { Kind } from "graphql";
3
3
  import {
4
4
  ARRAY_DEFAULT_OPTIONS,
@@ -6,7 +6,7 @@ import {
6
6
  englishJoinWords,
7
7
  truthy,
8
8
  TYPES_KINDS
9
- } from "../utils.js";
9
+ } from "../../utils.js";
10
10
  const KindToDisplayName = {
11
11
  // types
12
12
  [Kind.OBJECT_TYPE_DEFINITION]: "Type",
@@ -1,11 +1,11 @@
1
- import { GraphQLESLintRule } from '../types.cjs';
1
+ import { GraphQLESLintRule } from '../../types.js';
2
2
  import 'eslint';
3
3
  import 'estree';
4
4
  import 'graphql';
5
5
  import 'graphql-config';
6
6
  import 'json-schema-to-ts';
7
- import '../estree-converter/types.cjs';
8
- import '../siblings.cjs';
7
+ import '../../estree-converter/types.js';
8
+ import '../../siblings.js';
9
9
  import '@graphql-tools/utils';
10
10
 
11
11
  declare const rule: GraphQLESLintRule;
@@ -1,6 +1,6 @@
1
- import "../chunk-UIAXBAMD.js";
1
+ import "../../chunk-UIAXBAMD.js";
2
2
  import { Kind } from "graphql";
3
- import { getLocation } from "../utils.js";
3
+ import { getLocation } from "../../utils.js";
4
4
  const RULE_ID = "no-anonymous-operations", rule = {
5
5
  meta: {
6
6
  type: "suggestion",
@@ -1,11 +1,11 @@
1
- import { GraphQLESLintRule } from '../types.js';
1
+ import { GraphQLESLintRule } from '../../types.js';
2
2
  import 'eslint';
3
3
  import 'estree';
4
4
  import 'graphql';
5
5
  import 'graphql-config';
6
6
  import 'json-schema-to-ts';
7
- import '../estree-converter/types.js';
8
- import '../siblings.js';
7
+ import '../../estree-converter/types.js';
8
+ import '../../siblings.js';
9
9
  import '@graphql-tools/utils';
10
10
 
11
11
  declare const rule: GraphQLESLintRule<[], true>;
@@ -1,6 +1,6 @@
1
- import "../chunk-UIAXBAMD.js";
1
+ import "../../chunk-UIAXBAMD.js";
2
2
  import { Kind } from "graphql";
3
- import { requireGraphQLSchemaFromContext } from "../utils.js";
3
+ import { requireGraphQLSchemaFromContext } from "../../utils.js";
4
4
  const RULE_ID = "no-deprecated", rule = {
5
5
  meta: {
6
6
  type: "suggestion",
@@ -1,11 +1,11 @@
1
- import { GraphQLESLintRule } from '../types.cjs';
1
+ import { GraphQLESLintRule } from '../../types.js';
2
2
  import 'eslint';
3
3
  import 'estree';
4
4
  import 'graphql';
5
5
  import 'graphql-config';
6
6
  import 'json-schema-to-ts';
7
- import '../estree-converter/types.cjs';
8
- import '../siblings.cjs';
7
+ import '../../estree-converter/types.js';
8
+ import '../../siblings.js';
9
9
  import '@graphql-tools/utils';
10
10
 
11
11
  declare const rule: GraphQLESLintRule;
@@ -1,4 +1,4 @@
1
- import "../chunk-UIAXBAMD.js";
1
+ import "../../chunk-UIAXBAMD.js";
2
2
  import { Kind } from "graphql";
3
3
  const RULE_ID = "no-duplicate-fields", rule = {
4
4
  meta: {
@@ -1,11 +1,11 @@
1
- import { GraphQLESLintRule } from '../types.js';
1
+ import { GraphQLESLintRule } from '../../types.js';
2
2
  import 'eslint';
3
3
  import 'estree';
4
4
  import 'graphql';
5
5
  import 'graphql-config';
6
6
  import 'json-schema-to-ts';
7
- import '../estree-converter/types.js';
8
- import '../siblings.js';
7
+ import '../../estree-converter/types.js';
8
+ import '../../siblings.js';
9
9
  import '@graphql-tools/utils';
10
10
 
11
11
  declare const RULE_ID = "HASHTAG_COMMENT";
@@ -1,6 +1,6 @@
1
- import "../chunk-UIAXBAMD.js";
1
+ import "../../chunk-UIAXBAMD.js";
2
2
  import { TokenKind } from "graphql";
3
- import { getNodeName } from "../utils.js";
3
+ import { getNodeName } from "../../utils.js";
4
4
  const RULE_ID = "HASHTAG_COMMENT", rule = {
5
5
  meta: {
6
6
  type: "suggestion",