cyberia 2.8.885

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 (525) hide show
  1. package/.dockerignore +15 -0
  2. package/.env.development +45 -0
  3. package/.env.production +50 -0
  4. package/.env.test +45 -0
  5. package/.github/workflows/engine-cyberia.cd.yml +31 -0
  6. package/.github/workflows/engine-cyberia.ci.yml +60 -0
  7. package/.github/workflows/ghpkg.ci.yml +87 -0
  8. package/.github/workflows/npmpkg.ci.yml +72 -0
  9. package/.github/workflows/publish.ci.yml +84 -0
  10. package/.github/workflows/publish.cyberia.ci.yml +84 -0
  11. package/.github/workflows/pwa-microservices-template-page.cd.yml +72 -0
  12. package/.github/workflows/pwa-microservices-template-test.ci.yml +33 -0
  13. package/.github/workflows/release.cd.yml +37 -0
  14. package/.nycrc +9 -0
  15. package/.prettierignore +13 -0
  16. package/.prettierrc +9 -0
  17. package/.vscode/extensions.json +51 -0
  18. package/.vscode/settings.json +87 -0
  19. package/AUTHORS.md +21 -0
  20. package/CHANGELOG.md +205 -0
  21. package/Dockerfile +28 -0
  22. package/LICENSE +21 -0
  23. package/README.md +85 -0
  24. package/bin/build.js +209 -0
  25. package/bin/cron.js +47 -0
  26. package/bin/cyberia.js +145 -0
  27. package/bin/db.js +199 -0
  28. package/bin/deploy.js +1293 -0
  29. package/bin/file.js +197 -0
  30. package/bin/hwt.js +49 -0
  31. package/bin/index.js +145 -0
  32. package/bin/ssl.js +63 -0
  33. package/bin/util.js +80 -0
  34. package/bin/vs.js +74 -0
  35. package/cli.md +714 -0
  36. package/conf.js +204 -0
  37. package/deployment.yaml +138 -0
  38. package/jsconfig.json +7 -0
  39. package/jsdoc.json +32 -0
  40. package/manifests/deployment/adminer/deployment.yaml +32 -0
  41. package/manifests/deployment/adminer/kustomization.yaml +7 -0
  42. package/manifests/deployment/adminer/service.yaml +13 -0
  43. package/manifests/deployment/dd-default-development/deployment.yaml +167 -0
  44. package/manifests/deployment/dd-default-development/proxy.yaml +46 -0
  45. package/manifests/deployment/dd-test-development/deployment.yaml +174 -0
  46. package/manifests/deployment/dd-test-development/proxy.yaml +51 -0
  47. package/manifests/deployment/fastapi/backend-deployment.yml +120 -0
  48. package/manifests/deployment/fastapi/backend-service.yml +19 -0
  49. package/manifests/deployment/fastapi/frontend-deployment.yml +54 -0
  50. package/manifests/deployment/fastapi/frontend-service.yml +15 -0
  51. package/manifests/deployment/fastapi/initial_data.sh +56 -0
  52. package/manifests/deployment/kafka/deployment.yaml +69 -0
  53. package/manifests/deployment/mongo-express/deployment.yaml +60 -0
  54. package/manifests/deployment/phpmyadmin/deployment.yaml +54 -0
  55. package/manifests/deployment/spark/spark-pi-py.yaml +21 -0
  56. package/manifests/deployment/tensorflow/tf-gpu-test.yaml +65 -0
  57. package/manifests/envoy-service-nodeport.yaml +23 -0
  58. package/manifests/grafana/deployment.yaml +57 -0
  59. package/manifests/grafana/kustomization.yaml +7 -0
  60. package/manifests/grafana/pvc.yaml +12 -0
  61. package/manifests/grafana/service.yaml +14 -0
  62. package/manifests/kind-config-dev.yaml +12 -0
  63. package/manifests/kind-config.yaml +12 -0
  64. package/manifests/kubeadm-calico-config.yaml +119 -0
  65. package/manifests/kubelet-config.yaml +65 -0
  66. package/manifests/letsencrypt-prod.yaml +15 -0
  67. package/manifests/lxd/lxd-admin-profile.yaml +17 -0
  68. package/manifests/lxd/lxd-preseed.yaml +30 -0
  69. package/manifests/lxd/underpost-setup.sh +163 -0
  70. package/manifests/mariadb/config.yaml +10 -0
  71. package/manifests/mariadb/kustomization.yaml +9 -0
  72. package/manifests/mariadb/pv.yaml +12 -0
  73. package/manifests/mariadb/pvc.yaml +10 -0
  74. package/manifests/mariadb/secret.yaml +8 -0
  75. package/manifests/mariadb/service.yaml +10 -0
  76. package/manifests/mariadb/statefulset.yaml +56 -0
  77. package/manifests/mariadb/storage-class.yaml +10 -0
  78. package/manifests/mongodb/backup-access.yaml +16 -0
  79. package/manifests/mongodb/backup-cronjob.yaml +42 -0
  80. package/manifests/mongodb/backup-pv-pvc.yaml +22 -0
  81. package/manifests/mongodb/configmap.yaml +26 -0
  82. package/manifests/mongodb/headless-service.yaml +10 -0
  83. package/manifests/mongodb/kustomization.yaml +11 -0
  84. package/manifests/mongodb/pv-pvc.yaml +23 -0
  85. package/manifests/mongodb/statefulset.yaml +126 -0
  86. package/manifests/mongodb/storage-class.yaml +9 -0
  87. package/manifests/mongodb-4.4/kustomization.yaml +7 -0
  88. package/manifests/mongodb-4.4/pv-pvc.yaml +23 -0
  89. package/manifests/mongodb-4.4/service-deployment.yaml +63 -0
  90. package/manifests/mysql/kustomization.yaml +7 -0
  91. package/manifests/mysql/pv-pvc.yaml +27 -0
  92. package/manifests/mysql/statefulset.yaml +55 -0
  93. package/manifests/postgresql/configmap.yaml +9 -0
  94. package/manifests/postgresql/kustomization.yaml +10 -0
  95. package/manifests/postgresql/pv.yaml +15 -0
  96. package/manifests/postgresql/pvc.yaml +13 -0
  97. package/manifests/postgresql/service.yaml +10 -0
  98. package/manifests/postgresql/statefulset.yaml +37 -0
  99. package/manifests/prometheus/deployment.yaml +82 -0
  100. package/manifests/valkey/kustomization.yaml +7 -0
  101. package/manifests/valkey/service.yaml +11 -0
  102. package/manifests/valkey/statefulset.yaml +38 -0
  103. package/nodemon.json +6 -0
  104. package/package.json +118 -0
  105. package/proxy.yaml +35 -0
  106. package/scripts/device-scan.sh +43 -0
  107. package/scripts/gpu-diag.sh +19 -0
  108. package/scripts/maas-setup.sh +120 -0
  109. package/scripts/nat-iptables.sh +26 -0
  110. package/scripts/nvim.sh +91 -0
  111. package/scripts/snap-clean.sh +26 -0
  112. package/scripts/ssh-cluster-info.sh +14 -0
  113. package/scripts/ssl.sh +164 -0
  114. package/src/api/blockchain/blockchain.controller.js +51 -0
  115. package/src/api/blockchain/blockchain.model.js +90 -0
  116. package/src/api/blockchain/blockchain.router.js +21 -0
  117. package/src/api/blockchain/blockchain.service.js +24 -0
  118. package/src/api/core/core.controller.js +69 -0
  119. package/src/api/core/core.model.js +11 -0
  120. package/src/api/core/core.router.js +24 -0
  121. package/src/api/core/core.service.js +35 -0
  122. package/src/api/crypto/crypto.controller.js +51 -0
  123. package/src/api/crypto/crypto.model.js +23 -0
  124. package/src/api/crypto/crypto.router.js +20 -0
  125. package/src/api/crypto/crypto.service.js +64 -0
  126. package/src/api/default/default.controller.js +74 -0
  127. package/src/api/default/default.model.js +20 -0
  128. package/src/api/default/default.router.js +27 -0
  129. package/src/api/default/default.service.js +40 -0
  130. package/src/api/document/document.controller.js +66 -0
  131. package/src/api/document/document.model.js +51 -0
  132. package/src/api/document/document.router.js +24 -0
  133. package/src/api/document/document.service.js +133 -0
  134. package/src/api/file/file.controller.js +67 -0
  135. package/src/api/file/file.model.js +19 -0
  136. package/src/api/file/file.router.js +22 -0
  137. package/src/api/file/file.service.js +100 -0
  138. package/src/api/instance/instance.controller.js +69 -0
  139. package/src/api/instance/instance.model.js +40 -0
  140. package/src/api/instance/instance.router.js +34 -0
  141. package/src/api/instance/instance.service.js +70 -0
  142. package/src/api/ipfs/ipfs.controller.js +51 -0
  143. package/src/api/ipfs/ipfs.model.js +17 -0
  144. package/src/api/ipfs/ipfs.router.js +20 -0
  145. package/src/api/ipfs/ipfs.service.js +25 -0
  146. package/src/api/object-layer/README.md +85 -0
  147. package/src/api/object-layer/object-layer.controller.js +69 -0
  148. package/src/api/object-layer/object-layer.model.js +181 -0
  149. package/src/api/object-layer/object-layer.router.js +29 -0
  150. package/src/api/object-layer/object-layer.service.js +49 -0
  151. package/src/api/test/test.controller.js +59 -0
  152. package/src/api/test/test.model.js +14 -0
  153. package/src/api/test/test.router.js +21 -0
  154. package/src/api/test/test.service.js +35 -0
  155. package/src/api/user/postman_collection.json +216 -0
  156. package/src/api/user/user.build.js +16 -0
  157. package/src/api/user/user.controller.js +35 -0
  158. package/src/api/user/user.model.js +100 -0
  159. package/src/api/user/user.router.js +400 -0
  160. package/src/api/user/user.service.js +500 -0
  161. package/src/api.js +23 -0
  162. package/src/cli/baremetal.js +1310 -0
  163. package/src/cli/cloud-init.js +548 -0
  164. package/src/cli/cluster.js +834 -0
  165. package/src/cli/cron.js +95 -0
  166. package/src/cli/db.js +414 -0
  167. package/src/cli/deploy.js +661 -0
  168. package/src/cli/env.js +101 -0
  169. package/src/cli/fs.js +256 -0
  170. package/src/cli/image.js +156 -0
  171. package/src/cli/index.js +436 -0
  172. package/src/cli/lxd.js +402 -0
  173. package/src/cli/monitor.js +260 -0
  174. package/src/cli/repository.js +274 -0
  175. package/src/cli/run.js +728 -0
  176. package/src/cli/script.js +85 -0
  177. package/src/cli/secrets.js +71 -0
  178. package/src/cli/ssh.js +46 -0
  179. package/src/cli/test.js +159 -0
  180. package/src/client/Cyberia.index.js +50 -0
  181. package/src/client/CyberiaAdmin.index.js +34 -0
  182. package/src/client/CyberiaPortal.index.js +36 -0
  183. package/src/client/Default.index.js +84 -0
  184. package/src/client/components/core/404.js +20 -0
  185. package/src/client/components/core/500.js +20 -0
  186. package/src/client/components/core/Account.js +326 -0
  187. package/src/client/components/core/AgGrid.js +191 -0
  188. package/src/client/components/core/Alert.js +77 -0
  189. package/src/client/components/core/Auth.js +342 -0
  190. package/src/client/components/core/Badge.js +32 -0
  191. package/src/client/components/core/Blockchain.js +41 -0
  192. package/src/client/components/core/Blog.js +9 -0
  193. package/src/client/components/core/BtnIcon.js +111 -0
  194. package/src/client/components/core/CalendarCore.js +464 -0
  195. package/src/client/components/core/Chat.js +64 -0
  196. package/src/client/components/core/ColorPalette.js +5267 -0
  197. package/src/client/components/core/CommonJs.js +1010 -0
  198. package/src/client/components/core/Content.js +196 -0
  199. package/src/client/components/core/Css.js +1099 -0
  200. package/src/client/components/core/CssCore.js +882 -0
  201. package/src/client/components/core/D3Chart.js +44 -0
  202. package/src/client/components/core/Docs.js +376 -0
  203. package/src/client/components/core/DropDown.js +223 -0
  204. package/src/client/components/core/EventsUI.js +133 -0
  205. package/src/client/components/core/FileExplorer.js +707 -0
  206. package/src/client/components/core/FullScreen.js +36 -0
  207. package/src/client/components/core/Input.js +383 -0
  208. package/src/client/components/core/JoyStick.js +80 -0
  209. package/src/client/components/core/Keyboard.js +73 -0
  210. package/src/client/components/core/LoadingAnimation.js +159 -0
  211. package/src/client/components/core/LogIn.js +190 -0
  212. package/src/client/components/core/LogOut.js +63 -0
  213. package/src/client/components/core/Logger.js +29 -0
  214. package/src/client/components/core/Modal.js +2494 -0
  215. package/src/client/components/core/NotificationManager.js +84 -0
  216. package/src/client/components/core/ObjectLayerEngine.js +1229 -0
  217. package/src/client/components/core/ObjectLayerEngineModal.js +443 -0
  218. package/src/client/components/core/Pagination.js +207 -0
  219. package/src/client/components/core/Panel.js +772 -0
  220. package/src/client/components/core/PanelForm.js +627 -0
  221. package/src/client/components/core/Polyhedron.js +162 -0
  222. package/src/client/components/core/Recover.js +207 -0
  223. package/src/client/components/core/Responsive.js +82 -0
  224. package/src/client/components/core/RichText.js +43 -0
  225. package/src/client/components/core/Router.js +317 -0
  226. package/src/client/components/core/Scroll.js +76 -0
  227. package/src/client/components/core/SignUp.js +125 -0
  228. package/src/client/components/core/SocketIo.js +74 -0
  229. package/src/client/components/core/Stream.js +113 -0
  230. package/src/client/components/core/ToggleSwitch.js +101 -0
  231. package/src/client/components/core/ToolTip.js +90 -0
  232. package/src/client/components/core/Translate.js +522 -0
  233. package/src/client/components/core/Validator.js +115 -0
  234. package/src/client/components/core/VanillaJs.js +423 -0
  235. package/src/client/components/core/Wallet.js +106 -0
  236. package/src/client/components/core/WebComponent.js +44 -0
  237. package/src/client/components/core/Webhook.js +25 -0
  238. package/src/client/components/core/Worker.js +371 -0
  239. package/src/client/components/core/windowGetDimensions.js +269 -0
  240. package/src/client/components/cyberia/BagCyberia.js +1253 -0
  241. package/src/client/components/cyberia/BiomeCyberia.js +130 -0
  242. package/src/client/components/cyberia/CharacterCyberia.js +321 -0
  243. package/src/client/components/cyberia/CommonCyberia.js +1834 -0
  244. package/src/client/components/cyberia/CssCyberia.js +816 -0
  245. package/src/client/components/cyberia/ElementPreviewCyberia.js +183 -0
  246. package/src/client/components/cyberia/ElementsCyberia.js +146 -0
  247. package/src/client/components/cyberia/InteractionPanelCyberia.js +1043 -0
  248. package/src/client/components/cyberia/JoyStickCyberia.js +53 -0
  249. package/src/client/components/cyberia/LogInCyberia.js +68 -0
  250. package/src/client/components/cyberia/LogOutCyberia.js +24 -0
  251. package/src/client/components/cyberia/MainUserCyberia.js +424 -0
  252. package/src/client/components/cyberia/MapCyberia.js +160 -0
  253. package/src/client/components/cyberia/MatrixCyberia.js +147 -0
  254. package/src/client/components/cyberia/MenuCyberia.js +575 -0
  255. package/src/client/components/cyberia/PixiCyberia.js +1639 -0
  256. package/src/client/components/cyberia/PointAndClickMovementCyberia.js +146 -0
  257. package/src/client/components/cyberia/QuestCyberia.js +1420 -0
  258. package/src/client/components/cyberia/RoutesCyberia.js +47 -0
  259. package/src/client/components/cyberia/SettingsCyberia.js +16 -0
  260. package/src/client/components/cyberia/SignUpCyberia.js +14 -0
  261. package/src/client/components/cyberia/SkillCyberia.js +124 -0
  262. package/src/client/components/cyberia/SocketIoCyberia.js +211 -0
  263. package/src/client/components/cyberia/TileCyberia.js +685 -0
  264. package/src/client/components/cyberia/TranslateCyberia.js +96 -0
  265. package/src/client/components/cyberia/UniverseCyberia.js +14 -0
  266. package/src/client/components/cyberia/WebhookCyberia.js +13 -0
  267. package/src/client/components/cyberia/WikiCyberia.js +144 -0
  268. package/src/client/components/cyberia/WorldCyberia.js +680 -0
  269. package/src/client/components/cyberia-admin/BiomeCyberiaAdmin.js +978 -0
  270. package/src/client/components/cyberia-admin/CommonCyberiaAdmin.js +29 -0
  271. package/src/client/components/cyberia-admin/CssCyberiaAdmin.js +15 -0
  272. package/src/client/components/cyberia-admin/ElementsCyberiaAdmin.js +38 -0
  273. package/src/client/components/cyberia-admin/InstanceEngineCyberiaAdmin.js +180 -0
  274. package/src/client/components/cyberia-admin/LogInCyberiaAdmin.js +34 -0
  275. package/src/client/components/cyberia-admin/LogOutCyberiaAdmin.js +24 -0
  276. package/src/client/components/cyberia-admin/MenuCyberiaAdmin.js +660 -0
  277. package/src/client/components/cyberia-admin/RoutesCyberiaAdmin.js +57 -0
  278. package/src/client/components/cyberia-admin/ServerCyberiaAdmin.js +129 -0
  279. package/src/client/components/cyberia-admin/SettingsCyberiaAdmin.js +16 -0
  280. package/src/client/components/cyberia-admin/SignUpCyberiaAdmin.js +11 -0
  281. package/src/client/components/cyberia-admin/SocketIoCyberiaAdmin.js +53 -0
  282. package/src/client/components/cyberia-admin/TranslateCyberiaAdmin.js +7 -0
  283. package/src/client/components/cyberia-biome/CityCyberiaBiome.js +209 -0
  284. package/src/client/components/cyberia-biome/CityInteriorCyberiaBiome.js +253 -0
  285. package/src/client/components/cyberia-biome/ColorChaosCyberiaBiome.js +26 -0
  286. package/src/client/components/cyberia-biome/ForestCyberiaBiome.js +191 -0
  287. package/src/client/components/cyberia-biome/GridBaseCyberiaBiome.js +364 -0
  288. package/src/client/components/cyberia-biome/SeedCityCyberiaBiome.js +347 -0
  289. package/src/client/components/cyberia-biome/ShopCyberiaBiome.js +12 -0
  290. package/src/client/components/cyberia-biome/SpaceCyberiaBiome.js +58 -0
  291. package/src/client/components/cyberia-portal/CommonCyberiaPortal.js +29 -0
  292. package/src/client/components/cyberia-portal/CssCyberiaPortal.js +132 -0
  293. package/src/client/components/cyberia-portal/ElementsCyberiaPortal.js +38 -0
  294. package/src/client/components/cyberia-portal/LogInCyberiaPortal.js +18 -0
  295. package/src/client/components/cyberia-portal/LogOutCyberiaPortal.js +12 -0
  296. package/src/client/components/cyberia-portal/MenuCyberiaPortal.js +487 -0
  297. package/src/client/components/cyberia-portal/RoutesCyberiaPortal.js +45 -0
  298. package/src/client/components/cyberia-portal/ServerCyberiaPortal.js +136 -0
  299. package/src/client/components/cyberia-portal/SettingsCyberiaPortal.js +16 -0
  300. package/src/client/components/cyberia-portal/SignUpCyberiaPortal.js +11 -0
  301. package/src/client/components/cyberia-portal/SocketIoCyberiaPortal.js +52 -0
  302. package/src/client/components/cyberia-portal/TranslateCyberiaPortal.js +12 -0
  303. package/src/client/components/default/CommonDefault.js +29 -0
  304. package/src/client/components/default/CssDefault.js +27 -0
  305. package/src/client/components/default/ElementsDefault.js +38 -0
  306. package/src/client/components/default/LogInDefault.js +14 -0
  307. package/src/client/components/default/LogOutDefault.js +10 -0
  308. package/src/client/components/default/MenuDefault.js +743 -0
  309. package/src/client/components/default/RoutesDefault.js +48 -0
  310. package/src/client/components/default/SettingsDefault.js +16 -0
  311. package/src/client/components/default/SignUpDefault.js +9 -0
  312. package/src/client/components/default/SocketIoDefault.js +54 -0
  313. package/src/client/components/default/TranslateDefault.js +7 -0
  314. package/src/client/public/default/android-chrome-144x144.png +0 -0
  315. package/src/client/public/default/android-chrome-192x192.png +0 -0
  316. package/src/client/public/default/android-chrome-256x256.png +0 -0
  317. package/src/client/public/default/android-chrome-36x36.png +0 -0
  318. package/src/client/public/default/android-chrome-384x384.png +0 -0
  319. package/src/client/public/default/android-chrome-48x48.png +0 -0
  320. package/src/client/public/default/android-chrome-512x512.png +0 -0
  321. package/src/client/public/default/android-chrome-72x72.png +0 -0
  322. package/src/client/public/default/android-chrome-96x96.png +0 -0
  323. package/src/client/public/default/apple-touch-icon-1024x1024.png +0 -0
  324. package/src/client/public/default/apple-touch-icon-114x114-precomposed.png +0 -0
  325. package/src/client/public/default/apple-touch-icon-114x114.png +0 -0
  326. package/src/client/public/default/apple-touch-icon-120x120-precomposed.png +0 -0
  327. package/src/client/public/default/apple-touch-icon-120x120.png +0 -0
  328. package/src/client/public/default/apple-touch-icon-144x144-precomposed.png +0 -0
  329. package/src/client/public/default/apple-touch-icon-144x144.png +0 -0
  330. package/src/client/public/default/apple-touch-icon-152x152-precomposed.png +0 -0
  331. package/src/client/public/default/apple-touch-icon-152x152.png +0 -0
  332. package/src/client/public/default/apple-touch-icon-167x167.png +0 -0
  333. package/src/client/public/default/apple-touch-icon-180x180-precomposed.png +0 -0
  334. package/src/client/public/default/apple-touch-icon-180x180.png +0 -0
  335. package/src/client/public/default/apple-touch-icon-57x57-precomposed.png +0 -0
  336. package/src/client/public/default/apple-touch-icon-57x57.png +0 -0
  337. package/src/client/public/default/apple-touch-icon-60x60-precomposed.png +0 -0
  338. package/src/client/public/default/apple-touch-icon-60x60.png +0 -0
  339. package/src/client/public/default/apple-touch-icon-72x72-precomposed.png +0 -0
  340. package/src/client/public/default/apple-touch-icon-72x72.png +0 -0
  341. package/src/client/public/default/apple-touch-icon-76x76-precomposed.png +0 -0
  342. package/src/client/public/default/apple-touch-icon-76x76.png +0 -0
  343. package/src/client/public/default/apple-touch-icon-precomposed.png +0 -0
  344. package/src/client/public/default/apple-touch-icon.png +0 -0
  345. package/src/client/public/default/apple-touch-startup-image-1125x2436.png +0 -0
  346. package/src/client/public/default/apple-touch-startup-image-1136x640.png +0 -0
  347. package/src/client/public/default/apple-touch-startup-image-1170x2532.png +0 -0
  348. package/src/client/public/default/apple-touch-startup-image-1179x2556.png +0 -0
  349. package/src/client/public/default/apple-touch-startup-image-1242x2208.png +0 -0
  350. package/src/client/public/default/apple-touch-startup-image-1242x2688.png +0 -0
  351. package/src/client/public/default/apple-touch-startup-image-1284x2778.png +0 -0
  352. package/src/client/public/default/apple-touch-startup-image-1290x2796.png +0 -0
  353. package/src/client/public/default/apple-touch-startup-image-1334x750.png +0 -0
  354. package/src/client/public/default/apple-touch-startup-image-1488x2266.png +0 -0
  355. package/src/client/public/default/apple-touch-startup-image-1536x2048.png +0 -0
  356. package/src/client/public/default/apple-touch-startup-image-1620x2160.png +0 -0
  357. package/src/client/public/default/apple-touch-startup-image-1640x2160.png +0 -0
  358. package/src/client/public/default/apple-touch-startup-image-1668x2224.png +0 -0
  359. package/src/client/public/default/apple-touch-startup-image-1668x2388.png +0 -0
  360. package/src/client/public/default/apple-touch-startup-image-1792x828.png +0 -0
  361. package/src/client/public/default/apple-touch-startup-image-2048x1536.png +0 -0
  362. package/src/client/public/default/apple-touch-startup-image-2048x2732.png +0 -0
  363. package/src/client/public/default/apple-touch-startup-image-2160x1620.png +0 -0
  364. package/src/client/public/default/apple-touch-startup-image-2160x1640.png +0 -0
  365. package/src/client/public/default/apple-touch-startup-image-2208x1242.png +0 -0
  366. package/src/client/public/default/apple-touch-startup-image-2224x1668.png +0 -0
  367. package/src/client/public/default/apple-touch-startup-image-2266x1488.png +0 -0
  368. package/src/client/public/default/apple-touch-startup-image-2388x1668.png +0 -0
  369. package/src/client/public/default/apple-touch-startup-image-2436x1125.png +0 -0
  370. package/src/client/public/default/apple-touch-startup-image-2532x1170.png +0 -0
  371. package/src/client/public/default/apple-touch-startup-image-2556x1179.png +0 -0
  372. package/src/client/public/default/apple-touch-startup-image-2688x1242.png +0 -0
  373. package/src/client/public/default/apple-touch-startup-image-2732x2048.png +0 -0
  374. package/src/client/public/default/apple-touch-startup-image-2778x1284.png +0 -0
  375. package/src/client/public/default/apple-touch-startup-image-2796x1290.png +0 -0
  376. package/src/client/public/default/apple-touch-startup-image-640x1136.png +0 -0
  377. package/src/client/public/default/apple-touch-startup-image-750x1334.png +0 -0
  378. package/src/client/public/default/apple-touch-startup-image-828x1792.png +0 -0
  379. package/src/client/public/default/assets/background/dark.jpg +0 -0
  380. package/src/client/public/default/assets/background/dark.svg +557 -0
  381. package/src/client/public/default/assets/background/white.jpg +0 -0
  382. package/src/client/public/default/assets/background/white0-min.jpg +0 -0
  383. package/src/client/public/default/assets/background/white0.jpg +0 -0
  384. package/src/client/public/default/assets/logo/base-icon.png +0 -0
  385. package/src/client/public/default/assets/logo/underpost.gif +0 -0
  386. package/src/client/public/default/assets/mailer/api-user-check.png +0 -0
  387. package/src/client/public/default/assets/mailer/api-user-default-avatar.png +0 -0
  388. package/src/client/public/default/assets/mailer/api-user-invalid-token.png +0 -0
  389. package/src/client/public/default/assets/mailer/api-user-recover.png +0 -0
  390. package/src/client/public/default/browserconfig.xml +12 -0
  391. package/src/client/public/default/favicon-16x16.png +0 -0
  392. package/src/client/public/default/favicon-32x32.png +0 -0
  393. package/src/client/public/default/favicon-48x48.png +0 -0
  394. package/src/client/public/default/favicon.ico +0 -0
  395. package/src/client/public/default/manifest.webmanifest +69 -0
  396. package/src/client/public/default/mstile-144x144.png +0 -0
  397. package/src/client/public/default/mstile-150x150.png +0 -0
  398. package/src/client/public/default/mstile-310x150.png +0 -0
  399. package/src/client/public/default/mstile-310x310.png +0 -0
  400. package/src/client/public/default/mstile-70x70.png +0 -0
  401. package/src/client/public/default/plantuml/client-conf.svg +1 -0
  402. package/src/client/public/default/plantuml/client-schema.svg +1 -0
  403. package/src/client/public/default/plantuml/cron-conf.svg +1 -0
  404. package/src/client/public/default/plantuml/cron-schema.svg +1 -0
  405. package/src/client/public/default/plantuml/server-conf.svg +1 -0
  406. package/src/client/public/default/plantuml/server-schema.svg +1 -0
  407. package/src/client/public/default/plantuml/ssr-conf.svg +1 -0
  408. package/src/client/public/default/plantuml/ssr-schema.svg +1 -0
  409. package/src/client/public/default/safari-pinned-tab.svg +24 -0
  410. package/src/client/public/default/site.webmanifest +69 -0
  411. package/src/client/public/default/sitemap +148 -0
  412. package/src/client/public/default/yandex-browser-50x50.png +0 -0
  413. package/src/client/public/default/yandex-browser-manifest.json +9 -0
  414. package/src/client/public/doc/favicon.ico +0 -0
  415. package/src/client/public/doc/sitemap +148 -0
  416. package/src/client/public/test/favicon.ico +0 -0
  417. package/src/client/public/test/sitemap +148 -0
  418. package/src/client/services/blockchain/blockchain.service.js +73 -0
  419. package/src/client/services/core/core.service.js +165 -0
  420. package/src/client/services/crypto/crypto.service.js +73 -0
  421. package/src/client/services/default/default.management.js +450 -0
  422. package/src/client/services/default/default.service.js +98 -0
  423. package/src/client/services/document/document.service.js +97 -0
  424. package/src/client/services/file/file.service.js +72 -0
  425. package/src/client/services/instance/instance.management.js +78 -0
  426. package/src/client/services/instance/instance.service.js +97 -0
  427. package/src/client/services/ipfs/ipfs.service.js +73 -0
  428. package/src/client/services/object-layer/object-layer.service.js +93 -0
  429. package/src/client/services/test/test.service.js +73 -0
  430. package/src/client/services/user/user.management.js +56 -0
  431. package/src/client/services/user/user.service.js +108 -0
  432. package/src/client/ssr/Render.js +237 -0
  433. package/src/client/ssr/body/404.js +73 -0
  434. package/src/client/ssr/body/500.js +72 -0
  435. package/src/client/ssr/body/CacheControl.js +114 -0
  436. package/src/client/ssr/body/CyberiaDefaultSplashScreen.js +90 -0
  437. package/src/client/ssr/body/CyberiaSplashScreenLore.js +424 -0
  438. package/src/client/ssr/body/DefaultSplashScreen.js +90 -0
  439. package/src/client/ssr/email/DefaultRecoverEmail.js +21 -0
  440. package/src/client/ssr/email/DefaultVerifyEmail.js +17 -0
  441. package/src/client/ssr/head/Css.js +241 -0
  442. package/src/client/ssr/head/CyberiaAdminScripts.js +6 -0
  443. package/src/client/ssr/head/CyberiaPortalScripts.js +6 -0
  444. package/src/client/ssr/head/CyberiaScripts.js +6 -0
  445. package/src/client/ssr/head/DefaultScripts.js +6 -0
  446. package/src/client/ssr/head/Microdata.js +11 -0
  447. package/src/client/ssr/head/Production.js +1 -0
  448. package/src/client/ssr/head/Pwa.js +146 -0
  449. package/src/client/ssr/head/Seo.js +15 -0
  450. package/src/client/ssr/mailer/DefaultRecoverEmail.js +21 -0
  451. package/src/client/ssr/mailer/DefaultVerifyEmail.js +17 -0
  452. package/src/client/ssr/offline/Maintenance.js +63 -0
  453. package/src/client/ssr/offline/NoNetworkConnection.js +67 -0
  454. package/src/client/ssr/pages/404.js +12 -0
  455. package/src/client/ssr/pages/500.js +12 -0
  456. package/src/client/ssr/pages/Test.js +198 -0
  457. package/src/client/ssr/pages/maintenance.js +14 -0
  458. package/src/client/ssr/pages/offline.js +21 -0
  459. package/src/client/sw/default.sw.js +108 -0
  460. package/src/client/sw/template.sw.js +84 -0
  461. package/src/client.build.js +22 -0
  462. package/src/client.dev.js +24 -0
  463. package/src/db/DataBaseProvider.js +98 -0
  464. package/src/db/mariadb/MariaDB.js +66 -0
  465. package/src/db/mongo/MongooseDB.js +70 -0
  466. package/src/index.js +198 -0
  467. package/src/mailer/EmailRender.js +116 -0
  468. package/src/mailer/MailerProvider.js +213 -0
  469. package/src/monitor.js +24 -0
  470. package/src/proxy.js +22 -0
  471. package/src/runtime/express/Express.js +256 -0
  472. package/src/runtime/lampp/Dockerfile +50 -0
  473. package/src/runtime/lampp/Lampp.js +343 -0
  474. package/src/server/auth.js +689 -0
  475. package/src/server/backup.js +96 -0
  476. package/src/server/client-build-docs.js +205 -0
  477. package/src/server/client-build-live.js +109 -0
  478. package/src/server/client-build.js +690 -0
  479. package/src/server/client-dev-server.js +87 -0
  480. package/src/server/client-formatted.js +87 -0
  481. package/src/server/client-icons.js +108 -0
  482. package/src/server/conf.js +1071 -0
  483. package/src/server/crypto.js +210 -0
  484. package/src/server/dns.js +276 -0
  485. package/src/server/downloader.js +74 -0
  486. package/src/server/json-schema.js +77 -0
  487. package/src/server/logger.js +197 -0
  488. package/src/server/network.js +72 -0
  489. package/src/server/object-layer.js +294 -0
  490. package/src/server/peer.js +69 -0
  491. package/src/server/process.js +171 -0
  492. package/src/server/proxy.js +110 -0
  493. package/src/server/runtime.js +170 -0
  494. package/src/server/ssr.js +127 -0
  495. package/src/server/start.js +161 -0
  496. package/src/server/tls.js +251 -0
  497. package/src/server/valkey.js +293 -0
  498. package/src/server.js +25 -0
  499. package/src/ws/IoInterface.js +139 -0
  500. package/src/ws/IoServer.js +88 -0
  501. package/src/ws/core/channels/core.ws.chat.js +23 -0
  502. package/src/ws/core/channels/core.ws.mailer.js +35 -0
  503. package/src/ws/core/channels/core.ws.stream.js +31 -0
  504. package/src/ws/core/core.ws.connection.js +62 -0
  505. package/src/ws/core/core.ws.emit.js +53 -0
  506. package/src/ws/core/core.ws.server.js +76 -0
  507. package/src/ws/core/management/core.ws.chat.js +8 -0
  508. package/src/ws/core/management/core.ws.mailer.js +16 -0
  509. package/src/ws/core/management/core.ws.stream.js +8 -0
  510. package/src/ws/cyberia/channels/cyberia.ws.bot.js +56 -0
  511. package/src/ws/cyberia/channels/cyberia.ws.skill.js +51 -0
  512. package/src/ws/cyberia/channels/cyberia.ws.user.js +437 -0
  513. package/src/ws/cyberia/cyberia.ws.connection.js +36 -0
  514. package/src/ws/cyberia/cyberia.ws.emit.js +14 -0
  515. package/src/ws/cyberia/cyberia.ws.server.js +67 -0
  516. package/src/ws/cyberia/management/cyberia.ws.bot.js +669 -0
  517. package/src/ws/cyberia/management/cyberia.ws.skill.js +441 -0
  518. package/src/ws/cyberia/management/cyberia.ws.user.js +188 -0
  519. package/src/ws/default/channels/default.ws.main.js +16 -0
  520. package/src/ws/default/default.ws.connection.js +22 -0
  521. package/src/ws/default/default.ws.emit.js +14 -0
  522. package/src/ws/default/default.ws.server.js +20 -0
  523. package/src/ws/default/management/default.ws.main.js +8 -0
  524. package/test/api.test.js +53 -0
  525. package/test/crypto.test.js +117 -0
