@openreplay/tracker 7.0.3 → 7.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/cjs/app/index.d.ts +1 -0
  2. package/cjs/app/index.js +4 -2
  3. package/cjs/common/interaction.d.ts +1 -0
  4. package/cjs/index.js +1 -1
  5. package/coverage/clover.xml +1412 -900
  6. package/coverage/coverage-final.json +22 -16
  7. package/coverage/lcov-report/index.html +58 -43
  8. package/coverage/lcov-report/main/app/guards.ts.html +42 -42
  9. package/coverage/lcov-report/main/app/index.html +46 -46
  10. package/coverage/lcov-report/main/app/index.ts.html +104 -8
  11. package/coverage/lcov-report/main/app/logger.ts.html +1 -1
  12. package/coverage/lcov-report/main/app/messages.gen.ts.html +146 -146
  13. package/coverage/lcov-report/main/app/observer/iframe_observer.ts.html +1 -1
  14. package/coverage/lcov-report/main/app/observer/iframe_offsets.ts.html +1 -1
  15. package/coverage/lcov-report/main/app/observer/index.html +1 -1
  16. package/coverage/lcov-report/main/app/observer/shadow_root_observer.ts.html +1 -1
  17. package/coverage/lcov-report/main/app/observer/top_observer.ts.html +1 -1
  18. package/coverage/lcov-report/main/app/sanitizer.ts.html +98 -98
  19. package/coverage/lcov-report/main/app/session.ts.html +47 -5
  20. package/coverage/lcov-report/main/app/ticker.ts.html +1 -1
  21. package/coverage/lcov-report/main/index.html +24 -24
  22. package/coverage/lcov-report/main/index.ts.html +138 -6
  23. package/coverage/lcov-report/main/modules/Network/fetchProxy.ts.html +949 -0
  24. package/coverage/lcov-report/main/{vendors/finder → modules/Network}/index.html +72 -12
  25. package/coverage/lcov-report/main/modules/Network/index.ts.html +169 -0
  26. package/coverage/lcov-report/main/{app/nodes.ts.html → modules/Network/networkMessage.ts.html} +130 -115
  27. package/coverage/lcov-report/main/modules/Network/utils.ts.html +700 -0
  28. package/coverage/lcov-report/main/modules/Network/xhrProxy.ts.html +823 -0
  29. package/coverage/lcov-report/main/modules/attributeSender.ts.html +217 -0
  30. package/coverage/lcov-report/main/modules/axiosSpy.ts.html +1 -1
  31. package/coverage/lcov-report/main/modules/connection.ts.html +1 -1
  32. package/coverage/lcov-report/main/modules/console.ts.html +174 -147
  33. package/coverage/lcov-report/main/modules/constructedStyleSheets.ts.html +1 -1
  34. package/coverage/lcov-report/main/modules/cssrules.ts.html +1 -1
  35. package/coverage/lcov-report/main/modules/exception.ts.html +1 -1
  36. package/coverage/lcov-report/main/modules/featureFlags.ts.html +415 -0
  37. package/coverage/lcov-report/main/modules/focus.ts.html +1 -1
  38. package/coverage/lcov-report/main/modules/fonts.ts.html +1 -1
  39. package/coverage/lcov-report/main/modules/img.ts.html +6 -6
  40. package/coverage/lcov-report/main/modules/index.html +54 -24
  41. package/coverage/lcov-report/main/modules/input.ts.html +1 -1
  42. package/coverage/lcov-report/main/modules/mouse.ts.html +1 -1
  43. package/coverage/lcov-report/main/modules/network.ts.html +70 -70
  44. package/coverage/lcov-report/main/modules/performance.ts.html +1 -1
  45. package/coverage/lcov-report/main/modules/scroll.ts.html +1 -1
  46. package/coverage/lcov-report/main/modules/selection.ts.html +1 -1
  47. package/coverage/lcov-report/main/modules/tabs.ts.html +1 -1
  48. package/coverage/lcov-report/main/modules/timing.ts.html +1 -1
  49. package/coverage/lcov-report/main/modules/viewport.ts.html +1 -1
  50. package/coverage/lcov-report/main/utils.ts.html +97 -97
  51. package/coverage/lcov-report/webworker/BatchWriter.ts.html +125 -176
  52. package/coverage/lcov-report/webworker/MessageEncoder.gen.ts.html +88 -88
  53. package/coverage/lcov-report/webworker/PrimitiveEncoder.ts.html +110 -110
  54. package/coverage/lcov-report/webworker/QueueSender.ts.html +140 -110
  55. package/coverage/lcov-report/webworker/index.html +56 -71
  56. package/coverage/lcov-report/webworker/index.ts.html +34 -10
  57. package/coverage/lcov.info +2525 -1553
  58. package/lib/app/index.d.ts +1 -0
  59. package/lib/app/index.js +4 -2
  60. package/lib/common/interaction.d.ts +1 -0
  61. package/lib/common/tsconfig.tsbuildinfo +1 -1
  62. package/lib/index.js +1 -1
  63. package/package.json +1 -1
  64. package/coverage/lcov-report/main/app/observer/observer.ts.html +0 -1282
  65. package/coverage/lcov-report/main/vendors/finder/finder.ts.html +0 -1381
  66. package/coverage/lcov-report/webworker/StringDictionary.ts.html +0 -124
