@interopio/otel 0.1.19 → 0.1.20

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.
@@ -1,6 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createRecordedSpan = createRecordedSpan;
4
+ // a Date, a number, or an HrTime - as opposed to the attributes addEvent() takes in the same position
5
+ function isTimeInput(value) {
6
+ return value instanceof Date ||
7
+ typeof value === "number" ||
8
+ (Array.isArray(value) && value.length === 2 && typeof value[0] === "number" && typeof value[1] === "number");
9
+ }
4
10
  function randomHex(bytes) {
5
11
  let out = "";
6
12
  for (let i = 0; i < bytes * 2; i++) {
@@ -8,6 +14,28 @@ function randomHex(bytes) {
8
14
  }
9
15
  return out;
10
16
  }
17
+ /**
18
+ * The synthetic traceparent identifies a buffered span to the buffer, so that code passing the
19
+ * propagation info of one span to another (manual nesting) keeps working before there are real
20
+ * spans. No real span will ever have its ids: handed to ANOTHER process - an application being
21
+ * started, the headers of a request - it would make that process parent its telemetry to a trace
22
+ * that does not exist.
23
+ *
24
+ * So the traceparent is not enumerable. Reading it off the object works, which is all the buffer
25
+ * needs; whatever copies or serializes the object - a spread, JSON, the structured clone of an IPC
26
+ * message, environment variables - comes out without it, and the other side starts a trace of its
27
+ * own, the same as it would with no propagation info at all.
28
+ */
29
+ function createSyntheticPropagationInfo() {
30
+ const propagationInfo = {};
31
+ Object.defineProperty(propagationInfo, "traceparent", {
32
+ value: `00-${randomHex(16)}-${randomHex(8)}-01`,
33
+ enumerable: false,
34
+ writable: false,
35
+ configurable: false,
36
+ });
37
+ return propagationInfo;
38
+ }
11
39
  /**
12
40
  * Creates a fresh {@link RecordedSpan} with a synthetic W3C traceparent.
13
41
  */
@@ -22,9 +50,7 @@ function createRecordedSpan(source, filteringContext, explicitPropagationInfo, o
22
50
  addedData: [],
23
51
  exceptions: [],
24
52
  children: [],
25
- syntheticPropagationInfo: {
26
- traceparent: `00-${randomHex(16)}-${randomHex(8)}-01`,
27
- },
53
+ syntheticPropagationInfo: createSyntheticPropagationInfo(),
28
54
  };
29
55
  }
