@pellux/goodvibes-sdk 0.25.1 → 0.25.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dist/_internal/daemon/otlp-protobuf.d.ts +3 -0
  2. package/dist/_internal/daemon/otlp-protobuf.d.ts.map +1 -0
  3. package/dist/_internal/daemon/otlp-protobuf.js +968 -0
  4. package/dist/_internal/daemon/telemetry-routes.d.ts.map +1 -1
  5. package/dist/_internal/daemon/telemetry-routes.js +22 -13
  6. package/dist/_internal/platform/version.js +1 -1
  7. package/package.json +1 -1
  8. package/dist/_internal/platform/runtime/contracts/index.d.ts +0 -40
  9. package/dist/_internal/platform/runtime/contracts/index.d.ts.map +0 -1
  10. package/dist/_internal/platform/runtime/contracts/index.js +0 -133
  11. package/dist/_internal/platform/runtime/contracts/migrations/index.d.ts +0 -75
  12. package/dist/_internal/platform/runtime/contracts/migrations/index.d.ts.map +0 -1
  13. package/dist/_internal/platform/runtime/contracts/migrations/index.js +0 -158
  14. package/dist/_internal/platform/runtime/contracts/migrations/schemas.d.ts +0 -57
  15. package/dist/_internal/platform/runtime/contracts/migrations/schemas.d.ts.map +0 -1
  16. package/dist/_internal/platform/runtime/contracts/migrations/schemas.js +0 -157
  17. package/dist/_internal/platform/runtime/contracts/types.d.ts +0 -123
  18. package/dist/_internal/platform/runtime/contracts/types.d.ts.map +0 -1
  19. package/dist/_internal/platform/runtime/contracts/types.js +0 -41
  20. package/dist/_internal/platform/runtime/contracts/validators/event-envelope.d.ts +0 -24
  21. package/dist/_internal/platform/runtime/contracts/validators/event-envelope.d.ts.map +0 -1
  22. package/dist/_internal/platform/runtime/contracts/validators/event-envelope.js +0 -104
  23. package/dist/_internal/platform/runtime/contracts/validators/index.d.ts +0 -11
  24. package/dist/_internal/platform/runtime/contracts/validators/index.d.ts.map +0 -1
  25. package/dist/_internal/platform/runtime/contracts/validators/index.js +0 -10
  26. package/dist/_internal/platform/runtime/contracts/validators/runtime-state.d.ts +0 -23
  27. package/dist/_internal/platform/runtime/contracts/validators/runtime-state.d.ts.map +0 -1
  28. package/dist/_internal/platform/runtime/contracts/validators/runtime-state.js +0 -101
  29. package/dist/_internal/platform/runtime/contracts/validators/session.d.ts +0 -24
  30. package/dist/_internal/platform/runtime/contracts/validators/session.d.ts.map +0 -1
  31. package/dist/_internal/platform/runtime/contracts/validators/session.js +0 -103
  32. package/dist/_internal/platform/runtime/contracts/version.d.ts +0 -84
  33. package/dist/_internal/platform/runtime/contracts/version.d.ts.map +0 -1
  34. package/dist/_internal/platform/runtime/contracts/version.js +0 -41
