@apollo/gateway 2.4.4 → 2.4.6

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 (176) hide show
  1. package/dist/__generated__/graphqlTypes.d.ts +178 -0
  2. package/dist/__generated__/graphqlTypes.d.ts.map +1 -0
  3. package/dist/__generated__/graphqlTypes.js +31 -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
  118. package/src/__generated__/graphqlTypes.ts +33 -2
  119. package/src/__mocks__/tsconfig.json +0 -7
  120. package/src/__tests__/.gitkeep +0 -0
  121. package/src/__tests__/CucumberREADME.md +0 -96
  122. package/src/__tests__/build-query-plan.feature +0 -1471
  123. package/src/__tests__/buildQueryPlan.test.ts +0 -1225
  124. package/src/__tests__/executeQueryPlan.conditions.test.ts +0 -1488
  125. package/src/__tests__/executeQueryPlan.introspection.test.ts +0 -140
  126. package/src/__tests__/executeQueryPlan.test.ts +0 -6140
  127. package/src/__tests__/execution-utils.ts +0 -124
  128. package/src/__tests__/gateway/__snapshots__/opentelemetry.test.ts.snap +0 -195
  129. package/src/__tests__/gateway/buildService.test.ts +0 -249
  130. package/src/__tests__/gateway/endToEnd.test.ts +0 -486
  131. package/src/__tests__/gateway/executor.test.ts +0 -96
  132. package/src/__tests__/gateway/extensions.test.ts +0 -37
  133. package/src/__tests__/gateway/lifecycle-hooks.test.ts +0 -239
  134. package/src/__tests__/gateway/opentelemetry.test.ts +0 -123
  135. package/src/__tests__/gateway/queryPlanCache.test.ts +0 -231
  136. package/src/__tests__/gateway/queryPlannerConfig.test.ts +0 -101
  137. package/src/__tests__/gateway/reporting.test.ts +0 -616
  138. package/src/__tests__/gateway/supergraphSdl.test.ts +0 -396
  139. package/src/__tests__/gateway/testUtils.ts +0 -89
  140. package/src/__tests__/integration/abstract-types.test.ts +0 -1861
  141. package/src/__tests__/integration/aliases.test.ts +0 -180
  142. package/src/__tests__/integration/boolean.test.ts +0 -279
  143. package/src/__tests__/integration/complex-key.test.ts +0 -197
  144. package/src/__tests__/integration/configuration.test.ts +0 -404
  145. package/src/__tests__/integration/custom-directives.test.ts +0 -174
  146. package/src/__tests__/integration/execution-style.test.ts +0 -35
  147. package/src/__tests__/integration/fragments.test.ts +0 -237
  148. package/src/__tests__/integration/list-key.test.ts +0 -128
  149. package/src/__tests__/integration/logger.test.ts +0 -122
  150. package/src/__tests__/integration/managed.test.ts +0 -319
  151. package/src/__tests__/integration/merge-arrays.test.ts +0 -34
  152. package/src/__tests__/integration/multiple-key.test.ts +0 -327
  153. package/src/__tests__/integration/mutations.test.ts +0 -287
  154. package/src/__tests__/integration/networkRequests.test.ts +0 -542
  155. package/src/__tests__/integration/nockMocks.ts +0 -157
  156. package/src/__tests__/integration/provides.test.ts +0 -77
  157. package/src/__tests__/integration/requires.test.ts +0 -359
  158. package/src/__tests__/integration/scope.test.ts +0 -557
  159. package/src/__tests__/integration/single-service.test.ts +0 -119
  160. package/src/__tests__/integration/unions.test.ts +0 -79
  161. package/src/__tests__/integration/value-types.test.ts +0 -382
  162. package/src/__tests__/integration/variables.test.ts +0 -120
  163. package/src/__tests__/nockAssertions.ts +0 -20
  164. package/src/__tests__/queryPlanCucumber.test.ts +0 -55
  165. package/src/__tests__/resultShaping.test.ts +0 -605
  166. package/src/__tests__/testSetup.ts +0 -1
  167. package/src/__tests__/tsconfig.json +0 -8
  168. package/src/core/__tests__/core.test.ts +0 -412
  169. package/src/datasources/__tests__/LocalGraphQLDataSource.test.ts +0 -51
  170. package/src/datasources/__tests__/RemoteGraphQLDataSource.test.ts +0 -574
  171. package/src/schema-helper/__tests__/addExtensions.test.ts +0 -70
  172. package/src/supergraphManagers/IntrospectAndCompose/__tests__/IntrospectAndCompose.test.ts +0 -364
  173. package/src/supergraphManagers/IntrospectAndCompose/__tests__/loadServicesFromRemoteEndpoint.test.ts +0 -40
  174. package/src/supergraphManagers/UplinkSupergraphManager/__tests__/UplinkSupergraphManager.test.ts +0 -65
  175. package/src/supergraphManagers/UplinkSupergraphManager/__tests__/loadSupergraphSdlFromStorage.test.ts +0 -511
  176. package/src/utilities/__tests__/deepMerge.test.ts +0 -77
