@calltelemetry/cli 0.1.0

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 (297) hide show
  1. package/dist/commands/config.d.ts +3 -0
  2. package/dist/commands/config.d.ts.map +1 -0
  3. package/dist/commands/config.js +201 -0
  4. package/dist/commands/config.js.map +1 -0
  5. package/dist/commands/db.d.ts +3 -0
  6. package/dist/commands/db.d.ts.map +1 -0
  7. package/dist/commands/db.js +143 -0
  8. package/dist/commands/db.js.map +1 -0
  9. package/dist/commands/diag.d.ts +3 -0
  10. package/dist/commands/diag.d.ts.map +1 -0
  11. package/dist/commands/diag.js +123 -0
  12. package/dist/commands/diag.js.map +1 -0
  13. package/dist/commands/docker.d.ts +3 -0
  14. package/dist/commands/docker.d.ts.map +1 -0
  15. package/dist/commands/docker.js +34 -0
  16. package/dist/commands/docker.js.map +1 -0
  17. package/dist/commands/jtapi.d.ts +3 -0
  18. package/dist/commands/jtapi.d.ts.map +1 -0
  19. package/dist/commands/jtapi.js +36 -0
  20. package/dist/commands/jtapi.js.map +1 -0
  21. package/dist/commands/migrate.d.ts +3 -0
  22. package/dist/commands/migrate.d.ts.map +1 -0
  23. package/dist/commands/migrate.js +49 -0
  24. package/dist/commands/migrate.js.map +1 -0
  25. package/dist/commands/offline.d.ts +3 -0
  26. package/dist/commands/offline.d.ts.map +1 -0
  27. package/dist/commands/offline.js +170 -0
  28. package/dist/commands/offline.js.map +1 -0
  29. package/dist/commands/secrets.d.ts +3 -0
  30. package/dist/commands/secrets.d.ts.map +1 -0
  31. package/dist/commands/secrets.js +55 -0
  32. package/dist/commands/secrets.js.map +1 -0
  33. package/dist/commands/status.d.ts +3 -0
  34. package/dist/commands/status.d.ts.map +1 -0
  35. package/dist/commands/status.js +13 -0
  36. package/dist/commands/status.js.map +1 -0
  37. package/dist/commands/update.d.ts +3 -0
  38. package/dist/commands/update.d.ts.map +1 -0
  39. package/dist/commands/update.js +202 -0
  40. package/dist/commands/update.js.map +1 -0
  41. package/dist/index.d.ts +3 -0
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/index.js +65 -0
  44. package/dist/index.js.map +1 -0
  45. package/dist/lib/bundle.d.ts +5 -0
  46. package/dist/lib/bundle.d.ts.map +1 -0
  47. package/dist/lib/bundle.js +134 -0
  48. package/dist/lib/bundle.js.map +1 -0
  49. package/dist/lib/certs.d.ts +3 -0
  50. package/dist/lib/certs.d.ts.map +1 -0
  51. package/dist/lib/certs.js +29 -0
  52. package/dist/lib/certs.js.map +1 -0
  53. package/dist/lib/compose.d.ts +36 -0
  54. package/dist/lib/compose.d.ts.map +1 -0
  55. package/dist/lib/compose.js +137 -0
  56. package/dist/lib/compose.js.map +1 -0
  57. package/dist/lib/db.d.ts +6 -0
  58. package/dist/lib/db.d.ts.map +1 -0
  59. package/dist/lib/db.js +6 -0
  60. package/dist/lib/db.js.map +1 -0
  61. package/dist/lib/fs.d.ts +20 -0
  62. package/dist/lib/fs.d.ts.map +1 -0
  63. package/dist/lib/fs.js +72 -0
  64. package/dist/lib/fs.js.map +1 -0
  65. package/dist/lib/jtapi.d.ts +6 -0
  66. package/dist/lib/jtapi.d.ts.map +1 -0
  67. package/dist/lib/jtapi.js +27 -0
  68. package/dist/lib/jtapi.js.map +1 -0
  69. package/dist/lib/network.d.ts +43 -0
  70. package/dist/lib/network.d.ts.map +1 -0
  71. package/dist/lib/network.js +172 -0
  72. package/dist/lib/network.js.map +1 -0
  73. package/dist/lib/paths.d.ts +19 -0
  74. package/dist/lib/paths.d.ts.map +1 -0
  75. package/dist/lib/paths.js +57 -0
  76. package/dist/lib/paths.js.map +1 -0
  77. package/dist/lib/postgres.d.ts +4 -0
  78. package/dist/lib/postgres.d.ts.map +1 -0
  79. package/dist/lib/postgres.js +49 -0
  80. package/dist/lib/postgres.js.map +1 -0
  81. package/dist/lib/rpc.d.ts +5 -0
  82. package/dist/lib/rpc.d.ts.map +1 -0
  83. package/dist/lib/rpc.js +28 -0
  84. package/dist/lib/rpc.js.map +1 -0
  85. package/dist/lib/secrets.d.ts +38 -0
  86. package/dist/lib/secrets.d.ts.map +1 -0
  87. package/dist/lib/secrets.js +132 -0
  88. package/dist/lib/secrets.js.map +1 -0
  89. package/dist/lib/system.d.ts +12 -0
  90. package/dist/lib/system.d.ts.map +1 -0
  91. package/dist/lib/system.js +61 -0
  92. package/dist/lib/system.js.map +1 -0
  93. package/dist/ui/components/AppShell.d.ts +9 -0
  94. package/dist/ui/components/AppShell.d.ts.map +1 -0
  95. package/dist/ui/components/AppShell.js +6 -0
  96. package/dist/ui/components/AppShell.js.map +1 -0
  97. package/dist/ui/components/Confirm.d.ts +7 -0
  98. package/dist/ui/components/Confirm.d.ts.map +1 -0
  99. package/dist/ui/components/Confirm.js +14 -0
  100. package/dist/ui/components/Confirm.js.map +1 -0
  101. package/dist/ui/components/DataTable.d.ts +12 -0
  102. package/dist/ui/components/DataTable.d.ts.map +1 -0
  103. package/dist/ui/components/DataTable.js +28 -0
  104. package/dist/ui/components/DataTable.js.map +1 -0
  105. package/dist/ui/components/Divider.d.ts +6 -0
  106. package/dist/ui/components/Divider.d.ts.map +1 -0
  107. package/dist/ui/components/Divider.js +6 -0
  108. package/dist/ui/components/Divider.js.map +1 -0
  109. package/dist/ui/components/KeyValue.d.ts +11 -0
  110. package/dist/ui/components/KeyValue.d.ts.map +1 -0
  111. package/dist/ui/components/KeyValue.js +7 -0
  112. package/dist/ui/components/KeyValue.js.map +1 -0
  113. package/dist/ui/components/Section.d.ts +8 -0
  114. package/dist/ui/components/Section.d.ts.map +1 -0
  115. package/dist/ui/components/Section.js +6 -0
  116. package/dist/ui/components/Section.js.map +1 -0
  117. package/dist/ui/components/SelectMenu.d.ts +14 -0
  118. package/dist/ui/components/SelectMenu.d.ts.map +1 -0
  119. package/dist/ui/components/SelectMenu.js +55 -0
  120. package/dist/ui/components/SelectMenu.js.map +1 -0
  121. package/dist/ui/components/ShellOutput.d.ts +7 -0
  122. package/dist/ui/components/ShellOutput.d.ts.map +1 -0
  123. package/dist/ui/components/ShellOutput.js +10 -0
  124. package/dist/ui/components/ShellOutput.js.map +1 -0
  125. package/dist/ui/components/Spinner.d.ts +6 -0
  126. package/dist/ui/components/Spinner.d.ts.map +1 -0
  127. package/dist/ui/components/Spinner.js +7 -0
  128. package/dist/ui/components/Spinner.js.map +1 -0
  129. package/dist/ui/components/StatusBox.d.ts +8 -0
  130. package/dist/ui/components/StatusBox.d.ts.map +1 -0
  131. package/dist/ui/components/StatusBox.js +12 -0
  132. package/dist/ui/components/StatusBox.js.map +1 -0
  133. package/dist/ui/components/StatusLine.d.ts +8 -0
  134. package/dist/ui/components/StatusLine.d.ts.map +1 -0
  135. package/dist/ui/components/StatusLine.js +13 -0
  136. package/dist/ui/components/StatusLine.js.map +1 -0
  137. package/dist/ui/components/StepList.d.ts +11 -0
  138. package/dist/ui/components/StepList.d.ts.map +1 -0
  139. package/dist/ui/components/StepList.js +19 -0
  140. package/dist/ui/components/StepList.js.map +1 -0
  141. package/dist/ui/components/SubSection.d.ts +8 -0
  142. package/dist/ui/components/SubSection.d.ts.map +1 -0
  143. package/dist/ui/components/SubSection.js +6 -0
  144. package/dist/ui/components/SubSection.js.map +1 -0
  145. package/dist/ui/components/TextInput.d.ts +11 -0
  146. package/dist/ui/components/TextInput.d.ts.map +1 -0
  147. package/dist/ui/components/TextInput.js +7 -0
  148. package/dist/ui/components/TextInput.js.map +1 -0
  149. package/dist/ui/components/index.d.ts +16 -0
  150. package/dist/ui/components/index.d.ts.map +1 -0
  151. package/dist/ui/components/index.js +15 -0
  152. package/dist/ui/components/index.js.map +1 -0
  153. package/dist/ui/hooks/index.d.ts +7 -0
  154. package/dist/ui/hooks/index.d.ts.map +1 -0
  155. package/dist/ui/hooks/index.js +5 -0
  156. package/dist/ui/hooks/index.js.map +1 -0
  157. package/dist/ui/hooks/useAsyncTask.d.ts +9 -0
  158. package/dist/ui/hooks/useAsyncTask.d.ts.map +1 -0
  159. package/dist/ui/hooks/useAsyncTask.js +22 -0
  160. package/dist/ui/hooks/useAsyncTask.js.map +1 -0
  161. package/dist/ui/hooks/usePolling.d.ts +8 -0
  162. package/dist/ui/hooks/usePolling.d.ts.map +1 -0
  163. package/dist/ui/hooks/usePolling.js +43 -0
  164. package/dist/ui/hooks/usePolling.js.map +1 -0
  165. package/dist/ui/hooks/useStepRunner.d.ts +16 -0
  166. package/dist/ui/hooks/useStepRunner.d.ts.map +1 -0
  167. package/dist/ui/hooks/useStepRunner.js +42 -0
  168. package/dist/ui/hooks/useStepRunner.js.map +1 -0
  169. package/dist/ui/hooks/useStreamingProcess.d.ts +8 -0
  170. package/dist/ui/hooks/useStreamingProcess.d.ts.map +1 -0
  171. package/dist/ui/hooks/useStreamingProcess.js +49 -0
  172. package/dist/ui/hooks/useStreamingProcess.js.map +1 -0
  173. package/dist/ui/types.d.ts +24 -0
  174. package/dist/ui/types.d.ts.map +1 -0
  175. package/dist/ui/types.js +2 -0
  176. package/dist/ui/types.js.map +1 -0
  177. package/dist/ui/views/CertsStatusView.d.ts +2 -0
  178. package/dist/ui/views/CertsStatusView.d.ts.map +1 -0
  179. package/dist/ui/views/CertsStatusView.js +95 -0
  180. package/dist/ui/views/CertsStatusView.js.map +1 -0
  181. package/dist/ui/views/DbBackupView.d.ts +2 -0
  182. package/dist/ui/views/DbBackupView.d.ts.map +1 -0
  183. package/dist/ui/views/DbBackupView.js +62 -0
  184. package/dist/ui/views/DbBackupView.js.map +1 -0
  185. package/dist/ui/views/DbCompactView.d.ts +2 -0
  186. package/dist/ui/views/DbCompactView.d.ts.map +1 -0
  187. package/dist/ui/views/DbCompactView.js +28 -0
  188. package/dist/ui/views/DbCompactView.js.map +1 -0
  189. package/dist/ui/views/DbListView.d.ts +2 -0
  190. package/dist/ui/views/DbListView.d.ts.map +1 -0
  191. package/dist/ui/views/DbListView.js +30 -0
  192. package/dist/ui/views/DbListView.js.map +1 -0
  193. package/dist/ui/views/DbSizeView.d.ts +2 -0
  194. package/dist/ui/views/DbSizeView.d.ts.map +1 -0
  195. package/dist/ui/views/DbSizeView.js +21 -0
  196. package/dist/ui/views/DbSizeView.js.map +1 -0
  197. package/dist/ui/views/DbStatusView.d.ts +2 -0
  198. package/dist/ui/views/DbStatusView.d.ts.map +1 -0
  199. package/dist/ui/views/DbStatusView.js +41 -0
  200. package/dist/ui/views/DbStatusView.js.map +1 -0
  201. package/dist/ui/views/DbTablesView.d.ts +6 -0
  202. package/dist/ui/views/DbTablesView.d.ts.map +1 -0
  203. package/dist/ui/views/DbTablesView.js +28 -0
  204. package/dist/ui/views/DbTablesView.js.map +1 -0
  205. package/dist/ui/views/DiagDatabaseView.d.ts +2 -0
  206. package/dist/ui/views/DiagDatabaseView.d.ts.map +1 -0
  207. package/dist/ui/views/DiagDatabaseView.js +51 -0
  208. package/dist/ui/views/DiagDatabaseView.js.map +1 -0
  209. package/dist/ui/views/DiagNetworkView.d.ts +2 -0
  210. package/dist/ui/views/DiagNetworkView.d.ts.map +1 -0
  211. package/dist/ui/views/DiagNetworkView.js +169 -0
  212. package/dist/ui/views/DiagNetworkView.js.map +1 -0
  213. package/dist/ui/views/DiagServiceView.d.ts +2 -0
  214. package/dist/ui/views/DiagServiceView.d.ts.map +1 -0
  215. package/dist/ui/views/DiagServiceView.js +37 -0
  216. package/dist/ui/views/DiagServiceView.js.map +1 -0
  217. package/dist/ui/views/DockerNetworkView.d.ts +2 -0
  218. package/dist/ui/views/DockerNetworkView.d.ts.map +1 -0
  219. package/dist/ui/views/DockerNetworkView.js +29 -0
  220. package/dist/ui/views/DockerNetworkView.js.map +1 -0
  221. package/dist/ui/views/DockerPruneView.d.ts +2 -0
  222. package/dist/ui/views/DockerPruneView.d.ts.map +1 -0
  223. package/dist/ui/views/DockerPruneView.js +57 -0
  224. package/dist/ui/views/DockerPruneView.js.map +1 -0
  225. package/dist/ui/views/DockerStatusView.d.ts +2 -0
  226. package/dist/ui/views/DockerStatusView.d.ts.map +1 -0
  227. package/dist/ui/views/DockerStatusView.js +43 -0
  228. package/dist/ui/views/DockerStatusView.js.map +1 -0
  229. package/dist/ui/views/JtapiDisableView.d.ts +2 -0
  230. package/dist/ui/views/JtapiDisableView.d.ts.map +1 -0
  231. package/dist/ui/views/JtapiDisableView.js +55 -0
  232. package/dist/ui/views/JtapiDisableView.js.map +1 -0
  233. package/dist/ui/views/JtapiEnableView.d.ts +2 -0
  234. package/dist/ui/views/JtapiEnableView.d.ts.map +1 -0
  235. package/dist/ui/views/JtapiEnableView.js +47 -0
  236. package/dist/ui/views/JtapiEnableView.js.map +1 -0
  237. package/dist/ui/views/JtapiStatusView.d.ts +2 -0
  238. package/dist/ui/views/JtapiStatusView.d.ts.map +1 -0
  239. package/dist/ui/views/JtapiStatusView.js +18 -0
  240. package/dist/ui/views/JtapiStatusView.js.map +1 -0
  241. package/dist/ui/views/JtapiTroubleshootView.d.ts +2 -0
  242. package/dist/ui/views/JtapiTroubleshootView.d.ts.map +1 -0
  243. package/dist/ui/views/JtapiTroubleshootView.js +120 -0
  244. package/dist/ui/views/JtapiTroubleshootView.js.map +1 -0
  245. package/dist/ui/views/MainMenu.d.ts +8 -0
  246. package/dist/ui/views/MainMenu.d.ts.map +1 -0
  247. package/dist/ui/views/MainMenu.js +110 -0
  248. package/dist/ui/views/MainMenu.js.map +1 -0
  249. package/dist/ui/views/MigrateHistoryView.d.ts +2 -0
  250. package/dist/ui/views/MigrateHistoryView.d.ts.map +1 -0
  251. package/dist/ui/views/MigrateHistoryView.js +25 -0
  252. package/dist/ui/views/MigrateHistoryView.js.map +1 -0
  253. package/dist/ui/views/MigrateRollbackView.d.ts +6 -0
  254. package/dist/ui/views/MigrateRollbackView.d.ts.map +1 -0
  255. package/dist/ui/views/MigrateRollbackView.js +50 -0
  256. package/dist/ui/views/MigrateRollbackView.js.map +1 -0
  257. package/dist/ui/views/MigrateRunView.d.ts +2 -0
  258. package/dist/ui/views/MigrateRunView.d.ts.map +1 -0
  259. package/dist/ui/views/MigrateRunView.js +50 -0
  260. package/dist/ui/views/MigrateRunView.js.map +1 -0
  261. package/dist/ui/views/MigrateStatusView.d.ts +2 -0
  262. package/dist/ui/views/MigrateStatusView.d.ts.map +1 -0
  263. package/dist/ui/views/MigrateStatusView.js +88 -0
  264. package/dist/ui/views/MigrateStatusView.js.map +1 -0
  265. package/dist/ui/views/MigrateWatchView.d.ts +6 -0
  266. package/dist/ui/views/MigrateWatchView.d.ts.map +1 -0
  267. package/dist/ui/views/MigrateWatchView.js +83 -0
  268. package/dist/ui/views/MigrateWatchView.js.map +1 -0
  269. package/dist/ui/views/OfflineListView.d.ts +2 -0
  270. package/dist/ui/views/OfflineListView.d.ts.map +1 -0
  271. package/dist/ui/views/OfflineListView.js +47 -0
  272. package/dist/ui/views/OfflineListView.js.map +1 -0
  273. package/dist/ui/views/SecretsSetupView.d.ts +2 -0
  274. package/dist/ui/views/SecretsSetupView.d.ts.map +1 -0
  275. package/dist/ui/views/SecretsSetupView.js +94 -0
  276. package/dist/ui/views/SecretsSetupView.js.map +1 -0
  277. package/dist/ui/views/SecretsStatusView.d.ts +2 -0
  278. package/dist/ui/views/SecretsStatusView.d.ts.map +1 -0
  279. package/dist/ui/views/SecretsStatusView.js +36 -0
  280. package/dist/ui/views/SecretsStatusView.js.map +1 -0
  281. package/dist/ui/views/StatusView.d.ts +2 -0
  282. package/dist/ui/views/StatusView.d.ts.map +1 -0
  283. package/dist/ui/views/StatusView.js +80 -0
  284. package/dist/ui/views/StatusView.js.map +1 -0
  285. package/dist/utils/output.d.ts +11 -0
  286. package/dist/utils/output.d.ts.map +1 -0
  287. package/dist/utils/output.js +30 -0
  288. package/dist/utils/output.js.map +1 -0
  289. package/dist/utils/prompt.d.ts +6 -0
  290. package/dist/utils/prompt.d.ts.map +1 -0
  291. package/dist/utils/prompt.js +25 -0
  292. package/dist/utils/prompt.js.map +1 -0
  293. package/dist/utils/version.d.ts +8 -0
  294. package/dist/utils/version.d.ts.map +1 -0
  295. package/dist/utils/version.js +35 -0
  296. package/dist/utils/version.js.map +1 -0
  297. package/package.json +59 -0
