@traceai/google-genai-sdk 0.0.0-stage → 0.1.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/dist/index.js ADDED
@@ -0,0 +1,543 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VERSION = void 0;
4
+ exports.instrumentGoogleGenAI = instrumentGoogleGenAI;
5
+ const api_1 = require("@opentelemetry/api");
6
+ const core_1 = require("@opentelemetry/core");
7
+ const fi_core_1 = require("@traceai/fi-core");
8
+ const fi_semantic_conventions_1 = require("@traceai/fi-semantic-conventions");
9
+ const capture_js_1 = require("./capture.js");
10
+ const version_js_1 = require("./version.js");
11
+ const promise_js_1 = require("./promise.js");
12
+ var version_js_2 = require("./version.js");
13
+ Object.defineProperty(exports, "VERSION", { enumerable: true, get: function () { return version_js_2.VERSION; } });
14
+ const handles = new WeakMap();
15
+ const modelMethods = [
16
+ "generateContent",
17
+ "generateContentStream",
18
+ "embedContent",
19
+ "generateImages",
20
+ "editImage",
21
+ "generateVideos",
22
+ ];
23
+ const interactionMethods = ["create", "get", "cancel", "delete"];
24
+ // Observability must never replace a provider result/error with a capture or exporter failure.
25
+ function safely(fn) {
26
+ try {
27
+ fn();
28
+ }
29
+ catch {
30
+ // Fail open, but never log the caught object: getters/exporters can quote user content.
31
+ try {
32
+ api_1.diag.warn("@traceai/google-genai-sdk: telemetry capture failed; SDK behavior is unchanged");
33
+ }
34
+ catch {
35
+ /* A user-supplied diagnostic logger must not break the SDK either. */
36
+ }
37
+ }
38
+ }
39
+ const methodStates = new WeakMap();
40
+ function replaceMethod(target, name, wrap) {
41
+ const original = Reflect.get(target, name);
42
+ if (typeof original !== "function")
43
+ return;
44
+ const descriptor = Object.getOwnPropertyDescriptor(target, name);
45
+ // Frozen or non-configurable resources remain usable and unmodified.
46
+ if (descriptor &&
47
+ !descriptor.configurable &&
48
+ (!descriptor.writable || !("value" in descriptor)))
49
+ return;
50
+ if (!descriptor && !Object.isExtensible(target))
51
+ return;
52
+ const wrapped = wrap(original);
53
+ const state = {
54
+ original: original,
55
+ descriptor,
56
+ retired: false,
57
+ };
58
+ methodStates.set(wrapped, state);
59
+ Object.defineProperty(target, name, descriptor
60
+ ? { ...descriptor, value: wrapped }
61
+ : { value: wrapped, writable: true, configurable: true });
62
+ return () => {
63
+ state.retired = true;
64
+ if (Reflect.get(target, name) !== wrapped)
65
+ return;
66
+ // A disposed handle may finish underneath a newly installed handle. Skip
67
+ // its retired wrapper when restoring, rather than retaining a dead chain.
68
+ let prior = state;
69
+ while (methodStates.get(prior.original)?.retired)
70
+ prior = methodStates.get(prior.original);
71
+ if (prior.descriptor)
72
+ Object.defineProperty(target, name, prior.descriptor);
73
+ else
74
+ Reflect.deleteProperty(target, name);
75
+ };
76
+ }
77
+ const generationKey = Symbol("google.genai.generation");
78
+ const generationHooks = new WeakMap();
79
+ /** Internal, version-tested boundaries: no public hook exposes every AFC/continuation hop. */
80
+ function retainGenerationHooks(models) {
81
+ let hooks = generationHooks.get(models);
82
+ if (!hooks) {
83
+ hooks = { owners: 0, restore: [] };
84
+ try {
85
+ for (const name of [
86
+ "generateContentInternal",
87
+ "generateContentStreamInternal",
88
+ ]) {
89
+ const restore = replaceMethod(models, name, (original) => function (...args) {
90
+ const child = api_1.context.active();
91
+ const scope = child.getValue(generationKey);
92
+ if (scope?.models !== models || (0, core_1.isTracingSuppressed)(child))
93
+ return Reflect.apply(original, this, args);
94
+ let observe = (_value) => { };
95
+ safely(() => {
96
+ observe = scope.start(args[0]);
97
+ });
98
+ const result = Reflect.apply(original, this, args);
99
+ return Promise.resolve(result).then((value) => {
100
+ if (name === "generateContentStreamInternal") {
101
+ // Pull-driven: no prefetch, tool execution, extra requests or synthetic spans.
102
+ try {
103
+ return wrapStream(value, child, observe, () => { }, () => { });
104
+ }
105
+ catch {
106
+ return value;
107
+ }
108
+ }
109
+ observe(value);
110
+ return value;
111
+ });
112
+ });
113
+ if (restore)
114
+ hooks.restore.push(restore);
115
+ }
116
+ }
117
+ catch (error) {
118
+ for (const restore of hooks.restore.reverse())
119
+ safely(restore);
120
+ throw error;
121
+ }
122
+ generationHooks.set(models, hooks);
123
+ }
124
+ hooks.owners++;
125
+ return () => {
126
+ if (--hooks.owners === 0) {
127
+ for (const restore of hooks.restore.reverse())
128
+ safely(restore);
129
+ generationHooks.delete(models);
130
+ }
131
+ };
132
+ }
133
+ const embeddingKey = Symbol("google.genai.embedding");
134
+ const embeddingHooks = new WeakMap();
135
+ /** Observe only the SDK's existing embedding parse, before its response converter
136
+ * drops usageMetadata. No global HttpResponse/fetch patch, second body read, or
137
+ * retained response payload. These per-client boundaries are version-tested.
138
+ */
139
+ function retainEmbeddingHook(apiClient) {
140
+ let hooks = embeddingHooks.get(apiClient);
141
+ if (!hooks) {
142
+ hooks = { owners: 0 };
143
+ hooks.restore = replaceMethod(apiClient, "request", original => function (...args) {
144
+ const child = api_1.context.active();
145
+ const scope = child.getValue(embeddingKey);
146
+ if (scope?.apiClient !== apiClient || !scope.active() || (0, core_1.isTracingSuppressed)(child))
147
+ return Reflect.apply(original, this, args);
148
+ // In the tested SDKs Gemini uses batchEmbedContents (or embedContent),
149
+ // while Vertex embedding calls use predict. Ignore all other requests.
150
+ let embeddingRequest = false;
151
+ safely(() => {
152
+ const path = (0, capture_js_1.record)(args[0]).path;
153
+ embeddingRequest = typeof path === "string" &&
154
+ /:(?:batchEmbedContents|embedContent|predict)$/.test(path);
155
+ });
156
+ if (!embeddingRequest)
157
+ return Reflect.apply(original, this, args);
158
+ const result = Reflect.apply(original, this, args);
159
+ return Promise.resolve(result).then(response => {
160
+ safely(() => {
161
+ if (!scope.active() || !response || typeof response !== "object")
162
+ return;
163
+ let restore;
164
+ restore = replaceMethod(response, "json", parse => function (...parseArgs) {
165
+ // Restore before the one SDK-owned parse, even when it throws.
166
+ safely(() => restore?.());
167
+ const parsed = Reflect.apply(parse, this, parseArgs);
168
+ return Promise.resolve(parsed).then(value => {
169
+ if (scope.active())
170
+ safely(() => scope.observe(value));
171
+ return value;
172
+ });
173
+ });
174
+ if (restore)
175
+ scope.cleanup(restore);
176
+ });
177
+ return response;
178
+ });
179
+ });
180
+ embeddingHooks.set(apiClient, hooks);
181
+ }
182
+ hooks.owners++;
183
+ return () => {
184
+ if (--hooks.owners === 0) {
185
+ safely(() => hooks.restore?.());
186
+ embeddingHooks.delete(apiClient);
187
+ }
188
+ };
189
+ }
190
+ /** Instruments one modern @google/genai client in place, including existing chats.
191
+ * Duplicate setup returns the existing handle (its original options win).
192
+ * No global module patch, private chat-field rewrite, exporter, or hidden API call is installed.
193
+ */
194
+ function instrumentGoogleGenAI(client, options = {}) {
195
+ const existing = handles.get(client);
196
+ if (existing)
197
+ return existing;
198
+ const config = (0, fi_core_1.generateTraceConfig)(options.traceConfig);
199
+ const tracer = new fi_core_1.FITracer({
200
+ tracer: (options.tracerProvider ?? api_1.trace.getTracerProvider()).getTracer("@traceai/google-genai-sdk", version_js_1.VERSION),
201
+ traceConfig: config,
202
+ });
203
+ const requested = options.maxContentLength ?? 16384;
204
+ const limit = Number.isFinite(requested)
205
+ ? Math.max(0, Math.min(65536, Math.floor(requested)))
206
+ : 16384;
207
+ let enabled = true;
208
+ let disposed = false;
209
+ let activeCalls = 0;
210
+ let releaseGeneration;
211
+ let releaseEmbedding;
212
+ let embeddingApiClient;
213
+ const restorers = [];
214
+ const accessorRestorers = [];
215
+ const owner = Symbol("google.genai.handle");
216
+ const restoreMethods = () => {
217
+ for (const restore of restorers.reverse())
218
+ safely(restore);
219
+ safely(() => releaseGeneration?.());
220
+ safely(() => releaseEmbedding?.());
221
+ };
222
+ const patched = new WeakSet();
223
+ function replace(target, name, wrap) {
224
+ const restore = replaceMethod(target, name, wrap);
225
+ if (restore)
226
+ restorers.push(restore);
227
+ }
228
+ function patch(target, methods, resource) {
229
+ if (patched.has(target))
230
+ return;
231
+ patched.add(target);
232
+ for (const name of methods) {
233
+ replace(target, name, (original) => function (...args) {
234
+ const parent = api_1.context.active();
235
+ if (!enabled || disposed || (0, core_1.isTracingSuppressed)(parent)) {
236
+ const scope = parent.getValue(generationKey);
237
+ let unobserved = scope?.owner === owner
238
+ ? parent.deleteValue(generationKey)
239
+ : parent;
240
+ if (parent.getValue(embeddingKey)?.owner === owner)
241
+ unobserved = unobserved.deleteValue(embeddingKey);
242
+ return api_1.context.with(unobserved, () => Reflect.apply(original, this, args));
243
+ }
244
+ activeCalls++;
245
+ let span;
246
+ let capture;
247
+ let child = parent;
248
+ safely(() => {
249
+ span = tracer.startSpan(`google.genai.${resource}.${name}`, {
250
+ kind: api_1.SpanKind.CLIENT,
251
+ attributes: {
252
+ ...(0, fi_core_1.getAttributesFromContext)(parent),
253
+ [fi_semantic_conventions_1.SemanticConventions.FI_SPAN_KIND]: name === "embedContent"
254
+ ? "EMBEDDING"
255
+ : resource === "interactions" && name !== "create"
256
+ ? "CHAIN"
257
+ : "LLM",
258
+ [fi_semantic_conventions_1.SemanticConventions.LLM_PROVIDER]: "google",
259
+ [fi_semantic_conventions_1.SemanticConventions.GEN_AI_OPERATION_NAME]: name === "generateVideos" ? "submit_video" : name,
260
+ },
261
+ }, parent);
262
+ child = api_1.trace.setSpan(parent, span);
263
+ capture = new capture_js_1.Capture(span, config, limit);
264
+ const params = (0, capture_js_1.record)(args[0]);
265
+ capture.input(params, name);
266
+ if (resource === "interactions" && name !== "create")
267
+ capture.string("google.genai.interaction_id", args[0]);
268
+ });
269
+ let ended = false;
270
+ if (resource === "models" &&
271
+ (name === "generateContent" || name === "generateContentStream")) {
272
+ const start = (params) => {
273
+ const observe = !ended
274
+ ? capture?.generationHop((0, capture_js_1.record)(params))
275
+ : undefined;
276
+ return (value) => {
277
+ if (!ended)
278
+ safely(() => observe?.(value));
279
+ };
280
+ };
281
+ child = child.setValue(generationKey, {
282
+ owner,
283
+ models: client.models,
284
+ start,
285
+ });
286
+ }
287
+ const responseCleanups = [];
288
+ child = child.deleteValue(embeddingKey);
289
+ if (resource === "models" && name === "embedContent" && embeddingApiClient) {
290
+ child = child.setValue(embeddingKey, {
291
+ owner,
292
+ apiClient: embeddingApiClient,
293
+ active: () => !ended,
294
+ observe: value => capture?.embeddingUsage(value),
295
+ cleanup: restore => responseCleanups.push(restore),
296
+ });
297
+ }
298
+ const abortCleanups = [];
299
+ const finish = (error = false, cancelled = false) => {
300
+ if (ended)
301
+ return;
302
+ ended = true;
303
+ for (const cleanup of abortCleanups)
304
+ safely(cleanup);
305
+ for (const cleanup of responseCleanups)
306
+ safely(cleanup);
307
+ responseCleanups.length = 0;
308
+ safely(() => capture?.finish());
309
+ safely(() => {
310
+ if (cancelled)
311
+ span?.setAttribute("google.genai.cancelled", true);
312
+ });
313
+ // Provider error bodies and stack traces can contain keys or media even when content capture is enabled.
314
+ safely(() => {
315
+ if (error) {
316
+ span?.setAttribute("error.type", "provider_error");
317
+ span?.setStatus({ code: api_1.SpanStatusCode.ERROR });
318
+ }
319
+ });
320
+ safely(() => span?.end());
321
+ if (--activeCalls === 0 && disposed)
322
+ restoreMethods();
323
+ };
324
+ const watchAbort = (signal, deferred = false) => safely(() => {
325
+ if (ended || !(signal instanceof AbortSignal))
326
+ return;
327
+ const onAbort = () => {
328
+ if (!deferred)
329
+ return finish(false, true);
330
+ // Legacy stream cleanup also aborts on errors. Let a pending rejection
331
+ // retain its ERROR status before treating an idle controller abort as cancellation.
332
+ const pending = setImmediate(() => finish(false, true));
333
+ abortCleanups.push(() => clearImmediate(pending));
334
+ };
335
+ signal.addEventListener("abort", onAbort, { once: true });
336
+ abortCleanups.push(() => signal.removeEventListener("abort", onAbort));
337
+ if (signal.aborted)
338
+ onAbort();
339
+ });
340
+ safely(() => watchAbort((0, capture_js_1.record)((0, capture_js_1.record)(args[0]).config).abortSignal ??
341
+ (0, capture_js_1.record)(args.at(-1)).signal));
342
+ const observe = (value) => {
343
+ if (ended)
344
+ return;
345
+ safely(() => {
346
+ capture?.response(value);
347
+ const status = (0, capture_js_1.record)((0, capture_js_1.record)(value).interaction).status ??
348
+ (0, capture_js_1.record)(value).status;
349
+ if (status === "failed" ||
350
+ (0, capture_js_1.record)(value).event_type === "error") {
351
+ span?.setAttribute("google.genai.status", "failed");
352
+ span?.setAttribute("error.type", "provider_error");
353
+ span?.setStatus({ code: api_1.SpanStatusCode.ERROR });
354
+ }
355
+ });
356
+ };
357
+ const resolvedStreams = new WeakMap();
358
+ const resolve = (value) => {
359
+ try {
360
+ if (value &&
361
+ typeof Reflect.get(Object(value), Symbol.asyncIterator) ===
362
+ "function") {
363
+ const existingStream = resolvedStreams.get(value);
364
+ if (existingStream)
365
+ return existingStream;
366
+ watchAbort((0, capture_js_1.record)((0, capture_js_1.record)(value).controller).signal, true);
367
+ const wrappedStream = wrapStream(value, child, observe, finish, () => {
368
+ safely(() => span?.setAttribute("google.genai.stream_capture", "request_only"));
369
+ finish();
370
+ });
371
+ resolvedStreams.set(value, wrappedStream);
372
+ return wrappedStream;
373
+ }
374
+ }
375
+ catch {
376
+ /* Fall back to the original value if instrumentation cannot wrap it. */
377
+ }
378
+ observe(value);
379
+ finish();
380
+ return value;
381
+ };
382
+ try {
383
+ const result = api_1.context.with(child, () => Reflect.apply(original, this, args));
384
+ if (result && typeof (0, capture_js_1.record)(result).then === "function") {
385
+ const reject = (error) => {
386
+ finish(true);
387
+ throw error;
388
+ };
389
+ if (typeof (0, capture_js_1.record)(result).withResponse === "function" ||
390
+ typeof (0, capture_js_1.record)(result).asResponse === "function") {
391
+ return (0, promise_js_1.wrapAPIPromise)(result, child, resolve, reject, () => {
392
+ safely(() => span?.setAttribute("google.genai.response_capture", "request_only"));
393
+ finish();
394
+ });
395
+ }
396
+ return Promise.resolve(result).then(resolve, reject);
397
+ }
398
+ return resolve(result);
399
+ }
400
+ catch (error) {
401
+ finish(true);
402
+ throw error;
403
+ }
404
+ });
405
+ }
406
+ }
407
+ try {
408
+ releaseGeneration = retainGenerationHooks(client.models);
409
+ safely(() => {
410
+ const apiClient = (0, capture_js_1.record)(client.models).apiClient;
411
+ if (apiClient && typeof apiClient === "object") {
412
+ releaseEmbedding = retainEmbeddingHook(apiClient);
413
+ embeddingApiClient = apiClient;
414
+ }
415
+ });
416
+ patch(client.models, modelMethods, "models");
417
+ // Preserve the public accessor and resource identity, without private SDK field writes.
418
+ let owner = client;
419
+ let interactionDescriptor;
420
+ while (owner && !interactionDescriptor) {
421
+ interactionDescriptor = Object.getOwnPropertyDescriptor(owner, "interactions");
422
+ if (!interactionDescriptor)
423
+ owner = Object.getPrototypeOf(owner);
424
+ }
425
+ if (interactionDescriptor?.get && Object.isExtensible(client)) {
426
+ const own = Object.getOwnPropertyDescriptor(client, "interactions");
427
+ const getter = interactionDescriptor.get;
428
+ const wrappedGetter = function () {
429
+ const resource = getter.call(this);
430
+ if (!disposed &&
431
+ this === client &&
432
+ resource &&
433
+ typeof resource === "object")
434
+ safely(() => patch(resource, interactionMethods, "interactions"));
435
+ return resource;
436
+ };
437
+ Object.defineProperty(client, "interactions", {
438
+ configurable: true,
439
+ enumerable: interactionDescriptor.enumerable,
440
+ get: wrappedGetter,
441
+ });
442
+ // Public accessor only: also cover a resource reference obtained before setup.
443
+ // Unsupported backend/version getters may throw; generation must still work.
444
+ safely(() => wrappedGetter.call(client));
445
+ accessorRestorers.push(() => {
446
+ if (Object.getOwnPropertyDescriptor(client, "interactions")?.get !==
447
+ wrappedGetter)
448
+ return;
449
+ if (own)
450
+ Object.defineProperty(client, "interactions", own);
451
+ else
452
+ Reflect.deleteProperty(client, "interactions");
453
+ });
454
+ }
455
+ else if (interactionDescriptor &&
456
+ "value" in interactionDescriptor &&
457
+ interactionDescriptor.value) {
458
+ patch(interactionDescriptor.value, interactionMethods, "interactions");
459
+ }
460
+ }
461
+ catch (error) {
462
+ for (const restore of accessorRestorers.reverse())
463
+ safely(restore);
464
+ restoreMethods();
465
+ throw error;
466
+ }
467
+ const handle = {
468
+ disable() {
469
+ enabled = false;
470
+ },
471
+ enable() {
472
+ if (!disposed)
473
+ enabled = true;
474
+ },
475
+ dispose() {
476
+ if (disposed)
477
+ return;
478
+ disposed = true;
479
+ for (const restore of accessorRestorers.reverse())
480
+ safely(restore);
481
+ handles.delete(client);
482
+ if (activeCalls === 0)
483
+ restoreMethods();
484
+ },
485
+ };
486
+ handles.set(client, handle);
487
+ return handle;
488
+ }
489
+ /** Pull-driven: do not read ahead, and keep next/return/throw under the call's context. */
490
+ function wrapStream(target, child, observe, finish, requestOnly) {
491
+ const iterators = new WeakMap();
492
+ function proxy(source) {
493
+ const existing = iterators.get(source);
494
+ if (existing)
495
+ return existing;
496
+ const wrapped = new Proxy(source, {
497
+ get(object, key) {
498
+ const method = Reflect.get(object, key, object);
499
+ if (typeof method !== "function")
500
+ return method;
501
+ if (key === Symbol.asyncIterator)
502
+ return () => proxy(Reflect.apply(method, object, []));
503
+ if (key === "getReader" || key === "values")
504
+ return (...args) => proxy(Reflect.apply(method, object, args));
505
+ // The legacy helper consumes this[Symbol.asyncIterator], so keep it on our observed path.
506
+ if (key === "toReadableStream")
507
+ return method.bind(wrapped);
508
+ // Native piping/branching bypasses public reads. Preserve it unchanged and
509
+ // end an explicitly request-only span rather than leave an orphan open forever.
510
+ if (["pipeTo", "pipeThrough", "tee"].includes(String(key)))
511
+ return (...args) => {
512
+ const result = Reflect.apply(method, object, args);
513
+ requestOnly();
514
+ return result;
515
+ };
516
+ if (!["next", "read", "return", "throw", "cancel"].includes(String(key)))
517
+ return method.bind(object);
518
+ return (...args) => {
519
+ try {
520
+ return Promise.resolve(api_1.context.with(child, () => Reflect.apply(method, object, args))).then((result) => {
521
+ if (key === "cancel" || (0, capture_js_1.record)(result).done)
522
+ finish(false, key === "return" || key === "cancel");
523
+ else
524
+ observe((0, capture_js_1.record)(result).value);
525
+ return result;
526
+ }, (error) => {
527
+ finish(true);
528
+ throw error;
529
+ });
530
+ }
531
+ catch (error) {
532
+ finish(true);
533
+ throw error;
534
+ }
535
+ };
536
+ },
537
+ });
538
+ iterators.set(source, wrapped);
539
+ return wrapped;
540
+ }
541
+ return proxy(target);
542
+ }
543
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { type Context } from "@opentelemetry/api";
2
+ /** Older Interactions APIs return APIPromise, not a plain Promise. In particular,
3
+ * asResponse() must not trigger JSON parsing or consume the caller's raw body.
4
+ */
5
+ export declare function wrapAPIPromise(target: object, child: Context, resolve: (value: unknown) => unknown, reject: (error: unknown) => never, requestOnly: () => void): object;
6
+ //# sourceMappingURL=promise.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../src/promise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG3D;;GAEG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,EACpC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,EACjC,WAAW,EAAE,MAAM,IAAI,GACtB,MAAM,CAuCR"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.wrapAPIPromise = wrapAPIPromise;
4
+ const api_1 = require("@opentelemetry/api");
5
+ const capture_js_1 = require("./capture.js");
6
+ /** Older Interactions APIs return APIPromise, not a plain Promise. In particular,
7
+ * asResponse() must not trigger JSON parsing or consume the caller's raw body.
8
+ */
9
+ function wrapAPIPromise(target, child, resolve, reject, requestOnly) {
10
+ let consumed;
11
+ const consume = () => (consumed ??= api_1.context.with(child, () => Promise.resolve(target).then(resolve, reject)));
12
+ return new Proxy(target, {
13
+ get(object, key) {
14
+ if (key === "then" || key === "catch" || key === "finally") {
15
+ // Accessing .then itself must not start consuming a lazy response.
16
+ return (...args) => {
17
+ const promise = consume();
18
+ return Reflect.apply(Reflect.get(promise, key), promise, args);
19
+ };
20
+ }
21
+ const method = Reflect.get(object, key, object);
22
+ if (typeof method !== "function")
23
+ return method;
24
+ if (key === "withResponse" || key === "asResponse")
25
+ return (...args) => {
26
+ try {
27
+ return Promise.resolve(api_1.context.with(child, () => Reflect.apply(method, object, args))).then((value) => {
28
+ if (key === "asResponse") {
29
+ requestOnly();
30
+ return value;
31
+ }
32
+ const envelope = (0, capture_js_1.record)(value);
33
+ const data = resolve(envelope.data);
34
+ // Non-stream data keeps identity. Streaming data alone gets the iterator observer.
35
+ return data === envelope.data ? value : { ...envelope, data };
36
+ }, reject);
37
+ }
38
+ catch (error) {
39
+ return reject(error);
40
+ }
41
+ };
42
+ return method.bind(object);
43
+ },
44
+ });
45
+ }
46
+ //# sourceMappingURL=promise.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promise.js","sourceRoot":"","sources":["../src/promise.ts"],"names":[],"mappings":";;AAMA,wCA6CC;AAnDD,4CAA2D;AAC3D,6CAAsC;AAEtC;;GAEG;AACH,SAAgB,cAAc,CAC5B,MAAc,EACd,KAAc,EACd,OAAoC,EACpC,MAAiC,EACjC,WAAuB;IAEvB,IAAI,QAAsC,CAAC;IAC3C,MAAM,OAAO,GAAG,GAAG,EAAE,CACnB,CAAC,QAAQ,KAAK,aAAO,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CACrC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAC9C,CAAC,CAAC;IACL,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;QACvB,GAAG,CAAC,MAAM,EAAE,GAAG;YACb,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBAC3D,mEAAmE;gBACnE,OAAO,CAAC,GAAG,IAAe,EAAE,EAAE;oBAC5B,MAAM,OAAO,GAAG,OAAO,EAAE,CAAC;oBAC1B,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBACjE,CAAC,CAAC;YACJ,CAAC;YACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YAChD,IAAI,OAAO,MAAM,KAAK,UAAU;gBAAE,OAAO,MAAM,CAAC;YAChD,IAAI,GAAG,KAAK,cAAc,IAAI,GAAG,KAAK,YAAY;gBAChD,OAAO,CAAC,GAAG,IAAe,EAAE,EAAE;oBAC5B,IAAI,CAAC;wBACH,OAAO,OAAO,CAAC,OAAO,CACpB,aAAO,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAC/D,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;4BACf,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;gCACzB,WAAW,EAAE,CAAC;gCACd,OAAO,KAAK,CAAC;4BACf,CAAC;4BACD,MAAM,QAAQ,GAAG,IAAA,mBAAM,EAAC,KAAK,CAAC,CAAC;4BAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;4BACpC,mFAAmF;4BACnF,OAAO,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC;wBAChE,CAAC,EAAE,MAAM,CAAC,CAAC;oBACb,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;oBACvB,CAAC;gBACH,CAAC,CAAC;YACJ,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const VERSION = "0.1.0";
2
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAC"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VERSION = void 0;
4
+ exports.VERSION = "0.1.0"; // x-release-please-version
5
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG,OAAO,CAAC,CAAC,2BAA2B"}