@apollo/gateway 2.4.4 → 2.4.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__generated__/graphqlTypes.d.ts +160 -0
- package/dist/__generated__/graphqlTypes.d.ts.map +1 -0
- package/dist/__generated__/graphqlTypes.js +30 -0
- package/dist/__generated__/graphqlTypes.js.map +1 -0
- package/dist/config.d.ts +138 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +60 -0
- package/dist/config.js.map +1 -0
- package/dist/dataRewrites.d.ts +5 -0
- package/dist/dataRewrites.d.ts.map +1 -0
- package/dist/dataRewrites.js +103 -0
- package/dist/dataRewrites.js.map +1 -0
- package/dist/datasources/LocalGraphQLDataSource.d.ts +10 -0
- package/dist/datasources/LocalGraphQLDataSource.d.ts.map +1 -0
- package/dist/datasources/LocalGraphQLDataSource.js +31 -0
- package/dist/datasources/LocalGraphQLDataSource.js.map +1 -0
- package/dist/datasources/RemoteGraphQLDataSource.d.ts +24 -0
- package/dist/datasources/RemoteGraphQLDataSource.d.ts.map +1 -0
- package/dist/datasources/RemoteGraphQLDataSource.js +180 -0
- package/dist/datasources/RemoteGraphQLDataSource.js.map +1 -0
- package/dist/datasources/index.d.ts +4 -0
- package/dist/datasources/index.d.ts.map +1 -0
- package/dist/datasources/index.js +8 -0
- package/dist/datasources/index.js.map +1 -0
- package/dist/datasources/parseCacheControlHeader.d.ts +2 -0
- package/dist/datasources/parseCacheControlHeader.d.ts.map +1 -0
- package/dist/datasources/parseCacheControlHeader.js +16 -0
- package/dist/datasources/parseCacheControlHeader.js.map +1 -0
- package/dist/datasources/types.d.ts +23 -0
- package/dist/datasources/types.d.ts.map +1 -0
- package/dist/datasources/types.js +10 -0
- package/dist/datasources/types.js.map +1 -0
- package/dist/executeQueryPlan.d.ts +15 -0
- package/dist/executeQueryPlan.d.ts.map +1 -0
- package/dist/executeQueryPlan.js +539 -0
- package/dist/executeQueryPlan.js.map +1 -0
- package/dist/index.d.ts +113 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +590 -0
- package/dist/index.js.map +1 -0
- package/dist/logger.d.ts +3 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +15 -0
- package/dist/logger.js.map +1 -0
- package/dist/operationContext.d.ts +17 -0
- package/dist/operationContext.d.ts.map +1 -0
- package/dist/operationContext.js +38 -0
- package/dist/operationContext.js.map +1 -0
- package/dist/resultShaping.d.ts +12 -0
- package/dist/resultShaping.d.ts.map +1 -0
- package/dist/resultShaping.js +229 -0
- package/dist/resultShaping.js.map +1 -0
- package/dist/schema-helper/addExtensions.d.ts +3 -0
- package/dist/schema-helper/addExtensions.d.ts.map +1 -0
- package/dist/schema-helper/addExtensions.js +23 -0
- package/dist/schema-helper/addExtensions.js.map +1 -0
- package/dist/supergraphManagers/IntrospectAndCompose/index.d.ts +31 -0
- package/dist/supergraphManagers/IntrospectAndCompose/index.d.ts.map +1 -0
- package/dist/supergraphManagers/IntrospectAndCompose/index.js +112 -0
- package/dist/supergraphManagers/IntrospectAndCompose/index.js.map +1 -0
- package/dist/supergraphManagers/IntrospectAndCompose/loadServicesFromRemoteEndpoint.d.ts +12 -0
- package/dist/supergraphManagers/IntrospectAndCompose/loadServicesFromRemoteEndpoint.d.ts.map +1 -0
- package/dist/supergraphManagers/IntrospectAndCompose/loadServicesFromRemoteEndpoint.js +57 -0
- package/dist/supergraphManagers/IntrospectAndCompose/loadServicesFromRemoteEndpoint.js.map +1 -0
- package/dist/supergraphManagers/LegacyFetcher/index.d.ts +33 -0
- package/dist/supergraphManagers/LegacyFetcher/index.d.ts.map +1 -0
- package/dist/supergraphManagers/LegacyFetcher/index.js +149 -0
- package/dist/supergraphManagers/LegacyFetcher/index.js.map +1 -0
- package/dist/supergraphManagers/LocalCompose/index.d.ts +19 -0
- package/dist/supergraphManagers/LocalCompose/index.d.ts.map +1 -0
- package/dist/supergraphManagers/LocalCompose/index.js +55 -0
- package/dist/supergraphManagers/LocalCompose/index.js.map +1 -0
- package/dist/supergraphManagers/UplinkSupergraphManager/index.d.ts +63 -0
- package/dist/supergraphManagers/UplinkSupergraphManager/index.d.ts.map +1 -0
- package/dist/supergraphManagers/UplinkSupergraphManager/index.js +210 -0
- package/dist/supergraphManagers/UplinkSupergraphManager/index.js.map +1 -0
- package/dist/supergraphManagers/UplinkSupergraphManager/loadSupergraphSdlFromStorage.d.ts +30 -0
- package/dist/supergraphManagers/UplinkSupergraphManager/loadSupergraphSdlFromStorage.d.ts.map +1 -0
- package/dist/supergraphManagers/UplinkSupergraphManager/loadSupergraphSdlFromStorage.js +145 -0
- package/dist/supergraphManagers/UplinkSupergraphManager/loadSupergraphSdlFromStorage.js.map +1 -0
- package/dist/supergraphManagers/UplinkSupergraphManager/outOfBandReporter.d.ts +14 -0
- package/dist/supergraphManagers/UplinkSupergraphManager/outOfBandReporter.d.ts.map +1 -0
- package/dist/supergraphManagers/UplinkSupergraphManager/outOfBandReporter.js +85 -0
- package/dist/supergraphManagers/UplinkSupergraphManager/outOfBandReporter.js.map +1 -0
- package/dist/supergraphManagers/index.d.ts +6 -0
- package/dist/supergraphManagers/index.d.ts.map +1 -0
- package/dist/supergraphManagers/index.js +27 -0
- package/dist/supergraphManagers/index.js.map +1 -0
- package/dist/typings/graphql.d.ts +11 -0
- package/dist/typings/graphql.d.ts.map +1 -0
- package/dist/typings/graphql.js +3 -0
- package/dist/typings/graphql.js.map +1 -0
- package/dist/utilities/array.d.ts +5 -0
- package/dist/utilities/array.d.ts.map +1 -0
- package/dist/utilities/array.js +46 -0
- package/dist/utilities/array.js.map +1 -0
- package/dist/utilities/assert.d.ts +2 -0
- package/dist/utilities/assert.d.ts.map +1 -0
- package/dist/utilities/assert.js +10 -0
- package/dist/utilities/assert.js.map +1 -0
- package/dist/utilities/deepMerge.d.ts +2 -0
- package/dist/utilities/deepMerge.d.ts.map +1 -0
- package/dist/utilities/deepMerge.js +34 -0
- package/dist/utilities/deepMerge.js.map +1 -0
- package/dist/utilities/graphql.d.ts +5 -0
- package/dist/utilities/graphql.d.ts.map +1 -0
- package/dist/utilities/graphql.js +28 -0
- package/dist/utilities/graphql.js.map +1 -0
- package/dist/utilities/opentelemetry.d.ts +10 -0
- package/dist/utilities/opentelemetry.d.ts.map +1 -0
- package/dist/utilities/opentelemetry.js +19 -0
- package/dist/utilities/opentelemetry.js.map +1 -0
- package/dist/utilities/predicates.d.ts +2 -0
- package/dist/utilities/predicates.d.ts.map +1 -0
- package/dist/utilities/predicates.js +11 -0
- package/dist/utilities/predicates.js.map +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1,145 @@
|
|
|
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.loadSupergraphSdlFromStorage = exports.loadSupergraphSdlFromUplinks = exports.UplinkFetcherError = exports.SUPERGRAPH_SDL_QUERY = void 0;
|
|
7
|
+
const async_retry_1 = __importDefault(require("async-retry"));
|
|
8
|
+
const node_abort_controller_1 = require("node-abort-controller");
|
|
9
|
+
const outOfBandReporter_1 = require("./outOfBandReporter");
|
|
10
|
+
exports.SUPERGRAPH_SDL_QUERY = `#graphql
|
|
11
|
+
query SupergraphSdl($apiKey: String!, $ref: String!, $ifAfterId: ID) {
|
|
12
|
+
routerConfig(ref: $ref, apiKey: $apiKey, ifAfterId: $ifAfterId) {
|
|
13
|
+
__typename
|
|
14
|
+
... on RouterConfigResult {
|
|
15
|
+
id
|
|
16
|
+
supergraphSdl: supergraphSDL
|
|
17
|
+
minDelaySeconds
|
|
18
|
+
}
|
|
19
|
+
... on FetchError {
|
|
20
|
+
code
|
|
21
|
+
message
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
`;
|
|
26
|
+
const { name, version } = require('../../../package.json');
|
|
27
|
+
const fetchErrorMsg = "An error occurred while fetching your schema from Apollo: ";
|
|
28
|
+
class UplinkFetcherError extends Error {
|
|
29
|
+
constructor(message) {
|
|
30
|
+
super(message);
|
|
31
|
+
this.name = 'UplinkFetcherError';
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.UplinkFetcherError = UplinkFetcherError;
|
|
35
|
+
async function loadSupergraphSdlFromUplinks({ graphRef, apiKey, endpoints, errorReportingEndpoint, fetcher, compositionId, maxRetries, requestTimeoutMs, roundRobinSeed, logger, }) {
|
|
36
|
+
return (0, async_retry_1.default)(() => loadSupergraphSdlFromStorage({
|
|
37
|
+
graphRef,
|
|
38
|
+
apiKey,
|
|
39
|
+
endpoint: endpoints[roundRobinSeed++ % endpoints.length],
|
|
40
|
+
errorReportingEndpoint,
|
|
41
|
+
fetcher,
|
|
42
|
+
requestTimeoutMs,
|
|
43
|
+
compositionId,
|
|
44
|
+
logger,
|
|
45
|
+
}), {
|
|
46
|
+
retries: maxRetries,
|
|
47
|
+
maxTimeout: 60000,
|
|
48
|
+
onRetry(e, attempt) {
|
|
49
|
+
logger.debug(`Unable to fetch supergraph SDL (attempt ${attempt}), waiting before retry: ${e}`);
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
exports.loadSupergraphSdlFromUplinks = loadSupergraphSdlFromUplinks;
|
|
54
|
+
async function loadSupergraphSdlFromStorage({ graphRef, apiKey, endpoint, errorReportingEndpoint, fetcher, requestTimeoutMs, compositionId, logger, }) {
|
|
55
|
+
var _a, _b;
|
|
56
|
+
const requestBody = JSON.stringify({
|
|
57
|
+
query: exports.SUPERGRAPH_SDL_QUERY,
|
|
58
|
+
variables: {
|
|
59
|
+
ref: graphRef,
|
|
60
|
+
apiKey,
|
|
61
|
+
ifAfterId: compositionId,
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
const controller = new node_abort_controller_1.AbortController();
|
|
65
|
+
const signal = setTimeout(() => {
|
|
66
|
+
logger.debug(`Aborting request due to timeout`);
|
|
67
|
+
controller.abort();
|
|
68
|
+
}, requestTimeoutMs);
|
|
69
|
+
const requestDetails = {
|
|
70
|
+
method: 'POST',
|
|
71
|
+
body: requestBody,
|
|
72
|
+
headers: {
|
|
73
|
+
'apollographql-client-name': name,
|
|
74
|
+
'apollographql-client-version': version,
|
|
75
|
+
'user-agent': `${name}/${version}`,
|
|
76
|
+
'content-type': 'application/json',
|
|
77
|
+
},
|
|
78
|
+
signal: controller.signal,
|
|
79
|
+
};
|
|
80
|
+
logger.debug(`🔧 Fetching ${graphRef} supergraph schema from ${endpoint} ifAfterId ${compositionId}`);
|
|
81
|
+
const startTime = new Date();
|
|
82
|
+
let result;
|
|
83
|
+
try {
|
|
84
|
+
result = await fetcher(endpoint, requestDetails);
|
|
85
|
+
}
|
|
86
|
+
catch (e) {
|
|
87
|
+
const endTime = new Date();
|
|
88
|
+
await (0, outOfBandReporter_1.submitOutOfBandReportIfConfigured)({
|
|
89
|
+
error: e,
|
|
90
|
+
requestEndpoint: endpoint,
|
|
91
|
+
requestBody,
|
|
92
|
+
endpoint: errorReportingEndpoint,
|
|
93
|
+
startedAt: startTime,
|
|
94
|
+
endedAt: endTime,
|
|
95
|
+
fetcher,
|
|
96
|
+
});
|
|
97
|
+
throw new UplinkFetcherError(fetchErrorMsg + ((_a = e.message) !== null && _a !== void 0 ? _a : e));
|
|
98
|
+
}
|
|
99
|
+
finally {
|
|
100
|
+
clearTimeout(signal);
|
|
101
|
+
}
|
|
102
|
+
const endTime = new Date();
|
|
103
|
+
let response;
|
|
104
|
+
if (result.ok || result.status === 400) {
|
|
105
|
+
try {
|
|
106
|
+
response = await result.json();
|
|
107
|
+
}
|
|
108
|
+
catch (e) {
|
|
109
|
+
throw new UplinkFetcherError((_b = fetchErrorMsg + result.status + ' ' + e.message) !== null && _b !== void 0 ? _b : e);
|
|
110
|
+
}
|
|
111
|
+
if ('errors' in response) {
|
|
112
|
+
throw new UplinkFetcherError([fetchErrorMsg, ...response.errors.map((error) => error.message)].join('\n'));
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
await (0, outOfBandReporter_1.submitOutOfBandReportIfConfigured)({
|
|
117
|
+
error: new UplinkFetcherError(fetchErrorMsg + result.status + ' ' + result.statusText),
|
|
118
|
+
requestEndpoint: endpoint,
|
|
119
|
+
requestBody,
|
|
120
|
+
endpoint: errorReportingEndpoint,
|
|
121
|
+
response: result,
|
|
122
|
+
startedAt: startTime,
|
|
123
|
+
endedAt: endTime,
|
|
124
|
+
fetcher,
|
|
125
|
+
});
|
|
126
|
+
throw new UplinkFetcherError(fetchErrorMsg + result.status + ' ' + result.statusText);
|
|
127
|
+
}
|
|
128
|
+
const { routerConfig } = response.data;
|
|
129
|
+
if (routerConfig.__typename === 'RouterConfigResult') {
|
|
130
|
+
const { id, supergraphSdl, minDelaySeconds, } = routerConfig;
|
|
131
|
+
return { id, supergraphSdl, minDelaySeconds };
|
|
132
|
+
}
|
|
133
|
+
else if (routerConfig.__typename === 'FetchError') {
|
|
134
|
+
const { code, message } = routerConfig;
|
|
135
|
+
throw new UplinkFetcherError(`${code}: ${message}`);
|
|
136
|
+
}
|
|
137
|
+
else if (routerConfig.__typename === 'Unchanged') {
|
|
138
|
+
return null;
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
throw new UplinkFetcherError('Programming error: unhandled response failure');
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
exports.loadSupergraphSdlFromStorage = loadSupergraphSdlFromStorage;
|
|
145
|
+
//# sourceMappingURL=loadSupergraphSdlFromStorage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadSupergraphSdlFromStorage.js","sourceRoot":"","sources":["../../../src/supergraphManagers/UplinkSupergraphManager/loadSupergraphSdlFromStorage.ts"],"names":[],"mappings":";;;;;;AACA,8DAAgC;AAChC,iEAAwD;AAExD,2DAAwE;AAU3D,QAAA,oBAAoB,GAAgB;;;;;;;;;;;;;;;CAehD,CAAC;AAgBF,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;AAE3D,MAAM,aAAa,GAAG,4DAA4D,CAAC;AAEnF,MAAa,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AALD,gDAKC;AAEM,KAAK,UAAU,4BAA4B,CAAC,EACjD,QAAQ,EACR,MAAM,EACN,SAAS,EACT,sBAAsB,EACtB,OAAO,EACP,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,MAAM,GAYP;IAIC,OAAO,IAAA,qBAAK,EACV,GAAG,EAAE,CACH,4BAA4B,CAAC;QAC3B,QAAQ;QACR,MAAM;QACN,QAAQ,EAAE,SAAS,CAAC,cAAc,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC;QACxD,sBAAsB;QACtB,OAAO;QACP,gBAAgB;QAChB,aAAa;QACb,MAAM;KACP,CAAC,EACJ;QACE,OAAO,EAAE,UAAU;QACnB,UAAU,EAAE,KAAM;QAClB,OAAO,CAAC,CAAC,EAAE,OAAO;YAChB,MAAM,CAAC,KAAK,CAAC,2CAA2C,OAAO,4BAA4B,CAAC,EAAE,CAAC,CAAC;QAClG,CAAC;KACF,CACF,CAAC;AACJ,CAAC;AA9CD,oEA8CC;AAEM,KAAK,UAAU,4BAA4B,CAAC,EACjD,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,sBAAsB,EACtB,OAAO,EACP,gBAAgB,EAChB,aAAa,EACb,MAAM,GAUP;;IACC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,KAAK,EAAE,4BAAoB;QAC3B,SAAS,EAAE;YACT,GAAG,EAAE,QAAQ;YACb,MAAM;YACN,SAAS,EAAE,aAAa;SACzB;KACF,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,IAAI,uCAAe,EAAE,CAAC;IACzC,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE;QAC7B,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAChD,UAAU,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC,EAAE,gBAAgB,CAAC,CAAC;IAErB,MAAM,cAAc,GAAuB;QACzC,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE;YACP,2BAA2B,EAAE,IAAI;YACjC,8BAA8B,EAAE,OAAO;YACvC,YAAY,EAAE,GAAG,IAAI,IAAI,OAAO,EAAE;YAClC,cAAc,EAAE,kBAAkB;SACnC;QACD,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC;IAEF,MAAM,CAAC,KAAK,CAAC,eAAe,QAAQ,2BAA2B,QAAQ,cAAc,aAAa,EAAE,CAAC,CAAC;IAEtG,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC7B,IAAI,MAAuB,CAAC;IAC5B,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,eAAe,EAAE,QAAQ;YACzB,WAAW;YACX,QAAQ,EAAE,sBAAsB;YAChC,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,OAAO;YAChB,OAAO;SACR,CAAC,CAAC;QAEH,MAAM,IAAI,kBAAkB,CAAC,aAAa,GAAG,CAAC,MAAA,CAAC,CAAC,OAAO,mCAAI,CAAC,CAAC,CAAC,CAAC;KAChE;YAAS;QACR,YAAY,CAAC,MAAM,CAAC,CAAC;KACtB;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,kBAAkB,CAAC,MAAA,aAAa,GAAG,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,OAAO,mCAAI,CAAC,CAAC,CAAC;SACpF;QAED,IAAI,QAAQ,IAAI,QAAQ,EAAE;YACxB,MAAM,IAAI,kBAAkB,CAC1B,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,kBAAkB,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC;YACtF,eAAe,EAAE,QAAQ;YACzB,WAAW;YACX,QAAQ,EAAE,sBAAsB;YAChC,QAAQ,EAAE,MAAM;YAChB,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,OAAO;YAChB,OAAO;SACR,CAAC,CAAC;QACH,MAAM,IAAI,kBAAkB,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;KACvF;IAED,MAAM,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC;IACvC,IAAI,YAAY,CAAC,UAAU,KAAK,oBAAoB,EAAE;QACpD,MAAM,EACJ,EAAE,EACF,aAAa,EACb,eAAe,GAEhB,GAAG,YAAY,CAAC;QACjB,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC;KAC/C;SAAM,IAAI,YAAY,CAAC,UAAU,KAAK,YAAY,EAAE;QAEnD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;QACvC,MAAM,IAAI,kBAAkB,CAAC,GAAG,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC;KACrD;SAAM,IAAI,YAAY,CAAC,UAAU,KAAK,WAAW,EAAE;QAClD,OAAO,IAAI,CAAC;KACb;SAAM;QACL,MAAM,IAAI,kBAAkB,CAAC,+CAA+C,CAAC,CAAC;KAC/E;AACH,CAAC;AAxHD,oEAwHC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { FetcherResponse, type Fetcher } from '@apollo/utils.fetcher';
|
|
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, requestEndpoint, requestBody, endpoint, response, startedAt, endedAt, tags, fetcher, }: {
|
|
4
|
+
error: Error;
|
|
5
|
+
requestEndpoint: string;
|
|
6
|
+
requestBody: string;
|
|
7
|
+
endpoint: string | undefined;
|
|
8
|
+
response?: FetcherResponse;
|
|
9
|
+
startedAt: Date;
|
|
10
|
+
endedAt: Date;
|
|
11
|
+
tags?: string[];
|
|
12
|
+
fetcher: Fetcher;
|
|
13
|
+
}): Promise<void>;
|
|
14
|
+
//# sourceMappingURL=outOfBandReporter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outOfBandReporter.d.ts","sourceRoot":"","sources":["../../../src/supergraphManagers/UplinkSupergraphManager/outOfBandReporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAStE,eAAO,MAAM,0BAA0B,0GAItC,CAAC;AAiBF,wBAAsB,iCAAiC,CAAC,EACtD,KAAK,EACL,eAAe,EACf,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,OAAO,EACP,IAAI,EACJ,OAAO,GACR,EAAE;IACD,KAAK,EAAE,KAAK,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB,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, requestEndpoint, requestBody, 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: requestEndpoint,
|
|
48
|
+
body: requestBody,
|
|
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/UplinkSupergraphManager/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,eAAe,EACf,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,OAAO,EACP,IAAI,EACJ,OAAO,GAWR;;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,eAAe;gBACpB,IAAI,EAAE,WAAW;aAClB;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;AAjGD,8EAiGC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { LocalCompose } from './LocalCompose';
|
|
2
|
+
export { LegacyFetcher } from './LegacyFetcher';
|
|
3
|
+
export { IntrospectAndCompose } from './IntrospectAndCompose';
|
|
4
|
+
export * from './UplinkSupergraphManager';
|
|
5
|
+
export { UplinkFetcherError } from './UplinkSupergraphManager/loadSupergraphSdlFromStorage';
|
|
6
|
+
//# 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,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wDAAwD,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.UplinkFetcherError = exports.IntrospectAndCompose = exports.LegacyFetcher = exports.LocalCompose = void 0;
|
|
18
|
+
var LocalCompose_1 = require("./LocalCompose");
|
|
19
|
+
Object.defineProperty(exports, "LocalCompose", { enumerable: true, get: function () { return LocalCompose_1.LocalCompose; } });
|
|
20
|
+
var LegacyFetcher_1 = require("./LegacyFetcher");
|
|
21
|
+
Object.defineProperty(exports, "LegacyFetcher", { enumerable: true, get: function () { return LegacyFetcher_1.LegacyFetcher; } });
|
|
22
|
+
var IntrospectAndCompose_1 = require("./IntrospectAndCompose");
|
|
23
|
+
Object.defineProperty(exports, "IntrospectAndCompose", { enumerable: true, get: function () { return IntrospectAndCompose_1.IntrospectAndCompose; } });
|
|
24
|
+
__exportStar(require("./UplinkSupergraphManager"), exports);
|
|
25
|
+
var loadSupergraphSdlFromStorage_1 = require("./UplinkSupergraphManager/loadSupergraphSdlFromStorage");
|
|
26
|
+
Object.defineProperty(exports, "UplinkFetcherError", { enumerable: true, get: function () { return loadSupergraphSdlFromStorage_1.UplinkFetcherError; } });
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/supergraphManagers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA;AAC7B,4DAA0C;AAC1C,uGAA4F;AAAnF,kIAAA,kBAAkB,OAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { GraphQLSchemaExtensions } from 'graphql';
|
|
2
|
+
interface ApolloGatewayExtensions {
|
|
3
|
+
version?: String;
|
|
4
|
+
}
|
|
5
|
+
export interface ApolloGraphQLSchemaExtensions extends GraphQLSchemaExtensions {
|
|
6
|
+
apollo?: {
|
|
7
|
+
gateway?: ApolloGatewayExtensions;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=graphql.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../src/typings/graphql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAElD,UAAU,uBAAuB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,6BAA8B,SAAQ,uBAAuB;IAC5E,MAAM,CAAC,EAAE;QACP,OAAO,CAAC,EAAE,uBAAuB,CAAC;KACnC,CAAA;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../src/typings/graphql.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function isNotNullOrUndefined<T>(value: T | null | undefined): value is T;
|
|
2
|
+
export declare function compactMap<T, U>(array: T[], callbackfn: (value: T, index: number, array: T[]) => U | null | undefined): U[];
|
|
3
|
+
export declare function findAndExtract<T>(array: T[], predicate: (element: T, index: number, array: T[]) => boolean): [T | undefined, T[]];
|
|
4
|
+
export declare function groupBy<T, U>(keyFunction: (element: T) => U): (iterable: Iterable<T>) => Map<U, T[]>;
|
|
5
|
+
//# sourceMappingURL=array.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/utilities/array.ts"],"names":[],"mappings":"AAAA,wBAAgB,oBAAoB,CAAC,CAAC,EACpC,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,GAC1B,KAAK,IAAI,CAAC,CAEZ;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,CAAC,EAC7B,KAAK,EAAE,CAAC,EAAE,EACV,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,GAAG,SAAS,GACxE,CAAC,EAAE,CAWL;AAED,wBAAgB,cAAc,CAAC,CAAC,EAC9B,KAAK,EAAE,CAAC,EAAE,EACV,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,OAAO,GAC5D,CAAC,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,CAAC,CAUtB;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,cACxC,SAAS,CAAC,CAAC,iBAgB9B"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.groupBy = exports.findAndExtract = exports.compactMap = exports.isNotNullOrUndefined = void 0;
|
|
4
|
+
function isNotNullOrUndefined(value) {
|
|
5
|
+
return value !== null && typeof value !== 'undefined';
|
|
6
|
+
}
|
|
7
|
+
exports.isNotNullOrUndefined = isNotNullOrUndefined;
|
|
8
|
+
function compactMap(array, callbackfn) {
|
|
9
|
+
return array.reduce((accumulator, element, index, array) => {
|
|
10
|
+
const result = callbackfn(element, index, array);
|
|
11
|
+
if (isNotNullOrUndefined(result)) {
|
|
12
|
+
accumulator.push(result);
|
|
13
|
+
}
|
|
14
|
+
return accumulator;
|
|
15
|
+
}, []);
|
|
16
|
+
}
|
|
17
|
+
exports.compactMap = compactMap;
|
|
18
|
+
function findAndExtract(array, predicate) {
|
|
19
|
+
const index = array.findIndex(predicate);
|
|
20
|
+
if (index === -1)
|
|
21
|
+
return [undefined, array];
|
|
22
|
+
const remaining = array.slice(0, index);
|
|
23
|
+
if (index < array.length - 1) {
|
|
24
|
+
remaining.push(...array.slice(index + 1));
|
|
25
|
+
}
|
|
26
|
+
return [array[index], remaining];
|
|
27
|
+
}
|
|
28
|
+
exports.findAndExtract = findAndExtract;
|
|
29
|
+
function groupBy(keyFunction) {
|
|
30
|
+
return (iterable) => {
|
|
31
|
+
const result = new Map();
|
|
32
|
+
for (const element of iterable) {
|
|
33
|
+
const key = keyFunction(element);
|
|
34
|
+
const group = result.get(key);
|
|
35
|
+
if (group) {
|
|
36
|
+
group.push(element);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
result.set(key, [element]);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return result;
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
exports.groupBy = groupBy;
|
|
46
|
+
//# sourceMappingURL=array.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array.js","sourceRoot":"","sources":["../../src/utilities/array.ts"],"names":[],"mappings":";;;AAAA,SAAgB,oBAAoB,CAClC,KAA2B;IAE3B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,WAAW,CAAC;AACxD,CAAC;AAJD,oDAIC;AAED,SAAgB,UAAU,CACxB,KAAU,EACV,UAAyE;IAEzE,OAAO,KAAK,CAAC,MAAM,CACjB,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACjD,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE;YAChC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC1B;QACD,OAAO,WAAW,CAAC;IACrB,CAAC,EACD,EAAS,CACV,CAAC;AACJ,CAAC;AAdD,gCAcC;AAED,SAAgB,cAAc,CAC5B,KAAU,EACV,SAA6D;IAE7D,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACzC,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAE5C,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACxC,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QAC5B,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;KAC3C;IAED,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;AACnC,CAAC;AAbD,wCAaC;AAED,SAAgB,OAAO,CAAO,WAA8B;IAC1D,OAAO,CAAC,QAAqB,EAAE,EAAE;QAC/B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;QAEjC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC9B,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;YACjC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAE9B,IAAI,KAAK,EAAE;gBACT,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACrB;iBAAM;gBACL,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;aAC5B;SACF;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAjBD,0BAiBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../src/utilities/assert.ts"],"names":[],"mappings":"AASA,wBAAgB,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAIzE"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.assert = void 0;
|
|
4
|
+
function assert(condition, message) {
|
|
5
|
+
if (!condition) {
|
|
6
|
+
throw new Error(message);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
exports.assert = assert;
|
|
10
|
+
//# sourceMappingURL=assert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assert.js","sourceRoot":"","sources":["../../src/utilities/assert.ts"],"names":[],"mappings":";;;AASA,SAAgB,MAAM,CAAC,SAAc,EAAE,OAAe;IACpD,IAAI,CAAC,SAAS,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;KAC1B;AACH,CAAC;AAJD,wBAIC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deepMerge.d.ts","sourceRoot":"","sources":["../../src/utilities/deepMerge.ts"],"names":[],"mappings":"AAEA,wBAAgB,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,CA2BvD"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deepMerge = void 0;
|
|
4
|
+
const predicates_1 = require("./predicates");
|
|
5
|
+
function deepMerge(target, source) {
|
|
6
|
+
if (source === undefined || source === null)
|
|
7
|
+
return target;
|
|
8
|
+
for (const key of Object.keys(source)) {
|
|
9
|
+
if (source[key] === undefined || key === '__proto__')
|
|
10
|
+
continue;
|
|
11
|
+
if (target[key] && (0, predicates_1.isObject)(source[key])) {
|
|
12
|
+
deepMerge(target[key], source[key]);
|
|
13
|
+
}
|
|
14
|
+
else if (Array.isArray(source[key]) &&
|
|
15
|
+
Array.isArray(target[key]) &&
|
|
16
|
+
source[key].length === target[key].length) {
|
|
17
|
+
let i = 0;
|
|
18
|
+
for (; i < source[key].length; i++) {
|
|
19
|
+
if ((0, predicates_1.isObject)(target[key][i]) && (0, predicates_1.isObject)(source[key][i])) {
|
|
20
|
+
deepMerge(target[key][i], source[key][i]);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
target[key][i] = source[key][i];
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
target[key] = source[key];
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return target;
|
|
32
|
+
}
|
|
33
|
+
exports.deepMerge = deepMerge;
|
|
34
|
+
//# sourceMappingURL=deepMerge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deepMerge.js","sourceRoot":"","sources":["../../src/utilities/deepMerge.ts"],"names":[],"mappings":";;;AAAA,6CAAwC;AAExC,SAAgB,SAAS,CAAC,MAAW,EAAE,MAAW;IAChD,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAE3D,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;QACrC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,GAAG,KAAK,WAAW;YAAE,SAAS;QAE/D,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAA,qBAAQ,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;YACxC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;SACrC;aAAM,IACL,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1B,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1B,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EACzC;YACA,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,OAAO,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAClC,IAAI,IAAA,qBAAQ,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAA,qBAAQ,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;oBACxD,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC3C;qBAAM;oBACL,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;iBACjC;aACF;SACF;aAAM;YACL,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;SAC3B;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AA3BD,8BA2BC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ASTNode, FieldNode, GraphQLNullableType, ListTypeNode, NamedTypeNode } from 'graphql';
|
|
2
|
+
export declare function getResponseName(node: FieldNode): string;
|
|
3
|
+
export declare function allNodesAreOfSameKind<T extends ASTNode>(firstNode: T, remainingNodes: ASTNode[]): remainingNodes is T[];
|
|
4
|
+
export declare function astFromType(type: GraphQLNullableType): NamedTypeNode | ListTypeNode;
|
|
5
|
+
//# sourceMappingURL=graphql.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../src/utilities/graphql.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,SAAS,EACT,mBAAmB,EAKnB,YAAY,EACZ,aAAa,EAEd,MAAM,SAAS,CAAC;AAEjB,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAEvD;AAED,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,OAAO,EACrD,SAAS,EAAE,CAAC,EACZ,cAAc,EAAE,OAAO,EAAE,GACxB,cAAc,IAAI,CAAC,EAAE,CAEvB;AAED,wBAAgB,WAAW,CACzB,IAAI,EAAE,mBAAmB,GACxB,aAAa,GAAG,YAAY,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.astFromType = exports.allNodesAreOfSameKind = exports.getResponseName = void 0;
|
|
4
|
+
const graphql_1 = require("graphql");
|
|
5
|
+
function getResponseName(node) {
|
|
6
|
+
return node.alias ? node.alias.value : node.name.value;
|
|
7
|
+
}
|
|
8
|
+
exports.getResponseName = getResponseName;
|
|
9
|
+
function allNodesAreOfSameKind(firstNode, remainingNodes) {
|
|
10
|
+
return !remainingNodes.some(node => node.kind !== firstNode.kind);
|
|
11
|
+
}
|
|
12
|
+
exports.allNodesAreOfSameKind = allNodesAreOfSameKind;
|
|
13
|
+
function astFromType(type) {
|
|
14
|
+
if ((0, graphql_1.isListType)(type)) {
|
|
15
|
+
return { kind: graphql_1.Kind.LIST_TYPE, type: astFromType(type.ofType) };
|
|
16
|
+
}
|
|
17
|
+
else if ((0, graphql_1.isNonNullType)(type)) {
|
|
18
|
+
return { kind: graphql_1.Kind.NON_NULL_TYPE, type: astFromType(type.ofType) };
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
return {
|
|
22
|
+
kind: graphql_1.Kind.NAMED_TYPE,
|
|
23
|
+
name: { kind: graphql_1.Kind.NAME, value: type.name },
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.astFromType = astFromType;
|
|
28
|
+
//# sourceMappingURL=graphql.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../src/utilities/graphql.ts"],"names":[],"mappings":";;;AAAA,qCAWiB;AAEjB,SAAgB,eAAe,CAAC,IAAe;IAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AACzD,CAAC;AAFD,0CAEC;AAED,SAAgB,qBAAqB,CACnC,SAAY,EACZ,cAAyB;IAEzB,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC;AACpE,CAAC;AALD,sDAKC;AAKD,SAAgB,WAAW,CAAC,IAAiB;IAC3C,IAAI,IAAA,oBAAU,EAAC,IAAI,CAAC,EAAE;QACpB,OAAO,EAAE,IAAI,EAAE,cAAI,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;KACjE;SAAM,IAAI,IAAA,uBAAa,EAAC,IAAI,CAAC,EAAE;QAC9B,OAAO,EAAE,IAAI,EAAE,cAAI,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;KACrE;SAAM;QACL,OAAO;YACL,IAAI,EAAE,cAAI,CAAC,UAAU;YACrB,IAAI,EAAE,EAAE,IAAI,EAAE,cAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE;SAC5C,CAAC;KACH;AACH,CAAC;AAXD,kCAWC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare enum OpenTelemetrySpanNames {
|
|
2
|
+
REQUEST = "gateway.request",
|
|
3
|
+
PLAN = "gateway.plan",
|
|
4
|
+
FETCH = "gateway.fetch",
|
|
5
|
+
POST_PROCESSING = "gateway.postprocessing",
|
|
6
|
+
EXECUTE = "gateway.execute",
|
|
7
|
+
VALIDATE = "gateway.validate"
|
|
8
|
+
}
|
|
9
|
+
export declare const tracer: import("@opentelemetry/api").Tracer;
|
|
10
|
+
//# sourceMappingURL=opentelemetry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opentelemetry.d.ts","sourceRoot":"","sources":["../../src/utilities/opentelemetry.ts"],"names":[],"mappings":"AAEA,oBAAY,sBAAsB;IAChC,OAAO,oBAAoB;IAC3B,IAAI,iBAAiB;IACrB,KAAK,kBAAkB;IACvB,eAAe,2BAA2B;IAC1C,OAAO,oBAAoB;IAC3B,QAAQ,qBAAqB;CAC9B;AAGD,eAAO,MAAM,MAAM,qCAAsD,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
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.tracer = exports.OpenTelemetrySpanNames = void 0;
|
|
7
|
+
const api_1 = __importDefault(require("@opentelemetry/api"));
|
|
8
|
+
var OpenTelemetrySpanNames;
|
|
9
|
+
(function (OpenTelemetrySpanNames) {
|
|
10
|
+
OpenTelemetrySpanNames["REQUEST"] = "gateway.request";
|
|
11
|
+
OpenTelemetrySpanNames["PLAN"] = "gateway.plan";
|
|
12
|
+
OpenTelemetrySpanNames["FETCH"] = "gateway.fetch";
|
|
13
|
+
OpenTelemetrySpanNames["POST_PROCESSING"] = "gateway.postprocessing";
|
|
14
|
+
OpenTelemetrySpanNames["EXECUTE"] = "gateway.execute";
|
|
15
|
+
OpenTelemetrySpanNames["VALIDATE"] = "gateway.validate";
|
|
16
|
+
})(OpenTelemetrySpanNames = exports.OpenTelemetrySpanNames || (exports.OpenTelemetrySpanNames = {}));
|
|
17
|
+
const { name, version } = require('../../package.json');
|
|
18
|
+
exports.tracer = api_1.default.trace.getTracer(`${name}/${version}`);
|
|
19
|
+
//# sourceMappingURL=opentelemetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opentelemetry.js","sourceRoot":"","sources":["../../src/utilities/opentelemetry.ts"],"names":[],"mappings":";;;;;;AAAA,6DAA+C;AAE/C,IAAY,sBAOX;AAPD,WAAY,sBAAsB;IAChC,qDAA2B,CAAA;IAC3B,+CAAqB,CAAA;IACrB,iDAAuB,CAAA;IACvB,oEAA0C,CAAA;IAC1C,qDAA2B,CAAA;IAC3B,uDAA6B,CAAA;AAC/B,CAAC,EAPW,sBAAsB,GAAtB,8BAAsB,KAAtB,8BAAsB,QAOjC;AAED,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAC3C,QAAA,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"predicates.d.ts","sourceRoot":"","sources":["../../src/utilities/predicates.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,MAAM,CAOpD"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isObject = void 0;
|
|
4
|
+
function isObject(value) {
|
|
5
|
+
return (value !== undefined &&
|
|
6
|
+
value !== null &&
|
|
7
|
+
typeof value === 'object' &&
|
|
8
|
+
!Array.isArray(value));
|
|
9
|
+
}
|
|
10
|
+
exports.isObject = isObject;
|
|
11
|
+
//# sourceMappingURL=predicates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"predicates.js","sourceRoot":"","sources":["../../src/utilities/predicates.ts"],"names":[],"mappings":";;;AAAA,SAAgB,QAAQ,CAAC,KAAU;IACjC,OAAO,CACL,KAAK,KAAK,SAAS;QACnB,KAAK,KAAK,IAAI;QACd,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CACtB,CAAC;AACJ,CAAC;AAPD,4BAOC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@apollo/gateway",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.5",
|
|
4
4
|
"description": "Apollo Gateway",
|
|
5
5
|
"author": "Apollo <packages@apollographql.com>",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -25,9 +25,9 @@
|
|
|
25
25
|
"access": "public"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@apollo/composition": "2.4.
|
|
29
|
-
"@apollo/federation-internals": "2.4.
|
|
30
|
-
"@apollo/query-planner": "2.4.
|
|
28
|
+
"@apollo/composition": "2.4.5",
|
|
29
|
+
"@apollo/federation-internals": "2.4.5",
|
|
30
|
+
"@apollo/query-planner": "2.4.5",
|
|
31
31
|
"@apollo/server-gateway-interface": "^1.1.0",
|
|
32
32
|
"@apollo/usage-reporting-protobuf": "^4.1.0",
|
|
33
33
|
"@apollo/utils.createhash": "^2.0.0",
|