@calltelemetry/cli 0.6.13 → 0.7.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 (436) hide show
  1. package/dist/commands/config.d.ts.map +1 -1
  2. package/dist/commands/config.js +0 -42
  3. package/dist/commands/config.js.map +1 -1
  4. package/dist/commands/loadtest.d.ts.map +1 -1
  5. package/dist/commands/loadtest.js +214 -1
  6. package/dist/commands/loadtest.js.map +1 -1
  7. package/dist/commands/otel.d.ts +3 -0
  8. package/dist/commands/otel.d.ts.map +1 -0
  9. package/dist/commands/otel.js +89 -0
  10. package/dist/commands/otel.js.map +1 -0
  11. package/dist/commands/seed.d.ts +3 -0
  12. package/dist/commands/seed.d.ts.map +1 -0
  13. package/dist/commands/seed.js +106 -0
  14. package/dist/commands/seed.js.map +1 -0
  15. package/dist/commands/storage.d.ts +3 -0
  16. package/dist/commands/storage.d.ts.map +1 -0
  17. package/dist/commands/storage.js +66 -0
  18. package/dist/commands/storage.js.map +1 -0
  19. package/dist/index.js +6 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/lib/migration-004-systemd-docker.js +3 -3
  22. package/dist/lib/migration-004-systemd-docker.js.map +1 -1
  23. package/dist/lib/migration-005-ssh-keys.js +3 -3
  24. package/dist/lib/migration-005-ssh-keys.js.map +1 -1
  25. package/dist/lib/migration-013-grafana-password.d.ts +15 -0
  26. package/dist/lib/migration-013-grafana-password.d.ts.map +1 -0
  27. package/dist/lib/migration-013-grafana-password.js +80 -0
  28. package/dist/lib/migration-013-grafana-password.js.map +1 -0
  29. package/dist/lib/migration-014-docker-firewall-backend.d.ts +16 -0
  30. package/dist/lib/migration-014-docker-firewall-backend.d.ts.map +1 -0
  31. package/dist/lib/migration-014-docker-firewall-backend.js +72 -0
  32. package/dist/lib/migration-014-docker-firewall-backend.js.map +1 -0
  33. package/dist/lib/migrations.d.ts +8 -0
  34. package/dist/lib/migrations.d.ts.map +1 -1
  35. package/dist/lib/migrations.js +52 -0
  36. package/dist/lib/migrations.js.map +1 -1
  37. package/dist/lib/otel.d.ts +7 -7
  38. package/dist/lib/otel.d.ts.map +1 -1
  39. package/dist/lib/otel.js +18 -25
  40. package/dist/lib/otel.js.map +1 -1
  41. package/dist/lib/prefs.d.ts +1 -0
  42. package/dist/lib/prefs.d.ts.map +1 -1
  43. package/dist/lib/prefs.js +1 -0
  44. package/dist/lib/prefs.js.map +1 -1
  45. package/dist/lib/prompts.d.ts +3 -0
  46. package/dist/lib/prompts.d.ts.map +1 -0
  47. package/dist/lib/prompts.js +39 -0
  48. package/dist/lib/prompts.js.map +1 -0
  49. package/dist/lib/rpc-scripts.d.ts +4 -0
  50. package/dist/lib/rpc-scripts.d.ts.map +1 -1
  51. package/dist/lib/rpc-scripts.js +235 -0
  52. package/dist/lib/rpc-scripts.js.map +1 -1
  53. package/dist/lib/secrets.d.ts +2 -2
  54. package/dist/lib/secrets.d.ts.map +1 -1
  55. package/dist/lib/secrets.js +2 -1
  56. package/dist/lib/secrets.js.map +1 -1
  57. package/dist/lib/seed/connection.d.ts +5 -0
  58. package/dist/lib/seed/connection.d.ts.map +1 -0
  59. package/dist/lib/seed/connection.js +168 -0
  60. package/dist/lib/seed/connection.js.map +1 -0
  61. package/dist/lib/seed/copy.d.ts +4 -0
  62. package/dist/lib/seed/copy.d.ts.map +1 -0
  63. package/dist/lib/seed/copy.js +74 -0
  64. package/dist/lib/seed/copy.js.map +1 -0
  65. package/dist/lib/seed/dashboard-templates.d.ts +22 -0
  66. package/dist/lib/seed/dashboard-templates.d.ts.map +1 -0
  67. package/dist/lib/seed/dashboard-templates.js +268 -0
  68. package/dist/lib/seed/dashboard-templates.js.map +1 -0
  69. package/dist/lib/seed/families.d.ts +5 -0
  70. package/dist/lib/seed/families.d.ts.map +1 -0
  71. package/dist/lib/seed/families.js +1541 -0
  72. package/dist/lib/seed/families.js.map +1 -0
  73. package/dist/lib/seed/index.d.ts +12 -0
  74. package/dist/lib/seed/index.d.ts.map +1 -0
  75. package/dist/lib/seed/index.js +327 -0
  76. package/dist/lib/seed/index.js.map +1 -0
  77. package/dist/lib/seed/presets.d.ts +5 -0
  78. package/dist/lib/seed/presets.d.ts.map +1 -0
  79. package/dist/lib/seed/presets.js +114 -0
  80. package/dist/lib/seed/presets.js.map +1 -0
  81. package/dist/lib/seed/schema/columns.d.ts +35 -0
  82. package/dist/lib/seed/schema/columns.d.ts.map +1 -0
  83. package/dist/lib/seed/schema/columns.js +497 -0
  84. package/dist/lib/seed/schema/columns.js.map +1 -0
  85. package/dist/lib/seed/schema/fingerprint.d.ts +2 -0
  86. package/dist/lib/seed/schema/fingerprint.d.ts.map +1 -0
  87. package/dist/lib/seed/schema/fingerprint.js +4 -0
  88. package/dist/lib/seed/schema/fingerprint.js.map +1 -0
  89. package/dist/lib/seed/schema/index.d.ts +4 -0
  90. package/dist/lib/seed/schema/index.d.ts.map +1 -0
  91. package/dist/lib/seed/schema/index.js +6 -0
  92. package/dist/lib/seed/schema/index.js.map +1 -0
  93. package/dist/lib/seed/schema/spec.d.ts +8 -0
  94. package/dist/lib/seed/schema/spec.d.ts.map +1 -0
  95. package/dist/lib/seed/schema/spec.js +655 -0
  96. package/dist/lib/seed/schema/spec.js.map +1 -0
  97. package/dist/lib/seed/schema/tables.d.ts +132 -0
  98. package/dist/lib/seed/schema/tables.d.ts.map +1 -0
  99. package/dist/lib/seed/schema/tables.js +37 -0
  100. package/dist/lib/seed/schema/tables.js.map +1 -0
  101. package/dist/lib/seed/store.d.ts +26 -0
  102. package/dist/lib/seed/store.d.ts.map +1 -0
  103. package/dist/lib/seed/store.js +111 -0
  104. package/dist/lib/seed/store.js.map +1 -0
  105. package/dist/lib/seed/types.d.ts +71 -0
  106. package/dist/lib/seed/types.d.ts.map +1 -0
  107. package/dist/lib/seed/types.js +2 -0
  108. package/dist/lib/seed/types.js.map +1 -0
  109. package/dist/lib/storage.d.ts +4 -0
  110. package/dist/lib/storage.d.ts.map +1 -0
  111. package/dist/lib/storage.js +36 -0
  112. package/dist/lib/storage.js.map +1 -0
  113. package/dist/lib/update-steps.d.ts.map +1 -1
  114. package/dist/lib/update-steps.js +15 -0
  115. package/dist/lib/update-steps.js.map +1 -1
  116. package/dist/lib/update.d.ts.map +1 -1
  117. package/dist/lib/update.js +28 -2
  118. package/dist/lib/update.js.map +1 -1
  119. package/dist/lib/version.d.ts +1 -1
  120. package/dist/lib/version.d.ts.map +1 -1
  121. package/dist/lib/version.js +1 -1
  122. package/dist/lib/version.js.map +1 -1
  123. package/dist/lib/xcc-loadtest-types.d.ts +232 -0
  124. package/dist/lib/xcc-loadtest-types.d.ts.map +1 -0
  125. package/dist/lib/xcc-loadtest-types.js +2 -0
  126. package/dist/lib/xcc-loadtest-types.js.map +1 -0
  127. package/dist/lib/xcc-loadtest.d.ts +4 -0
  128. package/dist/lib/xcc-loadtest.d.ts.map +1 -0
  129. package/dist/lib/xcc-loadtest.js +616 -0
  130. package/dist/lib/xcc-loadtest.js.map +1 -0
  131. package/dist/lib/xcc-overlay.d.ts +3 -0
  132. package/dist/lib/xcc-overlay.d.ts.map +1 -0
  133. package/dist/lib/xcc-overlay.js +74 -0
  134. package/dist/lib/xcc-overlay.js.map +1 -0
  135. package/dist/lib/xcc-scenarios.d.ts +8 -0
  136. package/dist/lib/xcc-scenarios.d.ts.map +1 -0
  137. package/dist/lib/xcc-scenarios.js +129 -0
  138. package/dist/lib/xcc-scenarios.js.map +1 -0
  139. package/dist/lib/xcc-xml.d.ts +18 -0
  140. package/dist/lib/xcc-xml.d.ts.map +1 -0
  141. package/dist/lib/xcc-xml.js +210 -0
  142. package/dist/lib/xcc-xml.js.map +1 -0
  143. package/dist/shell/commands/appliance-migrations.d.ts +7 -0
  144. package/dist/shell/commands/appliance-migrations.d.ts.map +1 -0
  145. package/dist/shell/commands/appliance-migrations.js +128 -0
  146. package/dist/shell/commands/appliance-migrations.js.map +1 -0
  147. package/dist/shell/commands/appliance-performance.js +6 -6
  148. package/dist/shell/commands/appliance-performance.js.map +1 -1
  149. package/dist/shell/commands/config.d.ts.map +1 -1
  150. package/dist/shell/commands/config.js +6 -5
  151. package/dist/shell/commands/config.js.map +1 -1
  152. package/dist/shell/commands/connect.d.ts.map +1 -1
  153. package/dist/shell/commands/connect.js +3 -2
  154. package/dist/shell/commands/connect.js.map +1 -1
  155. package/dist/shell/commands/db.d.ts.map +1 -1
  156. package/dist/shell/commands/db.js +5 -4
  157. package/dist/shell/commands/db.js.map +1 -1
  158. package/dist/shell/commands/debug.d.ts.map +1 -1
  159. package/dist/shell/commands/debug.js +5 -4
  160. package/dist/shell/commands/debug.js.map +1 -1
  161. package/dist/shell/commands/diag.js +10 -10
  162. package/dist/shell/commands/diag.js.map +1 -1
  163. package/dist/shell/commands/registry.d.ts.map +1 -1
  164. package/dist/shell/commands/registry.js +56 -1
  165. package/dist/shell/commands/registry.js.map +1 -1
  166. package/dist/shell/commands/secrets.d.ts.map +1 -1
  167. package/dist/shell/commands/secrets.js +2 -1
  168. package/dist/shell/commands/secrets.js.map +1 -1
  169. package/dist/shell/commands/seed.d.ts +9 -0
  170. package/dist/shell/commands/seed.d.ts.map +1 -0
  171. package/dist/shell/commands/seed.js +197 -0
  172. package/dist/shell/commands/seed.js.map +1 -0
  173. package/dist/shell/commands/services.d.ts.map +1 -1
  174. package/dist/shell/commands/services.js +5 -4
  175. package/dist/shell/commands/services.js.map +1 -1
  176. package/dist/shell/commands/test.d.ts.map +1 -1
  177. package/dist/shell/commands/test.js +3 -2
  178. package/dist/shell/commands/test.js.map +1 -1
  179. package/dist/shell/commands/users.d.ts.map +1 -1
  180. package/dist/shell/commands/users.js +5 -39
  181. package/dist/shell/commands/users.js.map +1 -1
  182. package/dist/shell/network-onboarding.d.ts.map +1 -1
  183. package/dist/shell/network-onboarding.js +11 -45
  184. package/dist/shell/network-onboarding.js.map +1 -1
  185. package/dist/ui/components/ActionBar.d.ts +13 -0
  186. package/dist/ui/components/ActionBar.d.ts.map +1 -0
  187. package/dist/ui/components/ActionBar.js +7 -0
  188. package/dist/ui/components/ActionBar.js.map +1 -0
  189. package/dist/ui/components/AppShell.d.ts +6 -1
  190. package/dist/ui/components/AppShell.d.ts.map +1 -1
  191. package/dist/ui/components/AppShell.js +32 -10
  192. package/dist/ui/components/AppShell.js.map +1 -1
  193. package/dist/ui/components/DashboardBlock.d.ts +11 -0
  194. package/dist/ui/components/DashboardBlock.d.ts.map +1 -0
  195. package/dist/ui/components/DashboardBlock.js +6 -0
  196. package/dist/ui/components/DashboardBlock.js.map +1 -0
  197. package/dist/ui/components/DataTable.d.ts +6 -1
  198. package/dist/ui/components/DataTable.d.ts.map +1 -1
  199. package/dist/ui/components/DataTable.js +71 -7
  200. package/dist/ui/components/DataTable.js.map +1 -1
  201. package/dist/ui/components/ErrorBoundary.d.ts +1 -1
  202. package/dist/ui/components/FieldList.d.ts +24 -0
  203. package/dist/ui/components/FieldList.d.ts.map +1 -0
  204. package/dist/ui/components/FieldList.js +67 -0
  205. package/dist/ui/components/FieldList.js.map +1 -0
  206. package/dist/ui/components/KeyValue.d.ts +4 -2
  207. package/dist/ui/components/KeyValue.d.ts.map +1 -1
  208. package/dist/ui/components/KeyValue.js +4 -2
  209. package/dist/ui/components/KeyValue.js.map +1 -1
  210. package/dist/ui/components/KeyboardHint.d.ts +10 -0
  211. package/dist/ui/components/KeyboardHint.d.ts.map +1 -0
  212. package/dist/ui/components/KeyboardHint.js +6 -0
  213. package/dist/ui/components/KeyboardHint.js.map +1 -0
  214. package/dist/ui/components/MenuList.d.ts +10 -0
  215. package/dist/ui/components/MenuList.d.ts.map +1 -0
  216. package/dist/ui/components/MenuList.js +7 -0
  217. package/dist/ui/components/MenuList.js.map +1 -0
  218. package/dist/ui/components/MetricsFooter.d.ts +10 -7
  219. package/dist/ui/components/MetricsFooter.d.ts.map +1 -1
  220. package/dist/ui/components/MetricsFooter.js +16 -3
  221. package/dist/ui/components/MetricsFooter.js.map +1 -1
  222. package/dist/ui/components/PaneSection.d.ts +9 -0
  223. package/dist/ui/components/PaneSection.d.ts.map +1 -0
  224. package/dist/ui/components/PaneSection.js +6 -0
  225. package/dist/ui/components/PaneSection.js.map +1 -0
  226. package/dist/ui/components/PanelState.d.ts +8 -0
  227. package/dist/ui/components/PanelState.d.ts.map +1 -0
  228. package/dist/ui/components/PanelState.js +7 -0
  229. package/dist/ui/components/PanelState.js.map +1 -0
  230. package/dist/ui/components/ScrollViewport.d.ts +16 -0
  231. package/dist/ui/components/ScrollViewport.d.ts.map +1 -0
  232. package/dist/ui/components/ScrollViewport.js +54 -0
  233. package/dist/ui/components/ScrollViewport.js.map +1 -0
  234. package/dist/ui/components/Section.js +1 -1
  235. package/dist/ui/components/Section.js.map +1 -1
  236. package/dist/ui/components/SelectMenu.d.ts.map +1 -1
  237. package/dist/ui/components/SelectMenu.js +3 -3
  238. package/dist/ui/components/SelectMenu.js.map +1 -1
  239. package/dist/ui/components/ShellOutput.d.ts +2 -1
  240. package/dist/ui/components/ShellOutput.d.ts.map +1 -1
  241. package/dist/ui/components/ShellOutput.js +6 -2
  242. package/dist/ui/components/ShellOutput.js.map +1 -1
  243. package/dist/ui/components/SplitPane.d.ts +18 -0
  244. package/dist/ui/components/SplitPane.d.ts.map +1 -0
  245. package/dist/ui/components/SplitPane.js +9 -0
  246. package/dist/ui/components/SplitPane.js.map +1 -0
  247. package/dist/ui/components/StatusList.d.ts +18 -0
  248. package/dist/ui/components/StatusList.d.ts.map +1 -0
  249. package/dist/ui/components/StatusList.js +13 -0
  250. package/dist/ui/components/StatusList.js.map +1 -0
  251. package/dist/ui/components/SummaryStrip.d.ts +9 -0
  252. package/dist/ui/components/SummaryStrip.d.ts.map +1 -0
  253. package/dist/ui/components/SummaryStrip.js +6 -0
  254. package/dist/ui/components/SummaryStrip.js.map +1 -0
  255. package/dist/ui/components/app-shell-viewport.d.ts +7 -0
  256. package/dist/ui/components/app-shell-viewport.d.ts.map +1 -0
  257. package/dist/ui/components/app-shell-viewport.js +6 -0
  258. package/dist/ui/components/app-shell-viewport.js.map +1 -0
  259. package/dist/ui/components/index.d.ts +14 -0
  260. package/dist/ui/components/index.d.ts.map +1 -1
  261. package/dist/ui/components/index.js +12 -0
  262. package/dist/ui/components/index.js.map +1 -1
  263. package/dist/ui/context/MetricsContext.d.ts.map +1 -1
  264. package/dist/ui/context/MetricsContext.js +15 -12
  265. package/dist/ui/context/MetricsContext.js.map +1 -1
  266. package/dist/ui/hooks/index.d.ts +9 -1
  267. package/dist/ui/hooks/index.d.ts.map +1 -1
  268. package/dist/ui/hooks/index.js +7 -0
  269. package/dist/ui/hooks/index.js.map +1 -1
  270. package/dist/ui/hooks/useAsyncTask.d.ts +7 -1
  271. package/dist/ui/hooks/useAsyncTask.d.ts.map +1 -1
  272. package/dist/ui/hooks/useAsyncTask.js +30 -6
  273. package/dist/ui/hooks/useAsyncTask.js.map +1 -1
  274. package/dist/ui/hooks/useBoundedCursor.d.ts +7 -0
  275. package/dist/ui/hooks/useBoundedCursor.d.ts.map +1 -0
  276. package/dist/ui/hooks/useBoundedCursor.js +19 -0
  277. package/dist/ui/hooks/useBoundedCursor.js.map +1 -0
  278. package/dist/ui/hooks/useConfirmBackNav.d.ts +7 -0
  279. package/dist/ui/hooks/useConfirmBackNav.d.ts.map +1 -0
  280. package/dist/ui/hooks/useConfirmBackNav.js +10 -0
  281. package/dist/ui/hooks/useConfirmBackNav.js.map +1 -0
  282. package/dist/ui/hooks/useDismissKeys.d.ts +10 -0
  283. package/dist/ui/hooks/useDismissKeys.d.ts.map +1 -0
  284. package/dist/ui/hooks/useDismissKeys.js +17 -0
  285. package/dist/ui/hooks/useDismissKeys.js.map +1 -0
  286. package/dist/ui/hooks/useListCursor.d.ts +7 -0
  287. package/dist/ui/hooks/useListCursor.d.ts.map +1 -0
  288. package/dist/ui/hooks/useListCursor.js +29 -0
  289. package/dist/ui/hooks/useListCursor.js.map +1 -0
  290. package/dist/ui/hooks/useTwoPaneCursor.d.ts +12 -0
  291. package/dist/ui/hooks/useTwoPaneCursor.d.ts.map +1 -0
  292. package/dist/ui/hooks/useTwoPaneCursor.js +36 -0
  293. package/dist/ui/hooks/useTwoPaneCursor.js.map +1 -0
  294. package/dist/ui/hooks/useXccBackendOverlay.d.ts +9 -0
  295. package/dist/ui/hooks/useXccBackendOverlay.d.ts.map +1 -0
  296. package/dist/ui/hooks/useXccBackendOverlay.js +14 -0
  297. package/dist/ui/hooks/useXccBackendOverlay.js.map +1 -0
  298. package/dist/ui/hooks/useXccLoadTest.d.ts +11 -0
  299. package/dist/ui/hooks/useXccLoadTest.d.ts.map +1 -0
  300. package/dist/ui/hooks/useXccLoadTest.js +37 -0
  301. package/dist/ui/hooks/useXccLoadTest.js.map +1 -0
  302. package/dist/ui/palette.d.ts +23 -0
  303. package/dist/ui/palette.d.ts.map +1 -0
  304. package/dist/ui/palette.js +22 -0
  305. package/dist/ui/palette.js.map +1 -0
  306. package/dist/ui/views/DbHealthView.js +4 -4
  307. package/dist/ui/views/DbHealthView.js.map +1 -1
  308. package/dist/ui/views/DbSizeView.d.ts.map +1 -1
  309. package/dist/ui/views/DbSizeView.js +2 -2
  310. package/dist/ui/views/DbSizeView.js.map +1 -1
  311. package/dist/ui/views/DbTablesView.d.ts.map +1 -1
  312. package/dist/ui/views/DbTablesView.js +2 -2
  313. package/dist/ui/views/DbTablesView.js.map +1 -1
  314. package/dist/ui/views/DiagDatabaseView.d.ts.map +1 -1
  315. package/dist/ui/views/DiagDatabaseView.js +4 -3
  316. package/dist/ui/views/DiagDatabaseView.js.map +1 -1
  317. package/dist/ui/views/DiagNetworkView.js +2 -2
  318. package/dist/ui/views/DiagNetworkView.js.map +1 -1
  319. package/dist/ui/views/DiagServiceView.js +1 -1
  320. package/dist/ui/views/DiagServiceView.js.map +1 -1
  321. package/dist/ui/views/DockerPruneView.d.ts.map +1 -1
  322. package/dist/ui/views/DockerPruneView.js +4 -8
  323. package/dist/ui/views/DockerPruneView.js.map +1 -1
  324. package/dist/ui/views/K8sDeployView.d.ts.map +1 -1
  325. package/dist/ui/views/K8sDeployView.js +5 -5
  326. package/dist/ui/views/K8sDeployView.js.map +1 -1
  327. package/dist/ui/views/K8sServicesView.d.ts.map +1 -1
  328. package/dist/ui/views/K8sServicesView.js +6 -11
  329. package/dist/ui/views/K8sServicesView.js.map +1 -1
  330. package/dist/ui/views/K8sStatusView.d.ts.map +1 -1
  331. package/dist/ui/views/K8sStatusView.js +14 -19
  332. package/dist/ui/views/K8sStatusView.js.map +1 -1
  333. package/dist/ui/views/LoadTestConfigView.d.ts.map +1 -1
  334. package/dist/ui/views/LoadTestConfigView.js +45 -43
  335. package/dist/ui/views/LoadTestConfigView.js.map +1 -1
  336. package/dist/ui/views/LoadTestSummaryView.d.ts.map +1 -1
  337. package/dist/ui/views/LoadTestSummaryView.js +7 -2
  338. package/dist/ui/views/LoadTestSummaryView.js.map +1 -1
  339. package/dist/ui/views/MainMenu.d.ts.map +1 -1
  340. package/dist/ui/views/MainMenu.js +254 -55
  341. package/dist/ui/views/MainMenu.js.map +1 -1
  342. package/dist/ui/views/MigrateHistoryView.d.ts.map +1 -1
  343. package/dist/ui/views/MigrateHistoryView.js +11 -2
  344. package/dist/ui/views/MigrateHistoryView.js.map +1 -1
  345. package/dist/ui/views/MigrateRollbackView.d.ts.map +1 -1
  346. package/dist/ui/views/MigrateRollbackView.js +4 -8
  347. package/dist/ui/views/MigrateRollbackView.js.map +1 -1
  348. package/dist/ui/views/MigrateRunView.d.ts.map +1 -1
  349. package/dist/ui/views/MigrateRunView.js +4 -8
  350. package/dist/ui/views/MigrateRunView.js.map +1 -1
  351. package/dist/ui/views/MigrateStatusView.js +1 -1
  352. package/dist/ui/views/MigrateStatusView.js.map +1 -1
  353. package/dist/ui/views/MigrateWatchView.js +1 -1
  354. package/dist/ui/views/MigrateWatchView.js.map +1 -1
  355. package/dist/ui/views/OfflineApplyView.d.ts.map +1 -1
  356. package/dist/ui/views/OfflineApplyView.js +17 -7
  357. package/dist/ui/views/OfflineApplyView.js.map +1 -1
  358. package/dist/ui/views/OfflineDownloadView.d.ts.map +1 -1
  359. package/dist/ui/views/OfflineDownloadView.js +17 -7
  360. package/dist/ui/views/OfflineDownloadView.js.map +1 -1
  361. package/dist/ui/views/OfflineFetchView.d.ts.map +1 -1
  362. package/dist/ui/views/OfflineFetchView.js +17 -7
  363. package/dist/ui/views/OfflineFetchView.js.map +1 -1
  364. package/dist/ui/views/OfflineInspectView.d.ts.map +1 -1
  365. package/dist/ui/views/OfflineInspectView.js +17 -7
  366. package/dist/ui/views/OfflineInspectView.js.map +1 -1
  367. package/dist/ui/views/OsUpdatesEnableView.js +4 -4
  368. package/dist/ui/views/OsUpdatesEnableView.js.map +1 -1
  369. package/dist/ui/views/OsUpdatesLogView.js +1 -1
  370. package/dist/ui/views/OsUpdatesLogView.js.map +1 -1
  371. package/dist/ui/views/OsUpdatesStatusView.d.ts.map +1 -1
  372. package/dist/ui/views/OsUpdatesStatusView.js +12 -12
  373. package/dist/ui/views/OsUpdatesStatusView.js.map +1 -1
  374. package/dist/ui/views/PowerActionView.d.ts.map +1 -1
  375. package/dist/ui/views/PowerActionView.js +3 -8
  376. package/dist/ui/views/PowerActionView.js.map +1 -1
  377. package/dist/ui/views/SecretsResetPasswordView.d.ts.map +1 -1
  378. package/dist/ui/views/SecretsResetPasswordView.js +23 -7
  379. package/dist/ui/views/SecretsResetPasswordView.js.map +1 -1
  380. package/dist/ui/views/SecretsSetupView.d.ts.map +1 -1
  381. package/dist/ui/views/SecretsSetupView.js +39 -22
  382. package/dist/ui/views/SecretsSetupView.js.map +1 -1
  383. package/dist/ui/views/ServiceLogsView.d.ts.map +1 -1
  384. package/dist/ui/views/ServiceLogsView.js +9 -9
  385. package/dist/ui/views/ServiceLogsView.js.map +1 -1
  386. package/dist/ui/views/ServicesView.d.ts.map +1 -1
  387. package/dist/ui/views/ServicesView.js +51 -28
  388. package/dist/ui/views/ServicesView.js.map +1 -1
  389. package/dist/ui/views/SettingsView.d.ts.map +1 -1
  390. package/dist/ui/views/SettingsView.js +5 -4
  391. package/dist/ui/views/SettingsView.js.map +1 -1
  392. package/dist/ui/views/SetupWizardView.d.ts.map +1 -1
  393. package/dist/ui/views/SetupWizardView.js +37 -32
  394. package/dist/ui/views/SetupWizardView.js.map +1 -1
  395. package/dist/ui/views/StatusView.d.ts.map +1 -1
  396. package/dist/ui/views/StatusView.js +44 -31
  397. package/dist/ui/views/StatusView.js.map +1 -1
  398. package/dist/ui/views/UpdateView.d.ts.map +1 -1
  399. package/dist/ui/views/UpdateView.js +28 -14
  400. package/dist/ui/views/UpdateView.js.map +1 -1
  401. package/dist/ui/views/UserResetPasswordView.d.ts.map +1 -1
  402. package/dist/ui/views/UserResetPasswordView.js +26 -8
  403. package/dist/ui/views/UserResetPasswordView.js.map +1 -1
  404. package/dist/ui/views/XccLoadTestConfigView.d.ts +29 -0
  405. package/dist/ui/views/XccLoadTestConfigView.d.ts.map +1 -0
  406. package/dist/ui/views/XccLoadTestConfigView.js +210 -0
  407. package/dist/ui/views/XccLoadTestConfigView.js.map +1 -0
  408. package/dist/ui/views/XccLoadTestRunView.d.ts +9 -0
  409. package/dist/ui/views/XccLoadTestRunView.d.ts.map +1 -0
  410. package/dist/ui/views/XccLoadTestRunView.js +154 -0
  411. package/dist/ui/views/XccLoadTestRunView.js.map +1 -0
  412. package/dist/ui/views/XccLoadTestSummaryView.d.ts +9 -0
  413. package/dist/ui/views/XccLoadTestSummaryView.d.ts.map +1 -0
  414. package/dist/ui/views/XccLoadTestSummaryView.js +63 -0
  415. package/dist/ui/views/XccLoadTestSummaryView.js.map +1 -0
  416. package/dist/ui/views/XccLoadTestView.d.ts +8 -0
  417. package/dist/ui/views/XccLoadTestView.d.ts.map +1 -0
  418. package/dist/ui/views/XccLoadTestView.js +40 -0
  419. package/dist/ui/views/XccLoadTestView.js.map +1 -0
  420. package/package.json +6 -1
  421. package/dist/ui/views/JtapiDisableView.d.ts +0 -6
  422. package/dist/ui/views/JtapiDisableView.d.ts.map +0 -1
  423. package/dist/ui/views/JtapiDisableView.js +0 -52
  424. package/dist/ui/views/JtapiDisableView.js.map +0 -1
  425. package/dist/ui/views/JtapiEnableView.d.ts +0 -6
  426. package/dist/ui/views/JtapiEnableView.d.ts.map +0 -1
  427. package/dist/ui/views/JtapiEnableView.js +0 -40
  428. package/dist/ui/views/JtapiEnableView.js.map +0 -1
  429. package/dist/ui/views/JtapiStatusView.d.ts +0 -6
  430. package/dist/ui/views/JtapiStatusView.d.ts.map +0 -1
  431. package/dist/ui/views/JtapiStatusView.js +0 -11
  432. package/dist/ui/views/JtapiStatusView.js.map +0 -1
  433. package/dist/ui/views/JtapiTroubleshootView.d.ts +0 -6
  434. package/dist/ui/views/JtapiTroubleshootView.d.ts.map +0 -1
  435. package/dist/ui/views/JtapiTroubleshootView.js +0 -114
  436. package/dist/ui/views/JtapiTroubleshootView.js.map +0 -1
