@xxmachina/common 19.2.0 → 19.3.0
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/domain/models/index.d.ts +100 -1
- package/fesm2022/xxmachina-common-domain-models.mjs +22 -23
- package/fesm2022/xxmachina-common-domain-models.mjs.map +1 -1
- package/fesm2022/xxmachina-common-infra-converters-google.mjs +1 -1
- package/fesm2022/xxmachina-common-infra-converters-google.mjs.map +1 -1
- package/fesm2022/xxmachina-common-infra-external.mjs +1 -2
- package/fesm2022/xxmachina-common-infra-external.mjs.map +1 -1
- package/fesm2022/xxmachina-common-infra-query-firestore.mjs +3 -4
- package/fesm2022/xxmachina-common-infra-query-firestore.mjs.map +1 -1
- package/fesm2022/xxmachina-common-infra-repository-firestore.mjs +1 -2
- package/fesm2022/xxmachina-common-infra-repository-firestore.mjs.map +1 -1
- package/fesm2022/xxmachina-common-infra.mjs +2 -4
- package/fesm2022/xxmachina-common-infra.mjs.map +1 -1
- package/fesm2022/xxmachina-common-services-graphql.mjs +266 -3
- package/fesm2022/xxmachina-common-services-graphql.mjs.map +1 -1
- package/infra/converters/google/index.d.ts +1 -3
- package/infra/index.d.ts +1 -1
- package/infra/query/firestore/index.d.ts +3 -3
- package/infra/repository/firestore/index.d.ts +2 -2
- package/package.json +11 -11
- package/services/graphql/index.d.ts +67 -2
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { inject, Injectable } from '@angular/core';
|
|
3
3
|
import { ApolloClientManagerService } from '@nx-ddd/hasura';
|
|
4
|
-
import { switchMap } from 'rxjs';
|
|
4
|
+
import { switchMap, of, combineLatest } from 'rxjs';
|
|
5
5
|
import { gql } from 'apollo-angular';
|
|
6
|
-
import { getIntrospectionQuery } from 'graphql';
|
|
6
|
+
import { getIntrospectionQuery, parse, visit, OperationTypeNode, Kind, print } from 'graphql';
|
|
7
|
+
import { map } from 'rxjs/operators';
|
|
7
8
|
|
|
8
9
|
class GraphqlService {
|
|
9
10
|
apolloClientManager = inject(ApolloClientManagerService);
|
|
@@ -52,9 +53,271 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImpor
|
|
|
52
53
|
args: [{ providedIn: 'root' }]
|
|
53
54
|
}] });
|
|
54
55
|
|
|
56
|
+
/**
|
|
57
|
+
* AST-based subscription splitter service
|
|
58
|
+
* GraphQL ASTを使用して正確にサブスクリプションを分割
|
|
59
|
+
*/
|
|
60
|
+
class AstSubscriptionSplitterService {
|
|
61
|
+
splitSubscription(query) {
|
|
62
|
+
const document = typeof query === 'string' ? parse(query) : query;
|
|
63
|
+
// Find the subscription operation
|
|
64
|
+
let subscriptionOp;
|
|
65
|
+
visit(document, {
|
|
66
|
+
OperationDefinition(node) {
|
|
67
|
+
if (node.operation === OperationTypeNode.SUBSCRIPTION) {
|
|
68
|
+
subscriptionOp = node;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
if (!subscriptionOp || !subscriptionOp.selectionSet.selections.length) {
|
|
73
|
+
return [];
|
|
74
|
+
}
|
|
75
|
+
const results = [];
|
|
76
|
+
// Process each field in the subscription
|
|
77
|
+
subscriptionOp.selectionSet.selections.forEach(selection => {
|
|
78
|
+
if (selection.kind === Kind.FIELD) {
|
|
79
|
+
const field = selection;
|
|
80
|
+
const fieldName = field.alias?.value || field.name.value;
|
|
81
|
+
// Extract variables used in this field
|
|
82
|
+
const usedVariables = this.extractUsedVariables(field);
|
|
83
|
+
// Create a new subscription with only this field and its used variables
|
|
84
|
+
const newDoc = {
|
|
85
|
+
kind: Kind.DOCUMENT,
|
|
86
|
+
definitions: [{
|
|
87
|
+
kind: Kind.OPERATION_DEFINITION,
|
|
88
|
+
operation: OperationTypeNode.SUBSCRIPTION,
|
|
89
|
+
name: subscriptionOp.name ? {
|
|
90
|
+
kind: Kind.NAME,
|
|
91
|
+
value: subscriptionOp.name.value
|
|
92
|
+
} : undefined,
|
|
93
|
+
variableDefinitions: this.filterVariableDefinitions(subscriptionOp.variableDefinitions || [], usedVariables),
|
|
94
|
+
selectionSet: {
|
|
95
|
+
kind: Kind.SELECTION_SET,
|
|
96
|
+
selections: [field]
|
|
97
|
+
}
|
|
98
|
+
}]
|
|
99
|
+
};
|
|
100
|
+
results.push({
|
|
101
|
+
fieldName: field.name.value,
|
|
102
|
+
query: print(newDoc)
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
return results;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Extract variables used in a field and its subfields
|
|
110
|
+
*/
|
|
111
|
+
extractUsedVariables(field) {
|
|
112
|
+
const usedVars = new Set();
|
|
113
|
+
// Visit all nodes in the field to find variable references
|
|
114
|
+
visit(field, {
|
|
115
|
+
Variable(node) {
|
|
116
|
+
usedVars.add(node.name.value);
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
return usedVars;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Filter variable definitions to only include used variables
|
|
123
|
+
*/
|
|
124
|
+
filterVariableDefinitions(definitions, usedVariables) {
|
|
125
|
+
return definitions.filter(def => usedVariables.has(def.variable.name.value));
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Combine multiple observables from split queries
|
|
129
|
+
*/
|
|
130
|
+
combineResults(results, fieldNames) {
|
|
131
|
+
if (results.length === 0) {
|
|
132
|
+
return of({});
|
|
133
|
+
}
|
|
134
|
+
if (results.length === 1) {
|
|
135
|
+
return results[0];
|
|
136
|
+
}
|
|
137
|
+
return combineLatest(results).pipe(map(data => {
|
|
138
|
+
const combined = {};
|
|
139
|
+
fieldNames.forEach((fieldName, index) => {
|
|
140
|
+
if (data[index] && typeof data[index] === 'object') {
|
|
141
|
+
Object.keys(data[index]).forEach(key => {
|
|
142
|
+
if (combined[key]) {
|
|
143
|
+
if (Array.isArray(combined[key])) {
|
|
144
|
+
combined[key] = [...combined[key], ...(Array.isArray(data[index][key]) ? data[index][key] : [data[index][key]])];
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
combined[key] = [combined[key], data[index][key]];
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
combined[key] = data[index][key];
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
return combined;
|
|
157
|
+
}));
|
|
158
|
+
}
|
|
159
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: AstSubscriptionSplitterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
160
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: AstSubscriptionSplitterService, providedIn: 'root' });
|
|
161
|
+
}
|
|
162
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: AstSubscriptionSplitterService, decorators: [{
|
|
163
|
+
type: Injectable,
|
|
164
|
+
args: [{ providedIn: 'root' }]
|
|
165
|
+
}] });
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* GraphqlServiceを拡張して、subscription分割機能を追加
|
|
169
|
+
*
|
|
170
|
+
* GraphQL/Hasuraの制限「1つのsubscriptionには1つのトップレベルフィールドのみ」を回避し、
|
|
171
|
+
* 複数のフィールドを含むsubscriptionを自動的に分割して並列実行します。
|
|
172
|
+
*/
|
|
173
|
+
class GraphqlEnhancedService extends GraphqlService {
|
|
174
|
+
splitter = inject(AstSubscriptionSplitterService);
|
|
175
|
+
/**
|
|
176
|
+
* subscriptionクエリを実行
|
|
177
|
+
* デフォルトでsubscriptionは自動的に分割される
|
|
178
|
+
*/
|
|
179
|
+
subscribe(graphql) {
|
|
180
|
+
// enableSplittingが明示的にfalseの場合、またはsubscriptionでない場合は通常の処理
|
|
181
|
+
const shouldSplit = graphql.enableSplitting !== false && this.isSubscription(graphql.query);
|
|
182
|
+
if (!shouldSplit) {
|
|
183
|
+
// 未使用変数を削除してから実行
|
|
184
|
+
const filteredGraphql = this.removeUnusedVariables(graphql);
|
|
185
|
+
return super.subscribe(filteredGraphql);
|
|
186
|
+
}
|
|
187
|
+
// subscriptionを分割して実行
|
|
188
|
+
return this.subscribeSplit(graphql);
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* subscriptionクエリを分割して並列実行し、結果を結合
|
|
192
|
+
*/
|
|
193
|
+
subscribeSplit(graphql) {
|
|
194
|
+
const queryStr = typeof graphql.query === 'string' ? graphql.query : graphql.query.loc?.source?.body || '';
|
|
195
|
+
// クエリを分割
|
|
196
|
+
const splitQueries = this.splitter.splitSubscription(graphql.query);
|
|
197
|
+
// 分割が不要な場合(単一フィールド)
|
|
198
|
+
if (splitQueries.length <= 1) {
|
|
199
|
+
return super.subscribe(graphql);
|
|
200
|
+
}
|
|
201
|
+
// 各クエリを並列実行
|
|
202
|
+
const observables = splitQueries.map((splitQuery) => {
|
|
203
|
+
// 使用される変数のみを抽出
|
|
204
|
+
const usedVars = this.extractUsedVariablesFromQuery(splitQuery.query);
|
|
205
|
+
const filteredVariables = this.filterVariableValues(graphql.variables, usedVars);
|
|
206
|
+
const splitGraphql = {
|
|
207
|
+
...graphql,
|
|
208
|
+
query: splitQuery.query,
|
|
209
|
+
variables: filteredVariables
|
|
210
|
+
};
|
|
211
|
+
return super.subscribe(splitGraphql).pipe(map(result => ({
|
|
212
|
+
fieldName: splitQuery.fieldName,
|
|
213
|
+
result
|
|
214
|
+
})));
|
|
215
|
+
});
|
|
216
|
+
// 結果を結合
|
|
217
|
+
return combineLatest(observables).pipe(map(results => {
|
|
218
|
+
const combinedData = {};
|
|
219
|
+
results.forEach(({ fieldName, result }) => {
|
|
220
|
+
const data = result.data || result;
|
|
221
|
+
if (data[fieldName] !== undefined) {
|
|
222
|
+
combinedData[fieldName] = data[fieldName];
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
return {
|
|
226
|
+
data: combinedData,
|
|
227
|
+
loading: false,
|
|
228
|
+
networkStatus: 7
|
|
229
|
+
};
|
|
230
|
+
}));
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* クエリがsubscriptionかどうかを判定
|
|
234
|
+
*/
|
|
235
|
+
isSubscription(query) {
|
|
236
|
+
const queryStr = typeof query === 'string' ? query : query.loc?.source?.body || '';
|
|
237
|
+
return queryStr.trim().startsWith('subscription');
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* クエリから使用されている変数を抽出
|
|
241
|
+
*/
|
|
242
|
+
extractUsedVariablesFromQuery(query) {
|
|
243
|
+
const variables = new Set();
|
|
244
|
+
const regex = /\$(\w+)/g;
|
|
245
|
+
let match;
|
|
246
|
+
while ((match = regex.exec(query)) !== null) {
|
|
247
|
+
variables.add(match[1]);
|
|
248
|
+
}
|
|
249
|
+
return variables;
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* 変数値から使用される変数のみをフィルタリング
|
|
253
|
+
*/
|
|
254
|
+
filterVariableValues(variables, usedVars) {
|
|
255
|
+
const filtered = {};
|
|
256
|
+
for (const [key, value] of Object.entries(variables)) {
|
|
257
|
+
if (usedVars.has(key)) {
|
|
258
|
+
filtered[key] = value;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
return filtered;
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* GraphQLクエリから未使用の変数を削除
|
|
265
|
+
*/
|
|
266
|
+
removeUnusedVariables(graphql) {
|
|
267
|
+
if (!graphql.variables || Object.keys(graphql.variables).length === 0) {
|
|
268
|
+
return graphql;
|
|
269
|
+
}
|
|
270
|
+
const queryStr = typeof graphql.query === 'string' ? graphql.query : graphql.query.loc?.source?.body || '';
|
|
271
|
+
const usedVars = this.extractUsedVariablesFromQuery(queryStr);
|
|
272
|
+
const filteredVariables = this.filterVariableValues(graphql.variables, usedVars);
|
|
273
|
+
return {
|
|
274
|
+
...graphql,
|
|
275
|
+
variables: filteredVariables
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: GraphqlEnhancedService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
279
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: GraphqlEnhancedService, providedIn: 'root' });
|
|
280
|
+
}
|
|
281
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: GraphqlEnhancedService, decorators: [{
|
|
282
|
+
type: Injectable,
|
|
283
|
+
args: [{ providedIn: 'root' }]
|
|
284
|
+
}] });
|
|
285
|
+
|
|
286
|
+
/**
|
|
287
|
+
* GraphqlServiceをGraphqlEnhancedServiceで置き換えるプロバイダー
|
|
288
|
+
*
|
|
289
|
+
* 使用方法:
|
|
290
|
+
* ```typescript
|
|
291
|
+
* export default <Routes>[
|
|
292
|
+
* {
|
|
293
|
+
* path: '',
|
|
294
|
+
* component: YourComponent,
|
|
295
|
+
* providers: [
|
|
296
|
+
* provideGraphqlEnhancedLocally()
|
|
297
|
+
* ]
|
|
298
|
+
* }
|
|
299
|
+
* ];
|
|
300
|
+
* ```
|
|
301
|
+
*/
|
|
302
|
+
function provideGraphqlEnhancedLocally() {
|
|
303
|
+
return [
|
|
304
|
+
{
|
|
305
|
+
provide: GraphqlService,
|
|
306
|
+
useClass: GraphqlEnhancedService
|
|
307
|
+
}
|
|
308
|
+
];
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* グローバルにGraphqlEnhancedServiceを提供
|
|
312
|
+
* app.config.tsで使用
|
|
313
|
+
*/
|
|
314
|
+
function provideGraphqlEnhancedGlobally() {
|
|
315
|
+
return provideGraphqlEnhancedLocally();
|
|
316
|
+
}
|
|
317
|
+
|
|
55
318
|
/**
|
|
56
319
|
* Generated bundle index. Do not edit.
|
|
57
320
|
*/
|
|
58
321
|
|
|
59
|
-
export { GraphqlService };
|
|
322
|
+
export { GraphqlEnhancedService, GraphqlService, provideGraphqlEnhancedGlobally, provideGraphqlEnhancedLocally };
|
|
60
323
|
//# sourceMappingURL=xxmachina-common-services-graphql.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xxmachina-common-services-graphql.mjs","sources":["../tmp-esm2022/services/graphql/graphql.service.js","../tmp-esm2022/services/graphql/xxmachina-common-services-graphql.js"],"sourcesContent":["import { inject, Injectable } from \"@angular/core\";\nimport { ApolloClientManagerService } from \"@nx-ddd/hasura\";\nimport { switchMap } from \"rxjs\";\nimport { gql } from \"apollo-angular\";\nimport { getIntrospectionQuery } from \"graphql\";\nimport * as i0 from \"@angular/core\";\nexport class GraphqlService {\n apolloClientManager = inject(ApolloClientManagerService);\n /**\n * @TODO\n * this.apolloMulti.getClientはendpoint単位でApolloClientを管理しているため、\n * _query.graphql.headersに認証情報などが含まれていないリクエストが初めに来ると、\n * {message: 'no subscriptions exist}のようなエラーが出る。\n * Headersが更新されるたびに、ApolloClientを再生成するような処理も必要。\n */\n subscribe(graphql) {\n const getHeaders = typeof graphql.headers === 'function'\n ? graphql.headers\n : () => Promise.resolve(graphql.headers);\n return this.apolloClientManager.getClient(graphql.endpoint, getHeaders).pipe(switchMap((client) => client.subscribe({\n query: gql `${graphql.query}`,\n variables: graphql.variables,\n fetchPolicy: 'network-only',\n })));\n }\n query(graphql) {\n const getHeaders = typeof graphql.headers === 'function'\n ? graphql.headers\n : () => Promise.resolve(graphql.headers);\n return this.apolloClientManager.getClient(graphql.endpoint, getHeaders).pipe(switchMap((client) => client.query({\n query: gql `${graphql.query}`,\n variables: graphql.variables,\n fetchPolicy: 'network-only',\n })));\n }\n getSchema(graphql) {\n const getHeaders = typeof graphql.headers === 'function'\n ? graphql.headers\n : () => Promise.resolve(graphql.headers);\n return this.apolloClientManager.getClient(graphql.endpoint, getHeaders).pipe(switchMap((client) => client.query({\n query: gql `${getIntrospectionQuery()}`,\n variables: {},\n fetchPolicy: 'network-only',\n })));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: GraphqlService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: GraphqlService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: GraphqlService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQHh4bWFjaGluYS9jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9ncmFwaHFsL2dyYXBocWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQWMsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sU0FBUyxDQUFDOztBQVk5RCxNQUFNLE9BQU8sY0FBYztJQUNoQixtQkFBbUIsR0FBRyxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUVsRTs7Ozs7O09BTUc7SUFDSCxTQUFTLENBQUMsT0FBMEI7UUFDbEMsTUFBTSxVQUFVLEdBQWUsT0FBTyxPQUFPLENBQUMsT0FBTyxLQUFLLFVBQVU7WUFDbEUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPO1lBQ2pCLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFpQyxDQUFDLENBQUM7UUFDckUsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUMxRSxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQXNCO1lBQzFELEtBQUssRUFBRSxHQUFHLENBQUEsR0FBRyxPQUFPLENBQUMsS0FBSyxFQUFFO1lBQzVCLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztZQUM1QixXQUFXLEVBQUUsY0FBYztTQUM1QixDQUFDLENBQUMsQ0FDSixDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxPQUEwQjtRQUM5QixNQUFNLFVBQVUsR0FBZSxPQUFPLE9BQU8sQ0FBQyxPQUFPLEtBQUssVUFBVTtZQUNsRSxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU87WUFDakIsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQWlDLENBQUMsQ0FBQztRQUNyRSxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQzFFLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBc0I7WUFDdEQsS0FBSyxFQUFFLEdBQUcsQ0FBQSxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUU7WUFDNUIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO1lBQzVCLFdBQVcsRUFBRSxjQUFjO1NBQzVCLENBQUMsQ0FBQyxDQUNKLENBQUM7SUFDSixDQUFDO0lBRUQsU0FBUyxDQUFDLE9BQW1DO1FBQzNDLE1BQU0sVUFBVSxHQUFlLE9BQU8sT0FBTyxDQUFDLE9BQU8sS0FBSyxVQUFVO1lBQ2xFLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTztZQUNqQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBaUMsQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FDMUUsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFzQjtZQUN0RCxLQUFLLEVBQUUsR0FBRyxDQUFBLEdBQUcscUJBQXFCLEVBQUUsRUFBRTtZQUN0QyxTQUFTLEVBQUUsRUFBRTtZQUNiLFdBQVcsRUFBRSxjQUFjO1NBQzVCLENBQUMsQ0FBQyxDQUNKLENBQUM7SUFDSixDQUFDO3VHQS9DVSxjQUFjOzJHQUFkLGNBQWMsY0FERixNQUFNOzsyRkFDbEIsY0FBYztrQkFEMUIsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgR2V0SGVhZGVycyB9IGZyb20gXCJAbngtZGRkL2hhc3VyYVwiO1xuaW1wb3J0IHsgQXBvbGxvQ2xpZW50TWFuYWdlclNlcnZpY2UgfSBmcm9tIFwiQG54LWRkZC9oYXN1cmFcIjtcbmltcG9ydCB7IE9ic2VydmFibGUsIHN3aXRjaE1hcCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBncWwgfSBmcm9tIFwiYXBvbGxvLWFuZ3VsYXJcIjtcbmltcG9ydCB7IERvY3VtZW50Tm9kZSwgZ2V0SW50cm9zcGVjdGlvblF1ZXJ5IH0gZnJvbSBcImdyYXBocWxcIjtcblxuZXhwb3J0IGludGVyZmFjZSBFeGVjdXRhYmxlR3JhcGhxbCB7XG4gIGVuZHBvaW50OiBzdHJpbmc7XG4gIHF1ZXJ5OiBzdHJpbmcgfCBEb2N1bWVudE5vZGU7XG4gIHZhcmlhYmxlczogb2JqZWN0O1xuICBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgR2V0SGVhZGVycztcbn1cblxuZXhwb3J0IHR5cGUgRXhlY3V0YWJsZUdldFNjaGVtYUdyYXBocWwgPSBQaWNrPEV4ZWN1dGFibGVHcmFwaHFsLCAnZW5kcG9pbnQnIHwgJ2hlYWRlcnMnPjtcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgR3JhcGhxbFNlcnZpY2Uge1xuICByZWFkb25seSBhcG9sbG9DbGllbnRNYW5hZ2VyID0gaW5qZWN0KEFwb2xsb0NsaWVudE1hbmFnZXJTZXJ2aWNlKTtcblxuICAvKipcbiAgICogQFRPRE9cbiAgICogdGhpcy5hcG9sbG9NdWx0aS5nZXRDbGllbnTjga9lbmRwb2ludOWNmOS9jeOBp0Fwb2xsb0NsaWVudOOCkueuoeeQhuOBl+OBpuOBhOOCi+OBn+OCgeOAgVxuICAgKiBfcXVlcnkuZ3JhcGhxbC5oZWFkZXJz44Gr6KqN6Ki85oOF5aCx44Gq44Gp44GM5ZCr44G+44KM44Gm44GE44Gq44GE44Oq44Kv44Ko44K544OI44GM5Yid44KB44Gr5p2l44KL44Go44CBXG4gICAqIHttZXNzYWdlOiAnbm8gc3Vic2NyaXB0aW9ucyBleGlzdH3jga7jgojjgYbjgarjgqjjg6njg7zjgYzlh7rjgovjgIJcbiAgICogSGVhZGVyc+OBjOabtOaWsOOBleOCjOOCi+OBn+OBs+OBq+OAgUFwb2xsb0NsaWVudOOCkuWGjeeUn+aIkOOBmeOCi+OCiOOBhuOBquWHpueQhuOCguW/heimgeOAglxuICAgKi9cbiAgc3Vic2NyaWJlKGdyYXBocWw6IEV4ZWN1dGFibGVHcmFwaHFsKSB7XG4gICAgY29uc3QgZ2V0SGVhZGVyczogR2V0SGVhZGVycyA9IHR5cGVvZiBncmFwaHFsLmhlYWRlcnMgPT09ICdmdW5jdGlvbicgXG4gICAgICA/IGdyYXBocWwuaGVhZGVycyBcbiAgICAgIDogKCkgPT4gUHJvbWlzZS5yZXNvbHZlKGdyYXBocWwuaGVhZGVycyBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTtcbiAgICByZXR1cm4gdGhpcy5hcG9sbG9DbGllbnRNYW5hZ2VyLmdldENsaWVudChncmFwaHFsLmVuZHBvaW50LCBnZXRIZWFkZXJzKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKChjbGllbnQpID0+IGNsaWVudC5zdWJzY3JpYmU8UmVjb3JkPHN0cmluZywgYW55Pj4oe1xuICAgICAgICBxdWVyeTogZ3FsYCR7Z3JhcGhxbC5xdWVyeX1gLFxuICAgICAgICB2YXJpYWJsZXM6IGdyYXBocWwudmFyaWFibGVzLFxuICAgICAgICBmZXRjaFBvbGljeTogJ25ldHdvcmstb25seScsXG4gICAgICB9KSksXG4gICAgKTtcbiAgfVxuXG4gIHF1ZXJ5KGdyYXBocWw6IEV4ZWN1dGFibGVHcmFwaHFsKSB7XG4gICAgY29uc3QgZ2V0SGVhZGVyczogR2V0SGVhZGVycyA9IHR5cGVvZiBncmFwaHFsLmhlYWRlcnMgPT09ICdmdW5jdGlvbicgXG4gICAgICA/IGdyYXBocWwuaGVhZGVycyBcbiAgICAgIDogKCkgPT4gUHJvbWlzZS5yZXNvbHZlKGdyYXBocWwuaGVhZGVycyBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTtcbiAgICByZXR1cm4gdGhpcy5hcG9sbG9DbGllbnRNYW5hZ2VyLmdldENsaWVudChncmFwaHFsLmVuZHBvaW50LCBnZXRIZWFkZXJzKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKChjbGllbnQpID0+IGNsaWVudC5xdWVyeTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pih7XG4gICAgICAgIHF1ZXJ5OiBncWxgJHtncmFwaHFsLnF1ZXJ5fWAsXG4gICAgICAgIHZhcmlhYmxlczogZ3JhcGhxbC52YXJpYWJsZXMsXG4gICAgICAgIGZldGNoUG9saWN5OiAnbmV0d29yay1vbmx5JyxcbiAgICAgIH0pKSxcbiAgICApO1xuICB9XG5cbiAgZ2V0U2NoZW1hKGdyYXBocWw6IEV4ZWN1dGFibGVHZXRTY2hlbWFHcmFwaHFsKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBnZXRIZWFkZXJzOiBHZXRIZWFkZXJzID0gdHlwZW9mIGdyYXBocWwuaGVhZGVycyA9PT0gJ2Z1bmN0aW9uJyBcbiAgICAgID8gZ3JhcGhxbC5oZWFkZXJzIFxuICAgICAgOiAoKSA9PiBQcm9taXNlLnJlc29sdmUoZ3JhcGhxbC5oZWFkZXJzIGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz4pO1xuICAgIHJldHVybiB0aGlzLmFwb2xsb0NsaWVudE1hbmFnZXIuZ2V0Q2xpZW50KGdyYXBocWwuZW5kcG9pbnQsIGdldEhlYWRlcnMpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKGNsaWVudCkgPT4gY2xpZW50LnF1ZXJ5PFJlY29yZDxzdHJpbmcsIGFueT4+KHtcbiAgICAgICAgcXVlcnk6IGdxbGAke2dldEludHJvc3BlY3Rpb25RdWVyeSgpfWAsXG4gICAgICAgIHZhcmlhYmxlczoge30sXG4gICAgICAgIGZldGNoUG9saWN5OiAnbmV0d29yay1vbmx5JyxcbiAgICAgIH0pKSxcbiAgICApO1xuICB9XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHhtYWNoaW5hLWNvbW1vbi1zZXJ2aWNlcy1ncmFwaHFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQHh4bWFjaGluYS9jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9ncmFwaHFsL3h4bWFjaGluYS1jb21tb24tc2VydmljZXMtZ3JhcGhxbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"xxmachina-common-services-graphql.mjs","sources":["../tmp-esm2022/services/graphql/graphql.service.js","../tmp-esm2022/services/graphql/subscription-splitter/ast-splitter.service.js","../tmp-esm2022/services/graphql/graphql-enhanced.service.js","../tmp-esm2022/services/graphql/graphql-enhanced.provider.js","../tmp-esm2022/services/graphql/xxmachina-common-services-graphql.js"],"sourcesContent":["import { inject, Injectable } from \"@angular/core\";\nimport { ApolloClientManagerService } from \"@nx-ddd/hasura\";\nimport { switchMap } from \"rxjs\";\nimport { gql } from \"apollo-angular\";\nimport { getIntrospectionQuery } from \"graphql\";\nimport * as i0 from \"@angular/core\";\nexport class GraphqlService {\n apolloClientManager = inject(ApolloClientManagerService);\n /**\n * @TODO\n * this.apolloMulti.getClientはendpoint単位でApolloClientを管理しているため、\n * _query.graphql.headersに認証情報などが含まれていないリクエストが初めに来ると、\n * {message: 'no subscriptions exist}のようなエラーが出る。\n * Headersが更新されるたびに、ApolloClientを再生成するような処理も必要。\n */\n subscribe(graphql) {\n const getHeaders = typeof graphql.headers === 'function'\n ? graphql.headers\n : () => Promise.resolve(graphql.headers);\n return this.apolloClientManager.getClient(graphql.endpoint, getHeaders).pipe(switchMap((client) => client.subscribe({\n query: gql `${graphql.query}`,\n variables: graphql.variables,\n fetchPolicy: 'network-only',\n })));\n }\n query(graphql) {\n const getHeaders = typeof graphql.headers === 'function'\n ? graphql.headers\n : () => Promise.resolve(graphql.headers);\n return this.apolloClientManager.getClient(graphql.endpoint, getHeaders).pipe(switchMap((client) => client.query({\n query: gql `${graphql.query}`,\n variables: graphql.variables,\n fetchPolicy: 'network-only',\n })));\n }\n getSchema(graphql) {\n const getHeaders = typeof graphql.headers === 'function'\n ? graphql.headers\n : () => Promise.resolve(graphql.headers);\n return this.apolloClientManager.getClient(graphql.endpoint, getHeaders).pipe(switchMap((client) => client.query({\n query: gql `${getIntrospectionQuery()}`,\n variables: {},\n fetchPolicy: 'network-only',\n })));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: GraphqlService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: GraphqlService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: GraphqlService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQHh4bWFjaGluYS9jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9ncmFwaHFsL2dyYXBocWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQWMsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sU0FBUyxDQUFDOztBQVk5RCxNQUFNLE9BQU8sY0FBYztJQUNoQixtQkFBbUIsR0FBRyxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUVsRTs7Ozs7O09BTUc7SUFDSCxTQUFTLENBQUMsT0FBMEI7UUFDbEMsTUFBTSxVQUFVLEdBQWUsT0FBTyxPQUFPLENBQUMsT0FBTyxLQUFLLFVBQVU7WUFDbEUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPO1lBQ2pCLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFpQyxDQUFDLENBQUM7UUFDckUsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUMxRSxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQXNCO1lBQzFELEtBQUssRUFBRSxHQUFHLENBQUEsR0FBRyxPQUFPLENBQUMsS0FBSyxFQUFFO1lBQzVCLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztZQUM1QixXQUFXLEVBQUUsY0FBYztTQUM1QixDQUFDLENBQUMsQ0FDSixDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxPQUEwQjtRQUM5QixNQUFNLFVBQVUsR0FBZSxPQUFPLE9BQU8sQ0FBQyxPQUFPLEtBQUssVUFBVTtZQUNsRSxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU87WUFDakIsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQWlDLENBQUMsQ0FBQztRQUNyRSxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQzFFLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBc0I7WUFDdEQsS0FBSyxFQUFFLEdBQUcsQ0FBQSxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUU7WUFDNUIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO1lBQzVCLFdBQVcsRUFBRSxjQUFjO1NBQzVCLENBQUMsQ0FBQyxDQUNKLENBQUM7SUFDSixDQUFDO0lBRUQsU0FBUyxDQUFDLE9BQW1DO1FBQzNDLE1BQU0sVUFBVSxHQUFlLE9BQU8sT0FBTyxDQUFDLE9BQU8sS0FBSyxVQUFVO1lBQ2xFLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTztZQUNqQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBaUMsQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FDMUUsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFzQjtZQUN0RCxLQUFLLEVBQUUsR0FBRyxDQUFBLEdBQUcscUJBQXFCLEVBQUUsRUFBRTtZQUN0QyxTQUFTLEVBQUUsRUFBRTtZQUNiLFdBQVcsRUFBRSxjQUFjO1NBQzVCLENBQUMsQ0FBQyxDQUNKLENBQUM7SUFDSixDQUFDO3VHQS9DVSxjQUFjOzJHQUFkLGNBQWMsY0FERixNQUFNOzsyRkFDbEIsY0FBYztrQkFEMUIsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgR2V0SGVhZGVycyB9IGZyb20gXCJAbngtZGRkL2hhc3VyYVwiO1xuaW1wb3J0IHsgQXBvbGxvQ2xpZW50TWFuYWdlclNlcnZpY2UgfSBmcm9tIFwiQG54LWRkZC9oYXN1cmFcIjtcbmltcG9ydCB7IE9ic2VydmFibGUsIHN3aXRjaE1hcCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBncWwgfSBmcm9tIFwiYXBvbGxvLWFuZ3VsYXJcIjtcbmltcG9ydCB7IERvY3VtZW50Tm9kZSwgZ2V0SW50cm9zcGVjdGlvblF1ZXJ5IH0gZnJvbSBcImdyYXBocWxcIjtcblxuZXhwb3J0IGludGVyZmFjZSBFeGVjdXRhYmxlR3JhcGhxbCB7XG4gIGVuZHBvaW50OiBzdHJpbmc7XG4gIHF1ZXJ5OiBzdHJpbmcgfCBEb2N1bWVudE5vZGU7XG4gIHZhcmlhYmxlczogb2JqZWN0O1xuICBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgR2V0SGVhZGVycztcbn1cblxuZXhwb3J0IHR5cGUgRXhlY3V0YWJsZUdldFNjaGVtYUdyYXBocWwgPSBQaWNrPEV4ZWN1dGFibGVHcmFwaHFsLCAnZW5kcG9pbnQnIHwgJ2hlYWRlcnMnPjtcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgR3JhcGhxbFNlcnZpY2Uge1xuICByZWFkb25seSBhcG9sbG9DbGllbnRNYW5hZ2VyID0gaW5qZWN0KEFwb2xsb0NsaWVudE1hbmFnZXJTZXJ2aWNlKTtcblxuICAvKipcbiAgICogQFRPRE9cbiAgICogdGhpcy5hcG9sbG9NdWx0aS5nZXRDbGllbnTjga9lbmRwb2ludOWNmOS9jeOBp0Fwb2xsb0NsaWVudOOCkueuoeeQhuOBl+OBpuOBhOOCi+OBn+OCgeOAgVxuICAgKiBfcXVlcnkuZ3JhcGhxbC5oZWFkZXJz44Gr6KqN6Ki85oOF5aCx44Gq44Gp44GM5ZCr44G+44KM44Gm44GE44Gq44GE44Oq44Kv44Ko44K544OI44GM5Yid44KB44Gr5p2l44KL44Go44CBXG4gICAqIHttZXNzYWdlOiAnbm8gc3Vic2NyaXB0aW9ucyBleGlzdH3jga7jgojjgYbjgarjgqjjg6njg7zjgYzlh7rjgovjgIJcbiAgICogSGVhZGVyc+OBjOabtOaWsOOBleOCjOOCi+OBn+OBs+OBq+OAgUFwb2xsb0NsaWVudOOCkuWGjeeUn+aIkOOBmeOCi+OCiOOBhuOBquWHpueQhuOCguW/heimgeOAglxuICAgKi9cbiAgc3Vic2NyaWJlKGdyYXBocWw6IEV4ZWN1dGFibGVHcmFwaHFsKSB7XG4gICAgY29uc3QgZ2V0SGVhZGVyczogR2V0SGVhZGVycyA9IHR5cGVvZiBncmFwaHFsLmhlYWRlcnMgPT09ICdmdW5jdGlvbicgXG4gICAgICA/IGdyYXBocWwuaGVhZGVycyBcbiAgICAgIDogKCkgPT4gUHJvbWlzZS5yZXNvbHZlKGdyYXBocWwuaGVhZGVycyBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTtcbiAgICByZXR1cm4gdGhpcy5hcG9sbG9DbGllbnRNYW5hZ2VyLmdldENsaWVudChncmFwaHFsLmVuZHBvaW50LCBnZXRIZWFkZXJzKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKChjbGllbnQpID0+IGNsaWVudC5zdWJzY3JpYmU8UmVjb3JkPHN0cmluZywgYW55Pj4oe1xuICAgICAgICBxdWVyeTogZ3FsYCR7Z3JhcGhxbC5xdWVyeX1gLFxuICAgICAgICB2YXJpYWJsZXM6IGdyYXBocWwudmFyaWFibGVzLFxuICAgICAgICBmZXRjaFBvbGljeTogJ25ldHdvcmstb25seScsXG4gICAgICB9KSksXG4gICAgKTtcbiAgfVxuXG4gIHF1ZXJ5KGdyYXBocWw6IEV4ZWN1dGFibGVHcmFwaHFsKSB7XG4gICAgY29uc3QgZ2V0SGVhZGVyczogR2V0SGVhZGVycyA9IHR5cGVvZiBncmFwaHFsLmhlYWRlcnMgPT09ICdmdW5jdGlvbicgXG4gICAgICA/IGdyYXBocWwuaGVhZGVycyBcbiAgICAgIDogKCkgPT4gUHJvbWlzZS5yZXNvbHZlKGdyYXBocWwuaGVhZGVycyBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTtcbiAgICByZXR1cm4gdGhpcy5hcG9sbG9DbGllbnRNYW5hZ2VyLmdldENsaWVudChncmFwaHFsLmVuZHBvaW50LCBnZXRIZWFkZXJzKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKChjbGllbnQpID0+IGNsaWVudC5xdWVyeTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pih7XG4gICAgICAgIHF1ZXJ5OiBncWxgJHtncmFwaHFsLnF1ZXJ5fWAsXG4gICAgICAgIHZhcmlhYmxlczogZ3JhcGhxbC52YXJpYWJsZXMsXG4gICAgICAgIGZldGNoUG9saWN5OiAnbmV0d29yay1vbmx5JyxcbiAgICAgIH0pKSxcbiAgICApO1xuICB9XG5cbiAgZ2V0U2NoZW1hKGdyYXBocWw6IEV4ZWN1dGFibGVHZXRTY2hlbWFHcmFwaHFsKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBnZXRIZWFkZXJzOiBHZXRIZWFkZXJzID0gdHlwZW9mIGdyYXBocWwuaGVhZGVycyA9PT0gJ2Z1bmN0aW9uJyBcbiAgICAgID8gZ3JhcGhxbC5oZWFkZXJzIFxuICAgICAgOiAoKSA9PiBQcm9taXNlLnJlc29sdmUoZ3JhcGhxbC5oZWFkZXJzIGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz4pO1xuICAgIHJldHVybiB0aGlzLmFwb2xsb0NsaWVudE1hbmFnZXIuZ2V0Q2xpZW50KGdyYXBocWwuZW5kcG9pbnQsIGdldEhlYWRlcnMpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKGNsaWVudCkgPT4gY2xpZW50LnF1ZXJ5PFJlY29yZDxzdHJpbmcsIGFueT4+KHtcbiAgICAgICAgcXVlcnk6IGdxbGAke2dldEludHJvc3BlY3Rpb25RdWVyeSgpfWAsXG4gICAgICAgIHZhcmlhYmxlczoge30sXG4gICAgICAgIGZldGNoUG9saWN5OiAnbmV0d29yay1vbmx5JyxcbiAgICAgIH0pKSxcbiAgICApO1xuICB9XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport { parse, print, visit, Kind, OperationTypeNode } from 'graphql';\nimport { combineLatest, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\n/**\n * AST-based subscription splitter service\n * GraphQL ASTを使用して正確にサブスクリプションを分割\n */\nexport class AstSubscriptionSplitterService {\n splitSubscription(query) {\n const document = typeof query === 'string' ? parse(query) : query;\n // Find the subscription operation\n let subscriptionOp;\n visit(document, {\n OperationDefinition(node) {\n if (node.operation === OperationTypeNode.SUBSCRIPTION) {\n subscriptionOp = node;\n }\n }\n });\n if (!subscriptionOp || !subscriptionOp.selectionSet.selections.length) {\n return [];\n }\n const results = [];\n // Process each field in the subscription\n subscriptionOp.selectionSet.selections.forEach(selection => {\n if (selection.kind === Kind.FIELD) {\n const field = selection;\n const fieldName = field.alias?.value || field.name.value;\n // Extract variables used in this field\n const usedVariables = this.extractUsedVariables(field);\n // Create a new subscription with only this field and its used variables\n const newDoc = {\n kind: Kind.DOCUMENT,\n definitions: [{\n kind: Kind.OPERATION_DEFINITION,\n operation: OperationTypeNode.SUBSCRIPTION,\n name: subscriptionOp.name ? {\n kind: Kind.NAME,\n value: subscriptionOp.name.value\n } : undefined,\n variableDefinitions: this.filterVariableDefinitions(subscriptionOp.variableDefinitions || [], usedVariables),\n selectionSet: {\n kind: Kind.SELECTION_SET,\n selections: [field]\n }\n }]\n };\n results.push({\n fieldName: field.name.value,\n query: print(newDoc)\n });\n }\n });\n return results;\n }\n /**\n * Extract variables used in a field and its subfields\n */\n extractUsedVariables(field) {\n const usedVars = new Set();\n // Visit all nodes in the field to find variable references\n visit(field, {\n Variable(node) {\n usedVars.add(node.name.value);\n }\n });\n return usedVars;\n }\n /**\n * Filter variable definitions to only include used variables\n */\n filterVariableDefinitions(definitions, usedVariables) {\n return definitions.filter(def => usedVariables.has(def.variable.name.value));\n }\n /**\n * Combine multiple observables from split queries\n */\n combineResults(results, fieldNames) {\n if (results.length === 0) {\n return of({});\n }\n if (results.length === 1) {\n return results[0];\n }\n return combineLatest(results).pipe(map(data => {\n const combined = {};\n fieldNames.forEach((fieldName, index) => {\n if (data[index] && typeof data[index] === 'object') {\n Object.keys(data[index]).forEach(key => {\n if (combined[key]) {\n if (Array.isArray(combined[key])) {\n combined[key] = [...combined[key], ...(Array.isArray(data[index][key]) ? data[index][key] : [data[index][key]])];\n }\n else {\n combined[key] = [combined[key], data[index][key]];\n }\n }\n else {\n combined[key] = data[index][key];\n }\n });\n }\n });\n return combined;\n }));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: AstSubscriptionSplitterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: AstSubscriptionSplitterService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: AstSubscriptionSplitterService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN0LXNwbGl0dGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AeHhtYWNoaW5hL2NvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2dyYXBocWwvc3Vic2NyaXB0aW9uLXNwbGl0dGVyL2FzdC1zcGxpdHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUVMLEtBQUssRUFDTCxLQUFLLEVBQ0wsS0FBSyxFQU1MLElBQUksRUFDSixpQkFBaUIsRUFDbEIsTUFBTSxTQUFTLENBQUM7QUFDakIsT0FBTyxFQUFjLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUVyQzs7O0dBR0c7QUFFSCxNQUFNLE9BQU8sOEJBQThCO0lBRXpDLGlCQUFpQixDQUFDLEtBQTRCO1FBQzVDLE1BQU0sUUFBUSxHQUFHLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFFbEUsa0NBQWtDO1FBQ2xDLElBQUksY0FBbUQsQ0FBQztRQUN4RCxLQUFLLENBQUMsUUFBUSxFQUFFO1lBQ2QsbUJBQW1CLENBQUMsSUFBSTtnQkFDdEIsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO29CQUN0RCxjQUFjLEdBQUcsSUFBSSxDQUFDO2dCQUN4QixDQUFDO1lBQ0gsQ0FBQztTQUNGLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN0RSxPQUFPLEVBQUUsQ0FB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LFFBQVEsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzt1R0E3SFUsOEJBQThCOzJHQUE5Qiw4QkFBOEIsY0FEakIsTUFBTTs7MkZBQ25CLDhCQUE4QjtrQkFEMUMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBcbiAgRG9jdW1lbnROb2RlLCBcbiAgcGFyc2UsIFxuICBwcmludCxcbiAgdmlzaXQsXG4gIE9wZXJhdGlvbkRlZmluaXRpb25Ob2RlLFxuICBGaWVsZE5vZGUsXG4gIFZhcmlhYmxlRGVmaW5pdGlvbk5vZGUsXG4gIFNlbGVjdGlvblNldE5vZGUsXG4gIEFyZ3VtZW50Tm9kZSxcbiAgS2luZCxcbiAgT3BlcmF0aW9uVHlwZU5vZGVcbn0gZnJvbSAnZ3JhcGhxbCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0LCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vKipcbiAqIEFTVC1iYXNlZCBzdWJzY3JpcHRpb24gc3BsaXR0ZXIgc2VydmljZVxuICogR3JhcGhRTCBBU1TjgpLkvb/nlKjjgZfjgabmraPnorrjgavjgrXjg5bjgrnjgq/jg6rjg5fjgrfjg6fjg7PjgpLliIblibJcbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBc3RTdWJzY3JpcHRpb25TcGxpdHRlclNlcnZpY2Uge1xuICBcbiAgc3BsaXRTdWJzY3JpcHRpb24ocXVlcnk6IHN0cmluZyB8IERvY3VtZW50Tm9kZSk6IHsgZmllbGROYW1lOiBzdHJpbmc7IHF1ZXJ5OiBzdHJpbmcgfVtdIHtcbiAgICBjb25zdCBkb2N1bWVudCA9IHR5cGVvZiBxdWVyeSA9PT0gJ3N0cmluZycgPyBwYXJzZShxdWVyeSkgOiBxdWVyeTtcbiAgICBcbiAgICAvLyBGaW5kIHRoZSBzdWJzY3JpcHRpb24gb3BlcmF0aW9uXG4gICAgbGV0IHN1YnNjcmlwdGlvbk9wOiBPcGVyYXRpb25EZWZpbml0aW9uTm9kZSB8IHVuZGVmaW5lZDtcbiAgICB2aXNpdChkb2N1bWVudCwge1xuICAgICAgT3BlcmF0aW9uRGVmaW5pdGlvbihub2RlKSB7XG4gICAgICAgIGlmIChub2RlLm9wZXJhdGlvbiA9PT0gT3BlcmF0aW9uVHlwZU5vZGUuU1VCU0NSSVBUSU9OKSB7XG4gICAgICAgICAgc3Vic2NyaXB0aW9uT3AgPSBub2RlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgXG4gICAgaWYgKCFzdWJzY3JpcHRpb25PcCB8fCAhc3Vic2NyaXB0aW9uT3Auc2VsZWN0aW9uU2V0LnNlbGVjdGlvbnMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIFxuICAgIGNvbnN0IHJlc3VsdHM6IHsgZmllbGROYW1lOiBzdHJpbmc7IHF1ZXJ5OiBzdHJpbmcgfVtdID0gW107XG4gICAgXG4gICAgLy8gUHJvY2VzcyBlYWNoIGZpZWxkIGluIHRoZSBzdWJzY3JpcHRpb25cbiAgICBzdWJzY3JpcHRpb25PcC5zZWxlY3Rpb25TZXQuc2VsZWN0aW9ucy5mb3JFYWNoKHNlbGVjdGlvbiA9PiB7XG4gICAgICBpZiAoc2VsZWN0aW9uLmtpbmQgPT09IEtpbmQuRklFTEQpIHtcbiAgICAgICAgY29uc3QgZmllbGQgPSBzZWxlY3Rpb24gYXMgRmllbGROb2RlO1xuICAgICAgICBjb25zdCBmaWVsZE5hbWUgPSBmaWVsZC5hbGlhcz8udmFsdWUgfHwgZmllbGQubmFtZS52YWx1ZTtcbiAgICAgICAgXG4gICAgICAgIC8vIEV4dHJhY3QgdmFyaWFibGVzIHVzZWQgaW4gdGhpcyBmaWVsZFxuICAgICAgICBjb25zdCB1c2VkVmFyaWFibGVzID0gdGhpcy5leHRyYWN0VXNlZFZhcmlhYmxlcyhmaWVsZCk7XG4gICAgICAgIFxuICAgICAgICAvLyBDcmVhdGUgYSBuZXcgc3Vic2NyaXB0aW9uIHdpdGggb25seSB0aGlzIGZpZWxkIGFuZCBpdHMgdXNlZCB2YXJpYWJsZXNcbiAgICAgICAgY29uc3QgbmV3RG9jOiBEb2N1bWVudE5vZGUgPSB7XG4gICAgICAgICAga2luZDogS2luZC5ET0NVTUVOVCxcbiAgICAgICAgICBkZWZpbml0aW9uczogW3tcbiAgICAgICAgICAgIGtpbmQ6IEtpbmQuT1BFUkFUSU9OX0RFRklOSVRJT04sXG4gICAgICAgICAgICBvcGVyYXRpb246IE9wZXJhdGlvblR5cGVOb2RlLlNVQlNDUklQVElPTixcbiAgICAgICAgICAgIG5hbWU6IHN1YnNjcmlwdGlvbk9wLm5hbWUgPyB7XG4gICAgICAgICAgICAgIGtpbmQ6IEtpbmQuTkFNRSxcbiAgICAgICAgICAgICAgdmFsdWU6IHN1YnNjcmlwdGlvbk9wLm5hbWUudmFsdWVcbiAgICAgICAgICAgIH0gOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB2YXJpYWJsZURlZmluaXRpb25zOiB0aGlzLmZpbHRlclZhcmlhYmxlRGVmaW5pdGlvbnMoXG4gICAgICAgICAgICAgIHN1YnNjcmlwdGlvbk9wLnZhcmlhYmxlRGVmaW5pdGlvbnMgfHwgW10sXG4gICAgICAgICAgICAgIHVzZWRWYXJpYWJsZXNcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzZWxlY3Rpb25TZXQ6IHtcbiAgICAgICAgICAgICAga2luZDogS2luZC5TRUxFQ1RJT05fU0VULFxuICAgICAgICAgICAgICBzZWxlY3Rpb25zOiBbZmllbGRdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfV1cbiAgICAgICAgfTtcbiAgICAgICAgXG4gICAgICAgIHJlc3VsdHMucHVzaCh7XG4gICAgICAgICAgZmllbGROYW1lOiBmaWVsZC5uYW1lLnZhbHVlLFxuICAgICAgICAgIHF1ZXJ5OiBwcmludChuZXdEb2MpXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIFxuICAgIHJldHVybiByZXN1bHRzO1xuICB9XG4gIFxuICAvKipcbiAgICogRXh0cmFjdCB2YXJpYWJsZXMgdXNlZCBpbiBhIGZpZWxkIGFuZCBpdHMgc3ViZmllbGRzXG4gICAqL1xuICBwcml2YXRlIGV4dHJhY3RVc2VkVmFyaWFibGVzKGZpZWxkOiBGaWVsZE5vZGUpOiBTZXQ8c3RyaW5nPiB7XG4gICAgY29uc3QgdXNlZFZhcnMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICBcbiAgICAvLyBWaXNpdCBhbGwgbm9kZXMgaW4gdGhlIGZpZWxkIHRvIGZpbmQgdmFyaWFibGUgcmVmZXJlbmNlc1xuICAgIHZpc2l0KGZpZWxkLCB7XG4gICAgICBWYXJpYWJsZShub2RlKSB7XG4gICAgICAgIHVzZWRWYXJzLmFkZChub2RlLm5hbWUudmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIFxuICAgIHJldHVybiB1c2VkVmFycztcbiAgfVxuICBcbiAgLyoqXG4gICAqIEZpbHRlciB2YXJpYWJsZSBkZWZpbml0aW9ucyB0byBvbmx5IGluY2x1ZGUgdXNlZCB2YXJpYWJsZXNcbiAgICovXG4gIHByaXZhdGUgZmlsdGVyVmFyaWFibGVEZWZpbml0aW9ucyhcbiAgICBkZWZpbml0aW9uczogUmVhZG9ubHlBcnJheTxWYXJpYWJsZURlZmluaXRpb25Ob2RlPixcbiAgICB1c2VkVmFyaWFibGVzOiBTZXQ8c3RyaW5nPlxuICApOiBWYXJpYWJsZURlZmluaXRpb25Ob2RlW10ge1xuICAgIHJldHVybiBkZWZpbml0aW9ucy5maWx0ZXIoZGVmID0+IFxuICAgICAgdXNlZFZhcmlhYmxlcy5oYXMoZGVmLnZhcmlhYmxlLm5hbWUudmFsdWUpXG4gICAgKTtcbiAgfVxuICBcbiAgLyoqXG4gICAqIENvbWJpbmUgbXVsdGlwbGUgb2JzZXJ2YWJsZXMgZnJvbSBzcGxpdCBxdWVyaWVzXG4gICAqL1xuICBjb21iaW5lUmVzdWx0cyhcbiAgICByZXN1bHRzOiBPYnNlcnZhYmxlPGFueT5bXSxcbiAgICBmaWVsZE5hbWVzOiBzdHJpbmdbXVxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGlmIChyZXN1bHRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIG9mKHt9KTtcbiAgICB9XG4gICAgXG4gICAgaWYgKHJlc3VsdHMubGVuZ3RoID09PSAxKSB7XG4gICAgICByZXR1cm4gcmVzdWx0c1swXTtcbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QocmVzdWx0cykucGlwZShcbiAgICAgIG1hcChkYXRhID0+IHtcbiAgICAgICAgY29uc3QgY29tYmluZWQ6IGFueSA9IHt9O1xuICAgICAgICBmaWVsZE5hbWVzLmZvckVhY2goKGZpZWxkTmFtZSwgaW5kZXgpID0+IHtcbiAgICAgICAgICBpZiAoZGF0YVtpbmRleF0gJiYgdHlwZW9mIGRhdGFbaW5kZXhdID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgT2JqZWN0LmtleXMoZGF0YVtpbmRleF0pLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgICAgaWYgKGNvbWJpbmVkW2tleV0pIHtcbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjb21iaW5lZFtrZXldKSkge1xuICAgICAgICAgICAgICAgICAgY29tYmluZWRba2V5XSA9IFsuLi5jb21iaW5lZFtrZXldLCAuLi4oQXJyYXkuaXNBcnJheShkYXRhW2luZGV4XVtrZXldKSA/IGRhdGFbaW5kZXhdW2tleV0gOiBbZGF0YVtpbmRleF1ba2V5XV0pXTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgY29tYmluZWRba2V5XSA9IFtjb21iaW5lZFtrZXldLCBkYXRhW2luZGV4XVtrZXldXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29tYmluZWRba2V5XSA9IGRhdGFbaW5kZXhdW2tleV07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBjb21iaW5lZDtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufSJdfQ==","import { inject, Injectable } from '@angular/core';\nimport { combineLatest } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { GraphqlService } from './graphql.service';\nimport { AstSubscriptionSplitterService } from './subscription-splitter/ast-splitter.service';\nimport * as i0 from \"@angular/core\";\n/**\n * GraphqlServiceを拡張して、subscription分割機能を追加\n *\n * GraphQL/Hasuraの制限「1つのsubscriptionには1つのトップレベルフィールドのみ」を回避し、\n * 複数のフィールドを含むsubscriptionを自動的に分割して並列実行します。\n */\nexport class GraphqlEnhancedService extends GraphqlService {\n splitter = inject(AstSubscriptionSplitterService);\n /**\n * subscriptionクエリを実行\n * デフォルトでsubscriptionは自動的に分割される\n */\n subscribe(graphql) {\n // enableSplittingが明示的にfalseの場合、またはsubscriptionでない場合は通常の処理\n const shouldSplit = graphql.enableSplitting !== false && this.isSubscription(graphql.query);\n if (!shouldSplit) {\n // 未使用変数を削除してから実行\n const filteredGraphql = this.removeUnusedVariables(graphql);\n return super.subscribe(filteredGraphql);\n }\n // subscriptionを分割して実行\n return this.subscribeSplit(graphql);\n }\n /**\n * subscriptionクエリを分割して並列実行し、結果を結合\n */\n subscribeSplit(graphql) {\n const queryStr = typeof graphql.query === 'string' ? graphql.query : graphql.query.loc?.source?.body || '';\n // クエリを分割\n const splitQueries = this.splitter.splitSubscription(graphql.query);\n // 分割が不要な場合(単一フィールド)\n if (splitQueries.length <= 1) {\n return super.subscribe(graphql);\n }\n // 各クエリを並列実行\n const observables = splitQueries.map((splitQuery) => {\n // 使用される変数のみを抽出\n const usedVars = this.extractUsedVariablesFromQuery(splitQuery.query);\n const filteredVariables = this.filterVariableValues(graphql.variables, usedVars);\n const splitGraphql = {\n ...graphql,\n query: splitQuery.query,\n variables: filteredVariables\n };\n return super.subscribe(splitGraphql).pipe(map(result => ({\n fieldName: splitQuery.fieldName,\n result\n })));\n });\n // 結果を結合\n return combineLatest(observables).pipe(map(results => {\n const combinedData = {};\n results.forEach(({ fieldName, result }) => {\n const data = result.data || result;\n if (data[fieldName] !== undefined) {\n combinedData[fieldName] = data[fieldName];\n }\n });\n return {\n data: combinedData,\n loading: false,\n networkStatus: 7\n };\n }));\n }\n /**\n * クエリがsubscriptionかどうかを判定\n */\n isSubscription(query) {\n const queryStr = typeof query === 'string' ? query : query.loc?.source?.body || '';\n return queryStr.trim().startsWith('subscription');\n }\n /**\n * クエリから使用されている変数を抽出\n */\n extractUsedVariablesFromQuery(query) {\n const variables = new Set();\n const regex = /\\$(\\w+)/g;\n let match;\n while ((match = regex.exec(query)) !== null) {\n variables.add(match[1]);\n }\n return variables;\n }\n /**\n * 変数値から使用される変数のみをフィルタリング\n */\n filterVariableValues(variables, usedVars) {\n const filtered = {};\n for (const [key, value] of Object.entries(variables)) {\n if (usedVars.has(key)) {\n filtered[key] = value;\n }\n }\n return filtered;\n }\n /**\n * GraphQLクエリから未使用の変数を削除\n */\n removeUnusedVariables(graphql) {\n if (!graphql.variables || Object.keys(graphql.variables).length === 0) {\n return graphql;\n }\n const queryStr = typeof graphql.query === 'string' ? graphql.query : graphql.query.loc?.source?.body || '';\n const usedVars = this.extractUsedVariablesFromQuery(queryStr);\n const filteredVariables = this.filterVariableValues(graphql.variables, usedVars);\n return {\n ...graphql,\n variables: filteredVariables\n };\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: GraphqlEnhancedService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: GraphqlEnhancedService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: GraphqlEnhancedService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC1lbmhhbmNlZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQHh4bWFjaGluYS9jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9ncmFwaHFsL2dyYXBocWwtZW5oYW5jZWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWMsYUFBYSxFQUFNLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsY0FBYyxFQUFxQixNQUFNLG1CQUFtQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOztBQU85Rjs7Ozs7R0FLRztBQUVILE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxjQUFjO0lBQ3ZDLFFBQVEsR0FBRyxNQUFNLENBQUMsOEJBQThCLENBQUMsQ0FBQztJQUVuRTs7O09BR0c7SUFDTSxTQUFTLENBQUMsT0FBdUM7UUFDeEQsMERBQTBEO1FBQzFELE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxlQUFlLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTVGLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQixpQkFBaUI7WUFDakIsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzVELE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBRUQsc0JBQXNCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7O09BRUc7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WUFDTCxHQUFHLE9BQU87WUFDVixTQUFTLEVBQUUsaUJBQWlCO1NBQzdCLENBQUM7SUFDSixDQUFDO3VHQXBJVSxzQkFBc0I7MkdBQXRCLHNCQUFzQixjQURULE1BQU07OzJGQUNuQixzQkFBc0I7a0JBRGxDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0LCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRG9jdW1lbnROb2RlIH0gZnJvbSAnZ3JhcGhxbCc7XG5pbXBvcnQgeyBHcmFwaHFsU2VydmljZSwgRXhlY3V0YWJsZUdyYXBocWwgfSBmcm9tICcuL2dyYXBocWwuc2VydmljZSc7XG5pbXBvcnQgeyBBc3RTdWJzY3JpcHRpb25TcGxpdHRlclNlcnZpY2UgfSBmcm9tICcuL3N1YnNjcmlwdGlvbi1zcGxpdHRlci9hc3Qtc3BsaXR0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBGZXRjaFJlc3VsdCB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWN1dGFibGVHcmFwaHFsV2l0aFNwbGl0dGluZyBleHRlbmRzIEV4ZWN1dGFibGVHcmFwaHFsIHtcbiAgZW5hYmxlU3BsaXR0aW5nPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBHcmFwaHFsU2VydmljZeOCkuaLoeW8teOBl+OBpuOAgXN1YnNjcmlwdGlvbuWIhuWJsuapn+iDveOCkui/veWKoFxuICogXG4gKiBHcmFwaFFML0hhc3VyYeOBruWItumZkOOAjDHjgaTjga5zdWJzY3JpcHRpb27jgavjga8x44Gk44Gu44OI44OD44OX44Os44OZ44Or44OV44Kj44O844Or44OJ44Gu44G/44CN44KS5Zue6YG/44GX44CBXG4gKiDopIfmlbDjga7jg5XjgqPjg7zjg6vjg4njgpLlkKvjgoBzdWJzY3JpcHRpb27jgpLoh6rli5XnmoTjgavliIblibLjgZfjgabkuKbliJflrp/ooYzjgZfjgb7jgZnjgIJcbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBHcmFwaHFsRW5oYW5jZWRTZXJ2aWNlIGV4dGVuZHMgR3JhcGhxbFNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IHNwbGl0dGVyID0gaW5qZWN0KEFzdFN1YnNjcmlwdGlvblNwbGl0dGVyU2VydmljZSk7XG5cbiAgLyoqXG4gICAqIHN1YnNjcmlwdGlvbuOCr+OCqOODquOCkuWun+ihjFxuICAgKiDjg4fjg5Xjgqnjg6vjg4jjgadzdWJzY3JpcHRpb27jga/oh6rli5XnmoTjgavliIblibLjgZXjgozjgotcbiAgICovXG4gIG92ZXJyaWRlIHN1YnNjcmliZShncmFwaHFsOiBFeGVjdXRhYmxlR3JhcGhxbFdpdGhTcGxpdHRpbmcpOiBPYnNlcnZhYmxlPEZldGNoUmVzdWx0PGFueT4+IHtcbiAgICAvLyBlbmFibGVTcGxpdHRpbmfjgYzmmI7npLrnmoTjgatmYWxzZeOBruWgtOWQiOOAgeOBvuOBn+OBr3N1YnNjcmlwdGlvbuOBp+OBquOBhOWgtOWQiOOBr+mAmuW4uOOBruWHpueQhlxuICAgIGNvbnN0IHNob3VsZFNwbGl0ID0gZ3JhcGhxbC5lbmFibGVTcGxpdHRpbmcgIT09IGZhbHNlICYmIHRoaXMuaXNTdWJzY3JpcHRpb24oZ3JhcGhxbC5xdWVyeSk7XG4gICAgXG4gICAgaWYgKCFzaG91bGRTcGxpdCkge1xuICAgICAgLy8g5pyq5L2/55So5aSJ5pWw44KS5YmK6Zmk44GX44Gm44GL44KJ5a6f6KGMXG4gICAgICBjb25zdCBmaWx0ZXJlZEdyYXBocWwgPSB0aGlzLnJlbW92ZVVudXNlZFZhcmlhYmxlcyhncmFwaHFsKTtcbiAgICAgIHJldHVybiBzdXBlci5zdWJzY3JpYmUoZmlsdGVyZWRHcmFwaHFsKTtcbiAgICB9XG5cbiAgICAvLyBzdWJzY3JpcHRpb27jgpLliIblibLjgZfjgablrp/ooYxcbiAgICByZXR1cm4gdGhpcy5zdWJzY3JpYmVTcGxpdChncmFwaHFsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBzdWJzY3JpcHRpb27jgq/jgqjjg6rjgpLliIblibLjgZfjgabkuKbliJflrp/ooYzjgZfjgIHntZDmnpzjgpLntZDlkIhcbiAgICovXG4gIHByaXZhdGUgc3Vic2NyaWJlU3BsaXQoZ3JhcGhxbDogRXhlY3V0YWJsZUdyYXBocWwpOiBPYnNlcnZhYmxlPEZldGNoUmVzdWx0PGFueT4+IHtcbiAgICBjb25zdCBxdWVyeVN0ciA9IHR5cGVvZiBncmFwaHFsLnF1ZXJ5ID09PSAnc3RyaW5nJyA/IGdyYXBocWwucXVlcnkgOiBncmFwaHFsLnF1ZXJ5LmxvYz8uc291cmNlPy5ib2R5IHx8ICcnO1xuICAgIFxuICAgIC8vIOOCr+OCqOODquOCkuWIhuWJslxuICAgIGNvbnN0IHNwbGl0UXVlcmllcyA9IHRoaXMuc3BsaXR0ZXIuc3BsaXRTdWJzY3JpcHRpb24oZ3JhcGhxbC5xdWVyeSk7XG4gICAgXG4gICAgLy8g5YiG5Ymy44GM5LiN6KaB44Gq5aC05ZCI77yI5Y2Y5LiA44OV44Kj44O844Or44OJ77yJXG4gICAgaWYgKHNwbGl0UXVlcmllcy5sZW5ndGggPD0gMSkge1xuICAgICAgcmV0dXJuIHN1cGVyLnN1YnNjcmliZShncmFwaHFsKTtcbiAgICB9XG5cbiAgICBcbiAgICAvLyDlkITjgq/jgqjjg6rjgpLkuKbliJflrp/ooYxcbiAgICBjb25zdCBvYnNlcnZhYmxlcyA9IHNwbGl0UXVlcmllcy5tYXAoKHNwbGl0UXVlcnkpID0+IHtcbiAgICAgIC8vIOS9v+eUqOOBleOCjOOCi+WkieaVsOOBruOBv+OCkuaKveWHulxuICAgICAgY29uc3QgdXNlZFZhcnMgPSB0aGlzLmV4dHJhY3RVc2VkVmFyaWFibGVzRnJvbVF1ZXJ5KHNwbGl0UXVlcnkucXVlcnkpO1xuICAgICAgY29uc3QgZmlsdGVyZWRWYXJpYWJsZXMgPSB0aGlzLmZpbHRlclZhcmlhYmxlVmFsdWVzKGdyYXBocWwudmFyaWFibGVzLCB1c2VkVmFycyk7XG4gICAgICBcbiAgICAgIGNvbnN0IHNwbGl0R3JhcGhxbDogRXhlY3V0YWJsZUdyYXBocWwgPSB7XG4gICAgICAgIC4uLmdyYXBocWwsXG4gICAgICAgIHF1ZXJ5OiBzcGxpdFF1ZXJ5LnF1ZXJ5LFxuICAgICAgICB2YXJpYWJsZXM6IGZpbHRlcmVkVmFyaWFibGVzXG4gICAgICB9O1xuICAgICAgXG4gICAgICByZXR1cm4gc3VwZXIuc3Vic2NyaWJlKHNwbGl0R3JhcGhxbCkucGlwZShcbiAgICAgICAgbWFwKHJlc3VsdCA9PiAoe1xuICAgICAgICAgIGZpZWxkTmFtZTogc3BsaXRRdWVyeS5maWVsZE5hbWUsXG4gICAgICAgICAgcmVzdWx0XG4gICAgICAgIH0pKVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIC8vIOe1kOaenOOCkue1kOWQiFxuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KG9ic2VydmFibGVzKS5waXBlKFxuICAgICAgbWFwKHJlc3VsdHMgPT4ge1xuICAgICAgICBjb25zdCBjb21iaW5lZERhdGE6IGFueSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgcmVzdWx0cy5mb3JFYWNoKCh7IGZpZWxkTmFtZSwgcmVzdWx0IH0pID0+IHtcbiAgICAgICAgICBjb25zdCBkYXRhID0gcmVzdWx0LmRhdGEgfHwgcmVzdWx0O1xuICAgICAgICAgIGlmIChkYXRhW2ZpZWxkTmFtZV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29tYmluZWREYXRhW2ZpZWxkTmFtZV0gPSBkYXRhW2ZpZWxkTmFtZV07XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZGF0YTogY29tYmluZWREYXRhLFxuICAgICAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgICAgICAgIG5ldHdvcmtTdGF0dXM6IDdcbiAgICAgICAgfSBhcyBGZXRjaFJlc3VsdDtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDjgq/jgqjjg6rjgYxzdWJzY3JpcHRpb27jgYvjganjgYbjgYvjgpLliKTlrppcbiAgICovXG4gIHByaXZhdGUgaXNTdWJzY3JpcHRpb24ocXVlcnk6IHN0cmluZyB8IERvY3VtZW50Tm9kZSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHF1ZXJ5U3RyID0gdHlwZW9mIHF1ZXJ5ID09PSAnc3RyaW5nJyA/IHF1ZXJ5IDogcXVlcnkubG9jPy5zb3VyY2U/LmJvZHkgfHwgJyc7XG4gICAgcmV0dXJuIHF1ZXJ5U3RyLnRyaW0oKS5zdGFydHNXaXRoKCdzdWJzY3JpcHRpb24nKTtcbiAgfVxuICBcbiAgLyoqXG4gICAqIOOCr+OCqOODquOBi+OCieS9v+eUqOOBleOCjOOBpuOBhOOCi+WkieaVsOOCkuaKveWHulxuICAgKi9cbiAgcHJpdmF0ZSBleHRyYWN0VXNlZFZhcmlhYmxlc0Zyb21RdWVyeShxdWVyeTogc3RyaW5nKTogU2V0PHN0cmluZz4ge1xuICAgIGNvbnN0IHZhcmlhYmxlcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgIGNvbnN0IHJlZ2V4ID0gL1xcJChcXHcrKS9nO1xuICAgIGxldCBtYXRjaDtcbiAgICBcbiAgICB3aGlsZSAoKG1hdGNoID0gcmVnZXguZXhlYyhxdWVyeSkpICE9PSBudWxsKSB7XG4gICAgICB2YXJpYWJsZXMuYWRkKG1hdGNoWzFdKTtcbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIHZhcmlhYmxlcztcbiAgfVxuICBcbiAgLyoqXG4gICAqIOWkieaVsOWApOOBi+OCieS9v+eUqOOBleOCjOOCi+WkieaVsOOBruOBv+OCkuODleOCo+ODq+OCv+ODquODs+OCsFxuICAgKi9cbiAgcHJpdmF0ZSBmaWx0ZXJWYXJpYWJsZVZhbHVlcyh2YXJpYWJsZXM6IG9iamVjdCwgdXNlZFZhcnM6IFNldDxzdHJpbmc+KTogb2JqZWN0IHtcbiAgICBjb25zdCBmaWx0ZXJlZDogYW55ID0ge307XG4gICAgXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModmFyaWFibGVzKSkge1xuICAgICAgaWYgKHVzZWRWYXJzLmhhcyhrZXkpKSB7XG4gICAgICAgIGZpbHRlcmVkW2tleV0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIGZpbHRlcmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYXBoUUzjgq/jgqjjg6rjgYvjgonmnKrkvb/nlKjjga7lpInmlbDjgpLliYrpmaRcbiAgICovXG4gIHByaXZhdGUgcmVtb3ZlVW51c2VkVmFyaWFibGVzKGdyYXBocWw6IEV4ZWN1dGFibGVHcmFwaHFsKTogRXhlY3V0YWJsZUdyYXBocWwge1xuICAgIGlmICghZ3JhcGhxbC52YXJpYWJsZXMgfHwgT2JqZWN0LmtleXMoZ3JhcGhxbC52YXJpYWJsZXMpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIGdyYXBocWw7XG4gICAgfVxuXG4gICAgY29uc3QgcXVlcnlTdHIgPSB0eXBlb2YgZ3JhcGhxbC5xdWVyeSA9PT0gJ3N0cmluZycgPyBncmFwaHFsLnF1ZXJ5IDogZ3JhcGhxbC5xdWVyeS5sb2M/LnNvdXJjZT8uYm9keSB8fCAnJztcbiAgICBjb25zdCB1c2VkVmFycyA9IHRoaXMuZXh0cmFjdFVzZWRWYXJpYWJsZXNGcm9tUXVlcnkocXVlcnlTdHIpO1xuICAgIGNvbnN0IGZpbHRlcmVkVmFyaWFibGVzID0gdGhpcy5maWx0ZXJWYXJpYWJsZVZhbHVlcyhncmFwaHFsLnZhcmlhYmxlcywgdXNlZFZhcnMpO1xuXG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uZ3JhcGhxbCxcbiAgICAgIHZhcmlhYmxlczogZmlsdGVyZWRWYXJpYWJsZXNcbiAgICB9O1xuICB9XG59Il19","import { GraphqlService } from './graphql.service';\nimport { GraphqlEnhancedService } from './graphql-enhanced.service';\n/**\n * GraphqlServiceをGraphqlEnhancedServiceで置き換えるプロバイダー\n *\n * 使用方法:\n * ```typescript\n * export default <Routes>[\n * {\n * path: '',\n * component: YourComponent,\n * providers: [\n * provideGraphqlEnhancedLocally()\n * ]\n * }\n * ];\n * ```\n */\nexport function provideGraphqlEnhancedLocally() {\n return [\n {\n provide: GraphqlService,\n useClass: GraphqlEnhancedService\n }\n ];\n}\n/**\n * グローバルにGraphqlEnhancedServiceを提供\n * app.config.tsで使用\n */\nexport function provideGraphqlEnhancedGlobally() {\n return provideGraphqlEnhancedLocally();\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC1lbmhhbmNlZC5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0B4eG1hY2hpbmEvY29tbW9uL3NyYy9saWIvc2VydmljZXMvZ3JhcGhxbC9ncmFwaHFsLWVuaGFuY2VkLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVwRTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxNQUFNLFVBQVUsNkJBQTZCO0lBQzNDLE9BQU87UUFDTDtZQUNFLE9BQU8sRUFBRSxjQUFjO1lBQ3ZCLFFBQVEsRUFBRSxzQkFBc0I7U0FDakM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSw4QkFBOEI7SUFDNUMsT0FBTyw2QkFBNkIsRUFBRSxDQUFDO0FBQ3pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR3JhcGhxbFNlcnZpY2UgfSBmcm9tICcuL2dyYXBocWwuc2VydmljZSc7XG5pbXBvcnQgeyBHcmFwaHFsRW5oYW5jZWRTZXJ2aWNlIH0gZnJvbSAnLi9ncmFwaHFsLWVuaGFuY2VkLnNlcnZpY2UnO1xuXG4vKipcbiAqIEdyYXBocWxTZXJ2aWNl44KSR3JhcGhxbEVuaGFuY2VkU2VydmljZeOBp+e9ruOBjeaPm+OBiOOCi+ODl+ODreODkOOCpOODgOODvFxuICogXG4gKiDkvb/nlKjmlrnms5U6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBleHBvcnQgZGVmYXVsdCA8Um91dGVzPltcbiAqICAge1xuICogICAgIHBhdGg6ICcnLFxuICogICAgIGNvbXBvbmVudDogWW91ckNvbXBvbmVudCxcbiAqICAgICBwcm92aWRlcnM6IFtcbiAqICAgICAgIHByb3ZpZGVHcmFwaHFsRW5oYW5jZWRMb2NhbGx5KClcbiAqICAgICBdXG4gKiAgIH1cbiAqIF07XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVHcmFwaHFsRW5oYW5jZWRMb2NhbGx5KCk6IFByb3ZpZGVyW10ge1xuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEdyYXBocWxTZXJ2aWNlLFxuICAgICAgdXNlQ2xhc3M6IEdyYXBocWxFbmhhbmNlZFNlcnZpY2VcbiAgICB9XG4gIF07XG59XG5cbi8qKlxuICog44Kw44Ot44O844OQ44Or44GrR3JhcGhxbEVuaGFuY2VkU2VydmljZeOCkuaPkOS+m1xuICogYXBwLmNvbmZpZy50c+OBp+S9v+eUqFxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUdyYXBocWxFbmhhbmNlZEdsb2JhbGx5KCk6IFByb3ZpZGVyW10ge1xuICByZXR1cm4gcHJvdmlkZUdyYXBocWxFbmhhbmNlZExvY2FsbHkoKTtcbn0iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHhtYWNoaW5hLWNvbW1vbi1zZXJ2aWNlcy1ncmFwaHFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQHh4bWFjaGluYS9jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9ncmFwaHFsL3h4bWFjaGluYS1jb21tb24tc2VydmljZXMtZ3JhcGhxbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { Google } from '@xxmachina/common/domain/models';
|
|
2
|
-
import { FirestoreAdapter } from '@nx-ddd/firestore
|
|
3
|
-
import { IFirestoreConverter } from '@nx-ddd/firestore/converter';
|
|
4
|
-
import { DocumentSnapshot } from '@nx-ddd/firestore/interfaces';
|
|
2
|
+
import { IFirestoreConverter, FirestoreAdapter, DocumentSnapshot } from '@nx-ddd/firestore';
|
|
5
3
|
import * as i0 from '@angular/core';
|
|
6
4
|
|
|
7
5
|
declare class GoogleConverter implements IFirestoreConverter<Google> {
|
package/infra/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import * as _nx_ddd_common_infrastructure_externals_openai_impl from '@nx-ddd/co
|
|
|
6
6
|
import { OpenAiConfig } from '@nx-ddd/common/infrastructure/externals/openai/impl';
|
|
7
7
|
import { AiConfig, Operator, Project, Spec, Google } from '@xxmachina/common/domain/models';
|
|
8
8
|
import { GoogleConverter } from '@xxmachina/common/infra/converters/google';
|
|
9
|
-
import { FirestoreRepository as FirestoreRepository$1 } from '@nx-ddd/firestore
|
|
9
|
+
import { FirestoreRepository as FirestoreRepository$1 } from '@nx-ddd/firestore';
|
|
10
10
|
import * as _nx_ddd_notion from '@nx-ddd/notion';
|
|
11
11
|
import { NotionRepository as NotionRepository$1 } from '@nx-ddd/notion';
|
|
12
12
|
import { Contract, Invoice, Order } from '@xxmachina/common/invoice/domain';
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import * as _nx_ddd_firestore from '@nx-ddd/firestore';
|
|
2
|
+
import { FirestoreQueryV2 } from '@nx-ddd/firestore';
|
|
2
3
|
import { Query, Resource } from '@xxmachina/common/domain/models';
|
|
3
|
-
import { FirestoreQuery } from '@nx-ddd/firestore/query/v2';
|
|
4
4
|
import * as i0 from '@angular/core';
|
|
5
5
|
|
|
6
|
-
declare class QueryFirestoreQuery extends
|
|
6
|
+
declare class QueryFirestoreQuery extends FirestoreQueryV2<Query> {
|
|
7
7
|
readonly collectionPath = "projects/:projectId/queries/:id";
|
|
8
8
|
protected converter: _nx_ddd_firestore.IFirestoreConverter<Query<any, any>>;
|
|
9
9
|
static ɵfac: i0.ɵɵFactoryDeclaration<QueryFirestoreQuery, never>;
|
|
10
10
|
static ɵprov: i0.ɵɵInjectableDeclaration<QueryFirestoreQuery>;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
declare class ResourceFirestoreQuery extends
|
|
13
|
+
declare class ResourceFirestoreQuery extends FirestoreQueryV2<Resource> {
|
|
14
14
|
readonly collectionPath = "projects/:projectId/resources/:id";
|
|
15
15
|
protected converter: _nx_ddd_firestore.IFirestoreConverter<Resource>;
|
|
16
16
|
static ɵfac: i0.ɵɵFactoryDeclaration<ResourceFirestoreQuery, never>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Google, Query, Resource } from '@xxmachina/common/domain/models';
|
|
2
2
|
import { GoogleConverter } from '@xxmachina/common/infra/converters/google';
|
|
3
|
-
import { FirestoreRepository as FirestoreRepository$1 } from '@nx-ddd/firestore/repository';
|
|
4
|
-
import * as i0 from '@angular/core';
|
|
5
3
|
import * as _nx_ddd_firestore from '@nx-ddd/firestore';
|
|
4
|
+
import { FirestoreRepository as FirestoreRepository$1 } from '@nx-ddd/firestore';
|
|
5
|
+
import * as i0 from '@angular/core';
|
|
6
6
|
|
|
7
7
|
declare class GoogleRepository extends FirestoreRepository$1<Google> {
|
|
8
8
|
readonly collectionPath = "users/:userId/links/:id";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xxmachina/common",
|
|
3
|
-
"version": "19.
|
|
3
|
+
"version": "19.3.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "./index.js",
|
|
6
6
|
"types": "./index.d.ts",
|
|
@@ -13,11 +13,11 @@
|
|
|
13
13
|
"@nestjs/common": "10.2.8",
|
|
14
14
|
"@nestjs/graphql": "^11.0.0",
|
|
15
15
|
"@nestjs/passport": "^9.0.3",
|
|
16
|
-
"@ng-atomic/common": "19.
|
|
17
|
-
"@ng-atomic/components": "19.
|
|
18
|
-
"@ng-atomic/core": "19.
|
|
19
|
-
"@nx-ddd/common": "19.
|
|
20
|
-
"@nx-ddd/core": "19.
|
|
16
|
+
"@ng-atomic/common": "19.3.0",
|
|
17
|
+
"@ng-atomic/components": "19.3.0",
|
|
18
|
+
"@ng-atomic/core": "19.3.0",
|
|
19
|
+
"@nx-ddd/common": "19.3.0",
|
|
20
|
+
"@nx-ddd/core": "19.3.0",
|
|
21
21
|
"@tfarras/nestjs-firebase-auth": "^2.0.0",
|
|
22
22
|
"apollo-angular": "^7.0.2",
|
|
23
23
|
"class-transformer": "^0.5.1",
|
|
@@ -43,11 +43,11 @@
|
|
|
43
43
|
"validate-azure-ad-token": "^2.2.0"
|
|
44
44
|
},
|
|
45
45
|
"optionalDependencies": {
|
|
46
|
-
"@nx-ddd/any-func": "19.
|
|
47
|
-
"@nx-ddd/firestore": "19.
|
|
48
|
-
"@nx-ddd/google": "19.
|
|
49
|
-
"@nx-ddd/hasura": "19.
|
|
50
|
-
"@nx-ddd/notion": "19.
|
|
46
|
+
"@nx-ddd/any-func": "19.3.0",
|
|
47
|
+
"@nx-ddd/firestore": "19.3.0",
|
|
48
|
+
"@nx-ddd/google": "19.3.0",
|
|
49
|
+
"@nx-ddd/hasura": "19.3.0",
|
|
50
|
+
"@nx-ddd/notion": "19.3.0",
|
|
51
51
|
"@notionhq/client": "^2.2.15"
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
@@ -4,6 +4,8 @@ import { DocumentNode } from 'graphql';
|
|
|
4
4
|
import { GetHeaders, ApolloClientManagerService } from '@nx-ddd/hasura';
|
|
5
5
|
import { Observable } from 'rxjs';
|
|
6
6
|
import * as i0 from '@angular/core';
|
|
7
|
+
import { Provider } from '@angular/core';
|
|
8
|
+
import { FetchResult } from '@apollo/client/core';
|
|
7
9
|
|
|
8
10
|
interface ExecutableGraphql {
|
|
9
11
|
endpoint: string;
|
|
@@ -28,5 +30,68 @@ declare class GraphqlService {
|
|
|
28
30
|
static ɵprov: i0.ɵɵInjectableDeclaration<GraphqlService>;
|
|
29
31
|
}
|
|
30
32
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
+
interface ExecutableGraphqlWithSplitting extends ExecutableGraphql {
|
|
34
|
+
enableSplitting?: boolean;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* GraphqlServiceを拡張して、subscription分割機能を追加
|
|
38
|
+
*
|
|
39
|
+
* GraphQL/Hasuraの制限「1つのsubscriptionには1つのトップレベルフィールドのみ」を回避し、
|
|
40
|
+
* 複数のフィールドを含むsubscriptionを自動的に分割して並列実行します。
|
|
41
|
+
*/
|
|
42
|
+
declare class GraphqlEnhancedService extends GraphqlService {
|
|
43
|
+
private readonly splitter;
|
|
44
|
+
/**
|
|
45
|
+
* subscriptionクエリを実行
|
|
46
|
+
* デフォルトでsubscriptionは自動的に分割される
|
|
47
|
+
*/
|
|
48
|
+
subscribe(graphql: ExecutableGraphqlWithSplitting): Observable<FetchResult<any>>;
|
|
49
|
+
/**
|
|
50
|
+
* subscriptionクエリを分割して並列実行し、結果を結合
|
|
51
|
+
*/
|
|
52
|
+
private subscribeSplit;
|
|
53
|
+
/**
|
|
54
|
+
* クエリがsubscriptionかどうかを判定
|
|
55
|
+
*/
|
|
56
|
+
private isSubscription;
|
|
57
|
+
/**
|
|
58
|
+
* クエリから使用されている変数を抽出
|
|
59
|
+
*/
|
|
60
|
+
private extractUsedVariablesFromQuery;
|
|
61
|
+
/**
|
|
62
|
+
* 変数値から使用される変数のみをフィルタリング
|
|
63
|
+
*/
|
|
64
|
+
private filterVariableValues;
|
|
65
|
+
/**
|
|
66
|
+
* GraphQLクエリから未使用の変数を削除
|
|
67
|
+
*/
|
|
68
|
+
private removeUnusedVariables;
|
|
69
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GraphqlEnhancedService, never>;
|
|
70
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<GraphqlEnhancedService>;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* GraphqlServiceをGraphqlEnhancedServiceで置き換えるプロバイダー
|
|
75
|
+
*
|
|
76
|
+
* 使用方法:
|
|
77
|
+
* ```typescript
|
|
78
|
+
* export default <Routes>[
|
|
79
|
+
* {
|
|
80
|
+
* path: '',
|
|
81
|
+
* component: YourComponent,
|
|
82
|
+
* providers: [
|
|
83
|
+
* provideGraphqlEnhancedLocally()
|
|
84
|
+
* ]
|
|
85
|
+
* }
|
|
86
|
+
* ];
|
|
87
|
+
* ```
|
|
88
|
+
*/
|
|
89
|
+
declare function provideGraphqlEnhancedLocally(): Provider[];
|
|
90
|
+
/**
|
|
91
|
+
* グローバルにGraphqlEnhancedServiceを提供
|
|
92
|
+
* app.config.tsで使用
|
|
93
|
+
*/
|
|
94
|
+
declare function provideGraphqlEnhancedGlobally(): Provider[];
|
|
95
|
+
|
|
96
|
+
export { GraphqlEnhancedService, GraphqlService, provideGraphqlEnhancedGlobally, provideGraphqlEnhancedLocally };
|
|
97
|
+
export type { ExecutableGetSchemaGraphql, ExecutableGraphql, ExecutableGraphqlWithSplitting };
|