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
@@ -0,0 +1,319 @@
1
+ /**
2
+ * Floor semantic descriptors for the Semantic Layer Generator.
3
+ *
4
+ * Provides procedural generation recipes for all floor-type object layers:
5
+ * desert, grass, water, stone, and lava. Imported by the main
6
+ * semantic-layer-generator.js which registers them at startup.
7
+ *
8
+ * Biome palettes are imported from the centralized BIOME_PALETTES in the
9
+ * parent module (circular import is safe because the function body is only
10
+ * executed after module initialisation completes).
11
+ *
12
+ * @module src/server/semantic-layer-generator-floor.js
13
+ * @namespace SemanticLayerGeneratorFloor
14
+ */
15
+
16
+ import { BIOME_PALETTES } from './semantic-layer-generator.js';
17
+
18
+ /* ═══════════════════════════════════════════════════════════════════════════
19
+ * FLOOR SEMANTIC REGISTRY
20
+ * Call registerFloorSemantics(registerFn) once to add all floor descriptors.
21
+ * ═══════════════════════════════════════════════════════════════════════════ */
22
+
23
+ /**
24
+ * Registers all built-in floor semantic descriptors.
25
+ *
26
+ * @param {function(string, import('./semantic-layer-generator.js').SemanticDescriptor): void} registerFn
27
+ * @memberof SemanticLayerGeneratorFloor
28
+ */
29
+ export function registerFloorSemantics(registerFn) {
30
+ /* ── Desert ───────────────────────────────────────────────────────────── */
31
+ registerFn('floor-desert', {
32
+ semanticTags: ['sand', 'dune', 'arid', 'dry'],
33
+ paletteHints: BIOME_PALETTES.desert,
34
+ preferredShapes: { ellipse: 3, circle: 2, cactus: 1, star: 0.5 },
35
+ itemType: 'floor',
36
+ layers: {
37
+ base: {
38
+ generator: 'noise-field',
39
+ shapes: ['ellipse'],
40
+ count: 0,
41
+ scaleVariance: 0,
42
+ rotationVariance: 0,
43
+ colorShift: 8,
44
+ jitter: 0,
45
+ noiseLevel: 0.3,
46
+ detailLevel: 1,
47
+ sparsity: 0,
48
+ frameJitter: 0,
49
+ frameRotation: 0,
50
+ frameScale: 0,
51
+ },
52
+ dunes: {
53
+ generator: 'shape',
54
+ shapes: ['ellipse', 'circle'],
55
+ count: 5,
56
+ scaleVariance: 0.3,
57
+ rotationVariance: 15,
58
+ colorShift: 12,
59
+ jitter: 0.08,
60
+ noiseLevel: 0.15,
61
+ detailLevel: 1.2,
62
+ sparsity: 0.3,
63
+ frameJitter: 0.005,
64
+ frameRotation: 0.5,
65
+ frameScale: 0.005,
66
+ },
67
+ rocks: {
68
+ generator: 'shape',
69
+ shapes: ['star', 'circle'],
70
+ count: 3,
71
+ scaleVariance: 0.4,
72
+ rotationVariance: 45,
73
+ colorShift: 15,
74
+ jitter: 0.12,
75
+ noiseLevel: 0.2,
76
+ detailLevel: 1,
77
+ sparsity: 0.5,
78
+ frameJitter: 0.002,
79
+ frameRotation: 0.3,
80
+ frameScale: 0.003,
81
+ },
82
+ tufts: {
83
+ generator: 'shape',
84
+ shapes: ['cactus', 'star'],
85
+ count: 2,
86
+ scaleVariance: 0.25,
87
+ rotationVariance: 20,
88
+ colorShift: 10,
89
+ jitter: 0.1,
90
+ noiseLevel: 0.1,
91
+ detailLevel: 0.8,
92
+ sparsity: 0.6,
93
+ frameJitter: 0.008,
94
+ frameRotation: 1.0,
95
+ frameScale: 0.006,
96
+ },
97
+ },
98
+ });
99
+
100
+ /* ── Grass ────────────────────────────────────────────────────────────── */
101
+ registerFn('floor-grass', {
102
+ semanticTags: ['grass', 'meadow', 'green', 'earth'],
103
+ paletteHints: BIOME_PALETTES.grass,
104
+ preferredShapes: { ellipse: 3, circle: 2, heart: 0.5 },
105
+ itemType: 'floor',
106
+ layers: {
107
+ base: {
108
+ generator: 'noise-field',
109
+ shapes: ['circle'],
110
+ count: 0,
111
+ scaleVariance: 0,
112
+ rotationVariance: 0,
113
+ colorShift: 10,
114
+ jitter: 0,
115
+ noiseLevel: 0.25,
116
+ detailLevel: 1,
117
+ sparsity: 0,
118
+ frameJitter: 0,
119
+ frameRotation: 0,
120
+ frameScale: 0,
121
+ },
122
+ blades: {
123
+ generator: 'shape',
124
+ shapes: ['ellipse', 'heart'],
125
+ count: 6,
126
+ scaleVariance: 0.35,
127
+ rotationVariance: 40,
128
+ colorShift: 15,
129
+ jitter: 0.1,
130
+ noiseLevel: 0.12,
131
+ detailLevel: 1.0,
132
+ sparsity: 0.25,
133
+ frameJitter: 0.01,
134
+ frameRotation: 2.0,
135
+ frameScale: 0.005,
136
+ },
137
+ patches: {
138
+ generator: 'shape',
139
+ shapes: ['circle', 'ellipse'],
140
+ count: 3,
141
+ scaleVariance: 0.3,
142
+ rotationVariance: 30,
143
+ colorShift: 12,
144
+ jitter: 0.08,
145
+ noiseLevel: 0.15,
146
+ detailLevel: 0.9,
147
+ sparsity: 0.4,
148
+ frameJitter: 0.003,
149
+ frameRotation: 0.5,
150
+ frameScale: 0.003,
151
+ },
152
+ },
153
+ });
154
+
155
+ /* ── Water ────────────────────────────────────────────────────────────── */
156
+ registerFn('floor-water', {
157
+ semanticTags: ['water', 'ocean', 'wave', 'liquid'],
158
+ paletteHints: BIOME_PALETTES.water,
159
+ preferredShapes: { ellipse: 3, circle: 2 },
160
+ itemType: 'floor',
161
+ layers: {
162
+ base: {
163
+ generator: 'noise-field',
164
+ shapes: ['ellipse'],
165
+ count: 0,
166
+ scaleVariance: 0,
167
+ rotationVariance: 0,
168
+ colorShift: 12,
169
+ jitter: 0,
170
+ noiseLevel: 0.35,
171
+ detailLevel: 1,
172
+ sparsity: 0,
173
+ frameJitter: 0,
174
+ frameRotation: 0,
175
+ frameScale: 0,
176
+ },
177
+ waves: {
178
+ generator: 'shape',
179
+ shapes: ['ellipse'],
180
+ count: 4,
181
+ scaleVariance: 0.3,
182
+ rotationVariance: 10,
183
+ colorShift: 18,
184
+ jitter: 0.06,
185
+ noiseLevel: 0.2,
186
+ detailLevel: 1.2,
187
+ sparsity: 0.2,
188
+ frameJitter: 0.015,
189
+ frameRotation: 1.5,
190
+ frameScale: 0.008,
191
+ },
192
+ foam: {
193
+ generator: 'shape',
194
+ shapes: ['circle'],
195
+ count: 3,
196
+ scaleVariance: 0.5,
197
+ rotationVariance: 0,
198
+ colorShift: 10,
199
+ jitter: 0.15,
200
+ noiseLevel: 0.1,
201
+ detailLevel: 0.7,
202
+ sparsity: 0.5,
203
+ frameJitter: 0.012,
204
+ frameRotation: 0.5,
205
+ frameScale: 0.01,
206
+ },
207
+ },
208
+ });
209
+
210
+ /* ── Stone ────────────────────────────────────────────────────────────── */
211
+ registerFn('floor-stone', {
212
+ semanticTags: ['stone', 'rock', 'cobble', 'grey'],
213
+ paletteHints: BIOME_PALETTES.stone,
214
+ preferredShapes: { circle: 3, ellipse: 2, star: 1, 'pixel-art': 0.5 },
215
+ itemType: 'floor',
216
+ layers: {
217
+ base: {
218
+ generator: 'noise-field',
219
+ shapes: ['circle'],
220
+ count: 0,
221
+ scaleVariance: 0,
222
+ rotationVariance: 0,
223
+ colorShift: 6,
224
+ jitter: 0,
225
+ noiseLevel: 0.2,
226
+ detailLevel: 1,
227
+ sparsity: 0,
228
+ frameJitter: 0,
229
+ frameRotation: 0,
230
+ frameScale: 0,
231
+ },
232
+ cobbles: {
233
+ generator: 'shape',
234
+ shapes: ['circle', 'ellipse', 'pixel-art'],
235
+ count: 6,
236
+ scaleVariance: 0.35,
237
+ rotationVariance: 90,
238
+ colorShift: 10,
239
+ jitter: 0.06,
240
+ noiseLevel: 0.15,
241
+ detailLevel: 1.0,
242
+ sparsity: 0.2,
243
+ frameJitter: 0.001,
244
+ frameRotation: 0.2,
245
+ frameScale: 0.001,
246
+ },
247
+ cracks: {
248
+ generator: 'shape',
249
+ shapes: ['star'],
250
+ count: 2,
251
+ scaleVariance: 0.5,
252
+ rotationVariance: 180,
253
+ colorShift: 20,
254
+ jitter: 0.1,
255
+ noiseLevel: 0.25,
256
+ detailLevel: 0.8,
257
+ sparsity: 0.6,
258
+ frameJitter: 0.0,
259
+ frameRotation: 0.0,
260
+ frameScale: 0.0,
261
+ },
262
+ },
263
+ });
264
+
265
+ /* ── Lava ─────────────────────────────────────────────────────────────── */
266
+ registerFn('floor-lava', {
267
+ semanticTags: ['lava', 'magma', 'fire', 'hot'],
268
+ paletteHints: BIOME_PALETTES.lava,
269
+ preferredShapes: { circle: 3, ellipse: 2, cactus: 1 },
270
+ itemType: 'floor',
271
+ layers: {
272
+ base: {
273
+ generator: 'noise-field',
274
+ shapes: ['circle'],
275
+ count: 0,
276
+ scaleVariance: 0,
277
+ rotationVariance: 0,
278
+ colorShift: 15,
279
+ jitter: 0,
280
+ noiseLevel: 0.4,
281
+ detailLevel: 1,
282
+ sparsity: 0,
283
+ frameJitter: 0,
284
+ frameRotation: 0,
285
+ frameScale: 0,
286
+ },
287
+ flow: {
288
+ generator: 'shape',
289
+ shapes: ['ellipse', 'circle'],
290
+ count: 5,
291
+ scaleVariance: 0.35,
292
+ rotationVariance: 25,
293
+ colorShift: 20,
294
+ jitter: 0.1,
295
+ noiseLevel: 0.2,
296
+ detailLevel: 1.1,
297
+ sparsity: 0.2,
298
+ frameJitter: 0.02,
299
+ frameRotation: 2.0,
300
+ frameScale: 0.01,
301
+ },
302
+ crust: {
303
+ generator: 'shape',
304
+ shapes: ['star', 'cactus'],
305
+ count: 3,
306
+ scaleVariance: 0.4,
307
+ rotationVariance: 60,
308
+ colorShift: 10,
309
+ jitter: 0.08,
310
+ noiseLevel: 0.15,
311
+ detailLevel: 0.9,
312
+ sparsity: 0.4,
313
+ frameJitter: 0.005,
314
+ frameRotation: 0.5,
315
+ frameScale: 0.004,
316
+ },
317
+ },
318
+ });
319
+ }
@@ -0,0 +1,259 @@
1
+ /**
2
+ * Resource semantic descriptors for the Semantic Layer Generator.
3
+ *
4
+ * Provides procedural generation recipes for generic collectible resource
5
+ * object layers. Each colour palette is imported from the centralized
6
+ * BIOME_PALETTES (shared with floor descriptors).
7
+ *
8
+ * Each biome is paired with four distinct shape families:
9
+ *
10
+ * • **petal** — several parabolic arcs facing the same general direction,
11
+ * reminiscent of a semi-ring of Saturn. Open curves are
12
+ * scanline-filled so each arc reads as a coloured petal.
13
+ * • **stone** — hard, angular mineral shapes (circle, pixel-art); filled.
14
+ * • **polygon** — perfect regular geometric figures (triangles, squares,
15
+ * pentagons, hexagons); filled with near-zero noise.
16
+ * • **thread** — thin, wispy lines composed of Bézier curves and
17
+ * parabolas; NOT filled — rendered as outlines only.
18
+ *
19
+ * Naming convention: `resource-{biome}-{shape}`
20
+ * e.g. `resource-desert-petal`, `resource-grass-stone`, `resource-lava-thread`
21
+ *
22
+ * All descriptors use `itemType: 'floor'` so the default single-direction
23
+ * frame pipeline (`down_idle` / `default_idle`) is used — matching the
24
+ * stateless, non-directional nature of world-placed resource pickups.
25
+ *
26
+ * @module src/server/semantic-layer-generator-resource.js
27
+ * @namespace SemanticLayerGeneratorResource
28
+ */
29
+
30
+ import { BIOME_PALETTES } from './semantic-layer-generator.js';
31
+
32
+ /* ═══════════════════════════════════════════════════════════════════════════
33
+ * SHAPE FAMILY RECIPES
34
+ *
35
+ * Each recipe defines:
36
+ * tags — semantic tags appended to the biome tags
37
+ * preferredShapes — shape → weight map for the shape picker
38
+ * layers — ordered LayerSpec dict (rendered bottom→top)
39
+ * ═══════════════════════════════════════════════════════════════════════════ */
40
+
41
+ const SHAPE_FAMILIES = {
42
+ /* ── Petal — thick parabolic arcs all facing roughly the same direction ─
43
+ * Uses `thick-parabola` — a closed band shape that traces the outer
44
+ * parabola forward and the inner parabola backward, producing a thick
45
+ * filled crescent. Two layers with slightly different curvature &
46
+ * thickness overlap to build a bold Saturn-ring effect.
47
+ * ───────────────────────────────────────────────────────────────────── */
48
+ petal: {
49
+ tags: ['petal', 'arc', 'crescent', 'organic'],
50
+ preferredShapes: { 'thick-parabola': 5 },
51
+ layers: {
52
+ arcs: {
53
+ generator: 'shape',
54
+ shapes: ['thick-parabola'],
55
+ count: 2,
56
+ scaleBase: 0.45,
57
+ scaleRange: 0.15,
58
+ scaleVariance: 0.1,
59
+ rotationBase: 90, // vertical parabolas
60
+ rotationVariance: 10,
61
+ colorShift: 18,
62
+ jitter: 0.04,
63
+ noiseLevel: 0.04,
64
+ detailLevel: 1.2,
65
+ sparsity: 0.05,
66
+ centerBias: 0.6, // cluster near tile centre
67
+ frameJitter: 0.008,
68
+ frameRotation: 1.5,
69
+ frameScale: 0.004,
70
+ fill: true,
71
+ shapeParams: { a: 0.5, rangeX: 1.3, thickness: 0.35 },
72
+ },
73
+ inner: {
74
+ generator: 'shape',
75
+ shapes: ['thick-parabola'],
76
+ count: 1,
77
+ scaleBase: 0.35,
78
+ scaleRange: 0.15,
79
+ scaleVariance: 0.1,
80
+ rotationBase: 90,
81
+ rotationVariance: 6,
82
+ colorShift: 24,
83
+ jitter: 0.03,
84
+ noiseLevel: 0.03,
85
+ detailLevel: 1.0,
86
+ sparsity: 0.05,
87
+ centerBias: 0.6,
88
+ frameJitter: 0.006,
89
+ frameRotation: 1.0,
90
+ frameScale: 0.003,
91
+ fill: true,
92
+ shapeParams: { a: 0.6, rangeX: 1.2, thickness: 0.4 },
93
+ },
94
+ },
95
+ },
96
+
97
+ /* ── Stone — hard, angular mineral shapes (filled) ────────────────────── */
98
+ stone: {
99
+ tags: ['stone', 'mineral', 'rock', 'hard'],
100
+ preferredShapes: { circle: 3, 'pixel-art': 3, star: 1, ellipse: 1 },
101
+ layers: {
102
+ body: {
103
+ generator: 'shape',
104
+ shapes: ['circle', 'pixel-art'],
105
+ count: 3,
106
+ scaleVariance: 0.35,
107
+ rotationVariance: 90,
108
+ colorShift: 10,
109
+ jitter: 0.06,
110
+ noiseLevel: 0.18,
111
+ detailLevel: 1.2,
112
+ sparsity: 0.1,
113
+ frameJitter: 0.002,
114
+ frameRotation: 0.3,
115
+ frameScale: 0.002,
116
+ fill: true,
117
+ },
118
+ chips: {
119
+ generator: 'shape',
120
+ shapes: ['star', 'pixel-art'],
121
+ count: 4,
122
+ scaleVariance: 0.4,
123
+ rotationVariance: 180,
124
+ colorShift: 16,
125
+ jitter: 0.1,
126
+ noiseLevel: 0.2,
127
+ detailLevel: 0.9,
128
+ sparsity: 0.3,
129
+ frameJitter: 0.001,
130
+ frameRotation: 0.2,
131
+ frameScale: 0.001,
132
+ fill: true,
133
+ },
134
+ },
135
+ },
136
+
137
+ /* ── Polygon — one geometric shape repeated with variations ───────────
138
+ * A single regular polygon (square) repeated several times with
139
+ * varying scale, rotation, and colour — clearly geometric,
140
+ * possibly overlapping. Zero noise keeps edges ruler-straight.
141
+ * ───────────────────────────────────────────────────────────────────── */
142
+ polygon: {
143
+ tags: ['polygon', 'crystal', 'geometric', 'facet'],
144
+ preferredShapes: { 'regular-polygon': 6 },
145
+ layers: {
146
+ figures: {
147
+ generator: 'shape',
148
+ shapes: ['regular-polygon'],
149
+ count: 3,
150
+ scaleBase: 0.25,
151
+ scaleRange: 0.25,
152
+ scaleVariance: 0.15,
153
+ rotationVariance: 25,
154
+ colorShift: 20,
155
+ jitter: 0.02,
156
+ noiseLevel: 0.0,
157
+ detailLevel: 1.3,
158
+ sparsity: 0.0,
159
+ centerBias: 0.75, // stack near tile centre
160
+ frameJitter: 0.003,
161
+ frameRotation: 0.8,
162
+ frameScale: 0.002,
163
+ fill: true,
164
+ shapeParams: { sides: 4 },
165
+ },
166
+ },
167
+ },
168
+
169
+ /* ── Thread — thin, wispy wavy lines (outlines only, NOT filled) ──────
170
+ * Bézier curves and parabolas rendered as open contours. High count
171
+ * gives a tangle-of-threads appearance.
172
+ * ───────────────────────────────────────────────────────────────────── */
173
+ thread: {
174
+ tags: ['thread', 'fiber', 'sewing', 'wisp'],
175
+ preferredShapes: { 'bezier-path': 4, parabola: 3 },
176
+ layers: {
177
+ strands: {
178
+ generator: 'shape',
179
+ shapes: ['bezier-path', 'parabola'],
180
+ count: 7,
181
+ scaleVariance: 0.35,
182
+ rotationVariance: 180,
183
+ colorShift: 14,
184
+ jitter: 0.12,
185
+ noiseLevel: 0.15,
186
+ detailLevel: 1.0,
187
+ sparsity: 0.15,
188
+ frameJitter: 0.015,
189
+ frameRotation: 3.0,
190
+ frameScale: 0.006,
191
+ fill: false, // outlines only — wavy lines
192
+ shapeParams: { closed: false },
193
+ },
194
+ wisps: {
195
+ generator: 'shape',
196
+ shapes: ['bezier-path'],
197
+ count: 4,
198
+ scaleVariance: 0.3,
199
+ rotationVariance: 120,
200
+ colorShift: 10,
201
+ jitter: 0.1,
202
+ noiseLevel: 0.1,
203
+ detailLevel: 0.9,
204
+ sparsity: 0.3,
205
+ frameJitter: 0.01,
206
+ frameRotation: 2.0,
207
+ frameScale: 0.004,
208
+ fill: false,
209
+ shapeParams: { closed: false },
210
+ },
211
+ },
212
+ },
213
+ };
214
+
215
+ /* ═══════════════════════════════════════════════════════════════════════════
216
+ * BIOME SEMANTIC TAGS
217
+ * ═══════════════════════════════════════════════════════════════════════════ */
218
+
219
+ const BIOME_TAGS = {
220
+ desert: ['sand', 'arid', 'dry'],
221
+ grass: ['grass', 'meadow', 'earth'],
222
+ water: ['water', 'ocean', 'liquid'],
223
+ stone: ['rock', 'cobble', 'grey'],
224
+ lava: ['lava', 'magma', 'fire'],
225
+ };
226
+
227
+ /* ═══════════════════════════════════════════════════════════════════════════
228
+ * REGISTRATION
229
+ * ═══════════════════════════════════════════════════════════════════════════ */
230
+
231
+ /**
232
+ * Registers all built-in resource semantic descriptors.
233
+ *
234
+ * Generates 5 biomes × 4 shape families = 20 descriptors, each registered
235
+ * under the prefix `resource-{biome}-{shape}`.
236
+ *
237
+ * @param {function(string, import('./semantic-layer-generator.js').SemanticDescriptor): void} registerFn
238
+ * @memberof SemanticLayerGeneratorResource
239
+ */
240
+ export function registerResourceSemantics(registerFn) {
241
+ const biomes = Object.keys(BIOME_PALETTES);
242
+ const families = Object.keys(SHAPE_FAMILIES);
243
+
244
+ for (const biome of biomes) {
245
+ for (const family of families) {
246
+ const prefix = `resource-${biome}-${family}`;
247
+ const palette = BIOME_PALETTES[biome];
248
+ const recipe = SHAPE_FAMILIES[family];
249
+
250
+ registerFn(prefix, {
251
+ semanticTags: [...BIOME_TAGS[biome], ...recipe.tags, 'resource'],
252
+ paletteHints: palette,
253
+ preferredShapes: recipe.preferredShapes,
254
+ itemType: 'floor',
255
+ layers: recipe.layers,
256
+ });
257
+ }
258
+ }
259
+ }