@graphql-eslint/eslint-plugin 3.0.0-alpha-7462f3d.0 → 3.0.0-alpha-698204a.0

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 (77) hide show
  1. package/README.md +19 -8
  2. package/configs/base.d.ts +5 -0
  3. package/configs/index.d.ts +58 -92
  4. package/configs/operations-all.d.ts +19 -0
  5. package/configs/{recommended.d.ts → operations-recommended.d.ts} +11 -29
  6. package/configs/schema-all.d.ts +23 -0
  7. package/configs/schema-recommended.d.ts +44 -0
  8. package/docs/README.md +7 -13
  9. package/docs/rules/alphabetize.md +1 -1
  10. package/docs/rules/description-style.md +4 -2
  11. package/docs/rules/executable-definitions.md +2 -2
  12. package/docs/rules/fields-on-correct-type.md +2 -2
  13. package/docs/rules/fragments-on-composite-type.md +2 -2
  14. package/docs/rules/input-name.md +1 -1
  15. package/docs/rules/known-argument-names.md +2 -2
  16. package/docs/rules/known-directives.md +2 -2
  17. package/docs/rules/known-fragment-names.md +2 -2
  18. package/docs/rules/known-type-names.md +2 -2
  19. package/docs/rules/lone-anonymous-operation.md +2 -2
  20. package/docs/rules/lone-schema-definition.md +2 -2
  21. package/docs/rules/match-document-filename.md +6 -4
  22. package/docs/rules/naming-convention.md +2 -3
  23. package/docs/rules/no-anonymous-operations.md +2 -2
  24. package/docs/rules/no-case-insensitive-enum-values-duplicates.md +2 -2
  25. package/docs/rules/no-deprecated.md +3 -1
  26. package/docs/rules/no-duplicate-fields.md +3 -1
  27. package/docs/rules/no-fragment-cycles.md +2 -2
  28. package/docs/rules/no-hashtag-description.md +3 -1
  29. package/docs/rules/no-root-type.md +1 -1
  30. package/docs/rules/no-scalar-result-type-on-mutation.md +1 -1
  31. package/docs/rules/no-typename-prefix.md +2 -2
  32. package/docs/rules/no-undefined-variables.md +2 -2
  33. package/docs/rules/no-unreachable-types.md +3 -1
  34. package/docs/rules/no-unused-fields.md +1 -1
  35. package/docs/rules/no-unused-fragments.md +2 -2
  36. package/docs/rules/no-unused-variables.md +2 -2
  37. package/docs/rules/one-field-subscriptions.md +2 -2
  38. package/docs/rules/overlapping-fields-can-be-merged.md +2 -2
  39. package/docs/rules/possible-fragment-spread.md +2 -2
  40. package/docs/rules/possible-type-extension.md +2 -2
  41. package/docs/rules/provided-required-arguments.md +2 -2
  42. package/docs/rules/require-deprecation-date.md +1 -1
  43. package/docs/rules/require-deprecation-reason.md +2 -2
  44. package/docs/rules/require-description.md +1 -1
  45. package/docs/rules/require-field-of-type-query-in-mutation-result.md +1 -1
  46. package/docs/rules/require-id-when-available.md +3 -1
  47. package/docs/rules/scalar-leafs.md +2 -2
  48. package/docs/rules/selection-set-depth.md +9 -2
  49. package/docs/rules/strict-id-in-types.md +16 -10
  50. package/docs/rules/unique-argument-names.md +2 -2
  51. package/docs/rules/unique-directive-names-per-location.md +2 -2
  52. package/docs/rules/unique-directive-names.md +2 -2
  53. package/docs/rules/unique-enum-value-names.md +2 -2
  54. package/docs/rules/unique-field-definition-names.md +2 -2
  55. package/docs/rules/unique-fragment-name.md +1 -1
  56. package/docs/rules/unique-input-field-names.md +2 -2
  57. package/docs/rules/unique-operation-name.md +1 -1
  58. package/docs/rules/unique-operation-types.md +2 -2
  59. package/docs/rules/unique-type-names.md +2 -2
  60. package/docs/rules/unique-variable-names.md +2 -2
  61. package/docs/rules/value-literals-of-correct-type.md +2 -2
  62. package/docs/rules/variables-are-input-types.md +2 -2
  63. package/docs/rules/variables-in-allowed-position.md +2 -2
  64. package/index.js +246 -136
  65. package/index.mjs +246 -136
  66. package/package.json +1 -1
  67. package/rules/alphabetize.d.ts +8 -10
  68. package/rules/description-style.d.ts +4 -6
  69. package/rules/index.d.ts +2 -2
  70. package/rules/input-name.d.ts +1 -1
  71. package/rules/match-document-filename.d.ts +8 -10
  72. package/rules/naming-convention.d.ts +1 -1
  73. package/rules/require-id-when-available.d.ts +3 -3
  74. package/rules/selection-set-depth.d.ts +3 -3
  75. package/rules/strict-id-in-types.d.ts +6 -8
  76. package/types.d.ts +9 -5
  77. package/configs/all.d.ts +0 -102
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@graphql-eslint/eslint-plugin",
3
- "version": "3.0.0-alpha-7462f3d.0",
3
+ "version": "3.0.0-alpha-698204a.0",
4
4
  "sideEffects": false,
