cyberia 3.1.3 → 3.2.9

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 (377) hide show
  1. package/.env.example +0 -2
  2. package/.github/workflows/engine-cyberia.cd.yml +10 -8
  3. package/.github/workflows/engine-cyberia.ci.yml +12 -29
  4. package/.github/workflows/ghpkg.ci.yml +4 -4
  5. package/.github/workflows/npmpkg.ci.yml +28 -11
  6. package/.github/workflows/publish.ci.yml +21 -2
  7. package/.github/workflows/pwa-microservices-template-page.cd.yml +4 -5
  8. package/.github/workflows/pwa-microservices-template-test.ci.yml +3 -3
  9. package/.github/workflows/release.cd.yml +14 -10
  10. package/CHANGELOG.md +783 -1
  11. package/CLI-HELP.md +95 -18
  12. package/Dockerfile +0 -2
  13. package/README.md +290 -220
  14. package/bin/build.js +24 -7
  15. package/bin/cyberia.js +2838 -252
  16. package/bin/deploy.js +747 -125
  17. package/bin/file.js +9 -0
  18. package/bin/index.js +2838 -252
  19. package/bin/vs.js +1 -1
  20. package/conf.js +99 -65
  21. package/deployment.yaml +18 -164
  22. package/hardhat/hardhat.config.js +13 -13
  23. package/hardhat/ignition/modules/ObjectLayerToken.js +1 -1
  24. package/hardhat/package-lock.json +2559 -5864
  25. package/hardhat/package.json +14 -23
  26. package/hardhat/scripts/deployObjectLayerToken.js +1 -1
  27. package/hardhat/test/ObjectLayerToken.js +4 -2
  28. package/hardhat/types/ethers-contracts/ObjectLayerToken.ts +690 -0
  29. package/hardhat/types/ethers-contracts/common.ts +92 -0
  30. package/hardhat/types/ethers-contracts/factories/ObjectLayerToken__factory.ts +1055 -0
  31. package/hardhat/types/ethers-contracts/factories/index.ts +4 -0
  32. package/hardhat/types/ethers-contracts/hardhat.d.ts +47 -0
  33. package/hardhat/types/ethers-contracts/index.ts +6 -0
  34. package/jsconfig.json +1 -1
  35. package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +6 -5
  36. package/manifests/cronjobs/dd-cron/dd-cron-dns.yaml +6 -5
  37. package/manifests/deployment/dd-cyberia-development/deployment.yaml +18 -164
  38. package/manifests/deployment/dd-cyberia-development/proxy.yaml +7 -79
  39. package/manifests/deployment/dd-default-development/deployment.yaml +2 -6
  40. package/manifests/deployment/dd-test-development/deployment.yaml +112 -28
  41. package/manifests/deployment/dd-test-development/proxy.yaml +46 -1
  42. package/manifests/deployment/playwright/deployment.yaml +1 -1
  43. package/nodemon.json +1 -1
  44. package/package.json +39 -24
  45. package/proxy.yaml +7 -79
  46. package/scripts/k3s-node-setup.sh +2 -2
  47. package/scripts/nat-iptables.sh +103 -18
  48. package/scripts/rhel-grpc-setup.sh +56 -0
  49. package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.controller.js +58 -14
  50. package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.model.js +23 -14
  51. package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.router.js +5 -0
  52. package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.service.js +148 -20
  53. package/src/api/core/core.controller.js +10 -10
  54. package/src/api/core/core.service.js +10 -10
  55. package/src/api/crypto/crypto.controller.js +8 -8
  56. package/src/api/crypto/crypto.service.js +8 -8
  57. package/src/api/cyberia-action/cyberia-action.controller.js +74 -0
  58. package/src/api/cyberia-action/cyberia-action.model.js +87 -0
  59. package/src/api/cyberia-action/cyberia-action.router.js +27 -0
  60. package/src/api/cyberia-action/cyberia-action.service.js +42 -0
  61. package/src/api/cyberia-dialogue/cyberia-dialogue.controller.js +93 -0
  62. package/src/api/cyberia-dialogue/cyberia-dialogue.model.js +36 -0
  63. package/src/api/cyberia-dialogue/cyberia-dialogue.router.js +29 -0
  64. package/src/api/cyberia-dialogue/cyberia-dialogue.service.js +51 -0
  65. package/src/api/cyberia-entity/cyberia-entity.controller.js +74 -0
  66. package/src/api/cyberia-entity/cyberia-entity.model.js +24 -0
  67. package/src/api/cyberia-entity/cyberia-entity.router.js +27 -0
  68. package/src/api/cyberia-entity/cyberia-entity.service.js +42 -0
  69. package/src/api/cyberia-instance/cyberia-fallback-world.js +178 -0
  70. package/src/api/cyberia-instance/cyberia-instance.controller.js +92 -0
  71. package/src/api/cyberia-instance/cyberia-instance.model.js +87 -0
  72. package/src/api/cyberia-instance/cyberia-instance.router.js +63 -0
  73. package/src/api/cyberia-instance/cyberia-instance.service.js +156 -0
  74. package/src/api/cyberia-instance/cyberia-portal-connector.js +260 -0
  75. package/src/api/cyberia-instance/cyberia-world-generator.js +505 -0
  76. package/src/api/cyberia-instance-conf/cyberia-instance-conf.controller.js +74 -0
  77. package/src/api/cyberia-instance-conf/cyberia-instance-conf.defaults.js +574 -0
  78. package/src/api/cyberia-instance-conf/cyberia-instance-conf.model.js +231 -0
  79. package/src/api/cyberia-instance-conf/cyberia-instance-conf.router.js +27 -0
  80. package/src/api/cyberia-instance-conf/cyberia-instance-conf.service.js +46 -0
  81. package/src/api/cyberia-map/cyberia-map.controller.js +79 -0
  82. package/src/api/cyberia-map/cyberia-map.model.js +30 -0
  83. package/src/api/cyberia-map/cyberia-map.router.js +40 -0
  84. package/src/api/cyberia-map/cyberia-map.service.js +74 -0
  85. package/src/api/cyberia-quest/cyberia-quest.controller.js +74 -0
  86. package/src/api/cyberia-quest/cyberia-quest.model.js +67 -0
  87. package/src/api/cyberia-quest/cyberia-quest.router.js +27 -0
  88. package/src/api/cyberia-quest/cyberia-quest.service.js +42 -0
  89. package/src/api/cyberia-quest-progress/cyberia-quest-progress.controller.js +74 -0
  90. package/src/api/cyberia-quest-progress/cyberia-quest-progress.model.js +49 -0
  91. package/src/api/cyberia-quest-progress/cyberia-quest-progress.router.js +27 -0
  92. package/src/api/cyberia-quest-progress/cyberia-quest-progress.service.js +42 -0
  93. package/src/api/default/default.controller.js +10 -10
  94. package/src/api/default/default.service.js +10 -10
  95. package/src/api/document/document.controller.js +12 -12
  96. package/src/api/document/document.model.js +10 -16
  97. package/src/api/file/file.controller.js +8 -8
  98. package/src/api/file/file.model.js +10 -10
  99. package/src/api/file/file.ref.json +18 -0
  100. package/src/api/file/file.service.js +36 -36
  101. package/src/api/instance/instance.controller.js +10 -10
  102. package/src/api/instance/instance.model.js +4 -10
  103. package/src/api/instance/instance.service.js +10 -10
  104. package/src/api/ipfs/ipfs.controller.js +15 -36
  105. package/src/api/ipfs/ipfs.model.js +47 -47
  106. package/src/api/ipfs/ipfs.router.js +8 -13
  107. package/src/api/ipfs/ipfs.service.js +67 -129
  108. package/src/api/object-layer/object-layer.controller.js +12 -12
  109. package/src/api/object-layer/object-layer.model.js +4 -17
  110. package/src/api/object-layer/object-layer.router.js +30 -0
  111. package/src/api/object-layer/object-layer.service.js +126 -43
  112. package/src/api/object-layer-render-frames/object-layer-render-frames.controller.js +10 -10
  113. package/src/api/object-layer-render-frames/object-layer-render-frames.model.js +6 -16
  114. package/src/api/object-layer-render-frames/object-layer-render-frames.service.js +18 -14
  115. package/src/api/test/test.controller.js +8 -8
  116. package/src/api/test/test.service.js +8 -8
  117. package/src/api/user/guest.service.js +99 -0
  118. package/src/api/user/user.controller.js +6 -6
  119. package/src/api/user/user.model.js +8 -13
  120. package/src/api/user/user.service.js +11 -27
  121. package/src/cli/cluster.js +68 -21
  122. package/src/cli/db.js +753 -825
  123. package/src/cli/deploy.js +215 -125
  124. package/src/cli/env.js +29 -0
  125. package/src/cli/fs.js +82 -8
  126. package/src/cli/image.js +43 -1
  127. package/src/cli/index.js +74 -3
  128. package/src/cli/kubectl.js +211 -0
  129. package/src/cli/release.js +340 -0
  130. package/src/cli/repository.js +475 -74
  131. package/src/cli/run.js +582 -43
  132. package/src/cli/secrets.js +73 -0
  133. package/src/cli/ssh.js +1 -1
  134. package/src/cli/static.js +43 -115
  135. package/src/cli/test.js +3 -3
  136. package/src/client/Cryptokoyn.index.js +18 -22
  137. package/src/client/CyberiaPortal.index.js +19 -24
  138. package/src/client/Default.index.js +21 -34
  139. package/src/client/Itemledger.index.js +20 -27
  140. package/src/client/Underpost.index.js +19 -24
  141. package/src/client/components/core/404.js +4 -4
  142. package/src/client/components/core/500.js +4 -4
  143. package/src/client/components/core/Account.js +73 -60
  144. package/src/client/components/core/AgGrid.js +23 -33
  145. package/src/client/components/core/Alert.js +12 -13
  146. package/src/client/components/core/AppStore.js +69 -0
  147. package/src/client/components/core/Auth.js +35 -37
  148. package/src/client/components/core/Badge.js +7 -13
  149. package/src/client/components/core/BtnIcon.js +15 -17
  150. package/src/client/components/core/CalendarCore.js +43 -64
  151. package/src/client/components/core/Chat.js +13 -15
  152. package/src/client/components/core/ClientEvents.js +87 -0
  153. package/src/client/components/core/ColorPaletteElement.js +309 -0
  154. package/src/client/components/core/Content.js +17 -14
  155. package/src/client/components/core/Css.js +15 -71
  156. package/src/client/components/core/CssCore.js +12 -16
  157. package/src/client/components/core/D3Chart.js +4 -4
  158. package/src/client/components/core/Docs.js +64 -91
  159. package/src/client/components/core/DropDown.js +194 -96
  160. package/src/client/components/core/EventBus.js +92 -0
  161. package/src/client/components/core/EventsUI.js +14 -17
  162. package/src/client/components/core/FileExplorer.js +96 -228
  163. package/src/client/components/core/FullScreen.js +47 -75
  164. package/src/client/components/core/Input.js +24 -69
  165. package/src/client/components/core/Keyboard.js +26 -19
  166. package/src/client/components/core/KeyboardAvoidance.js +145 -0
  167. package/src/client/components/core/LoadingAnimation.js +25 -31
  168. package/src/client/components/core/LogIn.js +43 -43
  169. package/src/client/components/core/LogOut.js +25 -16
  170. package/src/client/components/core/Modal.js +462 -179
  171. package/src/client/components/core/NotificationManager.js +14 -18
  172. package/src/client/components/core/Panel.js +54 -51
  173. package/src/client/components/core/PanelForm.js +44 -144
  174. package/src/client/components/core/Polyhedron.js +110 -214
  175. package/src/client/components/core/PublicProfile.js +39 -32
  176. package/src/client/components/core/Recover.js +48 -44
  177. package/src/client/components/core/Responsive.js +88 -32
  178. package/src/client/components/core/RichText.js +9 -18
  179. package/src/client/components/core/Router.js +24 -3
  180. package/src/client/components/core/SearchBox.js +37 -37
  181. package/src/client/components/core/SignUp.js +39 -30
  182. package/src/client/components/core/SocketIo.js +112 -30
  183. package/src/client/components/core/SocketIoHandler.js +75 -0
  184. package/src/client/components/core/Stream.js +143 -95
  185. package/src/client/components/core/ToggleSwitch.js +8 -20
  186. package/src/client/components/core/ToolTip.js +5 -17
  187. package/src/client/components/core/Translate.js +56 -59
  188. package/src/client/components/core/Validator.js +26 -16
  189. package/src/client/components/core/Wallet.js +15 -26
  190. package/src/client/components/core/Webhook.js +40 -7
  191. package/src/client/components/core/Worker.js +163 -27
  192. package/src/client/components/core/windowGetDimensions.js +7 -7
  193. package/src/client/components/cryptokoyn/{MenuCryptokoyn.js → AppShellCryptokoyn.js} +59 -59
  194. package/src/client/components/cryptokoyn/AppStoreCryptokoyn.js +5 -0
  195. package/src/client/components/cryptokoyn/CssCryptokoyn.js +15 -15
  196. package/src/client/components/cryptokoyn/LogInCryptokoyn.js +9 -7
  197. package/src/client/components/cryptokoyn/LogOutCryptokoyn.js +8 -6
  198. package/src/client/components/cryptokoyn/RouterCryptokoyn.js +37 -0
  199. package/src/client/components/cryptokoyn/SettingsCryptokoyn.js +4 -4
  200. package/src/client/components/cryptokoyn/SignUpCryptokoyn.js +6 -4
  201. package/src/client/components/cryptokoyn/SocketIoCryptokoyn.js +3 -51
  202. package/src/client/components/cyberia/InstanceEngineCyberia.js +781 -0
  203. package/src/client/components/cyberia/MapEngineCyberia.js +1836 -2
  204. package/src/client/components/cyberia/ObjectLayerEngine.js +19 -0
  205. package/src/client/components/cyberia/ObjectLayerEngineModal.js +1220 -99
  206. package/src/client/components/cyberia/ObjectLayerEngineViewer.js +252 -316
  207. package/src/client/components/cyberia-portal/{MenuCyberiaPortal.js → AppShellCyberiaPortal.js} +136 -103
  208. package/src/client/components/cyberia-portal/AppStoreCyberiaPortal.js +5 -0
  209. package/src/client/components/cyberia-portal/CommonCyberiaPortal.js +462 -32
  210. package/src/client/components/cyberia-portal/CssCyberiaPortal.js +15 -15
  211. package/src/client/components/cyberia-portal/LogInCyberiaPortal.js +9 -7
  212. package/src/client/components/cyberia-portal/LogOutCyberiaPortal.js +8 -6
  213. package/src/client/components/cyberia-portal/MainBodyCyberiaPortal.js +4 -4
  214. package/src/client/components/cyberia-portal/RouterCyberiaPortal.js +60 -0
  215. package/src/client/components/cyberia-portal/SettingsCyberiaPortal.js +4 -4
  216. package/src/client/components/cyberia-portal/SignUpCyberiaPortal.js +6 -4
  217. package/src/client/components/cyberia-portal/SocketIoCyberiaPortal.js +3 -49
  218. package/src/client/components/cyberia-portal/TranslateCyberiaPortal.js +8 -4
  219. package/src/client/components/default/{MenuDefault.js → AppShellDefault.js} +91 -91
  220. package/src/client/components/default/AppStoreDefault.js +5 -0
  221. package/src/client/components/default/CssDefault.js +12 -12
  222. package/src/client/components/default/LogInDefault.js +9 -7
  223. package/src/client/components/default/LogOutDefault.js +8 -6
  224. package/src/client/components/default/RouterDefault.js +47 -0
  225. package/src/client/components/default/SettingsDefault.js +4 -4
  226. package/src/client/components/default/SignUpDefault.js +6 -4
  227. package/src/client/components/default/SocketIoDefault.js +3 -51
  228. package/src/client/components/default/TranslateDefault.js +3 -3
  229. package/src/client/components/itemledger/{MenuItemledger.js → AppShellItemledger.js} +59 -59
  230. package/src/client/components/itemledger/AppStoreItemledger.js +5 -0
  231. package/src/client/components/itemledger/CssItemledger.js +15 -15
  232. package/src/client/components/itemledger/LogInItemledger.js +9 -7
  233. package/src/client/components/itemledger/LogOutItemledger.js +8 -6
  234. package/src/client/components/itemledger/RouterItemledger.js +38 -0
  235. package/src/client/components/itemledger/SettingsItemledger.js +4 -4
  236. package/src/client/components/itemledger/SignUpItemledger.js +6 -4
  237. package/src/client/components/itemledger/SocketIoItemledger.js +3 -51
  238. package/src/client/components/itemledger/TranslateItemledger.js +3 -3
  239. package/src/client/components/underpost/{MenuUnderpost.js → AppShellUnderpost.js} +92 -92
  240. package/src/client/components/underpost/AppStoreUnderpost.js +5 -0
  241. package/src/client/components/underpost/CssUnderpost.js +14 -14
  242. package/src/client/components/underpost/CyberpunkBloggerUnderpost.js +4 -4
  243. package/src/client/components/underpost/DocumentSearchProvider.js +1 -1
  244. package/src/client/components/underpost/LabGalleryUnderpost.js +12 -15
  245. package/src/client/components/underpost/LogInUnderpost.js +9 -7
  246. package/src/client/components/underpost/LogOutUnderpost.js +8 -6
  247. package/src/client/components/underpost/RouterUnderpost.js +45 -0
  248. package/src/client/components/underpost/SettingsUnderpost.js +4 -4
  249. package/src/client/components/underpost/SignUpUnderpost.js +6 -4
  250. package/src/client/components/underpost/SocketIoUnderpost.js +3 -51
  251. package/src/client/components/underpost/TranslateUnderpost.js +4 -4
  252. package/src/client/public/cyberia-docs/ACTION-SYSTEM.md +235 -0
  253. package/src/client/public/cyberia-docs/ARCHITECTURE.md +443 -0
  254. package/src/client/public/cyberia-docs/CYBERIA-CLI.md +417 -0
  255. package/src/client/public/cyberia-docs/CYBERIA-CLIENT.md +313 -0
  256. package/src/client/public/cyberia-docs/CYBERIA-SERVER.md +260 -0
  257. package/src/client/public/cyberia-docs/ENTITY-PROFILE.md +241 -0
  258. package/src/client/public/cyberia-docs/HARDHAT-MODULE.md +300 -0
  259. package/src/client/public/cyberia-docs/OFF-CHAIN-ECONOMY.md +279 -0
  260. package/src/client/public/cyberia-docs/QUEST-SYSTEM.md +206 -0
  261. package/src/client/public/cyberia-docs/ROADMAP.md +240 -0
  262. package/src/client/public/cyberia-docs/WHITE-PAPER.md +732 -0
  263. package/src/client/services/atlas-sprite-sheet/atlas-sprite-sheet.service.js +14 -20
  264. package/src/client/services/core/core.service.js +35 -55
  265. package/src/client/services/crypto/crypto.service.js +8 -13
  266. package/src/client/services/cyberia-action/cyberia-action.service.js +99 -0
  267. package/src/client/services/cyberia-dialogue/cyberia-dialogue.service.js +99 -0
  268. package/src/client/services/cyberia-entity/cyberia-entity.management.js +57 -0
  269. package/src/client/services/cyberia-entity/cyberia-entity.service.js +99 -0
  270. package/src/client/services/cyberia-instance/cyberia-instance.management.js +194 -0
  271. package/src/client/services/cyberia-instance/cyberia-instance.service.js +116 -0
  272. package/src/client/services/cyberia-instance-conf/cyberia-instance-conf.service.js +99 -0
  273. package/src/client/services/cyberia-map/cyberia-map.management.js +193 -0
  274. package/src/client/services/cyberia-map/cyberia-map.service.js +120 -0
  275. package/src/client/services/cyberia-quest/cyberia-quest.service.js +99 -0
  276. package/src/client/services/cyberia-quest-progress/cyberia-quest-progress.service.js +99 -0
  277. package/src/client/services/default/default.management.js +159 -267
  278. package/src/client/services/default/default.service.js +10 -16
  279. package/src/client/services/document/document.service.js +14 -19
  280. package/src/client/services/file/file.service.js +8 -13
  281. package/src/client/services/instance/instance.management.js +6 -6
  282. package/src/client/services/instance/instance.service.js +10 -15
  283. package/src/client/services/ipfs/ipfs.service.js +14 -40
  284. package/src/client/services/object-layer/object-layer.management.js +14 -14
  285. package/src/client/services/object-layer/object-layer.service.js +39 -24
  286. package/src/client/services/object-layer-render-frames/object-layer-render-frames.service.js +10 -16
  287. package/src/client/services/test/test.service.js +8 -13
  288. package/src/client/services/user/guest.service.js +86 -0
  289. package/src/client/services/user/user.management.js +6 -6
  290. package/src/client/services/user/user.service.js +14 -20
  291. package/src/client/ssr/body/404.js +3 -3
  292. package/src/client/ssr/body/500.js +3 -3
  293. package/src/client/ssr/body/CacheControl.js +5 -2
  294. package/src/client/ssr/body/DefaultSplashScreen.js +19 -12
  295. package/src/client/ssr/body/UnderpostDefaultSplashScreen.js +13 -6
  296. package/src/client/ssr/head/PwaItemledger.js +197 -60
  297. package/src/client/ssr/mailer/DefaultRecoverEmail.js +19 -20
  298. package/src/client/ssr/mailer/DefaultVerifyEmail.js +15 -16
  299. package/src/client/ssr/offline/Maintenance.js +12 -11
  300. package/src/client/ssr/offline/NoNetworkConnection.js +3 -3
  301. package/src/client/ssr/pages/CyberiaServerMetrics.js +1 -1
  302. package/src/client/ssr/pages/Test.js +2 -2
  303. package/src/client/sw/core.sw.js +212 -0
  304. package/src/grpc/cyberia/grpc-server.js +642 -0
  305. package/src/index.js +24 -1
  306. package/src/runtime/cyberia-client/Dockerfile +80 -0
  307. package/src/runtime/cyberia-server/Dockerfile +37 -0
  308. package/src/runtime/express/Dockerfile +5 -1
  309. package/src/runtime/express/Express.js +18 -1
  310. package/src/runtime/lampp/Dockerfile +17 -5
  311. package/src/runtime/lampp/Lampp.js +27 -4
  312. package/src/runtime/wp/Dockerfile +62 -0
  313. package/src/runtime/wp/Wp.js +639 -0
  314. package/src/server/atlas-sprite-sheet-generator.js +4 -2
  315. package/src/server/auth.js +24 -1
  316. package/src/server/backup.js +37 -9
  317. package/src/server/client-build-docs.js +52 -46
  318. package/src/server/client-build.js +356 -82
  319. package/src/server/client-formatted.js +140 -57
  320. package/src/server/conf.js +29 -13
  321. package/src/server/cron.js +25 -23
  322. package/src/server/data-query.js +32 -20
  323. package/src/server/dns.js +24 -1
  324. package/src/server/ipfs-client.js +253 -89
  325. package/src/server/object-layer.js +150 -114
  326. package/src/server/peer.js +8 -0
  327. package/src/server/process.js +13 -27
  328. package/src/server/runtime.js +25 -1
  329. package/src/server/semantic-layer-generator-floor.js +319 -0
  330. package/src/server/semantic-layer-generator-resource.js +259 -0
  331. package/src/server/semantic-layer-generator-skin.js +1164 -0
  332. package/src/server/semantic-layer-generator.js +211 -542
  333. package/src/server/shape-generator.js +108 -0
  334. package/src/server/start.js +19 -5
  335. package/src/server/valkey.js +141 -235
  336. package/src/ws/IoInterface.js +1 -10
  337. package/src/ws/IoServer.js +14 -33
  338. package/src/ws/core/channels/core.ws.chat.js +65 -20
  339. package/src/ws/core/channels/core.ws.mailer.js +113 -32
  340. package/src/ws/core/channels/core.ws.stream.js +90 -31
  341. package/src/ws/core/core.ws.connection.js +12 -33
  342. package/src/ws/core/core.ws.emit.js +10 -26
  343. package/src/ws/core/core.ws.server.js +25 -58
  344. package/src/ws/default/channels/default.ws.main.js +53 -12
  345. package/src/ws/default/default.ws.connection.js +26 -13
  346. package/src/ws/default/default.ws.server.js +30 -12
  347. package/tsconfig.docs.json +15 -0
  348. package/typedoc.dd-cyberia.json +29 -0
  349. package/typedoc.json +29 -0
  350. package/WHITE-PAPER.md +0 -1540
  351. package/hardhat/README.md +0 -531
  352. package/hardhat/WHITE-PAPER.md +0 -1540
  353. package/jsdoc.dd-cyberia.json +0 -59
  354. package/jsdoc.json +0 -59
  355. package/src/api/object-layer/README.md +0 -347
  356. package/src/client/components/core/ColorPalette.js +0 -5267
  357. package/src/client/components/core/JoyStick.js +0 -80
  358. package/src/client/components/cryptokoyn/CommonCryptokoyn.js +0 -29
  359. package/src/client/components/cryptokoyn/ElementsCryptokoyn.js +0 -38
  360. package/src/client/components/cryptokoyn/RoutesCryptokoyn.js +0 -39
  361. package/src/client/components/cyberia-portal/ElementsCyberiaPortal.js +0 -38
  362. package/src/client/components/cyberia-portal/RoutesCyberiaPortal.js +0 -58
  363. package/src/client/components/cyberia-portal/ServerCyberiaPortal.js +0 -136
  364. package/src/client/components/default/ElementsDefault.js +0 -38
  365. package/src/client/components/default/RoutesDefault.js +0 -49
  366. package/src/client/components/itemledger/CommonItemledger.js +0 -29
  367. package/src/client/components/itemledger/ElementsItemledger.js +0 -38
  368. package/src/client/components/itemledger/RoutesItemledger.js +0 -40
  369. package/src/client/components/underpost/CommonUnderpost.js +0 -29
  370. package/src/client/components/underpost/ElementsUnderpost.js +0 -38
  371. package/src/client/components/underpost/RoutesUnderpost.js +0 -47
  372. package/src/client/sw/default.sw.js +0 -127
  373. package/src/client/sw/template.sw.js +0 -84
  374. package/src/ws/core/management/core.ws.chat.js +0 -8
  375. package/src/ws/core/management/core.ws.mailer.js +0 -16
  376. package/src/ws/core/management/core.ws.stream.js +0 -8
  377. package/src/ws/default/management/default.ws.main.js +0 -8
