@openreplay/tracker 14.0.10-beta.2 → 14.0.10

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 (273) hide show
  1. package/{cjs → dist/cjs}/index.js +27 -49
  2. package/dist/cjs/index.js.map +1 -0
  3. package/{cjs → dist/cjs/main}/app/index.d.ts +17 -5
  4. package/{lib → dist/cjs/main}/app/messages.gen.d.ts +2 -2
  5. package/{lib/app/nodes.d.ts → dist/cjs/main/app/nodes/index.d.ts} +14 -7
  6. package/dist/cjs/main/app/nodes/maintainer.d.ts +28 -0
  7. package/{lib → dist/cjs/main}/app/observer/iframe_offsets.d.ts +1 -1
  8. package/{lib → dist/cjs/main}/app/observer/observer.d.ts +3 -1
  9. package/{lib → dist/cjs/main}/app/observer/top_observer.d.ts +5 -1
  10. package/{cjs → dist/cjs/main}/app/sanitizer.d.ts +5 -2
  11. package/{cjs → dist/cjs/main}/app/session.d.ts +6 -3
  12. package/{cjs → dist/cjs/main}/index.d.ts +2 -2
  13. package/{cjs → dist/cjs/main}/modules/attributeSender.d.ts +5 -2
  14. package/{cjs → dist/cjs/main}/modules/conditionsManager.d.ts +1 -1
  15. package/{cjs → dist/cjs/main}/modules/tagWatcher.d.ts +8 -4
  16. package/{lib → dist/cjs/main}/modules/userTesting/SignalManager.d.ts +2 -2
  17. package/{lib → dist/cjs/main}/utils.d.ts +4 -3
  18. package/dist/lib/index.js +9323 -0
  19. package/dist/lib/index.js.map +1 -0
  20. package/{lib → dist/lib/main}/app/index.d.ts +17 -5
  21. package/{cjs → dist/lib/main}/app/messages.gen.d.ts +2 -2
  22. package/{cjs/app/nodes.d.ts → dist/lib/main/app/nodes/index.d.ts} +14 -7
  23. package/dist/lib/main/app/nodes/maintainer.d.ts +28 -0
  24. package/{cjs → dist/lib/main}/app/observer/iframe_offsets.d.ts +1 -1
  25. package/{cjs → dist/lib/main}/app/observer/observer.d.ts +3 -1
  26. package/{cjs → dist/lib/main}/app/observer/top_observer.d.ts +5 -1
  27. package/{lib → dist/lib/main}/app/sanitizer.d.ts +5 -2
  28. package/{lib → dist/lib/main}/app/session.d.ts +6 -3
  29. package/{lib → dist/lib/main}/index.d.ts +2 -2
  30. package/{lib → dist/lib/main}/modules/attributeSender.d.ts +5 -2
  31. package/{lib → dist/lib/main}/modules/conditionsManager.d.ts +1 -1
  32. package/{lib → dist/lib/main}/modules/tagWatcher.d.ts +8 -4
  33. package/{cjs → dist/lib/main}/modules/userTesting/SignalManager.d.ts +2 -2
  34. package/{cjs → dist/lib/main}/utils.d.ts +4 -3
  35. package/package.json +29 -10
  36. package/.eslintignore +0 -11
  37. package/.nvmrc +0 -1
  38. package/.prettierignore +0 -1
  39. package/CHANGELOG.md +0 -297
  40. package/bun.lockb +0 -0
  41. package/cjs/app/canvas.js +0 -204
  42. package/cjs/app/guards.js +0 -37
  43. package/cjs/app/index.js +0 -1397
  44. package/cjs/app/logger.js +0 -37
  45. package/cjs/app/messages.gen.js +0 -702
  46. package/cjs/app/nodes.js +0 -111
  47. package/cjs/app/observer/iframe_observer.js +0 -35
  48. package/cjs/app/observer/iframe_offsets.js +0 -56
  49. package/cjs/app/observer/observer.js +0 -383
  50. package/cjs/app/observer/shadow_root_observer.js +0 -24
  51. package/cjs/app/observer/top_observer.js +0 -134
  52. package/cjs/app/sanitizer.js +0 -82
  53. package/cjs/app/session.js +0 -140
  54. package/cjs/app/ticker.js +0 -48
  55. package/cjs/common/interaction.js +0 -2
  56. package/cjs/common/messages.gen.js +0 -4
  57. package/cjs/modules/attributeSender.js +0 -51
  58. package/cjs/modules/axiosSpy.js +0 -122
  59. package/cjs/modules/conditionsManager.js +0 -343
  60. package/cjs/modules/connection.js +0 -15
  61. package/cjs/modules/console.js +0 -127
  62. package/cjs/modules/constructedStyleSheets.js +0 -138
  63. package/cjs/modules/cssrules.js +0 -99
  64. package/cjs/modules/exception.js +0 -85
  65. package/cjs/modules/featureFlags.js +0 -89
  66. package/cjs/modules/focus.js +0 -45
  67. package/cjs/modules/fonts.js +0 -57
  68. package/cjs/modules/img.js +0 -110
  69. package/cjs/modules/input.js +0 -203
  70. package/cjs/modules/mouse.js +0 -195
  71. package/cjs/modules/network.js +0 -244
  72. package/cjs/modules/performance.js +0 -53
  73. package/cjs/modules/scroll.js +0 -84
  74. package/cjs/modules/selection.js +0 -37
  75. package/cjs/modules/tabs.js +0 -13
  76. package/cjs/modules/tagWatcher.js +0 -76
  77. package/cjs/modules/timing.js +0 -173
  78. package/cjs/modules/userTesting/SignalManager.js +0 -83
  79. package/cjs/modules/userTesting/dnd.js +0 -40
  80. package/cjs/modules/userTesting/index.js +0 -464
  81. package/cjs/modules/userTesting/recorder.js +0 -101
  82. package/cjs/modules/userTesting/styles.js +0 -266
  83. package/cjs/modules/userTesting/utils.js +0 -87
  84. package/cjs/modules/viewport.js +0 -43
  85. package/cjs/package.json +0 -1
  86. package/cjs/utils.js +0 -249
  87. package/coverage/clover.xml +0 -4304
  88. package/coverage/coverage-final.json +0 -55
  89. package/coverage/lcov-report/base.css +0 -224
  90. package/coverage/lcov-report/block-navigation.js +0 -87
  91. package/coverage/lcov-report/favicon.png +0 -0
  92. package/coverage/lcov-report/index.html +0 -206
  93. package/coverage/lcov-report/main/app/canvas.ts.html +0 -712
  94. package/coverage/lcov-report/main/app/guards.ts.html +0 -232
  95. package/coverage/lcov-report/main/app/index.html +0 -236
  96. package/coverage/lcov-report/main/app/index.ts.html +0 -3955
  97. package/coverage/lcov-report/main/app/logger.ts.html +0 -211
  98. package/coverage/lcov-report/main/app/messages.gen.ts.html +0 -3034
  99. package/coverage/lcov-report/main/app/nodes.ts.html +0 -406
  100. package/coverage/lcov-report/main/app/observer/iframe_observer.ts.html +0 -148
  101. package/coverage/lcov-report/main/app/observer/iframe_offsets.ts.html +0 -289
  102. package/coverage/lcov-report/main/app/observer/index.html +0 -161
  103. package/coverage/lcov-report/main/app/observer/shadow_root_observer.ts.html +0 -142
  104. package/coverage/lcov-report/main/app/observer/top_observer.ts.html +0 -541
  105. package/coverage/lcov-report/main/app/sanitizer.ts.html +0 -403
  106. package/coverage/lcov-report/main/app/session.ts.html +0 -622
  107. package/coverage/lcov-report/main/app/ticker.ts.html +0 -250
  108. package/coverage/lcov-report/main/index.html +0 -131
  109. package/coverage/lcov-report/main/index.ts.html +0 -1597
  110. package/coverage/lcov-report/main/modules/Network/beaconProxy.ts.html +0 -400
  111. package/coverage/lcov-report/main/modules/Network/fetchProxy.ts.html +0 -1075
  112. package/coverage/lcov-report/main/modules/Network/index.html +0 -191
  113. package/coverage/lcov-report/main/modules/Network/index.ts.html +0 -244
  114. package/coverage/lcov-report/main/modules/Network/networkMessage.ts.html +0 -400
  115. package/coverage/lcov-report/main/modules/Network/utils.ts.html +0 -709
  116. package/coverage/lcov-report/main/modules/Network/xhrProxy.ts.html +0 -877
  117. package/coverage/lcov-report/main/modules/attributeSender.ts.html +0 -241
  118. package/coverage/lcov-report/main/modules/axiosSpy.ts.html +0 -709
  119. package/coverage/lcov-report/main/modules/conditionsManager.ts.html +0 -1381
  120. package/coverage/lcov-report/main/modules/connection.ts.html +0 -160
  121. package/coverage/lcov-report/main/modules/console.ts.html +0 -541
  122. package/coverage/lcov-report/main/modules/constructedStyleSheets.ts.html +0 -571
  123. package/coverage/lcov-report/main/modules/cssrules.ts.html +0 -418
  124. package/coverage/lcov-report/main/modules/exception.ts.html +0 -385
  125. package/coverage/lcov-report/main/modules/featureFlags.ts.html +0 -415
  126. package/coverage/lcov-report/main/modules/focus.ts.html +0 -220
  127. package/coverage/lcov-report/main/modules/fonts.ts.html +0 -289
  128. package/coverage/lcov-report/main/modules/img.ts.html +0 -436
  129. package/coverage/lcov-report/main/modules/index.html +0 -431
  130. package/coverage/lcov-report/main/modules/input.ts.html +0 -826
  131. package/coverage/lcov-report/main/modules/mouse.ts.html +0 -826
  132. package/coverage/lcov-report/main/modules/network.ts.html +0 -1123
  133. package/coverage/lcov-report/main/modules/performance.ts.html +0 -367
  134. package/coverage/lcov-report/main/modules/scroll.ts.html +0 -364
  135. package/coverage/lcov-report/main/modules/selection.ts.html +0 -202
  136. package/coverage/lcov-report/main/modules/tabs.ts.html +0 -124
  137. package/coverage/lcov-report/main/modules/tagWatcher.ts.html +0 -337
  138. package/coverage/lcov-report/main/modules/timing.ts.html +0 -877
  139. package/coverage/lcov-report/main/modules/userTesting/SignalManager.ts.html +0 -370
  140. package/coverage/lcov-report/main/modules/userTesting/dnd.ts.html +0 -220
  141. package/coverage/lcov-report/main/modules/userTesting/index.html +0 -191
  142. package/coverage/lcov-report/main/modules/userTesting/index.ts.html +0 -1909
  143. package/coverage/lcov-report/main/modules/userTesting/recorder.ts.html +0 -430
  144. package/coverage/lcov-report/main/modules/userTesting/styles.ts.html +0 -937
  145. package/coverage/lcov-report/main/modules/userTesting/utils.ts.html +0 -364
  146. package/coverage/lcov-report/main/modules/viewport.ts.html +0 -250
  147. package/coverage/lcov-report/main/utils.ts.html +0 -814
  148. package/coverage/lcov-report/prettify.css +0 -1
  149. package/coverage/lcov-report/prettify.js +0 -2
  150. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  151. package/coverage/lcov-report/sorter.js +0 -196
  152. package/coverage/lcov-report/webworker/BatchWriter.ts.html +0 -499
  153. package/coverage/lcov-report/webworker/MessageEncoder.gen.ts.html +0 -1021
  154. package/coverage/lcov-report/webworker/PrimitiveEncoder.ts.html +0 -436
  155. package/coverage/lcov-report/webworker/QueueSender.ts.html +0 -547
  156. package/coverage/lcov-report/webworker/index.html +0 -176
  157. package/coverage/lcov-report/webworker/index.ts.html +0 -667
  158. package/coverage/lcov.info +0 -8425
  159. package/jest.config.js +0 -13
  160. package/lib/app/canvas.js +0 -202
  161. package/lib/app/guards.js +0 -26
  162. package/lib/app/index.js +0 -1367
  163. package/lib/app/logger.js +0 -33
  164. package/lib/app/messages.gen.js +0 -622
  165. package/lib/app/nodes.js +0 -108
  166. package/lib/app/observer/iframe_observer.js +0 -29
  167. package/lib/app/observer/iframe_offsets.js +0 -53
  168. package/lib/app/observer/observer.js +0 -380
  169. package/lib/app/observer/shadow_root_observer.js +0 -18
  170. package/lib/app/observer/top_observer.js +0 -128
  171. package/lib/app/sanitizer.js +0 -77
  172. package/lib/app/session.js +0 -137
  173. package/lib/app/ticker.js +0 -45
  174. package/lib/common/interaction.js +0 -1
  175. package/lib/common/messages.gen.js +0 -3
  176. package/lib/common/tsconfig.tsbuildinfo +0 -1
  177. package/lib/index.js +0 -423
  178. package/lib/modules/attributeSender.js +0 -46
  179. package/lib/modules/axiosSpy.js +0 -119
  180. package/lib/modules/conditionsManager.js +0 -340
  181. package/lib/modules/connection.js +0 -12
  182. package/lib/modules/console.js +0 -124
  183. package/lib/modules/constructedStyleSheets.js +0 -133
  184. package/lib/modules/cssrules.js +0 -97
  185. package/lib/modules/exception.js +0 -76
  186. package/lib/modules/featureFlags.js +0 -86
  187. package/lib/modules/focus.js +0 -42
  188. package/lib/modules/fonts.js +0 -54
  189. package/lib/modules/img.js +0 -107
  190. package/lib/modules/input.js +0 -198
  191. package/lib/modules/mouse.js +0 -192
  192. package/lib/modules/network.js +0 -238
  193. package/lib/modules/performance.js +0 -49
  194. package/lib/modules/scroll.js +0 -81
  195. package/lib/modules/selection.js +0 -35
  196. package/lib/modules/tabs.js +0 -10
  197. package/lib/modules/tagWatcher.js +0 -73
  198. package/lib/modules/timing.js +0 -170
  199. package/lib/modules/userTesting/SignalManager.js +0 -80
  200. package/lib/modules/userTesting/dnd.js +0 -37
  201. package/lib/modules/userTesting/index.js +0 -435
  202. package/lib/modules/userTesting/recorder.js +0 -97
  203. package/lib/modules/userTesting/styles.js +0 -263
  204. package/lib/modules/userTesting/utils.js +0 -79
  205. package/lib/modules/viewport.js +0 -40
  206. package/lib/utils.js +0 -230
  207. package/rollup.config.js +0 -12
  208. package/scripts/checkver.cjs +0 -7
  209. package/tsconfig-base.json +0 -16
  210. /package/{cjs → dist/cjs}/common/interaction.d.ts +0 -0
  211. /package/{cjs → dist/cjs}/common/messages.gen.d.ts +0 -0
  212. /package/{cjs → dist/cjs/main}/app/canvas.d.ts +0 -0
  213. /package/{cjs → dist/cjs/main}/app/guards.d.ts +0 -0
  214. /package/{cjs → dist/cjs/main}/app/logger.d.ts +0 -0
  215. /package/{cjs → dist/cjs/main}/app/observer/iframe_observer.d.ts +0 -0
  216. /package/{cjs → dist/cjs/main}/app/observer/shadow_root_observer.d.ts +0 -0
  217. /package/{cjs → dist/cjs/main}/app/ticker.d.ts +0 -0
  218. /package/{cjs → dist/cjs/main}/modules/axiosSpy.d.ts +0 -0
  219. /package/{cjs → dist/cjs/main}/modules/connection.d.ts +0 -0
  220. /package/{cjs → dist/cjs/main}/modules/console.d.ts +0 -0
  221. /package/{cjs → dist/cjs/main}/modules/constructedStyleSheets.d.ts +0 -0
  222. /package/{cjs → dist/cjs/main}/modules/cssrules.d.ts +0 -0
  223. /package/{cjs → dist/cjs/main}/modules/exception.d.ts +0 -0
  224. /package/{cjs → dist/cjs/main}/modules/featureFlags.d.ts +0 -0
  225. /package/{cjs → dist/cjs/main}/modules/focus.d.ts +0 -0
  226. /package/{cjs → dist/cjs/main}/modules/fonts.d.ts +0 -0
  227. /package/{cjs → dist/cjs/main}/modules/img.d.ts +0 -0
  228. /package/{cjs → dist/cjs/main}/modules/input.d.ts +0 -0
  229. /package/{cjs → dist/cjs/main}/modules/mouse.d.ts +0 -0
  230. /package/{cjs → dist/cjs/main}/modules/network.d.ts +0 -0
  231. /package/{cjs → dist/cjs/main}/modules/performance.d.ts +0 -0
  232. /package/{cjs → dist/cjs/main}/modules/scroll.d.ts +0 -0
  233. /package/{cjs → dist/cjs/main}/modules/selection.d.ts +0 -0
  234. /package/{cjs → dist/cjs/main}/modules/tabs.d.ts +0 -0
  235. /package/{cjs → dist/cjs/main}/modules/timing.d.ts +0 -0
  236. /package/{cjs → dist/cjs/main}/modules/userTesting/dnd.d.ts +0 -0
  237. /package/{cjs → dist/cjs/main}/modules/userTesting/index.d.ts +0 -0
  238. /package/{cjs → dist/cjs/main}/modules/userTesting/recorder.d.ts +0 -0
  239. /package/{cjs → dist/cjs/main}/modules/userTesting/styles.d.ts +0 -0
  240. /package/{cjs → dist/cjs/main}/modules/userTesting/utils.d.ts +0 -0
  241. /package/{cjs → dist/cjs/main}/modules/viewport.d.ts +0 -0
  242. /package/{lib → dist/lib}/common/interaction.d.ts +0 -0
  243. /package/{lib → dist/lib}/common/messages.gen.d.ts +0 -0
  244. /package/{lib → dist/lib/main}/app/canvas.d.ts +0 -0
  245. /package/{lib → dist/lib/main}/app/guards.d.ts +0 -0
  246. /package/{lib → dist/lib/main}/app/logger.d.ts +0 -0
  247. /package/{lib → dist/lib/main}/app/observer/iframe_observer.d.ts +0 -0
  248. /package/{lib → dist/lib/main}/app/observer/shadow_root_observer.d.ts +0 -0
  249. /package/{lib → dist/lib/main}/app/ticker.d.ts +0 -0
  250. /package/{lib → dist/lib/main}/modules/axiosSpy.d.ts +0 -0
  251. /package/{lib → dist/lib/main}/modules/connection.d.ts +0 -0
  252. /package/{lib → dist/lib/main}/modules/console.d.ts +0 -0
  253. /package/{lib → dist/lib/main}/modules/constructedStyleSheets.d.ts +0 -0
  254. /package/{lib → dist/lib/main}/modules/cssrules.d.ts +0 -0
  255. /package/{lib → dist/lib/main}/modules/exception.d.ts +0 -0
  256. /package/{lib → dist/lib/main}/modules/featureFlags.d.ts +0 -0
  257. /package/{lib → dist/lib/main}/modules/focus.d.ts +0 -0
  258. /package/{lib → dist/lib/main}/modules/fonts.d.ts +0 -0
  259. /package/{lib → dist/lib/main}/modules/img.d.ts +0 -0
  260. /package/{lib → dist/lib/main}/modules/input.d.ts +0 -0
  261. /package/{lib → dist/lib/main}/modules/mouse.d.ts +0 -0
  262. /package/{lib → dist/lib/main}/modules/network.d.ts +0 -0
  263. /package/{lib → dist/lib/main}/modules/performance.d.ts +0 -0
  264. /package/{lib → dist/lib/main}/modules/scroll.d.ts +0 -0
  265. /package/{lib → dist/lib/main}/modules/selection.d.ts +0 -0
  266. /package/{lib → dist/lib/main}/modules/tabs.d.ts +0 -0
  267. /package/{lib → dist/lib/main}/modules/timing.d.ts +0 -0
  268. /package/{lib → dist/lib/main}/modules/userTesting/dnd.d.ts +0 -0
  269. /package/{lib → dist/lib/main}/modules/userTesting/index.d.ts +0 -0
  270. /package/{lib → dist/lib/main}/modules/userTesting/recorder.d.ts +0 -0
  271. /package/{lib → dist/lib/main}/modules/userTesting/styles.d.ts +0 -0
  272. /package/{lib → dist/lib/main}/modules/userTesting/utils.d.ts +0 -0
  273. /package/{lib → dist/lib/main}/modules/viewport.d.ts +0 -0
