@postgres.ai/shared 3.5.1-pr-1027.0 → 4.0.0-pr-1028

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 (596) 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 +26 -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 +89 -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 +7 -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/PostgresSQL/index.d.ts +2 -0
  88. package/icons/PostgresSQL/index.js +40 -0
  89. package/icons/Renewable/index.d.ts +6 -0
  90. package/icons/Renewable/index.js +12 -0
  91. package/icons/Shield/index.d.ts +6 -0
  92. package/icons/Shield/index.js +12 -0
  93. package/icons/Warning/index.d.ts +6 -0
  94. package/icons/Warning/index.js +6 -0
  95. package/package.json +5 -13
  96. package/pages/Branches/Branch/context.d.ts +22 -0
  97. package/pages/Branches/Branch/context.js +3 -0
  98. package/pages/Branches/Branch/index.d.ts +9 -0
  99. package/pages/Branches/Branch/index.js +172 -0
  100. package/pages/Branches/Branch/stores/Main.d.ts +37 -0
  101. package/pages/Branches/Branch/stores/Main.js +90 -0
  102. package/pages/Branches/Branch/useCreatedStores.d.ts +6 -0
  103. package/pages/Branches/Branch/useCreatedStores.js +5 -0
  104. package/pages/Branches/components/BranchesTable/index.d.ts +10 -0
  105. package/pages/Branches/components/BranchesTable/index.js +107 -0
  106. package/pages/Branches/components/Modals/DeleteBranchModal/index.d.ts +11 -0
  107. package/pages/Branches/components/Modals/DeleteBranchModal/index.js +49 -0
  108. package/pages/Branches/components/Modals/types.d.ts +4 -0
  109. package/pages/Branches/components/Modals/types.js +1 -0
  110. package/pages/Branches/index.d.ts +6 -0
  111. package/pages/Branches/index.js +60 -0
  112. package/pages/Clone/Status/index.d.ts +8 -0
  113. package/pages/Clone/Status/index.js +38 -0
  114. package/pages/Clone/context.d.ts +21 -0
  115. package/pages/Clone/context.js +3 -0
  116. package/pages/Clone/index.d.ts +9 -0
  117. package/pages/Clone/index.js +252 -0
  118. package/pages/Clone/stores/Main.d.ts +47 -0
  119. package/pages/Clone/stores/Main.js +141 -0
  120. package/pages/Clone/useCreatedStores.d.ts +6 -0
  121. package/pages/Clone/useCreatedStores.js +5 -0
  122. package/pages/Clone/utils/index.d.ts +4 -0
  123. package/pages/Clone/utils/index.js +12 -0
  124. package/pages/CreateBranch/index.d.ts +17 -0
  125. package/pages/CreateBranch/index.js +135 -0
  126. package/pages/CreateBranch/stores/Main.d.ts +43 -0
  127. package/pages/CreateBranch/stores/Main.js +59 -0
  128. package/pages/CreateBranch/useCreatedStores.d.ts +6 -0
  129. package/pages/CreateBranch/useCreatedStores.js +5 -0
  130. package/pages/CreateBranch/useForm.d.ts +51 -0
  131. package/pages/CreateBranch/useForm.js +30 -0
  132. package/pages/CreateBranch/utils/index.d.ts +2 -0
  133. package/pages/CreateBranch/utils/index.js +10 -0
  134. package/pages/CreateClone/index.d.ts +19 -0
  135. package/pages/CreateClone/index.js +142 -0
  136. package/pages/CreateClone/stores/Main.d.ts +49 -0
  137. package/pages/CreateClone/stores/Main.js +85 -0
  138. package/pages/CreateClone/styles.module.scss +47 -4
  139. package/pages/CreateClone/useCreatedStores.d.ts +6 -0
  140. package/pages/CreateClone/useCreatedStores.js +5 -0
  141. package/pages/CreateClone/useForm.d.ts +55 -0
  142. package/pages/CreateClone/useForm.js +26 -0
  143. package/pages/CreateClone/utils/index.d.ts +3 -0
  144. package/pages/CreateClone/utils/index.js +17 -0
  145. package/pages/CreateSnapshot/index.d.ts +17 -0
  146. package/pages/CreateSnapshot/index.js +117 -0
  147. package/pages/CreateSnapshot/stores/Main.d.ts +21 -0
  148. package/pages/CreateSnapshot/stores/Main.js +31 -0
  149. package/pages/CreateSnapshot/useCreatedStores.d.ts +6 -0
  150. package/pages/CreateSnapshot/useCreatedStores.js +5 -0
  151. package/pages/CreateSnapshot/useForm.d.ts +53 -0
  152. package/pages/CreateSnapshot/useForm.js +25 -0
  153. package/pages/CreateSnapshot/utils/index.d.ts +1 -0
  154. package/pages/CreateSnapshot/utils/index.js +3 -0
  155. package/pages/Instance/Clones/ClonesList/ConnectionModal/index.d.ts +10 -0
  156. package/pages/Instance/Clones/ClonesList/ConnectionModal/index.js +74 -0
  157. package/pages/Instance/Clones/ClonesList/MenuCell/index.d.ts +11 -0
  158. package/pages/Instance/Clones/ClonesList/MenuCell/index.js +49 -0
  159. package/pages/Instance/Clones/ClonesList/MenuCell/utils.d.ts +3 -0
  160. package/pages/Instance/Clones/ClonesList/MenuCell/utils.js +18 -0
  161. package/pages/Instance/Clones/ClonesList/index.d.ts +9 -0
  162. package/pages/Instance/Clones/ClonesList/index.js +96 -0
  163. package/pages/Instance/{components → Clones}/ClonesList/styles.module.scss +10 -0
  164. package/pages/Instance/Clones/ClonesModal/index.d.ts +4 -0
  165. package/pages/Instance/Clones/ClonesModal/index.js +38 -0
  166. package/pages/Instance/Clones/ClonesModal/utils.d.ts +7 -0
  167. package/pages/Instance/Clones/ClonesModal/utils.js +14 -0
  168. package/pages/Instance/Clones/Header/Item/index.d.ts +7 -0
  169. package/pages/Instance/Clones/Header/Item/index.js +5 -0
  170. package/pages/Instance/Clones/Header/index.d.ts +9 -0
  171. package/pages/Instance/Clones/Header/index.js +16 -0
  172. package/pages/Instance/Clones/Header/styles.module.scss +4 -1
  173. package/pages/Instance/Clones/index.d.ts +8 -0
  174. package/pages/Instance/Clones/index.js +64 -0
  175. package/pages/Instance/Configuration/Header/index.d.ts +11 -0
  176. package/pages/Instance/Configuration/Header/index.js +17 -0
  177. package/pages/Instance/Configuration/InputWithTooltip/index.d.ts +32 -0
  178. package/pages/Instance/Configuration/InputWithTooltip/index.js +64 -0
  179. package/pages/Instance/Configuration/ResponseMessage/index.d.ts +5 -0
  180. package/pages/Instance/Configuration/ResponseMessage/index.js +43 -0
  181. package/pages/Instance/Configuration/configOptions.d.ts +9 -0
  182. package/pages/Instance/Configuration/configOptions.js +59 -0
  183. package/pages/Instance/Configuration/index.d.ts +10 -0
  184. package/pages/Instance/Configuration/index.js +547 -0
  185. package/pages/Instance/Configuration/tooltipText.d.ts +20 -0
  186. package/pages/Instance/Configuration/tooltipText.js +21 -0
  187. package/pages/Instance/Configuration/useForm.d.ts +82 -0
  188. package/pages/Instance/Configuration/useForm.js +74 -0
  189. package/pages/Instance/Configuration/utils/index.d.ts +22 -0
  190. package/pages/Instance/Configuration/utils/index.js +105 -0
  191. package/pages/Instance/InactiveInstance/index.d.ts +6 -0
  192. package/pages/Instance/InactiveInstance/index.js +65 -0
  193. package/pages/Instance/InactiveInstance/utils.d.ts +2 -0
  194. package/pages/Instance/InactiveInstance/utils.js +7 -0
  195. package/pages/Instance/Info/Connection/ConnectModal/Content/index.d.ts +4 -0
  196. package/pages/Instance/Info/Connection/ConnectModal/Content/index.js +73 -0
  197. package/pages/Instance/Info/Connection/ConnectModal/Content/utils.d.ts +3 -0
  198. package/pages/Instance/Info/Connection/ConnectModal/Content/utils.js +20 -0
  199. package/pages/Instance/Info/Connection/ConnectModal/index.d.ts +6 -0
  200. package/pages/Instance/Info/Connection/ConnectModal/index.js +17 -0
  201. package/pages/Instance/Info/Connection/index.d.ts +4 -0
  202. package/pages/Instance/Info/Connection/index.js +44 -0
  203. package/pages/Instance/Info/Details/index.d.ts +2 -0
  204. package/pages/Instance/Info/Details/index.js +6 -0
  205. package/pages/Instance/Info/Disks/Disk/ActionsMenu/index.d.ts +8 -0
  206. package/pages/Instance/Info/Disks/Disk/ActionsMenu/index.js +47 -0
  207. package/pages/Instance/Info/Disks/Disk/Marker/index.d.ts +6 -0
  208. package/pages/Instance/Info/Disks/Disk/Marker/index.js +15 -0
  209. package/pages/Instance/Info/Disks/Disk/ProgressBar/PointerIcon.d.ts +5 -0
  210. package/pages/Instance/Info/Disks/Disk/ProgressBar/PointerIcon.js +2 -0
  211. package/pages/Instance/Info/Disks/Disk/ProgressBar/index.d.ts +8 -0
  212. package/pages/Instance/Info/Disks/Disk/ProgressBar/index.js +45 -0
  213. package/pages/Instance/Info/Disks/Disk/Status/index.d.ts +6 -0
  214. package/pages/Instance/Info/Disks/Disk/Status/index.js +52 -0
  215. package/pages/Instance/Info/Disks/Disk/index.d.ts +15 -0
  216. package/pages/Instance/Info/Disks/Disk/index.js +71 -0
  217. package/pages/Instance/Info/Disks/index.d.ts +4 -0
  218. package/pages/Instance/Info/Disks/index.js +24 -0
  219. package/pages/Instance/Info/Icons/index.d.ts +7 -0
  220. package/pages/Instance/Info/Icons/index.js +3 -0
  221. package/pages/Instance/Info/Retrieval/RefreshFailedAlert/index.d.ts +4 -0
  222. package/pages/Instance/Info/Retrieval/RefreshFailedAlert/index.js +15 -0
  223. package/pages/Instance/Info/Retrieval/RetrievalModal/index.d.ts +10 -0
  224. package/pages/Instance/Info/Retrieval/RetrievalModal/index.js +11 -0
  225. package/pages/Instance/Info/Retrieval/RetrievalTable/index.d.ts +6 -0
  226. package/pages/Instance/Info/Retrieval/RetrievalTable/index.js +6 -0
  227. package/pages/Instance/Info/Retrieval/index.d.ts +4 -0
  228. package/pages/Instance/Info/Retrieval/index.js +47 -0
  229. package/pages/Instance/Info/Retrieval/utils.d.ts +2 -0
  230. package/pages/Instance/Info/Retrieval/utils.js +12 -0
  231. package/pages/Instance/Info/Snapshots/Calendar/Day/index.d.ts +11 -0
  232. package/pages/Instance/Info/Snapshots/Calendar/Day/index.js +71 -0
  233. package/pages/Instance/Info/Snapshots/Calendar/index.d.ts +8 -0
  234. package/pages/Instance/Info/Snapshots/Calendar/index.js +67 -0
  235. package/pages/Instance/Info/Snapshots/Calendar/utils.d.ts +27 -0
  236. package/pages/Instance/Info/Snapshots/Calendar/utils.js +41 -0
  237. package/pages/Instance/Info/Snapshots/TimeLine/Day/index.d.ts +6 -0
  238. package/pages/Instance/Info/Snapshots/TimeLine/Day/index.js +58 -0
  239. package/pages/Instance/Info/Snapshots/TimeLine/index.d.ts +2 -0
  240. package/pages/Instance/Info/Snapshots/TimeLine/index.js +32 -0
  241. package/pages/Instance/Info/Snapshots/index.d.ts +4 -0
  242. package/pages/Instance/Info/Snapshots/index.js +40 -0
  243. package/pages/Instance/Info/Snapshots/utils.d.ts +34 -0
  244. package/pages/Instance/Info/Snapshots/utils.js +26 -0
  245. package/pages/Instance/Info/Status/InstanceResponseModal/index.d.ts +9 -0
  246. package/pages/Instance/Info/Status/InstanceResponseModal/index.js +12 -0
  247. package/pages/Instance/Info/Status/index.d.ts +4 -0
  248. package/pages/Instance/Info/Status/index.js +31 -0
  249. package/pages/Instance/Info/Status/utils.d.ts +8 -0
  250. package/pages/Instance/Info/Status/utils.js +23 -0
  251. package/pages/Instance/Info/components/Property/index.d.ts +11 -0
  252. package/pages/Instance/Info/components/Property/index.js +14 -0
  253. package/pages/Instance/Info/components/Section/index.d.ts +8 -0
  254. package/pages/Instance/Info/components/Section/index.js +18 -0
  255. package/pages/Instance/Info/components/ValueStatus/index.d.ts +9 -0
  256. package/pages/Instance/Info/components/ValueStatus/index.js +18 -0
  257. package/pages/Instance/Info/index.d.ts +2 -0
  258. package/pages/Instance/Info/index.js +76 -0
  259. package/pages/Instance/Snapshots/components/SnapshotHeader/index.d.ts +11 -0
  260. package/pages/Instance/Snapshots/components/SnapshotHeader/index.js +36 -0
  261. package/pages/Instance/Snapshots/components/SnapshotsList/index.d.ts +11 -0
  262. package/pages/Instance/Snapshots/components/SnapshotsList/index.js +157 -0
  263. package/pages/Instance/Snapshots/components/SnapshotsModal/utils.d.ts +7 -0
  264. package/{components/HorizontalScrollContainer/utils.ts → pages/Instance/Snapshots/components/SnapshotsModal/utils.js} +8 -9
  265. package/pages/Instance/Snapshots/components/SnapshotsTable/index.d.ts +6 -0
  266. package/pages/Instance/Snapshots/components/SnapshotsTable/index.js +125 -0
  267. package/pages/Instance/Snapshots/index.d.ts +6 -0
  268. package/pages/Instance/Snapshots/index.js +92 -0
  269. package/pages/Instance/Snapshots/utils/index.d.ts +16 -0
  270. package/pages/Instance/Snapshots/utils/index.js +30 -0
  271. package/pages/Instance/SnapshotsModal/index.d.ts +4 -0
  272. package/pages/Instance/SnapshotsModal/index.js +81 -0
  273. package/pages/Instance/Tabs/PlatformTabs.d.ts +10 -0
  274. package/pages/Instance/Tabs/PlatformTabs.js +51 -0
  275. package/pages/Instance/Tabs/index.d.ts +26 -0
  276. package/pages/Instance/Tabs/index.js +75 -0
  277. package/pages/Instance/Tabs/styles.d.ts +1 -0
  278. package/pages/Instance/Tabs/styles.js +62 -0
  279. package/pages/Instance/components/ErrorStub/index.d.ts +9 -0
  280. package/pages/Instance/components/ErrorStub/index.js +42 -0
  281. package/pages/Instance/components/ModalReloadButton/index.d.ts +7 -0
  282. package/pages/Instance/components/ModalReloadButton/index.js +22 -0
  283. package/pages/Instance/components/Tags/Tag/index.d.ts +7 -0
  284. package/pages/Instance/components/Tags/Tag/index.js +35 -0
  285. package/pages/Instance/components/Tags/index.d.ts +8 -0
  286. package/pages/Instance/components/Tags/index.js +16 -0
  287. package/pages/Instance/context.d.ts +38 -0
  288. package/pages/Instance/{ClonesModal/utils.ts → context.js} +5 -15
  289. package/pages/Instance/index.d.ts +8 -0
  290. package/pages/Instance/index.js +94 -0
  291. package/pages/Instance/stores/ClonesModal.d.ts +13 -0
  292. package/pages/Instance/stores/ClonesModal.js +24 -0
  293. package/pages/Instance/stores/Main.d.ts +141 -0
  294. package/pages/Instance/stores/Main.js +302 -0
  295. package/pages/Instance/stores/SnapshotsModal.d.ts +13 -0
  296. package/pages/Instance/stores/SnapshotsModal.js +24 -0
  297. package/pages/Instance/styles.scss +1 -4
  298. package/pages/Instance/useCreatedStores.d.ts +10 -0
  299. package/pages/Instance/useCreatedStores.js +9 -0
  300. package/pages/Logs/Icons/PlusIcon.d.ts +2 -0
  301. package/pages/Logs/Icons/PlusIcon.js +2 -0
  302. package/pages/Logs/constants/index.d.ts +5 -0
  303. package/pages/Logs/constants/index.js +5 -0
  304. package/pages/Logs/hooks/useWsScroll.d.ts +1 -0
  305. package/pages/Logs/hooks/useWsScroll.js +37 -0
  306. package/pages/Logs/index.d.ts +6 -0
  307. package/pages/Logs/index.js +200 -0
  308. package/pages/Logs/utils/index.d.ts +2 -0
  309. package/pages/Logs/utils/index.js +15 -0
  310. package/pages/Logs/wsLogs.d.ts +3 -0
  311. package/pages/Logs/wsLogs.js +92 -0
  312. package/pages/Logs/wsSnackbar.d.ts +1 -0
  313. package/pages/Logs/wsSnackbar.js +25 -0
  314. package/pages/Snapshots/Snapshot/DestorySnapshotModal/index.d.ts +12 -0
  315. package/pages/Snapshots/Snapshot/DestorySnapshotModal/index.js +69 -0
  316. package/pages/Snapshots/Snapshot/context.d.ts +23 -0
  317. package/pages/Snapshots/Snapshot/context.js +3 -0
  318. package/pages/Snapshots/Snapshot/index.d.ts +9 -0
  319. package/pages/Snapshots/Snapshot/index.js +171 -0
  320. package/pages/Snapshots/Snapshot/stores/Main.d.ts +33 -0
  321. package/pages/Snapshots/Snapshot/stores/Main.js +71 -0
  322. package/pages/Snapshots/Snapshot/useCreatedStores.d.ts +6 -0
  323. package/pages/Snapshots/Snapshot/useCreatedStores.js +5 -0
  324. package/stores/Snapshots.d.ts +24 -0
  325. package/stores/Snapshots.js +59 -0
  326. package/styles/colors.d.ts +60 -0
  327. package/styles/colors.js +66 -0
  328. package/styles/icons.d.ts +63 -0
  329. package/styles/icons.js +69 -0
  330. package/styles/styles.d.ts +1 -0
  331. package/styles/styles.js +83 -0
  332. package/styles/theme.d.ts +1 -0
  333. package/styles/theme.js +50 -0
  334. package/styles/vars.d.ts +25 -0
  335. package/styles/{vars.ts → vars.js} +20 -28
  336. package/types/api/endpoints/createBranch.d.ts +12 -0
  337. package/types/api/endpoints/createBranch.js +1 -0
  338. package/types/api/endpoints/createClone.d.ts +13 -0
  339. package/types/api/endpoints/createClone.js +1 -0
  340. package/types/api/endpoints/createSnapshot.d.ts +5 -0
  341. package/types/api/endpoints/createSnapshot.js +1 -0
  342. package/types/api/endpoints/deleteBranch.d.ts +4 -0
  343. package/types/api/endpoints/deleteBranch.js +1 -0
  344. package/types/api/endpoints/destroyClone.d.ts +7 -0
  345. package/types/api/endpoints/destroyClone.js +1 -0
  346. package/types/api/endpoints/destroySnapshot.d.ts +4 -0
  347. package/types/api/endpoints/destroySnapshot.js +1 -0
  348. package/types/api/endpoints/getBranchSnapshot.d.ts +5 -0
  349. package/types/api/endpoints/getBranchSnapshot.js +1 -0
  350. package/types/api/endpoints/getBranches.d.ts +18 -0
  351. package/types/api/endpoints/getBranches.js +5 -0
  352. package/types/api/endpoints/getClone.d.ts +8 -0
  353. package/types/api/endpoints/getClone.js +1 -0
  354. package/types/api/endpoints/getConfig.d.ts +5 -0
  355. package/types/api/endpoints/getConfig.js +1 -0
  356. package/types/api/endpoints/getEngine.d.ts +10 -0
  357. package/types/api/endpoints/getEngine.js +1 -0
  358. package/types/api/endpoints/getFullConfig.d.ts +4 -0
  359. package/types/api/endpoints/getFullConfig.js +1 -0
  360. package/types/api/endpoints/getInstance.d.ts +7 -0
  361. package/types/api/endpoints/getInstance.js +1 -0
  362. package/types/api/endpoints/getInstanceRetrieval.d.ts +7 -0
  363. package/types/api/endpoints/getInstanceRetrieval.js +1 -0
  364. package/types/api/endpoints/getSeImages.d.ts +19 -0
  365. package/types/api/endpoints/getSeImages.js +1 -0
  366. package/types/api/endpoints/getSnapshotList.d.ts +10 -0
  367. package/types/api/endpoints/getSnapshotList.js +1 -0
  368. package/types/api/endpoints/getSnapshots.d.ts +8 -0
  369. package/types/api/endpoints/getSnapshots.js +1 -0
  370. package/types/api/endpoints/getWSToken.d.ts +7 -0
  371. package/types/api/endpoints/getWSToken.js +1 -0
  372. package/types/api/endpoints/initWS.d.ts +1 -0
  373. package/types/api/endpoints/initWS.js +1 -0
  374. package/types/api/endpoints/refreshInstance.d.ts +6 -0
  375. package/types/api/endpoints/refreshInstance.js +1 -0
  376. package/types/api/endpoints/resetClone.d.ts +8 -0
  377. package/types/api/endpoints/resetClone.js +1 -0
  378. package/types/api/endpoints/testDbSource.d.ts +22 -0
  379. package/types/api/endpoints/testDbSource.js +23 -0
  380. package/types/api/endpoints/updateClone.d.ts +10 -0
  381. package/types/api/endpoints/updateClone.js +1 -0
  382. package/types/api/endpoints/updateConfig.d.ts +5 -0
  383. package/types/api/endpoints/updateConfig.js +1 -0
  384. package/types/api/entities/branchSnapshot.d.ts +6 -0
  385. package/types/api/entities/branchSnapshot.js +1 -0
  386. package/types/api/entities/branchSnapshots.d.ts +15 -0
  387. package/types/api/entities/branchSnapshots.js +7 -0
  388. package/types/api/entities/clone.d.ts +56 -0
  389. package/{components/Text/index.tsx → types/api/entities/clone.js} +8 -22
  390. package/types/api/entities/config.d.ts +72 -0
  391. package/types/api/entities/config.js +35 -0
  392. package/types/api/entities/createBranch.d.ts +5 -0
  393. package/types/api/entities/createBranch.js +1 -0
  394. package/types/api/entities/createSnapshot.d.ts +5 -0
  395. package/types/api/entities/createSnapshot.js +1 -0
  396. package/types/api/entities/dbSource.d.ts +13 -0
  397. package/types/api/entities/dbSource.js +1 -0
  398. package/types/api/entities/instance.d.ts +114 -0
  399. package/types/api/entities/instance.js +31 -0
  400. package/types/api/entities/instanceRetrieval.d.ts +42 -0
  401. package/types/api/entities/instanceRetrieval.js +19 -0
  402. package/types/api/entities/instanceState.d.ts +114 -0
  403. package/types/api/entities/instanceState.js +42 -0
  404. package/types/api/entities/pool.d.ts +18 -0
  405. package/{utils/numbers.ts → types/api/entities/pool.js} +1 -5
  406. package/types/api/entities/snapshot.d.ts +27 -0
  407. package/types/api/entities/snapshot.js +6 -0
  408. package/types/api/entities/wsToken.d.ts +5 -0
  409. package/types/api/entities/wsToken.js +1 -0
  410. package/utils/api.d.ts +1 -0
  411. package/utils/api.js +28 -0
  412. package/utils/clone.d.ts +13 -0
  413. package/utils/clone.js +21 -0
  414. package/utils/connection.d.ts +5 -0
  415. package/utils/connection.js +28 -0
  416. package/utils/date.d.ts +18 -0
  417. package/utils/date.js +40 -0
  418. package/utils/instance.d.ts +5 -0
  419. package/utils/instance.js +11 -0
  420. package/utils/numbers.d.ts +1 -0
  421. package/utils/{strings.ts → numbers.js} +4 -5
  422. package/utils/react.d.ts +5 -0
  423. package/utils/react.js +8 -0
  424. package/utils/snapshot.d.ts +5 -0
  425. package/utils/snapshot.js +6 -0
  426. package/utils/strings.d.ts +1 -0
  427. package/utils/strings.js +10 -0
  428. package/utils/units.d.ts +5 -0
  429. package/utils/units.js +15 -0
  430. package/.gitlab-ci.yml +0 -60
  431. package/components/AlertSnackbar/index.tsx +0 -23
  432. package/components/AlertSnackbar/useAlertSnackbar.tsx +0 -65
  433. package/components/Button/index.tsx +0 -79
  434. package/components/Button2/index.tsx +0 -43
  435. package/components/DestroyCloneModal/index.tsx +0 -56
  436. package/components/DestroyCloneRestrictionModal/index.tsx +0 -50
  437. package/components/ErrorStub/index.tsx +0 -83
  438. package/components/FormattedText/index.tsx +0 -44
  439. package/components/GatewayLink/index.tsx +0 -33
  440. package/components/HorizontalScrollContainer/index.tsx +0 -131
  441. package/components/ImportantText/index.tsx +0 -29
  442. package/components/Link2/index.tsx +0 -31
  443. package/components/MenuButton/index.tsx +0 -80
  444. package/components/Modal/index.tsx +0 -93
  445. package/components/ResetCloneModal/index.tsx +0 -154
  446. package/components/SectionTitle/index.tsx +0 -74
  447. package/components/Select/index.tsx +0 -42
  448. package/components/SimpleModalControls/index.tsx +0 -56
  449. package/components/Spinner/icon.tsx +0 -29
  450. package/components/Spinner/index.tsx +0 -16
  451. package/components/Status/index.tsx +0 -61
  452. package/components/StubContainer/index.tsx +0 -41
  453. package/components/StubSpinner/index.tsx +0 -49
  454. package/components/StubSpinnerFlex/index.tsx +0 -20
  455. package/components/SyntaxHighlight/index.tsx +0 -107
  456. package/components/Table/RowMenu/index.tsx +0 -111
  457. package/components/Table/index.tsx +0 -140
  458. package/components/TextField/index.tsx +0 -117
  459. package/components/Tooltip/index.tsx +0 -52
  460. package/config/index.ts +0 -32
  461. package/config/links.ts +0 -6
  462. package/craco.config.js +0 -80
  463. package/helpers/getEntropy.ts +0 -232
  464. package/helpers/localStorage.ts +0 -15
  465. package/helpers/request.ts +0 -47
  466. package/hooks/useWindowDimensions.ts +0 -16
  467. package/icons/ArrowDropDown/index.tsx +0 -29
  468. package/icons/Circle/index.tsx +0 -27
  469. package/icons/External/index.tsx +0 -14
  470. package/icons/Info/index.tsx +0 -12
  471. package/icons/Renewable/index.tsx +0 -65
  472. package/icons/Shield/index.tsx +0 -33
  473. package/icons/Warning/index.tsx +0 -29
  474. package/pages/Clone/Status/index.tsx +0 -73
  475. package/pages/Clone/context.ts +0 -22
  476. package/pages/Clone/index.tsx +0 -634
  477. package/pages/Clone/stores/Main.ts +0 -206
  478. package/pages/Clone/useCreatedStores.ts +0 -11
  479. package/pages/Configuration/Header/index.tsx +0 -84
  480. package/pages/Configuration/InputWithTooltip/index.tsx +0 -240
  481. package/pages/Configuration/ResponseMessage/index.tsx +0 -71
  482. package/pages/Configuration/configOptions.ts +0 -60
  483. package/pages/Configuration/index.tsx +0 -1184
  484. package/pages/Configuration/tooltipText.tsx +0 -157
  485. package/pages/Configuration/useForm.ts +0 -108
  486. package/pages/Configuration/utils/index.ts +0 -153
  487. package/pages/CreateClone/index.tsx +0 -311
  488. package/pages/CreateClone/stores/Main.ts +0 -107
  489. package/pages/CreateClone/useCreatedStores.ts +0 -11
  490. package/pages/CreateClone/useForm.ts +0 -36
  491. package/pages/Instance/Clones/Header/Item/index.tsx +0 -15
  492. package/pages/Instance/Clones/Header/index.tsx +0 -74
  493. package/pages/Instance/Clones/index.tsx +0 -135
  494. package/pages/Instance/ClonesModal/index.tsx +0 -71
  495. package/pages/Instance/InactiveInstance/index.tsx +0 -165
  496. package/pages/Instance/InactiveInstance/utils.ts +0 -9
  497. package/pages/Instance/Info/Connection/ConnectModal/Content/index.tsx +0 -176
  498. package/pages/Instance/Info/Connection/ConnectModal/Content/utils.ts +0 -24
  499. package/pages/Instance/Info/Connection/ConnectModal/index.tsx +0 -36
  500. package/pages/Instance/Info/Connection/index.tsx +0 -81
  501. package/pages/Instance/Info/Details/index.tsx +0 -20
  502. package/pages/Instance/Info/Disks/Disk/ActionsMenu/index.tsx +0 -100
  503. package/pages/Instance/Info/Disks/Disk/Marker/index.tsx +0 -26
  504. package/pages/Instance/Info/Disks/Disk/ProgressBar/PointerIcon.tsx +0 -20
  505. package/pages/Instance/Info/Disks/Disk/ProgressBar/index.tsx +0 -73
  506. package/pages/Instance/Info/Disks/Disk/Status/index.tsx +0 -75
  507. package/pages/Instance/Info/Disks/Disk/index.tsx +0 -168
  508. package/pages/Instance/Info/Disks/index.tsx +0 -65
  509. package/pages/Instance/Info/Icons/index.tsx +0 -39
  510. package/pages/Instance/Info/Retrieval/RefreshFailedAlert/index.tsx +0 -32
  511. package/pages/Instance/Info/Retrieval/RetrievalModal/index.tsx +0 -49
  512. package/pages/Instance/Info/Retrieval/RetrievalTable/index.tsx +0 -53
  513. package/pages/Instance/Info/Retrieval/index.tsx +0 -95
  514. package/pages/Instance/Info/Retrieval/utils.ts +0 -10
  515. package/pages/Instance/Info/Snapshots/Calendar/Day/index.tsx +0 -125
  516. package/pages/Instance/Info/Snapshots/Calendar/index.tsx +0 -133
  517. package/pages/Instance/Info/Snapshots/Calendar/utils.ts +0 -74
  518. package/pages/Instance/Info/Snapshots/TimeLine/Day/index.tsx +0 -79
  519. package/pages/Instance/Info/Snapshots/TimeLine/index.tsx +0 -57
  520. package/pages/Instance/Info/Snapshots/index.tsx +0 -97
  521. package/pages/Instance/Info/Snapshots/utils.ts +0 -18
  522. package/pages/Instance/Info/Status/InstanceResponseModal/index.tsx +0 -32
  523. package/pages/Instance/Info/Status/index.tsx +0 -85
  524. package/pages/Instance/Info/Status/utils.ts +0 -24
  525. package/pages/Instance/Info/components/Property/index.tsx +0 -32
  526. package/pages/Instance/Info/components/Section/index.tsx +0 -50
  527. package/pages/Instance/Info/components/ValueStatus/index.tsx +0 -51
  528. package/pages/Instance/Info/index.tsx +0 -129
  529. package/pages/Instance/SnapshotsModal/index.tsx +0 -169
  530. package/pages/Instance/SnapshotsModal/utils.ts +0 -17
  531. package/pages/Instance/Tabs/index.tsx +0 -98
  532. package/pages/Instance/components/ClonesList/ConnectionModal/index.tsx +0 -196
  533. package/pages/Instance/components/ClonesList/MenuCell/index.tsx +0 -98
  534. package/pages/Instance/components/ClonesList/MenuCell/utils.ts +0 -21
  535. package/pages/Instance/components/ClonesList/index.tsx +0 -189
  536. package/pages/Instance/components/ErrorStub/index.tsx +0 -77
  537. package/pages/Instance/components/ModalReloadButton/index.tsx +0 -43
  538. package/pages/Instance/components/Tags/Tag/index.tsx +0 -60
  539. package/pages/Instance/components/Tags/index.tsx +0 -42
  540. package/pages/Instance/context.ts +0 -39
  541. package/pages/Instance/index.tsx +0 -235
  542. package/pages/Instance/stores/ClonesModal.ts +0 -35
  543. package/pages/Instance/stores/Main.ts +0 -335
  544. package/pages/Instance/stores/SnapshotsModal.ts +0 -35
  545. package/pages/Instance/useCreatedStores.ts +0 -14
  546. package/pages/Logs/Icons/PlusIcon.tsx +0 -8
  547. package/pages/Logs/constants/index.ts +0 -7
  548. package/pages/Logs/hooks/useWsScroll.tsx +0 -44
  549. package/pages/Logs/index.tsx +0 -267
  550. package/pages/Logs/utils/index.ts +0 -20
  551. package/pages/Logs/wsLogs.ts +0 -110
  552. package/pages/Logs/wsSnackbar.ts +0 -27
  553. package/postgres.ai-shared-3.5.0.tgz +0 -0
  554. package/scripts/copy-assets.js +0 -30
  555. package/scripts/pack.js +0 -70
  556. package/stores/Snapshots.ts +0 -54
  557. package/styles/colors.ts +0 -67
  558. package/styles/icons.tsx +0 -1917
  559. package/styles/styles.ts +0 -87
  560. package/styles/theme.ts +0 -53
  561. package/types/api/endpoints/createClone.ts +0 -10
  562. package/types/api/endpoints/destroyClone.ts +0 -7
  563. package/types/api/endpoints/getClone.ts +0 -6
  564. package/types/api/endpoints/getConfig.ts +0 -6
  565. package/types/api/endpoints/getEngine.ts +0 -13
  566. package/types/api/endpoints/getFullConfig.ts +0 -4
  567. package/types/api/endpoints/getInstance.ts +0 -6
  568. package/types/api/endpoints/getInstanceRetrieval.ts +0 -6
  569. package/types/api/endpoints/getSeImages.ts +0 -22
  570. package/types/api/endpoints/getSnapshots.ts +0 -6
  571. package/types/api/endpoints/getWSToken.ts +0 -6
  572. package/types/api/endpoints/initWS.ts +0 -1
  573. package/types/api/endpoints/refreshInstance.ts +0 -4
  574. package/types/api/endpoints/resetClone.ts +0 -8
  575. package/types/api/endpoints/testDbSource.ts +0 -48
  576. package/types/api/endpoints/updateClone.ts +0 -10
  577. package/types/api/endpoints/updateConfig.ts +0 -6
  578. package/types/api/entities/clone.ts +0 -42
  579. package/types/api/entities/config.ts +0 -114
  580. package/types/api/entities/dbSource.ts +0 -13
  581. package/types/api/entities/instance.ts +0 -67
  582. package/types/api/entities/instanceRetrieval.ts +0 -46
  583. package/types/api/entities/instanceState.ts +0 -102
  584. package/types/api/entities/pool.ts +0 -27
  585. package/types/api/entities/snapshot.ts +0 -18
  586. package/types/api/entities/wsToken.ts +0 -7
  587. package/types/byte-size/index.d.ts +0 -22
  588. package/utils/api.ts +0 -30
  589. package/utils/clone.ts +0 -31
  590. package/utils/connection.ts +0 -38
  591. package/utils/date.ts +0 -87
  592. package/utils/instance.ts +0 -10
  593. package/utils/react.ts +0 -10
  594. package/utils/snapshot.ts +0 -4
  595. package/utils/units.ts +0 -23
  596. /package/pages/{Configuration → Instance/Configuration}/styles.module.scss +0 -0
