cyberia 3.2.5 → 3.2.12

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 (381) hide show
  1. package/.github/workflows/engine-cyberia.cd.yml +8 -2
  2. package/.github/workflows/npmpkg.ci.yml +1 -0
  3. package/.github/workflows/pwa-microservices-template-test.ci.yml +1 -1
  4. package/.github/workflows/release.cd.yml +2 -2
  5. package/.vscode/extensions.json +9 -9
  6. package/.vscode/settings.json +20 -4
  7. package/CHANGELOG.md +563 -1
  8. package/CLI-HELP.md +130 -34
  9. package/Dockerfile +0 -4
  10. package/README.md +194 -607
  11. package/bin/build.js +42 -12
  12. package/bin/build.template.js +187 -0
  13. package/bin/cyberia.js +1367 -281
  14. package/bin/deploy.js +582 -3
  15. package/bin/index.js +1367 -281
  16. package/bump.config.js +26 -0
  17. package/conf.js +195 -111
  18. package/deployment.yaml +6 -222
  19. package/hardhat/package-lock.json +118 -149
  20. package/hardhat/package.json +5 -4
  21. package/jsconfig.json +1 -1
  22. package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +2 -2
  23. package/manifests/cronjobs/dd-cron/dd-cron-dns.yaml +2 -2
  24. package/manifests/deployment/dd-cyberia-development/deployment.yaml +6 -222
  25. package/manifests/deployment/dd-cyberia-development/proxy.yaml +10 -118
  26. package/manifests/deployment/dd-default-development/deployment.yaml +2 -6
  27. package/manifests/deployment/dd-test-development/deployment.yaml +138 -66
  28. package/manifests/deployment/dd-test-development/proxy.yaml +41 -5
  29. package/manifests/kind-config-dev.yaml +8 -0
  30. package/manifests/lxd/lxd-admin-profile.yaml +12 -3
  31. package/manifests/mongodb/pv-pvc.yaml +44 -8
  32. package/manifests/mongodb/statefulset.yaml +55 -68
  33. package/manifests/mongodb-4.4/headless-service.yaml +10 -0
  34. package/manifests/mongodb-4.4/kustomization.yaml +3 -1
  35. package/manifests/mongodb-4.4/mongodb-nodeport.yaml +17 -0
  36. package/manifests/mongodb-4.4/pv-pvc.yaml +10 -14
  37. package/manifests/mongodb-4.4/statefulset.yaml +79 -0
  38. package/manifests/mongodb-4.4/storage-class.yaml +9 -0
  39. package/manifests/valkey/statefulset.yaml +1 -1
  40. package/manifests/valkey/valkey-nodeport.yaml +17 -0
  41. package/package.json +45 -24
  42. package/proxy.yaml +10 -118
  43. package/scripts/ipxe-setup.sh +52 -49
  44. package/scripts/k3s-node-setup.sh +83 -48
  45. package/scripts/lxd-vm-setup.sh +193 -8
  46. package/scripts/maas-nat-firewalld.sh +145 -0
  47. package/scripts/nat-iptables.sh +103 -18
  48. package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.controller.js +18 -18
  49. package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.model.js +7 -14
  50. package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.router.js +38 -33
  51. package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.service.js +91 -36
  52. package/src/api/core/core.controller.js +10 -10
  53. package/src/api/core/core.router.js +19 -14
  54. package/src/api/core/core.service.js +15 -15
  55. package/src/api/crypto/crypto.controller.js +8 -8
  56. package/src/api/crypto/crypto.router.js +18 -12
  57. package/src/api/crypto/crypto.service.js +11 -11
  58. package/src/api/cyberia-action/cyberia-action.controller.js +74 -0
  59. package/src/api/cyberia-action/cyberia-action.model.js +87 -0
  60. package/src/api/cyberia-action/cyberia-action.router.js +31 -0
  61. package/src/api/cyberia-action/cyberia-action.service.js +42 -0
  62. package/src/api/cyberia-client-hints/cyberia-client-hints.controller.js +74 -0
  63. package/src/api/cyberia-client-hints/cyberia-client-hints.model.js +99 -0
  64. package/src/api/cyberia-client-hints/cyberia-client-hints.router.js +98 -0
  65. package/src/api/cyberia-client-hints/cyberia-client-hints.service.js +152 -0
  66. package/src/api/cyberia-dialogue/cyberia-dialogue.controller.js +13 -13
  67. package/src/api/cyberia-dialogue/cyberia-dialogue.model.js +11 -11
  68. package/src/api/cyberia-dialogue/cyberia-dialogue.router.js +25 -20
  69. package/src/api/cyberia-dialogue/cyberia-dialogue.service.js +22 -22
  70. package/src/api/cyberia-entity/cyberia-entity.controller.js +10 -10
  71. package/src/api/cyberia-entity/cyberia-entity.router.js +22 -18
  72. package/src/api/cyberia-entity/cyberia-entity.service.js +15 -15
  73. package/src/api/cyberia-instance/cyberia-fallback-world.js +83 -198
  74. package/src/api/cyberia-instance/cyberia-instance.controller.js +14 -14
  75. package/src/api/cyberia-instance/cyberia-instance.model.js +3 -0
  76. package/src/api/cyberia-instance/cyberia-instance.router.js +57 -52
  77. package/src/api/cyberia-instance/cyberia-instance.service.js +32 -67
  78. package/src/api/cyberia-instance/cyberia-portal-connector.js +20 -246
  79. package/src/api/cyberia-instance/cyberia-world-generator.js +505 -0
  80. package/src/api/cyberia-instance-conf/cyberia-instance-conf.controller.js +10 -10
  81. package/src/api/cyberia-instance-conf/cyberia-instance-conf.model.js +18 -49
  82. package/src/api/cyberia-instance-conf/cyberia-instance-conf.router.js +22 -18
  83. package/src/api/cyberia-instance-conf/cyberia-instance-conf.service.js +19 -15
  84. package/src/api/cyberia-map/cyberia-map.controller.js +10 -10
  85. package/src/api/cyberia-map/cyberia-map.router.js +35 -30
  86. package/src/api/cyberia-map/cyberia-map.service.js +17 -17
  87. package/src/api/cyberia-quest/cyberia-quest.controller.js +74 -0
  88. package/src/api/cyberia-quest/cyberia-quest.model.js +67 -0
  89. package/src/api/cyberia-quest/cyberia-quest.router.js +31 -0
  90. package/src/api/cyberia-quest/cyberia-quest.service.js +42 -0
  91. package/src/api/cyberia-quest-progress/cyberia-quest-progress.controller.js +74 -0
  92. package/src/api/cyberia-quest-progress/cyberia-quest-progress.model.js +49 -0
  93. package/src/api/cyberia-quest-progress/cyberia-quest-progress.router.js +31 -0
  94. package/src/api/cyberia-quest-progress/cyberia-quest-progress.service.js +42 -0
  95. package/src/api/cyberia-server-defaults/cyberia-server-defaults.js +451 -0
  96. package/src/api/default/default.controller.js +10 -10
  97. package/src/api/default/default.router.js +22 -18
  98. package/src/api/default/default.service.js +15 -15
  99. package/src/api/document/document.controller.js +12 -12
  100. package/src/api/document/document.model.js +10 -16
  101. package/src/api/document/document.router.js +28 -23
  102. package/src/api/document/document.service.js +100 -23
  103. package/src/api/file/file.controller.js +8 -8
  104. package/src/api/file/file.model.js +10 -10
  105. package/src/api/file/file.router.js +19 -13
  106. package/src/api/file/file.service.js +45 -43
  107. package/src/api/instance/instance.controller.js +10 -10
  108. package/src/api/instance/instance.model.js +4 -10
  109. package/src/api/instance/instance.router.js +29 -24
  110. package/src/api/instance/instance.service.js +16 -16
  111. package/src/api/ipfs/ipfs.controller.js +12 -12
  112. package/src/api/ipfs/ipfs.model.js +4 -13
  113. package/src/api/ipfs/ipfs.router.js +21 -16
  114. package/src/api/ipfs/ipfs.service.js +22 -36
  115. package/src/api/object-layer/object-layer.controller.js +12 -12
  116. package/src/api/object-layer/object-layer.model.js +4 -17
  117. package/src/api/object-layer/object-layer.router.js +512 -507
  118. package/src/api/object-layer/object-layer.service.js +29 -26
  119. package/src/api/object-layer-render-frames/object-layer-render-frames.controller.js +10 -10
  120. package/src/api/object-layer-render-frames/object-layer-render-frames.model.js +6 -16
  121. package/src/api/object-layer-render-frames/object-layer-render-frames.router.js +22 -18
  122. package/src/api/object-layer-render-frames/object-layer-render-frames.service.js +19 -15
  123. package/src/api/test/test.controller.js +8 -8
  124. package/src/api/test/test.router.js +17 -12
  125. package/src/api/test/test.service.js +8 -8
  126. package/src/api/types.js +24 -0
  127. package/src/api/user/guest.service.js +100 -0
  128. package/src/api/user/user.controller.js +6 -6
  129. package/src/api/user/user.model.js +8 -13
  130. package/src/api/user/user.router.js +297 -288
  131. package/src/api/user/user.service.js +103 -55
  132. package/src/cli/baremetal.js +132 -101
  133. package/src/cli/cluster.js +732 -217
  134. package/src/cli/db.js +106 -62
  135. package/src/cli/deploy.js +260 -149
  136. package/src/cli/fs.js +90 -9
  137. package/src/cli/image.js +43 -1
  138. package/src/cli/index.js +106 -16
  139. package/src/cli/ipfs.js +4 -6
  140. package/src/cli/kubectl.js +4 -1
  141. package/src/cli/lxd.js +1099 -223
  142. package/src/cli/monitor.js +9 -3
  143. package/src/cli/release.js +336 -86
  144. package/src/cli/repository.js +136 -53
  145. package/src/cli/run.js +599 -76
  146. package/src/cli/secrets.js +11 -2
  147. package/src/cli/ssh.js +1 -1
  148. package/src/cli/static.js +43 -115
  149. package/src/cli/test.js +9 -3
  150. package/src/client/Cryptokoyn.index.js +18 -21
  151. package/src/client/CyberiaPortal.index.js +19 -23
  152. package/src/client/Default.index.js +30 -36
  153. package/src/client/Itemledger.index.js +20 -26
  154. package/src/client/Underpost.index.js +19 -23
  155. package/src/client/components/core/404.js +4 -4
  156. package/src/client/components/core/500.js +4 -4
  157. package/src/client/components/core/Account.js +73 -60
  158. package/src/client/components/core/AgGrid.js +23 -33
  159. package/src/client/components/core/Alert.js +12 -13
  160. package/src/client/components/core/AppStore.js +1 -1
  161. package/src/client/components/core/Auth.js +40 -37
  162. package/src/client/components/core/Badge.js +7 -13
  163. package/src/client/components/core/BtnIcon.js +15 -17
  164. package/src/client/components/core/CalendarCore.js +42 -63
  165. package/src/client/components/core/Chat.js +13 -15
  166. package/src/client/components/core/ClientEvents.js +163 -0
  167. package/src/client/components/core/ColorPaletteElement.js +309 -0
  168. package/src/client/components/core/Content.js +17 -14
  169. package/src/client/components/core/Css.js +15 -71
  170. package/src/client/components/core/CssCore.js +12 -16
  171. package/src/client/components/core/D3Chart.js +4 -4
  172. package/src/client/components/core/Docs.js +64 -91
  173. package/src/client/components/core/DropDown.js +69 -91
  174. package/src/client/components/core/EventBus.js +96 -0
  175. package/src/client/components/core/EventsUI.js +14 -17
  176. package/src/client/components/core/FileExplorer.js +96 -228
  177. package/src/client/components/core/FullScreen.js +47 -75
  178. package/src/client/components/core/Input.js +24 -69
  179. package/src/client/components/core/Keyboard.js +25 -18
  180. package/src/client/components/core/KeyboardAvoidance.js +145 -0
  181. package/src/client/components/core/LoadingAnimation.js +25 -31
  182. package/src/client/components/core/LogIn.js +41 -41
  183. package/src/client/components/core/LogOut.js +23 -14
  184. package/src/client/components/core/Modal.js +544 -219
  185. package/src/client/components/core/NotificationManager.js +14 -18
  186. package/src/client/components/core/Panel.js +54 -50
  187. package/src/client/components/core/PanelForm.js +81 -177
  188. package/src/client/components/core/Polyhedron.js +110 -214
  189. package/src/client/components/core/PublicProfile.js +39 -32
  190. package/src/client/components/core/Recover.js +48 -44
  191. package/src/client/components/core/Responsive.js +88 -32
  192. package/src/client/components/core/RichText.js +9 -18
  193. package/src/client/components/core/Router.js +24 -3
  194. package/src/client/components/core/SearchBox.js +37 -37
  195. package/src/client/components/core/SignUp.js +39 -30
  196. package/src/client/components/core/SocketIo.js +31 -2
  197. package/src/client/components/core/SocketIoHandler.js +6 -6
  198. package/src/client/components/core/ToggleSwitch.js +8 -20
  199. package/src/client/components/core/ToolTip.js +5 -17
  200. package/src/client/components/core/Translate.js +56 -59
  201. package/src/client/components/core/Validator.js +26 -16
  202. package/src/client/components/core/Wallet.js +15 -26
  203. package/src/client/components/core/Worker.js +211 -276
  204. package/src/client/components/core/windowGetDimensions.js +7 -7
  205. package/src/client/components/cryptokoyn/{MenuCryptokoyn.js → AppShellCryptokoyn.js} +57 -57
  206. package/src/client/components/cryptokoyn/CssCryptokoyn.js +15 -15
  207. package/src/client/components/cryptokoyn/LogInCryptokoyn.js +6 -4
  208. package/src/client/components/cryptokoyn/LogOutCryptokoyn.js +6 -4
  209. package/src/client/components/cryptokoyn/RouterCryptokoyn.js +37 -0
  210. package/src/client/components/cryptokoyn/SettingsCryptokoyn.js +4 -4
  211. package/src/client/components/cryptokoyn/SignUpCryptokoyn.js +6 -4
  212. package/src/client/components/cyberia/InstanceEngineCyberia.js +141 -60
  213. package/src/client/components/cyberia/MapEngineCyberia.js +691 -214
  214. package/src/client/components/cyberia/ObjectLayerEngine.js +19 -0
  215. package/src/client/components/cyberia/ObjectLayerEngineModal.js +1204 -94
  216. package/src/client/components/cyberia/ObjectLayerEngineViewer.js +196 -298
  217. package/src/client/components/cyberia/SharedDefaultsCyberia.js +330 -0
  218. package/src/client/components/cyberia-portal/{MenuCyberiaPortal.js → AppShellCyberiaPortal.js} +102 -102
  219. package/src/client/components/cyberia-portal/CssCyberiaPortal.js +15 -15
  220. package/src/client/components/cyberia-portal/LogInCyberiaPortal.js +6 -4
  221. package/src/client/components/cyberia-portal/LogOutCyberiaPortal.js +6 -4
  222. package/src/client/components/cyberia-portal/MainBodyCyberiaPortal.js +4 -4
  223. package/src/client/components/cyberia-portal/RouterCyberiaPortal.js +60 -0
  224. package/src/client/components/cyberia-portal/SettingsCyberiaPortal.js +4 -4
  225. package/src/client/components/cyberia-portal/SignUpCyberiaPortal.js +6 -4
  226. package/src/client/components/cyberia-portal/TranslateCyberiaPortal.js +4 -4
  227. package/src/client/components/default/{MenuDefault.js → AppShellDefault.js} +87 -87
  228. package/src/client/components/default/CssDefault.js +12 -12
  229. package/src/client/components/default/LogInDefault.js +6 -4
  230. package/src/client/components/default/LogOutDefault.js +6 -4
  231. package/src/client/components/default/RouterDefault.js +47 -0
  232. package/src/client/components/default/SettingsDefault.js +4 -4
  233. package/src/client/components/default/SignUpDefault.js +6 -4
  234. package/src/client/components/default/TranslateDefault.js +3 -3
  235. package/src/client/components/itemledger/{MenuItemledger.js → AppShellItemledger.js} +57 -57
  236. package/src/client/components/itemledger/CssItemledger.js +15 -15
  237. package/src/client/components/itemledger/LogInItemledger.js +6 -4
  238. package/src/client/components/itemledger/LogOutItemledger.js +6 -4
  239. package/src/client/components/itemledger/RouterItemledger.js +38 -0
  240. package/src/client/components/itemledger/SettingsItemledger.js +4 -4
  241. package/src/client/components/itemledger/SignUpItemledger.js +6 -4
  242. package/src/client/components/itemledger/TranslateItemledger.js +3 -3
  243. package/src/client/components/underpost/{MenuUnderpost.js → AppShellUnderpost.js} +88 -88
  244. package/src/client/components/underpost/CssUnderpost.js +14 -14
  245. package/src/client/components/underpost/CyberpunkBloggerUnderpost.js +4 -4
  246. package/src/client/components/underpost/DocumentSearchProvider.js +1 -1
  247. package/src/client/components/underpost/LabGalleryUnderpost.js +12 -15
  248. package/src/client/components/underpost/LogInUnderpost.js +6 -4
  249. package/src/client/components/underpost/LogOutUnderpost.js +6 -4
  250. package/src/client/components/underpost/RouterUnderpost.js +45 -0
  251. package/src/client/components/underpost/SettingsUnderpost.js +4 -4
  252. package/src/client/components/underpost/SignUpUnderpost.js +6 -4
  253. package/src/client/components/underpost/TranslateUnderpost.js +4 -4
  254. package/src/client/public/cyberia-docs/ACTION-SYSTEM.md +235 -0
  255. package/src/client/public/cyberia-docs/ARCHITECTURE.md +83 -0
  256. package/src/client/public/cyberia-docs/CYBERIA-CLI.md +204 -0
  257. package/src/client/public/cyberia-docs/CYBERIA-CLIENT.md +291 -0
  258. package/src/client/public/cyberia-docs/CYBERIA-SERVER.md +278 -0
  259. package/src/client/public/cyberia-docs/CYBERIA.md +259 -0
  260. package/src/client/public/cyberia-docs/ENTITY-PROFILE.md +241 -0
  261. package/src/client/public/cyberia-docs/HARDHAT-MODULE.md +300 -0
  262. package/src/client/public/cyberia-docs/OFF-CHAIN-ECONOMY.md +279 -0
  263. package/src/client/public/cyberia-docs/QUEST-SYSTEM.md +206 -0
  264. package/src/client/public/cyberia-docs/ROADMAP.md +240 -0
  265. package/src/client/public/cyberia-docs/UNDERPOST-PLATFORM.md +106 -0
  266. package/src/client/public/cyberia-docs/WHITE-PAPER.md +732 -0
  267. package/src/client/services/atlas-sprite-sheet/atlas-sprite-sheet.service.js +14 -20
  268. package/src/client/services/core/core.service.js +17 -49
  269. package/src/client/services/crypto/crypto.service.js +8 -13
  270. package/src/client/services/cyberia-action/cyberia-action.service.js +99 -0
  271. package/src/client/services/cyberia-client-hints/cyberia-client-hints.service.js +99 -0
  272. package/src/client/services/cyberia-dialogue/cyberia-dialogue.service.js +10 -16
  273. package/src/client/services/cyberia-entity/cyberia-entity.management.js +5 -5
  274. package/src/client/services/cyberia-entity/cyberia-entity.service.js +10 -16
  275. package/src/client/services/cyberia-instance/cyberia-instance.management.js +6 -6
  276. package/src/client/services/cyberia-instance/cyberia-instance.service.js +12 -18
  277. package/src/client/services/cyberia-instance-conf/cyberia-instance-conf.service.js +10 -16
  278. package/src/client/services/cyberia-map/cyberia-map.management.js +6 -6
  279. package/src/client/services/cyberia-map/cyberia-map.service.js +12 -18
  280. package/src/client/services/cyberia-quest/cyberia-quest.service.js +99 -0
  281. package/src/client/services/cyberia-quest-progress/cyberia-quest-progress.service.js +99 -0
  282. package/src/client/services/default/default.management.js +159 -267
  283. package/src/client/services/default/default.service.js +10 -16
  284. package/src/client/services/document/document.service.js +14 -19
  285. package/src/client/services/file/file.service.js +8 -13
  286. package/src/client/services/instance/instance.management.js +5 -5
  287. package/src/client/services/instance/instance.service.js +10 -15
  288. package/src/client/services/ipfs/ipfs.service.js +12 -18
  289. package/src/client/services/object-layer/object-layer.management.js +12 -12
  290. package/src/client/services/object-layer/object-layer.service.js +20 -26
  291. package/src/client/services/object-layer-render-frames/object-layer-render-frames.service.js +10 -16
  292. package/src/client/services/test/test.service.js +8 -13
  293. package/src/client/services/user/guest.service.js +86 -0
  294. package/src/client/services/user/user.management.js +5 -5
  295. package/src/client/services/user/user.service.js +14 -20
  296. package/src/client/ssr/body/404.js +3 -3
  297. package/src/client/ssr/body/500.js +3 -3
  298. package/src/client/ssr/body/CacheControl.js +5 -2
  299. package/src/client/ssr/body/DefaultSplashScreen.js +19 -12
  300. package/src/client/ssr/body/UnderpostDefaultSplashScreen.js +13 -6
  301. package/src/client/ssr/head/PwaItemledger.js +197 -60
  302. package/src/client/ssr/mailer/DefaultRecoverEmail.js +19 -20
  303. package/src/client/ssr/mailer/DefaultVerifyEmail.js +15 -16
  304. package/src/client/ssr/views/CyberiaServerMetrics.js +982 -0
  305. package/src/client/ssr/{offline → views}/Maintenance.js +12 -11
  306. package/src/client/ssr/{offline → views}/NoNetworkConnection.js +3 -3
  307. package/src/client/ssr/{pages → views}/Test.js +2 -2
  308. package/src/client/sw/core.sw.js +274 -0
  309. package/src/db/DataBaseProvider.js +115 -15
  310. package/src/db/mariadb/MariaDB.js +2 -1
  311. package/src/db/mongo/MongoBootstrap.js +657 -0
  312. package/src/db/mongo/MongooseDB.js +129 -21
  313. package/src/grpc/cyberia/grpc-server.js +185 -105
  314. package/src/index.js +1 -1
  315. package/src/runtime/cyberia-client/Dockerfile +101 -0
  316. package/src/runtime/cyberia-client/Dockerfile.dev +82 -0
  317. package/src/runtime/cyberia-server/Dockerfile +62 -0
  318. package/src/runtime/cyberia-server/Dockerfile.dev +71 -0
  319. package/src/runtime/express/Dockerfile +4 -4
  320. package/src/runtime/express/Express.js +2 -2
  321. package/src/runtime/lampp/Dockerfile +8 -7
  322. package/src/runtime/wp/Dockerfile +11 -17
  323. package/src/runtime/wp/Wp.js +8 -5
  324. package/src/server/atlas-sprite-sheet-generator.js +4 -2
  325. package/src/server/auth.js +2 -2
  326. package/src/server/client-build-docs.js +46 -47
  327. package/src/server/client-build.js +371 -132
  328. package/src/server/client-formatted.js +47 -16
  329. package/src/server/conf.js +91 -87
  330. package/src/server/data-query.js +32 -20
  331. package/src/server/dns.js +22 -0
  332. package/src/server/ipfs-client.js +232 -91
  333. package/src/server/object-layer.js +1 -6
  334. package/src/server/process.js +192 -45
  335. package/src/server/proxy.js +9 -2
  336. package/src/server/runtime.js +1 -1
  337. package/src/server/semantic-layer-generator-floor.js +11 -51
  338. package/src/server/semantic-layer-generator-resource.js +259 -0
  339. package/src/server/semantic-layer-generator-skin.js +41 -171
  340. package/src/server/semantic-layer-generator.js +122 -14
  341. package/src/server/shape-generator.js +108 -0
  342. package/src/server/start.js +34 -8
  343. package/src/server/valkey.js +143 -235
  344. package/src/ws/IoInterface.js +16 -16
  345. package/src/ws/core/channels/core.ws.chat.js +11 -11
  346. package/src/ws/core/channels/core.ws.mailer.js +29 -29
  347. package/src/ws/core/channels/core.ws.stream.js +19 -19
  348. package/src/ws/core/core.ws.connection.js +8 -8
  349. package/src/ws/core/core.ws.server.js +6 -5
  350. package/src/ws/default/channels/default.ws.main.js +10 -10
  351. package/src/ws/default/default.ws.connection.js +4 -4
  352. package/src/ws/default/default.ws.server.js +4 -3
  353. package/tsconfig.docs.json +15 -0
  354. package/typedoc.dd-cyberia.json +29 -0
  355. package/typedoc.json +29 -0
  356. package/WHITE-PAPER.md +0 -1540
  357. package/bin/file.js +0 -196
  358. package/bin/vs.js +0 -74
  359. package/bin/zed.js +0 -84
  360. package/hardhat/README.md +0 -531
  361. package/hardhat/WHITE-PAPER.md +0 -1540
  362. package/jsdoc.dd-cyberia.json +0 -68
  363. package/jsdoc.json +0 -68
  364. package/src/api/cyberia-instance-conf/cyberia-instance-conf.defaults.js +0 -413
  365. package/src/api/object-layer/README.md +0 -672
  366. package/src/client/components/core/ColorPalette.js +0 -5267
  367. package/src/client/components/core/JoyStick.js +0 -80
  368. package/src/client/components/cryptokoyn/RoutesCryptokoyn.js +0 -39
  369. package/src/client/components/cyberia-portal/CommonCyberiaPortal.js +0 -223
  370. package/src/client/components/cyberia-portal/RoutesCyberiaPortal.js +0 -62
  371. package/src/client/components/cyberia-portal/ServerCyberiaPortal.js +0 -136
  372. package/src/client/components/default/RoutesDefault.js +0 -49
  373. package/src/client/components/itemledger/RoutesItemledger.js +0 -40
  374. package/src/client/components/underpost/RoutesUnderpost.js +0 -47
  375. package/src/client/ssr/email/DefaultRecoverEmail.js +0 -21
  376. package/src/client/ssr/email/DefaultVerifyEmail.js +0 -17
  377. package/src/client/ssr/pages/CyberiaServerMetrics.js +0 -461
  378. package/src/client/sw/default.sw.js +0 -127
  379. package/src/client/sw/template.sw.js +0 -84
  380. package/src/grpc/cyberia/OFF_CHAIN_ECONOMY.md +0 -305
  381. package/src/grpc/cyberia/README.md +0 -326
