qpp-style 9.34.2-beta.0 → 9.34.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (205) hide show
  1. package/components/Header/HeaderContainer.jsx +1 -4
  2. package/components/Header/HeaderLogo.jsx +3 -15
  3. package/components/Header/HeaderUI.jsx +0 -1
  4. package/components/SideNav/UI/SideNavUI.jsx +2 -32
  5. package/coverage/clover.xml +540 -594
  6. package/coverage/coverage-final.json +69 -69
  7. package/coverage/lcov-report/components/Accordion/index.html +20 -20
  8. package/coverage/lcov-report/components/Accordion/index.jsx.html +121 -109
  9. package/coverage/lcov-report/components/Button/index.html +116 -0
  10. package/coverage/lcov-report/components/Button/index.js.html +355 -0
  11. package/coverage/lcov-report/components/Error/Collapsible.jsx.html +98 -98
  12. package/coverage/lcov-report/components/Error/ErrorUI.jsx.html +33 -33
  13. package/coverage/lcov-report/components/Error/index.html +23 -23
  14. package/coverage/lcov-report/components/Footer/FooterUI.jsx.html +395 -557
  15. package/coverage/lcov-report/components/Footer/SocialLinks.jsx.html +70 -70
  16. package/coverage/lcov-report/components/Footer/Subscribe.jsx.html +44 -44
  17. package/coverage/lcov-report/components/Footer/index.html +33 -48
  18. package/coverage/lcov-report/components/{SideNav/UI → GovBanner}/index.html +30 -45
  19. package/coverage/lcov-report/components/GovBanner/index.js.html +436 -0
  20. package/coverage/lcov-report/components/Header/HeaderAccountMenu.jsx.html +367 -0
  21. package/coverage/lcov-report/components/{SideNav/Details/IndividualDetails.jsx.html → Header/HeaderCancel.jsx.html} +35 -41
  22. package/coverage/lcov-report/components/Header/HeaderContainer.jsx.html +307 -0
  23. package/coverage/lcov-report/components/Header/HeaderLogo.jsx.html +211 -0
  24. package/coverage/lcov-report/components/Header/HeaderMenuButton.js.html +235 -0
  25. package/coverage/lcov-report/components/Header/HeaderMenuItem.jsx.html +802 -0
  26. package/coverage/lcov-report/components/Header/HeaderMenuLink.js.html +253 -0
  27. package/coverage/lcov-report/components/Header/HeaderMenuSignOutButton.js.html +271 -0
  28. package/coverage/lcov-report/components/Header/HeaderMobileButton.js.html +196 -0
  29. package/coverage/lcov-report/components/Header/HeaderUI.jsx.html +586 -0
  30. package/coverage/lcov-report/components/Header/HelpIcon.jsx.html +181 -0
  31. package/coverage/lcov-report/components/Header/ImpersonatorBanner.jsx.html +328 -0
  32. package/coverage/lcov-report/components/Header/NavigationButtonIcon.jsx.html +166 -0
  33. package/coverage/lcov-report/components/Header/hooks.js.html +283 -0
  34. package/coverage/lcov-report/components/Header/index.html +326 -0
  35. package/coverage/lcov-report/components/Header/utag-helpers.js.html +112 -0
  36. package/coverage/lcov-report/components/Infotip/Infotip.jsx.html +96 -108
  37. package/coverage/lcov-report/components/Infotip/InfotipContent.jsx.html +223 -0
  38. package/coverage/lcov-report/components/Infotip/InfotipIcon.jsx.html +49 -49
  39. package/coverage/lcov-report/components/Infotip/index.html +32 -32
  40. package/coverage/lcov-report/components/Infotip/index.js.html +1 -1
  41. package/coverage/lcov-report/components/Modal/LegacyModal.jsx.html +116 -116
  42. package/coverage/lcov-report/components/Modal/Modal.jsx.html +252 -252
  43. package/coverage/lcov-report/components/Modal/index.html +38 -38
  44. package/coverage/lcov-report/components/Modal/index.jsx.html +31 -31
  45. package/coverage/lcov-report/components/NotificationBanner/CollapsedView.js.html +202 -0
  46. package/coverage/lcov-report/components/NotificationBanner/ExpandedView.js.html +220 -0
  47. package/coverage/lcov-report/components/{SideNav/Content → NotificationBanner}/index.html +49 -49
  48. package/coverage/lcov-report/components/NotificationBanner/index.js.html +748 -0
  49. package/coverage/lcov-report/components/SanitizedContent/index.html +19 -19
  50. package/coverage/lcov-report/components/SanitizedContent/index.jsx.html +287 -218
  51. package/coverage/lcov-report/components/SessionDialogUI.jsx.html +440 -440
  52. package/coverage/lcov-report/components/SideNav/Chart/ScoreChart.jsx.html +7 -7
  53. package/coverage/lcov-report/components/SideNav/Chart/index.html +1 -16
  54. package/coverage/lcov-report/components/SideNav/{AnimationGroup → Content/SelectRole}/index.html +29 -29
  55. package/coverage/lcov-report/components/SideNav/Content/SelectRole/utils.js.html +532 -0
  56. package/coverage/lcov-report/components/SideNav/helpers.js.html +1125 -54
  57. package/coverage/lcov-report/components/SideNav/index.html +19 -19
  58. package/coverage/lcov-report/components/Tooltip/Tooltip.jsx.html +9 -9
  59. package/coverage/lcov-report/components/Tooltip/index.html +1 -1
  60. package/coverage/lcov-report/components/Tooltip/index.js.html +1 -1
  61. package/coverage/lcov-report/components/Tooltip/position.js.html +1 -1
  62. package/coverage/lcov-report/components/hooks/index.html +21 -21
  63. package/coverage/lcov-report/components/hooks/useGetConfig.js.html +131 -128
  64. package/coverage/lcov-report/components/index.html +21 -21
  65. package/coverage/lcov-report/index.html +113 -143
  66. package/coverage/lcov-report/lib/Chevron.jsx.html +36 -36
  67. package/coverage/lcov-report/lib/SvgComponents.jsx.html +1471 -973
  68. package/coverage/lcov-report/lib/index.html +21 -36
  69. package/coverage/lcov-report/react/components/Accordion/index.html +1 -1
  70. package/coverage/lcov-report/react/components/Accordion/index.jsx.html +1 -1
  71. package/coverage/lcov-report/react/components/Button/index.html +1 -1
  72. package/coverage/lcov-report/react/components/Button/index.js.html +1 -1
  73. package/coverage/lcov-report/react/components/Dropdown/index.html +1 -1
  74. package/coverage/lcov-report/react/components/Dropdown/index.js.html +1 -1
  75. package/coverage/lcov-report/react/components/Error/Collapsible.jsx.html +1 -1
  76. package/coverage/lcov-report/react/components/Error/ErrorUI.jsx.html +1 -1
  77. package/coverage/lcov-report/react/components/Error/error.js.html +2 -2
  78. package/coverage/lcov-report/react/components/Error/index.html +1 -1
  79. package/coverage/lcov-report/react/components/Footer/FooterUI.jsx.html +1 -1
  80. package/coverage/lcov-report/react/components/Footer/LegacyFooterUI.jsx.html +16 -16
  81. package/coverage/lcov-report/react/components/Footer/SocialLinks.jsx.html +1 -1
  82. package/coverage/lcov-report/react/components/Footer/Subscribe.jsx.html +1 -1
  83. package/coverage/lcov-report/react/components/Footer/footer.js.html +1 -1
  84. package/coverage/lcov-report/react/components/Footer/index.html +1 -1
  85. package/coverage/lcov-report/react/components/GovBanner/index.html +1 -1
  86. package/coverage/lcov-report/react/components/GovBanner/index.js.html +1 -1
  87. package/coverage/lcov-report/react/components/Header/HeaderAccountMenu.jsx.html +3 -3
  88. package/coverage/lcov-report/react/components/Header/HeaderCancel.jsx.html +1 -1
  89. package/coverage/lcov-report/react/components/Header/HeaderContainer.jsx.html +1 -1
  90. package/coverage/lcov-report/react/components/Header/HeaderLogo.jsx.html +1 -1
  91. package/coverage/lcov-report/react/components/Header/HeaderMenuButton.js.html +1 -1
  92. package/coverage/lcov-report/react/components/Header/HeaderMenuItem.jsx.html +2 -2
  93. package/coverage/lcov-report/react/components/Header/HeaderMenuLink.js.html +1 -1
  94. package/coverage/lcov-report/react/components/Header/HeaderMenuSignOutButton.js.html +1 -1
  95. package/coverage/lcov-report/react/components/Header/HeaderMobileButton.js.html +1 -1
  96. package/coverage/lcov-report/react/components/Header/HeaderUI.jsx.html +2 -2
  97. package/coverage/lcov-report/react/components/Header/HelpIcon.jsx.html +1 -1
  98. package/coverage/lcov-report/react/components/Header/ImpersonatorBanner.jsx.html +4 -4
  99. package/coverage/lcov-report/react/components/Header/NavigationButtonIcon.jsx.html +1 -1
  100. package/coverage/lcov-report/react/components/Header/header.js.html +2 -2
  101. package/coverage/lcov-report/react/components/Header/hooks.js.html +1 -1
  102. package/coverage/lcov-report/react/components/Header/index.html +1 -1
  103. package/coverage/lcov-report/react/components/Header/utag-helpers.js.html +1 -1
  104. package/coverage/lcov-report/react/components/Infotip/Infotip.jsx.html +30 -30
  105. package/coverage/lcov-report/react/components/Infotip/InfotipContent.jsx.html +8 -8
  106. package/coverage/lcov-report/react/components/Infotip/InfotipIcon.jsx.html +9 -9
  107. package/coverage/lcov-report/react/components/Infotip/index.html +23 -38
  108. package/coverage/lcov-report/react/components/Infotip/index.js.html +1 -1
  109. package/coverage/lcov-report/react/components/Modal/LegacyModal.jsx.html +3 -3
  110. package/coverage/lcov-report/react/components/Modal/Modal.jsx.html +40 -40
  111. package/coverage/lcov-report/react/components/Modal/index.html +32 -32
  112. package/coverage/lcov-report/react/components/Modal/index.jsx.html +19 -19
  113. package/coverage/lcov-report/react/components/NotificationBanner/CollapsedView.js.html +3 -3
  114. package/coverage/lcov-report/react/components/NotificationBanner/ExpandedView.js.html +1 -1
  115. package/coverage/lcov-report/react/components/NotificationBanner/index.html +1 -1
  116. package/coverage/lcov-report/react/components/NotificationBanner/index.js.html +4 -4
  117. package/coverage/lcov-report/react/components/SanitizedContent/index.html +20 -20
  118. package/coverage/lcov-report/react/components/SanitizedContent/index.jsx.html +52 -16
  119. package/coverage/lcov-report/{components/SideNav/Links/NavLinkInline.jsx.html → react/components/Session/Session.jsx.html} +126 -150
  120. package/coverage/lcov-report/{components/SideNav/Links/index.js.html → react/components/Session/SessionDialogWrapped.jsx.html} +20 -23
  121. package/coverage/lcov-report/{components/SideNav/Details → react/components/Session}/index.html +29 -29
  122. package/coverage/lcov-report/{components/SideNav/UI/index.js.html → react/components/Session/index.jsx.html} +5 -5
  123. package/coverage/lcov-report/react/components/SessionDialog/index.html +1 -1
  124. package/coverage/lcov-report/react/components/SessionDialog/sessionDialog.js.html +2 -2
  125. package/coverage/lcov-report/react/components/SessionDialogUI.jsx.html +30 -90
  126. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/AnimationGroup.jsx.html +1 -1
  127. package/coverage/lcov-report/react/components/SideNav/AnimationGroup/index.html +1 -1
  128. package/coverage/lcov-report/react/components/SideNav/Chart/ScoreChart.jsx.html +2 -2
  129. package/coverage/lcov-report/react/components/SideNav/Chart/index.html +1 -1
  130. package/coverage/lcov-report/react/components/SideNav/Chart/index.js.html +1 -1
  131. package/coverage/lcov-report/react/components/SideNav/Content/LevelOneContent.jsx.html +1 -1
  132. package/coverage/lcov-report/react/components/SideNav/Content/LevelTwoContent.jsx.html +1 -1
  133. package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/index.html +13 -13
  134. package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/index.js.html +2 -2
  135. package/coverage/lcov-report/react/components/SideNav/Content/SelectRole/utils.js.html +53 -26
  136. package/coverage/lcov-report/react/components/SideNav/Content/index.html +1 -1
  137. package/coverage/lcov-report/react/components/SideNav/Content/index.js.html +1 -1
  138. package/coverage/lcov-report/react/components/SideNav/Details/IndividualDetails.jsx.html +1 -1
  139. package/coverage/lcov-report/react/components/SideNav/Details/PracticeDetails.jsx.html +25 -7
  140. package/coverage/lcov-report/react/components/SideNav/Details/index.html +13 -13
  141. package/coverage/lcov-report/react/components/SideNav/Details/index.js.html +1 -1
  142. package/coverage/lcov-report/react/components/SideNav/Links/CmsSwitchLink.jsx.html +1 -1
  143. package/coverage/lcov-report/react/components/SideNav/Links/NavItemInline.jsx.html +1 -1
  144. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkContainer.jsx.html +1 -1
  145. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkDrawer.jsx.html +103 -46
  146. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkInline.jsx.html +1 -1
  147. package/coverage/lcov-report/react/components/SideNav/Links/NavLinkToggle.jsx.html +1 -1
  148. package/coverage/lcov-report/react/components/SideNav/Links/index.html +17 -17
  149. package/coverage/lcov-report/react/components/SideNav/Links/index.js.html +1 -1
  150. package/coverage/lcov-report/react/components/SideNav/UI/SideNavUI.jsx.html +213 -69
  151. package/coverage/lcov-report/react/components/SideNav/UI/default-markup.js.html +97 -0
  152. package/coverage/lcov-report/react/components/SideNav/UI/index.html +34 -19
  153. package/coverage/lcov-report/react/components/SideNav/UI/index.js.html +1 -1
  154. package/coverage/lcov-report/react/components/SideNav/helpers.js.html +86 -71
  155. package/coverage/lcov-report/react/components/SideNav/index.html +25 -25
  156. package/coverage/lcov-report/react/components/SideNav/index.js.html +14 -80
  157. package/coverage/lcov-report/react/components/Tooltip/Tooltip.jsx.html +1 -1
  158. package/coverage/lcov-report/react/components/Tooltip/index.html +1 -1
  159. package/coverage/lcov-report/react/components/Tooltip/index.js.html +1 -1
  160. package/coverage/lcov-report/react/components/Tooltip/position.js.html +1 -1
  161. package/coverage/lcov-report/react/components/hooks/index.html +1 -1
  162. package/coverage/lcov-report/react/components/hooks/useGetConfig.js.html +1 -1
  163. package/coverage/lcov-report/react/components/index.html +21 -21
  164. package/coverage/lcov-report/react/index.html +1 -1
  165. package/coverage/lcov-report/react/index.js.html +3 -3
  166. package/coverage/lcov-report/react/lib/Chevron.jsx.html +1 -1
  167. package/coverage/lcov-report/react/lib/SvgComponents.jsx.html +71 -71
  168. package/coverage/lcov-report/react/lib/index.html +15 -15
  169. package/coverage/lcov-report/react/lib/svg-definitions.svg.html +1 -1
  170. package/coverage/lcov-report/react/session/index.html +58 -43
  171. package/coverage/lcov-report/react/session/index.js.html +1 -1
  172. package/coverage/lcov-report/react/session/isAuthV2.js.html +151 -0
  173. package/coverage/lcov-report/react/session/logout.js.html +43 -43
  174. package/coverage/lcov-report/react/session/refresh.js.html +69 -60
  175. package/coverage/lcov-report/react/session/ttl.js.html +44 -80
  176. package/coverage/lcov-report/session/index.html +53 -53
  177. package/coverage/lcov-report/session/index.js.html +13 -13
  178. package/coverage/lcov-report/session/logout.js.html +145 -127
  179. package/coverage/lcov-report/session/refresh.js.html +90 -90
  180. package/coverage/lcov-report/session/ttl.js.html +77 -77
  181. package/coverage/lcov.info +888 -1011
  182. package/dist/browser.js +1 -1
  183. package/dist/browser.js.map +1 -1
  184. package/dist/index.js +1 -1
  185. package/dist/index.js.map +1 -1
  186. package/dist/react/index.js +1 -1
  187. package/dist/react/index.js.map +1 -1
  188. package/package.json +2 -2
  189. package/styles/qppds/components/sidebar/_sidebar-animation.scss +6 -41
  190. package/coverage/lcov-report/components/Footer/LegacyFooterUI.jsx.html +0 -667
  191. package/coverage/lcov-report/components/SideNav/AnimationGroup/AnimationGroup.jsx.html +0 -166
  192. package/coverage/lcov-report/components/SideNav/Chart/index.js.html +0 -94
  193. package/coverage/lcov-report/components/SideNav/Content/LevelOneContent.jsx.html +0 -709
  194. package/coverage/lcov-report/components/SideNav/Content/LevelTwoContent.jsx.html +0 -733
  195. package/coverage/lcov-report/components/SideNav/Content/index.js.html +0 -97
  196. package/coverage/lcov-report/components/SideNav/Details/PracticeDetails.jsx.html +0 -220
  197. package/coverage/lcov-report/components/SideNav/Details/index.js.html +0 -97
  198. package/coverage/lcov-report/components/SideNav/Links/CmsSwitchLink.jsx.html +0 -208
  199. package/coverage/lcov-report/components/SideNav/Links/NavItemInline.jsx.html +0 -247
  200. package/coverage/lcov-report/components/SideNav/Links/NavLinkContainer.jsx.html +0 -199
  201. package/coverage/lcov-report/components/SideNav/Links/NavLinkDrawer.jsx.html +0 -832
  202. package/coverage/lcov-report/components/SideNav/Links/NavLinkToggle.jsx.html +0 -187
  203. package/coverage/lcov-report/components/SideNav/Links/index.html +0 -206
  204. package/coverage/lcov-report/components/SideNav/UI/SideNavUI.jsx.html +0 -1084
  205. package/coverage/lcov-report/lib/svg-definitions.svg.html +0 -460
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">92.3% </span>
26
+ <span class="strong">5% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>12/13</span>
28
+ <span class='fraction'>1/20</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">42.85% </span>
33
+ <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>3/7</span>
35
+ <span class='fraction'>0/9</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">75% </span>
40
+ <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>3/4</span>
42
+ <span class='fraction'>0/3</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">92.3% </span>
47
+ <span class="strong">5% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>12/13</span>
49
+ <span class='fraction'>1/20</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line high'></div>
64
+ <div class='status-line low'></div>
65
65
  <pre><table class="coverage">
