@apollo/gateway 2.4.2 → 2.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/package.json +4 -4
  2. package/src/__tests__/executeQueryPlan.test.ts +74 -1
  3. package/src/dataRewrites.ts +1 -1
  4. package/src/supergraphManagers/UplinkSupergraphManager/__tests__/loadSupergraphSdlFromStorage.test.ts +1 -3
  5. package/dist/__generated__/graphqlTypes.d.ts +0 -160
  6. package/dist/__generated__/graphqlTypes.d.ts.map +0 -1
  7. package/dist/__generated__/graphqlTypes.js +0 -30
  8. package/dist/__generated__/graphqlTypes.js.map +0 -1
  9. package/dist/config.d.ts +0 -138
  10. package/dist/config.d.ts.map +0 -1
  11. package/dist/config.js +0 -60
  12. package/dist/config.js.map +0 -1
  13. package/dist/dataRewrites.d.ts +0 -5
  14. package/dist/dataRewrites.d.ts.map +0 -1
  15. package/dist/dataRewrites.js +0 -103
  16. package/dist/dataRewrites.js.map +0 -1
  17. package/dist/datasources/LocalGraphQLDataSource.d.ts +0 -10
  18. package/dist/datasources/LocalGraphQLDataSource.d.ts.map +0 -1
  19. package/dist/datasources/LocalGraphQLDataSource.js +0 -31
  20. package/dist/datasources/LocalGraphQLDataSource.js.map +0 -1
  21. package/dist/datasources/RemoteGraphQLDataSource.d.ts +0 -24
  22. package/dist/datasources/RemoteGraphQLDataSource.d.ts.map +0 -1
  23. package/dist/datasources/RemoteGraphQLDataSource.js +0 -180
  24. package/dist/datasources/RemoteGraphQLDataSource.js.map +0 -1
  25. package/dist/datasources/index.d.ts +0 -4
  26. package/dist/datasources/index.d.ts.map +0 -1
  27. package/dist/datasources/index.js +0 -8
  28. package/dist/datasources/index.js.map +0 -1
  29. package/dist/datasources/parseCacheControlHeader.d.ts +0 -2
  30. package/dist/datasources/parseCacheControlHeader.d.ts.map +0 -1
  31. package/dist/datasources/parseCacheControlHeader.js +0 -16
  32. package/dist/datasources/parseCacheControlHeader.js.map +0 -1
  33. package/dist/datasources/types.d.ts +0 -23
  34. package/dist/datasources/types.d.ts.map +0 -1
  35. package/dist/datasources/types.js +0 -10
  36. package/dist/datasources/types.js.map +0 -1
  37. package/dist/executeQueryPlan.d.ts +0 -15
  38. package/dist/executeQueryPlan.d.ts.map +0 -1
  39. package/dist/executeQueryPlan.js +0 -539
  40. package/dist/executeQueryPlan.js.map +0 -1
  41. package/dist/index.d.ts +0 -113
  42. package/dist/index.d.ts.map +0 -1
  43. package/dist/index.js +0 -590
  44. package/dist/index.js.map +0 -1
  45. package/dist/logger.d.ts +0 -3
  46. package/dist/logger.d.ts.map +0 -1
  47. package/dist/logger.js +0 -15
  48. package/dist/logger.js.map +0 -1
  49. package/dist/operationContext.d.ts +0 -17
  50. package/dist/operationContext.d.ts.map +0 -1
  51. package/dist/operationContext.js +0 -38
  52. package/dist/operationContext.js.map +0 -1
  53. package/dist/resultShaping.d.ts +0 -12
  54. package/dist/resultShaping.d.ts.map +0 -1
  55. package/dist/resultShaping.js +0 -229
  56. package/dist/resultShaping.js.map +0 -1
  57. package/dist/schema-helper/addExtensions.d.ts +0 -3
  58. package/dist/schema-helper/addExtensions.d.ts.map +0 -1
  59. package/dist/schema-helper/addExtensions.js +0 -23
  60. package/dist/schema-helper/addExtensions.js.map +0 -1
  61. package/dist/supergraphManagers/IntrospectAndCompose/index.d.ts +0 -31
  62. package/dist/supergraphManagers/IntrospectAndCompose/index.d.ts.map +0 -1
  63. package/dist/supergraphManagers/IntrospectAndCompose/index.js +0 -112
  64. package/dist/supergraphManagers/IntrospectAndCompose/index.js.map +0 -1
  65. package/dist/supergraphManagers/IntrospectAndCompose/loadServicesFromRemoteEndpoint.d.ts +0 -12
  66. package/dist/supergraphManagers/IntrospectAndCompose/loadServicesFromRemoteEndpoint.d.ts.map +0 -1
  67. package/dist/supergraphManagers/IntrospectAndCompose/loadServicesFromRemoteEndpoint.js +0 -57
  68. package/dist/supergraphManagers/IntrospectAndCompose/loadServicesFromRemoteEndpoint.js.map +0 -1
  69. package/dist/supergraphManagers/LegacyFetcher/index.d.ts +0 -33
  70. package/dist/supergraphManagers/LegacyFetcher/index.d.ts.map +0 -1
  71. package/dist/supergraphManagers/LegacyFetcher/index.js +0 -149
  72. package/dist/supergraphManagers/LegacyFetcher/index.js.map +0 -1
  73. package/dist/supergraphManagers/LocalCompose/index.d.ts +0 -19
  74. package/dist/supergraphManagers/LocalCompose/index.d.ts.map +0 -1
  75. package/dist/supergraphManagers/LocalCompose/index.js +0 -55
  76. package/dist/supergraphManagers/LocalCompose/index.js.map +0 -1
  77. package/dist/supergraphManagers/UplinkSupergraphManager/index.d.ts +0 -63
  78. package/dist/supergraphManagers/UplinkSupergraphManager/index.d.ts.map +0 -1
  79. package/dist/supergraphManagers/UplinkSupergraphManager/index.js +0 -210
  80. package/dist/supergraphManagers/UplinkSupergraphManager/index.js.map +0 -1
  81. package/dist/supergraphManagers/UplinkSupergraphManager/loadSupergraphSdlFromStorage.d.ts +0 -30
  82. package/dist/supergraphManagers/UplinkSupergraphManager/loadSupergraphSdlFromStorage.d.ts.map +0 -1
  83. package/dist/supergraphManagers/UplinkSupergraphManager/loadSupergraphSdlFromStorage.js +0 -145
  84. package/dist/supergraphManagers/UplinkSupergraphManager/loadSupergraphSdlFromStorage.js.map +0 -1
  85. package/dist/supergraphManagers/UplinkSupergraphManager/outOfBandReporter.d.ts +0 -14
  86. package/dist/supergraphManagers/UplinkSupergraphManager/outOfBandReporter.d.ts.map +0 -1
  87. package/dist/supergraphManagers/UplinkSupergraphManager/outOfBandReporter.js +0 -85
  88. package/dist/supergraphManagers/UplinkSupergraphManager/outOfBandReporter.js.map +0 -1
  89. package/dist/supergraphManagers/index.d.ts +0 -6
  90. package/dist/supergraphManagers/index.d.ts.map +0 -1
  91. package/dist/supergraphManagers/index.js +0 -27
  92. package/dist/supergraphManagers/index.js.map +0 -1
  93. package/dist/typings/graphql.d.ts +0 -11
  94. package/dist/typings/graphql.d.ts.map +0 -1
  95. package/dist/typings/graphql.js +0 -3
  96. package/dist/typings/graphql.js.map +0 -1
  97. package/dist/utilities/array.d.ts +0 -5
  98. package/dist/utilities/array.d.ts.map +0 -1
  99. package/dist/utilities/array.js +0 -46
  100. package/dist/utilities/array.js.map +0 -1
  101. package/dist/utilities/assert.d.ts +0 -2
  102. package/dist/utilities/assert.d.ts.map +0 -1
  103. package/dist/utilities/assert.js +0 -10
  104. package/dist/utilities/assert.js.map +0 -1
  105. package/dist/utilities/deepMerge.d.ts +0 -2
  106. package/dist/utilities/deepMerge.d.ts.map +0 -1
  107. package/dist/utilities/deepMerge.js +0 -34
  108. package/dist/utilities/deepMerge.js.map +0 -1
  109. package/dist/utilities/graphql.d.ts +0 -5
  110. package/dist/utilities/graphql.d.ts.map +0 -1
  111. package/dist/utilities/graphql.js +0 -28
  112. package/dist/utilities/graphql.js.map +0 -1
  113. package/dist/utilities/opentelemetry.d.ts +0 -10
  114. package/dist/utilities/opentelemetry.d.ts.map +0 -1
  115. package/dist/utilities/opentelemetry.js +0 -19
  116. package/dist/utilities/opentelemetry.js.map +0 -1
  117. package/dist/utilities/predicates.d.ts +0 -2
  118. package/dist/utilities/predicates.d.ts.map +0 -1
  119. package/dist/utilities/predicates.js +0 -11
  120. package/dist/utilities/predicates.js.map +0 -1