@@ -1,84 +0,0 @@
1
- // https://googlechrome.github.io/samples/service-worker/custom-offline-page/
2
-
3
- /*
4
- Copyright 2015, 2019 Google Inc. All Rights Reserved.
5
- Licensed under the Apache License, Version 2.0 (the "License");
6
- you may not use this file except in compliance with the License.
7
- You may obtain a copy of the License at
8
- http://www.apache.org/licenses/LICENSE-2.0
9
- Unless required by applicable law or agreed to in writing, software
10
- distributed under the License is distributed on an "AS IS" BASIS,
11
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- See the License for the specific language governing permissions and
13
- limitations under the License.
14
- */
15
-
16
- // Incrementing OFFLINE_VERSION will kick off the install event and force
17
- // previously cached resources to be updated from the network.
18
- const OFFLINE_VERSION = 1;
19
- const CACHE_NAME = 'offline';
20
- // Customize this with a different URL if needed.
21
- const OFFLINE_URL = 'offline.html';
22
-
23
- self.addEventListener('install', (event) => {
24
- event.waitUntil(
25
- (async () => {
26
- const cache = await caches.open(CACHE_NAME);
27
- // Setting {cache: 'reload'} in the new request will ensure that the response
28
- // isn't fulfilled from the HTTP cache; i.e., it will be from the network.
29
- await cache.add(new Request(OFFLINE_URL, { cache: 'reload' }));
30
- })(),
31
- );
32
- });
33
-
34
- self.addEventListener('activate', (event) => {
35
- event.waitUntil(
36
- (async () => {
37
- // Enable navigation preload if it's supported.
38
- // See https://developers.google.com/web/updates/2017/02/navigation-preload
39
- if ('navigationPreload' in self.registration) {
40
- await self.registration.navigationPreload.enable();
41
- }
42
- })(),
43
- );
44
-
45
- // Tell the active service worker to take control of the page immediately.
46
- self.clients.claim();
47
- });
48
-
49
- self.addEventListener('fetch', (event) => {
50
- // We only want to call event.respondWith() if this is a navigation request
51
- // for an HTML page.
52
- if (event.request.mode === 'navigate') {
53
- event.respondWith(
54
- (async () => {
55
- try {
56
- // First, try to use the navigation preload response if it's supported.
57
- const preloadResponse = await event.preloadResponse;
58
- if (preloadResponse) {
59
- return preloadResponse;
60
- }
61
-
62
- const networkResponse = await fetch(event.request);
63
- return networkResponse;
64
- } catch (error) {
65
- // catch is only triggered if an exception is thrown, which is likely
66
- // due to a network error.
67
- // If fetch() returns a valid HTTP response with a response code in
68
- // the 4xx or 5xx range, the catch() will NOT be called.
69
- console.log('Fetch failed; returning offline page instead.', error);
70
-
71
- const cache = await caches.open(CACHE_NAME);
72
- const cachedResponse = await cache.match(OFFLINE_URL);
73
- return cachedResponse;
74
- }
75
- })(),
76
- );
77
- }
78
-
79
- // If our if() condition is false, then this fetch handler won't intercept the
80
- // request. If there are any other fetch handlers registered, they will get a
81
- // chance to call event.respondWith(). If no fetch handlers call
82
- // event.respondWith(), the request will be handled by the browser as if there
83
- // were no service worker involvement.
84
- });
@@ -1,305 +0,0 @@
1
- # Off-Chain Economy — Fountain & Sink Architecture
2
-
3
- > **Status:** Alpha (sinks disabled; all values reset on reconnect).
4
- > **On-chain bridge:** Planned — CKY ERC-1155 token (token ID 0) on Hyperledger Besu.
5
- > See `hardhat/WHITE-PAPER.md §7 Tokenomics` for the bridge protocol.
6
-
7
- ---
8
-
9
- ## 1. Model Overview
10
-
11
- This game uses the **Fountain & Sink** economy model — the industry standard for
12
- sustainable in-game economies, pioneered by _Ultima Online_ and perfected in
13
- _EVE Online_ and _World of Warcraft_.
14
-
15
- ```
16
- ┌─────────────────────────────┐
17
- │ FOUNTAINS │
18
- │ (inject coins into economy) │
19
- │ │
20
- │ botSpawnCoins ──► Bot │
21
- │ playerSpawnCoins ► Player │
22
- └──────────────┬──────────────┘
23
- │ new coins
24
-
25
- ┌──────────────────────────────┐
26
- │ CIRCULATING SUPPLY │
27
- │ (player & bot wallets) │
28
- └──────┬───────────────────────┘
29
-
30
- ┌────────────┴────────────┐
31
- │ KILL TRANSFER │ zero-sum: no new coins created
32
- │ (redistribution) │ loser → winner
33
- │ │
34
- │ PvE: coinKillPercentVsBot │
35
- │ PvP: coinKillPercentVsPlayer │
36
- │ floor: coinKillMinAmount │
37
- └────────────┬────────────┘
38
-
39
- ┌──────▼──────────────────────┐
40
- │ SINKS │
41
- │ (destroy coins, alpha=0) │
42
- │ │
43
- │ respawnCostPercent │
44
- │ portalFee │
45
- │ craftingFeePercent │
46
- └─────────────────────────────┘
47
- ```
48
-
49
- ### Core rules
50
-
51
- | Rule | Description |
52
- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
53
- | **Bots are infinite mint** | Every bot respawn resets its wallet to `botSpawnCoins`. The supply is only bounded by player activity (kill rate). |
54
- | **Players are zero-sum** | Killing a player transfers coins but does not create new ones. PvP is redistribution only. |
55
- | **Kill floor** | `coinKillMinAmount` guarantees every successful kill pays out, even against a near-empty wallet. |
56
- | **Sinks scale with economy** | Portal fees and respawn costs burn a fraction — more activity = more burn. Keeps the economy from inflating indefinitely. |
57
-
58
- ---
59
-
60
- ## 2. Configuration Structure
61
-
62
- Economy parameters live in a dedicated `economyRules` sub-document inside
63
- `CyberiaInstanceConf`, exactly mirroring the `skillRules` pattern.
64
-
65
- ### 2.1 JavaScript defaults (`cyberia-instance-conf.defaults.js`)
66
-
67
- ```js
68
- economyRules: {
69
- // ── Fountains ──────────────────────────────────────────────────────
70
- botSpawnCoins: 50, // coins on bot spawn / respawn (infinite mint)
71
- playerSpawnCoins: 50, // guest starting wallet (resets on reconnect)
72
-
73
- // ── Kill Transfer ───────────────────────────────────────────────────
74
- coinKillPercentVsBot: 0.4, // 40 % of bot wallet → killer on PvE kill
75
- coinKillPercentVsPlayer: 0.15, // 15 % of player wallet → killer on PvP kill
76
- coinKillMinAmount: 10, // minimum coins per kill (hard floor)
77
-
78
- // ── Sinks (alpha: all 0 = disabled) ────────────────────────────────
79
- respawnCostPercent: 0.0, // fraction burned on player death
80
- portalFee: 0, // flat coins burned per portal use
81
- craftingFeePercent: 0.0, // fraction burned per crafting action
82
- },
83
- ```
84
-
85
- ### 2.2 Mongoose schema (`cyberia-instance-conf.model.js`)
86
-
87
- ```js
88
- // EconomyRulesSchema — mirrors defaults above
89
- economyRules: {
90
- type: EconomyRulesSchema;
91
- }
92
- ```
93
-
94
- The schema validates each field against the default value so a freshly created
95
- document is immediately playable without any explicit configuration.
96
-
97
- ### 2.3 Protobuf message (`proto/cyberia.proto`)
98
-
99
- ```proto
100
- message EconomyRules {
101
- int32 bot_spawn_coins = 1;
102
- int32 player_spawn_coins = 2;
103
- double coin_kill_percent_vs_bot = 3;
104
- double coin_kill_percent_vs_player = 4;
105
- int32 coin_kill_min_amount = 5;
106
- double respawn_cost_percent = 6;
107
- int32 portal_fee = 7;
108
- double crafting_fee_percent = 8;
109
- }
110
-
111
- // Used in InstanceConfig:
112
- EconomyRules economy_rules = 62;
113
- ```
114
-
115
- ### 2.4 Go server (`src/server.go` → `ApplyInstanceConfig`)
116
-
117
- ```go
118
- er := cfg.GetEconomyRules()
119
- if er == nil { er = &pb.EconomyRules{} }
120
-
121
- s.botSpawnCoins = int(er.GetBotSpawnCoins())
122
- s.playerSpawnCoins = int(er.GetPlayerSpawnCoins())
123
- s.coinKillPercentVsBot = er.GetCoinKillPercentVsBot()
124
- s.coinKillPercentVsPlayer = er.GetCoinKillPercentVsPlayer()
125
- s.coinKillMinAmount = int(er.GetCoinKillMinAmount())
126
- s.respawnCostPercent = er.GetRespawnCostPercent()
127
- s.portalFee = int(er.GetPortalFee())
128
- s.craftingFeePercent = er.GetCraftingFeePercent()
129
- ```
130
-
131
- ---
132
-
133
- ## 3. Runtime Economy API (`src/economy.go`)
134
-
135
- All economy logic is encapsulated in a single file to enforce the single-source
136
- principle. Callers (`handlers.go`, `collision.go`, `skill.go`) call named methods
137
- and never manipulate coin wallets directly.
138
-
139
- ### Method reference
140
-
141
- | Method | Caller | Description |
142
- | ------------------------------------- | ---------------------------------- | ----------------------------------------------------------- |
143
- | `FountainInitPlayer(player)` | `handlers.go` on WebSocket connect | Credits `playerSpawnCoins` to new player |
144
- | `FountainInitBot(bot)` | `collision.go` on bot respawn | Resets bot wallet to `botSpawnCoins` (infinite mint) |
145
- | `ExecuteKillTransfer(caster, victim)` | `skill.go HandleOnKillSkills` | Transfers coins based on kill scenario (all 4 combinations) |
146
- | `SinkRespawnCost(player)` | `collision.go handlePlayerDeath` | Burns `respawnCostPercent`% of player coins (0 = no-op) |
147
- | `SinkPortalFee(player)` | Portal handler _(future)_ | Burns flat `portalFee` coins on portal use (0 = no-op) |
148
-
149
- ### Kill transfer scenarios
150
-
151
- ```
152
- ExecuteKillTransfer(caster, victim):
153
-
154
- if caster=Player, victim=Bot → PvE rate (coinKillPercentVsBot)
155
- if caster=Player, victim=Player → PvP rate (coinKillPercentVsPlayer)
156
- if caster=Bot, victim=Player → PvP rate (bot kills player)
157
- if caster=Bot, victim=Bot → PvE rate (bot kills bot, e.g. friendly fire)
158
-
159
- transfer = max(floor(victim.coins * rate), coinKillMinAmount)
160
- transfer = min(transfer, victim.coins) -- can't take more than available
161
- victim.coins -= transfer
162
- caster.coins += transfer -- bots ignore received coins
163
- sendFCT(caster, FCTTypeCoinGain, ...)
164
- sendFCT(victim, FCTTypeCoinLoss, ...)
165
- ```
166
-
167
- ---
168
-
169
- ## 4. Floating Combat Text (FCT) Wire Protocol
170
-
171
- Economy events trigger client-side visual feedback via the binary AOI protocol.
172
-
173
- ```
174
- MsgTypeFCT = 0x04 (14 bytes, little-endian)
175
-
176
- Offset Size Field
177
- ────── ──── ──────────────────────────────────────
178
- 0 u8 message type (0x04)
179
- 1 u8 fct_type (see table below)
180
- 2 f32 world_x (entity position)
181
- 6 f32 world_y
182
- 10 u32 value (always positive; sign implied by type)
183
- ```
184
-
185
- | `fct_type` | Constant | Color | Display |
186
- | ---------- | ----------------- | ------ | -------------- |
187
- | `0x00` | `FCTTypeDamage` | Red | `-N` HP lost |
188
- | `0x01` | `FCTTypeRegen` | Green | `+N` HP gained |
189
- | `0x02` | `FCTTypeCoinGain` | Yellow | `+N` coins |
190
- | `0x03` | `FCTTypeCoinLoss` | Yellow | `-N` coins |
191
-
192
- ---
193
-
194
- ## 5. MongoDB Document Example
195
-
196
- A complete `CyberiaInstanceConf` document with economy configured:
197
-
198
- ```json
199
- {
200
- "instanceCode": "alpha-01",
201
- "cellSize": 45,
202
- "fps": 60,
203
- "economyRules": {
204
- "botSpawnCoins": 50,
205
- "playerSpawnCoins": 50,
206
- "coinKillPercentVsBot": 0.4,
207
- "coinKillPercentVsPlayer": 0.15,
208
- "coinKillMinAmount": 10,
209
- "respawnCostPercent": 0.0,
210
- "portalFee": 0,
211
- "craftingFeePercent": 0.0
212
- },
213
- "skillRules": {
214
- "projectileSpawnChance": 0.5,
215
- "projectileLifetimeMs": 2000,
216
- "projectileWidth": 1,
217
- "projectileHeight": 1,
218
- "projectileSpeedMultiplier": 3,
219
- "doppelgangerSpawnChance": 0.5,
220
- "doppelgangerLifetimeMs": 5000,
221
- "doppelgangerSpawnRadius": 3,
222
- "doppelgangerInitialLifeFraction": 1.0
223
- }
224
- }
225
- ```
226
-
227
- ---
228
-
229
- ## 6. gRPC / Config Builder
230
-
231
- The `toInstanceConfig()` function in `grpc-server.js` resolves `economyRules`
232
- with a simple two-tier fallback:
233
-
234
- ```
235
- priority: gc.economyRules.field (instance document in MongoDB)
236
- → fb.economyRules.field (CYBERIA_INSTANCE_CONF_DEFAULTS — always set)
237
- ```
238
-
239
- All economy state lives exclusively in `economyRules`. There is no flat-field
240
- fallback chain. A document without an `economyRules` sub-document receives
241
- the canonical defaults automatically.
242
-
243
- ---
244
-
245
- ## 7. Enabling Sinks (Graduation from Alpha)
246
-
247
- When you want to activate the economy pressure levers, update `economyRules` in
248
- the DB document for the target instance:
249
-
250
- ```json
251
- {
252
- "economyRules": {
253
- "respawnCostPercent": 0.1,
254
- "portalFee": 5,
255
- "craftingFeePercent": 0.05
256
- }
257
- }
258
- ```
259
-
260
- The Go server picks up changes on the next `LoadAll` / hot-reload via gRPC.
261
- No binary redeployment is needed.
262
-
263
- Recommended progression:
264
-
265
- 1. **Alpha** — all sinks at 0; fountains generous (50 coins/spawn).
266
- 2. **Beta** — `respawnCostPercent: 0.05`, bots at 30 coins.
267
- 3. **Live** — tune all three sinks; enable on-chain bridge.
268
-
269
- ---
270
-
271
- ## 8. On-Chain Bridge (Future)
272
-
273
- ```
274
- Off-chain wallet (in-memory)
275
- │ on authenticate (secp256k1 sig)
276
-
277
- ERC-1155 CKY token (token ID 0) ← ObjectLayerToken contract
278
- │ on session end / explicit withdraw
279
-
280
- Player's Hyperledger Besu wallet
281
- ```
282
-
283
- Until the bridge is live every economy event is ephemeral:
284
-
285
- - Wallets reset to `playerSpawnCoins` on every reconnect.
286
- - Bot wallets reset to `botSpawnCoins` on every respawn.
287
- - No cross-session coin persistence.
288
-
289
- This is intentional — the off-chain fallback lets the economy be tuned and
290
- battle-tested before committing values to an immutable ledger.
291
-
292
- ---
293
-
294
- ## 9. Field Reference
295
-
296
- | Field | Type | Default | Scope |
297
- | -------------------------------------- | ------------- | ------- | ------------- |
298
- | `economyRules.botSpawnCoins` | `int` | `50` | Fountain |
299
- | `economyRules.playerSpawnCoins` | `int` | `50` | Fountain |
300
- | `economyRules.coinKillPercentVsBot` | `float` [0,1] | `0.4` | Kill Transfer |
301
- | `economyRules.coinKillPercentVsPlayer` | `float` [0,1] | `0.15` | Kill Transfer |
302
- | `economyRules.coinKillMinAmount` | `int` | `10` | Kill Transfer |
303
- | `economyRules.respawnCostPercent` | `float` [0,1] | `0.0` | Sink |
304
- | `economyRules.portalFee` | `int` | `0` | Sink |
305
- | `economyRules.craftingFeePercent` | `float` [0,1] | `0.0` | Sink |