penguins-eggs 10.1.0 → 10.1.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 (440) hide show
  1. package/.oclif.manifest.json +1 -32
  2. package/README.md +109 -78
  3. package/conf/derivatives.yaml +3 -0
  4. package/conf/distros/buster/calamares/modules/users.yml +1 -0
  5. package/conf/distros/noble/calamares/modules/users.yml +1 -0
  6. package/dist/classes/bleach.d.ts +32 -0
  7. package/dist/classes/bleach.js +135 -0
  8. package/dist/classes/cli-autologin.d.ts +52 -0
  9. package/dist/classes/cli-autologin.js +247 -0
  10. package/dist/classes/compressors.d.ts +54 -0
  11. package/dist/classes/compressors.js +109 -0
  12. package/dist/classes/daddy.d.ts +26 -0
  13. package/dist/classes/daddy.js +167 -0
  14. package/dist/classes/distro.d.ts +56 -0
  15. package/dist/classes/distro.js +413 -0
  16. package/dist/classes/diversions.d.ts +52 -0
  17. package/dist/classes/diversions.js +126 -0
  18. package/dist/classes/incubation/branding.d.ts +17 -0
  19. package/dist/classes/incubation/branding.js +85 -0
  20. package/dist/classes/incubation/fisherman-helper/displaymanager.d.ts +11 -0
  21. package/dist/classes/incubation/fisherman-helper/displaymanager.js +40 -0
  22. package/dist/classes/incubation/fisherman-helper/packages.d.ts +20 -0
  23. package/dist/classes/incubation/fisherman-helper/packages.js +72 -0
  24. package/dist/classes/incubation/fisherman-helper/settings.d.ts +15 -0
  25. package/dist/classes/incubation/fisherman-helper/settings.js +83 -0
  26. package/dist/classes/incubation/fisherman.d.ts +70 -0
  27. package/dist/classes/incubation/fisherman.js +263 -0
  28. package/dist/classes/incubation/incubator.d/alpine.d.ts +32 -0
  29. package/dist/classes/incubation/incubator.d/alpine.js +78 -0
  30. package/dist/classes/incubation/incubator.d/bionic.d.ts +32 -0
  31. package/dist/classes/incubation/incubator.d/bionic.js +83 -0
  32. package/dist/classes/incubation/incubator.d/buster.d.ts +32 -0
  33. package/dist/classes/incubation/incubator.d/buster.js +85 -0
  34. package/dist/classes/incubation/incubator.d/jessie.d.ts +31 -0
  35. package/dist/classes/incubation/incubator.d/jessie.js +44 -0
  36. package/dist/classes/incubation/incubator.d/noble.d.ts +32 -0
  37. package/dist/classes/incubation/incubator.d/noble.js +85 -0
  38. package/dist/classes/incubation/incubator.d/openmamba.d.ts +32 -0
  39. package/dist/classes/incubation/incubator.d/openmamba.js +81 -0
  40. package/dist/classes/incubation/incubator.d/opensuse.d.ts +32 -0
  41. package/dist/classes/incubation/incubator.d/opensuse.js +81 -0
  42. package/dist/classes/incubation/incubator.d/rolling.d.ts +32 -0
  43. package/dist/classes/incubation/incubator.d/rolling.js +80 -0
  44. package/dist/classes/incubation/incubator.d.ts +44 -0
  45. package/dist/classes/incubation/incubator.js +382 -0
  46. package/dist/classes/incubation/installer.d.ts +13 -0
  47. package/dist/classes/incubation/installer.js +52 -0
  48. package/dist/classes/keyboards.d.ts +50 -0
  49. package/dist/classes/keyboards.js +287 -0
  50. package/dist/classes/locales.d.ts +21 -0
  51. package/dist/classes/locales.js +77 -0
  52. package/dist/classes/network.d.ts +37 -0
  53. package/dist/classes/network.js +98 -0
  54. package/dist/classes/ovary.d/bind-live-fs.d.ts +18 -0
  55. package/dist/classes/ovary.d/bind-live-fs.js +177 -0
  56. package/dist/classes/ovary.d/bind-vfs.d.ts +17 -0
  57. package/dist/classes/ovary.d/bind-vfs.js +37 -0
  58. package/dist/classes/ovary.d/create-xdg-autostart.d.ts +13 -0
  59. package/dist/classes/ovary.d/create-xdg-autostart.js +194 -0
  60. package/dist/classes/ovary.d/edit-live-fs.d.ts +20 -0
  61. package/dist/classes/ovary.d/edit-live-fs.js +245 -0
  62. package/dist/classes/ovary.d/fertilization.d.ts +12 -0
  63. package/dist/classes/ovary.d/fertilization.js +51 -0
  64. package/dist/classes/ovary.d/finished.d.ts +13 -0
  65. package/dist/classes/ovary.d/finished.js +41 -0
  66. package/dist/classes/ovary.d/initrd.d.ts +21 -0
  67. package/dist/classes/ovary.d/initrd.js +68 -0
  68. package/dist/classes/ovary.d/kernel-copy.d.ts +12 -0
  69. package/dist/classes/ovary.d/kernel-copy.js +22 -0
  70. package/dist/classes/ovary.d/live-create-structure.d.ts +12 -0
  71. package/dist/classes/ovary.d/live-create-structure.js +90 -0
  72. package/dist/classes/ovary.d/make-dot-disk.d.ts +12 -0
  73. package/dist/classes/ovary.d/make-dot-disk.js +40 -0
  74. package/dist/classes/ovary.d/make-efi.d.ts +12 -0
  75. package/dist/classes/ovary.d/make-efi.js +271 -0
  76. package/dist/classes/ovary.d/make-iso.d.ts +13 -0
  77. package/dist/classes/ovary.d/make-iso.js +45 -0
  78. package/dist/classes/ovary.d/make-squashfs.d.ts +18 -0
  79. package/dist/classes/ovary.d/make-squashfs.js +110 -0
  80. package/dist/classes/ovary.d/merged.d.ts +27 -0
  81. package/dist/classes/ovary.d/merged.js +77 -0
  82. package/dist/classes/ovary.d/produce.d.ts +23 -0
  83. package/dist/classes/ovary.d/produce.js +293 -0
  84. package/dist/classes/ovary.d/rexec.d.ts +13 -0
  85. package/dist/classes/ovary.d/rexec.js +34 -0
  86. package/dist/classes/ovary.d/syslinux.d.ts +12 -0
  87. package/dist/classes/ovary.d/syslinux.js +79 -0
  88. package/dist/classes/ovary.d/user-create-live.d.ts +14 -0
  89. package/dist/classes/ovary.d/user-create-live.js +93 -0
  90. package/dist/classes/ovary.d/users-remove.d.ts +9 -0
  91. package/dist/classes/ovary.d/users-remove.js +38 -0
  92. package/dist/classes/ovary.d/xorriso-commend.d.ts +14 -0
  93. package/dist/classes/ovary.d/xorriso-commend.js +119 -0
  94. package/dist/classes/ovary.d.ts +82 -0
  95. package/dist/classes/ovary.js +86 -0
  96. package/dist/classes/pacman.d/aldos.d.ts +52 -0
  97. package/dist/classes/pacman.d/aldos.js +100 -0
  98. package/dist/classes/pacman.d/alpine.d.ts +56 -0
  99. package/dist/classes/pacman.d/alpine.js +162 -0
  100. package/dist/classes/pacman.d/archlinux.d.ts +62 -0
  101. package/dist/classes/pacman.d/archlinux.js +136 -0
  102. package/dist/classes/pacman.d/debian.d.ts +65 -0
  103. package/dist/classes/pacman.d/debian.js +143 -0
  104. package/dist/classes/pacman.d/fedora.d.ts +53 -0
  105. package/dist/classes/pacman.d/fedora.js +101 -0
  106. package/dist/classes/pacman.d/openmamba.d.ts +52 -0
  107. package/dist/classes/pacman.d/openmamba.js +100 -0
  108. package/dist/classes/pacman.d/opensuse.d.ts +53 -0
  109. package/dist/classes/pacman.d/opensuse.js +102 -0
  110. package/dist/classes/pacman.d/voidlinux.d.ts +52 -0
  111. package/dist/classes/pacman.d/voidlinux.js +90 -0
  112. package/dist/classes/pacman.d.ts +139 -0
  113. package/dist/classes/pacman.js +776 -0
  114. package/dist/classes/pve-live.d.ts +17 -0
  115. package/dist/classes/pve-live.js +52 -0
  116. package/dist/classes/pxe.d.ts +74 -0
  117. package/dist/classes/pxe.js +410 -0
  118. package/dist/classes/settings.d.ts +52 -0
  119. package/dist/classes/settings.js +185 -0
  120. package/dist/classes/sources_list.d.ts +28 -0
  121. package/dist/classes/sources_list.js +89 -0
  122. package/dist/classes/systemctl.d.ts +47 -0
  123. package/dist/classes/systemctl.js +86 -0
  124. package/dist/classes/tailor.d.ts +50 -0
  125. package/dist/classes/tailor.js +527 -0
  126. package/dist/classes/tools.d.ts +26 -0
  127. package/dist/classes/tools.js +50 -0
  128. package/dist/classes/users.d.ts +28 -0
  129. package/dist/classes/users.js +143 -0
  130. package/dist/classes/utils.d/architecture.d.ts +41 -0
  131. package/dist/classes/utils.d/architecture.js +87 -0
  132. package/dist/classes/utils.d/console-output.d.ts +26 -0
  133. package/dist/classes/utils.d/console-output.js +46 -0
  134. package/dist/classes/utils.d/filesystem.d.ts +53 -0
  135. package/dist/classes/utils.d/filesystem.js +152 -0
  136. package/dist/classes/utils.d/formatters.d.ts +32 -0
  137. package/dist/classes/utils.d/formatters.js +64 -0
  138. package/dist/classes/utils.d/kernel.d.ts +83 -0
  139. package/dist/classes/utils.d/kernel.js +288 -0
  140. package/dist/classes/utils.d/network.d.ts +43 -0
  141. package/dist/classes/utils.d/network.js +133 -0
  142. package/dist/classes/utils.d/package-info.d.ts +55 -0
  143. package/dist/classes/utils.d/package-info.js +137 -0
  144. package/dist/classes/utils.d/snapshot.d.ts +44 -0
  145. package/dist/classes/utils.d/snapshot.js +102 -0
  146. package/dist/classes/utils.d/system.d.ts +63 -0
  147. package/dist/classes/utils.d/system.js +200 -0
  148. package/dist/classes/utils.d/user-interaction.d.ts +39 -0
  149. package/dist/classes/utils.d/user-interaction.js +104 -0
  150. package/dist/classes/utils.d.ts +95 -0
  151. package/dist/classes/utils.js +111 -0
  152. package/dist/classes/xdg.d.ts +45 -0
  153. package/dist/classes/xdg.js +337 -0
  154. package/dist/classes/yolk.d.ts +33 -0
  155. package/dist/classes/yolk.js +114 -0
  156. package/dist/commands/adapt.d.ts +17 -0
  157. package/dist/commands/adapt.js +33 -0
  158. package/dist/commands/analyze.d.ts +26 -0
  159. package/dist/commands/analyze.js +95 -0
  160. package/dist/commands/calamares.d.ts +29 -0
  161. package/dist/commands/calamares.js +112 -0
  162. package/dist/commands/config.d.ts +35 -0
  163. package/dist/commands/config.js +120 -0
  164. package/dist/commands/cuckoo.d.ts +16 -0
  165. package/dist/commands/cuckoo.js +62 -0
  166. package/dist/commands/dad.d.ts +21 -0
  167. package/dist/commands/dad.js +47 -0
  168. package/dist/commands/export/iso.d.ts +19 -0
  169. package/dist/commands/export/iso.js +55 -0
  170. package/dist/commands/export/pkg.d.ts +29 -0
  171. package/dist/commands/export/pkg.js +163 -0
  172. package/dist/commands/export/tarballs.d.ts +27 -0
  173. package/dist/commands/export/tarballs.js +79 -0
  174. package/dist/commands/install.d.ts +38 -0
  175. package/dist/commands/install.js +91 -0
  176. package/dist/commands/kill.d.ts +24 -0
  177. package/dist/commands/kill.js +50 -0
  178. package/dist/commands/love.d.ts +21 -0
  179. package/dist/commands/love.js +73 -0
  180. package/dist/commands/mom.d.ts +16 -0
  181. package/dist/commands/mom.js +30 -0
  182. package/dist/commands/pods.d.ts +22 -0
  183. package/dist/commands/pods.js +92 -0
  184. package/dist/commands/produce.d.ts +35 -0
  185. package/dist/commands/produce.js +221 -0
  186. package/dist/commands/status.d.ts +23 -0
  187. package/dist/commands/status.js +31 -0
  188. package/dist/commands/syncfrom.d.ts +45 -0
  189. package/dist/commands/syncfrom.js +152 -0
  190. package/dist/commands/syncto.d.ts +40 -0
  191. package/dist/commands/syncto.js +175 -0
  192. package/dist/commands/tools/clean.d.ts +18 -0
  193. package/dist/commands/tools/clean.js +37 -0
  194. package/dist/commands/tools/ppa.d.ts +26 -0
  195. package/dist/commands/tools/ppa.js +138 -0
  196. package/dist/commands/tools/skel.d.ts +18 -0
  197. package/dist/commands/tools/skel.js +44 -0
  198. package/dist/commands/tools/stat.d.ts +31 -0
  199. package/dist/commands/tools/stat.js +70 -0
  200. package/dist/commands/tools/yolk.d.ts +24 -0
  201. package/dist/commands/tools/yolk.js +45 -0
  202. package/dist/commands/update.d.ts +51 -0
  203. package/dist/commands/update.js +219 -0
  204. package/dist/commands/wardrobe/get.d.ts +23 -0
  205. package/dist/commands/wardrobe/get.js +52 -0
  206. package/dist/commands/wardrobe/list.d.ts +24 -0
  207. package/dist/commands/wardrobe/list.js +125 -0
  208. package/dist/commands/wardrobe/show.d.ts +25 -0
  209. package/dist/commands/wardrobe/show.js +97 -0
  210. package/dist/commands/wardrobe/wear.d.ts +26 -0
  211. package/dist/commands/wardrobe/wear.js +84 -0
  212. package/dist/index.d.ts +8 -0
  213. package/dist/index.js +8 -0
  214. package/dist/index_old.d.ts +8 -0
  215. package/dist/index_old.js +8 -0
  216. package/dist/interfaces/i-addons.d.ts +12 -0
  217. package/dist/interfaces/i-addons.js +8 -0
  218. package/dist/interfaces/i-analyze.d.ts +17 -0
  219. package/dist/interfaces/i-analyze.js +17 -0
  220. package/dist/interfaces/i-app.d.ts +14 -0
  221. package/dist/interfaces/i-app.js +8 -0
  222. package/dist/interfaces/i-branding.d.ts +36 -0
  223. package/dist/interfaces/i-branding.js +8 -0
  224. package/dist/interfaces/i-calamares-displaymanager.d.ts +17 -0
  225. package/dist/interfaces/i-calamares-displaymanager.js +1 -0
  226. package/dist/interfaces/i-calamares-finished.d.ts +12 -0
  227. package/dist/interfaces/i-calamares-finished.js +1 -0
  228. package/dist/interfaces/i-calamares-packages.d.ts +28 -0
  229. package/dist/interfaces/i-calamares-packages.js +1 -0
  230. package/dist/interfaces/i-calamares-partition.d.ts +40 -0
  231. package/dist/interfaces/i-calamares-partition.js +1 -0
  232. package/dist/interfaces/i-config-tools.d.ts +15 -0
  233. package/dist/interfaces/i-config-tools.js +8 -0
  234. package/dist/interfaces/i-devices.d.ts +20 -0
  235. package/dist/interfaces/i-devices.js +8 -0
  236. package/dist/interfaces/i-distro.d.ts +23 -0
  237. package/dist/interfaces/i-distro.js +8 -0
  238. package/dist/interfaces/i-drive-list.d.ts +33 -0
  239. package/dist/interfaces/i-drive-list.js +8 -0
  240. package/dist/interfaces/i-eggs-config.d.ts +32 -0
  241. package/dist/interfaces/i-eggs-config.js +8 -0
  242. package/dist/interfaces/i-excludes.d.ts +14 -0
  243. package/dist/interfaces/i-excludes.js +8 -0
  244. package/dist/interfaces/i-exec.d.ts +11 -0
  245. package/dist/interfaces/i-exec.js +8 -0
  246. package/dist/interfaces/i-initrd.d.ts +13 -0
  247. package/dist/interfaces/i-initrd.js +8 -0
  248. package/dist/interfaces/i-install.d.ts +16 -0
  249. package/dist/interfaces/i-install.js +8 -0
  250. package/dist/interfaces/i-installer.d.ts +17 -0
  251. package/dist/interfaces/i-installer.js +8 -0
  252. package/dist/interfaces/i-luks-passphrase.d.ts +11 -0
  253. package/dist/interfaces/i-luks-passphrase.js +8 -0
  254. package/dist/interfaces/i-materia.d.ts +36 -0
  255. package/dist/interfaces/i-materia.js +8 -0
  256. package/dist/interfaces/i-net.d.ts +16 -0
  257. package/dist/interfaces/i-net.js +8 -0
  258. package/dist/interfaces/i-os-release.d.ts +5 -0
  259. package/dist/interfaces/i-os-release.js +1 -0
  260. package/dist/interfaces/i-packages.d.ts +16 -0
  261. package/dist/interfaces/i-packages.js +8 -0
  262. package/dist/interfaces/i-partitions.d.ts +16 -0
  263. package/dist/interfaces/i-partitions.js +8 -0
  264. package/dist/interfaces/i-pxe.d.ts +45 -0
  265. package/dist/interfaces/i-pxe.js +1 -0
  266. package/dist/interfaces/i-remix.d.ts +21 -0
  267. package/dist/interfaces/i-remix.js +8 -0
  268. package/dist/interfaces/i-settings.d.ts +33 -0
  269. package/dist/interfaces/i-settings.js +8 -0
  270. package/dist/interfaces/i-user.d.ts +14 -0
  271. package/dist/interfaces/i-user.js +8 -0
  272. package/dist/interfaces/i-workdir.d.ts +14 -0
  273. package/dist/interfaces/i-workdir.js +8 -0
  274. package/dist/interfaces/i-xkb-model.d.ts +24 -0
  275. package/dist/interfaces/i-xkb-model.js +8 -0
  276. package/dist/interfaces/index.d.ts +26 -0
  277. package/dist/interfaces/index.js +8 -0
  278. package/dist/krill/classes/cfs.d.ts +17 -0
  279. package/dist/krill/classes/cfs.js +39 -0
  280. package/dist/krill/classes/krill_enums.d.ts +37 -0
  281. package/dist/krill/classes/krill_enums.js +41 -0
  282. package/dist/krill/classes/prepare.d/confirm.d.ts +5 -0
  283. package/dist/krill/classes/prepare.d/confirm.js +30 -0
  284. package/dist/krill/classes/prepare.d/keyboard.d.ts +14 -0
  285. package/dist/krill/classes/prepare.d/keyboard.js +62 -0
  286. package/dist/krill/classes/prepare.d/location.d.ts +17 -0
  287. package/dist/krill/classes/prepare.d/location.js +59 -0
  288. package/dist/krill/classes/prepare.d/network.d.ts +14 -0
  289. package/dist/krill/classes/prepare.d/network.js +68 -0
  290. package/dist/krill/classes/prepare.d/partitions.d.ts +14 -0
  291. package/dist/krill/classes/prepare.d/partitions.js +86 -0
  292. package/dist/krill/classes/prepare.d/summary.d.ts +15 -0
  293. package/dist/krill/classes/prepare.d/summary.js +69 -0
  294. package/dist/krill/classes/prepare.d/users.d.ts +6 -0
  295. package/dist/krill/classes/prepare.d/users.js +63 -0
  296. package/dist/krill/classes/prepare.d/welcome.d.ts +6 -0
  297. package/dist/krill/classes/prepare.d/welcome.js +30 -0
  298. package/dist/krill/classes/prepare.d.ts +89 -0
  299. package/dist/krill/classes/prepare.js +314 -0
  300. package/dist/krill/classes/sequence.d/add_user.d.ts +20 -0
  301. package/dist/krill/classes/sequence.d/add_user.js +66 -0
  302. package/dist/krill/classes/sequence.d/bootloader.d.ts +14 -0
  303. package/dist/krill/classes/sequence.d/bootloader.js +95 -0
  304. package/dist/krill/classes/sequence.d/bootloader_config.d.ts +14 -0
  305. package/dist/krill/classes/sequence.d/bootloader_config.js +165 -0
  306. package/dist/krill/classes/sequence.d/change_password.d.ts +15 -0
  307. package/dist/krill/classes/sequence.d/change_password.js +18 -0
  308. package/dist/krill/classes/sequence.d/del_live_user.d.ts +14 -0
  309. package/dist/krill/classes/sequence.d/del_live_user.js +39 -0
  310. package/dist/krill/classes/sequence.d/fstab.d.ts +14 -0
  311. package/dist/krill/classes/sequence.d/fstab.js +189 -0
  312. package/dist/krill/classes/sequence.d/grubcfg.d.ts +17 -0
  313. package/dist/krill/classes/sequence.d/grubcfg.js +33 -0
  314. package/dist/krill/classes/sequence.d/hostname.d.ts +13 -0
  315. package/dist/krill/classes/sequence.d/hostname.js +50 -0
  316. package/dist/krill/classes/sequence.d/initramfs.d.ts +13 -0
  317. package/dist/krill/classes/sequence.d/initramfs.js +54 -0
  318. package/dist/krill/classes/sequence.d/initramfs_cfg.d.ts +14 -0
  319. package/dist/krill/classes/sequence.d/initramfs_cfg.js +35 -0
  320. package/dist/krill/classes/sequence.d/locale.d.ts +13 -0
  321. package/dist/krill/classes/sequence.d/locale.js +91 -0
  322. package/dist/krill/classes/sequence.d/locale_cfg.d.ts +10 -0
  323. package/dist/krill/classes/sequence.d/locale_cfg.js +58 -0
  324. package/dist/krill/classes/sequence.d/m_keyboard.d.ts +14 -0
  325. package/dist/krill/classes/sequence.d/m_keyboard.js +58 -0
  326. package/dist/krill/classes/sequence.d/machine_id.d.ts +15 -0
  327. package/dist/krill/classes/sequence.d/machine_id.js +33 -0
  328. package/dist/krill/classes/sequence.d/mkfs.d.ts +15 -0
  329. package/dist/krill/classes/sequence.d/mkfs.js +72 -0
  330. package/dist/krill/classes/sequence.d/mount_fs.d.ts +17 -0
  331. package/dist/krill/classes/sequence.d/mount_fs.js +68 -0
  332. package/dist/krill/classes/sequence.d/mount_vfs.d.ts +17 -0
  333. package/dist/krill/classes/sequence.d/mount_vfs.js +40 -0
  334. package/dist/krill/classes/sequence.d/network_cfg.d.ts +19 -0
  335. package/dist/krill/classes/sequence.d/network_cfg.js +73 -0
  336. package/dist/krill/classes/sequence.d/packages.d.ts +14 -0
  337. package/dist/krill/classes/sequence.d/packages.js +111 -0
  338. package/dist/krill/classes/sequence.d/partition.d/bios_luks.d.ts +17 -0
  339. package/dist/krill/classes/sequence.d/partition.d/bios_luks.js +73 -0
  340. package/dist/krill/classes/sequence.d/partition.d/bios_standard.d.ts +17 -0
  341. package/dist/krill/classes/sequence.d/partition.d/bios_standard.js +36 -0
  342. package/dist/krill/classes/sequence.d/partition.d/uefi_luks.d.ts +17 -0
  343. package/dist/krill/classes/sequence.d/partition.d/uefi_luks.js +78 -0
  344. package/dist/krill/classes/sequence.d/partition.d/uefi_standard.d.ts +10 -0
  345. package/dist/krill/classes/sequence.d/partition.d/uefi_standard.js +32 -0
  346. package/dist/krill/classes/sequence.d/partition.d.ts +14 -0
  347. package/dist/krill/classes/sequence.d/partition.js +84 -0
  348. package/dist/krill/classes/sequence.d/remove_installer_link.d.ts +13 -0
  349. package/dist/krill/classes/sequence.d/remove_installer_link.js +35 -0
  350. package/dist/krill/classes/sequence.d/umount.d.ts +14 -0
  351. package/dist/krill/classes/sequence.d/umount.js +28 -0
  352. package/dist/krill/classes/sequence.d/unpackfs.d.ts +13 -0
  353. package/dist/krill/classes/sequence.d/unpackfs.js +20 -0
  354. package/dist/krill/classes/sequence.d.ts +133 -0
  355. package/dist/krill/classes/sequence.js +396 -0
  356. package/dist/krill/components/finished.d.ts +16 -0
  357. package/dist/krill/components/finished.js +56 -0
  358. package/dist/krill/components/information.d.ts +8 -0
  359. package/dist/krill/components/information.js +162 -0
  360. package/dist/krill/components/install.d.ts +15 -0
  361. package/dist/krill/components/install.js +60 -0
  362. package/dist/krill/components/keyboard.d.ts +16 -0
  363. package/dist/krill/components/keyboard.js +54 -0
  364. package/dist/krill/components/location.d.ts +16 -0
  365. package/dist/krill/components/location.js +59 -0
  366. package/dist/krill/components/network.d.ts +19 -0
  367. package/dist/krill/components/network.js +65 -0
  368. package/dist/krill/components/partitions.d.ts +18 -0
  369. package/dist/krill/components/partitions.js +89 -0
  370. package/dist/krill/components/steps.d.ts +13 -0
  371. package/dist/krill/components/steps.js +148 -0
  372. package/dist/krill/components/summary.d.ts +25 -0
  373. package/dist/krill/components/summary.js +77 -0
  374. package/dist/krill/components/title.d.ts +11 -0
  375. package/dist/krill/components/title.js +35 -0
  376. package/dist/krill/components/users.d.ts +24 -0
  377. package/dist/krill/components/users.js +80 -0
  378. package/dist/krill/components/welcome.d.ts +13 -0
  379. package/dist/krill/components/welcome.js +63 -0
  380. package/dist/krill/interfaces/i_krill.d.ts +44 -0
  381. package/dist/krill/interfaces/i_krill.js +8 -0
  382. package/dist/krill/interfaces/i_krill_config.d.ts +35 -0
  383. package/dist/krill/interfaces/i_krill_config.js +8 -0
  384. package/dist/krill/lib/get_address.d.ts +8 -0
  385. package/dist/krill/lib/get_address.js +23 -0
  386. package/dist/krill/lib/get_dns.d.ts +8 -0
  387. package/dist/krill/lib/get_dns.js +23 -0
  388. package/dist/krill/lib/get_domain.d.ts +8 -0
  389. package/dist/krill/lib/get_domain.js +23 -0
  390. package/dist/krill/lib/get_gateway.d.ts +8 -0
  391. package/dist/krill/lib/get_gateway.js +23 -0
  392. package/dist/krill/lib/get_hostname.d.ts +8 -0
  393. package/dist/krill/lib/get_hostname.js +23 -0
  394. package/dist/krill/lib/get_luks_passphrase.d.ts +8 -0
  395. package/dist/krill/lib/get_luks_passphrase.js +40 -0
  396. package/dist/krill/lib/get_netmask.d.ts +8 -0
  397. package/dist/krill/lib/get_netmask.js +23 -0
  398. package/dist/krill/lib/get_password.d.ts +8 -0
  399. package/dist/krill/lib/get_password.js +36 -0
  400. package/dist/krill/lib/get_userfullname.d.ts +8 -0
  401. package/dist/krill/lib/get_userfullname.js +23 -0
  402. package/dist/krill/lib/get_username.d.ts +8 -0
  403. package/dist/krill/lib/get_username.js +23 -0
  404. package/dist/krill/lib/select_address_type.d.ts +8 -0
  405. package/dist/krill/lib/select_address_type.js +24 -0
  406. package/dist/krill/lib/select_filesystem_type.d.ts +8 -0
  407. package/dist/krill/lib/select_filesystem_type.js +39 -0
  408. package/dist/krill/lib/select_installation_device.d.ts +8 -0
  409. package/dist/krill/lib/select_installation_device.js +40 -0
  410. package/dist/krill/lib/select_installation_mode.d.ts +9 -0
  411. package/dist/krill/lib/select_installation_mode.js +25 -0
  412. package/dist/krill/lib/select_interface.d.ts +8 -0
  413. package/dist/krill/lib/select_interface.js +24 -0
  414. package/dist/krill/lib/select_keyboard_layout.d.ts +11 -0
  415. package/dist/krill/lib/select_keyboard_layout.js +36 -0
  416. package/dist/krill/lib/select_keyboard_model.d.ts +11 -0
  417. package/dist/krill/lib/select_keyboard_model.js +34 -0
  418. package/dist/krill/lib/select_keyboard_option.d.ts +11 -0
  419. package/dist/krill/lib/select_keyboard_option.js +34 -0
  420. package/dist/krill/lib/select_keyboard_variant.d.ts +11 -0
  421. package/dist/krill/lib/select_keyboard_variant.js +35 -0
  422. package/dist/krill/lib/select_languages.d.ts +8 -0
  423. package/dist/krill/lib/select_languages.js +28 -0
  424. package/dist/krill/lib/select_regions.d.ts +8 -0
  425. package/dist/krill/lib/select_regions.js +24 -0
  426. package/dist/krill/lib/select_replaced_partition.d.ts +8 -0
  427. package/dist/krill/lib/select_replaced_partition.js +31 -0
  428. package/dist/krill/lib/select_user_swap_choice.d.ts +9 -0
  429. package/dist/krill/lib/select_user_swap_choice.js +35 -0
  430. package/dist/krill/lib/select_zones.d.ts +8 -0
  431. package/dist/krill/lib/select_zones.js +518 -0
  432. package/dist/lib/kill_me_softly.d.ts +11 -0
  433. package/dist/lib/kill_me_softly.js +61 -0
  434. package/dist/lib/utils.d.ts +42 -0
  435. package/dist/lib/utils.js +87 -0
  436. package/dist/penguins-eggs_10.1.1-0_amd64.deb +0 -0
  437. package/dist/penguins-eggs_10.1.1-0_amd64.deb.sha256 +1 -0
  438. package/package.json +25 -23
  439. package/scripts/_eggs +6 -12
  440. package/scripts/eggs.bash +1 -2
