@apollo/federation-internals 2.4.4 → 2.4.5
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/CHANGELOG.md +6 -0
- package/dist/Subgraph.d.ts +1 -0
- package/dist/Subgraph.d.ts.map +1 -0
- package/dist/Subgraph.js +2 -0
- package/dist/Subgraph.js.map +1 -0
- package/dist/argumentCompositionStrategies.d.ts +34 -0
- package/dist/argumentCompositionStrategies.d.ts.map +1 -0
- package/dist/argumentCompositionStrategies.js +35 -0
- package/dist/argumentCompositionStrategies.js.map +1 -0
- package/dist/buildSchema.d.ts +10 -0
- package/dist/buildSchema.d.ts.map +1 -0
- package/dist/buildSchema.js +362 -0
- package/dist/buildSchema.js.map +1 -0
- package/dist/coreSpec.d.ts +127 -0
- package/dist/coreSpec.d.ts.map +1 -0
- package/dist/coreSpec.js +590 -0
- package/dist/coreSpec.js.map +1 -0
- package/dist/debug.d.ts +15 -0
- package/dist/debug.d.ts.map +1 -0
- package/dist/debug.js +122 -0
- package/dist/debug.js.map +1 -0
- package/dist/definitions.d.ts +663 -0
- package/dist/definitions.d.ts.map +1 -0
- package/dist/definitions.js +2841 -0
- package/dist/definitions.js.map +1 -0
- package/dist/directiveAndTypeSpecification.d.ts +67 -0
- package/dist/directiveAndTypeSpecification.d.ts.map +1 -0
- package/dist/directiveAndTypeSpecification.js +271 -0
- package/dist/directiveAndTypeSpecification.js.map +1 -0
- package/dist/error.d.ts +128 -0
- package/dist/error.d.ts.map +1 -0
- package/dist/error.js +315 -0
- package/dist/error.js.map +1 -0
- package/dist/extractSubgraphsFromSupergraph.d.ts +8 -0
- package/dist/extractSubgraphsFromSupergraph.d.ts.map +1 -0
- package/dist/extractSubgraphsFromSupergraph.js +576 -0
- package/dist/extractSubgraphsFromSupergraph.js.map +1 -0
- package/dist/federation.d.ts +175 -0
- package/dist/federation.d.ts.map +1 -0
- package/dist/federation.js +1414 -0
- package/dist/federation.js.map +1 -0
- package/dist/federationSpec.d.ts +25 -0
- package/dist/federationSpec.d.ts.map +1 -0
- package/dist/federationSpec.js +125 -0
- package/dist/federationSpec.js.map +1 -0
- package/dist/genErrorCodeDoc.d.ts +2 -0
- package/dist/genErrorCodeDoc.d.ts.map +1 -0
- package/dist/genErrorCodeDoc.js +61 -0
- package/dist/genErrorCodeDoc.js.map +1 -0
- package/dist/graphQLJSSchemaToAST.d.ts +8 -0
- package/dist/graphQLJSSchemaToAST.d.ts.map +1 -0
- package/dist/graphQLJSSchemaToAST.js +96 -0
- package/dist/graphQLJSSchemaToAST.js.map +1 -0
- package/dist/inaccessibleSpec.d.ts +18 -0
- package/dist/inaccessibleSpec.d.ts.map +1 -0
- package/dist/inaccessibleSpec.js +655 -0
- package/dist/inaccessibleSpec.js.map +1 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +42 -0
- package/dist/index.js.map +1 -0
- package/dist/introspection.d.ts +6 -0
- package/dist/introspection.d.ts.map +1 -0
- package/dist/introspection.js +96 -0
- package/dist/introspection.js.map +1 -0
- package/dist/joinSpec.d.ts +51 -0
- package/dist/joinSpec.d.ts.map +1 -0
- package/dist/joinSpec.js +160 -0
- package/dist/joinSpec.js.map +1 -0
- package/dist/knownCoreFeatures.d.ts +5 -0
- package/dist/knownCoreFeatures.d.ts.map +1 -0
- package/dist/knownCoreFeatures.js +20 -0
- package/dist/knownCoreFeatures.js.map +1 -0
- package/dist/operations.d.ts +415 -0
- package/dist/operations.d.ts.map +1 -0
- package/dist/operations.js +2040 -0
- package/dist/operations.js.map +1 -0
- package/dist/precompute.d.ts +3 -0
- package/dist/precompute.d.ts.map +1 -0
- package/dist/precompute.js +54 -0
- package/dist/precompute.js.map +1 -0
- package/dist/print.d.ts +28 -0
- package/dist/print.d.ts.map +1 -0
- package/dist/print.js +299 -0
- package/dist/print.js.map +1 -0
- package/dist/schemaUpgrader.d.ts +121 -0
- package/dist/schemaUpgrader.d.ts.map +1 -0
- package/dist/schemaUpgrader.js +570 -0
- package/dist/schemaUpgrader.js.map +1 -0
- package/dist/suggestions.d.ts +3 -0
- package/dist/suggestions.d.ts.map +1 -0
- package/dist/suggestions.js +44 -0
- package/dist/suggestions.js.map +1 -0
- package/dist/supergraphs.d.ts +10 -0
- package/dist/supergraphs.d.ts.map +1 -0
- package/dist/supergraphs.js +76 -0
- package/dist/supergraphs.js.map +1 -0
- package/dist/tagSpec.d.ts +19 -0
- package/dist/tagSpec.d.ts.map +1 -0
- package/dist/tagSpec.js +66 -0
- package/dist/tagSpec.js.map +1 -0
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +64 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +64 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +326 -0
- package/dist/utils.js.map +1 -0
- package/dist/validate.d.ts +4 -0
- package/dist/validate.d.ts.map +1 -0
- package/dist/validate.js +239 -0
- package/dist/validate.js.map +1 -0
- package/dist/validation/KnownTypeNamesInFederationRule.d.ts +4 -0
- package/dist/validation/KnownTypeNamesInFederationRule.d.ts.map +1 -0
- package/dist/validation/KnownTypeNamesInFederationRule.js +41 -0
- package/dist/validation/KnownTypeNamesInFederationRule.js.map +1 -0
- package/dist/values.d.ts +23 -0
- package/dist/values.d.ts.map +1 -0
- package/dist/values.js +580 -0
- package/dist/values.js.map +1 -0
- package/package.json +1 -1
- package/tsconfig.tsbuildinfo +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=Subgraph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Subgraph.d.ts","sourceRoot":"","sources":["../src/Subgraph.ts"],"names":[],"mappings":""}
|
package/dist/Subgraph.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Subgraph.js","sourceRoot":"","sources":["../src/Subgraph.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { InputType, ListType, NonNullType, Schema } from "./definitions";
|
|
2
|
+
export type ArgumentCompositionStrategy = {
|
|
3
|
+
name: string;
|
|
4
|
+
supportedTypes: (schema: Schema) => InputType[];
|
|
5
|
+
mergeValues: (values: any[]) => any;
|
|
6
|
+
};
|
|
7
|
+
export declare const ARGUMENT_COMPOSITION_STRATEGIES: {
|
|
8
|
+
MAX: {
|
|
9
|
+
name: string;
|
|
10
|
+
supportedTypes: (schema: Schema) => NonNullType<import("./definitions").ScalarType>[];
|
|
11
|
+
mergeValues: (values: any[]) => number;
|
|
12
|
+
};
|
|
13
|
+
MIN: {
|
|
14
|
+
name: string;
|
|
15
|
+
supportedTypes: (schema: Schema) => NonNullType<import("./definitions").ScalarType>[];
|
|
16
|
+
mergeValues: (values: any[]) => number;
|
|
17
|
+
};
|
|
18
|
+
SUM: {
|
|
19
|
+
name: string;
|
|
20
|
+
supportedTypes: (schema: Schema) => NonNullType<import("./definitions").ScalarType>[];
|
|
21
|
+
mergeValues: (values: any[]) => any;
|
|
22
|
+
};
|
|
23
|
+
INTERSECTION: {
|
|
24
|
+
name: string;
|
|
25
|
+
supportedTypes: (schema: Schema) => NonNullType<ListType<NonNullType<import("./definitions").ScalarType>>>[];
|
|
26
|
+
mergeValues: (values: any[]) => any;
|
|
27
|
+
};
|
|
28
|
+
UNION: {
|
|
29
|
+
name: string;
|
|
30
|
+
supportedTypes: (schema: Schema) => NonNullType<ListType<NonNullType<import("./definitions").ScalarType>>>[];
|
|
31
|
+
mergeValues: (values: any[]) => any;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=argumentCompositionStrategies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"argumentCompositionStrategies.d.ts","sourceRoot":"","sources":["../src/argumentCompositionStrategies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAExE,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;IAChD,WAAW,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;CACrC,CAAA;AAED,eAAO,MAAM,+BAA+B;;;iCAGf,MAAM;8BACT,GAAG,EAAE;;;;iCAIF,MAAM;8BACT,GAAG,EAAE;;;;iCAIF,MAAM;8BACT,GAAG,EAAE;;;;iCAIF,MAAM;8BACT,GAAG,EAAE;;;;iCAIF,MAAM;8BACT,GAAG,EAAE;;CAM9B,CAAA"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ARGUMENT_COMPOSITION_STRATEGIES = void 0;
|
|
4
|
+
const definitions_1 = require("./definitions");
|
|
5
|
+
exports.ARGUMENT_COMPOSITION_STRATEGIES = {
|
|
6
|
+
MAX: {
|
|
7
|
+
name: 'MAX',
|
|
8
|
+
supportedTypes: (schema) => [new definitions_1.NonNullType(schema.intType())],
|
|
9
|
+
mergeValues: (values) => Math.max(...values),
|
|
10
|
+
},
|
|
11
|
+
MIN: {
|
|
12
|
+
name: 'MIN',
|
|
13
|
+
supportedTypes: (schema) => [new definitions_1.NonNullType(schema.intType())],
|
|
14
|
+
mergeValues: (values) => Math.min(...values),
|
|
15
|
+
},
|
|
16
|
+
SUM: {
|
|
17
|
+
name: 'SUM',
|
|
18
|
+
supportedTypes: (schema) => [new definitions_1.NonNullType(schema.intType())],
|
|
19
|
+
mergeValues: (values) => values.reduce((acc, val) => acc + val, 0),
|
|
20
|
+
},
|
|
21
|
+
INTERSECTION: {
|
|
22
|
+
name: 'INTERSECTION',
|
|
23
|
+
supportedTypes: (schema) => schema.builtInScalarTypes().map((t) => new definitions_1.NonNullType(new definitions_1.ListType(new definitions_1.NonNullType(t)))),
|
|
24
|
+
mergeValues: (values) => values.reduce((acc, val) => acc.filter((v) => val.includes(v)), values[0]),
|
|
25
|
+
},
|
|
26
|
+
UNION: {
|
|
27
|
+
name: 'UNION',
|
|
28
|
+
supportedTypes: (schema) => schema.builtInScalarTypes().map((t) => new definitions_1.NonNullType(new definitions_1.ListType(new definitions_1.NonNullType(t)))),
|
|
29
|
+
mergeValues: (values) => values.reduce((acc, val) => {
|
|
30
|
+
const newValues = val.filter((v) => !acc.includes(v));
|
|
31
|
+
return acc.concat(newValues);
|
|
32
|
+
}, []),
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=argumentCompositionStrategies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"argumentCompositionStrategies.js","sourceRoot":"","sources":["../src/argumentCompositionStrategies.ts"],"names":[],"mappings":";;;AAAA,+CAAwE;AAQ3D,QAAA,+BAA+B,GAAG;IAC7C,GAAG,EAAE;QACH,IAAI,EAAE,KAAK;QACX,cAAc,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC,IAAI,yBAAW,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACvE,WAAW,EAAE,CAAC,MAAa,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;KACpD;IACD,GAAG,EAAE;QACH,IAAI,EAAE,KAAK;QACX,cAAc,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC,IAAI,yBAAW,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACvE,WAAW,EAAE,CAAC,MAAa,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;KACpD;IACD,GAAG,EAAE;QACH,IAAI,EAAE,KAAK;QACX,cAAc,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC,IAAI,yBAAW,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACvE,WAAW,EAAE,CAAC,MAAa,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;KAC1E;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,cAAc;QACpB,cAAc,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,yBAAW,CAAC,IAAI,sBAAQ,CAAC,IAAI,yBAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7H,WAAW,EAAE,CAAC,MAAa,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;KAChH;IACD,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,cAAc,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,yBAAW,CAAC,IAAI,sBAAQ,CAAC,IAAI,yBAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7H,WAAW,EAAE,CAAC,MAAa,EAAE,EAAE,CAC7B,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACzB,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3D,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC,EAAE,EAAE,CAAC;KACT;CACF,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DocumentNode, Source } from "graphql";
|
|
2
|
+
import { SchemaBlueprint, Schema, Type } from "./definitions";
|
|
3
|
+
export type BuildSchemaOptions = {
|
|
4
|
+
blueprint?: SchemaBlueprint;
|
|
5
|
+
validate?: boolean;
|
|
6
|
+
};
|
|
7
|
+
export declare function buildSchema(source: string | Source, options?: BuildSchemaOptions): Schema;
|
|
8
|
+
export declare function buildSchemaFromAST(documentNode: DocumentNode, options?: BuildSchemaOptions): Schema;
|
|
9
|
+
export declare function builtTypeReference(encodedType: string, schema: Schema): Type;
|
|
10
|
+
//# sourceMappingURL=buildSchema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildSchema.d.ts","sourceRoot":"","sources":["../src/buildSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,YAAY,EAMZ,MAAM,EAcP,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,eAAe,EACf,MAAM,EASN,IAAI,EAgBL,MAAM,eAAe,CAAC;AAQvB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAA;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAEzF;AAED,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,YAAY,EAC1B,OAAO,CAAC,EAAE,kBAAkB,GAC3B,MAAM,CAyGR;AAwUD,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAE5E"}
|
|
@@ -0,0 +1,362 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.builtTypeReference = exports.buildSchemaFromAST = exports.buildSchema = void 0;
|
|
4
|
+
const graphql_1 = require("graphql");
|
|
5
|
+
const values_1 = require("./values");
|
|
6
|
+
const definitions_1 = require("./definitions");
|
|
7
|
+
const error_1 = require("./error");
|
|
8
|
+
const introspection_1 = require("./introspection");
|
|
9
|
+
function buildValue(value) {
|
|
10
|
+
return value ? (0, values_1.valueFromASTUntyped)(value) : undefined;
|
|
11
|
+
}
|
|
12
|
+
function buildSchema(source, options) {
|
|
13
|
+
return buildSchemaFromAST((0, graphql_1.parse)(source), options);
|
|
14
|
+
}
|
|
15
|
+
exports.buildSchema = buildSchema;
|
|
16
|
+
function buildSchemaFromAST(documentNode, options) {
|
|
17
|
+
var _a;
|
|
18
|
+
const errors = [];
|
|
19
|
+
const schema = new definitions_1.Schema(options === null || options === void 0 ? void 0 : options.blueprint);
|
|
20
|
+
const { directiveDefinitions, typeDefinitions, typeExtensions, schemaDefinitions, schemaExtensions, } = buildNamedTypeAndDirectivesShallow(documentNode, schema, errors);
|
|
21
|
+
for (const typeNode of typeDefinitions) {
|
|
22
|
+
if (typeNode.kind === graphql_1.Kind.ENUM_TYPE_DEFINITION) {
|
|
23
|
+
buildEnumTypeValuesWithoutDirectiveApplications(typeNode, schema.type(typeNode.name.value));
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
for (const typeExtensionNode of typeExtensions) {
|
|
27
|
+
if (typeExtensionNode.kind === graphql_1.Kind.ENUM_TYPE_EXTENSION) {
|
|
28
|
+
const toExtend = schema.type(typeExtensionNode.name.value);
|
|
29
|
+
const extension = toExtend.newExtension();
|
|
30
|
+
extension.sourceAST = typeExtensionNode;
|
|
31
|
+
buildEnumTypeValuesWithoutDirectiveApplications(typeExtensionNode, schema.type(typeExtensionNode.name.value), extension);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
for (const directiveDefinitionNode of directiveDefinitions) {
|
|
35
|
+
buildDirectiveDefinitionInnerWithoutDirectiveApplications(directiveDefinitionNode, schema.directive(directiveDefinitionNode.name.value), errors);
|
|
36
|
+
}
|
|
37
|
+
for (const schemaDefinition of schemaDefinitions) {
|
|
38
|
+
buildSchemaDefinitionInner(schemaDefinition, schema.schemaDefinition, errors);
|
|
39
|
+
}
|
|
40
|
+
for (const schemaExtension of schemaExtensions) {
|
|
41
|
+
buildSchemaDefinitionInner(schemaExtension, schema.schemaDefinition, errors, schema.schemaDefinition.newExtension());
|
|
42
|
+
}
|
|
43
|
+
errors.push(...schema.blueprint.onDirectiveDefinitionAndSchemaParsed(schema));
|
|
44
|
+
for (const directiveDefinitionNode of directiveDefinitions) {
|
|
45
|
+
buildDirectiveApplicationsInDirectiveDefinition(directiveDefinitionNode, schema.directive(directiveDefinitionNode.name.value), errors);
|
|
46
|
+
}
|
|
47
|
+
for (const typeNode of typeDefinitions) {
|
|
48
|
+
buildNamedTypeInner(typeNode, schema.type(typeNode.name.value), schema.blueprint, errors);
|
|
49
|
+
}
|
|
50
|
+
for (const typeExtensionNode of typeExtensions) {
|
|
51
|
+
const toExtend = schema.type(typeExtensionNode.name.value);
|
|
52
|
+
const extension = toExtend.newExtension();
|
|
53
|
+
extension.sourceAST = typeExtensionNode;
|
|
54
|
+
buildNamedTypeInner(typeExtensionNode, toExtend, schema.blueprint, errors, extension);
|
|
55
|
+
}
|
|
56
|
+
if (errors.length > 0) {
|
|
57
|
+
throw (0, definitions_1.ErrGraphQLValidationFailed)(errors);
|
|
58
|
+
}
|
|
59
|
+
if ((_a = options === null || options === void 0 ? void 0 : options.validate) !== null && _a !== void 0 ? _a : true) {
|
|
60
|
+
schema.validate();
|
|
61
|
+
}
|
|
62
|
+
return schema;
|
|
63
|
+
}
|
|
64
|
+
exports.buildSchemaFromAST = buildSchemaFromAST;
|
|
65
|
+
function buildNamedTypeAndDirectivesShallow(documentNode, schema, errors) {
|
|
66
|
+
const directiveDefinitions = [];
|
|
67
|
+
const typeDefinitions = [];
|
|
68
|
+
const typeExtensions = [];
|
|
69
|
+
const schemaDefinitions = [];
|
|
70
|
+
const schemaExtensions = [];
|
|
71
|
+
for (const definitionNode of documentNode.definitions) {
|
|
72
|
+
switch (definitionNode.kind) {
|
|
73
|
+
case 'OperationDefinition':
|
|
74
|
+
case 'FragmentDefinition':
|
|
75
|
+
errors.push(error_1.ERRORS.INVALID_GRAPHQL.err("Invalid executable definition found while building schema", { nodes: definitionNode }));
|
|
76
|
+
continue;
|
|
77
|
+
case 'SchemaDefinition':
|
|
78
|
+
schemaDefinitions.push(definitionNode);
|
|
79
|
+
schema.schemaDefinition.preserveEmptyDefinition = true;
|
|
80
|
+
break;
|
|
81
|
+
case 'SchemaExtension':
|
|
82
|
+
schemaExtensions.push(definitionNode);
|
|
83
|
+
break;
|
|
84
|
+
case 'ScalarTypeDefinition':
|
|
85
|
+
case 'ObjectTypeDefinition':
|
|
86
|
+
case 'InterfaceTypeDefinition':
|
|
87
|
+
case 'UnionTypeDefinition':
|
|
88
|
+
case 'EnumTypeDefinition':
|
|
89
|
+
case 'InputObjectTypeDefinition':
|
|
90
|
+
if (introspection_1.introspectionTypeNames.includes(definitionNode.name.value)) {
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
typeDefinitions.push(definitionNode);
|
|
94
|
+
let type = schema.type(definitionNode.name.value);
|
|
95
|
+
if (!type || type.isBuiltIn) {
|
|
96
|
+
type = schema.addType((0, definitions_1.newNamedType)(withoutTrailingDefinition(definitionNode.kind), definitionNode.name.value));
|
|
97
|
+
}
|
|
98
|
+
else if (type.preserveEmptyDefinition) {
|
|
99
|
+
throw error_1.ERRORS.INVALID_GRAPHQL.err(`There can be only one type named "${definitionNode.name.value}"`);
|
|
100
|
+
}
|
|
101
|
+
type.preserveEmptyDefinition = true;
|
|
102
|
+
break;
|
|
103
|
+
case 'ScalarTypeExtension':
|
|
104
|
+
case 'ObjectTypeExtension':
|
|
105
|
+
case 'InterfaceTypeExtension':
|
|
106
|
+
case 'UnionTypeExtension':
|
|
107
|
+
case 'EnumTypeExtension':
|
|
108
|
+
case 'InputObjectTypeExtension':
|
|
109
|
+
if (introspection_1.introspectionTypeNames.includes(definitionNode.name.value)) {
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
112
|
+
typeExtensions.push(definitionNode);
|
|
113
|
+
const existing = schema.type(definitionNode.name.value);
|
|
114
|
+
if (!existing) {
|
|
115
|
+
schema.addType((0, definitions_1.newNamedType)(withoutTrailingDefinition(definitionNode.kind), definitionNode.name.value));
|
|
116
|
+
}
|
|
117
|
+
else if (existing.isBuiltIn) {
|
|
118
|
+
throw error_1.ERRORS.INVALID_GRAPHQL.err(`Cannot extend built-in type "${definitionNode.name.value}"`);
|
|
119
|
+
}
|
|
120
|
+
break;
|
|
121
|
+
case 'DirectiveDefinition':
|
|
122
|
+
directiveDefinitions.push(definitionNode);
|
|
123
|
+
schema.addDirectiveDefinition(definitionNode.name.value);
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return {
|
|
128
|
+
directiveDefinitions,
|
|
129
|
+
typeDefinitions,
|
|
130
|
+
typeExtensions,
|
|
131
|
+
schemaDefinitions,
|
|
132
|
+
schemaExtensions,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
function withoutTrailingDefinition(str) {
|
|
136
|
+
const endString = str.endsWith('Definition') ? 'Definition' : 'Extension';
|
|
137
|
+
return str.slice(0, str.length - endString.length);
|
|
138
|
+
}
|
|
139
|
+
function getReferencedType(node, schema) {
|
|
140
|
+
const type = schema.type(node.name.value);
|
|
141
|
+
if (!type) {
|
|
142
|
+
throw error_1.ERRORS.INVALID_GRAPHQL.err(`Unknown type ${node.name.value}`, { nodes: node });
|
|
143
|
+
}
|
|
144
|
+
return type;
|
|
145
|
+
}
|
|
146
|
+
function withNodeAttachedToError(operation, node, errors) {
|
|
147
|
+
try {
|
|
148
|
+
operation();
|
|
149
|
+
}
|
|
150
|
+
catch (e) {
|
|
151
|
+
const causes = (0, error_1.errorCauses)(e);
|
|
152
|
+
if (causes) {
|
|
153
|
+
for (const cause of causes) {
|
|
154
|
+
const allNodes = cause.nodes ? [node, ...cause.nodes] : node;
|
|
155
|
+
errors.push((0, error_1.withModifiedErrorNodes)(cause, allNodes));
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
throw e;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
function buildSchemaDefinitionInner(schemaNode, schemaDefinition, errors, extension) {
|
|
164
|
+
var _a, _b;
|
|
165
|
+
for (const opTypeNode of (_a = schemaNode.operationTypes) !== null && _a !== void 0 ? _a : []) {
|
|
166
|
+
withNodeAttachedToError(() => schemaDefinition.setRoot(opTypeNode.operation, opTypeNode.type.name.value).setOfExtension(extension), opTypeNode, errors);
|
|
167
|
+
}
|
|
168
|
+
schemaDefinition.sourceAST = schemaNode;
|
|
169
|
+
if ('description' in schemaNode) {
|
|
170
|
+
schemaDefinition.description = (_b = schemaNode.description) === null || _b === void 0 ? void 0 : _b.value;
|
|
171
|
+
}
|
|
172
|
+
buildAppliedDirectives(schemaNode, schemaDefinition, errors, extension);
|
|
173
|
+
}
|
|
174
|
+
function buildAppliedDirectives(elementNode, element, errors, extension) {
|
|
175
|
+
var _a;
|
|
176
|
+
for (const directive of (_a = elementNode.directives) !== null && _a !== void 0 ? _a : []) {
|
|
177
|
+
withNodeAttachedToError(() => {
|
|
178
|
+
if (element !== element.schema().schemaDefinition || directive.name.value === 'link' || !element.schema().blueprint.applyDirectivesAfterParsing()) {
|
|
179
|
+
const d = element.applyDirective(directive.name.value, buildArgs(directive));
|
|
180
|
+
d.setOfExtension(extension);
|
|
181
|
+
d.sourceAST = directive;
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
element.addUnappliedDirective({
|
|
185
|
+
extension,
|
|
186
|
+
directive,
|
|
187
|
+
args: buildArgs(directive),
|
|
188
|
+
nameOrDef: directive.name.value,
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
}, directive, errors);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
function buildArgs(argumentsNode) {
|
|
195
|
+
var _a;
|
|
196
|
+
const args = Object.create(null);
|
|
197
|
+
for (const argNode of (_a = argumentsNode.arguments) !== null && _a !== void 0 ? _a : []) {
|
|
198
|
+
args[argNode.name.value] = buildValue(argNode.value);
|
|
199
|
+
}
|
|
200
|
+
return args;
|
|
201
|
+
}
|
|
202
|
+
function buildNamedTypeInner(definitionNode, type, blueprint, errors, extension) {
|
|
203
|
+
var _a, _b, _c, _d, _e;
|
|
204
|
+
switch (definitionNode.kind) {
|
|
205
|
+
case 'EnumTypeDefinition':
|
|
206
|
+
case 'EnumTypeExtension':
|
|
207
|
+
const enumType = type;
|
|
208
|
+
for (const enumVal of (_a = definitionNode.values) !== null && _a !== void 0 ? _a : []) {
|
|
209
|
+
buildAppliedDirectives(enumVal, enumType.value(enumVal.name.value), errors);
|
|
210
|
+
}
|
|
211
|
+
break;
|
|
212
|
+
case 'ObjectTypeDefinition':
|
|
213
|
+
case 'ObjectTypeExtension':
|
|
214
|
+
case 'InterfaceTypeDefinition':
|
|
215
|
+
case 'InterfaceTypeExtension':
|
|
216
|
+
const fieldBasedType = type;
|
|
217
|
+
for (const fieldNode of (_b = definitionNode.fields) !== null && _b !== void 0 ? _b : []) {
|
|
218
|
+
if (blueprint.ignoreParsedField(type, fieldNode.name.value)) {
|
|
219
|
+
continue;
|
|
220
|
+
}
|
|
221
|
+
const field = fieldBasedType.addField(fieldNode.name.value);
|
|
222
|
+
field.setOfExtension(extension);
|
|
223
|
+
buildFieldDefinitionInner(fieldNode, field, errors);
|
|
224
|
+
}
|
|
225
|
+
for (const itfNode of (_c = definitionNode.interfaces) !== null && _c !== void 0 ? _c : []) {
|
|
226
|
+
withNodeAttachedToError(() => {
|
|
227
|
+
const itfName = itfNode.name.value;
|
|
228
|
+
if (fieldBasedType.implementsInterface(itfName)) {
|
|
229
|
+
throw error_1.ERRORS.INVALID_GRAPHQL.err(`Type "${type}" can only implement "${itfName}" once.`);
|
|
230
|
+
}
|
|
231
|
+
fieldBasedType.addImplementedInterface(itfName).setOfExtension(extension);
|
|
232
|
+
}, itfNode, errors);
|
|
233
|
+
}
|
|
234
|
+
break;
|
|
235
|
+
case 'UnionTypeDefinition':
|
|
236
|
+
case 'UnionTypeExtension':
|
|
237
|
+
const unionType = type;
|
|
238
|
+
for (const namedType of (_d = definitionNode.types) !== null && _d !== void 0 ? _d : []) {
|
|
239
|
+
withNodeAttachedToError(() => {
|
|
240
|
+
const name = namedType.name.value;
|
|
241
|
+
if (unionType.hasTypeMember(name)) {
|
|
242
|
+
throw error_1.ERRORS.INVALID_GRAPHQL.err(`Union type "${unionType}" can only include type "${name}" once.`);
|
|
243
|
+
}
|
|
244
|
+
unionType.addType(name).setOfExtension(extension);
|
|
245
|
+
}, namedType, errors);
|
|
246
|
+
}
|
|
247
|
+
break;
|
|
248
|
+
case 'InputObjectTypeDefinition':
|
|
249
|
+
case 'InputObjectTypeExtension':
|
|
250
|
+
const inputObjectType = type;
|
|
251
|
+
for (const fieldNode of (_e = definitionNode.fields) !== null && _e !== void 0 ? _e : []) {
|
|
252
|
+
const field = inputObjectType.addField(fieldNode.name.value);
|
|
253
|
+
field.setOfExtension(extension);
|
|
254
|
+
buildInputFieldDefinitionInner(fieldNode, field, errors);
|
|
255
|
+
}
|
|
256
|
+
break;
|
|
257
|
+
}
|
|
258
|
+
buildAppliedDirectives(definitionNode, type, errors, extension);
|
|
259
|
+
buildDescriptionAndSourceAST(definitionNode, type);
|
|
260
|
+
}
|
|
261
|
+
function buildEnumTypeValuesWithoutDirectiveApplications(definitionNode, type, extension) {
|
|
262
|
+
var _a;
|
|
263
|
+
const enumType = type;
|
|
264
|
+
for (const enumVal of (_a = definitionNode.values) !== null && _a !== void 0 ? _a : []) {
|
|
265
|
+
const v = enumType.addValue(enumVal.name.value);
|
|
266
|
+
if (enumVal.description) {
|
|
267
|
+
v.description = enumVal.description.value;
|
|
268
|
+
}
|
|
269
|
+
v.setOfExtension(extension);
|
|
270
|
+
}
|
|
271
|
+
buildDescriptionAndSourceAST(definitionNode, type);
|
|
272
|
+
}
|
|
273
|
+
function buildDescriptionAndSourceAST(definitionNode, dest) {
|
|
274
|
+
if (definitionNode.description) {
|
|
275
|
+
dest.description = definitionNode.description.value;
|
|
276
|
+
}
|
|
277
|
+
dest.sourceAST = definitionNode;
|
|
278
|
+
}
|
|
279
|
+
function buildFieldDefinitionInner(fieldNode, field, errors) {
|
|
280
|
+
var _a, _b;
|
|
281
|
+
const type = buildTypeReferenceFromAST(fieldNode.type, field.schema());
|
|
282
|
+
field.type = validateOutputType(type, field.coordinate, fieldNode, errors);
|
|
283
|
+
for (const inputValueDef of (_a = fieldNode.arguments) !== null && _a !== void 0 ? _a : []) {
|
|
284
|
+
buildArgumentDefinitionInner(inputValueDef, field.addArgument(inputValueDef.name.value), errors, true);
|
|
285
|
+
}
|
|
286
|
+
buildAppliedDirectives(fieldNode, field, errors);
|
|
287
|
+
field.description = (_b = fieldNode.description) === null || _b === void 0 ? void 0 : _b.value;
|
|
288
|
+
field.sourceAST = fieldNode;
|
|
289
|
+
}
|
|
290
|
+
function validateOutputType(type, what, node, errors) {
|
|
291
|
+
if ((0, definitions_1.isOutputType)(type)) {
|
|
292
|
+
return type;
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
errors.push(error_1.ERRORS.INVALID_GRAPHQL.err(`The type of "${what}" must be Output Type but got "${type}", a ${type.kind}.`, { nodes: node }));
|
|
296
|
+
return undefined;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
function validateInputType(type, what, node, errors) {
|
|
300
|
+
if ((0, definitions_1.isInputType)(type)) {
|
|
301
|
+
return type;
|
|
302
|
+
}
|
|
303
|
+
else {
|
|
304
|
+
errors.push(error_1.ERRORS.INVALID_GRAPHQL.err(`The type of "${what}" must be Input Type but got "${type}", a ${type.kind}.`, { nodes: node }));
|
|
305
|
+
return undefined;
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
function builtTypeReference(encodedType, schema) {
|
|
309
|
+
return buildTypeReferenceFromAST((0, graphql_1.parseType)(encodedType), schema);
|
|
310
|
+
}
|
|
311
|
+
exports.builtTypeReference = builtTypeReference;
|
|
312
|
+
function buildTypeReferenceFromAST(typeNode, schema) {
|
|
313
|
+
switch (typeNode.kind) {
|
|
314
|
+
case graphql_1.Kind.LIST_TYPE:
|
|
315
|
+
return new definitions_1.ListType(buildTypeReferenceFromAST(typeNode.type, schema));
|
|
316
|
+
case graphql_1.Kind.NON_NULL_TYPE:
|
|
317
|
+
const wrapped = buildTypeReferenceFromAST(typeNode.type, schema);
|
|
318
|
+
if (wrapped.kind == graphql_1.Kind.NON_NULL_TYPE) {
|
|
319
|
+
throw error_1.ERRORS.INVALID_GRAPHQL.err(`Cannot apply the non-null operator (!) twice to the same type`, { nodes: typeNode });
|
|
320
|
+
}
|
|
321
|
+
return new definitions_1.NonNullType(wrapped);
|
|
322
|
+
default:
|
|
323
|
+
return getReferencedType(typeNode, schema);
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
function buildArgumentDefinitionInner(inputNode, arg, errors, includeDirectiveApplication) {
|
|
327
|
+
var _a;
|
|
328
|
+
const type = buildTypeReferenceFromAST(inputNode.type, arg.schema());
|
|
329
|
+
arg.type = validateInputType(type, arg.coordinate, inputNode, errors);
|
|
330
|
+
arg.defaultValue = buildValue(inputNode.defaultValue);
|
|
331
|
+
if (includeDirectiveApplication) {
|
|
332
|
+
buildAppliedDirectives(inputNode, arg, errors);
|
|
333
|
+
}
|
|
334
|
+
arg.description = (_a = inputNode.description) === null || _a === void 0 ? void 0 : _a.value;
|
|
335
|
+
arg.sourceAST = inputNode;
|
|
336
|
+
}
|
|
337
|
+
function buildInputFieldDefinitionInner(fieldNode, field, errors) {
|
|
338
|
+
var _a;
|
|
339
|
+
const type = buildTypeReferenceFromAST(fieldNode.type, field.schema());
|
|
340
|
+
field.type = validateInputType(type, field.coordinate, fieldNode, errors);
|
|
341
|
+
field.defaultValue = buildValue(fieldNode.defaultValue);
|
|
342
|
+
buildAppliedDirectives(fieldNode, field, errors);
|
|
343
|
+
field.description = (_a = fieldNode.description) === null || _a === void 0 ? void 0 : _a.value;
|
|
344
|
+
field.sourceAST = fieldNode;
|
|
345
|
+
}
|
|
346
|
+
function buildDirectiveDefinitionInnerWithoutDirectiveApplications(directiveNode, directive, errors) {
|
|
347
|
+
var _a;
|
|
348
|
+
for (const inputValueDef of (_a = directiveNode.arguments) !== null && _a !== void 0 ? _a : []) {
|
|
349
|
+
buildArgumentDefinitionInner(inputValueDef, directive.addArgument(inputValueDef.name.value), errors, false);
|
|
350
|
+
}
|
|
351
|
+
directive.repeatable = directiveNode.repeatable;
|
|
352
|
+
const locations = directiveNode.locations.map(({ value }) => value);
|
|
353
|
+
directive.addLocations(...locations);
|
|
354
|
+
buildDescriptionAndSourceAST(directiveNode, directive);
|
|
355
|
+
}
|
|
356
|
+
function buildDirectiveApplicationsInDirectiveDefinition(directiveNode, directive, errors) {
|
|
357
|
+
var _a;
|
|
358
|
+
for (const inputValueDef of (_a = directiveNode.arguments) !== null && _a !== void 0 ? _a : []) {
|
|
359
|
+
buildAppliedDirectives(inputValueDef, directive.argument(inputValueDef.name.value), errors);
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
//# sourceMappingURL=buildSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildSchema.js","sourceRoot":"","sources":["../src/buildSchema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { ASTNode, GraphQLError, StringValueNode } from "graphql";
|
|
2
|
+
import { CoreFeature, Directive, DirectiveDefinition, EnumType, NamedType, ScalarType, Schema, SchemaDefinition } from "./definitions";
|
|
3
|
+
import { DirectiveCompositionSpecification, DirectiveSpecification, TypeSpecification } from "./directiveAndTypeSpecification";
|
|
4
|
+
export declare const coreIdentity = "https://specs.apollo.dev/core";
|
|
5
|
+
export declare const linkIdentity = "https://specs.apollo.dev/link";
|
|
6
|
+
export declare const linkDirectiveDefaultName = "link";
|
|
7
|
+
export declare const ErrCoreCheckFailed: (causes: GraphQLError[]) => GraphQLError;
|
|
8
|
+
export declare const corePurposes: ("SECURITY" | "EXECUTION")[];
|
|
9
|
+
export type CorePurpose = typeof corePurposes[number];
|
|
10
|
+
export declare abstract class FeatureDefinition {
|
|
11
|
+
readonly url: FeatureUrl;
|
|
12
|
+
private readonly _directiveSpecs;
|
|
13
|
+
private readonly _typeSpecs;
|
|
14
|
+
constructor(url: FeatureUrl | string);
|
|
15
|
+
protected registerDirective(spec: DirectiveSpecification): void;
|
|
16
|
+
protected registerType(spec: TypeSpecification): void;
|
|
17
|
+
directiveSpecs(): readonly DirectiveSpecification[];
|
|
18
|
+
directiveSpec(name: string): DirectiveSpecification | undefined;
|
|
19
|
+
typeSpecs(): readonly TypeSpecification[];
|
|
20
|
+
typeSpec(name: string): TypeSpecification | undefined;
|
|
21
|
+
get identity(): string;
|
|
22
|
+
get version(): FeatureVersion;
|
|
23
|
+
isSpecType(type: NamedType): boolean;
|
|
24
|
+
isSpecDirective(directive: DirectiveDefinition): boolean;
|
|
25
|
+
addElementsToSchema(schema: Schema): GraphQLError[];
|
|
26
|
+
allElementNames(): string[];
|
|
27
|
+
protected nameInSchema(schema: Schema): string | undefined;
|
|
28
|
+
protected directiveNameInSchema(schema: Schema, directiveName: string): string | undefined;
|
|
29
|
+
protected typeNameInSchema(schema: Schema, typeName: string): string | undefined;
|
|
30
|
+
protected rootDirective<TApplicationArgs extends {
|
|
31
|
+
[key: string]: any;
|
|
32
|
+
}>(schema: Schema): DirectiveDefinition<TApplicationArgs> | undefined;
|
|
33
|
+
protected directive<TApplicationArgs extends {
|
|
34
|
+
[key: string]: any;
|
|
35
|
+
}>(schema: Schema, elementName: string): DirectiveDefinition<TApplicationArgs> | undefined;
|
|
36
|
+
protected type<T extends NamedType>(schema: Schema, elementName: string): T | undefined;
|
|
37
|
+
protected addRootDirective(schema: Schema): DirectiveDefinition;
|
|
38
|
+
protected addDirective(schema: Schema, name: string): DirectiveDefinition;
|
|
39
|
+
protected addDirectiveSpec(schema: Schema, spec: DirectiveSpecification): GraphQLError[];
|
|
40
|
+
protected addTypeSpec(schema: Schema, spec: TypeSpecification): GraphQLError[];
|
|
41
|
+
protected addScalarType(schema: Schema, name: string): ScalarType;
|
|
42
|
+
protected addEnumType(schema: Schema, name: string): EnumType;
|
|
43
|
+
protected featureInSchema(schema: Schema): CoreFeature | undefined;
|
|
44
|
+
get defaultCorePurpose(): CorePurpose | undefined;
|
|
45
|
+
compositionSpecification(directiveNameInFeature: string): DirectiveCompositionSpecification | undefined;
|
|
46
|
+
toString(): string;
|
|
47
|
+
}
|
|
48
|
+
export type CoreDirectiveArgs = {
|
|
49
|
+
url: undefined;
|
|
50
|
+
feature: string;
|
|
51
|
+
as?: string;
|
|
52
|
+
for?: string;
|
|
53
|
+
};
|
|
54
|
+
export type LinkDirectiveArgs = {
|
|
55
|
+
url: string;
|
|
56
|
+
feature: undefined;
|
|
57
|
+
as?: string;
|
|
58
|
+
for?: string;
|
|
59
|
+
import?: (string | CoreImport)[];
|
|
60
|
+
};
|
|
61
|
+
export type CoreOrLinkDirectiveArgs = CoreDirectiveArgs | LinkDirectiveArgs;
|
|
62
|
+
export type CoreImport = {
|
|
63
|
+
name: string;
|
|
64
|
+
as?: string;
|
|
65
|
+
};
|
|
66
|
+
export declare function extractCoreFeatureImports(url: FeatureUrl, directive: Directive<SchemaDefinition, CoreOrLinkDirectiveArgs>): CoreImport[];
|
|
67
|
+
export declare function isCoreSpecDirectiveApplication(directive: Directive<SchemaDefinition, any>): directive is Directive<SchemaDefinition, CoreOrLinkDirectiveArgs>;
|
|
68
|
+
export declare class CoreSpecDefinition extends FeatureDefinition {
|
|
69
|
+
private readonly directiveDefinitionSpec;
|
|
70
|
+
constructor(version: FeatureVersion, identity?: string, name?: string);
|
|
71
|
+
private createDefinitionArgumentSpecifications;
|
|
72
|
+
addElementsToSchema(_: Schema): GraphQLError[];
|
|
73
|
+
addToSchema(schema: Schema, alias?: string): GraphQLError[];
|
|
74
|
+
addDefinitionsToSchema(schema: Schema, as?: string): GraphQLError[];
|
|
75
|
+
allElementNames(): string[];
|
|
76
|
+
private supportPurposes;
|
|
77
|
+
private supportImport;
|
|
78
|
+
private extractFeature;
|
|
79
|
+
coreDirective(schema: Schema): DirectiveDefinition<CoreOrLinkDirectiveArgs>;
|
|
80
|
+
coreVersion(schema: Schema): FeatureVersion;
|
|
81
|
+
applyFeatureToSchema(schema: Schema, feature: FeatureDefinition, as?: string, purpose?: CorePurpose): GraphQLError[];
|
|
82
|
+
extractFeatureUrl(args: CoreOrLinkDirectiveArgs): FeatureUrl;
|
|
83
|
+
urlArgName(): 'feature' | 'url';
|
|
84
|
+
}
|
|
85
|
+
export declare class FeatureDefinitions<T extends FeatureDefinition = FeatureDefinition> {
|
|
86
|
+
readonly identity: string;
|
|
87
|
+
private readonly _definitions;
|
|
88
|
+
constructor(identity: string);
|
|
89
|
+
add(definition: T): FeatureDefinitions<T>;
|
|
90
|
+
find(requested: FeatureVersion): T | undefined;
|
|
91
|
+
versions(): FeatureVersion[];
|
|
92
|
+
latest(): T;
|
|
93
|
+
}
|
|
94
|
+
export declare class FeatureVersion {
|
|
95
|
+
readonly major: number;
|
|
96
|
+
readonly minor: number;
|
|
97
|
+
constructor(major: number, minor: number);
|
|
98
|
+
static parse(input: string): FeatureVersion;
|
|
99
|
+
satisfies(required: FeatureVersion): boolean;
|
|
100
|
+
get series(): string;
|
|
101
|
+
compareTo(other: FeatureVersion): number;
|
|
102
|
+
strictlyGreaterThan(version: FeatureVersion): boolean;
|
|
103
|
+
toString(): string;
|
|
104
|
+
equals(other: FeatureVersion): boolean;
|
|
105
|
+
private static VERSION_RE;
|
|
106
|
+
}
|
|
107
|
+
export declare class FeatureUrl {
|
|
108
|
+
readonly identity: string;
|
|
109
|
+
readonly name: string;
|
|
110
|
+
readonly version: FeatureVersion;
|
|
111
|
+
readonly element?: string | undefined;
|
|
112
|
+
constructor(identity: string, name: string, version: FeatureVersion, element?: string | undefined);
|
|
113
|
+
static parse(input: string, node?: ASTNode): FeatureUrl;
|
|
114
|
+
static decode(node: StringValueNode): FeatureUrl;
|
|
115
|
+
satisfies(requested: FeatureUrl): boolean;
|
|
116
|
+
equals(other: FeatureUrl): boolean;
|
|
117
|
+
get url(): string;
|
|
118
|
+
get isDirective(): boolean | undefined;
|
|
119
|
+
get elementName(): string | undefined;
|
|
120
|
+
get base(): FeatureUrl;
|
|
121
|
+
toString(): string;
|
|
122
|
+
}
|
|
123
|
+
export declare function findCoreSpecVersion(featureUrl: FeatureUrl): CoreSpecDefinition | undefined;
|
|
124
|
+
export declare const CORE_VERSIONS: FeatureDefinitions<CoreSpecDefinition>;
|
|
125
|
+
export declare const LINK_VERSIONS: FeatureDefinitions<CoreSpecDefinition>;
|
|
126
|
+
export declare function removeAllCoreFeatures(schema: Schema): void;
|
|
127
|
+
//# sourceMappingURL=coreSpec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coreSpec.d.ts","sourceRoot":"","sources":["../src/coreSpec.ts"],"names":[],"mappings":"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"}
|