@@ -0,0 +1,968 @@
1
+ class ProtoReader {
2
+ bytes;
3
+ offset = 0;
4
+ constructor(bytes) {
5
+ this.bytes = bytes;
6
+ }
7
+ eof() {
8
+ return this.offset >= this.bytes.length;
9
+ }
10
+ readField() {
11
+ const tag = this.readVarint();
12
+ const fieldNumber = Number(tag >> 3n);
13
+ const wireType = Number(tag & 0x07n);
14
+ if (fieldNumber <= 0)
15
+ throw new Error(`Invalid protobuf field number: ${fieldNumber}`);
16
+ return { fieldNumber, wireType };
17
+ }
18
+ readVarint() {
19
+ let value = 0n;
20
+ let shift = 0n;
21
+ for (let i = 0; i < 10; i++) {
22
+ const byte = this.readByte();
23
+ value |= BigInt(byte & 0x7f) << shift;
24
+ if ((byte & 0x80) === 0)
25
+ return value;
26
+ shift += 7n;
27
+ }
28
+ throw new Error('Invalid protobuf varint');
29
+ }
30
+ readFixed32() {
31
+ this.ensure(4);
32
+ const view = new DataView(this.bytes.buffer, this.bytes.byteOffset + this.offset, 4);
33
+ const value = view.getUint32(0, true);
34
+ this.offset += 4;
35
+ return value;
36
+ }
37
+ readFixed64() {
38
+ this.ensure(8);
39
+ let value = 0n;
40
+ for (let i = 0; i < 8; i++) {
41
+ value |= BigInt(this.bytes[this.offset + i]) << BigInt(i * 8);
42
+ }
43
+ this.offset += 8;
44
+ return value;
45
+ }
46
+ readDouble() {
47
+ this.ensure(8);
48
+ const view = new DataView(this.bytes.buffer, this.bytes.byteOffset + this.offset, 8);
49
+ const value = view.getFloat64(0, true);
50
+ this.offset += 8;
51
+ return value;
52
+ }
53
+ readFloat() {
54
+ this.ensure(4);
55
+ const view = new DataView(this.bytes.buffer, this.bytes.byteOffset + this.offset, 4);
56
+ const value = view.getFloat32(0, true);
57
+ this.offset += 4;
58
+ return value;
59
+ }
60
+ readLengthDelimited() {
61
+ const length = Number(this.readVarint());
62
+ if (!Number.isSafeInteger(length) || length < 0)
63
+ throw new Error(`Invalid protobuf length: ${length}`);
64
+ this.ensure(length);
65
+ const value = this.bytes.subarray(this.offset, this.offset + length);
66
+ this.offset += length;
67
+ return value;
68
+ }
69
+ readString() {
70
+ return new TextDecoder().decode(this.readLengthDelimited());
71
+ }
72
+ skip(wireType) {
73
+ switch (wireType) {
74
+ case 0:
75
+ this.readVarint();
76
+ return;
77
+ case 1:
78
+ this.ensure(8);
79
+ this.offset += 8;
80
+ return;
81
+ case 2: {
82
+ this.readLengthDelimited();
83
+ return;
84
+ }
85
+ case 5:
86
+ this.ensure(4);
87
+ this.offset += 4;
88
+ return;
89
+ default:
90
+ throw new Error(`Unsupported protobuf wire type: ${wireType}`);
91
+ }
92
+ }
93
+ readByte() {
94
+ this.ensure(1);
95
+ return this.bytes[this.offset++];
96
+ }
97
+ ensure(length) {
98
+ if (this.offset + length > this.bytes.length) {
99
+ throw new Error('Truncated protobuf payload');
100
+ }
101
+ }
102
+ }
103
+ function readMessage(reader, wireType, decode) {
104
+ if (wireType !== 2) {
105
+ reader.skip(wireType);
106
+ return undefined;
107
+ }
108
+ return decode(reader.readLengthDelimited());
109
+ }
110
+ function readString(reader, wireType) {
111
+ if (wireType !== 2) {
112
+ reader.skip(wireType);
113
+ return undefined;
114
+ }
115
+ return reader.readString();
116
+ }
117
+ function readBytes(reader, wireType) {
118
+ if (wireType !== 2) {
119
+ reader.skip(wireType);
120
+ return undefined;
121
+ }
122
+ return reader.readLengthDelimited();
123
+ }
124
+ function readBool(reader, wireType) {
125
+ if (wireType !== 0) {
126
+ reader.skip(wireType);
127
+ return undefined;
128
+ }
129
+ return reader.readVarint() !== 0n;
130
+ }
131
+ function readNumeric(reader, wireType) {
132
+ if (wireType === 0)
133
+ return Number(reader.readVarint());
134
+ if (wireType === 1)
135
+ return Number(reader.readFixed64());
136
+ if (wireType === 5)
137
+ return reader.readFixed32();
138
+ reader.skip(wireType);
139
+ return undefined;
140
+ }
141
+ function readFloating(reader, wireType) {
142
+ if (wireType === 1)
143
+ return reader.readDouble();
144
+ if (wireType === 5)
145
+ return reader.readFloat();
146
+ reader.skip(wireType);
147
+ return undefined;
148
+ }
149
+ function bytesToHex(bytes) {
150
+ return Array.from(bytes, (byte) => byte.toString(16).padStart(2, '0')).join('');
151
+ }
152
+ function bytesToBase64(bytes) {
153
+ return Buffer.from(bytes).toString('base64');
154
+ }
155
+ function readKeyValueArray(target, reader, wireType) {
156
+ const entry = readMessage(reader, wireType, decodeKeyValue);
157
+ if (!entry)
158
+ return;
159
+ const current = Array.isArray(target['attributes']) ? target['attributes'] : [];
160
+ current.push(entry);
161
+ target['attributes'] = current;
162
+ }
163
+ function decodeKeyValue(bytes) {
164
+ const reader = new ProtoReader(bytes);
165
+ const out = {};
166
+ while (!reader.eof()) {
167
+ const { fieldNumber, wireType } = reader.readField();
168
+ switch (fieldNumber) {
169
+ case 1: {
170
+ const value = readString(reader, wireType);
171
+ if (value !== undefined)
172
+ out['key'] = value;
173
+ break;
174
+ }
175
+ case 2: {
176
+ const value = readMessage(reader, wireType, decodeAnyValue);
177
+ if (value)
178
+ out['value'] = value;
179
+ break;
180
+ }
181
+ default:
182
+ reader.skip(wireType);
183
+ }
184
+ }
185
+ return out;
186
+ }
187
+ function decodeAnyValue(bytes) {
188
+ const reader = new ProtoReader(bytes);
189
+ const out = {};
190
+ while (!reader.eof()) {
191
+ const { fieldNumber, wireType } = reader.readField();
192
+ switch (fieldNumber) {
193
+ case 1: {
194
+ const value = readString(reader, wireType);
195
+ if (value !== undefined)
196
+ out['stringValue'] = value;
197
+ break;
198
+ }
199
+ case 2: {
200
+ const value = readBool(reader, wireType);
201
+ if (value !== undefined)
202
+ out['boolValue'] = value;
203
+ break;
204
+ }
205
+ case 3: {
206
+ const value = readNumeric(reader, wireType);
207
+ if (value !== undefined)
208
+ out['intValue'] = String(Math.trunc(value));
209
+ break;
210
+ }
211
+ case 4: {
212
+ const value = readFloating(reader, wireType);
213
+ if (value !== undefined)
214
+ out['doubleValue'] = value;
215
+ break;
216
+ }
217
+ case 5: {
218
+ const value = readMessage(reader, wireType, decodeArrayValue);
219
+ if (value)
220
+ out['arrayValue'] = value;
221
+ break;
222
+ }
223
+ case 6: {
224
+ const value = readMessage(reader, wireType, decodeKeyValueList);
225
+ if (value)
226
+ out['kvlistValue'] = value;
227
+ break;
228
+ }
229
+ case 7: {
230
+ const value = readBytes(reader, wireType);
231
+ if (value)
232
+ out['bytesValue'] = bytesToBase64(value);
233
+ break;
234
+ }
235
+ default:
236
+ reader.skip(wireType);
237
+ }
238
+ }
239
+ return out;
240
+ }
241
+ function decodeArrayValue(bytes) {
242
+ const reader = new ProtoReader(bytes);
243
+ const values = [];
244
+ while (!reader.eof()) {
245
+ const { fieldNumber, wireType } = reader.readField();
246
+ if (fieldNumber === 1) {
247
+ const value = readMessage(reader, wireType, decodeAnyValue);
248
+ if (value)
249
+ values.push(value);
250
+ }
251
+ else {
252
+ reader.skip(wireType);
253
+ }
254
+ }
255
+ return { values };
256
+ }
257
+ function decodeKeyValueList(bytes) {
258
+ const reader = new ProtoReader(bytes);
259
+ const values = [];
260
+ while (!reader.eof()) {
261
+ const { fieldNumber, wireType } = reader.readField();
262
+ if (fieldNumber === 1) {
263
+ const value = readMessage(reader, wireType, decodeKeyValue);
264
+ if (value)
265
+ values.push(value);
266
+ }
267
+ else {
268
+ reader.skip(wireType);
269
+ }
270
+ }
271
+ return { values };
272
+ }
273
+ function decodeResource(bytes) {
274
+ const reader = new ProtoReader(bytes);
275
+ const out = { attributes: [] };
276
+ while (!reader.eof()) {
277
+ const { fieldNumber, wireType } = reader.readField();
278
+ switch (fieldNumber) {
279
+ case 1:
280
+ readKeyValueArray(out, reader, wireType);
281
+ break;
282
+ case 2: {
283
+ const value = readNumeric(reader, wireType);
284
+ if (value !== undefined)
285
+ out['droppedAttributesCount'] = value;
286
+ break;
287
+ }
288
+ default:
289
+ reader.skip(wireType);
290
+ }
291
+ }
292
+ return out;
293
+ }
294
+ function decodeScope(bytes) {
295
+ const reader = new ProtoReader(bytes);
296
+ const out = { attributes: [] };
297
+ while (!reader.eof()) {
298
+ const { fieldNumber, wireType } = reader.readField();
299
+ switch (fieldNumber) {
300
+ case 1: {
301
+ const value = readString(reader, wireType);
302
+ if (value !== undefined)
303
+ out['name'] = value;
304
+ break;
305
+ }
306
+ case 2: {
307
+ const value = readString(reader, wireType);
308
+ if (value !== undefined)
309
+ out['version'] = value;
310
+ break;
311
+ }
312
+ case 3:
313
+ readKeyValueArray(out, reader, wireType);
314
+ break;
315
+ case 4: {
316
+ const value = readNumeric(reader, wireType);
317
+ if (value !== undefined)
318
+ out['droppedAttributesCount'] = value;
319
+ break;
320
+ }
321
+ default:
322
+ reader.skip(wireType);
323
+ }
324
+ }
325
+ return out;
326
+ }
327
+ function decodeExportTraceServiceRequest(bytes) {
328
+ const reader = new ProtoReader(bytes);
329
+ const resourceSpans = [];
330
+ while (!reader.eof()) {
331
+ const { fieldNumber, wireType } = reader.readField();
332
+ if (fieldNumber === 1) {
333
+ const value = readMessage(reader, wireType, decodeResourceSpans);
334
+ if (value)
335
+ resourceSpans.push(value);
336
+ }
337
+ else {
338
+ reader.skip(wireType);
339
+ }
340
+ }
341
+ return { resourceSpans };
342
+ }
343
+ function decodeResourceSpans(bytes) {
344
+ const reader = new ProtoReader(bytes);
345
+ const out = { scopeSpans: [] };
346
+ while (!reader.eof()) {
347
+ const { fieldNumber, wireType } = reader.readField();
348
+ switch (fieldNumber) {
349
+ case 1: {
350
+ const value = readMessage(reader, wireType, decodeResource);
351
+ if (value)
352
+ out['resource'] = value;
353
+ break;
354
+ }
355
+ case 2: {
356
+ const value = readMessage(reader, wireType, decodeScopeSpans);
357
+ if (value)
358
+ out['scopeSpans'].push(value);
359
+ break;
360
+ }
361
+ case 3: {
362
+ const value = readString(reader, wireType);
363
+ if (value !== undefined)
364
+ out['schemaUrl'] = value;
365
+ break;
366
+ }
367
+ default:
368
+ reader.skip(wireType);
369
+ }
370
+ }
371
+ return out;
372
+ }
373
+ function decodeScopeSpans(bytes) {
374
+ const reader = new ProtoReader(bytes);
375
+ const out = { spans: [] };
376
+ while (!reader.eof()) {
377
+ const { fieldNumber, wireType } = reader.readField();
378
+ switch (fieldNumber) {
379
+ case 1: {
380
+ const value = readMessage(reader, wireType, decodeScope);
381
+ if (value)
382
+ out['scope'] = value;
383
+ break;
384
+ }
385
+ case 2: {
386
+ const value = readMessage(reader, wireType, decodeSpan);
387
+ if (value)
388
+ out['spans'].push(value);
389
+ break;
390
+ }
391
+ case 3: {
392
+ const value = readString(reader, wireType);
393
+ if (value !== undefined)
394
+ out['schemaUrl'] = value;
395
+ break;
396
+ }
397
+ default:
398
+ reader.skip(wireType);
399
+ }
400
+ }
401
+ return out;
402
+ }
403
+ function decodeSpan(bytes) {
404
+ const reader = new ProtoReader(bytes);
405
+ const out = { attributes: [], events: [], links: [] };
406
+ while (!reader.eof()) {
407
+ const { fieldNumber, wireType } = reader.readField();
408
+ switch (fieldNumber) {
409
+ case 1: {
410
+ const value = readBytes(reader, wireType);
411
+ if (value)
412
+ out['traceId'] = bytesToHex(value);
413
+ break;
414
+ }
415
+ case 2: {
416
+ const value = readBytes(reader, wireType);
417
+ if (value)
418
+ out['spanId'] = bytesToHex(value);
419
+ break;
420
+ }
421
+ case 3: {
422
+ const value = readString(reader, wireType);
423
+ if (value !== undefined)
424
+ out['traceState'] = value;
425
+ break;
426
+ }
427
+ case 4: {
428
+ const value = readBytes(reader, wireType);
429
+ if (value)
430
+ out['parentSpanId'] = bytesToHex(value);
431
+ break;
432
+ }
433
+ case 5: {
434
+ const value = readString(reader, wireType);
435
+ if (value !== undefined)
436
+ out['name'] = value;
437
+ break;
438
+ }
439
+ case 6: {
440
+ const value = readNumeric(reader, wireType);
441
+ if (value !== undefined)
442
+ out['kind'] = value;
443
+ break;
444
+ }
445
+ case 7: {
446
+ const value = readNumeric(reader, wireType);
447
+ if (value !== undefined)
448
+ out['startTimeUnixNano'] = value;
449
+ break;
450
+ }
451
+ case 8: {
452
+ const value = readNumeric(reader, wireType);
453
+ if (value !== undefined)
454
+ out['endTimeUnixNano'] = value;
455
+ break;
456
+ }
457
+ case 9:
458
+ readKeyValueArray(out, reader, wireType);
459
+ break;
460
+ case 10:
461
+ case 12:
462
+ case 14:
463
+ case 16: {
464
+ const key = fieldNumber === 10
465
+ ? 'droppedAttributesCount'
466
+ : fieldNumber === 12
467
+ ? 'droppedEventsCount'
468
+ : fieldNumber === 14
469
+ ? 'droppedLinksCount'
470
+ : 'flags';
471
+ const value = readNumeric(reader, wireType);
472
+ if (value !== undefined)
473
+ out[key] = value;
474
+ break;
475
+ }
476
+ case 11: {
477
+ const value = readMessage(reader, wireType, decodeSpanEvent);
478
+ if (value)
479
+ out['events'].push(value);
480
+ break;
481
+ }
482
+ case 13: {
483
+ const value = readMessage(reader, wireType, decodeSpanLink);
484
+ if (value)
485
+ out['links'].push(value);
486
+ break;
487
+ }
488
+ case 15: {
489
+ const value = readMessage(reader, wireType, decodeSpanStatus);
490
+ if (value)
491
+ out['status'] = value;
492
+ break;
493
+ }
494
+ default:
495
+ reader.skip(wireType);
496
+ }
497
+ }
498
+ return out;
499
+ }
500
+ function decodeSpanEvent(bytes) {
501
+ const reader = new ProtoReader(bytes);
502
+ const out = { attributes: [] };
503
+ while (!reader.eof()) {
504
+ const { fieldNumber, wireType } = reader.readField();
505
+ switch (fieldNumber) {
506
+ case 1: {
507
+ const value = readNumeric(reader, wireType);
508
+ if (value !== undefined)
509
+ out['timeUnixNano'] = value;
510
+ break;
511
+ }
512
+ case 2: {
513
+ const value = readString(reader, wireType);
514
+ if (value !== undefined)
515
+ out['name'] = value;
516
+ break;
517
+ }
518
+ case 3:
519
+ readKeyValueArray(out, reader, wireType);
520
+ break;
521
+ case 4: {
522
+ const value = readNumeric(reader, wireType);
523
+ if (value !== undefined)
524
+ out['droppedAttributesCount'] = value;
525
+ break;
526
+ }
527
+ default:
528
+ reader.skip(wireType);
529
+ }
530
+ }
531
+ return out;
532
+ }
533
+ function decodeSpanLink(bytes) {
534
+ const reader = new ProtoReader(bytes);
535
+ const out = { attributes: [] };
536
+ while (!reader.eof()) {
537
+ const { fieldNumber, wireType } = reader.readField();
538
+ switch (fieldNumber) {
539
+ case 1: {
540
+ const value = readBytes(reader, wireType);
541
+ if (value)
542
+ out['traceId'] = bytesToHex(value);
543
+ break;
544
+ }
545
+ case 2: {
546
+ const value = readBytes(reader, wireType);
547
+ if (value)
548
+ out['spanId'] = bytesToHex(value);
549
+ break;
550
+ }
551
+ case 3: {
552
+ const value = readString(reader, wireType);
553
+ if (value !== undefined)
554
+ out['traceState'] = value;
555
+ break;
556
+ }
557
+ case 4:
558
+ readKeyValueArray(out, reader, wireType);
559
+ break;
560
+ case 5: {
561
+ const value = readNumeric(reader, wireType);
562
+ if (value !== undefined)
563
+ out['droppedAttributesCount'] = value;
564
+ break;
565
+ }
566
+ default:
567
+ reader.skip(wireType);
568
+ }
569
+ }
570
+ return out;
571
+ }
572
+ function decodeSpanStatus(bytes) {
573
+ const reader = new ProtoReader(bytes);
574
+ const out = {};
575
+ while (!reader.eof()) {
576
+ const { fieldNumber, wireType } = reader.readField();
577
+ switch (fieldNumber) {
578
+ case 1: {
579
+ const value = readString(reader, wireType);
580
+ if (value !== undefined)
581
+ out['message'] = value;
582
+ break;
583
+ }
584
+ case 2: {
585
+ const value = readNumeric(reader, wireType);
586
+ if (value !== undefined)
587
+ out['code'] = value;
588
+ break;
589
+ }
590
+ default:
591
+ reader.skip(wireType);
592
+ }
593
+ }
594
+ return out;
595
+ }
596
+ function decodeExportLogsServiceRequest(bytes) {
597
+ const reader = new ProtoReader(bytes);
598
+ const resourceLogs = [];
599
+ while (!reader.eof()) {
600
+ const { fieldNumber, wireType } = reader.readField();
601
+ if (fieldNumber === 1) {
602
+ const value = readMessage(reader, wireType, decodeResourceLogs);
603
+ if (value)
604
+ resourceLogs.push(value);
605
+ }
606
+ else {
607
+ reader.skip(wireType);
608
+ }
609
+ }
610
+ return { resourceLogs };
611
+ }
612
+ function decodeResourceLogs(bytes) {
613
+ const reader = new ProtoReader(bytes);
614
+ const out = { scopeLogs: [] };
615
+ while (!reader.eof()) {
616
+ const { fieldNumber, wireType } = reader.readField();
617
+ switch (fieldNumber) {
618
+ case 1: {
619
+ const value = readMessage(reader, wireType, decodeResource);
620
+ if (value)
621
+ out['resource'] = value;
622
+ break;
623
+ }
624
+ case 2: {
625
+ const value = readMessage(reader, wireType, decodeScopeLogs);
626
+ if (value)
627
+ out['scopeLogs'].push(value);
628
+ break;
629
+ }
630
+ case 3: {
631
+ const value = readString(reader, wireType);
632
+ if (value !== undefined)
633
+ out['schemaUrl'] = value;
634
+ break;
635
+ }
636
+ default:
637
+ reader.skip(wireType);
638
+ }
639
+ }
640
+ return out;
641
+ }
642
+ function decodeScopeLogs(bytes) {
643
+ const reader = new ProtoReader(bytes);
644
+ const out = { logRecords: [] };
645
+ while (!reader.eof()) {
646
+ const { fieldNumber, wireType } = reader.readField();
647
+ switch (fieldNumber) {
648
+ case 1: {
649
+ const value = readMessage(reader, wireType, decodeScope);
650
+ if (value)
651
+ out['scope'] = value;
652
+ break;
653
+ }
654
+ case 2: {
655
+ const value = readMessage(reader, wireType, decodeLogRecord);
656
+ if (value)
657
+ out['logRecords'].push(value);
658
+ break;
659
+ }
660
+ case 3: {
661
+ const value = readString(reader, wireType);
662
+ if (value !== undefined)
663
+ out['schemaUrl'] = value;
664
+ break;
665
+ }
666
+ default:
667
+ reader.skip(wireType);
668
+ }
669
+ }
670
+ return out;
671
+ }
672
+ function decodeLogRecord(bytes) {
673
+ const reader = new ProtoReader(bytes);
674
+ const out = { attributes: [] };
675
+ while (!reader.eof()) {
676
+ const { fieldNumber, wireType } = reader.readField();
677
+ switch (fieldNumber) {
678
+ case 1:
679
+ case 11: {
680
+ const value = readNumeric(reader, wireType);
681
+ if (value !== undefined)
682
+ out[fieldNumber === 1 ? 'timeUnixNano' : 'observedTimeUnixNano'] = value;
683
+ break;
684
+ }
685
+ case 2:
686
+ case 7:
687
+ case 8: {
688
+ const key = fieldNumber === 2 ? 'severityNumber' : fieldNumber === 7 ? 'droppedAttributesCount' : 'flags';
689
+ const value = readNumeric(reader, wireType);
690
+ if (value !== undefined)
691
+ out[key] = value;
692
+ break;
693
+ }
694
+ case 3:
695
+ case 12: {
696
+ const value = readString(reader, wireType);
697
+ if (value !== undefined)
698
+ out[fieldNumber === 3 ? 'severityText' : 'eventName'] = value;
699
+ break;
700
+ }
701
+ case 5: {
702
+ const value = readMessage(reader, wireType, decodeAnyValue);
703
+ if (value)
704
+ out['body'] = value;
705
+ break;
706
+ }
707
+ case 6:
708
+ readKeyValueArray(out, reader, wireType);
709
+ break;
710
+ case 9:
711
+ case 10: {
712
+ const value = readBytes(reader, wireType);
713
+ if (value)
714
+ out[fieldNumber === 9 ? 'traceId' : 'spanId'] = bytesToHex(value);
715
+ break;
716
+ }
717
+ default:
718
+ reader.skip(wireType);
719
+ }
720
+ }
721
+ return out;
722
+ }
723
+ function decodeExportMetricsServiceRequest(bytes) {
724
+ const reader = new ProtoReader(bytes);
725
+ const resourceMetrics = [];
726
+ while (!reader.eof()) {
727
+ const { fieldNumber, wireType } = reader.readField();
728
+ if (fieldNumber === 1) {
729
+ const value = readMessage(reader, wireType, decodeResourceMetrics);
730
+ if (value)
731
+ resourceMetrics.push(value);
732
+ }
733
+ else {
734
+ reader.skip(wireType);
735
+ }
736
+ }
737
+ return { resourceMetrics };
738
+ }
739
+ function decodeResourceMetrics(bytes) {
740
+ const reader = new ProtoReader(bytes);
741
+ const out = { scopeMetrics: [] };
742
+ while (!reader.eof()) {
743
+ const { fieldNumber, wireType } = reader.readField();
744
+ switch (fieldNumber) {
745
+ case 1: {
746
+ const value = readMessage(reader, wireType, decodeResource);
747
+ if (value)
748
+ out['resource'] = value;
749
+ break;
750
+ }
751
+ case 2: {
752
+ const value = readMessage(reader, wireType, decodeScopeMetrics);
753
+ if (value)
754
+ out['scopeMetrics'].push(value);
755
+ break;
756
+ }
757
+ case 3: {
758
+ const value = readString(reader, wireType);
759
+ if (value !== undefined)
760
+ out['schemaUrl'] = value;
761
+ break;
762
+ }
763
+ default:
764
+ reader.skip(wireType);
765
+ }
766
+ }
767
+ return out;
768
+ }
769
+ function decodeScopeMetrics(bytes) {
770
+ const reader = new ProtoReader(bytes);
771
+ const out = { metrics: [] };
772
+ while (!reader.eof()) {
773
+ const { fieldNumber, wireType } = reader.readField();
774
+ switch (fieldNumber) {
775
+ case 1: {
776
+ const value = readMessage(reader, wireType, decodeScope);
777
+ if (value)
778
+ out['scope'] = value;
779
+ break;
780
+ }
781
+ case 2: {
782
+ const value = readMessage(reader, wireType, decodeMetric);
783
+ if (value)
784
+ out['metrics'].push(value);
785
+ break;
786
+ }
787
+ case 3: {
788
+ const value = readString(reader, wireType);
789
+ if (value !== undefined)
790
+ out['schemaUrl'] = value;
791
+ break;
792
+ }
793
+ default:
794
+ reader.skip(wireType);
795
+ }
796
+ }
797
+ return out;
798
+ }
799
+ function decodeMetric(bytes) {
800
+ const reader = new ProtoReader(bytes);
801
+ const out = {};
802
+ while (!reader.eof()) {
803
+ const { fieldNumber, wireType } = reader.readField();
804
+ switch (fieldNumber) {
805
+ case 1:
806
+ case 2:
807
+ case 3: {
808
+ const key = fieldNumber === 1 ? 'name' : fieldNumber === 2 ? 'description' : 'unit';
809
+ const value = readString(reader, wireType);
810
+ if (value !== undefined)
811
+ out[key] = value;
812
+ break;
813
+ }
814
+ case 5: {
815
+ const value = readMessage(reader, wireType, decodeGauge);
816
+ if (value)
817
+ out['gauge'] = value;
818
+ break;
819
+ }
820
+ case 7: {
821
+ const value = readMessage(reader, wireType, decodeSum);
822
+ if (value)
823
+ out['sum'] = value;
824
+ break;
825
+ }
826
+ case 9: {
827
+ const value = readMessage(reader, wireType, decodeHistogram);
828
+ if (value)
829
+ out['histogram'] = value;
830
+ break;
831
+ }
832
+ case 10: {
833
+ const value = readMessage(reader, wireType, decodeHistogram);
834
+ if (value)
835
+ out['exponentialHistogram'] = value;
836
+ break;
837
+ }
838
+ case 11: {
839
+ const value = readMessage(reader, wireType, decodeSummary);
840
+ if (value)
841
+ out['summary'] = value;
842
+ break;
843
+ }
844
+ case 12:
845
+ readKeyValueArray(out, reader, wireType);
846
+ break;
847
+ default:
848
+ reader.skip(wireType);
849
+ }
850
+ }
851
+ return out;
852
+ }
853
+ function decodeGauge(bytes) {
854
+ return decodeMetricPoints(bytes, decodeNumberDataPoint, false);
855
+ }
856
+ function decodeSum(bytes) {
857
+ return decodeMetricPoints(bytes, decodeNumberDataPoint, true);
858
+ }
859
+ function decodeHistogram(bytes) {
860
+ return decodeMetricPoints(bytes, decodeGenericDataPoint, true);
861
+ }
862
+ function decodeSummary(bytes) {
863
+ return decodeMetricPoints(bytes, decodeGenericDataPoint, false);
864
+ }
865
+ function decodeMetricPoints(bytes, decodeDataPoint, hasAggregationTemporality) {
866
+ const reader = new ProtoReader(bytes);
867
+ const out = { dataPoints: [] };
868
+ while (!reader.eof()) {
869
+ const { fieldNumber, wireType } = reader.readField();
870
+ if (fieldNumber === 1) {
871
+ const value = readMessage(reader, wireType, decodeDataPoint);
872
+ if (value)
873
+ out['dataPoints'].push(value);
874
+ }
875
+ else if (hasAggregationTemporality && fieldNumber === 2) {
876
+ const value = readNumeric(reader, wireType);
877
+ if (value !== undefined)
878
+ out['aggregationTemporality'] = value;
879
+ }
880
+ else if (fieldNumber === 3) {
881
+ const value = readBool(reader, wireType);
882
+ if (value !== undefined)
883
+ out['isMonotonic'] = value;
884
+ }
885
+ else {
886
+ reader.skip(wireType);
887
+ }
888
+ }
889
+ return out;
890
+ }
891
+ function decodeNumberDataPoint(bytes) {
892
+ const reader = new ProtoReader(bytes);
893
+ const out = { attributes: [] };
894
+ while (!reader.eof()) {
895
+ const { fieldNumber, wireType } = reader.readField();
896
+ switch (fieldNumber) {
897
+ case 2:
898
+ case 3: {
899
+ const value = readNumeric(reader, wireType);
900
+ if (value !== undefined)
901
+ out[fieldNumber === 2 ? 'startTimeUnixNano' : 'timeUnixNano'] = value;
902
+ break;
903
+ }
904
+ case 4: {
905
+ const value = readFloating(reader, wireType);
906
+ if (value !== undefined)
907
+ out['asDouble'] = value;
908
+ break;
909
+ }
910
+ case 6: {
911
+ const value = readNumeric(reader, wireType);
912
+ if (value !== undefined)
913
+ out['asInt'] = String(Math.trunc(value));
914
+ break;
915
+ }
916
+ case 7:
917
+ readKeyValueArray(out, reader, wireType);
918
+ break;
919
+ case 8: {
920
+ const value = readNumeric(reader, wireType);
921
+ if (value !== undefined)
922
+ out['flags'] = value;
923
+ break;
924
+ }
925
+ default:
926
+ reader.skip(wireType);
927
+ }
928
+ }
929
+ return out;
930
+ }
931
+ function decodeGenericDataPoint(bytes) {
932
+ const reader = new ProtoReader(bytes);
933
+ const out = { attributes: [] };
934
+ while (!reader.eof()) {
935
+ const { fieldNumber, wireType } = reader.readField();
936
+ if (fieldNumber === 2 || fieldNumber === 3 || fieldNumber === 4 || fieldNumber === 5 || fieldNumber === 10 || fieldNumber === 11 || fieldNumber === 12) {
937
+ const value = fieldNumber === 5 || fieldNumber === 11 || fieldNumber === 12
938
+ ? readFloating(reader, wireType)
939
+ : readNumeric(reader, wireType);
940
+ if (value !== undefined) {
941
+ out[fieldNumber === 2 ? 'startTimeUnixNano'
942
+ : fieldNumber === 3 ? 'timeUnixNano'
943
+ : fieldNumber === 4 ? 'count'
944
+ : fieldNumber === 5 ? 'sum'
945
+ : fieldNumber === 10 ? 'flags'
946
+ : fieldNumber === 11 ? 'min'
947
+ : 'max'] = value;
948
+ }
949
+ }
950
+ else if (fieldNumber === 9) {
951
+ readKeyValueArray(out, reader, wireType);
952
+ }
953
+ else {
954
+ reader.skip(wireType);
955
+ }
956
+ }
957
+ return out;
958
+ }
959
+ export function decodeOtlpProtobuf(kind, bytes) {
960
+ switch (kind) {
961
+ case 'logs':
962
+ return decodeExportLogsServiceRequest(bytes);
963
+ case 'traces':
964
+ return decodeExportTraceServiceRequest(bytes);
965
+ case 'metrics':
966
+ return decodeExportMetricsServiceRequest(bytes);
967
+ }
968
+ }