@@ -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('LegacyFetcher 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 type { Logger } from '@apollo/utils.logger';
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,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,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('LocalCompose 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,qDAAG,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,qEAAqE;YACnE,CAAC,MAAA,CAAC,CAAC,OAAO,mCAAI,CAAC,CAAC,CACnB,CAAC;IACJ,CAAC;CACF;AA/DD,oCA+DC"}
@@ -0,0 +1,63 @@
1
+ import type { Logger } from '@apollo/utils.logger';
2
+ import type { Fetcher } from '@apollo/utils.fetcher';
3
+ import { SupergraphManager, SupergraphSdlHookOptions } from '../../config';
4
+ export type FailureToFetchSupergraphSdlFunctionParams = {
5
+ error: Error;
6
+ graphRef: string;
7
+ logger: Logger;
8
+ fetchCount: number;
9
+ };
10
+ export type FailureToFetchSupergraphSdlDuringInit = ({ error, graphRef, logger, fetchCount, }: FailureToFetchSupergraphSdlFunctionParams) => Promise<string>;
11
+ export type FailureToFetchSupergraphSdlAfterInit = ({ error, graphRef, logger, fetchCount, mostRecentSuccessfulFetchAt, }: FailureToFetchSupergraphSdlFunctionParams & {
12
+ mostRecentSuccessfulFetchAt?: Date;
13
+ }) => Promise<string | null>;
14
+ export declare class UplinkSupergraphManager implements SupergraphManager {
15
+ static readonly DEFAULT_REQUEST_TIMEOUT_MS = 30000;
16
+ static readonly MIN_POLL_INTERVAL_MS = 10000;
17
+ static readonly DEFAULT_UPLINK_ENDPOINTS: string[];
18
+ readonly uplinkEndpoints: string[];
19
+ private apiKey;
20
+ private graphRef;
21
+ private fetcher;
22
+ private maxRetries;
23
+ private requestTimeoutMs;
24
+ private initialMaxRetries;
25
+ private pollIntervalMs;
26
+ private logger;
27
+ private update?;
28
+ private shouldRunSubgraphHealthcheck;
29
+ private healthCheck?;
30
+ private onFailureToFetchSupergraphSdlDuringInit?;
31
+ private onFailureToFetchSupergraphSdlAfterInit?;
32
+ private timerRef;
33
+ private state;
34
+ private errorReportingEndpoint;
35
+ private compositionId?;
36
+ private fetchCount;
37
+ private mostRecentSuccessfulFetchAt?;
38
+ constructor({ apiKey, graphRef, debug, logger, uplinkEndpoints, fallbackPollIntervalInMs, maxRetries, initialMaxRetries, fetcher, shouldRunSubgraphHealthcheck, onFailureToFetchSupergraphSdlDuringInit, onFailureToFetchSupergraphSdlAfterInit, }: {
39
+ apiKey: string;
40
+ graphRef: string;
41
+ debug?: boolean;
42
+ logger?: Logger;
43
+ uplinkEndpoints?: string[];
44
+ fallbackPollIntervalInMs?: number;
45
+ maxRetries?: number;
46
+ initialMaxRetries?: number;
47
+ fetcher?: Fetcher;
48
+ shouldRunSubgraphHealthcheck?: boolean;
49
+ onFailureToFetchSupergraphSdlDuringInit?: FailureToFetchSupergraphSdlDuringInit;
50
+ onFailureToFetchSupergraphSdlAfterInit?: FailureToFetchSupergraphSdlAfterInit;
51
+ });
52
+ initialize({ update, healthCheck }: SupergraphSdlHookOptions): Promise<{
53
+ supergraphSdl: string;
54
+ cleanup: () => Promise<void>;
55
+ }>;
56
+ nextFetch(): Promise<void | null>;
57
+ static getUplinkEndpoints(): string[];
58
+ private updateSupergraphSdl;
59
+ private beginPolling;
60
+ private poll;
61
+ private logUpdateFailure;
62
+ }
63
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/supergraphManagers/UplinkSupergraphManager/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,210 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.UplinkSupergraphManager = void 0;
30
+ const makeFetchHappen = __importStar(require("make-fetch-happen"));
31
+ const resolvable_1 = __importDefault(require("@josephg/resolvable"));
32
+ const logger_1 = require("../../logger");
33
+ const loadSupergraphSdlFromStorage_1 = require("./loadSupergraphSdlFromStorage");
34
+ class UplinkSupergraphManager {
35
+ constructor({ apiKey, graphRef, debug, logger, uplinkEndpoints, fallbackPollIntervalInMs, maxRetries, initialMaxRetries, fetcher, shouldRunSubgraphHealthcheck, onFailureToFetchSupergraphSdlDuringInit, onFailureToFetchSupergraphSdlAfterInit, }) {
36
+ var _a;
37
+ this.uplinkEndpoints = UplinkSupergraphManager.getUplinkEndpoints();
38
+ this.fetcher = makeFetchHappen.defaults();
39
+ this.requestTimeoutMs = UplinkSupergraphManager.DEFAULT_REQUEST_TIMEOUT_MS;
40
+ this.pollIntervalMs = UplinkSupergraphManager.MIN_POLL_INTERVAL_MS;
41
+ this.shouldRunSubgraphHealthcheck = false;
42
+ this.timerRef = null;
43
+ this.errorReportingEndpoint = (_a = process.env.APOLLO_OUT_OF_BAND_REPORTER_ENDPOINT) !== null && _a !== void 0 ? _a : undefined;
44
+ this.fetchCount = 0;
45
+ this.apiKey = apiKey;
46
+ this.graphRef = graphRef;
47
+ this.logger = logger !== null && logger !== void 0 ? logger : (0, logger_1.getDefaultLogger)(debug);
48
+ this.uplinkEndpoints = uplinkEndpoints !== null && uplinkEndpoints !== void 0 ? uplinkEndpoints : this.uplinkEndpoints;
49
+ this.maxRetries = maxRetries !== null && maxRetries !== void 0 ? maxRetries : this.uplinkEndpoints.length * 3 - 1;
50
+ this.initialMaxRetries = initialMaxRetries !== null && initialMaxRetries !== void 0 ? initialMaxRetries : this.maxRetries;
51
+ this.pollIntervalMs = fallbackPollIntervalInMs !== null && fallbackPollIntervalInMs !== void 0 ? fallbackPollIntervalInMs : this.pollIntervalMs;
52
+ if (this.pollIntervalMs < UplinkSupergraphManager.MIN_POLL_INTERVAL_MS) {
53
+ this.logger.warn('Polling Apollo services at a frequency of less than once per 10 seconds (10000) is disallowed. Instead, the minimum allowed pollInterval of 10000 will be used. Please reconfigure your `fallbackPollIntervalInMs` accordingly. If this is problematic for your team, please contact support.');
54
+ this.pollIntervalMs = UplinkSupergraphManager.MIN_POLL_INTERVAL_MS;
55
+ }
56
+ this.fetcher = fetcher !== null && fetcher !== void 0 ? fetcher : this.fetcher;
57
+ this.shouldRunSubgraphHealthcheck =
58
+ shouldRunSubgraphHealthcheck !== null && shouldRunSubgraphHealthcheck !== void 0 ? shouldRunSubgraphHealthcheck : this.shouldRunSubgraphHealthcheck;
59
+ this.onFailureToFetchSupergraphSdlDuringInit =
60
+ onFailureToFetchSupergraphSdlDuringInit;
61
+ this.onFailureToFetchSupergraphSdlAfterInit =
62
+ onFailureToFetchSupergraphSdlAfterInit;
63
+ this.state = { phase: 'constructed' };
64
+ }
65
+ async initialize({ update, healthCheck }) {
66
+ this.update = update;
67
+ if (this.shouldRunSubgraphHealthcheck) {
68
+ this.healthCheck = healthCheck;
69
+ }
70
+ let initialSupergraphSdl = null;
71
+ try {
72
+ initialSupergraphSdl = await this.updateSupergraphSdl(this.initialMaxRetries);
73
+ if (!initialSupergraphSdl) {
74
+ throw new Error('Invalid supergraph schema supplied during initialization.');
75
+ }
76
+ }
77
+ catch (e) {
78
+ this.logUpdateFailure(e);
79
+ throw e;
80
+ }
81
+ this.state = { phase: 'initialized' };
82
+ this.beginPolling();
83
+ return {
84
+ supergraphSdl: initialSupergraphSdl,
85
+ cleanup: async () => {
86
+ if (this.state.phase === 'polling') {
87
+ await this.state.pollingPromise;
88
+ }
89
+ this.state = { phase: 'stopped' };
90
+ if (this.timerRef) {
91
+ clearTimeout(this.timerRef);
92
+ this.timerRef = null;
93
+ }
94
+ },
95
+ };
96
+ }
97
+ async nextFetch() {
98
+ if (this.state.phase !== 'polling') {
99
+ return;
100
+ }
101
+ return this.state.nextFetchPromise;
102
+ }
103
+ static getUplinkEndpoints() {
104
+ var _a;
105
+ const envEndpoints = (_a = process.env.APOLLO_SCHEMA_CONFIG_DELIVERY_ENDPOINT) === null || _a === void 0 ? void 0 : _a.split(',');
106
+ return envEndpoints !== null && envEndpoints !== void 0 ? envEndpoints : UplinkSupergraphManager.DEFAULT_UPLINK_ENDPOINTS;
107
+ }
108
+ async updateSupergraphSdl(maxRetries) {
109
+ var _a, _b;
110
+ let supergraphSdl;
111
+ try {
112
+ const result = await (0, loadSupergraphSdlFromStorage_1.loadSupergraphSdlFromUplinks)({
113
+ graphRef: this.graphRef,
114
+ apiKey: this.apiKey,
115
+ endpoints: this.uplinkEndpoints,
116
+ errorReportingEndpoint: this.errorReportingEndpoint,
117
+ fetcher: this.fetcher,
118
+ compositionId: (_a = this.compositionId) !== null && _a !== void 0 ? _a : null,
119
+ maxRetries,
120
+ requestTimeoutMs: this.requestTimeoutMs,
121
+ roundRobinSeed: this.fetchCount++,
122
+ logger: this.logger,
123
+ });
124
+ this.mostRecentSuccessfulFetchAt = new Date();
125
+ this.logger.debug(`Received Uplink response. Has updated SDL? ${!!(result === null || result === void 0 ? void 0 : result.supergraphSdl)}`);
126
+ if (!result) {
127
+ return null;
128
+ }
129
+ this.compositionId = result.id;
130
+ supergraphSdl = result.supergraphSdl;
131
+ if (result === null || result === void 0 ? void 0 : result.minDelaySeconds) {
132
+ this.pollIntervalMs = result.minDelaySeconds * 1000;
133
+ }
134
+ }
135
+ catch (e) {
136
+ this.logger.debug(`Error fetching supergraphSdl from Uplink during phase '${this.state.phase}'`);
137
+ if (this.state.phase === 'constructed' &&
138
+ this.onFailureToFetchSupergraphSdlDuringInit) {
139
+ supergraphSdl = await this.onFailureToFetchSupergraphSdlDuringInit({
140
+ error: e,
141
+ graphRef: this.graphRef,
142
+ logger: this.logger,
143
+ fetchCount: this.fetchCount,
144
+ });
145
+ }
146
+ else if (this.state.phase === 'polling' &&
147
+ this.onFailureToFetchSupergraphSdlAfterInit) {
148
+ supergraphSdl = await this.onFailureToFetchSupergraphSdlAfterInit({
149
+ error: e,
150
+ graphRef: this.graphRef,
151
+ logger: this.logger,
152
+ fetchCount: this.fetchCount,
153
+ mostRecentSuccessfulFetchAt: this.mostRecentSuccessfulFetchAt,
154
+ });
155
+ if (!supergraphSdl) {
156
+ return null;
157
+ }
158
+ }
159
+ else {
160
+ throw e;
161
+ }
162
+ }
163
+ await ((_b = this.healthCheck) === null || _b === void 0 ? void 0 : _b.call(this, supergraphSdl));
164
+ return supergraphSdl;
165
+ }
166
+ beginPolling() {
167
+ this.state = { phase: 'polling' };
168
+ this.poll();
169
+ }
170
+ poll() {
171
+ if (this.state.phase !== 'polling') {
172
+ this.logger.debug(`Stopped polling Uplink [phase: ${this.state.phase}]`);
173
+ return;
174
+ }
175
+ this.state.nextFetchPromise = (0, resolvable_1.default)();
176
+ this.logger.debug(`Will poll Uplink after ${this.pollIntervalMs}ms [phase: ${this.state.phase}]`);
177
+ this.timerRef = setTimeout(async () => {
178
+ var _a, _b;
179
+ if (this.state.phase === 'polling') {
180
+ const pollingPromise = (0, resolvable_1.default)();
181
+ this.state.pollingPromise = pollingPromise;
182
+ try {
183
+ const supergraphSdl = await this.updateSupergraphSdl(this.maxRetries);
184
+ if (supergraphSdl) {
185
+ (_a = this.update) === null || _a === void 0 ? void 0 : _a.call(this, supergraphSdl);
186
+ }
187
+ }
188
+ catch (e) {
189
+ this.logUpdateFailure(e);
190
+ }
191
+ pollingPromise.resolve();
192
+ (_b = this.state.nextFetchPromise) === null || _b === void 0 ? void 0 : _b.resolve();
193
+ }
194
+ this.poll();
195
+ }, this.pollIntervalMs);
196
+ }
197
+ logUpdateFailure(e) {
198
+ var _a;
199
+ this.logger.error('UplinkSupergraphManager failed to update supergraph with the following error: ' +
200
+ ((_a = e.message) !== null && _a !== void 0 ? _a : e));
201
+ }
202
+ }
203
+ UplinkSupergraphManager.DEFAULT_REQUEST_TIMEOUT_MS = 30000;
204
+ UplinkSupergraphManager.MIN_POLL_INTERVAL_MS = 10000;
205
+ UplinkSupergraphManager.DEFAULT_UPLINK_ENDPOINTS = [
206
+ 'https://uplink.api.apollographql.com/',
207
+ 'https://aws.uplink.api.apollographql.com/',
208
+ ];
209
+ exports.UplinkSupergraphManager = UplinkSupergraphManager;
210
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/supergraphManagers/UplinkSupergraphManager/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { SupergraphSdlUpdate } from '../../config';
2
+ import type { Fetcher } from '@apollo/utils.fetcher';
3
+ import type { Logger } from '@apollo/utils.logger';
4
+ 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 minDelaySeconds\n }\n ... on FetchError {\n code\n message\n }\n }\n }\n";
5
+ export declare class UplinkFetcherError extends Error {
6
+ constructor(message: string);
7
+ }
8
+ export declare function loadSupergraphSdlFromUplinks({ graphRef, apiKey, endpoints, errorReportingEndpoint, fetcher, compositionId, maxRetries, requestTimeoutMs, roundRobinSeed, logger, }: {
9
+ graphRef: string;
10
+ apiKey: string;
11
+ endpoints: string[];
12
+ errorReportingEndpoint: string | undefined;
13
+ fetcher: Fetcher;
14
+ compositionId: string | null;
15
+ maxRetries: number;
16
+ requestTimeoutMs: number;
17
+ roundRobinSeed: number;
18
+ logger: Logger;
19
+ }): Promise<SupergraphSdlUpdate | null>;
20
+ export declare function loadSupergraphSdlFromStorage({ graphRef, apiKey, endpoint, errorReportingEndpoint, fetcher, requestTimeoutMs, compositionId, logger, }: {
21
+ graphRef: string;
22
+ apiKey: string;
23
+ endpoint: string;
24
+ errorReportingEndpoint?: string;
25
+ fetcher: Fetcher;
26
+ requestTimeoutMs: number;
27
+ compositionId: string | null;
28
+ logger: Logger;
29
+ }): Promise<SupergraphSdlUpdate | null>;
30
+ //# sourceMappingURL=loadSupergraphSdlFromStorage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadSupergraphSdlFromStorage.d.ts","sourceRoot":"","sources":["../../../src/supergraphManagers/UplinkSupergraphManager/loadSupergraphSdlFromStorage.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGnD,OAAO,KAAK,EAEV,OAAO,EAER,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAGnD,eAAO,MAAM,oBAAoB,wXAehC,CAAC;AAoBF,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAsB,4BAA4B,CAAC,EACjD,QAAQ,EACR,MAAM,EACN,SAAS,EACT,sBAAsB,EACtB,OAAO,EACP,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,MAAM,GACP,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,CAAC;IACjB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAI,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAwBvC;AAED,wBAAsB,4BAA4B,CAAC,EACjD,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,sBAAsB,EACtB,OAAO,EACP,gBAAgB,EAChB,aAAa,EACb,MAAM,GACP,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,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB,GAAI,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAsGvC"}