@@ -3,15 +3,15 @@
3
3
  <html lang="en">
4
4
 
5
5
  <head>
6
- <title>Code coverage report for main/app/nodes.ts</title>
6
+ <title>Code coverage report for main/modules/Network/networkMessage.ts</title>
7
7
  <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../../prettify.css" />
9
- <link rel="stylesheet" href="../../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
8
+ <link rel="stylesheet" href="../../../prettify.css" />
9
+ <link rel="stylesheet" href="../../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
11
11
  <meta name="viewport" content="width=device-width, initial-scale=1" />
12
12
  <style type='text/css'>
13
13
  .coverage-summary .sorter {
14
- background-image: url(../../sort-arrow-sprite.png);
14
+ background-image: url(../../../sort-arrow-sprite.png);
15
15
  }
16
16
  </style>
17
17
  </head>
@@ -19,34 +19,34 @@
19
19
  <body>
20
20
  <div class='wrapper'>
21
21
  <div class='pad1'>
22
- <h1><a href="../../index.html">All files</a> / <a href="index.html">main/app</a> nodes.ts</h1>
22
+ <h1><a href="../../../index.html">All files</a> / <a href="index.html">main/modules/Network</a> networkMessage.ts</h1>
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">0% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>0/52</span>
28
+ <span class='fraction'>0/51</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/10</span>
35
+ <span class='fraction'>0/8</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/13</span>
42
+ <span class='fraction'>0/8</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">0% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>0/49</span>
49
+ <span class='fraction'>0/48</span>
50
50
  </div>
51
51
 
52
52
 
@@ -157,7 +157,17 @@
157
157
  <a name='L92'></a><a href='#L92'>92</a>
158
158
  <a name='L93'></a><a href='#L93'>93</a>
159
159
  <a name='L94'></a><a href='#L94'>94</a>
160
- <a name='L95'></a><a href='#L95'>95</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
160
+ <a name='L95'></a><a href='#L95'>95</a>
161
+ <a name='L96'></a><a href='#L96'>96</a>
162
+ <a name='L97'></a><a href='#L97'>97</a>
163
+ <a name='L98'></a><a href='#L98'>98</a>
164
+ <a name='L99'></a><a href='#L99'>99</a>
165
+ <a name='L100'></a><a href='#L100'>100</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
166
+ <span class="cline-any cline-neutral">&nbsp;</span>
167
+ <span class="cline-any cline-no">&nbsp;</span>
168
+ <span class="cline-any cline-neutral">&nbsp;</span>
169
+ <span class="cline-any cline-neutral">&nbsp;</span>
170
+ <span class="cline-any cline-neutral">&nbsp;</span>
161
171
  <span class="cline-any cline-neutral">&nbsp;</span>
162
172
  <span class="cline-any cline-neutral">&nbsp;</span>
163
173
  <span class="cline-any cline-no">&nbsp;</span>
@@ -165,50 +175,48 @@
165
175
  <span class="cline-any cline-no">&nbsp;</span>
166
176
  <span class="cline-any cline-no">&nbsp;</span>
167
177
  <span class="cline-any cline-no">&nbsp;</span>
168
- <span class="cline-any cline-neutral">&nbsp;</span>
169
178
  <span class="cline-any cline-no">&nbsp;</span>
170
179
  <span class="cline-any cline-neutral">&nbsp;</span>
