@apollo/federation-internals 2.7.0 → 2.7.1

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/dist/error.d.ts CHANGED
@@ -123,6 +123,7 @@ export declare const ERRORS: {
123
123
  INTERFACE_OBJECT_USAGE_ERROR: ErrorCodeDefinition;
124
124
  INTERFACE_KEY_NOT_ON_IMPLEMENTATION: ErrorCodeDefinition;
125
125
  INTERFACE_KEY_MISSING_IMPLEMENTATION_TYPE: ErrorCodeDefinition;
126
+ SOURCE_FEDERATION_VERSION_REQUIRED: ErrorCodeDefinition;
126
127
  SOURCE_API_NAME_INVALID: ErrorCodeDefinition;
127
128
  SOURCE_API_PROTOCOL_INVALID: ErrorCodeDefinition;
128
129
  SOURCE_API_HTTP_BASE_URL_INVALID: ErrorCodeDefinition;
@@ -1 +1 @@
1
- {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAO5F,KAAK,cAAc,GAAG,OAAO,GAAG,UAAU,GAAG,cAAc,CAAC;AAQ5D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,KAAK,YAAY,CAAC;CACvE,CAAA;AAsBD,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,YAAY,GAAG,mBAAmB,CAS/E;AA6BD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,YAAY,CAElG;AAMD,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,GAAG,YAAY,EAAE,GAAG,SAAS,CAQhE;AAED,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAM5D;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAE1D;AAOD,MAAM,MAAM,iBAAiB,CAAC,QAAQ,GAAG,MAAM,IAAI;IACjD,GAAG,CAAC,OAAO,EAAE,QAAQ,GAAG,mBAAmB,CAAC;CAC7C,CAAA;AAwBD,wBAAgB,SAAS,CAAC,CAAC,EAAE,YAAY,GAAG,qBAAqB,GAAG,MAAM,GAAG,SAAS,CAKrF;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,YAAY,GAAG,qBAAqB,GAAG,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAG9G;AAED,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,YAAY,CAY1F;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,OAAO,GAAG,SAAS,GAAG,YAAY,CAYxH;AAseD,eAAO,MAAM,gBAAgB;;qCA9hBqC,mBAAmB;;;qCAAnB,mBAAmB;;;qCAAnB,mBAAmB;;;qCAAnB,mBAAmB;;;qCAAnB,mBAAmB;;;6CAAnB,mBAAmB;;;qCAAnB,mBAAmB;;CAsiBpF,CAAA;AAED,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiGlB,CAAC;AAYF,eAAO,MAAM,cAAc,YA0B1B,CAAC"}
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAO5F,KAAK,cAAc,GAAG,OAAO,GAAG,UAAU,GAAG,cAAc,CAAC;AAQ5D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,KAAK,YAAY,CAAC;CACvE,CAAA;AAsBD,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,YAAY,GAAG,mBAAmB,CAS/E;AA6BD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,YAAY,CAElG;AAMD,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,GAAG,YAAY,EAAE,GAAG,SAAS,CAQhE;AAED,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAM5D;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAE1D;AAOD,MAAM,MAAM,iBAAiB,CAAC,QAAQ,GAAG,MAAM,IAAI;IACjD,GAAG,CAAC,OAAO,EAAE,QAAQ,GAAG,mBAAmB,CAAC;CAC7C,CAAA;AAwBD,wBAAgB,SAAS,CAAC,CAAC,EAAE,YAAY,GAAG,qBAAqB,GAAG,MAAM,GAAG,SAAS,CAKrF;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,YAAY,GAAG,qBAAqB,GAAG,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAG9G;AAED,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,YAAY,CAY1F;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,OAAO,GAAG,SAAS,GAAG,YAAY,CAYxH;AA4eD,eAAO,MAAM,gBAAgB;;qCApiBqC,mBAAmB;;;qCAAnB,mBAAmB;;;qCAAnB,mBAAmB;;;qCAAnB,mBAAmB;;;qCAAnB,mBAAmB;;;6CAAnB,mBAAmB;;;qCAAnB,mBAAmB;;CA4iBpF,CAAA;AAED,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkGlB,CAAC;AAYF,eAAO,MAAM,cAAc,YA0B1B,CAAC"}
package/dist/error.js CHANGED
@@ -203,6 +203,7 @@ const DIRECTIVE_COMPOSITION_ERROR = makeCodeDefinition('DIRECTIVE_COMPOSITION_ER
203
203
  const INTERFACE_OBJECT_USAGE_ERROR = makeCodeDefinition('INTERFACE_OBJECT_USAGE_ERROR', 'Error in the usage of the @interfaceObject directive.', { addedIn: '2.3.0' });
204
204
  const INTERFACE_KEY_NOT_ON_IMPLEMENTATION = makeCodeDefinition('INTERFACE_KEY_NOT_ON_IMPLEMENTATION', 'A `@key` is defined on an interface type, but is not defined (or is not resolvable) on at least one of the interface implementations', { addedIn: '2.3.0' });
205
205
  const INTERFACE_KEY_MISSING_IMPLEMENTATION_TYPE = makeCodeDefinition('INTERFACE_KEY_MISSING_IMPLEMENTATION_TYPE', 'A subgraph has a `@key` on an interface type, but that subgraph does not define an implementation (in the supergraph) of that interface', { addedIn: '2.3.0' });
206
+ const SOURCE_FEDERATION_VERSION_REQUIRED = makeCodeDefinition('SOURCE_FEDERATION_VERSION_REQUIRED', 'Schemas using `@source{API,Type,Field}` directives must @link-import v2.7 or later of federation', { addedIn: '2.7.1' });
206
207
  const SOURCE_API_NAME_INVALID = makeCodeDefinition('SOURCE_API_NAME_INVALID', 'Each `@sourceAPI` directive must take a unique and valid name as an argument', { addedIn: '2.7.0' });
207
208
  const SOURCE_API_PROTOCOL_INVALID = makeCodeDefinition('SOURCE_API_PROTOCOL_INVALID', 'Each `@sourceAPI` directive must specify exactly one of the known protocols', { addedIn: '2.7.0' });
208
209
  const SOURCE_API_HTTP_BASE_URL_INVALID = makeCodeDefinition('SOURCE_API_HTTP_BASE_URL_INVALID', 'The `@sourceAPI` directive must specify a valid http.baseURL', { addedIn: '2.7.0' });
@@ -308,6 +309,7 @@ exports.ERRORS = {
308
309
  INTERFACE_OBJECT_USAGE_ERROR,
309
310
  INTERFACE_KEY_NOT_ON_IMPLEMENTATION,
310
311
  INTERFACE_KEY_MISSING_IMPLEMENTATION_TYPE,
312
+ SOURCE_FEDERATION_VERSION_REQUIRED,
311
313
  SOURCE_API_NAME_INVALID,
312
314
  SOURCE_API_PROTOCOL_INVALID,
313
315
  SOURCE_API_HTTP_BASE_URL_INVALID,
package/dist/error.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,8 @@ import { FeatureDefinition, FeatureDefinitions, FeatureVersion } from "./coreSpe
3
3
  import { Schema, DirectiveDefinition } from '../definitions';
4
4
  export declare const sourceIdentity = "https://specs.apollo.dev/source";
5
5
  export declare class SourceSpecDefinition extends FeatureDefinition {
6
- constructor(version: FeatureVersion, minimumFederationVersion?: FeatureVersion);
6
+ readonly minimumFederationVersion: FeatureVersion;
7
+ constructor(version: FeatureVersion, minimumFederationVersion: FeatureVersion);
7
8
  addElementsToSchema(schema: Schema): GraphQLError[];
8
9
  allElementNames(): string[];
9
10
  sourceAPIDirective(schema: Schema): DirectiveDefinition<SourceAPIDirectiveArgs>;
@@ -1 +1 @@
1
- {"version":3,"file":"sourceSpec.d.ts","sourceRoot":"","sources":["../../src/specs/sourceSpec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,YAAY,EAAc,MAAM,SAAS,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAc,cAAc,EAAqB,MAAM,YAAY,CAAC;AAClH,OAAO,EACL,MAAM,EAKN,mBAAmB,EAEpB,MAAM,gBAAgB,CAAC;AAKxB,eAAO,MAAM,cAAc,oCAAoC,CAAC;AAEhE,qBAAa,oBAAqB,SAAQ,iBAAiB;gBAC7C,OAAO,EAAE,cAAc,EAAE,wBAAwB,CAAC,EAAE,cAAc;IA4B9E,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE;IA2EnD,eAAe,IAAI,MAAM,EAAE;IAgB3B,kBAAkB,CAAC,MAAM,EAAE,MAAM;IAIjC,mBAAmB,CAAC,MAAM,EAAE,MAAM;IAIlC,oBAAoB,CAAC,MAAM,EAAE,MAAM;IAInC,OAAO,CAAC,mBAAmB;IA8BlB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE;IA+B/D,OAAO,CAAC,iBAAiB;IAkEzB,OAAO,CAAC,kBAAkB;IAiG1B,OAAO,CAAC,mBAAmB;CAiH5B;AAmDD,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,CAAC,EAAE,eAAe,CAAC;IACtB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC9B,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB,CAAC;AAEF,KAAK,eAAe,GAAG,MAAM,CAAC;AAC9B,KAAK,aAAa,GAAG,MAAM,CAAC;AAE5B,KAAK,UAAU,GAAG;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE;QACP,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;KAC9B,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,CAAC,EAAE,eAAe,CAAC;IACtB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,GAAG,CAAC,EAAE,eAAe,CAAC;IACtB,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC/B,CAAC;AAEF,eAAO,MAAM,eAAe,0CACwD,CAAC"}
1
+ {"version":3,"file":"sourceSpec.d.ts","sourceRoot":"","sources":["../../src/specs/sourceSpec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,YAAY,EAAQ,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAc,cAAc,EAAqB,MAAM,YAAY,CAAC;AAClH,OAAO,EACL,MAAM,EAKN,mBAAmB,EAEpB,MAAM,gBAAgB,CAAC;AAKxB,eAAO,MAAM,cAAc,oCAAoC,CAAC;AAEhE,qBAAa,oBAAqB,SAAQ,iBAAiB;IACpB,QAAQ,CAAC,wBAAwB,EAAE,cAAc;gBAA1E,OAAO,EAAE,cAAc,EAAW,wBAAwB,EAAE,cAAc;IA4BtF,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE;IA2EnD,eAAe,IAAI,MAAM,EAAE;IAgB3B,kBAAkB,CAAC,MAAM,EAAE,MAAM;IAIjC,mBAAmB,CAAC,MAAM,EAAE,MAAM;IAIlC,oBAAoB,CAAC,MAAM,EAAE,MAAM;IAInC,OAAO,CAAC,mBAAmB;IAkDlB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE;IA+B/D,OAAO,CAAC,iBAAiB;IAkEzB,OAAO,CAAC,kBAAkB;IAiG1B,OAAO,CAAC,mBAAmB;CAiH5B;AA2DD,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,CAAC,EAAE,eAAe,CAAC;IACtB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC9B,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB,CAAC;AAEF,KAAK,eAAe,GAAG,MAAM,CAAC;AAC9B,KAAK,aAAa,GAAG,MAAM,CAAC;AAE5B,KAAK,UAAU,GAAG;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE;QACP,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;KAC9B,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,CAAC,EAAE,eAAe,CAAC;IACtB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,GAAG,CAAC,EAAE,eAAe,CAAC;IACtB,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC/B,CAAC;AAEF,eAAO,MAAM,eAAe,0CACwD,CAAC"}
@@ -11,6 +11,7 @@ exports.sourceIdentity = 'https://specs.apollo.dev/source';
11
11
  class SourceSpecDefinition extends coreSpec_1.FeatureDefinition {
12
12
  constructor(version, minimumFederationVersion) {
13
13
  super(new coreSpec_1.FeatureUrl(exports.sourceIdentity, 'source', version), minimumFederationVersion);
14
+ this.minimumFederationVersion = minimumFederationVersion;
14
15
  this.registerDirective((0, directiveAndTypeSpecification_1.createDirectiveSpecification)({
15
16
  name: 'sourceAPI',
16
17
  locations: [graphql_1.DirectiveLocation.SCHEMA],
@@ -98,13 +99,14 @@ class SourceSpecDefinition extends coreSpec_1.FeatureDefinition {
98
99
  sourceFieldDirective(schema) {
99
100
  return this.directive(schema, 'sourceField');
100
101
  }
101
- getSourceDirectives(schema) {
102
+ getSourceDirectives(schema, errors) {
102
103
  const result = {};
104
+ let federationVersion;
103
105
  schema.schemaDefinition.appliedDirectivesOf('link')
104
106
  .forEach(linkDirective => {
105
- var _a;
106
107
  const { url, import: imports } = linkDirective.arguments();
107
- if (imports && ((_a = coreSpec_1.FeatureUrl.maybeParse(url)) === null || _a === void 0 ? void 0 : _a.identity) === exports.sourceIdentity) {
108
+ const featureUrl = coreSpec_1.FeatureUrl.maybeParse(url);
109
+ if (imports && featureUrl && featureUrl.identity === exports.sourceIdentity) {
108
110
  imports.forEach(nameOrRename => {
109
111
  const originalName = typeof nameOrRename === 'string' ? nameOrRename : nameOrRename.name;
110
112
  const importedName = typeof nameOrRename === 'string' ? nameOrRename : nameOrRename.as || originalName;
@@ -120,16 +122,24 @@ class SourceSpecDefinition extends coreSpec_1.FeatureDefinition {
120
122
  }
121
123
  });
122
124
  }
125
+ if (featureUrl && featureUrl.name === 'federation') {
126
+ federationVersion = featureUrl.version;
127
+ }
123
128
  });
129
+ if (result.sourceAPI || result.sourceType || result.sourceField) {
130
+ if (!federationVersion || federationVersion.lt(this.minimumFederationVersion)) {
131
+ errors.push(error_1.ERRORS.SOURCE_FEDERATION_VERSION_REQUIRED.err(`Schemas that @link to ${exports.sourceIdentity} must also @link to federation version ${this.minimumFederationVersion} or later (found ${federationVersion})`));
132
+ }
133
+ }
124
134
  return result;
125
135
  }
126
136
  validateSubgraphSchema(schema) {
127
- const { sourceAPI, sourceType, sourceField, } = this.getSourceDirectives(schema);
137
+ const errors = super.validateSubgraphSchema(schema);
138
+ const { sourceAPI, sourceType, sourceField, } = this.getSourceDirectives(schema, errors);
128
139
  if (!(sourceAPI || sourceType || sourceField)) {
129
140
  return [];
130
141
  }
131
142
  const apiNameToProtocol = new Map();
132
- const errors = [];
133
143
  if (sourceAPI) {
134
144
  this.validateSourceAPI(sourceAPI, apiNameToProtocol, errors);
135
145
  }
@@ -144,20 +154,17 @@ class SourceSpecDefinition extends coreSpec_1.FeatureDefinition {
144
154
  validateSourceAPI(sourceAPI, apiNameToProtocol, errors) {
145
155
  sourceAPI.applications().forEach(application => {
146
156
  const { name, ...rest } = application.arguments();
147
- if (apiNameToProtocol.has(name)) {
148
- errors.push(error_1.ERRORS.SOURCE_API_NAME_INVALID.err(`${sourceAPI} must specify unique name`, { nodes: application.sourceAST }));
149
- }
150
- try {
151
- (0, graphql_1.assertName)(name);
157
+ if (!isValidSourceAPIName(name)) {
158
+ errors.push(error_1.ERRORS.SOURCE_API_NAME_INVALID.err(`${sourceAPI}(name: ${JSON.stringify(name)}) must specify name using only [a-zA-Z0-9-_] characters`, { nodes: application.sourceAST }));
152
159
  }
153
- catch (e) {
154
- errors.push(error_1.ERRORS.SOURCE_API_NAME_INVALID.err(`${sourceAPI}(name: ${JSON.stringify(name)}) must specify valid GraphQL name`, { nodes: application.sourceAST }));
160
+ if (apiNameToProtocol.has(name)) {
161
+ errors.push(error_1.ERRORS.SOURCE_API_NAME_INVALID.err(`${sourceAPI} must specify unique name (${JSON.stringify(name)} reused)`, { nodes: application.sourceAST }));
155
162
  }
156
163
  let protocol;
157
164
  KNOWN_SOURCE_PROTOCOLS.forEach(knownProtocol => {
158
165
  if (rest[knownProtocol]) {
159
166
  if (protocol) {
160
- errors.push(error_1.ERRORS.SOURCE_API_PROTOCOL_INVALID.err(`${sourceAPI} must specify only one of ${KNOWN_SOURCE_PROTOCOLS.join(', ')}`, { nodes: application.sourceAST }));
167
+ errors.push(error_1.ERRORS.SOURCE_API_PROTOCOL_INVALID.err(`${sourceAPI} must specify only one of ${KNOWN_SOURCE_PROTOCOLS.join(', ')} but specified both ${protocol} and ${knownProtocol}`, { nodes: application.sourceAST }));
161
168
  }
162
169
  protocol = knownProtocol;
163
170
  }
@@ -171,13 +178,13 @@ class SourceSpecDefinition extends coreSpec_1.FeatureDefinition {
171
178
  new URL(baseURL);
172
179
  }
173
180
  catch (e) {
174
- errors.push(error_1.ERRORS.SOURCE_API_HTTP_BASE_URL_INVALID.err(`${sourceAPI} http.baseURL ${JSON.stringify(baseURL)} must be valid URL`, { nodes: application.sourceAST }));
181
+ errors.push(error_1.ERRORS.SOURCE_API_HTTP_BASE_URL_INVALID.err(`${sourceAPI} http.baseURL ${JSON.stringify(baseURL)} must be valid URL (error: ${e.message})`, { nodes: application.sourceAST }));
175
182
  }
176
183
  validateHTTPHeaders(headers, errors, sourceAPI.name);
177
184
  }
178
185
  }
179
186
  else {
180
- errors.push(error_1.ERRORS.SOURCE_API_PROTOCOL_INVALID.err(`${sourceAPI} must specify one of ${KNOWN_SOURCE_PROTOCOLS.join(', ')}`, { nodes: application.sourceAST }));
187
+ errors.push(error_1.ERRORS.SOURCE_API_PROTOCOL_INVALID.err(`${sourceAPI} must specify one protocol from the set {${KNOWN_SOURCE_PROTOCOLS.join(',')}}`, { nodes: application.sourceAST }));
181
188
  }
182
189
  });
183
190
  }
@@ -188,37 +195,35 @@ class SourceSpecDefinition extends coreSpec_1.FeatureDefinition {
188
195
  if (!api || !apiNameToProtocol.has(api)) {
189
196
  errors.push(error_1.ERRORS.SOURCE_TYPE_API_ERROR.err(`${sourceType} specifies unknown api ${api}`, { nodes: application.sourceAST }));
190
197
  }
191
- else {
192
- const expectedProtocol = apiNameToProtocol.get(api);
193
- const protocolValue = expectedProtocol && rest[expectedProtocol];
194
- if (expectedProtocol && !protocolValue) {
195
- errors.push(error_1.ERRORS.SOURCE_TYPE_API_ERROR.err(`${sourceType} must specify same ${expectedProtocol} argument as corresponding @sourceAPI for api ${api}`, { nodes: application.sourceAST }));
198
+ const expectedProtocol = apiNameToProtocol.get(api) || HTTP_PROTOCOL;
199
+ const protocolValue = expectedProtocol && rest[expectedProtocol];
200
+ if (expectedProtocol && !protocolValue) {
201
+ errors.push(error_1.ERRORS.SOURCE_TYPE_PROTOCOL_INVALID.err(`${sourceType} must specify same ${expectedProtocol} argument as corresponding @sourceAPI for api ${api}`, { nodes: application.sourceAST }));
202
+ }
203
+ if (protocolValue && expectedProtocol === HTTP_PROTOCOL) {
204
+ const { GET, POST, headers, body } = protocolValue;
205
+ if ([GET, POST].filter(Boolean).length !== 1) {
206
+ errors.push(error_1.ERRORS.SOURCE_TYPE_HTTP_METHOD_INVALID.err(`${sourceType} must specify exactly one of http.GET or http.POST`, { nodes: application.sourceAST }));
196
207
  }
197
- if (protocolValue && expectedProtocol === HTTP_PROTOCOL) {
198
- const { GET, POST, headers, body } = protocolValue;
199
- if ([GET, POST].filter(Boolean).length !== 1) {
200
- errors.push(error_1.ERRORS.SOURCE_TYPE_HTTP_METHOD_INVALID.err(`${sourceType} must specify exactly one of http.GET or http.POST`, { nodes: application.sourceAST }));
208
+ else {
209
+ const urlPathTemplate = (GET || POST);
210
+ try {
211
+ parseURLPathTemplate(urlPathTemplate);
201
212
  }
202
- else {
203
- const urlPathTemplate = (GET || POST);
204
- try {
205
- parseURLPathTemplate(urlPathTemplate);
206
- }
207
- catch (e) {
208
- errors.push(error_1.ERRORS.SOURCE_TYPE_HTTP_PATH_INVALID.err(`${sourceType} http.GET or http.POST must be valid URL path template`));
209
- }
213
+ catch (e) {
214
+ errors.push(error_1.ERRORS.SOURCE_TYPE_HTTP_PATH_INVALID.err(`${sourceType} http.GET or http.POST must be valid URL path template (error: ${e.message})`));
210
215
  }
211
- validateHTTPHeaders(headers, errors, sourceType.name);
212
- if (body) {
213
- if (GET) {
214
- errors.push(error_1.ERRORS.SOURCE_TYPE_HTTP_BODY_INVALID.err(`${sourceType} http.GET cannot specify http.body`, { nodes: application.sourceAST }));
215
- }
216
- try {
217
- parseJSONSelection(body);
218
- }
219
- catch (e) {
220
- errors.push(error_1.ERRORS.SOURCE_TYPE_HTTP_BODY_INVALID.err(`${sourceType} http.body not valid JSONSelection: ${e.message}`, { nodes: application.sourceAST }));
221
- }
216
+ }
217
+ validateHTTPHeaders(headers, errors, sourceType.name);
218
+ if (body) {
219
+ if (GET) {
220
+ errors.push(error_1.ERRORS.SOURCE_TYPE_HTTP_BODY_INVALID.err(`${sourceType} http.GET cannot specify http.body`, { nodes: application.sourceAST }));
221
+ }
222
+ try {
223
+ parseJSONSelection(body);
224
+ }
225
+ catch (e) {
226
+ errors.push(error_1.ERRORS.SOURCE_TYPE_HTTP_BODY_INVALID.err(`${sourceType} http.body not valid JSONSelection (error: ${e.message})`, { nodes: application.sourceAST }));
222
227
  }
223
228
  }
224
229
  }
@@ -233,7 +238,7 @@ class SourceSpecDefinition extends coreSpec_1.FeatureDefinition {
233
238
  parseJSONSelection(selection);
234
239
  }
235
240
  catch (e) {
236
- errors.push(error_1.ERRORS.SOURCE_TYPE_SELECTION_INVALID.err(`${sourceType} selection not valid JSONSelection: ${e.message}`, { nodes: application.sourceAST }));
241
+ errors.push(error_1.ERRORS.SOURCE_TYPE_SELECTION_INVALID.err(`${sourceType} selection not valid JSONSelection (error: ${e.message})`, { nodes: application.sourceAST }));
237
242
  }
238
243
  break;
239
244
  default:
@@ -248,38 +253,36 @@ class SourceSpecDefinition extends coreSpec_1.FeatureDefinition {
248
253
  if (!api || !apiNameToProtocol.has(api)) {
249
254
  errors.push(error_1.ERRORS.SOURCE_FIELD_API_ERROR.err(`${sourceField} specifies unknown api ${api}`, { nodes: application.sourceAST }));
250
255
  }
251
- else {
252
- const expectedProtocol = apiNameToProtocol.get(api);
253
- const protocolValue = expectedProtocol && rest[expectedProtocol];
254
- if (protocolValue && expectedProtocol === HTTP_PROTOCOL) {
255
- const { GET, POST, PUT, PATCH, DELETE, headers, body, } = protocolValue;
256
- const usedMethods = [GET, POST, PUT, PATCH, DELETE].filter(Boolean);
257
- if (usedMethods.length > 1) {
258
- errors.push(error_1.ERRORS.SOURCE_FIELD_HTTP_METHOD_INVALID.err(`${sourceField} allows at most one of http.{GET,POST,PUT,PATCH,DELETE}`));
256
+ const expectedProtocol = apiNameToProtocol.get(api) || HTTP_PROTOCOL;
257
+ const protocolValue = expectedProtocol && rest[expectedProtocol];
258
+ if (protocolValue && expectedProtocol === HTTP_PROTOCOL) {
259
+ const { GET, POST, PUT, PATCH, DELETE, headers, body, } = protocolValue;
260
+ const usedMethods = [GET, POST, PUT, PATCH, DELETE].filter(Boolean);
261
+ if (usedMethods.length > 1) {
262
+ errors.push(error_1.ERRORS.SOURCE_FIELD_HTTP_METHOD_INVALID.err(`${sourceField} allows at most one of http.{GET,POST,PUT,PATCH,DELETE}`));
263
+ }
264
+ else if (usedMethods.length === 1) {
265
+ const urlPathTemplate = usedMethods[0];
266
+ try {
267
+ parseURLPathTemplate(urlPathTemplate);
268
+ }
269
+ catch (e) {
270
+ errors.push(error_1.ERRORS.SOURCE_FIELD_HTTP_PATH_INVALID.err(`${sourceField} http.{GET,POST,PUT,PATCH,DELETE} must be valid URL path template (error: ${e.message})`));
259
271
  }
260
- else if (usedMethods.length === 1) {
261
- const urlPathTemplate = usedMethods[0];
262
- try {
263
- parseURLPathTemplate(urlPathTemplate);
264
- }
265
- catch (e) {
266
- errors.push(error_1.ERRORS.SOURCE_FIELD_HTTP_PATH_INVALID.err(`${sourceField} http.{GET,POST,PUT,PATCH,DELETE} must be valid URL path template`));
267
- }
272
+ }
273
+ validateHTTPHeaders(headers, errors, sourceField.name);
274
+ if (body) {
275
+ if (GET) {
276
+ errors.push(error_1.ERRORS.SOURCE_FIELD_HTTP_BODY_INVALID.err(`${sourceField} http.GET cannot specify http.body`, { nodes: application.sourceAST }));
277
+ }
278
+ else if (DELETE) {
279
+ errors.push(error_1.ERRORS.SOURCE_FIELD_HTTP_BODY_INVALID.err(`${sourceField} http.DELETE cannot specify http.body`, { nodes: application.sourceAST }));
268
280
  }
269
- validateHTTPHeaders(headers, errors, sourceField.name);
270
- if (body) {
271
- if (GET) {
272
- errors.push(error_1.ERRORS.SOURCE_FIELD_HTTP_BODY_INVALID.err(`${sourceField} http.GET cannot specify http.body`, { nodes: application.sourceAST }));
273
- }
274
- else if (DELETE) {
275
- errors.push(error_1.ERRORS.SOURCE_FIELD_HTTP_BODY_INVALID.err(`${sourceField} http.DELETE cannot specify http.body`, { nodes: application.sourceAST }));
276
- }
277
- try {
278
- parseJSONSelection(body);
279
- }
280
- catch (e) {
281
- errors.push(error_1.ERRORS.SOURCE_FIELD_HTTP_BODY_INVALID.err(`${sourceField} http.body not valid JSONSelection: ${e.message}`, { nodes: application.sourceAST }));
282
- }
281
+ try {
282
+ parseJSONSelection(body);
283
+ }
284
+ catch (e) {
285
+ errors.push(error_1.ERRORS.SOURCE_FIELD_HTTP_BODY_INVALID.err(`${sourceField} http.body not valid JSONSelection (error: ${e.message})`, { nodes: application.sourceAST }));
283
286
  }
284
287
  }
285
288
  }
@@ -288,16 +291,16 @@ class SourceSpecDefinition extends coreSpec_1.FeatureDefinition {
288
291
  parseJSONSelection(selection);
289
292
  }
290
293
  catch (e) {
291
- errors.push(error_1.ERRORS.SOURCE_FIELD_SELECTION_INVALID.err(`${sourceField} selection not valid JSONSelection: ${e.message}`, { nodes: application.sourceAST }));
294
+ errors.push(error_1.ERRORS.SOURCE_FIELD_SELECTION_INVALID.err(`${sourceField} selection not valid JSONSelection (error: ${e.message})`, { nodes: application.sourceAST }));
292
295
  }
293
296
  }
294
297
  const fieldParent = application.parent;
295
- if (((_a = fieldParent.sourceAST) === null || _a === void 0 ? void 0 : _a.kind) !== "FieldDefinition") {
298
+ if (((_a = fieldParent.sourceAST) === null || _a === void 0 ? void 0 : _a.kind) !== graphql_1.Kind.FIELD_DEFINITION) {
296
299
  errors.push(error_1.ERRORS.SOURCE_FIELD_NOT_ON_ROOT_OR_ENTITY_FIELD.err(`${sourceField} must be applied to field`, { nodes: application.sourceAST }));
297
300
  }
298
301
  else {
299
302
  const typeGrandparent = fieldParent.parent;
300
- if (((_b = typeGrandparent.sourceAST) === null || _b === void 0 ? void 0 : _b.kind) !== "ObjectTypeDefinition") {
303
+ if (((_b = typeGrandparent.sourceAST) === null || _b === void 0 ? void 0 : _b.kind) !== graphql_1.Kind.OBJECT_TYPE_DEFINITION) {
301
304
  errors.push(error_1.ERRORS.SOURCE_FIELD_NOT_ON_ROOT_OR_ENTITY_FIELD.err(`${sourceField} must be applied to field of object type`, { nodes: application.sourceAST }));
302
305
  }
303
306
  else {
@@ -313,6 +316,9 @@ class SourceSpecDefinition extends coreSpec_1.FeatureDefinition {
313
316
  }
314
317
  }
315
318
  exports.SourceSpecDefinition = SourceSpecDefinition;
319
+ function isValidSourceAPIName(name) {
320
+ return /^[a-z-_][a-z0-9-_]*$/i.test(name);
321
+ }
316
322
  function isValidHTTPHeaderName(name) {
317
323
  return /^[a-zA-Z0-9-_]+$/.test(name);
318
324
  }
@@ -323,10 +329,13 @@ function validateHTTPHeaders(headers, errors, directiveName) {
323
329
  if (headers) {
324
330
  headers.forEach(({ name, as, value }, i) => {
325
331
  if (!isValidHTTPHeaderName(name)) {
326
- errors.push(error_1.ERRORS.SOURCE_HTTP_HEADERS_INVALID.err(`${directiveName} headers[${i}].name == ${JSON.stringify(name)} is not valid HTTP header name`));
332
+ errors.push(error_1.ERRORS.SOURCE_HTTP_HEADERS_INVALID.err(`${directiveName} header ${JSON.stringify(headers[i])} specifies invalid name`));
333
+ }
334
+ if (as && !isValidHTTPHeaderName(as)) {
335
+ errors.push(error_1.ERRORS.SOURCE_HTTP_HEADERS_INVALID.err(`${directiveName} header ${JSON.stringify(headers[i])} specifies invalid 'as' name`));
327
336
  }
328
- if (!as === !value) {
329
- errors.push(error_1.ERRORS.SOURCE_HTTP_HEADERS_INVALID.err(`${directiveName} headers[${i}] must specify exactly one of as or value`));
337
+ if (as && value) {
338
+ errors.push(error_1.ERRORS.SOURCE_HTTP_HEADERS_INVALID.err(`${directiveName} header ${JSON.stringify(headers[i])} should specify at most one of 'as' or 'value'`));
330
339
  }
331
340
  });
332
341
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sourceSpec.js","sourceRoot":"","sources":["../../src/specs/sourceSpec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sourceSpec.js","sourceRoot":"","sources":["../../src/specs/sourceSpec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apollo/federation-internals",
3
- "version": "2.7.0",
3
+ "version": "2.7.1",
4
4
  "description": "Apollo Federation internal utilities",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/error.ts CHANGED
@@ -561,6 +561,12 @@ const INTERFACE_KEY_MISSING_IMPLEMENTATION_TYPE = makeCodeDefinition(
561
561
  { addedIn: '2.3.0' },
562
562
  )
563
563
 
564
+ const SOURCE_FEDERATION_VERSION_REQUIRED = makeCodeDefinition(
565
+ 'SOURCE_FEDERATION_VERSION_REQUIRED',
566
+ 'Schemas using `@source{API,Type,Field}` directives must @link-import v2.7 or later of federation',
567
+ { addedIn: '2.7.1' },
568
+ );
569
+
564
570
  const SOURCE_API_NAME_INVALID = makeCodeDefinition(
565
571
  'SOURCE_API_NAME_INVALID',
566
572
  'Each `@sourceAPI` directive must take a unique and valid name as an argument',
@@ -757,6 +763,7 @@ export const ERRORS = {
757
763
  INTERFACE_KEY_NOT_ON_IMPLEMENTATION,
758
764
  INTERFACE_KEY_MISSING_IMPLEMENTATION_TYPE,
759
765
  // Errors related to @sourceAPI, @sourceType, and/or @sourceField
766
+ SOURCE_FEDERATION_VERSION_REQUIRED,
760
767
  SOURCE_API_NAME_INVALID,
761
768
  SOURCE_API_PROTOCOL_INVALID,
762
769
  SOURCE_API_HTTP_BASE_URL_INVALID,
@@ -1,4 +1,4 @@
1
- import { DirectiveLocation, GraphQLError, assertName } from 'graphql';
1
+ import { DirectiveLocation, GraphQLError, Kind } from 'graphql';
2
2
  import { FeatureDefinition, FeatureDefinitions, FeatureUrl, FeatureVersion, LinkDirectiveArgs } from "./coreSpec";
3
3
  import {
4
4
  Schema,
@@ -16,7 +16,7 @@ import { ERRORS } from '../error';
16
16
  export const sourceIdentity = 'https://specs.apollo.dev/source';
17
17
 
18
18
  export class SourceSpecDefinition extends FeatureDefinition {
19
- constructor(version: FeatureVersion, minimumFederationVersion?: FeatureVersion) {
19
+ constructor(version: FeatureVersion, readonly minimumFederationVersion: FeatureVersion) {
20
20
  super(new FeatureUrl(sourceIdentity, 'source', version), minimumFederationVersion);
21
21
 
22
22
  this.registerDirective(createDirectiveSpecification({
@@ -147,17 +147,20 @@ export class SourceSpecDefinition extends FeatureDefinition {
147
147
  return this.directive<SourceFieldDirectiveArgs>(schema, 'sourceField')!;
148
148
  }
149
149
 
150
- private getSourceDirectives(schema: Schema) {
150
+ private getSourceDirectives(schema: Schema, errors: GraphQLError[]) {
151
151
  const result: {
152
152
  sourceAPI?: DirectiveDefinition<SourceAPIDirectiveArgs>;
153
153
  sourceType?: DirectiveDefinition<SourceTypeDirectiveArgs>;
154
154
  sourceField?: DirectiveDefinition<SourceFieldDirectiveArgs>;
155
155
  } = {};
156
156
 
157
+ let federationVersion: FeatureVersion | undefined;
158
+
157
159
  schema.schemaDefinition.appliedDirectivesOf<LinkDirectiveArgs>('link')
158
160
  .forEach(linkDirective => {
159
161
  const { url, import: imports } = linkDirective.arguments();
160
- if (imports && FeatureUrl.maybeParse(url)?.identity === sourceIdentity) {
162
+ const featureUrl = FeatureUrl.maybeParse(url);
163
+ if (imports && featureUrl && featureUrl.identity === sourceIdentity) {
161
164
  imports.forEach(nameOrRename => {
162
165
  const originalName = typeof nameOrRename === 'string' ? nameOrRename : nameOrRename.name;
163
166
  const importedName = typeof nameOrRename === 'string' ? nameOrRename : nameOrRename.as || originalName;
@@ -172,17 +175,35 @@ export class SourceSpecDefinition extends FeatureDefinition {
172
175
  }
173
176
  });
174
177
  }
178
+ if (featureUrl && featureUrl.name === 'federation') {
179
+ federationVersion = featureUrl.version;
180
+ }
175
181
  });
176
182
 
183
+ if (result.sourceAPI || result.sourceType || result.sourceField) {
184
+ // Since this subgraph uses at least one of the @source{API,Type,Field}
185
+ // directives, it must also use v2.7 or later of federation.
186
+ if (!federationVersion || federationVersion.lt(this.minimumFederationVersion)) {
187
+ errors.push(ERRORS.SOURCE_FEDERATION_VERSION_REQUIRED.err(
188
+ `Schemas that @link to ${
189
+ sourceIdentity
190
+ } must also @link to federation version ${
191
+ this.minimumFederationVersion
192
+ } or later (found ${federationVersion})`,
193
+ ));
194
+ }
195
+ }
196
+
177
197
  return result;
178
198
  }
179
199
 
180
200
  override validateSubgraphSchema(schema: Schema): GraphQLError[] {
201
+ const errors = super.validateSubgraphSchema(schema);
181
202
  const {
182
203
  sourceAPI,
183
204
  sourceType,
184
205
  sourceField,
185
- } = this.getSourceDirectives(schema);
206
+ } = this.getSourceDirectives(schema, errors);
186
207
 
187
208
  if (!(sourceAPI || sourceType || sourceField)) {
188
209
  // If none of the @source* directives are present, nothing needs
@@ -191,7 +212,6 @@ export class SourceSpecDefinition extends FeatureDefinition {
191
212
  }
192
213
 
193
214
  const apiNameToProtocol = new Map<string, ProtocolName>();
194
- const errors: GraphQLError[] = [];
195
215
 
196
216
  if (sourceAPI) {
197
217
  this.validateSourceAPI(sourceAPI, apiNameToProtocol, errors);
@@ -216,20 +236,18 @@ export class SourceSpecDefinition extends FeatureDefinition {
216
236
  sourceAPI.applications().forEach(application => {
217
237
  const { name, ...rest } = application.arguments();
218
238
 
219
- if (apiNameToProtocol.has(name)) {
239
+ if (!isValidSourceAPIName(name)) {
220
240
  errors.push(ERRORS.SOURCE_API_NAME_INVALID.err(
221
- `${sourceAPI} must specify unique name`,
241
+ `${sourceAPI}(name: ${
242
+ JSON.stringify(name)
243
+ }) must specify name using only [a-zA-Z0-9-_] characters`,
222
244
  { nodes: application.sourceAST },
223
245
  ));
224
246
  }
225
247
 
226
- try {
227
- assertName(name);
228
- } catch (e) {
248
+ if (apiNameToProtocol.has(name)) {
229
249
  errors.push(ERRORS.SOURCE_API_NAME_INVALID.err(
230
- `${sourceAPI}(name: ${
231
- JSON.stringify(name)
232
- }) must specify valid GraphQL name`,
250
+ `${sourceAPI} must specify unique name (${JSON.stringify(name)} reused)`,
233
251
  { nodes: application.sourceAST },
234
252
  ));
235
253
  }
@@ -239,7 +257,9 @@ export class SourceSpecDefinition extends FeatureDefinition {
239
257
  if (rest[knownProtocol]) {
240
258
  if (protocol) {
241
259
  errors.push(ERRORS.SOURCE_API_PROTOCOL_INVALID.err(
242
- `${sourceAPI} must specify only one of ${KNOWN_SOURCE_PROTOCOLS.join(', ')}`,
260
+ `${sourceAPI} must specify only one of ${
261
+ KNOWN_SOURCE_PROTOCOLS.join(', ')
262
+ } but specified both ${protocol} and ${knownProtocol}`,
243
263
  { nodes: application.sourceAST },
244
264
  ));
245
265
  }
@@ -258,7 +278,7 @@ export class SourceSpecDefinition extends FeatureDefinition {
258
278
  new URL(baseURL);
259
279
  } catch (e) {
260
280
  errors.push(ERRORS.SOURCE_API_HTTP_BASE_URL_INVALID.err(
261
- `${sourceAPI} http.baseURL ${JSON.stringify(baseURL)} must be valid URL`,
281
+ `${sourceAPI} http.baseURL ${JSON.stringify(baseURL)} must be valid URL (error: ${e.message})`,
262
282
  { nodes: application.sourceAST },
263
283
  ));
264
284
  }
@@ -267,7 +287,7 @@ export class SourceSpecDefinition extends FeatureDefinition {
267
287
  }
268
288
  } else {
269
289
  errors.push(ERRORS.SOURCE_API_PROTOCOL_INVALID.err(
270
- `${sourceAPI} must specify one of ${KNOWN_SOURCE_PROTOCOLS.join(', ')}`,
290
+ `${sourceAPI} must specify one protocol from the set {${KNOWN_SOURCE_PROTOCOLS.join(',')}}`,
271
291
  { nodes: application.sourceAST },
272
292
  ));
273
293
  }
@@ -286,58 +306,58 @@ export class SourceSpecDefinition extends FeatureDefinition {
286
306
  `${sourceType} specifies unknown api ${api}`,
287
307
  { nodes: application.sourceAST },
288
308
  ));
289
- } else {
290
- const expectedProtocol = apiNameToProtocol.get(api);
291
- const protocolValue = expectedProtocol && rest[expectedProtocol];
292
- if (expectedProtocol && !protocolValue) {
293
- errors.push(ERRORS.SOURCE_TYPE_API_ERROR.err(
294
- `${sourceType} must specify same ${
295
- expectedProtocol
296
- } argument as corresponding @sourceAPI for api ${api}`,
309
+ }
310
+
311
+ const expectedProtocol = apiNameToProtocol.get(api) || HTTP_PROTOCOL;
312
+ const protocolValue = expectedProtocol && rest[expectedProtocol];
313
+ if (expectedProtocol && !protocolValue) {
314
+ errors.push(ERRORS.SOURCE_TYPE_PROTOCOL_INVALID.err(
315
+ `${sourceType} must specify same ${
316
+ expectedProtocol
317
+ } argument as corresponding @sourceAPI for api ${api}`,
318
+ { nodes: application.sourceAST },
319
+ ));
320
+ }
321
+
322
+ if (protocolValue && expectedProtocol === HTTP_PROTOCOL) {
323
+ const { GET, POST, headers, body } = protocolValue as HTTPSourceType;
324
+
325
+ if ([GET, POST].filter(Boolean).length !== 1) {
326
+ errors.push(ERRORS.SOURCE_TYPE_HTTP_METHOD_INVALID.err(
327
+ `${sourceType} must specify exactly one of http.GET or http.POST`,
297
328
  { nodes: application.sourceAST },
298
329
  ));
330
+ } else {
331
+ const urlPathTemplate = (GET || POST)!;
332
+ try {
333
+ // TODO Validate URL path template uses only available @key fields
334
+ // of the type.
335
+ parseURLPathTemplate(urlPathTemplate);
336
+ } catch (e) {
337
+ errors.push(ERRORS.SOURCE_TYPE_HTTP_PATH_INVALID.err(
338
+ `${sourceType} http.GET or http.POST must be valid URL path template (error: ${e.message})`
339
+ ));
340
+ }
299
341
  }
300
342
 
301
- if (protocolValue && expectedProtocol === HTTP_PROTOCOL) {
302
- const { GET, POST, headers, body } = protocolValue as HTTPSourceType;
343
+ validateHTTPHeaders(headers, errors, sourceType.name);
303
344
 
304
- if ([GET, POST].filter(Boolean).length !== 1) {
305
- errors.push(ERRORS.SOURCE_TYPE_HTTP_METHOD_INVALID.err(
306
- `${sourceType} must specify exactly one of http.GET or http.POST`,
345
+ if (body) {
346
+ if (GET) {
347
+ errors.push(ERRORS.SOURCE_TYPE_HTTP_BODY_INVALID.err(
348
+ `${sourceType} http.GET cannot specify http.body`,
307
349
  { nodes: application.sourceAST },
308
350
  ));
309
- } else {
310
- const urlPathTemplate = (GET || POST)!;
311
- try {
312
- // TODO Validate URL path template uses only available @key fields
313
- // of the type.
314
- parseURLPathTemplate(urlPathTemplate);
315
- } catch (e) {
316
- errors.push(ERRORS.SOURCE_TYPE_HTTP_PATH_INVALID.err(
317
- `${sourceType} http.GET or http.POST must be valid URL path template`
318
- ));
319
- }
320
351
  }
321
352
 
322
- validateHTTPHeaders(headers, errors, sourceType.name);
323
-
324
- if (body) {
325
- if (GET) {
326
- errors.push(ERRORS.SOURCE_TYPE_HTTP_BODY_INVALID.err(
327
- `${sourceType} http.GET cannot specify http.body`,
328
- { nodes: application.sourceAST },
329
- ));
330
- }
331
-
332
- try {
333
- parseJSONSelection(body);
334
- // TODO Validate body selection matches the available fields.
335
- } catch (e) {
336
- errors.push(ERRORS.SOURCE_TYPE_HTTP_BODY_INVALID.err(
337
- `${sourceType} http.body not valid JSONSelection: ${e.message}`,
338
- { nodes: application.sourceAST },
339
- ));
340
- }
353
+ try {
354
+ parseJSONSelection(body);
355
+ // TODO Validate body selection matches the available fields.
356
+ } catch (e) {
357
+ errors.push(ERRORS.SOURCE_TYPE_HTTP_BODY_INVALID.err(
358
+ `${sourceType} http.body not valid JSONSelection (error: ${e.message})`,
359
+ { nodes: application.sourceAST },
360
+ ));
341
361
  }
342
362
  }
343
363
  }
@@ -357,7 +377,7 @@ export class SourceSpecDefinition extends FeatureDefinition {
357
377
  // TODO Validate selection is valid JSONSelection for type.
358
378
  } catch (e) {
359
379
  errors.push(ERRORS.SOURCE_TYPE_SELECTION_INVALID.err(
360
- `${sourceType} selection not valid JSONSelection: ${e.message}`,
380
+ `${sourceType} selection not valid JSONSelection (error: ${e.message})`,
361
381
  { nodes: application.sourceAST },
362
382
  ));
363
383
  }
@@ -383,59 +403,59 @@ export class SourceSpecDefinition extends FeatureDefinition {
383
403
  `${sourceField} specifies unknown api ${api}`,
384
404
  { nodes: application.sourceAST },
385
405
  ));
386
- } else {
387
- const expectedProtocol = apiNameToProtocol.get(api);
388
- const protocolValue = expectedProtocol && rest[expectedProtocol];
389
- if (protocolValue && expectedProtocol === HTTP_PROTOCOL) {
390
- const {
391
- GET, POST, PUT, PATCH, DELETE,
392
- headers,
393
- body,
394
- } = protocolValue as HTTPSourceField;
395
-
396
- const usedMethods = [GET, POST, PUT, PATCH, DELETE].filter(Boolean);
397
- if (usedMethods.length > 1) {
398
- errors.push(ERRORS.SOURCE_FIELD_HTTP_METHOD_INVALID.err(
399
- `${sourceField} allows at most one of http.{GET,POST,PUT,PATCH,DELETE}`,
406
+ }
407
+
408
+ const expectedProtocol = apiNameToProtocol.get(api) || HTTP_PROTOCOL;
409
+ const protocolValue = expectedProtocol && rest[expectedProtocol];
410
+ if (protocolValue && expectedProtocol === HTTP_PROTOCOL) {
411
+ const {
412
+ GET, POST, PUT, PATCH, DELETE,
413
+ headers,
414
+ body,
415
+ } = protocolValue as HTTPSourceField;
416
+
417
+ const usedMethods = [GET, POST, PUT, PATCH, DELETE].filter(Boolean);
418
+ if (usedMethods.length > 1) {
419
+ errors.push(ERRORS.SOURCE_FIELD_HTTP_METHOD_INVALID.err(
420
+ `${sourceField} allows at most one of http.{GET,POST,PUT,PATCH,DELETE}`,
421
+ ));
422
+ } else if (usedMethods.length === 1) {
423
+ const urlPathTemplate = usedMethods[0]!;
424
+ try {
425
+ // TODO Validate URL path template uses only available fields of
426
+ // the type and/or argument names of the field.
427
+ parseURLPathTemplate(urlPathTemplate);
428
+ } catch (e) {
429
+ errors.push(ERRORS.SOURCE_FIELD_HTTP_PATH_INVALID.err(
430
+ `${sourceField} http.{GET,POST,PUT,PATCH,DELETE} must be valid URL path template (error: ${e.message})`
400
431
  ));
401
- } else if (usedMethods.length === 1) {
402
- const urlPathTemplate = usedMethods[0]!;
403
- try {
404
- // TODO Validate URL path template uses only available fields of
405
- // the type and/or argument names of the field.
406
- parseURLPathTemplate(urlPathTemplate);
407
- } catch (e) {
408
- errors.push(ERRORS.SOURCE_FIELD_HTTP_PATH_INVALID.err(
409
- `${sourceField} http.{GET,POST,PUT,PATCH,DELETE} must be valid URL path template`
410
- ));
411
- }
412
432
  }
433
+ }
413
434
 
414
- validateHTTPHeaders(headers, errors, sourceField.name);
415
-
416
- if (body) {
417
- if (GET) {
418
- errors.push(ERRORS.SOURCE_FIELD_HTTP_BODY_INVALID.err(
419
- `${sourceField} http.GET cannot specify http.body`,
420
- { nodes: application.sourceAST },
421
- ));
422
- } else if (DELETE) {
423
- errors.push(ERRORS.SOURCE_FIELD_HTTP_BODY_INVALID.err(
424
- `${sourceField} http.DELETE cannot specify http.body`,
425
- { nodes: application.sourceAST },
426
- ));
427
- }
435
+ validateHTTPHeaders(headers, errors, sourceField.name);
428
436
 
429
- try {
430
- parseJSONSelection(body);
431
- // TODO Validate body string matches the available fields of the
432
- // parent type and/or argument names of the field.
433
- } catch (e) {
434
- errors.push(ERRORS.SOURCE_FIELD_HTTP_BODY_INVALID.err(
435
- `${sourceField} http.body not valid JSONSelection: ${e.message}`,
436
- { nodes: application.sourceAST },
437
- ));
438
- }
437
+ if (body) {
438
+ if (GET) {
439
+ errors.push(ERRORS.SOURCE_FIELD_HTTP_BODY_INVALID.err(
440
+ `${sourceField} http.GET cannot specify http.body`,
441
+ { nodes: application.sourceAST },
442
+ ));
443
+ } else if (DELETE) {
444
+ errors.push(ERRORS.SOURCE_FIELD_HTTP_BODY_INVALID.err(
445
+ `${sourceField} http.DELETE cannot specify http.body`,
446
+ { nodes: application.sourceAST },
447
+ ));
448
+ }
449
+
450
+ try {
451
+ parseJSONSelection(body);
452
+ // TODO Validate body string matches the available fields of the
453
+ // parent type and/or argument names of the field.
454
+ } catch (e) {
455
+ errors.push(ERRORS.SOURCE_FIELD_HTTP_BODY_INVALID.err(
456
+ `${sourceField} http.body not valid JSONSelection (error: ${e.message})`,
457
+ { nodes: application.sourceAST },
458
+ ));
439
459
  }
440
460
  }
441
461
  }
@@ -447,7 +467,7 @@ export class SourceSpecDefinition extends FeatureDefinition {
447
467
  // the parent type and/or argument names of the field.
448
468
  } catch (e) {
449
469
  errors.push(ERRORS.SOURCE_FIELD_SELECTION_INVALID.err(
450
- `${sourceField} selection not valid JSONSelection: ${e.message}`,
470
+ `${sourceField} selection not valid JSONSelection (error: ${e.message})`,
451
471
  { nodes: application.sourceAST },
452
472
  ));
453
473
  }
@@ -456,14 +476,14 @@ export class SourceSpecDefinition extends FeatureDefinition {
456
476
  // @sourceField is allowed only on root Query and Mutation fields or
457
477
  // fields of entity object types.
458
478
  const fieldParent = application.parent;
459
- if (fieldParent.sourceAST?.kind !== "FieldDefinition") {
479
+ if (fieldParent.sourceAST?.kind !== Kind.FIELD_DEFINITION) {
460
480
  errors.push(ERRORS.SOURCE_FIELD_NOT_ON_ROOT_OR_ENTITY_FIELD.err(
461
481
  `${sourceField} must be applied to field`,
462
482
  { nodes: application.sourceAST },
463
483
  ));
464
484
  } else {
465
485
  const typeGrandparent = fieldParent.parent as SchemaElement<any, any>;
466
- if (typeGrandparent.sourceAST?.kind !== "ObjectTypeDefinition") {
486
+ if (typeGrandparent.sourceAST?.kind !== Kind.OBJECT_TYPE_DEFINITION) {
467
487
  errors.push(ERRORS.SOURCE_FIELD_NOT_ON_ROOT_OR_ENTITY_FIELD.err(
468
488
  `${sourceField} must be applied to field of object type`,
469
489
  { nodes: application.sourceAST },
@@ -486,6 +506,10 @@ export class SourceSpecDefinition extends FeatureDefinition {
486
506
  }
487
507
  }
488
508
 
509
+ function isValidSourceAPIName(name: string): boolean {
510
+ return /^[a-z-_][a-z0-9-_]*$/i.test(name);
511
+ }
512
+
489
513
  function isValidHTTPHeaderName(name: string): boolean {
490
514
  // https://developers.cloudflare.com/rules/transform/request-header-modification/reference/header-format/
491
515
  return /^[a-zA-Z0-9-_]+$/.test(name);
@@ -504,15 +528,19 @@ function validateHTTPHeaders(
504
528
  // Ensure name is a valid HTTP header name.
505
529
  if (!isValidHTTPHeaderName(name)) {
506
530
  errors.push(ERRORS.SOURCE_HTTP_HEADERS_INVALID.err(
507
- `${directiveName} headers[${i}].name == ${
508
- JSON.stringify(name)
509
- } is not valid HTTP header name`,
531
+ `${directiveName} header ${JSON.stringify(headers[i])} specifies invalid name`,
532
+ ));
533
+ }
534
+
535
+ if (as && !isValidHTTPHeaderName(as)) {
536
+ errors.push(ERRORS.SOURCE_HTTP_HEADERS_INVALID.err(
537
+ `${directiveName} header ${JSON.stringify(headers[i])} specifies invalid 'as' name`,
510
538
  ));
511
539
  }
512
540
 
513
- if (!as === !value) {
541
+ if (as && value) {
514
542
  errors.push(ERRORS.SOURCE_HTTP_HEADERS_INVALID.err(
515
- `${directiveName} headers[${i}] must specify exactly one of as or value`,
543
+ `${directiveName} header ${JSON.stringify(headers[i])} should specify at most one of 'as' or 'value'`,
516
544
  ));
517
545
  }
518
546