@graphql-inspector/cli 3.4.13-alpha-20230417141810-fd2d33e7 → 3.4.13

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 (98) hide show
  1. package/README.md +3 -3
  2. package/cjs/action/src/run.js +1 -1
  3. package/cjs/commands/commands/src/index.js +7 -8
  4. package/cjs/commands/diff/src/index.js +6 -6
  5. package/cjs/commands/docs/src/index.js +1 -3
  6. package/cjs/commands/serve/src/fake.js +4 -4
  7. package/cjs/commands/serve/src/index.js +8 -7
  8. package/cjs/commands/similar/src/index.js +2 -2
  9. package/cjs/commands/validate/src/index.js +4 -4
  10. package/cjs/core/src/ast/document.js +2 -2
  11. package/cjs/core/src/coverage/index.js +7 -7
  12. package/cjs/core/src/diff/changes/argument.js +80 -19
  13. package/cjs/core/src/diff/changes/directive.js +208 -39
  14. package/cjs/core/src/diff/changes/enum.js +123 -25
  15. package/cjs/core/src/diff/changes/field.js +260 -69
  16. package/cjs/core/src/diff/changes/input.js +153 -34
  17. package/cjs/core/src/diff/changes/object.js +37 -9
  18. package/cjs/core/src/diff/changes/schema.js +55 -13
  19. package/cjs/core/src/diff/changes/type.js +106 -19
  20. package/cjs/core/src/diff/changes/union.js +35 -7
  21. package/cjs/core/src/diff/directive.js +2 -4
  22. package/cjs/core/src/diff/rules/consider-usage.js +3 -3
  23. package/cjs/core/src/index.js +63 -1
  24. package/cjs/core/src/similar/index.js +2 -2
  25. package/cjs/core/src/utils/compare.js +3 -9
  26. package/cjs/core/src/utils/is-deprecated.js +1 -1
  27. package/cjs/core/src/utils/string.js +5 -2
  28. package/cjs/core/src/validate/complexity.js +1 -1
  29. package/cjs/core/src/validate/directive-count.js +1 -1
  30. package/cjs/core/src/validate/index.js +12 -11
  31. package/cjs/core/src/validate/query-depth.js +1 -1
  32. package/cjs/github/src/helpers/config.js +6 -2
  33. package/cjs/github/src/helpers/utils.js +1 -1
  34. package/cjs/loaders/loaders/src/index.js +1 -2
  35. package/esm/action/src/run.js +1 -1
  36. package/esm/commands/commands/src/index.js +7 -8
  37. package/esm/commands/diff/src/index.js +6 -6
  38. package/esm/commands/docs/src/index.js +1 -4
  39. package/esm/commands/serve/src/fake.js +4 -4
  40. package/esm/commands/serve/src/index.js +8 -7
  41. package/esm/commands/similar/src/index.js +2 -2
  42. package/esm/commands/validate/src/index.js +4 -4
  43. package/esm/core/src/ast/document.js +2 -2
  44. package/esm/core/src/coverage/index.js +7 -7
  45. package/esm/core/src/diff/changes/argument.js +77 -19
  46. package/esm/core/src/diff/changes/directive.js +198 -39
  47. package/esm/core/src/diff/changes/enum.js +117 -25
  48. package/esm/core/src/diff/changes/field.js +240 -62
  49. package/esm/core/src/diff/changes/input.js +145 -34
  50. package/esm/core/src/diff/changes/object.js +35 -9
  51. package/esm/core/src/diff/changes/schema.js +50 -11
  52. package/esm/core/src/diff/changes/type.js +100 -19
  53. package/esm/core/src/diff/changes/union.js +33 -7
  54. package/esm/core/src/diff/directive.js +2 -4
  55. package/esm/core/src/diff/rules/consider-usage.js +3 -3
  56. package/esm/core/src/index.js +9 -0
  57. package/esm/core/src/similar/index.js +2 -2
  58. package/esm/core/src/utils/compare.js +3 -9
  59. package/esm/core/src/utils/is-deprecated.js +1 -1
  60. package/esm/core/src/utils/string.js +5 -2
  61. package/esm/core/src/validate/complexity.js +1 -1
  62. package/esm/core/src/validate/directive-count.js +1 -1
  63. package/esm/core/src/validate/index.js +12 -11
  64. package/esm/core/src/validate/query-depth.js +1 -1
  65. package/esm/github/src/helpers/config.js +6 -2
  66. package/esm/github/src/helpers/utils.js +1 -1
  67. package/esm/loaders/loaders/src/index.js +1 -2
  68. package/package.json +20 -20
  69. package/typings/core/src/diff/changes/argument.d.cts +52 -4
  70. package/typings/core/src/diff/changes/argument.d.ts +52 -4
  71. package/typings/core/src/diff/changes/change.d.cts +500 -2
  72. package/typings/core/src/diff/changes/change.d.ts +500 -2
  73. package/typings/core/src/diff/changes/directive.d.cts +147 -11
  74. package/typings/core/src/diff/changes/directive.d.ts +147 -11
  75. package/typings/core/src/diff/changes/enum.d.cts +75 -7
  76. package/typings/core/src/diff/changes/enum.d.ts +75 -7
  77. package/typings/core/src/diff/changes/field.d.cts +189 -14
  78. package/typings/core/src/diff/changes/field.d.ts +189 -14
  79. package/typings/core/src/diff/changes/input.d.cts +112 -8
  80. package/typings/core/src/diff/changes/input.d.ts +112 -8
  81. package/typings/core/src/diff/changes/object.d.cts +29 -3
  82. package/typings/core/src/diff/changes/object.d.ts +29 -3
  83. package/typings/core/src/diff/changes/schema.d.cts +37 -4
  84. package/typings/core/src/diff/changes/schema.d.ts +37 -4
  85. package/typings/core/src/diff/changes/type.d.cts +80 -7
  86. package/typings/core/src/diff/changes/type.d.ts +80 -7
  87. package/typings/core/src/diff/changes/union.d.cts +29 -3
  88. package/typings/core/src/diff/changes/union.d.ts +29 -3
  89. package/typings/core/src/index.d.cts +10 -0
  90. package/typings/core/src/index.d.ts +10 -0
  91. package/typings/core/src/utils/is-deprecated.d.cts +1 -1
  92. package/typings/core/src/utils/is-deprecated.d.ts +1 -1
  93. package/typings/core/src/utils/string.d.cts +1 -1
  94. package/typings/core/src/utils/string.d.ts +1 -1
  95. package/typings/core/utils/testing.d.cts +2 -2
  96. package/typings/core/utils/testing.d.ts +2 -2
  97. package/typings/github/src/helpers/utils.d.cts +1 -1
  98. package/typings/github/src/helpers/utils.d.ts +1 -1