@@ -1,103 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isObjectOfType = exports.applyRewrites = void 0;
4
- const console_1 = require("console");
5
- const graphql_1 = require("graphql");
6
- const FRAGMENT_PREFIX = '... on ';
7
- function applyRewrites(schema, rewrites, value) {
8
- if (!rewrites) {
9
- return;
10
- }
11
- for (const rewrite of rewrites) {
12
- applyRewrite(schema, rewrite, value);
13
- }
14
- }
15
- exports.applyRewrites = applyRewrites;
16
- function applyRewrite(schema, rewrite, value) {
17
- const splitted = splitPathLastElement(rewrite.path);
18
- if (!splitted) {
19
- return;
20
- }
21
- const [parent, last] = splitted;
22
- const { kind, value: fieldName } = parsePathElement(last);
23
- (0, console_1.assert)(kind === 'fieldName', () => `Unexpected fragment as last element of ${rewrite.path}`);
24
- applyAtPath(schema, parent, value, rewriteAtPathFunction(rewrite, fieldName));
25
- }
26
- function rewriteAtPathFunction(rewrite, fieldAtPath) {
27
- switch (rewrite.kind) {
28
- case 'ValueSetter':
29
- return (obj) => {
30
- obj[fieldAtPath] = rewrite.setValueTo;
31
- };
32
- case 'KeyRenamer':
33
- return (obj) => {
34
- obj[rewrite.renameKeyTo] = obj[fieldAtPath];
35
- obj[fieldAtPath] = undefined;
36
- };
37
- }
38
- }
39
- function splitPathLastElement(path) {
40
- if (path.length === 0) {
41
- return undefined;
42
- }
43
- const lastIdx = path.length - 1;
44
- return [path.slice(0, lastIdx), path[lastIdx]];
45
- }
46
- function applyAtPath(schema, path, value, fct) {
47
- if (Array.isArray(value)) {
48
- for (const arrayValue of value) {
49
- applyAtPath(schema, path, arrayValue, fct);
50
- }
51
- return;
52
- }
53
- if (typeof value !== 'object') {
54
- return;
55
- }
56
- if (path.length === 0) {
57
- fct(value);
58
- return;
59
- }
60
- const [first, ...rest] = path;
61
- const { kind, value: eltValue } = parsePathElement(first);
62
- switch (kind) {
63
- case 'fieldName':
64
- applyAtPath(schema, rest, value[eltValue], fct);
65
- break;
66
- case 'typeName':
67
- if (isObjectOfType(schema, value, eltValue, true)) {
68
- applyAtPath(schema, rest, value, fct);
69
- }
70
- break;
71
- }
72
- }
73
- function parsePathElement(elt) {
74
- if (elt.startsWith(FRAGMENT_PREFIX)) {
75
- return { kind: 'typeName', value: elt.slice(FRAGMENT_PREFIX.length) };
76
- }
77
- else {
78
- return { kind: 'fieldName', value: elt };
79
- }
80
- }
81
- function isObjectOfType(schema, obj, typeCondition, defaultOnUnknownObjectType = false) {
82
- const objTypename = obj['__typename'];
83
- if (!objTypename) {
84
- return defaultOnUnknownObjectType;
85
- }
86
- if (typeCondition === objTypename) {
87
- return true;
88
- }
89
- const type = schema.getType(objTypename);
90
- if (!type) {
91
- return false;
92
- }
93
- const conditionalType = schema.getType(typeCondition);
94
- if (!conditionalType) {
95
- return false;
96
- }
97
- if ((0, graphql_1.isAbstractType)(conditionalType)) {
98
- return ((0, graphql_1.isObjectType)(type) || (0, graphql_1.isInterfaceType)(type)) && schema.isSubType(conditionalType, type);
99
- }
100
- return false;
101
- }
102
- exports.isObjectOfType = isObjectOfType;
103
- //# sourceMappingURL=dataRewrites.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dataRewrites.js","sourceRoot":"","sources":["../src/dataRewrites.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import { GatewayGraphQLResponse } from '@apollo/server-gateway-interface';
2
- import { GraphQLSchema, DocumentNode } from 'graphql';
3
- import { GraphQLDataSource, GraphQLDataSourceProcessOptions } from './types';
4
- export declare class LocalGraphQLDataSource<TContext extends Record<string, any> = Record<string, any>> implements GraphQLDataSource<TContext> {
5
- readonly schema: GraphQLSchema;
6
- constructor(schema: GraphQLSchema);
7
- process({ request, context, }: GraphQLDataSourceProcessOptions<TContext>): Promise<GatewayGraphQLResponse>;
8
- sdl(): DocumentNode;
9
- }
10
- //# sourceMappingURL=LocalGraphQLDataSource.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LocalGraphQLDataSource.d.ts","sourceRoot":"","sources":["../../src/datasources/LocalGraphQLDataSource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EACL,aAAa,EAGb,YAAY,EAEb,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,iBAAiB,EAAE,+BAA+B,EAAE,MAAM,SAAS,CAAC;AAE7E,qBAAa,sBAAsB,CACjC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAC1D,YAAW,iBAAiB,CAAC,QAAQ,CAAC;aAEV,MAAM,EAAE,aAAa;gBAArB,MAAM,EAAE,aAAa;IAG3C,OAAO,CAAC,EACZ,OAAO,EACP,OAAO,GACR,EAAE,+BAA+B,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAUvE,GAAG,IAAI,YAAY;CAY3B"}
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LocalGraphQLDataSource = void 0;
4
- const graphql_1 = require("graphql");
5
- class LocalGraphQLDataSource {
6
- constructor(schema) {
7
- this.schema = schema;
8
- }
9
- async process({ request, context, }) {
10
- return (0, graphql_1.graphql)({
11
- schema: this.schema,
12
- source: request.query,
13
- variableValues: request.variables,
14
- operationName: request.operationName,
15
- contextValue: context,
16
- });
17
- }
18
- sdl() {
19
- const result = (0, graphql_1.graphqlSync)({
20
- schema: this.schema,
21
- source: `{ _service { sdl }}`,
22
- });
23
- if (result.errors) {
24
- throw new Error(result.errors.map((error) => error.message).join('\n\n'));
25
- }
26
- const sdl = result.data && result.data._service && result.data._service.sdl;
27
- return (0, graphql_1.parse)(sdl);
28
- }
29
- }
30
- exports.LocalGraphQLDataSource = LocalGraphQLDataSource;
31
- //# sourceMappingURL=LocalGraphQLDataSource.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LocalGraphQLDataSource.js","sourceRoot":"","sources":["../../src/datasources/LocalGraphQLDataSource.ts"],"names":[],"mappings":";;;AACA,qCAMiB;AAGjB,MAAa,sBAAsB;IAIjC,YAA4B,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IACjD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EACZ,OAAO,EACP,OAAO,GACmC;QAC1C,OAAO,IAAA,iBAAO,EAAC;YACb,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,OAAO,CAAC,KAAM;YACtB,cAAc,EAAE,OAAO,CAAC,SAAS;YACjC,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,YAAY,EAAE,OAAO;SACtB,CAAC,CAAC;IACL,CAAC;IAEM,GAAG;QACR,MAAM,MAAM,GAAG,IAAA,qBAAW,EAAC;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,qBAAqB;SAC9B,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,MAAM,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;SAC3E;QAED,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAK,MAAM,CAAC,IAAI,CAAC,QAAgB,CAAC,GAAG,CAAC;QACrF,OAAO,IAAA,eAAK,EAAC,GAAG,CAAC,CAAC;IACpB,CAAC;CACF;AAhCD,wDAgCC"}
@@ -1,24 +0,0 @@
1
- import { GraphQLDataSource, GraphQLDataSourceProcessOptions } from './types';
2
- import { ResponsePath } from '@apollo/query-planner';
3
- import { Request as NodeFetchRequest } from 'node-fetch';
4
- import { Fetcher, FetcherResponse } from '@apollo/utils.fetcher';
5
- import { GraphQLError } from 'graphql';
6
- import { GatewayGraphQLRequestContext, GatewayGraphQLResponse } from '@apollo/server-gateway-interface';
7
- export declare class RemoteGraphQLDataSource<TContext extends Record<string, any> = Record<string, any>> implements GraphQLDataSource<TContext> {
8
- fetcher: Fetcher;
9
- constructor(config?: Partial<RemoteGraphQLDataSource<TContext>> & object & ThisType<RemoteGraphQLDataSource<TContext>>);
10
- url: string;
11
- apq: boolean;
12
- honorSubgraphCacheControlHeader: boolean;
13
- process(options: GraphQLDataSourceProcessOptions<TContext>): Promise<GatewayGraphQLResponse>;
14
- private sendRequest;
15
- willSendRequest?(options: GraphQLDataSourceProcessOptions<TContext>): void | Promise<void>;
16
- private respond;
17
- didReceiveResponse?(requestContext: Required<Pick<GatewayGraphQLRequestContext<TContext>, 'request' | 'response' | 'context'>> & {
18
- pathInIncomingRequest?: ResponsePath;
19
- }): GatewayGraphQLResponse | Promise<GatewayGraphQLResponse>;
20
- didEncounterError(error: Error, _fetchRequest: NodeFetchRequest, _fetchResponse?: FetcherResponse, _context?: TContext): void;
21
- parseBody(fetchResponse: FetcherResponse, _fetchRequest?: NodeFetchRequest, _context?: TContext): Promise<object | string>;
22
- errorFromResponse(response: FetcherResponse): Promise<GraphQLError>;
23
- }
24
- //# sourceMappingURL=RemoteGraphQLDataSource.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RemoteGraphQLDataSource.d.ts","sourceRoot":"","sources":["../../src/datasources/RemoteGraphQLDataSource.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,+BAA+B,EAAgC,MAAM,SAAS,CAAC;AAE3G,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrD,OAAO,EAA+B,OAAO,IAAI,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACtF,OAAO,EAAE,OAAO,EAAsB,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAE,YAAY,EAA0B,MAAM,SAAS,CAAC;AAC/D,OAAO,EAA+D,4BAA4B,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAErK,qBAAa,uBAAuB,CAClC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAC1D,YAAW,iBAAiB,CAAC,QAAQ,CAAC;IAEtC,OAAO,EAAE,OAAO,CAAC;gBAGf,MAAM,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,GACjD,MAAM,GACN,QAAQ,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAkB/C,GAAG,EAAG,MAAM,CAAC;IAoBb,GAAG,EAAE,OAAO,CAAS;IAMrB,+BAA+B,EAAE,OAAO,CAAQ;IAE1C,OAAO,CACX,OAAO,EAAE,+BAA+B,CAAC,QAAQ,CAAC,GACjD,OAAO,CAAC,sBAAsB,CAAC;YAyGpB,WAAW;IAsDlB,eAAe,CAAC,CACrB,OAAO,EAAE,+BAA+B,CAAC,QAAQ,CAAC,GACjD,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YAET,OAAO;IA4Cd,kBAAkB,CAAC,CACxB,cAAc,EAAE,QAAQ,CACtB,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC,CACjF,GAAG;QAAE,qBAAqB,CAAC,EAAE,YAAY,CAAA;KAAE,GAC3C,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAEpD,iBAAiB,CACtB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,gBAAgB,EAC/B,cAAc,CAAC,EAAE,eAAe,EAChC,QAAQ,CAAC,EAAE,QAAQ;IAKd,SAAS,CACd,aAAa,EAAE,eAAe,EAC9B,aAAa,CAAC,EAAE,gBAAgB,EAChC,QAAQ,CAAC,EAAE,QAAQ,GAClB,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;IASd,iBAAiB,CAAC,QAAQ,EAAE,eAAe;CAsBzD"}
@@ -1,180 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.RemoteGraphQLDataSource = void 0;
7
- const predicates_1 = require("../utilities/predicates");
8
- const types_1 = require("./types");
9
- const utils_createhash_1 = require("@apollo/utils.createhash");
10
- const parseCacheControlHeader_1 = require("./parseCacheControlHeader");
11
- const make_fetch_happen_1 = __importDefault(require("make-fetch-happen"));
12
- const node_fetch_1 = require("node-fetch");
13
- const graphql_1 = require("graphql");
14
- class RemoteGraphQLDataSource {
15
- constructor(config) {
16
- this.apq = false;
17
- this.honorSubgraphCacheControlHeader = true;
18
- this.fetcher = make_fetch_happen_1.default.defaults({
19
- maxSockets: Infinity,
20
- retry: false,
21
- });
22
- if (config) {
23
- return Object.assign(this, config);
24
- }
25
- }
26
- async process(options) {
27
- var _a;
28
- const { request, context: originalContext } = options;
29
- const pathInIncomingRequest = options.kind === types_1.GraphQLDataSourceRequestKind.INCOMING_OPERATION
30
- ? options.pathInIncomingRequest
31
- : undefined;
32
- const context = originalContext;
33
- const headers = new node_fetch_1.Headers();
34
- if ((_a = request.http) === null || _a === void 0 ? void 0 : _a.headers) {
35
- for (const [name, value] of request.http.headers) {
36
- headers.append(name, value);
37
- }
38
- }
39
- headers.set('Content-Type', 'application/json');
40
- request.http = {
41
- method: 'POST',
42
- url: this.url,
43
- headers,
44
- };
45
- if (this.willSendRequest) {
46
- await this.willSendRequest(options);
47
- }
48
- if (!request.query) {
49
- throw new Error('Missing query');
50
- }
51
- const { query, ...requestWithoutQuery } = request;
52
- const overallCachePolicy = this.honorSubgraphCacheControlHeader &&
53
- options.kind === types_1.GraphQLDataSourceRequestKind.INCOMING_OPERATION &&
54
- options.incomingRequestContext.overallCachePolicy &&
55
- 'restrict' in options.incomingRequestContext.overallCachePolicy
56
- ? options.incomingRequestContext.overallCachePolicy
57
- : null;
58
- if (this.apq) {
59
- const apqHash = (0, utils_createhash_1.createHash)('sha256').update(request.query).digest('hex');
60
- requestWithoutQuery.extensions = {
61
- ...request.extensions,
62
- persistedQuery: {
63
- version: 1,
64
- sha256Hash: apqHash,
65
- },
66
- };
67
- const apqOptimisticResponse = await this.sendRequest(requestWithoutQuery, context);
68
- if (!apqOptimisticResponse.errors ||
69
- !apqOptimisticResponse.errors.find((error) => error.message === 'PersistedQueryNotFound')) {
70
- return this.respond({
71
- response: apqOptimisticResponse,
72
- request: requestWithoutQuery,
73
- context,
74
- overallCachePolicy,
75
- pathInIncomingRequest
76
- });
77
- }
78
- }
79
- const requestWithQuery = {
80
- query,
81
- ...requestWithoutQuery,
82
- };
83
- const response = await this.sendRequest(requestWithQuery, context);
84
- return this.respond({
85
- response,
86
- request: requestWithQuery,
87
- context,
88
- overallCachePolicy,
89
- pathInIncomingRequest
90
- });
91
- }
92
- async sendRequest(request, context) {
93
- if (!request.http) {
94
- throw new Error("Internal error: Only 'http' requests are supported.");
95
- }
96
- const { http, ...requestWithoutHttp } = request;
97
- const stringifiedRequestWithoutHttp = JSON.stringify(requestWithoutHttp);
98
- const requestInit = {
99
- method: http.method,
100
- headers: Object.fromEntries(http.headers),
101
- body: stringifiedRequestWithoutHttp,
102
- };
103
- const fetchRequest = new node_fetch_1.Request(http.url, requestInit);
104
- let fetchResponse;
105
- try {
106
- fetchResponse = await this.fetcher(http.url, requestInit);
107
- if (!fetchResponse.ok) {
108
- throw await this.errorFromResponse(fetchResponse);
109
- }
110
- const body = await this.parseBody(fetchResponse, fetchRequest, context);
111
- if (!(0, predicates_1.isObject)(body)) {
112
- throw new Error(`Expected JSON response body, but received: ${body}`);
113
- }
114
- return {
115
- ...body,
116
- http: fetchResponse,
117
- };
118
- }
119
- catch (error) {
120
- this.didEncounterError(error, fetchRequest, fetchResponse, context);
121
- throw error;
122
- }
123
- }
124
- async respond({ response, request, context, overallCachePolicy, pathInIncomingRequest }) {
125
- var _a;
126
- const processedResponse = typeof this.didReceiveResponse === 'function'
127
- ? await this.didReceiveResponse({ response, request, context, pathInIncomingRequest })
128
- : response;
129
- if (overallCachePolicy) {
130
- const parsed = (0, parseCacheControlHeader_1.parseCacheControlHeader)((_a = response.http) === null || _a === void 0 ? void 0 : _a.headers.get('cache-control'));
131
- const hint = { maxAge: 0 };
132
- const maxAge = parsed['max-age'];
133
- if (typeof maxAge === 'string' && maxAge.match(/^[0-9]+$/)) {
134
- hint.maxAge = +maxAge;
135
- }
136
- if (parsed['private'] === true) {
137
- hint.scope = 'PRIVATE';
138
- }
139
- if (parsed['public'] === true) {
140
- hint.scope = 'PUBLIC';
141
- }
142
- overallCachePolicy.restrict(hint);
143
- }
144
- return processedResponse;
145
- }
146
- didEncounterError(error, _fetchRequest, _fetchResponse, _context) {
147
- throw error;
148
- }
149
- parseBody(fetchResponse, _fetchRequest, _context) {
150
- const contentType = fetchResponse.headers.get('Content-Type');
151
- if (contentType && contentType.startsWith('application/json')) {
152
- return fetchResponse.json();
153
- }
154
- else {
155
- return fetchResponse.text();
156
- }
157
- }
158
- async errorFromResponse(response) {
159
- const body = await this.parseBody(response);
160
- const extensions = {
161
- response: {
162
- url: response.url,
163
- status: response.status,
164
- statusText: response.statusText,
165
- body,
166
- },
167
- };
168
- if (response.status === 401) {
169
- extensions.code = 'UNAUTHENTICATED';
170
- }
171
- else if (response.status === 403) {
172
- extensions.code = 'FORBIDDEN';
173
- }
174
- return new graphql_1.GraphQLError(`${response.status}: ${response.statusText}`, {
175
- extensions,
176
- });
177
- }
178
- }
179
- exports.RemoteGraphQLDataSource = RemoteGraphQLDataSource;
180
- //# sourceMappingURL=RemoteGraphQLDataSource.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RemoteGraphQLDataSource.js","sourceRoot":"","sources":["../../src/datasources/RemoteGraphQLDataSource.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export { LocalGraphQLDataSource } from './LocalGraphQLDataSource';
2
- export { RemoteGraphQLDataSource } from './RemoteGraphQLDataSource';
3
- export { GraphQLDataSource, GraphQLDataSourceProcessOptions } from './types';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/datasources/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,+BAA+B,EAAE,MAAM,SAAS,CAAC"}
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RemoteGraphQLDataSource = exports.LocalGraphQLDataSource = void 0;
4
- var LocalGraphQLDataSource_1 = require("./LocalGraphQLDataSource");
5
- Object.defineProperty(exports, "LocalGraphQLDataSource", { enumerable: true, get: function () { return LocalGraphQLDataSource_1.LocalGraphQLDataSource; } });
6
- var RemoteGraphQLDataSource_1 = require("./RemoteGraphQLDataSource");
7
- Object.defineProperty(exports, "RemoteGraphQLDataSource", { enumerable: true, get: function () { return RemoteGraphQLDataSource_1.RemoteGraphQLDataSource; } });
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/datasources/index.ts"],"names":[],"mappings":";;;AAAA,mEAAkE;AAAzD,gIAAA,sBAAsB,OAAA;AAC/B,qEAAoE;AAA3D,kIAAA,uBAAuB,OAAA"}
@@ -1,2 +0,0 @@
1
- export declare function parseCacheControlHeader(header: string | null | undefined): Record<string, string | true>;
2
- //# sourceMappingURL=parseCacheControlHeader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parseCacheControlHeader.d.ts","sourceRoot":"","sources":["../../src/datasources/parseCacheControlHeader.ts"],"names":[],"mappings":"AA6BA,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAChC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAW/B"}
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseCacheControlHeader = void 0;
4
- function parseCacheControlHeader(header) {
5
- const cc = {};
6
- if (!header)
7
- return cc;
8
- const parts = header.trim().split(/\s*,\s*/);
9
- for (const part of parts) {
10
- const [k, v] = part.split(/\s*=\s*/, 2);
11
- cc[k] = v === undefined ? true : v.replace(/^"|"$/g, '');
12
- }
13
- return cc;
14
- }
15
- exports.parseCacheControlHeader = parseCacheControlHeader;
16
- //# sourceMappingURL=parseCacheControlHeader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parseCacheControlHeader.js","sourceRoot":"","sources":["../../src/datasources/parseCacheControlHeader.ts"],"names":[],"mappings":";;;AA6BA,SAAgB,uBAAuB,CACrC,MAAiC;IAEjC,MAAM,EAAE,GAAkC,EAAE,CAAC;IAC7C,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAEvB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACxC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;KAC1D;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAbD,0DAaC"}
@@ -1,23 +0,0 @@
1
- import { ResponsePath } from '@apollo/query-planner';
2
- import { GatewayGraphQLResponse, GatewayGraphQLRequestContext } from '@apollo/server-gateway-interface';
3
- export interface GraphQLDataSource<TContext extends Record<string, any> = Record<string, any>> {
4
- process(options: GraphQLDataSourceProcessOptions<TContext>): Promise<GatewayGraphQLResponse>;
5
- }
6
- export declare enum GraphQLDataSourceRequestKind {
7
- INCOMING_OPERATION = "incoming operation",
8
- HEALTH_CHECK = "health check",
9
- LOADING_SCHEMA = "loading schema"
10
- }
11
- export type GraphQLDataSourceProcessOptions<TContext extends Record<string, any> = Record<string, any>> = {
12
- request: GatewayGraphQLRequestContext<TContext>['request'];
13
- } & ({
14
- kind: GraphQLDataSourceRequestKind.INCOMING_OPERATION;
15
- incomingRequestContext: GatewayGraphQLRequestContext<TContext>;
16
- context: GatewayGraphQLRequestContext<TContext>['context'];
17
- document?: GatewayGraphQLRequestContext<TContext>['document'];
18
- pathInIncomingRequest?: ResponsePath;
19
- } | {
20
- kind: GraphQLDataSourceRequestKind.HEALTH_CHECK | GraphQLDataSourceRequestKind.LOADING_SCHEMA;
21
- context: Record<string, any>;
22
- });
23
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/datasources/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AAExG,MAAM,WAAW,iBAAiB,CAChC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAE1D,OAAO,CACL,OAAO,EAAE,+BAA+B,CAAC,QAAQ,CAAC,GACjD,OAAO,CAAC,sBAAsB,CAAC,CAAC;CACpC;AAED,oBAAY,4BAA4B;IACtC,kBAAkB,uBAAuB;IACzC,YAAY,iBAAiB;IAC7B,cAAc,mBAAmB;CAClC;AAED,MAAM,MAAM,+BAA+B,CACzC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IACxD;IAIF,OAAO,EAAE,4BAA4B,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC;CAC5D,GAAG,CACA;IACE,IAAI,EAAE,4BAA4B,CAAC,kBAAkB,CAAC;IAMtD,sBAAsB,EAAE,4BAA4B,CAAC,QAAQ,CAAC,CAAC;IAS/D,OAAO,EAAE,4BAA4B,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC;IAQ3D,QAAQ,CAAC,EAAE,4BAA4B,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC;IAM9D,qBAAqB,CAAC,EAAE,YAAY,CAAC;CACtC,GACD;IACE,IAAI,EACA,4BAA4B,CAAC,YAAY,GACzC,4BAA4B,CAAC,cAAc,CAAC;IAIhD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B,CACJ,CAAC"}
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GraphQLDataSourceRequestKind = void 0;
4
- var GraphQLDataSourceRequestKind;
5
- (function (GraphQLDataSourceRequestKind) {
6
- GraphQLDataSourceRequestKind["INCOMING_OPERATION"] = "incoming operation";
7
- GraphQLDataSourceRequestKind["HEALTH_CHECK"] = "health check";
8
- GraphQLDataSourceRequestKind["LOADING_SCHEMA"] = "loading schema";
9
- })(GraphQLDataSourceRequestKind = exports.GraphQLDataSourceRequestKind || (exports.GraphQLDataSourceRequestKind = {}));
10
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/datasources/types.ts"],"names":[],"mappings":";;;AAWA,IAAY,4BAIX;AAJD,WAAY,4BAA4B;IACtC,yEAAyC,CAAA;IACzC,6DAA6B,CAAA;IAC7B,iEAAiC,CAAA;AACnC,CAAC,EAJW,4BAA4B,GAA5B,oCAA4B,KAA5B,oCAA4B,QAIvC"}
@@ -1,15 +0,0 @@
1
- import { GraphQLFieldResolver, GraphQLSchema } from 'graphql';
2
- import { GraphQLDataSource } from './datasources/types';
3
- import { OperationContext } from './operationContext';
4
- import { QueryPlan, ResponsePath } from '@apollo/query-planner';
5
- import { Schema } from '@apollo/federation-internals';
6
- import { GatewayGraphQLRequestContext, GatewayExecutionResult } from '@apollo/server-gateway-interface';
7
- export type ServiceMap = {
8
- [serviceName: string]: GraphQLDataSource;
9
- };
10
- type ResultMap = Record<string, any>;
11
- export declare function executeQueryPlan(queryPlan: QueryPlan, serviceMap: ServiceMap, requestContext: GatewayGraphQLRequestContext, operationContext: OperationContext, supergraphSchema: GraphQLSchema, apiSchema: Schema): Promise<GatewayExecutionResult>;
12
- export declare function generateHydratedPaths(parent: ResponsePath, path: ResponsePath, data: ResultMap | null, result: ResponsePath[]): void;
13
- export declare const defaultFieldResolverWithAliasSupport: GraphQLFieldResolver<any, any>;
14
- export {};
15
- //# sourceMappingURL=executeQueryPlan.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"executeQueryPlan.d.ts","sourceRoot":"","sources":["../src/executeQueryPlan.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,oBAAoB,EAEpB,aAAa,EASd,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,iBAAiB,EAAgC,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAGL,SAAS,EACT,YAAY,EAKb,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EAAmF,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACvI,OAAO,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAIxG,MAAM,MAAM,UAAU,GAAG;IACvB,CAAC,WAAW,EAAE,MAAM,GAAG,iBAAiB,CAAC;CAC1C,CAAC;AAEF,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAsFrC,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,4BAA4B,EAC5C,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,aAAa,EAC/B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,sBAAsB,CAAC,CA8JjC;AA4ZD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,SAAS,GAAG,IAAI,EACtB,MAAM,EAAE,YAAY,EAAE,QAmCvB;AAuID,eAAO,MAAM,oCAAoC,EAAE,oBAAoB,CACrE,GAAG,EACH,GAAG,CAYJ,CAAC"}