@graphql-hive/plugin-opentelemetry 1.0.0-alpha-2cea6e8a62aea3e45963d47c35cb6db588d78c54
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/CHANGELOG.md +215 -0
- package/dist/api.cjs +43 -0
- package/dist/api.d.cts +32 -0
- package/dist/api.d.ts +32 -0
- package/dist/api.js +36 -0
- package/dist/attributes-mikIPKnv.d.ts +10 -0
- package/dist/index.cjs +78 -0
- package/dist/index.d.cts +7 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +12 -0
- package/dist/plugin-BT_oWPcx.cjs +1050 -0
- package/dist/plugin-Cn24wGGV.d.ts +184 -0
- package/dist/plugin-DUMSBw0j.js +1037 -0
- package/dist/setup.cjs +387 -0
- package/dist/setup.d.cts +128 -0
- package/dist/setup.d.ts +128 -0
- package/dist/setup.js +326 -0
- package/package.json +99 -0
package/dist/setup.js
ADDED
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
import { context, ROOT_CONTEXT, trace, propagation } from '@opentelemetry/api';
|
|
2
|
+
import { hrTimeDuration, W3CBaggagePropagator, W3CTraceContextPropagator, CompositePropagator } from '@opentelemetry/core';
|
|
3
|
+
import { resourceFromAttributes } from '@opentelemetry/resources';
|
|
4
|
+
import { BatchSpanProcessor, SimpleSpanProcessor, ConsoleSpanExporter, BasicTracerProvider, ParentBasedSampler, AlwaysOnSampler, TraceIdRatioBasedSampler } from '@opentelemetry/sdk-trace-base';
|
|
5
|
+
import { SEMATTRS_HTTP_METHOD, ATTR_SERVICE_VERSION, ATTR_SERVICE_NAME } from '@opentelemetry/semantic-conventions';
|
|
6
|
+
export { ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION, SEMATTRS_HTTP_CLIENT_IP, SEMATTRS_HTTP_HOST, SEMATTRS_HTTP_METHOD, SEMATTRS_HTTP_ROUTE, SEMATTRS_HTTP_SCHEME, SEMATTRS_HTTP_SERVER_NAME, SEMATTRS_HTTP_STATUS_CODE, SEMATTRS_HTTP_URL, SEMATTRS_HTTP_USER_AGENT, SEMATTRS_NET_HOST_NAME } from '@opentelemetry/semantic-conventions';
|
|
7
|
+
import { e as SEMATTRS_HIVE_GRAPHQL_ERROR_CODES, d as SEMATTRS_HIVE_GRAPHQL_ERROR_COUNT, g as SEMATTRS_HIVE_GATEWAY_OPERATION_SUBGRAPH_NAMES, o as otelCtxForRequestId, h as getEnvBool, i as getEnvStr } from './plugin-DUMSBw0j.js';
|
|
8
|
+
export { S as SEMATTRS_GRAPHQL_DOCUMENT, b as SEMATTRS_GRAPHQL_OPERATION_NAME, a as SEMATTRS_GRAPHQL_OPERATION_TYPE, f as SEMATTRS_HIVE_GATEWAY_UPSTREAM_SUBGRAPH_NAME, c as SEMATTRS_HIVE_GRAPHQL_OPERATION_HASH } from './plugin-DUMSBw0j.js';
|
|
9
|
+
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
|
|
10
|
+
import { SeverityNumber, logs } from '@opentelemetry/api-logs';
|
|
11
|
+
import { BatchLogRecordProcessor, SimpleLogRecordProcessor, ConsoleLogRecordExporter, LoggerProvider } from '@opentelemetry/sdk-logs';
|
|
12
|
+
import '@graphql-hive/gateway-runtime';
|
|
13
|
+
import '@graphql-mesh/utils';
|
|
14
|
+
import '@graphql-tools/utils';
|
|
15
|
+
import '@whatwg-node/promise-helpers';
|
|
16
|
+
import './api.js';
|
|
17
|
+
import '@graphql-hive/core';
|
|
18
|
+
import '@graphql-mesh/transport-common';
|
|
19
|
+
import 'graphql';
|
|
20
|
+
|
|
21
|
+
class HiveTracingSpanProcessor {
|
|
22
|
+
traceStateById = /* @__PURE__ */ new Map();
|
|
23
|
+
processor;
|
|
24
|
+
constructor(config) {
|
|
25
|
+
if (config.processor) {
|
|
26
|
+
this.processor = config.processor;
|
|
27
|
+
} else {
|
|
28
|
+
this.processor = new BatchSpanProcessor(
|
|
29
|
+
new OTLPTraceExporter({
|
|
30
|
+
url: config.endpoint,
|
|
31
|
+
headers: {
|
|
32
|
+
Authorization: `Bearer ${config.accessToken}`,
|
|
33
|
+
"X-Hive-Target-Ref": config.target
|
|
34
|
+
}
|
|
35
|
+
}),
|
|
36
|
+
config.batching
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
onStart(span, parentContext) {
|
|
41
|
+
this.processor.onStart(span, parentContext);
|
|
42
|
+
const { spanId, traceId } = span.spanContext();
|
|
43
|
+
const parentId = span.parentSpanContext?.spanId;
|
|
44
|
+
if (isHttpSpan(span)) {
|
|
45
|
+
this.traceStateById.set(traceId, {
|
|
46
|
+
traceId,
|
|
47
|
+
rootId: spanId,
|
|
48
|
+
httpSpan: span,
|
|
49
|
+
operationRoots: /* @__PURE__ */ new Map(),
|
|
50
|
+
subgraphExecutions: /* @__PURE__ */ new Map()
|
|
51
|
+
});
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
const traceState = this.traceStateById.get(traceId);
|
|
55
|
+
if (!traceState || !parentId) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
if (span.name.startsWith("graphql.operation")) {
|
|
59
|
+
traceState?.operationRoots.set(spanId, span);
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const operationRoot = traceState.operationRoots.get(parentId);
|
|
63
|
+
if (operationRoot) {
|
|
64
|
+
traceState.operationRoots.set(spanId, operationRoot);
|
|
65
|
+
}
|
|
66
|
+
if (span.name.startsWith("subgraph.execute")) {
|
|
67
|
+
traceState.subgraphExecutions.set(spanId, span);
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
const subgraphExecution = traceState.subgraphExecutions.get(parentId);
|
|
71
|
+
if (subgraphExecution) {
|
|
72
|
+
traceState.subgraphExecutions.set(spanId, subgraphExecution);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
onEnd(span) {
|
|
76
|
+
const { traceId, spanId } = span.spanContext();
|
|
77
|
+
const traceState = this.traceStateById.get(traceId);
|
|
78
|
+
if (!traceState) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
if (traceState.rootId === spanId) {
|
|
82
|
+
this.traceStateById.delete(traceId);
|
|
83
|
+
for (let operationSpan2 of new Set(traceState.operationRoots.values())) {
|
|
84
|
+
operationSpan2.startTime = span.startTime;
|
|
85
|
+
operationSpan2.endTime = span.endTime;
|
|
86
|
+
operationSpan2._duration = hrTimeDuration(
|
|
87
|
+
operationSpan2.startTime,
|
|
88
|
+
operationSpan2.endTime
|
|
89
|
+
);
|
|
90
|
+
operationSpan2.parentSpanContext = null;
|
|
91
|
+
for (const attr in span.attributes) {
|
|
92
|
+
operationSpan2.attributes[attr] ??= span.attributes[attr];
|
|
93
|
+
}
|
|
94
|
+
this.processor.onEnd(operationSpan2);
|
|
95
|
+
}
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
const operationSpan = traceState.operationRoots.get(spanId);
|
|
99
|
+
if (!operationSpan) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
if (operationSpan === span) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
if (span.name === "graphql.execute") {
|
|
106
|
+
copyAttribute(span, operationSpan, SEMATTRS_HIVE_GRAPHQL_ERROR_CODES);
|
|
107
|
+
copyAttribute(span, operationSpan, SEMATTRS_HIVE_GRAPHQL_ERROR_COUNT);
|
|
108
|
+
copyAttribute(
|
|
109
|
+
span,
|
|
110
|
+
operationSpan,
|
|
111
|
+
SEMATTRS_HIVE_GATEWAY_OPERATION_SUBGRAPH_NAMES
|
|
112
|
+
);
|
|
113
|
+
}
|
|
114
|
+
const subgraphExecution = traceState.subgraphExecutions.get(spanId);
|
|
115
|
+
if (span.name === "http.fetch" && subgraphExecution) {
|
|
116
|
+
for (const attr in span.attributes) {
|
|
117
|
+
subgraphExecution.attributes[attr] ??= span.attributes[attr];
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
this.processor.onEnd(span);
|
|
121
|
+
}
|
|
122
|
+
async forceFlush() {
|
|
123
|
+
return this.processor.forceFlush();
|
|
124
|
+
}
|
|
125
|
+
async shutdown() {
|
|
126
|
+
await this.forceFlush();
|
|
127
|
+
this.traceStateById.clear();
|
|
128
|
+
return this.processor.shutdown();
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
function isHttpSpan(span) {
|
|
132
|
+
return !!span.attributes[SEMATTRS_HTTP_METHOD];
|
|
133
|
+
}
|
|
134
|
+
function copyAttribute(source, target, sourceAttrName, targetAttrName = sourceAttrName) {
|
|
135
|
+
target.attributes[targetAttrName] = source.attributes[sourceAttrName];
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
class OpenTelemetryLogWriter {
|
|
139
|
+
logger;
|
|
140
|
+
useContextManager;
|
|
141
|
+
constructor(options) {
|
|
142
|
+
this.useContextManager = options.useContextManager ?? true;
|
|
143
|
+
if ("logger" in options) {
|
|
144
|
+
this.logger = options.logger;
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
if ("provider" in options) {
|
|
148
|
+
if ("register" in options.provider && typeof options.provider.register === "function") {
|
|
149
|
+
options.provider.register();
|
|
150
|
+
} else {
|
|
151
|
+
logs.setGlobalLoggerProvider(options.provider);
|
|
152
|
+
}
|
|
153
|
+
} else {
|
|
154
|
+
const processors = options.processors ?? [];
|
|
155
|
+
if (options.exporter) {
|
|
156
|
+
if (options.batching !== false) {
|
|
157
|
+
processors.push(
|
|
158
|
+
new BatchLogRecordProcessor(
|
|
159
|
+
options.exporter,
|
|
160
|
+
options.batching === true ? {} : options.batching
|
|
161
|
+
)
|
|
162
|
+
);
|
|
163
|
+
}
|
|
164
|
+
processors.push(new SimpleLogRecordProcessor(options.exporter));
|
|
165
|
+
}
|
|
166
|
+
if (options.console) {
|
|
167
|
+
processors.push(
|
|
168
|
+
new SimpleLogRecordProcessor(new ConsoleLogRecordExporter())
|
|
169
|
+
);
|
|
170
|
+
}
|
|
171
|
+
logs.setGlobalLoggerProvider(
|
|
172
|
+
new LoggerProvider({
|
|
173
|
+
...options,
|
|
174
|
+
processors
|
|
175
|
+
})
|
|
176
|
+
);
|
|
177
|
+
}
|
|
178
|
+
this.logger = logs.getLogger("gateway");
|
|
179
|
+
}
|
|
180
|
+
flush() {
|
|
181
|
+
const provider = logs.getLoggerProvider();
|
|
182
|
+
if ("forceFlush" in provider && typeof provider.forceFlush === "function") {
|
|
183
|
+
provider.forceFlush();
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
write(level, attrs, msg) {
|
|
187
|
+
const attributes = Array.isArray(attrs) ? { ...attrs } : attrs ?? void 0;
|
|
188
|
+
return this.logger.emit({
|
|
189
|
+
body: msg,
|
|
190
|
+
attributes,
|
|
191
|
+
severityNumber: HIVE_LOG_LEVEL_NUMBERS[level],
|
|
192
|
+
severityText: level,
|
|
193
|
+
context: this.useContextManager ? context.active() : getContextForRequest(attributes)
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
const HIVE_LOG_LEVEL_NUMBERS = {
|
|
198
|
+
trace: SeverityNumber.TRACE,
|
|
199
|
+
debug: SeverityNumber.DEBUG,
|
|
200
|
+
info: SeverityNumber.INFO,
|
|
201
|
+
warn: SeverityNumber.WARN,
|
|
202
|
+
error: SeverityNumber.ERROR
|
|
203
|
+
};
|
|
204
|
+
function getContextForRequest(attributes) {
|
|
205
|
+
if (!attributes?.requestId) {
|
|
206
|
+
return ROOT_CONTEXT;
|
|
207
|
+
}
|
|
208
|
+
return otelCtxForRequestId.get(attributes.requestId) ?? ROOT_CONTEXT;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
globalThis.__OTEL_PLUGIN_VERSION__ = '1.0.0-alpha-2cea6e8a62aea3e45963d47c35cb6db588d78c54';
|
|
212
|
+
function openTelemetrySetup(options) {
|
|
213
|
+
const log = options.log?.child("[OpenTelemetry] ");
|
|
214
|
+
if (getEnvBool("OTEL_SDK_DISABLED")) {
|
|
215
|
+
log?.warn(
|
|
216
|
+
"OpenTelemetry integration is disabled because `OTEL_SDK_DISABLED` environment variable is truthy"
|
|
217
|
+
);
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
const logAttributes = { registrationResults: {} };
|
|
221
|
+
let logMessage = "OpenTelemetry integration is enabled";
|
|
222
|
+
if (options.traces) {
|
|
223
|
+
if (options.traces.tracerProvider) {
|
|
224
|
+
if ("register" in options.traces.tracerProvider && typeof options.traces.tracerProvider.register === "function") {
|
|
225
|
+
logAttributes["registrationResults"].tracer = options.traces.tracerProvider.register();
|
|
226
|
+
} else {
|
|
227
|
+
logAttributes["registrationResults"].tracer = trace.setGlobalTracerProvider(options.traces.tracerProvider);
|
|
228
|
+
}
|
|
229
|
+
logMessage += " and provided TracerProvider has been registered";
|
|
230
|
+
} else {
|
|
231
|
+
let spanProcessors = options.traces.processors ?? [];
|
|
232
|
+
if (options.traces.exporter) {
|
|
233
|
+
spanProcessors.push(
|
|
234
|
+
resolveBatchingConfig(
|
|
235
|
+
options.traces.exporter,
|
|
236
|
+
options.traces.batching
|
|
237
|
+
)
|
|
238
|
+
);
|
|
239
|
+
logMessage += " and exporter have been registered";
|
|
240
|
+
logAttributes["batching"] = options.traces.batching ?? true;
|
|
241
|
+
}
|
|
242
|
+
if (options.traces.console) {
|
|
243
|
+
spanProcessors.push(new SimpleSpanProcessor(new ConsoleSpanExporter()));
|
|
244
|
+
logMessage += " in addition to an stdout debug exporter";
|
|
245
|
+
logAttributes["console"] = true;
|
|
246
|
+
}
|
|
247
|
+
const baseResource = resourceFromAttributes({
|
|
248
|
+
[ATTR_SERVICE_NAME]: options.resource && "serviceName" in options.resource ? options.resource?.serviceName : getEnvStr("OTEL_SERVICE_NAME") || "@graphql-hive/plugin-opentelemetry",
|
|
249
|
+
[ATTR_SERVICE_VERSION]: options.resource && "serviceVersion" in options.resource ? options.resource?.serviceVersion : getEnvStr("OTEL_SERVICE_VERSION") || globalThis.__OTEL_PLUGIN_VERSION__ || "unknown",
|
|
250
|
+
["hive.gateway.version"]: globalThis.__VERSION__,
|
|
251
|
+
["hive.otel.version"]: globalThis.__OTEL_PLUGIN_VERSION__ || "unknown"
|
|
252
|
+
});
|
|
253
|
+
const resource = options.resource && !("serviceName" in options.resource) ? baseResource.merge(options.resource) : baseResource;
|
|
254
|
+
logAttributes["resource"] = resource.attributes;
|
|
255
|
+
logAttributes["sampling"] = options.sampler ? "custom" : options.samplingRate;
|
|
256
|
+
logAttributes["registrationResults"].tracerProvider = trace.setGlobalTracerProvider(
|
|
257
|
+
new BasicTracerProvider({
|
|
258
|
+
resource,
|
|
259
|
+
sampler: options.sampler ?? (options.samplingRate ? new ParentBasedSampler({
|
|
260
|
+
root: new TraceIdRatioBasedSampler(options.samplingRate)
|
|
261
|
+
}) : new AlwaysOnSampler()),
|
|
262
|
+
spanProcessors,
|
|
263
|
+
generalLimits: options.generalLimits,
|
|
264
|
+
spanLimits: options.traces.spanLimits
|
|
265
|
+
})
|
|
266
|
+
);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
if (options.contextManager !== null) {
|
|
270
|
+
logAttributes["registrationResults"].contextManager = context.setGlobalContextManager(options.contextManager);
|
|
271
|
+
}
|
|
272
|
+
if (!options.propagators || options.propagators.length !== 0) {
|
|
273
|
+
const propagators = options.propagators ?? [
|
|
274
|
+
new W3CBaggagePropagator(),
|
|
275
|
+
new W3CTraceContextPropagator()
|
|
276
|
+
];
|
|
277
|
+
logAttributes["registrationResults"].propagators = propagation.setGlobalPropagator(
|
|
278
|
+
propagators.length === 1 ? propagators[0] : new CompositePropagator({ propagators })
|
|
279
|
+
);
|
|
280
|
+
}
|
|
281
|
+
log?.info(logAttributes, logMessage);
|
|
282
|
+
}
|
|
283
|
+
function hiveTracingSetup(config) {
|
|
284
|
+
const log = config.log?.child("[OpenTelemetry] ");
|
|
285
|
+
config.target ??= getEnvStr("HIVE_TARGET");
|
|
286
|
+
if (!config.target) {
|
|
287
|
+
throw new Error(
|
|
288
|
+
"You must specify the Hive Registry `target`. Either provide `target` option or `HIVE_TARGET` environment variable."
|
|
289
|
+
);
|
|
290
|
+
}
|
|
291
|
+
const logAttributes = { target: config.target };
|
|
292
|
+
if (!config.processor) {
|
|
293
|
+
config.accessToken ??= getEnvStr("HIVE_TRACING_ACCESS_TOKEN") ?? getEnvStr("HIVE_ACCESS_TOKEN");
|
|
294
|
+
if (!config.accessToken) {
|
|
295
|
+
throw new Error(
|
|
296
|
+
"You must specify the Hive Registry `accessToken`. Either provide `accessToken` option or `HIVE_ACCESS_TOKEN`/`HIVE_TRACE_ACCESS_TOKEN` environment variable."
|
|
297
|
+
);
|
|
298
|
+
}
|
|
299
|
+
logAttributes["endpoint"] = config.endpoint;
|
|
300
|
+
logAttributes["batching"] = config.batching;
|
|
301
|
+
}
|
|
302
|
+
openTelemetrySetup({
|
|
303
|
+
contextManager: config.contextManager,
|
|
304
|
+
resource: resourceFromAttributes({
|
|
305
|
+
"hive.target_id": config.target
|
|
306
|
+
}),
|
|
307
|
+
traces: {
|
|
308
|
+
processors: [
|
|
309
|
+
new HiveTracingSpanProcessor(config)
|
|
310
|
+
]
|
|
311
|
+
}
|
|
312
|
+
});
|
|
313
|
+
log?.info(logAttributes, "Hive Tracing integration has been enabled");
|
|
314
|
+
}
|
|
315
|
+
function resolveBatchingConfig(exporter, batchingConfig) {
|
|
316
|
+
const value = batchingConfig ?? true;
|
|
317
|
+
if (value === true) {
|
|
318
|
+
return new BatchSpanProcessor(exporter);
|
|
319
|
+
} else if (value === false) {
|
|
320
|
+
return new SimpleSpanProcessor(exporter);
|
|
321
|
+
} else {
|
|
322
|
+
return new BatchSpanProcessor(exporter, value);
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
export { HIVE_LOG_LEVEL_NUMBERS, HiveTracingSpanProcessor, OpenTelemetryLogWriter, SEMATTRS_HIVE_GATEWAY_OPERATION_SUBGRAPH_NAMES, SEMATTRS_HIVE_GRAPHQL_ERROR_CODES, SEMATTRS_HIVE_GRAPHQL_ERROR_COUNT, getContextForRequest, hiveTracingSetup, openTelemetrySetup };
|
package/package.json
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@graphql-hive/plugin-opentelemetry",
|
|
3
|
+
"version": "1.0.0-alpha-2cea6e8a62aea3e45963d47c35cb6db588d78c54",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "git+https://github.com/graphql-hive/gateway.git",
|
|
8
|
+
"directory": "packages/plugins/opentelemetry"
|
|
9
|
+
},
|
|
10
|
+
"author": {
|
|
11
|
+
"email": "contact@the-guild.dev",
|
|
12
|
+
"name": "The Guild",
|
|
13
|
+
"url": "https://the-guild.dev"
|
|
14
|
+
},
|
|
15
|
+
"license": "MIT",
|
|
16
|
+
"engines": {
|
|
17
|
+
"node": ">=20.0.0"
|
|
18
|
+
},
|
|
19
|
+
"main": "./dist/index.js",
|
|
20
|
+
"types": "./dist/index.d.ts",
|
|
21
|
+
"exports": {
|
|
22
|
+
".": {
|
|
23
|
+
"require": {
|
|
24
|
+
"types": "./dist/index.d.cts",
|
|
25
|
+
"default": "./dist/index.cjs"
|
|
26
|
+
},
|
|
27
|
+
"import": {
|
|
28
|
+
"types": "./dist/index.d.ts",
|
|
29
|
+
"default": "./dist/index.js"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"./setup": {
|
|
33
|
+
"require": {
|
|
34
|
+
"types": "./dist/setup.d.cts",
|
|
35
|
+
"default": "./dist/setup.cjs"
|
|
36
|
+
},
|
|
37
|
+
"import": {
|
|
38
|
+
"types": "./dist/setup.d.ts",
|
|
39
|
+
"default": "./dist/setup.js"
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"./api": {
|
|
43
|
+
"require": {
|
|
44
|
+
"types": "./dist/api.d.cts",
|
|
45
|
+
"default": "./dist/api.cjs"
|
|
46
|
+
},
|
|
47
|
+
"import": {
|
|
48
|
+
"types": "./dist/api.d.ts",
|
|
49
|
+
"default": "./dist/api.js"
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"./package.json": "./package.json"
|
|
53
|
+
},
|
|
54
|
+
"files": [
|
|
55
|
+
"dist"
|
|
56
|
+
],
|
|
57
|
+
"scripts": {
|
|
58
|
+
"build": "pkgroll --clean-dist && tsx scripts/inject-version",
|
|
59
|
+
"prepack": "yarn build"
|
|
60
|
+
},
|
|
61
|
+
"peerDependencies": {
|
|
62
|
+
"graphql": "^15.9.0 || ^16.9.0"
|
|
63
|
+
},
|
|
64
|
+
"dependencies": {
|
|
65
|
+
"@graphql-hive/core": "^0.13.0",
|
|
66
|
+
"@graphql-hive/gateway-runtime": "2.0.0-alpha-2cea6e8a62aea3e45963d47c35cb6db588d78c54",
|
|
67
|
+
"@graphql-hive/logger": "1.0.1-alpha-2cea6e8a62aea3e45963d47c35cb6db588d78c54",
|
|
68
|
+
"@graphql-mesh/cross-helpers": "^0.4.10",
|
|
69
|
+
"@graphql-mesh/transport-common": "1.0.0-alpha-2cea6e8a62aea3e45963d47c35cb6db588d78c54",
|
|
70
|
+
"@graphql-mesh/types": "^0.104.8",
|
|
71
|
+
"@graphql-mesh/utils": "^0.104.11",
|
|
72
|
+
"@graphql-tools/utils": "^10.9.1",
|
|
73
|
+
"@opentelemetry/api": "^1.9.0",
|
|
74
|
+
"@opentelemetry/api-logs": "^0.203.0",
|
|
75
|
+
"@opentelemetry/auto-instrumentations-node": "^0.62.1",
|
|
76
|
+
"@opentelemetry/context-async-hooks": "^2.0.1",
|
|
77
|
+
"@opentelemetry/core": "^2.0.1",
|
|
78
|
+
"@opentelemetry/exporter-trace-otlp-grpc": "^0.203.0",
|
|
79
|
+
"@opentelemetry/exporter-trace-otlp-http": "^0.203.0",
|
|
80
|
+
"@opentelemetry/instrumentation": "^0.203.0",
|
|
81
|
+
"@opentelemetry/resources": "^2.0.1",
|
|
82
|
+
"@opentelemetry/sdk-logs": "^0.203.0",
|
|
83
|
+
"@opentelemetry/sdk-node": "^0.203.0",
|
|
84
|
+
"@opentelemetry/sdk-trace-base": "^2.0.1",
|
|
85
|
+
"@opentelemetry/semantic-conventions": "^1.36.0",
|
|
86
|
+
"@whatwg-node/promise-helpers": "1.3.0",
|
|
87
|
+
"tslib": "^2.8.1"
|
|
88
|
+
},
|
|
89
|
+
"devDependencies": {
|
|
90
|
+
"@whatwg-node/server": "^0.10.0",
|
|
91
|
+
"graphql": "^16.9.0",
|
|
92
|
+
"graphql-yoga": "^5.15.1",
|
|
93
|
+
"pkgroll": "2.15.0",
|
|
94
|
+
"rimraf": "^6.0.1",
|
|
95
|
+
"rollup": "^4.41.1",
|
|
96
|
+
"tsx": "^4.19.4"
|
|
97
|
+
},
|
|
98
|
+
"sideEffects": false
|
|
99
|
+
}
|