@apollo/gateway 2.0.0-alpha.0 → 2.0.0-alpha.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 (154) hide show
  1. package/README.md +1 -1
  2. package/dist/__generated__/graphqlTypes.d.ts +13 -11
  3. package/dist/__generated__/graphqlTypes.d.ts.map +1 -1
  4. package/dist/__generated__/graphqlTypes.js.map +1 -1
  5. package/dist/config.d.ts +45 -24
  6. package/dist/config.d.ts.map +1 -1
  7. package/dist/config.js +30 -31
  8. package/dist/config.js.map +1 -1
  9. package/dist/datasources/LocalGraphQLDataSource.js.map +1 -1
  10. package/dist/datasources/RemoteGraphQLDataSource.d.ts.map +1 -1
  11. package/dist/datasources/RemoteGraphQLDataSource.js +4 -1
  12. package/dist/datasources/RemoteGraphQLDataSource.js.map +1 -1
  13. package/dist/datasources/types.d.ts +1 -1
  14. package/dist/datasources/types.d.ts.map +1 -1
  15. package/dist/executeQueryPlan.d.ts.map +1 -1
  16. package/dist/executeQueryPlan.js +6 -6
  17. package/dist/executeQueryPlan.js.map +1 -1
  18. package/dist/index.d.ts +36 -23
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +197 -297
  21. package/dist/index.js.map +1 -1
  22. package/dist/operationContext.js +0 -1
  23. package/dist/operationContext.js.map +1 -1
  24. package/dist/schema-helper/addResolversToSchema.d.ts +4 -0
  25. package/dist/schema-helper/addResolversToSchema.d.ts.map +1 -0
  26. package/dist/schema-helper/addResolversToSchema.js +62 -0
  27. package/dist/schema-helper/addResolversToSchema.js.map +1 -0
  28. package/dist/schema-helper/error.d.ts +6 -0
  29. package/dist/schema-helper/error.d.ts.map +1 -0
  30. package/dist/schema-helper/error.js +14 -0
  31. package/dist/schema-helper/error.js.map +1 -0
  32. package/dist/schema-helper/index.d.ts +4 -0
  33. package/dist/schema-helper/index.d.ts.map +1 -0
  34. package/dist/schema-helper/index.js +16 -0
  35. package/dist/schema-helper/index.js.map +1 -0
  36. package/dist/schema-helper/resolverMap.d.ts +16 -0
  37. package/dist/schema-helper/resolverMap.d.ts.map +1 -0
  38. package/dist/schema-helper/resolverMap.js +3 -0
  39. package/dist/schema-helper/resolverMap.js.map +1 -0
  40. package/dist/supergraphManagers/IntrospectAndCompose/index.d.ts +31 -0
  41. package/dist/supergraphManagers/IntrospectAndCompose/index.d.ts.map +1 -0
  42. package/dist/supergraphManagers/IntrospectAndCompose/index.js +112 -0
  43. package/dist/supergraphManagers/IntrospectAndCompose/index.js.map +1 -0
  44. package/dist/supergraphManagers/IntrospectAndCompose/loadServicesFromRemoteEndpoint.d.ts +12 -0
  45. package/dist/supergraphManagers/IntrospectAndCompose/loadServicesFromRemoteEndpoint.d.ts.map +1 -0
  46. package/dist/{loadServicesFromRemoteEndpoint.js → supergraphManagers/IntrospectAndCompose/loadServicesFromRemoteEndpoint.js} +6 -6
  47. package/dist/supergraphManagers/IntrospectAndCompose/loadServicesFromRemoteEndpoint.js.map +1 -0
  48. package/dist/supergraphManagers/LegacyFetcher/index.d.ts +33 -0
  49. package/dist/supergraphManagers/LegacyFetcher/index.d.ts.map +1 -0
  50. package/dist/supergraphManagers/LegacyFetcher/index.js +149 -0
  51. package/dist/supergraphManagers/LegacyFetcher/index.js.map +1 -0
  52. package/dist/supergraphManagers/LocalCompose/index.d.ts +19 -0
  53. package/dist/supergraphManagers/LocalCompose/index.d.ts.map +1 -0
  54. package/dist/supergraphManagers/LocalCompose/index.js +55 -0
  55. package/dist/supergraphManagers/LocalCompose/index.js.map +1 -0
  56. package/dist/supergraphManagers/UplinkFetcher/index.d.ts +32 -0
  57. package/dist/supergraphManagers/UplinkFetcher/index.d.ts.map +1 -0
  58. package/dist/supergraphManagers/UplinkFetcher/index.js +96 -0
  59. package/dist/supergraphManagers/UplinkFetcher/index.js.map +1 -0
  60. package/dist/supergraphManagers/UplinkFetcher/loadSupergraphSdlFromStorage.d.ts +21 -0
  61. package/dist/supergraphManagers/UplinkFetcher/loadSupergraphSdlFromStorage.d.ts.map +1 -0
  62. package/dist/{loadSupergraphSdlFromStorage.js → supergraphManagers/UplinkFetcher/loadSupergraphSdlFromStorage.js} +41 -10
  63. package/dist/supergraphManagers/UplinkFetcher/loadSupergraphSdlFromStorage.js.map +1 -0
  64. package/dist/supergraphManagers/UplinkFetcher/outOfBandReporter.d.ts +13 -0
  65. package/dist/supergraphManagers/UplinkFetcher/outOfBandReporter.d.ts.map +1 -0
  66. package/dist/supergraphManagers/UplinkFetcher/outOfBandReporter.js +85 -0
  67. package/dist/supergraphManagers/UplinkFetcher/outOfBandReporter.js.map +1 -0
  68. package/dist/supergraphManagers/index.d.ts +5 -0
  69. package/dist/supergraphManagers/index.d.ts.map +1 -0
  70. package/dist/supergraphManagers/index.js +12 -0
  71. package/dist/supergraphManagers/index.js.map +1 -0
  72. package/dist/utilities/array.js +1 -1
  73. package/dist/utilities/array.js.map +1 -1
  74. package/dist/utilities/createHash.d.ts +2 -0
  75. package/dist/utilities/createHash.d.ts.map +1 -0
  76. package/dist/utilities/createHash.js +15 -0
  77. package/dist/utilities/createHash.js.map +1 -0
  78. package/dist/utilities/isNodeLike.d.ts +3 -0
  79. package/dist/utilities/isNodeLike.d.ts.map +1 -0
  80. package/dist/utilities/isNodeLike.js +8 -0
  81. package/dist/utilities/isNodeLike.js.map +1 -0
  82. package/package.json +9 -9
  83. package/src/__generated__/graphqlTypes.ts +13 -11
  84. package/src/__mocks__/make-fetch-happen-fetcher.ts +3 -1
  85. package/src/__tests__/buildQueryPlan.test.ts +1 -1
  86. package/src/__tests__/executeQueryPlan.test.ts +1171 -77
  87. package/src/__tests__/execution-utils.ts +5 -7
  88. package/src/__tests__/gateway/buildService.test.ts +3 -3
  89. package/src/__tests__/gateway/endToEnd.test.ts +1 -1
  90. package/src/__tests__/gateway/executor.test.ts +3 -1
  91. package/src/__tests__/gateway/lifecycle-hooks.test.ts +59 -121
  92. package/src/__tests__/gateway/opentelemetry.test.ts +8 -3
  93. package/src/__tests__/gateway/queryPlanCache.test.ts +25 -9
  94. package/src/__tests__/gateway/reporting.test.ts +42 -13
  95. package/src/__tests__/gateway/supergraphSdl.test.ts +397 -0
  96. package/src/__tests__/integration/aliases.test.ts +9 -3
  97. package/src/__tests__/integration/configuration.test.ts +140 -21
  98. package/src/__tests__/integration/logger.test.ts +2 -2
  99. package/src/__tests__/integration/networkRequests.test.ts +126 -149
  100. package/src/__tests__/integration/nockMocks.ts +57 -16
  101. package/src/__tests__/nockAssertions.ts +20 -0
  102. package/src/config.ts +153 -77
  103. package/src/core/__tests__/core.test.ts +6 -6
  104. package/src/datasources/LocalGraphQLDataSource.ts +1 -1
  105. package/src/datasources/RemoteGraphQLDataSource.ts +8 -2
  106. package/src/datasources/__tests__/LocalGraphQLDataSource.test.ts +1 -1
  107. package/src/datasources/__tests__/RemoteGraphQLDataSource.test.ts +4 -4
  108. package/src/datasources/types.ts +1 -1
  109. package/src/executeQueryPlan.ts +18 -9
  110. package/src/index.ts +323 -481
  111. package/src/make-fetch-happen.d.ts +1 -1
  112. package/src/operationContext.ts +2 -2
  113. package/src/schema-helper/addResolversToSchema.ts +83 -0
  114. package/src/schema-helper/error.ts +11 -0
  115. package/src/schema-helper/index.ts +3 -0
  116. package/src/schema-helper/resolverMap.ts +23 -0
  117. package/src/supergraphManagers/IntrospectAndCompose/__tests__/IntrospectAndCompose.test.ts +370 -0
  118. package/src/{__tests__ → supergraphManagers/IntrospectAndCompose/__tests__}/loadServicesFromRemoteEndpoint.test.ts +7 -7
  119. package/src/supergraphManagers/IntrospectAndCompose/__tests__/tsconfig.json +8 -0
  120. package/src/supergraphManagers/IntrospectAndCompose/index.ts +160 -0
  121. package/src/{loadServicesFromRemoteEndpoint.ts → supergraphManagers/IntrospectAndCompose/loadServicesFromRemoteEndpoint.ts} +7 -7
  122. package/src/supergraphManagers/LegacyFetcher/index.ts +226 -0
  123. package/src/supergraphManagers/LocalCompose/index.ts +79 -0
  124. package/src/supergraphManagers/UplinkFetcher/__tests__/loadSupergraphSdlFromStorage.test.ts +343 -0
  125. package/src/supergraphManagers/UplinkFetcher/__tests__/tsconfig.json +8 -0
  126. package/src/supergraphManagers/UplinkFetcher/index.ts +128 -0
  127. package/src/{loadSupergraphSdlFromStorage.ts → supergraphManagers/UplinkFetcher/loadSupergraphSdlFromStorage.ts} +63 -14
  128. package/src/supergraphManagers/UplinkFetcher/outOfBandReporter.ts +126 -0
  129. package/src/supergraphManagers/index.ts +4 -0
  130. package/src/utilities/__tests__/cleanErrorOfInaccessibleElements.test.ts +13 -10
  131. package/src/utilities/array.ts +1 -1
  132. package/src/utilities/createHash.ts +10 -0
  133. package/src/utilities/isNodeLike.ts +11 -0
  134. package/CHANGELOG.md +0 -452
  135. package/dist/legacyLoadServicesFromStorage.d.ts +0 -20
  136. package/dist/legacyLoadServicesFromStorage.d.ts.map +0 -1
  137. package/dist/legacyLoadServicesFromStorage.js +0 -62
  138. package/dist/legacyLoadServicesFromStorage.js.map +0 -1
  139. package/dist/loadServicesFromRemoteEndpoint.d.ts +0 -13
  140. package/dist/loadServicesFromRemoteEndpoint.d.ts.map +0 -1
  141. package/dist/loadServicesFromRemoteEndpoint.js.map +0 -1
  142. package/dist/loadSupergraphSdlFromStorage.d.ts +0 -12
  143. package/dist/loadSupergraphSdlFromStorage.d.ts.map +0 -1
  144. package/dist/loadSupergraphSdlFromStorage.js.map +0 -1
  145. package/dist/outOfBandReporter.d.ts +0 -15
  146. package/dist/outOfBandReporter.d.ts.map +0 -1
  147. package/dist/outOfBandReporter.js +0 -88
  148. package/dist/outOfBandReporter.js.map +0 -1
  149. package/src/__tests__/gateway/composedSdl.test.ts +0 -44
  150. package/src/__tests__/integration/legacyNetworkRequests.test.ts +0 -279
  151. package/src/__tests__/integration/legacyNockMocks.ts +0 -113
  152. package/src/__tests__/loadSupergraphSdlFromStorage.test.ts +0 -664
  153. package/src/legacyLoadServicesFromStorage.ts +0 -170
  154. package/src/outOfBandReporter.ts +0 -128