66
66
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
67
  <a name='L2'></a><a href='#L2'>2</a>
@@ -112,7 +112,10 @@
112
112
  <a name='L47'></a><a href='#L47'>47</a>
113
113
  <a name='L48'></a><a href='#L48'>48</a>
114
114
  <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
116
119
  <span class="cline-any cline-neutral">&nbsp;</span>
117
120
  <span class="cline-any cline-neutral">&nbsp;</span>
118
121
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -123,93 +126,99 @@
123
126
  <span class="cline-any cline-neutral">&nbsp;</span>
124
127
  <span class="cline-any cline-neutral">&nbsp;</span>
125
128
  <span class="cline-any cline-neutral">&nbsp;</span>
126
- <span class="cline-any cline-neutral">&nbsp;</span>
127
- <span class="cline-any cline-yes">4x</span>
128
- <span class="cline-any cline-yes">3x</span>
129
- <span class="cline-any cline-neutral">&nbsp;</span>
130
- <span class="cline-any cline-yes">3x</span>
131
- <span class="cline-any cline-yes">3x</span>
132
- <span class="cline-any cline-neutral">&nbsp;</span>
129
+ <span class="cline-any cline-yes">2x</span>
130
+ <span class="cline-any cline-no">&nbsp;</span>
131
+ <span class="cline-any cline-no">&nbsp;</span>
132
+ <span class="cline-any cline-no">&nbsp;</span>
133
+ <span class="cline-any cline-no">&nbsp;</span>
134
+ <span class="cline-any cline-no">&nbsp;</span>
133
135
  <span class="cline-any cline-neutral">&nbsp;</span>