@@ -0,0 +1,43 @@
1
+ export interface NetworkInterfaceInfo {
2
+ name: string;
3
+ family: 'IPv4' | 'IPv6';
4
+ address: string;
5
+ netmask: string;
6
+ mac: string;
7
+ internal: boolean;
8
+ }
9
+ export declare function getNetworkInterfaceList(): NetworkInterfaceInfo[];
10
+ export declare function getSystemHostname(): string;
11
+ export declare function getPlatformInfo(): {
12
+ platform: string;
13
+ arch: string;
14
+ nodeVersion: string;
15
+ };
16
+ export interface DnsResult {
17
+ host: string;
18
+ ipv4: string[];
19
+ ipv6: string[];
20
+ durationMs: number;
21
+ error?: string;
22
+ }
23
+ export declare function resolveDns(host: string): Promise<DnsResult>;
24
+ export interface TcpCheckResult {
25
+ host: string;
26
+ port: number;
27
+ open: boolean;
28
+ durationMs: number;
29
+ error?: string;
30
+ }
31
+ export declare function checkTcpPort(host: string, port: number, timeoutMs?: number): Promise<TcpCheckResult>;
32
+ export interface HttpsCheckResult {
33
+ url: string;
34
+ status?: number;
35
+ durationMs: number;
36
+ tlsVersion?: string;
37
+ certExpiry?: string;
38
+ error?: string;
39
+ }
40
+ export declare function checkHttps(url: string, timeoutMs?: number): Promise<HttpsCheckResult>;
41
+ export declare function getPingArgs(target: string, count?: number, timeoutSec?: number): string[];
42
+ export declare function getDefaultGateway(): Promise<string | null>;
43
+ //# sourceMappingURL=network.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/lib/network.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,uBAAuB,IAAI,oBAAoB,EAAE,CAmBhE;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,eAAe,IAAI;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAMzF;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CA8BjE;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CA+BlG;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,SAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAkDpF;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,SAAI,EAAE,UAAU,SAAI,GAAG,MAAM,EAAE,CAO/E;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAqBhE"}
@@ -0,0 +1,172 @@
1
+ import { networkInterfaces, hostname, platform, arch } from 'node:os';
2
+ import { createConnection } from 'node:net';
3
+ import { request as httpsRequest } from 'node:https';
4
+ import * as dns from 'node:dns/promises';
5
+ import { execa } from 'execa';
6
+ export function getNetworkInterfaceList() {
7
+ const ifaces = networkInterfaces();
8
+ const result = [];
9
+ for (const [name, addrs] of Object.entries(ifaces)) {
10
+ if (!addrs)
11
+ continue;
12
+ for (const addr of addrs) {
13
+ result.push({
14
+ name,
15
+ family: addr.family,
16
+ address: addr.address,
17
+ netmask: addr.netmask,
18
+ mac: addr.mac,
19
+ internal: addr.internal,
20
+ });
21
+ }
22
+ }
23
+ return result;
24
+ }
25
+ export function getSystemHostname() {
26
+ return hostname();
27
+ }
28
+ export function getPlatformInfo() {
29
+ return {
30
+ platform: `${platform()} (${arch()})`,
31
+ arch: arch(),
32
+ nodeVersion: process.version,
33
+ };
34
+ }
35
+ export async function resolveDns(host) {
36
+ const start = performance.now();
37
+ let ipv4 = [];
38
+ let ipv6 = [];
39
+ let error;
40
+ try {
41
+ const [v4Result, v6Result] = await Promise.allSettled([
42
+ dns.resolve4(host),
43
+ dns.resolve6(host),
44
+ ]);
45
+ if (v4Result.status === 'fulfilled')
46
+ ipv4 = v4Result.value;
47
+ if (v6Result.status === 'fulfilled')
48
+ ipv6 = v6Result.value;
49
+ if (ipv4.length === 0 && ipv6.length === 0) {
50
+ const v4Err = v4Result.status === 'rejected' ? v4Result.reason.message : '';
51
+ error = v4Err || 'No addresses found';
52
+ }
53
+ }
54
+ catch (e) {
55
+ error = e.message;
56
+ }
57
+ return {
58
+ host,
59
+ ipv4,
60
+ ipv6,
61
+ durationMs: Math.round(performance.now() - start),
62
+ error,
63
+ };
64
+ }
65
+ export function checkTcpPort(host, port, timeoutMs = 5000) {
66
+ return new Promise((resolve) => {
67
+ const start = performance.now();
68
+ let socket = null;
69
+ let settled = false;
70
+ const finish = (open, error) => {
71
+ if (settled)
72
+ return;
73
+ settled = true;
74
+ if (socket) {
75
+ socket.removeAllListeners();
76
+ socket.destroy();
77
+ }
78
+ resolve({
79
+ host,
80
+ port,
81
+ open,
82
+ durationMs: Math.round(performance.now() - start),
83
+ error,
84
+ });
85
+ };
86
+ socket = createConnection({ host, port, timeout: timeoutMs });
87
+ socket.on('connect', () => finish(true));
88
+ socket.on('timeout', () => finish(false, 'timeout'));
89
+ socket.on('error', (err) => {
90
+ const code = err.code;
91
+ finish(false, err.message || code || 'connection failed');
92
+ });
93
+ });
94
+ }
95
+ export function checkHttps(url, timeoutMs = 10000) {
96
+ return new Promise((resolve) => {
97
+ const start = performance.now();
98
+ let settled = false;
99
+ const finish = (result) => {
100
+ if (settled)
101
+ return;
102
+ settled = true;
103
+ resolve({
104
+ url,
105
+ durationMs: Math.round(performance.now() - start),
106
+ ...result,
107
+ });
108
+ };
109
+ try {
110
+ const req = httpsRequest(url, { method: 'HEAD', timeout: timeoutMs }, (res) => {
111
+ const socket = res.socket;
112
+ let tlsVersion;
113
+ let certExpiry;
114
+ if (socket && typeof socket.getProtocol === 'function') {
115
+ tlsVersion = socket.getProtocol() ?? undefined;
116
+ }
117
+ if (socket && typeof socket.getPeerCertificate === 'function') {
118
+ const cert = socket.getPeerCertificate();
119
+ if (cert?.valid_to) {
120
+ certExpiry = cert.valid_to;
121
+ }
122
+ }
123
+ res.resume();
124
+ finish({ status: res.statusCode, tlsVersion, certExpiry });
125
+ });
126
+ req.on('timeout', () => {
127
+ req.destroy();
128
+ finish({ error: 'timeout' });
129
+ });
130
+ req.on('error', (err) => {
131
+ finish({ error: err.message });
132
+ });
133
+ req.end();
134
+ }
135
+ catch (e) {
136
+ finish({ error: e.message });
137
+ }
138
+ });
139
+ }
140
+ export function getPingArgs(target, count = 3, timeoutSec = 2) {
141
+ if (platform() === 'darwin') {
142
+ // macOS: -W takes milliseconds
143
+ return ['-c', String(count), '-W', String(timeoutSec * 1000), target];
144
+ }
145
+ // Linux: -W takes seconds
146
+ return ['-c', String(count), '-W', String(timeoutSec), target];
147
+ }
148
+ export async function getDefaultGateway() {
149
+ try {
150
+ if (platform() === 'darwin') {
151
+ const { stdout } = await execa('netstat', ['-rn']);
152
+ const defaultLine = stdout.split('\n').find(l => l.startsWith('default'));
153
+ if (defaultLine) {
154
+ const parts = defaultLine.split(/\s+/);
155
+ return parts[1] ?? null;
156
+ }
157
+ }
158
+ else {
159
+ const { stdout } = await execa('ip', ['route']);
160
+ const defaultLine = stdout.split('\n').find(l => l.startsWith('default'));
161
+ if (defaultLine) {
162
+ const parts = defaultLine.split(/\s+/);
163
+ return parts[2] ?? null;
164
+ }
165
+ }
166
+ }
167
+ catch {
168
+ // Command not available
169
+ }
170
+ return null;
171
+ }
172
+ //# sourceMappingURL=network.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/lib/network.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export declare function getPaths(): {
2
+ installDir: string;
3
+ backupDir: string;
4
+ dbDumpsDir: string;
5
+ composeFile: string;
6
+ overrideFile: string;
7
+ certsDir: string;
8
+ postgresDataDir: string;
9
+ jtapiOverlayFile: string;
10
+ jtapiStateFile: string;
11
+ secretsOverlayFile: string;
12
+ gcsBaseUrl: string;
13
+ gcsBundleBaseUrl: string;
14
+ scriptUrl: string;
15
+ prepScriptUrl: string;
16
+ postgresSupportedVersions: string[];
17
+ postgresDefaultVersion: string;
18
+ };
19
+ //# sourceMappingURL=paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/lib/paths.ts"],"names":[],"mappings":"AAyDA,wBAAgB,QAAQ;;;;;;;;;;;;;;;;;EAGvB"}
@@ -0,0 +1,57 @@
1
+ import { existsSync, readFileSync } from 'node:fs';
2
+ import { homedir } from 'node:os';
3
+ import { join } from 'node:path';
4
+ const GCS_BASE_URL = 'https://storage.googleapis.com/ct_releases';
5
+ const GCS_BUNDLE_BASE_URL = `${GCS_BASE_URL}/releases`;
6
+ const KNOWN_INSTALL_PATHS = ['/home/calltelemetry', '/opt/calltelemetry'];
7
+ function detectInstallDir() {
8
+ const sudoUser = process.env.SUDO_USER;
9
+ const fallback = sudoUser
10
+ ? join('/home', sudoUser)
11
+ : homedir();
12
+ for (const checkPath of KNOWN_INSTALL_PATHS) {
13
+ if (checkPath === fallback)
14
+ continue;
15
+ const composePath = join(checkPath, 'docker-compose.yml');
16
+ if (existsSync(composePath)) {
17
+ try {
18
+ const content = readFileSync(composePath, 'utf-8');
19
+ if (content.includes('calltelemetry')) {
20
+ return checkPath;
21
+ }
22
+ }
23
+ catch {
24
+ // ignore read errors
25
+ }
26
+ }
27
+ }
28
+ return fallback;
29
+ }
30
+ let cached = null;
31
+ function buildPaths() {
32
+ const installDir = detectInstallDir();
33
+ return {
34
+ installDir,
35
+ backupDir: join(installDir, 'backups'),
36
+ dbDumpsDir: join(installDir, 'db_dumps'),
37
+ composeFile: join(installDir, 'docker-compose.yml'),
38
+ overrideFile: join(installDir, 'docker-compose.override.yml'),
39
+ certsDir: join(installDir, 'certs'),
40
+ postgresDataDir: join(installDir, 'postgres-data'),
41
+ jtapiOverlayFile: join(installDir, 'docker-compose-jtapi.yml'),
42
+ jtapiStateFile: join(installDir, '.jtapi-enabled'),
43
+ secretsOverlayFile: join(installDir, 'docker-compose.secrets.yml'),
44
+ gcsBaseUrl: GCS_BASE_URL,
45
+ gcsBundleBaseUrl: GCS_BUNDLE_BASE_URL,
46
+ scriptUrl: `${GCS_BASE_URL}/cli.sh`,
47
+ prepScriptUrl: `${GCS_BASE_URL}/prep.sh`,
48
+ postgresSupportedVersions: ['14', '15', '16', '17', '18'],
49
+ postgresDefaultVersion: '17',
50
+ };
51
+ }
52
+ export function getPaths() {
53
+ if (!cached)
54
+ cached = buildPaths();
55
+ return cached;
56
+ }
57
+ //# sourceMappingURL=paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/lib/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,YAAY,GAAG,4CAA4C,CAAC;AAClE,MAAM,mBAAmB,GAAG,GAAG,YAAY,WAAW,CAAC;AAEvD,MAAM,mBAAmB,GAAG,CAAC,qBAAqB,EAAE,oBAAoB,CAAC,CAAC;AAE1E,SAAS,gBAAgB;IACvB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;IACvC,MAAM,QAAQ,GAAG,QAAQ;QACvB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;QACzB,CAAC,CAAC,OAAO,EAAE,CAAC;IAEd,KAAK,MAAM,SAAS,IAAI,mBAAmB,EAAE,CAAC;QAC5C,IAAI,SAAS,KAAK,QAAQ;YAAE,SAAS;QACrC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;QAC1D,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;gBACnD,IAAI,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;oBACtC,OAAO,SAAS,CAAC;gBACnB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,qBAAqB;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,IAAI,MAAM,GAAyC,IAAI,CAAC;AAExD,SAAS,UAAU;IACjB,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;IACtC,OAAO;QACL,UAAU;QACV,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC;QACtC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC;QACxC,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,oBAAoB,CAAC;QACnD,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE,6BAA6B,CAAC;QAC7D,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC;QACnC,eAAe,EAAE,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC;QAClD,gBAAgB,EAAE,IAAI,CAAC,UAAU,EAAE,0BAA0B,CAAC;QAC9D,cAAc,EAAE,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC;QAClD,kBAAkB,EAAE,IAAI,CAAC,UAAU,EAAE,4BAA4B,CAAC;QAClE,UAAU,EAAE,YAAY;QACxB,gBAAgB,EAAE,mBAAmB;QACrC,SAAS,EAAE,GAAG,YAAY,SAAS;QACnC,aAAa,EAAE,GAAG,YAAY,UAAU;QACxC,yBAAyB,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QACzD,sBAAsB,EAAE,IAAI;KAC7B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,IAAI,CAAC,MAAM;QAAE,MAAM,GAAG,UAAU,EAAE,CAAC;IACnC,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function getPostgresVersion(): string;
2
+ export declare function getCurrentPostgresImage(): string;
3
+ export declare function setPostgresVersion(version: string): Promise<void>;
4
+ //# sourceMappingURL=postgres.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../src/lib/postgres.ts"],"names":[],"mappings":"AAKA,wBAAgB,kBAAkB,IAAI,MAAM,CAQ3C;AAED,wBAAgB,uBAAuB,IAAI,MAAM,CAmBhD;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBvE"}
@@ -0,0 +1,49 @@
1
+ import { existsSync, readFileSync } from 'node:fs';
2
+ import { execa } from 'execa';
3
+ import { getPaths } from './paths.js';
4
+ import { writeFileSafe } from './fs.js';
5
+ export function getPostgresVersion() {
6
+ const { overrideFile, postgresDefaultVersion } = getPaths();
7
+ if (existsSync(overrideFile)) {
8
+ const content = readFileSync(overrideFile, 'utf-8');
9
+ const match = content.match(/calltelemetry\/postgres:(\d+)/);
10
+ if (match)
11
+ return match[1];
12
+ }
13
+ return postgresDefaultVersion;
14
+ }
15
+ export function getCurrentPostgresImage() {
16
+ const { overrideFile, composeFile } = getPaths();
17
+ if (existsSync(overrideFile)) {
18
+ const content = readFileSync(overrideFile, 'utf-8');
19
+ const match = content.match(/image:\s*"?([^"\s]+)"?/);
20
+ if (match)
21
+ return match[1];
22
+ }
23
+ if (existsSync(composeFile)) {
24
+ const content = readFileSync(composeFile, 'utf-8');
25
+ const dbSection = content.split(/^\s*db:/m)[1];
26
+ if (dbSection) {
27
+ const match = dbSection.match(/image:\s*"?([^"\s]+)"?/);
28
+ if (match)
29
+ return match[1];
30
+ }
31
+ }
32
+ return 'unknown';
33
+ }
34
+ export async function setPostgresVersion(version) {
35
+ const { postgresSupportedVersions, gcsBaseUrl, overrideFile } = getPaths();
36
+ if (!postgresSupportedVersions.includes(version)) {
37
+ throw new Error(`Invalid PostgreSQL version: ${version}\n` +
38
+ `Supported versions: ${postgresSupportedVersions.join(', ')}`);
39
+ }
40
+ const url = `${gcsBaseUrl}/postgres-${version}.yaml`;
41
+ try {
42
+ const { stdout } = await execa('curl', ['-sfL', url]);
43
+ await writeFileSafe(overrideFile, stdout);
44
+ }
45
+ catch {
46
+ throw new Error(`Failed to download override file from: ${url}`);
47
+ }
48
+ }
49
+ //# sourceMappingURL=postgres.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../src/lib/postgres.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,MAAM,UAAU,kBAAkB;IAChC,MAAM,EAAE,YAAY,EAAE,sBAAsB,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC5D,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC7D,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,sBAAsB,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,uBAAuB;IACrC,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,QAAQ,EAAE,CAAC;IAEjD,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACtD,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;YACxD,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAAe;IACtD,MAAM,EAAE,yBAAyB,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,QAAQ,EAAE,CAAC;IAE3E,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CACb,+BAA+B,OAAO,IAAI;YAC1C,uBAAuB,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC9D,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAAG,GAAG,UAAU,aAAa,OAAO,OAAO,CAAC;IAErD,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;QACtD,MAAM,aAAa,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,0CAA0C,GAAG,EAAE,CAAC,CAAC;IACnE,CAAC;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare function rpc(code: string): Promise<string>;
2
+ export declare function rpcOk(): Promise<boolean>;
3
+ export declare function healthCheck(): Promise<boolean>;
4
+ export declare function getReleaseBin(): string;
5
+ //# sourceMappingURL=rpc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../src/lib/rpc.ts"],"names":[],"mappings":"AAIA,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGvD;AAED,wBAAsB,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,CAO9C;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAOpD;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC"}
@@ -0,0 +1,28 @@
1
+ import { composeExec } from './compose.js';
2
+ const RELEASE_BIN = '/home/app/onprem/bin/onprem';
3
+ export async function rpc(code) {
4
+ const result = await composeExec('web', [RELEASE_BIN, 'rpc', code], { pipe: true });
5
+ return result.stdout ?? '';
6
+ }
7
+ export async function rpcOk() {
8
+ try {
9
+ const output = await rpc('IO.puts("ok")');
10
+ return output.includes('ok');
11
+ }
12
+ catch {
13
+ return false;
14
+ }
15
+ }
16
+ export async function healthCheck() {
17
+ try {
18
+ const result = await composeExec('web', ['curl', '-sf', 'http://127.0.0.1:4080/healthz'], { pipe: true });
19
+ return result.exitCode === 0;
20
+ }
21
+ catch {
22
+ return false;
23
+ }
24
+ }
25
+ export function getReleaseBin() {
26
+ return RELEASE_BIN;
27
+ }
28
+ //# sourceMappingURL=rpc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../src/lib/rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,WAAW,GAAG,6BAA6B,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAY;IACpC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACpF,OAAO,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;AAC7B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,KAAK;IACzB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC,CAAC;QAC1C,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,+BAA+B,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1G,OAAO,MAAM,CAAC,QAAQ,KAAK,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,WAAW,CAAC;AACrB,CAAC"}
@@ -0,0 +1,38 @@
1
+ export interface SecretDef {
2
+ key: string;
3
+ label: string;
4
+ group: 'PostgreSQL' | 'NATS' | 'Minio';
5
+ defaultValue: string;
6
+ sensitive: boolean;
7
+ required: boolean;
8
+ }
9
+ export declare const SECRET_CATALOG: SecretDef[];
10
+ export declare const SECRET_GROUPS: readonly ["PostgreSQL", "NATS", "Minio"];
11
+ export type SecretGroup = (typeof SECRET_GROUPS)[number];
12
+ export declare function getEnvFilePath(): string;
13
+ /**
14
+ * Parse a .env file into key-value pairs.
15
+ * Handles: comments, blank lines, export prefix, quoted values, values with =
16
+ */
17
+ export declare function parseEnvFile(content: string): Record<string, string>;
18
+ /**
19
+ * Load secrets with priority: defaults → .env file → process.env
20
+ */
21
+ export declare function getSecrets(): Record<string, string>;
22
+ /**
23
+ * Check if any secrets have been customized (via .env or process.env)
24
+ */
25
+ export declare function isCustomized(): boolean;
26
+ /**
27
+ * Count how many secrets differ from defaults
28
+ */
29
+ export declare function countOverrides(): number;
30
+ /**
31
+ * Write secrets to .env file with 0600 permissions
32
+ */
33
+ export declare function writeEnvFile(values: Record<string, string>): Promise<void>;
34
+ /**
35
+ * Generate docker-compose.secrets.yml overlay file
36
+ */
37
+ export declare function writeSecretsOverlay(): Promise<void>;
38
+ //# sourceMappingURL=secrets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../../src/lib/secrets.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,cAAc,EAAE,SAAS,EAOrC,CAAC;AAEF,eAAO,MAAM,aAAa,0CAA2C,CAAC;AACtE,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAwBpE;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA4BnD;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAMtC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAGvC;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBhF;AAED;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAmBzD"}
@@ -0,0 +1,132 @@
1
+ import { existsSync, readFileSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { getPaths } from './paths.js';
4
+ import { writeFileSafe } from './fs.js';
5
+ export const SECRET_CATALOG = [
6
+ { key: 'POSTGRES_PASSWORD', label: 'PostgreSQL Password', group: 'PostgreSQL', defaultValue: 'postgres', sensitive: true, required: true },
7
+ { key: 'POSTGRES_USER', label: 'PostgreSQL User', group: 'PostgreSQL', defaultValue: 'calltelemetry', sensitive: false, required: true },
8
+ { key: 'POSTGRES_DB', label: 'PostgreSQL Database', group: 'PostgreSQL', defaultValue: 'calltelemetry_prod', sensitive: false, required: true },
9
+ { key: 'NATS_PASSWORD', label: 'NATS Password', group: 'NATS', defaultValue: '', sensitive: true, required: false },
10
+ { key: 'MINIO_ROOT_USER', label: 'Minio Root User', group: 'Minio', defaultValue: 'minioadmin', sensitive: false, required: false },
11
+ { key: 'MINIO_ROOT_PASSWORD', label: 'Minio Root Password', group: 'Minio', defaultValue: 'minioadmin', sensitive: true, required: false },
12
+ ];
13
+ export const SECRET_GROUPS = ['PostgreSQL', 'NATS', 'Minio'];
14
+ export function getEnvFilePath() {
15
+ return join(getPaths().installDir, '.env');
16
+ }
17
+ /**
18
+ * Parse a .env file into key-value pairs.
19
+ * Handles: comments, blank lines, export prefix, quoted values, values with =
20
+ */
21
+ export function parseEnvFile(content) {
22
+ const result = {};
23
+ for (const rawLine of content.split('\n')) {
24
+ const line = rawLine.trim();
25
+ if (!line || line.startsWith('#'))
26
+ continue;
27
+ // Strip optional 'export ' prefix
28
+ const stripped = line.startsWith('export ') ? line.slice(7) : line;
29
+ const eqIdx = stripped.indexOf('=');
30
+ if (eqIdx === -1)
31
+ continue;
32
+ const key = stripped.slice(0, eqIdx).trim();
33
+ let value = stripped.slice(eqIdx + 1).trim();
34
+ // Strip matching quotes
35
+ if ((value.startsWith('"') && value.endsWith('"')) ||
36
+ (value.startsWith("'") && value.endsWith("'"))) {
37
+ value = value.slice(1, -1);
38
+ }
39
+ if (key)
40
+ result[key] = value;
41
+ }
42
+ return result;
43
+ }
44
+ /**
45
+ * Load secrets with priority: defaults → .env file → process.env
46
+ */
47
+ export function getSecrets() {
48
+ const secrets = {};
49
+ // 1. Start with defaults
50
+ for (const def of SECRET_CATALOG) {
51
+ secrets[def.key] = def.defaultValue;
52
+ }
53
+ // 2. Load .env file (if exists)
54
+ const envPath = getEnvFilePath();
55
+ if (existsSync(envPath)) {
56
+ const content = readFileSync(envPath, 'utf-8');
57
+ const parsed = parseEnvFile(content);
58
+ for (const def of SECRET_CATALOG) {
59
+ if (parsed[def.key] !== undefined) {
60
+ secrets[def.key] = parsed[def.key];
61
+ }
62
+ }
63
+ }
64
+ // 3. Override with process.env (highest priority)
65
+ for (const def of SECRET_CATALOG) {
66
+ if (process.env[def.key] !== undefined) {
67
+ secrets[def.key] = process.env[def.key];
68
+ }
69
+ }
70
+ return secrets;
71
+ }
72
+ /**
73
+ * Check if any secrets have been customized (via .env or process.env)
74
+ */
75
+ export function isCustomized() {
76
+ const envPath = getEnvFilePath();
77
+ if (!existsSync(envPath))
78
+ return false;
79
+ const content = readFileSync(envPath, 'utf-8');
80
+ const parsed = parseEnvFile(content);
81
+ return SECRET_CATALOG.some(def => parsed[def.key] !== undefined);
82
+ }
83
+ /**
84
+ * Count how many secrets differ from defaults
85
+ */
86
+ export function countOverrides() {
87
+ const secrets = getSecrets();
88
+ return SECRET_CATALOG.filter(def => secrets[def.key] !== def.defaultValue).length;
89
+ }
90
+ /**
91
+ * Write secrets to .env file with 0600 permissions
92
+ */
93
+ export async function writeEnvFile(values) {
94
+ const envPath = getEnvFilePath();
95
+ const lines = [
96
+ '# CallTelemetry secrets — generated by ct secrets setup',
97
+ `# Last updated: ${new Date().toISOString()}`,
98
+ '',
99
+ ];
100
+ for (const def of SECRET_CATALOG) {
101
+ const value = values[def.key] ?? def.defaultValue;
102
+ if (value) {
103
+ lines.push(`${def.key}=${value}`);
104
+ }
105
+ }
106
+ lines.push('');
107
+ await writeFileSafe(envPath, lines.join('\n'), { mode: 0o600 });
108
+ }
109
+ /**
110
+ * Generate docker-compose.secrets.yml overlay file
111
+ */
112
+ export async function writeSecretsOverlay() {
113
+ const { secretsOverlayFile } = getPaths();
114
+ const content = `# Auto-generated by ct secrets setup — do not edit manually
115
+ # To reconfigure: ct secrets setup
116
+ services:
117
+ db:
118
+ environment:
119
+ POSTGRES_PASSWORD: \${POSTGRES_PASSWORD:-postgres}
120
+ POSTGRES_USER: \${POSTGRES_USER:-calltelemetry}
121
+ POSTGRES_DB: \${POSTGRES_DB:-calltelemetry_prod}
122
+ nats:
123
+ environment:
124
+ NATS_PASSWORD: \${NATS_PASSWORD:-}
125
+ minio:
126
+ environment:
127
+ MINIO_ROOT_USER: \${MINIO_ROOT_USER:-minioadmin}
128
+ MINIO_ROOT_PASSWORD: \${MINIO_ROOT_PASSWORD:-minioadmin}
129
+ `;
130
+ await writeFileSafe(secretsOverlayFile, content);
131
+ }
132
+ //# sourceMappingURL=secrets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../src/lib/secrets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export declare function checkRam(requiredMb?: number): Promise<{
2
+ ok: boolean;
3
+ totalMb: number;
4
+ }>;
5
+ export declare function checkDiskSpace(path?: string, requiredFreePercent?: number): Promise<{
6
+ ok: boolean;
7
+ usedPercent: number;
8
+ freePercent: number;
9
+ }>;
10
+ export declare function getDockerVersion(): Promise<number | null>;
11
+ export declare function getSystemStats(): Promise<string>;
12
+ //# sourceMappingURL=system.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../src/lib/system.ts"],"names":[],"mappings":"AAGA,wBAAsB,QAAQ,CAAC,UAAU,SAAO,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAI3F;AAED,wBAAsB,cAAc,CAAC,IAAI,SAAM,EAAE,mBAAmB,SAAK,GAAG,OAAO,CAAC;IAClF,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC,CAcD;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQ/D;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAsBtD"}