@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.
- package/dist/__generated__/graphqlTypes.d.ts +178 -0
- package/dist/__generated__/graphqlTypes.d.ts.map +1 -0
- package/dist/__generated__/graphqlTypes.js +31 -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
- package/src/__generated__/graphqlTypes.ts +33 -2
- package/src/__mocks__/tsconfig.json +0 -7
- package/src/__tests__/.gitkeep +0 -0
- package/src/__tests__/CucumberREADME.md +0 -96
- package/src/__tests__/build-query-plan.feature +0 -1471
- package/src/__tests__/buildQueryPlan.test.ts +0 -1225
- package/src/__tests__/executeQueryPlan.conditions.test.ts +0 -1488
- package/src/__tests__/executeQueryPlan.introspection.test.ts +0 -140
- package/src/__tests__/executeQueryPlan.test.ts +0 -6140
- package/src/__tests__/execution-utils.ts +0 -124
- package/src/__tests__/gateway/__snapshots__/opentelemetry.test.ts.snap +0 -195
- package/src/__tests__/gateway/buildService.test.ts +0 -249
- package/src/__tests__/gateway/endToEnd.test.ts +0 -486
- package/src/__tests__/gateway/executor.test.ts +0 -96
- package/src/__tests__/gateway/extensions.test.ts +0 -37
- package/src/__tests__/gateway/lifecycle-hooks.test.ts +0 -239
- package/src/__tests__/gateway/opentelemetry.test.ts +0 -123
- package/src/__tests__/gateway/queryPlanCache.test.ts +0 -231
- package/src/__tests__/gateway/queryPlannerConfig.test.ts +0 -101
- package/src/__tests__/gateway/reporting.test.ts +0 -616
- package/src/__tests__/gateway/supergraphSdl.test.ts +0 -396
- package/src/__tests__/gateway/testUtils.ts +0 -89
- package/src/__tests__/integration/abstract-types.test.ts +0 -1861
- package/src/__tests__/integration/aliases.test.ts +0 -180
- package/src/__tests__/integration/boolean.test.ts +0 -279
- package/src/__tests__/integration/complex-key.test.ts +0 -197
- package/src/__tests__/integration/configuration.test.ts +0 -404
- package/src/__tests__/integration/custom-directives.test.ts +0 -174
- package/src/__tests__/integration/execution-style.test.ts +0 -35
- package/src/__tests__/integration/fragments.test.ts +0 -237
- package/src/__tests__/integration/list-key.test.ts +0 -128
- package/src/__tests__/integration/logger.test.ts +0 -122
- package/src/__tests__/integration/managed.test.ts +0 -319
- package/src/__tests__/integration/merge-arrays.test.ts +0 -34
- package/src/__tests__/integration/multiple-key.test.ts +0 -327
- package/src/__tests__/integration/mutations.test.ts +0 -287
- package/src/__tests__/integration/networkRequests.test.ts +0 -542
- package/src/__tests__/integration/nockMocks.ts +0 -157
- package/src/__tests__/integration/provides.test.ts +0 -77
- package/src/__tests__/integration/requires.test.ts +0 -359
- package/src/__tests__/integration/scope.test.ts +0 -557
- package/src/__tests__/integration/single-service.test.ts +0 -119
- package/src/__tests__/integration/unions.test.ts +0 -79
- package/src/__tests__/integration/value-types.test.ts +0 -382
- package/src/__tests__/integration/variables.test.ts +0 -120
- package/src/__tests__/nockAssertions.ts +0 -20
- package/src/__tests__/queryPlanCucumber.test.ts +0 -55
- package/src/__tests__/resultShaping.test.ts +0 -605
- package/src/__tests__/testSetup.ts +0 -1
- package/src/__tests__/tsconfig.json +0 -8
- package/src/core/__tests__/core.test.ts +0 -412
- package/src/datasources/__tests__/LocalGraphQLDataSource.test.ts +0 -51
- package/src/datasources/__tests__/RemoteGraphQLDataSource.test.ts +0 -574
- package/src/schema-helper/__tests__/addExtensions.test.ts +0 -70
- package/src/supergraphManagers/IntrospectAndCompose/__tests__/IntrospectAndCompose.test.ts +0 -364
- package/src/supergraphManagers/IntrospectAndCompose/__tests__/loadServicesFromRemoteEndpoint.test.ts +0 -40
- package/src/supergraphManagers/UplinkSupergraphManager/__tests__/UplinkSupergraphManager.test.ts +0 -65
- package/src/supergraphManagers/UplinkSupergraphManager/__tests__/loadSupergraphSdlFromStorage.test.ts +0 -511
- package/src/utilities/__tests__/deepMerge.test.ts +0 -77
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
export type Maybe<T> = T | null;
|
|
2
|
+
export type InputMaybe<T> = Maybe<T>;
|
|
3
|
+
export type Exact<T extends {
|
|
4
|
+
[key: string]: unknown;
|
|
5
|
+
}> = {
|
|
6
|
+
[K in keyof T]: T[K];
|
|
7
|
+
};
|
|
8
|
+
export type MakeOptional<T, K extends keyof T> = Omit<T, K> & {
|
|
9
|
+
[SubKey in K]?: Maybe<T[SubKey]>;
|
|
10
|
+
};
|
|
11
|
+
export type MakeMaybe<T, K extends keyof T> = Omit<T, K> & {
|
|
12
|
+
[SubKey in K]: Maybe<T[SubKey]>;
|
|
13
|
+
};
|
|
14
|
+
export type Scalars = {
|
|
15
|
+
ID: string;
|
|
16
|
+
String: string;
|
|
17
|
+
Boolean: boolean;
|
|
18
|
+
Int: number;
|
|
19
|
+
Float: number;
|
|
20
|
+
Timestamp: any;
|
|
21
|
+
};
|
|
22
|
+
export type ApiMonitoringReport = {
|
|
23
|
+
endedAt: Scalars['Timestamp'];
|
|
24
|
+
error: Error;
|
|
25
|
+
request: Request;
|
|
26
|
+
response?: InputMaybe<Response>;
|
|
27
|
+
startedAt: Scalars['Timestamp'];
|
|
28
|
+
tags?: InputMaybe<Array<Scalars['String']>>;
|
|
29
|
+
};
|
|
30
|
+
export type Error = {
|
|
31
|
+
code: ErrorCode;
|
|
32
|
+
message?: InputMaybe<Scalars['String']>;
|
|
33
|
+
};
|
|
34
|
+
export declare enum ErrorCode {
|
|
35
|
+
ConnectionFailed = "CONNECTION_FAILED",
|
|
36
|
+
InvalidBody = "INVALID_BODY",
|
|
37
|
+
Other = "OTHER",
|
|
38
|
+
Timeout = "TIMEOUT",
|
|
39
|
+
UnexpectedResponse = "UNEXPECTED_RESPONSE"
|
|
40
|
+
}
|
|
41
|
+
export type FetchError = {
|
|
42
|
+
__typename?: 'FetchError';
|
|
43
|
+
code: FetchErrorCode;
|
|
44
|
+
message: Scalars['String'];
|
|
45
|
+
minDelaySeconds: Scalars['Float'];
|
|
46
|
+
};
|
|
47
|
+
export declare enum FetchErrorCode {
|
|
48
|
+
AccessDenied = "ACCESS_DENIED",
|
|
49
|
+
AuthenticationFailed = "AUTHENTICATION_FAILED",
|
|
50
|
+
NotImplementedOnThisInstance = "NOT_IMPLEMENTED_ON_THIS_INSTANCE",
|
|
51
|
+
RetryLater = "RETRY_LATER",
|
|
52
|
+
UnknownRef = "UNKNOWN_REF"
|
|
53
|
+
}
|
|
54
|
+
export type HttpHeader = {
|
|
55
|
+
name: Scalars['String'];
|
|
56
|
+
value?: InputMaybe<Scalars['String']>;
|
|
57
|
+
};
|
|
58
|
+
export type Message = {
|
|
59
|
+
__typename?: 'Message';
|
|
60
|
+
body: Scalars['String'];
|
|
61
|
+
level: MessageLevel;
|
|
62
|
+
};
|
|
63
|
+
export declare enum MessageLevel {
|
|
64
|
+
Error = "ERROR",
|
|
65
|
+
Info = "INFO",
|
|
66
|
+
Warn = "WARN"
|
|
67
|
+
}
|
|
68
|
+
export type Mutation = {
|
|
69
|
+
__typename?: 'Mutation';
|
|
70
|
+
reportError: Scalars['Boolean'];
|
|
71
|
+
};
|
|
72
|
+
export type MutationReportErrorArgs = {
|
|
73
|
+
report?: InputMaybe<ApiMonitoringReport>;
|
|
74
|
+
};
|
|
75
|
+
export type PersistedQueriesChunk = {
|
|
76
|
+
__typename?: 'PersistedQueriesChunk';
|
|
77
|
+
id: Scalars['ID'];
|
|
78
|
+
urls: Array<Scalars['String']>;
|
|
79
|
+
};
|
|
80
|
+
export type PersistedQueriesResponse = FetchError | PersistedQueriesResult | Unchanged;
|
|
81
|
+
export type PersistedQueriesResult = {
|
|
82
|
+
__typename?: 'PersistedQueriesResult';
|
|
83
|
+
chunks?: Maybe<Array<PersistedQueriesChunk>>;
|
|
84
|
+
id: Scalars['ID'];
|
|
85
|
+
minDelaySeconds: Scalars['Float'];
|
|
86
|
+
};
|
|
87
|
+
export type Query = {
|
|
88
|
+
__typename?: 'Query';
|
|
89
|
+
_empty?: Maybe<Scalars['String']>;
|
|
90
|
+
persistedQueries: PersistedQueriesResponse;
|
|
91
|
+
routerConfig: RouterConfigResponse;
|
|
92
|
+
routerEntitlements: RouterEntitlementsResponse;
|
|
93
|
+
};
|
|
94
|
+
export type QueryPersistedQueriesArgs = {
|
|
95
|
+
apiKey: Scalars['String'];
|
|
96
|
+
ifAfterId?: InputMaybe<Scalars['ID']>;
|
|
97
|
+
ref: Scalars['String'];
|
|
98
|
+
};
|
|
99
|
+
export type QueryRouterConfigArgs = {
|
|
100
|
+
apiKey: Scalars['String'];
|
|
101
|
+
ifAfterId?: InputMaybe<Scalars['ID']>;
|
|
102
|
+
ref: Scalars['String'];
|
|
103
|
+
};
|
|
104
|
+
export type QueryRouterEntitlementsArgs = {
|
|
105
|
+
apiKey: Scalars['String'];
|
|
106
|
+
ifAfterId?: InputMaybe<Scalars['ID']>;
|
|
107
|
+
ref: Scalars['String'];
|
|
108
|
+
};
|
|
109
|
+
export type Request = {
|
|
110
|
+
body?: InputMaybe<Scalars['String']>;
|
|
111
|
+
headers?: InputMaybe<Array<HttpHeader>>;
|
|
112
|
+
url: Scalars['String'];
|
|
113
|
+
};
|
|
114
|
+
export type Response = {
|
|
115
|
+
body?: InputMaybe<Scalars['String']>;
|
|
116
|
+
headers?: InputMaybe<Array<HttpHeader>>;
|
|
117
|
+
httpStatusCode: Scalars['Int'];
|
|
118
|
+
};
|
|
119
|
+
export type RouterConfigResponse = FetchError | RouterConfigResult | Unchanged;
|
|
120
|
+
export type RouterConfigResult = {
|
|
121
|
+
__typename?: 'RouterConfigResult';
|
|
122
|
+
id: Scalars['ID'];
|
|
123
|
+
messages: Array<Message>;
|
|
124
|
+
minDelaySeconds: Scalars['Float'];
|
|
125
|
+
supergraphSDL: Scalars['String'];
|
|
126
|
+
};
|
|
127
|
+
export type RouterEntitlement = {
|
|
128
|
+
__typename?: 'RouterEntitlement';
|
|
129
|
+
audience: Array<RouterEntitlementAudience>;
|
|
130
|
+
haltAt?: Maybe<Scalars['Timestamp']>;
|
|
131
|
+
jwt: Scalars['String'];
|
|
132
|
+
subject: Scalars['String'];
|
|
133
|
+
warnAt?: Maybe<Scalars['Timestamp']>;
|
|
134
|
+
};
|
|
135
|
+
export declare enum RouterEntitlementAudience {
|
|
136
|
+
Cloud = "CLOUD",
|
|
137
|
+
SelfHosted = "SELF_HOSTED"
|
|
138
|
+
}
|
|
139
|
+
export type RouterEntitlementsResponse = FetchError | RouterEntitlementsResult | Unchanged;
|
|
140
|
+
export type RouterEntitlementsResult = {
|
|
141
|
+
__typename?: 'RouterEntitlementsResult';
|
|
142
|
+
entitlement?: Maybe<RouterEntitlement>;
|
|
143
|
+
id: Scalars['ID'];
|
|
144
|
+
minDelaySeconds: Scalars['Float'];
|
|
145
|
+
};
|
|
146
|
+
export type Unchanged = {
|
|
147
|
+
__typename?: 'Unchanged';
|
|
148
|
+
id: Scalars['ID'];
|
|
149
|
+
minDelaySeconds: Scalars['Float'];
|
|
150
|
+
};
|
|
151
|
+
export type SupergraphSdlQueryVariables = Exact<{
|
|
152
|
+
apiKey: Scalars['String'];
|
|
153
|
+
ref: Scalars['String'];
|
|
154
|
+
ifAfterId?: InputMaybe<Scalars['ID']>;
|
|
155
|
+
}>;
|
|
156
|
+
export type SupergraphSdlQuery = {
|
|
157
|
+
__typename?: 'Query';
|
|
158
|
+
routerConfig: {
|
|
159
|
+
__typename: 'FetchError';
|
|
160
|
+
code: FetchErrorCode;
|
|
161
|
+
message: string;
|
|
162
|
+
} | {
|
|
163
|
+
__typename: 'RouterConfigResult';
|
|
164
|
+
id: string;
|
|
165
|
+
minDelaySeconds: number;
|
|
166
|
+
supergraphSdl: string;
|
|
167
|
+
} | {
|
|
168
|
+
__typename: 'Unchanged';
|
|
169
|
+
};
|
|
170
|
+
};
|
|
171
|
+
export type OobReportMutationVariables = Exact<{
|
|
172
|
+
input?: InputMaybe<ApiMonitoringReport>;
|
|
173
|
+
}>;
|
|
174
|
+
export type OobReportMutation = {
|
|
175
|
+
__typename?: 'Mutation';
|
|
176
|
+
reportError: boolean;
|
|
177
|
+
};
|
|
178
|
+
//# sourceMappingURL=graphqlTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphqlTypes.d.ts","sourceRoot":"","sources":["../../src/__generated__/graphqlTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RouterEntitlementAudience = exports.MessageLevel = exports.FetchErrorCode = exports.ErrorCode = void 0;
|
|
4
|
+
var ErrorCode;
|
|
5
|
+
(function (ErrorCode) {
|
|
6
|
+
ErrorCode["ConnectionFailed"] = "CONNECTION_FAILED";
|
|
7
|
+
ErrorCode["InvalidBody"] = "INVALID_BODY";
|
|
8
|
+
ErrorCode["Other"] = "OTHER";
|
|
9
|
+
ErrorCode["Timeout"] = "TIMEOUT";
|
|
10
|
+
ErrorCode["UnexpectedResponse"] = "UNEXPECTED_RESPONSE";
|
|
11
|
+
})(ErrorCode = exports.ErrorCode || (exports.ErrorCode = {}));
|
|
12
|
+
var FetchErrorCode;
|
|
13
|
+
(function (FetchErrorCode) {
|
|
14
|
+
FetchErrorCode["AccessDenied"] = "ACCESS_DENIED";
|
|
15
|
+
FetchErrorCode["AuthenticationFailed"] = "AUTHENTICATION_FAILED";
|
|
16
|
+
FetchErrorCode["NotImplementedOnThisInstance"] = "NOT_IMPLEMENTED_ON_THIS_INSTANCE";
|
|
17
|
+
FetchErrorCode["RetryLater"] = "RETRY_LATER";
|
|
18
|
+
FetchErrorCode["UnknownRef"] = "UNKNOWN_REF";
|
|
19
|
+
})(FetchErrorCode = exports.FetchErrorCode || (exports.FetchErrorCode = {}));
|
|
20
|
+
var MessageLevel;
|
|
21
|
+
(function (MessageLevel) {
|
|
22
|
+
MessageLevel["Error"] = "ERROR";
|
|
23
|
+
MessageLevel["Info"] = "INFO";
|
|
24
|
+
MessageLevel["Warn"] = "WARN";
|
|
25
|
+
})(MessageLevel = exports.MessageLevel || (exports.MessageLevel = {}));
|
|
26
|
+
var RouterEntitlementAudience;
|
|
27
|
+
(function (RouterEntitlementAudience) {
|
|
28
|
+
RouterEntitlementAudience["Cloud"] = "CLOUD";
|
|
29
|
+
RouterEntitlementAudience["SelfHosted"] = "SELF_HOSTED";
|
|
30
|
+
})(RouterEntitlementAudience = exports.RouterEntitlementAudience || (exports.RouterEntitlementAudience = {}));
|
|
31
|
+
//# sourceMappingURL=graphqlTypes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphqlTypes.js","sourceRoot":"","sources":["../../src/__generated__/graphqlTypes.ts"],"names":[],"mappings":";;;AAkCA,IAAY,SAMX;AAND,WAAY,SAAS;IACnB,mDAAsC,CAAA;IACtC,yCAA4B,CAAA;IAC5B,4BAAe,CAAA;IACf,gCAAmB,CAAA;IACnB,uDAA0C,CAAA;AAC5C,CAAC,EANW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAMpB;AAUD,IAAY,cAWX;AAXD,WAAY,cAAc;IAExB,gDAA8B,CAAA;IAE9B,gEAA8C,CAAA;IAE9C,mFAAiE,CAAA;IAEjE,4CAA0B,CAAA;IAE1B,4CAA0B,CAAA;AAC5B,CAAC,EAXW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAWzB;AAaD,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,+BAAe,CAAA;IACf,6BAAa,CAAA;IACb,6BAAa,CAAA;AACf,CAAC,EAJW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAIvB;AAwGD,IAAY,yBAGX;AAHD,WAAY,yBAAyB;IACnC,4CAAe,CAAA;IACf,uDAA0B,CAAA;AAC5B,CAAC,EAHW,yBAAyB,GAAzB,iCAAyB,KAAzB,iCAAyB,QAGpC"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { GraphQLError, GraphQLSchema } from 'graphql';
|
|
2
|
+
import type { HeadersInit } from 'node-fetch';
|
|
3
|
+
import { GatewayGraphQLRequestContext } from '@apollo/server-gateway-interface';
|
|
4
|
+
import type { Logger } from '@apollo/utils.logger';
|
|
5
|
+
import { GraphQLDataSource } from './datasources/types';
|
|
6
|
+
import { QueryPlan, QueryPlannerConfig } from '@apollo/query-planner';
|
|
7
|
+
import { OperationContext } from './operationContext';
|
|
8
|
+
import { ServiceMap } from './executeQueryPlan';
|
|
9
|
+
import { ServiceDefinition } from "@apollo/federation-internals";
|
|
10
|
+
import { Fetcher } from '@apollo/utils.fetcher';
|
|
11
|
+
export type ServiceEndpointDefinition = Pick<ServiceDefinition, 'name' | 'url'>;
|
|
12
|
+
export type Experimental_DidResolveQueryPlanCallback = ({ queryPlan, serviceMap, operationContext, requestContext, }: {
|
|
13
|
+
readonly queryPlan: QueryPlan;
|
|
14
|
+
readonly serviceMap: ServiceMap;
|
|
15
|
+
readonly operationContext: OperationContext;
|
|
16
|
+
readonly requestContext: GatewayGraphQLRequestContext;
|
|
17
|
+
}) => void;
|
|
18
|
+
interface ImplementingServiceLocation {
|
|
19
|
+
name: string;
|
|
20
|
+
path: string;
|
|
21
|
+
}
|
|
22
|
+
export interface CompositionMetadata {
|
|
23
|
+
formatVersion: number;
|
|
24
|
+
id: string;
|
|
25
|
+
implementingServiceLocations: ImplementingServiceLocation[];
|
|
26
|
+
schemaHash: string;
|
|
27
|
+
}
|
|
28
|
+
export type Experimental_DidFailCompositionCallback = ({ errors, serviceList, compositionMetadata, }: {
|
|
29
|
+
readonly errors: GraphQLError[];
|
|
30
|
+
readonly serviceList: ServiceDefinition[];
|
|
31
|
+
readonly compositionMetadata?: CompositionMetadata;
|
|
32
|
+
}) => void;
|
|
33
|
+
export interface ServiceDefinitionCompositionInfo {
|
|
34
|
+
serviceDefinitions: ServiceDefinition[];
|
|
35
|
+
schema: GraphQLSchema;
|
|
36
|
+
compositionMetadata?: CompositionMetadata;
|
|
37
|
+
}
|
|
38
|
+
export interface SupergraphSdlCompositionInfo {
|
|
39
|
+
schema: GraphQLSchema;
|
|
40
|
+
compositionId: string;
|
|
41
|
+
supergraphSdl: string;
|
|
42
|
+
}
|
|
43
|
+
export type CompositionInfo = ServiceDefinitionCompositionInfo | SupergraphSdlCompositionInfo;
|
|
44
|
+
export type Experimental_DidUpdateSupergraphCallback = (currentConfig: CompositionInfo, previousConfig?: CompositionInfo) => void;
|
|
45
|
+
export type CompositionUpdate = ServiceDefinitionUpdate | SupergraphSdlUpdate;
|
|
46
|
+
export interface ServiceDefinitionUpdate {
|
|
47
|
+
serviceDefinitions?: ServiceDefinition[];
|
|
48
|
+
compositionMetadata?: CompositionMetadata;
|
|
49
|
+
isNewSchema: boolean;
|
|
50
|
+
}
|
|
51
|
+
export interface SupergraphSdlUpdate {
|
|
52
|
+
id: string;
|
|
53
|
+
supergraphSdl: string;
|
|
54
|
+
minDelaySeconds?: number;
|
|
55
|
+
}
|
|
56
|
+
export declare function isSupergraphSdlUpdate(update: CompositionUpdate): update is SupergraphSdlUpdate;
|
|
57
|
+
export declare function isServiceDefinitionUpdate(update: CompositionUpdate): update is ServiceDefinitionUpdate;
|
|
58
|
+
export type Experimental_UpdateServiceDefinitions = (config: DynamicGatewayConfig) => Promise<ServiceDefinitionUpdate>;
|
|
59
|
+
export type Experimental_UpdateSupergraphSdl = (config: DynamicGatewayConfig) => Promise<SupergraphSdlUpdate>;
|
|
60
|
+
export type Experimental_UpdateComposition = (config: DynamicGatewayConfig) => Promise<CompositionUpdate>;
|
|
61
|
+
interface GatewayConfigBase {
|
|
62
|
+
debug?: boolean;
|
|
63
|
+
logger?: Logger;
|
|
64
|
+
__exposeQueryPlanExperimental?: boolean;
|
|
65
|
+
buildService?: (definition: ServiceEndpointDefinition) => GraphQLDataSource;
|
|
66
|
+
experimental_didResolveQueryPlan?: Experimental_DidResolveQueryPlanCallback;
|
|
67
|
+
experimental_didUpdateSupergraph?: Experimental_DidUpdateSupergraphCallback;
|
|
68
|
+
experimental_approximateQueryPlanStoreMiB?: number;
|
|
69
|
+
experimental_autoFragmentization?: boolean;
|
|
70
|
+
fetcher?: Fetcher;
|
|
71
|
+
serviceHealthCheck?: boolean;
|
|
72
|
+
queryPlannerConfig?: QueryPlannerConfig;
|
|
73
|
+
}
|
|
74
|
+
export interface ServiceListGatewayConfig extends GatewayConfigBase {
|
|
75
|
+
serviceList: ServiceEndpointDefinition[];
|
|
76
|
+
introspectionHeaders?: HeadersInit | ((service: ServiceEndpointDefinition) => Promise<HeadersInit> | HeadersInit);
|
|
77
|
+
pollIntervalInMs?: number;
|
|
78
|
+
}
|
|
79
|
+
export interface ManagedGatewayConfig extends GatewayConfigBase {
|
|
80
|
+
schemaConfigDeliveryEndpoint?: string;
|
|
81
|
+
uplinkEndpoints?: string[];
|
|
82
|
+
uplinkMaxRetries?: number;
|
|
83
|
+
pollIntervalInMs?: number;
|
|
84
|
+
fallbackPollIntervalInMs?: number;
|
|
85
|
+
}
|
|
86
|
+
interface ManuallyManagedServiceDefsGatewayConfig extends GatewayConfigBase {
|
|
87
|
+
experimental_updateServiceDefinitions: Experimental_UpdateServiceDefinitions;
|
|
88
|
+
pollIntervalInMs?: number;
|
|
89
|
+
}
|
|
90
|
+
interface ExperimentalManuallyManagedSupergraphSdlGatewayConfig extends GatewayConfigBase {
|
|
91
|
+
experimental_updateSupergraphSdl: Experimental_UpdateSupergraphSdl;
|
|
92
|
+
pollIntervalInMs?: number;
|
|
93
|
+
}
|
|
94
|
+
export declare function isManuallyManagedSupergraphSdlGatewayConfig(config: GatewayConfig): config is ManuallyManagedSupergraphSdlGatewayConfig;
|
|
95
|
+
export type SupergraphSdlUpdateFunction = (updatedSupergraphSdl: string) => void;
|
|
96
|
+
export type SubgraphHealthCheckFunction = (supergraphSdl: string) => Promise<void>;
|
|
97
|
+
export type GetDataSourceFunction = ({ name, url, }: ServiceEndpointDefinition) => GraphQLDataSource;
|
|
98
|
+
export interface SupergraphSdlHookOptions {
|
|
99
|
+
update: SupergraphSdlUpdateFunction;
|
|
100
|
+
healthCheck: SubgraphHealthCheckFunction;
|
|
101
|
+
getDataSource: GetDataSourceFunction;
|
|
102
|
+
}
|
|
103
|
+
export interface SupergraphSdlHook {
|
|
104
|
+
(options: SupergraphSdlHookOptions): Promise<{
|
|
105
|
+
supergraphSdl: string;
|
|
106
|
+
cleanup?: () => Promise<void>;
|
|
107
|
+
}>;
|
|
108
|
+
}
|
|
109
|
+
export interface SupergraphManager {
|
|
110
|
+
initialize: SupergraphSdlHook;
|
|
111
|
+
}
|
|
112
|
+
type ManuallyManagedSupergraphSdlGatewayConfig = SupergraphSdlHookGatewayConfig | SupergraphManagerGatewayConfig;
|
|
113
|
+
export interface SupergraphSdlHookGatewayConfig extends GatewayConfigBase {
|
|
114
|
+
supergraphSdl: SupergraphSdlHook;
|
|
115
|
+
}
|
|
116
|
+
export interface SupergraphManagerGatewayConfig extends GatewayConfigBase {
|
|
117
|
+
supergraphSdl: SupergraphManager;
|
|
118
|
+
}
|
|
119
|
+
type ManuallyManagedGatewayConfig = ManuallyManagedServiceDefsGatewayConfig | ExperimentalManuallyManagedSupergraphSdlGatewayConfig | ManuallyManagedSupergraphSdlGatewayConfig | ServiceListGatewayConfig;
|
|
120
|
+
interface LocalGatewayConfig extends GatewayConfigBase {
|
|
121
|
+
localServiceList: ServiceDefinition[];
|
|
122
|
+
}
|
|
123
|
+
interface StaticSupergraphSdlGatewayConfig extends GatewayConfigBase {
|
|
124
|
+
supergraphSdl: string;
|
|
125
|
+
}
|
|
126
|
+
export type StaticGatewayConfig = LocalGatewayConfig | StaticSupergraphSdlGatewayConfig;
|
|
127
|
+
export type DynamicGatewayConfig = ManagedGatewayConfig | ManuallyManagedGatewayConfig;
|
|
128
|
+
export type GatewayConfig = StaticGatewayConfig | DynamicGatewayConfig;
|
|
129
|
+
export declare function isLocalConfig(config: GatewayConfig): config is LocalGatewayConfig;
|
|
130
|
+
export declare function isServiceListConfig(config: GatewayConfig): config is ServiceListGatewayConfig;
|
|
131
|
+
export declare function isStaticSupergraphSdlConfig(config: GatewayConfig): config is StaticSupergraphSdlGatewayConfig;
|
|
132
|
+
export declare function isSupergraphSdlHookConfig(config: GatewayConfig): config is SupergraphSdlHookGatewayConfig;
|
|
133
|
+
export declare function isSupergraphManagerConfig(config: GatewayConfig): config is SupergraphManagerGatewayConfig;
|
|
134
|
+
export declare function isManuallyManagedConfig(config: GatewayConfig): config is ManuallyManagedGatewayConfig;
|
|
135
|
+
export declare function isManagedConfig(config: GatewayConfig): config is ManagedGatewayConfig;
|
|
136
|
+
export declare function isStaticConfig(config: GatewayConfig): config is StaticGatewayConfig;
|
|
137
|
+
export {};
|
|
138
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isStaticConfig = exports.isManagedConfig = exports.isManuallyManagedConfig = exports.isSupergraphManagerConfig = exports.isSupergraphSdlHookConfig = exports.isStaticSupergraphSdlConfig = exports.isServiceListConfig = exports.isLocalConfig = exports.isManuallyManagedSupergraphSdlGatewayConfig = exports.isServiceDefinitionUpdate = exports.isSupergraphSdlUpdate = void 0;
|
|
4
|
+
const supergraphManagers_1 = require("./supergraphManagers");
|
|
5
|
+
function isSupergraphSdlUpdate(update) {
|
|
6
|
+
return 'supergraphSdl' in update;
|
|
7
|
+
}
|
|
8
|
+
exports.isSupergraphSdlUpdate = isSupergraphSdlUpdate;
|
|
9
|
+
function isServiceDefinitionUpdate(update) {
|
|
10
|
+
return 'isNewSchema' in update;
|
|
11
|
+
}
|
|
12
|
+
exports.isServiceDefinitionUpdate = isServiceDefinitionUpdate;
|
|
13
|
+
function isManuallyManagedSupergraphSdlGatewayConfig(config) {
|
|
14
|
+
return isSupergraphSdlHookConfig(config) || isSupergraphManagerConfig(config);
|
|
15
|
+
}
|
|
16
|
+
exports.isManuallyManagedSupergraphSdlGatewayConfig = isManuallyManagedSupergraphSdlGatewayConfig;
|
|
17
|
+
function isLocalConfig(config) {
|
|
18
|
+
return 'localServiceList' in config;
|
|
19
|
+
}
|
|
20
|
+
exports.isLocalConfig = isLocalConfig;
|
|
21
|
+
function isServiceListConfig(config) {
|
|
22
|
+
return 'serviceList' in config;
|
|
23
|
+
}
|
|
24
|
+
exports.isServiceListConfig = isServiceListConfig;
|
|
25
|
+
function isStaticSupergraphSdlConfig(config) {
|
|
26
|
+
return 'supergraphSdl' in config && typeof config.supergraphSdl === 'string';
|
|
27
|
+
}
|
|
28
|
+
exports.isStaticSupergraphSdlConfig = isStaticSupergraphSdlConfig;
|
|
29
|
+
function isSupergraphSdlHookConfig(config) {
|
|
30
|
+
return ('supergraphSdl' in config && typeof config.supergraphSdl === 'function');
|
|
31
|
+
}
|
|
32
|
+
exports.isSupergraphSdlHookConfig = isSupergraphSdlHookConfig;
|
|
33
|
+
function isSupergraphManagerConfig(config) {
|
|
34
|
+
return ('supergraphSdl' in config &&
|
|
35
|
+
typeof config.supergraphSdl === 'object' &&
|
|
36
|
+
'initialize' in config.supergraphSdl);
|
|
37
|
+
}
|
|
38
|
+
exports.isSupergraphManagerConfig = isSupergraphManagerConfig;
|
|
39
|
+
function isManuallyManagedConfig(config) {
|
|
40
|
+
return (isManuallyManagedSupergraphSdlGatewayConfig(config) ||
|
|
41
|
+
'experimental_updateServiceDefinitions' in config ||
|
|
42
|
+
'experimental_updateSupergraphSdl' in config ||
|
|
43
|
+
isServiceListConfig(config));
|
|
44
|
+
}
|
|
45
|
+
exports.isManuallyManagedConfig = isManuallyManagedConfig;
|
|
46
|
+
function isManagedConfig(config) {
|
|
47
|
+
return ('schemaConfigDeliveryEndpoint' in config ||
|
|
48
|
+
'uplinkEndpoints' in config ||
|
|
49
|
+
'fallbackPollIntervalInMs' in config ||
|
|
50
|
+
(isSupergraphManagerConfig(config) && config.supergraphSdl instanceof supergraphManagers_1.UplinkSupergraphManager) ||
|
|
51
|
+
(!isLocalConfig(config) &&
|
|
52
|
+
!isStaticSupergraphSdlConfig(config) &&
|
|
53
|
+
!isManuallyManagedConfig(config)));
|
|
54
|
+
}
|
|
55
|
+
exports.isManagedConfig = isManagedConfig;
|
|
56
|
+
function isStaticConfig(config) {
|
|
57
|
+
return isLocalConfig(config) || isStaticSupergraphSdlConfig(config);
|
|
58
|
+
}
|
|
59
|
+
exports.isStaticConfig = isStaticConfig;
|
|
60
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AAUA,6DAA+D;AAyE/D,SAAgB,qBAAqB,CACnC,MAAyB;IAEzB,OAAO,eAAe,IAAI,MAAM,CAAC;AACnC,CAAC;AAJD,sDAIC;AAED,SAAgB,yBAAyB,CACvC,MAAyB;IAEzB,OAAO,aAAa,IAAI,MAAM,CAAC;AACjC,CAAC;AAJD,8DAIC;AAmGD,SAAgB,2CAA2C,CACzD,MAAqB;IAErB,OAAO,yBAAyB,CAAC,MAAM,CAAC,IAAI,yBAAyB,CAAC,MAAM,CAAC,CAAC;AAChF,CAAC;AAJD,kGAIC;AAyED,SAAgB,aAAa,CAC3B,MAAqB;IAErB,OAAO,kBAAkB,IAAI,MAAM,CAAC;AACtC,CAAC;AAJD,sCAIC;AAGD,SAAgB,mBAAmB,CACjC,MAAqB;IAErB,OAAO,aAAa,IAAI,MAAM,CAAC;AACjC,CAAC;AAJD,kDAIC;AAED,SAAgB,2BAA2B,CACzC,MAAqB;IAErB,OAAO,eAAe,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,aAAa,KAAK,QAAQ,CAAC;AAC/E,CAAC;AAJD,kEAIC;AAED,SAAgB,yBAAyB,CACvC,MAAqB;IAErB,OAAO,CACL,eAAe,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,aAAa,KAAK,UAAU,CACxE,CAAC;AACJ,CAAC;AAND,8DAMC;AAED,SAAgB,yBAAyB,CACvC,MAAqB;IAErB,OAAO,CACL,eAAe,IAAI,MAAM;QACzB,OAAO,MAAM,CAAC,aAAa,KAAK,QAAQ;QACxC,YAAY,IAAI,MAAM,CAAC,aAAa,CACrC,CAAC;AACJ,CAAC;AARD,8DAQC;AAID,SAAgB,uBAAuB,CACrC,MAAqB;IAErB,OAAO,CACL,2CAA2C,CAAC,MAAM,CAAC;QACnD,uCAAuC,IAAI,MAAM;QACjD,kCAAkC,IAAI,MAAM;QAE5C,mBAAmB,CAAC,MAAM,CAAC,CAC5B,CAAC;AACJ,CAAC;AAVD,0DAUC;AAGD,SAAgB,eAAe,CAC7B,MAAqB;IAErB,OAAO,CACL,8BAA8B,IAAI,MAAM;QACxC,iBAAiB,IAAI,MAAM;QAC3B,0BAA0B,IAAI,MAAM;QACpC,CAAC,yBAAyB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,aAAa,YAAY,4CAAuB,CAAC;QAC9F,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC;YACrB,CAAC,2BAA2B,CAAC,MAAM,CAAC;YACpC,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CACpC,CAAC;AACJ,CAAC;AAZD,0CAYC;AAGD,SAAgB,cAAc,CAC5B,MAAqB;IAErB,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,2BAA2B,CAAC,MAAM,CAAC,CAAC;AACtE,CAAC;AAJD,wCAIC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { FetchDataRewrite } from "@apollo/query-planner";
|
|
2
|
+
import { GraphQLSchema } from "graphql";
|
|
3
|
+
export declare function applyRewrites(schema: GraphQLSchema, rewrites: FetchDataRewrite[] | undefined, value: Record<string, any>): void;
|
|
4
|
+
export declare function isObjectOfType(schema: GraphQLSchema, obj: Record<string, any>, typeCondition: string, defaultOnUnknownObjectType?: boolean): boolean;
|
|
5
|
+
//# sourceMappingURL=dataRewrites.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataRewrites.d.ts","sourceRoot":"","sources":["../src/dataRewrites.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAiD,MAAM,SAAS,CAAC;AAIvF,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,SAAS,EAAG,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAQzH;AAqFD,wBAAgB,cAAc,CAC5B,MAAM,EAAE,aAAa,EACrB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACxB,aAAa,EAAE,MAAM,EACrB,0BAA0B,GAAE,OAAe,GAC1C,OAAO,CAyBT"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isObjectOfType = exports.applyRewrites = void 0;
|
|
4
|
+
const federation_internals_1 = require("@apollo/federation-internals");
|
|
5
|
+
const graphql_1 = require("graphql");
|
|
6
|
+
const FRAGMENT_PREFIX = '... on ';
|
|
7
|
+
function applyRewrites(schema, rewrites, value) {
|
|
8
|
+
if (!rewrites) {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
for (const rewrite of rewrites) {
|
|
12
|
+
applyRewrite(schema, rewrite, value);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.applyRewrites = applyRewrites;
|
|
16
|
+
function applyRewrite(schema, rewrite, value) {
|
|
17
|
+
const splitted = splitPathLastElement(rewrite.path);
|
|
18
|
+
if (!splitted) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const [parent, last] = splitted;
|
|
22
|
+
const { kind, value: fieldName } = parsePathElement(last);
|
|
23
|
+
(0, federation_internals_1.assert)(kind === 'fieldName', () => `Unexpected fragment as last element of ${rewrite.path}`);
|
|
24
|
+
applyAtPath(schema, parent, value, rewriteAtPathFunction(rewrite, fieldName));
|
|
25
|
+
}
|
|
26
|
+
function rewriteAtPathFunction(rewrite, fieldAtPath) {
|
|
27
|
+
switch (rewrite.kind) {
|
|
28
|
+
case 'ValueSetter':
|
|
29
|
+
return (obj) => {
|
|
30
|
+
obj[fieldAtPath] = rewrite.setValueTo;
|
|
31
|
+
};
|
|
32
|
+
case 'KeyRenamer':
|
|
33
|
+
return (obj) => {
|
|
34
|
+
obj[rewrite.renameKeyTo] = obj[fieldAtPath];
|
|
35
|
+
obj[fieldAtPath] = undefined;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function splitPathLastElement(path) {
|
|
40
|
+
if (path.length === 0) {
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
43
|
+
const lastIdx = path.length - 1;
|
|
44
|
+
return [path.slice(0, lastIdx), path[lastIdx]];
|
|
45
|
+
}
|
|
46
|
+
function applyAtPath(schema, path, value, fct) {
|
|
47
|
+
if (Array.isArray(value)) {
|
|
48
|
+
for (const arrayValue of value) {
|
|
49
|
+
applyAtPath(schema, path, arrayValue, fct);
|
|
50
|
+
}
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
if (typeof value !== 'object') {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
if (path.length === 0) {
|
|
57
|
+
fct(value);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const [first, ...rest] = path;
|
|
61
|
+
const { kind, value: eltValue } = parsePathElement(first);
|
|
62
|
+
switch (kind) {
|
|
63
|
+
case 'fieldName':
|
|
64
|
+
applyAtPath(schema, rest, value[eltValue], fct);
|
|
65
|
+
break;
|
|
66
|
+
case 'typeName':
|
|
67
|
+
if (isObjectOfType(schema, value, eltValue, true)) {
|
|
68
|
+
applyAtPath(schema, rest, value, fct);
|
|
69
|
+
}
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function parsePathElement(elt) {
|
|
74
|
+
if (elt.startsWith(FRAGMENT_PREFIX)) {
|
|
75
|
+
return { kind: 'typeName', value: elt.slice(FRAGMENT_PREFIX.length) };
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
return { kind: 'fieldName', value: elt };
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
function isObjectOfType(schema, obj, typeCondition, defaultOnUnknownObjectType = false) {
|
|
82
|
+
const objTypename = obj['__typename'];
|
|
83
|
+
if (!objTypename) {
|
|
84
|
+
return defaultOnUnknownObjectType;
|
|
85
|
+
}
|
|
86
|
+
if (typeCondition === objTypename) {
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
const type = schema.getType(objTypename);
|
|
90
|
+
if (!type) {
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
const conditionalType = schema.getType(typeCondition);
|
|
94
|
+
if (!conditionalType) {
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
if ((0, graphql_1.isAbstractType)(conditionalType)) {
|
|
98
|
+
return ((0, graphql_1.isObjectType)(type) || (0, graphql_1.isInterfaceType)(type)) && schema.isSubType(conditionalType, type);
|
|
99
|
+
}
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
exports.isObjectOfType = isObjectOfType;
|
|
103
|
+
//# sourceMappingURL=dataRewrites.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataRewrites.js","sourceRoot":"","sources":["../src/dataRewrites.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { GatewayGraphQLResponse } from '@apollo/server-gateway-interface';
|
|
2
|
+
import { GraphQLSchema, DocumentNode } from 'graphql';
|
|
3
|
+
import { GraphQLDataSource, GraphQLDataSourceProcessOptions } from './types';
|
|
4
|
+
export declare class LocalGraphQLDataSource<TContext extends Record<string, any> = Record<string, any>> implements GraphQLDataSource<TContext> {
|
|
5
|
+
readonly schema: GraphQLSchema;
|
|
6
|
+
constructor(schema: GraphQLSchema);
|
|
7
|
+
process({ request, context, }: GraphQLDataSourceProcessOptions<TContext>): Promise<GatewayGraphQLResponse>;
|
|
8
|
+
sdl(): DocumentNode;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=LocalGraphQLDataSource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalGraphQLDataSource.d.ts","sourceRoot":"","sources":["../../src/datasources/LocalGraphQLDataSource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EACL,aAAa,EAGb,YAAY,EAEb,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,iBAAiB,EAAE,+BAA+B,EAAE,MAAM,SAAS,CAAC;AAE7E,qBAAa,sBAAsB,CACjC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAC1D,YAAW,iBAAiB,CAAC,QAAQ,CAAC;aAEV,MAAM,EAAE,aAAa;gBAArB,MAAM,EAAE,aAAa;IAG3C,OAAO,CAAC,EACZ,OAAO,EACP,OAAO,GACR,EAAE,+BAA+B,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAUvE,GAAG,IAAI,YAAY;CAY3B"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LocalGraphQLDataSource = void 0;
|
|
4
|
+
const graphql_1 = require("graphql");
|
|
5
|
+
class LocalGraphQLDataSource {
|
|
6
|
+
constructor(schema) {
|
|
7
|
+
this.schema = schema;
|
|
8
|
+
}
|
|
9
|
+
async process({ request, context, }) {
|
|
10
|
+
return (0, graphql_1.graphql)({
|
|
11
|
+
schema: this.schema,
|
|
12
|
+
source: request.query,
|
|
13
|
+
variableValues: request.variables,
|
|
14
|
+
operationName: request.operationName,
|
|
15
|
+
contextValue: context,
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
sdl() {
|
|
19
|
+
const result = (0, graphql_1.graphqlSync)({
|
|
20
|
+
schema: this.schema,
|
|
21
|
+
source: `{ _service { sdl }}`,
|
|
22
|
+
});
|
|
23
|
+
if (result.errors) {
|
|
24
|
+
throw new Error(result.errors.map((error) => error.message).join('\n\n'));
|
|
25
|
+
}
|
|
26
|
+
const sdl = result.data && result.data._service && result.data._service.sdl;
|
|
27
|
+
return (0, graphql_1.parse)(sdl);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.LocalGraphQLDataSource = LocalGraphQLDataSource;
|
|
31
|
+
//# sourceMappingURL=LocalGraphQLDataSource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalGraphQLDataSource.js","sourceRoot":"","sources":["../../src/datasources/LocalGraphQLDataSource.ts"],"names":[],"mappings":";;;AACA,qCAMiB;AAGjB,MAAa,sBAAsB;IAIjC,YAA4B,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IACjD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EACZ,OAAO,EACP,OAAO,GACmC;QAC1C,OAAO,IAAA,iBAAO,EAAC;YACb,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,OAAO,CAAC,KAAM;YACtB,cAAc,EAAE,OAAO,CAAC,SAAS;YACjC,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,YAAY,EAAE,OAAO;SACtB,CAAC,CAAC;IACL,CAAC;IAEM,GAAG;QACR,MAAM,MAAM,GAAG,IAAA,qBAAW,EAAC;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,qBAAqB;SAC9B,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,MAAM,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;SAC3E;QAED,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAK,MAAM,CAAC,IAAI,CAAC,QAAgB,CAAC,GAAG,CAAC;QACrF,OAAO,IAAA,eAAK,EAAC,GAAG,CAAC,CAAC;IACpB,CAAC;CACF;AAhCD,wDAgCC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { GraphQLDataSource, GraphQLDataSourceProcessOptions } from './types';
|
|
2
|
+
import { ResponsePath } from '@apollo/query-planner';
|
|
3
|
+
import { Request as NodeFetchRequest } from 'node-fetch';
|
|
4
|
+
import { Fetcher, FetcherResponse } from '@apollo/utils.fetcher';
|
|
5
|
+
import { GraphQLError } from 'graphql';
|
|
6
|
+
import { GatewayGraphQLRequestContext, GatewayGraphQLResponse } from '@apollo/server-gateway-interface';
|
|
7
|
+
export declare class RemoteGraphQLDataSource<TContext extends Record<string, any> = Record<string, any>> implements GraphQLDataSource<TContext> {
|
|
8
|
+
fetcher: Fetcher;
|
|
9
|
+
constructor(config?: Partial<RemoteGraphQLDataSource<TContext>> & object & ThisType<RemoteGraphQLDataSource<TContext>>);
|
|
10
|
+
url: string;
|
|
11
|
+
apq: boolean;
|
|
12
|
+
honorSubgraphCacheControlHeader: boolean;
|
|
13
|
+
process(options: GraphQLDataSourceProcessOptions<TContext>): Promise<GatewayGraphQLResponse>;
|
|
14
|
+
private sendRequest;
|
|
15
|
+
willSendRequest?(options: GraphQLDataSourceProcessOptions<TContext>): void | Promise<void>;
|
|
16
|
+
private respond;
|
|
17
|
+
didReceiveResponse?(requestContext: Required<Pick<GatewayGraphQLRequestContext<TContext>, 'request' | 'response' | 'context'>> & {
|
|
18
|
+
pathInIncomingRequest?: ResponsePath;
|
|
19
|
+
}): GatewayGraphQLResponse | Promise<GatewayGraphQLResponse>;
|
|
20
|
+
didEncounterError(error: Error, _fetchRequest: NodeFetchRequest, _fetchResponse?: FetcherResponse, _context?: TContext): void;
|
|
21
|
+
parseBody(fetchResponse: FetcherResponse, _fetchRequest?: NodeFetchRequest, _context?: TContext): Promise<object | string>;
|
|
22
|
+
errorFromResponse(response: FetcherResponse): Promise<GraphQLError>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=RemoteGraphQLDataSource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RemoteGraphQLDataSource.d.ts","sourceRoot":"","sources":["../../src/datasources/RemoteGraphQLDataSource.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,+BAA+B,EAAgC,MAAM,SAAS,CAAC;AAE3G,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrD,OAAO,EAA+B,OAAO,IAAI,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACtF,OAAO,EAAE,OAAO,EAAsB,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAE,YAAY,EAA0B,MAAM,SAAS,CAAC;AAC/D,OAAO,EAA+D,4BAA4B,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAErK,qBAAa,uBAAuB,CAClC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAC1D,YAAW,iBAAiB,CAAC,QAAQ,CAAC;IAEtC,OAAO,EAAE,OAAO,CAAC;gBAGf,MAAM,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,GACjD,MAAM,GACN,QAAQ,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAkB/C,GAAG,EAAG,MAAM,CAAC;IAoBb,GAAG,EAAE,OAAO,CAAS;IAMrB,+BAA+B,EAAE,OAAO,CAAQ;IAE1C,OAAO,CACX,OAAO,EAAE,+BAA+B,CAAC,QAAQ,CAAC,GACjD,OAAO,CAAC,sBAAsB,CAAC;YAyGpB,WAAW;IAsDlB,eAAe,CAAC,CACrB,OAAO,EAAE,+BAA+B,CAAC,QAAQ,CAAC,GACjD,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YAET,OAAO;IA4Cd,kBAAkB,CAAC,CACxB,cAAc,EAAE,QAAQ,CACtB,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC,CACjF,GAAG;QAAE,qBAAqB,CAAC,EAAE,YAAY,CAAA;KAAE,GAC3C,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAEpD,iBAAiB,CACtB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,gBAAgB,EAC/B,cAAc,CAAC,EAAE,eAAe,EAChC,QAAQ,CAAC,EAAE,QAAQ;IAKd,SAAS,CACd,aAAa,EAAE,eAAe,EAC9B,aAAa,CAAC,EAAE,gBAAgB,EAChC,QAAQ,CAAC,EAAE,QAAQ,GAClB,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;IASd,iBAAiB,CAAC,QAAQ,EAAE,eAAe;CAsBzD"}
|