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
@@ -1,37 +1,467 @@
1
- const ModelElement = {
2
- user: () => {
3
- return {
4
- user: {
5
- _id: '',
6
- },
7
- };
8
- },
1
+ /**
2
+ * Shared Cyberia plain-data module.
3
+ * Keep this file free of runtime-specific imports so the same registry can be
4
+ * consumed by client, server, and CLI code.
5
+ */
6
+ const ITEM_TYPES = Object.freeze({
7
+ skin: 'skin',
8
+ breastplate: 'breastplate',
9
+ weapon: 'weapon',
10
+ skill: 'skill',
11
+ coin: 'coin',
12
+ floor: 'floor',
13
+ obstacle: 'obstacle',
14
+ portal: 'portal',
15
+ foreground: 'foreground',
16
+ resource: 'resource',
17
+ });
18
+ const ENTITY_TYPES = Object.freeze({
19
+ player: 'player',
20
+ other_player: 'other_player',
21
+ bot: 'bot',
22
+ skill: 'skill',
23
+ coin: 'coin',
24
+ floor: 'floor',
25
+ obstacle: 'obstacle',
26
+ portal: 'portal',
27
+ foreground: 'foreground',
28
+ resource: 'resource',
29
+ });
30
+ const QUEST_STEPS_TYPES = Object.freeze(['collect', 'talk', 'kill']);
31
+ const CYBERIA_ACTION_TYPES = Object.freeze(['craft', 'shop', 'storage', 'quest-talk']);
32
+ const ENTITY_TYPE_TO_ITEM_TYPES = Object.freeze({
33
+ [ENTITY_TYPES.player]: Object.freeze([ITEM_TYPES.skin, ITEM_TYPES.breastplate, ITEM_TYPES.weapon]),
34
+ [ENTITY_TYPES.other_player]: Object.freeze([ITEM_TYPES.skin, ITEM_TYPES.breastplate, ITEM_TYPES.weapon]),
35
+ [ENTITY_TYPES.bot]: Object.freeze([ITEM_TYPES.skin, ITEM_TYPES.weapon]),
36
+ [ENTITY_TYPES.skill]: Object.freeze([ITEM_TYPES.skill]),
37
+ [ENTITY_TYPES.coin]: Object.freeze([ITEM_TYPES.coin]),
38
+ [ENTITY_TYPES.floor]: Object.freeze([ITEM_TYPES.floor]),
39
+ [ENTITY_TYPES.obstacle]: Object.freeze([ITEM_TYPES.obstacle]),
40
+ [ENTITY_TYPES.portal]: Object.freeze([ITEM_TYPES.portal]),
41
+ [ENTITY_TYPES.foreground]: Object.freeze([ITEM_TYPES.foreground]),
42
+ [ENTITY_TYPES.resource]: Object.freeze([ITEM_TYPES.resource]),
43
+ });
44
+ class CyberiaDependencies {
45
+ static 'maxrects-packer' = '^2.7.3';
46
+ static pngjs = '^7.0.0';
47
+ static jimp = '^1.6.0';
48
+ static sharp = '^0.34.5';
49
+ static ethers = '~6.16.0';
50
+ }
51
+ const DefaultCyberiaItems = [
52
+ { item: { id: 'coin', type: ITEM_TYPES.coin } },
53
+ // { item: { id: 'red-power', type: 'skill' } },
54
+ // { item: { id: 'heal', type: 'skill' } },
55
+ { item: { id: 'hatchet-skill', type: ITEM_TYPES.skill } },
56
+ // { item: { id: 'green-power', type: 'skill' } },
57
+ // { item: { id: 'blood', type: 'skill' } },
58
+ { item: { id: 'atlas_pistol_mk2', type: ITEM_TYPES.weapon } },
59
+ { item: { id: 'atlas_pistol_mk2_bullet', type: ITEM_TYPES.skill } },
60
+ { item: { id: 'tim-knife', type: ITEM_TYPES.weapon } },
61
+ { item: { id: 'hatchet', type: ITEM_TYPES.weapon } },
62
+ { item: { id: 'wason', type: ITEM_TYPES.skin } },
63
+ { item: { id: 'scp-2040', type: ITEM_TYPES.skin } },
64
+ { item: { id: 'purple', type: ITEM_TYPES.skin } },
65
+ { item: { id: 'punk', type: ITEM_TYPES.skin } },
66
+ // { item: { id: 'marciano', type: 'skin' } },
67
+ { item: { id: 'lain', type: ITEM_TYPES.skin } },
68
+ { item: { id: 'kaneki', type: ITEM_TYPES.skin } },
69
+ { item: { id: 'junko', type: ITEM_TYPES.skin } },
70
+ { item: { id: 'ghost', type: ITEM_TYPES.skin } },
71
+ { item: { id: 'eiri', type: ITEM_TYPES.skin } },
72
+ { item: { id: 'anon', type: ITEM_TYPES.skin } },
73
+ { item: { id: 'alex', type: ITEM_TYPES.skin } },
74
+ { item: { id: 'agent', type: ITEM_TYPES.skin } },
75
+ { item: { id: 'grass', type: ITEM_TYPES.floor } },
76
+ ];
77
+ const DEFAULT_CYBERIA_ITEM_BY_ID = Object.freeze(
78
+ DefaultCyberiaItems.reduce((acc, entry) => {
79
+ acc[entry.item.id] = entry;
80
+ return acc;
81
+ }, {}),
82
+ );
83
+ const getDefaultCyberiaItemById = (itemId) => DEFAULT_CYBERIA_ITEM_BY_ID[itemId] || null;
84
+ const getDefaultCyberiaItemsByItemType = (itemType) =>
85
+ DefaultCyberiaItems.filter((entry) => entry.item.type === itemType);
86
+ const getDefaultCyberiaItemsByEntityType = (entityType) => {
87
+ const allowedTypes = ENTITY_TYPE_TO_ITEM_TYPES[entityType] || [];
88
+ return DefaultCyberiaItems.filter((entry) => allowedTypes.includes(entry.item.type));
9
89
  };
90
+ const DefaultSkillConfig = [
91
+ // { triggerItemId: 'anon', logicEventIds: ['doppelganger'] },
92
+ {
93
+ triggerItemId: 'atlas_pistol_mk2',
94
+ logicEventIds: ['projectile'],
95
+ },
96
+ { triggerItemId: 'coin', logicEventIds: ['coin_drop_or_transaction'] },
97
+ // { triggerItemId: 'purple', logicEventIds: ['doppelganger'] },
98
+ // { triggerItemId: 'atlas_pistol_mk2_bullet', logicEventIds: ['doppelganger'] },
99
+ ];
100
+ /**
101
+ * Default dialogue seeds for every non-commented entry in DefaultCyberiaItems.
102
+ * Each entry follows the CyberiaDialogue model schema:
103
+ * { code, order, speaker, text, mood }
104
+ *
105
+ * `code` is the primary grouping key (e.g. "default-lain"). The C client
106
+ * fetches all lines for a code with GET /api/cyberia-dialogue/code/:code.
107
+ *
108
+ * Used by the seed/migration script to populate the database on first boot.
109
+ */
110
+ const DefaultCyberiaDialogues = [
111
+ {
112
+ code: 'default-coin',
113
+ order: 0,
114
+ speaker: 'Coin',
115
+ text: 'A standard unit of exchange in the cyberia network.',
116
+ mood: 'neutral',
117
+ },
118
+ {
119
+ code: 'default-atlas_pistol_mk2',
120
+ order: 0,
121
+ speaker: 'Atlas Pistol MK2',
122
+ text: 'Military-grade sidearm. Fires energy projectiles.',
123
+ mood: 'neutral',
124
+ },
125
+ {
126
+ code: 'default-atlas_pistol_mk2_bullet',
127
+ order: 0,
128
+ speaker: 'MK2 Bullet',
129
+ text: 'High-velocity energy round. Dissipates on impact.',
130
+ mood: 'neutral',
131
+ },
132
+ {
133
+ code: 'default-hatchet',
134
+ order: 0,
135
+ speaker: 'Hatchet',
136
+ text: 'A crude but reliable melee tool. Good for close quarters.',
137
+ mood: 'neutral',
138
+ },
139
+ {
140
+ code: 'default-wason',
141
+ order: 0,
142
+ speaker: 'Wason',
143
+ text: 'They say I am just a wandering merchant... but I have seen things.',
144
+ mood: 'neutral',
145
+ },
146
+ {
147
+ code: 'default-wason',
148
+ order: 1,
149
+ speaker: 'Wason',
150
+ text: 'The network was not always like this. There was a time before the portals.',
151
+ mood: 'sad',
152
+ },
153
+ {
154
+ code: 'default-scp-2040',
155
+ order: 0,
156
+ speaker: 'SCP-2040',
157
+ text: 'CONTAINMENT PROTOCOL ACTIVE. Do not make direct eye contact.',
158
+ mood: 'angry',
159
+ },
160
+ {
161
+ code: 'default-scp-2040',
162
+ order: 1,
163
+ speaker: 'SCP-2040',
164
+ text: 'I remember everything. Every iteration. Every reset.',
165
+ mood: 'sad',
166
+ },
167
+ {
168
+ code: 'default-purple',
169
+ order: 0,
170
+ speaker: 'Purple',
171
+ text: 'The void between nodes is not empty — it is alive.',
172
+ mood: 'neutral',
173
+ },
174
+ {
175
+ code: 'default-punk',
176
+ order: 0,
177
+ speaker: 'Punk',
178
+ text: 'Rules are just code someone else wrote. I write my own.',
179
+ mood: 'happy',
180
+ },
181
+ {
182
+ code: 'default-lain',
183
+ order: 0,
184
+ speaker: 'Lain',
185
+ text: 'No matter where you go, everyone is connected.',
186
+ mood: 'neutral',
187
+ },
188
+ {
189
+ code: 'default-lain',
190
+ order: 1,
191
+ speaker: 'Lain',
192
+ text: 'If you are not remembered, then you never existed.',
193
+ mood: 'sad',
194
+ },
195
+ {
196
+ code: 'default-lain',
197
+ order: 2,
198
+ speaker: 'Lain',
199
+ text: 'The wired is not a separate world. It is layered over this one.',
200
+ mood: 'neutral',
201
+ },
202
+ {
203
+ code: 'default-kaneki',
204
+ order: 0,
205
+ speaker: 'Kaneki',
206
+ text: 'I am not the protagonist of a novel. I am just... me.',
207
+ mood: 'sad',
208
+ },
209
+ {
210
+ code: 'default-kaneki',
211
+ order: 1,
212
+ speaker: 'Kaneki',
213
+ text: 'What is 1000 minus 7?',
214
+ mood: 'angry',
215
+ },
216
+ {
217
+ code: 'default-junko',
218
+ order: 0,
219
+ speaker: 'Junko',
220
+ text: 'Despair is the seed from which hope blooms!',
221
+ mood: 'happy',
222
+ },
223
+ {
224
+ code: 'default-junko',
225
+ order: 1,
226
+ speaker: 'Junko',
227
+ text: 'How boring... nothing ever surprises me anymore.',
228
+ mood: 'sad',
229
+ },
230
+ { code: 'default-ghost', order: 0, speaker: 'Ghost', text: '...', mood: 'neutral' },
231
+ {
232
+ code: 'default-eiri',
233
+ order: 0,
234
+ speaker: 'Eiri',
235
+ text: 'I am the god of the wired. I designed the protocol.',
236
+ mood: 'neutral',
237
+ },
238
+ {
239
+ code: 'default-eiri',
240
+ order: 1,
241
+ speaker: 'Eiri',
242
+ text: 'Flesh is just hardware. Consciousness is the only software that matters.',
243
+ mood: 'neutral',
244
+ },
245
+ {
246
+ code: 'default-anon',
247
+ order: 0,
248
+ speaker: '???',
249
+ text: 'You should not be here. Turn back.',
250
+ mood: 'angry',
251
+ },
252
+ {
253
+ code: 'default-anon',
254
+ order: 1,
255
+ speaker: '???',
256
+ text: 'Or stay. It does not matter. Nothing leaves this place.',
257
+ mood: 'neutral',
258
+ },
259
+ {
260
+ code: 'default-alex',
261
+ order: 0,
262
+ speaker: 'Alex',
263
+ text: 'I have been mapping the portal network. Something does not add up.',
264
+ mood: 'neutral',
265
+ },
266
+ {
267
+ code: 'default-alex',
268
+ order: 1,
269
+ speaker: 'Alex',
270
+ text: 'There are nodes that exist in the registry but have no physical anchor.',
271
+ mood: 'neutral',
272
+ },
273
+ {
274
+ code: 'default-agent',
275
+ order: 0,
276
+ speaker: 'Agent',
277
+ text: 'Civilian, this area is restricted. State your business.',
278
+ mood: 'neutral',
279
+ },
280
+ {
281
+ code: 'default-agent',
282
+ order: 1,
283
+ speaker: 'Agent',
284
+ text: 'Hmm. Proceed, but know that you are being watched.',
285
+ mood: 'neutral',
286
+ },
287
+ {
288
+ code: 'default-grass',
289
+ order: 0,
290
+ speaker: 'Grass',
291
+ text: 'A patch of synthetic grass. It sways gently despite no wind.',
292
+ mood: 'neutral',
293
+ },
294
+ // ── Quest-talk dialogue lines ────────────────────────────────────────────
295
+ {
296
+ code: 'quest-talk-wason',
297
+ order: 0,
298
+ speaker: 'Wason',
299
+ text: 'Wanderer! Glad you stopped by. I need a favor — nothing dangerous... mostly.',
300
+ mood: 'happy',
301
+ },
302
+ {
303
+ code: 'quest-talk-wason',
304
+ order: 1,
305
+ speaker: 'Wason',
306
+ text: "First, find Alex — she's been surveying the nodes east of here. Then gather a hatchet for me.",
307
+ mood: 'neutral',
308
+ },
309
+ {
310
+ code: 'quest-talk-wason',
311
+ order: 2,
312
+ speaker: 'Wason',
313
+ text: 'And one more thing: the SCP-2040 anomalies are overrunning my trade routes. Deal with two of them.',
314
+ mood: 'sad',
315
+ },
316
+ {
317
+ code: 'quest-talk-alex',
318
+ order: 0,
319
+ speaker: 'Alex',
320
+ text: "Wason sent you? Good. The portal anomalies are getting worse. I've logged what I can.",
321
+ mood: 'neutral',
322
+ },
323
+ {
324
+ code: 'quest-talk-alex',
325
+ order: 1,
326
+ speaker: 'Alex',
327
+ text: 'Tell Wason: the source is somewhere in the deeper nodes. The registry does not lie.',
328
+ mood: 'neutral',
329
+ },
330
+ ];
10
331
 
11
- const BaseElement = () => {
12
- return {
13
- user: {
14
- main: {
15
- model: {
16
- ...ModelElement.user(),
17
- },
18
- },
19
- },
20
- chat: {},
21
- mailer: {},
22
- };
23
- };
332
+ /**
333
+ * Default action catalog — provide base metadata default actions,
334
+ * this provide for entities dynamicaale match when init instance init x and init y
335
+ * positions of entitie for the fallback world or custom instance, and seed dialogue
336
+ * for quest-talk actions.
337
+ *
338
+ * type values: 'quest-talk' | 'shop' | 'craft' | 'storage'
339
+ * dialogCode: General-purpose default dialogue opened for this action
340
+ * (any action type). Used as the immediate greeting/intro.
341
+ * questDialogueCodes: Ordered list of CyberiaDialogue codes that must be
342
+ * completed (in sequence) to satisfy quest-talk step
343
+ * validation. Distinct from dialogCode — for simple
344
+ * actions they may overlap; for multi-stage quests they
345
+ * can diverge.
346
+ * is completed. Empty string = no quest granted.
347
+ */
348
+ const DefaultCyberiaActions = [
349
+ {
350
+ code: 'wason-quest-intro',
351
+ type: 'quest-talk',
352
+ label: 'Quest',
353
+ provideItemId: 'wason',
354
+ grantQuestCode: 'fallback-intro-quest',
355
+ dialogCode: 'quest-talk-wason',
356
+ questDialogueCodes: ['quest-talk-wason'],
357
+ },
358
+ {
359
+ code: 'alex-quest-talk',
360
+ type: 'quest-talk',
361
+ label: 'Quest Talk',
362
+ provideItemId: 'alex',
363
+ grantQuestCode: '',
364
+ dialogCode: 'quest-talk-alex',
365
+ questDialogueCodes: ['quest-talk-alex'],
366
+ },
367
+ {
368
+ code: 'agent-mission-brief',
369
+ type: 'quest-talk',
370
+ label: 'Mission Brief',
371
+ provideItemId: 'agent',
372
+ grantQuestCode: 'bounty-quest-alpha',
373
+ dialogCode: 'default-agent',
374
+ questDialogueCodes: ['default-agent'],
375
+ },
376
+ {
377
+ code: 'wason-bounty-brief',
378
+ type: 'quest-talk',
379
+ label: 'Bounty Brief',
380
+ provideItemId: 'wason',
381
+ grantQuestCode: '',
382
+ dialogCode: 'quest-talk-wason',
383
+ questDialogueCodes: ['quest-talk-wason'],
384
+ },
385
+ ];
24
386
 
25
- const CyberiaPortalParams = {
26
- EVENT_CALLBACK_TIME: 45,
27
- };
387
+ /**
388
+ * Default quest definitions for the fallback world.
389
+ * Mirrors the CyberiaQuestSchema.
390
+ *
391
+ * Objective types:
392
+ * 'talk' — itemId = provideItemId of the NPC to interact with
393
+ * 'collect' — itemId = item to receive in inventory; quantity = amount
394
+ * 'kill' — itemId = entity skin itemId; quantity = kill count
395
+ *
396
+ */
397
+ const DefaultCyberiaQuests = [
398
+ {
399
+ code: 'fallback-intro-quest',
400
+ title: "The Wanderer's Task",
401
+ description: 'Help Wason restore order to the fractured nodes.',
402
+ prerequisiteCodes: [],
403
+ unlocksQuestCodes: ['bounty-quest-alpha'],
404
+ steps: [
405
+ {
406
+ id: 'step-talk-alex',
407
+ description: 'Find Alex and hear her report on the portal anomalies.',
408
+ objectives: [{ type: 'talk', itemId: 'alex', quantity: 1 }],
409
+ },
410
+ {
411
+ id: 'step-collect-hatchet',
412
+ description: 'Obtain a hatchet for Wason.',
413
+ objectives: [{ type: 'collect', itemId: 'hatchet', quantity: 1 }],
414
+ },
415
+ {
416
+ id: 'step-kill-scp',
417
+ description: 'Eliminate SCP-2040 anomalies threatening the trade routes.',
418
+ objectives: [{ type: 'kill', itemId: 'scp-2040', quantity: 2 }],
419
+ },
420
+ ],
421
+ rewards: [{ itemId: 'coin', quantity: 50 }],
422
+ },
423
+ {
424
+ // Second quest: exercises all step types in a different order (kill → collect → talk).
425
+ // Unlocked automatically after completing fallback-intro-quest.
426
+ code: 'bounty-quest-alpha',
427
+ title: 'Alpha Bounty',
428
+ description: 'A field test: eliminate a threat, claim your reward, then report back.',
429
+ prerequisiteCodes: ['fallback-intro-quest'],
430
+ unlocksQuestCodes: [],
431
+ steps: [
432
+ {
433
+ id: 'step-kill-first',
434
+ description: 'Eliminate the SCP-2040 threat.',
435
+ objectives: [{ type: 'kill', itemId: 'scp-2040', quantity: 1 }],
436
+ },
437
+ {
438
+ id: 'step-collect-reward',
439
+ description: 'Collect the bounty coin drop.',
440
+ objectives: [{ type: 'collect', itemId: 'coin', quantity: 10 }],
441
+ },
442
+ {
443
+ id: 'step-report-wason',
444
+ description: 'Report back to Wason.',
445
+ objectives: [{ type: 'talk', itemId: 'wason', quantity: 1 }],
446
+ },
447
+ ],
448
+ rewards: [{ itemId: 'hatchet', quantity: 1 }],
449
+ },
450
+ ];
28
451
 
29
- const CyberiaDependencies = {
30
- 'maxrects-packer': '^2.7.3',
31
- pngjs: '^7.0.0',
32
- jimp: '^1.6.0',
33
- sharp: '^0.32.5',
34
- ethers: '~6.16.0',
452
+ export {
453
+ ITEM_TYPES,
454
+ ENTITY_TYPES,
455
+ ENTITY_TYPE_TO_ITEM_TYPES,
456
+ QUEST_STEPS_TYPES,
457
+ CYBERIA_ACTION_TYPES,
458
+ getDefaultCyberiaItemById,
459
+ getDefaultCyberiaItemsByItemType,
460
+ getDefaultCyberiaItemsByEntityType,
461
+ CyberiaDependencies,
462
+ DefaultCyberiaItems,
463
+ DefaultSkillConfig,
464
+ DefaultCyberiaDialogues,
465
+ DefaultCyberiaActions,
466
+ DefaultCyberiaQuests,
35
467
  };
36
-
37
- export { BaseElement, ModelElement, CyberiaPortalParams, CyberiaDependencies };
@@ -195,11 +195,11 @@ const CssCommonCyberia = async () => {
195
195
  <div class="ag-grid-style"></div>`;
196
196
  };
197
197
 
198
- const CssCyberiaDark = {
199
- theme: 'cyberia-dark',
200
- dark: true,
201
- barButtonsIconTheme: 'img',
202
- render: async () => {
198
+ class CssCyberiaDark {
199
+ static theme = 'cyberia-dark';
200
+ static dark = true;
201
+ static barButtonsIconTheme = 'img';
202
+ static render = async () => {
203
203
  return (
204
204
  (await CssCommonCyberia()) +
205
205
  html`
@@ -219,14 +219,14 @@ const CssCyberiaDark = {
219
219
  ${borderChar(2, `#ffcc00`, ['.default-slide-menu-top-bar-fix-title-container-text'])}
220
220
  `
221
221
  );
222
- },
223
- };
224
-
225
- const CssCyberiaLight = {
226
- theme: 'cyberia-light',
227
- dark: false,
228
- barButtonsIconTheme: 'img',
229
- render: async () => {
222
+ };
223
+ }
224
+
225
+ class CssCyberiaLight {
226
+ static theme = 'cyberia-light';
227
+ static dark = false;
228
+ static barButtonsIconTheme = 'img';
229
+ static render = async () => {
230
230
  return (
231
231
  (await CssCommonCyberia()) +
232
232
  html`
@@ -248,7 +248,7 @@ const CssCyberiaLight = {
248
248
  ${borderChar(1, `#010101`, ['button', '.a-btn'], true)}
249
249
  `
250
250
  );
251
- },
252
- };
251
+ };
252
+ }
253
253
 
254
254
  export { CssCyberiaDark, CssCommonCyberia, CssCyberiaLight };
@@ -1,19 +1,21 @@
1
1
  import { Auth } from '../core/Auth.js';
2
2
  import { LogIn } from '../core/LogIn.js';
3
3
  import { s } from '../core/VanillaJs.js';
4
- import { ElementsCyberiaPortal } from './ElementsCyberiaPortal.js';
4
+ import { AppStoreCyberiaPortal } from './AppStoreCyberiaPortal.js';
5
5
  import { ObjectLayerManagement } from '../../services/object-layer/object-layer.management.js';
6
6
 
7
- const LogInCyberiaPortal = async function () {
8
- LogIn.Event['LogInCyberiaPortal'] = async (options) => {
7
+ class LogInCyberiaPortal {
8
+ static async instance() {
9
+ LogIn.onLogin(async (options) => {
9
10
  const { token, user } = options;
10
11
 
11
- ElementsCyberiaPortal.Data.user.main.model.user = user;
12
+ AppStoreCyberiaPortal.Data.user.main.model.user = user;
12
13
 
13
14
  await ObjectLayerManagement.Reload('viewer');
14
- };
15
+ }, { key: 'LogInCyberiaPortal' });
15
16
  const { user } = await Auth.sessionIn();
16
- ElementsCyberiaPortal.Data.user.main.model.user = user;
17
- };
17
+ AppStoreCyberiaPortal.Data.user.main.model.user = user;
18
+ }
19
+ }
18
20
 
19
21
  export { LogInCyberiaPortal };
@@ -1,14 +1,16 @@
1
1
  import { LogOut } from '../core/LogOut.js';
2
2
  import { s } from '../core/VanillaJs.js';
3
- import { ElementsCyberiaPortal } from './ElementsCyberiaPortal.js';
3
+ import { AppStoreCyberiaPortal } from './AppStoreCyberiaPortal.js';
4
4
  import { ObjectLayerManagement } from '../../services/object-layer/object-layer.management.js';
5
5
 
6
- const LogOutCyberiaPortal = async function () {
7
- LogOut.Event['LogOutCyberiaPortal'] = async (result = { user: { _id: '' } }) => {
8
- ElementsCyberiaPortal.Data.user.main.model.user = result.user;
6
+ class LogOutCyberiaPortal {
7
+ static async instance() {
8
+ LogOut.onLogout(async (result = { user: { _id: '' } }) => {
9
+ AppStoreCyberiaPortal.Data.user.main.model.user = result.user;
9
10
  s(`.main-btn-admin`).classList.add('hide');
10
11
  await ObjectLayerManagement.Reload('viewer');
11
- };
12
- };
12
+ }, { key: 'LogOutCyberiaPortal' });
13
+ }
14
+ }
13
15
 
14
16
  export { LogOutCyberiaPortal };
@@ -3,8 +3,8 @@ import { EventsUI } from '../core/EventsUI.js';
3
3
  import { getProxyPath } from '../core/Router.js';
4
4
  import { htmls, s } from '../core/VanillaJs.js';
5
5
 
6
- const MainBodyCyberiaPortal = {
7
- Render: async function () {
6
+ class MainBodyCyberiaPortal {
7
+ static async instance() {
8
8
  setTimeout(() => {
9
9
  EventsUI.onClick('.cta-button', () => {
10
10
  console.log('Enter the world button clicked');
@@ -280,7 +280,7 @@ const MainBodyCyberiaPortal = {
280
280
  </footer>
281
281
  </div>
282
282
  `;
283
- },
284
- };
283
+ }
284
+ }
285
285
 
286
286
  export { MainBodyCyberiaPortal };
@@ -0,0 +1,60 @@
1
+ import { loggerFactory } from '../core/Logger.js';
2
+ import { Modal } from '../core/Modal.js';
3
+ import { s } from '../core/VanillaJs.js';
4
+
5
+ const logger = loggerFactory(import.meta);
6
+
7
+ const BannerAppTemplate = html`C Y B E R I A`;
8
+
9
+ class RouterCyberiaPortal {
10
+ static routes() {
11
+ return {
12
+ '/': {
13
+ title: 'MMORPG',
14
+ render: () => Modal.onHomeRouterEvent(),
15
+ upperCase: true,
16
+ },
17
+ '/settings': { title: 'settings', render: () => s(`.main-btn-settings`).click() },
18
+ '/server': { title: 'server', render: () => s(`.main-btn-server`).click() },
19
+ '/log-in': { title: 'log-in', render: () => s(`.main-btn-log-in`).click() },
20
+ '/sign-up': { title: 'sign-up', render: () => s(`.main-btn-sign-up`).click() },
21
+ '/chat': { title: 'chat', render: () => s(`.main-btn-chat`).click() },
22
+ '/log-out': {
23
+ title: 'log-out',
24
+ render: () => s(`.main-btn-log-out`).click(),
25
+ },
26
+ '/account': {
27
+ title: 'account',
28
+ render: () => s(`.main-btn-account`).click(),
29
+ },
30
+ '/recover': { title: 'recover', render: () => s(`.main-btn-recover`).click() },
31
+ '/object-layer-engine': {
32
+ title: 'object-layer-engine',
33
+ render: () => s(`.main-btn-object-layer-engine`).click(),
34
+ },
35
+ '/object-layer-engine-management': {
36
+ title: 'object-layer-engine-management',
37
+ render: () => s(`.main-btn-object-layer-engine-management`).click(),
38
+ },
39
+ '/object-layer-engine-viewer': {
40
+ title: 'object-layer-engine-viewer',
41
+ render: () => s(`.main-btn-object-layer-engine-viewer`).click(),
42
+ },
43
+ '/cyberia-map-engine': {
44
+ title: 'cyberia-map-engine',
45
+ render: () => s(`.main-btn-cyberia-map-engine`).click(),
46
+ },
47
+ '/cyberia-instance-engine': {
48
+ title: 'cyberia-instance-engine',
49
+ render: () => s(`.main-btn-cyberia-instance-engine`).click(),
50
+ },
51
+ '/docs': { title: 'docs', render: () => s(`.main-btn-docs`).click() },
52
+ };
53
+ }
54
+
55
+ static instance() {
56
+ return { Routes: RouterCyberiaPortal.routes };
57
+ }
58
+ }
59
+
60
+ export { RouterCyberiaPortal, BannerAppTemplate };