134
136
  <span class="cline-any cline-neutral">&nbsp;</span>
135
137
  <span class="cline-any cline-neutral">&nbsp;</span>
136
138
  <span class="cline-any cline-neutral">&nbsp;</span>
139
+ <span class="cline-any cline-no">&nbsp;</span>
137
140
  <span class="cline-any cline-neutral">&nbsp;</span>
138
141
  <span class="cline-any cline-neutral">&nbsp;</span>
139
142
  <span class="cline-any cline-neutral">&nbsp;</span>
140
143
  <span class="cline-any cline-neutral">&nbsp;</span>
141
- <span class="cline-any cline-yes">3x</span>
142
- <span class="cline-any cline-yes">1x</span>
143
- <span class="cline-any cline-yes">1x</span>
144
+ <span class="cline-any cline-no">&nbsp;</span>
145
+ <span class="cline-any cline-no">&nbsp;</span>
146
+ <span class="cline-any cline-no">&nbsp;</span>
144
147
  <span class="cline-any cline-neutral">&nbsp;</span>
145
148
  <span class="cline-any cline-neutral">&nbsp;</span>
146
149
  <span class="cline-any cline-neutral">&nbsp;</span>
147
- <span class="cline-any cline-yes">3x</span>
148
- <span class="cline-any cline-yes">2x</span>
149
- <span class="cline-any cline-yes">2x</span>
150
+ <span class="cline-any cline-no">&nbsp;</span>
151
+ <span class="cline-any cline-no">&nbsp;</span>
152
+ <span class="cline-any cline-no">&nbsp;</span>
150
153
  <span class="cline-any cline-neutral">&nbsp;</span>