@@ -3,7 +3,6 @@ import validator from 'validator';
3
3
  import { userRoleEnum } from '../../client/components/core/CommonJs.js';
4
4
  import crypto from 'crypto';
5
5
  // https://mongoosejs.com/docs/2.7.x/docs/schematypes.html
6
-
7
6
  const UserSchema = new Schema(
8
7
  {
9
8
  email: {
@@ -88,13 +87,10 @@ const UserSchema = new Schema(
88
87
  timestamps: true,
89
88
  },
90
89
  );
91
-
92
90
  const UserModel = model('User', UserSchema);
93
-
94
91
  const ProviderSchema = UserSchema;
95
-
96
- const UserDto = {
97
- select: {
92
+ class UserDto {
93
+ static select = {
98
94
  get: () => {
99
95
  return {
100
96
  _id: 1,
@@ -112,8 +108,8 @@ const UserDto = {
112
108
  getAll: () => {
113
109
  return { _id: 1 };
114
110
  },
115
- },
116
- public: {
111
+ };
112
+ static public = {
117
113
  get: () => {
118
114
  return {
119
115
  _id: 1,
@@ -125,8 +121,8 @@ const UserDto = {
125
121
  updatedAt: 1,
126
122
  };
127
123
  },
128
- },
129
- auth: {
124
+ };
125
+ static auth = {
130
126
  payload: (user, jwtid, ip, userAgent, host, path) => {
131
127
  const tokenPayload = {
132
128
  _id: user._id.toString(),
@@ -141,7 +137,6 @@ const UserDto = {
141
137
  };
142
138
  return tokenPayload;
143
139
  },
144
- },
145
- };
146
-
140
+ };
141
+ }
147
142
  export { UserSchema, UserModel, userRoleEnum, ProviderSchema, UserDto };
@@ -9,19 +9,17 @@ import {
9
9
  refreshSessionAndToken,
10
10
  logoutSession,
11
11
  jwtSign,
12
- getBearerToken,
13
12
  validatePasswordMiddleware,
14
13
  } from '../../server/auth.js';
15
14
  import { MailerProvider } from '../../mailer/MailerProvider.js';
16
- import { CoreWsMailerManagement } from '../../ws/core/management/core.ws.mailer.js';
17
- import { CoreWsEmit } from '../../ws/core/core.ws.emit.js';
15
+ import { CoreWsEmitter } from '../../ws/core/core.ws.emit.js';
18
16
  import { CoreWsMailerChannel } from '../../ws/core/channels/core.ws.mailer.js';
19
17
  import validator from 'validator';
20
18
  import { DataBaseProvider } from '../../db/DataBaseProvider.js';
21
19
  import { FileFactory, FileCleanup } from '../file/file.service.js';
22
20
  import { UserDto } from './user.model.js';
23
- import { selectDtoFactory, ValkeyAPI } from '../../server/valkey.js';
24
21
  import { timer } from '../../client/components/core/CommonJs.js';
22
+ import { GuestService } from './guest.service.js';
25
23
 
26
24
  const logger = loggerFactory(import.meta);
27
25
 
@@ -227,15 +225,7 @@ const UserService = {
227
225
  } else throw new Error('Invalid credentials');
228
226
 
229
227
  case 'guest': {
230
- const user = await ValkeyAPI.valkeyObjectFactory(options, 'user');
231
- await ValkeyAPI.setValkeyObject(options, user.email, user);
232
- return {
233
- token: jwtSign(
234
- UserDto.auth.payload(user, null, req.ip, req.headers['user-agent'], options.host, options.path),
235
- options,
236
- ),
237
- user: selectDtoFactory(user, UserDto.select.get()),
238
- };
228
+ return await GuestService.create(req, options);
239
229
  }
240
230
 
241
231
  default:
@@ -319,11 +309,13 @@ const UserService = {
319
309
  {
320
310
  const user = await User.findByIdAndUpdate(_id, { emailConfirmed: true }, { runValidators: true });
321
311
  }
322
- const userWsId = CoreWsMailerManagement.getUserWsId(`${options.host}${options.path}`, user._id.toString());
323
- CoreWsEmit(CoreWsMailerChannel.channel, CoreWsMailerChannel.client[userWsId], {
324
- status: 'email-confirmed',
325
- id: userWsId,
326
- });
312
+ const userWsId = CoreWsMailerChannel.getUserWsId(`${options.host}${options.path}`, user._id.toString());
313
+ if (userWsId && CoreWsMailerChannel.client[userWsId]) {
314
+ CoreWsEmitter.emit(CoreWsMailerChannel.channel, CoreWsMailerChannel.client[userWsId], {
315
+ status: 'email-confirmed',
316
+ id: userWsId,
317
+ });
318
+ }
327
319
  options.png.header(res, req);
328
320
  return options.png.buffer['check'];
329
321
  } else {
@@ -359,8 +351,7 @@ const UserService = {
359
351
  case 'auth': {
360
352
  let user;
361
353
  if (req.auth.user._id.match('guest')) {
362
- user = await ValkeyAPI.getValkeyObject(options, req.auth.user.email);
363
- if (!user) throw new Error('guest user expired');
354
+ return await GuestService.auth(req, options);
364
355
  } else
365
356
  user = await User.findOne({
366
357
  _id: req.auth.user._id,
@@ -368,13 +359,6 @@ const UserService = {
368
359
 
369
360
  if (!user) throw new Error('user not found');
370
361
 
371
- const guestUser = await ValkeyAPI.getValkeyObject(options, req.auth.user.email);
372
- if (guestUser)
373
- return {
374
- user: selectDtoFactory(guestUser, UserDto.select.get()),
375
- token: getBearerToken(req),
376
- };
377
-
378
362
  return {
379
363
  token: await refreshSessionAndToken(req, res, User, options),
380
364
  user: await User.findOne({
@@ -111,7 +111,7 @@ class UnderpostCluster {
111
111
  const npmRoot = getNpmRootPath();
112
112
  const underpostRoot = options.dev ? '.' : `${npmRoot}/underpost`;
113
113
 
114
- if (options.listPods) return console.table(Underpost.deploy.get(podName ?? undefined));
114
+ if (options.listPods) return console.table(Underpost.kubectl.get(podName ?? undefined));
115
115
  // Set default namespace if not specified
116
116
  if (!options.namespace) options.namespace = 'default';
117
117
 
@@ -146,10 +146,10 @@ class UnderpostCluster {
146
146
  }
147
147
 
148
148
  // Check if a cluster (Kind, Kubeadm, or K3s) is already initialized
149
- const alreadyKubeadmCluster = Underpost.deploy.get('calico-kube-controllers')[0];
150
- const alreadyKindCluster = Underpost.deploy.get('kube-apiserver-kind-control-plane')[0];
149
+ const alreadyKubeadmCluster = Underpost.kubectl.get('calico-kube-controllers')[0];
150
+ const alreadyKindCluster = Underpost.kubectl.get('kube-apiserver-kind-control-plane')[0];
151
151
  // K3s pods often contain 'svclb-traefik' in the kube-system namespace
152
- const alreadyK3sCluster = Underpost.deploy.get('svclb-traefik')[0];
152
+ const alreadyK3sCluster = Underpost.kubectl.get('svclb-traefik')[0];
153
153
 
154
154
  // --- Kubeadm/Kind/K3s Cluster Initialization ---
155
155
  if (!alreadyKubeadmCluster && !alreadyKindCluster && !alreadyK3sCluster) {
@@ -172,9 +172,19 @@ class UnderpostCluster {
172
172
  const podNetworkCidr = options.podNetworkCidr || '192.168.0.0/16';
173
173
  const controlPlaneEndpoint = options.controlPlaneEndpoint || `${os.hostname()}:6443`;
174
174
 
175
- // Initialize kubeadm control plane
175
+ // Initialize kubeadm control plane.
176
+ // Use CRI-O socket when available, otherwise fall back to containerd.
177
+ const crioSocket = 'unix:///var/run/crio/crio.sock';
178
+ const containerdSocket = 'unix:///run/containerd/containerd.sock';
179
+ const criSocket =
180
+ shellExec(`test -S /var/run/crio/crio.sock && echo crio || echo containerd`, {
181
+ stdout: true,
182
+ silent: true,
183
+ }).trim() === 'crio'
184
+ ? crioSocket
185
+ : containerdSocket;
176
186
  shellExec(
177
- `sudo kubeadm init --pod-network-cidr=${podNetworkCidr} --control-plane-endpoint="${controlPlaneEndpoint}"`,
187
+ `sudo kubeadm init --pod-network-cidr=${podNetworkCidr} --control-plane-endpoint="${controlPlaneEndpoint}" --cri-socket=${criSocket}`,
178
188
  );
179
189
  // Configure kubectl for the current user
180
190
  Underpost.cluster.chown('kubeadm'); // Pass 'kubeadm' to chown
@@ -299,7 +309,7 @@ EOF
299
309
  members: [{ _id: 0, host: `${options.mongoDbHost}:27017` }],
300
310
  };
301
311
 
302
- const [pod] = Underpost.deploy.get(deploymentName);
312
+ const [pod] = Underpost.kubectl.get(deploymentName);
303
313
 
304
314
  shellExec(
305
315
  `sudo kubectl exec -i ${pod.NAME} -- mongo --quiet \
@@ -351,7 +361,7 @@ EOF
351
361
  }
352
362
 
353
363
  if (options.certManager) {
354
- if (!Underpost.deploy.get('cert-manager').find((p) => p.STATUS === 'Running')) {
364
+ if (!Underpost.kubectl.get('cert-manager').find((p) => p.STATUS === 'Running')) {
355
365
  shellExec(`helm repo add jetstack https://charts.jetstack.io --force-update`);
356
366
  shellExec(
357
367
  `helm install cert-manager jetstack/cert-manager \
@@ -389,8 +399,17 @@ EOF
389
399
  );
390
400
  shellExec(`rm -f ${tarPath}`);
391
401
  } else if (options.kubeadm || options.k3s) {
392
- // Kubeadm / K3s: use crictl to pull directly into containerd
393
- shellExec(`sudo crictl pull ${image}`);
402
+ // Kubeadm / K3s: use crictl to pull directly into the active CRI runtime.
403
+ // crictl is not in sudo's secure_path; pass full PATH through env.
404
+ // Point crictl at CRI-O when the socket exists, otherwise fall back to containerd.
405
+ const criSock =
406
+ shellExec(`test -S /var/run/crio/crio.sock && echo crio || echo containerd`, {
407
+ stdout: true,
408
+ silent: true,
409
+ }).trim() === 'crio'
410
+ ? 'unix:///var/run/crio/crio.sock'
411
+ : 'unix:///run/containerd/containerd.sock';
412
+ shellExec(`sudo env PATH="$PATH:/usr/local/bin:/usr/bin" crictl --runtime-endpoint ${criSock} pull ${image}`);
394
413
  }
395
414
  },
396
415
 
@@ -453,12 +472,11 @@ net.ipv4.ip_forward = 1' | sudo tee ${iptableConfPath}`,
453
472
  shellExec(`sudo sysctl -w fs.inotify.max_queued_events=2099999999`);
454
473
 
455
474
  // shellExec(`sudo sysctl --system`); // Apply sysctl changes immediately
456
- // Apply NAT iptables rules.
475
+ // Apply NAT iptables rules and configure firewalld for Kubernetes.
476
+ // nat-iptables.sh enables firewalld and opens all required ports; do NOT stop it
477
+ // afterwards — keeping firewalld running with these rules is required for
478
+ // multi-machine kubeadm inter-node communication.
457
479
  shellExec(`${underpostRoot}/scripts/nat-iptables.sh`, { silent: true });
458
-
459
- // Disable firewalld (common cause of network issues in Kubernetes)
460
- shellExec(`sudo systemctl stop firewalld`); // Stop if running
461
- shellExec(`sudo systemctl disable firewalld`); // Disable from starting on boot
462
480
  },
463
481
 
464
482
  /**
@@ -575,8 +593,10 @@ net.ipv4.ip_forward = 1' | sudo tee ${iptableConfPath}`,
575
593
  shellExec('sudo systemctl stop kubelet');
576
594
  shellExec('sudo systemctl stop docker');
577
595
  shellExec('sudo systemctl stop podman');
578
- // Safely unmount pod filesystems to avoid errors.
579
- shellExec('sudo umount -f /var/lib/kubelet/pods/*/*');
596
+ // Lazy-unmount all kubelet pod mounts to avoid 'Device or resource busy' on rm.
597
+ shellExec(
598
+ `sudo sh -c 'findmnt --raw --noheadings -o TARGET | grep /var/lib/kubelet | sort -r | xargs -r umount -l' 2>/dev/null || true`,
599
+ );
580
600
 
581
601
  // Phase 3: Execute official uninstallation commands (type-specific)
582
602
  const clusterType = options.clusterType || 'kind';
@@ -584,6 +604,14 @@ net.ipv4.ip_forward = 1' | sudo tee ${iptableConfPath}`,
584
604
  `Phase 3/7: Executing official reset/uninstallation commands for cluster type: '${clusterType}'...`,
585
605
  );
586
606
  if (clusterType === 'kubeadm') {
607
+ // Kill control plane processes that hold ports (6443, 10257, 10259, 2379, 2380)
608
+ // so the next `kubeadm init` does not fail with [ERROR Port-xxxx].
609
+ logger.info(' -> Stopping and killing control plane containers and processes...');
610
+ shellExec('sudo crictl rm -a -f 2>/dev/null || true');
611
+ shellExec('sudo crictl rmp -a -f 2>/dev/null || true');
612
+ shellExec('sudo systemctl stop etcd 2>/dev/null || true');
613
+ for (const port of [6443, 10259, 10257, 2379, 2380])
614
+ shellExec(`sudo fuser -k ${port}/tcp 2>/dev/null || true`);
587
615
  logger.info(' -> Executing kubeadm reset...');
588
616
  shellExec('sudo kubeadm reset --force');
589
617
  } else if (clusterType === 'k3s') {
@@ -600,7 +628,12 @@ net.ipv4.ip_forward = 1' | sudo tee ${iptableConfPath}`,
600
628
  // Remove any leftover configurations and data.
601
629
  shellExec('sudo rm -rf /etc/kubernetes/*');
602
630
  shellExec('sudo rm -rf /etc/cni/net.d/*');
631
+ // Second-pass lazy umount before rm to clear any remaining busy mounts.
632
+ shellExec(
633
+ `sudo sh -c 'findmnt --raw --noheadings -o TARGET | grep /var/lib/kubelet | sort -r | xargs -r umount -l' 2>/dev/null || true`,
634
+ );
603
635
  shellExec('sudo rm -rf /var/lib/kubelet/*');
636
+ shellExec('sudo rm -rf /var/lib/etcd');
604
637
  shellExec('sudo rm -rf /var/lib/cni/*');
605
638
  shellExec('sudo rm -rf /var/lib/docker/*');
606
639
  shellExec('sudo rm -rf /var/lib/containerd/*');
@@ -613,11 +646,14 @@ net.ipv4.ip_forward = 1' | sudo tee ${iptableConfPath}`,
613
646
  // Remove iptables rules and CNI network interfaces.
614
647
  shellExec('sudo iptables -F');
615
648
  shellExec('sudo iptables -t nat -F');
616
- shellExec('sudo ip link del cni0');
617
- shellExec('sudo ip link del flannel.1');
649
+ shellExec('sudo ip link del cni0 2>/dev/null || true');
650
+ shellExec('sudo ip link del flannel.1 2>/dev/null || true');
651
+ shellExec('sudo ip link del vxlan.calico 2>/dev/null || true');
652
+ shellExec('sudo ip link del tunl0 2>/dev/null || true');
618
653
 
619
654
  logger.info('Phase 6/7: Clean up images');
620
- shellExec(`podman rmi $(podman images -qa) --force`);
655
+ shellExec('sudo podman rmi --all --force 2>/dev/null || true');
656
+ shellExec('sudo crictl rmi --prune 2>/dev/null || true');
621
657
 
622
658
  // Phase 6: Reload daemon and finalize
623
659
  logger.info('Phase 7/7: Reloading the system daemon and finalizing...');
@@ -641,7 +677,7 @@ net.ipv4.ip_forward = 1' | sudo tee ${iptableConfPath}`,
641
677
  const resources = {};
642
678
  const nodeName = node
643
679
  ? node
644
- : Underpost.deploy.get('kind-control-plane', 'node').length > 0
680
+ : Underpost.kubectl.get('kind-control-plane', 'node').length > 0
645
681
  ? 'kind-control-plane'
646
682
  : os.hostname();
647
683
  const info = shellExec(`kubectl describe node ${nodeName} | grep -E '(Allocatable:|Capacity:)' -A 6`, {
@@ -687,6 +723,9 @@ net.ipv4.ip_forward = 1' | sudo tee ${iptableConfPath}`,
687
723
  // Install Podman
688
724
  shellExec(`sudo dnf -y install podman`);
689
725
 
726
+ // Install CRI-O (required for kubeadm with CRI-O socket)
727
+ shellExec(`node bin run install-crio`);
728
+
690
729
  // Install Kind (Kubernetes in Docker)
691
730
  shellExec(`[ $(uname -m) = ${archData.name} ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.29.0/kind-linux-${archData.alias}
692
731
  chmod +x ./kind
@@ -744,6 +783,14 @@ EOF`);
744
783
  console.log('Removing Podman...');
745
784
  shellExec(`sudo dnf -y remove podman`);
746
785
 
786
+ // Remove CRI-O
787
+ console.log('Removing CRI-O...');
788
+ shellExec(`sudo systemctl stop crio 2>/dev/null || true`);
789
+ shellExec(`sudo systemctl disable crio 2>/dev/null || true`);
790
+ shellExec(`sudo dnf -y remove cri-o`);
791
+ shellExec(`sudo rm -f /etc/yum.repos.d/cri-o.repo`);
792
+ shellExec(`sudo rm -f /etc/crictl.yaml`);
793
+
747
794
  // Remove Kubeadm, Kubelet, and Kubectl
748
795
  console.log('Removing Kubernetes tools...');
749
796
  shellExec(`sudo yum remove -y kubelet kubeadm kubectl`);