@@ -0,0 +1,149 @@
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.LegacyFetcher = void 0;
7
+ const resolvable_1 = __importDefault(require("@josephg/resolvable"));
8
+ const config_1 = require("../../config");
9
+ const composition_1 = require("@apollo/composition");
10
+ class LegacyFetcher {
11
+ constructor(options) {
12
+ this.timerRef = null;
13
+ this.config = options;
14
+ this.state = { phase: 'initialized' };
15
+ this.issueDeprecationWarnings();
16
+ }
17
+ issueDeprecationWarnings() {
18
+ var _a, _b;
19
+ if ('experimental_updateSupergraphSdl' in this.config.gatewayConfig) {
20
+ (_a = this.config.logger) === null || _a === void 0 ? void 0 : _a.warn('The `experimental_updateSupergraphSdl` option is deprecated and will be removed in a future version of `@apollo/gateway`. Please migrate to the function form of the `supergraphSdl` configuration option.');
21
+ }
22
+ if ('experimental_updateServiceDefinitions' in this.config.gatewayConfig) {
23
+ (_b = this.config.logger) === null || _b === void 0 ? void 0 : _b.warn('The `experimental_updateServiceDefinitions` option is deprecated and will be removed in a future version of `@apollo/gateway`. Please migrate to the function form of the `supergraphSdl` configuration option.');
24
+ }
25
+ }
26
+ async initialize({ update, healthCheck, getDataSource, }) {
27
+ this.update = update;
28
+ this.getDataSource = getDataSource;
29
+ if (this.config.subgraphHealthCheck) {
30
+ this.healthCheck = healthCheck;
31
+ }
32
+ let initialSupergraphSdl = null;
33
+ try {
34
+ initialSupergraphSdl = await this.updateSupergraphSdl();
35
+ }
36
+ catch (e) {
37
+ this.logUpdateFailure(e);
38
+ throw e;
39
+ }
40
+ if (this.config.pollIntervalInMs) {
41
+ this.beginPolling();
42
+ }
43
+ return {
44
+ supergraphSdl: initialSupergraphSdl,
45
+ cleanup: async () => {
46
+ if (this.state.phase === 'polling') {
47
+ await this.state.pollingPromise;
48
+ }
49
+ this.state = { phase: 'stopped' };
50
+ if (this.timerRef) {
51
+ clearTimeout(this.timerRef);
52
+ this.timerRef = null;
53
+ }
54
+ },
55
+ };
56
+ }
57
+ async updateSupergraphSdl() {
58
+ var _a, _b;
59
+ const result = await this.config.updateServiceDefinitions(this.config.gatewayConfig);
60
+ if ((0, config_1.isSupergraphSdlUpdate)(result)) {
61
+ if (this.compositionId === result.id)
62
+ return null;
63
+ await ((_a = this.healthCheck) === null || _a === void 0 ? void 0 : _a.call(this, result.supergraphSdl));
64
+ this.compositionId = result.id;
65
+ return result.supergraphSdl;
66
+ }
67
+ else if ((0, config_1.isServiceDefinitionUpdate)(result)) {
68
+ const supergraphSdl = this.updateByComposition(result);
69
+ if (!supergraphSdl)
70
+ return null;
71
+ await ((_b = this.healthCheck) === null || _b === void 0 ? void 0 : _b.call(this, supergraphSdl));
72
+ return supergraphSdl;
73
+ }
74
+ else {
75
+ throw new Error('Programming error: unexpected result type from `updateServiceDefinitions`');
76
+ }
77
+ }
78
+ updateByComposition(result) {
79
+ var _a, _b;
80
+ if (!result.serviceDefinitions ||
81
+ JSON.stringify(this.serviceDefinitions) ===
82
+ JSON.stringify(result.serviceDefinitions)) {
83
+ (_a = this.config.logger) === null || _a === void 0 ? void 0 : _a.debug('No change in service definitions since last check.');
84
+ return null;
85
+ }
86
+ if (this.serviceDefinitions) {
87
+ (_b = this.config.logger) === null || _b === void 0 ? void 0 : _b.info('New service definitions were found.');
88
+ }
89
+ this.serviceDefinitions = result.serviceDefinitions;
90
+ const supergraphSdl = this.createSupergraphFromServiceList(result.serviceDefinitions);
91
+ if (!supergraphSdl) {
92
+ throw new Error("A valid schema couldn't be composed. Falling back to previous schema.");
93
+ }
94
+ else {
95
+ return supergraphSdl;
96
+ }
97
+ }
98
+ createSupergraphFromServiceList(serviceList) {
99
+ var _a, _b, _c;
100
+ (_a = this.config.logger) === null || _a === void 0 ? void 0 : _a.debug(`Composing schema from service list: \n${serviceList
101
+ .map(({ name, url }) => ` ${url || 'local'}: ${name}`)
102
+ .join('\n')}`);
103
+ const compositionResult = (0, composition_1.composeServices)(serviceList);
104
+ if (compositionResult.errors) {
105
+ const { errors } = compositionResult;
106
+ throw Error("A valid schema couldn't be composed. The following composition errors were found:\n" +
107
+ errors.map((e) => '\t' + e.message).join('\n'));
108
+ }
109
+ else {
110
+ const { supergraphSdl } = compositionResult;
111
+ for (const service of serviceList) {
112
+ (_b = this.getDataSource) === null || _b === void 0 ? void 0 : _b.call(this, service);
113
+ }
114
+ (_c = this.config.logger) === null || _c === void 0 ? void 0 : _c.debug('Schema loaded and ready for execution');
115
+ return supergraphSdl;
116
+ }
117
+ }
118
+ beginPolling() {
119
+ this.state = { phase: 'polling' };
120
+ this.poll();
121
+ }
122
+ poll() {
123
+ this.timerRef = setTimeout(async () => {
124
+ var _a;
125
+ if (this.state.phase === 'polling') {
126
+ const pollingPromise = (0, resolvable_1.default)();
127
+ this.state.pollingPromise = pollingPromise;
128
+ try {
129
+ const maybeNewSupergraphSdl = await this.updateSupergraphSdl();
130
+ if (maybeNewSupergraphSdl) {
131
+ (_a = this.update) === null || _a === void 0 ? void 0 : _a.call(this, maybeNewSupergraphSdl);
132
+ }
133
+ }
134
+ catch (e) {
135
+ this.logUpdateFailure(e);
136
+ }
137
+ pollingPromise.resolve();
138
+ }
139
+ this.poll();
140
+ }, this.config.pollIntervalInMs);
141
+ }
142
+ logUpdateFailure(e) {
143
+ var _a, _b;
144
+ (_a = this.config.logger) === null || _a === void 0 ? void 0 : _a.error('UplinkFetcher failed to update supergraph with the following error: ' +
145
+ ((_b = e.message) !== null && _b !== void 0 ? _b : e));
146
+ }
147
+ }
148
+ exports.LegacyFetcher = LegacyFetcher;
149
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/supergraphManagers/LegacyFetcher/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { Logger } from 'apollo-server-types';
2
+ import { SupergraphSdlHookOptions, SupergraphManager } from '../../config';
3
+ import { ServiceDefinition } from '@apollo/federation-internals';
4
+ export interface LocalComposeOptions {
5
+ logger?: Logger;
6
+ localServiceList: ServiceDefinition[];
7
+ }
8
+ export declare class LocalCompose implements SupergraphManager {
9
+ private config;
10
+ private getDataSource?;
11
+ constructor(options: LocalComposeOptions);
12
+ private issueDeprecationWarnings;
13
+ initialize({ getDataSource }: SupergraphSdlHookOptions): Promise<{
14
+ supergraphSdl: string;
15
+ }>;
16
+ private createSupergraphFromServiceList;
17
+ private logUpdateFailure;
18
+ }
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/supergraphManagers/LocalCompose/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAEL,wBAAwB,EACxB,iBAAiB,EAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,iBAAiB,EAAE,CAAC;CACvC;AAED,qBAAa,YAAa,YAAW,iBAAiB;IACpD,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,aAAa,CAAC,CAAwB;gBAElC,OAAO,EAAE,mBAAmB;IAKxC,OAAO,CAAC,wBAAwB;IAMnB,UAAU,CAAC,EAAE,aAAa,EAAE,EAAE,wBAAwB;;;IAgBnE,OAAO,CAAC,+BAA+B;IA0BvC,OAAO,CAAC,gBAAgB;CAMzB"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LocalCompose = void 0;
4
+ const composition_1 = require("@apollo/composition");
5
+ class LocalCompose {
6
+ constructor(options) {
7
+ this.config = options;
8
+ this.issueDeprecationWarnings();
9
+ }
10
+ issueDeprecationWarnings() {
11
+ var _a;
12
+ (_a = this.config.logger) === null || _a === void 0 ? void 0 : _a.warn('The `localServiceList` option is deprecated and will be removed in a future version of `@apollo/gateway`. Please migrate to the `LocalCompose` supergraph manager exported by `@apollo/gateway`.');
13
+ }
14
+ async initialize({ getDataSource }) {
15
+ this.getDataSource = getDataSource;
16
+ let supergraphSdl = null;
17
+ try {
18
+ supergraphSdl = this.createSupergraphFromServiceList(this.config.localServiceList);
19
+ }
20
+ catch (e) {
21
+ this.logUpdateFailure(e);
22
+ throw e;
23
+ }
24
+ return {
25
+ supergraphSdl,
26
+ };
27
+ }
28
+ createSupergraphFromServiceList(serviceList) {
29
+ var _a, _b, _c;
30
+ (_a = this.config.logger) === null || _a === void 0 ? void 0 : _a.debug(`Composing schema from service list: \n${serviceList
31
+ .map(({ name, url }) => ` ${url || 'local'}: ${name}`)
32
+ .join('\n')}`);
33
+ const compositionResult = (0, composition_1.composeServices)(serviceList);
34
+ const errors = compositionResult.errors;
35
+ if (errors) {
36
+ throw Error("A valid schema couldn't be composed. The following composition errors were found:\n" +
37
+ errors.map((e) => '\t' + e.message).join('\n'));
38
+ }
39
+ else {
40
+ const { supergraphSdl } = compositionResult;
41
+ for (const service of serviceList) {
42
+ (_b = this.getDataSource) === null || _b === void 0 ? void 0 : _b.call(this, service);
43
+ }
44
+ (_c = this.config.logger) === null || _c === void 0 ? void 0 : _c.debug('Schema loaded and ready for execution');
45
+ return supergraphSdl;
46
+ }
47
+ }
48
+ logUpdateFailure(e) {
49
+ var _a, _b;
50
+ (_a = this.config.logger) === null || _a === void 0 ? void 0 : _a.error('UplinkFetcher failed to update supergraph with the following error: ' +
51
+ ((_b = e.message) !== null && _b !== void 0 ? _b : e));
52
+ }
53
+ }
54
+ exports.LocalCompose = LocalCompose;
55
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/supergraphManagers/LocalCompose/index.ts"],"names":[],"mappings":";;;AAEA,qDAAsD;AAatD,MAAa,YAAY;IAIvB,YAAY,OAA4B;QACtC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QACtB,IAAI,CAAC,wBAAwB,EAAE,CAAC;IAClC,CAAC;IAEO,wBAAwB;;QAC9B,MAAA,IAAI,CAAC,MAAM,CAAC,MAAM,0CAAE,IAAI,CACtB,kMAAkM,CACnM,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,EAAE,aAAa,EAA4B;QACjE,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,aAAa,GAAkB,IAAI,CAAC;QACxC,IAAI;YACF,aAAa,GAAG,IAAI,CAAC,+BAA+B,CAClD,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAC7B,CAAC;SACH;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,CAAC,CAAC;SACT;QACD,OAAO;YACL,aAAa;SACd,CAAC;IACJ,CAAC;IAEO,+BAA+B,CAAC,WAAgC;;QACtE,MAAA,IAAI,CAAC,MAAM,CAAC,MAAM,0CAAE,KAAK,CACvB,yCAAyC,WAAW;aACjD,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;aACtD,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;QAEF,MAAM,iBAAiB,GAAG,IAAA,6BAAe,EAAC,WAAW,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC;QACxC,IAAI,MAAM,EAAE;YACV,MAAM,KAAK,CACT,qFAAqF;gBACnF,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACjD,CAAC;SACH;aAAM;YACL,MAAM,EAAE,aAAa,EAAE,GAAG,iBAAiB,CAAC;YAC5C,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE;gBACjC,MAAA,IAAI,CAAC,aAAa,+CAAlB,IAAI,EAAiB,OAAO,CAAC,CAAC;aAC/B;YAED,MAAA,IAAI,CAAC,MAAM,CAAC,MAAM,0CAAE,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAEnE,OAAO,aAAa,CAAC;SACtB;IACH,CAAC;IAEO,gBAAgB,CAAC,CAAM;;QAC7B,MAAA,IAAI,CAAC,MAAM,CAAC,MAAM,0CAAE,KAAK,CACvB,sEAAsE;YACpE,CAAC,MAAA,CAAC,CAAC,OAAO,mCAAI,CAAC,CAAC,CACnB,CAAC;IACJ,CAAC;CACF;AA/DD,oCA+DC"}
@@ -0,0 +1,32 @@
1
+ import { fetch } from 'apollo-server-env';
2
+ import { Logger } from 'apollo-server-types';
3
+ import { SupergraphManager, SupergraphSdlHookOptions } from '../../config';
4
+ export interface UplinkFetcherOptions {
5
+ pollIntervalInMs: number;
6
+ subgraphHealthCheck?: boolean;
7
+ graphRef: string;
8
+ apiKey: string;
9
+ fetcher: typeof fetch;
10
+ maxRetries: number;
11
+ uplinkEndpoints: string[];
12
+ logger?: Logger;
13
+ }
14
+ export declare class UplinkFetcher implements SupergraphManager {
15
+ private config;
16
+ private update?;
17
+ private healthCheck?;
18
+ private timerRef;
19
+ private state;
20
+ private errorReportingEndpoint;
21
+ private compositionId?;
22
+ constructor(options: UplinkFetcherOptions);
23
+ initialize({ update, healthCheck }: SupergraphSdlHookOptions): Promise<{
24
+ supergraphSdl: string;
25
+ cleanup: () => Promise<void>;
26
+ }>;
27
+ private updateSupergraphSdl;
28
+ private beginPolling;
29
+ private poll;
30
+ private logUpdateFailure;
31
+ }
32
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/supergraphManagers/UplinkFetcher/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAI3E,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,KAAK,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAOD,qBAAa,aAAc,YAAW,iBAAiB;IACrD,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,MAAM,CAAC,CAA8B;IAC7C,OAAO,CAAC,WAAW,CAAC,CAA8B;IAClD,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,sBAAsB,CACkC;IAChE,OAAO,CAAC,aAAa,CAAC,CAAS;gBAEnB,OAAO,EAAE,oBAAoB;IAK5B,UAAU,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,wBAAwB;;;;YAoC3D,mBAAmB;IAqBjC,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,IAAI;IAqBZ,OAAO,CAAC,gBAAgB;CAMzB"}
@@ -0,0 +1,96 @@
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.UplinkFetcher = void 0;
7
+ const resolvable_1 = __importDefault(require("@josephg/resolvable"));
8
+ const loadSupergraphSdlFromStorage_1 = require("./loadSupergraphSdlFromStorage");
9
+ class UplinkFetcher {
10
+ constructor(options) {
11
+ var _a;
12
+ this.timerRef = null;
13
+ this.errorReportingEndpoint = (_a = process.env.APOLLO_OUT_OF_BAND_REPORTER_ENDPOINT) !== null && _a !== void 0 ? _a : undefined;
14
+ this.config = options;
15
+ this.state = { phase: 'initialized' };
16
+ }
17
+ async initialize({ update, healthCheck }) {
18
+ this.update = update;
19
+ if (this.config.subgraphHealthCheck) {
20
+ this.healthCheck = healthCheck;
21
+ }
22
+ let initialSupergraphSdl = null;
23
+ try {
24
+ initialSupergraphSdl = await this.updateSupergraphSdl();
25
+ }
26
+ catch (e) {
27
+ this.logUpdateFailure(e);
28
+ throw e;
29
+ }
30
+ this.beginPolling();
31
+ return {
32
+ supergraphSdl: initialSupergraphSdl,
33
+ cleanup: async () => {
34
+ if (this.state.phase === 'polling') {
35
+ await this.state.pollingPromise;
36
+ }
37
+ this.state = { phase: 'stopped' };
38
+ if (this.timerRef) {
39
+ clearTimeout(this.timerRef);
40
+ this.timerRef = null;
41
+ }
42
+ },
43
+ };
44
+ }
45
+ async updateSupergraphSdl() {
46
+ var _a, _b;
47
+ const result = await (0, loadSupergraphSdlFromStorage_1.loadSupergraphSdlFromUplinks)({
48
+ graphRef: this.config.graphRef,
49
+ apiKey: this.config.apiKey,
50
+ endpoints: this.config.uplinkEndpoints,
51
+ errorReportingEndpoint: this.errorReportingEndpoint,
52
+ fetcher: this.config.fetcher,
53
+ compositionId: (_a = this.compositionId) !== null && _a !== void 0 ? _a : null,
54
+ maxRetries: this.config.maxRetries,
55
+ });
56
+ if (!result) {
57
+ return null;
58
+ }
59
+ else {
60
+ this.compositionId = result.id;
61
+ await ((_b = this.healthCheck) === null || _b === void 0 ? void 0 : _b.call(this, result.supergraphSdl));
62
+ return result.supergraphSdl;
63
+ }
64
+ }
65
+ beginPolling() {
66
+ this.state = { phase: 'polling' };
67
+ this.poll();
68
+ }
69
+ poll() {
70
+ this.timerRef = setTimeout(async () => {
71
+ var _a;
72
+ if (this.state.phase === 'polling') {
73
+ const pollingPromise = (0, resolvable_1.default)();
74
+ this.state.pollingPromise = pollingPromise;
75
+ try {
76
+ const maybeNewSupergraphSdl = await this.updateSupergraphSdl();
77
+ if (maybeNewSupergraphSdl) {
78
+ (_a = this.update) === null || _a === void 0 ? void 0 : _a.call(this, maybeNewSupergraphSdl);
79
+ }
80
+ }
81
+ catch (e) {
82
+ this.logUpdateFailure(e);
83
+ }
84
+ pollingPromise.resolve();
85
+ }
86
+ this.poll();
87
+ }, this.config.pollIntervalInMs);
88
+ }
89
+ logUpdateFailure(e) {
90
+ var _a, _b;
91
+ (_a = this.config.logger) === null || _a === void 0 ? void 0 : _a.error('UplinkFetcher failed to update supergraph with the following error: ' +
92
+ ((_b = e.message) !== null && _b !== void 0 ? _b : e));
93
+ }
94
+ }
95
+ exports.UplinkFetcher = UplinkFetcher;
96
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/supergraphManagers/UplinkFetcher/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { fetch } from 'apollo-server-env';
2
+ import { SupergraphSdlUpdate } from '../../config';
3
+ export declare const SUPERGRAPH_SDL_QUERY = "#graphql\n query SupergraphSdl($apiKey: String!, $ref: String!, $ifAfterId: ID) {\n routerConfig(ref: $ref, apiKey: $apiKey, ifAfterId: $ifAfterId) {\n __typename\n ... on RouterConfigResult {\n id\n supergraphSdl: supergraphSDL\n }\n ... on FetchError {\n code\n message\n }\n }\n }\n";
4
+ export declare function loadSupergraphSdlFromUplinks({ graphRef, apiKey, endpoints, errorReportingEndpoint, fetcher, compositionId, maxRetries, }: {
5
+ graphRef: string;
6
+ apiKey: string;
7
+ endpoints: string[];
8
+ errorReportingEndpoint: string | undefined;
9
+ fetcher: typeof fetch;
10
+ compositionId: string | null;
11
+ maxRetries: number;
12
+ }): Promise<SupergraphSdlUpdate | null>;
13
+ export declare function loadSupergraphSdlFromStorage({ graphRef, apiKey, endpoint, errorReportingEndpoint, fetcher, compositionId, }: {
14
+ graphRef: string;
15
+ apiKey: string;
16
+ endpoint: string;
17
+ errorReportingEndpoint?: string;
18
+ fetcher: typeof fetch;
19
+ compositionId: string | null;
20
+ }): Promise<SupergraphSdlUpdate | null>;
21
+ //# sourceMappingURL=loadSupergraphSdlFromStorage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadSupergraphSdlFromStorage.d.ts","sourceRoot":"","sources":["../../../src/supergraphManagers/UplinkFetcher/loadSupergraphSdlFromStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAqB,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAKnD,eAAO,MAAM,oBAAoB,+VAchC,CAAC;AAsBF,wBAAsB,4BAA4B,CAAC,EACjD,QAAQ,EACR,MAAM,EACN,SAAS,EACT,sBAAsB,EACtB,OAAO,EACP,aAAa,EACb,UAAU,GACX,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,sBAAsB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,OAAO,EAAE,OAAO,KAAK,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAA;CACnB,GAAI,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAsBvC;AAED,wBAAsB,4BAA4B,CAAC,EACjD,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,sBAAsB,EACtB,OAAO,EACP,aAAa,GACd,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,OAAO,EAAE,OAAO,KAAK,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,GAAI,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAwFvC"}
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.loadSupergraphSdlFromStorage = exports.SUPERGRAPH_SDL_QUERY = void 0;
3
+ exports.loadSupergraphSdlFromStorage = exports.loadSupergraphSdlFromUplinks = exports.SUPERGRAPH_SDL_QUERY = void 0;
4
4
  const apollo_server_env_1 = require("apollo-server-env");