@@ -0,0 +1,302 @@
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
+ import { makeAutoObservable } from 'mobx';
8
+ import { SnapshotsStore } from '@postgres.ai/shared/stores/Snapshots';
9
+ import { getTextFromUnknownApiError } from '@postgres.ai/shared/utils/api';
10
+ const UNSTABLE_CLONE_STATUS_CODES = ['CREATING', 'RESETTING', 'DELETING'];
11
+ export class MainStore {
12
+ constructor(api) {
13
+ this.instance = null;
14
+ this.instanceRetrieval = null;
15
+ this.config = null;
16
+ this.instanceError = null;
17
+ this.configError = null;
18
+ this.getFullConfigError = null;
19
+ this.getBranchesError = null;
20
+ this.snapshotListError = null;
21
+ this.seImagesError = null;
22
+ this.unstableClones = new Set();
23
+ this.isReloadingClones = false;
24
+ this.isConfigurationLoading = false;
25
+ this.isReloadingInstance = false;
26
+ this.isReloadingInstanceRetrieval = false;
27
+ this.isBranchesLoading = false;
28
+ this.isConfigLoading = false;
29
+ this.isLoadingInstance = false;
30
+ this.load = (instanceId, isPlatform = false) => {
31
+ this.instance = null;
32
+ this.isReloadingInstance = true;
33
+ if (!isPlatform) {
34
+ this.getBranches(instanceId);
35
+ }
36
+ const runRetrieval = () => {
37
+ this.loadInstanceRetrieval(instanceId).then(() => {
38
+ if (this.instanceRetrieval) {
39
+ this.getConfig(instanceId);
40
+ this.getFullConfig(instanceId);
41
+ }
42
+ });
43
+ };
44
+ this.loadInstance(instanceId, false).then(() => {
45
+ var _a, _b, _c, _d;
46
+ if ((((_a = this.instance) === null || _a === void 0 ? void 0 : _a.createdAt) && ((_b = this.instance) === null || _b === void 0 ? void 0 : _b.url)) ||
47
+ !((_c = this.instance) === null || _c === void 0 ? void 0 : _c.createdAt)) {
48
+ this.snapshots.load(instanceId);
49
+ }
50
+ if (isPlatform && ((_d = this.instance) === null || _d === void 0 ? void 0 : _d.url)) {
51
+ this.getBranches(instanceId);
52
+ runRetrieval();
53
+ }
54
+ });
55
+ if (!isPlatform) {
56
+ runRetrieval();
57
+ }
58
+ };
59
+ this.reload = (instanceId) => {
60
+ this.instance = null;
61
+ this.isReloadingInstance = true;
62
+ this.loadInstance(instanceId, false).then(() => {
63
+ var _a, _b, _c;
64
+ if (this.api.refreshInstance)
65
+ this.api.refreshInstance({ instanceId: instanceId });
66
+ if ((((_a = this.instance) === null || _a === void 0 ? void 0 : _a.createdAt) && ((_b = this.instance) === null || _b === void 0 ? void 0 : _b.url)) ||
67
+ !((_c = this.instance) === null || _c === void 0 ? void 0 : _c.createdAt)) {
68
+ this.snapshots.load(instanceId);
69
+ }
70
+ });
71
+ this.loadInstanceRetrieval(instanceId).then(() => {
72
+ if (this.instanceRetrieval) {
73
+ this.getConfig(instanceId);
74
+ this.getFullConfig(instanceId);
75
+ }
76
+ });
77
+ };
78
+ this.reloadSnapshots = async (branchName) => {
79
+ if (!this.instance)
80
+ return;
81
+ await this.snapshots.reload(this.instance.id, branchName);
82
+ };
83
+ this.reloadInstanceRetrieval = async () => {
84
+ if (!this.instance)
85
+ return;
86
+ this.isReloadingInstanceRetrieval = true;
87
+ this.loadInstanceRetrieval(this.instance.id);
88
+ this.isReloadingInstanceRetrieval = false;
89
+ };
90
+ this.loadInstanceRetrieval = async (instanceId) => {
91
+ if (!this.api.getInstanceRetrieval)
92
+ return;
93
+ const { response, error } = await this.api.getInstanceRetrieval({
94
+ instanceId: instanceId,
95
+ });
96
+ if (response)
97
+ this.instanceRetrieval = response;
98
+ if (error)
99
+ this.instanceError = { message: await getTextFromUnknownApiError(error) };
100
+ return !!response;
101
+ };
102
+ this.loadInstance = async (instanceId, refresh = true) => {
103
+ var _a, _b;
104
+ this.instanceError = null;
105
+ this.isLoadingInstance = true;
106
+ if (this.api.refreshInstance && refresh)
107
+ await this.api.refreshInstance({ instanceId: instanceId });
108
+ const { response, error } = await this.api.getInstance({
109
+ instanceId: instanceId,
110
+ });
111
+ this.isLoadingInstance = false;
112
+ if (response === null) {
113
+ this.instanceError = {
114
+ title: 'Error 404',
115
+ message: 'Specified instance not found or you have no access.',
116
+ };
117
+ }
118
+ if (response) {
119
+ this.instance = response;
120
+ const unstableClones = new Set();
121
+ (_b = (_a = this.instance.state) === null || _a === void 0 ? void 0 : _a.cloning.clones) === null || _b === void 0 ? void 0 : _b.forEach((clone) => {
122
+ if (UNSTABLE_CLONE_STATUS_CODES.includes(clone.status.code)) {
123
+ unstableClones.add(clone.id);
124
+ }
125
+ });
126
+ this.unstableClones = unstableClones;
127
+ }
128
+ if (error)
129
+ this.instanceError = { message: await getTextFromUnknownApiError(error) };
130
+ return !!response;
131
+ };
132
+ this.getConfig = async (instanceId) => {
133
+ if (!this.api.getConfig)
134
+ return;
135
+ this.isConfigurationLoading = true;
136
+ this.isConfigLoading = true;
137
+ const { response, error } = await this.api.getConfig(instanceId);
138
+ this.isConfigurationLoading = false;
139
+ this.isConfigLoading = false;
140
+ if (response) {
141
+ this.config = response;
142
+ this.configError = null;
143
+ }
144
+ if (error) {
145
+ this.configError = await error.json().then((err) => err.message);
146
+ }
147
+ return response;
148
+ };
149
+ this.updateConfig = async (values, instanceId) => {
150
+ if (!this.api.updateConfig)
151
+ return;
152
+ const { response, error } = await this.api.updateConfig({ ...values }, instanceId);
153
+ if (error)
154
+ this.configError = await error.json().then((err) => err.message);
155
+ return response;
156
+ };
157
+ this.getFullConfig = async (instanceId) => {
158
+ var _a, _b, _c, _d, _e;
159
+ if (!this.api.getFullConfig)
160
+ return;
161
+ const { response, error } = await this.api.getFullConfig(instanceId);
162
+ if (response) {
163
+ this.fullConfig = response;
164
+ const splitYML = this.fullConfig.split('---');
165
+ this.platformUrl = (_b = (_a = splitYML[0]) === null || _a === void 0 ? void 0 : _a.split('url: ')[1]) === null || _b === void 0 ? void 0 : _b.split('\n')[0];
166
+ this.uiVersion = (_e = (_d = (_c = splitYML[0]) === null || _c === void 0 ? void 0 : _c.split('dockerImage: "postgresai/ce-ui:')[2]) === null || _d === void 0 ? void 0 : _d.split('\n')[0]) === null || _e === void 0 ? void 0 : _e.replace(/['"]+/g, '');
167
+ }
168
+ if (error)
169
+ this.getFullConfigError = await error
170
+ .json()
171
+ .then((err) => err.message);
172
+ return response;
173
+ };
174
+ this.getSeImages = async (values) => {
175
+ if (!this.api.getSeImages || !this.platformUrl)
176
+ return;
177
+ const { response, error } = await this.api.getSeImages({
178
+ packageGroup: values.packageGroup,
179
+ platformUrl: this.platformUrl,
180
+ });
181
+ if (response) {
182
+ this.seImagesError = null;
183
+ }
184
+ if (error) {
185
+ this.seImagesError = await error.json().then((err) => err.message);
186
+ }
187
+ return response;
188
+ };
189
+ this.getEngine = async (instanceId) => {
190
+ if (!this.api.getEngine)
191
+ return;
192
+ this.configError = null;
193
+ const { response, error } = await this.api.getEngine(instanceId);
194
+ if (response) {
195
+ this.dleEdition = response.edition;
196
+ }
197
+ if (error)
198
+ await getTextFromUnknownApiError(error);
199
+ return response;
200
+ };
201
+ this.testDbSource = async (values) => {
202
+ if (!this.api.testDbSource)
203
+ return;
204
+ const { response, error } = await this.api.testDbSource(values);
205
+ return {
206
+ response,
207
+ error,
208
+ };
209
+ };
210
+ this.resetClone = async (cloneId, snapshotId) => {
211
+ if (!this.instance || !this.api.resetClone)
212
+ return;
213
+ this.unstableClones.add(cloneId);
214
+ const { response, error } = await this.api.resetClone({
215
+ cloneId,
216
+ snapshotId,
217
+ instanceId: this.instance.id,
218
+ });
219
+ if (response)
220
+ this.liveUpdateInstance();
221
+ if (error)
222
+ await getTextFromUnknownApiError(error);
223
+ return !!response;
224
+ };
225
+ this.destroyClone = async (cloneId) => {
226
+ if (!this.instance || !this.api.destroyClone)
227
+ return;
228
+ this.unstableClones.add(cloneId);
229
+ const { response, error } = await this.api.destroyClone({
230
+ cloneId,
231
+ instanceId: this.instance.id,
232
+ });
233
+ if (response)
234
+ this.liveUpdateInstance();
235
+ if (error)
236
+ await getTextFromUnknownApiError(error);
237
+ return !!response;
238
+ };
239
+ this.liveUpdateInstance = async () => {
240
+ if (!this.unstableClones.size)
241
+ return;
242
+ if (!this.instance)
243
+ return;
244
+ await this.loadInstance(this.instance.id);
245
+ await this.loadInstanceRetrieval(this.instance.id);
246
+ if (!this.unstableClones.size)
247
+ return;
248
+ };
249
+ this.reloadClones = async () => {
250
+ if (!this.instance)
251
+ return;
252
+ this.isReloadingClones = true;
253
+ await this.loadInstance(this.instance.id);
254
+ await this.loadInstanceRetrieval(this.instance.id);
255
+ this.isReloadingClones = false;
256
+ };
257
+ this.getBranches = async (instanceId) => {
258
+ if (!this.api.getBranches)
259
+ return;
260
+ this.isBranchesLoading = true;
261
+ const { response, error } = await this.api.getBranches(instanceId);
262
+ this.isBranchesLoading = false;
263
+ if (error)
264
+ this.getBranchesError = await error.json().then((err) => err);
265
+ return response;
266
+ };
267
+ this.deleteBranch = async (branchName, instanceId) => {
268
+ if (!branchName || !this.api.deleteBranch)
269
+ return;
270
+ const { response, error } = await this.api.deleteBranch(branchName, instanceId);
271
+ return { response, error };
272
+ };
273
+ this.getSnapshotList = async (branchName, instanceId) => {
274
+ if (!this.api.getSnapshotList)
275
+ return;
276
+ const { response, error } = await this.api.getSnapshotList(branchName, instanceId);
277
+ this.isBranchesLoading = false;
278
+ if (error) {
279
+ this.snapshotListError = await error.json().then((err) => err.message);
280
+ }
281
+ return response;
282
+ };
283
+ this.destroySnapshot = async (snapshotId, forceDelete, instanceId) => {
284
+ if (!this.api.destroySnapshot || !snapshotId)
285
+ return;
286
+ const { response, error } = await this.api.destroySnapshot(snapshotId, forceDelete, instanceId);
287
+ return {
288
+ response,
289
+ error: error ? await error.json().then((err) => err) : null,
290
+ };
291
+ };
292
+ makeAutoObservable(this);
293
+ this.api = api;
294
+ this.snapshots = new SnapshotsStore(api);
295
+ }
296
+ get isDisabledInstance() {
297
+ var _a;
298
+ if (!this.instance)
299
+ return true;
300
+ return ((_a = this.instance.state) === null || _a === void 0 ? void 0 : _a.status.code) === 'NO_RESPONSE';
301
+ }
302
+ }
@@ -0,0 +1,13 @@
1
+ declare type FilterOptions = {
2
+ pool?: string | null;
3
+ date?: Date;
4
+ };
5
+ export declare class SnapshotsModalStore {
6
+ isOpenModal: boolean;
7
+ pool: string | null;
8
+ date: Date | null;
9
+ constructor();
10
+ openModal: (filterOptions?: FilterOptions | undefined) => void;
11
+ closeModal: () => void;
12
+ }
13
+ export {};
@@ -0,0 +1,24 @@
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
+ import { makeAutoObservable } from 'mobx';
8
+ export class SnapshotsModalStore {
9
+ constructor() {
10
+ this.isOpenModal = false;
11
+ this.pool = null;
12
+ this.date = null;
13
+ this.openModal = (filterOptions = {}) => {
14
+ const { pool = null, date = null } = filterOptions;
15
+ this.pool = pool;
16
+ this.date = date;
17
+ this.isOpenModal = true;
18
+ };
19
+ this.closeModal = () => {
20
+ this.isOpenModal = false;
21
+ };
22
+ makeAutoObservable(this);
23
+ }
24
+ }
@@ -5,13 +5,12 @@
5
5
  *--------------------------------------------------------------------------
6
6
  */
7
7
 
8
- #logs-container {
8
+ #logs-container {
9
9
  margin: 20px 0 0 0;
10
10
  border: 1px solid #b4b4b4;
11
11
  border-radius: 4px;
12
12
  overflow: hidden;
13
13
  padding: 0.5rem 1rem;
14
-
15
14
  & > p {
16
15
  font-size: small;
17
16
  font-family: 'Fira Code', monospace;
@@ -31,10 +30,8 @@
31
30
  background-color: #fff2e5;
32
31
  color: #000;
33
32
  font-weight: 500;
34
- font-size: 11px;
35
33
  padding: 6px 8px;
36
34
  border-radius: 4px;
37
35
  transition: all 40050ms ease;
38
36
  cursor: pointer;
39
- z-index: 1;
40
37
  }
@@ -0,0 +1,10 @@
1
+ import { MainStore } from './stores/Main';
2
+ import { ClonesModalStore } from './stores/ClonesModal';
3
+ import { SnapshotsModalStore } from './stores/SnapshotsModal';
4
+ import { Host } from './context';
5
+ export declare const useCreatedStores: (host: Host) => {
6
+ main: MainStore;
7
+ clonesModal: ClonesModalStore;
8
+ snapshotsModal: SnapshotsModalStore;
9
+ };
10
+ export declare type Stores = ReturnType<typeof useCreatedStores>;
@@ -0,0 +1,9 @@
1
+ import { useMemo } from 'react';
2
+ import { MainStore } from './stores/Main';
3
+ import { ClonesModalStore } from './stores/ClonesModal';
4
+ import { SnapshotsModalStore } from './stores/SnapshotsModal';
5
+ export const useCreatedStores = (host) => ({
6
+ main: useMemo(() => new MainStore(host.api), []),
7
+ clonesModal: useMemo(() => new ClonesModalStore(), []),
8
+ snapshotsModal: useMemo(() => new SnapshotsModalStore(), []),
9
+ });
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const PlusIcon: () => JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ export const PlusIcon = () => (_jsx("svg", { viewBox: "0 0 512 512", focusable: "false", children: _jsx("path", { fill: "currentColor", d: "M289.94 256l95-95A24 24 0 00351 127l-95 95-95-95a24 24 0 00-34 34l95 95-95 95a24 24 0 1034 34l95-95 95 95a24 24 0 0034-34z" }) }));
@@ -0,0 +1,5 @@
1
+ export declare const LOGS_NEW_DATA_MESSAGE = "New data arrived below - scroll down to see it \uD83D\uDC47\uD83C\uDFFB";
2
+ export declare const LAPTOP_WIDTH_PX = 982;
3
+ export declare const LOGS_TIME_LIMIT = 20;
4
+ export declare const LOGS_LINE_LIMIT = 1000;
5
+ export declare const LOGS_ENDPOINT = "/instance/logs";
@@ -0,0 +1,5 @@
1
+ export const LOGS_NEW_DATA_MESSAGE = 'New data arrived below - scroll down to see it 👇🏻';
2
+ export const LAPTOP_WIDTH_PX = 982;
3
+ export const LOGS_TIME_LIMIT = 20;
4
+ export const LOGS_LINE_LIMIT = 1000;
5
+ export const LOGS_ENDPOINT = '/instance/logs';
@@ -0,0 +1 @@
1
+ export declare const useWsScroll: (isLoading: boolean, simpleInstall?: boolean) => void;
@@ -0,0 +1,37 @@
1
+ import { useState, useEffect } from 'react';
2
+ import { wsSnackbar } from '@postgres.ai/shared/pages/Logs/wsSnackbar';
3
+ export const useWsScroll = (isLoading, simpleInstall) => {
4
+ const [isNewData, setIsNewData] = useState(false);
5
+ const [isAtBottom, setIsAtBottom] = useState(true);
6
+ useEffect(() => {
7
+ var _a;
8
+ !isLoading && wsSnackbar(isAtBottom, isNewData);
9
+ const contentElement = document.getElementById('content-container');
10
+ const targetNode = simpleInstall
11
+ ? (_a = document.getElementById('logs-container')) === null || _a === void 0 ? void 0 : _a.parentElement
12
+ : document.getElementById('logs-container');
13
+ const clientAtBottom = (element) => element.scrollHeight - element.scrollTop - 50 < element.clientHeight;
14
+ const handleScroll = (e) => {
15
+ if (clientAtBottom(e.target)) {
16
+ setIsAtBottom(true);
17
+ setIsNewData(false);
18
+ }
19
+ else {
20
+ setIsAtBottom(false);
21
+ }
22
+ };
23
+ const handleInsert = (e) => {
24
+ var _a;
25
+ if (((_a = e.srcElement) === null || _a === void 0 ? void 0 : _a.tagName) !== 'DIV') {
26
+ isAtBottom && (targetNode === null || targetNode === void 0 ? void 0 : targetNode.scrollIntoView(false));
27
+ setIsNewData(true);
28
+ }
29
+ };
30
+ contentElement === null || contentElement === void 0 ? void 0 : contentElement.addEventListener('scroll', handleScroll, false);
31
+ contentElement === null || contentElement === void 0 ? void 0 : contentElement.addEventListener('DOMNodeInserted', handleInsert, false);
32
+ return () => {
33
+ contentElement === null || contentElement === void 0 ? void 0 : contentElement.removeEventListener('scroll', handleScroll, false);
34
+ contentElement === null || contentElement === void 0 ? void 0 : contentElement.removeEventListener('DOMNodeInserted', handleInsert, false);
35
+ };
36
+ }, [isAtBottom, isNewData, isLoading]);
37
+ };
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ import { Api } from '@postgres.ai/shared/pages/Instance/stores/Main';
3
+ export declare const Logs: ({ api, instanceId }: {
4
+ api: Api;
5
+ instanceId: string;
6
+ }) => JSX.Element;
@@ -0,0 +1,200 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import classNames from 'classnames';
3
+ import { makeStyles } from '@material-ui/core';
4
+ import { Alert, AlertTitle } from '@material-ui/lab';
5
+ import React, { useEffect, useReducer } from 'react';
6
+ import { Spinner } from '@postgres.ai/shared/components/Spinner';
7
+ import { establishConnection, restartConnection, } from '@postgres.ai/shared/pages/Logs/wsLogs';
8
+ import { useWsScroll } from '@postgres.ai/shared/pages/Logs/hooks/useWsScroll';
9
+ import { LAPTOP_WIDTH_PX } from './constants';
10
+ import { PlusIcon } from './Icons/PlusIcon';
11
+ const useStyles = makeStyles(() => ({
12
+ spinnerContainer: {
13
+ display: 'flex',
14
+ width: '100%',
15
+ alignItems: 'center',
16
+ justifyContent: 'center',
17
+ },
18
+ filterSection: {
19
+ marginTop: '10px',
20
+ display: 'flex',
21
+ flexDirection: 'row',
22
+ gap: 10,
23
+ flexWrap: 'wrap',
24
+ '& > span': {
25
+ display: 'flex',
26
+ flexDirection: 'row',
27
+ alignItems: 'center',
28
+ border: '1px solid #898E9A',
29
+ padding: '3px 8px',
30
+ borderRadius: 5,
31
+ fontSize: '13px',
32
+ textTransform: 'capitalize',
33
+ cursor: 'pointer',
34
+ },
35
+ '& > span > button': {
36
+ background: 'none',
37
+ outline: 'none',
38
+ border: 0,
39
+ width: '100%',
40
+ height: '100%',
41
+ display: 'flex',
42
+ alignItems: 'center',
43
+ cursor: 'pointer',
44
+ paddingBottom: 0,
45
+ paddingRight: 0,
46
+ },
47
+ },
48
+ // we need important since id has higher priority than class
49
+ logsContainer: {
50
+ overflow: 'auto !important',
51
+ margin: '10px 0 0 0 !important',
52
+ maxHeight: 'calc(100vh - 360px)',
53
+ position: 'relative',
54
+ '& p': {
55
+ fontSize: '10px !important',
56
+ maxWidth: 'calc(100% - 25px)',
57
+ '@media (max-width: 982px)': {
58
+ maxWidth: '100%',
59
+ },
60
+ },
61
+ },
62
+ activeButton: {
63
+ border: '1px solid #3F51B5 !important',
64
+ color: '#3F51B5 !important',
65
+ '& svg': {
66
+ '& path': {
67
+ fill: '#3F51B5 !important',
68
+ },
69
+ },
70
+ },
71
+ passiveButton: {
72
+ '& svg': {
73
+ transform: 'rotate(45deg) scale(0.75)',
74
+ },
75
+ },
76
+ buttonClassName: {
77
+ '& svg': {
78
+ width: '14px',
79
+ height: '14px',
80
+ },
81
+ },
82
+ activeError: {
83
+ border: '1px solid #F44336 !important',
84
+ color: '#F44336 !important',
85
+ '& svg': {
86
+ '& path': {
87
+ fill: '#F44336 !important',
88
+ },
89
+ },
90
+ },
91
+ utilFilter: {
92
+ '& > span': {
93
+ textTransform: 'lowercase',
94
+ },
95
+ '& > span:last-child': {
96
+ textTransform: 'capitalize',
97
+ },
98
+ },
99
+ }), { index: 1 });
100
+ export const Logs = ({ api, instanceId }) => {
101
+ const classes = useStyles();
102
+ const [isLoading, setIsLoading] = React.useState(true);
103
+ const targetNode = document.getElementById('logs-container');
104
+ useWsScroll(isLoading);
105
+ const logsFilterState = (localStorage === null || localStorage === void 0 ? void 0 : localStorage.getItem('logsFilter')) &&
106
+ (JSON === null || JSON === void 0 ? void 0 : JSON.parse((localStorage === null || localStorage === void 0 ? void 0 : localStorage.getItem('logsFilter')) || ''));
107
+ const isEmpty = (obj) => {
108
+ for (const key in obj) {
109
+ if (obj.hasOwnProperty(key))
110
+ return false;
111
+ }
112
+ return true;
113
+ };
114
+ const initialState = (obj) => {
115
+ const filters = {
116
+ '[DEBUG]': true,
117
+ '[INFO]': true,
118
+ '[ERROR]': true,
119
+ '[base.go]': true,
120
+ '[runners.go]': true,
121
+ '[snapshots.go]': true,
122
+ '[util.go]': true,
123
+ '[logging.go]': false,
124
+ '[ws.go]': false,
125
+ '[other]': true,
126
+ };
127
+ for (const key in obj) {
128
+ if (obj.hasOwnProperty(key)) {
129
+ filters[key] = obj[key];
130
+ }
131
+ }
132
+ return filters;
133
+ };
134
+ const reducer = (state, action) => {
135
+ switch (action.type) {
136
+ case 'DEBUG':
137
+ return { ...state, '[DEBUG]': !state['[DEBUG]'] };
138
+ case 'INFO':
139
+ return { ...state, '[INFO]': !state['[INFO]'] };
140
+ case 'ERROR':
141
+ return { ...state, '[ERROR]': !state['[ERROR]'] };
142
+ case 'base.go':
143
+ return { ...state, '[base.go]': !state['[base.go]'] };
144
+ case 'runners.go':
145
+ return { ...state, '[runners.go]': !state['[runners.go]'] };
146
+ case 'snapshots.go':
147
+ return { ...state, '[snapshots.go]': !state['[snapshots.go]'] };
148
+ case 'logging.go':
149
+ return { ...state, '[logging.go]': !state['[logging.go]'] };
150
+ case 'util.go':
151
+ return { ...state, '[util.go]': !state['[util.go]'] };
152
+ case 'ws.go':
153
+ return { ...state, '[ws.go]': !state['[ws.go]'] };
154
+ case 'other':
155
+ return { ...state, '[other]': !state['[other]'] };
156
+ default:
157
+ throw new Error();
158
+ }
159
+ };
160
+ const [state, dispatch] = useReducer(reducer, initialState(logsFilterState));
161
+ const FormCheckbox = ({ type }) => {
162
+ const filterType = state[`[${type}]`];
163
+ return (_jsxs("span", { onClick: () => {
164
+ dispatch({ type });
165
+ restartConnection(api, instanceId);
166
+ }, className: filterType && type !== 'ERROR'
167
+ ? classes.activeButton
168
+ : filterType && type === 'ERROR'
169
+ ? classes.activeError
170
+ : classes.passiveButton, children: [_jsx("span", { children: type.toLowerCase() }), _jsx("button", { "aria-label": "close", type: "button", className: classes.buttonClassName, children: _jsx(PlusIcon, {}) })] }));
171
+ };
172
+ useEffect(() => {
173
+ if (api.initWS != undefined) {
174
+ establishConnection(api, instanceId);
175
+ }
176
+ }, [api]);
177
+ useEffect(() => {
178
+ localStorage.setItem('logsFilter', JSON.stringify(state));
179
+ }, [state]);
180
+ useEffect(() => {
181
+ const config = { attributes: false, childList: true, subtree: true };
182
+ if (isLoading && (targetNode === null || targetNode === void 0 ? void 0 : targetNode.querySelectorAll('p').length) === 1) {
183
+ setIsLoading(false);
184
+ }
185
+ const callback = (mutationList) => {
186
+ for (const mutation of mutationList) {
187
+ if (mutation.type === 'childList') {
188
+ setIsLoading(false);
189
+ }
190
+ }
191
+ };
192
+ const observer = new MutationObserver(callback);
193
+ targetNode && observer.observe(targetNode, config);
194
+ }, [isLoading, targetNode]);
195
+ return (_jsxs(_Fragment, { children: [_jsxs(Alert, { severity: "info", children: [_jsx(AlertTitle, { children: "Sensitive values are masked." }), "You can see the raw log data connecting to the machine and running", ' ', _jsx("strong", { children: "'docker logs --since 5m -f dblab_server'" }), "."] }), window.innerWidth > LAPTOP_WIDTH_PX && (_jsxs(_Fragment, { children: [_jsx("section", { className: classes.filterSection, children: Object.keys(state)
196
+ .slice(0, 3)
197
+ .map((key) => (_jsx(FormCheckbox, { type: key.replace('[', '').replace(']', '') }, key))) }), _jsx("section", { className: classNames(classes.filterSection, classes.utilFilter), children: Object.keys(state)
198
+ .slice(3, 10)
199
+ .map((key) => (_jsx(FormCheckbox, { type: key.replace('[', '').replace(']', '') }, key))) })] })), _jsx("div", { id: "logs-container", className: classes.logsContainer, children: isLoading ? (_jsx("div", { className: classes.spinnerContainer, children: _jsx(Spinner, {}) })) : null })] }));
200
+ };
@@ -0,0 +1,2 @@
1
+ export declare const stringWithoutBrackets: (val: string | undefined) => string;
2
+ export declare const stringContainsPattern: (target: string, pattern?: string[]) => boolean;