@@ -0,0 +1,423 @@
1
+ /**
2
+ * Vanilla JavaScript module for manipulating the DOM.
3
+ * @module src/client/components/core/VanillaJs.js
4
+ * @namespace VanillaJS
5
+ */
6
+
7
+ import { s4 } from './CommonJs.js';
8
+ import { windowGetH, windowGetW } from './windowGetDimensions.js';
9
+
10
+ /*
11
+
12
+ Name: es6-string-html
13
+ Id: Tobermory.es6-string-html
14
+ Description: Syntax highlighting in es6 multiline strings
15
+ Version: 2.12.1
16
+ Publisher: Tobermory
17
+ VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=Tobermory.es6-string-html
18
+
19
+ Name: es6-string-css
20
+ Id: bashmish.es6-string-css
21
+ Description: Highlight CSS language in ES6 template literals
22
+ Version: 0.1.0
23
+ Publisher: Mikhail Bashkirov
24
+ VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=bashmish.es6-string-css
25
+
26
+ Name: lit-html
27
+ Id: bierner.lit-html
28
+ Description: Syntax highlighting and IntelliSense for html inside of JavaScript and TypeScript tagged template strings
29
+ Version: 1.11.1
30
+ Publisher: Matt Bierner
31
+ VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=bierner.lit-html
32
+
33
+ */
34
+
35
+ /**
36
+ * Query selector.
37
+ *
38
+ * @param {string} el The query selector.
39
+ * @returns {Element} Document object element.
40
+ * @memberof VanillaJS
41
+ */
42
+ const s = (el) => document.querySelector(el);
43
+
44
+ /**
45
+ * The function `htmls` takes an element and HTML content as arguments and sets the inner HTML of the
46
+ * element to the provided content.
47
+ * @param el - The `el` parameter in the `htmls` function represents the element in the HTML document
48
+ * that you want to update with the new HTML content.
49
+ * @param html - The `html` parameter in the `htmls` function is the HTML content that you want to set
50
+ * inside the specified element.
51
+ * @memberof VanillaJS
52
+ */
53
+ const htmls = (el, html) => (s(el).innerHTML = html);
54
+ /**
55
+ * The `append` function inserts HTML content at the end of a specified element.
56
+ * @param el - The `el` parameter in the `append` function represents the element to which you want to
57
+ * append the HTML content.
58
+ * @param html - The `html` parameter in the `append` function represents the HTML content that you
59
+ * want to insert into the specified element. This content will be added to the end of the element's
60
+ * existing content.
61
+ * @memberof VanillaJS
62
+ */
63
+ const append = (el, html) => s(el).insertAdjacentHTML('beforeend', html);
64
+ /**
65
+ * The `prepend` function inserts the specified HTML content at the beginning of the selected element.
66
+ * @param el - The `el` parameter in the `prepend` function is the element to which the HTML content
67
+ * will be prepended.
68
+ * @param html - The `html` parameter in the `prepend` function represents the HTML content that you
69
+ * want to insert at the beginning of the specified element.
70
+ * @memberof VanillaJS
71
+ */
72
+ const prepend = (el, html) => s(el).insertAdjacentHTML('afterbegin', html);
73
+ /**
74
+ * The function `sa` takes a CSS selector as an argument and returns a NodeList of elements that match
75
+ * the selector.
76
+ * @param el - The `el` parameter in the `sa` function is a string representing a CSS selector. This
77
+ * selector is used to query the document and select all elements that match the specified selector.
78
+ * @memberof VanillaJS
79
+ */
80
+ const sa = (el) => document.querySelectorAll(el); // .forEach((currentValue, currentIndex, listObj)
81
+
82
+ // s(el).classList.remove(targetClass);
83
+ // s(el).classList.add(targetClass);
84
+ // s(el).classList.value;
85
+ // Array.from(s(el).classList);
86
+ // document.createElement('div');
87
+ // button.setAttribute("disabled", "");
88
+ // button.removeAttribute("disabled")
89
+
90
+ // &nbsp
91
+
92
+ // sa('[data-example]');
93
+ // <div data-example ></div>
94
+
95
+ // s(input).onblur = inputCheckFunction;
96
+ // s(input).oninput = inputCheckFunction;
97
+ // s(input).onfocus = inputCheckFunction;
98
+ // s(input).focus();
99
+
100
+ // s(`form`).onsubmit = (e) => {
101
+ // e.preventDefault();
102
+ // };
103
+
104
+ // s(el).onmouseover = () => null;
105
+ // s(el).onmouseout = () => null;
106
+ // `0`.repeat(3) -> 000
107
+
108
+ // s(`.${idModal}`).offsetWidth
109
+ // s(`.${idModal}`).offsetHeight
110
+
111
+ // get css style tag data definitions
112
+ // window.getComputedStyle(el).color;
113
+
114
+ /**
115
+ * The `copyData` function uses the Clipboard API to copy the provided data to the clipboard and
116
+ * returns a promise that resolves to true if successful or false if unsuccessful.
117
+ * @param data - The `data` parameter in the `copyData` function represents the text data that you want
118
+ * to copy to the clipboard.
119
+ * @memberof VanillaJS
120
+ */
121
+ const copyData = (data) =>
122
+ new Promise((resolve, reject) =>
123
+ navigator.clipboard.writeText(data).then(
124
+ () => resolve(true),
125
+ () => reject(false),
126
+ ),
127
+ );
128
+
129
+ /**
130
+ * The function `pasteData` uses the Clipboard API to read text from the clipboard and returns it as a
131
+ * promise.
132
+ * @memberof VanillaJS
133
+ */
134
+ const pasteData = () => new Promise((resolve) => navigator.clipboard.readText().then((clipText) => resolve(clipText)));
135
+
136
+ /**
137
+ * The `preHTML` function in JavaScript replaces special characters like &, <, and > with their
138
+ * corresponding HTML entities.
139
+ * @param raw - The `raw` parameter in the `preHTML` function represents the raw HTML content that you
140
+ * want to sanitize by replacing special characters like `&`, `<`, and `>` with their corresponding
141
+ * HTML entities.
142
+ * @memberof VanillaJS
143
+ */
144
+ const preHTML = (raw) => raw.replaceAll('&', '&amp').replaceAll('<', '&lt').replaceAll('>', '&gt');
145
+
146
+ /**
147
+ * The function `disableOptionsClick` disables specific user interaction options like right-click menu,
148
+ * drag, and text selection on a given HTML element.
149
+ * @param element - The `element` parameter in the `disableOptionsClick` function refers to the HTML
150
+ * element to which you want to disable certain user interactions like right-click context menu,
151
+ * drag-and-drop, or text selection based on the specified types.
152
+ * @param types - The `types` parameter in the `disableOptionsClick` function is an array that
153
+ * specifies the types of interactions to disable on the given `element`. The possible values for
154
+ * `types` are 'menu', 'drag', and 'select'.
155
+ * @returns In the `disableOptionsClick` function, event handlers are being assigned to the specified
156
+ * `element` based on the `types` array provided. The function is returning `false` for the
157
+ * corresponding events based on the types included in the `types` array.
158
+ * @memberof VanillaJS
159
+ */
160
+ const disableOptionsClick = (element, types) => {
161
+ if (types.includes('menu'))
162
+ s(element).oncontextmenu = function () {
163
+ return false;
164
+ };
165
+ if (types.includes('drag'))
166
+ s(element).ondragstart = function () {
167
+ return false;
168
+ };
169
+ if (types.includes('select'))
170
+ s(element).onselectstart = function () {
171
+ return false;
172
+ };
173
+ };
174
+
175
+ /**
176
+ * The function `checkFullScreen` checks if the document is in full screen mode and returns a boolean
177
+ * value accordingly.
178
+ * @returns The function `checkFullScreen` is returning `true` if `document.fullscreenElement` is
179
+ * truthy, otherwise it returns `false`.
180
+ * @memberof VanillaJS
181
+ */
182
+ const checkFullScreen = () => {
183
+ // !(!window.screenTop && !window.screenY) ||
184
+ return document.fullscreenElement ? true : false;
185
+ };
186
+
187
+ /**
188
+ * The function `fullScreenOut` is used to exit full screen mode in a web browser.
189
+ * @memberof VanillaJS
190
+ */
191
+ const fullScreenOut = () => {
192
+ if (document.exitFullscreen) {
193
+ document.exitFullscreen();
194
+ } else if (document.mozCancelFullScreen) {
195
+ document.mozCancelFullScreen();
196
+ } else if (document.webkitExitFullscreen) {
197
+ document.webkitExitFullscreen();
198
+ } else if (document.msExitFullscreen) {
199
+ window.top.document.msExitFullscreen();
200
+ }
201
+ };
202
+
203
+ /**
204
+ * The `fullScreenIn` function is used to request full screen mode in a web browser using different
205
+ * vendor-specific methods.
206
+ * @memberof VanillaJS
207
+ */
208
+ const fullScreenIn = () => {
209
+ const elem = document.documentElement;
210
+ if (elem.requestFullscreen) {
211
+ elem.requestFullscreen();
212
+ } else if (elem.mozRequestFullScreen) {
213
+ /* Firefox */
214
+ elem.mozRequestFullScreen();
215
+ } else if (elem.webkitRequestFullscreen) {
216
+ /* Chrome, Safari & Opera */
217
+ elem.webkitRequestFullscreen();
218
+ } else if (elem.msRequestFullscreen) {
219
+ /* IE/Edge */
220
+ elem = window.top.document.body; //To break out of frame in IE
221
+ elem.msRequestFullscreen();
222
+ }
223
+ };
224
+
225
+ /**
226
+ * The function `getResponsiveData` returns an object containing the width, height, minimum value,
227
+ * maximum value, and corresponding types based on the window dimensions.
228
+ * @returns The `getResponsiveData` function returns an object that contains the width and height of
229
+ * the window, along with additional properties based on whether the width is greater than the height
230
+ * or not. If the width is greater than the height, the returned object includes the width, height,
231
+ * minValue (height), maxValue (width), minType ('height'), and maxType ('width'). If the height is
232
+ * greater than
233
+ * @memberof VanillaJS
234
+ */
235
+ const getResponsiveData = () => {
236
+ const inner = { width: windowGetW(), height: windowGetH() };
237
+ return inner.width > inner.height
238
+ ? { ...inner, minValue: windowGetH(), maxValue: windowGetW(), minType: 'height', maxType: 'width' }
239
+ : { ...inner, minValue: windowGetW(), maxValue: windowGetH(), minType: 'width', maxType: 'height' };
240
+ };
241
+
242
+ /**
243
+ * The function `isElement` checks if a given object is an instance of `Element` or `HTMLDocument`.
244
+ * @param element - The `element` parameter is a variable that represents an HTML element or an HTML
245
+ * document. The `isElement` function checks if the provided `element` is an instance of the `Element`
246
+ * interface or the `HTMLDocument` interface.
247
+ * @memberof VanillaJS
248
+ */
249
+ const isElement = (element) => element instanceof Element || element instanceof HTMLDocument;
250
+
251
+ /**
252
+ * Download File.
253
+ *
254
+ * @param {File | Blob} fileInstance The file or blob object.
255
+ * @param {string} fileName The file name with extension.
256
+ * @returns {void} void.
257
+ * @memberof VanillaJS
258
+ */
259
+ function downloadFile(fileInstance, fileName) {
260
+ // const blob = new Blob([raw], { type: 'image/png' })
261
+ // const file = new File([blob], { type: 'image/png' }); // open window save name
262
+ // downloadFile(blob | file, `${name}.png`);
263
+
264
+ // Create a URL for the file
265
+ const url = URL.createObjectURL(fileInstance);
266
+
267
+ // Create an anchor element
268
+ const idDownload = 'downloader-' + s4() + s4();
269
+ append('body', html`<a class="${idDownload}" style="display: none"></a>`);
270
+
271
+ // Exec download
272
+ s(`.${idDownload}`).href = url;
273
+ s(`.${idDownload}`).download = fileName;
274
+ s(`.${idDownload}`).click();
275
+ s(`.${idDownload}`).remove();
276
+
277
+ // Revoke the URL object to free up resources
278
+ return URL.revokeObjectURL(url);
279
+ }
280
+
281
+ /**
282
+ * The function `getRawContentFile` reads the raw content of a file using a FileReader in JavaScript.
283
+ * @param blob - The `blob` parameter in the `getRawContentFile` function is a Buffer object that
284
+ * represents raw binary data. It is used to read the content of a file as text using a FileReader in
285
+ * the browser environment.
286
+ * @memberof VanillaJS
287
+ */
288
+ const getRawContentFile = (blob = new Buffer()) =>
289
+ new Promise((resolve) => {
290
+ {
291
+ const reader = new FileReader();
292
+ reader.onload = () => resolve(reader.result);
293
+ reader.readAsText(blob);
294
+ }
295
+ });
296
+
297
+ /**
298
+ * The function `getBlobFromUint8ArrayFile` creates a Blob object from a Uint8Array file data with a
299
+ * specified mimetype.
300
+ * @param data - The `data` parameter in the `getBlobFromUint8ArrayFile` function is an array of
301
+ * arrays containing Uint8Array data.
302
+ * @param mimetype - The `mimetype` parameter in the
303
+ * `getBlobFromUint8ArrayFile` function is a string that specifies the type of the Blob object being
304
+ * created. It indicates the MIME type of the data contained in the Blob. For example, common MIME
305
+ * types include 'image/jpeg' for JPEG images,
306
+ * @returns A Blob object is being returned, created from the provided Uint8Array data and mimetype.
307
+ * @memberof VanillaJS
308
+ */
309
+ const getBlobFromUint8ArrayFile = (data = [[]], mimetype = 'application/octet-stream') => {
310
+ return new Blob([new Uint8Array(data)], { type: mimetype });
311
+ };
312
+
313
+ /**
314
+ * The function `isNavigator` checks if the user agent string contains a specified name.
315
+ * @param name - The `name` parameter is a string that represents the name of a browser or device to
316
+ * check against the user agent string of the browser.
317
+ * @memberof VanillaJS
318
+ */
319
+ const isNavigator = (name) => navigator.userAgent.toLowerCase().match(name.toLowerCase());
320
+
321
+ /**
322
+ * The function `getTimeZone` returns the current time zone based on the user's browser settings.
323
+ * @memberof VanillaJS
324
+ */
325
+ const getTimeZone = () => Intl.DateTimeFormat().resolvedOptions().timeZone;
326
+
327
+ /**
328
+ * The function `getAllChildNodes` recursively retrieves all child nodes of a given parent node in a
329
+ * tree-like structure.
330
+ * @param node - The `node` parameter in the `getAllChildNodes` function is the starting node from
331
+ * which you want to retrieve all child nodes recursively.
332
+ * @returns The `getAllChildNodes` function returns an array containing all the child nodes of the
333
+ * input `node`, including nested child nodes.
334
+ * @memberof VanillaJS
335
+ */
336
+ function getAllChildNodes(node) {
337
+ const allNodes = [];
338
+
339
+ function traverse(node) {
340
+ if (node.childNodes.length === 0) {
341
+ return;
342
+ }
343
+
344
+ for (let i = 0; i < node.childNodes.length; i++) {
345
+ const child = node.childNodes[i];
346
+ allNodes.push(child);
347
+ traverse(child);
348
+ }
349
+ }
350
+
351
+ traverse(node);
352
+ return allNodes;
353
+ }
354
+
355
+ /**
356
+ * The function `isActiveTab` checks if the document has focus.
357
+ * @memberof VanillaJS
358
+ */
359
+ const isActiveTab = () => document.hasFocus();
360
+
361
+ /**
362
+ * The function `isActiveElement` checks if the active element in the document matches a specified
363
+ * class search.
364
+ * @param classSearch - The `classSearch` parameter is a string that is used to search for a specific
365
+ * class name within the `classList` of the active element in the document.
366
+ * @memberof VanillaJS
367
+ */
368
+ const isActiveElement = (classSearch = '') =>
369
+ document.activeElement?.classList?.value?.match(classSearch) ? true : false;
370
+
371
+ const isDevInstance = () => location.origin.match('localhost') && location.port;
372
+
373
+ const getDataFromInputFile = async (file) => Array.from(new Uint8Array(await file.arrayBuffer()));
374
+
375
+ const getLang = () =>
376
+ (localStorage.getItem('lang') || navigator.language || navigator.userLanguage || s('html').lang)
377
+ .slice(0, 2)
378
+ .toLowerCase();
379
+
380
+ function hexToRgbA(hex) {
381
+ let c;
382
+ if (/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex)) {
383
+ c = hex.substring(1).split('');
384
+ if (c.length == 3) {
385
+ c = [c[0], c[0], c[1], c[1], c[2], c[2]];
386
+ }
387
+ c = '0x' + c.join('');
388
+ return [(c >> 16) & 255, (c >> 8) & 255, c & 255];
389
+ }
390
+ throw new Error('Invalid Hex');
391
+ }
392
+
393
+ const htmlStrSanitize = (str) => (str ? str.replace(/<\/?[^>]+(>|$)/g, '').trim() : '');
394
+
395
+ export {
396
+ s,
397
+ htmls,
398
+ append,
399
+ prepend,
400
+ sa,
401
+ copyData,
402
+ pasteData,
403
+ preHTML,
404
+ disableOptionsClick,
405
+ checkFullScreen,
406
+ fullScreenOut,
407
+ fullScreenIn,
408
+ getResponsiveData,
409
+ isElement,
410
+ downloadFile,
411
+ getRawContentFile,
412
+ getBlobFromUint8ArrayFile,
413
+ isNavigator,
414
+ getTimeZone,
415
+ getAllChildNodes,
416
+ isActiveTab,
417
+ isActiveElement,
418
+ isDevInstance,
419
+ getDataFromInputFile,
420
+ getLang,
421
+ hexToRgbA,
422
+ htmlStrSanitize,
423
+ };
@@ -0,0 +1,106 @@
1
+ import { CryptoService } from '../../services/crypto/crypto.service.js';
2
+ import { UserService } from '../../services/user/user.service.js';
3
+ import { Auth } from './Auth.js';
4
+ import { BtnIcon } from './BtnIcon.js';
5
+ import { getId } from './CommonJs.js';
6
+ import { dynamicCol } from './Css.js';
7
+ import { EventsUI } from './EventsUI.js';
8
+ import { NotificationManager } from './NotificationManager.js';
9
+ import { Translate } from './Translate.js';
10
+ import { copyData, htmls, s } from './VanillaJs.js';
11
+
12
+ const Wallet = {
13
+ Data: {},
14
+ Render: async function (options) {
15
+ const id = getId(this.Data, 'wallet-');
16
+ setTimeout(async () => {
17
+ EventsUI.onClick(`.btn-generate-keys-${id}`, async (e) => {
18
+ e.preventDefault();
19
+
20
+ const algorithm = {
21
+ name: 'ECDSA',
22
+ namedCurve: 'P-384',
23
+ hash: 'SHA-256',
24
+ };
25
+ const format = 'jwk';
26
+
27
+ (async () => {
28
+ return;
29
+ const { data: payload } = await UserService.get({ id: 'public-key-sign-token' });
30
+
31
+ const signature = await window.crypto.subtle.sign(
32
+ algorithm,
33
+ keyPair.privateKey,
34
+ new TextEncoder().encode(payload), // Encode data to Uint8Array,
35
+ );
36
+
37
+ const base64Signature = btoa(String.fromCharCode(...new Uint8Array(signature)));
38
+ })();
39
+
40
+ const keyPair = await window.crypto.subtle.generateKey(algorithm, true, ['sign', 'verify']);
41
+ const privateKey = await window.crypto.subtle.exportKey(format, keyPair.privateKey);
42
+ const publicKey = await window.crypto.subtle.exportKey(format, keyPair.publicKey);
43
+
44
+ const displayKeys = JSON.stringify({ privateKey, publicKey }, null, 4);
45
+ htmls('.keys-display', displayKeys);
46
+
47
+ if (Auth.getToken()) {
48
+ const result = await CryptoService.post({
49
+ body: {
50
+ data: JSON.stringify(publicKey),
51
+ format,
52
+ algorithm,
53
+ },
54
+ });
55
+ }
56
+
57
+ NotificationManager.Push({
58
+ // html: Translate.Render(`${result.status}-generate-keys`),
59
+ html: Translate.Render(`success-generate-keys`),
60
+ // status: result.status,
61
+ status: 'success',
62
+ });
63
+
64
+ EventsUI.onClick(`.btn-copy-keys-${id}`, async (e) => {
65
+ e.preventDefault();
66
+ await copyData(displayKeys);
67
+ NotificationManager.Push({
68
+ html: Translate.Render('success-copy-data'),
69
+ status: 'success',
70
+ });
71
+ });
72
+ });
73
+ });
74
+ return html`
75
+ ${dynamicCol({ containerSelector: options.idModal, id: `wallet-${id}` })}
76
+ <div class="fl">
77
+ <div class="in fll wallet-${id}-col-a">
78
+ <div class="in section-mp">
79
+ <div class="in sub-title-modal"><i class="fas fa-key"></i> JWK Management</div>
80
+ <div class="in section-mp m">
81
+ Client side <b>JSON Web Keys</b> (<a href="https://datatracker.ietf.org/doc/html/rfc7517">RFC7517</a>)
82
+ based on elliptic curve digital signature,
83
+ <a href="https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto">more info</a>.
84
+ </div>
85
+ ${await BtnIcon.Render({
86
+ class: `inl section-mp btn-custom btn-generate-keys-${id}`,
87
+ label: html`<i class="fa-solid fa-arrows-rotate"></i> ${Translate.Render('generate')}
88
+ ${Translate.Render('keys')}`,
89
+ })}
90
+ ${await BtnIcon.Render({
91
+ class: `inl section-mp btn-custom btn-copy-keys-${id}`,
92
+ label: html`<i class="fas fa-copy"></i> ${Translate.Render('copy')} ${Translate.Render('keys')}`,
93
+ })}
94
+ </div>
95
+ </div>
96
+ <div class="in fll wallet-${id}-col-b">
97
+ <div class="in section-mp">
98
+ <pre class="in keys-display"></pre>
99
+ </div>
100
+ </div>
101
+ </div>
102
+ `;
103
+ },
104
+ };
105
+
106
+ export { Wallet };
@@ -0,0 +1,44 @@
1
+ // https://javascript.info/
2
+ // https://javascript.info/web-components
3
+
4
+ class MyElement extends HTMLElement {
5
+ constructor() {
6
+ super();
7
+ // element created
8
+ }
9
+
10
+ connectedCallback() {
11
+ // browser calls this method when the element is added to the document
12
+ // (can be called many times if an element is repeatedly added/removed)
13
+ }
14
+
15
+ disconnectedCallback() {
16
+ // browser calls this method when the element is removed from the document
17
+ // (can be called many times if an element is repeatedly added/removed)
18
+ }
19
+
20
+ static get observedAttributes() {
21
+ return [
22
+ /* array of attribute names to monitor for changes */
23
+ ];
24
+ }
25
+
26
+ attributeChangedCallback(name, oldValue, newValue) {
27
+ // called when one of attributes listed above is modified
28
+ }
29
+
30
+ adoptedCallback() {
31
+ // called when the element is moved to a new document
32
+ // (happens in document.adoptNode, very rarely used)
33
+ }
34
+
35
+ // there can be other element methods and properties
36
+ }
37
+
38
+ customElements.define('my-element', MyElement);
39
+
40
+ // Now for any HTML elements with tag <my-element>,
41
+ // an instance of MyElement is created, and the aforementioned
42
+ // methods are called.
43
+
44
+ export { MyElement };
@@ -0,0 +1,25 @@
1
+ import { SocketIo } from './SocketIo.js';
2
+
3
+ const Webhook = {
4
+ register: async function (options = { user: {} }) {
5
+ const { user } = options;
6
+ SocketIo.Emit('mailer', {
7
+ status: 'register-user',
8
+ user,
9
+ });
10
+ SocketIo.Emit('user', {
11
+ status: 'register-user',
12
+ user,
13
+ });
14
+ },
15
+ unregister: async function () {
16
+ SocketIo.Emit('mailer', {
17
+ status: 'unregister-user',
18
+ });
19
+ SocketIo.Emit('user', {
20
+ status: 'unregister-user',
21
+ });
22
+ },
23
+ };
24
+
25
+ export { Webhook };