@@ -1,87 +1,193 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.inputFieldTypeChanged = exports.inputFieldDefaultValueChanged = exports.inputFieldDescriptionChanged = exports.inputFieldDescriptionRemoved = exports.inputFieldDescriptionAdded = exports.inputFieldAdded = exports.inputFieldRemoved = void 0;
3
+ exports.inputFieldTypeChanged = exports.inputFieldTypeChangedFromMeta = exports.inputFieldDefaultValueChanged = exports.inputFieldDefaultValueChangedFromMeta = exports.inputFieldDescriptionChanged = exports.inputFieldDescriptionChangedFromMeta = exports.inputFieldDescriptionRemoved = exports.inputFieldDescriptionRemovedFromMeta = exports.inputFieldDescriptionAdded = exports.inputFieldDescriptionAddedFromMeta = exports.inputFieldAdded = exports.inputFieldAddedFromMeta = exports.buildInputFieldAddedMessage = exports.inputFieldRemoved = exports.inputFieldRemovedFromMeta = void 0;
4
4
  const graphql_1 = require("graphql");
5
5
  const graphql_js_1 = require("../../utils/graphql.js");
6
6
  const is_deprecated_js_1 = require("../../utils/is-deprecated.js");
7
7
  const string_js_1 = require("../../utils/string.js");
8
8
  const change_js_1 = require("./change.js");