@@ -0,0 +1,143 @@
1
+ /**
2
+ * ./src/classes/users.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ import fs from 'node:fs';
9
+ import { exec } from '../lib/utils.js';
10
+ /**
11
+ *
12
+ */
13
+ export default class Users {
14
+ gecos;
15
+ gid;
16
+ hasHome;
17
+ home;
18
+ login;
19
+ password;
20
+ saveIt;
21
+ shell;
22
+ size;
23
+ uid;
24
+ constructor(login, password, uid, gid, gecos, home, shell) {
25
+ this.login = login;
26
+ this.password = password;
27
+ this.uid = uid;
28
+ this.gid = gid;
29
+ this.gecos = gecos;
30
+ this.home = home;
31
+ this.shell = shell;
32
+ this.size = 0;
33
+ this.hasHome = false;
34
+ this.saveIt = false;
35
+ }
36
+ /**
37
+ * getSize
38
+ * @param verbose
39
+ */
40
+ async getValues() {
41
+ const fLevels = [
42
+ { path: 'bin', saveIt: false },
43
+ { path: 'boot', saveIt: false },
44
+ { path: 'dev', saveIt: false },
45
+ { path: 'etc', saveIt: false },
46
+ { path: 'lib', saveIt: false },
47
+ { path: 'lib32,', saveIt: false },
48
+ { path: 'libx32', saveIt: false },
49
+ { path: 'lib64', saveIt: false },
50
+ { path: 'home', saveIt: true },
51
+ { path: 'media', saveIt: false },
52
+ { path: 'mnt', saveIt: false },
53
+ { path: 'opt', saveIt: true },
54
+ { path: 'proc', saveIt: false },
55
+ { path: 'root', saveIt: false },
56
+ { path: 'run', saveIt: false },
57
+ { path: 'sbin', saveIt: false },
58
+ { path: 'sys', saveIt: false },
59
+ { path: 'srv', saveIt: true },
60
+ { path: 'tmp', saveIt: false },
61
+ { path: 'usr', saveIt: true },
62
+ { path: 'var', saveIt: true }
63
+ ];
64
+ let hasHome = false;
65
+ let saveIt = false;
66
+ let size = 0;
67
+ // Only users not services
68
+ if (Number.parseInt(this.uid) >= 1000) {
69
+ if (this.home != undefined) {
70
+ /**
71
+ * analyze firstLevel and
72
+ * excluded to be saved
73
+ */
74
+ const fLevel = this.home.split('/')[1];
75
+ for (const fLevel_ of fLevels) {
76
+ if (fLevel_.path === fLevel) {
77
+ saveIt = fLevel_.saveIt;
78
+ }
79
+ }
80
+ /**
81
+ * analize second level
82
+ * examples: /var/run, /var/cache, /var/spool, etc
83
+ */
84
+ if (saveIt) {
85
+ const sLevel = this.home.split('/')[2];
86
+ if (sLevel === 'cache' || sLevel === 'run' || sLevel === 'spool') {
87
+ saveIt = false;
88
+ }
89
+ }
90
+ /**
91
+ * exclude to save if home don't exist
92
+ */
93
+ if (!fs.existsSync(this.home)) {
94
+ saveIt = false;
95
+ }
96
+ /**
97
+ * others motivations to exclude
98
+ */
99
+ if (saveIt) {
100
+ switch (this.home) {
101
+ /**
102
+ * exclude always /
103
+ */
104
+ case '/': {
105
+ break;
106
+ }
107
+ /**
108
+ * excludes: under /usr
109
+ */
110
+ case '/usr/bin':
111
+ case '/usr/sbin': {
112
+ saveIt = false;
113
+ break;
114
+ }
115
+ /**
116
+ * excludes: under var
117
+ */
118
+ case '/var/backups':
119
+ case '/var/lib/colord':
120
+ case '/var/lib/geoclue':
121
+ case '/var/lib/misc':
122
+ case '/var/mail': {
123
+ saveIt = false;
124
+ break;
125
+ }
126
+ default: {
127
+ if (fs.existsSync(this.home)) {
128
+ hasHome = true;
129
+ const sizeUser = await exec(` du --block-size=1 --summarize ${this.home} | awk '{print $1}'`, { capture: true, echo: false, ignore: false });
130
+ size = Number.parseInt(sizeUser.data);
131
+ }
132
+ saveIt = true;
133
+ break;
134
+ }
135
+ }
136
+ }
137
+ }
138
+ this.saveIt = saveIt;
139
+ this.size = size;
140
+ this.hasHome = hasHome;
141
+ }
142
+ }
143
+ }
@@ -0,0 +1,41 @@
1
+ /**
2
+ * ./src/classes/utils.d/architecture.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * Architecture detection utilities - UEFI, arch-specific paths
5
+ * author: Piero Proietti
6
+ * email: piero.proietti@gmail.com
7
+ * license: MIT
8
+ */
9
+ export default class Architecture {
10
+ /**
11
+ * Return true if i686 architecture
12
+ * @remarks to move in Utils
13
+ * @returns {boolean} true se l'architettura è i686
14
+ */
15
+ static isi686(): boolean;
16
+ /**
17
+ * uefiArch
18
+ * @returns arch
19
+ */
20
+ static uefiArch(): string;
21
+ /**
22
+ * i386-pc,
23
+ * i386-efi,
24
+ * x86_64-efi,
25
+ * arm64-efi,
26
+ *
27
+ * ATTEMZIONE: install efibootmgr
28
+ *
29
+ * Fedora/RHEL have i386-pc
30
+ */
31
+ static uefiFormat(): string;
32
+ /**
33
+ *
34
+ * @returns
35
+ */
36
+ static usrLibPath(): string;
37
+ /**
38
+ * get the kernel version
39
+ */
40
+ static kernelVersion(): string;
41
+ }
@@ -0,0 +1,87 @@
1
+ /**
2
+ * ./src/classes/utils.d/architecture.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * Architecture detection utilities - UEFI, arch-specific paths
5
+ * author: Piero Proietti
6
+ * email: piero.proietti@gmail.com
7
+ * license: MIT
8
+ */
9
+ import shx from 'shelljs';
10
+ import os from 'os';
11
+ export default class Architecture {
12
+ /**
13
+ * Return true if i686 architecture
14
+ * @remarks to move in Utils
15
+ * @returns {boolean} true se l'architettura è i686
16
+ */
17
+ static isi686() {
18
+ return process.arch === 'ia32';
19
+ }
20
+ /**
21
+ * uefiArch
22
+ * @returns arch
23
+ */
24
+ static uefiArch() {
25
+ let arch = '';
26
+ if (process.arch === 'ia32') {
27
+ arch = 'i386';
28
+ //
29
+ if (shx.exec('uname -m', { silent: true }).stdout.trim() === 'x86_64') {
30
+ arch = 'amd64';
31
+ }
32
+ }
33
+ else if (process.arch === 'x64') {
34
+ arch = 'amd64';
35
+ }
36
+ else if (process.arch === 'arm64') {
37
+ arch = 'arm64';
38
+ }
39
+ return arch;
40
+ }
41
+ /**
42
+ * i386-pc,
43
+ * i386-efi,
44
+ * x86_64-efi,
45
+ * arm64-efi,
46
+ *
47
+ * ATTEMZIONE: install efibootmgr
48
+ *
49
+ * Fedora/RHEL have i386-pc
50
+ */
51
+ static uefiFormat() {
52
+ let format = '';
53
+ if (process.arch === 'ia32') {
54
+ format = 'i386-efi';
55
+ if (shx.exec('uname -m', { silent: true }).stdout.trim() === 'x86_64') {
56
+ format = 'x86_64-efi';
57
+ }
58
+ }
59
+ else if (process.arch === 'x64') {
60
+ format = 'x86_64-efi';
61
+ }
62
+ else if (process.arch === 'arm64') {
63
+ format = 'arm64-efi';
64
+ }
65
+ return format;
66
+ }
67
+ /**
68
+ *
69
+ * @returns
70
+ */
71
+ static usrLibPath() {
72
+ let path = '';
73
+ if (process.arch === 'x64') {
74
+ path = 'x86_64-linux-gnu';
75
+ }
76
+ else if (process.arch === 'arm64') {
77
+ path = 'aarch64-linux-gnu';
78
+ }
79
+ return path;
80
+ }
81
+ /**
82
+ * get the kernel version
83
+ */
84
+ static kernelVersion() {
85
+ return os.release();
86
+ }
87
+ }
@@ -0,0 +1,26 @@
1
+ /**
2
+ * ./src/classes/utils.d/console-output.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * Console output utilities - colored output, titles, warnings, errors
5
+ * author: Piero Proietti
6
+ * email: piero.proietti@gmail.com
7
+ * license: MIT
8
+ */
9
+ export default class ConsoleOutput {
10
+ /**
11
+ *
12
+ * @param msg
13
+ */
14
+ static warning(msg?: string): void;
15
+ static error(msg?: string): void;
16
+ /**
17
+ * titles
18
+ * Penguin's are gettings alive!
19
+ */
20
+ static titles(command?: string): void;
21
+ /**
22
+ *
23
+ * @returns flag
24
+ */
25
+ static flag(): string;
26
+ }
@@ -0,0 +1,46 @@
1
+ /**
2
+ * ./src/classes/utils.d/console-output.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * Console output utilities - colored output, titles, warnings, errors
5
+ * author: Piero Proietti
6
+ * email: piero.proietti@gmail.com
7
+ * license: MIT
8
+ */
9
+ import chalk from 'chalk';
10
+ // pjson
11
+ import { createRequire } from 'module';
12
+ const require = createRequire(import.meta.url);
13
+ const pjson = require('../../../package.json');
14
+ export default class ConsoleOutput {
15
+ /**
16
+ *
17
+ * @param msg
18
+ */
19
+ static warning(msg = '') {
20
+ console.log(pjson.shortName + ' >>> ' + chalk.cyanBright(msg) + '.');
21
+ }
22
+ static error(msg = '') {
23
+ console.error(pjson.shortName + ' >>> ' + chalk.bgMagentaBright(chalk.whiteBright(msg)) + '.');
24
+ }
25
+ /**
26
+ * titles
27
+ * Penguin's are gettings alive!
28
+ */
29
+ static titles(command = '') {
30
+ console.clear();
31
+ console.log('');
32
+ console.log(' E G G S: the reproductive system of penguins');
33
+ console.log('');
34
+ console.log(ConsoleOutput.flag());
35
+ console.log('command: ' + chalk.bgBlack.white(command) + '\n');
36
+ }
37
+ /**
38
+ *
39
+ * @returns flag
40
+ */
41
+ static flag() {
42
+ return chalk.bgGreen.whiteBright(' ' + pjson.name + ' ') +
43
+ chalk.bgWhite.blue(" Perri's Brewery edition ") +
44
+ chalk.bgRed.whiteBright(' ver. ' + pjson.version + ' ');
45
+ }
46
+ }
@@ -0,0 +1,53 @@
1
+ /**
2
+ * ./src/classes/utils.d/filesystem.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * Filesystem operations utilities - files, UUID, disk space
5
+ * author: Piero Proietti
6
+ * email: piero.proietti@gmail.com
7
+ * license: MIT
8
+ */
9
+ import IOsRelease from '../../interfaces/i-os-release.js';
10
+ export default class Filesystem {
11
+ /**
12
+ *
13
+ * @param file
14
+ * @param search
15
+ * @returns value
16
+ */
17
+ static searchOnFile(file?: string, search?: string): string;
18
+ /**
19
+ * restituisce uuid
20
+ * @param device
21
+ */
22
+ static uuid(device: string): string;
23
+ /**
24
+ *
25
+ * @param device
26
+ * @returns
27
+ */
28
+ static uuidGen(): string;
29
+ /**
30
+ * Calculate the space used on the disk
31
+ * @return {void}
32
+ */
33
+ static getUsedSpace(): number;
34
+ /**
35
+ * write a file
36
+ * @param file
37
+ * @param text
38
+ */
39
+ static write(file: string, text: string): void;
40
+ /**
41
+ *
42
+ * @param file
43
+ * @param cmd
44
+ */
45
+ static writeX(file: string, cmd: string): void;
46
+ /**
47
+ *
48
+ * @param file
49
+ * @param cmd
50
+ */
51
+ static writeXs(file: string, cmds: string[]): void;
52
+ static getOsRelease(): IOsRelease;
53
+ }
@@ -0,0 +1,152 @@
1
+ /**
2
+ * ./src/classes/utils.d/filesystem.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * Filesystem operations utilities - files, UUID, disk space
5
+ * author: Piero Proietti
6
+ * email: piero.proietti@gmail.com
7
+ * license: MIT
8
+ */
9
+ import fs from 'fs';
10
+ import path from 'path';
11
+ import shx from 'shelljs';
12
+ import System from './system.js';
13
+ import Formatters from './formatters.js';
14
+ import PackageInfo from './package-info.js';
15
+ export default class Filesystem {
16
+ /**
17
+ *
18
+ * @param file
19
+ * @param search
20
+ * @returns value
21
+ */
22
+ static searchOnFile(file = '', search = '') {
23
+ const lines = fs.readFileSync(file, 'utf8').split("\n");
24
+ let value = '';
25
+ lines.forEach(line => {
26
+ line = line.replace(/\s+/g, ' '); // Remove multiple spaces with single space
27
+ if (line.includes(search)) {
28
+ value = line.substring(line.indexOf('=') + 1);
29
+ }
30
+ });
31
+ value = value.replaceAll('"', ''); // Remove "
32
+ return value.trim();
33
+ }
34
+ /**
35
+ * restituisce uuid
36
+ * @param device
37
+ */
38
+ static uuid(device) {
39
+ const uuid = shx.exec(`blkid -s UUID -o value ${device}`).stdout.trim();
40
+ return uuid;
41
+ }
42
+ /**
43
+ *
44
+ * @param device
45
+ * @returns
46
+ */
47
+ static uuidGen() {
48
+ const uuid = shx.exec(`uuidgen`, { silent: true }).stdout.trim();
49
+ return uuid;
50
+ }
51
+ /**
52
+ * Calculate the space used on the disk
53
+ * @return {void}
54
+ */
55
+ static getUsedSpace() {
56
+ let fileSizeInBytes = 0;
57
+ if (System.isLive()) {
58
+ fileSizeInBytes = 0; // this.getLiveRootSpace()
59
+ }
60
+ else {
61
+ fileSizeInBytes = Number(shx.exec(`df /home | /usr/bin/awk 'NR==2 {print $3}'`, {
62
+ silent: true
63
+ }).stdout);
64
+ }
65
+ return fileSizeInBytes;
66
+ }
67
+ /**
68
+ * write a file
69
+ * @param file
70
+ * @param text
71
+ */
72
+ static write(file, text) {
73
+ text = text.trim() + '\n';
74
+ file = file.trim();
75
+ fs.writeFileSync(file, text);
76
+ }
77
+ /**
78
+ *
79
+ * @param file
80
+ * @param cmd
81
+ */
82
+ static writeX(file, cmd) {
83
+ let text = `#!/bin/sh\n\n`;
84
+ text += `# Created at: ${Formatters.formatDate(new Date())}\n`;
85
+ text += `# By: penguins_eggs v. ${PackageInfo.getPackageVersion()}\n`;
86
+ text += `# ==> Perri\'s Brewery edition <== \n\n`;
87
+ text += cmd;
88
+ Filesystem.write(file, text);
89
+ shx.chmod('+x', file);
90
+ }
91
+ /**
92
+ *
93
+ * @param file
94
+ * @param cmd
95
+ */
96
+ static writeXs(file, cmds) {
97
+ let cmd = '';
98
+ for (const elem of cmds) {
99
+ cmd += elem + '\n';
100
+ }
101
+ Filesystem.writeX(file, cmd);
102
+ }
103
+ // Se il metodo fa parte di una classe, usa `static`. Altrimenti, rimuovilo.
104
+ static getOsRelease() {
105
+ const osReleasePath = path.join('/etc', 'os-release');
106
+ // Inizializza l'oggetto con valori predefiniti
107
+ const osInfo = {
108
+ ID: '',
109
+ VERSION_ID: '',
110
+ VERSION_CODENAME: 'n/a'
111
+ };
112
+ // Verifica se il file esiste
113
+ if (!fs.existsSync(osReleasePath)) {
114
+ console.error('/etc/os-release file does not exist.');
115
+ return osInfo;
116
+ }
117
+ // Leggi il contenuto del file
118
+ let fileContent;
119
+ try {
120
+ fileContent = fs.readFileSync(osReleasePath, 'utf8');
121
+ }
122
+ catch (error) {
123
+ console.error('Error reading /etc/os-release:', error);
124
+ return osInfo;
125
+ }
126
+ // Analizza ogni linea
127
+ const lines = fileContent.split('\n');
128
+ lines.forEach(line => {
129
+ if (line.startsWith('#') || line.trim() === '')
130
+ return;
131
+ const [key, value] = line.split('=');
132
+ if (key && value) {
133
+ const trimmedKey = key.trim();
134
+ const trimmedValue = value.trim().replace(/"/g, '');
135
+ // Popola solo le chiavi desiderate
136
+ if (trimmedKey === 'ID') {
137
+ osInfo.ID = trimmedValue;
138
+ }
139
+ else if (trimmedKey === 'VERSION_ID') {
140
+ osInfo.VERSION_ID = trimmedValue;
141
+ }
142
+ else if (trimmedKey === 'VERSION_CODENAME') {
143
+ osInfo.VERSION_CODENAME = trimmedValue;
144
+ }
145
+ }
146
+ });
147
+ // capitalize distroId
148
+ osInfo.ID = osInfo.ID[0].toUpperCase() + osInfo.ID.slice(1).toLowerCase();
149
+ osInfo.VERSION_CODENAME = osInfo.VERSION_CODENAME.toLowerCase();
150
+ return osInfo;
151
+ }
152
+ }
@@ -0,0 +1,32 @@
1
+ /**
2
+ * ./src/classes/utils.d/formatters.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * Formatting utilities - dates, bytes, objects
5
+ * author: Piero Proietti
6
+ * email: piero.proietti@gmail.com
7
+ * license: MIT
8
+ */
9
+ export default class Formatters {
10
+ /**
11
+ * Custom function to sort object keys
12
+ * @param obj
13
+ * @returns
14
+ */
15
+ static sortObjectKeys(obj: {
16
+ [key: string]: any;
17
+ }): {
18
+ [key: string]: any;
19
+ };
20
+ /**
21
+ *
22
+ * @param date
23
+ */
24
+ static formatDate(date: Date): string;
25
+ /**
26
+ *
27
+ * @param bytes
28
+ * @param decimals
29
+ * @returns
30
+ */
31
+ static formatBytes(bytes: number, decimals?: number): string;
32
+ }
@@ -0,0 +1,64 @@
1
+ /**
2
+ * ./src/classes/utils.d/formatters.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * Formatting utilities - dates, bytes, objects
5
+ * author: Piero Proietti
6
+ * email: piero.proietti@gmail.com
7
+ * license: MIT
8
+ */
9
+ export default class Formatters {
10
+ /**
11
+ * Custom function to sort object keys
12
+ * @param obj
13
+ * @returns
14
+ */
15
+ static sortObjectKeys(obj) {
16
+ const sorted = {};
17
+ Object.keys(obj)
18
+ .sort()
19
+ .forEach(key => {
20
+ sorted[key] = obj[key];
21
+ });
22
+ return sorted;
23
+ }
24
+ /**
25
+ *
26
+ * @param date
27
+ */
28
+ static formatDate(date) {
29
+ const d = new Date(date);
30
+ let month = String(d.getMonth() + 1);
31
+ let day = String(d.getDate());
32
+ const year = d.getFullYear();
33
+ let hh = String(d.getHours());
34
+ let mm = String(d.getMinutes());
35
+ if (month.length < 2) {
36
+ month = '0' + month;
37
+ }
38
+ if (day.length < 2) {
39
+ day = '0' + day;
40
+ }
41
+ if (hh.length < 2) {
42
+ hh = '0' + hh;
43
+ }
44
+ if (mm.length < 2) {
45
+ mm = '0' + mm;
46
+ }
47
+ return [year, month, day].join('-') + '_' + hh + mm;
48
+ }
49
+ /**
50
+ *
51
+ * @param bytes
52
+ * @param decimals
53
+ * @returns
54
+ */
55
+ static formatBytes(bytes, decimals = 2) {
56
+ if (bytes === 0)
57
+ return '0 Bytes';
58
+ const k = 1024;
59
+ const dm = decimals < 0 ? 0 : decimals;
60
+ const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
61
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
62
+ return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + sizes[i];
63
+ }
64
+ }