171
180
  <span class="cline-any cline-neutral">&nbsp;</span>
172
181
  <span class="cline-any cline-neutral">&nbsp;</span>
173
- <span class="cline-any cline-no">&nbsp;</span>
182
+ <span class="cline-any cline-neutral">&nbsp;</span>
183
+ <span class="cline-any cline-neutral">&nbsp;</span>
174
184
  <span class="cline-any cline-neutral">&nbsp;</span>
175
185
  <span class="cline-any cline-neutral">&nbsp;</span>
176
186
  <span class="cline-any cline-no">&nbsp;</span>
177
187
  <span class="cline-any cline-no">&nbsp;</span>
178
188
  <span class="cline-any cline-no">&nbsp;</span>
179
- <span class="cline-any cline-neutral">&nbsp;</span>
180
189
  <span class="cline-any cline-no">&nbsp;</span>
181
190
  <span class="cline-any cline-no">&nbsp;</span>
182
191
  <span class="cline-any cline-no">&nbsp;</span>
183
192
  <span class="cline-any cline-no">&nbsp;</span>
184
193
  <span class="cline-any cline-no">&nbsp;</span>
185
- <span class="cline-any cline-neutral">&nbsp;</span>
186
194
  <span class="cline-any cline-no">&nbsp;</span>
187
- <span class="cline-any cline-neutral">&nbsp;</span>
188
- <span class="cline-any cline-neutral">&nbsp;</span>
195
+ <span class="cline-any cline-no">&nbsp;</span>
196
+ <span class="cline-any cline-no">&nbsp;</span>
189
197
  <span class="cline-any cline-neutral">&nbsp;</span>
190
198
  <span class="cline-any cline-no">&nbsp;</span>
199
+ <span class="cline-any cline-neutral">&nbsp;</span>
191
200
  <span class="cline-any cline-no">&nbsp;</span>
192
201
  <span class="cline-any cline-no">&nbsp;</span>
193
202
  <span class="cline-any cline-no">&nbsp;</span>
194
203
  <span class="cline-any cline-no">&nbsp;</span>
195
204
  <span class="cline-any cline-no">&nbsp;</span>
196
205
  <span class="cline-any cline-no">&nbsp;</span>
197
- <span class="cline-any cline-neutral">&nbsp;</span>
198
206
  <span class="cline-any cline-no">&nbsp;</span>
199
207
  <span class="cline-any cline-neutral">&nbsp;</span>
200
208
  <span class="cline-any cline-neutral">&nbsp;</span>
201
209
  <span class="cline-any cline-no">&nbsp;</span>
202
210
  <span class="cline-any cline-no">&nbsp;</span>
203
211
  <span class="cline-any cline-no">&nbsp;</span>
204
- <span class="cline-any cline-no">&nbsp;</span>
205
- <span class="cline-any cline-no">&nbsp;</span>
206
- <span class="cline-any cline-no">&nbsp;</span>
207
- <span class="cline-any cline-no">&nbsp;</span>
212
+ <span class="cline-any cline-neutral">&nbsp;</span>
213
+ <span class="cline-any cline-neutral">&nbsp;</span>
214
+ <span class="cline-any cline-neutral">&nbsp;</span>
208
215
  <span class="cline-any cline-no">&nbsp;</span>
209
216
  <span class="cline-any cline-no">&nbsp;</span>
210
217
  <span class="cline-any cline-neutral">&nbsp;</span>
211
218
  <span class="cline-any cline-neutral">&nbsp;</span>
219
+ <span class="cline-any cline-neutral">&nbsp;</span>
212
220
  <span class="cline-any cline-no">&nbsp;</span>
213
221
  <span class="cline-any cline-neutral">&nbsp;</span>
214
222
  <span class="cline-any cline-no">&nbsp;</span>
@@ -220,26 +228,25 @@
220
228
  <span class="cline-any cline-neutral">&nbsp;</span>
221
229
  <span class="cline-any cline-neutral">&nbsp;</span>
222
230
  <span class="cline-any cline-no">&nbsp;</span>
223
- <span class="cline-any cline-no">&nbsp;</span>
224
- <span class="cline-any cline-no">&nbsp;</span>
225
- <span class="cline-any cline-no">&nbsp;</span>
226
231
  <span class="cline-any cline-neutral">&nbsp;</span>