30
56
  /**
@@ -58,15 +84,18 @@ class BufferingTracingState {
58
84
  return this.node.endTime;
59
85
  }
60
86
  get id() {
61
- var _a;
62
- return (_a = this.node.syntheticPropagationInfo.traceparent) === null || _a === void 0 ? void 0 : _a.split("-")[2];
87
+ var _a, _b;
88
+ return (_b = (_a = this.getPropagationInfo()) === null || _a === void 0 ? void 0 : _a.traceparent) === null || _b === void 0 ? void 0 : _b.split("-")[2];
63
89
  }
64
90
  get traceId() {
65
- var _a;
66
- return (_a = this.node.syntheticPropagationInfo.traceparent) === null || _a === void 0 ? void 0 : _a.split("-")[1];
91
+ var _a, _b;
92
+ return (_b = (_a = this.getPropagationInfo()) === null || _a === void 0 ? void 0 : _a.traceparent) === null || _b === void 0 ? void 0 : _b.split("-")[1];
67
93
  }
68
94
  set status(status) {
69
95
  this.node.status = Object.assign({}, status);
96
+ if (this.node.liveTs) {
97
+ this.node.liveTs.status = Object.assign({}, status);
98
+ }
70
99
  }
71
100
  get status() {
72
101
  var _a;
@@ -76,6 +105,10 @@ class BufferingTracingState {
76
105
  void this.endSpan();
77
106
  }
78
107
  endSpan(endTime, allowDoubleEnd) {
108
+ if (this.node.liveTs) {
109
+ this.hasEnded = true;
110
+ return this.node.liveTs.endSpan(endTime, allowDoubleEnd);
111
+ }
79
112
  if (this.hasEnded && !allowDoubleEnd) {
80
113
  return Promise.resolve();
81
114
  }
@@ -85,34 +118,74 @@ class BufferingTracingState {
85
118
  }
86
119
  return Promise.resolve();
87
120
  }
121
+ // Once the span has been replayed, what is recorded on it goes to the real span it was kept
122
+ // open on (node.liveTs) - or nowhere, when it was published as ended: it could never be
123
+ // published anymore, and must not be collected for as long as the code holding this state runs.
88
124
  addEvent(name, attributesOrStartTime, startTime) {
89
- this.node.events.push({ name, attributesOrStartTime, startTime });
125
+ if (this.node.liveTs) {
126
+ this.node.liveTs.addEvent(name, attributesOrStartTime, startTime);
127
+ }
128
+ else if (!this.node.replayed) {
129
+ // Stamped now, unless the caller said when: the replay happens later - a whole login screen
130
+ // later, with a late init - and the event would otherwise be published as happening then,
131
+ // after the span it belongs to has ended.
132
+ this.node.events.push({
133
+ name,
134
+ attributesOrStartTime,
135
+ startTime: startTime !== null && startTime !== void 0 ? startTime : (isTimeInput(attributesOrStartTime) ? undefined : new Date()),
136
+ });
137
+ }
90
138
  return this;
91
139
  }
92
140
  recordException(exception, time) {
93
- this.node.exceptions.push({ exception, time });
141
+ if (this.node.liveTs) {
142
+ this.node.liveTs.recordException(exception, time);
143
+ }
144
+ else if (!this.node.replayed) {
145
+ // (stamped now, for the same reason as events)
146
+ this.node.exceptions.push({ exception, time: time !== null && time !== void 0 ? time : new Date() });
147
+ }
94
148
  }
95
149
  isRecording() {
96
- return !this.hasEnded;
150
+ if (this.node.liveTs) {
151
+ return this.node.liveTs.isRecording();
152
+ }
153
+ return !this.hasEnded && !this.node.replayed;
97
154
  }
98
155
  updateName(name) {
156
+ var _a;
99
157
  this.node.updatedName = name;
100
158
  this.node.source = name;
159
+ (_a = this.node.liveTs) === null || _a === void 0 ? void 0 : _a.updateName(name);
101
160
  return this;
102
161
  }
103
162
  spanContext() {
104
163
  return undefined;
105
164
  }
106
165
  addData(level, data) {
166
+ if (this.node.liveTs) {
167
+ this.node.liveTs.addData(level, data);
168
+ return;
169
+ }
170
+ if (this.node.replayed) {
171
+ return;
172
+ }
107
173
  const resolved = typeof data === "function" ? data() : data;
108
174
  this.node.addedData.push({ level, data: resolved });
109
175
  }
110
176
  getPropagationInfo() {
111
- return this.node.syntheticPropagationInfo;
177
+ var _a;
178
+ // Once replayed, the synthetic propagation info means nothing to anyone: hand out that of the
179
+ // real span instead - null when no real span came out of the replay, rather than a
180
+ // traceparent that points nowhere.
181
+ return this.node.replayed ?
182
+ (_a = this.node.replayedPropagationInfo) !== null && _a !== void 0 ? _a : null :
183
+ this.node.syntheticPropagationInfo;
112
184
  }
113
185
  injectPropagationInfo(carrier) {
114
- if (!this.disablePropagation) {
115
- carrier.__interopIOTracePropagationInfo = this.node.syntheticPropagationInfo;
186
+ const propagationInfo = this.getPropagationInfo();
187
+ if (!this.disablePropagation && propagationInfo) {
188
+ carrier.__interopIOTracePropagationInfo = propagationInfo;
116
189
  }
117
190
  }
118
191
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bufferingTracingState.js","sourceRoot":"","sources":["../../src/traces/bufferingTracingState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bufferingTracingState.js","sourceRoot":"","sources":["../../src/traces/bufferingTracingState.ts"],"names":[],"mappings":"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"}
@@ -85,11 +85,23 @@ class NullTracesManager extends nullManager_1.NullManager {
85
85
  // const nts = new NullTracingState(source, extractedPI);
86
86
  const nts = new nullTracingState_1.default(source, null, true, null);
87
87
  traces_1.default.currentTracingState = nts;
88
+ // The tracing state keeps time like a real one, as far as that can be done without touching
89
+ // what the callback returns: it ends when a synchronous callback is done. A promise is handed
90
+ // back as it is, and NOT observed - a rejection handler of ours would mark it as handled, and
91
+ // a rejection nobody else handles would no longer be reported as unhandled; with io.Insights
92
+ // disabled that must not change how an application's errors surface. The tracing state of an
93
+ // asynchronous callback therefore has no end time (`endTime ?? new Date()` is how it is read).
94
+ let isAsync = false;
88
95
  try {
89
- return actualCallback(nts);
96
+ const result = actualCallback(nts);
97
+ isAsync = !!result && typeof result.then === "function";
98
+ return result;
90
99
  }
91
100
  finally {
92
101
  traces_1.default.currentTracingState = null;
102
+ if (!isAsync) {
103
+ nts.end();
104
+ }
93
105
  }
94
106
  }
95
107
  setFilterConfig(filters) {
@@ -1 +1 @@
1
- {"version":3,"file":"nullTracesManager.js","sourceRoot":"","sources":["../../src/traces/nullTracesManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nullTracesManager.js","sourceRoot":"","sources":["../../src/traces/nullTracesManager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,0EAAkD;AAClD,sDAA8B;AAE9B,gDAA6C;AAC7C,4DAAwD;AACxD,MAAa,iBAAkB,SAAQ,yBAAsC;IAE3E,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,SAAS,IAAK,EAAgC,CAAC;IAC7D,CAAC;IACD,IAAW,QAAQ,CAAC,KAAgC;QAClD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,YAAoB,SAAgD,EAAE,YAA6C,EAAU,MAAqC;QAChK,IAAI,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,oBAAoB,MAAK,KAAK,EAAE,CAAC;YACjD,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC,4CAA4C,IAAA,8BAAa,EAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACvF,CAAC;QACD,KAAK,EAAE,CAAC;QAJU,cAAS,GAAT,SAAS,CAAuC;QAAyD,WAAM,GAAN,MAAM,CAA+B;IAKlK,CAAC;IAEY,gBAAgB,CAC3B,MAAc,EACd,0BAGQ,EACR,iBAGQ,EACR,QACkC;;YAClC,OAAO,IAAI,CAAC,kBAAkB,CAC5B,MAAM,EACN,MAAM,GAAG,QAAQ,EACjB,0BAA0B,EAC1B,iBAAiB,EACjB,QAAQ,CAAC,CAAC;QACd,CAAC;KAAA;IAEY,kBAAkB,CAC7B,MAAc,EACd,SAEQ,EACR,0BAGQ,EACR,iBAGQ,EACR,QACkC;;YAElC,OAAO,IAAI,CAAC,QAAQ,CAClB,MAAM,EACN,0BAA0B,EAC1B,IAAI,EACJ,iBAAsD,EACtD,QAAQ,CAAC,CAAC;QACd,CAAC;KAAA;IAED,IAAI,mBAAmB;QACrB,OAAO,IAAI,0BAAgB,CAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,mBAAmB,CAAC,EAAkC;IAC1D,CAAC;IAED,kBAAkB,CAAC,SAA8B;QAC/C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,QAAQ,CACN,MACU,EACV,0BAGQ,EACR,yBAIQ,EACR,iBAGQ,EACR,QACkC;QAElC,MAAM,cAAc;QAClB,6CAA6C;QAC7C,OAAO,0BAA0B,KAAK,UAAU;YAC9C,CAAC,CAAC,0BAA0B;YAC5B,CAAC,CAAC,OAAO,yBAAyB,KAAK,UAAU;gBACjD,CAAC,CAAC,yBAAyB;gBAC3B,CAAC,CAAC,OAAO,iBAAiB,KAAK,UAAU;oBACzC,CAAC,CAAC,iBAAiB;oBACnB,CAAC,CAAC,QAAQ,CAAC;QAEf,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,wCAAwC,GAAG,OAAO,cAAc,CAAC,CAAC;QACpF,CAAC;QAED,4DAA4D;QAC5D,yBAAyB;QACzB,EAAE;QACF,+DAA+D;QAE/D,wCAAwC;QACxC,EAAE;QACF,kDAAkD;QAClD,mCAAmC;QACnC,qCAAqC;QACrC,sDAAsD;QACtD,iEAAiE;QACjE,MAAM;QACN,yEAAyE;QACzE,WAAW;QACX,4EAA4E;QAC5E,IAAI;QACJ,yDAAyD;QAEzD,MAAM,GAAG,GAAG,IAAI,0BAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAE3D,gBAAM,CAAC,mBAAmB,GAAG,GAAG,CAAC;QACjC,4FAA4F;QAC5F,8FAA8F;QAC9F,8FAA8F;QAC9F,6FAA6F;QAC7F,6FAA6F;QAC7F,+FAA+F;QAC/F,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;YACnC,OAAO,GAAG,CAAC,CAAC,MAAM,IAAI,OAAQ,MAA0C,CAAC,IAAI,KAAK,UAAU,CAAC;YAC7F,OAAO,MAAM,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,gBAAM,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAClC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,GAAG,CAAC,GAAG,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;IACH,CAAC;IAED,eAAe,CAAC,OAAgC;IAChD,CAAC;IAED,IAAW,oBAAoB;QAC7B,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,IAAW,iBAAiB;QAC1B,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,oBAAoB,CAAC,iBAAgD;IACrE,CAAC;IAED,IAAW,iBAAiB;QAC1B,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACpB,CAAC;CACF;AAtKD,8CAsKC"}
@@ -6,9 +6,13 @@ export default class NullTracingState implements IOInsights.TracingState {
6
6
  private disablePropagation;
7
7
  matchingFilter: IOInsights.SpanFilter | undefined | null;
8
8
  private currentSpanStatus;
9
- constructor(source: string, propagationInfo: IOInsights.PropagationInfo | null, disablePropagation: boolean, matchingFilter: IOInsights.SpanFilter | undefined | null);
9
+ private _startTime;
10
+ private _endTime?;
11
+ constructor(source: string, propagationInfo: IOInsights.PropagationInfo | null, disablePropagation: boolean, matchingFilter: IOInsights.SpanFilter | undefined | null, startTime?: Date);
10
12
  level: "OFF";
11
- endSpan(): Promise<void>;
13
+ get startTime(): Date;
14
+ get endTime(): Date | undefined;
15
+ endSpan(endTime?: Date, _allowDoubleEnd?: boolean): Promise<void>;
12
16
  get enabled(): boolean;
13
17
  get id(): undefined;
14
18
  get traceId(): undefined;
@@ -1,15 +1,28 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  class NullTracingState {
4
- constructor(source, propagationInfo, disablePropagation, matchingFilter) {
4
+ constructor(source, propagationInfo, disablePropagation, matchingFilter,
5
+ // when the operation started, if that was not just now (a span published after the fact)
6
+ startTime) {
5
7
  this.source = source;
6
8
  this.propagationInfo = propagationInfo;
7
9
  this.disablePropagation = disablePropagation;
8
10
  this.matchingFilter = matchingFilter;
9
11
  this.currentSpanStatus = { code: 0 /*SpanStatusCode.UNSET*/ };