@@ -0,0 +1,168 @@
1
+ import { dirname } from 'node:path';
2
+ import { execa } from 'execa';
3
+ import { Pool } from 'pg';
4
+ import { composePs } from '../compose.js';
5
+ import { detectDeploymentMode } from '../deployment.js';
6
+ import { isKubeConfigAvailable } from '../k8s-client.js';
7
+ import { getSecrets } from '../secrets.js';
8
+ function buildDbUrlFromContainer(host) {
9
+ const secrets = getSecrets();
10
+ const user = encodeURIComponent(secrets.POSTGRES_USER);
11
+ const password = encodeURIComponent(secrets.POSTGRES_PASSWORD);
12
+ const database = encodeURIComponent(secrets.POSTGRES_DB);
13
+ return `postgresql://${user}:${password}@${host}:5432/${database}?sslmode=disable`;
14
+ }
15
+ async function inspectComposeDbIp() {
16
+ const containerId = await composePs('db');
17
+ if (!containerId) {
18
+ throw new Error('Database container is not running.');
19
+ }
20
+ const { stdout } = await execa('docker', [
21
+ 'inspect',
22
+ '-f',
23
+ '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}',
24
+ containerId.trim(),
25
+ ]);
26
+ const ip = stdout.trim();
27
+ if (!ip) {
28
+ throw new Error('Could not resolve the db container IP address.');
29
+ }
30
+ return ip;
31
+ }
32
+ function decodeBase64(value) {
33
+ return Buffer.from(value, 'base64').toString('utf8');
34
+ }
35
+ async function resolveK8sNamespace() {
36
+ if (process.env.CT_NAMESPACE) {
37
+ return process.env.CT_NAMESPACE;
38
+ }
39
+ if (process.env.CT_K8S_DEV_NAMESPACE) {
40
+ return process.env.CT_K8S_DEV_NAMESPACE;
41
+ }
42
+ try {
43
+ const { stdout } = await execa('kubectl', [
44
+ 'config',
45
+ 'view',
46
+ '--minify',
47
+ '--output',
48
+ 'jsonpath={..namespace}',
49
+ ]);
50
+ const namespace = stdout.trim();
51
+ if (namespace && namespace !== 'default') {
52
+ return namespace;
53
+ }
54
+ }
55
+ catch {
56
+ // Fall through to secret-based discovery.
57
+ }
58
+ const { stdout } = await execa('kubectl', [
59
+ 'get',
60
+ 'secrets',
61
+ '--all-namespaces',
62
+ '--field-selector',
63
+ 'metadata.name=api-db-secret',
64
+ '-o',
65
+ 'jsonpath={range .items[*]}{.metadata.namespace}{"\\n"}{end}',
66
+ ]);
67
+ const namespaces = stdout
68
+ .split('\n')
69
+ .map((value) => value.trim())
70
+ .filter(Boolean);
71
+ if (namespaces.length === 1) {
72
+ return namespaces[0];
73
+ }
74
+ const seenDirs = new Set();
75
+ let currentDir = process.cwd();
76
+ while (!seenDirs.has(currentDir)) {
77
+ seenDirs.add(currentDir);
78
+ try {
79
+ const { stdout } = await execa('git', ['-C', currentDir, 'branch', '--show-current']);
80
+ const branch = stdout.trim().toLowerCase();
81
+ if (branch) {
82
+ const branchNamespace = `ct-${branch.replace(/[^a-z0-9]+/g, '-').replace(/^-+|-+$/g, '')}`;
83
+ if (namespaces.includes(branchNamespace)) {
84
+ return branchNamespace;
85
+ }
86
+ }
87
+ }
88
+ catch {
89
+ // Ignore git resolution failures and try the next parent directory.
90
+ }
91
+ const parentDir = dirname(currentDir);
92
+ if (parentDir === currentDir) {
93
+ break;
94
+ }
95
+ currentDir = parentDir;
96
+ }
97
+ throw new Error('Could not determine the Kubernetes namespace for seed DB access. Set CT_NAMESPACE or pass --db-url.');
98
+ }
99
+ async function buildDbUrlFromK8s() {
100
+ const namespace = await resolveK8sNamespace();
101
+ const { stdout } = await execa('kubectl', [
102
+ 'get',
103
+ 'secret',
104
+ 'api-db-secret',
105
+ '-n',
106
+ namespace,
107
+ '-o',
108
+ 'json',
109
+ ]);
110
+ const secret = JSON.parse(stdout);
111
+ const data = secret.data ?? {};
112
+ const host = decodeBase64(data.DB_HOSTNAME ?? '');
113
+ const database = decodeBase64(data.DB_NAME ?? '');
114
+ const user = encodeURIComponent(decodeBase64(data.DB_USER ?? ''));
115
+ const password = encodeURIComponent(decodeBase64(data.DB_PASSWORD ?? ''));
116
+ const port = decodeBase64(data.DB_PORT ?? '') || '5432';
117
+ const sslEnabled = decodeBase64(data.DB_SSL_ENABLED ?? 'false') === 'true';
118
+ if (!host || !database || !user) {
119
+ throw new Error(`Kubernetes DB secret in namespace '${namespace}' is missing required fields.`);
120
+ }
121
+ return `postgresql://${user}:${password}@${host}:${port}/${encodeURIComponent(database)}?sslmode=${sslEnabled ? 'require' : 'disable'}`;
122
+ }
123
+ export async function resolveDbUrl(explicitDbUrl) {
124
+ if (explicitDbUrl) {
125
+ return explicitDbUrl;
126
+ }
127
+ const mode = detectDeploymentMode();
128
+ if (mode === 'k3s') {
129
+ return buildDbUrlFromK8s();
130
+ }
131
+ try {
132
+ const ip = await inspectComposeDbIp();
133
+ return buildDbUrlFromContainer(ip);
134
+ }
135
+ catch (error) {
136
+ if (isKubeConfigAvailable()) {
137
+ return buildDbUrlFromK8s();
138
+ }
139
+ throw error;
140
+ }
141
+ }
142
+ export async function withSeedPool(explicitDbUrl, fn) {
143
+ const connectionString = await resolveDbUrl(explicitDbUrl);
144
+ const pool = new Pool({
145
+ connectionString,
146
+ max: 4,
147
+ application_name: 'ct-seed',
148
+ });
149
+ try {
150
+ return await fn(pool);
151
+ }
152
+ finally {
153
+ await pool.end();
154
+ }
155
+ }
156
+ export async function withSeedClient(pool, fn) {
157
+ const client = await pool.connect();
158
+ try {
159
+ await client.query("SET application_name TO 'ct-seed'");
160
+ await client.query('SET synchronous_commit = off');
161
+ await client.query("SET maintenance_work_mem = '256MB'");
162
+ return await fn(client);
163
+ }
164
+ finally {
165
+ client.release();
166
+ }
167
+ }
168
+ //# sourceMappingURL=connection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../src/lib/seed/connection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { PoolClient } from 'pg';
2
+ export declare function reserveIds(client: PoolClient, sequenceName: string, count: number): Promise<number[]>;
3
+ export declare function copyRows<T extends Record<string, unknown>>(client: PoolClient, tableName: string, columns: readonly string[], rows: readonly T[]): Promise<void>;
4
+ //# sourceMappingURL=copy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copy.d.ts","sourceRoot":"","sources":["../../../src/lib/seed/copy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAwErC,wBAAsB,UAAU,CAC9B,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,EAAE,CAAC,CAWnB;AAED,wBAAsB,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9D,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,IAAI,EAAE,SAAS,CAAC,EAAE,GACjB,OAAO,CAAC,IAAI,CAAC,CASf"}
@@ -0,0 +1,74 @@
1
+ import { Readable } from 'node:stream';
2
+ import { pipeline } from 'node:stream/promises';
3
+ import { from as copyFrom } from 'pg-copy-streams';
4
+ function quoteIdentifier(identifier) {
5
+ if (identifier.includes('.')) {
6
+ return identifier
7
+ .split('.')
8
+ .map((part) => quoteIdentifier(part))
9
+ .join('.');
10
+ }
11
+ return `"${identifier.replaceAll('"', '""')}"`;
12
+ }
13
+ function formatArray(values) {
14
+ const parts = values.map((value) => {
15
+ if (value === null || value === undefined) {
16
+ return 'NULL';
17
+ }
18
+ const rendered = String(value).replaceAll('\\', '\\\\').replaceAll('"', '\\"');
19
+ return `"${rendered}"`;
20
+ });
21
+ return `{${parts.join(',')}}`;
22
+ }
23
+ function formatCopyValue(value) {
24
+ if (value === null || value === undefined) {
25
+ return '\\N';
26
+ }
27
+ if (value instanceof Date) {
28
+ return value.toISOString();
29
+ }
30
+ if (Array.isArray(value)) {
31
+ return formatArray(value);
32
+ }
33
+ if (typeof value === 'object') {
34
+ return JSON.stringify(value);
35
+ }
36
+ if (typeof value === 'boolean') {
37
+ return value ? 'true' : 'false';
38
+ }
39
+ return String(value);
40
+ }
41
+ function csvEscape(value) {
42
+ if (value === '\\N') {
43
+ return value;
44
+ }
45
+ const needsQuotes = /[,"\n\r]/.test(value);
46
+ if (!needsQuotes) {
47
+ return value;
48
+ }
49
+ return `"${value.replaceAll('"', '""')}"`;
50
+ }
51
+ function rowsToCsv(columns, rows) {
52
+ return rows.map((row) => {
53
+ return columns.map((column) => {
54
+ return csvEscape(formatCopyValue(row[column]));
55
+ }).join(',');
56
+ }).join('\n') + '\n';
57
+ }
58
+ export async function reserveIds(client, sequenceName, count) {
59
+ if (count <= 0) {
60
+ return [];
61
+ }
62
+ const result = await client.query(`SELECT nextval($1::regclass) AS id FROM generate_series(1, $2)`, [sequenceName, count]);
63
+ return result.rows.map((row) => Number.parseInt(row.id, 10));
64
+ }
65
+ export async function copyRows(client, tableName, columns, rows) {
66
+ if (rows.length === 0) {
67
+ return;
68
+ }
69
+ const sql = `COPY ${quoteIdentifier(tableName)} (${columns.map((column) => quoteIdentifier(column)).join(', ')}) FROM STDIN WITH (FORMAT csv, NULL '\\N')`;
70
+ const copyStream = client.query(copyFrom(sql));
71
+ const source = Readable.from([rowsToCsv(columns, rows)]);
72
+ await pipeline(source, copyStream);
73
+ }
74
+ //# sourceMappingURL=copy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copy.js","sourceRoot":"","sources":["../../../src/lib/seed/copy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ export interface DashboardTemplateFixture {
2
+ name: string;
3
+ description: string;
4
+ isShared: boolean;
5
+ refreshInterval: number;
6
+ tags: string[];
7
+ layoutConfig: Record<string, unknown>;
8
+ widgets: Array<{
9
+ title: string;
10
+ widgetType: 'chart' | 'table' | 'kpi_card';
11
+ displayMode: 'chart' | 'table';
12
+ sortOrder: number;
13
+ refreshInterval: number;
14
+ layout: Record<string, unknown>;
15
+ reportConfig: Record<string, unknown>;
16
+ chartConfig: Record<string, unknown>;
17
+ tableConfig: Record<string, unknown>;
18
+ ignoreGlobalFilters: string[];
19
+ }>;
20
+ }
21
+ export declare const DASHBOARD_TEMPLATE_FIXTURES: DashboardTemplateFixture[];
22
+ //# sourceMappingURL=dashboard-templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-templates.d.ts","sourceRoot":"","sources":["../../../src/lib/seed/dashboard-templates.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,OAAO,EAAE,KAAK,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;QAC3C,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC;QAC/B,SAAS,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACtC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACrC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACrC,mBAAmB,EAAE,MAAM,EAAE,CAAC;KAC/B,CAAC,CAAC;CACJ;AAED,eAAO,MAAM,2BAA2B,EAAE,wBAAwB,EA0QjE,CAAC"}
@@ -0,0 +1,268 @@
1
+ export const DASHBOARD_TEMPLATE_FIXTURES = [
2
+ {
3
+ name: 'Operations Overview',
4
+ description: 'High-level operational dashboard showing call volume, top extensions, missed calls, and average duration.',
5
+ isShared: true,
6
+ refreshInterval: 300,
7
+ tags: ['operations', 'overview'],
8
+ layoutConfig: { schema_version: 1 },
9
+ widgets: [
10
+ {
11
+ title: 'Call Volume by Day',
12
+ widgetType: 'chart',
13
+ displayMode: 'chart',
14
+ sortOrder: 0,
15
+ refreshInterval: 300,
16
+ layout: { x: 0, y: 0, w: 6, h: 4, min_w: 3, min_h: 3 },
17
+ reportConfig: {
18
+ report_name: 'peak_hour_analysis',
19
+ dimensions: ['date'],
20
+ metrics: ['total_calls', 'avg_call_duration'],
21
+ filters: [],
22
+ order_by: [{ field: 'date', direction: 'asc' }],
23
+ limit: 30,
24
+ schema_version: 1,
25
+ },
26
+ chartConfig: { schema_version: 2 },
27
+ tableConfig: { page_size: 50, schema_version: 1 },
28
+ ignoreGlobalFilters: [],
29
+ },
30
+ {
31
+ title: 'Top Extensions',
32
+ widgetType: 'table',
33
+ displayMode: 'table',
34
+ sortOrder: 1,
35
+ refreshInterval: 60,
36
+ layout: { x: 6, y: 0, w: 6, h: 4, min_w: 4, min_h: 3 },
37
+ reportConfig: {
38
+ report_name: 'user_usage_analysis',
39
+ dimensions: ['calling_party_number'],
40
+ metrics: ['total_calls', 'avg_call_duration_seconds', 'calls_abandoned'],
41
+ filters: [],
42
+ order_by: [{ field: 'total_calls', direction: 'desc' }],
43
+ limit: 20,
44
+ schema_version: 1,
45
+ },
46
+ chartConfig: { schema_version: 2 },
47
+ tableConfig: {
48
+ page_size: 25,
49
+ sort_by: 'total_calls',
50
+ sort_desc: true,
51
+ schema_version: 1,
52
+ },
53
+ ignoreGlobalFilters: [],
54
+ },
55
+ {
56
+ title: 'Average Call Duration',
57
+ widgetType: 'kpi_card',
58
+ displayMode: 'chart',
59
+ sortOrder: 2,
60
+ refreshInterval: 30,
61
+ layout: { x: 0, y: 4, w: 3, h: 3, min_w: 2, min_h: 2 },
62
+ reportConfig: {
63
+ report_name: 'peak_hour_analysis',
64
+ dimensions: [],
65
+ metrics: ['avg_call_duration'],
66
+ filters: [],
67
+ order_by: [],
68
+ limit: 1,
69
+ schema_version: 1,
70
+ },
71
+ chartConfig: { schema_version: 2 },
72
+ tableConfig: { schema_version: 1 },
73
+ ignoreGlobalFilters: [],
74
+ },
75
+ {
76
+ title: 'Missed Calls by Day',
77
+ widgetType: 'chart',
78
+ displayMode: 'chart',
79
+ sortOrder: 3,
80
+ refreshInterval: 300,
81
+ layout: { x: 3, y: 4, w: 9, h: 4, min_w: 4, min_h: 3 },
82
+ reportConfig: {
83
+ report_name: 'missed_call_analysis',
84
+ dimensions: ['date'],
85
+ metrics: ['total_missed_calls'],
86
+ filters: [],
87
+ order_by: [{ field: 'date', direction: 'asc' }],
88
+ limit: 30,
89
+ schema_version: 1,
90
+ },
91
+ chartConfig: { schema_version: 2 },
92
+ tableConfig: { page_size: 50, schema_version: 1 },
93
+ ignoreGlobalFilters: [],
94
+ },
95
+ ],
96
+ },
97
+ {
98
+ name: 'Call Quality Monitor',
99
+ description: 'Monitor voice quality metrics including MOS scores, jitter, latency, and packet loss across the network.',
100
+ isShared: true,
101
+ refreshInterval: 60,
102
+ tags: ['quality', 'monitoring'],
103
+ layoutConfig: { schema_version: 1 },
104
+ widgets: [
105
+ {
106
+ title: 'Quality Distribution',
107
+ widgetType: 'chart',
108
+ displayMode: 'chart',
109
+ sortOrder: 0,
110
+ refreshInterval: 60,
111
+ layout: { x: 0, y: 0, w: 6, h: 4, min_w: 3, min_h: 3 },
112
+ reportConfig: {
113
+ report_name: 'voice_quality',
114
+ dimensions: ['date'],
115
+ metrics: ['total_calls', 'avg_mos', 'poor_calls'],
116
+ filters: [],
117
+ order_by: [{ field: 'date', direction: 'asc' }],
118
+ limit: 14,
119
+ schema_version: 1,
120
+ },
121
+ chartConfig: { schema_version: 2 },
122
+ tableConfig: { page_size: 50, schema_version: 1 },
123
+ ignoreGlobalFilters: [],
124
+ },
125
+ {
126
+ title: 'Call Completion Rate',
127
+ widgetType: 'chart',
128
+ displayMode: 'chart',
129
+ sortOrder: 1,
130
+ refreshInterval: 300,
131
+ layout: { x: 6, y: 0, w: 6, h: 4, min_w: 3, min_h: 3 },
132
+ reportConfig: {
133
+ report_name: 'call_completion_analytics',
134
+ dimensions: ['date'],
135
+ metrics: ['total_calls', 'successful_calls', 'success_rate'],
136
+ filters: [],
137
+ order_by: [{ field: 'date', direction: 'asc' }],
138
+ limit: 14,
139
+ schema_version: 1,
140
+ },
141
+ chartConfig: { schema_version: 2 },
142
+ tableConfig: { page_size: 50, schema_version: 1 },
143
+ ignoreGlobalFilters: [],
144
+ },
145
+ {
146
+ title: 'Short Calls Detail',
147
+ widgetType: 'table',
148
+ displayMode: 'table',
149
+ sortOrder: 2,
150
+ refreshInterval: 300,
151
+ layout: { x: 0, y: 4, w: 12, h: 5, min_w: 6, min_h: 3 },
152
+ reportConfig: {
153
+ report_name: 'call_completion_analytics',
154
+ dimensions: ['termination_category', 'date'],
155
+ metrics: ['total_calls', 'short_calls', 'zero_duration_calls'],
156
+ filters: [],
157
+ order_by: [{ field: 'total_calls', direction: 'desc' }],
158
+ limit: 100,
159
+ schema_version: 1,
160
+ },
161
+ chartConfig: { schema_version: 2 },
162
+ tableConfig: {
163
+ page_size: 25,
164
+ sort_by: 'total_calls',
165
+ sort_desc: true,
166
+ schema_version: 1,
167
+ },
168
+ ignoreGlobalFilters: [],
169
+ },
170
+ ],
171
+ },
172
+ {
173
+ name: 'Capacity Planning',
174
+ description: 'Track call volume trends, peak hours, and capacity utilization for infrastructure planning.',
175
+ isShared: true,
176
+ refreshInterval: 300,
177
+ tags: ['capacity', 'planning'],
178
+ layoutConfig: { schema_version: 1 },
179
+ widgets: [
180
+ {
181
+ title: 'Daily Call Volume Trend',
182
+ widgetType: 'chart',
183
+ displayMode: 'chart',
184
+ sortOrder: 0,
185
+ refreshInterval: 300,
186
+ layout: { x: 0, y: 0, w: 12, h: 4, min_w: 6, min_h: 3 },
187
+ reportConfig: {
188
+ report_name: 'peak_hour_analysis',
189
+ dimensions: ['date'],
190
+ metrics: ['total_calls'],
191
+ filters: [],
192
+ order_by: [{ field: 'date', direction: 'asc' }],
193
+ limit: 90,
194
+ schema_version: 1,
195
+ },
196
+ chartConfig: { schema_version: 2 },
197
+ tableConfig: { page_size: 50, schema_version: 1 },
198
+ ignoreGlobalFilters: [],
199
+ },
200
+ {
201
+ title: 'Calls by Hour of Day',
202
+ widgetType: 'chart',
203
+ displayMode: 'chart',
204
+ sortOrder: 1,
205
+ refreshInterval: 300,
206
+ layout: { x: 0, y: 4, w: 6, h: 4, min_w: 3, min_h: 3 },
207
+ reportConfig: {
208
+ report_name: 'peak_hour_analysis',
209
+ dimensions: ['hour_of_day'],
210
+ metrics: ['total_calls', 'avg_call_duration'],
211
+ filters: [],
212
+ order_by: [{ field: 'hour_of_day', direction: 'asc' }],
213
+ limit: 24,
214
+ schema_version: 1,
215
+ },
216
+ chartConfig: { schema_version: 2 },
217
+ tableConfig: { page_size: 24, schema_version: 1 },
218
+ ignoreGlobalFilters: [],
219
+ },
220
+ {
221
+ title: 'Calls by Day of Week',
222
+ widgetType: 'chart',
223
+ displayMode: 'chart',
224
+ sortOrder: 2,
225
+ refreshInterval: 300,
226
+ layout: { x: 6, y: 4, w: 6, h: 4, min_w: 3, min_h: 3 },
227
+ reportConfig: {
228
+ report_name: 'peak_hour_analysis',
229
+ dimensions: ['day_of_week'],
230
+ metrics: ['total_calls', 'avg_call_duration'],
231
+ filters: [],
232
+ order_by: [{ field: 'day_of_week', direction: 'asc' }],
233
+ limit: 7,
234
+ schema_version: 1,
235
+ },
236
+ chartConfig: { schema_version: 2 },
237
+ tableConfig: { page_size: 7, schema_version: 1 },
238
+ ignoreGlobalFilters: [],
239
+ },
240
+ {
241
+ title: 'Top Callers',
242
+ widgetType: 'table',
243
+ displayMode: 'table',
244
+ sortOrder: 3,
245
+ refreshInterval: 300,
246
+ layout: { x: 0, y: 8, w: 12, h: 4, min_w: 6, min_h: 3 },
247
+ reportConfig: {
248
+ report_name: 'user_usage_analysis',
249
+ dimensions: ['calling_party_number'],
250
+ metrics: ['total_calls', 'avg_call_duration_seconds'],
251
+ filters: [],
252
+ order_by: [{ field: 'total_calls', direction: 'desc' }],
253
+ limit: 50,
254
+ schema_version: 1,
255
+ },
256
+ chartConfig: { schema_version: 2 },
257
+ tableConfig: {
258
+ page_size: 25,
259
+ sort_by: 'total_calls',
260
+ sort_desc: true,
261
+ schema_version: 1,
262
+ },
263
+ ignoreGlobalFilters: [],
264
+ },
265
+ ],
266
+ },
267
+ ];
268
+ //# sourceMappingURL=dashboard-templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-templates.js","sourceRoot":"","sources":["../../../src/lib/seed/dashboard-templates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { PoolClient } from 'pg';
2
+ import type { SeedContext, SeedFamilyExecutionResult, SeedFamilyKey, SeedFamilyPlan } from './types.js';
3
+ export declare function executeSeedFamily(client: PoolClient, ctx: SeedContext, plan: SeedFamilyPlan): Promise<SeedFamilyExecutionResult>;
4
+ export declare function cleanupSeedFamily(client: PoolClient, family: SeedFamilyKey, details: Record<string, unknown>): Promise<number>;
5
+ //# sourceMappingURL=families.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"families.d.ts","sourceRoot":"","sources":["../../../src/lib/seed/families.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAIrC,OAAO,KAAK,EACV,WAAW,EACX,yBAAyB,EACzB,aAAa,EACb,cAAc,EACf,MAAM,YAAY,CAAC;AA0hDpB,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,yBAAyB,CAAC,CA+BpC;AAsND,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,MAAM,CAAC,CA+BjB"}