@squide/firefly 13.3.1 → 14.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/CHANGELOG.md +72 -0
- package/dist/AppRouterReducer.js +6 -15
- package/dist/AppRouterReducer.js.map +1 -1
- package/dist/AppRouterStore.d.ts +3 -3
- package/dist/AppRouterStore.js.map +1 -1
- package/dist/FireflyRuntime.d.ts +22 -5
- package/dist/FireflyRuntime.js +34 -11
- package/dist/FireflyRuntime.js.map +1 -1
- package/dist/honeycomb/activeSpan.d.ts +2 -2
- package/dist/honeycomb/activeSpan.js.map +1 -1
- package/dist/honeycomb/registerHoneycombInstrumentation.d.ts +1 -1
- package/dist/honeycomb/registerHoneycombInstrumentation.js +153 -62
- package/dist/honeycomb/registerHoneycombInstrumentation.js.map +1 -1
- package/package.json +17 -17
- package/src/AppRouterReducer.ts +6 -21
- package/src/AppRouterStore.ts +4 -4
- package/src/FireflyRuntime.tsx +50 -12
- package/src/honeycomb/activeSpan.ts +2 -2
- package/src/honeycomb/registerHoneycombInstrumentation.ts +218 -61
|
@@ -36,18 +36,29 @@ import { endActiveSpan, startActiveChildSpan, startChildSpan, startSpan, traceEr
|
|
|
36
36
|
|
|
37
37
|
|
|
38
38
|
|
|
39
|
-
function
|
|
39
|
+
function addProtectedListener(runtime, eventName, callback, options) {
|
|
40
|
+
const protectedCallback = (...args)=>{
|
|
41
|
+
try {
|
|
42
|
+
callback(...args);
|
|
43
|
+
} catch (error) {
|
|
44
|
+
runtime.logger.withText(`[squide] An unmanaged error occurred while handling event "${eventName.toString()}" for Honeycomb instrumentation:`).withError(error).error();
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
runtime.eventBus.addListener(eventName, protectedCallback, options);
|
|
48
|
+
}
|
|
49
|
+
function reduceDataFetchEvents(runtime, onDataFetchStarted, onDataReady, onPublicDataFetchStarted, onPublicDataReady, onProtectedDataFetchStarted, onProtectedDataReady, onDataFetchFailed, onUnmanagedError) {
|
|
40
50
|
let dataFetchState = "none";
|
|
41
|
-
runtime
|
|
51
|
+
addProtectedListener(runtime, PublicDataFetchStartedEvent, ()=>{
|
|
42
52
|
if (dataFetchState === "none") {
|
|
43
53
|
dataFetchState = "fetching-data";
|
|
44
54
|
onDataFetchStarted();
|
|
45
55
|
}
|
|
46
56
|
onPublicDataFetchStarted();
|
|
47
57
|
}, {
|
|
48
|
-
once: true
|
|
58
|
+
once: true,
|
|
59
|
+
onError: onUnmanagedError
|
|
49
60
|
});
|
|
50
|
-
runtime
|
|
61
|
+
addProtectedListener(runtime, PublicDataReadyEvent, (payload)=>{
|
|
51
62
|
onPublicDataReady();
|
|
52
63
|
if (dataFetchState === "fetching-data") {
|
|
53
64
|
if (payload && !payload.waitForProtectedData) {
|
|
@@ -61,18 +72,20 @@ function reduceDataFetchEvents(runtime, onDataFetchStarted, onDataReady, onPubli
|
|
|
61
72
|
onDataReady();
|
|
62
73
|
}
|
|
63
74
|
}, {
|
|
64
|
-
once: true
|
|
75
|
+
once: true,
|
|
76
|
+
onError: onUnmanagedError
|
|
65
77
|
});
|
|
66
|
-
runtime
|
|
78
|
+
addProtectedListener(runtime, ProtectedDataFetchStartedEvent, ()=>{
|
|
67
79
|
if (dataFetchState === "none") {
|
|
68
80
|
dataFetchState = "fetching-data";
|
|
69
81
|
onDataFetchStarted();
|
|
70
82
|
}
|
|
71
83
|
onProtectedDataFetchStarted();
|
|
72
84
|
}, {
|
|
73
|
-
once: true
|
|
85
|
+
once: true,
|
|
86
|
+
onError: onUnmanagedError
|
|
74
87
|
});
|
|
75
|
-
runtime
|
|
88
|
+
addProtectedListener(runtime, ProtectedDataReadyEvent, (payload)=>{
|
|
76
89
|
onProtectedDataReady();
|
|
77
90
|
if (dataFetchState === "fetching-data") {
|
|
78
91
|
if (payload && !payload.waitForPublicData) {
|
|
@@ -86,7 +99,8 @@ function reduceDataFetchEvents(runtime, onDataFetchStarted, onDataReady, onPubli
|
|
|
86
99
|
onDataReady();
|
|
87
100
|
}
|
|
88
101
|
}, {
|
|
89
|
-
once: true
|
|
102
|
+
once: true,
|
|
103
|
+
onError: onUnmanagedError
|
|
90
104
|
});
|
|
91
105
|
const handleDataFetchFailed = (payload)=>{
|
|
92
106
|
if (dataFetchState !== "data-fetch-failed") {
|
|
@@ -94,15 +108,18 @@ function reduceDataFetchEvents(runtime, onDataFetchStarted, onDataReady, onPubli
|
|
|
94
108
|
onDataFetchFailed(payload);
|
|
95
109
|
}
|
|
96
110
|
};
|
|
97
|
-
runtime
|
|
98
|
-
once: true
|
|
111
|
+
addProtectedListener(runtime, PublicDataFetchFailedEvent, handleDataFetchFailed, {
|
|
112
|
+
once: true,
|
|
113
|
+
onError: onUnmanagedError
|
|
99
114
|
});
|
|
100
|
-
runtime
|
|
101
|
-
once: true
|
|
115
|
+
addProtectedListener(runtime, ProtectedDataFetchFailedEvent, handleDataFetchFailed, {
|
|
116
|
+
once: true,
|
|
117
|
+
onError: onUnmanagedError
|
|
102
118
|
});
|
|
103
119
|
}
|
|
104
120
|
function registerTrackingListeners(runtime) {
|
|
105
121
|
let bootstrappingSpan;
|
|
122
|
+
let bootstrappingSpanHasEnded = false;
|
|
106
123
|
let localModuleRegistrationSpan;
|
|
107
124
|
let localModuleDeferredRegistrationSpan;
|
|
108
125
|
let remoteModuleRegistrationSpan;
|
|
@@ -111,26 +128,61 @@ function registerTrackingListeners(runtime) {
|
|
|
111
128
|
let deferredRegistrationsUpdateSpan;
|
|
112
129
|
let localModuleDeferredRegistrationsUpdateSpan;
|
|
113
130
|
let remoteModuleDeferredRegistrationsUpdateSpan;
|
|
114
|
-
|
|
131
|
+
const handleUnmanagedError = (error)=>{
|
|
132
|
+
if (bootstrappingSpan && !bootstrappingSpanHasEnded) {
|
|
133
|
+
traceError(bootstrappingSpan, error);
|
|
134
|
+
bootstrappingSpan.end();
|
|
135
|
+
bootstrappingSpanHasEnded = true;
|
|
136
|
+
}
|
|
137
|
+
if (localModuleRegistrationSpan) {
|
|
138
|
+
localModuleRegistrationSpan.end();
|
|
139
|
+
}
|
|
140
|
+
if (localModuleDeferredRegistrationSpan) {
|
|
141
|
+
localModuleDeferredRegistrationSpan.end();
|
|
142
|
+
}
|
|
143
|
+
if (remoteModuleRegistrationSpan) {
|
|
144
|
+
remoteModuleRegistrationSpan.end();
|
|
145
|
+
}
|
|
146
|
+
if (remoteModuleDeferredRegistrationSpan) {
|
|
147
|
+
remoteModuleDeferredRegistrationSpan.end();
|
|
148
|
+
}
|
|
149
|
+
if (dataFetchSpan) {
|
|
150
|
+
dataFetchSpan.instance.end();
|
|
151
|
+
}
|
|
152
|
+
if (deferredRegistrationsUpdateSpan) {
|
|
153
|
+
deferredRegistrationsUpdateSpan.end();
|
|
154
|
+
}
|
|
155
|
+
if (localModuleDeferredRegistrationsUpdateSpan) {
|
|
156
|
+
localModuleDeferredRegistrationsUpdateSpan.instance.end();
|
|
157
|
+
}
|
|
158
|
+
if (remoteModuleDeferredRegistrationsUpdateSpan) {
|
|
159
|
+
remoteModuleDeferredRegistrationsUpdateSpan.instance.end();
|
|
160
|
+
}
|
|
161
|
+
};
|
|
162
|
+
addProtectedListener(runtime, ApplicationBootstrappingStartedEvent, ()=>{
|
|
115
163
|
bootstrappingSpan = startSpan((options, context)=>getTracer().startSpan("squide-bootstrapping", options, context));
|
|
116
164
|
}, {
|
|
117
|
-
once: true
|
|
165
|
+
once: true,
|
|
166
|
+
onError: handleUnmanagedError
|
|
118
167
|
});
|
|
119
|
-
runtime
|
|
168
|
+
addProtectedListener(runtime, ApplicationBoostrappedEvent, ()=>{
|
|
120
169
|
if (bootstrappingSpan) {
|
|
121
170
|
bootstrappingSpan.end();
|
|
171
|
+
bootstrappingSpanHasEnded = true;
|
|
122
172
|
}
|
|
123
173
|
}, {
|
|
124
|
-
once: true
|
|
174
|
+
once: true,
|
|
175
|
+
onError: handleUnmanagedError
|
|
125
176
|
});
|
|
126
|
-
runtime
|
|
177
|
+
addProtectedListener(runtime, MswReadyEvent, ()=>{
|
|
127
178
|
if (bootstrappingSpan) {
|
|
128
179
|
bootstrappingSpan.addEvent("msw-ready");
|
|
129
180
|
}
|
|
130
181
|
}, {
|
|
131
|
-
once: true
|
|
182
|
+
once: true,
|
|
183
|
+
onError: handleUnmanagedError
|
|
132
184
|
});
|
|
133
|
-
runtime
|
|
185
|
+
addProtectedListener(runtime, LocalModulesRegistrationStartedEvent, (payload)=>{
|
|
134
186
|
const attributes = {
|
|
135
187
|
"app.squide.module_count": payload.moduleCount
|
|
136
188
|
};
|
|
@@ -144,9 +196,10 @@ function registerTrackingListeners(runtime) {
|
|
|
144
196
|
}, context);
|
|
145
197
|
});
|
|
146
198
|
}, {
|
|
147
|
-
once: true
|
|
199
|
+
once: true,
|
|
200
|
+
onError: handleUnmanagedError
|
|
148
201
|
});
|
|
149
|
-
runtime
|
|
202
|
+
addProtectedListener(runtime, LocalModulesRegistrationCompletedEvent, (payload)=>{
|
|
150
203
|
if (bootstrappingSpan) {
|
|
151
204
|
bootstrappingSpan.addEvent("local-module-registration-completed", {
|
|
152
205
|
"app.squide.module_count": payload.moduleCount
|
|
@@ -156,16 +209,19 @@ function registerTrackingListeners(runtime) {
|
|
|
156
209
|
localModuleRegistrationSpan.end();
|
|
157
210
|
}
|
|
158
211
|
}, {
|
|
159
|
-
once: true
|
|
212
|
+
once: true,
|
|
213
|
+
onError: handleUnmanagedError
|
|
160
214
|
});
|
|
161
215
|
// Can occur multiple times.
|
|
162
|
-
runtime
|
|
216
|
+
addProtectedListener(runtime, LocalModuleRegistrationFailedEvent, (payload)=>{
|
|
163
217
|
const registrationError = payload;
|
|
164
218
|
if (localModuleRegistrationSpan) {
|
|
165
219
|
traceError(localModuleRegistrationSpan, registrationError);
|
|
166
220
|
}
|
|
221
|
+
}, {
|
|
222
|
+
onError: handleUnmanagedError
|
|
167
223
|
});
|
|
168
|
-
runtime
|
|
224
|
+
addProtectedListener(runtime, LocalModulesDeferredRegistrationStartedEvent, (payload)=>{
|
|
169
225
|
const attributes = {
|
|
170
226
|
"app.squide.registration_count": payload.registrationCount
|
|
171
227
|
};
|
|
@@ -179,9 +235,10 @@ function registerTrackingListeners(runtime) {
|
|
|
179
235
|
}, context);
|
|
180
236
|
});
|
|
181
237
|
}, {
|
|
182
|
-
once: true
|
|
238
|
+
once: true,
|
|
239
|
+
onError: handleUnmanagedError
|
|
183
240
|
});
|
|
184
|
-
runtime
|
|
241
|
+
addProtectedListener(runtime, LocalModulesDeferredRegistrationCompletedEvent, (payload)=>{
|
|
185
242
|
if (bootstrappingSpan) {
|
|
186
243
|
bootstrappingSpan.addEvent("local-module-deferred-registration-completed", {
|
|
187
244
|
"app.squide.registration_count": payload.registrationCount
|
|
@@ -191,16 +248,19 @@ function registerTrackingListeners(runtime) {
|
|
|
191
248
|
localModuleDeferredRegistrationSpan.end();
|
|
192
249
|
}
|
|
193
250
|
}, {
|
|
194
|
-
once: true
|
|
251
|
+
once: true,
|
|
252
|
+
onError: handleUnmanagedError
|
|
195
253
|
});
|
|
196
254
|
// Can occur multiple times.
|
|
197
|
-
runtime
|
|
255
|
+
addProtectedListener(runtime, LocalModuleDeferredRegistrationFailedEvent, (payload)=>{
|
|
198
256
|
const registrationError = payload;
|
|
199
257
|
if (localModuleDeferredRegistrationSpan) {
|
|
200
258
|
traceError(localModuleRegistrationSpan, registrationError);
|
|
201
259
|
}
|
|
260
|
+
}, {
|
|
261
|
+
onError: handleUnmanagedError
|
|
202
262
|
});
|
|
203
|
-
runtime
|
|
263
|
+
addProtectedListener(runtime, RemoteModulesRegistrationStartedEvent, (payload)=>{
|
|
204
264
|
const attributes = {
|
|
205
265
|
"app.squide.remote_count": payload.remoteCount
|
|
206
266
|
};
|
|
@@ -214,9 +274,10 @@ function registerTrackingListeners(runtime) {
|
|
|
214
274
|
}, context);
|
|
215
275
|
});
|
|
216
276
|
}, {
|
|
217
|
-
once: true
|
|
277
|
+
once: true,
|
|
278
|
+
onError: handleUnmanagedError
|
|
218
279
|
});
|
|
219
|
-
runtime
|
|
280
|
+
addProtectedListener(runtime, RemoteModulesRegistrationCompletedEvent, (payload)=>{
|
|
220
281
|
if (bootstrappingSpan) {
|
|
221
282
|
bootstrappingSpan.addEvent("remote-module-registration-completed", {
|
|
222
283
|
"app.squide.remote_count": payload.remoteCount
|
|
@@ -226,16 +287,19 @@ function registerTrackingListeners(runtime) {
|
|
|
226
287
|
remoteModuleRegistrationSpan.end();
|
|
227
288
|
}
|
|
228
289
|
}, {
|
|
229
|
-
once: true
|
|
290
|
+
once: true,
|
|
291
|
+
onError: handleUnmanagedError
|
|
230
292
|
});
|
|
231
293
|
// Can occur multiple times.
|
|
232
|
-
runtime
|
|
294
|
+
addProtectedListener(runtime, RemoteModuleRegistrationFailedEvent, (payload)=>{
|
|
233
295
|
const registrationError = payload;
|
|
234
296
|
if (remoteModuleRegistrationSpan) {
|
|
235
297
|
traceError(remoteModuleRegistrationSpan, registrationError);
|
|
236
298
|
}
|
|
299
|
+
}, {
|
|
300
|
+
onError: handleUnmanagedError
|
|
237
301
|
});
|
|
238
|
-
runtime
|
|
302
|
+
addProtectedListener(runtime, RemoteModulesDeferredRegistrationStartedEvent, (payload)=>{
|
|
239
303
|
const attributes = {
|
|
240
304
|
"app.squide.registration_count": payload.registrationCount
|
|
241
305
|
};
|
|
@@ -249,9 +313,10 @@ function registerTrackingListeners(runtime) {
|
|
|
249
313
|
}, context);
|
|
250
314
|
});
|
|
251
315
|
}, {
|
|
252
|
-
once: true
|
|
316
|
+
once: true,
|
|
317
|
+
onError: handleUnmanagedError
|
|
253
318
|
});
|
|
254
|
-
runtime
|
|
319
|
+
addProtectedListener(runtime, RemoteModulesDeferredRegistrationCompletedEvent, (payload)=>{
|
|
255
320
|
if (bootstrappingSpan) {
|
|
256
321
|
bootstrappingSpan.addEvent("remote-module-deferred-registration-completed", {
|
|
257
322
|
"app.squide.registration_count": payload.registrationCount
|
|
@@ -261,14 +326,17 @@ function registerTrackingListeners(runtime) {
|
|
|
261
326
|
remoteModuleDeferredRegistrationSpan.end();
|
|
262
327
|
}
|
|
263
328
|
}, {
|
|
264
|
-
once: true
|
|
329
|
+
once: true,
|
|
330
|
+
onError: handleUnmanagedError
|
|
265
331
|
});
|
|
266
332
|
// Can occur multiple times.
|
|
267
|
-
runtime
|
|
333
|
+
addProtectedListener(runtime, RemoteModuleDeferredRegistrationFailedEvent, (payload)=>{
|
|
268
334
|
const registrationError = payload;
|
|
269
335
|
if (remoteModuleDeferredRegistrationSpan) {
|
|
270
336
|
traceError(remoteModuleDeferredRegistrationSpan, registrationError);
|
|
271
337
|
}
|
|
338
|
+
}, {
|
|
339
|
+
onError: handleUnmanagedError
|
|
272
340
|
});
|
|
273
341
|
const handleFetchDataStarted = ()=>{
|
|
274
342
|
dataFetchSpan = startActiveChildSpan(bootstrappingSpan, (options, context)=>{
|
|
@@ -315,36 +383,43 @@ function registerTrackingListeners(runtime) {
|
|
|
315
383
|
// will be aborted and a react-router error boundary will be rendered.
|
|
316
384
|
if (bootstrappingSpan) {
|
|
317
385
|
bootstrappingSpan.end();
|
|
386
|
+
bootstrappingSpanHasEnded = true;
|
|
318
387
|
}
|
|
319
388
|
}
|
|
320
389
|
};
|
|
321
|
-
reduceDataFetchEvents(runtime, handleFetchDataStarted, handleDataReady, handlePublicDataFetchStarted, handlePublicDataReady, handleProtectedDataFetchStarted, handleProtectedDataReady, handleDataFetchFailed);
|
|
322
|
-
runtime
|
|
390
|
+
reduceDataFetchEvents(runtime, handleFetchDataStarted, handleDataReady, handlePublicDataFetchStarted, handlePublicDataReady, handleProtectedDataFetchStarted, handleProtectedDataReady, handleDataFetchFailed, handleUnmanagedError);
|
|
391
|
+
addProtectedListener(runtime, ModulesRegisteredEvent, ()=>{
|
|
323
392
|
if (bootstrappingSpan) {
|
|
324
393
|
bootstrappingSpan.addEvent("modules-registered");
|
|
325
394
|
}
|
|
326
395
|
}, {
|
|
327
|
-
once: true
|
|
396
|
+
once: true,
|
|
397
|
+
onError: handleUnmanagedError
|
|
328
398
|
});
|
|
329
|
-
runtime
|
|
399
|
+
addProtectedListener(runtime, ModulesReadyEvent, ()=>{
|
|
330
400
|
if (bootstrappingSpan) {
|
|
331
401
|
bootstrappingSpan.addEvent("modules-ready");
|
|
332
402
|
}
|
|
333
403
|
}, {
|
|
334
|
-
once: true
|
|
404
|
+
once: true,
|
|
405
|
+
onError: handleUnmanagedError
|
|
335
406
|
});
|
|
336
407
|
// Can occur multiple times.
|
|
337
|
-
runtime
|
|
408
|
+
addProtectedListener(runtime, DeferredRegistrationsUpdateStartedEvent, ()=>{
|
|
338
409
|
deferredRegistrationsUpdateSpan = startSpan((options, context)=>getTracer().startSpan("squide-deferred-registrations-update", options, context));
|
|
410
|
+
}, {
|
|
411
|
+
onError: handleUnmanagedError
|
|
339
412
|
});
|
|
340
413
|
// Can occur multiple times.
|
|
341
|
-
runtime
|
|
414
|
+
addProtectedListener(runtime, DeferredRegistrationsUpdateCompletedEvent, ()=>{
|
|
342
415
|
if (deferredRegistrationsUpdateSpan) {
|
|
343
416
|
deferredRegistrationsUpdateSpan.end();
|
|
344
417
|
}
|
|
418
|
+
}, {
|
|
419
|
+
onError: handleUnmanagedError
|
|
345
420
|
});
|
|
346
421
|
// Can occur multiple times.
|
|
347
|
-
runtime
|
|
422
|
+
addProtectedListener(runtime, LocalModulesDeferredRegistrationsUpdateStartedEvent, (payload)=>{
|
|
348
423
|
const attributes = {
|
|
349
424
|
"app.squide.registration_count": payload.registrationCount
|
|
350
425
|
};
|
|
@@ -362,9 +437,11 @@ function registerTrackingListeners(runtime) {
|
|
|
362
437
|
span
|
|
363
438
|
};
|
|
364
439
|
});
|
|
440
|
+
}, {
|
|
441
|
+
onError: handleUnmanagedError
|
|
365
442
|
});
|
|
366
443
|
// Can occur multiple times.
|
|
367
|
-
runtime
|
|
444
|
+
addProtectedListener(runtime, LocalModulesDeferredRegistrationsUpdateCompletedEvent, (payload)=>{
|
|
368
445
|
if (deferredRegistrationsUpdateSpan) {
|
|
369
446
|
deferredRegistrationsUpdateSpan.addEvent("local-module-deferred-registrations-update-completed", {
|
|
370
447
|
"app.squide.registration_count": payload.registrationCount
|
|
@@ -373,16 +450,20 @@ function registerTrackingListeners(runtime) {
|
|
|
373
450
|
if (localModuleDeferredRegistrationsUpdateSpan) {
|
|
374
451
|
endActiveSpan(localModuleDeferredRegistrationsUpdateSpan);
|
|
375
452
|
}
|
|
453
|
+
}, {
|
|
454
|
+
onError: handleUnmanagedError
|
|
376
455
|
});
|
|
377
456
|
// Can occur multiple times.
|
|
378
|
-
runtime
|
|
457
|
+
addProtectedListener(runtime, LocalModuleDeferredRegistrationUpdateFailedEvent, (payload)=>{
|
|
379
458
|
const registrationError = payload;
|
|
380
459
|
if (localModuleDeferredRegistrationsUpdateSpan) {
|
|
381
460
|
traceError(localModuleDeferredRegistrationsUpdateSpan.instance, registrationError);
|
|
382
461
|
}
|
|
462
|
+
}, {
|
|
463
|
+
onError: handleUnmanagedError
|
|
383
464
|
});
|
|
384
465
|
// Can occur multiple times.
|
|
385
|
-
runtime
|
|
466
|
+
addProtectedListener(runtime, RemoteModulesDeferredRegistrationsUpdateStartedEvent, (payload)=>{
|
|
386
467
|
const attributes = {
|
|
387
468
|
"app.squide.registration_count": payload.registrationCount
|
|
388
469
|
};
|
|
@@ -400,9 +481,11 @@ function registerTrackingListeners(runtime) {
|
|
|
400
481
|
span
|
|
401
482
|
};
|
|
402
483
|
});
|
|
484
|
+
}, {
|
|
485
|
+
onError: handleUnmanagedError
|
|
403
486
|
});
|
|
404
487
|
// Can occur multiple times.
|
|
405
|
-
runtime
|
|
488
|
+
addProtectedListener(runtime, RemoteModulesDeferredRegistrationsUpdateCompletedEvent, (payload)=>{
|
|
406
489
|
if (deferredRegistrationsUpdateSpan) {
|
|
407
490
|
deferredRegistrationsUpdateSpan.addEvent("remote-module-deferred-registrations-update-completed", {
|
|
408
491
|
"app.squide.registration_count": payload.registrationCount
|
|
@@ -411,13 +494,17 @@ function registerTrackingListeners(runtime) {
|
|
|
411
494
|
if (remoteModuleDeferredRegistrationsUpdateSpan) {
|
|
412
495
|
endActiveSpan(remoteModuleDeferredRegistrationsUpdateSpan);
|
|
413
496
|
}
|
|
497
|
+
}, {
|
|
498
|
+
onError: handleUnmanagedError
|
|
414
499
|
});
|
|
415
500
|
// Can occur multiple times.
|
|
416
|
-
runtime
|
|
501
|
+
addProtectedListener(runtime, RemoteModuleDeferredRegistrationUpdateFailedEvent, (payload)=>{
|
|
417
502
|
const registrationError = payload;
|
|
418
503
|
if (remoteModuleDeferredRegistrationsUpdateSpan) {
|
|
419
504
|
traceError(remoteModuleDeferredRegistrationsUpdateSpan.instance, registrationError);
|
|
420
505
|
}
|
|
506
|
+
}, {
|
|
507
|
+
onError: handleUnmanagedError
|
|
421
508
|
});
|
|
422
509
|
}
|
|
423
510
|
function getRegisterFetchRequestHookFunction() {
|
|
@@ -434,17 +521,21 @@ function getRegisterFetchRequestHookFunction() {
|
|
|
434
521
|
return globalThis.__WLP_HONEYCOMB_REGISTER_DYNAMIC_FETCH_REQUEST_HOOK;
|
|
435
522
|
}
|
|
436
523
|
function registerHoneycombInstrumentation(runtime) {
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
524
|
+
try {
|
|
525
|
+
const registerFetchRequestHookFunction = getRegisterFetchRequestHookFunction();
|
|
526
|
+
if (registerFetchRequestHookFunction) {
|
|
527
|
+
registerActiveSpanStack();
|
|
528
|
+
const activeSpanOverrideFunction = createOverrideFetchRequestSpanWithActiveSpanContext(runtime.logger);
|
|
529
|
+
// Dynamically registering this request hook function to nest the HTTP requests
|
|
530
|
+
// of squide bootstrapping under the appropriate Honeycomb span.
|
|
531
|
+
registerFetchRequestHookFunction(activeSpanOverrideFunction);
|
|
532
|
+
} else {
|
|
533
|
+
runtime.logger.warning("[squide] Cannot register Honeycomb fetch request hook because \"globalThis.__WLP_HONEYCOMB_REGISTER_DYNAMIC_FETCH_REQUEST_HOOK__\" is not available. Honeycomb instrumentation is still functional but in degraded mode.");
|
|
534
|
+
}
|
|
535
|
+
registerTrackingListeners(runtime);
|
|
536
|
+
} catch (error) {
|
|
537
|
+
runtime.logger.withText("[squide] An error occurred while registering Honeycomb instrumentation:").withError(error).error();
|
|
446
538
|
}
|
|
447
|
-
registerTrackingListeners(runtime);
|
|
448
539
|
}
|
|
449
540
|
|
|
450
541
|
export { reduceDataFetchEvents, registerHoneycombInstrumentation };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"honeycomb/registerHoneycombInstrumentation.js","sources":["webpack://@squide/firefly/./src/honeycomb/registerHoneycombInstrumentation.ts"],"sourcesContent":["import type { Span } from \"@opentelemetry/api\";\nimport {\n LocalModuleDeferredRegistrationFailedEvent,\n LocalModuleDeferredRegistrationUpdateFailedEvent,\n LocalModuleRegistrationFailedEvent,\n LocalModulesDeferredRegistrationCompletedEvent,\n type LocalModulesDeferredRegistrationCompletedEventPayload,\n LocalModulesDeferredRegistrationStartedEvent,\n type LocalModulesDeferredRegistrationStartedEventPayload,\n LocalModulesDeferredRegistrationsUpdateCompletedEvent,\n type LocalModulesDeferredRegistrationsUpdateCompletedEventPayload,\n LocalModulesDeferredRegistrationsUpdateStartedEvent,\n type LocalModulesDeferredRegistrationsUpdateStartedEventPayload,\n LocalModulesRegistrationCompletedEvent,\n type LocalModulesRegistrationCompletedEventPayload,\n LocalModulesRegistrationStartedEvent,\n type LocalModulesRegistrationStartedEventPayload,\n type ModuleRegistrationError\n} from \"@squide/core\";\nimport {\n DeferredRegistrationsUpdateCompletedEvent,\n DeferredRegistrationsUpdateStartedEvent,\n RemoteModuleDeferredRegistrationFailedEvent,\n RemoteModuleDeferredRegistrationUpdateFailedEvent,\n type RemoteModuleRegistrationError,\n RemoteModuleRegistrationFailedEvent,\n RemoteModulesDeferredRegistrationCompletedEvent,\n type RemoteModulesDeferredRegistrationCompletedEventPayload,\n RemoteModulesDeferredRegistrationStartedEvent,\n type RemoteModulesDeferredRegistrationStartedEventPayload,\n RemoteModulesDeferredRegistrationsUpdateCompletedEvent,\n type RemoteModulesDeferredRegistrationsUpdateCompletedEventPayload,\n RemoteModulesDeferredRegistrationsUpdateStartedEvent,\n type RemoteModulesDeferredRegistrationsUpdateStartedEventPayload,\n RemoteModulesRegistrationCompletedEvent,\n type RemoteModulesRegistrationCompletedEventPayload,\n RemoteModulesRegistrationStartedEvent,\n type RemoteModulesRegistrationStartedEventPayload\n} from \"@squide/module-federation\";\nimport { ApplicationBoostrappedEvent, type AppRouterWaitState, ModulesReadyEvent, ModulesRegisteredEvent, MswReadyEvent, ProtectedDataReadyEvent, PublicDataReadyEvent } from \"../AppRouterReducer.ts\";\nimport type { FireflyRuntime } from \"../FireflyRuntime.tsx\";\nimport { ApplicationBootstrappingStartedEvent } from \"../initializeFirefly.ts\";\nimport { ProtectedDataFetchFailedEvent, ProtectedDataFetchStartedEvent } from \"../useProtectedDataQueries.ts\";\nimport { PublicDataFetchFailedEvent, PublicDataFetchStartedEvent } from \"../usePublicDataQueries.ts\";\nimport { type ActiveSpan, createOverrideFetchRequestSpanWithActiveSpanContext, registerActiveSpanStack } from \"./activeSpan.ts\";\nimport { getTracer } from \"./tracer.ts\";\nimport { endActiveSpan, startActiveChildSpan, startChildSpan, startSpan, traceError } from \"./utils.ts\";\n\n// TIPS:\n// To query those traces in Honeycomb, use the following query filter: \"root.name = squide-bootstrapping\".\n\ntype DataFetchState = \"none\" | \"fetching-data\" | \"public-data-ready\" | \"protected-data-ready\" | \"data-ready\" | \"data-fetch-failed\";\n\nexport function reduceDataFetchEvents(\n runtime: FireflyRuntime,\n onDataFetchStarted: () => void,\n onDataReady: () => void,\n onPublicDataFetchStarted: () => void,\n onPublicDataReady: () => void,\n onProtectedDataFetchStarted: () => void,\n onProtectedDataReady: () => void,\n onDataFetchFailed: (queriesErrors: Error[]) => void\n) {\n let dataFetchState: DataFetchState = \"none\";\n\n runtime.eventBus.addListener(PublicDataFetchStartedEvent, () => {\n if (dataFetchState === \"none\") {\n dataFetchState = \"fetching-data\";\n onDataFetchStarted();\n }\n\n onPublicDataFetchStarted();\n }, { once: true });\n\n runtime.eventBus.addListener(PublicDataReadyEvent, payload => {\n onPublicDataReady();\n\n if (dataFetchState === \"fetching-data\") {\n if (payload && !(payload as AppRouterWaitState).waitForProtectedData) {\n dataFetchState = \"data-ready\";\n onDataReady();\n } else {\n dataFetchState = \"public-data-ready\";\n }\n } else if (dataFetchState === \"protected-data-ready\") {\n dataFetchState = \"data-ready\";\n onDataReady();\n }\n }, { once: true });\n\n runtime.eventBus.addListener(ProtectedDataFetchStartedEvent, () => {\n if (dataFetchState === \"none\") {\n dataFetchState = \"fetching-data\";\n onDataFetchStarted();\n }\n\n onProtectedDataFetchStarted();\n }, { once: true });\n\n runtime.eventBus.addListener(ProtectedDataReadyEvent, payload => {\n onProtectedDataReady();\n\n if (dataFetchState === \"fetching-data\") {\n if (payload && !(payload as AppRouterWaitState).waitForPublicData) {\n dataFetchState = \"data-ready\";\n onDataReady();\n } else {\n dataFetchState = \"protected-data-ready\";\n }\n } else if (dataFetchState === \"public-data-ready\") {\n dataFetchState = \"data-ready\";\n onDataReady();\n }\n }, { once: true });\n\n const handleDataFetchFailed = (payload: unknown) => {\n if (dataFetchState !== \"data-fetch-failed\") {\n dataFetchState = \"data-fetch-failed\";\n\n onDataFetchFailed(payload as Error[]);\n }\n };\n\n runtime.eventBus.addListener(PublicDataFetchFailedEvent, handleDataFetchFailed, { once: true });\n runtime.eventBus.addListener(ProtectedDataFetchFailedEvent, handleDataFetchFailed, { once: true });\n}\n\nfunction registerTrackingListeners(runtime: FireflyRuntime) {\n let bootstrappingSpan: Span;\n let localModuleRegistrationSpan: Span;\n let localModuleDeferredRegistrationSpan: Span;\n let remoteModuleRegistrationSpan: Span;\n let remoteModuleDeferredRegistrationSpan: Span;\n let dataFetchSpan: ActiveSpan;\n let deferredRegistrationsUpdateSpan: Span;\n let localModuleDeferredRegistrationsUpdateSpan: ActiveSpan;\n let remoteModuleDeferredRegistrationsUpdateSpan: ActiveSpan;\n\n runtime.eventBus.addListener(ApplicationBootstrappingStartedEvent, () => {\n bootstrappingSpan = startSpan((options, context) => getTracer().startSpan(\"squide-bootstrapping\", options, context));\n }, { once: true });\n\n runtime.eventBus.addListener(ApplicationBoostrappedEvent, () => {\n if (bootstrappingSpan) {\n bootstrappingSpan.end();\n }\n }, { once: true });\n\n runtime.eventBus.addListener(MswReadyEvent, () => {\n if (bootstrappingSpan) {\n bootstrappingSpan.addEvent(\"msw-ready\");\n }\n }, { once: true });\n\n runtime.eventBus.addListener(LocalModulesRegistrationStartedEvent, (payload: unknown) => {\n const attributes = {\n \"app.squide.module_count\": (payload as LocalModulesRegistrationStartedEventPayload).moduleCount\n };\n\n if (bootstrappingSpan) {\n bootstrappingSpan.addEvent(\"local-module-registration-started\", attributes);\n }\n\n localModuleRegistrationSpan = startChildSpan(bootstrappingSpan, (options, context) => {\n return getTracer().startSpan(\"local-module-registration\", { ...options, attributes }, context);\n });\n }, { once: true });\n\n runtime.eventBus.addListener(LocalModulesRegistrationCompletedEvent, (payload: unknown) => {\n if (bootstrappingSpan) {\n bootstrappingSpan.addEvent(\"local-module-registration-completed\", {\n \"app.squide.module_count\": (payload as LocalModulesRegistrationCompletedEventPayload).moduleCount\n });\n }\n\n if (localModuleRegistrationSpan) {\n localModuleRegistrationSpan.end();\n }\n }, { once: true });\n\n // Can occur multiple times.\n runtime.eventBus.addListener(LocalModuleRegistrationFailedEvent, (payload: unknown) => {\n const registrationError = payload as ModuleRegistrationError;\n\n if (localModuleRegistrationSpan) {\n traceError(localModuleRegistrationSpan, registrationError);\n }\n });\n\n runtime.eventBus.addListener(LocalModulesDeferredRegistrationStartedEvent, (payload: unknown) => {\n const attributes = {\n \"app.squide.registration_count\": (payload as LocalModulesDeferredRegistrationStartedEventPayload).registrationCount\n };\n\n if (bootstrappingSpan) {\n bootstrappingSpan.addEvent(\"local-module-deferred-registration-started\", attributes);\n }\n\n localModuleDeferredRegistrationSpan = startChildSpan(bootstrappingSpan, (options, context) => {\n return getTracer().startSpan(\"local-module-deferred-registration\", { ...options, attributes }, context);\n });\n }, { once: true });\n\n runtime.eventBus.addListener(LocalModulesDeferredRegistrationCompletedEvent, (payload: unknown) => {\n if (bootstrappingSpan) {\n bootstrappingSpan.addEvent(\"local-module-deferred-registration-completed\", {\n \"app.squide.registration_count\": (payload as LocalModulesDeferredRegistrationCompletedEventPayload).registrationCount\n });\n }\n\n if (localModuleDeferredRegistrationSpan) {\n localModuleDeferredRegistrationSpan.end();\n }\n }, { once: true });\n\n // Can occur multiple times.\n runtime.eventBus.addListener(LocalModuleDeferredRegistrationFailedEvent, (payload: unknown) => {\n const registrationError = payload as ModuleRegistrationError;\n\n if (localModuleDeferredRegistrationSpan) {\n traceError(localModuleRegistrationSpan, registrationError);\n }\n });\n\n runtime.eventBus.addListener(RemoteModulesRegistrationStartedEvent, (payload: unknown) => {\n const attributes = {\n \"app.squide.remote_count\": (payload as RemoteModulesRegistrationStartedEventPayload).remoteCount\n };\n\n if (bootstrappingSpan) {\n bootstrappingSpan.addEvent(\"remote-module-registration-started\", attributes);\n }\n\n remoteModuleRegistrationSpan = startChildSpan(bootstrappingSpan, (options, context) => {\n return getTracer().startSpan(\"remote-module-registration\", { ...options, attributes }, context);\n });\n }, { once: true });\n\n runtime.eventBus.addListener(RemoteModulesRegistrationCompletedEvent, (payload: unknown) => {\n if (bootstrappingSpan) {\n bootstrappingSpan.addEvent(\"remote-module-registration-completed\", {\n \"app.squide.remote_count\": (payload as RemoteModulesRegistrationCompletedEventPayload).remoteCount\n });\n }\n\n if (remoteModuleRegistrationSpan) {\n remoteModuleRegistrationSpan.end();\n }\n }, { once: true });\n\n // Can occur multiple times.\n runtime.eventBus.addListener(RemoteModuleRegistrationFailedEvent, (payload: unknown) => {\n const registrationError = payload as RemoteModuleRegistrationError;\n\n if (remoteModuleRegistrationSpan) {\n traceError(remoteModuleRegistrationSpan, registrationError);\n }\n });\n\n runtime.eventBus.addListener(RemoteModulesDeferredRegistrationStartedEvent, (payload: unknown) => {\n const attributes = {\n \"app.squide.registration_count\": (payload as RemoteModulesDeferredRegistrationStartedEventPayload).registrationCount\n };\n\n if (bootstrappingSpan) {\n bootstrappingSpan.addEvent(\"remote-module-deferred-registration-started\", attributes);\n }\n\n remoteModuleDeferredRegistrationSpan = startChildSpan(bootstrappingSpan, (options, context) => {\n return getTracer().startSpan(\"remote-module-deferred-registration\", { ...options, attributes }, context);\n });\n }, { once: true });\n\n runtime.eventBus.addListener(RemoteModulesDeferredRegistrationCompletedEvent, (payload: unknown) => {\n if (bootstrappingSpan) {\n bootstrappingSpan.addEvent(\"remote-module-deferred-registration-completed\", {\n \"app.squide.registration_count\": (payload as RemoteModulesDeferredRegistrationCompletedEventPayload).registrationCount\n });\n }\n\n if (remoteModuleDeferredRegistrationSpan) {\n remoteModuleDeferredRegistrationSpan.end();\n }\n }, { once: true });\n\n // Can occur multiple times.\n runtime.eventBus.addListener(RemoteModuleDeferredRegistrationFailedEvent, (payload: unknown) => {\n const registrationError = payload as RemoteModuleRegistrationError;\n\n if (remoteModuleDeferredRegistrationSpan) {\n traceError(remoteModuleDeferredRegistrationSpan, registrationError);\n }\n });\n\n const handleFetchDataStarted = () => {\n dataFetchSpan = startActiveChildSpan(bootstrappingSpan, (options, context) => {\n const name = \"data-fetch\";\n const span = getTracer().startSpan(name, options, context);\n\n return {\n name,\n span\n };\n });\n };\n\n const handleDataReady = () => {\n if (dataFetchSpan) {\n endActiveSpan(dataFetchSpan);\n }\n };\n\n const handlePublicDataFetchStarted = () => {\n if (dataFetchSpan) {\n dataFetchSpan.instance.addEvent(\"public-data-fetch-started\");\n }\n };\n\n const handlePublicDataReady = () => {\n if (dataFetchSpan) {\n dataFetchSpan.instance.addEvent(\"public-data-ready\");\n }\n };\n\n const handleProtectedDataFetchStarted = () => {\n if (dataFetchSpan) {\n dataFetchSpan.instance.addEvent(\"protected-data-fetch-started\");\n }\n };\n\n const handleProtectedDataReady = () => {\n if (dataFetchSpan) {\n dataFetchSpan.instance.addEvent(\"protected-data-ready\");\n }\n };\n\n const handleDataFetchFailed = (queriesErrors: Error[]) => {\n if (dataFetchSpan) {\n queriesErrors.forEach(x => {\n traceError(dataFetchSpan.instance, x);\n });\n\n endActiveSpan(dataFetchSpan);\n\n // Global data fetch errors are unmanaged, which mean the host application bootstrapping flow\n // will be aborted and a react-router error boundary will be rendered.\n if (bootstrappingSpan) {\n bootstrappingSpan.end();\n }\n }\n };\n\n reduceDataFetchEvents(\n runtime,\n handleFetchDataStarted,\n handleDataReady,\n handlePublicDataFetchStarted,\n handlePublicDataReady,\n handleProtectedDataFetchStarted,\n handleProtectedDataReady,\n handleDataFetchFailed\n );\n\n runtime.eventBus.addListener(ModulesRegisteredEvent, () => {\n if (bootstrappingSpan) {\n bootstrappingSpan.addEvent(\"modules-registered\");\n }\n }, { once: true });\n\n runtime.eventBus.addListener(ModulesReadyEvent, () => {\n if (bootstrappingSpan) {\n bootstrappingSpan.addEvent(\"modules-ready\");\n }\n }, { once: true });\n\n // Can occur multiple times.\n runtime.eventBus.addListener(DeferredRegistrationsUpdateStartedEvent, () => {\n deferredRegistrationsUpdateSpan = startSpan((options, context) => getTracer().startSpan(\"squide-deferred-registrations-update\", options, context));\n });\n\n // Can occur multiple times.\n runtime.eventBus.addListener(DeferredRegistrationsUpdateCompletedEvent, () => {\n if (deferredRegistrationsUpdateSpan) {\n deferredRegistrationsUpdateSpan.end();\n }\n });\n\n // Can occur multiple times.\n runtime.eventBus.addListener(LocalModulesDeferredRegistrationsUpdateStartedEvent, (payload: unknown) => {\n const attributes = {\n \"app.squide.registration_count\": (payload as LocalModulesDeferredRegistrationsUpdateStartedEventPayload).registrationCount\n };\n\n if (deferredRegistrationsUpdateSpan) {\n deferredRegistrationsUpdateSpan.addEvent(\"local-module-deferred-registrations-update-started\", attributes);\n }\n\n localModuleDeferredRegistrationsUpdateSpan = startActiveChildSpan(deferredRegistrationsUpdateSpan, (options, context) => {\n const name = \"local-module-deferred-registrations-update\";\n\n const span = getTracer().startSpan(name, {\n attributes,\n ...options\n }, context);\n\n return {\n name,\n span\n };\n });\n });\n\n // Can occur multiple times.\n runtime.eventBus.addListener(LocalModulesDeferredRegistrationsUpdateCompletedEvent, (payload: unknown) => {\n if (deferredRegistrationsUpdateSpan) {\n deferredRegistrationsUpdateSpan.addEvent(\"local-module-deferred-registrations-update-completed\", {\n \"app.squide.registration_count\": (payload as LocalModulesDeferredRegistrationsUpdateCompletedEventPayload).registrationCount\n });\n }\n\n if (localModuleDeferredRegistrationsUpdateSpan) {\n endActiveSpan(localModuleDeferredRegistrationsUpdateSpan);\n }\n });\n\n // Can occur multiple times.\n runtime.eventBus.addListener(LocalModuleDeferredRegistrationUpdateFailedEvent, (payload: unknown) => {\n const registrationError = payload as ModuleRegistrationError;\n\n if (localModuleDeferredRegistrationsUpdateSpan) {\n traceError(localModuleDeferredRegistrationsUpdateSpan.instance, registrationError);\n }\n });\n\n // Can occur multiple times.\n runtime.eventBus.addListener(RemoteModulesDeferredRegistrationsUpdateStartedEvent, (payload: unknown) => {\n const attributes = {\n \"app.squide.registration_count\": (payload as RemoteModulesDeferredRegistrationsUpdateStartedEventPayload).registrationCount\n };\n\n if (deferredRegistrationsUpdateSpan) {\n deferredRegistrationsUpdateSpan.addEvent(\"remote-module-deferred-registrations-update-started\", attributes);\n }\n\n remoteModuleDeferredRegistrationsUpdateSpan = startActiveChildSpan(deferredRegistrationsUpdateSpan, (options, context) => {\n const name = \"remote-module-deferred-registrations-update\";\n\n const span = getTracer().startSpan(name, {\n attributes,\n ...options\n }, context);\n\n return {\n name,\n span\n };\n });\n });\n\n // Can occur multiple times.\n runtime.eventBus.addListener(RemoteModulesDeferredRegistrationsUpdateCompletedEvent, (payload: unknown) => {\n if (deferredRegistrationsUpdateSpan) {\n deferredRegistrationsUpdateSpan.addEvent(\"remote-module-deferred-registrations-update-completed\", {\n \"app.squide.registration_count\": (payload as RemoteModulesDeferredRegistrationsUpdateCompletedEventPayload).registrationCount\n });\n }\n\n if (remoteModuleDeferredRegistrationsUpdateSpan) {\n endActiveSpan(remoteModuleDeferredRegistrationsUpdateSpan);\n }\n });\n\n // Can occur multiple times.\n runtime.eventBus.addListener(RemoteModuleDeferredRegistrationUpdateFailedEvent, (payload: unknown) => {\n const registrationError = payload as RemoteModuleRegistrationError;\n\n if (remoteModuleDeferredRegistrationsUpdateSpan) {\n traceError(remoteModuleDeferredRegistrationsUpdateSpan.instance, registrationError);\n }\n });\n}\n\nfunction getRegisterFetchRequestHookFunction() {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n if (globalThis.__WLP_HONEYCOMB_REGISTER_DYNAMIC_FETCH_REQUEST_HOOK__) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return globalThis.__WLP_HONEYCOMB_REGISTER_DYNAMIC_FETCH_REQUEST_HOOK__;\n }\n\n // Fallback to fix an error. Will remove soon.\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return globalThis.__WLP_HONEYCOMB_REGISTER_DYNAMIC_FETCH_REQUEST_HOOK;\n}\n\nexport function registerHoneycombInstrumentation(runtime: FireflyRuntime) {\n const registerFetchRequestHookFunction = getRegisterFetchRequestHookFunction();\n\n if (registerFetchRequestHookFunction) {\n registerActiveSpanStack();\n\n const activeSpanOverrideFunction = createOverrideFetchRequestSpanWithActiveSpanContext(runtime.logger);\n\n // Dynamically registering this request hook function to nest the HTTP requests\n // of squide bootstrapping under the appropriate Honeycomb span.\n registerFetchRequestHookFunction(activeSpanOverrideFunction);\n } else {\n runtime.logger.warning(\"[squide] Cannot register Honeycomb fetch request hook because \\\"globalThis.__WLP_HONEYCOMB_REGISTER_DYNAMIC_FETCH_REQUEST_HOOK__\\\" is not available. Honeycomb instrumentation is still functional but in degraded mode.\");\n }\n\n registerTrackingListeners(runtime);\n}\n"],"names":["LocalModuleDeferredRegistrationFailedEvent","LocalModuleDeferredRegistrationUpdateFailedEvent","LocalModuleRegistrationFailedEvent","LocalModulesDeferredRegistrationCompletedEvent","LocalModulesDeferredRegistrationStartedEvent","LocalModulesDeferredRegistrationsUpdateCompletedEvent","LocalModulesDeferredRegistrationsUpdateStartedEvent","LocalModulesRegistrationCompletedEvent","LocalModulesRegistrationStartedEvent","DeferredRegistrationsUpdateCompletedEvent","DeferredRegistrationsUpdateStartedEvent","RemoteModuleDeferredRegistrationFailedEvent","RemoteModuleDeferredRegistrationUpdateFailedEvent","RemoteModuleRegistrationFailedEvent","RemoteModulesDeferredRegistrationCompletedEvent","RemoteModulesDeferredRegistrationStartedEvent","RemoteModulesDeferredRegistrationsUpdateCompletedEvent","RemoteModulesDeferredRegistrationsUpdateStartedEvent","RemoteModulesRegistrationCompletedEvent","RemoteModulesRegistrationStartedEvent","ApplicationBoostrappedEvent","ModulesReadyEvent","ModulesRegisteredEvent","MswReadyEvent","ProtectedDataReadyEvent","PublicDataReadyEvent","ApplicationBootstrappingStartedEvent","ProtectedDataFetchFailedEvent","ProtectedDataFetchStartedEvent","PublicDataFetchFailedEvent","PublicDataFetchStartedEvent","createOverrideFetchRequestSpanWithActiveSpanContext","registerActiveSpanStack","getTracer","endActiveSpan","startActiveChildSpan","startChildSpan","startSpan","traceError","reduceDataFetchEvents","runtime","onDataFetchStarted","onDataReady","onPublicDataFetchStarted","onPublicDataReady","onProtectedDataFetchStarted","onProtectedDataReady","onDataFetchFailed","dataFetchState","payload","handleDataFetchFailed","registerTrackingListeners","bootstrappingSpan","localModuleRegistrationSpan","localModuleDeferredRegistrationSpan","remoteModuleRegistrationSpan","remoteModuleDeferredRegistrationSpan","dataFetchSpan","deferredRegistrationsUpdateSpan","localModuleDeferredRegistrationsUpdateSpan","remoteModuleDeferredRegistrationsUpdateSpan","options","context","attributes","registrationError","handleFetchDataStarted","name","span","handleDataReady","handlePublicDataFetchStarted","handlePublicDataReady","handleProtectedDataFetchStarted","handleProtectedDataReady","queriesErrors","x","getRegisterFetchRequestHookFunction","globalThis","registerHoneycombInstrumentation","registerFetchRequestHookFunction","activeSpanOverrideFunction"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBsB;AAoBa;AACoK;AAExH;AAC+B;AACT;AAC2B;AACxF;AACgE;AAOjG,SAASuC,sBACZC,OAAuB,EACvBC,kBAA8B,EAC9BC,WAAuB,EACvBC,wBAAoC,EACpCC,iBAA6B,EAC7BC,2BAAuC,EACvCC,oBAAgC,EAChCC,iBAAmD;IAEnD,IAAIC,iBAAiC;IAErCR,QAAQ,QAAQ,CAAC,WAAW,CAACV,2BAA2BA,EAAE;QACtD,IAAIkB,mBAAmB,QAAQ;YAC3BA,iBAAiB;YACjBP;QACJ;QAEAE;IACJ,GAAG;QAAE,MAAM;IAAK;IAEhBH,QAAQ,QAAQ,CAAC,WAAW,CAACf,oBAAoBA,EAAEwB,CAAAA;QAC/CL;QAEA,IAAII,mBAAmB,iBAAiB;YACpC,IAAIC,WAAW,CAAEA,QAA+B,oBAAoB,EAAE;gBAClED,iBAAiB;gBACjBN;YACJ,OAAO;gBACHM,iBAAiB;YACrB;QACJ,OAAO,IAAIA,mBAAmB,wBAAwB;YAClDA,iBAAiB;YACjBN;QACJ;IACJ,GAAG;QAAE,MAAM;IAAK;IAEhBF,QAAQ,QAAQ,CAAC,WAAW,CAACZ,8BAA8BA,EAAE;QACzD,IAAIoB,mBAAmB,QAAQ;YAC3BA,iBAAiB;YACjBP;QACJ;QAEAI;IACJ,GAAG;QAAE,MAAM;IAAK;IAEhBL,QAAQ,QAAQ,CAAC,WAAW,CAAChB,uBAAuBA,EAAEyB,CAAAA;QAClDH;QAEA,IAAIE,mBAAmB,iBAAiB;YACpC,IAAIC,WAAW,CAAEA,QAA+B,iBAAiB,EAAE;gBAC/DD,iBAAiB;gBACjBN;YACJ,OAAO;gBACHM,iBAAiB;YACrB;QACJ,OAAO,IAAIA,mBAAmB,qBAAqB;YAC/CA,iBAAiB;YACjBN;QACJ;IACJ,GAAG;QAAE,MAAM;IAAK;IAEhB,MAAMQ,wBAAwB,CAACD;QAC3B,IAAID,mBAAmB,qBAAqB;YACxCA,iBAAiB;YAEjBD,kBAAkBE;QACtB;IACJ;IAEAT,QAAQ,QAAQ,CAAC,WAAW,CAACX,0BAA0BA,EAAEqB,uBAAuB;QAAE,MAAM;IAAK;IAC7FV,QAAQ,QAAQ,CAAC,WAAW,CAACb,6BAA6BA,EAAEuB,uBAAuB;QAAE,MAAM;IAAK;AACpG;AAEA,SAASC,0BAA0BX,OAAuB;IACtD,IAAIY;IACJ,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IAEJpB,QAAQ,QAAQ,CAAC,WAAW,CAACd,oCAAoCA,EAAE;QAC/D0B,oBAAoBf,SAASA,CAAC,CAACwB,SAASC,UAAY7B,SAASA,GAAG,SAAS,CAAC,wBAAwB4B,SAASC;IAC/G,GAAG;QAAE,MAAM;IAAK;IAEhBtB,QAAQ,QAAQ,CAAC,WAAW,CAACpB,2BAA2BA,EAAE;QACtD,IAAIgC,mBAAmB;YACnBA,kBAAkB,GAAG;QACzB;IACJ,GAAG;QAAE,MAAM;IAAK;IAEhBZ,QAAQ,QAAQ,CAAC,WAAW,CAACjB,aAAaA,EAAE;QACxC,IAAI6B,mBAAmB;YACnBA,kBAAkB,QAAQ,CAAC;QAC/B;IACJ,GAAG;QAAE,MAAM;IAAK;IAEhBZ,QAAQ,QAAQ,CAAC,WAAW,CAAChC,oCAAoCA,EAAE,CAACyC;QAChE,MAAMc,aAAa;YACf,2BAA4Bd,QAAwD,WAAW;QACnG;QAEA,IAAIG,mBAAmB;YACnBA,kBAAkB,QAAQ,CAAC,qCAAqCW;QACpE;QAEAV,8BAA8BjB,cAAcA,CAACgB,mBAAmB,CAACS,SAASC;YACtE,OAAO7B,SAASA,GAAG,SAAS,CAAC,6BAA6B;gBAAE,GAAG4B,OAAO;gBAAEE;YAAW,GAAGD;QAC1F;IACJ,GAAG;QAAE,MAAM;IAAK;IAEhBtB,QAAQ,QAAQ,CAAC,WAAW,CAACjC,sCAAsCA,EAAE,CAAC0C;QAClE,IAAIG,mBAAmB;YACnBA,kBAAkB,QAAQ,CAAC,uCAAuC;gBAC9D,2BAA4BH,QAA0D,WAAW;YACrG;QACJ;QAEA,IAAII,6BAA6B;YAC7BA,4BAA4B,GAAG;QACnC;IACJ,GAAG;QAAE,MAAM;IAAK;IAEhB,4BAA4B;IAC5Bb,QAAQ,QAAQ,CAAC,WAAW,CAACtC,kCAAkCA,EAAE,CAAC+C;QAC9D,MAAMe,oBAAoBf;QAE1B,IAAII,6BAA6B;YAC7Bf,UAAUA,CAACe,6BAA6BW;QAC5C;IACJ;IAEAxB,QAAQ,QAAQ,CAAC,WAAW,CAACpC,4CAA4CA,EAAE,CAAC6C;QACxE,MAAMc,aAAa;YACf,iCAAkCd,QAAgE,iBAAiB;QACvH;QAEA,IAAIG,mBAAmB;YACnBA,kBAAkB,QAAQ,CAAC,8CAA8CW;QAC7E;QAEAT,sCAAsClB,cAAcA,CAACgB,mBAAmB,CAACS,SAASC;YAC9E,OAAO7B,SAASA,GAAG,SAAS,CAAC,sCAAsC;gBAAE,GAAG4B,OAAO;gBAAEE;YAAW,GAAGD;QACnG;IACJ,GAAG;QAAE,MAAM;IAAK;IAEhBtB,QAAQ,QAAQ,CAAC,WAAW,CAACrC,8CAA8CA,EAAE,CAAC8C;QAC1E,IAAIG,mBAAmB;YACnBA,kBAAkB,QAAQ,CAAC,gDAAgD;gBACvE,iCAAkCH,QAAkE,iBAAiB;YACzH;QACJ;QAEA,IAAIK,qCAAqC;YACrCA,oCAAoC,GAAG;QAC3C;IACJ,GAAG;QAAE,MAAM;IAAK;IAEhB,4BAA4B;IAC5Bd,QAAQ,QAAQ,CAAC,WAAW,CAACxC,0CAA0CA,EAAE,CAACiD;QACtE,MAAMe,oBAAoBf;QAE1B,IAAIK,qCAAqC;YACrChB,UAAUA,CAACe,6BAA6BW;QAC5C;IACJ;IAEAxB,QAAQ,QAAQ,CAAC,WAAW,CAACrB,qCAAqCA,EAAE,CAAC8B;QACjE,MAAMc,aAAa;YACf,2BAA4Bd,QAAyD,WAAW;QACpG;QAEA,IAAIG,mBAAmB;YACnBA,kBAAkB,QAAQ,CAAC,sCAAsCW;QACrE;QAEAR,+BAA+BnB,cAAcA,CAACgB,mBAAmB,CAACS,SAASC;YACvE,OAAO7B,SAASA,GAAG,SAAS,CAAC,8BAA8B;gBAAE,GAAG4B,OAAO;gBAAEE;YAAW,GAAGD;QAC3F;IACJ,GAAG;QAAE,MAAM;IAAK;IAEhBtB,QAAQ,QAAQ,CAAC,WAAW,CAACtB,uCAAuCA,EAAE,CAAC+B;QACnE,IAAIG,mBAAmB;YACnBA,kBAAkB,QAAQ,CAAC,wCAAwC;gBAC/D,2BAA4BH,QAA2D,WAAW;YACtG;QACJ;QAEA,IAAIM,8BAA8B;YAC9BA,6BAA6B,GAAG;QACpC;IACJ,GAAG;QAAE,MAAM;IAAK;IAEhB,4BAA4B;IAC5Bf,QAAQ,QAAQ,CAAC,WAAW,CAAC3B,mCAAmCA,EAAE,CAACoC;QAC/D,MAAMe,oBAAoBf;QAE1B,IAAIM,8BAA8B;YAC9BjB,UAAUA,CAACiB,8BAA8BS;QAC7C;IACJ;IAEAxB,QAAQ,QAAQ,CAAC,WAAW,CAACzB,6CAA6CA,EAAE,CAACkC;QACzE,MAAMc,aAAa;YACf,iCAAkCd,QAAiE,iBAAiB;QACxH;QAEA,IAAIG,mBAAmB;YACnBA,kBAAkB,QAAQ,CAAC,+CAA+CW;QAC9E;QAEAP,uCAAuCpB,cAAcA,CAACgB,mBAAmB,CAACS,SAASC;YAC/E,OAAO7B,SAASA,GAAG,SAAS,CAAC,uCAAuC;gBAAE,GAAG4B,OAAO;gBAAEE;YAAW,GAAGD;QACpG;IACJ,GAAG;QAAE,MAAM;IAAK;IAEhBtB,QAAQ,QAAQ,CAAC,WAAW,CAAC1B,+CAA+CA,EAAE,CAACmC;QAC3E,IAAIG,mBAAmB;YACnBA,kBAAkB,QAAQ,CAAC,iDAAiD;gBACxE,iCAAkCH,QAAmE,iBAAiB;YAC1H;QACJ;QAEA,IAAIO,sCAAsC;YACtCA,qCAAqC,GAAG;QAC5C;IACJ,GAAG;QAAE,MAAM;IAAK;IAEhB,4BAA4B;IAC5BhB,QAAQ,QAAQ,CAAC,WAAW,CAAC7B,2CAA2CA,EAAE,CAACsC;QACvE,MAAMe,oBAAoBf;QAE1B,IAAIO,sCAAsC;YACtClB,UAAUA,CAACkB,sCAAsCQ;QACrD;IACJ;IAEA,MAAMC,yBAAyB;QAC3BR,gBAAgBtB,oBAAoBA,CAACiB,mBAAmB,CAACS,SAASC;YAC9D,MAAMI,OAAO;YACb,MAAMC,OAAOlC,SAASA,GAAG,SAAS,CAACiC,MAAML,SAASC;YAElD,OAAO;gBACHI;gBACAC;YACJ;QACJ;IACJ;IAEA,MAAMC,kBAAkB;QACpB,IAAIX,eAAe;YACfvB,aAAaA,CAACuB;QAClB;IACJ;IAEA,MAAMY,+BAA+B;QACjC,IAAIZ,eAAe;YACfA,cAAc,QAAQ,CAAC,QAAQ,CAAC;QACpC;IACJ;IAEA,MAAMa,wBAAwB;QAC1B,IAAIb,eAAe;YACfA,cAAc,QAAQ,CAAC,QAAQ,CAAC;QACpC;IACJ;IAEA,MAAMc,kCAAkC;QACpC,IAAId,eAAe;YACfA,cAAc,QAAQ,CAAC,QAAQ,CAAC;QACpC;IACJ;IAEA,MAAMe,2BAA2B;QAC7B,IAAIf,eAAe;YACfA,cAAc,QAAQ,CAAC,QAAQ,CAAC;QACpC;IACJ;IAEA,MAAMP,wBAAwB,CAACuB;QAC3B,IAAIhB,eAAe;YACfgB,cAAc,OAAO,CAACC,CAAAA;gBAClBpC,UAAUA,CAACmB,cAAc,QAAQ,EAAEiB;YACvC;YAEAxC,aAAaA,CAACuB;YAEd,6FAA6F;YAC7F,sEAAsE;YACtE,IAAIL,mBAAmB;gBACnBA,kBAAkB,GAAG;YACzB;QACJ;IACJ;IAEAb,sBACIC,SACAyB,wBACAG,iBACAC,8BACAC,uBACAC,iCACAC,0BACAtB;IAGJV,QAAQ,QAAQ,CAAC,WAAW,CAAClB,sBAAsBA,EAAE;QACjD,IAAI8B,mBAAmB;YACnBA,kBAAkB,QAAQ,CAAC;QAC/B;IACJ,GAAG;QAAE,MAAM;IAAK;IAEhBZ,QAAQ,QAAQ,CAAC,WAAW,CAACnB,iBAAiBA,EAAE;QAC5C,IAAI+B,mBAAmB;YACnBA,kBAAkB,QAAQ,CAAC;QAC/B;IACJ,GAAG;QAAE,MAAM;IAAK;IAEhB,4BAA4B;IAC5BZ,QAAQ,QAAQ,CAAC,WAAW,CAAC9B,uCAAuCA,EAAE;QAClEgD,kCAAkCrB,SAASA,CAAC,CAACwB,SAASC,UAAY7B,SAASA,GAAG,SAAS,CAAC,wCAAwC4B,SAASC;IAC7I;IAEA,4BAA4B;IAC5BtB,QAAQ,QAAQ,CAAC,WAAW,CAAC/B,yCAAyCA,EAAE;QACpE,IAAIiD,iCAAiC;YACjCA,gCAAgC,GAAG;QACvC;IACJ;IAEA,4BAA4B;IAC5BlB,QAAQ,QAAQ,CAAC,WAAW,CAAClC,mDAAmDA,EAAE,CAAC2C;QAC/E,MAAMc,aAAa;YACf,iCAAkCd,QAAuE,iBAAiB;QAC9H;QAEA,IAAIS,iCAAiC;YACjCA,gCAAgC,QAAQ,CAAC,sDAAsDK;QACnG;QAEAJ,6CAA6CxB,oBAAoBA,CAACuB,iCAAiC,CAACG,SAASC;YACzG,MAAMI,OAAO;YAEb,MAAMC,OAAOlC,SAASA,GAAG,SAAS,CAACiC,MAAM;gBACrCH;gBACA,GAAGF,OAAO;YACd,GAAGC;YAEH,OAAO;gBACHI;gBACAC;YACJ;QACJ;IACJ;IAEA,4BAA4B;IAC5B3B,QAAQ,QAAQ,CAAC,WAAW,CAACnC,qDAAqDA,EAAE,CAAC4C;QACjF,IAAIS,iCAAiC;YACjCA,gCAAgC,QAAQ,CAAC,wDAAwD;gBAC7F,iCAAkCT,QAAyE,iBAAiB;YAChI;QACJ;QAEA,IAAIU,4CAA4C;YAC5CzB,aAAaA,CAACyB;QAClB;IACJ;IAEA,4BAA4B;IAC5BnB,QAAQ,QAAQ,CAAC,WAAW,CAACvC,gDAAgDA,EAAE,CAACgD;QAC5E,MAAMe,oBAAoBf;QAE1B,IAAIU,4CAA4C;YAC5CrB,UAAUA,CAACqB,2CAA2C,QAAQ,EAAEK;QACpE;IACJ;IAEA,4BAA4B;IAC5BxB,QAAQ,QAAQ,CAAC,WAAW,CAACvB,oDAAoDA,EAAE,CAACgC;QAChF,MAAMc,aAAa;YACf,iCAAkCd,QAAwE,iBAAiB;QAC/H;QAEA,IAAIS,iCAAiC;YACjCA,gCAAgC,QAAQ,CAAC,uDAAuDK;QACpG;QAEAH,8CAA8CzB,oBAAoBA,CAACuB,iCAAiC,CAACG,SAASC;YAC1G,MAAMI,OAAO;YAEb,MAAMC,OAAOlC,SAASA,GAAG,SAAS,CAACiC,MAAM;gBACrCH;gBACA,GAAGF,OAAO;YACd,GAAGC;YAEH,OAAO;gBACHI;gBACAC;YACJ;QACJ;IACJ;IAEA,4BAA4B;IAC5B3B,QAAQ,QAAQ,CAAC,WAAW,CAACxB,sDAAsDA,EAAE,CAACiC;QAClF,IAAIS,iCAAiC;YACjCA,gCAAgC,QAAQ,CAAC,yDAAyD;gBAC9F,iCAAkCT,QAA0E,iBAAiB;YACjI;QACJ;QAEA,IAAIW,6CAA6C;YAC7C1B,aAAaA,CAAC0B;QAClB;IACJ;IAEA,4BAA4B;IAC5BpB,QAAQ,QAAQ,CAAC,WAAW,CAAC5B,iDAAiDA,EAAE,CAACqC;QAC7E,MAAMe,oBAAoBf;QAE1B,IAAIW,6CAA6C;YAC7CtB,UAAUA,CAACsB,4CAA4C,QAAQ,EAAEI;QACrE;IACJ;AACJ;AAEA,SAASW;IACL,6DAA6D;IAC7D,aAAa;IACb,IAAIC,WAAW,qDAAqD,EAAE;QAClE,6DAA6D;QAC7D,aAAa;QACb,OAAOA,WAAW,qDAAqD;IAC3E;IAEA,8CAA8C;IAC9C,6DAA6D;IAC7D,aAAa;IACb,OAAOA,WAAW,mDAAmD;AACzE;AAEO,SAASC,iCAAiCrC,OAAuB;IACpE,MAAMsC,mCAAmCH;IAEzC,IAAIG,kCAAkC;QAClC9C,uBAAuBA;QAEvB,MAAM+C,6BAA6BhD,mDAAmDA,CAACS,QAAQ,MAAM;QAErG,+EAA+E;QAC/E,gEAAgE;QAChEsC,iCAAiCC;IACrC,OAAO;QACHvC,QAAQ,MAAM,CAAC,OAAO,CAAC;IAC3B;IAEAW,0BAA0BX;AAC9B"}
|
|
1
|
+
{"version":3,"file":"honeycomb/registerHoneycombInstrumentation.js","sources":["webpack://@squide/firefly/./src/honeycomb/registerHoneycombInstrumentation.ts"],"sourcesContent":["import type { Span } from \"@opentelemetry/api\";\nimport {\n type AddListenerOptions,\n type EventCallbackFunction,\n type EventName,\n LocalModuleDeferredRegistrationFailedEvent,\n LocalModuleDeferredRegistrationUpdateFailedEvent,\n LocalModuleRegistrationFailedEvent,\n LocalModulesDeferredRegistrationCompletedEvent,\n type LocalModulesDeferredRegistrationCompletedEventPayload,\n LocalModulesDeferredRegistrationStartedEvent,\n type LocalModulesDeferredRegistrationStartedEventPayload,\n LocalModulesDeferredRegistrationsUpdateCompletedEvent,\n type LocalModulesDeferredRegistrationsUpdateCompletedEventPayload,\n LocalModulesDeferredRegistrationsUpdateStartedEvent,\n type LocalModulesDeferredRegistrationsUpdateStartedEventPayload,\n LocalModulesRegistrationCompletedEvent,\n type LocalModulesRegistrationCompletedEventPayload,\n LocalModulesRegistrationStartedEvent,\n type LocalModulesRegistrationStartedEventPayload,\n type ModuleRegistrationError\n} from \"@squide/core\";\nimport {\n DeferredRegistrationsUpdateCompletedEvent,\n DeferredRegistrationsUpdateStartedEvent,\n RemoteModuleDeferredRegistrationFailedEvent,\n RemoteModuleDeferredRegistrationUpdateFailedEvent,\n type RemoteModuleRegistrationError,\n RemoteModuleRegistrationFailedEvent,\n RemoteModulesDeferredRegistrationCompletedEvent,\n type RemoteModulesDeferredRegistrationCompletedEventPayload,\n RemoteModulesDeferredRegistrationStartedEvent,\n type RemoteModulesDeferredRegistrationStartedEventPayload,\n RemoteModulesDeferredRegistrationsUpdateCompletedEvent,\n type RemoteModulesDeferredRegistrationsUpdateCompletedEventPayload,\n RemoteModulesDeferredRegistrationsUpdateStartedEvent,\n type RemoteModulesDeferredRegistrationsUpdateStartedEventPayload,\n RemoteModulesRegistrationCompletedEvent,\n type RemoteModulesRegistrationCompletedEventPayload,\n RemoteModulesRegistrationStartedEvent,\n type RemoteModulesRegistrationStartedEventPayload\n} from \"@squide/module-federation\";\nimport { ApplicationBoostrappedEvent, type AppRouterWaitState, ModulesReadyEvent, ModulesRegisteredEvent, MswReadyEvent, ProtectedDataReadyEvent, PublicDataReadyEvent } from \"../AppRouterReducer.ts\";\nimport type { FireflyRuntime } from \"../FireflyRuntime.tsx\";\nimport { ApplicationBootstrappingStartedEvent } from \"../initializeFirefly.ts\";\nimport { ProtectedDataFetchFailedEvent, ProtectedDataFetchStartedEvent } from \"../useProtectedDataQueries.ts\";\nimport { PublicDataFetchFailedEvent, PublicDataFetchStartedEvent } from \"../usePublicDataQueries.ts\";\nimport { type ActiveSpan, createOverrideFetchRequestSpanWithActiveSpanContext, registerActiveSpanStack } from \"./activeSpan.ts\";\nimport { getTracer } from \"./tracer.ts\";\nimport { endActiveSpan, startActiveChildSpan, startChildSpan, startSpan, traceError } from \"./utils.ts\";\n\n// TIPS:\n// To query those traces in Honeycomb, use the following query filter: \"root.name = squide-bootstrapping\".\n\ninterface AddProtectedListenerOptions extends AddListenerOptions {\n onError?: (error: unknown) => void;\n}\n\nfunction addProtectedListener(runtime: FireflyRuntime, eventName: EventName, callback: EventCallbackFunction, options?: AddProtectedListenerOptions) {\n const protectedCallback = (...args: unknown[]) => {\n try {\n callback(...args);\n } catch (error: unknown) {\n runtime.logger\n .withText(`[squide] An unmanaged error occurred while handling event \"${eventName.toString()}\" for Honeycomb instrumentation:`)\n .withError(error as Error)\n .error();\n }\n };\n\n runtime.eventBus.addListener(eventName, protectedCallback, options);\n}\n\ntype DataFetchState = \"none\" | \"fetching-data\" | \"public-data-ready\" | \"protected-data-ready\" | \"data-ready\" | \"data-fetch-failed\";\n\nexport function reduceDataFetchEvents(\n runtime: FireflyRuntime,\n onDataFetchStarted: () => void,\n onDataReady: () => void,\n onPublicDataFetchStarted: () => void,\n onPublicDataReady: () => void,\n onProtectedDataFetchStarted: () => void,\n onProtectedDataReady: () => void,\n onDataFetchFailed: (queriesErrors: Error[]) => void,\n onUnmanagedError: (error: unknown) => void\n) {\n let dataFetchState: DataFetchState = \"none\";\n\n addProtectedListener(runtime, PublicDataFetchStartedEvent, () => {\n if (dataFetchState === \"none\") {\n dataFetchState = \"fetching-data\";\n onDataFetchStarted();\n }\n\n onPublicDataFetchStarted();\n }, {\n once: true,\n onError: onUnmanagedError\n });\n\n addProtectedListener(runtime, PublicDataReadyEvent, payload => {\n onPublicDataReady();\n\n if (dataFetchState === \"fetching-data\") {\n if (payload && !(payload as AppRouterWaitState).waitForProtectedData) {\n dataFetchState = \"data-ready\";\n onDataReady();\n } else {\n dataFetchState = \"public-data-ready\";\n }\n } else if (dataFetchState === \"protected-data-ready\") {\n dataFetchState = \"data-ready\";\n onDataReady();\n }\n }, {\n once: true,\n onError: onUnmanagedError\n });\n\n addProtectedListener(runtime, ProtectedDataFetchStartedEvent, () => {\n if (dataFetchState === \"none\") {\n dataFetchState = \"fetching-data\";\n onDataFetchStarted();\n }\n\n onProtectedDataFetchStarted();\n }, {\n once: true,\n onError: onUnmanagedError\n });\n\n addProtectedListener(runtime, ProtectedDataReadyEvent, payload => {\n onProtectedDataReady();\n\n if (dataFetchState === \"fetching-data\") {\n if (payload && !(payload as AppRouterWaitState).waitForPublicData) {\n dataFetchState = \"data-ready\";\n onDataReady();\n } else {\n dataFetchState = \"protected-data-ready\";\n }\n } else if (dataFetchState === \"public-data-ready\") {\n dataFetchState = \"data-ready\";\n onDataReady();\n }\n }, {\n once: true,\n onError: onUnmanagedError\n });\n\n const handleDataFetchFailed = (payload: unknown) => {\n if (dataFetchState !== \"data-fetch-failed\") {\n dataFetchState = \"data-fetch-failed\";\n\n onDataFetchFailed(payload as Error[]);\n }\n };\n\n addProtectedListener(runtime, PublicDataFetchFailedEvent, handleDataFetchFailed, {\n once: true,\n onError: onUnmanagedError\n });\n\n addProtectedListener(runtime, ProtectedDataFetchFailedEvent, handleDataFetchFailed, {\n once: true,\n onError: onUnmanagedError\n });\n}\n\nfunction registerTrackingListeners(runtime: FireflyRuntime) {\n let bootstrappingSpan: Span;\n let bootstrappingSpanHasEnded: boolean = false;\n let localModuleRegistrationSpan: Span;\n let localModuleDeferredRegistrationSpan: Span;\n let remoteModuleRegistrationSpan: Span;\n let remoteModuleDeferredRegistrationSpan: Span;\n let dataFetchSpan: ActiveSpan;\n let deferredRegistrationsUpdateSpan: Span;\n let localModuleDeferredRegistrationsUpdateSpan: ActiveSpan;\n let remoteModuleDeferredRegistrationsUpdateSpan: ActiveSpan;\n\n const handleUnmanagedError = (error: unknown) => {\n if (bootstrappingSpan && !bootstrappingSpanHasEnded) {\n traceError(bootstrappingSpan, error as Error);\n\n bootstrappingSpan.end();\n bootstrappingSpanHasEnded = true;\n }\n\n if (localModuleRegistrationSpan) {\n localModuleRegistrationSpan.end();\n }\n\n if (localModuleDeferredRegistrationSpan) {\n localModuleDeferredRegistrationSpan.end();\n }\n\n if (remoteModuleRegistrationSpan) {\n remoteModuleRegistrationSpan.end();\n }\n\n if (remoteModuleDeferredRegistrationSpan) {\n remoteModuleDeferredRegistrationSpan.end();\n }\n\n if (dataFetchSpan) {\n dataFetchSpan.instance.end();\n }\n\n if (deferredRegistrationsUpdateSpan) {\n deferredRegistrationsUpdateSpan.end();\n }\n\n if (localModuleDeferredRegistrationsUpdateSpan) {\n localModuleDeferredRegistrationsUpdateSpan.instance.end();\n }\n\n if (remoteModuleDeferredRegistrationsUpdateSpan) {\n remoteModuleDeferredRegistrationsUpdateSpan.instance.end();\n }\n };\n\n addProtectedListener(runtime, ApplicationBootstrappingStartedEvent, () => {\n bootstrappingSpan = startSpan((options, context) => getTracer().startSpan(\"squide-bootstrapping\", options, context));\n }, {\n once: true,\n onError: handleUnmanagedError\n });\n\n addProtectedListener(runtime, ApplicationBoostrappedEvent, () => {\n if (bootstrappingSpan) {\n bootstrappingSpan.end();\n bootstrappingSpanHasEnded = true;\n }\n }, {\n once: true,\n onError: handleUnmanagedError\n });\n\n addProtectedListener(runtime, MswReadyEvent, () => {\n if (bootstrappingSpan) {\n bootstrappingSpan.addEvent(\"msw-ready\");\n }\n }, {\n once: true,\n onError: handleUnmanagedError\n });\n\n addProtectedListener(runtime, LocalModulesRegistrationStartedEvent, (payload: unknown) => {\n const attributes = {\n \"app.squide.module_count\": (payload as LocalModulesRegistrationStartedEventPayload).moduleCount\n };\n\n if (bootstrappingSpan) {\n bootstrappingSpan.addEvent(\"local-module-registration-started\", attributes);\n }\n\n localModuleRegistrationSpan = startChildSpan(bootstrappingSpan, (options, context) => {\n return getTracer().startSpan(\"local-module-registration\", { ...options, attributes }, context);\n });\n }, {\n once: true,\n onError: handleUnmanagedError\n });\n\n addProtectedListener(runtime, LocalModulesRegistrationCompletedEvent, (payload: unknown) => {\n if (bootstrappingSpan) {\n bootstrappingSpan.addEvent(\"local-module-registration-completed\", {\n \"app.squide.module_count\": (payload as LocalModulesRegistrationCompletedEventPayload).moduleCount\n });\n }\n\n if (localModuleRegistrationSpan) {\n localModuleRegistrationSpan.end();\n }\n }, {\n once: true,\n onError: handleUnmanagedError\n });\n\n // Can occur multiple times.\n addProtectedListener(runtime, LocalModuleRegistrationFailedEvent, (payload: unknown) => {\n const registrationError = payload as ModuleRegistrationError;\n\n if (localModuleRegistrationSpan) {\n traceError(localModuleRegistrationSpan, registrationError);\n }\n }, {\n onError: handleUnmanagedError\n });\n\n addProtectedListener(runtime, LocalModulesDeferredRegistrationStartedEvent, (payload: unknown) => {\n const attributes = {\n \"app.squide.registration_count\": (payload as LocalModulesDeferredRegistrationStartedEventPayload).registrationCount\n };\n\n if (bootstrappingSpan) {\n bootstrappingSpan.addEvent(\"local-module-deferred-registration-started\", attributes);\n }\n\n localModuleDeferredRegistrationSpan = startChildSpan(bootstrappingSpan, (options, context) => {\n return getTracer().startSpan(\"local-module-deferred-registration\", { ...options, attributes }, context);\n });\n }, {\n once: true,\n onError: handleUnmanagedError\n });\n\n addProtectedListener(runtime, LocalModulesDeferredRegistrationCompletedEvent, (payload: unknown) => {\n if (bootstrappingSpan) {\n bootstrappingSpan.addEvent(\"local-module-deferred-registration-completed\", {\n \"app.squide.registration_count\": (payload as LocalModulesDeferredRegistrationCompletedEventPayload).registrationCount\n });\n }\n\n if (localModuleDeferredRegistrationSpan) {\n localModuleDeferredRegistrationSpan.end();\n }\n }, {\n once: true,\n onError: handleUnmanagedError\n });\n\n // Can occur multiple times.\n addProtectedListener(runtime, LocalModuleDeferredRegistrationFailedEvent, (payload: unknown) => {\n const registrationError = payload as ModuleRegistrationError;\n\n if (localModuleDeferredRegistrationSpan) {\n traceError(localModuleRegistrationSpan, registrationError);\n }\n }, {\n onError: handleUnmanagedError\n });\n\n addProtectedListener(runtime, RemoteModulesRegistrationStartedEvent, (payload: unknown) => {\n const attributes = {\n \"app.squide.remote_count\": (payload as RemoteModulesRegistrationStartedEventPayload).remoteCount\n };\n\n if (bootstrappingSpan) {\n bootstrappingSpan.addEvent(\"remote-module-registration-started\", attributes);\n }\n\n remoteModuleRegistrationSpan = startChildSpan(bootstrappingSpan, (options, context) => {\n return getTracer().startSpan(\"remote-module-registration\", { ...options, attributes }, context);\n });\n }, {\n once: true,\n onError: handleUnmanagedError\n });\n\n addProtectedListener(runtime, RemoteModulesRegistrationCompletedEvent, (payload: unknown) => {\n if (bootstrappingSpan) {\n bootstrappingSpan.addEvent(\"remote-module-registration-completed\", {\n \"app.squide.remote_count\": (payload as RemoteModulesRegistrationCompletedEventPayload).remoteCount\n });\n }\n\n if (remoteModuleRegistrationSpan) {\n remoteModuleRegistrationSpan.end();\n }\n }, {\n once: true,\n onError: handleUnmanagedError\n });\n\n // Can occur multiple times.\n addProtectedListener(runtime, RemoteModuleRegistrationFailedEvent, (payload: unknown) => {\n const registrationError = payload as RemoteModuleRegistrationError;\n\n if (remoteModuleRegistrationSpan) {\n traceError(remoteModuleRegistrationSpan, registrationError);\n }\n }, {\n onError: handleUnmanagedError\n });\n\n addProtectedListener(runtime, RemoteModulesDeferredRegistrationStartedEvent, (payload: unknown) => {\n const attributes = {\n \"app.squide.registration_count\": (payload as RemoteModulesDeferredRegistrationStartedEventPayload).registrationCount\n };\n\n if (bootstrappingSpan) {\n bootstrappingSpan.addEvent(\"remote-module-deferred-registration-started\", attributes);\n }\n\n remoteModuleDeferredRegistrationSpan = startChildSpan(bootstrappingSpan, (options, context) => {\n return getTracer().startSpan(\"remote-module-deferred-registration\", { ...options, attributes }, context);\n });\n }, {\n once: true,\n onError: handleUnmanagedError\n });\n\n addProtectedListener(runtime, RemoteModulesDeferredRegistrationCompletedEvent, (payload: unknown) => {\n if (bootstrappingSpan) {\n bootstrappingSpan.addEvent(\"remote-module-deferred-registration-completed\", {\n \"app.squide.registration_count\": (payload as RemoteModulesDeferredRegistrationCompletedEventPayload).registrationCount\n });\n }\n\n if (remoteModuleDeferredRegistrationSpan) {\n remoteModuleDeferredRegistrationSpan.end();\n }\n }, {\n once: true,\n onError: handleUnmanagedError\n });\n\n // Can occur multiple times.\n addProtectedListener(runtime, RemoteModuleDeferredRegistrationFailedEvent, (payload: unknown) => {\n const registrationError = payload as RemoteModuleRegistrationError;\n\n if (remoteModuleDeferredRegistrationSpan) {\n traceError(remoteModuleDeferredRegistrationSpan, registrationError);\n }\n }, {\n onError: handleUnmanagedError\n });\n\n const handleFetchDataStarted = () => {\n dataFetchSpan = startActiveChildSpan(bootstrappingSpan, (options, context) => {\n const name = \"data-fetch\";\n const span = getTracer().startSpan(name, options, context);\n\n return {\n name,\n span\n };\n });\n };\n\n const handleDataReady = () => {\n if (dataFetchSpan) {\n endActiveSpan(dataFetchSpan);\n }\n };\n\n const handlePublicDataFetchStarted = () => {\n if (dataFetchSpan) {\n dataFetchSpan.instance.addEvent(\"public-data-fetch-started\");\n }\n };\n\n const handlePublicDataReady = () => {\n if (dataFetchSpan) {\n dataFetchSpan.instance.addEvent(\"public-data-ready\");\n }\n };\n\n const handleProtectedDataFetchStarted = () => {\n if (dataFetchSpan) {\n dataFetchSpan.instance.addEvent(\"protected-data-fetch-started\");\n }\n };\n\n const handleProtectedDataReady = () => {\n if (dataFetchSpan) {\n dataFetchSpan.instance.addEvent(\"protected-data-ready\");\n }\n };\n\n const handleDataFetchFailed = (queriesErrors: Error[]) => {\n if (dataFetchSpan) {\n queriesErrors.forEach(x => {\n traceError(dataFetchSpan.instance, x);\n });\n\n endActiveSpan(dataFetchSpan);\n\n // Global data fetch errors are unmanaged, which mean the host application bootstrapping flow\n // will be aborted and a react-router error boundary will be rendered.\n if (bootstrappingSpan) {\n bootstrappingSpan.end();\n bootstrappingSpanHasEnded = true;\n }\n }\n };\n\n reduceDataFetchEvents(\n runtime,\n handleFetchDataStarted,\n handleDataReady,\n handlePublicDataFetchStarted,\n handlePublicDataReady,\n handleProtectedDataFetchStarted,\n handleProtectedDataReady,\n handleDataFetchFailed,\n handleUnmanagedError\n );\n\n addProtectedListener(runtime, ModulesRegisteredEvent, () => {\n if (bootstrappingSpan) {\n bootstrappingSpan.addEvent(\"modules-registered\");\n }\n }, {\n once: true,\n onError: handleUnmanagedError\n });\n\n addProtectedListener(runtime, ModulesReadyEvent, () => {\n if (bootstrappingSpan) {\n bootstrappingSpan.addEvent(\"modules-ready\");\n }\n }, {\n once: true,\n onError: handleUnmanagedError\n });\n\n // Can occur multiple times.\n addProtectedListener(runtime, DeferredRegistrationsUpdateStartedEvent, () => {\n deferredRegistrationsUpdateSpan = startSpan((options, context) => getTracer().startSpan(\"squide-deferred-registrations-update\", options, context));\n }, {\n onError: handleUnmanagedError\n });\n\n // Can occur multiple times.\n addProtectedListener(runtime, DeferredRegistrationsUpdateCompletedEvent, () => {\n if (deferredRegistrationsUpdateSpan) {\n deferredRegistrationsUpdateSpan.end();\n }\n }, {\n onError: handleUnmanagedError\n });\n\n // Can occur multiple times.\n addProtectedListener(runtime, LocalModulesDeferredRegistrationsUpdateStartedEvent, (payload: unknown) => {\n const attributes = {\n \"app.squide.registration_count\": (payload as LocalModulesDeferredRegistrationsUpdateStartedEventPayload).registrationCount\n };\n\n if (deferredRegistrationsUpdateSpan) {\n deferredRegistrationsUpdateSpan.addEvent(\"local-module-deferred-registrations-update-started\", attributes);\n }\n\n localModuleDeferredRegistrationsUpdateSpan = startActiveChildSpan(deferredRegistrationsUpdateSpan, (options, context) => {\n const name = \"local-module-deferred-registrations-update\";\n\n const span = getTracer().startSpan(name, {\n attributes,\n ...options\n }, context);\n\n return {\n name,\n span\n };\n });\n }, {\n onError: handleUnmanagedError\n });\n\n // Can occur multiple times.\n addProtectedListener(runtime, LocalModulesDeferredRegistrationsUpdateCompletedEvent, (payload: unknown) => {\n if (deferredRegistrationsUpdateSpan) {\n deferredRegistrationsUpdateSpan.addEvent(\"local-module-deferred-registrations-update-completed\", {\n \"app.squide.registration_count\": (payload as LocalModulesDeferredRegistrationsUpdateCompletedEventPayload).registrationCount\n });\n }\n\n if (localModuleDeferredRegistrationsUpdateSpan) {\n endActiveSpan(localModuleDeferredRegistrationsUpdateSpan);\n }\n }, {\n onError: handleUnmanagedError\n });\n\n // Can occur multiple times.\n addProtectedListener(runtime, LocalModuleDeferredRegistrationUpdateFailedEvent, (payload: unknown) => {\n const registrationError = payload as ModuleRegistrationError;\n\n if (localModuleDeferredRegistrationsUpdateSpan) {\n traceError(localModuleDeferredRegistrationsUpdateSpan.instance, registrationError);\n }\n }, {\n onError: handleUnmanagedError\n });\n\n // Can occur multiple times.\n addProtectedListener(runtime, RemoteModulesDeferredRegistrationsUpdateStartedEvent, (payload: unknown) => {\n const attributes = {\n \"app.squide.registration_count\": (payload as RemoteModulesDeferredRegistrationsUpdateStartedEventPayload).registrationCount\n };\n\n if (deferredRegistrationsUpdateSpan) {\n deferredRegistrationsUpdateSpan.addEvent(\"remote-module-deferred-registrations-update-started\", attributes);\n }\n\n remoteModuleDeferredRegistrationsUpdateSpan = startActiveChildSpan(deferredRegistrationsUpdateSpan, (options, context) => {\n const name = \"remote-module-deferred-registrations-update\";\n\n const span = getTracer().startSpan(name, {\n attributes,\n ...options\n }, context);\n\n return {\n name,\n span\n };\n });\n }, {\n onError: handleUnmanagedError\n });\n\n // Can occur multiple times.\n addProtectedListener(runtime, RemoteModulesDeferredRegistrationsUpdateCompletedEvent, (payload: unknown) => {\n if (deferredRegistrationsUpdateSpan) {\n deferredRegistrationsUpdateSpan.addEvent(\"remote-module-deferred-registrations-update-completed\", {\n \"app.squide.registration_count\": (payload as RemoteModulesDeferredRegistrationsUpdateCompletedEventPayload).registrationCount\n });\n }\n\n if (remoteModuleDeferredRegistrationsUpdateSpan) {\n endActiveSpan(remoteModuleDeferredRegistrationsUpdateSpan);\n }\n }, {\n onError: handleUnmanagedError\n });\n\n // Can occur multiple times.\n addProtectedListener(runtime, RemoteModuleDeferredRegistrationUpdateFailedEvent, (payload: unknown) => {\n const registrationError = payload as RemoteModuleRegistrationError;\n\n if (remoteModuleDeferredRegistrationsUpdateSpan) {\n traceError(remoteModuleDeferredRegistrationsUpdateSpan.instance, registrationError);\n }\n }, {\n onError: handleUnmanagedError\n });\n}\n\nfunction getRegisterFetchRequestHookFunction() {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n if (globalThis.__WLP_HONEYCOMB_REGISTER_DYNAMIC_FETCH_REQUEST_HOOK__) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return globalThis.__WLP_HONEYCOMB_REGISTER_DYNAMIC_FETCH_REQUEST_HOOK__;\n }\n\n // Fallback to fix an error. Will remove soon.\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return globalThis.__WLP_HONEYCOMB_REGISTER_DYNAMIC_FETCH_REQUEST_HOOK;\n}\n\nexport function registerHoneycombInstrumentation(runtime: FireflyRuntime) {\n try {\n const registerFetchRequestHookFunction = getRegisterFetchRequestHookFunction();\n\n if (registerFetchRequestHookFunction) {\n registerActiveSpanStack();\n\n const activeSpanOverrideFunction = createOverrideFetchRequestSpanWithActiveSpanContext(runtime.logger);\n\n // Dynamically registering this request hook function to nest the HTTP requests\n // of squide bootstrapping under the appropriate Honeycomb span.\n registerFetchRequestHookFunction(activeSpanOverrideFunction);\n } else {\n runtime.logger.warning(\"[squide] Cannot register Honeycomb fetch request hook because \\\"globalThis.__WLP_HONEYCOMB_REGISTER_DYNAMIC_FETCH_REQUEST_HOOK__\\\" is not available. Honeycomb instrumentation is still functional but in degraded mode.\");\n }\n\n registerTrackingListeners(runtime);\n } catch (error: unknown) {\n runtime.logger\n .withText(\"[squide] An error occurred while registering Honeycomb instrumentation:\")\n .withError(error as Error)\n .error();\n }\n}\n"],"names":["LocalModuleDeferredRegistrationFailedEvent","LocalModuleDeferredRegistrationUpdateFailedEvent","LocalModuleRegistrationFailedEvent","LocalModulesDeferredRegistrationCompletedEvent","LocalModulesDeferredRegistrationStartedEvent","LocalModulesDeferredRegistrationsUpdateCompletedEvent","LocalModulesDeferredRegistrationsUpdateStartedEvent","LocalModulesRegistrationCompletedEvent","LocalModulesRegistrationStartedEvent","DeferredRegistrationsUpdateCompletedEvent","DeferredRegistrationsUpdateStartedEvent","RemoteModuleDeferredRegistrationFailedEvent","RemoteModuleDeferredRegistrationUpdateFailedEvent","RemoteModuleRegistrationFailedEvent","RemoteModulesDeferredRegistrationCompletedEvent","RemoteModulesDeferredRegistrationStartedEvent","RemoteModulesDeferredRegistrationsUpdateCompletedEvent","RemoteModulesDeferredRegistrationsUpdateStartedEvent","RemoteModulesRegistrationCompletedEvent","RemoteModulesRegistrationStartedEvent","ApplicationBoostrappedEvent","ModulesReadyEvent","ModulesRegisteredEvent","MswReadyEvent","ProtectedDataReadyEvent","PublicDataReadyEvent","ApplicationBootstrappingStartedEvent","ProtectedDataFetchFailedEvent","ProtectedDataFetchStartedEvent","PublicDataFetchFailedEvent","PublicDataFetchStartedEvent","createOverrideFetchRequestSpanWithActiveSpanContext","registerActiveSpanStack","getTracer","endActiveSpan","startActiveChildSpan","startChildSpan","startSpan","traceError","addProtectedListener","runtime","eventName","callback","options","protectedCallback","args","error","reduceDataFetchEvents","onDataFetchStarted","onDataReady","onPublicDataFetchStarted","onPublicDataReady","onProtectedDataFetchStarted","onProtectedDataReady","onDataFetchFailed","onUnmanagedError","dataFetchState","payload","handleDataFetchFailed","registerTrackingListeners","bootstrappingSpan","bootstrappingSpanHasEnded","localModuleRegistrationSpan","localModuleDeferredRegistrationSpan","remoteModuleRegistrationSpan","remoteModuleDeferredRegistrationSpan","dataFetchSpan","deferredRegistrationsUpdateSpan","localModuleDeferredRegistrationsUpdateSpan","remoteModuleDeferredRegistrationsUpdateSpan","handleUnmanagedError","context","attributes","registrationError","handleFetchDataStarted","name","span","handleDataReady","handlePublicDataFetchStarted","handlePublicDataReady","handleProtectedDataFetchStarted","handleProtectedDataReady","queriesErrors","x","getRegisterFetchRequestHookFunction","globalThis","registerHoneycombInstrumentation","registerFetchRequestHookFunction","activeSpanOverrideFunction"],"mappings":"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"}
|