227
232
  <span class="cline-any cline-neutral">&nbsp;</span>
228
233
  <span class="cline-any cline-neutral">&nbsp;</span>
229
234
  <span class="cline-any cline-neutral">&nbsp;</span>
230
- <span class="cline-any cline-no">&nbsp;</span>
231
235
  <span class="cline-any cline-neutral">&nbsp;</span>
232
236
  <span class="cline-any cline-neutral">&nbsp;</span>
233
- <span class="cline-any cline-no">&nbsp;</span>
234
237
  <span class="cline-any cline-neutral">&nbsp;</span>
235
238
  <span class="cline-any cline-neutral">&nbsp;</span>
236
- <span class="cline-any cline-no">&nbsp;</span>
237
239
  <span class="cline-any cline-neutral">&nbsp;</span>
238
240
  <span class="cline-any cline-neutral">&nbsp;</span>
239
241
  <span class="cline-any cline-neutral">&nbsp;</span>
240
- <span class="cline-any cline-no">&nbsp;</span>
241
242
  <span class="cline-any cline-neutral">&nbsp;</span>
243
+ <span class="cline-any cline-no">&nbsp;</span>
244
+ <span class="cline-any cline-no">&nbsp;</span>
245
+ <span class="cline-any cline-no">&nbsp;</span>
246
+ <span class="cline-any cline-no">&nbsp;</span>
242
247
  <span class="cline-any cline-neutral">&nbsp;</span>
248
+ <span class="cline-any cline-no">&nbsp;</span>
249
+ <span class="cline-any cline-no">&nbsp;</span>
243
250
  <span class="cline-any cline-neutral">&nbsp;</span>
244
251
  <span class="cline-any cline-no">&nbsp;</span>
245
252
  <span class="cline-any cline-no">&nbsp;</span>
@@ -248,101 +255,109 @@
248
255
  <span class="cline-any cline-neutral">&nbsp;</span>
249
256
  <span class="cline-any cline-no">&nbsp;</span>
250
257
  <span class="cline-any cline-neutral">&nbsp;</span>
258
+ <span class="cline-any cline-neutral">&nbsp;</span>
259
+ <span class="cline-any cline-neutral">&nbsp;</span>
260
+ <span class="cline-any cline-no">&nbsp;</span>
251
261
  <span class="cline-any cline-no">&nbsp;</span>
252
262
  <span class="cline-any cline-neutral">&nbsp;</span>
253
263
  <span class="cline-any cline-neutral">&nbsp;</span>
254
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">type NodeCallback = (node: Node, isStart: boolean) =&gt; void
255
- type ElementListener = [string, EventListener, boolean]
264
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js"><span class="cstat-no" title="statement not covered" >import { NetworkRequest } from '../../app/messages.gen.js'</span>
265
+ import { RequestResponseData } from './types.js'
266
+ <span class="cstat-no" title="statement not covered" >import { getTimeOrigin } from '../../utils.js'</span>
256
267
  &nbsp;
