@postgres.ai/shared 3.5.0-pr-1027 → 3.5.0-pr-1027.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 (503) hide show
  1. package/components/AlertSnackbar/index.d.ts +2 -0
  2. package/components/AlertSnackbar/index.js +8 -0
  3. package/components/AlertSnackbar/useAlertSnackbar.d.ts +16 -0
  4. package/components/AlertSnackbar/useAlertSnackbar.js +37 -0
  5. package/components/Button/index.d.ts +7 -0
  6. package/components/Button/index.js +40 -0
  7. package/components/Button2/index.d.ts +13 -0
  8. package/components/Button2/index.js +10 -0
  9. package/components/DestroyCloneModal/index.d.ts +9 -0
  10. package/components/DestroyCloneModal/index.js +23 -0
  11. package/components/DestroyCloneRestrictionModal/index.d.ts +11 -0
  12. package/components/DestroyCloneRestrictionModal/index.js +16 -0
  13. package/components/ErrorStub/index.d.ts +11 -0
  14. package/components/ErrorStub/index.js +42 -0
  15. package/components/FormattedText/index.d.ts +7 -0
  16. package/components/FormattedText/index.js +23 -0
  17. package/components/GatewayLink/index.d.ts +4 -0
  18. package/components/GatewayLink/index.js +13 -0
  19. package/components/HorizontalScrollContainer/index.d.ts +13 -0
  20. package/components/HorizontalScrollContainer/index.js +72 -0
  21. package/components/HorizontalScrollContainer/types.d.ts +5 -0
  22. package/components/HorizontalScrollContainer/{types.ts → types.js} +1 -6
  23. package/components/HorizontalScrollContainer/utils.d.ts +3 -0
  24. package/components/HorizontalScrollContainer/utils.js +12 -0
  25. package/components/ImportantText/index.d.ts +6 -0
  26. package/components/ImportantText/index.js +12 -0
  27. package/components/Link2/index.d.ts +7 -0
  28. package/components/Link2/index.js +17 -0
  29. package/components/MenuButton/index.d.ts +24 -0
  30. package/components/MenuButton/index.js +16 -0
  31. package/components/Modal/index.d.ts +15 -0
  32. package/components/Modal/index.js +35 -0
  33. package/components/PageSpinner/index.d.ts +2 -0
  34. package/components/PageSpinner/{index.tsx → index.js} +5 -11
  35. package/components/ResetCloneModal/index.d.ts +13 -0
  36. package/components/ResetCloneModal/index.js +87 -0
  37. package/components/SectionTitle/index.d.ts +12 -0
  38. package/components/SectionTitle/index.js +31 -0
  39. package/components/Select/index.d.ts +18 -0
  40. package/components/Select/index.js +9 -0
  41. package/components/SimpleModalControls/index.d.ts +11 -0
  42. package/components/SimpleModalControls/index.js +19 -0
  43. package/components/Spinner/icon.d.ts +4 -0
  44. package/components/Spinner/icon.js +2 -0
  45. package/components/Spinner/index.d.ts +7 -0
  46. package/components/Spinner/index.js +8 -0
  47. package/components/Status/index.d.ts +12 -0
  48. package/components/Status/index.js +23 -0
  49. package/components/StubContainer/index.d.ts +7 -0
  50. package/components/StubContainer/index.js +14 -0
  51. package/components/StubSpinner/index.d.ts +8 -0
  52. package/components/StubSpinner/index.js +29 -0
  53. package/components/StubSpinnerFlex/index.d.ts +9 -0
  54. package/components/StubSpinnerFlex/index.js +8 -0
  55. package/components/SyntaxHighlight/index.d.ts +7 -0
  56. package/components/SyntaxHighlight/index.js +65 -0
  57. package/components/Table/RowMenu/index.d.ts +14 -0
  58. package/components/Table/RowMenu/index.js +50 -0
  59. package/components/Table/index.d.ts +12 -0
  60. package/components/Table/index.js +58 -0
  61. package/components/Text/index.d.ts +6 -0
  62. package/components/Text/index.js +11 -0
  63. package/components/TextField/index.d.ts +27 -0
  64. package/components/TextField/index.js +43 -0
  65. package/components/Tooltip/index.d.ts +12 -0
  66. package/components/Tooltip/index.js +19 -0
  67. package/config/index.d.ts +8 -0
  68. package/config/index.js +23 -0
  69. package/config/links.d.ts +6 -0
  70. package/config/links.js +6 -0
  71. package/helpers/getEntropy.d.ts +3 -0
  72. package/helpers/getEntropy.js +212 -0
  73. package/helpers/localStorage.d.ts +6 -0
  74. package/helpers/localStorage.js +13 -0
  75. package/helpers/request.d.ts +7 -0
  76. package/helpers/request.js +35 -0
  77. package/hooks/useWindowDimensions.d.ts +1 -0
  78. package/hooks/useWindowDimensions.js +12 -0
  79. package/icons/ArrowDropDown/index.d.ts +6 -0
  80. package/icons/ArrowDropDown/index.js +6 -0
  81. package/icons/Circle/index.d.ts +6 -0
  82. package/icons/Circle/index.js +5 -0
  83. package/icons/External/index.d.ts +4 -0
  84. package/icons/External/index.js +2 -0
  85. package/icons/Info/index.d.ts +4 -0
  86. package/icons/Info/index.js +2 -0
  87. package/icons/Renewable/index.d.ts +6 -0
  88. package/icons/Renewable/index.js +12 -0
  89. package/icons/Shield/index.d.ts +6 -0
  90. package/icons/Shield/index.js +12 -0
  91. package/icons/Warning/index.d.ts +6 -0
  92. package/icons/Warning/index.js +6 -0
  93. package/package.json +5 -13
  94. package/pages/Clone/Status/index.d.ts +8 -0
  95. package/pages/Clone/Status/index.js +38 -0
  96. package/pages/Clone/context.d.ts +19 -0
  97. package/pages/Clone/context.js +3 -0
  98. package/pages/Clone/index.d.ts +7 -0
  99. package/pages/Clone/index.js +221 -0
  100. package/pages/Clone/stores/Main.d.ts +45 -0
  101. package/pages/Clone/stores/Main.js +141 -0
  102. package/pages/Clone/useCreatedStores.d.ts +6 -0
  103. package/pages/Clone/useCreatedStores.js +5 -0
  104. package/pages/Configuration/Header/index.d.ts +11 -0
  105. package/pages/Configuration/Header/index.js +17 -0
  106. package/pages/Configuration/InputWithTooltip/index.d.ts +32 -0
  107. package/pages/Configuration/InputWithTooltip/index.js +60 -0
  108. package/pages/Configuration/ResponseMessage/index.d.ts +5 -0
  109. package/pages/Configuration/ResponseMessage/index.js +43 -0
  110. package/pages/Configuration/configOptions.d.ts +9 -0
  111. package/pages/Configuration/configOptions.js +59 -0
  112. package/pages/Configuration/index.d.ts +9 -0
  113. package/pages/Configuration/index.js +544 -0
  114. package/pages/Configuration/tooltipText.d.ts +20 -0
  115. package/pages/Configuration/tooltipText.js +21 -0
  116. package/pages/Configuration/useForm.d.ts +82 -0
  117. package/pages/Configuration/useForm.js +74 -0
  118. package/pages/Configuration/utils/index.d.ts +22 -0
  119. package/pages/Configuration/utils/index.js +105 -0
  120. package/pages/CreateClone/index.d.ts +17 -0
  121. package/pages/CreateClone/index.js +90 -0
  122. package/pages/CreateClone/stores/Main.d.ts +26 -0
  123. package/pages/CreateClone/stores/Main.js +61 -0
  124. package/pages/CreateClone/useCreatedStores.d.ts +6 -0
  125. package/pages/CreateClone/useCreatedStores.js +5 -0
  126. package/pages/CreateClone/useForm.d.ts +54 -0
  127. package/pages/CreateClone/useForm.js +25 -0
  128. package/pages/Instance/Clones/Header/Item/index.d.ts +7 -0
  129. package/pages/Instance/Clones/Header/Item/index.js +5 -0
  130. package/pages/Instance/Clones/Header/index.d.ts +9 -0
  131. package/pages/Instance/Clones/Header/index.js +16 -0
  132. package/pages/Instance/Clones/index.d.ts +4 -0
  133. package/pages/Instance/Clones/index.js +66 -0
  134. package/pages/Instance/ClonesModal/index.d.ts +4 -0
  135. package/pages/Instance/ClonesModal/index.js +38 -0
  136. package/pages/Instance/ClonesModal/utils.d.ts +7 -0
  137. package/pages/Instance/ClonesModal/utils.js +14 -0
  138. package/pages/Instance/InactiveInstance/index.d.ts +6 -0
  139. package/pages/Instance/InactiveInstance/index.js +65 -0
  140. package/pages/Instance/InactiveInstance/utils.d.ts +2 -0
  141. package/pages/Instance/InactiveInstance/utils.js +7 -0
  142. package/pages/Instance/Info/Connection/ConnectModal/Content/index.d.ts +4 -0
  143. package/pages/Instance/Info/Connection/ConnectModal/Content/index.js +73 -0
  144. package/pages/Instance/Info/Connection/ConnectModal/Content/utils.d.ts +3 -0
  145. package/pages/Instance/Info/Connection/ConnectModal/Content/utils.js +20 -0
  146. package/pages/Instance/Info/Connection/ConnectModal/index.d.ts +6 -0
  147. package/pages/Instance/Info/Connection/ConnectModal/index.js +17 -0
  148. package/pages/Instance/Info/Connection/index.d.ts +4 -0
  149. package/pages/Instance/Info/Connection/index.js +44 -0
  150. package/pages/Instance/Info/Details/index.d.ts +2 -0
  151. package/pages/Instance/Info/Details/index.js +6 -0
  152. package/pages/Instance/Info/Disks/Disk/ActionsMenu/index.d.ts +8 -0
  153. package/pages/Instance/Info/Disks/Disk/ActionsMenu/index.js +47 -0
  154. package/pages/Instance/Info/Disks/Disk/Marker/index.d.ts +6 -0
  155. package/pages/Instance/Info/Disks/Disk/Marker/index.js +15 -0
  156. package/pages/Instance/Info/Disks/Disk/ProgressBar/PointerIcon.d.ts +5 -0
  157. package/pages/Instance/Info/Disks/Disk/ProgressBar/PointerIcon.js +2 -0
  158. package/pages/Instance/Info/Disks/Disk/ProgressBar/index.d.ts +8 -0
  159. package/pages/Instance/Info/Disks/Disk/ProgressBar/index.js +45 -0
  160. package/pages/Instance/Info/Disks/Disk/Status/index.d.ts +6 -0
  161. package/pages/Instance/Info/Disks/Disk/Status/index.js +52 -0
  162. package/pages/Instance/Info/Disks/Disk/index.d.ts +15 -0
  163. package/pages/Instance/Info/Disks/Disk/index.js +69 -0
  164. package/pages/Instance/Info/Disks/index.d.ts +4 -0
  165. package/pages/Instance/Info/Disks/index.js +24 -0
  166. package/pages/Instance/Info/Icons/index.d.ts +7 -0
  167. package/pages/Instance/Info/Icons/index.js +3 -0
  168. package/pages/Instance/Info/Retrieval/RefreshFailedAlert/index.d.ts +4 -0
  169. package/pages/Instance/Info/Retrieval/RefreshFailedAlert/index.js +15 -0
  170. package/pages/Instance/Info/Retrieval/RetrievalModal/index.d.ts +10 -0
  171. package/pages/Instance/Info/Retrieval/RetrievalModal/index.js +15 -0
  172. package/pages/Instance/Info/Retrieval/RetrievalTable/index.d.ts +6 -0
  173. package/pages/Instance/Info/Retrieval/RetrievalTable/index.js +6 -0
  174. package/pages/Instance/Info/Retrieval/index.d.ts +4 -0
  175. package/pages/Instance/Info/Retrieval/index.js +49 -0
  176. package/pages/Instance/Info/Retrieval/utils.d.ts +2 -0
  177. package/pages/Instance/Info/Retrieval/utils.js +12 -0
  178. package/pages/Instance/Info/Snapshots/Calendar/Day/index.d.ts +11 -0
  179. package/pages/Instance/Info/Snapshots/Calendar/Day/index.js +71 -0
  180. package/pages/Instance/Info/Snapshots/Calendar/index.d.ts +8 -0
  181. package/pages/Instance/Info/Snapshots/Calendar/index.js +67 -0
  182. package/pages/Instance/Info/Snapshots/Calendar/utils.d.ts +23 -0
  183. package/pages/Instance/Info/Snapshots/Calendar/utils.js +41 -0
  184. package/pages/Instance/Info/Snapshots/TimeLine/Day/index.d.ts +6 -0
  185. package/pages/Instance/Info/Snapshots/TimeLine/Day/index.js +58 -0
  186. package/pages/Instance/Info/Snapshots/TimeLine/index.d.ts +2 -0
  187. package/pages/Instance/Info/Snapshots/TimeLine/index.js +32 -0
  188. package/pages/Instance/Info/Snapshots/index.d.ts +4 -0
  189. package/pages/Instance/Info/Snapshots/index.js +35 -0
  190. package/pages/Instance/Info/Snapshots/utils.d.ts +23 -0
  191. package/pages/Instance/Info/Snapshots/utils.js +16 -0
  192. package/pages/Instance/Info/Status/InstanceResponseModal/index.d.ts +9 -0
  193. package/pages/Instance/Info/Status/InstanceResponseModal/index.js +12 -0
  194. package/pages/Instance/Info/Status/index.d.ts +4 -0
  195. package/pages/Instance/Info/Status/index.js +31 -0
  196. package/pages/Instance/Info/Status/utils.d.ts +8 -0
  197. package/pages/Instance/Info/Status/utils.js +23 -0
  198. package/pages/Instance/Info/components/Property/index.d.ts +11 -0
  199. package/pages/Instance/Info/components/Property/index.js +14 -0
  200. package/pages/Instance/Info/components/Section/index.d.ts +8 -0
  201. package/pages/Instance/Info/components/Section/index.js +18 -0
  202. package/pages/Instance/Info/components/ValueStatus/index.d.ts +9 -0
  203. package/pages/Instance/Info/components/ValueStatus/index.js +18 -0
  204. package/pages/Instance/Info/index.d.ts +2 -0
  205. package/pages/Instance/Info/index.js +75 -0
  206. package/pages/Instance/SnapshotsModal/index.d.ts +4 -0
  207. package/pages/Instance/SnapshotsModal/index.js +81 -0
  208. package/pages/Instance/SnapshotsModal/utils.d.ts +7 -0
  209. package/{components/HorizontalScrollContainer/utils.ts → pages/Instance/SnapshotsModal/utils.js} +8 -9
  210. package/pages/Instance/Tabs/index.d.ts +9 -0
  211. package/pages/Instance/Tabs/index.js +40 -0
  212. package/pages/Instance/components/ClonesList/ConnectionModal/index.d.ts +10 -0
  213. package/pages/Instance/components/ClonesList/ConnectionModal/index.js +74 -0
  214. package/pages/Instance/components/ClonesList/MenuCell/index.d.ts +11 -0
  215. package/pages/Instance/components/ClonesList/MenuCell/index.js +49 -0
  216. package/pages/Instance/components/ClonesList/MenuCell/utils.d.ts +3 -0
  217. package/pages/Instance/components/ClonesList/MenuCell/utils.js +18 -0
  218. package/pages/Instance/components/ClonesList/index.d.ts +9 -0
  219. package/pages/Instance/components/ClonesList/index.js +52 -0
  220. package/pages/Instance/components/ErrorStub/index.d.ts +9 -0
  221. package/pages/Instance/components/ErrorStub/index.js +42 -0
  222. package/pages/Instance/components/ModalReloadButton/index.d.ts +7 -0
  223. package/pages/Instance/components/ModalReloadButton/index.js +22 -0
  224. package/pages/Instance/components/Tags/Tag/index.d.ts +7 -0
  225. package/pages/Instance/components/Tags/Tag/index.js +35 -0
  226. package/pages/Instance/components/Tags/index.d.ts +8 -0
  227. package/pages/Instance/components/Tags/index.js +16 -0
  228. package/pages/Instance/context.d.ts +31 -0
  229. package/pages/Instance/{ClonesModal/utils.ts → context.js} +5 -15
  230. package/pages/Instance/index.d.ts +8 -0
  231. package/pages/Instance/index.js +93 -0
  232. package/pages/Instance/stores/ClonesModal.d.ts +13 -0
  233. package/pages/Instance/stores/ClonesModal.js +24 -0
  234. package/pages/Instance/stores/Main.d.ts +115 -0
  235. package/pages/Instance/stores/Main.js +243 -0
  236. package/pages/Instance/stores/SnapshotsModal.d.ts +13 -0
  237. package/pages/Instance/stores/SnapshotsModal.js +24 -0
  238. package/pages/Instance/useCreatedStores.d.ts +10 -0
  239. package/pages/Instance/useCreatedStores.js +9 -0
  240. package/pages/Logs/Icons/PlusIcon.d.ts +2 -0
  241. package/pages/Logs/Icons/PlusIcon.js +2 -0
  242. package/pages/Logs/constants/index.d.ts +5 -0
  243. package/pages/Logs/constants/index.js +5 -0
  244. package/pages/Logs/hooks/useWsScroll.d.ts +1 -0
  245. package/pages/Logs/hooks/useWsScroll.js +39 -0
  246. package/pages/Logs/index.d.ts +5 -0
  247. package/pages/Logs/index.js +189 -0
  248. package/pages/Logs/utils/index.d.ts +2 -0
  249. package/pages/Logs/utils/index.js +15 -0
  250. package/pages/Logs/wsLogs.d.ts +2 -0
  251. package/pages/Logs/wsLogs.js +76 -0
  252. package/pages/Logs/wsSnackbar.d.ts +1 -0
  253. package/pages/Logs/wsSnackbar.js +25 -0
  254. package/stores/Snapshots.d.ts +15 -0
  255. package/stores/Snapshots.js +35 -0
  256. package/styles/colors.d.ts +60 -0
  257. package/styles/colors.js +66 -0
  258. package/styles/icons.d.ts +63 -0
  259. package/styles/icons.js +69 -0
  260. package/styles/styles.d.ts +1 -0
  261. package/styles/styles.js +83 -0
  262. package/styles/theme.d.ts +1 -0
  263. package/styles/theme.js +50 -0
  264. package/styles/vars.d.ts +25 -0
  265. package/styles/{vars.ts → vars.js} +20 -28
  266. package/types/api/endpoints/createClone.d.ts +12 -0
  267. package/types/api/endpoints/createClone.js +1 -0
  268. package/types/api/endpoints/destroyClone.d.ts +7 -0
  269. package/types/api/endpoints/destroyClone.js +1 -0
  270. package/types/api/endpoints/getClone.d.ts +8 -0
  271. package/types/api/endpoints/getClone.js +1 -0
  272. package/types/api/endpoints/getConfig.d.ts +5 -0
  273. package/types/api/endpoints/getConfig.js +1 -0
  274. package/types/api/endpoints/getEngine.d.ts +10 -0
  275. package/types/api/endpoints/getEngine.js +1 -0
  276. package/types/api/endpoints/getFullConfig.d.ts +4 -0
  277. package/types/api/endpoints/getFullConfig.js +1 -0
  278. package/types/api/endpoints/getInstance.d.ts +7 -0
  279. package/types/api/endpoints/getInstance.js +1 -0
  280. package/types/api/endpoints/getInstanceRetrieval.d.ts +7 -0
  281. package/types/api/endpoints/getInstanceRetrieval.js +1 -0
  282. package/types/api/endpoints/getSeImages.d.ts +19 -0
  283. package/types/api/endpoints/getSeImages.js +1 -0
  284. package/types/api/endpoints/getSnapshots.d.ts +7 -0
  285. package/types/api/endpoints/getSnapshots.js +1 -0
  286. package/types/api/endpoints/getWSToken.d.ts +7 -0
  287. package/types/api/endpoints/getWSToken.js +1 -0
  288. package/types/api/endpoints/initWS.d.ts +1 -0
  289. package/types/api/endpoints/initWS.js +1 -0
  290. package/types/api/endpoints/refreshInstance.d.ts +6 -0
  291. package/types/api/endpoints/refreshInstance.js +1 -0
  292. package/types/api/endpoints/resetClone.d.ts +8 -0
  293. package/types/api/endpoints/resetClone.js +1 -0
  294. package/types/api/endpoints/testDbSource.d.ts +22 -0
  295. package/types/api/endpoints/testDbSource.js +23 -0
  296. package/types/api/endpoints/updateClone.d.ts +10 -0
  297. package/types/api/endpoints/updateClone.js +1 -0
  298. package/types/api/endpoints/updateConfig.d.ts +5 -0
  299. package/types/api/endpoints/updateConfig.js +1 -0
  300. package/types/api/entities/clone.d.ts +50 -0
  301. package/{components/Text/index.tsx → types/api/entities/clone.js} +8 -22
  302. package/types/api/entities/config.d.ts +72 -0
  303. package/types/api/entities/config.js +35 -0
  304. package/types/api/entities/dbSource.d.ts +12 -0
  305. package/types/api/entities/dbSource.js +1 -0
  306. package/types/api/entities/instance.d.ts +109 -0
  307. package/types/api/entities/instance.js +31 -0
  308. package/types/api/entities/instanceRetrieval.d.ts +42 -0
  309. package/types/api/entities/instanceRetrieval.js +19 -0
  310. package/types/api/entities/instanceState.d.ts +109 -0
  311. package/types/api/entities/instanceState.js +42 -0
  312. package/types/api/entities/pool.d.ts +18 -0
  313. package/{utils/numbers.ts → types/api/entities/pool.js} +1 -5
  314. package/types/api/entities/snapshot.d.ts +19 -0
  315. package/types/api/entities/snapshot.js +6 -0
  316. package/types/api/entities/wsToken.d.ts +5 -0
  317. package/types/api/entities/wsToken.js +1 -0
  318. package/utils/api.d.ts +1 -0
  319. package/utils/api.js +28 -0
  320. package/utils/clone.d.ts +13 -0
  321. package/utils/clone.js +21 -0
  322. package/utils/connection.d.ts +5 -0
  323. package/utils/connection.js +28 -0
  324. package/utils/date.d.ts +16 -0
  325. package/utils/date.js +33 -0
  326. package/utils/instance.d.ts +5 -0
  327. package/utils/instance.js +11 -0
  328. package/utils/numbers.d.ts +1 -0
  329. package/utils/{strings.ts → numbers.js} +4 -5
  330. package/utils/react.d.ts +5 -0
  331. package/utils/react.js +8 -0
  332. package/utils/snapshot.d.ts +2 -0
  333. package/utils/snapshot.js +1 -0
  334. package/utils/strings.d.ts +1 -0
  335. package/utils/strings.js +10 -0
  336. package/utils/units.d.ts +5 -0
  337. package/utils/units.js +15 -0
  338. package/.gitlab-ci.yml +0 -64
  339. package/components/AlertSnackbar/index.tsx +0 -23
  340. package/components/AlertSnackbar/useAlertSnackbar.tsx +0 -65
  341. package/components/Button/index.tsx +0 -79
  342. package/components/Button2/index.tsx +0 -43
  343. package/components/DestroyCloneModal/index.tsx +0 -56
  344. package/components/DestroyCloneRestrictionModal/index.tsx +0 -50
  345. package/components/ErrorStub/index.tsx +0 -83
  346. package/components/FormattedText/index.tsx +0 -44
  347. package/components/GatewayLink/index.tsx +0 -33
  348. package/components/HorizontalScrollContainer/index.tsx +0 -131
  349. package/components/ImportantText/index.tsx +0 -29
  350. package/components/Link2/index.tsx +0 -31
  351. package/components/MenuButton/index.tsx +0 -80
  352. package/components/Modal/index.tsx +0 -93
  353. package/components/ResetCloneModal/index.tsx +0 -154
  354. package/components/SectionTitle/index.tsx +0 -74
  355. package/components/Select/index.tsx +0 -42
  356. package/components/SimpleModalControls/index.tsx +0 -56
  357. package/components/Spinner/icon.tsx +0 -29
  358. package/components/Spinner/index.tsx +0 -16
  359. package/components/Status/index.tsx +0 -61
  360. package/components/StubContainer/index.tsx +0 -41
  361. package/components/StubSpinner/index.tsx +0 -49
  362. package/components/StubSpinnerFlex/index.tsx +0 -20
  363. package/components/SyntaxHighlight/index.tsx +0 -107
  364. package/components/Table/RowMenu/index.tsx +0 -111
  365. package/components/Table/index.tsx +0 -140
  366. package/components/TextField/index.tsx +0 -117
  367. package/components/Tooltip/index.tsx +0 -52
  368. package/config/index.ts +0 -32
  369. package/config/links.ts +0 -6
  370. package/craco.config.js +0 -80
  371. package/helpers/getEntropy.ts +0 -232
  372. package/helpers/localStorage.ts +0 -15
  373. package/helpers/request.ts +0 -47
  374. package/hooks/useWindowDimensions.ts +0 -16
  375. package/icons/ArrowDropDown/index.tsx +0 -29
  376. package/icons/Circle/index.tsx +0 -27
  377. package/icons/External/index.tsx +0 -14
  378. package/icons/Info/index.tsx +0 -12
  379. package/icons/Renewable/index.tsx +0 -65
  380. package/icons/Shield/index.tsx +0 -33
  381. package/icons/Warning/index.tsx +0 -29
  382. package/pages/Clone/Status/index.tsx +0 -73
  383. package/pages/Clone/context.ts +0 -22
  384. package/pages/Clone/index.tsx +0 -634
  385. package/pages/Clone/stores/Main.ts +0 -206
  386. package/pages/Clone/useCreatedStores.ts +0 -11
  387. package/pages/Configuration/Header/index.tsx +0 -84
  388. package/pages/Configuration/InputWithTooltip/index.tsx +0 -240
  389. package/pages/Configuration/ResponseMessage/index.tsx +0 -71
  390. package/pages/Configuration/configOptions.ts +0 -60
  391. package/pages/Configuration/index.tsx +0 -1184
  392. package/pages/Configuration/tooltipText.tsx +0 -157
  393. package/pages/Configuration/useForm.ts +0 -108
  394. package/pages/Configuration/utils/index.ts +0 -153
  395. package/pages/CreateClone/index.tsx +0 -311
  396. package/pages/CreateClone/stores/Main.ts +0 -107
  397. package/pages/CreateClone/useCreatedStores.ts +0 -11
  398. package/pages/CreateClone/useForm.ts +0 -36
  399. package/pages/Instance/Clones/Header/Item/index.tsx +0 -15
  400. package/pages/Instance/Clones/Header/index.tsx +0 -74
  401. package/pages/Instance/Clones/index.tsx +0 -135
  402. package/pages/Instance/ClonesModal/index.tsx +0 -71
  403. package/pages/Instance/InactiveInstance/index.tsx +0 -165
  404. package/pages/Instance/InactiveInstance/utils.ts +0 -9
  405. package/pages/Instance/Info/Connection/ConnectModal/Content/index.tsx +0 -176
  406. package/pages/Instance/Info/Connection/ConnectModal/Content/utils.ts +0 -24
  407. package/pages/Instance/Info/Connection/ConnectModal/index.tsx +0 -36
  408. package/pages/Instance/Info/Connection/index.tsx +0 -81
  409. package/pages/Instance/Info/Details/index.tsx +0 -20
  410. package/pages/Instance/Info/Disks/Disk/ActionsMenu/index.tsx +0 -100
  411. package/pages/Instance/Info/Disks/Disk/Marker/index.tsx +0 -26
  412. package/pages/Instance/Info/Disks/Disk/ProgressBar/PointerIcon.tsx +0 -20
  413. package/pages/Instance/Info/Disks/Disk/ProgressBar/index.tsx +0 -73
  414. package/pages/Instance/Info/Disks/Disk/Status/index.tsx +0 -75
  415. package/pages/Instance/Info/Disks/Disk/index.tsx +0 -168
  416. package/pages/Instance/Info/Disks/index.tsx +0 -65
  417. package/pages/Instance/Info/Icons/index.tsx +0 -39
  418. package/pages/Instance/Info/Retrieval/RefreshFailedAlert/index.tsx +0 -32
  419. package/pages/Instance/Info/Retrieval/RetrievalModal/index.tsx +0 -49
  420. package/pages/Instance/Info/Retrieval/RetrievalTable/index.tsx +0 -53
  421. package/pages/Instance/Info/Retrieval/index.tsx +0 -95
  422. package/pages/Instance/Info/Retrieval/utils.ts +0 -10
  423. package/pages/Instance/Info/Snapshots/Calendar/Day/index.tsx +0 -125
  424. package/pages/Instance/Info/Snapshots/Calendar/index.tsx +0 -133
  425. package/pages/Instance/Info/Snapshots/Calendar/utils.ts +0 -74
  426. package/pages/Instance/Info/Snapshots/TimeLine/Day/index.tsx +0 -79
  427. package/pages/Instance/Info/Snapshots/TimeLine/index.tsx +0 -57
  428. package/pages/Instance/Info/Snapshots/index.tsx +0 -97
  429. package/pages/Instance/Info/Snapshots/utils.ts +0 -18
  430. package/pages/Instance/Info/Status/InstanceResponseModal/index.tsx +0 -32
  431. package/pages/Instance/Info/Status/index.tsx +0 -85
  432. package/pages/Instance/Info/Status/utils.ts +0 -24
  433. package/pages/Instance/Info/components/Property/index.tsx +0 -32
  434. package/pages/Instance/Info/components/Section/index.tsx +0 -50
  435. package/pages/Instance/Info/components/ValueStatus/index.tsx +0 -51
  436. package/pages/Instance/Info/index.tsx +0 -129
  437. package/pages/Instance/SnapshotsModal/index.tsx +0 -169
  438. package/pages/Instance/SnapshotsModal/utils.ts +0 -17
  439. package/pages/Instance/Tabs/index.tsx +0 -98
  440. package/pages/Instance/components/ClonesList/ConnectionModal/index.tsx +0 -196
  441. package/pages/Instance/components/ClonesList/MenuCell/index.tsx +0 -98
  442. package/pages/Instance/components/ClonesList/MenuCell/utils.ts +0 -21
  443. package/pages/Instance/components/ClonesList/index.tsx +0 -189
  444. package/pages/Instance/components/ErrorStub/index.tsx +0 -77
  445. package/pages/Instance/components/ModalReloadButton/index.tsx +0 -43
  446. package/pages/Instance/components/Tags/Tag/index.tsx +0 -60
  447. package/pages/Instance/components/Tags/index.tsx +0 -42
  448. package/pages/Instance/context.ts +0 -39
  449. package/pages/Instance/index.tsx +0 -235
  450. package/pages/Instance/stores/ClonesModal.ts +0 -35
  451. package/pages/Instance/stores/Main.ts +0 -335
  452. package/pages/Instance/stores/SnapshotsModal.ts +0 -35
  453. package/pages/Instance/useCreatedStores.ts +0 -14
  454. package/pages/Logs/Icons/PlusIcon.tsx +0 -8
  455. package/pages/Logs/constants/index.ts +0 -7
  456. package/pages/Logs/hooks/useWsScroll.tsx +0 -44
  457. package/pages/Logs/index.tsx +0 -267
  458. package/pages/Logs/utils/index.ts +0 -20
  459. package/pages/Logs/wsLogs.ts +0 -110
  460. package/pages/Logs/wsSnackbar.ts +0 -27
  461. package/postgres.ai-shared-3.5.0.tgz +0 -0
  462. package/scripts/copy-assets.js +0 -30
  463. package/scripts/pack.js +0 -70
  464. package/stores/Snapshots.ts +0 -54
  465. package/styles/colors.ts +0 -67
  466. package/styles/icons.tsx +0 -1917
  467. package/styles/styles.ts +0 -87
  468. package/styles/theme.ts +0 -53
  469. package/types/api/endpoints/createClone.ts +0 -10
  470. package/types/api/endpoints/destroyClone.ts +0 -7
  471. package/types/api/endpoints/getClone.ts +0 -6
  472. package/types/api/endpoints/getConfig.ts +0 -6
  473. package/types/api/endpoints/getEngine.ts +0 -13
  474. package/types/api/endpoints/getFullConfig.ts +0 -4
  475. package/types/api/endpoints/getInstance.ts +0 -6
  476. package/types/api/endpoints/getInstanceRetrieval.ts +0 -6
  477. package/types/api/endpoints/getSeImages.ts +0 -22
  478. package/types/api/endpoints/getSnapshots.ts +0 -6
  479. package/types/api/endpoints/getWSToken.ts +0 -6
  480. package/types/api/endpoints/initWS.ts +0 -1
  481. package/types/api/endpoints/refreshInstance.ts +0 -4
  482. package/types/api/endpoints/resetClone.ts +0 -8
  483. package/types/api/endpoints/testDbSource.ts +0 -48
  484. package/types/api/endpoints/updateClone.ts +0 -10
  485. package/types/api/endpoints/updateConfig.ts +0 -6
  486. package/types/api/entities/clone.ts +0 -42
  487. package/types/api/entities/config.ts +0 -114
  488. package/types/api/entities/dbSource.ts +0 -13
  489. package/types/api/entities/instance.ts +0 -67
  490. package/types/api/entities/instanceRetrieval.ts +0 -46
  491. package/types/api/entities/instanceState.ts +0 -102
  492. package/types/api/entities/pool.ts +0 -27
  493. package/types/api/entities/snapshot.ts +0 -18
  494. package/types/api/entities/wsToken.ts +0 -7
  495. package/types/byte-size/index.d.ts +0 -22
  496. package/utils/api.ts +0 -30
  497. package/utils/clone.ts +0 -31
  498. package/utils/connection.ts +0 -38
  499. package/utils/date.ts +0 -87
  500. package/utils/instance.ts +0 -10
  501. package/utils/react.ts +0 -10
  502. package/utils/snapshot.ts +0 -4
  503. package/utils/units.ts +0 -23
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /*--------------------------------------------------------------------------
3
+ * Copyright (c) 2019-2021, Postgres.ai, Nikolay Samokhvalov nik@postgres.ai
4
+ * All Rights Reserved. Proprietary and confidential.
5
+ * Unauthorized copying of this file, via any medium is strictly prohibited
6
+ *--------------------------------------------------------------------------
7
+ */
8
+ import { formatBytesIEC } from '@postgres.ai/shared/utils/units';
9
+ import { Item } from './Item';
10
+ import styles from './styles.module.scss';
11
+ export const Header = (props) => {
12
+ const { expectedCloningTimeS, logicalSize, clonesCount, clonesCountLastMonth, } = props;
13
+ return (_jsxs("div", { className: styles.root, children: [_jsxs(Item, { value: expectedCloningTimeS ? `${expectedCloningTimeS} s` : '-', children: ["average", _jsx("br", {}), "cloning time"] }), _jsxs(Item, { value: logicalSize ? formatBytesIEC(logicalSize, { precision: 2 }) : '-', children: ["logical", _jsx("br", {}), "data size"] }), _jsxs(Item, { value: clonesCount, children: ["clones", _jsx("br", {}), "now"] }), _jsxs(Item, { value: logicalSize
14
+ ? formatBytesIEC(logicalSize * clonesCount, { precision: 2 })
15
+ : '-', children: ["total", _jsx("br", {}), "size of clones"] }), clonesCountLastMonth && (_jsxs(Item, { value: clonesCountLastMonth, children: ["clones", _jsx("br", {}), "in last month"] }))] }));
16
+ };
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ export declare const Clones: (() => JSX.Element | null) & {
3
+ displayName: string;
4
+ };
@@ -0,0 +1,66 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /*--------------------------------------------------------------------------
3
+ * Copyright (c) 2019-2021, Postgres.ai, Nikolay Samokhvalov nik@postgres.ai
4
+ * All Rights Reserved. Proprietary and confidential.
5
+ * Unauthorized copying of this file, via any medium is strictly prohibited
6
+ *--------------------------------------------------------------------------
7
+ */
8
+ import { useState } from 'react';
9
+ import { makeStyles, useMediaQuery } from '@material-ui/core';
10
+ import { useHistory } from 'react-router-dom';
11
+ import { observer } from 'mobx-react-lite';
12
+ import { SectionTitle } from '@postgres.ai/shared/components/SectionTitle';
13
+ import { Button } from '@postgres.ai/shared/components/Button2';
14
+ import { round } from '@postgres.ai/shared/utils/numbers';
15
+ import { Tooltip } from '@postgres.ai/shared/components/Tooltip';
16
+ import { InfoIcon } from '@postgres.ai/shared/icons/Info';
17
+ import { useStores, useHost } from '@postgres.ai/shared/pages/Instance/context';
18
+ import { ClonesList } from '../components/ClonesList';
19
+ import { Header } from './Header';
20
+ const SHORT_LIST_SIZE = 3;
21
+ const useStyles = makeStyles((theme) => ({
22
+ root: {
23
+ width: 0,
24
+ flex: '1 1 100%',
25
+ marginRight: '40px',
26
+ height: '100%',
27
+ [theme.breakpoints.down('sm')]: {
28
+ width: '100%',
29
+ marginRight: 0,
30
+ },
31
+ },
32
+ tableTitle: {
33
+ marginTop: '5px',
34
+ },
35
+ listSizeButton: {
36
+ marginTop: '12px',
37
+ },
38
+ infoIcon: {
39
+ height: '12px',
40
+ width: '12px',
41
+ marginLeft: '8px',
42
+ color: '#808080',
43
+ },
44
+ }), { index: 1 });
45
+ export const Clones = observer(() => {
46
+ var _a, _b, _c;
47
+ const classes = useStyles();
48
+ const history = useHistory();
49
+ const isMobile = useMediaQuery((theme) => theme.breakpoints.down('sm'));
50
+ const [isShortListForMobile, setIsShortListForMobile] = useState(true);
51
+ const stores = useStores();
52
+ const host = useHost();
53
+ const { instance } = stores.main;
54
+ if (!instance || !instance.state)
55
+ return null;
56
+ const isShortList = isMobile && isShortListForMobile;
57
+ const toggleListSize = () => setIsShortListForMobile(!isShortListForMobile);
58
+ const goToCloneAddPage = () => history.push(host.routes.createClone());
59
+ const showListSizeButton = ((_b = (_a = instance.state) === null || _a === void 0 ? void 0 : _a.cloning.clones) === null || _b === void 0 ? void 0 : _b.length) > SHORT_LIST_SIZE && isMobile;
60
+ const isLoadingSnapshots = stores.main.snapshots.isLoading;
61
+ const hasSnapshots = Boolean((_c = stores.main.snapshots.data) === null || _c === void 0 ? void 0 : _c.length);
62
+ const canCreateClone = hasSnapshots && !stores.main.isDisabledInstance;
63
+ return (_jsxs("div", { className: classes.root, children: [_jsx(SectionTitle, { level: 2, tag: "h2", text: "Cloning summary" }), _jsx(Header, { expectedCloningTimeS: round(instance.state.cloning.expectedCloningTime, 2), logicalSize: instance.state.dataSize, clonesCount: instance.state.cloning.clones.length }), _jsx(SectionTitle, { className: classes.tableTitle, level: 2, tag: "h3", text: `Clones (${instance.state.cloning.clones.length})`, rightContent: _jsxs(_Fragment, { children: [_jsx(Button, { theme: "primary", onClick: goToCloneAddPage, isDisabled: !canCreateClone, isLoading: isLoadingSnapshots, children: "Create clone" }), !hasSnapshots && (_jsx(Tooltip, { content: "No snapshots", children: _jsx(InfoIcon, { className: classes.infoIcon }) }))] }) }), _jsx(ClonesList, { clones: isShortList
64
+ ? instance.state.cloning.clones.slice(0, SHORT_LIST_SIZE)
65
+ : instance.state.cloning.clones, isDisabled: stores.main.isDisabledInstance, emptyStubText: "This instance has no active clones" }), showListSizeButton && (_jsx(Button, { className: classes.listSizeButton, onClick: toggleListSize, children: isShortList ? 'Show more' : 'Show less' }))] }));
66
+ });
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ export declare const ClonesModal: (() => JSX.Element | null) & {
3
+ displayName: string;
4
+ };
@@ -0,0 +1,38 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /*--------------------------------------------------------------------------
3
+ * Copyright (c) 2019-2021, Postgres.ai, Nikolay Samokhvalov nik@postgres.ai
4
+ * All Rights Reserved. Proprietary and confidential.
5
+ * Unauthorized copying of this file, via any medium is strictly prohibited
6
+ *--------------------------------------------------------------------------
7
+ */
8
+ import { makeStyles } from '@material-ui/core';
9
+ import { observer } from 'mobx-react-lite';
10
+ import { useStores } from '@postgres.ai/shared/pages/Instance/context';
11
+ import { Modal } from '@postgres.ai/shared/components/Modal';
12
+ import { ClonesList } from '@postgres.ai/shared/pages/Instance/components/ClonesList';
13
+ import { Tags } from '@postgres.ai/shared/pages/Instance/components/Tags';
14
+ import { ModalReloadButton } from '@postgres.ai/shared/pages/Instance/components/ModalReloadButton';
15
+ import { getTags } from './utils';
16
+ const useStyles = makeStyles({
17
+ root: {
18
+ marginTop: 0,
19
+ },
20
+ }, { index: 1 });
21
+ export const ClonesModal = observer(() => {
22
+ var _a, _b;
23
+ const classes = useStyles();
24
+ const stores = useStores();
25
+ const { instance } = stores.main;
26
+ if (!instance)
27
+ return null;
28
+ const { pool, snapshotId, isOpenModal, closeModal } = stores.clonesModal;
29
+ return (_jsx(Modal, { title: `Clones (${(_a = instance.state) === null || _a === void 0 ? void 0 : _a.cloning.clones.length})`, isOpen: isOpenModal, onClose: closeModal, size: "md", titleRightContent: _jsx(ModalReloadButton, { isReloading: stores.main.isReloadingClones, onReload: stores.main.reloadClones }), headerContent: _jsx(Tags, { data: getTags({
30
+ pool,
31
+ snapshotId,
32
+ }) }), classes: { content: classes.root }, children: _jsx(ClonesList, { isDisabled: false, clones: (_b = instance.state) === null || _b === void 0 ? void 0 : _b.cloning.clones.filter((clone) => {
33
+ var _a, _b;
34
+ const isMatchedByPool = !pool || pool === ((_a = clone.snapshot) === null || _a === void 0 ? void 0 : _a.pool);
35
+ const isMatchedBySnapshot = !snapshotId || snapshotId === ((_b = clone.snapshot) === null || _b === void 0 ? void 0 : _b.id);
36
+ return isMatchedByPool && isMatchedBySnapshot;
37
+ }), emptyStubText: "No clones found" }) }));
38
+ });
@@ -0,0 +1,7 @@
1
+ export declare const getTags: ({ pool, snapshotId, }: {
2
+ pool: string | null;
3
+ snapshotId: string | null;
4
+ }) => {
5
+ name: string;
6
+ value: string;
7
+ }[];
@@ -0,0 +1,14 @@
1
+ /*--------------------------------------------------------------------------
2
+ * Copyright (c) 2019-2021, Postgres.ai, Nikolay Samokhvalov nik@postgres.ai
3
+ * All Rights Reserved. Proprietary and confidential.
4
+ * Unauthorized copying of this file, via any medium is strictly prohibited
5
+ *--------------------------------------------------------------------------
6
+ */
7
+ export const getTags = ({ pool, snapshotId, }) => {
8
+ const tags = [];
9
+ if (pool)
10
+ tags.push({ name: 'Disk', value: pool });
11
+ if (snapshotId)
12
+ tags.push({ name: 'Snapshot', value: snapshotId });
13
+ return tags;
14
+ };
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ import { Instance } from '@postgres.ai/shared/types/api/entities/instance';
3
+ export declare const InactiveInstance: ({ org, instance, }: {
4
+ org: string;
5
+ instance: Instance | null;
6
+ }) => JSX.Element;
@@ -0,0 +1,65 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Tooltip } from '@material-ui/core';
3
+ import { makeStyles } from '@material-ui/core';
4
+ import { formatDistanceToNowStrict } from 'date-fns';
5
+ import { Link } from '@postgres.ai/shared/components/Link2';
6
+ import { formatTimestampUtc } from './utils';
7
+ const useStyles = makeStyles({
8
+ container: {
9
+ maxWidth: '650px',
10
+ width: '100%',
11
+ },
12
+ timeLabel: {
13
+ lineHeight: '16px',
14
+ fontSize: 14,
15
+ cursor: 'pointer',
16
+ flex: '2 1 0',
17
+ '& span': {
18
+ fontWeight: 'normal !important',
19
+ },
20
+ },
21
+ toolTip: {
22
+ fontSize: '10px !important',
23
+ maxWidth: '100%',
24
+ },
25
+ content: {
26
+ margin: '25px 0',
27
+ },
28
+ flexContainer: {
29
+ display: 'flex',
30
+ alignItems: 'center',
31
+ flexDirection: 'row',
32
+ padding: '10px 0',
33
+ borderBottom: '1px solid rgba(224, 224, 224, 1)',
34
+ '& span:first-child': {
35
+ flex: '1 1 0',
36
+ fontWeight: '500',
37
+ },
38
+ '& span': {
39
+ flex: '2 1 0',
40
+ margin: '0',
41
+ },
42
+ },
43
+ }, { index: 1 });
44
+ export const InactiveInstance = ({ org, instance, }) => {
45
+ var _a, _b, _c, _d, _e;
46
+ const classes = useStyles();
47
+ const getVersionDigits = (str) => {
48
+ if (!str) {
49
+ return 'N/A';
50
+ }
51
+ const digits = str.match(/\d+/g);
52
+ if (digits && digits.length > 0) {
53
+ return `${digits[0]}.${digits[1]}.${digits[2]}`;
54
+ }
55
+ return '';
56
+ };
57
+ return (_jsxs("div", { className: classes.container, children: [_jsxs("div", { className: classes.flexContainer, children: [_jsx("span", { children: "Plan" }), _jsx("span", { children: (instance === null || instance === void 0 ? void 0 : instance.dto.plan) || '---' })] }), _jsxs("div", { className: classes.flexContainer, children: [_jsx("span", { children: "Version" }), _jsx("span", { children: getVersionDigits((instance === null || instance === void 0 ? void 0 : instance.state) && ((_b = (_a = instance === null || instance === void 0 ? void 0 : instance.state) === null || _a === void 0 ? void 0 : _a.engine) === null || _b === void 0 ? void 0 : _b.version)) })] }), _jsxs("div", { className: classes.flexContainer, children: [_jsx("span", { children: "Registered" }), _jsx("span", { className: classes.timeLabel, children: _jsx(Tooltip, { title: (_c = formatTimestampUtc(instance === null || instance === void 0 ? void 0 : instance.createdAt)) !== null && _c !== void 0 ? _c : '', classes: { tooltip: classes.toolTip }, children: _jsx("span", { children: (instance === null || instance === void 0 ? void 0 : instance.createdAt) &&
58
+ formatDistanceToNowStrict(new Date(instance === null || instance === void 0 ? void 0 : instance.createdAt), {
59
+ addSuffix: true,
60
+ }) }) }) })] }), (instance === null || instance === void 0 ? void 0 : instance.telemetryLastReportedAt) && (_jsxs("div", { className: classes.flexContainer, children: [_jsx("span", { children: "Telemetry last reported" }), _jsx("span", { className: classes.timeLabel, children: _jsx(Tooltip, { title: (_d = formatTimestampUtc(instance === null || instance === void 0 ? void 0 : instance.telemetryLastReportedAt)) !== null && _d !== void 0 ? _d : '', classes: { tooltip: classes.toolTip }, children: _jsx("span", { children: formatDistanceToNowStrict(new Date(instance === null || instance === void 0 ? void 0 : instance.telemetryLastReportedAt), {
61
+ addSuffix: true,
62
+ }) }) }) })] })), _jsxs("div", { className: classes.flexContainer, children: [_jsx("span", { children: "Instance ID" }), _jsx("span", { children: _jsxs("span", { style: {
63
+ fontWeight: 'normal',
64
+ }, children: [_jsx(Link, { to: `/${org}/instances/${instance === null || instance === void 0 ? void 0 : instance.id}`, children: instance === null || instance === void 0 ? void 0 : instance.id }), "\u00A0 (self-assigned:", ' ', ((_e = instance === null || instance === void 0 ? void 0 : instance.dto) === null || _e === void 0 ? void 0 : _e.selfassigned_instance_id) || 'N/A', ")"] }) })] }), (instance === null || instance === void 0 ? void 0 : instance.dto.plan) !== 'CE' && (_jsxs("div", { className: classes.flexContainer, children: [_jsx("span", { children: "Billing data" }), _jsx("span", { children: _jsx(Link, { to: `/${org}/billing`, children: "Billing data" }) })] })), _jsxs("p", { className: classes.content, children: ["To work with this instance, access its UI or API directly. Full integration of UI to the Platform is currently available only to the EE users. If you have any questions, reach out to", ' ', _jsx("a", { href: "https://postgres.ai/contact", target: "_blank", rel: "noopener noreferrer", children: "the Postgres.ai team" }), "."] })] }));
65
+ };
@@ -0,0 +1,2 @@
1
+ import moment from 'moment';
2
+ export declare const formatTimestampUtc: (timestamp: moment.MomentInput) => string | null;
@@ -0,0 +1,7 @@
1
+ import moment from 'moment';
2
+ export const formatTimestampUtc = (timestamp) => {
3
+ if (!timestamp) {
4
+ return null;
5
+ }
6
+ return moment(timestamp).utc().format('YYYY-MM-DD HH:mm:ss UTC');
7
+ };
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ export declare const Content: (() => JSX.Element | null) & {
3
+ displayName: string;
4
+ };
@@ -0,0 +1,73 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /*--------------------------------------------------------------------------
3
+ * Copyright (c) 2019-2021, Postgres.ai, Nikolay Samokhvalov nik@postgres.ai
4
+ * All Rights Reserved. Proprietary and confidential.
5
+ * Unauthorized copying of this file, via any medium is strictly prohibited
6
+ *--------------------------------------------------------------------------
7
+ */
8
+ import { makeStyles, IconButton } from '@material-ui/core';
9
+ import { observer } from 'mobx-react-lite';
10
+ import copy from 'copy-to-clipboard';
11
+ import { GatewayLink } from '@postgres.ai/shared/components/GatewayLink';
12
+ import { icons } from '@postgres.ai/shared/styles/icons';
13
+ import { Link } from '@postgres.ai/shared/components/Link2';
14
+ import { TextField } from '@postgres.ai/shared/components/TextField';
15
+ import { Tooltip } from '@postgres.ai/shared/components/Tooltip';
16
+ import { useStores } from '@postgres.ai/shared/pages/Instance/context';
17
+ import { getCliInitCommand, getSshPortForwardingCommand } from './utils';
18
+ const useStyles = makeStyles({
19
+ root: {
20
+ fontSize: '14px',
21
+ },
22
+ list: {
23
+ listStyle: 'decimal inside none',
24
+ margin: 0,
25
+ padding: 0,
26
+ },
27
+ item: {
28
+ '& + $item': {
29
+ marginTop: '16px',
30
+ },
31
+ },
32
+ textField: {
33
+ width: 'calc(100% - 24px)',
34
+ margin: '16px 0 0 0',
35
+ },
36
+ textFieldWrapper: {
37
+ display: 'flex',
38
+ alignItems: 'flex-end',
39
+ },
40
+ textFieldInfo: {
41
+ display: 'flex',
42
+ alignItems: 'center',
43
+ height: '32px',
44
+ marginLeft: '12px',
45
+ },
46
+ copyButton: {
47
+ width: '32px',
48
+ height: '32px',
49
+ padding: '8px',
50
+ },
51
+ note: {
52
+ margin: '24px 0 0 0',
53
+ },
54
+ }, { index: 1 });
55
+ export const Content = observer(() => {
56
+ const classes = useStyles();
57
+ const stores = useStores();
58
+ const { instance } = stores.main;
59
+ if (!instance)
60
+ return null;
61
+ const cliInitCommand = getCliInitCommand(instance);
62
+ const sshPortForwardingCommand = getSshPortForwardingCommand(instance);
63
+ const dblabStatusCommand = 'dblab instance status';
64
+ return (_jsxs("div", { className: classes.root, children: [_jsxs("ol", { className: classes.list, children: [_jsxs("li", { className: classes.item, children: ["Generate a personal token on\u00A0", _jsx(Link, { to:
65
+ // ROUTES.ORG.TOKENS.createPath({ org: context.org })
66
+ '/', children: "Access token page" }), "."] }), _jsxs("li", { className: classes.item, children: ["Use personal token to initialize a connection to the Database Lab instance:", _jsxs("div", { className: classes.textFieldWrapper, children: [_jsx(TextField, { label: "CLI init command", value: cliInitCommand, className: classes.textField, InputProps: {
67
+ endAdornment: (_jsx(IconButton, { className: classes.copyButton, onClick: () => copy(cliInitCommand), children: icons.copyIcon })),
68
+ } }), _jsx(Tooltip, { content: _jsxs(_Fragment, { children: ["Use this oneliner to initialize Database Lab CLI on your machine.", _jsx("br", {}), "All UPPERCASED variables (if any) are to be substituted", _jsx("br", {}), "by real values."] }), children: _jsx("span", { className: classes.textFieldInfo, children: icons.infoIcon }) })] })] }), sshPortForwardingCommand && (_jsxs("li", { className: classes.item, children: ["In a separate console, set up SSH port forwarding (and keep it running):", _jsx(TextField, { label: "SSH port forwarding", value: sshPortForwardingCommand, className: classes.textField, InputProps: {
69
+ endAdornment: (_jsx(IconButton, { className: classes.copyButton, onClick: () => copy(sshPortForwardingCommand), children: icons.copyIcon })),
70
+ } })] })), _jsxs("li", { className: classes.item, children: ["Test it:", _jsx(TextField, { label: "CLI status command", value: dblabStatusCommand, className: classes.textField, InputProps: {
71
+ endAdornment: (_jsx(IconButton, { className: classes.copyButton, onClick: () => copy(dblabStatusCommand), children: icons.copyIcon })),
72
+ } })] })] }), _jsxs("p", { className: classes.note, children: ["Read\u00A0", _jsx(GatewayLink, { href: "https://postgres.ai/docs/database-lab/cli-reference#getting-started", children: "the docs" }), "\u00A0to get started with CLI."] })] }));
73
+ });
@@ -0,0 +1,3 @@
1
+ import { Instance } from '@postgres.ai/shared/types/api/entities/instance';
2
+ export declare const getCliInitCommand: (instance: Instance) => string;
3
+ export declare const getSshPortForwardingCommand: (instance: Instance) => string | null;
@@ -0,0 +1,20 @@
1
+ /*--------------------------------------------------------------------------
2
+ * Copyright (c) 2019-2021, Postgres.ai, Nikolay Samokhvalov nik@postgres.ai
3
+ * All Rights Reserved. Proprietary and confidential.
4
+ * Unauthorized copying of this file, via any medium is strictly prohibited
5
+ *--------------------------------------------------------------------------
6
+ */
7
+ export const getCliInitCommand = (instance) => `dblab init --url ${instance.url} --token TOKEN --environment-id ${instance.projectName}`;
8
+ export const getSshPortForwardingCommand = (instance) => {
9
+ if (instance.sshServerUrl) {
10
+ // Parse the URL to get the port
11
+ const url = new URL(instance.url);
12
+ const port = url.port || '2345';
13
+ // Here we hard-code the API port on the server (2345)- this is a requirement now
14
+ // for all DBLab instances working via tunnel, per decision made (NIkolayS 2024-05-22)
15
+ return `ssh -NTML ${port}:localhost:2345 ${instance.sshServerUrl} -i ~/.ssh/id_rsa`;
16
+ }
17
+ else {
18
+ return null;
19
+ }
20
+ };
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ declare type Props = {
3
+ className?: string;
4
+ };
5
+ export declare const ConnectModal: (props: Props) => JSX.Element;
6
+ export {};
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /*--------------------------------------------------------------------------
3
+ * Copyright (c) 2019-2021, Postgres.ai, Nikolay Samokhvalov nik@postgres.ai
4
+ * All Rights Reserved. Proprietary and confidential.
5
+ * Unauthorized copying of this file, via any medium is strictly prohibited
6
+ *--------------------------------------------------------------------------
7
+ */
8
+ import { useState } from 'react';
9
+ import { Button } from '@postgres.ai/shared/components/Button2';
10
+ import { Modal } from '@postgres.ai/shared/components/Modal';
11
+ import { Content } from './Content';
12
+ export const ConnectModal = (props) => {
13
+ const [isOpen, setIsOpen] = useState(false);
14
+ const handleClickOpen = () => setIsOpen(true);
15
+ const handleClose = () => setIsOpen(false);
16
+ return (_jsxs(_Fragment, { children: [_jsx(Button, { onClick: handleClickOpen, className: props.className, children: "Connect" }), _jsx(Modal, { isOpen: isOpen, onClose: handleClose, title: "Connection info", children: _jsx(Content, {}) })] }));
17
+ };
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ export declare const Connection: (() => JSX.Element | null) & {
3
+ displayName: string;
4
+ };
@@ -0,0 +1,44 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /*--------------------------------------------------------------------------
3
+ * Copyright (c) 2019-2021, Postgres.ai, Nikolay Samokhvalov nik@postgres.ai
4
+ * All Rights Reserved. Proprietary and confidential.
5
+ * Unauthorized copying of this file, via any medium is strictly prohibited
6
+ *--------------------------------------------------------------------------
7
+ */
8
+ import { makeStyles } from '@material-ui/styles';
9
+ import { observer } from 'mobx-react-lite';
10
+ import { useStores } from '@postgres.ai/shared/pages/Instance/context';
11
+ import { ShieldIcon } from '@postgres.ai/shared/icons/Shield';
12
+ import { WarningIcon } from '@postgres.ai/shared/icons/Warning';
13
+ import { Section } from '../components/Section';
14
+ import { Property } from '../components/Property';
15
+ import { ValueStatus } from '../components/ValueStatus';
16
+ import { ConnectModal } from './ConnectModal';
17
+ const useStyles = makeStyles({
18
+ connectButton: {
19
+ marginTop: '10px',
20
+ },
21
+ url: {
22
+ overflowWrap: 'break-word',
23
+ },
24
+ icon: {
25
+ top: 0,
26
+ left: 0,
27
+ position: 'absolute',
28
+ height: '100%',
29
+ width: '100%',
30
+ },
31
+ }, { index: 1 });
32
+ const checkIsSecureUrl = (urlStr) => {
33
+ const url = new URL(urlStr);
34
+ return url.protocol === 'https:';
35
+ };
36
+ export const Connection = observer(() => {
37
+ const stores = useStores();
38
+ const classes = useStyles();
39
+ const { instance } = stores.main;
40
+ if (!(instance === null || instance === void 0 ? void 0 : instance.url))
41
+ return null;
42
+ const isSecureUrl = checkIsSecureUrl(instance.url) || instance.useTunnel;
43
+ return (_jsxs(Section, { title: "Connection", children: [_jsxs(Property, { name: "URL", children: [_jsx("span", { className: classes.url, children: instance.url }), _jsx("br", {}), _jsxs(ValueStatus, { type: isSecureUrl ? 'ok' : 'warning', icon: isSecureUrl ? (_jsx(ShieldIcon, { className: classes.icon })) : (_jsx(WarningIcon, { className: classes.icon })), children: ["The connection to Database Lab API is", ' ', isSecureUrl ? 'secure' : 'not secure'] })] }), _jsx(Property, { name: "WS tunnels", children: instance.useTunnel ? 'used' : 'not used' }), _jsx(ConnectModal, { className: classes.connectButton })] }));
44
+ });
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const Details: () => JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Section } from '../components/Section';
3
+ import { Property } from '../components/Property';
4
+ export const Details = () => {
5
+ return (_jsxs(Section, { title: 'Details', children: [_jsx(Property, { name: 'Database docker image', children: "postgres:12" }), _jsx(Property, { name: 'Version', children: "0.4.4" })] }));
6
+ };
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ declare type Props = {
3
+ poolId: string | null;
4
+ poolName: string;
5
+ isActive: boolean;
6
+ };
7
+ export declare const ActionsMenu: (props: Props) => JSX.Element;
8
+ export {};
@@ -0,0 +1,47 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /*--------------------------------------------------------------------------
3
+ * Copyright (c) 2019-2021, Postgres.ai, Nikolay Samokhvalov nik@postgres.ai
4
+ * All Rights Reserved. Proprietary and confidential.
5
+ * Unauthorized copying of this file, via any medium is strictly prohibited
6
+ *--------------------------------------------------------------------------
7
+ */
8
+ import { useState } from 'react';
9
+ import { IconButton, makeStyles, Menu, MenuItem } from '@material-ui/core';
10
+ import { MoreVert } from '@material-ui/icons';
11
+ import copy from 'copy-to-clipboard';
12
+ import { colors } from '@postgres.ai/shared/styles/colors';
13
+ import { useStores } from '@postgres.ai/shared/pages/Instance/context';
14
+ const useStyles = makeStyles({
15
+ root: {
16
+ padding: '3px 1px',
17
+ border: `1px solid ${colors.consoleStroke}`,
18
+ borderRadius: '4px',
19
+ },
20
+ }, { index: 1 });
21
+ export const ActionsMenu = (props) => {
22
+ const classes = useStyles();
23
+ const stores = useStores();
24
+ const [anchorEl, setAnchorEl] = useState(null);
25
+ const isOpen = Boolean(anchorEl);
26
+ const openMenu = (e) => {
27
+ e.stopPropagation();
28
+ setAnchorEl(e.currentTarget);
29
+ };
30
+ const closeMenu = () => setAnchorEl(null);
31
+ return (_jsxs(_Fragment, { children: [_jsx(IconButton, { className: classes.root, onClick: openMenu, children: _jsx(MoreVert, {}) }), _jsxs(Menu, { anchorOrigin: {
32
+ vertical: 'top',
33
+ horizontal: 'left',
34
+ }, transformOrigin: {
35
+ vertical: 'top',
36
+ horizontal: 'left',
37
+ }, anchorEl: anchorEl, keepMounted: true, open: isOpen, onClose: closeMenu, onClick: (e) => e.stopPropagation(), children: [_jsx(MenuItem, { onClick: () => {
38
+ closeMenu();
39
+ copy(props.poolName);
40
+ }, children: "Copy name" }), props.isActive && (_jsxs("div", { children: [_jsx(MenuItem, { onClick: () => {
41
+ closeMenu();
42
+ stores.clonesModal.openModal({ pool: props.poolId });
43
+ }, children: "List clones" }), _jsx(MenuItem, { onClick: () => {
44
+ closeMenu();
45
+ stores.snapshotsModal.openModal({ pool: props.poolId });
46
+ }, children: "List snapshots" })] }))] })] }));
47
+ };
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ declare type Props = {
3
+ className: string;
4
+ };
5
+ export declare const Marker: (props: Props) => JSX.Element;
6
+ export {};
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { makeStyles } from '@material-ui/core';
3
+ import clsx from 'clsx';
4
+ import { CircleIcon } from '@postgres.ai/shared/icons/Circle';
5
+ const useStyles = makeStyles({
6
+ root: {
7
+ display: 'inline',
8
+ verticalAlign: 'middle',
9
+ width: '10px',
10
+ },
11
+ }, { index: 1 });
12
+ export const Marker = (props) => {
13
+ const classes = useStyles();
14
+ return _jsx(CircleIcon, { className: clsx(classes.root, props.className) });
15
+ };
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ export declare const PoinerIcon: ({ className, style, }: {
3
+ className?: string | undefined;
4
+ style?: import("react").CSSProperties | undefined;
5
+ }) => JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ export const PoinerIcon = ({ className, style, }) => (_jsx("svg", { width: "5", height: "14", viewBox: "0 0 5 14", fill: "none", xmlns: "http://www.w3.org/2000/svg", style: style, className: className, children: _jsx("path", { d: "M2.5 14L-2.06593e-07 -4.37114e-07L5 0L2.5 14Z", fill: "#EE0202" }) }));
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ declare type Props = {
3
+ value: number;
4
+ total: number;
5
+ thresholdPercent: number;
6
+ };
7
+ export declare const ProgressBar: (props: Props) => JSX.Element;
8
+ export {};
@@ -0,0 +1,45 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { makeStyles } from '@material-ui/core';
3
+ import { colors } from '@postgres.ai/shared/styles/colors';
4
+ import { Tooltip } from '@postgres.ai/shared/components/Tooltip';
5
+ import { PoinerIcon } from './PointerIcon';
6
+ const useStyles = makeStyles((theme) => ({
7
+ '@keyframes grow': {
8
+ '0%': {
9
+ transform: 'scaleX(0)',
10
+ },
11
+ '100%': {
12
+ transform: 'scaleX(1)',
13
+ },
14
+ },
15
+ root: {
16
+ height: '12px',
17
+ position: 'relative',
18
+ borderRadius: '4px',
19
+ background: colors.gray,
20
+ overflow: 'hidden',
21
+ marginTop: '8px',
22
+ },
23
+ indicator: {
24
+ position: 'absolute',
25
+ top: 0,
26
+ left: 0,
27
+ height: '100%',
28
+ width: '30%',
29
+ background: colors.primary.light,
30
+ animation: `$grow 500ms ${theme.transitions.easing.easeOut}`,
31
+ transformOrigin: 0,
32
+ },
33
+ pointer: {
34
+ position: 'absolute',
35
+ height: '100%',
36
+ top: 0,
37
+ transform: 'translateX(-50%)',
38
+ },
39
+ }), { index: 1 });
40
+ export const ProgressBar = (props) => {
41
+ const classes = useStyles();
42
+ return (_jsxs("div", { className: classes.root, children: [_jsx("div", { className: classes.indicator, style: { width: `${(props.value / props.total) * 100}%` } }), _jsx(Tooltip, { content: `+${props.thresholdPercent}% disk usage may result in performance degradation`, children: _jsx(PoinerIcon, { className: classes.pointer, style: {
43
+ left: `${props.thresholdPercent}%`,
44
+ } }) })] }));
45
+ };
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ export declare type Props = {
3
+ value: 'refreshing' | 'active' | 'empty';
4
+ hasWarning: boolean;
5
+ };
6
+ export declare const Status: (props: Props) => JSX.Element;