@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.
- package/README.md +3 -3
- package/cjs/action/src/run.js +1 -1
- package/cjs/commands/commands/src/index.js +7 -8
- package/cjs/commands/diff/src/index.js +6 -6
- package/cjs/commands/docs/src/index.js +1 -3
- package/cjs/commands/serve/src/fake.js +4 -4
- package/cjs/commands/serve/src/index.js +8 -7
- package/cjs/commands/similar/src/index.js +2 -2
- package/cjs/commands/validate/src/index.js +4 -4
- package/cjs/core/src/ast/document.js +2 -2
- package/cjs/core/src/coverage/index.js +7 -7
- package/cjs/core/src/diff/changes/argument.js +80 -19
- package/cjs/core/src/diff/changes/directive.js +208 -39
- package/cjs/core/src/diff/changes/enum.js +123 -25
- package/cjs/core/src/diff/changes/field.js +260 -69
- package/cjs/core/src/diff/changes/input.js +153 -34
- package/cjs/core/src/diff/changes/object.js +37 -9
- package/cjs/core/src/diff/changes/schema.js +55 -13
- package/cjs/core/src/diff/changes/type.js +106 -19
- package/cjs/core/src/diff/changes/union.js +35 -7
- package/cjs/core/src/diff/directive.js +2 -4
- package/cjs/core/src/diff/rules/consider-usage.js +3 -3
- package/cjs/core/src/index.js +63 -1
- package/cjs/core/src/similar/index.js +2 -2
- package/cjs/core/src/utils/compare.js +3 -9
- package/cjs/core/src/utils/is-deprecated.js +1 -1
- package/cjs/core/src/utils/string.js +5 -2
- package/cjs/core/src/validate/complexity.js +1 -1
- package/cjs/core/src/validate/directive-count.js +1 -1
- package/cjs/core/src/validate/index.js +12 -11
- package/cjs/core/src/validate/query-depth.js +1 -1
- package/cjs/github/src/helpers/config.js +6 -2
- package/cjs/github/src/helpers/utils.js +1 -1
- package/cjs/loaders/loaders/src/index.js +1 -2
- package/esm/action/src/run.js +1 -1
- package/esm/commands/commands/src/index.js +7 -8
- package/esm/commands/diff/src/index.js +6 -6
- package/esm/commands/docs/src/index.js +1 -4
- package/esm/commands/serve/src/fake.js +4 -4
- package/esm/commands/serve/src/index.js +8 -7
- package/esm/commands/similar/src/index.js +2 -2
- package/esm/commands/validate/src/index.js +4 -4
- package/esm/core/src/ast/document.js +2 -2
- package/esm/core/src/coverage/index.js +7 -7
- package/esm/core/src/diff/changes/argument.js +77 -19
- package/esm/core/src/diff/changes/directive.js +198 -39
- package/esm/core/src/diff/changes/enum.js +117 -25
- package/esm/core/src/diff/changes/field.js +240 -62
- package/esm/core/src/diff/changes/input.js +145 -34
- package/esm/core/src/diff/changes/object.js +35 -9
- package/esm/core/src/diff/changes/schema.js +50 -11
- package/esm/core/src/diff/changes/type.js +100 -19
- package/esm/core/src/diff/changes/union.js +33 -7
- package/esm/core/src/diff/directive.js +2 -4
- package/esm/core/src/diff/rules/consider-usage.js +3 -3
- package/esm/core/src/index.js +9 -0
- package/esm/core/src/similar/index.js +2 -2
- package/esm/core/src/utils/compare.js +3 -9
- package/esm/core/src/utils/is-deprecated.js +1 -1
- package/esm/core/src/utils/string.js +5 -2
- package/esm/core/src/validate/complexity.js +1 -1
- package/esm/core/src/validate/directive-count.js +1 -1
- package/esm/core/src/validate/index.js +12 -11
- package/esm/core/src/validate/query-depth.js +1 -1
- package/esm/github/src/helpers/config.js +6 -2
- package/esm/github/src/helpers/utils.js +1 -1
- package/esm/loaders/loaders/src/index.js +1 -2
- package/package.json +20 -20
- package/typings/core/src/diff/changes/argument.d.cts +52 -4
- package/typings/core/src/diff/changes/argument.d.ts +52 -4
- package/typings/core/src/diff/changes/change.d.cts +500 -2
- package/typings/core/src/diff/changes/change.d.ts +500 -2
- package/typings/core/src/diff/changes/directive.d.cts +147 -11
- package/typings/core/src/diff/changes/directive.d.ts +147 -11
- package/typings/core/src/diff/changes/enum.d.cts +75 -7
- package/typings/core/src/diff/changes/enum.d.ts +75 -7
- package/typings/core/src/diff/changes/field.d.cts +189 -14
- package/typings/core/src/diff/changes/field.d.ts +189 -14
- package/typings/core/src/diff/changes/input.d.cts +112 -8
- package/typings/core/src/diff/changes/input.d.ts +112 -8
- package/typings/core/src/diff/changes/object.d.cts +29 -3
- package/typings/core/src/diff/changes/object.d.ts +29 -3
- package/typings/core/src/diff/changes/schema.d.cts +37 -4
- package/typings/core/src/diff/changes/schema.d.ts +37 -4
- package/typings/core/src/diff/changes/type.d.cts +80 -7
- package/typings/core/src/diff/changes/type.d.ts +80 -7
- package/typings/core/src/diff/changes/union.d.cts +29 -3
- package/typings/core/src/diff/changes/union.d.ts +29 -3
- package/typings/core/src/index.d.cts +10 -0
- package/typings/core/src/index.d.ts +10 -0
- package/typings/core/src/utils/is-deprecated.d.cts +1 -1
- package/typings/core/src/utils/is-deprecated.d.ts +1 -1
- package/typings/core/src/utils/string.d.cts +1 -1
- package/typings/core/src/utils/string.d.ts +1 -1
- package/typings/core/utils/testing.d.cts +2 -2
- package/typings/core/utils/testing.d.ts +2 -2
- package/typings/github/src/helpers/utils.d.cts +1 -1
- 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
|
|
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
|
-
|
|
16
|
-
|
|
17
|
-
path: [
|
|
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
|
|
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
|
-
|
|
42
|
+
type: change_js_1.ChangeType.InputFieldAdded,
|
|
43
|
+
criticality: args.meta.isAddedInputFieldTypeNullable
|
|
24
44
|
? {
|
|
25
|
-
level: change_js_1.CriticalityLevel.
|
|
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.
|
|
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
|
-
|
|
32
|
-
|
|
33
|
-
path: [
|
|
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
|
|
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
|
-
|
|
43
|
-
|
|
44
|
-
path: [
|
|
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
|
|
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
|
-
|
|
54
|
-
|
|
55
|
-
path: [
|
|
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
|
|
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
|
-
|
|
65
|
-
|
|
66
|
-
path: [
|
|
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
|
|
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
|
-
|
|
77
|
-
|
|
78
|
-
path: [
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
94
|
-
|
|
95
|
-
path: [
|
|
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
|
|
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
|
-
|
|
12
|
-
|
|
13
|
-
path:
|
|
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
|
|
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
|
-
|
|
24
|
-
|
|
25
|
-
path:
|
|
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
|
-
|
|
13
|
-
|
|
40
|
+
message: buildSchemaMutationTypeChangedMessage(args.meta),
|
|
41
|
+
meta: args.meta,
|
|
14
42
|
};
|
|
15
43
|
}
|
|
16
|
-
exports.
|
|
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
|
-
|
|
25
|
-
|
|
66
|
+
message: buildSchemaSubscriptionTypeChangedMessage(args.meta),
|
|
67
|
+
meta: args.meta,
|
|
26
68
|
};
|
|
27
69
|
}
|
|
28
|
-
exports.
|
|
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
|
-
|
|
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
|
|
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:
|
|
13
|
-
|
|
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
|
|
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:
|
|
24
|
-
|
|
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
|
|
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:
|
|
36
|
-
path:
|
|
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
|
|
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:
|
|
47
|
-
path:
|
|
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
|
|
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:
|
|
58
|
-
path:
|
|
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
|
|
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:
|
|
69
|
-
path:
|
|
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
|
|
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:
|
|
13
|
-
|
|
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
|
|
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:
|
|
25
|
-
|
|
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;
|