5
5
  "peerDependencies": {
6
6
  "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0"
@@ -4,14 +4,12 @@ declare const valuesEnum: ['EnumTypeDefinition'];
4
4
  declare const selectionsEnum: ('OperationDefinition' | 'FragmentDefinition')[];
5
5
  declare const variablesEnum: ['OperationDefinition'];
6
6
  declare const argumentsEnum: ('FieldDefinition' | 'Field' | 'DirectiveDefinition' | 'Directive')[];
7
- declare type AlphabetizeConfig = [
8
- {
9
- fields?: typeof fieldsEnum;
10
- values?: typeof valuesEnum;
11
- selections?: typeof selectionsEnum;
12
- variables?: typeof variablesEnum;
13
- arguments?: typeof argumentsEnum;
14
- }
15
- ];
16
- declare const rule: GraphQLESLintRule<AlphabetizeConfig>;
7
+ declare type AlphabetizeConfig = {
8
+ fields?: typeof fieldsEnum;
9
+ values?: typeof valuesEnum;
10
+ selections?: typeof selectionsEnum;
11
+ variables?: typeof variablesEnum;
12
+ arguments?: typeof argumentsEnum;
13
+ };
14
+ declare const rule: GraphQLESLintRule<[AlphabetizeConfig]>;
17
15
  export default rule;
@@ -1,8 +1,6 @@
1
1
  import { GraphQLESLintRule } from '../types';
2
- declare type DescriptionStyleRuleConfig = [
3
- {
4
- style: 'inline' | 'block';
5
- }
6
- ];
7
- declare const rule: GraphQLESLintRule<DescriptionStyleRuleConfig>;
2
+ declare type DescriptionStyleRuleConfig = {
3
+ style: 'inline' | 'block';
4
+ };
5
+ declare const rule: GraphQLESLintRule<[DescriptionStyleRuleConfig]>;
8
6
  export default rule;
package/rules/index.d.ts CHANGED
@@ -9,12 +9,12 @@ export declare const rules: {
9
9
  'description-style': import("..").GraphQLESLintRule<[{
10
10
  style: "block" | "inline";
11
11
  }], false>;
12
- 'input-name': import("..").GraphQLESLintRule<{
12
+ 'input-name': import("..").GraphQLESLintRule<[{
13
13
  checkInputType?: boolean;
14
14
  caseSensitiveInputType?: boolean;
15
15
  checkQueries?: boolean;
16
16
  checkMutations?: boolean;
17
- }[], false>;
17
+ }], false>;
18
18
  'match-document-filename': import("..").GraphQLESLintRule<[{
19
19
  fileExtension?: ".gql" | ".graphql";
20
20
  query?: import("../utils").CaseStyle | {
@@ -5,5 +5,5 @@ declare type InputNameRuleConfig = {
5
5
  checkQueries?: boolean;
6
6
  checkMutations?: boolean;
7
7
  };
8
- declare const rule: GraphQLESLintRule<InputNameRuleConfig[]>;
8
+ declare const rule: GraphQLESLintRule<[InputNameRuleConfig]>;
9
9
  export default rule;
@@ -5,14 +5,12 @@ declare type PropertySchema = {
5
5
  style: CaseStyle;
6
6
  suffix: string;
7
7
  };
8
- declare type MatchDocumentFilenameRuleConfig = [
9
- {
10
- fileExtension?: typeof ACCEPTED_EXTENSIONS[number];
11
- query?: CaseStyle | PropertySchema;
12
- mutation?: CaseStyle | PropertySchema;
13
- subscription?: CaseStyle | PropertySchema;
14
- fragment?: CaseStyle | PropertySchema;
15
- }
16
- ];
17
- declare const rule: GraphQLESLintRule<MatchDocumentFilenameRuleConfig>;
8
+ declare type MatchDocumentFilenameRuleConfig = {
9
+ fileExtension?: typeof ACCEPTED_EXTENSIONS[number];
10
+ query?: CaseStyle | PropertySchema;
11
+ mutation?: CaseStyle | PropertySchema;
12
+ subscription?: CaseStyle | PropertySchema;
13
+ fragment?: CaseStyle | PropertySchema;
14
+ };
15
+ declare const rule: GraphQLESLintRule<[MatchDocumentFilenameRuleConfig]>;
18
16
  export default rule;
@@ -8,12 +8,12 @@ declare const KindToDisplayName: {
8
8
  UnionTypeDefinition: string;
9
9
  FieldDefinition: string;
10
10
  InputValueDefinition: string;
11
- VariableDefinition: string;
12
11
  Argument: string;
13
12
  DirectiveDefinition: string;
14
13
  EnumValueDefinition: string;
15
14
  OperationDefinition: string;
16
15
  FragmentDefinition: string;
16
+ VariableDefinition: string;
17
17
  };
18
18
  declare type AllowedKind = keyof typeof KindToDisplayName;
19
19
  declare type AllowedStyle = 'camelCase' | 'PascalCase' | 'snake_case' | 'UPPER_CASE';
@@ -1,6 +1,6 @@
1
1
  import { GraphQLESLintRule } from '../types';
2
- declare type RequireIdWhenAvailableRuleConfig = [{
2
+ declare type RequireIdWhenAvailableRuleConfig = {
3
3
  fieldName: string;
4
- }];
5
- declare const rule: GraphQLESLintRule<RequireIdWhenAvailableRuleConfig, true>;
4
+ };
5
+ declare const rule: GraphQLESLintRule<[RequireIdWhenAvailableRuleConfig], true>;
6
6
  export default rule;
@@ -1,7 +1,7 @@
1
1
  import { GraphQLESLintRule } from '../types';
2
- declare type SelectionSetDepthRuleConfig = [{
2
+ declare type SelectionSetDepthRuleConfig = {
3
3
  maxDepth: number;
4
4
  ignore?: string[];
5
- }];
6
- declare const rule: GraphQLESLintRule<SelectionSetDepthRuleConfig>;
5
+ };
6
+ declare const rule: GraphQLESLintRule<[SelectionSetDepthRuleConfig]>;
7
7
  export default rule;
@@ -3,12 +3,10 @@ export interface ExceptionRule {
3
3
  types?: string[];
4
4
  suffixes?: string[];
5
5
  }
6
- declare type StrictIdInTypesRuleConfig = [
7
- {
8
- acceptedIdNames?: string[];
9
- acceptedIdTypes?: string[];
10
- exceptions?: ExceptionRule;
11
- }
12
- ];
13
- declare const rule: GraphQLESLintRule<StrictIdInTypesRuleConfig>;
6
+ declare type StrictIdInTypesRuleConfig = {
7
+ acceptedIdNames?: string[];
8
+ acceptedIdTypes?: string[];
9
+ exceptions?: ExceptionRule;
10
+ };
11
+ declare const rule: GraphQLESLintRule<[StrictIdInTypesRuleConfig]>;
14
12
  export default rule;
package/types.d.ts CHANGED
@@ -45,9 +45,10 @@ export declare type GraphQLESLintRuleContext<Options = any[]> = Omit<Rule.RuleCo
45
45
  })): void;
46
46
  parserServices?: ParserServices;
47
47
  };
48
- export declare type RuleDocsInfo<T> = Rule.RuleMetaData & {
49
- docs: {
50
- category: 'Best Practices' | 'Stylistic Issues' | 'Validation';
48
+ export declare type CategoryType = 'Schema' | 'Operations';
49
+ export declare type RuleDocsInfo<T> = {
50
+ docs: Omit<Rule.RuleMetaData['docs'], 'category'> & {
51
+ category: CategoryType | CategoryType[];
51
52
  requiresSchema?: boolean;
52
53
  requiresSiblings?: boolean;
53
54
  examples?: {
@@ -55,12 +56,15 @@ export declare type RuleDocsInfo<T> = Rule.RuleMetaData & {
55
56
  code: string;
56
57
  usage?: T;
57
58
  }[];
58
- optionsForConfig?: T;
59
+ configOptions?: T | {
60
+ schema?: T;
61
+ operations?: T;
62
+ };
59
63
  graphQLJSRuleName?: string;
60
64
  };
61
65
  };
62
66
  export declare type GraphQLESLintRule<Options = any[], WithTypeInfo extends boolean = false> = {
63
67
  create(context: GraphQLESLintRuleContext<Options>): GraphQLESLintRuleListener<WithTypeInfo>;
64
- meta: Rule.RuleMetaData & RuleDocsInfo<Options>;
68
+ meta: Omit<Rule.RuleMetaData, 'docs'> & RuleDocsInfo<Options>;
65
69
  };
66
70
  export declare type ValueOf<T> = T[keyof T];
package/configs/all.d.ts DELETED
@@ -1,102 +0,0 @@
1
- export declare const allConfig: {
2
- rules: {
3
- '@graphql-eslint/alphabetize': (string | {
4
- fields: string[];
5
- values: string[];
6
- selections: string[];
7
- variables: string[];
8
- arguments: string[];
9
- })[];
10
- '@graphql-eslint/description-style': string;
11
- '@graphql-eslint/input-name': string;
12
- '@graphql-eslint/match-document-filename': string;
13
- '@graphql-eslint/no-deprecated': string;
14
- '@graphql-eslint/no-duplicate-fields': string;
15
- '@graphql-eslint/no-hashtag-description': string;
16
- '@graphql-eslint/no-root-type': (string | {
17
- disallow: string[];
18
- })[];
19
- '@graphql-eslint/no-scalar-result-type-on-mutation': string;
20
- '@graphql-eslint/no-unreachable-types': string;
21
- '@graphql-eslint/no-unused-fields': string;
22
- '@graphql-eslint/require-deprecation-date': string;
23
- '@graphql-eslint/require-description': (string | {
24
- types: boolean;
25
- overrides: {
26
- DirectiveDefinition: boolean;
27
- };
28
- })[];
29
- '@graphql-eslint/require-field-of-type-query-in-mutation-result': string;
30
- '@graphql-eslint/require-id-when-available': string;
31
- '@graphql-eslint/selection-set-depth': string;
32
- '@graphql-eslint/unique-fragment-name': string;
33
- '@graphql-eslint/unique-operation-name': string;
34
- '@graphql-eslint/executable-definitions': string;
35
- '@graphql-eslint/fields-on-correct-type': string;
36
- '@graphql-eslint/fragments-on-composite-type': string;
37
- '@graphql-eslint/known-argument-names': string;
38
- '@graphql-eslint/known-directives': string;
39
- '@graphql-eslint/known-fragment-names': string;
40
- '@graphql-eslint/known-type-names': string;
41
- '@graphql-eslint/lone-anonymous-operation': string;
42
- '@graphql-eslint/lone-schema-definition': string;
43
- '@graphql-eslint/naming-convention': (string | {
44
- types: string;
45
- fields: string;
46
- overrides: {
47
- EnumValueDefinition: string;
48
- OperationDefinition: {
49
- style: string;
50
- forbiddenPrefixes: string[];
51
- forbiddenSuffixes: string[];
52
- };
53
- FragmentDefinition: {
54
- style: string;
55
- forbiddenPrefixes: string[];
56
- forbiddenSuffixes: string[];
57
- };
58
- 'FieldDefinition[parent.name.value=Query]': {
59
- forbiddenPrefixes: string[];
60
- forbiddenSuffixes: string[];
61
- };
62
- 'FieldDefinition[parent.name.value=Mutation]': {
63
- forbiddenPrefixes: string[];
64
- forbiddenSuffixes: string[];
65
- };
66
- 'FieldDefinition[parent.name.value=Subscription]': {
67
- forbiddenPrefixes: string[];
68
- forbiddenSuffixes: string[];
69
- };
70
- };
71
- })[];
72
- '@graphql-eslint/no-anonymous-operations': string;
73
- '@graphql-eslint/no-case-insensitive-enum-values-duplicates': string;
74
- '@graphql-eslint/no-fragment-cycles': string;
75
- '@graphql-eslint/no-typename-prefix': string;
76
- '@graphql-eslint/no-undefined-variables': string;
77
- '@graphql-eslint/no-unused-fragments': string;
78
- '@graphql-eslint/no-unused-variables': string;
79
- '@graphql-eslint/one-field-subscriptions': string;
80
- '@graphql-eslint/overlapping-fields-can-be-merged': string;
81
- '@graphql-eslint/possible-fragment-spread': string;
82
- '@graphql-eslint/possible-type-extension': string;
83
- '@graphql-eslint/provided-required-arguments': string;
84
- '@graphql-eslint/require-deprecation-reason': string;
85
- '@graphql-eslint/scalar-leafs': string;
86
- '@graphql-eslint/strict-id-in-types': string;
87
- '@graphql-eslint/unique-argument-names': string;
88
- '@graphql-eslint/unique-directive-names': string;
89
- '@graphql-eslint/unique-directive-names-per-location': string;
90
- '@graphql-eslint/unique-enum-value-names': string;
91
- '@graphql-eslint/unique-field-definition-names': string;
92
- '@graphql-eslint/unique-input-field-names': string;
93
- '@graphql-eslint/unique-operation-types': string;
94
- '@graphql-eslint/unique-type-names': string;
95
- '@graphql-eslint/unique-variable-names': string;
96
- '@graphql-eslint/value-literals-of-correct-type': string;
97
- '@graphql-eslint/variables-are-input-types': string;
98
- '@graphql-eslint/variables-in-allowed-position': string;
99
- };
100
- parser: string;
101
- plugins: string[];
102
- };