@@ -1,709 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for main/modules/axiosSpy.ts</title>
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" />
11
- <meta name="viewport" content="width=device-width, initial-scale=1" />
12
- <style type='text/css'>
13
- .coverage-summary .sorter {
14
- background-image: url(../../sort-arrow-sprite.png);
15
- }
16
- </style>
17
- </head>
18
-
19
- <body>
20
- <div class='wrapper'>
21
- <div class='pad1'>
22
- <h1><a href="../../index.html">All files</a> / <a href="index.html">main/modules</a> axiosSpy.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">0% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>0/75</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">0% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>0/52</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">0% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>0/18</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">0% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>0/66</span>
50
- </div>
51
-
52
-
53
- </div>
54
- <p class="quiet">
55
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
- </p>
57
- <template id="filterTemplate">
58
- <div class="quiet">
59
- Filter:
60
- <input oninput="onInput()" type="search" id="fileSearch">
61
- </div>
62
- </template>
63
- </div>
64
- <div class='status-line low'></div>
65
- <pre><table class="coverage">
66
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
- <a name='L2'></a><a href='#L2'>2</a>
68
- <a name='L3'></a><a href='#L3'>3</a>
69
- <a name='L4'></a><a href='#L4'>4</a>
70
- <a name='L5'></a><a href='#L5'>5</a>
71
- <a name='L6'></a><a href='#L6'>6</a>
72
- <a name='L7'></a><a href='#L7'>7</a>
73
- <a name='L8'></a><a href='#L8'>8</a>
74
- <a name='L9'></a><a href='#L9'>9</a>
75
- <a name='L10'></a><a href='#L10'>10</a>
76
- <a name='L11'></a><a href='#L11'>11</a>
77
- <a name='L12'></a><a href='#L12'>12</a>
78
- <a name='L13'></a><a href='#L13'>13</a>
79
- <a name='L14'></a><a href='#L14'>14</a>
80
- <a name='L15'></a><a href='#L15'>15</a>
81
- <a name='L16'></a><a href='#L16'>16</a>
82
- <a name='L17'></a><a href='#L17'>17</a>
83
- <a name='L18'></a><a href='#L18'>18</a>
84
- <a name='L19'></a><a href='#L19'>19</a>
85
- <a name='L20'></a><a href='#L20'>20</a>
86
- <a name='L21'></a><a href='#L21'>21</a>
87
- <a name='L22'></a><a href='#L22'>22</a>
88
- <a name='L23'></a><a href='#L23'>23</a>
89
- <a name='L24'></a><a href='#L24'>24</a>
90
- <a name='L25'></a><a href='#L25'>25</a>
91
- <a name='L26'></a><a href='#L26'>26</a>
92
- <a name='L27'></a><a href='#L27'>27</a>
93
- <a name='L28'></a><a href='#L28'>28</a>
94
- <a name='L29'></a><a href='#L29'>29</a>
95
- <a name='L30'></a><a href='#L30'>30</a>
96
- <a name='L31'></a><a href='#L31'>31</a>
97
- <a name='L32'></a><a href='#L32'>32</a>
98
- <a name='L33'></a><a href='#L33'>33</a>
99
- <a name='L34'></a><a href='#L34'>34</a>
100
- <a name='L35'></a><a href='#L35'>35</a>
101
- <a name='L36'></a><a href='#L36'>36</a>
102
- <a name='L37'></a><a href='#L37'>37</a>
103
- <a name='L38'></a><a href='#L38'>38</a>
104
- <a name='L39'></a><a href='#L39'>39</a>
105
- <a name='L40'></a><a href='#L40'>40</a>
106
- <a name='L41'></a><a href='#L41'>41</a>
107
- <a name='L42'></a><a href='#L42'>42</a>
108
- <a name='L43'></a><a href='#L43'>43</a>
109
- <a name='L44'></a><a href='#L44'>44</a>
110
- <a name='L45'></a><a href='#L45'>45</a>
111
- <a name='L46'></a><a href='#L46'>46</a>
112
- <a name='L47'></a><a href='#L47'>47</a>
113
- <a name='L48'></a><a href='#L48'>48</a>
114
- <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a>
116
- <a name='L51'></a><a href='#L51'>51</a>
117
- <a name='L52'></a><a href='#L52'>52</a>
118
- <a name='L53'></a><a href='#L53'>53</a>
119
- <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a>
121
- <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a>
123
- <a name='L58'></a><a href='#L58'>58</a>
124
- <a name='L59'></a><a href='#L59'>59</a>
125
- <a name='L60'></a><a href='#L60'>60</a>
126
- <a name='L61'></a><a href='#L61'>61</a>
127
- <a name='L62'></a><a href='#L62'>62</a>
128
- <a name='L63'></a><a href='#L63'>63</a>
129
- <a name='L64'></a><a href='#L64'>64</a>
130
- <a name='L65'></a><a href='#L65'>65</a>
131
- <a name='L66'></a><a href='#L66'>66</a>
132
- <a name='L67'></a><a href='#L67'>67</a>
133
- <a name='L68'></a><a href='#L68'>68</a>
134
- <a name='L69'></a><a href='#L69'>69</a>
135
- <a name='L70'></a><a href='#L70'>70</a>
136
- <a name='L71'></a><a href='#L71'>71</a>
137
- <a name='L72'></a><a href='#L72'>72</a>
138
- <a name='L73'></a><a href='#L73'>73</a>
139
- <a name='L74'></a><a href='#L74'>74</a>
140
- <a name='L75'></a><a href='#L75'>75</a>
141
- <a name='L76'></a><a href='#L76'>76</a>
142
- <a name='L77'></a><a href='#L77'>77</a>
143
- <a name='L78'></a><a href='#L78'>78</a>
144
- <a name='L79'></a><a href='#L79'>79</a>
145
- <a name='L80'></a><a href='#L80'>80</a>
146
- <a name='L81'></a><a href='#L81'>81</a>
147
- <a name='L82'></a><a href='#L82'>82</a>
148
- <a name='L83'></a><a href='#L83'>83</a>
149
- <a name='L84'></a><a href='#L84'>84</a>
150
- <a name='L85'></a><a href='#L85'>85</a>
151
- <a name='L86'></a><a href='#L86'>86</a>
152
- <a name='L87'></a><a href='#L87'>87</a>
153
- <a name='L88'></a><a href='#L88'>88</a>
154
- <a name='L89'></a><a href='#L89'>89</a>
155
- <a name='L90'></a><a href='#L90'>90</a>
156
- <a name='L91'></a><a href='#L91'>91</a>
157
- <a name='L92'></a><a href='#L92'>92</a>
158
- <a name='L93'></a><a href='#L93'>93</a>
159
- <a name='L94'></a><a href='#L94'>94</a>
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>
166
- <a name='L101'></a><a href='#L101'>101</a>
167
- <a name='L102'></a><a href='#L102'>102</a>
168
- <a name='L103'></a><a href='#L103'>103</a>
169
- <a name='L104'></a><a href='#L104'>104</a>
170
- <a name='L105'></a><a href='#L105'>105</a>
171
- <a name='L106'></a><a href='#L106'>106</a>
172
- <a name='L107'></a><a href='#L107'>107</a>
173
- <a name='L108'></a><a href='#L108'>108</a>
174
- <a name='L109'></a><a href='#L109'>109</a>
175
- <a name='L110'></a><a href='#L110'>110</a>
176
- <a name='L111'></a><a href='#L111'>111</a>
177
- <a name='L112'></a><a href='#L112'>112</a>
178
- <a name='L113'></a><a href='#L113'>113</a>
179
- <a name='L114'></a><a href='#L114'>114</a>
180
- <a name='L115'></a><a href='#L115'>115</a>
181
- <a name='L116'></a><a href='#L116'>116</a>
182
- <a name='L117'></a><a href='#L117'>117</a>
183
- <a name='L118'></a><a href='#L118'>118</a>
184
- <a name='L119'></a><a href='#L119'>119</a>
185
- <a name='L120'></a><a href='#L120'>120</a>
186
- <a name='L121'></a><a href='#L121'>121</a>
187
- <a name='L122'></a><a href='#L122'>122</a>
188
- <a name='L123'></a><a href='#L123'>123</a>
189
- <a name='L124'></a><a href='#L124'>124</a>
190
- <a name='L125'></a><a href='#L125'>125</a>
191
- <a name='L126'></a><a href='#L126'>126</a>
192
- <a name='L127'></a><a href='#L127'>127</a>
193
- <a name='L128'></a><a href='#L128'>128</a>
194
- <a name='L129'></a><a href='#L129'>129</a>
195
- <a name='L130'></a><a href='#L130'>130</a>
196
- <a name='L131'></a><a href='#L131'>131</a>
197
- <a name='L132'></a><a href='#L132'>132</a>
198
- <a name='L133'></a><a href='#L133'>133</a>
199
- <a name='L134'></a><a href='#L134'>134</a>
200
- <a name='L135'></a><a href='#L135'>135</a>
201
- <a name='L136'></a><a href='#L136'>136</a>
202
- <a name='L137'></a><a href='#L137'>137</a>
203
- <a name='L138'></a><a href='#L138'>138</a>
204
- <a name='L139'></a><a href='#L139'>139</a>
205
- <a name='L140'></a><a href='#L140'>140</a>
206
- <a name='L141'></a><a href='#L141'>141</a>
207
- <a name='L142'></a><a href='#L142'>142</a>
208
- <a name='L143'></a><a href='#L143'>143</a>
209
- <a name='L144'></a><a href='#L144'>144</a>
210
- <a name='L145'></a><a href='#L145'>145</a>
211
- <a name='L146'></a><a href='#L146'>146</a>
212
- <a name='L147'></a><a href='#L147'>147</a>
213
- <a name='L148'></a><a href='#L148'>148</a>
214
- <a name='L149'></a><a href='#L149'>149</a>
215
- <a name='L150'></a><a href='#L150'>150</a>
216
- <a name='L151'></a><a href='#L151'>151</a>
217
- <a name='L152'></a><a href='#L152'>152</a>
218
- <a name='L153'></a><a href='#L153'>153</a>
219
- <a name='L154'></a><a href='#L154'>154</a>
220
- <a name='L155'></a><a href='#L155'>155</a>
221
- <a name='L156'></a><a href='#L156'>156</a>
222
- <a name='L157'></a><a href='#L157'>157</a>
223
- <a name='L158'></a><a href='#L158'>158</a>
224
- <a name='L159'></a><a href='#L159'>159</a>
225
- <a name='L160'></a><a href='#L160'>160</a>
226
- <a name='L161'></a><a href='#L161'>161</a>
227
- <a name='L162'></a><a href='#L162'>162</a>
228
- <a name='L163'></a><a href='#L163'>163</a>
229
- <a name='L164'></a><a href='#L164'>164</a>
230
- <a name='L165'></a><a href='#L165'>165</a>
231
- <a name='L166'></a><a href='#L166'>166</a>
232
- <a name='L167'></a><a href='#L167'>167</a>
233
- <a name='L168'></a><a href='#L168'>168</a>
234
- <a name='L169'></a><a href='#L169'>169</a>
235
- <a name='L170'></a><a href='#L170'>170</a>
236
- <a name='L171'></a><a href='#L171'>171</a>
237
- <a name='L172'></a><a href='#L172'>172</a>
238
- <a name='L173'></a><a href='#L173'>173</a>
239
- <a name='L174'></a><a href='#L174'>174</a>
240
- <a name='L175'></a><a href='#L175'>175</a>
241
- <a name='L176'></a><a href='#L176'>176</a>
242
- <a name='L177'></a><a href='#L177'>177</a>
243
- <a name='L178'></a><a href='#L178'>178</a>
244
- <a name='L179'></a><a href='#L179'>179</a>
245
- <a name='L180'></a><a href='#L180'>180</a>
246
- <a name='L181'></a><a href='#L181'>181</a>
247
- <a name='L182'></a><a href='#L182'>182</a>
248
- <a name='L183'></a><a href='#L183'>183</a>
249
- <a name='L184'></a><a href='#L184'>184</a>
250
- <a name='L185'></a><a href='#L185'>185</a>
251
- <a name='L186'></a><a href='#L186'>186</a>
252
- <a name='L187'></a><a href='#L187'>187</a>
253
- <a name='L188'></a><a href='#L188'>188</a>
254
- <a name='L189'></a><a href='#L189'>189</a>
255
- <a name='L190'></a><a href='#L190'>190</a>
256
- <a name='L191'></a><a href='#L191'>191</a>
257
- <a name='L192'></a><a href='#L192'>192</a>
258
- <a name='L193'></a><a href='#L193'>193</a>
259
- <a name='L194'></a><a href='#L194'>194</a>
260
- <a name='L195'></a><a href='#L195'>195</a>
261
- <a name='L196'></a><a href='#L196'>196</a>
262
- <a name='L197'></a><a href='#L197'>197</a>
263
- <a name='L198'></a><a href='#L198'>198</a>
264
- <a name='L199'></a><a href='#L199'>199</a>
265
- <a name='L200'></a><a href='#L200'>200</a>
266
- <a name='L201'></a><a href='#L201'>201</a>
267
- <a name='L202'></a><a href='#L202'>202</a>
268
- <a name='L203'></a><a href='#L203'>203</a>
269
- <a name='L204'></a><a href='#L204'>204</a>
270
- <a name='L205'></a><a href='#L205'>205</a>
271
- <a name='L206'></a><a href='#L206'>206</a>
272
- <a name='L207'></a><a href='#L207'>207</a>
273
- <a name='L208'></a><a href='#L208'>208</a>
274
- <a name='L209'></a><a href='#L209'>209</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
275
- <span class="cline-any cline-no">&nbsp;</span>
276
- <span class="cline-any cline-no">&nbsp;</span>
277
- <span class="cline-any cline-neutral">&nbsp;</span>
278
- <span class="cline-any cline-no">&nbsp;</span>
279
- <span class="cline-any cline-neutral">&nbsp;</span>
280
- <span class="cline-any cline-neutral">&nbsp;</span>
281
- <span class="cline-any cline-neutral">&nbsp;</span>
282
- <span class="cline-any cline-neutral">&nbsp;</span>
283
- <span class="cline-any cline-neutral">&nbsp;</span>
284
- <span class="cline-any cline-neutral">&nbsp;</span>
285
- <span class="cline-any cline-neutral">&nbsp;</span>
286
- <span class="cline-any cline-neutral">&nbsp;</span>
287
- <span class="cline-any cline-neutral">&nbsp;</span>
288
- <span class="cline-any cline-neutral">&nbsp;</span>
289
- <span class="cline-any cline-neutral">&nbsp;</span>
290
- <span class="cline-any cline-neutral">&nbsp;</span>
291
- <span class="cline-any cline-neutral">&nbsp;</span>
292
- <span class="cline-any cline-neutral">&nbsp;</span>
293
- <span class="cline-any cline-neutral">&nbsp;</span>
294
- <span class="cline-any cline-neutral">&nbsp;</span>
295
- <span class="cline-any cline-neutral">&nbsp;</span>
296
- <span class="cline-any cline-neutral">&nbsp;</span>
297
- <span class="cline-any cline-neutral">&nbsp;</span>
298
- <span class="cline-any cline-neutral">&nbsp;</span>
299
- <span class="cline-any cline-neutral">&nbsp;</span>
300
- <span class="cline-any cline-neutral">&nbsp;</span>
301
- <span class="cline-any cline-neutral">&nbsp;</span>
302
- <span class="cline-any cline-neutral">&nbsp;</span>
303
- <span class="cline-any cline-neutral">&nbsp;</span>
304
- <span class="cline-any cline-neutral">&nbsp;</span>
305
- <span class="cline-any cline-neutral">&nbsp;</span>
306
- <span class="cline-any cline-neutral">&nbsp;</span>
307
- <span class="cline-any cline-neutral">&nbsp;</span>
308
- <span class="cline-any cline-neutral">&nbsp;</span>
309
- <span class="cline-any cline-neutral">&nbsp;</span>
310
- <span class="cline-any cline-neutral">&nbsp;</span>
311
- <span class="cline-any cline-neutral">&nbsp;</span>
312
- <span class="cline-any cline-neutral">&nbsp;</span>
313
- <span class="cline-any cline-neutral">&nbsp;</span>
314
- <span class="cline-any cline-neutral">&nbsp;</span>
315
- <span class="cline-any cline-neutral">&nbsp;</span>
316
- <span class="cline-any cline-neutral">&nbsp;</span>
317
- <span class="cline-any cline-neutral">&nbsp;</span>
318
- <span class="cline-any cline-neutral">&nbsp;</span>
319
- <span class="cline-any cline-neutral">&nbsp;</span>
320
- <span class="cline-any cline-neutral">&nbsp;</span>
321
- <span class="cline-any cline-neutral">&nbsp;</span>
322
- <span class="cline-any cline-neutral">&nbsp;</span>
323
- <span class="cline-any cline-neutral">&nbsp;</span>
324
- <span class="cline-any cline-neutral">&nbsp;</span>
325
- <span class="cline-any cline-neutral">&nbsp;</span>
326
- <span class="cline-any cline-neutral">&nbsp;</span>
327
- <span class="cline-any cline-neutral">&nbsp;</span>
328
- <span class="cline-any cline-neutral">&nbsp;</span>
329
- <span class="cline-any cline-neutral">&nbsp;</span>
330
- <span class="cline-any cline-neutral">&nbsp;</span>
331
- <span class="cline-any cline-neutral">&nbsp;</span>
332
- <span class="cline-any cline-neutral">&nbsp;</span>
333
- <span class="cline-any cline-neutral">&nbsp;</span>
334
- <span class="cline-any cline-neutral">&nbsp;</span>
335
- <span class="cline-any cline-neutral">&nbsp;</span>
336
- <span class="cline-any cline-neutral">&nbsp;</span>
337
- <span class="cline-any cline-neutral">&nbsp;</span>
338
- <span class="cline-any cline-neutral">&nbsp;</span>
339
- <span class="cline-any cline-no">&nbsp;</span>
340
- <span class="cline-any cline-neutral">&nbsp;</span>
341
- <span class="cline-any cline-neutral">&nbsp;</span>
342
- <span class="cline-any cline-neutral">&nbsp;</span>
343
- <span class="cline-any cline-neutral">&nbsp;</span>
344
- <span class="cline-any cline-neutral">&nbsp;</span>
345
- <span class="cline-any cline-neutral">&nbsp;</span>
346
- <span class="cline-any cline-no">&nbsp;</span>
347
- <span class="cline-any cline-neutral">&nbsp;</span>
348
- <span class="cline-any cline-neutral">&nbsp;</span>
349
- <span class="cline-any cline-no">&nbsp;</span>
350
- <span class="cline-any cline-no">&nbsp;</span>
351
- <span class="cline-any cline-no">&nbsp;</span>
352
- <span class="cline-any cline-no">&nbsp;</span>
353
- <span class="cline-any cline-neutral">&nbsp;</span>
354
- <span class="cline-any cline-no">&nbsp;</span>
355
- <span class="cline-any cline-no">&nbsp;</span>
356
- <span class="cline-any cline-neutral">&nbsp;</span>
357
- <span class="cline-any cline-neutral">&nbsp;</span>
358
- <span class="cline-any cline-no">&nbsp;</span>
359
- <span class="cline-any cline-no">&nbsp;</span>
360
- <span class="cline-any cline-neutral">&nbsp;</span>
361
- <span class="cline-any cline-neutral">&nbsp;</span>
362
- <span class="cline-any cline-neutral">&nbsp;</span>
363
- <span class="cline-any cline-no">&nbsp;</span>
364
- <span class="cline-any cline-no">&nbsp;</span>
365
- <span class="cline-any cline-no">&nbsp;</span>
366
- <span class="cline-any cline-no">&nbsp;</span>
367
- <span class="cline-any cline-no">&nbsp;</span>
368
- <span class="cline-any cline-no">&nbsp;</span>
369
- <span class="cline-any cline-no">&nbsp;</span>
370
- <span class="cline-any cline-no">&nbsp;</span>
371
- <span class="cline-any cline-no">&nbsp;</span>
372
- <span class="cline-any cline-no">&nbsp;</span>
373
- <span class="cline-any cline-neutral">&nbsp;</span>
374
- <span class="cline-any cline-neutral">&nbsp;</span>
375
- <span class="cline-any cline-no">&nbsp;</span>
376
- <span class="cline-any cline-no">&nbsp;</span>
377
- <span class="cline-any cline-no">&nbsp;</span>
378
- <span class="cline-any cline-no">&nbsp;</span>
379
- <span class="cline-any cline-no">&nbsp;</span>
380
- <span class="cline-any cline-no">&nbsp;</span>
381
- <span class="cline-any cline-no">&nbsp;</span>
382
- <span class="cline-any cline-no">&nbsp;</span>
383
- <span class="cline-any cline-no">&nbsp;</span>
384
- <span class="cline-any cline-neutral">&nbsp;</span>
385
- <span class="cline-any cline-no">&nbsp;</span>
386
- <span class="cline-any cline-neutral">&nbsp;</span>
387
- <span class="cline-any cline-neutral">&nbsp;</span>
388
- <span class="cline-any cline-neutral">&nbsp;</span>
389
- <span class="cline-any cline-neutral">&nbsp;</span>
390
- <span class="cline-any cline-no">&nbsp;</span>
391
- <span class="cline-any cline-neutral">&nbsp;</span>
392
- <span class="cline-any cline-neutral">&nbsp;</span>
393
- <span class="cline-any cline-neutral">&nbsp;</span>
394
- <span class="cline-any cline-neutral">&nbsp;</span>
395
- <span class="cline-any cline-neutral">&nbsp;</span>
396
- <span class="cline-any cline-neutral">&nbsp;</span>
397
- <span class="cline-any cline-neutral">&nbsp;</span>
398
- <span class="cline-any cline-neutral">&nbsp;</span>
399
- <span class="cline-any cline-neutral">&nbsp;</span>
400
- <span class="cline-any cline-neutral">&nbsp;</span>
401
- <span class="cline-any cline-neutral">&nbsp;</span>
402
- <span class="cline-any cline-neutral">&nbsp;</span>
403
- <span class="cline-any cline-no">&nbsp;</span>
404
- <span class="cline-any cline-no">&nbsp;</span>
405
- <span class="cline-any cline-no">&nbsp;</span>
406
- <span class="cline-any cline-neutral">&nbsp;</span>
407
- <span class="cline-any cline-no">&nbsp;</span>
408
- <span class="cline-any cline-no">&nbsp;</span>
409
- <span class="cline-any cline-neutral">&nbsp;</span>
410
- <span class="cline-any cline-no">&nbsp;</span>
411
- <span class="cline-any cline-no">&nbsp;</span>
412
- <span class="cline-any cline-neutral">&nbsp;</span>
413
- <span class="cline-any cline-neutral">&nbsp;</span>
414
- <span class="cline-any cline-neutral">&nbsp;</span>
415
- <span class="cline-any cline-neutral">&nbsp;</span>
416
- <span class="cline-any cline-neutral">&nbsp;</span>
417
- <span class="cline-any cline-neutral">&nbsp;</span>
418
- <span class="cline-any cline-neutral">&nbsp;</span>
419
- <span class="cline-any cline-neutral">&nbsp;</span>
420
- <span class="cline-any cline-neutral">&nbsp;</span>
421
- <span class="cline-any cline-neutral">&nbsp;</span>
422
- <span class="cline-any cline-neutral">&nbsp;</span>
423
- <span class="cline-any cline-neutral">&nbsp;</span>
424
- <span class="cline-any cline-neutral">&nbsp;</span>
425
- <span class="cline-any cline-neutral">&nbsp;</span>
426
- <span class="cline-any cline-neutral">&nbsp;</span>
427
- <span class="cline-any cline-no">&nbsp;</span>
428
- <span class="cline-any cline-no">&nbsp;</span>
429
- <span class="cline-any cline-no">&nbsp;</span>
430
- <span class="cline-any cline-neutral">&nbsp;</span>
431
- <span class="cline-any cline-no">&nbsp;</span>
432
- <span class="cline-any cline-neutral">&nbsp;</span>
433
- <span class="cline-any cline-neutral">&nbsp;</span>
434
- <span class="cline-any cline-no">&nbsp;</span>
435
- <span class="cline-any cline-no">&nbsp;</span>
436
- <span class="cline-any cline-no">&nbsp;</span>
437
- <span class="cline-any cline-neutral">&nbsp;</span>
438
- <span class="cline-any cline-neutral">&nbsp;</span>
439
- <span class="cline-any cline-no">&nbsp;</span>
440
- <span class="cline-any cline-neutral">&nbsp;</span>
441
- <span class="cline-any cline-neutral">&nbsp;</span>
442
- <span class="cline-any cline-neutral">&nbsp;</span>
443
- <span class="cline-any cline-no">&nbsp;</span>
444
- <span class="cline-any cline-no">&nbsp;</span>
445
- <span class="cline-any cline-no">&nbsp;</span>
446
- <span class="cline-any cline-neutral">&nbsp;</span>
447
- <span class="cline-any cline-neutral">&nbsp;</span>
448
- <span class="cline-any cline-neutral">&nbsp;</span>
449
- <span class="cline-any cline-no">&nbsp;</span>
450
- <span class="cline-any cline-no">&nbsp;</span>
451
- <span class="cline-any cline-no">&nbsp;</span>
452
- <span class="cline-any cline-no">&nbsp;</span>
453
- <span class="cline-any cline-no">&nbsp;</span>
454
- <span class="cline-any cline-neutral">&nbsp;</span>
455
- <span class="cline-any cline-no">&nbsp;</span>
456
- <span class="cline-any cline-neutral">&nbsp;</span>
457
- <span class="cline-any cline-neutral">&nbsp;</span>
458
- <span class="cline-any cline-neutral">&nbsp;</span>
459
- <span class="cline-any cline-no">&nbsp;</span>
460
- <span class="cline-any cline-neutral">&nbsp;</span>
461
- <span class="cline-any cline-neutral">&nbsp;</span>
462
- <span class="cline-any cline-no">&nbsp;</span>
463
- <span class="cline-any cline-neutral">&nbsp;</span>
464
- <span class="cline-any cline-neutral">&nbsp;</span>
465
- <span class="cline-any cline-no">&nbsp;</span>
466
- <span class="cline-any cline-neutral">&nbsp;</span>
467
- <span class="cline-any cline-neutral">&nbsp;</span>
468
- <span class="cline-any cline-neutral">&nbsp;</span>
469
- <span class="cline-any cline-no">&nbsp;</span>
470
- <span class="cline-any cline-no">&nbsp;</span>
471
- <span class="cline-any cline-no">&nbsp;</span>
472
- <span class="cline-any cline-neutral">&nbsp;</span>
473
- <span class="cline-any cline-neutral">&nbsp;</span>
474
- <span class="cline-any cline-neutral">&nbsp;</span>
475
- <span class="cline-any cline-neutral">&nbsp;</span>
476
- <span class="cline-any cline-no">&nbsp;</span>
477
- <span class="cline-any cline-neutral">&nbsp;</span>
478
- <span class="cline-any cline-neutral">&nbsp;</span>
479
- <span class="cline-any cline-neutral">&nbsp;</span>
480
- <span class="cline-any cline-no">&nbsp;</span>
481
- <span class="cline-any cline-neutral">&nbsp;</span>
482
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import type App from '../app/index.js'
483
- <span class="cstat-no" title="statement not covered" >import { NetworkRequest } from '../app/messages.gen.js'</span>
484
- <span class="cstat-no" title="statement not covered" >import { getTimeOrigin } from '../utils.js'</span>
485
- import type { RequestResponseData, Options } from './network.js'
486
- <span class="cstat-no" title="statement not covered" >import { getExceptionMessage } from './exception.js'</span>
487
- &nbsp;
488
- interface RawAxiosHeaders {
489
- [key: string]: string
490
- }
491
- &nbsp;
492
- interface AxiosRequestConfig {
493
- url: string
494
- method?: string
495
- baseURL?: string
496
- status?: number
497
- headers: {
498
- toJSON(): RawAxiosHeaders
499
- }
500
- params?: any
501
- data?: any
502
- }
503
- &nbsp;
504
- interface InternalAxiosRequestConfig extends AxiosRequestConfig {
505
- __openreplay_timing: number
506
- headers: {
507
- toJSON(): RawAxiosHeaders
508
- set(name: string, value: string): void
509
- }
510
- }
511
- &nbsp;
512
- interface AxiosResponse&lt;T = any&gt; {
513
- data: T
514
- status: number
515
- statusText: string
516
- headers: {
517
- toJSON(): RawAxiosHeaders
518
- }
519
- config: InternalAxiosRequestConfig
520
- request?: any
521
- response?: AxiosRequestConfig
522
- }
523
- &nbsp;
524
- export interface AxiosInstance extends Record&lt;string, any&gt; {
525
- getUri: (config?: AxiosRequestConfig) =&gt; string
526
- interceptors: {
527
- request: AxiosInterceptorManager&lt;InternalAxiosRequestConfig&gt;
528
- response: AxiosInterceptorManager&lt;AxiosResponse&gt;
529
- }
530
- }
531
- &nbsp;
532
- export interface AxiosInterceptorOptions {
533
- synchronous?: boolean
534
- }
535
- &nbsp;
536
- export interface AxiosInterceptorManager&lt;V&gt; {
537
- use(
538
- onFulfilled?: ((value: V) =&gt; V | Promise&lt;V&gt;) | null,
539
- onRejected?: ((error: any) =&gt; any) | null,
540
- options?: AxiosInterceptorOptions,
541
- ): number
542
- &nbsp;
543
- eject?: (id: number) =&gt; void
544
- clear?: () =&gt; void
545
- }
546
- &nbsp;
547
- <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >export default function (</span></span>
548
- app: App,
549
- instance: AxiosInstance,
550
- opts: Options,
551
- sanitize: (data: RequestResponseData) =&gt; RequestResponseData | null,
552
- stringify: (data: { headers: Record&lt;string, string&gt;; body: any }) =&gt; string,
553
- ) {
554
- <span class="cstat-no" title="statement not covered" > app.debug.log('Openreplay: attaching axios spy to instance', instance)</span>
555
- &nbsp;
556
- function <span class="fstat-no" title="function not covered" >captureResponseData(</span>axiosResponseObj: AxiosResponse) {
557
- <span class="cstat-no" title="statement not covered" > app.debug.log('Openreplay: capturing axios response data', axiosResponseObj)</span>
558
- const { headers: reqHs, data: reqData, method, url, baseURL } = <span class="cstat-no" title="statement not covered" >axiosResponseObj.config</span>
559
- const { data: rData, headers: rHs, status: globStatus, response } = <span class="cstat-no" title="statement not covered" >axiosResponseObj</span>
560
- const { data: resData, headers: resHs, status: resStatus } = <span class="cstat-no" title="statement not covered" >response || {}</span>
561
- &nbsp;
562
- const ihOpt = <span class="cstat-no" title="statement not covered" >opts.ignoreHeaders</span>
563
- const isHIgnoring = <span class="cstat-no" title="statement not covered" >Array.isArray(ihOpt) ? <span class="fstat-no" title="function not covered" >(n</span>ame: string) =&gt; <span class="cstat-no" title="statement not covered" >ihOpt.includes(name) </span>: <span class="fstat-no" title="function not covered" >() =</span>&gt; <span class="cstat-no" title="statement not covered" >ihOpt</span></span>
564
- &nbsp;
565
- function <span class="fstat-no" title="function not covered" >writeHeader(</span>hsObj: Record&lt;string, string&gt;, header: [string, string]) {
566
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!isHIgnoring(header[0])) {</span>
567
- <span class="cstat-no" title="statement not covered" > hsObj[header[0]] = header[1]</span>
568
- }
569
- }
570
- &nbsp;
571
- let requestHs: Record&lt;string, string&gt; = <span class="cstat-no" title="statement not covered" >{}</span>
572
- let responseHs: Record&lt;string, string&gt; = <span class="cstat-no" title="statement not covered" >{}</span>
573
- <span class="cstat-no" title="statement not covered" > if (reqHs.toJSON) {</span>
574
- <span class="cstat-no" title="statement not covered" > requestHs = reqHs.toJSON()</span>
575
- } else <span class="cstat-no" title="statement not covered" >if (reqHs instanceof Headers) {</span>
576
- <span class="cstat-no" title="statement not covered" > reqHs.forEach(<span class="fstat-no" title="function not covered" >(v</span>, n) =&gt; <span class="cstat-no" title="statement not covered" >writeHeader(requestHs, [n, v]))</span></span>
577
- } else <span class="cstat-no" title="statement not covered" >if (Array.isArray(reqHs)) {</span>
578
- <span class="cstat-no" title="statement not covered" > reqHs.forEach(<span class="fstat-no" title="function not covered" >(h</span>: [string, string]) =&gt; <span class="cstat-no" title="statement not covered" >writeHeader(requestHs, h))</span></span>
579
- } else <span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="if path not taken" >I</span>if (typeof reqHs === 'object') {</span>
580
- <span class="cstat-no" title="statement not covered" > Object.entries(reqHs).forEach(<span class="fstat-no" title="function not covered" >(h</span>) =&gt; <span class="cstat-no" title="statement not covered" >writeHeader(requestHs, h as unknown as [string, string]))</span></span>
581
- }
582
- &nbsp;
583
- const usedResHeader = <span class="cstat-no" title="statement not covered" >resHs ? resHs : rHs</span>
584
- <span class="cstat-no" title="statement not covered" > if (usedResHeader.toJSON) {</span>
585
- <span class="cstat-no" title="statement not covered" > responseHs = usedResHeader.toJSON()</span>
586
- } else <span class="cstat-no" title="statement not covered" >if (usedResHeader instanceof Headers) {</span>
587
- <span class="cstat-no" title="statement not covered" > usedResHeader.forEach(<span class="fstat-no" title="function not covered" >(v</span>, n) =&gt; <span class="cstat-no" title="statement not covered" >writeHeader(responseHs, [n, v]))</span></span>
588
- } else <span class="cstat-no" title="statement not covered" >if (Array.isArray(usedResHeader)) {</span>
589
- <span class="cstat-no" title="statement not covered" > usedResHeader.forEach(<span class="fstat-no" title="function not covered" >(h</span>: [string, string]) =&gt; <span class="cstat-no" title="statement not covered" >writeHeader(responseHs, h))</span></span>
590
- } else <span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="if path not taken" >I</span>if (typeof usedResHeader === 'object') {</span>
591
- <span class="cstat-no" title="statement not covered" > Object.entries(usedResHeader as unknown as Record&lt;string, string&gt;).forEach(</span>
592
- <span class="fstat-no" title="function not covered" > ([</span>n, v]: [string, string]) =&gt; {
593
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!isHIgnoring(n)) <span class="cstat-no" title="statement not covered" >responseHs[n] = v</span></span>
594
- },
595
- )
596
- }
597
- &nbsp;
598
- const reqResInfo = <span class="cstat-no" title="statement not covered" >sanitize({</span>
599
- url,
600
- method: method || '',
601
- status: globStatus || resStatus || 0,
602
- request: {
603
- headers: requestHs,
604
- body: reqData,
605
- },
606
- response: {
607
- headers: responseHs,
608
- body: resData || rData,
609
- },
610
- })
611
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!reqResInfo) {</span>
612
- <span class="cstat-no" title="statement not covered" > app.debug.log('Openreplay: empty request/response info, skipping')</span>
613
- <span class="cstat-no" title="statement not covered" > return</span>
614
- }
615
- const requestStart = <span class="cstat-no" title="statement not covered" >axiosResponseObj.config.__openreplay_timing</span>
616
- const duration = <span class="cstat-no" title="statement not covered" >performance.now() - requestStart</span>
617
- &nbsp;
618
- <span class="cstat-no" title="statement not covered" > app.debug.log('Openreplay: final req object', reqResInfo)</span>
619
- <span class="cstat-no" title="statement not covered" > app.send(</span>
620
- NetworkRequest(
621
- 'xhr',
622
- String(method),
623
- String(reqResInfo.url),
624
- stringify(reqResInfo.request),
625
- stringify(reqResInfo.response),
626
- reqResInfo.status,
627
- requestStart + getTimeOrigin(),
628
- duration,
629
- 0,
630
- ),
631
- )
632
- }
633
- &nbsp;
634
- function <span class="fstat-no" title="function not covered" >getStartTime(</span>config: InternalAxiosRequestConfig) {
635
- <span class="cstat-no" title="statement not covered" > app.debug.log('Openreplay: capturing API request', config)</span>
636
- <span class="cstat-no" title="statement not covered" > config.__openreplay_timing = performance.now()</span>
637
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (opts.sessionTokenHeader) {</span>
638
- const header =
639
- <span class="cstat-no" title="statement not covered" > typeof opts.sessionTokenHeader === 'string'</span>
640
- ? opts.sessionTokenHeader
641
- : 'X-OpenReplay-Session-Token'
642
- const headerValue = <span class="cstat-no" title="statement not covered" >app.getSessionToken()</span>
643
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (headerValue) {</span>
644
- <span class="cstat-no" title="statement not covered" > config.headers.set(header, headerValue)</span>
645
- }
646
- }
647
- <span class="cstat-no" title="statement not covered" > return config</span>
648
- }
649
- &nbsp;
650
- function <span class="fstat-no" title="function not covered" >captureNetworkRequest(</span>response: AxiosResponse) {
651
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (opts.failuresOnly) <span class="cstat-no" title="statement not covered" >return response</span></span>
652
- <span class="cstat-no" title="statement not covered" > captureResponseData(response)</span>
653
- <span class="cstat-no" title="statement not covered" > return response</span>
654
- }
655
- &nbsp;
656
- function <span class="fstat-no" title="function not covered" >captureNetworkError(</span>error: Record&lt;string, any&gt;) {
657
- <span class="cstat-no" title="statement not covered" > app.debug.log('Openreplay: capturing API request error', error)</span>
658
- <span class="cstat-no" title="statement not covered" > if (isAxiosError(error) &amp;&amp; Boolean(error.response)) {</span>
659
- <span class="cstat-no" title="statement not covered" > captureResponseData(error.response as AxiosResponse)</span>
660
- } else <span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="if path not taken" >I</span>if (error instanceof Error) {</span>
661
- <span class="cstat-no" title="statement not covered" > app.send(getExceptionMessage(error, []))</span>
662
- }
663
- <span class="cstat-no" title="statement not covered" > return Promise.reject(error)</span>
664
- }
665
- &nbsp;
666
- function <span class="fstat-no" title="function not covered" >logRequestError(</span>ev: any) {
667
- <span class="cstat-no" title="statement not covered" > app.debug.log('Openreplay: failed API request, skipping', ev)</span>
668
- }
669
- &nbsp;
670
- const reqInt = <span class="cstat-no" title="statement not covered" >instance.interceptors.request.use(getStartTime, logRequestError, {</span>
671
- synchronous: true,
672
- })
673
- const resInt = <span class="cstat-no" title="statement not covered" >instance.interceptors.response.use(captureNetworkRequest, captureNetworkError, {</span>
674
- synchronous: true,
675
- })
676
- &nbsp;
677
- <span class="cstat-no" title="statement not covered" > app.attachStopCallback(<span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
678
- <span class="cstat-no" title="statement not covered" > instance.interceptors.request.eject?.(reqInt)</span>
679
- <span class="cstat-no" title="statement not covered" > instance.interceptors.response.eject?.(resInt)</span>
680
- })
681
- }
682
- &nbsp;
683
- function <span class="fstat-no" title="function not covered" >isAxiosError(</span>payload: Record&lt;string, any&gt;) {
684
- <span class="cstat-no" title="statement not covered" > return isObject(payload) &amp;&amp; payload.isAxiosError === true</span>
685
- }
686
- &nbsp;
687
- function <span class="fstat-no" title="function not covered" >isObject(</span>thing: any) {
688
- <span class="cstat-no" title="statement not covered" > return thing !== null &amp;&amp; typeof thing === 'object'</span>
689
- }
690
- &nbsp;</pre></td></tr></table></pre>
691
-
692
- <div class='push'></div><!-- for sticky footer -->
693
- </div><!-- /wrapper -->
694
- <div class='footer quiet pad2 space-top1 center small'>
695
- Code coverage generated by
696
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
697
- at 2024-06-04T11:50:55.506Z
698
- </div>
699
- <script src="../../prettify.js"></script>
700
- <script>
701
- window.onload = function () {
702
- prettyPrint();
703
- };
704
- </script>
705
- <script src="../../sorter.js"></script>
706
- <script src="../../block-navigation.js"></script>
707
- </body>
708
- </html>
709
-