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,44 @@
1
+ import { connectedScatterplotChart } from '../chart/connectedScatterplotChart.js';
2
+
3
+ // https://takanori-fujiwara.github.io/d3-gallery-javascript/
4
+
5
+ const D3Chart = {
6
+ Render: async function () {
7
+ setTimeout(async () => {
8
+ const driving = await d3.csv('/data/driving.csv', d3.autoType);
9
+
10
+ const button = d3.select('.chart-panel').append('div').append('button').attr('type', 'button').text('Replay');
11
+
12
+ const play = () => {
13
+ const chart = connectedScatterplotChart(driving, {
14
+ svgId: 'connected-scatterplot',
15
+ x: (d) => d.miles,
16
+ y: (d) => d.gas,
17
+ title: (d) => d.year,
18
+ orient: (d) => d.side,
19
+ yFormat: '.2f',
20
+ xLabel: 'Miles driven (per capita per year) →',
21
+ yLabel: '↑ Price of gas (per gallon, adjusted average $)',
22
+ width: 1000,
23
+ height: 720,
24
+ duration: 5000, // for the intro animation; 0 to disable
25
+ });
26
+ d3.select('#connected-scatterplot').remove();
27
+ d3.select('.chart-container').append(() => chart);
28
+ };
29
+
30
+ play();
31
+
32
+ // replay
33
+ button.on('click', () => {
34
+ play();
35
+ });
36
+ });
37
+ return html`
38
+ <div class="in chart-container"></div>
39
+ <div class="in chart-panel"></div>
40
+ `;
41
+ },
42
+ };
43
+
44
+ export { D3Chart };
@@ -0,0 +1,376 @@
1
+ import { Badge } from './Badge.js';
2
+ import { BtnIcon } from './BtnIcon.js';
3
+ import { Css, renderCssAttr, simpleIconsRender, ThemeEvents, Themes } from './Css.js';
4
+ import { buildBadgeToolTipMenuOption, Modal, renderViewTitle } from './Modal.js';
5
+ import { listenQueryPathInstance, setQueryPath, closeModalRouteChangeEvent, getProxyPath } from './Router.js';
6
+ import { htmls, s } from './VanillaJs.js';
7
+
8
+ // https://mintlify.com/docs/quickstart
9
+
10
+ const Docs = {
11
+ RenderModal: async function (type) {
12
+ const docData = this.Data.find((d) => d.type === type);
13
+ const ModalId = `modal-docs-${docData.type}`;
14
+ const { barConfig } = await Themes[Css.currentTheme]();
15
+
16
+ await Modal.Render({
17
+ barConfig,
18
+ title: renderViewTitle(docData),
19
+ id: ModalId,
20
+ html: async () => {
21
+ if (docData.renderHtml) return await docData.renderHtml();
22
+ return html`
23
+ <iframe
24
+ class="in iframe-${ModalId}"
25
+ style="width: 100%; border: none; background: white"
26
+ src="${docData.url()}"
27
+ >
28
+ </iframe>
29
+ `;
30
+ },
31
+ maximize: true,
32
+ mode: 'view',
33
+ route: 'docs',
34
+ slideMenu: 'modal-menu',
35
+ observer: true,
36
+ barMode: 'top-bottom-bar',
37
+ query: true,
38
+ RouterInstance: Modal.Data['modal-docs'].options.RouterInstance,
39
+ });
40
+ Modal.Data[ModalId].onObserverListener[ModalId] = () => {
41
+ if (s(`.iframe-${ModalId}`))
42
+ s(`.iframe-${ModalId}`).style.height = `${s(`.${ModalId}`).offsetHeight - Modal.headerTitleHeight}px`;
43
+
44
+ if (type.match('coverage')) {
45
+ simpleIconsRender(`.doc-icon-coverage`);
46
+ simpleIconsRender(`.doc-icon-coverage-link`);
47
+ }
48
+ };
49
+ Modal.Data[ModalId].onObserverListener[ModalId]();
50
+ Modal.Data[ModalId].onCloseListener[ModalId] = () => {
51
+ closeModalRouteChangeEvent({ closedId: ModalId });
52
+ };
53
+ },
54
+ Data: [
55
+ {
56
+ type: 'repo',
57
+ icon: html`<i class="fab fa-github"></i>`,
58
+ text: `Last Release`,
59
+ url: function () {
60
+ return `https://github.com/underpostnet/pwa-microservices-template-ghpkg/`;
61
+ },
62
+ },
63
+ {
64
+ type: 'demo',
65
+ icon: html`<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 32 32">
66
+ <path fill="currentColor" d="M20 2v12l10-6z" />
67
+ <path
68
+ fill="currentColor"
69
+ d="M28 14v8H4V6h10V4H4a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h8v4H8v2h16v-2h-4v-4h8a2 2 0 0 0 2-2v-8zM18 28h-4v-4h4z"
70
+ />
71
+ </svg>`,
72
+ text: html`Demo`,
73
+ url: function () {
74
+ return `https://underpostnet.github.io/pwa-microservices-template-ghpkg/`;
75
+ },
76
+ },
77
+ {
78
+ type: 'src',
79
+ icon: html`<i class="fa-brands fa-osi"></i>`,
80
+ text: 'Source Docs',
81
+ url: function () {
82
+ return `${getProxyPath()}docs/engine/${window.renderPayload.version.replace('v', '')}`;
83
+ },
84
+ },
85
+ {
86
+ type: 'api',
87
+ icon: html`<i class="fa-solid fa-arrows-turn-to-dots"></i>`,
88
+ text: `Api Docs`,
89
+ url: function () {
90
+ return `${getProxyPath()}api-docs`;
91
+ },
92
+ },
93
+ {
94
+ type: 'coverage',
95
+ icon: html`<img height="20" width="20" class="doc-icon-coverage" />`,
96
+ text: `Coverage report`,
97
+ url: function () {
98
+ return `${getProxyPath()}docs/coverage`;
99
+ },
100
+ themeEvent: () => {
101
+ if (s(`.doc-icon-coverage`)) setTimeout(() => simpleIconsRender(`.doc-icon-coverage`));
102
+ },
103
+ },
104
+ {
105
+ type: 'coverage-link',
106
+ icon: html`<img height="20" width="20" class="doc-icon-coverage-link" />`,
107
+ text: `Coverage`,
108
+ url: function () {
109
+ return `https://coveralls.io/github/underpostnet/engine`;
110
+ },
111
+ themeEvent: () => {
112
+ if (s(`.doc-icon-coverage-link`)) setTimeout(() => simpleIconsRender(`.doc-icon-coverage-link`));
113
+ },
114
+ },
115
+ ],
116
+ Tokens: {},
117
+ Init: async function (options) {
118
+ const { idModal } = options;
119
+ this.Tokens[idModal] = options;
120
+ setTimeout(() => {
121
+ s(`.btn-docs-src`).onclick = async () => {
122
+ setQueryPath({ path: 'docs', queryPath: 'src' });
123
+ await this.RenderModal('src');
124
+ };
125
+ s(`.btn-docs-api`).onclick = async () => {
126
+ setQueryPath({ path: 'docs', queryPath: 'api' });
127
+ await this.RenderModal('api');
128
+ };
129
+ s(`.btn-docs-coverage`).onclick = async () => {
130
+ setQueryPath({ path: 'docs', queryPath: 'coverage' });
131
+ await this.RenderModal('coverage');
132
+ };
133
+
134
+ s(`.btn-docs-coverage-link`).onclick = () => {
135
+ const docData = this.Data.find((d) => d.type === 'coverage-link');
136
+ location.href = docData.url();
137
+ };
138
+ s(`.btn-docs-repo`).onclick = () => {
139
+ const docData = this.Data.find((d) => d.type === 'repo');
140
+ location.href = docData.url();
141
+ };
142
+ s(`.btn-docs-demo`).onclick = () => {
143
+ const docData = this.Data.find((d) => d.type === 'demo');
144
+ location.href = docData.url();
145
+ };
146
+
147
+ listenQueryPathInstance({
148
+ id: options.idModal,
149
+ routeId: 'docs',
150
+ event: (path) => {
151
+ if (s(`.btn-docs-${path}`)) s(`.btn-docs-${path}`).click();
152
+ if (Modal.mobileModal()) {
153
+ setTimeout(() => {
154
+ s(`.btn-close-modal-menu`).click();
155
+ });
156
+ }
157
+ },
158
+ });
159
+ });
160
+ let docMenuRender = '';
161
+ for (const docData of this.Data) {
162
+ if (docData.themeEvent) {
163
+ ThemeEvents[`doc-icon-${docData.type}`] = docData.themeEvent;
164
+ setTimeout(ThemeEvents[`doc-icon-${docData.type}`]);
165
+ }
166
+ let tabHref, style, labelStyle;
167
+ switch (docData.type) {
168
+ case 'repo':
169
+ case 'coverage-link':
170
+ style = renderCssAttr({ style: { height: '45px' } });
171
+ labelStyle = renderCssAttr({ style: { top: '8px', left: '9px' } });
172
+ break;
173
+
174
+ default:
175
+ break;
176
+ }
177
+ tabHref = docData.url();
178
+ docMenuRender += html`
179
+ ${await BtnIcon.Render({
180
+ class: `in wfa main-btn-menu submenu-btn btn-docs btn-docs-${docData.type}`,
181
+ label: html`<span class="inl menu-btn-icon">${docData.icon}</span
182
+ ><span class="menu-label-text menu-label-text-docs"> ${docData.text} </span>`,
183
+ tabHref,
184
+ tooltipHtml: await Badge.Render(buildBadgeToolTipMenuOption(docData.text, 'right')),
185
+ useMenuBtn: true,
186
+ })}
187
+ `;
188
+ }
189
+ // s(`.menu-btn-container-children`).classList.remove('hide');
190
+ // htmls(`.nav-path-display-${'modal-menu'}`, location.pathname);
191
+
192
+ htmls('.menu-btn-container-children-docs', docMenuRender);
193
+
194
+ {
195
+ const docsData = [
196
+ {
197
+ id: 'getting-started',
198
+ icon: 'rocket',
199
+ title: 'Getting Started',
200
+ description: 'Learn the basics and get started with our platform',
201
+ },
202
+ {
203
+ id: 'api-docs',
204
+ icon: 'code',
205
+ title: 'API Reference',
206
+ description: 'Detailed documentation of our API endpoints',
207
+ },
208
+ {
209
+ id: 'guides',
210
+ icon: 'book',
211
+ title: 'Guides',
212
+ description: 'Step-by-step tutorials and how-to guides',
213
+ },
214
+ {
215
+ id: 'demo',
216
+ icon: 'laptop-code',
217
+ title: 'Demo',
218
+ description: 'Practical examples and code snippets',
219
+ },
220
+ {
221
+ id: 'faq',
222
+ icon: 'question-circle',
223
+ title: 'FAQ',
224
+ description: 'Frequently asked questions',
225
+ },
226
+ {
227
+ id: 'community',
228
+ icon: 'users',
229
+ title: 'Community',
230
+ description: 'Join our developer community',
231
+ },
232
+ ];
233
+
234
+ return html`
235
+ <style>
236
+ .docs-landing {
237
+ padding: 2rem;
238
+ max-width: 1200px;
239
+ margin: 0 auto;
240
+ height: 100%;
241
+ box-sizing: border-box;
242
+ }
243
+ .docs-header {
244
+ text-align: center;
245
+ margin-bottom: 3rem;
246
+ opacity: 0;
247
+ animation: fadeInUp 0.6s ease-out forwards;
248
+ }
249
+ .docs-header h1 {
250
+ font-size: 2.5rem;
251
+ margin: 0 0 1rem;
252
+ line-height: 1.2;
253
+ }
254
+ .docs-header p {
255
+ font-size: 1.2rem;
256
+ max-width: 700px;
257
+ margin: 0 auto 2rem;
258
+ line-height: 1.6;
259
+ }
260
+ .docs-grid {
261
+ display: grid;
262
+ grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
263
+ gap: 1.5rem;
264
+ margin: 0;
265
+ padding: 0;
266
+ list-style: none;
267
+ }
268
+ .docs-card-container {
269
+ cursor: pointer;
270
+ opacity: 0;
271
+ margin-bottom: 3rem;
272
+ animation: fadeInUp 0.6s ease-out forwards;
273
+ }
274
+ .docs-card {
275
+ border-radius: 8px;
276
+ padding: 1.5rem;
277
+ display: flex;
278
+ flex-direction: column;
279
+ height: 100%;
280
+ position: relative;
281
+ transition: all 0.3s ease-in-out;
282
+ }
283
+
284
+ .card-icon {
285
+ font-size: 1.75rem;
286
+ width: 56px;
287
+ height: 56px;
288
+ border-radius: 12px;
289
+ display: flex;
290
+ align-items: center;
291
+ justify-content: center;
292
+ margin: 0 0 1.25rem;
293
+ transition: transform 0.2s ease;
294
+ }
295
+
296
+ .card-content {
297
+ flex: 1;
298
+ }
299
+ .card-content h3 {
300
+ margin: 0 0 0.5rem;
301
+ font-size: 1.25rem;
302
+ font-weight: 600;
303
+ }
304
+ .card-content p {
305
+ margin: 0;
306
+ font-size: 0.95rem;
307
+ transition: color 0.3s ease;
308
+ }
309
+ </style>
310
+
311
+ <style>
312
+ ${docsData
313
+ .map(
314
+ (_, index) => css`
315
+ .docs-card-container:nth-child(${index + 1}) {
316
+ animation-delay: ${0.1 * (index + 1)}s;
317
+ }
318
+ `,
319
+ )
320
+ .join('')}
321
+ </style>
322
+
323
+ <div class="docs-landing">
324
+ <div class="docs-header">
325
+ <h1>Documentation</h1>
326
+ <p>
327
+ Find everything you need to build amazing applications with our platform. Get started with our guides, API
328
+ reference, and examples.
329
+ </p>
330
+ <!--
331
+ <div class="search-bar">
332
+ <i class="fas fa-search"></i>
333
+ <input type="text" placeholder="Search documentation..." id="docs-search">
334
+ </div>
335
+ -->
336
+ </div>
337
+
338
+ <ul class="docs-grid">
339
+ ${docsData
340
+ .map((item) => {
341
+ setTimeout(() => {
342
+ if (s(`.docs-card-container-${item.id}`)) {
343
+ s(`.docs-card-container-${item.id}`).onclick = () => {
344
+ if (item.id.match('demo')) {
345
+ location.href = 'https://underpostnet.github.io/pwa-microservices-template-ghpkg/';
346
+ } else if (item.id.match('api')) {
347
+ if (s(`.btn-docs-api`)) s(`.btn-docs-api`).click();
348
+ } else {
349
+ if (s(`.btn-docs-src`)) s(`.btn-docs-src`).click();
350
+ }
351
+ };
352
+ }
353
+ });
354
+ return html`
355
+ <div class="in docs-card-container docs-card-container-${item.id}">
356
+ <li class="docs-card">
357
+ <div class="card-icon">
358
+ <i class="fas fa-${item.icon}"></i>
359
+ </div>
360
+ <div class="card-content">
361
+ <h3>${item.title}</h3>
362
+ <p>${item.description}</p>
363
+ </div>
364
+ </li>
365
+ </div>
366
+ `;
367
+ })
368
+ .join('')}
369
+ </ul>
370
+ </div>
371
+ `;
372
+ }
373
+ },
374
+ };
375
+
376
+ export { Docs };
@@ -0,0 +1,223 @@
1
+ import { getId, newInstance } from './CommonJs.js';
2
+ import { Input } from './Input.js';
3
+ import { ToggleSwitch } from './ToggleSwitch.js';
4
+ import { Translate } from './Translate.js';
5
+ import { s, htmls } from './VanillaJs.js';
6
+
7
+ const DropDown = {
8
+ Tokens: {},
9
+ Render: async function (options) {
10
+ const id = options.id ? options.id : getId(this.Tokens, 'dropdown-');
11
+ this.Tokens[id] = {
12
+ onClickEvents: {},
13
+ lastSelectValue: undefined,
14
+ oncheckvalues: {},
15
+ originData: options.data ? newInstance(options.data) : [],
16
+ };
17
+
18
+ options.data.push({
19
+ value: 'reset',
20
+ display: html`<i class="fa-solid fa-broom"></i> ${Translate.Render('clear')}`,
21
+ onClick: () => {
22
+ console.log('DropDown onClick', this.value);
23
+ if (options && options.resetOnClick) options.resetOnClick();
24
+ if (options && options.type === 'checkbox')
25
+ for (const opt of DropDown.Tokens[id].value) {
26
+ s(`.dropdown-option-${id}-${opt}`).click();
27
+ }
28
+ else this.Tokens[id].value = undefined;
29
+ },
30
+ });
31
+
32
+ if (!(options && options.disableClose))
33
+ options.data.push({
34
+ value: 'close',
35
+ display: html`<i class="fa-solid fa-xmark"></i> ${Translate.Render('close')}`,
36
+ onClick: function () {
37
+ console.log('DropDown onClick', this.value);
38
+ },
39
+ });
40
+
41
+ const switchOptionsPanel = () => {
42
+ if (Array.from(s(`.dropdown-option-${id}`).classList).includes('hide'))
43
+ s(`.dropdown-option-${id}`).classList.remove('hide');
44
+ else s(`.dropdown-option-${id}`).classList.add('hide');
45
+ };
46
+
47
+ const _render = async (data) => {
48
+ let render = '';
49
+ let index = -1;
50
+ for (const optionData of data) {
51
+ index++;
52
+ const i = index;
53
+ const valueDisplay = optionData.value.trim().replaceAll(' ', '-');
54
+ setTimeout(() => {
55
+ const onclick = (e) => {
56
+ if (options && options.lastSelectClass && s(`.dropdown-option-${this.Tokens[id].lastSelectValue}`)) {
57
+ s(`.dropdown-option-${this.Tokens[id].lastSelectValue}`).classList.remove(options.lastSelectClass);
58
+ }
59
+ this.Tokens[id].lastSelectValue = valueDisplay;
60
+ if (options && options.lastSelectClass && s(`.dropdown-option-${this.Tokens[id].lastSelectValue}`)) {
61
+ s(`.dropdown-option-${this.Tokens[id].lastSelectValue}`).classList.add(options.lastSelectClass);
62
+ }
63
+
64
+ if (
65
+ !(options && options.disableClose) &&
66
+ (options.type !== 'checkbox' || optionData.value === 'close' || optionData.value === 'reset')
67
+ )
68
+ s(`.dropdown-option-${id}`).classList.add('hide');
69
+
70
+ if (options.type === 'checkbox' && ToggleSwitch.Tokens[`checkbox-role-${valueDisplay}`])
71
+ ToggleSwitch.Tokens[`checkbox-role-${valueDisplay}`].click();
72
+ if (optionData.value !== 'close') {
73
+ if (optionData.value !== 'reset') {
74
+ if (options.type === 'checkbox') {
75
+ // const _instanValue = data
76
+ // .filter((d) => d.checked)
77
+ // .map((v, i, a) => `${v.display}${i < a.length - 1 ? ',' : ''}`)
78
+ // .join('');
79
+ const value = Object.keys(DropDown.Tokens[id].oncheckvalues);
80
+ htmls(
81
+ `.dropdown-current-${id}`,
82
+ value.map((v) => DropDown.Tokens[id].originData.find((_v) => _v.value === v).display),
83
+ );
84
+ } else {
85
+ htmls(`.dropdown-current-${id}`, optionData.display);
86
+ }
87
+ } else htmls(`.dropdown-current-${id}`, '');
88
+
89
+ this.Tokens[id].value =
90
+ options.type === 'checkbox' ? data.filter((d) => d.checked).map((d) => d.data) : optionData.data;
91
+
92
+ console.warn('current value dropdown id:' + id, this.Tokens[id].value);
93
+
94
+ s(`.${id}`).value = this.Tokens[id].value;
95
+
96
+ optionData.onClick(e);
97
+ }
98
+ };
99
+
100
+ this.Tokens[id].onClickEvents[`dropdown-option-${id}-${i}`] = onclick;
101
+ this.Tokens[id].onClickEvents[`dropdown-option-${id}-${valueDisplay}`] = onclick;
102
+ this.Tokens[id].onClickEvents[`dropdown-option-${valueDisplay}`] = onclick;
103
+
104
+ s(`.dropdown-option-${id}-${i}`).onclick = onclick;
105
+ });
106
+ render += html`
107
+ <div
108
+ class="in dropdown-option dropdown-option-${id}-${i} dropdown-option-${id}-${valueDisplay} dropdown-option-${valueDisplay} ${valueDisplay ===
109
+ 'reset' &&
110
+ options &&
111
+ !(options.resetOption === true)
112
+ ? 'hide'
113
+ : ''}"
114
+ >
115
+ ${options.type === 'checkbox' && optionData.value !== 'close' && optionData.value !== 'reset'
116
+ ? html`
117
+ ${await ToggleSwitch.Render({
118
+ id: `checkbox-role-${valueDisplay}`,
119
+ type: 'checkbox',
120
+ disabledOnClick: true,
121
+ checked: optionData.checked,
122
+ on: {
123
+ unchecked: () => {
124
+ optionData.checked = false;
125
+ delete DropDown.Tokens[id].oncheckvalues[valueDisplay];
126
+ },
127
+ checked: () => {
128
+ optionData.checked = true;
129
+ DropDown.Tokens[id].oncheckvalues[valueDisplay] = {};
130
+ },
131
+ },
132
+ })}
133
+ `
134
+ : ''}${optionData.display}
135
+ </div>
136
+ `;
137
+ }
138
+ return { render, index };
139
+ };
140
+
141
+ setTimeout(() => {
142
+ if (options.type === 'checkbox')
143
+ options.data.map((optionData) => {
144
+ const indexValue = options.data.findIndex((t) => optionData.checked && t.value === optionData.value);
145
+ if (indexValue > -1) setTimeout(() => s(`.dropdown-option-${id}-${indexValue}`).click());
146
+ });
147
+ else {
148
+ const indexValue = options.data.findIndex((t) => t.value === options.value);
149
+ if (indexValue > -1) setTimeout(() => s(`.dropdown-option-${id}-${indexValue}`).click());
150
+ }
151
+
152
+ s(`.dropdown-label-${id}`).onclick = switchOptionsPanel;
153
+ s(`.dropdown-current-${id}`).onclick = switchOptionsPanel;
154
+ if (options && options.open) switchOptionsPanel();
155
+
156
+ const dropDownSearchHandle = async () => {
157
+ const _data = [];
158
+ if (!s(`.search-box-${id}`)) return;
159
+
160
+ let _value = s(`.search-box-${id}`).value.toLowerCase();
161
+
162
+ for (const objData of options.data) {
163
+ const objValue = objData.value.toLowerCase();
164
+ if (
165
+ objValue.match(_value) ||
166
+ (Translate.Data[objData.value] &&
167
+ Object.keys(Translate.Data[objData.value]).find((t) =>
168
+ Translate.Data[objData.value][t].toLowerCase().match(_value),
169
+ ))
170
+ ) {
171
+ _data.push(objData);
172
+ }
173
+ }
174
+
175
+ if (_data.length > 0) {
176
+ const { render, index } = await _render(_data);
177
+ htmls(`.${id}-render-container`, render);
178
+ } else {
179
+ // const { render, index } = await _render(options.data);
180
+ htmls(
181
+ `.${id}-render-container`,
182
+ html` <div class="inl" style="padding: 10px; color: red">
183
+ <i class="fas fa-exclamation-circle"></i> ${Translate.Render('no-result-found')}
184
+ </div>`,
185
+ );
186
+ }
187
+ };
188
+
189
+ s(`.search-box-${id}`).oninput = dropDownSearchHandle;
190
+
191
+ // Not use onblur generate bug on input toggle
192
+ // s(`.search-box-${id}`).onblur = dropDownSearchHandle;
193
+ });
194
+
195
+ const { render, index } = await _render(options.data);
196
+
197
+ return html`
198
+ <div class="inl dropdown-container ${id} ${options?.containerClass ? options.containerClass : ''}">
199
+ <div class="in dropdown-option dropdown-label-${id} ${options && options.disableSelectLabel ? 'hide' : ''}">
200
+ <i class="fa-solid fa-caret-down"> </i> ${options.label}
201
+ </div>
202
+ <div
203
+ class="in dropdown-option dropdown-current-${id} ${options && options.disableSelectOptionsLabel
204
+ ? 'hide'
205
+ : ''}"
206
+ ></div>
207
+ <div class="in dropdown-option-${id} hide">
208
+ <div class="in dropdown-option ${options && options.disableSearchBox ? 'hide' : ''}">
209
+ ${await Input.Render({
210
+ id: `search-box-${id}`,
211
+ label: html`<i class="fa-solid fa-magnifying-glass"></i> ${Translate.Render('search')}`,
212
+ containerClass: 'in',
213
+ placeholder: true,
214
+ })}
215
+ </div>
216
+ <div class="${id}-render-container">${render}</div>
217
+ </div>
218
+ </div>
219
+ `;
220
+ },
221
+ };
222
+
223
+ export { DropDown };