5
5
  const outOfBandReporter_1 = require("./outOfBandReporter");
6
6
  exports.SUPERGRAPH_SDL_QUERY = `#graphql
7
- query SupergraphSdl($apiKey: String!, $ref: String!) {
8
- routerConfig(ref: $ref, apiKey: $apiKey) {
7
+ query SupergraphSdl($apiKey: String!, $ref: String!, $ifAfterId: ID) {
8
+ routerConfig(ref: $ref, apiKey: $apiKey, ifAfterId: $ifAfterId) {
9
9
  __typename
10
10
  ... on RouterConfigResult {
11
11
  id
@@ -18,9 +18,35 @@ exports.SUPERGRAPH_SDL_QUERY = `#graphql
18
18
  }
19
19
  }
20
20
  `;
21
- const { name, version } = require('../package.json');
21
+ const { name, version } = require('../../../package.json');
22
22
  const fetchErrorMsg = "An error occurred while fetching your schema from Apollo: ";
23
- async function loadSupergraphSdlFromStorage({ graphRef, apiKey, endpoint, fetcher, }) {
23
+ let fetchCounter = 0;
24
+ async function loadSupergraphSdlFromUplinks({ graphRef, apiKey, endpoints, errorReportingEndpoint, fetcher, compositionId, maxRetries, }) {
25
+ let retries = 0;
26
+ let lastException = null;
27
+ let result = null;
28
+ while (retries++ <= maxRetries && result == null) {
29
+ try {
30
+ result = await loadSupergraphSdlFromStorage({
31
+ graphRef,
32
+ apiKey,
33
+ endpoint: endpoints[fetchCounter++ % endpoints.length],
34
+ errorReportingEndpoint,
35
+ fetcher,
36
+ compositionId
37
+ });
38
+ }
39
+ catch (e) {
40
+ lastException = e;
41
+ }
42
+ }
43
+ if (result === null && lastException !== null) {
44
+ throw lastException;
45
+ }
46
+ return result;
47
+ }
48
+ exports.loadSupergraphSdlFromUplinks = loadSupergraphSdlFromUplinks;
49
+ async function loadSupergraphSdlFromStorage({ graphRef, apiKey, endpoint, errorReportingEndpoint, fetcher, compositionId, }) {
24
50
  var _a, _b;
25
51
  let result;
26
52
  const requestDetails = {
@@ -30,6 +56,7 @@ async function loadSupergraphSdlFromStorage({ graphRef, apiKey, endpoint, fetche
30
56
  variables: {
31
57
  ref: graphRef,
32
58
  apiKey,
59
+ ifAfterId: compositionId,
33
60
  },
34
61
  }),
35
62
  headers: {
@@ -40,19 +67,19 @@ async function loadSupergraphSdlFromStorage({ graphRef, apiKey, endpoint, fetche
40
67
  },
41
68
  };
42
69
  const request = new apollo_server_env_1.Request(endpoint, requestDetails);
43
- const OOBReport = new outOfBandReporter_1.OutOfBandReporter();
44
70
  const startTime = new Date();
45
71
  try {
46
72
  result = await fetcher(endpoint, requestDetails);
47
73
  }
48
74
  catch (e) {
49
75
  const endTime = new Date();
50
- await OOBReport.submitOutOfBandReportIfConfigured({
76
+ await (0, outOfBandReporter_1.submitOutOfBandReportIfConfigured)({
51
77
  error: e,
52
78
  request,
79
+ endpoint: errorReportingEndpoint,
53
80
  startedAt: startTime,
54
81
  endedAt: endTime,
55
- fetcher
82
+ fetcher,
56
83
  });
57
84
  throw new Error(fetchErrorMsg + ((_a = e.message) !== null && _a !== void 0 ? _a : e));
58
85
  }
@@ -70,13 +97,14 @@ async function loadSupergraphSdlFromStorage({ graphRef, apiKey, endpoint, fetche
70
97
  }
71
98
  }
72
99
  else {
73
- await OOBReport.submitOutOfBandReportIfConfigured({
100
+ await (0, outOfBandReporter_1.submitOutOfBandReportIfConfigured)({
74
101
  error: new Error(fetchErrorMsg + result.status + ' ' + result.statusText),
75
102
  request,
103
+ endpoint: errorReportingEndpoint,
76
104
  response: result,
77
105
  startedAt: startTime,
78
106
  endedAt: endTime,
79
- fetcher
107
+ fetcher,
80
108
  });
81
109
  throw new Error(fetchErrorMsg + result.status + ' ' + result.statusText);
82
110
  }
@@ -89,6 +117,9 @@ async function loadSupergraphSdlFromStorage({ graphRef, apiKey, endpoint, fetche
89
117
  const { code, message } = routerConfig;
90
118
  throw new Error(`${code}: ${message}`);
91
119
  }
120
+ else if (routerConfig.__typename === 'Unchanged') {
121
+ return null;
122
+ }
92
123
  else {
93
124
  throw new Error('Programming error: unhandled response failure');
94
125
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadSupergraphSdlFromStorage.js","sourceRoot":"","sources":["../../../src/supergraphManagers/UplinkFetcher/loadSupergraphSdlFromStorage.ts"],"names":[],"mappings":";;;AAAA,yDAA6D;AAG7D,2DAAwE;AAI3D,QAAA,oBAAoB,GAAgB;;;;;;;;;;;;;;CAchD,CAAC;AAgBF,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;AAE3D,MAAM,aAAa,GAAG,4DAA4D,CAAC;AAEnF,IAAI,YAAY,GAAG,CAAC,CAAC;AAEd,KAAK,UAAU,4BAA4B,CAAC,EACjD,QAAQ,EACR,MAAM,EACN,SAAS,EACT,sBAAsB,EACtB,OAAO,EACP,aAAa,EACb,UAAU,GASX;IACC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,aAAa,GAAG,IAAI,CAAC;IACzB,IAAI,MAAM,GAA+B,IAAI,CAAC;IAC9C,OAAO,OAAO,EAAE,IAAI,UAAU,IAAI,MAAM,IAAI,IAAI,EAAE;QAChD,IAAI;YACF,MAAM,GAAG,MAAM,4BAA4B,CAAC;gBAC1C,QAAQ;gBACR,MAAM;gBACN,QAAQ,EAAE,SAAS,CAAC,YAAY,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC;gBACtD,sBAAsB;gBACtB,OAAO;gBACP,aAAa;aACd,CAAC,CAAC;SACJ;QAAC,OAAO,CAAC,EAAE;YACV,aAAa,GAAG,CAAC,CAAC;SACnB;KACF;IACD,IAAI,MAAM,KAAK,IAAI,IAAI,aAAa,KAAK,IAAI,EAAE;QAC7C,MAAM,aAAa,CAAC;KACrB;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAtCD,oEAsCC;AAEM,KAAK,UAAU,4BAA4B,CAAC,EACjD,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,sBAAsB,EACtB,OAAO,EACP,aAAa,GAQd;;IACC,IAAI,MAAgB,CAAC;IACrB,MAAM,cAAc,GAAG;QACrB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,KAAK,EAAE,4BAAoB;YAC3B,SAAS,EAAE;gBACT,GAAG,EAAE,QAAQ;gBACb,MAAM;gBACN,SAAS,EAAE,aAAa;aACzB;SACF,CAAC;QACF,OAAO,EAAE;YACP,2BAA2B,EAAE,IAAI;YACjC,8BAA8B,EAAE,OAAO;YACvC,YAAY,EAAE,GAAG,IAAI,IAAI,OAAO,EAAE;YAClC,cAAc,EAAE,kBAAkB;SACnC;KACF,CAAC;IAEF,MAAM,OAAO,GAAY,IAAI,2BAAO,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAE/D,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC7B,IAAI;QACF,MAAM,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;KAClD;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;QAE3B,MAAM,IAAA,qDAAiC,EAAC;YACtC,KAAK,EAAE,CAAC;YACR,OAAO;YACP,QAAQ,EAAE,sBAAsB;YAChC,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,OAAO;YAChB,OAAO;SACR,CAAC,CAAC;QAEH,MAAM,IAAI,KAAK,CAAC,aAAa,GAAG,CAAC,MAAA,CAAC,CAAC,OAAO,mCAAI,CAAC,CAAC,CAAC,CAAC;KACnD;IAED,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;IAC3B,IAAI,QAAkC,CAAC;IAEvC,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE;QACtC,IAAI;YACF,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;SAChC;QAAC,OAAO,CAAC,EAAE;YAEV,MAAM,IAAI,KAAK,CAAC,MAAA,aAAa,GAAG,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,OAAO,mCAAI,CAAC,CAAC,CAAC;SACvE;QAED,IAAI,QAAQ,IAAI,QAAQ,EAAE;YACxB,MAAM,IAAI,KAAK,CACb,CAAC,aAAa,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CACpE,IAAI,CACL,CACF,CAAC;SACH;KACF;SAAM;QACL,MAAM,IAAA,qDAAiC,EAAC;YACtC,KAAK,EAAE,IAAI,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC;YACzE,OAAO;YACP,QAAQ,EAAE,sBAAsB;YAChC,QAAQ,EAAE,MAAM;YAChB,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,OAAO;YAChB,OAAO;SACR,CAAC,CAAC;QACH,MAAM,IAAI,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;KAC1E;IAED,MAAM,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC;IACvC,IAAI,YAAY,CAAC,UAAU,KAAK,oBAAoB,EAAE;QACpD,MAAM,EACJ,EAAE,EACF,aAAa,GAEd,GAAG,YAAY,CAAC;QACjB,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,aAAc,EAAE,CAAC;KAC9C;SAAM,IAAI,YAAY,CAAC,UAAU,KAAK,YAAY,EAAE;QAEnD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC;KACxC;SAAM,IAAI,YAAY,CAAC,UAAU,KAAK,WAAW,EAAE;QAClD,OAAO,IAAI,CAAC;KACb;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;KAClE;AACH,CAAC;AAtGD,oEAsGC"}
@@ -0,0 +1,13 @@
1
+ import { fetch, Response, Request } from 'apollo-server-env';
2
+ export declare const OUT_OF_BAND_REPORTER_QUERY = "#graphql\n mutation OOBReport($input: APIMonitoringReport) {\n reportError(report: $input)\n }\n";
3
+ export declare function submitOutOfBandReportIfConfigured({ error, request, endpoint, response, startedAt, endedAt, tags, fetcher, }: {
4
+ error: Error;
5
+ request: Request;
6
+ endpoint: string | undefined;
7
+ response?: Response;
8
+ startedAt: Date;
9
+ endedAt: Date;
10
+ tags?: string[];
11
+ fetcher: typeof fetch;
12
+ }): Promise<void>;
13
+ //# sourceMappingURL=outOfBandReporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outOfBandReporter.d.ts","sourceRoot":"","sources":["../../../src/supergraphManagers/UplinkFetcher/outOfBandReporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAS7D,eAAO,MAAM,0BAA0B,0GAItC,CAAC;AAiBF,wBAAsB,iCAAiC,CAAC,EACtD,KAAK,EACL,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,OAAO,EACP,IAAI,EACJ,OAAO,GACR,EAAE;IACD,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,OAAO,KAAK,CAAC;CACvB,iBA6EA"}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.submitOutOfBandReportIfConfigured = exports.OUT_OF_BAND_REPORTER_QUERY = void 0;
4
+ const graphqlTypes_1 = require("../../__generated__/graphqlTypes");
5
+ exports.OUT_OF_BAND_REPORTER_QUERY = `#graphql
6
+ mutation OOBReport($input: APIMonitoringReport) {
7
+ reportError(report: $input)
8
+ }
9
+ `;
10
+ const { name, version } = require('../../../package.json');
11
+ async function submitOutOfBandReportIfConfigured({ error, request, endpoint, response, startedAt, endedAt, tags, fetcher, }) {
12
+ var _a, _b;
13
+ if (!endpoint) {
14
+ return;
15
+ }
16
+ let errorCode;
17
+ if (!response) {
18
+ errorCode = graphqlTypes_1.ErrorCode.ConnectionFailed;
19
+ }
20
+ else {
21
+ switch (response.status) {
22
+ case 400:
23
+ case 413:
24
+ case 422:
25
+ errorCode = graphqlTypes_1.ErrorCode.InvalidBody;
26
+ break;
27
+ case 408:
28
+ case 504:
29
+ errorCode = graphqlTypes_1.ErrorCode.Timeout;
30
+ break;
31
+ case 502:
32
+ case 503:
33
+ errorCode = graphqlTypes_1.ErrorCode.ConnectionFailed;
34
+ break;
35
+ default:
36
+ errorCode = graphqlTypes_1.ErrorCode.Other;
37
+ }
38
+ }
39
+ const responseBody = await (response === null || response === void 0 ? void 0 : response.text());
40
+ const variables = {
41
+ input: {
42
+ error: {
43
+ code: errorCode,
44
+ message: error.message,
45
+ },
46
+ request: {
47
+ url: request.url,
48
+ body: await request.text(),
49
+ },
50
+ response: response
51
+ ? {
52
+ httpStatusCode: response.status,
53
+ body: responseBody,
54
+ }
55
+ : null,
56
+ startedAt: startedAt.toISOString(),
57
+ endedAt: endedAt.toISOString(),
58
+ tags: tags,
59
+ },
60
+ };
61
+ try {
62
+ const oobResponse = await fetcher(endpoint, {
63
+ method: 'POST',
64
+ body: JSON.stringify({
65
+ query: exports.OUT_OF_BAND_REPORTER_QUERY,
66
+ variables,
67
+ }),
68
+ headers: {
69
+ 'apollographql-client-name': name,
70
+ 'apollographql-client-version': version,
71
+ 'user-agent': `${name}/${version}`,
72
+ 'content-type': 'application/json',
73
+ },
74
+ });
75
+ const parsedResponse = await oobResponse.json();
76
+ if (!((_a = parsedResponse === null || parsedResponse === void 0 ? void 0 : parsedResponse.data) === null || _a === void 0 ? void 0 : _a.reportError)) {
77
+ throw new Error(`Out-of-band error reporting failed: ${oobResponse.status} ${oobResponse.statusText}`);
78
+ }
79
+ }
80
+ catch (e) {
81
+ throw new Error(`Out-of-band error reporting failed: ${(_b = e.message) !== null && _b !== void 0 ? _b : e}`);
82
+ }
83
+ }
84
+ exports.submitOutOfBandReportIfConfigured = submitOutOfBandReportIfConfigured;
85
+ //# sourceMappingURL=outOfBandReporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outOfBandReporter.js","sourceRoot":"","sources":["../../../src/supergraphManagers/UplinkFetcher/outOfBandReporter.ts"],"names":[],"mappings":";;;AAEA,mEAI0C;AAG7B,QAAA,0BAA0B,GAAgB;;;;CAItD,CAAC;AAEF,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;AAepD,KAAK,UAAU,iCAAiC,CAAC,EACtD,KAAK,EACL,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,OAAO,EACP,IAAI,EACJ,OAAO,GAUR;;IAEC,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO;KACR;IAED,IAAI,SAAoB,CAAC;IACzB,IAAI,CAAC,QAAQ,EAAE;QACb,SAAS,GAAG,wBAAS,CAAC,gBAAgB,CAAC;KACxC;SAAM;QAEL,QAAQ,QAAQ,CAAC,MAAM,EAAE;YACvB,KAAK,GAAG,CAAC;YACT,KAAK,GAAG,CAAC;YACT,KAAK,GAAG;gBACN,SAAS,GAAG,wBAAS,CAAC,WAAW,CAAC;gBAClC,MAAM;YACR,KAAK,GAAG,CAAC;YACT,KAAK,GAAG;gBACN,SAAS,GAAG,wBAAS,CAAC,OAAO,CAAC;gBAC9B,MAAM;YACR,KAAK,GAAG,CAAC;YACT,KAAK,GAAG;gBACN,SAAS,GAAG,wBAAS,CAAC,gBAAgB,CAAC;gBACvC,MAAM;YACR;gBACE,SAAS,GAAG,wBAAS,CAAC,KAAK,CAAC;SAC/B;KACF;IAED,MAAM,YAAY,GAAuB,MAAM,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,EAAE,CAAA,CAAC;IAEhE,MAAM,SAAS,GAA+B;QAC5C,KAAK,EAAE;YACL,KAAK,EAAE;gBACL,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB;YACD,OAAO,EAAE;gBACP,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,EAAE;aAC3B;YACD,QAAQ,EAAE,QAAQ;gBAChB,CAAC,CAAC;oBACE,cAAc,EAAE,QAAQ,CAAC,MAAM;oBAC/B,IAAI,EAAE,YAAY;iBACnB;gBACH,CAAC,CAAC,IAAI;YACR,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE;YAClC,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE;YAC9B,IAAI,EAAE,IAAI;SACX;KACF,CAAC;IAEF,IAAI;QACF,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE;YAC1C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,KAAK,EAAE,kCAA0B;gBACjC,SAAS;aACV,CAAC;YACF,OAAO,EAAE;gBACP,2BAA2B,EAAE,IAAI;gBACjC,8BAA8B,EAAE,OAAO;gBACvC,YAAY,EAAE,GAAG,IAAI,IAAI,OAAO,EAAE;gBAClC,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAC,CAAC;QACH,MAAM,cAAc,GAA4B,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;QACzE,IAAI,CAAC,CAAA,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,IAAI,0CAAE,WAAW,CAAA,EAAE;YACtC,MAAM,IAAI,KAAK,CACb,uCAAuC,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,UAAU,EAAE,CACtF,CAAC;SACH;KACF;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,uCAAuC,MAAA,CAAC,CAAC,OAAO,mCAAI,CAAC,EAAE,CAAC,CAAC;KAC1E;AACH,CAAC;AA/FD,8EA+FC"}
@@ -0,0 +1,5 @@
1
+ export { LocalCompose } from './LocalCompose';
2
+ export { LegacyFetcher } from './LegacyFetcher';
3
+ export { IntrospectAndCompose } from './IntrospectAndCompose';
4
+ export { UplinkFetcher } from './UplinkFetcher';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/supergraphManagers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}