@msqd/lydia 0.0.0-stage → 0.6.1

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 (378) hide show
  1. package/LICENSE +373 -0
  2. package/README.md +151 -2
  3. package/THIRD_PARTY_NOTICES.md +29 -0
  4. package/dist/Components/Badges/Badge.d.ts +20 -0
  5. package/dist/Components/Badges/Badge.js +33 -0
  6. package/dist/Components/Badges/index.d.ts +1 -0
  7. package/dist/Components/Badges/index.js +4 -0
  8. package/dist/Components/Buttons/Button.d.ts +8 -0
  9. package/dist/Components/Buttons/Button.js +30 -0
  10. package/dist/Components/Buttons/ButtonGroup.d.ts +13 -0
  11. package/dist/Components/Buttons/ButtonGroup.js +61 -0
  12. package/dist/Components/Buttons/index.d.ts +2 -0
  13. package/dist/Components/Buttons/index.js +6 -0
  14. package/dist/Components/Cards/Card.d.ts +38 -0
  15. package/dist/Components/Cards/Card.js +31 -0
  16. package/dist/Components/Cards/StatCard.d.ts +14 -0
  17. package/dist/Components/Cards/StatCard.js +27 -0
  18. package/dist/Components/Cards/index.d.ts +2 -0
  19. package/dist/Components/Cards/index.js +7 -0
  20. package/dist/Components/Charts/Components/ThinBarChart.d.ts +35 -0
  21. package/dist/Components/Charts/Components/ThinBarChart.js +41 -0
  22. package/dist/Components/Charts/Components/WideBarChart.d.ts +48 -0
  23. package/dist/Components/Charts/Components/WideBarChart.js +50 -0
  24. package/dist/Components/Charts/Components/index.d.ts +2 -0
  25. package/dist/Components/Charts/Components/index.js +6 -0
  26. package/dist/Components/Charts/Hooks/index.d.ts +2 -0
  27. package/dist/Components/Charts/Hooks/index.js +7 -0
  28. package/dist/Components/Charts/Hooks/useChartDimensions.d.ts +24 -0
  29. package/dist/Components/Charts/Hooks/useChartDimensions.js +42 -0
  30. package/dist/Components/Charts/Hooks/useThemeColors.d.ts +10 -0
  31. package/dist/Components/Charts/Hooks/useThemeColors.js +51 -0
  32. package/dist/Components/Charts/SummaryPerformancesChart.d.ts +7 -0
  33. package/dist/Components/Charts/SummaryPerformancesChart.js +93 -0
  34. package/dist/Components/Charts/SummaryRateChart.d.ts +9 -0
  35. package/dist/Components/Charts/SummaryRateChart.js +81 -0
  36. package/dist/Components/Charts/TransactionsChart.d.ts +6 -0
  37. package/dist/Components/Charts/TransactionsChart.js +70 -0
  38. package/dist/Components/Charts/Utils/ChartBarCalculator.d.ts +48 -0
  39. package/dist/Components/Charts/Utils/ChartBarCalculator.js +66 -0
  40. package/dist/Components/Charts/Utils/ChartColors.d.ts +13 -0
  41. package/dist/Components/Charts/Utils/ChartColors.js +10 -0
  42. package/dist/Components/Charts/Utils/ChartTooltipFormatter.d.ts +43 -0
  43. package/dist/Components/Charts/Utils/ChartTooltipFormatter.js +57 -0
  44. package/dist/Components/Charts/Utils/ReactEChartsCore.d.ts +4 -0
  45. package/dist/Components/Charts/Utils/ReactEChartsCore.js +5 -0
  46. package/dist/Components/Charts/Utils/ThemeColor.d.ts +21 -0
  47. package/dist/Components/Charts/Utils/ThemeColor.js +54 -0
  48. package/dist/Components/Charts/Utils/TimeFormatter.d.ts +9 -0
  49. package/dist/Components/Charts/Utils/TimeFormatter.js +25 -0
  50. package/dist/Components/Charts/Utils/escapeTooltipHtml.d.ts +6 -0
  51. package/dist/Components/Charts/Utils/escapeTooltipHtml.js +5 -0
  52. package/dist/Components/Charts/Utils/index.d.ts +5 -0
  53. package/dist/Components/Charts/Utils/index.js +14 -0
  54. package/dist/Components/Charts/index.d.ts +6 -0
  55. package/dist/Components/Charts/index.js +29 -0
  56. package/dist/Components/Colors/Colors.d.ts +19 -0
  57. package/dist/Components/Colors/Colors.js +154 -0
  58. package/dist/Components/Colors/index.d.ts +1 -0
  59. package/dist/Components/Colors/index.js +4 -0
  60. package/dist/Components/DataTable/DataTable.d.ts +86 -0
  61. package/dist/Components/DataTable/DataTable.js +122 -0
  62. package/dist/Components/DataTable/Paginator.d.ts +41 -0
  63. package/dist/Components/DataTable/Paginator.js +122 -0
  64. package/dist/Components/DataTable/ProportionBar.d.ts +48 -0
  65. package/dist/Components/DataTable/ProportionBar.js +20 -0
  66. package/dist/Components/DataTable/index.d.ts +3 -0
  67. package/dist/Components/DataTable/index.js +9 -0
  68. package/dist/Components/Dialog/Dialog.d.ts +49 -0
  69. package/dist/Components/Dialog/Dialog.js +83 -0
  70. package/dist/Components/Dialog/Drawer.d.ts +45 -0
  71. package/dist/Components/Dialog/Drawer.js +120 -0
  72. package/dist/Components/Dialog/index.d.ts +3 -0
  73. package/dist/Components/Dialog/index.js +12 -0
  74. package/dist/Components/Dialog/modal.types.d.ts +47 -0
  75. package/dist/Components/Dialog/modal.types.js +8 -0
  76. package/dist/Components/Facets/FacetCount.d.ts +11 -0
  77. package/dist/Components/Facets/FacetCount.js +8 -0
  78. package/dist/Components/Facets/FacetCountsCaption.d.ts +16 -0
  79. package/dist/Components/Facets/FacetCountsCaption.js +14 -0
  80. package/dist/Components/Facets/FacetInnerLightButton.d.ts +10 -0
  81. package/dist/Components/Facets/FacetInnerLightButton.js +17 -0
  82. package/dist/Components/Facets/FacetLabel.d.ts +13 -0
  83. package/dist/Components/Facets/FacetLabel.js +15 -0
  84. package/dist/Components/Facets/FacetList.d.ts +40 -0
  85. package/dist/Components/Facets/FacetList.js +37 -0
  86. package/dist/Components/Facets/FacetListCard.d.ts +38 -0
  87. package/dist/Components/Facets/FacetListCard.js +47 -0
  88. package/dist/Components/Facets/FacetResetLink.d.ts +13 -0
  89. package/dist/Components/Facets/FacetResetLink.js +23 -0
  90. package/dist/Components/Facets/Variants/DateRangeFacet.d.ts +47 -0
  91. package/dist/Components/Facets/Variants/DateRangeFacet.js +51 -0
  92. package/dist/Components/Facets/Variants/MultipleChoiceFacet.d.ts +67 -0
  93. package/dist/Components/Facets/Variants/MultipleChoiceFacet.js +200 -0
  94. package/dist/Components/Facets/Variants/PerformanceFacet.d.ts +61 -0
  95. package/dist/Components/Facets/Variants/PerformanceFacet.js +77 -0
  96. package/dist/Components/Facets/Variants/SingleChoiceFacet.d.ts +56 -0
  97. package/dist/Components/Facets/Variants/SingleChoiceFacet.js +54 -0
  98. package/dist/Components/Facets/Variants/index.d.ts +8 -0
  99. package/dist/Components/Facets/Variants/index.js +10 -0
  100. package/dist/Components/Facets/Variants/nestedValues.d.ts +33 -0
  101. package/dist/Components/Facets/Variants/nestedValues.js +87 -0
  102. package/dist/Components/Facets/index.d.ts +15 -0
  103. package/dist/Components/Facets/index.js +27 -0
  104. package/dist/Components/Formatter/BodyNotice.d.ts +9 -0
  105. package/dist/Components/Formatter/BodyNotice.js +21 -0
  106. package/dist/Components/Formatter/CodeFormatter.d.ts +47 -0
  107. package/dist/Components/Formatter/CodeFormatter.js +47 -0
  108. package/dist/Components/Formatter/HeadersDisplay.d.ts +9 -0
  109. package/dist/Components/Formatter/HeadersDisplay.js +18 -0
  110. package/dist/Components/Formatter/JsonTreeView.d.ts +27 -0
  111. package/dist/Components/Formatter/JsonTreeView.js +149 -0
  112. package/dist/Components/Formatter/PerformanceMetrics.d.ts +27 -0
  113. package/dist/Components/Formatter/PerformanceMetrics.js +29 -0
  114. package/dist/Components/Formatter/SyntaxHighlighter.d.ts +11 -0
  115. package/dist/Components/Formatter/SyntaxHighlighter.js +16 -0
  116. package/dist/Components/Formatter/VirtualizedCodeView.d.ts +24 -0
  117. package/dist/Components/Formatter/VirtualizedCodeView.js +47 -0
  118. package/dist/Components/Formatter/bodyLimits.d.ts +6 -0
  119. package/dist/Components/Formatter/bodyLimits.js +6 -0
  120. package/dist/Components/Formatter/index.d.ts +8 -0
  121. package/dist/Components/Formatter/index.js +16 -0
  122. package/dist/Components/Formatter/syntaxTheme.d.ts +8 -0
  123. package/dist/Components/Formatter/syntaxTheme.js +15 -0
  124. package/dist/Components/Formatter/useCodeHighlighting.d.ts +15 -0
  125. package/dist/Components/Formatter/useCodeHighlighting.js +47 -0
  126. package/dist/Components/Formatter/useVirtualization.d.ts +29 -0
  127. package/dist/Components/Formatter/useVirtualization.js +18 -0
  128. package/dist/Components/Inputs/Checkbox/Checkbox.d.ts +6 -0
  129. package/dist/Components/Inputs/Checkbox/Checkbox.js +75 -0
  130. package/dist/Components/Inputs/Checkbox/index.d.ts +1 -0
  131. package/dist/Components/Inputs/Checkbox/index.js +4 -0
  132. package/dist/Components/Inputs/DateRangeSelector/DateRangeSelector.d.ts +48 -0
  133. package/dist/Components/Inputs/DateRangeSelector/DateRangeSelector.js +71 -0
  134. package/dist/Components/Inputs/DateRangeSelector/index.d.ts +1 -0
  135. package/dist/Components/Inputs/DateRangeSelector/index.js +4 -0
  136. package/dist/Components/Inputs/Field/Field.d.ts +19 -0
  137. package/dist/Components/Inputs/Field/Field.js +35 -0
  138. package/dist/Components/Inputs/Field/index.d.ts +2 -0
  139. package/dist/Components/Inputs/Field/index.js +7 -0
  140. package/dist/Components/Inputs/Field/useField.d.ts +33 -0
  141. package/dist/Components/Inputs/Field/useField.js +36 -0
  142. package/dist/Components/Inputs/Input/Input.d.ts +85 -0
  143. package/dist/Components/Inputs/Input/Input.js +146 -0
  144. package/dist/Components/Inputs/Input/index.d.ts +1 -0
  145. package/dist/Components/Inputs/Input/index.js +4 -0
  146. package/dist/Components/Inputs/InputAddon/InputAddon.d.ts +21 -0
  147. package/dist/Components/Inputs/InputAddon/InputAddon.js +18 -0
  148. package/dist/Components/Inputs/InputAddon/index.d.ts +1 -0
  149. package/dist/Components/Inputs/InputAddon/index.js +4 -0
  150. package/dist/Components/Inputs/InputButton/InputButton.d.ts +21 -0
  151. package/dist/Components/Inputs/InputButton/InputButton.js +29 -0
  152. package/dist/Components/Inputs/InputButton/index.d.ts +1 -0
  153. package/dist/Components/Inputs/InputButton/index.js +4 -0
  154. package/dist/Components/Inputs/InputIcon/InputIcon.d.ts +20 -0
  155. package/dist/Components/Inputs/InputIcon/InputIcon.js +16 -0
  156. package/dist/Components/Inputs/InputIcon/index.d.ts +1 -0
  157. package/dist/Components/Inputs/InputIcon/index.js +4 -0
  158. package/dist/Components/Inputs/KeyboardShortcut/KeyboardShortcut.d.ts +12 -0
  159. package/dist/Components/Inputs/KeyboardShortcut/KeyboardShortcut.js +18 -0
  160. package/dist/Components/Inputs/KeyboardShortcut/index.d.ts +1 -0
  161. package/dist/Components/Inputs/KeyboardShortcut/index.js +4 -0
  162. package/dist/Components/Inputs/Radio/Radio.d.ts +3 -0
  163. package/dist/Components/Inputs/Radio/Radio.js +59 -0
  164. package/dist/Components/Inputs/Radio/index.d.ts +1 -0
  165. package/dist/Components/Inputs/Radio/index.js +4 -0
  166. package/dist/Components/Inputs/SearchInput/SearchInput.d.ts +9 -0
  167. package/dist/Components/Inputs/SearchInput/SearchInput.js +48 -0
  168. package/dist/Components/Inputs/SearchInput/index.d.ts +2 -0
  169. package/dist/Components/Inputs/SearchInput/index.js +4 -0
  170. package/dist/Components/Inputs/Sliders/RangeSlider.d.ts +40 -0
  171. package/dist/Components/Inputs/Sliders/RangeSlider.js +160 -0
  172. package/dist/Components/Inputs/Sliders/index.d.ts +2 -0
  173. package/dist/Components/Inputs/Sliders/index.js +4 -0
  174. package/dist/Components/Inputs/Textarea/Textarea.d.ts +56 -0
  175. package/dist/Components/Inputs/Textarea/Textarea.js +79 -0
  176. package/dist/Components/Inputs/Textarea/index.d.ts +1 -0
  177. package/dist/Components/Inputs/Textarea/index.js +4 -0
  178. package/dist/Components/Inputs/choiceInput.d.ts +12 -0
  179. package/dist/Components/Inputs/choiceInput.js +8 -0
  180. package/dist/Components/Inputs/index.d.ts +11 -0
  181. package/dist/Components/Inputs/index.js +24 -0
  182. package/dist/Components/Layouts/DefaultLayout.d.ts +30 -0
  183. package/dist/Components/Layouts/DefaultLayout.js +25 -0
  184. package/dist/Components/Layouts/index.d.ts +2 -0
  185. package/dist/Components/Layouts/index.js +4 -0
  186. package/dist/Components/NavBar/Assets/defaultAvatar.d.ts +4 -0
  187. package/dist/Components/NavBar/Assets/defaultAvatar.js +28 -0
  188. package/dist/Components/NavBar/Assets/index.d.ts +2 -0
  189. package/dist/Components/NavBar/Assets/index.js +4 -0
  190. package/dist/Components/NavBar/NavBar.d.ts +58 -0
  191. package/dist/Components/NavBar/NavBar.js +141 -0
  192. package/dist/Components/NavBar/index.d.ts +1 -0
  193. package/dist/Components/NavBar/index.js +5 -0
  194. package/dist/Components/Tabs/Tabs.d.ts +24 -0
  195. package/dist/Components/Tabs/Tabs.js +69 -0
  196. package/dist/Components/Tabs/index.d.ts +2 -0
  197. package/dist/Components/Tabs/index.js +5 -0
  198. package/dist/Components/Toast/Toast.d.ts +28 -0
  199. package/dist/Components/Toast/Toast.js +128 -0
  200. package/dist/Components/Toast/ToastContainer.d.ts +29 -0
  201. package/dist/Components/Toast/ToastContainer.js +28 -0
  202. package/dist/Components/Toast/ToastContext.d.ts +103 -0
  203. package/dist/Components/Toast/ToastContext.js +124 -0
  204. package/dist/Components/Toast/index.d.ts +3 -0
  205. package/dist/Components/Toast/index.js +13 -0
  206. package/dist/Components/Typography/HeadingLevel.d.ts +28 -0
  207. package/dist/Components/Typography/HeadingLevel.js +20 -0
  208. package/dist/Components/Typography/Paragraphs.d.ts +8 -0
  209. package/dist/Components/Typography/Paragraphs.js +6 -0
  210. package/dist/Components/Typography/Section.d.ts +8 -0
  211. package/dist/Components/Typography/Section.js +6 -0
  212. package/dist/Components/Typography/Titles.d.ts +31 -0
  213. package/dist/Components/Typography/Titles.js +14 -0
  214. package/dist/Components/Typography/index.d.ts +4 -0
  215. package/dist/Components/Typography/index.js +17 -0
  216. package/dist/Components/Utilities/Foldable.d.ts +42 -0
  217. package/dist/Components/Utilities/Foldable.js +39 -0
  218. package/dist/Components/Utilities/index.d.ts +2 -0
  219. package/dist/Components/Utilities/index.js +6 -0
  220. package/dist/Components/Utilities/useClickOutside.d.ts +21 -0
  221. package/dist/Components/Utilities/useClickOutside.js +23 -0
  222. package/dist/Components/index.d.ts +16 -0
  223. package/dist/Components/index.js +158 -0
  224. package/dist/Elements/Http/CacheBadge.d.ts +13 -0
  225. package/dist/Elements/Http/CacheBadge.js +34 -0
  226. package/dist/Elements/Http/CacheIndicator.d.ts +17 -0
  227. package/dist/Elements/Http/CacheIndicator.js +47 -0
  228. package/dist/Elements/Http/RequestMethodBadge.d.ts +5 -0
  229. package/dist/Elements/Http/RequestMethodBadge.js +13 -0
  230. package/dist/Elements/Http/ResponseStatusBadge.d.ts +19 -0
  231. package/dist/Elements/Http/ResponseStatusBadge.js +20 -0
  232. package/dist/Elements/Http/index.d.ts +4 -0
  233. package/dist/Elements/Http/index.js +10 -0
  234. package/dist/Elements/System/CircuitBreakerStatus.d.ts +11 -0
  235. package/dist/Elements/System/CircuitBreakerStatus.js +98 -0
  236. package/dist/Elements/System/EndpointNode.d.ts +10 -0
  237. package/dist/Elements/System/EndpointNode.js +19 -0
  238. package/dist/Elements/System/EntrypointNode.d.ts +9 -0
  239. package/dist/Elements/System/EntrypointNode.js +17 -0
  240. package/dist/Elements/System/NetworkEdges.d.ts +37 -0
  241. package/dist/Elements/System/NetworkEdges.js +52 -0
  242. package/dist/Elements/System/NetworkMap.d.ts +33 -0
  243. package/dist/Elements/System/NetworkMap.js +121 -0
  244. package/dist/Elements/System/NetworkNode.d.ts +29 -0
  245. package/dist/Elements/System/NetworkNode.js +31 -0
  246. package/dist/Elements/System/ProxyNode.d.ts +8 -0
  247. package/dist/Elements/System/ProxyNode.js +10 -0
  248. package/dist/Elements/System/index.d.ts +9 -0
  249. package/dist/Elements/System/index.js +17 -0
  250. package/dist/Elements/Tpdex/TpdexBadge.d.ts +26 -0
  251. package/dist/Elements/Tpdex/TpdexBadge.js +36 -0
  252. package/dist/Elements/Tpdex/index.d.ts +4 -0
  253. package/dist/Elements/Tpdex/index.js +8 -0
  254. package/dist/Elements/Transactions/TransactionFiltersCard.d.ts +41 -0
  255. package/dist/Elements/Transactions/TransactionFiltersCard.js +121 -0
  256. package/dist/Elements/Transactions/TransactionsExplorerSidebar.d.ts +37 -0
  257. package/dist/Elements/Transactions/TransactionsExplorerSidebar.js +154 -0
  258. package/dist/Elements/Transactions/TransactionsFiltersSidebar.d.ts +22 -0
  259. package/dist/Elements/Transactions/TransactionsFiltersSidebar.js +39 -0
  260. package/dist/Elements/Transactions/index.d.ts +13 -0
  261. package/dist/Elements/Transactions/index.js +9 -0
  262. package/dist/Elements/index.d.ts +18 -0
  263. package/dist/Elements/index.js +38 -0
  264. package/dist/Models/Filters/active.d.ts +12 -0
  265. package/dist/Models/Filters/active.js +10 -0
  266. package/dist/Models/Filters/dates.d.ts +8 -0
  267. package/dist/Models/Filters/dates.js +16 -0
  268. package/dist/Models/Filters/index.d.ts +4 -0
  269. package/dist/Models/Filters/index.js +13 -0
  270. package/dist/Models/Filters/read.d.ts +9 -0
  271. package/dist/Models/Filters/read.js +22 -0
  272. package/dist/Models/Filters/types.d.ts +50 -0
  273. package/dist/Models/Filters/types.js +1 -0
  274. package/dist/Models/Http/body.d.ts +7 -0
  275. package/dist/Models/Http/body.js +6 -0
  276. package/dist/Models/Http/contentDisposition.d.ts +7 -0
  277. package/dist/Models/Http/contentDisposition.js +51 -0
  278. package/dist/Models/Http/dataUrl.d.ts +12 -0
  279. package/dist/Models/Http/dataUrl.js +21 -0
  280. package/dist/Models/Http/headers.d.ts +18 -0
  281. package/dist/Models/Http/headers.js +7 -0
  282. package/dist/Models/Http/index.d.ts +2 -0
  283. package/dist/Models/Http/index.js +6 -0
  284. package/dist/Models/Http/percent.d.ts +5 -0
  285. package/dist/Models/Http/percent.js +17 -0
  286. package/dist/Models/Http/requestTarget.d.ts +11 -0
  287. package/dist/Models/Http/requestTarget.js +7 -0
  288. package/dist/Models/System/index.d.ts +1 -0
  289. package/dist/Models/System/index.js +7 -0
  290. package/dist/Models/System/types.d.ts +20 -0
  291. package/dist/Models/System/types.js +48 -0
  292. package/dist/Models/Tpdex.d.ts +36 -0
  293. package/dist/Models/Tpdex.js +38 -0
  294. package/dist/Models/Transactions/Overview.d.ts +19 -0
  295. package/dist/Models/Transactions/Overview.js +1 -0
  296. package/dist/Models/Transactions/encoding.d.ts +49 -0
  297. package/dist/Models/Transactions/encoding.js +26 -0
  298. package/dist/Models/Transactions/endpoints.d.ts +15 -0
  299. package/dist/Models/Transactions/endpoints.js +21 -0
  300. package/dist/Models/Transactions/facets.d.ts +25 -0
  301. package/dist/Models/Transactions/facets.js +40 -0
  302. package/dist/Models/Transactions/filtering.d.ts +20 -0
  303. package/dist/Models/Transactions/filtering.js +34 -0
  304. package/dist/Models/Transactions/treeDepth.d.ts +2 -0
  305. package/dist/Models/Transactions/treeDepth.js +4 -0
  306. package/dist/Models/Transactions/types.d.ts +58 -0
  307. package/dist/Models/Transactions/types.js +1 -0
  308. package/dist/Models/index.d.ts +10 -0
  309. package/dist/Models/index.js +46 -0
  310. package/dist/Pages/Alerts/AlertsPage.d.ts +18 -0
  311. package/dist/Pages/Alerts/AlertsPage.js +104 -0
  312. package/dist/Pages/Alerts/index.d.ts +1 -0
  313. package/dist/Pages/Alerts/index.js +4 -0
  314. package/dist/Pages/Explorer/ExplorerPage.d.ts +6 -0
  315. package/dist/Pages/Explorer/ExplorerPage.js +55 -0
  316. package/dist/Pages/Explorer/index.d.ts +1 -0
  317. package/dist/Pages/Explorer/index.js +4 -0
  318. package/dist/Pages/Overview/OverviewPage.d.ts +11 -0
  319. package/dist/Pages/Overview/OverviewPage.js +10 -0
  320. package/dist/Pages/Overview/Sections/Components/TransactionsHistoryView.d.ts +7 -0
  321. package/dist/Pages/Overview/Sections/Components/TransactionsHistoryView.js +32 -0
  322. package/dist/Pages/Overview/Sections/Components/index.d.ts +1 -0
  323. package/dist/Pages/Overview/Sections/Components/index.js +4 -0
  324. package/dist/Pages/Overview/Sections/HistorySection.d.ts +18 -0
  325. package/dist/Pages/Overview/Sections/HistorySection.js +21 -0
  326. package/dist/Pages/Overview/Sections/SummarySection.d.ts +44 -0
  327. package/dist/Pages/Overview/Sections/SummarySection.js +127 -0
  328. package/dist/Pages/Overview/index.d.ts +4 -0
  329. package/dist/Pages/Overview/index.js +8 -0
  330. package/dist/Pages/SystemPage/SystemPage.d.ts +8 -0
  331. package/dist/Pages/SystemPage/SystemPage.js +16 -0
  332. package/dist/Pages/SystemPage/index.d.ts +1 -0
  333. package/dist/Pages/SystemPage/index.js +4 -0
  334. package/dist/Pages/Transactions/Detail/Components/DownloadButton.d.ts +33 -0
  335. package/dist/Pages/Transactions/Detail/Components/DownloadButton.js +62 -0
  336. package/dist/Pages/Transactions/Detail/Components/TransactionMessage.d.ts +16 -0
  337. package/dist/Pages/Transactions/Detail/Components/TransactionMessage.js +44 -0
  338. package/dist/Pages/Transactions/Detail/Components/TransactionMetadata.d.ts +21 -0
  339. package/dist/Pages/Transactions/Detail/Components/TransactionMetadata.js +127 -0
  340. package/dist/Pages/Transactions/Detail/Components/index.d.ts +6 -0
  341. package/dist/Pages/Transactions/Detail/Components/index.js +8 -0
  342. package/dist/Pages/Transactions/Detail/TransactionsDetailPage.d.ts +8 -0
  343. package/dist/Pages/Transactions/Detail/TransactionsDetailPage.js +15 -0
  344. package/dist/Pages/Transactions/Detail/Utils/BodyPreview.d.ts +15 -0
  345. package/dist/Pages/Transactions/Detail/Utils/BodyPreview.js +30 -0
  346. package/dist/Pages/Transactions/Detail/Utils/ContentRenderer.d.ts +28 -0
  347. package/dist/Pages/Transactions/Detail/Utils/ContentRenderer.js +115 -0
  348. package/dist/Pages/Transactions/Detail/Utils/index.d.ts +4 -0
  349. package/dist/Pages/Transactions/Detail/Utils/index.js +9 -0
  350. package/dist/Pages/Transactions/Detail/index.d.ts +4 -0
  351. package/dist/Pages/Transactions/Detail/index.js +8 -0
  352. package/dist/Pages/Transactions/List/TransactionsListPage.d.ts +80 -0
  353. package/dist/Pages/Transactions/List/TransactionsListPage.js +220 -0
  354. package/dist/Pages/Transactions/List/index.d.ts +4 -0
  355. package/dist/Pages/Transactions/List/index.js +6 -0
  356. package/dist/Pages/Transactions/List/useClientSideTransactions.d.ts +38 -0
  357. package/dist/Pages/Transactions/List/useClientSideTransactions.js +32 -0
  358. package/dist/Pages/Transactions/index.d.ts +4 -0
  359. package/dist/Pages/Transactions/index.js +6 -0
  360. package/dist/Pages/index.d.ts +5 -0
  361. package/dist/Pages/index.js +18 -0
  362. package/dist/Settings.d.ts +13 -0
  363. package/dist/Settings.js +16 -0
  364. package/dist/css/Components/Formatter/prism.css +79 -0
  365. package/dist/css/Components/Inputs/Input/Input.css +73 -0
  366. package/dist/css/Components/Inputs/Sliders/RangeSliderStyles.css +92 -0
  367. package/dist/css/components.css +6 -0
  368. package/dist/css/fonts/Lato-Bold.woff2 +0 -0
  369. package/dist/css/fonts/Lato-BoldItalic.woff2 +0 -0
  370. package/dist/css/fonts/Lato-Italic.woff2 +0 -0
  371. package/dist/css/fonts/Lato-Regular.woff2 +0 -0
  372. package/dist/css/fonts/OFL.txt +93 -0
  373. package/dist/css/theme.css +109 -0
  374. package/dist/index.d.ts +4 -0
  375. package/dist/index.js +250 -0
  376. package/dist/logo.svg +1 -0
  377. package/dist/styles/styles.css +1 -0
  378. package/package.json +367 -3