9
- function inputFieldRemoved(input, field) {
9
+ function buildInputFieldRemovedMessage(args) {
10
+ return `Input field '${args.removedFieldName}' ${args.isInputFieldDeprecated ? '(deprecated) ' : ''}was removed from input object type '${args.inputName}'`;
11
+ }
12
+ function inputFieldRemovedFromMeta(args) {
10
13
  return {
14
+ type: change_js_1.ChangeType.InputFieldRemoved,
11
15
  criticality: {
12
16
  level: change_js_1.CriticalityLevel.Breaking,
13
17
  reason: 'Removing an input field will cause existing queries that use this input field to error.',
14
18
  },
15
- type: change_js_1.ChangeType.InputFieldRemoved,
16
- message: `Input field '${field.name}' ${(0, is_deprecated_js_1.isDeprecated)(field) ? '(deprecated) ' : ''}was removed from input object type '${input.name}'`,
17
- path: [input.name, field.name].join('.'),
19
+ message: buildInputFieldRemovedMessage(args.meta),
20
+ meta: args.meta,
21
+ path: [args.meta.inputName, args.meta.removedFieldName].join('.'),
18
22
  };
19
23
  }
24
+ exports.inputFieldRemovedFromMeta = inputFieldRemovedFromMeta;
25
+ function inputFieldRemoved(input, field) {
26
+ return inputFieldRemovedFromMeta({
27
+ type: change_js_1.ChangeType.InputFieldRemoved,
28
+ meta: {
29
+ inputName: input.name,
30
+ removedFieldName: field.name,
31
+ isInputFieldDeprecated: (0, is_deprecated_js_1.isDeprecated)(field),
32
+ },
33
+ });
34
+ }
20
35
  exports.inputFieldRemoved = inputFieldRemoved;
21
- function inputFieldAdded(input, field) {
36
+ function buildInputFieldAddedMessage(args) {
37
+ return `Input field '${args.addedInputFieldName}' of type '${args.addedInputFieldType}' was added to input object type '${args.inputName}'`;
38
+ }
39
+ exports.buildInputFieldAddedMessage = buildInputFieldAddedMessage;
40
+ function inputFieldAddedFromMeta(args) {
22
41
  return {
23
- criticality: (0, graphql_1.isNonNullType)(field.type)
42
+ type: change_js_1.ChangeType.InputFieldAdded,
43
+ criticality: args.meta.isAddedInputFieldTypeNullable
24
44
  ? {
25
- level: change_js_1.CriticalityLevel.Breaking,
26
- reason: 'Adding a required input field to an existing input object type is a breaking change because it will cause existing uses of this input object type to error.',
45
+ level: change_js_1.CriticalityLevel.Dangerous,
27
46
  }
28
47
  : {
29
- level: change_js_1.CriticalityLevel.Dangerous,
48
+ level: change_js_1.CriticalityLevel.Breaking,
49
+ reason: 'Adding a required input field to an existing input object type is a breaking change because it will cause existing uses of this input object type to error.',
30
50
  },
31
- type: change_js_1.ChangeType.InputFieldAdded,
32
- message: `Input field '${field.name}' was added to input object type '${input.name}'`,
33
- path: [input.name, field.name].join('.'),
51
+ message: buildInputFieldAddedMessage(args.meta),
52
+ meta: args.meta,
53
+ path: [args.meta.inputName, args.meta.addedInputFieldName].join('.'),
34
54
  };
35
55
  }
56
+ exports.inputFieldAddedFromMeta = inputFieldAddedFromMeta;
57
+ function inputFieldAdded(input, field) {
58
+ return inputFieldAddedFromMeta({
59
+ type: change_js_1.ChangeType.InputFieldAdded,
60
+ meta: {
61
+ inputName: input.name,
62
+ addedInputFieldName: field.name,
63
+ isAddedInputFieldTypeNullable: !(0, graphql_1.isNonNullType)(field.type),
64
+ addedInputFieldType: field.type.toString(),
65
+ },
66
+ });
67
+ }
36
68
  exports.inputFieldAdded = inputFieldAdded;
37
- function inputFieldDescriptionAdded(type, field) {
69
+ function buildInputFieldDescriptionAddedMessage(args) {
70
+ return `Input field '${args.inputName}.${args.inputFieldName}' has description '${args.addedInputFieldDescription}'`;
71
+ }
72
+ function inputFieldDescriptionAddedFromMeta(args) {
38
73
  return {
74
+ type: change_js_1.ChangeType.InputFieldDescriptionAdded,
39
75
  criticality: {
40
76
  level: change_js_1.CriticalityLevel.NonBreaking,
41
77
  },
42
- type: change_js_1.ChangeType.InputFieldDescriptionAdded,
43
- message: `Input field '${type.name}.${field.name}' has description '${field.description}'`,
44
- path: [type.name, field.name].join('.'),
78
+ message: buildInputFieldDescriptionAddedMessage(args.meta),
79
+ meta: args.meta,
80
+ path: [args.meta.inputName, args.meta.inputFieldName].join('.'),
45
81
  };
46
82
  }
83
+ exports.inputFieldDescriptionAddedFromMeta = inputFieldDescriptionAddedFromMeta;
84
+ function inputFieldDescriptionAdded(type, field) {
85
+ var _a;
86
+ return inputFieldDescriptionAddedFromMeta({
87
+ type: change_js_1.ChangeType.InputFieldDescriptionAdded,
88
+ meta: {
89
+ inputName: type.name,
90
+ inputFieldName: field.name,
91
+ addedInputFieldDescription: (_a = field.description) !== null && _a !== void 0 ? _a : '',
92
+ },
93
+ });
94
+ }
47
95
  exports.inputFieldDescriptionAdded = inputFieldDescriptionAdded;
48
- function inputFieldDescriptionRemoved(type, field) {
96
+ function buildInputFieldDescriptionRemovedMessage(args) {
97
+ return `Description '${args.removedDescription}' was removed from input field '${args.inputName}.${args.inputFieldName}'`;
98
+ }
99
+ function inputFieldDescriptionRemovedFromMeta(args) {
49
100
  return {
101
+ type: change_js_1.ChangeType.InputFieldDescriptionRemoved,
50
102
  criticality: {
51
103
  level: change_js_1.CriticalityLevel.NonBreaking,
52
104
  },
53
- type: change_js_1.ChangeType.InputFieldDescriptionRemoved,
54
- message: `Description was removed from input field '${type.name}.${field.name}'`,
55
- path: [type.name, field.name].join('.'),
105
+ message: buildInputFieldDescriptionRemovedMessage(args.meta),
106
+ meta: args.meta,
107
+ path: [args.meta.inputName, args.meta.inputFieldName].join('.'),
56
108
  };
57
109
  }
110
+ exports.inputFieldDescriptionRemovedFromMeta = inputFieldDescriptionRemovedFromMeta;
111
+ function inputFieldDescriptionRemoved(type, field) {
112
+ var _a;
113
+ return inputFieldDescriptionRemovedFromMeta({
114
+ type: change_js_1.ChangeType.InputFieldDescriptionRemoved,
115
+ meta: {
116
+ inputName: type.name,
117
+ inputFieldName: field.name,
118
+ removedDescription: (_a = field.description) !== null && _a !== void 0 ? _a : '',
119
+ },
120
+ });
121
+ }
58
122
  exports.inputFieldDescriptionRemoved = inputFieldDescriptionRemoved;
59
- function inputFieldDescriptionChanged(input, oldField, newField) {
123
+ function buildInputFieldDescriptionChangedMessage(args) {
124
+ return `Input field '${args.inputName}.${args.inputFieldName}' description changed from '${args.oldInputFieldDescription}' to '${args.newInputFieldDescription}'`;
125
+ }
126
+ function inputFieldDescriptionChangedFromMeta(args) {
60
127
  return {
128
+ type: change_js_1.ChangeType.InputFieldDescriptionChanged,
61
129
  criticality: {
62
130
  level: change_js_1.CriticalityLevel.NonBreaking,
63
131
  },
64
- type: change_js_1.ChangeType.InputFieldDescriptionChanged,
65
- message: `Input field '${input.name}.${oldField.name}' description changed from '${oldField.description}' to '${newField.description}'`,
66
- path: [input.name, oldField.name].join('.'),
132
+ message: buildInputFieldDescriptionChangedMessage(args.meta),
133
+ meta: args.meta,
134
+ path: [args.meta.inputName, args.meta.inputFieldName].join('.'),
67
135
  };
68
136
  }
137
+ exports.inputFieldDescriptionChangedFromMeta = inputFieldDescriptionChangedFromMeta;
138
+ function inputFieldDescriptionChanged(input, oldField, newField) {
139
+ var _a, _b;
140
+ return inputFieldDescriptionChangedFromMeta({
141
+ type: change_js_1.ChangeType.InputFieldDescriptionChanged,
142
+ meta: {
143
+ inputName: input.name,
144
+ inputFieldName: oldField.name,
145
+ oldInputFieldDescription: (_a = oldField.description) !== null && _a !== void 0 ? _a : '',
146
+ newInputFieldDescription: (_b = newField.description) !== null && _b !== void 0 ? _b : '',
147
+ },
148
+ });
149
+ }
69
150
  exports.inputFieldDescriptionChanged = inputFieldDescriptionChanged;
70
- function inputFieldDefaultValueChanged(input, oldField, newField) {
151
+ function buildInputFieldDefaultValueChangedMessage(args) {
152
+ return `Input field '${args.inputName}.${args.inputFieldName}' default value changed from '${args.oldDefaultValue}' to '${args.newDefaultValue}'`;
153
+ }
154
+ function inputFieldDefaultValueChangedFromMeta(args) {
71
155
  return {
156
+ type: change_js_1.ChangeType.InputFieldDefaultValueChanged,
72
157
  criticality: {
73
158
  level: change_js_1.CriticalityLevel.Dangerous,
74
159
  reason: 'Changing the default value for an argument may change the runtime behavior of a field if it was never provided.',
75
160
  },
76
- type: change_js_1.ChangeType.InputFieldDefaultValueChanged,
77
- message: `Input field '${input.name}.${oldField.name}' default value changed from '${(0, string_js_1.safeString)(oldField.defaultValue)}' to '${(0, string_js_1.safeString)(newField.defaultValue)}'`,
78
- path: [input.name, oldField.name].join('.'),
161
+ message: buildInputFieldDefaultValueChangedMessage(args.meta),
162
+ meta: args.meta,
163
+ path: [args.meta.inputName, args.meta.inputFieldName].join('.'),
164
+ };
165
+ }
166
+ exports.inputFieldDefaultValueChangedFromMeta = inputFieldDefaultValueChangedFromMeta;
167
+ function inputFieldDefaultValueChanged(input, oldField, newField) {
168
+ const meta = {
169
+ inputName: input.name,
170
+ inputFieldName: oldField.name,
79
171
  };
172
+ if (oldField.defaultValue !== undefined) {
173
+ meta.oldDefaultValue = (0, string_js_1.safeString)(oldField.defaultValue);
174
+ }
175
+ if (newField.defaultValue !== undefined) {
176
+ meta.newDefaultValue = (0, string_js_1.safeString)(newField.defaultValue);
177
+ }
178
+ return inputFieldDefaultValueChangedFromMeta({
179
+ type: change_js_1.ChangeType.InputFieldDefaultValueChanged,
180
+ meta,
181
+ });
80
182
  }
81
183
  exports.inputFieldDefaultValueChanged = inputFieldDefaultValueChanged;
82
- function inputFieldTypeChanged(input, oldField, newField) {
184
+ function buildInputFieldTypeChangedMessage(args) {
185
+ return `Input field '${args.inputName}.${args.inputFieldName}' changed type from '${args.oldInputFieldType}' to '${args.newInputFieldType}'`;
186
+ }
187
+ function inputFieldTypeChangedFromMeta(args) {
83
188
  return {
84
- criticality: (0, graphql_js_1.safeChangeForInputValue)(oldField.type, newField.type)
189
+ type: change_js_1.ChangeType.InputFieldTypeChanged,
190
+ criticality: args.meta.isInputFieldTypeChangeSafe
85
191
  ? {
86
192
  level: change_js_1.CriticalityLevel.NonBreaking,
87
193
  reason: 'Changing an input field from non-null to null is considered non-breaking.',
@@ -90,9 +196,22 @@ function inputFieldTypeChanged(input, oldField, newField) {
90
196
  level: change_js_1.CriticalityLevel.Breaking,
91
197
  reason: 'Changing the type of an input field can cause existing queries that use this field to error.',
92
198
  },
93
- type: change_js_1.ChangeType.InputFieldTypeChanged,
94
- message: `Input field '${input.name}.${oldField.name}' changed type from '${oldField.type.toString()}' to '${newField.type.toString()}'`,
95
- path: [input.name, oldField.name].join('.'),
199
+ message: buildInputFieldTypeChangedMessage(args.meta),
200
+ meta: args.meta,
201
+ path: [args.meta.inputName, args.meta.inputFieldName].join('.'),
96
202
  };
97
203
  }
204
+ exports.inputFieldTypeChangedFromMeta = inputFieldTypeChangedFromMeta;
205
+ function inputFieldTypeChanged(input, oldField, newField) {
206
+ return inputFieldTypeChangedFromMeta({
207
+ type: change_js_1.ChangeType.InputFieldTypeChanged,
208
+ meta: {
209
+ inputName: input.name,
210
+ inputFieldName: oldField.name,
211
+ oldInputFieldType: oldField.type.toString(),
212
+ newInputFieldType: newField.type.toString(),
213
+ isInputFieldTypeChangeSafe: (0, graphql_js_1.safeChangeForInputValue)(oldField.type, newField.type),
214
+ },
215
+ });
216
+ }
98
217
  exports.inputFieldTypeChanged = inputFieldTypeChanged;
@@ -1,28 +1,56 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.objectTypeInterfaceRemoved = exports.objectTypeInterfaceAdded = void 0;
3
+ exports.objectTypeInterfaceRemoved = exports.objectTypeInterfaceRemovedFromMeta = exports.objectTypeInterfaceAdded = exports.objectTypeInterfaceAddedFromMeta = void 0;
4
4
  const change_js_1 = require("./change.js");
5
- function objectTypeInterfaceAdded(iface, type) {
5
+ function buildObjectTypeInterfaceAddedMessage(args) {
6
+ return `'${args.objectTypeName}' object implements '${args.addedInterfaceName}' interface`;
7
+ }
8
+ function objectTypeInterfaceAddedFromMeta(args) {
6
9
  return {
10
+ type: change_js_1.ChangeType.ObjectTypeInterfaceAdded,
7
11
  criticality: {
8
12
  level: change_js_1.CriticalityLevel.Dangerous,
9
13
  reason: 'Adding an interface to an object type may break existing clients that were not programming defensively against a new possible type.',
10
14
  },
11
- type: change_js_1.ChangeType.ObjectTypeInterfaceAdded,
12
- message: `'${type.name}' object implements '${iface.name}' interface`,
13
- path: type.name,
15
+ message: buildObjectTypeInterfaceAddedMessage(args.meta),
16
+ meta: args.meta,
17
+ path: args.meta.objectTypeName,
14
18
  };
15
19
  }
20
+ exports.objectTypeInterfaceAddedFromMeta = objectTypeInterfaceAddedFromMeta;
21
+ function objectTypeInterfaceAdded(iface, type) {
22
+ return objectTypeInterfaceAddedFromMeta({
23
+ type: change_js_1.ChangeType.ObjectTypeInterfaceAdded,
24
+ meta: {
25
+ objectTypeName: type.name,
26
+ addedInterfaceName: iface.name,
27
+ },
28
+ });
29
+ }
16
30
  exports.objectTypeInterfaceAdded = objectTypeInterfaceAdded;
17
- function objectTypeInterfaceRemoved(iface, type) {
31
+ function buildObjectTypeInterfaceRemovedMessage(args) {
32
+ return `'${args.objectTypeName}' object type no longer implements '${args.removedInterfaceName}' interface`;
33
+ }
34
+ function objectTypeInterfaceRemovedFromMeta(args) {
18
35
  return {
36
+ type: change_js_1.ChangeType.ObjectTypeInterfaceRemoved,
19
37
  criticality: {
20
38
  level: change_js_1.CriticalityLevel.Breaking,
21
39
  reason: 'Removing an interface from an object type can cause existing queries that use this in a fragment spread to error.',
22
40
  },
23
- type: change_js_1.ChangeType.ObjectTypeInterfaceRemoved,
24
- message: `'${type.name}' object type no longer implements '${iface.name}' interface`,
25
- path: type.name,
41
+ message: buildObjectTypeInterfaceRemovedMessage(args.meta),
42
+ meta: args.meta,
43
+ path: args.meta.objectTypeName,
26
44
  };
27
45
  }
46
+ exports.objectTypeInterfaceRemovedFromMeta = objectTypeInterfaceRemovedFromMeta;
47
+ function objectTypeInterfaceRemoved(iface, type) {
48
+ return objectTypeInterfaceRemovedFromMeta({
49
+ type: change_js_1.ChangeType.ObjectTypeInterfaceRemoved,
50
+ meta: {
51
+ objectTypeName: type.name,
52
+ removedInterfaceName: iface.name,
53
+ },
54
+ });
55
+ }
28
56
  exports.objectTypeInterfaceRemoved = objectTypeInterfaceRemoved;
@@ -1,40 +1,82 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.schemaSubscriptionTypeChanged = exports.schemaMutationTypeChanged = exports.schemaQueryTypeChanged = void 0;
3
+ exports.schemaSubscriptionTypeChanged = exports.schemaSubscriptionTypeChangedFromMeta = exports.schemaMutationTypeChanged = exports.schemaMutationTypeChangedFromMeta = exports.schemaQueryTypeChanged = exports.schemaQueryTypeChangedFromMeta = void 0;
4
4
  const change_js_1 = require("./change.js");
5
+ function buildSchemaQueryTypeChangedMessage(args) {
6
+ return `Schema query root has changed from '${args.oldQueryTypeName}' to '${args.newQueryTypeName}'`;
7
+ }
8
+ function schemaQueryTypeChangedFromMeta(args) {
9
+ return {
10
+ type: change_js_1.ChangeType.SchemaQueryTypeChanged,
11
+ criticality: {
12
+ level: change_js_1.CriticalityLevel.Breaking,
13
+ },
14
+ message: buildSchemaQueryTypeChangedMessage(args.meta),
15
+ meta: args.meta,
16
+ };
17
+ }
18
+ exports.schemaQueryTypeChangedFromMeta = schemaQueryTypeChangedFromMeta;
5
19
  function schemaQueryTypeChanged(oldSchema, newSchema) {
6
20
  const oldName = (oldSchema.getQueryType() || {}).name || 'unknown';
7
21
  const newName = (newSchema.getQueryType() || {}).name || 'unknown';
22
+ return schemaQueryTypeChangedFromMeta({
23
+ type: change_js_1.ChangeType.SchemaQueryTypeChanged,
24
+ meta: {
25
+ oldQueryTypeName: oldName,
26
+ newQueryTypeName: newName,
27
+ },
28
+ });
29
+ }
30
+ exports.schemaQueryTypeChanged = schemaQueryTypeChanged;
31
+ function buildSchemaMutationTypeChangedMessage(args) {
32
+ return `Schema mutation root has changed from '${args.oldMutationTypeName}' to '${args.newMutationTypeName}'`;
33
+ }
34
+ function schemaMutationTypeChangedFromMeta(args) {
8
35
  return {
36
+ type: change_js_1.ChangeType.SchemaMutationTypeChanged,
9
37
  criticality: {
10
38
  level: change_js_1.CriticalityLevel.Breaking,
11
39
  },
12
- type: change_js_1.ChangeType.SchemaQueryTypeChanged,
13
- message: `Schema query root has changed from '${oldName}' to '${newName}'`,
40
+ message: buildSchemaMutationTypeChangedMessage(args.meta),
41
+ meta: args.meta,
14
42
  };
15
43
  }
16
- exports.schemaQueryTypeChanged = schemaQueryTypeChanged;
44
+ exports.schemaMutationTypeChangedFromMeta = schemaMutationTypeChangedFromMeta;
17
45
  function schemaMutationTypeChanged(oldSchema, newSchema) {
18
46
  const oldName = (oldSchema.getMutationType() || {}).name || 'unknown';
19
47
  const newName = (newSchema.getMutationType() || {}).name || 'unknown';
48
+ return schemaMutationTypeChangedFromMeta({
49
+ type: change_js_1.ChangeType.SchemaMutationTypeChanged,
50
+ meta: {
51
+ newMutationTypeName: newName,
52
+ oldMutationTypeName: oldName,
53
+ },
54
+ });
55
+ }
56
+ exports.schemaMutationTypeChanged = schemaMutationTypeChanged;
57
+ function buildSchemaSubscriptionTypeChangedMessage(args) {
58
+ return `Schema subscription root has changed from '${args.oldSubscriptionTypeName}' to '${args.newSubscriptionTypeName}'`;
59
+ }
60
+ function schemaSubscriptionTypeChangedFromMeta(args) {
20
61
  return {
62
+ type: change_js_1.ChangeType.SchemaSubscriptionTypeChanged,
21
63
  criticality: {
22
64
  level: change_js_1.CriticalityLevel.Breaking,
23
65
  },
24
- type: change_js_1.ChangeType.SchemaMutationTypeChanged,
25
- message: `Schema mutation root has changed from '${oldName}' to '${newName}'`,
66
+ message: buildSchemaSubscriptionTypeChangedMessage(args.meta),
67
+ meta: args.meta,
26
68
  };
27
69
  }
28
- exports.schemaMutationTypeChanged = schemaMutationTypeChanged;
70
+ exports.schemaSubscriptionTypeChangedFromMeta = schemaSubscriptionTypeChangedFromMeta;
29
71
  function schemaSubscriptionTypeChanged(oldSchema, newSchema) {
30
72
  const oldName = (oldSchema.getSubscriptionType() || {}).name || 'unknown';
31
73
  const newName = (newSchema.getSubscriptionType() || {}).name || 'unknown';
32
- return {
33
- criticality: {
34
- level: change_js_1.CriticalityLevel.Breaking,
35
- },
74
+ return schemaSubscriptionTypeChangedFromMeta({
36
75
  type: change_js_1.ChangeType.SchemaSubscriptionTypeChanged,
37
- message: `Schema subscription root has changed from '${oldName}' to '${newName}'`,
38
- };
76
+ meta: {
77
+ newSubscriptionTypeName: newName,
78
+ oldSubscriptionTypeName: oldName,
79
+ },
80
+ });
39
81
  }
40
82
  exports.schemaSubscriptionTypeChanged = schemaSubscriptionTypeChanged;
@@ -1,72 +1,159 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.typeDescriptionAdded = exports.typeDescriptionRemoved = exports.typeDescriptionChanged = exports.typeKindChanged = exports.typeAdded = exports.typeRemoved = void 0;
3
+ exports.typeDescriptionAdded = exports.typeDescriptionAddedFromMeta = exports.typeDescriptionRemoved = exports.typeDescriptionRemovedFromMeta = exports.typeDescriptionChanged = exports.typeDescriptionChangedFromMeta = exports.typeKindChanged = exports.typeKindChangedFromMeta = exports.typeAdded = exports.typeAddedFromMeta = exports.typeRemoved = exports.typeRemovedFromMeta = void 0;
4
4
  const graphql_js_1 = require("../../utils/graphql.js");
5
5
  const change_js_1 = require("./change.js");
6
- function typeRemoved(type) {
6
+ function buildTypeRemovedMessage(type) {
7
+ return `Type '${type.removedTypeName}' was removed`;
8
+ }
9
+ function typeRemovedFromMeta(args) {
7
10
  return {
8
11
  criticality: {
9
12
  level: change_js_1.CriticalityLevel.Breaking,
10
13
  },
11
14
  type: change_js_1.ChangeType.TypeRemoved,
12
- message: `Type '${type.name}' was removed`,
13
- path: type.name,
15
+ message: buildTypeRemovedMessage(args.meta),
16
+ meta: args.meta,
17
+ path: args.meta.removedTypeName,
14
18
  };
15
19
  }
20
+ exports.typeRemovedFromMeta = typeRemovedFromMeta;
21
+ function typeRemoved(type) {
22
+ return typeRemovedFromMeta({
23
+ type: change_js_1.ChangeType.TypeRemoved,
24
+ meta: {
25
+ removedTypeName: type.name,
26
+ },
27
+ });
28
+ }
16
29
  exports.typeRemoved = typeRemoved;
17
- function typeAdded(type) {
30
+ function buildTypeAddedMessage(type) {
31
+ return `Type '${type.addedTypeName}' was added`;
32
+ }
33
+ function typeAddedFromMeta(args) {
18
34
  return {
19
35
  criticality: {
20
36
  level: change_js_1.CriticalityLevel.NonBreaking,
21
37
  },
22
38
  type: change_js_1.ChangeType.TypeAdded,
23
- message: `Type '${type.name}' was added`,
24
- path: type.name,
39
+ message: buildTypeAddedMessage(args.meta),
40
+ meta: args.meta,
41
+ path: args.meta.addedTypeName,
25
42
  };
26
43
  }
44
+ exports.typeAddedFromMeta = typeAddedFromMeta;
45
+ function typeAdded(type) {
46
+ return typeAddedFromMeta({
47
+ type: change_js_1.ChangeType.TypeAdded,
48
+ meta: {
49
+ addedTypeName: type.name,
50
+ },
51
+ });
52
+ }
27
53
  exports.typeAdded = typeAdded;
28
- function typeKindChanged(oldType, newType) {
54
+ function buildTypeKindChangedMessage(args) {
55
+ return `'${args.meta.typeName}' kind changed from '${args.meta.oldTypeKind}' to '${args.meta.newTypeKind}'`;
56
+ }
57
+ function typeKindChangedFromMeta(args) {
29
58
  return {
30
59
  criticality: {
31
60
  level: change_js_1.CriticalityLevel.Breaking,
32
61
  reason: `Changing the kind of a type is a breaking change because it can cause existing queries to error. For example, turning an object type to a scalar type would break queries that define a selection set for this type.`,
33
62
  },
34
63
  type: change_js_1.ChangeType.TypeKindChanged,
35
- message: `'${oldType.name}' kind changed from '${(0, graphql_js_1.getKind)(oldType)}' to '${(0, graphql_js_1.getKind)(newType)}'`,
36
- path: oldType.name,
64
+ message: buildTypeKindChangedMessage(args),
65
+ path: args.meta.typeName,
66
+ meta: args.meta,
37
67
  };
38
68
  }
69
+ exports.typeKindChangedFromMeta = typeKindChangedFromMeta;
70
+ function typeKindChanged(oldType, newType) {
71
+ return typeKindChangedFromMeta({
72
+ type: change_js_1.ChangeType.TypeKindChanged,
73
+ meta: {
74
+ typeName: oldType.name,
75
+ newTypeKind: String((0, graphql_js_1.getKind)(newType)),
76
+ oldTypeKind: String((0, graphql_js_1.getKind)(oldType)),
77
+ },
78
+ });
79
+ }
39
80
  exports.typeKindChanged = typeKindChanged;
40
- function typeDescriptionChanged(oldType, newType) {
81
+ function buildTypeDescriptionChangedMessage(args) {
82
+ return `Description '${args.oldTypeDescription}' on type '${args.typeName}' has changed to '${args.newTypeDescription}'`;
83
+ }
84
+ function typeDescriptionChangedFromMeta(args) {
41
85
  return {
42
86
  criticality: {
43
87
  level: change_js_1.CriticalityLevel.NonBreaking,
44
88
  },
45
89
  type: change_js_1.ChangeType.TypeDescriptionChanged,
46
- message: `Description '${oldType.description}' on type '${oldType.name}' has changed to '${newType.description}'`,
47
- path: oldType.name,
90
+ message: buildTypeDescriptionChangedMessage(args.meta),
91
+ path: args.meta.typeName,
92
+ meta: args.meta,
48
93
  };
49
94
  }
95
+ exports.typeDescriptionChangedFromMeta = typeDescriptionChangedFromMeta;
96
+ function typeDescriptionChanged(oldType, newType) {
97
+ var _a, _b;
98
+ return typeDescriptionChangedFromMeta({
99
+ type: change_js_1.ChangeType.TypeDescriptionChanged,
100
+ meta: {
101
+ typeName: oldType.name,
102
+ newTypeDescription: (_a = newType.description) !== null && _a !== void 0 ? _a : '',
103
+ oldTypeDescription: (_b = oldType.description) !== null && _b !== void 0 ? _b : '',
104
+ },
105
+ });
106
+ }
50
107
  exports.typeDescriptionChanged = typeDescriptionChanged;
51
- function typeDescriptionRemoved(type) {
108
+ function buildTypeDescriptionRemoved(args) {
109
+ return `Description '${args.removedTypeDescription}' was removed from object type '${args.typeName}'`;
110
+ }
111
+ function typeDescriptionRemovedFromMeta(args) {
52
112
  return {
53
113
  criticality: {
54
114
  level: change_js_1.CriticalityLevel.NonBreaking,
55
115
  },
56
116
  type: change_js_1.ChangeType.TypeDescriptionRemoved,
57
- message: `Description '${type.description}' was removed from object type '${type.name}'`,
58
- path: type.name,
117
+ message: buildTypeDescriptionRemoved(args.meta),
118
+ path: args.meta.typeName,
119
+ meta: args.meta,
59
120
  };
60
121
  }
122
+ exports.typeDescriptionRemovedFromMeta = typeDescriptionRemovedFromMeta;
123
+ function typeDescriptionRemoved(type) {
124
+ var _a;
125
+ return typeDescriptionRemovedFromMeta({
126
+ type: change_js_1.ChangeType.TypeDescriptionRemoved,
127
+ meta: {
128
+ typeName: type.name,
129
+ removedTypeDescription: (_a = type.description) !== null && _a !== void 0 ? _a : '',
130
+ },
131
+ });
132
+ }
61
133
  exports.typeDescriptionRemoved = typeDescriptionRemoved;
62
- function typeDescriptionAdded(type) {
134
+ function buildTypeDescriptionAddedMessage(args) {
135
+ return `Object type '${args.typeName}' has description '${args.addedTypeDescription}'`;
136
+ }
137
+ function typeDescriptionAddedFromMeta(args) {
63
138
  return {
64
139
  criticality: {
65
140
  level: change_js_1.CriticalityLevel.NonBreaking,
66
141
  },
67
142
  type: change_js_1.ChangeType.TypeDescriptionAdded,
68
- message: `Object type '${type.name}' has description '${type.description}'`,
69
- path: type.name,
143
+ message: buildTypeDescriptionAddedMessage(args.meta),
144
+ path: args.meta.typeName,
145
+ meta: args.meta,
70
146
  };
71
147
  }
148
+ exports.typeDescriptionAddedFromMeta = typeDescriptionAddedFromMeta;
149
+ function typeDescriptionAdded(type) {
150
+ var _a;
151
+ return typeDescriptionAddedFromMeta({
152
+ type: change_js_1.ChangeType.TypeDescriptionAdded,
153
+ meta: {
154
+ typeName: type.name,
155
+ addedTypeDescription: (_a = type.description) !== null && _a !== void 0 ? _a : '',
156
+ },
157
+ });
158
+ }
72
159
  exports.typeDescriptionAdded = typeDescriptionAdded;
@@ -1,28 +1,56 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.unionMemberAdded = exports.unionMemberRemoved = void 0;
3
+ exports.unionMemberAdded = exports.buildUnionMemberAddedMessageFromMeta = exports.unionMemberRemoved = exports.unionMemberRemovedFromMeta = void 0;
4
4
  const change_js_1 = require("./change.js");
5
- function unionMemberRemoved(union, type) {
5
+ function buildUnionMemberRemovedMessage(args) {
6
+ return `Member '${args.removedUnionMemberTypeName}' was removed from Union type '${args.unionName}'`;
7
+ }
8
+ function unionMemberRemovedFromMeta(args) {
6
9
  return {
7
10
  criticality: {
8
11
  level: change_js_1.CriticalityLevel.Breaking,
9
12
  reason: 'Removing a union member from a union can cause existing queries that use this union member in a fragment spread to error.',
10
13
  },
11
14
  type: change_js_1.ChangeType.UnionMemberRemoved,
12
- message: `Member '${type.name}' was removed from Union type '${union.name}'`,
13
- path: union.name,
15
+ message: buildUnionMemberRemovedMessage(args.meta),
16
+ meta: args.meta,
17
+ path: args.meta.unionName,
14
18
  };
15
19
  }
20
+ exports.unionMemberRemovedFromMeta = unionMemberRemovedFromMeta;
21
+ function unionMemberRemoved(union, type) {
22
+ return unionMemberRemovedFromMeta({
23
+ type: change_js_1.ChangeType.UnionMemberRemoved,
24
+ meta: {
25
+ unionName: union.name,
26
+ removedUnionMemberTypeName: type.name,
27
+ },
28
+ });
29
+ }
16
30
  exports.unionMemberRemoved = unionMemberRemoved;
17
- function unionMemberAdded(union, type) {
31
+ function buildUnionMemberAddedMessage(args) {
32
+ return `Member '${args.addedUnionMemberTypeName}' was added to Union type '${args.unionName}'`;
33
+ }
34
+ function buildUnionMemberAddedMessageFromMeta(args) {
18
35
  return {
19
36
  criticality: {
20
37
  level: change_js_1.CriticalityLevel.Dangerous,
21
38
  reason: 'Adding a possible type to Unions may break existing clients that were not programming defensively against a new possible type.',
22
39
  },
23
40
  type: change_js_1.ChangeType.UnionMemberAdded,
24
- message: `Member '${type.name}' was added to Union type '${union.name}'`,
25
- path: union.name,
41
+ message: buildUnionMemberAddedMessage(args.meta),
42
+ meta: args.meta,
43
+ path: args.meta.unionName,
26
44
  };
27
45
  }
46
+ exports.buildUnionMemberAddedMessageFromMeta = buildUnionMemberAddedMessageFromMeta;
47
+ function unionMemberAdded(union, type) {
48
+ return buildUnionMemberAddedMessageFromMeta({
49
+ type: change_js_1.ChangeType.UnionMemberAdded,
50
+ meta: {
51
+ unionName: union.name,
52
+ addedUnionMemberTypeName: type.name,
53
+ },
54
+ });
55
+ }
28
56
  exports.unionMemberAdded = unionMemberAdded;