@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.
Files changed (117) hide show
  1. package/dist/__generated__/graphqlTypes.d.ts +160 -0
  2. package/dist/__generated__/graphqlTypes.d.ts.map +1 -0
  3. package/dist/__generated__/graphqlTypes.js +30 -0
  4. package/dist/__generated__/graphqlTypes.js.map +1 -0
  5. package/dist/config.d.ts +138 -0
  6. package/dist/config.d.ts.map +1 -0
  7. package/dist/config.js +60 -0
  8. package/dist/config.js.map +1 -0
  9. package/dist/dataRewrites.d.ts +5 -0
  10. package/dist/dataRewrites.d.ts.map +1 -0
  11. package/dist/dataRewrites.js +103 -0
  12. package/dist/dataRewrites.js.map +1 -0
  13. package/dist/datasources/LocalGraphQLDataSource.d.ts +10 -0
  14. package/dist/datasources/LocalGraphQLDataSource.d.ts.map +1 -0
  15. package/dist/datasources/LocalGraphQLDataSource.js +31 -0
  16. package/dist/datasources/LocalGraphQLDataSource.js.map +1 -0
  17. package/dist/datasources/RemoteGraphQLDataSource.d.ts +24 -0
  18. package/dist/datasources/RemoteGraphQLDataSource.d.ts.map +1 -0
  19. package/dist/datasources/RemoteGraphQLDataSource.js +180 -0
  20. package/dist/datasources/RemoteGraphQLDataSource.js.map +1 -0
  21. package/dist/datasources/index.d.ts +4 -0
  22. package/dist/datasources/index.d.ts.map +1 -0
  23. package/dist/datasources/index.js +8 -0
  24. package/dist/datasources/index.js.map +1 -0
  25. package/dist/datasources/parseCacheControlHeader.d.ts +2 -0
  26. package/dist/datasources/parseCacheControlHeader.d.ts.map +1 -0
  27. package/dist/datasources/parseCacheControlHeader.js +16 -0
  28. package/dist/datasources/parseCacheControlHeader.js.map +1 -0
  29. package/dist/datasources/types.d.ts +23 -0
  30. package/dist/datasources/types.d.ts.map +1 -0
  31. package/dist/datasources/types.js +10 -0
  32. package/dist/datasources/types.js.map +1 -0
  33. package/dist/executeQueryPlan.d.ts +15 -0
  34. package/dist/executeQueryPlan.d.ts.map +1 -0
  35. package/dist/executeQueryPlan.js +539 -0
  36. package/dist/executeQueryPlan.js.map +1 -0
  37. package/dist/index.d.ts +113 -0
  38. package/dist/index.d.ts.map +1 -0
  39. package/dist/index.js +590 -0
  40. package/dist/index.js.map +1 -0
  41. package/dist/logger.d.ts +3 -0
  42. package/dist/logger.d.ts.map +1 -0
  43. package/dist/logger.js +15 -0
  44. package/dist/logger.js.map +1 -0
  45. package/dist/operationContext.d.ts +17 -0
  46. package/dist/operationContext.d.ts.map +1 -0
  47. package/dist/operationContext.js +38 -0
  48. package/dist/operationContext.js.map +1 -0
  49. package/dist/resultShaping.d.ts +12 -0
  50. package/dist/resultShaping.d.ts.map +1 -0
  51. package/dist/resultShaping.js +229 -0
  52. package/dist/resultShaping.js.map +1 -0
  53. package/dist/schema-helper/addExtensions.d.ts +3 -0
  54. package/dist/schema-helper/addExtensions.d.ts.map +1 -0
  55. package/dist/schema-helper/addExtensions.js +23 -0
  56. package/dist/schema-helper/addExtensions.js.map +1 -0
  57. package/dist/supergraphManagers/IntrospectAndCompose/index.d.ts +31 -0
  58. package/dist/supergraphManagers/IntrospectAndCompose/index.d.ts.map +1 -0
  59. package/dist/supergraphManagers/IntrospectAndCompose/index.js +112 -0
  60. package/dist/supergraphManagers/IntrospectAndCompose/index.js.map +1 -0
  61. package/dist/supergraphManagers/IntrospectAndCompose/loadServicesFromRemoteEndpoint.d.ts +12 -0
  62. package/dist/supergraphManagers/IntrospectAndCompose/loadServicesFromRemoteEndpoint.d.ts.map +1 -0
  63. package/dist/supergraphManagers/IntrospectAndCompose/loadServicesFromRemoteEndpoint.js +57 -0
  64. package/dist/supergraphManagers/IntrospectAndCompose/loadServicesFromRemoteEndpoint.js.map +1 -0
  65. package/dist/supergraphManagers/LegacyFetcher/index.d.ts +33 -0
  66. package/dist/supergraphManagers/LegacyFetcher/index.d.ts.map +1 -0
  67. package/dist/supergraphManagers/LegacyFetcher/index.js +149 -0
  68. package/dist/supergraphManagers/LegacyFetcher/index.js.map +1 -0
  69. package/dist/supergraphManagers/LocalCompose/index.d.ts +19 -0
  70. package/dist/supergraphManagers/LocalCompose/index.d.ts.map +1 -0
  71. package/dist/supergraphManagers/LocalCompose/index.js +55 -0
  72. package/dist/supergraphManagers/LocalCompose/index.js.map +1 -0
  73. package/dist/supergraphManagers/UplinkSupergraphManager/index.d.ts +63 -0
  74. package/dist/supergraphManagers/UplinkSupergraphManager/index.d.ts.map +1 -0
  75. package/dist/supergraphManagers/UplinkSupergraphManager/index.js +210 -0
  76. package/dist/supergraphManagers/UplinkSupergraphManager/index.js.map +1 -0
  77. package/dist/supergraphManagers/UplinkSupergraphManager/loadSupergraphSdlFromStorage.d.ts +30 -0
  78. package/dist/supergraphManagers/UplinkSupergraphManager/loadSupergraphSdlFromStorage.d.ts.map +1 -0
  79. package/dist/supergraphManagers/UplinkSupergraphManager/loadSupergraphSdlFromStorage.js +145 -0
  80. package/dist/supergraphManagers/UplinkSupergraphManager/loadSupergraphSdlFromStorage.js.map +1 -0
  81. package/dist/supergraphManagers/UplinkSupergraphManager/outOfBandReporter.d.ts +14 -0
  82. package/dist/supergraphManagers/UplinkSupergraphManager/outOfBandReporter.d.ts.map +1 -0
  83. package/dist/supergraphManagers/UplinkSupergraphManager/outOfBandReporter.js +85 -0
  84. package/dist/supergraphManagers/UplinkSupergraphManager/outOfBandReporter.js.map +1 -0
  85. package/dist/supergraphManagers/index.d.ts +6 -0
  86. package/dist/supergraphManagers/index.d.ts.map +1 -0
  87. package/dist/supergraphManagers/index.js +27 -0
  88. package/dist/supergraphManagers/index.js.map +1 -0
  89. package/dist/typings/graphql.d.ts +11 -0
  90. package/dist/typings/graphql.d.ts.map +1 -0
  91. package/dist/typings/graphql.js +3 -0
  92. package/dist/typings/graphql.js.map +1 -0
  93. package/dist/utilities/array.d.ts +5 -0
  94. package/dist/utilities/array.d.ts.map +1 -0
  95. package/dist/utilities/array.js +46 -0
  96. package/dist/utilities/array.js.map +1 -0
  97. package/dist/utilities/assert.d.ts +2 -0
  98. package/dist/utilities/assert.d.ts.map +1 -0
  99. package/dist/utilities/assert.js +10 -0
  100. package/dist/utilities/assert.js.map +1 -0
  101. package/dist/utilities/deepMerge.d.ts +2 -0
  102. package/dist/utilities/deepMerge.d.ts.map +1 -0
  103. package/dist/utilities/deepMerge.js +34 -0
  104. package/dist/utilities/deepMerge.js.map +1 -0
  105. package/dist/utilities/graphql.d.ts +5 -0
  106. package/dist/utilities/graphql.d.ts.map +1 -0
  107. package/dist/utilities/graphql.js +28 -0
  108. package/dist/utilities/graphql.js.map +1 -0
  109. package/dist/utilities/opentelemetry.d.ts +10 -0
  110. package/dist/utilities/opentelemetry.d.ts.map +1 -0
  111. package/dist/utilities/opentelemetry.js +19 -0
  112. package/dist/utilities/opentelemetry.js.map +1 -0
  113. package/dist/utilities/predicates.d.ts +2 -0
  114. package/dist/utilities/predicates.d.ts.map +1 -0
  115. package/dist/utilities/predicates.js +11 -0
  116. package/dist/utilities/predicates.js.map +1 -0
  117. 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":"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"}
@@ -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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=graphql.js.map
@@ -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,2 @@
1
+ export declare function assert(condition: any, message: string): asserts condition;
2
+ //# sourceMappingURL=assert.d.ts.map
@@ -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,2 @@
1
+ export declare function deepMerge(target: any, source: any): any;
2
+ //# sourceMappingURL=deepMerge.d.ts.map
@@ -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,2 @@
1
+ export declare function isObject(value: any): value is object;
2
+ //# sourceMappingURL=predicates.d.ts.map
@@ -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.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.4",
29
- "@apollo/federation-internals": "2.4.4",
30
- "@apollo/query-planner": "2.4.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",