@@ -0,0 +1,8 @@
1
+ /**
2
+ * A `YYYY-MM-DD` calendar day as local midnight. `new Date("YYYY-MM-DD")` reads UTC midnight instead,
3
+ * which shifts the day for anyone west or far east of Greenwich. A string that is not a real day
4
+ * answers undefined, so the caller treats it as no bound.
5
+ */
6
+ export declare function parseLocalDay(day: string): Date | undefined;
7
+ /** The local calendar day of `now` as `YYYY-MM-DD`; `toISOString()` would give the UTC one. */
8
+ export declare function localToday(now?: Date): string;
@@ -0,0 +1,16 @@
1
+ const d = /^(\d{4})-(\d{2})-(\d{2})$/;
2
+ function u(t) {
3
+ const e = d.exec(t);
4
+ if (!e)
5
+ return;
6
+ const [r, n, o] = [Number(e[1]), Number(e[2]), Number(e[3])], a = new Date(r, n - 1, o);
7
+ return a.getFullYear() === r && a.getMonth() === n - 1 && a.getDate() === o ? a : void 0;
8
+ }
9
+ const c = (t) => String(t).padStart(2, "0");
10
+ function g(t = /* @__PURE__ */ new Date()) {
11
+ return `${t.getFullYear()}-${c(t.getMonth() + 1)}-${c(t.getDate())}`;
12
+ }
13
+ export {
14
+ g as localToday,
15
+ u as parseLocalDay
16
+ };
@@ -0,0 +1,4 @@
1
+ export * from "./types.js";
2
+ export * from "./active.js";
3
+ export * from "./read.js";
4
+ export * from "./dates.js";
@@ -0,0 +1,13 @@
1
+ import { countActiveFilters as a, hasActiveFilters as o } from "./active.js";
2
+ import { readArray as l, readDates as c, readRange as d, readSingle as i } from "./read.js";
3
+ import { localToday as p, parseLocalDay as f } from "./dates.js";
4
+ export {
5
+ a as countActiveFilters,
6
+ o as hasActiveFilters,
7
+ p as localToday,
8
+ f as parseLocalDay,
9
+ l as readArray,
10
+ c as readDates,
11
+ d as readRange,
12
+ i as readSingle
13
+ };
@@ -0,0 +1,9 @@
1
+ import type { DateRangeFilter, Filters, MinMaxFilter } from "./types.js";
2
+ /** The selected values of a multiple choice facet; empty unless the filter is a list of strings. */
3
+ export declare function readArray(filters: Filters | undefined, name: string): string[];
4
+ /** The bounds of a range facet; a bound that is not a finite number is absent. */
5
+ export declare function readRange(filters: Filters | undefined, name: string): MinMaxFilter;
6
+ /** The dates of a date range facet; a date that is not a string is absent. */
7
+ export declare function readDates(filters: Filters | undefined, name: string): DateRangeFilter;
8
+ /** The chosen value of a single choice facet; undefined unless the filter is a string. */
9
+ export declare function readSingle(filters: Filters | undefined, name: string): string | undefined;
@@ -0,0 +1,22 @@
1
+ const n = (t, r) => t?.[r], s = (t) => typeof t == "object" && t !== null && !Array.isArray(t), i = (t) => typeof t == "string" ? t : void 0, o = (t) => typeof t == "number" && Number.isFinite(t) ? t : void 0, a = (t) => Object.fromEntries(Object.entries(t).filter(([, r]) => r !== void 0));
2
+ function d(t, r) {
3
+ const e = n(t, r);
4
+ return Array.isArray(e) && e.every((c) => typeof c == "string") ? e : [];
5
+ }
6
+ function f(t, r) {
7
+ const e = n(t, r);
8
+ return s(e) ? a({ min: o(e.min), max: o(e.max) }) : {};
9
+ }
10
+ function u(t, r) {
11
+ const e = n(t, r);
12
+ return s(e) ? a({ startDate: i(e.startDate), endDate: i(e.endDate) }) : {};
13
+ }
14
+ function y(t, r) {
15
+ return i(n(t, r));
16
+ }
17
+ export {
18
+ d as readArray,
19
+ u as readDates,
20
+ f as readRange,
21
+ y as readSingle
22
+ };
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Base filter types inspired by HARP's filter system
3
+ * Designed to be URL-serializable and provide a unified state management approach
4
+ */
5
+ /** Array of string values for multi-select filters (checkboxes) */
6
+ export type ArrayFilter = string[] | undefined;
7
+ /** Min/max range filter for numeric values (sliders) */
8
+ export interface MinMaxFilter {
9
+ min?: number;
10
+ max?: number;
11
+ }
12
+ /** Single value filter for radio buttons */
13
+ export type SingleFilter = string | undefined;
14
+ /** Date range filter */
15
+ export interface DateRangeFilter {
16
+ startDate?: string;
17
+ endDate?: string;
18
+ }
19
+ /** The value one facet holds. Read it through `readArray`, `readRange`, `readDates` or `readSingle`. */
20
+ export type FilterValue = ArrayFilter | MinMaxFilter | SingleFilter | DateRangeFilter;
21
+ /** Generic filters container */
22
+ export type Filters = Record<string, FilterValue>;
23
+ /** Filter metadata for display and validation */
24
+ export interface FilterMeta {
25
+ name: string;
26
+ count?: number;
27
+ label?: string;
28
+ /** What the label stands for, in words ("Client Error" for "4xx"). Shown as a tooltip and read as the description. */
29
+ description?: string;
30
+ }
31
+ /**
32
+ * A value of a facet. With `under`, it is a class whose values hang beneath it (a status class and its codes): its
33
+ * `name` is the class token and each `under` name a code token (ADR 0002).
34
+ */
35
+ export interface FacetOption extends FilterMeta {
36
+ under?: FilterMeta[];
37
+ }
38
+ /** Range filter metadata with marks for sliders */
39
+ export interface RangeFilterMeta {
40
+ min: number;
41
+ max: number;
42
+ step?: number;
43
+ marks?: Array<{
44
+ value: number;
45
+ label: string;
46
+ className?: string;
47
+ }>;
48
+ }
49
+ /** Unified filter state change handler */
50
+ export type FilterChangeHandler<T = FilterValue> = (filterName: string, value: T) => void;
@@ -0,0 +1 @@
1
+
@@ -0,0 +1,7 @@
1
+ /**
2
+ * A captured HTTP body as the proxy hands it over: raw text, a data URL or placeholder for binary
3
+ * content, or a parsed JSON document.
4
+ */
5
+ export type HttpBody = string | Record<string, unknown> | unknown[];
6
+ /** Text form of a body: strings as is, parsed documents as indented JSON. */
7
+ export declare function stringifyBody(body: HttpBody): string;
@@ -0,0 +1,6 @@
1
+ function t(n) {
2
+ return typeof n == "string" ? n : JSON.stringify(n, null, 2);
3
+ }
4
+ export {
5
+ t as stringifyBody
6
+ };
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Filename suggested by a `Content-Disposition` header value, made safe to use as a download name.
3
+ *
4
+ * Prefers `filename*` (RFC 5987) over `filename`. Control characters and path separators are
5
+ * removed and the result is capped at 255 characters. Parsing is linear in the header length.
6
+ */
7
+ export declare function contentDispositionFilename(header: string): string | undefined;
@@ -0,0 +1,51 @@
1
+ import { percentDecode as l } from "./percent.js";
2
+ const r = 255, f = /\s/;
3
+ function u(n) {
4
+ const e = /* @__PURE__ */ new Map();
5
+ let t = n.indexOf(";");
6
+ if (t < 0) return e;
7
+ for (; t < n.length; ) {
8
+ t++;
9
+ const i = t;
10
+ for (; t < n.length && n[t] !== "=" && n[t] !== ";"; ) t++;
11
+ const o = n.slice(i, t).trim().toLowerCase();
12
+ if (n[t] !== "=") continue;
13
+ for (t++; t < n.length && f.test(n[t]); ) t++;
14
+ let s = "";
15
+ if (n[t] === '"') {
16
+ for (t++; t < n.length && n[t] !== '"'; )
17
+ n[t] === "\\" && t++, s += n[t] ?? "", t++;
18
+ for (t++; t < n.length && n[t] !== ";"; ) t++;
19
+ } else {
20
+ const c = t;
21
+ for (; t < n.length && n[t] !== ";"; ) t++;
22
+ s = n.slice(c, t).trim();
23
+ }
24
+ o && !e.has(o) && e.set(o, s);
25
+ }
26
+ return e;
27
+ }
28
+ function m(n) {
29
+ const e = /^([^']*)'[^']*'([\s\S]*)$/.exec(n);
30
+ if (!e) return;
31
+ const t = e[1].toLowerCase();
32
+ if (!(t !== "utf-8" && t !== "iso-8859-1"))
33
+ try {
34
+ return new TextDecoder(t, { fatal: !0 }).decode(l(e[2]));
35
+ } catch {
36
+ return;
37
+ }
38
+ }
39
+ function p(n) {
40
+ return Array.from(n).filter((t) => {
41
+ const i = t.codePointAt(0);
42
+ return i > 31 && i !== 127 && t !== "/" && t !== "\\";
43
+ }).slice(0, r).join("").trim() || void 0;
44
+ }
45
+ function a(n) {
46
+ const e = u(n), t = m(e.get("filename*") ?? "");
47
+ return p(t ?? e.get("filename") ?? "");
48
+ }
49
+ export {
50
+ a as contentDispositionFilename
51
+ };
@@ -0,0 +1,12 @@
1
+ export interface DecodedDataUrl {
2
+ /** Media type declared by the URL, without parameters; undefined when the URL omits it. */
3
+ mimeType: string | undefined;
4
+ bytes: Uint8Array;
5
+ }
6
+ /**
7
+ * Decode a `data:` URL into its bytes and media type.
8
+ *
9
+ * Only the first comma separates the header from the payload; the payload may contain more.
10
+ * Throws an `Error` on a URL that is not a data URL or whose base64 payload is invalid.
11
+ */
12
+ export declare function decodeDataUrl(url: string): DecodedDataUrl;
@@ -0,0 +1,21 @@
1
+ import { percentDecode as i } from "./percent.js";
2
+ const c = /^data:/i;
3
+ function f(e) {
4
+ const t = e.indexOf(",");
5
+ if (!c.test(e) || t < 0)
6
+ throw new Error("Not a valid data URL");
7
+ const [r = "", ...n] = e.slice(5, t).split(";"), o = r.includes("/") ? r.trim().toLowerCase() : void 0, a = e.slice(t + 1);
8
+ return n.some((s) => s.trim().toLowerCase() === "base64") ? { mimeType: o, bytes: d(a) } : { mimeType: o, bytes: i(a) };
9
+ }
10
+ function d(e) {
11
+ let t;
12
+ try {
13
+ t = atob(Array.from(i(e), (r) => String.fromCharCode(r)).join(""));
14
+ } catch {
15
+ throw new Error("The data URL carries invalid base64");
16
+ }
17
+ return Uint8Array.from(t, (r) => r.charCodeAt(0));
18
+ }
19
+ export {
20
+ f as decodeDataUrl
21
+ };
@@ -0,0 +1,18 @@
1
+ /**
2
+ * A single header occurrence, as it crossed the wire.
3
+ *
4
+ * Headers are modelled as an ordered sequence rather than a map because HTTP allows a name to
5
+ * repeat and `set-cookie` routinely does. A map would collapse those repeats and lose the order
6
+ * they arrived in.
7
+ */
8
+ export interface HttpHeader {
9
+ name: string;
10
+ value: string;
11
+ }
12
+ /**
13
+ * Value of the first header matching `name`, compared case-insensitively.
14
+ *
15
+ * Lookup normalises case because HTTP header names are case-insensitive; display does not,
16
+ * because a recording of what crossed the wire should show the spelling that was used.
17
+ */
18
+ export declare function findHeader(headers: HttpHeader[] | undefined, name: string): string | undefined;
@@ -0,0 +1,7 @@
1
+ function a(e, n) {
2
+ const o = n.toLowerCase();
3
+ return e?.find((t) => t.name.toLowerCase() === o)?.value;
4
+ }
5
+ export {
6
+ a as findHeader
7
+ };
@@ -0,0 +1,2 @@
1
+ export * from "./headers.js";
2
+ export * from "./requestTarget.js";
@@ -0,0 +1,6 @@
1
+ import { findHeader as t } from "./headers.js";
2
+ import { splitRequestTarget as f } from "./requestTarget.js";
3
+ export {
4
+ t as findHeader,
5
+ f as splitRequestTarget
6
+ };
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Decode `%XX` escapes into bytes. Unlike `decodeURIComponent` it never throws and does not
3
+ * require the decoded bytes to be UTF-8: a malformed escape is kept as is.
4
+ */
5
+ export declare function percentDecode(input: string): Uint8Array;
@@ -0,0 +1,17 @@
1
+ function u(o) {
2
+ if (o === void 0) return -1;
3
+ if (o >= 48 && o <= 57) return o - 48;
4
+ const n = o | 32;
5
+ return n >= 97 && n <= 102 ? n - 97 + 10 : -1;
6
+ }
7
+ function s(o) {
8
+ const n = new TextEncoder().encode(o), r = [];
9
+ for (let e = 0; e < n.length; e++) {
10
+ const t = n[e] === 37 ? u(n[e + 1]) : -1, c = t >= 0 ? u(n[e + 2]) : -1;
11
+ c >= 0 ? (r.push(t * 16 + c), e += 2) : r.push(n[e]);
12
+ }
13
+ return Uint8Array.from(r);
14
+ }
15
+ export {
16
+ s as percentDecode
17
+ };
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Split a captured request target at its first `?`, without parsing it.
3
+ *
4
+ * A captured target is attacker-controlled and may not be a valid URL, so nothing here can throw and
5
+ * nothing is normalised: `path` and `query` are the bytes that crossed the wire. `query` keeps its
6
+ * leading `?`, and is empty when the target has none.
7
+ */
8
+ export declare function splitRequestTarget(raw: string): {
9
+ path: string;
10
+ query: string;
11
+ };
@@ -0,0 +1,7 @@
1
+ function u(e) {
2
+ const t = e.indexOf("?");
3
+ return t === -1 ? { path: e, query: "" } : { path: e.slice(0, t), query: e.slice(t) };
4
+ }
5
+ export {
6
+ u as splitRequestTarget
7
+ };
@@ -0,0 +1 @@
1
+ export * from "./types.js";
@@ -0,0 +1,7 @@
1
+ import { circuitBreakerStatusMap as r, healthStatusMap as e, isCircuitBreakerStatus as i, isHealthStatus as s } from "./types.js";
2
+ export {
3
+ r as circuitBreakerStatusMap,
4
+ e as healthStatusMap,
5
+ i as isCircuitBreakerStatus,
6
+ s as isHealthStatus
7
+ };
@@ -0,0 +1,20 @@
1
+ /** How a status reads at a glance. A subset of what a badge can be coloured, so it can be handed to one. */
2
+ export type StatusTone = "success" | "warning" | "danger" | "default";
3
+ export type HealthStatus = "healthy" | "degraded" | "unhealthy";
4
+ export type CircuitBreakerState = "open" | "closed" | "half-open";
5
+ export type SystemStatus = HealthStatus | CircuitBreakerState;
6
+ export interface HealthStatusConfig {
7
+ color: StatusTone;
8
+ label: string;
9
+ description?: string;
10
+ }
11
+ export interface CircuitBreakerStatusConfig {
12
+ color: StatusTone;
13
+ icon: string;
14
+ label: string;
15
+ description: string;
16
+ }
17
+ export declare const healthStatusMap: Record<HealthStatus, HealthStatusConfig>;
18
+ export declare const circuitBreakerStatusMap: Record<CircuitBreakerState, CircuitBreakerStatusConfig>;
19
+ export declare function isHealthStatus(status: string): status is HealthStatus;
20
+ export declare function isCircuitBreakerStatus(status: string): status is CircuitBreakerState;
@@ -0,0 +1,48 @@
1
+ const n = {
2
+ healthy: {
3
+ color: "success",
4
+ label: "Healthy",
5
+ description: "Service is operating normally"
6
+ },
7
+ degraded: {
8
+ color: "warning",
9
+ label: "Degraded",
10
+ description: "Service is experiencing issues"
11
+ },
12
+ unhealthy: {
13
+ color: "danger",
14
+ label: "Unhealthy",
15
+ description: "Service is not responding"
16
+ }
17
+ }, o = {
18
+ closed: {
19
+ color: "success",
20
+ icon: "●",
21
+ label: "Closed",
22
+ description: "Normal operation"
23
+ },
24
+ "half-open": {
25
+ color: "warning",
26
+ icon: "◐",
27
+ label: "Half-Open",
28
+ description: "Testing recovery"
29
+ },
30
+ open: {
31
+ color: "danger",
32
+ icon: "○",
33
+ label: "Open",
34
+ description: "Blocking requests"
35
+ }
36
+ };
37
+ function r(e) {
38
+ return e === "healthy" || e === "degraded" || e === "unhealthy";
39
+ }
40
+ function i(e) {
41
+ return e === "open" || e === "closed" || e === "half-open";
42
+ }
43
+ export {
44
+ o as circuitBreakerStatusMap,
45
+ n as healthStatusMap,
46
+ i as isCircuitBreakerStatus,
47
+ r as isHealthStatus
48
+ };
@@ -0,0 +1,36 @@
1
+ /**
2
+ * TPDEX (Transaction Performance Index) — the canonical performance scale and scoring.
3
+ *
4
+ * Converts a response time in milliseconds to a 0–100 performance score, and maps a score to a
5
+ * rating (label + colour token). This is domain data/logic (no JSX); presentation components import it.
6
+ */
7
+ export interface TpdexRating {
8
+ label: string;
9
+ /** Lower bound of the rating; the last rating (G) has none. */
10
+ threshold?: number;
11
+ /**
12
+ * Tailwind background class, `bg-` plus the token's name. It repeats `token` because Tailwind finds a class by
13
+ * scanning for its literal text, so it cannot be built from `token` at runtime; a test keeps the two in step.
14
+ */
15
+ className: string;
16
+ /**
17
+ * Tailwind text class for a label drawn on `className`, read through
18
+ * `getTpdexTextClassName`. Omitted, the label is dark, which holds 4.5:1 on
19
+ * every fill of the scale but G's; G sets white.
20
+ */
21
+ textClassName?: string;
22
+ /**
23
+ * Theme token carrying the rating's colour, e.g. "--color-tpdex-a". Canvas renderers read it from the computed
24
+ * style (`resolveThemeColor`), so the badge and the chart follow the same retheme.
25
+ */
26
+ token: string;
27
+ }
28
+ export declare const tpdexScale: TpdexRating[];
29
+ /** Map a 0–100 TPDEX score to its rating. */
30
+ export declare function getTpdexRating(score: number): TpdexRating;
31
+ /** Tailwind text class for a label drawn on the rating's fill. */
32
+ export declare function getTpdexTextClassName(rating: TpdexRating): string;
33
+ /** TPDEX score (0–100) for a single response time in ms. */
34
+ export declare function calculateTpdexScore(responseTime: number): number;
35
+ /** Average TPDEX score (0–100) across multiple response times in ms. */
36
+ export declare function calculateAggregateTpdexScore(responseTimes: number[]): number;
@@ -0,0 +1,38 @@
1
+ const r = [
2
+ { label: "A++", threshold: 98, className: "bg-tpdex-a-plus-plus", token: "--color-tpdex-a-plus-plus" },
3
+ { label: "A+", threshold: 96, className: "bg-tpdex-a-plus", token: "--color-tpdex-a-plus" },
4
+ { label: "A", threshold: 93, className: "bg-tpdex-a", token: "--color-tpdex-a" },
5
+ { label: "B", threshold: 83, className: "bg-tpdex-b", token: "--color-tpdex-b" },
6
+ { label: "C", threshold: 69, className: "bg-tpdex-c", token: "--color-tpdex-c" },
7
+ { label: "D", threshold: 49, className: "bg-tpdex-d", token: "--color-tpdex-d" },
8
+ { label: "E", threshold: 31, className: "bg-tpdex-e", token: "--color-tpdex-e" },
9
+ { label: "F", threshold: 17, className: "bg-tpdex-f", token: "--color-tpdex-f" },
10
+ { label: "G", className: "bg-tpdex-g", token: "--color-tpdex-g", textClassName: "text-white" }
11
+ ];
12
+ function d(e) {
13
+ for (const t of r)
14
+ if (t.threshold === void 0 || e >= t.threshold)
15
+ return t;
16
+ throw new Error("Invalid score (but that should not happen).");
17
+ }
18
+ function n(e) {
19
+ return e.textClassName ?? "text-gray-950";
20
+ }
21
+ function s(e) {
22
+ return e < 1328 ? Math.min(1 - 722e-6 * e + 244e-9 * e ** 2 - 3e-11 * e ** 3, 1) : Math.max(-0.42115982438869104 * Math.log(Math.sqrt(e) + 1) + 1.9270515661020815, 0);
23
+ }
24
+ function c(e) {
25
+ return Math.trunc(s(e) * 100);
26
+ }
27
+ function h(e) {
28
+ if (e.length === 0) return 0;
29
+ const t = e.map((l) => c(l)), a = t.reduce((l, o) => l + o, 0);
30
+ return Math.trunc(a / t.length);
31
+ }
32
+ export {
33
+ h as calculateAggregateTpdexScore,
34
+ c as calculateTpdexScore,
35
+ d as getTpdexRating,
36
+ n as getTpdexTextClassName,
37
+ r as tpdexScale
38
+ };
@@ -0,0 +1,19 @@
1
+ export interface OverviewTransaction {
2
+ datetime: string;
3
+ count: number;
4
+ errors: number;
5
+ cached: number;
6
+ }
7
+ export interface OverviewTransactionsReport {
8
+ transactions: Array<OverviewTransaction>;
9
+ }
10
+ export interface OverviewData extends OverviewTransactionsReport {
11
+ errors: {
12
+ count: number;
13
+ rate: number;
14
+ };
15
+ count: number;
16
+ meanDuration: number;
17
+ meanTpdex: number;
18
+ timeRange: string;
19
+ }
@@ -0,0 +1,49 @@
1
+ import type { Transaction } from "./types.js";
2
+ /**
3
+ * How a transaction is encoded into the values its facets offer.
4
+ *
5
+ * These three encodings are shared by `deriveTransactionFacets`, which produces the vocabulary,
6
+ * and `filterTransactions`, which consumes selections from it. They have to agree: if a facet
7
+ * offers a value the filter cannot match, or the filter accepts one the facet never offers,
8
+ * nothing throws and nobody finds out. Two copies would drift silently, so there is one.
9
+ */
10
+ /** The class token of a status code: `404` is in class `"4"`. */
11
+ export declare const statusClassOf: (statusCode: number) => string;
12
+ /**
13
+ * The status tokens a transaction answers to (ADR 0002): its class (`"4"`), its code (`"404"`), and
14
+ * `failure`, which is the transaction's own status and not a code.
15
+ */
16
+ export declare const statusGroupsOf: (transaction: Transaction) => string[];
17
+ /** `"4xx"` (in any case) is a label, not a value; a consumer that passes it means the class `"4"`. */
18
+ export declare const canonicalStatusToken: (value: string) => string;
19
+ export interface StatusSelection {
20
+ classes: string[];
21
+ codes: string[];
22
+ /** Codes excluded from a class that is selected whole. */
23
+ excluded: string[];
24
+ failure: boolean;
25
+ }
26
+ /**
27
+ * Reads status tokens into what they select. A value outside the vocabulary is reported with
28
+ * `console.error` and ignored, never dropped in silence: this runs during render, where a stale URL
29
+ * must not crash the page, and the report is how the typo or stale value gets found.
30
+ *
31
+ * A code beside its own class reads as the class, and an exclusion only means something beside its
32
+ * class, so both are dropped (ADR 0002, "Reading a filter").
33
+ */
34
+ export declare function parseStatusSelection(values: string[]): StatusSelection;
35
+ /**
36
+ * Cache status, folding the legacy `cached` boolean into the status it stands for.
37
+ *
38
+ * A transaction that reported nothing resolves to `unknown`, not to `miss`. "Nothing is known" and
39
+ * "the cache was consulted and did not have it" are different facts, and only the second is a miss;
40
+ * calling absence a miss makes a claim the transaction never made. An explicit `cached: false` is
41
+ * a claim, and stays a miss.
42
+ */
43
+ export declare const effectiveCacheStatus: (transaction: Transaction) => string;
44
+ /** Tags as `key=value` pairs: the key carries the meaning, so a bare value would conflate keys. */
45
+ export declare const tagPairsOf: (transaction: Transaction) => string[];
46
+ /** Status classes a facet may offer, in reading order. Anything outside this is not offered. */
47
+ export declare const statusClassOrder: string[];
48
+ /** Cache statuses a facet may offer, in reading order. `unknown` sits last: it is an absence. */
49
+ export declare const cacheStatusOrder: string[];
@@ -0,0 +1,26 @@
1
+ const n = (e) => String(Math.floor(e / 100)), o = (e) => {
2
+ const t = [n(e.statusCode), String(e.statusCode)];
3
+ return e.status === "Failed" && t.push("failure"), t;
4
+ }, u = (e) => e.replace(/^([1-5])xx$/i, "$1"), i = /^(?:[1-5]|[1-5]\d\d|-[1-5]\d\d|failure)$/;
5
+ function l(e) {
6
+ const t = e.map(u).filter((s, c) => i.test(s) ? !0 : (console.error(
7
+ `Unknown status value "${e[c]}" ignored: expected a class ("4"), a code ("404"), an exclusion ("-404") or "failure".`
8
+ ), !1)), a = t.filter((s) => s.length === 1), r = (s) => a.includes(s[0]);
9
+ return {
10
+ classes: a,
11
+ codes: t.filter((s) => s.length === 3 && !r(s)),
12
+ excluded: t.filter((s) => s.startsWith("-") && r(s.slice(1))).map((s) => s.slice(1)),
13
+ failure: t.includes("failure")
14
+ };
15
+ }
16
+ const d = (e) => e.cacheStatus ? e.cacheStatus : e.cached === void 0 ? "unknown" : e.cached ? "hit" : "miss", f = (e) => Object.entries(e.tags ?? {}).map(([t, a]) => `${t}=${a}`), h = ["1", "2", "3", "4", "5"], p = ["hit", "miss", "stale", "bypass", "unknown"];
17
+ export {
18
+ p as cacheStatusOrder,
19
+ u as canonicalStatusToken,
20
+ d as effectiveCacheStatus,
21
+ l as parseStatusSelection,
22
+ n as statusClassOf,
23
+ h as statusClassOrder,
24
+ o as statusGroupsOf,
25
+ f as tagPairsOf
26
+ };
@@ -0,0 +1,15 @@
1
+ import type { Transaction } from "./types.js";
2
+ /** Name under which transactions without an `apiName` are grouped. */
3
+ export declare const UNKNOWN_API = "unknown-api";
4
+ export type EndpointNodeType = "api" | "folder" | "endpoint";
5
+ /** A node of the endpoint tree: an API, then the path segments below it. */
6
+ export interface Selection {
7
+ type: EndpointNodeType;
8
+ apiName: string;
9
+ segments: string[];
10
+ }
11
+ export declare function apiOf(transaction: Transaction): string;
12
+ /** Path segments of the request target: no query, no scheme or host. Never throws. */
13
+ export declare function segmentsOf(transaction: Transaction): string[];
14
+ /** Whether the transaction sits at or below the selected node, by whole segments. */
15
+ export declare function isUnder(transaction: Transaction, selection: Pick<Selection, "apiName" | "segments">): boolean;
@@ -0,0 +1,21 @@
1
+ import { splitRequestTarget as a } from "../Http/requestTarget.js";
2
+ import { MAX_TREE_DEPTH as f } from "./treeDepth.js";
3
+ const i = "unknown-api", m = /^[a-z][a-z0-9+.-]*:\/\/[^/]*/i;
4
+ function o(e) {
5
+ return e.apiName || i;
6
+ }
7
+ function p(e) {
8
+ const { path: t } = a(e.url);
9
+ return t.replace(m, "").split("/").filter(Boolean);
10
+ }
11
+ function l(e, t) {
12
+ if (o(e) !== t.apiName) return !1;
13
+ const n = p(e);
14
+ return t.segments.length > f && n.length !== t.segments.length ? !1 : t.segments.every((r, s) => n[s] === r);
15
+ }
16
+ export {
17
+ i as UNKNOWN_API,
18
+ o as apiOf,
19
+ l as isUnder,
20
+ p as segmentsOf
21
+ };