151
154
  <span class="cline-any cline-neutral">&nbsp;</span>
152
- <span class="cline-any cline-yes">2x</span>
153
- <span class="cline-any cline-neutral">&nbsp;</span>
155
+ <span class="cline-any cline-no">&nbsp;</span>
154
156
  <span class="cline-any cline-neutral">&nbsp;</span>
155
- <span class="cline-any cline-yes">3x</span>
156
157
  <span class="cline-any cline-neutral">&nbsp;</span>
158
+ <span class="cline-any cline-no">&nbsp;</span>
159
+ <span class="cline-any cline-no">&nbsp;</span>
160
+ <span class="cline-any cline-no">&nbsp;</span>
161
+ <span class="cline-any cline-no">&nbsp;</span>
157
162
  <span class="cline-any cline-neutral">&nbsp;</span>
158
163
  <span class="cline-any cline-no">&nbsp;</span>
159
164
  <span class="cline-any cline-neutral">&nbsp;</span>
165
+ <span class="cline-any cline-no">&nbsp;</span>
160
166
  <span class="cline-any cline-neutral">&nbsp;</span>
161
167
  <span class="cline-any cline-neutral">&nbsp;</span>
162
168
  <span class="cline-any cline-neutral">&nbsp;</span>
163
169
  <span class="cline-any cline-neutral">&nbsp;</span>