10
12
  this.level = "OFF";
13
+ this._startTime = startTime instanceof Date && !Number.isNaN(startTime.getTime()) ? startTime : new Date();
11
14
  }
12
- endSpan() {
15
+ get startTime() {
16
+ return this._startTime;
17
+ }
18
+ get endTime() {
19
+ return this._endTime;
20
+ }
21
+ // like a real span, it ends once: a later end does not move the end time
22
+ endSpan(endTime, _allowDoubleEnd) {
23
+ if (!this._endTime) {
24
+ this._endTime = endTime instanceof Date && !Number.isNaN(endTime.getTime()) ? endTime : new Date();
25
+ }
13
26
  return Promise.resolve();
14
27
  }
15
28
  get enabled() {
@@ -42,7 +55,9 @@ class NullTracingState {
42
55
  }
43
56
  addData(level, data) {
44
57
  }
45
- end() { }
58
+ end() {
59
+ void this.endSpan();
60
+ }
46
61
  getPropagationInfo() {
47
62
  if (this.propagationInfo) {
48
63
  return this.propagationInfo;
@@ -1 +1 @@
1
- {"version":3,"file":"nullTracingState.js","sourceRoot":"","sources":["../../src/traces/nullTracingState.ts"],"names":[],"mappings":";;AAQA,MAAqB,gBAAgB;IAInC,YACS,MAAc,EACb,eAAkD,EAClD,kBAA2B,EAC5B,cAAwD;QAHxD,WAAM,GAAN,MAAM,CAAQ;QACb,oBAAe,GAAf,eAAe,CAAmC;QAClD,uBAAkB,GAAlB,kBAAkB,CAAS;QAC5B,mBAAc,GAAd,cAAc,CAA0C;QANzD,sBAAiB,GAAe,EAAE,IAAI,EAAE,CAAQ,CAAC,wBAAwB,EAAE,CAAC;QAQpF,UAAK,GAAG,KAAc,CAAC;IAF6C,CAAC;IAI9D,OAAO;QACZ,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAW,EAAE;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAW,OAAO;QAChB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAW,MAAM,CAAC,MAAkB;QAClC,IAAI,CAAC,iBAAiB,qBAAQ,MAAM,CAAE,CAAC;IACzC,CAAC;IACD,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAEM,QAAQ,CACb,IAAY,EACZ,qBAA8C,EAC9C,SAAqB;QAErB,OAAO,IAAI,CAAC;IACd,CAAC;IACM,eAAe,CAAC,SAAoB,EAAE,IAAgB,IAAG,CAAC;IAC1D,WAAW;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IACM,UAAU,CAAC,IAAY;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IACM,WAAW;QAChB,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,OAAO,CAAC,KAAuE,EAAE,IAA6B;IACrH,CAAC;IAEM,GAAG,KAAU,CAAC;IAEd,kBAAkB;QACvB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9B,CAAC;QACD,OAAO,IAAI,CAAC;QACZ,wEAAwE;QACxE,+BAA+B;QAC/B,yDAAyD;QACzD,0BAA0B;IAC5B,CAAC;IAEM,qBAAqB,CAAC,OAA0C;QACrE,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACrD,OAAO,CAAC,+BAA+B,GAAG,IAAI,CAAC,eAAe,CAAC;QACjE,CAAC;IACH,CAAC;CACF;AAzED,mCAyEC"}
1
+ {"version":3,"file":"nullTracingState.js","sourceRoot":"","sources":["../../src/traces/nullTracingState.ts"],"names":[],"mappings":";;AAQA,MAAqB,gBAAgB;IAUnC,YACS,MAAc,EACb,eAAkD,EAClD,kBAA2B,EAC5B,cAAwD;IAC/D,yFAAyF;IACzF,SAAgB;QALT,WAAM,GAAN,MAAM,CAAQ;QACb,oBAAe,GAAf,eAAe,CAAmC;QAClD,uBAAkB,GAAlB,kBAAkB,CAAS;QAC5B,mBAAc,GAAd,cAAc,CAA0C;QAZzD,sBAAiB,GAAe,EAAE,IAAI,EAAE,CAAQ,CAAC,wBAAwB,EAAE,CAAC;QAkBpF,UAAK,GAAG,KAAc,CAAC;QAHrB,IAAI,CAAC,UAAU,GAAG,SAAS,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;IAC7G,CAAC;IAID,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,yEAAyE;IAClE,OAAO,CAAC,OAAc,EAAE,eAAyB;QACtD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,OAAO,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;QACrG,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAW,EAAE;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAW,OAAO;QAChB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAW,MAAM,CAAC,MAAkB;QAClC,IAAI,CAAC,iBAAiB,qBAAQ,MAAM,CAAE,CAAC;IACzC,CAAC;IACD,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAEM,QAAQ,CACb,IAAY,EACZ,qBAA8C,EAC9C,SAAqB;QAErB,OAAO,IAAI,CAAC;IACd,CAAC;IACM,eAAe,CAAC,SAAoB,EAAE,IAAgB,IAAG,CAAC;IAC1D,WAAW;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IACM,UAAU,CAAC,IAAY;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IACM,WAAW;QAChB,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,OAAO,CAAC,KAAuE,EAAE,IAA6B;IACrH,CAAC;IAEM,GAAG;QACR,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC;IAEM,kBAAkB;QACvB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9B,CAAC;QACD,OAAO,IAAI,CAAC;QACZ,wEAAwE;QACxE,+BAA+B;QAC/B,yDAAyD;QACzD,0BAA0B;IAC5B,CAAC;IAEM,qBAAqB,CAAC,OAA0C;QACrE,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACrD,OAAO,CAAC,+BAA+B,GAAG,IAAI,CAAC,eAAe,CAAC;QACjE,CAAC;IACH,CAAC;CACF;AAjGD,mCAiGC"}
@@ -82,15 +82,14 @@ class Traces {
82
82
  return propagationInfoCarrier;
83
83
  }
84
84
  const nestedPropagationInfo = propagationInfoCarrier === null || propagationInfoCarrier === void 0 ? void 0 : propagationInfoCarrier.__interopIOTracePropagationInfo;
85
- if (nestedPropagationInfo) {
86
- if (deleteProperty === true) {
87
- delete propagationInfoCarrier.__interopIOTracePropagationInfo;
88
- }
89
- return nestedPropagationInfo;
90
- }
91
- else {
92
- return null;
85
+ // The carrier is cleaned up whatever the nested info turns out to be: the key must never reach
86
+ // whoever the carrier belongs to (the arguments of an interop method handler).
87
+ if (nestedPropagationInfo && deleteProperty === true) {
88
+ delete propagationInfoCarrier.__interopIOTracePropagationInfo;
93
89
  }
90
+ // (without a traceparent there is nothing to nest under - e.g. the synthetic propagation info
91
+ // of a buffered span, which loses it on its way to another process; see bufferingTracingState)
92
+ return (nestedPropagationInfo === null || nestedPropagationInfo === void 0 ? void 0 : nestedPropagationInfo.traceparent) ? nestedPropagationInfo : null;
94
93
  }
95
94
  withSequenceSpanEx(source, traceName, filteringContextOrCallback, optionsOrCallback, callback) {
96
95
  return __awaiter(this, void 0, void 0, function* () {
@@ -1 +1 @@
1
- {"version":3,"file":"traces.js","sourceRoot":"","sources":["../../src/traces/traces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"traces.js","sourceRoot":"","sources":["../../src/traces/traces.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAMA,kDAAqE;AACrE,2DAAwD;AACxD,0EAAkD;AAIlD;;;GAGG;AACH,MAAqB,MAAM;IAElB,MAAM,KAAK,QAAQ;;QACxB,IAAI,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,mBAAmB,0CAAE,MAAM,EAAE,CAAC;YAC5C,OAAO,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,mBAAmB,0CAAE,MAAM,CAAC;QACjD,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACtB,MAAM,CAAC,SAAS,GAAG,IAAI,qCAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,MAAM,CAAC,SAAS,CAAC;IAC1B,CAAC;IACM,MAAM,KAAK,QAAQ,CAAC,KAA+B;QACxD,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;IAC3B,CAAC;IAEM,MAAM,KAAK,mBAAmB;;QACnC,OAAO,CAAA,MAAA,MAAM,CAAC,QAAQ,0CAAE,mBAAmB,KAAI,IAAI,0BAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACnG,CAAC;IACM,MAAM,KAAK,mBAAmB,CAAC,KAAqC;QACzE,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,MAAM,CAAC,QAAQ,CAAC,mBAAmB,GAAG,KAAK,CAAC;QAC9C,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,qBAAqB,CACjC,sBAAyG;QAEzG,MAAM,CAAC,sBAAsB,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;QAC5D,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAEM,MAAM,CAAC,mBAAmB,CAC/B,sBAAgF,EAChF,UAAmB,EACnB,YAAsB;QAEtB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,sBAAsB,CAAC;QAE/D,SAAS,MAAM,CAAC,GAAW;YACzB,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;QACjD,CAAC;QAED,0DAA0D;QAC1D,MAAM,WAAW,GAAG,MAAM,OAAO,IAAI,MAAM,IAAI,MAAM,CAAC,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;QAEvF,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;QAElF,IAAI,KAAK;YACP,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC;YACtC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC;YACtC,CAAC,CAAC,UAAU,IAAI,UAAU,GAAG,GAAG,CAAC,EAAE,CAAC;YAEpC,MAAM,QAAQ,GAAoB;gBAChC,WAAW;aACZ,CAAC;YACF,IAAI,UAAU,EAAE,CAAC;gBACf,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;YACnC,CAAC;YACD,IAAI,YAAY,EAAE,CAAC;gBACjB,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC;YACvC,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,sBAAsB,CAChC,sBAAyG,EACzG,cAAoC;QAEtC,IAAK,sBAAqD,aAArD,sBAAsB,uBAAtB,sBAAsB,CAAiC,WAAW,EAAE,CAAC;YACxE,OAAO,sBAAoD,CAAC;QAC9D,CAAC;QACD,MAAM,qBAAqB,GAAI,sBAA4D,aAA5D,sBAAsB,uBAAtB,sBAAsB,CACjD,+BAA+B,CAAC;QACpC,+FAA+F;QAC/F,+EAA+E;QAC/E,IAAI,qBAAqB,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YACrD,OAAQ,sBAA4D,CAAC,+BAA+B,CAAC;QACvG,CAAC;QACD,8FAA8F;QAC9F,+FAA+F;QAC/F,OAAO,CAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,WAAW,EAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3E,CAAC;IAqBY,kBAAkB,CAC7B,MAAc,EACd,SAEQ,EACR,0BAGQ,EACR,iBAGQ,EACR,QACkC;;YAClC,OAAO,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CACvC,MAAM,EACN,SAAS,EACT,0BAA0B,EAC1B,iBAAiB,EACjB,QAAQ,CAAC,CAAC;QACd,CAAC;KAAA;IA0BY,gBAAgB,CAC3B,MAAc,EACd,0BAGQ,EACR,iBAGQ,EACR,QACkC;;YAClC,OAAO,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CACrC,MAAM,EACN,0BAA0B,EAC1B,iBAAiB,EACjB,QAAQ,CAAC,CAAC;QACd,CAAC;KAAA;IAyCD,MAAM,CAAC,QAAQ,CACb,MACU,EACV,4CAIQ,EACR,yBAIQ,EACR,iBAGQ,EACR,QACkC;QAElC,mCAAmC;QACnC,IACE,CAAC,CAAC,4CAA4C,YAAY,QAAQ,CAAC;YACnE,CAAC,yBAAyB;YAC1B,CAAC,iBAAiB;YAClB,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO,UAAU,MAAW,EAAE,WAAmB,EAAE,UAA8B;gBAC/E,IAAI,UAAe,CAAC;gBACpB,IAAI,UAAU,EAAE,CAAC;oBACf,YAAY;oBACZ,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC;gBAChC,CAAC;qBAAM,CAAC;oBACN,6BAA6B;oBAC7B,UAAU,GAAG,MAAM,CAAC;gBACtB,CAAC;gBACD,IAAI,cAAc,GAAG,UAAqB,GAAG,IAAW;oBACtD,OAAO,MAAM,CAAC,QAAQ,CACpB,MAAM,EACN,4CAA4C;wBAC1C,CAAC,CAAC,IAAA,2CAA+B,EAAC,4CAAmD,EAAE,IAAI,EAAE,IAAI,CAAC;wBAClG,CAAC,CAAC,EAAE,EACN,IAAI,EACJ,4CAAmF,EACnF,GAAG,EAAE;wBACH,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBACtC,CAAC,CACF,CAAC;gBACJ,CAAC,CAAC;gBACF,IAAI,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;oBACvC,yEAAyE;oBACzE,MAAM,KAAK,GAAG,cAAc,CAAC;oBAC7B,cAAc,GAAG,SAAS,6BAA6B,CAAY,GAAG,IAAW;wBAC/E,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBACjC,CAAC,CAAA;oBACD,MAAM,CAAC,cAAc,CAAC,cAAc,EAAE,MAAM,CAAC,WAAW,EAAE;wBACxD,KAAK,EAAE,eAAe;wBACtB,YAAY,EAAE,IAAI;qBACnB,CAAC,CAAC;gBACL,CAAC;gBAED,IAAI,UAAU,EAAE,CAAC;oBACf,UAAU,CAAC,KAAK,GAAG,cAAc,CAAC;gBACpC,CAAC;qBAAM,CAAC;oBACN,OAAO,cAAc,CAAC;gBACxB,CAAC;YACH,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAC7B,MAAM,EACN,4CAAmD,EACnD,yBAAgC,EAChC,iBAAwB,EACxB,QAAe,CAChB,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,KAAU;QACtC,OAAO,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,wBAAwB,CAAC;IACvE,CAAC;IAQM,MAAM,CAAC,oBAAoB,CAChC,MAAc,EACd,iCAAiF,EACjF,eAAmB;QAEnB,MAAM,gBAAgB,GACpB,iCAAiC,YAAY,QAAQ;YACnD,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,iCAAwE,CAAC;QAE/E,MAAM,qBAAqB,GAAG,iCAAiC,YAAY,QAAQ;YACjF,CAAC,CAAC,iCAAsC;YACxC,CAAC,CAAC,eAAoB,CAAC;QAEzB,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,qBAAqB,CAAM,CAAC;IAC/E,CAAC;IAEM,MAAM,CAAC,SAAS,CACrB,UAAoC,EACpC,aAAgB;QAChB,KAAK,MAAM,sBAAsB,IAAI,UAAU,EAAE,CAAC;YAChD,IAAI,OAAO,aAAa,CAAC,sBAAsB,CAAC,KAAK,UAAU,EAAE,CAAC;gBAChE,MAAM,cAAc,GAAG,aAAa,CAAC,sBAAsB,CAAC,CAAC;gBAC7D,MAAM,uBAAuB,GAAG,UAAU,CAAC,sBAAsB,CAAC,CAAC;gBACnE,IAAI,CAAC,uBAAuB,EAAE,CAAC;oBAC7B,SAAS;gBACX,CAAC;gBACD,IAAI,YAAsB,CAAC;gBAC3B,IAAI,OAAO,uBAAuB,KAAK,QAAQ,EAAE,CAAC;oBAChD,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;gBAC1D,CAAC;qBAAM,CAAC;oBACN,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAC,MAAM,EAAE,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;gBAC3G,CAAC;gBACD,aAAa,CAAC,sBAAsB,CAAC,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAEM,MAAM,CAAC,QAAQ,CACpB,MAAc,EACd,OAEM,EACN,eAGM,EACR,OAEQ;QACN,IAAI,OAAO,GAAqB,GAAG,EAAE,GAAE,CAAC,CAAC;QACzC,IAAI,MAAM,GAA2B,GAAG,EAAE,GAAE,CAAC,CAAC;QAC9C,IAAI,EAAE,GAAiB,IAAI,0BAAgB,CACzC,MAAM,EACN,MAAM,CAAC,sBAAsB,CAAC,eAAe,CAAC,EAC9C,KAAK,EACL,IAAI,CAAC,CAAC;QACR,MAAM,CAAC,QAAQ,CACb,MAAM,EACN,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,EACb,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,IAAI,EACvB,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,IAAI,EACf,CAAC,GAAG,EAAE,EAAE;YACN,EAAE,GAAG,GAAG,CAAC;YACT,OAAO,IAAI,OAAO,CAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;gBAC/B,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,EAAE,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACL,OAAO;YACL,EAAE;YACF,OAAO;YACP,MAAM;SACP,CAAA;IACH,CAAC;CACF;AAzXD,yBAyXC;AAEY,QAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { IOInsights } from "../../insights";
2
+ type Headers = {
3
+ [x: string]: string;
4
+ };
5
+ type HeadersSource = Headers | (() => Headers) | undefined | null;
6
+ /** What an OTLP exporter takes as its `headers`: the headers, or a function asked for them on every export. */
7
+ export type ExportHeaders = Headers | (() => Promise<Headers>);
8
+ export declare const DEFAULT_SSO_AUTH_WAIT_FOR_LOGIN_TIMEOUT_MS = 5000;
9
+ export declare const DEFAULT_SSO_AUTH_INFO_CACHE_MS = 30000;
10
+ export declare const DEFAULT_SSO_AUTH_INFO_TIMEOUT_MS = 5000;
11
+ /**
12
+ * The headers the SSO login adds to the (static) headers of an export request - see
13
+ * IOInsights.SSOAuthSettings. Exported for the hosts that have to do this on their own, for a
14
+ * process the library does not run in with access to the login (io.Connect Desktop, for the gateway).
15
+ */
16
+ export declare function applySsoAuthHeaders(headers: Headers | undefined | null, auth: IOInsights.SSOAuthInfo | undefined | null, ssoAuth: IOInsights.SSOAuthSettings | undefined | null): Headers;
17
+ /**
18
+ * The headers of the export requests of a signal: the static ones - later sources win - and, with
19
+ * `ssoAuth.enabled`, the SSO login.
20
+ *
21
+ * Without ssoAuth this is a plain object, evaluated once - the way it has always been. With it, it
22
+ * is a function the OTLP exporters call on every export: the login is asked for when it is needed,
23
+ * so it does not have to be there when io.Insights is initialized, and a refreshed token is picked
24
+ * up. Exports that happen before anybody has logged in go out without it - unless
25
+ * `ssoAuth.waitForLogin` makes them wait. The function never rejects: whatever goes wrong with the
26
+ * login, the export goes ahead with the static headers.
27
+ */
28
+ export declare function createExportHeaders(staticHeaders: HeadersSource[], ssoAuth: IOInsights.SSOAuthSettings | undefined | null, logger?: IOInsights.Logger): ExportHeaders;
29
+ export {};
@@ -0,0 +1,182 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.DEFAULT_SSO_AUTH_INFO_TIMEOUT_MS = exports.DEFAULT_SSO_AUTH_INFO_CACHE_MS = exports.DEFAULT_SSO_AUTH_WAIT_FOR_LOGIN_TIMEOUT_MS = void 0;
13
+ exports.applySsoAuthHeaders = applySsoAuthHeaders;
14
+ exports.createExportHeaders = createExportHeaders;
15
+ const container_1 = require("../container");
16
+ exports.DEFAULT_SSO_AUTH_WAIT_FOR_LOGIN_TIMEOUT_MS = 5000;
17
+ exports.DEFAULT_SSO_AUTH_INFO_CACHE_MS = 30000;
18
+ const WAIT_FOR_LOGIN_POLL_MS = 250;
19
+ // A provider that never answers (in a window it is a round trip to the platform) must not hold
20
+ // every export until the batch processor gives up on it - and drops the batch.
21
+ exports.DEFAULT_SSO_AUTH_INFO_TIMEOUT_MS = 5000;
22
+ const authStates = new WeakMap();
23
+ // In a window of io.Connect Desktop the login comes from the platform. It is only handed to
24
+ // applications that are allowed to have it (`allowAuthInfo` in the application definition) -
25
+ // getAuth() throws for the rest.
26
+ const platformProvider = () => {
27
+ var _a;
28
+ const desktopObject = (_a = globalThis === null || globalThis === void 0 ? void 0 : globalThis.glue42gd) !== null && _a !== void 0 ? _a : globalThis === null || globalThis === void 0 ? void 0 : globalThis.iodesktop;
29
+ if (typeof (desktopObject === null || desktopObject === void 0 ? void 0 : desktopObject.getAuth) !== "function") {
30
+ return null;
31
+ }
32
+ return desktopObject.getAuth();
33
+ };
34
+ const askWithTimeout = (provider, timeoutMs) => new Promise((resolve, reject) => {
35
+ var _a;
36
+ const timer = setTimeout(() => reject(new Error(`the login provider did not answer in ${timeoutMs} ms`)), timeoutMs);
37
+ (_a = timer === null || timer === void 0 ? void 0 : timer.unref) === null || _a === void 0 ? void 0 : _a.call(timer);
38
+ // (a provider can answer right away, with a promise, or by throwing)
39
+ Promise.resolve()
40
+ .then(() => provider())
41
+ .then((auth) => { clearTimeout(timer); resolve(auth); }, (err) => { clearTimeout(timer); reject(err); });
42
+ });
43
+ // Any login object counts - not only one with a token: a login can be all user information, which
44
+ // is what the `auth` header (useAuthHeader) is for.
45
+ const hasLogin = (auth) => !!auth && typeof auth === "object" && !Array.isArray(auth) && Object.keys(auth).length > 0;
46
+ /**
47
+ * The headers the SSO login adds to the (static) headers of an export request - see
48
+ * IOInsights.SSOAuthSettings. Exported for the hosts that have to do this on their own, for a
49
+ * process the library does not run in with access to the login (io.Connect Desktop, for the gateway).
50
+ */
51
+ function applySsoAuthHeaders(headers, auth, ssoAuth) {
52
+ var _a;
53
+ const toReturn = Object.assign({}, headers);
54
+ if (!(ssoAuth === null || ssoAuth === void 0 ? void 0 : ssoAuth.enabled) || !hasLogin(auth)) {
55
+ return toReturn;
56
+ }
57
+ if (ssoAuth.useAuthHeader) {
58
+ toReturn["auth"] = (_a = toReturn["auth"]) !== null && _a !== void 0 ? _a : JSON.stringify(auth);
59
+ }
60
+ if (typeof auth.token === "string" && auth.token) {
61
+ toReturn["Authorization"] =
62
+ (ssoAuth.useRawToken === false && auth.token.trim().indexOf(" ") < 0) ?
63
+ "Bearer " + auth.token :
64
+ auth.token;
65
+ }
66
+ if (auth.headers && typeof auth.headers === "object") {
67
+ for (const key of Object.keys(auth.headers)) {
68
+ toReturn[key] = auth.headers[key];
69
+ }
70
+ }
71
+ return toReturn;
72
+ }
73
+ /**
74
+ * The headers of the export requests of a signal: the static ones - later sources win - and, with
75
+ * `ssoAuth.enabled`, the SSO login.
76
+ *
77
+ * Without ssoAuth this is a plain object, evaluated once - the way it has always been. With it, it
78
+ * is a function the OTLP exporters call on every export: the login is asked for when it is needed,
79
+ * so it does not have to be there when io.Insights is initialized, and a refreshed token is picked
80
+ * up. Exports that happen before anybody has logged in go out without it - unless
81
+ * `ssoAuth.waitForLogin` makes them wait. The function never rejects: whatever goes wrong with the
82
+ * login, the export goes ahead with the static headers.
83
+ */
84
+ function createExportHeaders(staticHeaders, ssoAuth, logger) {
85
+ const resolveStatic = () => {
86
+ const toReturn = {};
87
+ for (const source of staticHeaders) {
88
+ Object.assign(toReturn, container_1.Container.errorless(source));
89
+ }
90
+ return toReturn;
91
+ };
92
+ if (!(ssoAuth === null || ssoAuth === void 0 ? void 0 : ssoAuth.enabled)) {
93
+ return resolveStatic();
94
+ }
95
+ const provider = typeof ssoAuth.getAuthInfo === "function" ? ssoAuth.getAuthInfo : platformProvider;
96
+ let state = authStates.get(provider);
97
+ if (!state) {
98
+ state = {};
99
+ authStates.set(provider, state);
100
+ }
101
+ const authState = state;
102
+ const cacheMs = typeof ssoAuth.authInfoCacheMs === "number" && ssoAuth.authInfoCacheMs >= 0 ?
103
+ ssoAuth.authInfoCacheMs :
104
+ exports.DEFAULT_SSO_AUTH_INFO_CACHE_MS;
105
+ const providerTimeoutMs = typeof ssoAuth.authInfoTimeoutMs === "number" && ssoAuth.authInfoTimeoutMs > 0 ?
106
+ ssoAuth.authInfoTimeoutMs :
107
+ exports.DEFAULT_SSO_AUTH_INFO_TIMEOUT_MS;
108
+ const askProvider = () => {
109
+ var _a;
110
+ const cached = authState.cached;
111
+ if (cached && Date.now() - cached.at < cacheMs) {
112
+ return Promise.resolve(cached.auth);
113
+ }
114
+ (_a = authState.inFlight) !== null && _a !== void 0 ? _a : (authState.inFlight = (() => __awaiter(this, void 0, void 0, function* () {
115
+ var _a, _b, _c;
116
+ try {
117
+ const auth = (_a = (yield askWithTimeout(provider, providerTimeoutMs))) !== null && _a !== void 0 ? _a : null;
118
+ if (hasLogin(auth)) {
119
+ authState.loginSeen = true;
120
+ authState.cached = { at: Date.now(), auth };
121
+ return auth;
122
+ }
123
+ // nobody has logged in yet: not cached, so the login is picked up as soon as it is there
124
+ authState.cached = undefined;
125
+ return null;
126
+ }
127
+ catch (err) {
128
+ // not allowed to have the login, most likely - no point in asking again right away
129
+ authState.cached = { at: Date.now(), auth: null };
130
+ if (!authState.warned) {
131
+ authState.warned = true;
132
+ (_b = logger === null || logger === void 0 ? void 0 : logger.warn) === null || _b === void 0 ? void 0 : _b.call(logger, "io.Insights ssoAuth: the SSO login is not available, the telemetry is exported without it" +
133
+ " (in io.Connect Desktop the application needs `allowAuthInfo` in its definition): " +
134
+ ((_c = err === null || err === void 0 ? void 0 : err.message) !== null && _c !== void 0 ? _c : err));
135
+ }
136
+ return null;
137
+ }
138
+ finally {
139
+ authState.inFlight = undefined;
140
+ }
141
+ }))());
142
+ return authState.inFlight;
143
+ };
144
+ const waitForLogin = () => __awaiter(this, void 0, void 0, function* () {
145
+ var _a;
146
+ const timeoutMs = typeof ssoAuth.waitForLoginTimeoutMs === "number" && ssoAuth.waitForLoginTimeoutMs >= 0 ?
147
+ ssoAuth.waitForLoginTimeoutMs :
148
+ exports.DEFAULT_SSO_AUTH_WAIT_FOR_LOGIN_TIMEOUT_MS;
149
+ const deadline = Date.now() + timeoutMs;
150
+ for (;;) {
151
+ const auth = yield askProvider();
152
+ if (auth || authState.cached) {
153
+ // logged in - or the login is not available to this application at all
154
+ return auth;
155
+ }
156
+ if (Date.now() >= deadline) {
157
+ authState.waitTimedOut = true;
158
+ (_a = logger === null || logger === void 0 ? void 0 : logger.warn) === null || _a === void 0 ? void 0 : _a.call(logger, `io.Insights ssoAuth: nobody has logged in after ${timeoutMs} ms - exporting without the SSO login`);
159
+ return null;
160
+ }
161
+ yield new Promise((resolve) => {
162
+ var _a;
163
+ const timer = setTimeout(resolve, Math.min(WAIT_FOR_LOGIN_POLL_MS, Math.max(0, deadline - Date.now())));
164
+ // (Node.js: an export waiting for a login must not be what keeps the process from exiting)
165
+ (_a = timer === null || timer === void 0 ? void 0 : timer.unref) === null || _a === void 0 ? void 0 : _a.call(timer);
166
+ });
167
+ }
168
+ });
169
+ return () => __awaiter(this, void 0, void 0, function* () {
170
+ let headers = {};
171
+ try {
172
+ headers = resolveStatic();
173
+ const shouldWait = ssoAuth.waitForLogin === true && !authState.loginSeen && !authState.waitTimedOut;
174
+ const auth = shouldWait ? yield waitForLogin() : yield askProvider();
175
+ return applySsoAuthHeaders(headers, auth, ssoAuth);
176
+ }
177
+ catch (_a) {
178
+ return headers;
179
+ }
180
+ });
181
+ }
182
+ //# sourceMappingURL=exportHeaders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exportHeaders.js","sourceRoot":"","sources":["../../src/utils/exportHeaders.ts"],"names":[],"mappings":";;;;;;;;;;;;AAmEA,kDAuBC;AAaD,kDAsGC;AA5MD,4CAAyC;AAU5B,QAAA,0CAA0C,GAAG,IAAI,CAAC;AAClD,QAAA,8BAA8B,GAAG,KAAK,CAAC;AACpD,MAAM,sBAAsB,GAAG,GAAG,CAAC;AACnC,+FAA+F;AAC/F,+EAA+E;AAClE,QAAA,gCAAgC,GAAG,IAAI,CAAC;AAcrD,MAAM,UAAU,GAAG,IAAI,OAAO,EAA2B,CAAC;AAE1D,4FAA4F;AAC5F,6FAA6F;AAC7F,iCAAiC;AACjC,MAAM,gBAAgB,GAAiB,GAAG,EAAE;;IAC1C,MAAM,aAAa,GAAG,MAAC,UAAkB,aAAlB,UAAU,uBAAV,UAAU,CAAU,QAAQ,mCAAK,UAAkB,aAAlB,UAAU,uBAAV,UAAU,CAAU,SAAS,CAAC;IACtF,IAAI,OAAO,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,CAAA,KAAK,UAAU,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,aAAa,CAAC,OAAO,EAAE,CAAC;AACjC,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,QAAsB,EAAE,SAAiB,EAAE,EAAE,CACnE,IAAI,OAAO,CAA4C,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;;IACzE,MAAM,KAAK,GAAQ,UAAU,CAC3B,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,wCAAwC,SAAS,KAAK,CAAC,CAAC,EAC/E,SAAS,CAAC,CAAC;IACb,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,qDAAI,CAAC;IACjB,qEAAqE;IACrE,OAAO,CAAC,OAAO,EAAE;SACd,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;SACtB,IAAI,CACH,CAAC,IAAI,EAAE,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EACjD,CAAC,GAAG,EAAE,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC;AAEL,kGAAkG;AAClG,oDAAoD;AACpD,MAAM,QAAQ,GAAG,CAAC,IAA+C,EAAkC,EAAE,CACnG,CAAC,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AAE7F;;;;GAIG;AACH,SAAgB,mBAAmB,CACjC,OAAmC,EACnC,IAA+C,EAC/C,OAAsD;;IACtD,MAAM,QAAQ,qBAAiB,OAAO,CAAE,CAAC;IACzC,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAA,QAAQ,CAAC,MAAM,CAAC,mCAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACjD,QAAQ,CAAC,eAAe,CAAC;YACvB,CAAC,OAAO,CAAC,WAAW,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACrE,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;gBACxB,IAAI,CAAC,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACrD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5C,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,mBAAmB,CACjC,aAA8B,EAC9B,OAAsD,EACtD,MAA0B;IAE1B,MAAM,aAAa,GAAG,GAAY,EAAE;QAClC,MAAM,QAAQ,GAAY,EAAE,CAAC;QAC7B,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,qBAAS,CAAC,SAAS,CAAC,MAAa,CAAC,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAA,EAAE,CAAC;QACtB,OAAO,aAAa,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,QAAQ,GAAiB,OAAO,OAAO,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAClH,IAAI,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACrC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,EAAE,CAAC;QACX,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;IACD,MAAM,SAAS,GAAG,KAAK,CAAC;IAExB,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,eAAe,KAAK,QAAQ,IAAI,OAAO,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC;QAC3F,OAAO,CAAC,eAAe,CAAC,CAAC;QACzB,sCAA8B,CAAC;IAEjC,MAAM,iBAAiB,GAAG,OAAO,OAAO,CAAC,iBAAiB,KAAK,QAAQ,IAAI,OAAO,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;QACxG,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC3B,wCAAgC,CAAC;IAEnC,MAAM,WAAW,GAAG,GAA2C,EAAE;;QAC/D,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QAChC,IAAI,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC;YAC/C,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;QACD,MAAA,SAAS,CAAC,QAAQ,oCAAlB,SAAS,CAAC,QAAQ,GAAK,CAAC,GAAS,EAAE;;YACjC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAA,CAAC,MAAM,cAAc,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC,mCAAI,IAAI,CAAC;gBACzE,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBACnB,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC;oBAC3B,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC;oBAC5C,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,yFAAyF;gBACzF,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC;gBAC7B,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,mFAAmF;gBACnF,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;gBAClD,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;oBACtB,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;oBACxB,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,uDACV,2FAA2F;wBAC3F,oFAAoF;wBACpF,CAAC,MAAC,GAAa,aAAb,GAAG,uBAAH,GAAG,CAAY,OAAO,mCAAI,GAAG,CAAC,CAAC,CAAC;gBACtC,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;oBAAS,CAAC;gBACT,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC;YACjC,CAAC;QACH,CAAC,CAAA,CAAC,EAAE,EAAC;QACL,OAAO,SAAS,CAAC,QAAQ,CAAC;IAC5B,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,GAAiD,EAAE;;QACtE,MAAM,SAAS,GAAG,OAAO,OAAO,CAAC,qBAAqB,KAAK,QAAQ,IAAI,OAAO,CAAC,qBAAqB,IAAI,CAAC,CAAC,CAAC;YACzG,OAAO,CAAC,qBAAqB,CAAC,CAAC;YAC/B,kDAA0C,CAAC;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,SAAS,CAAC;YACR,MAAM,IAAI,GAAG,MAAM,WAAW,EAAE,CAAC;YACjC,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;gBAC7B,uEAAuE;gBACvE,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;gBAC3B,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC9B,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,uDAAG,mDAAmD,SAAS,uCAAuC,CAAC,CAAC;gBACpH,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;;gBAClC,MAAM,KAAK,GAAQ,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC7G,2FAA2F;gBAC3F,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,qDAAI,CAAC;YACnB,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAA,CAAC;IAEF,OAAO,GAAS,EAAE;QAChB,IAAI,OAAO,GAAY,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,OAAO,GAAG,aAAa,EAAE,CAAC;YAC1B,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;YACpG,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,YAAY,EAAE,CAAC,CAAC,CAAC,MAAM,WAAW,EAAE,CAAC;YACrE,OAAO,mBAAmB,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACrD,CAAC;QAAC,WAAM,CAAC;YACP,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC,CAAA,CAAC;AACJ,CAAC"}
@@ -1,6 +1,11 @@
1
1
  import { IOInsights } from "../../insights";
2
2
  export declare const flattenOtelAtributes: (data: object, maxDepth: number) => {};
3
3
  export declare const getOTELData: (key: string, value: any, depth: number, maxDepth: number) => any[];
4
+ /**
5
+ * Whether a value is an Error. Also matches errors from other realms (iframes, vm contexts),
6
+ * where `instanceof Error` fails.
7
+ */
8
+ export declare const isError: (value: any) => value is Error;
4
9
  export declare const deep_value: (obj: {
5
10
  [x: string]: any;
6
11
  }, path: any) => any;