257
- <span class="cstat-no" title="statement not covered" >export default class N</span>odes {
258
- private <span class="cstat-no" title="statement not covered" >nodes: Array&lt;Node | void&gt; = []</span>
259
- private <span class="cstat-no" title="statement not covered" >totalNodeAmount = 0</span>
260
- private readonly <span class="cstat-no" title="statement not covered" >nodeCallbacks: Array&lt;NodeCallback&gt; = []</span>
261
- private readonly <span class="cstat-no" title="statement not covered" >elementListeners: Map&lt;number, Array&lt;ElementListener&gt;&gt; = new Map()</span>
268
+ export type httpMethod =
269
+ // '' is a rare case of error
270
+ '' | 'GET' | 'POST' | 'PUT' | 'DELETE' | 'HEAD' | 'CONNECT' | 'OPTIONS' | 'TRACE' | 'PATCH'
262
271
  &nbsp;
263
- <span class="fstat-no" title="function not covered" > constructor(private readonly <span class="cstat-no" title="statement not covered" >n</span>ode_id: string)</span> {}
272
+ <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >export enum R</span>equestState {</span>
273
+ <span class="cstat-no" title="statement not covered" > UNSENT = 0,</span>
274
+ <span class="cstat-no" title="statement not covered" > OPENED = 1,</span>
275
+ <span class="cstat-no" title="statement not covered" > HEADERS_RECEIVED = 2,</span>
276
+ <span class="cstat-no" title="statement not covered" > LOADING = 3,</span>
277
+ <span class="cstat-no" title="statement not covered" > DONE = 4,</span>
278
+ }
264
279
  &nbsp;
265
- // Attached once per Tracker instance
266
- <span class="fstat-no" title="function not covered" > attachNodeCallback(</span>nodeCallback: NodeCallback): void {
267
- <span class="cstat-no" title="statement not covered" > this.nodeCallbacks.push(nodeCallback)</span>
268
- }
269
- <span class="fstat-no" title="function not covered" > attachNodeListener(</span>node: Node, type: string, listener: EventListener, useCapture = <span class="branch-0 cbranch-no" title="branch not covered" >true)</span>: void {
270
- const id = <span class="cstat-no" title="statement not covered" >this.getID(node)</span>
271
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (id === undefined) {</span>
272
- <span class="cstat-no" title="statement not covered" > return</span>
273
- }
274
- <span class="cstat-no" title="statement not covered" > node.addEventListener(type, listener, useCapture)</span>
275
- let listeners = <span class="cstat-no" title="statement not covered" >this.elementListeners.get(id)</span>
276
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (listeners === undefined) {</span>
277
- <span class="cstat-no" title="statement not covered" > listeners = []</span>
278
- <span class="cstat-no" title="statement not covered" > this.elementListeners.set(id, listeners)</span>
279
- }
280
- <span class="cstat-no" title="statement not covered" > listeners.push([type, listener, useCapture])</span>
281
- }
280
+ /**
281
+ * I know we're not using most of the information from this class
282
+ * but it can be useful in the future if we will decide to display more stuff in our ui
283
+ * */
282
284
  &nbsp;
283
- <span class="fstat-no" title="function not covered" > registerNode(</span>node: Node): [/*id:*/ number, /*isNew:*/ boolean] {
284
- let id: number = (<span class="cstat-no" title="statement not covered" >node as any)[this.node_id]</span>
285
- const isNew = <span class="cstat-no" title="statement not covered" >id === undefined</span>
286
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (isNew) {</span>
287
- <span class="cstat-no" title="statement not covered" > this.totalNodeAmount++</span>
288
- <span class="cstat-no" title="statement not covered" > id = this.nodes.length</span>
289
- <span class="cstat-no" title="statement not covered" > this.nodes[id] = node</span>
290
- ;(<span class="cstat-no" title="statement not covered" >node as any)[this.node_id] = id</span>
291
- }
292
- <span class="cstat-no" title="statement not covered" > return [id, isNew]</span>
293
- }
294
- <span class="fstat-no" title="function not covered" > unregisterNode(</span>node: Node): number | undefined {
295
- const id = (<span class="cstat-no" title="statement not covered" >node as any)[this.node_id]</span>
296
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (id !== undefined) {</span>
297
- <span class="cstat-no" title="statement not covered" > delete (node as any)[this.node_id]</span>
298
- <span class="cstat-no" title="statement not covered" > delete this.nodes[id]</span>
299
- const listeners = <span class="cstat-no" title="statement not covered" >this.elementListeners.get(id)</span>
300
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (listeners !== undefined) {</span>
301
- <span class="cstat-no" title="statement not covered" > this.elementListeners.delete(id)</span>
302
- <span class="cstat-no" title="statement not covered" > listeners.forEach(<span class="fstat-no" title="function not covered" >(l</span>istener) =&gt;</span>
303
- <span class="cstat-no" title="statement not covered" > node.removeEventListener(listener[0], listener[1], listener[2]),</span>
304
- )
305
- }
306
- <span class="cstat-no" title="statement not covered" > this.totalNodeAmount--</span>
307
- }
308
- <span class="cstat-no" title="statement not covered" > return id</span>
309
- }
285
+ <span class="cstat-no" title="statement not covered" >export default class N</span>etworkMessage {
286
+ <span class="cstat-no" title="statement not covered" > id = ''</span>
287
+ <span class="cstat-no" title="statement not covered" > name?: string = ''</span>
288
+ <span class="cstat-no" title="statement not covered" > method: httpMethod = ''</span>
289
+ <span class="cstat-no" title="statement not covered" > url = ''</span>
290
+ <span class="cstat-no" title="statement not covered" > status = 0</span>
291
+ <span class="cstat-no" title="statement not covered" > statusText?: string = ''</span>
292
+ <span class="cstat-no" title="statement not covered" > cancelState?: 0 | 1 | 2 | 3 = 0</span>
293
+ <span class="cstat-no" title="statement not covered" > readyState?: RequestState = 0</span>
294
+ <span class="cstat-no" title="statement not covered" > header: { [key: string]: string } = {}</span>
295
+ <span class="cstat-no" title="statement not covered" > responseType: XMLHttpRequest['responseType'] = ''</span>
296
+ requestType: 'xhr' | 'fetch' | 'ping' | 'custom'
297
+ <span class="cstat-no" title="statement not covered" > requestHeader: HeadersInit = {}</span>
298
+ response: any
299
+ <span class="cstat-no" title="statement not covered" > responseSize = 0 /</span>/ bytes
300
+ <span class="cstat-no" title="statement not covered" > responseSizeText = ''</span>
301
+ <span class="cstat-no" title="statement not covered" > startTime = 0</span>
302
+ <span class="cstat-no" title="statement not covered" > endTime = 0</span>
303
+ <span class="cstat-no" title="statement not covered" > duration = 0</span>
304
+ <span class="cstat-no" title="statement not covered" > getData: { [key: string]: string } = {}</span>
305
+ <span class="cstat-no" title="statement not covered" > requestData: string | null = null</span>
310
306
  &nbsp;
311
- <span class="fstat-no" title="function not covered" > cleanTree(</span>) {
312
- // sadly we keep empty items in array here resulting in some memory still being used
313
- // but its still better than keeping dead nodes or undef elements
314
- // plus we keep our index positions for new/alive nodes
315
- // performance test: 3ms for 30k nodes with 17k dead ones
316
- <span class="cstat-no" title="statement not covered" > for (let i = <span class="cstat-no" title="statement not covered" >0;</span> i &lt; this.nodes.length; i++) {</span>
317
- const node = <span class="cstat-no" title="statement not covered" >this.nodes[i]</span>
318
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (node &amp;&amp; !document.contains(node)) {</span>
319
- <span class="cstat-no" title="statement not covered" > this.unregisterNode(node)</span>
320
- }
307
+ <span class="fstat-no" title="function not covered" > constructor(</span>
308
+ private readonly <span class="cstat-no" title="statement not covered" >ignoredHeaders: boolean | string[] = <span class="branch-0 cbranch-no" title="branch not covered" >[</span>],</span>
309
+ private readonly <span class="cstat-no" title="statement not covered" >setSessionTokenHeader: (cb: (name: string, value: string) =&gt; void) =&gt; void,</span>
310
+ private readonly <span class="cstat-no" title="statement not covered" >sanitize: (data: RequestResponseData) =&gt; RequestResponseData,</span>
311
+ ) {}
312
+ &nbsp;
313
+ <span class="fstat-no" title="function not covered" > getMessage(</span>) {
314
+ const { reqHs, resHs } = <span class="cstat-no" title="statement not covered" >this.writeHeaders()</span>
315
+ const request = <span class="cstat-no" title="statement not covered" >{</span>
316
+ headers: reqHs,
317
+ body: this.method === 'GET' ? JSON.stringify(this.getData) : this.requestData,
321
318
  }
322
- }
323
- <span class="fstat-no" title="function not covered" > callNodeCallbacks(</span>node: Node, isStart: boolean): void {
324
- <span class="cstat-no" title="statement not covered" > this.nodeCallbacks.forEach(<span class="fstat-no" title="function not covered" >(c</span>b) =&gt; <span class="cstat-no" title="statement not covered" >cb(node, isStart))</span></span>
325
- }
326
- <span class="fstat-no" title="function not covered" > getID(</span>node: Node): number | undefined {
327
- <span class="cstat-no" title="statement not covered" > return (node as any)[this.node_id]</span>
328
- }
329
- <span class="fstat-no" title="function not covered" > getNode(</span>id: number) {
330
- <span class="cstat-no" title="statement not covered" > return this.nodes[id]</span>
319
+ const response = <span class="cstat-no" title="statement not covered" >{ headers: resHs, body: this.response }</span>
320
+ &nbsp;
321
+ const messageInfo = <span class="cstat-no" title="statement not covered" >this.sanitize({</span>
322
+ url: this.url,
323
+ method: this.method,
324
+ status: this.status,
325
+ request,
326
+ response,
327
+ })
328
+ &nbsp;
329
+ <span class="cstat-no" title="statement not covered" > return NetworkRequest(</span>
330
+ this.requestType,
331
+ messageInfo.method,
332
+ messageInfo.url,
333
+ JSON.stringify(messageInfo.request),
334
+ JSON.stringify(messageInfo.response),
335
+ messageInfo.status,
336
+ this.startTime + getTimeOrigin(),
337
+ this.duration,
338
+ )
331
339
  }
332
340
  &nbsp;
333
- <span class="fstat-no" title="function not covered" > getNodeCount(</span>) {
334
- <span class="cstat-no" title="statement not covered" > return this.totalNodeAmount</span>
341
+ <span class="fstat-no" title="function not covered" > writeHeaders(</span>) {
342
+ const reqHs: Record&lt;string, string&gt; = <span class="cstat-no" title="statement not covered" >{}</span>
343
+ <span class="cstat-no" title="statement not covered" > Object.entries(this.requestHeader).forEach(<span class="fstat-no" title="function not covered" >([</span>key, value]) =&gt; {</span>
344
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.isHeaderIgnored(key)) <span class="cstat-no" title="statement not covered" >return</span></span>
345
+ <span class="cstat-no" title="statement not covered" > reqHs[key] = value</span>
346
+ })
347
+ <span class="cstat-no" title="statement not covered" > this.setSessionTokenHeader(<span class="fstat-no" title="function not covered" >(n</span>ame, value) =&gt; {</span>
348
+ <span class="cstat-no" title="statement not covered" > reqHs[name] = value</span>
349
+ })
350
+ const resHs: Record&lt;string, string&gt; = <span class="cstat-no" title="statement not covered" >{}</span>
351
+ <span class="cstat-no" title="statement not covered" > Object.entries(this.header).forEach(<span class="fstat-no" title="function not covered" >([</span>key, value]) =&gt; {</span>
352
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.isHeaderIgnored(key)) <span class="cstat-no" title="statement not covered" >return</span></span>
353
+ <span class="cstat-no" title="statement not covered" > resHs[key] = value</span>
354
+ })
355
+ <span class="cstat-no" title="statement not covered" > return { reqHs, resHs }</span>
335
356
  }
336
357
  &nbsp;
337
- <span class="fstat-no" title="function not covered" > clear(</span>): void {
338
- <span class="cstat-no" title="statement not covered" > for (let id = <span class="cstat-no" title="statement not covered" >0;</span> id &lt; this.nodes.length; id++) {</span>
339
- const node = <span class="cstat-no" title="statement not covered" >this.nodes[id]</span>
340
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (node === undefined) {</span>
341
- <span class="cstat-no" title="statement not covered" > continue</span>
342
- }
343
- <span class="cstat-no" title="statement not covered" > this.unregisterNode(node)</span>
344
- }
345
- <span class="cstat-no" title="statement not covered" > this.nodes.length = 0</span>
358
+ <span class="fstat-no" title="function not covered" > isHeaderIgnored(</span>key: string) {
359
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (Array.isArray(this.ignoredHeaders)) <span class="cstat-no" title="statement not covered" >return this.ignoredHeaders.includes(key)</span></span>
360
+ <span class="cstat-no" title="statement not covered" > return this.ignoredHeaders</span>
346
361
  }
347
362
  }
348
363
  &nbsp;</pre></td></tr></table></pre>
@@ -352,16 +367,16 @@ type ElementListener = [string, EventListener, boolean]
352
367
  <div class='footer quiet pad2 space-top1 center small'>
353
368
  Code coverage generated by
354
369
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
355
- at 2023-05-31T11:17:20.525Z
370
+ at 2023-06-28T10:44:28.733Z
356
371
  </div>
357
- <script src="../../prettify.js"></script>
372
+ <script src="../../../prettify.js"></script>
358
373
  <script>
359
374
  window.onload = function () {
360
375
  prettyPrint();
361
376
  };
362
377
  </script>
363
- <script src="../../sorter.js"></script>
364
- <script src="../../block-navigation.js"></script>
378
+ <script src="../../../sorter.js"></script>
379
+ <script src="../../../block-navigation.js"></script>
365
380
  </body>
366
381
  </html>
367
382