164
170
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import cookie from 'cookie';
165
- import axios from 'axios';
166
- import LogoutSession from './logout.js';
171
+ import logoutSession from './logout.js';
172
+ import { shouldUseAuthV2 } from './isAuthV2.js';
167
173
  &nbsp;
168
174
  /**
169
175
  * Makes an API request to refresh the session token cookie, if it exists.
170
176
  * @param {Object} [options] - Optional configuration parameters.
171
177
  * @param {function} [options.onSuccess] - An optional success callback.
172
178
  * @param {function} [options.onError] - An optional error callback.
173
- * @param {Object} [options.window] - The DOM window.
174
179
  * @return {Function} Returns a promise
175
180
  */
176
- const RefreshSession = (options = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> =&gt; {
177
- let cookies = cookie.parse(options.window.document.cookie);
181
+ const refreshSession = <span class="fstat-no" title="function not covered" >as</span>ync (options = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> =&gt; {
182
+ const url = <span class="cstat-no" title="statement not covered" >'/api/auth/sessions/refresh';</span>
183
+ const isAuthV2 = <span class="cstat-no" title="statement not covered" >await shouldUseAuthV2();</span>
184
+ const version = <span class="cstat-no" title="statement not covered" >isAuthV2 ? 'v2' : 'v1';</span>
185
+ let cookies = <span class="cstat-no" title="statement not covered" >cookie.parse(window.document.cookie);</span>
186
+ const headers = <span class="cstat-no" title="statement not covered" >new Headers({</span>
187
+ Accept: `application/vnd.qpp.cms.gov.${version}+json`,
188
+ 'Content-Type': 'application/json',
189
+ Authorization: `Bearer ${cookies.qpp_auth_token}`,
190
+ });
191
+ const fetchOptions = <span class="cstat-no" title="statement not covered" >{</span>
192
+ method: 'POST',
193
+ headers,
194
+ };
178
195
  &nbsp;
179
- <span class="missing-if-branch" title="else path not taken" >E</span>if (cookies.hasOwnProperty('qpp_auth_token')) {
180
- const requestOptions = {
181
- method: 'POST',
182
- url: '/api/auth/sessions/refresh',
183
- headers: {
184
- Accept: 'application/vnd.qpp.cms.gov.v1+json',
185
- 'Content-Type': 'application/json',
186
- Authorization: `Bearer ${cookies.qpp_auth_token}`
187
- }
188
- };
189
- &nbsp;
190
- let onSuccess = (/*response*/) =&gt; {
191
- <span class="missing-if-branch" title="else path not taken" >E</span>if (typeof options.onSuccess === 'function') {
192
- options.onSuccess();
193
- }
194
- };
196
+ const onSuccess = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
197
+ <span class="cstat-no" title="statement not covered" > if (typeof options.onSuccess === 'function') {</span>
198
+ <span class="cstat-no" title="statement not covered" > options.onSuccess();</span>
199
+ }
200
+ };
195
201
  &nbsp;
196
- let onError = (/*response*/) =&gt; {
197
- <span class="missing-if-branch" title="else path not taken" >E</span>if (typeof options.onError === 'function') {
198
- options.onError();
199
- }
202
+ const onError = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
203
+ <span class="cstat-no" title="statement not covered" > if (typeof options.onError === 'function') {</span>
204
+ <span class="cstat-no" title="statement not covered" > options.onError();</span>
205
+ }
200
206
  &nbsp;
201
- return LogoutSession(options.window); // eslint-disable-line new-cap
202
- };
207
+ <span class="cstat-no" title="statement not covered" > return logoutSession(window); </span>// eslint-disable-line new-cap
208
+ };
203
209
  &nbsp;
204
- return axios(requestOptions)
205
- .then(onSuccess, onError)
206
- .catch(<span class="fstat-no" title="function not covered" >fu</span>nction(err) {
207
- <span class="cstat-no" title="statement not covered" > console.log(err);</span>
208
- });
210
+ <span class="cstat-no" title="statement not covered" > try {</span>
211
+ const response = <span class="cstat-no" title="statement not covered" >await fetch(url, fetchOptions);</span>
212
+ <span class="cstat-no" title="statement not covered" > if (response.ok) {</span>
213
+ <span class="cstat-no" title="statement not covered" > return onSuccess();</span>
209
214
  }
215
+ <span class="cstat-no" title="statement not covered" > throw new Error('Unable to refresh session');</span>
216
+ } catch (error) {
217
+ <span class="cstat-no" title="statement not covered" > onError();</span>
218
+ }
210
219
  };
211
220
  &nbsp;
212
- export default RefreshSession;
221
+ export default refreshSession;
213
222
  &nbsp;</pre></td></tr></table></pre>
214
223
 
215
224
  <div class='push'></div><!-- for sticky footer -->
@@ -217,7 +226,7 @@ export default RefreshSession;
217
226
  <div class='footer quiet pad2 space-top1 center small'>
218
227
  Code coverage generated by
219
228
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
220
- at 2023-05-08T18:31:29.023Z
229
+ at 2023-09-08T00:45:02.387Z
221
230
  </div>
222
231
  <script src="../../prettify.js"></script>
223
232
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">100% </span>
26
+ <span class="strong">7.69% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>9/9</span>
28
+ <span class='fraction'>1/13</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">83.33% </span>
33
+ <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>5/6</span>
35
+ <span class='fraction'>0/4</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
40
+ <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>3/3</span>
42
+ <span class='fraction'>0/1</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">100% </span>
47
+ <span class="strong">7.69% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>9/9</span>
49
+ <span class='fraction'>1/13</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line high'></div>
64
+ <div class='status-line low'></div>
65
65
  <pre><table class="coverage">
66
66
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
67
  <a name='L2'></a><a href='#L2'>2</a>
@@ -88,89 +88,53 @@
88
88
  <a name='L23'></a><a href='#L23'>23</a>
89
89
  <a name='L24'></a><a href='#L24'>24</a>
90
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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
91
+ <a name='L26'></a><a href='#L26'>26</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
104
92
  <span class="cline-any cline-neutral">&nbsp;</span>
105
- <span class="cline-any cline-yes">4x</span>
106
- <span class="cline-any cline-yes">79x</span>
107
- <span class="cline-any cline-neutral">&nbsp;</span>
108
- <span class="cline-any cline-neutral">&nbsp;</span>
109
- <span class="cline-any cline-neutral">&nbsp;</span>
110
- <span class="cline-any cline-neutral">&nbsp;</span>
111
- <span class="cline-any cline-neutral">&nbsp;</span>
112
- <span class="cline-any cline-neutral">&nbsp;</span>
113
- <span class="cline-any cline-neutral">&nbsp;</span>
114
- <span class="cline-any cline-neutral">&nbsp;</span>
115
- <span class="cline-any cline-neutral">&nbsp;</span>
116
- <span class="cline-any cline-yes">3x</span>
117
- <span class="cline-any cline-neutral">&nbsp;</span>
118
- <span class="cline-any cline-neutral">&nbsp;</span>
119
- <span class="cline-any cline-neutral">&nbsp;</span>
120
- <span class="cline-any cline-neutral">&nbsp;</span>
121
- <span class="cline-any cline-yes">79x</span>
122
- <span class="cline-any cline-neutral">&nbsp;</span>
123
- <span class="cline-any cline-neutral">&nbsp;</span>
124
- <span class="cline-any cline-yes">2x</span>
125
93
  <span class="cline-any cline-yes">2x</span>
126
- <span class="cline-any cline-yes">1x</span>
94
+ <span class="cline-any cline-no">&nbsp;</span>
95
+ <span class="cline-any cline-no">&nbsp;</span>
96
+ <span class="cline-any cline-no">&nbsp;</span>
97
+ <span class="cline-any cline-no">&nbsp;</span>
127
98
  <span class="cline-any cline-neutral">&nbsp;</span>
128
99
  <span class="cline-any cline-neutral">&nbsp;</span>
129
100
  <span class="cline-any cline-neutral">&nbsp;</span>
130
101
  <span class="cline-any cline-neutral">&nbsp;</span>
131
- <span class="cline-any cline-yes">1x</span>
102
+ <span class="cline-any cline-no">&nbsp;</span>
103
+ <span class="cline-any cline-no">&nbsp;</span>
104
+ <span class="cline-any cline-no">&nbsp;</span>
105
+ <span class="cline-any cline-no">&nbsp;</span>
106
+ <span class="cline-any cline-no">&nbsp;</span>
107
+ <span class="cline-any cline-no">&nbsp;</span>
132
108
  <span class="cline-any cline-neutral">&nbsp;</span>
109
+ <span class="cline-any cline-no">&nbsp;</span>
133
110
  <span class="cline-any cline-neutral">&nbsp;</span>
111
+ <span class="cline-any cline-no">&nbsp;</span>
134
112
  <span class="cline-any cline-neutral">&nbsp;</span>
135
- <span class="cline-any cline-yes">2x</span>
136
113
  <span class="cline-any cline-neutral">&nbsp;</span>
137
114
  <span class="cline-any cline-neutral">&nbsp;</span>
138
115
  <span class="cline-any cline-neutral">&nbsp;</span>
139
- <span class="cline-any cline-neutral">&nbsp;</span>
140
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import axios from 'axios';
141
- &nbsp;
142
- const fetchTtl = token =&gt; {
143
- const requestOptions = {
144
- method: 'GET',
145
- url: '/api/auth/sessions/ttl',
146
- headers: {
147
- Accept: 'application/vnd.qpp.cms.gov.v1+json',
148
- 'Content-Type': 'application/json',
149
- Authorization: `Bearer ${token}`
150
- },
151
- transformResponse: [
152
- function(response) {
153
- return JSON.parse(response).data;
154
- }
155
- ]
156
- };
157
- &nbsp;
158
- return axios(requestOptions).then(response =&gt; {
159
- let expiry;
160
- &nbsp;
161
- <span class="missing-if-branch" title="else path not taken" >E</span>if (response &amp;&amp; response.data) {
162
- if (response.data.hasOwnProperty('time_remaining')) {
163
- expiry = response.data.time_remaining;
164
- } else {
165
- // See https://tools.ietf.org/html/rfc7519
166
- // `expiry` is a NumericDate representing "seconds since the epoch"
167
- // and it needs to be milliseconds to get a JavaScript date from it.
168
- expiry = new Date(response.data.ttl * 1000);
169
- }
170
- }
116
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { shouldUseAuthV2 } from './isAuthV2';
171
117
  &nbsp;
172
- return expiry;
173
- });
118
+ const fetchTtl = <span class="fstat-no" title="function not covered" >as</span>ync (token) =&gt; {
119
+ const url = <span class="cstat-no" title="statement not covered" >'/api/auth/sessions/ttl';</span>
120
+ const isAuthV2 = <span class="cstat-no" title="statement not covered" >await shouldUseAuthV2();</span>
121
+ const version = <span class="cstat-no" title="statement not covered" >isAuthV2 ? 'v2' : 'v1';</span>
122
+ const headers = <span class="cstat-no" title="statement not covered" >new Headers({</span>
123
+ Accept: `application/vnd.qpp.cms.gov.${version}+json`,
124
+ 'Content-Type': 'application/json',
125
+ Authorization: `Bearer ${token}`,
126
+ });
127
+ const fetchOptions = <span class="cstat-no" title="statement not covered" >{ headers };</span>
128
+ <span class="cstat-no" title="statement not covered" > try {</span>
129
+ const response = <span class="cstat-no" title="statement not covered" >await fetch(url, fetchOptions);</span>
130
+ const json = <span class="cstat-no" title="statement not covered" >await response.json();</span>
131
+ <span class="cstat-no" title="statement not covered" > if (response.ok) {</span>
132
+ <span class="cstat-no" title="statement not covered" > return json.data.time_remaining;</span>
133
+ }
134
+ <span class="cstat-no" title="statement not covered" > return 0;</span>
135
+ } catch (error) {
136
+ <span class="cstat-no" title="statement not covered" > return 0;</span>
137
+ }
174
138
  };
175
139
  &nbsp;
176
140
  export default fetchTtl;
@@ -181,7 +145,7 @@ export default fetchTtl;
181
145
  <div class='footer quiet pad2 space-top1 center small'>
182
146
  Code coverage generated by
183
147
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
184
- at 2023-05-08T18:31:29.023Z
148
+ at 2023-09-08T00:45:02.387Z
185
149
  </div>
186
150
  <script src="../../prettify.js"></script>
187
151
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">80.85% </span>
26
+ <span class="strong">28.57% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>38/47</span>
28
+ <span class='fraction'>48/168</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">48% </span>
33
+ <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>12/25</span>
35
+ <span class='fraction'>0/0</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">76.92% </span>
40
+ <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>10/13</span>
42
+ <span class='fraction'>0/6</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">80.85% </span>
47
+ <span class="strong">28.57% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>38/47</span>
49
+ <span class='fraction'>48/168</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line high'></div>
64
+ <div class='status-line low'></div>
65
65
  <div class="pad1">
66
66
  <table class="coverage-summary">
67
67
  <thead>
@@ -79,63 +79,63 @@
79
79
  </tr>
80
80
  </thead>
81
81
  <tbody><tr>
82
- <td class="file empty" data-value="index.js"><a href="index.js.html">index.js</a></td>
83
- <td data-value="0" class="pic empty">
84
- <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
82
+ <td class="file high" data-value="index.js"><a href="index.js.html">index.js</a></td>
83
+ <td data-value="100" class="pic high">
84
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
85
85
  </td>
86
- <td data-value="0" class="pct empty">0%</td>
87
- <td data-value="0" class="abs empty">0/0</td>
88
- <td data-value="0" class="pct empty">0%</td>
89
- <td data-value="0" class="abs empty">0/0</td>
90
- <td data-value="0" class="pct empty">0%</td>
91
- <td data-value="0" class="abs empty">0/0</td>
92
- <td data-value="0" class="pct empty">0%</td>
93
- <td data-value="0" class="abs empty">0/0</td>
86
+ <td data-value="100" class="pct high">100%</td>
87
+ <td data-value="5" class="abs high">5/5</td>
88
+ <td data-value="100" class="pct high">100%</td>
89
+ <td data-value="0" class="abs high">0/0</td>
90
+ <td data-value="100" class="pct high">100%</td>
91
+ <td data-value="0" class="abs high">0/0</td>
92
+ <td data-value="100" class="pct high">100%</td>
93
+ <td data-value="5" class="abs high">5/5</td>
94
94
  </tr>
95
95
 
96
96
  <tr>
97
- <td class="file medium" data-value="logout.js"><a href="logout.js.html">logout.js</a></td>
98
- <td data-value="68" class="pic medium">
99
- <div class="chart"><div class="cover-fill" style="width: 68%"></div><div class="cover-empty" style="width: 32%"></div></div>
97
+ <td class="file low" data-value="logout.js"><a href="logout.js.html">logout.js</a></td>
98
+ <td data-value="27.27" class="pic low">
99
+ <div class="chart"><div class="cover-fill" style="width: 27%"></div><div class="cover-empty" style="width: 73%"></div></div>
100
100
  </td>
101
- <td data-value="68" class="pct medium">68%</td>
102
- <td data-value="25" class="abs medium">17/25</td>
103
- <td data-value="33.33" class="pct low">33.33%</td>
104
- <td data-value="12" class="abs low">4/12</td>
105
- <td data-value="66.66" class="pct medium">66.66%</td>
106
- <td data-value="6" class="abs medium">4/6</td>
107
- <td data-value="68" class="pct medium">68%</td>
108
- <td data-value="25" class="abs medium">17/25</td>
101
+ <td data-value="27.27" class="pct low">27.27%</td>
102
+ <td data-value="77" class="abs low">21/77</td>
103
+ <td data-value="100" class="pct high">100%</td>
104
+ <td data-value="0" class="abs high">0/0</td>
105
+ <td data-value="0" class="pct low">0%</td>
106
+ <td data-value="4" class="abs low">0/4</td>
107
+ <td data-value="27.27" class="pct low">27.27%</td>
108
+ <td data-value="77" class="abs low">21/77</td>
109
109
  </tr>
110
110
 
111
111
  <tr>
112
- <td class="file high" data-value="refresh.js"><a href="refresh.js.html">refresh.js</a></td>
113
- <td data-value="92.3" class="pic high">
114
- <div class="chart"><div class="cover-fill" style="width: 92%"></div><div class="cover-empty" style="width: 8%"></div></div>
112
+ <td class="file low" data-value="refresh.js"><a href="refresh.js.html">refresh.js</a></td>
113
+ <td data-value="32.65" class="pic low">
114
+ <div class="chart"><div class="cover-fill" style="width: 32%"></div><div class="cover-empty" style="width: 68%"></div></div>
115
115
  </td>
116
- <td data-value="92.3" class="pct high">92.3%</td>
117
- <td data-value="13" class="abs high">12/13</td>
118
- <td data-value="42.85" class="pct low">42.85%</td>
119
- <td data-value="7" class="abs low">3/7</td>
120
- <td data-value="75" class="pct medium">75%</td>
121
- <td data-value="4" class="abs medium">3/4</td>
122
- <td data-value="92.3" class="pct high">92.3%</td>
123
- <td data-value="13" class="abs high">12/13</td>
116
+ <td data-value="32.65" class="pct low">32.65%</td>
117
+ <td data-value="49" class="abs low">16/49</td>
118
+ <td data-value="100" class="pct high">100%</td>
119
+ <td data-value="0" class="abs high">0/0</td>
120
+ <td data-value="0" class="pct low">0%</td>
121
+ <td data-value="1" class="abs low">0/1</td>
122
+ <td data-value="32.65" class="pct low">32.65%</td>
123
+ <td data-value="49" class="abs low">16/49</td>
124
124
  </tr>
125
125
 
126
126
  <tr>
127
- <td class="file high" data-value="ttl.js"><a href="ttl.js.html">ttl.js</a></td>
128
- <td data-value="100" class="pic high">
129
- <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
127
+ <td class="file low" data-value="ttl.js"><a href="ttl.js.html">ttl.js</a></td>
128
+ <td data-value="16.21" class="pic low">
129
+ <div class="chart"><div class="cover-fill" style="width: 16%"></div><div class="cover-empty" style="width: 84%"></div></div>
130
130
  </td>
131
+ <td data-value="16.21" class="pct low">16.21%</td>
132
+ <td data-value="37" class="abs low">6/37</td>
131
133
  <td data-value="100" class="pct high">100%</td>
132
- <td data-value="9" class="abs high">9/9</td>
133
- <td data-value="83.33" class="pct high">83.33%</td>
134
- <td data-value="6" class="abs high">5/6</td>
135
- <td data-value="100" class="pct high">100%</td>
136
- <td data-value="3" class="abs high">3/3</td>
137
- <td data-value="100" class="pct high">100%</td>
138
- <td data-value="9" class="abs high">9/9</td>
134
+ <td data-value="0" class="abs high">0/0</td>
135
+ <td data-value="0" class="pct low">0%</td>
136
+ <td data-value="1" class="abs low">0/1</td>
137
+ <td data-value="16.21" class="pct low">16.21%</td>
138
+ <td data-value="37" class="abs low">6/37</td>
139
139
  </tr>
140
140
 
141
141
  </tbody>
@@ -146,7 +146,7 @@
146
146
  <div class='footer quiet pad2 space-top1 center small'>
147
147
  Code coverage generated by
148
148
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
149
- at Fri Apr 29 2022 13:58:50 GMT-0400 (Eastern Daylight Time)
149
+ at 2023-07-14T20:29:47.209Z
150
150
  </div>
151
151
  <script src="../prettify.js"></script>
152
152
  <script>