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
@@ -0,0 +1,330 @@
1
+ /**
2
+ * Shared Cyberia defaults — isomorphic, dependency-free, importable from
3
+ * **both** Node and the browser.
4
+ *
5
+ * Pure plain-data ESM module: no Node built-ins, no DOM APIs, no
6
+ * environment guards. Every export is a frozen literal, a constant
7
+ * lookup table, or a pure function over those tables. Side-effect free
8
+ * on import.
9
+ *
10
+ * Two responsibilities, no others:
11
+ *
12
+ * 1. **Presentation values** — palette, entity colour keys, status-icon
13
+ * visuals (icon stem + border colour + bounce), camera tunings,
14
+ * render flags. Mirrored 1-to-1 by the C/WASM client's compile-time
15
+ * defaults in `cyberia-client/src/domain/presentation_defaults.h`.
16
+ * Optionally overridable per deployment through the REST endpoint
17
+ * `/api/cyberia-client-hints/:code`.
18
+ *
19
+ * 2. **Shared content vocabulary** — `ITEM_TYPES`, `ENTITY_TYPES`,
20
+ * `DefaultCyberiaItems` registry + lookups, type-to-item mapping,
21
+ * quest step / action type enums. The data shape both the
22
+ * browser-side editor UI and the engine REST controllers need to
23
+ * understand; it is **not** simulation state.
24
+ *
25
+ * STRICT BOUNDARIES
26
+ * -----------------
27
+ * - The cyberia-server (Go) MUST NOT load this file. None of these
28
+ * values influence the authoritative simulation. The server owns the
29
+ * numeric Entity Status Indicator IDs only (see `cyberia-server-defaults`).
30
+ *
31
+ * - The C/WASM cyberia-client embeds *presentation* defaults at compile
32
+ * time and fetches optional overrides through REST. It does NOT carry
33
+ * the JS vocabulary constants — entity-type and item-id strings
34
+ * arrive on the wire and are matched directly.
35
+ *
36
+ * - The browser editor bundles this file via esbuild. It MUST NOT
37
+ * import `cyberia-server-defaults.js` — that would pull simulation
38
+ * rules, economy, and seed content into the browser bundle. All
39
+ * shared vocabulary the editor needs lives here.
40
+ *
41
+ * Naming: this file is intentionally placed under `src/client/` so its
42
+ * URL is `/components/cyberia/SharedDefaultsCyberia.js` when the engine
43
+ * static server resolves it. Node-side importers reach in with a
44
+ * relative path; both halves see the same module instance.
45
+ *
46
+ * @module src/client/components/cyberia/SharedDefaultsCyberia.js
47
+ */
48
+
49
+ // ─────────────────────────────────────────────────────────────────────────────
50
+ // Shared content vocabulary
51
+ // ─────────────────────────────────────────────────────────────────────────────
52
+
53
+ /**
54
+ * Canonical set of ObjectLayer item type names. Used as the
55
+ * `data.item.type` discriminator and as the asset directory name on disk.
56
+ *
57
+ * Values intentionally equal their keys — this is a string enum, not a
58
+ * z-order map. Render layer ordering lives in `entity_render.c`.
59
+ *
60
+ * @type {Readonly<Record<string,string>>}
61
+ */
62
+ export const ITEM_TYPES = Object.freeze({
63
+ skin: 'skin',
64
+ breastplate: 'breastplate',
65
+ weapon: 'weapon',
66
+ skill: 'skill',
67
+ coin: 'coin',
68
+ floor: 'floor',
69
+ obstacle: 'obstacle',
70
+ portal: 'portal',
71
+ foreground: 'foreground',
72
+ resource: 'resource',
73
+ });
74
+
75
+ /**
76
+ * Canonical set of entity category names used by the Go simulation,
77
+ * the C/WASM client, and the browser editor UI.
78
+ *
79
+ * @type {Readonly<Record<string,string>>}
80
+ */
81
+ export const ENTITY_TYPES = Object.freeze({
82
+ player: 'player',
83
+ other_player: 'other_player',
84
+ bot: 'bot',
85
+ skill: 'skill',
86
+ coin: 'coin',
87
+ floor: 'floor',
88
+ obstacle: 'obstacle',
89
+ portal: 'portal',
90
+ foreground: 'foreground',
91
+ resource: 'resource',
92
+ });
93
+
94
+ /** Per-entity-type allowlist of item types that may appear on the entity. */
95
+ export const ENTITY_TYPE_TO_ITEM_TYPES = Object.freeze({
96
+ [ENTITY_TYPES.player]: Object.freeze([ITEM_TYPES.skin, ITEM_TYPES.breastplate, ITEM_TYPES.weapon]),
97
+ [ENTITY_TYPES.other_player]: Object.freeze([ITEM_TYPES.skin, ITEM_TYPES.breastplate, ITEM_TYPES.weapon]),
98
+ [ENTITY_TYPES.bot]: Object.freeze([ITEM_TYPES.skin, ITEM_TYPES.weapon]),
99
+ [ENTITY_TYPES.skill]: Object.freeze([ITEM_TYPES.skill]),
100
+ [ENTITY_TYPES.coin]: Object.freeze([ITEM_TYPES.coin]),
101
+ [ENTITY_TYPES.floor]: Object.freeze([ITEM_TYPES.floor]),
102
+ [ENTITY_TYPES.obstacle]: Object.freeze([ITEM_TYPES.obstacle]),
103
+ [ENTITY_TYPES.portal]: Object.freeze([ITEM_TYPES.portal]),
104
+ [ENTITY_TYPES.foreground]: Object.freeze([ITEM_TYPES.foreground]),
105
+ [ENTITY_TYPES.resource]: Object.freeze([ITEM_TYPES.resource]),
106
+ });
107
+
108
+ /** Quest step objective types accepted by the quest-progress engine. */
109
+ export const QUEST_STEPS_TYPES = Object.freeze(['collect', 'talk', 'kill']);
110
+
111
+ /** Action categories accepted by the cyberia-action engine. */
112
+ export const CYBERIA_ACTION_TYPES = Object.freeze(['craft', 'shop', 'storage', 'quest-talk']);
113
+
114
+ /**
115
+ * Canonical (itemId → itemType) registry shipped with the engine. Used
116
+ * by the import-default-items seed, the on-chain ObjectLayerToken bridge,
117
+ * the fallback world generator, the CLI tooling, and the browser editor.
118
+ *
119
+ * Adding a new item here is the **only** place it needs to be declared.
120
+ */
121
+ export const DefaultCyberiaItems = [
122
+ { item: { id: 'coin', type: ITEM_TYPES.coin } },
123
+ { item: { id: 'hatchet-skill', type: ITEM_TYPES.skill } },
124
+ { item: { id: 'atlas_pistol_mk2', type: ITEM_TYPES.weapon } },
125
+ { item: { id: 'atlas_pistol_mk2_bullet', type: ITEM_TYPES.skill } },
126
+ { item: { id: 'tim-knife', type: ITEM_TYPES.weapon } },
127
+ { item: { id: 'hatchet', type: ITEM_TYPES.weapon } },
128
+ { item: { id: 'wason', type: ITEM_TYPES.skin } },
129
+ { item: { id: 'scp-2040', type: ITEM_TYPES.skin } },
130
+ { item: { id: 'purple', type: ITEM_TYPES.skin } },
131
+ { item: { id: 'punk', type: ITEM_TYPES.skin } },
132
+ { item: { id: 'lain', type: ITEM_TYPES.skin } },
133
+ { item: { id: 'kaneki', type: ITEM_TYPES.skin } },
134
+ { item: { id: 'junko', type: ITEM_TYPES.skin } },
135
+ { item: { id: 'ghost', type: ITEM_TYPES.skin } },
136
+ { item: { id: 'eiri', type: ITEM_TYPES.skin } },
137
+ { item: { id: 'anon', type: ITEM_TYPES.skin } },
138
+ { item: { id: 'alex', type: ITEM_TYPES.skin } },
139
+ { item: { id: 'agent', type: ITEM_TYPES.skin } },
140
+ { item: { id: 'grass', type: ITEM_TYPES.floor } },
141
+ { item: { id: 'wood-1', type: ITEM_TYPES.resource } },
142
+ { item: { id: 'wood-2', type: ITEM_TYPES.resource } },
143
+ { item: { id: 'wood-extracted-1', type: ITEM_TYPES.resource } },
144
+ { item: { id: 'wood-extracted-2', type: ITEM_TYPES.resource } },
145
+ { item: { id: 'wood-drop-1', type: ITEM_TYPES.resource } },
146
+ { item: { id: 'wood-drop-2', type: ITEM_TYPES.resource } },
147
+ ];
148
+
149
+ const _ITEM_BY_ID = Object.freeze(
150
+ DefaultCyberiaItems.reduce((acc, entry) => {
151
+ acc[entry.item.id] = entry;
152
+ return acc;
153
+ }, {}),
154
+ );
155
+
156
+ /** O(1) lookup: item id → registry entry, or `null` if unknown. */
157
+ export const getDefaultCyberiaItemById = (itemId) => _ITEM_BY_ID[itemId] || null;
158
+
159
+ /** All registry entries of a given item type. */
160
+ export const getDefaultCyberiaItemsByItemType = (itemType) =>
161
+ DefaultCyberiaItems.filter((entry) => entry.item.type === itemType);
162
+
163
+ /** All registry entries whose item type is permitted on a given entity type. */
164
+ export const getDefaultCyberiaItemsByEntityType = (entityType) => {
165
+ const allowed = ENTITY_TYPE_TO_ITEM_TYPES[entityType] || [];
166
+ return DefaultCyberiaItems.filter((entry) => allowed.includes(entry.item.type));
167
+ };
168
+
169
+ // ─────────────────────────────────────────────────────────────────────────────
170
+ // Presentation defaults
171
+ // ─────────────────────────────────────────────────────────────────────────────
172
+
173
+ /**
174
+ * Named colour palette. Solid-color fallbacks for entity types, plus
175
+ * UI-only entries (WEAPON, SELF_BORDER) the renderer uses for HUD.
176
+ *
177
+ * Keys are stable identifiers shared with the C client's local palette.
178
+ * Adding a new key here requires adding it to
179
+ * `cyberia-client/src/domain/presentation_defaults.h` to keep parity.
180
+ *
181
+ * @type {ReadonlyArray<{key:string,r:number,g:number,b:number,a:number}>}
182
+ */
183
+ export const PALETTE = Object.freeze([
184
+ { key: 'BACKGROUND', r: 30, g: 30, b: 30, a: 255 },
185
+ { key: 'FLOOR_BACKGROUND', r: 45, g: 45, b: 45, a: 255 },
186
+ { key: 'FLOOR', r: 60, g: 60, b: 60, a: 255 },
187
+ { key: 'OBSTACLE', r: 80, g: 80, b: 80, a: 255 },
188
+ { key: 'PORTAL', r: 0, g: 200, b: 200, a: 255 },
189
+ { key: 'PORTAL_INTER_PORTAL', r: 0, g: 200, b: 200, a: 255 },
190
+ { key: 'PORTAL_INTER_RANDOM', r: 80, g: 130, b: 255, a: 255 },
191
+ { key: 'PORTAL_INTRA_RANDOM', r: 220, g: 200, b: 50, a: 255 },
192
+ { key: 'PORTAL_INTRA_PORTAL', r: 200, g: 80, b: 200, a: 255 },
193
+ { key: 'FOREGROUND', r: 255, g: 255, b: 255, a: 189 },
194
+ { key: 'PLAYER', r: 0, g: 255, b: 0, a: 255 },
195
+ { key: 'OTHER_PLAYER', r: 128, g: 128, b: 255, a: 255 },
196
+ { key: 'BOT', r: 255, g: 128, b: 0, a: 255 },
197
+ { key: 'GHOST', r: 200, g: 200, b: 255, a: 100 },
198
+ { key: 'COIN', r: 255, g: 215, b: 0, a: 255 },
199
+ { key: 'SKILL', r: 255, g: 255, b: 50, a: 255 },
200
+ { key: 'RESOURCE', r: 100, g: 180, b: 80, a: 255 },
201
+ { key: 'WEAPON', r: 180, g: 50, b: 50, a: 255 },
202
+ { key: 'SELF_BORDER', r: 220, g: 190, b: 60, a: 240 },
203
+ ]);
204
+
205
+ /**
206
+ * Per-entity-type palette key. Tells the client which palette entry to
207
+ * use as the solid-colour fallback for an entity that has no active
208
+ * ObjectLayer items.
209
+ */
210
+ export const ENTITY_COLOR_KEYS = Object.freeze([
211
+ { entityType: 'player', colorKey: 'PLAYER' },
212
+ { entityType: 'other_player', colorKey: 'OTHER_PLAYER' },
213
+ { entityType: 'bot', colorKey: 'BOT' },
214
+ { entityType: 'skill', colorKey: 'SKILL' },
215
+ { entityType: 'coin', colorKey: 'COIN' },
216
+ { entityType: 'floor', colorKey: 'FLOOR' },
217
+ { entityType: 'obstacle', colorKey: 'OBSTACLE' },
218
+ { entityType: 'portal', colorKey: 'PORTAL' },
219
+ { entityType: 'foreground', colorKey: 'FOREGROUND' },
220
+ { entityType: 'resource', colorKey: 'RESOURCE' },
221
+ ]);
222
+
223
+ /**
224
+ * Camera and render-tuning defaults. Pure presentation — the cyberia-server
225
+ * never reads any of these. The cyberia-client fetches the whole bundle
226
+ * from /api/cyberia-client-hints/:CYBERIA_CLIENT_HINTS_CODE at startup
227
+ * and treats this object as the on-disk schema.
228
+ *
229
+ * cellSize — pixels per simulation cell on the client viewport.
230
+ * Authoritative server works in cell units; this value
231
+ * only governs how cells map to pixels for rendering.
232
+ * interpolationMs — render-time smoothing window for remote entities.
233
+ * Server ticks at TickRate, snapshots at SnapshotRate,
234
+ * client decides how to display the stream.
235
+ * defaultObjWidth /
236
+ * defaultObjHeight — default entity dimensions used by the world editor
237
+ * and the client when a doc omits dims. Presentation
238
+ * because dims-in-cells is just a visual sizing.
239
+ */
240
+ export const RENDER_DEFAULTS = Object.freeze({
241
+ cellSize: 45,
242
+ defaultObjWidth: 1,
243
+ defaultObjHeight: 1,
244
+ cameraSmoothing: 0.1,
245
+ cameraZoom: 1.0,
246
+ defaultWidthScreenFactor: 1,
247
+ defaultHeightScreenFactor: 1,
248
+ interpolationMs: 100,
249
+ devUi: false,
250
+ });
251
+
252
+ /**
253
+ * Status-icon presentation half. The numeric `id` is shared with the
254
+ * simulation (it travels on the wire as a u8 inside the AOI binary
255
+ * entity-status indicator field). Everything else here — icon filename,
256
+ * border colour, bounce animation — is purely cosmetic and resolved on
257
+ * the client.
258
+ *
259
+ * IDs MUST stay aligned with `STATUS_ICONS` in `cyberia-server-defaults.js`.
260
+ */
261
+ export const STATUS_ICONS_PRESENTATION = Object.freeze([
262
+ { id: 0, iconId: null, bounce: false, borderColor: { r: 70, g: 70, b: 120, a: 200 } },
263
+ { id: 1, iconId: 'arrow-down-gray', bounce: false, borderColor: { r: 130, g: 140, b: 160, a: 200 } },
264
+ { id: 2, iconId: 'arrow-down-red', bounce: true, borderColor: { r: 210, g: 50, b: 50, a: 240 } },
265
+ { id: 3, iconId: 'chat', bounce: true, borderColor: { r: 80, g: 160, b: 220, a: 240 } },
266
+ { id: 4, iconId: 'arrow-down', bounce: false, borderColor: { r: 60, g: 190, b: 90, a: 240 } },
267
+ { id: 5, iconId: 'skull', bounce: false, borderColor: { r: 160, g: 130, b: 200, a: 200 } },
268
+ { id: 6, iconId: 'arrow-down-gray', bounce: false, borderColor: { r: 100, g: 180, b: 80, a: 220 } },
269
+ { id: 7, iconId: 'clock', bounce: false, borderColor: { r: 160, g: 130, b: 200, a: 200 } },
270
+ { id: 8, iconId: 'chat', bounce: true, borderColor: { r: 220, g: 190, b: 60, a: 240 } },
271
+ ]);
272
+
273
+ /**
274
+ * Build the full client-hints document for a given instance.
275
+ *
276
+ * @param {Object} [overrides] DB document fragments that may override
277
+ * palette colours, render defaults, status-icon iconIds, etc.
278
+ * Anything missing falls back to the canonical defaults exported here.
279
+ * @returns {Object} JSON-friendly client hints object.
280
+ */
281
+ export function buildClientHints(overrides = {}) {
282
+ const ov = overrides || {};
283
+
284
+ // Palette merge: canonical first, DB overrides keyed by name, append any
285
+ // truly new keys at the end.
286
+ const dbColors = new Map((ov.colors || []).map((c) => [c.key, c]));
287
+ const palette = PALETTE.map((c) => {
288
+ const o = dbColors.get(c.key);
289
+ return o ? { key: c.key, r: o.r ?? c.r, g: o.g ?? c.g, b: o.b ?? c.b, a: o.a ?? c.a } : { ...c };
290
+ });
291
+ for (const [key, c] of dbColors) {
292
+ if (!palette.some((p) => p.key === key)) {
293
+ palette.push({ key, r: c.r ?? 0, g: c.g ?? 0, b: c.b ?? 0, a: c.a ?? 255 });
294
+ }
295
+ }
296
+
297
+ // Status icons: only iconId is overridable. Border colour stays canonical
298
+ // because the DB schema defaults for that field are placeholder values.
299
+ const dbIcons = new Map((ov.statusIcons || []).map((s) => [s.id, s]));
300
+ const statusIcons = STATUS_ICONS_PRESENTATION.map((canon) => {
301
+ const o = dbIcons.get(canon.id);
302
+ return {
303
+ id: canon.id,
304
+ iconId: (o && o.iconId) || canon.iconId || '',
305
+ bounce: canon.bounce,
306
+ borderColor: { ...canon.borderColor },
307
+ };
308
+ });
309
+
310
+ return {
311
+ palette,
312
+ entityColorKeys: ENTITY_COLOR_KEYS.map((e) => ({ ...e })),
313
+ statusIcons,
314
+ cellSize: ov.cellSize ?? RENDER_DEFAULTS.cellSize,
315
+ defaultObjWidth: ov.defaultObjWidth ?? RENDER_DEFAULTS.defaultObjWidth,
316
+ defaultObjHeight: ov.defaultObjHeight ?? RENDER_DEFAULTS.defaultObjHeight,
317
+ cameraSmoothing: ov.cameraSmoothing ?? RENDER_DEFAULTS.cameraSmoothing,
318
+ cameraZoom: ov.cameraZoom ?? RENDER_DEFAULTS.cameraZoom,
319
+ defaultWidthScreenFactor: ov.defaultWidthScreenFactor ?? RENDER_DEFAULTS.defaultWidthScreenFactor,
320
+ defaultHeightScreenFactor: ov.defaultHeightScreenFactor ?? RENDER_DEFAULTS.defaultHeightScreenFactor,
321
+ interpolationMs: ov.interpolationMs ?? RENDER_DEFAULTS.interpolationMs,
322
+ devUi: ov.devUi ?? RENDER_DEFAULTS.devUi,
323
+ };
324
+ }
325
+
326
+ /**
327
+ * Canonical hints document — what the client gets when no DB overrides
328
+ * exist (or the engine endpoint is unreachable).
329
+ */
330
+ export const CYBERIA_CLIENT_HINTS_DEFAULTS = buildClientHints({});