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
@@ -18,214 +18,80 @@
18
18
  * @module src/api/cyberia-instance/cyberia-fallback-world
19
19
  */
20
20
 
21
+ import { connectPortals } from './cyberia-portal-connector.js';
22
+
21
23
  import {
22
- connectPortals,
23
24
  generateObstacles,
24
25
  generateForeground,
25
- colorToRgba,
26
- findColor,
27
- randInt,
26
+ generateResources,
27
+ generateFloorEntities,
28
+ generatePortalEntity,
29
+ generatePortalEntities,
30
+ generateBots,
28
31
  OccupancyGrid,
29
- BOT_RANGE,
30
- BOT_WEAPON_CHANCE,
31
- PORTAL_DIM_RANGE,
32
- PORTAL_COUNT_RANGE,
33
- PORTAL_MODE_LIST,
34
- PORTAL_MODE_COLOR_KEY,
35
- EXTRA_PORTAL_MODES,
36
- PORTAL_MODES,
37
- } from './cyberia-portal-connector.js';
32
+ } from './cyberia-world-generator.js';
38
33
 
39
34
  import {
40
35
  CYBERIA_INSTANCE_CONF_DEFAULTS,
41
36
  ENTITY_TYPE_DEFAULTS,
42
- } from '../cyberia-instance-conf/cyberia-instance-conf.defaults.js';
43
-
44
- import { DefaultCyberiaItems } from '../../client/components/cyberia-portal/CommonCyberiaPortal.js';
37
+ RESOURCE_ENTITY_TYPE_DEFAULTS,
38
+ DefaultCyberiaItems,
39
+ } from '../cyberia-server-defaults/cyberia-server-defaults.js';
40
+ import {
41
+ CYBERIA_CLIENT_HINTS_DEFAULTS,
42
+ PALETTE,
43
+ } from '../../client/components/cyberia/SharedDefaultsCyberia.js';
45
44
 
46
45
  // ── Defaults ─────────────────────────────────────────────────────────────────
47
46
 
48
47
  const DEFAULT_MAP_COUNT = 4;
49
48
  const DEFAULT_GRID_SIZE = 64;
50
- const DEFAULT_FLOOR_TILE_DIM = 4;
51
- const DEFAULT_BOT_DIM_RANGE = [2, 3];
52
-
53
- /** NPC skin pool — all items with type 'skin' from DefaultCyberiaItems. */
54
- const BOT_SKIN_POOL = DefaultCyberiaItems.filter((e) => e.item.type === 'skin').map((e) => e.item.id);
55
-
56
- // ── Floor generator ──────────────────────────────────────────────────────────
57
49
 
58
- /**
59
- * Generate floor tiles that cover the entire map grid.
60
- * Floor is NOT random it tiles deterministically so every cell is covered.
61
- *
62
- * @param {{ gridX: number, gridY: number }} mapDims
63
- * @param {Array<{ key: string, r: number, g: number, b: number, a: number }>} colors
64
- * @param {object} [opts]
65
- * @param {number} [opts.tileDim=4] Floor tile size in cells.
66
- * @returns {object[]}
67
- */
68
- function generateFloorEntities(mapDims, colors, opts = {}) {
69
- const { tileDim = DEFAULT_FLOOR_TILE_DIM } = opts;
70
- const floorDefault = ENTITY_TYPE_DEFAULTS.find((d) => d.entityType === 'floor');
71
- const floorItemIds = floorDefault?.liveItemIds?.length ? [...floorDefault.liveItemIds] : [];
72
- const floorColor = findColor(colors, 'FLOOR');
73
- const rgba = floorColor ? colorToRgba(floorColor) : '';
74
-
75
- const entities = [];
76
- for (let y = 0; y < mapDims.gridY; y += tileDim) {
77
- for (let x = 0; x < mapDims.gridX; x += tileDim) {
78
- entities.push({
79
- entityType: 'floor',
80
- initCellX: x,
81
- initCellY: y,
82
- dimX: Math.min(tileDim, mapDims.gridX - x),
83
- dimY: Math.min(tileDim, mapDims.gridY - y),
84
- color: rgba,
85
- objectLayerItemIds: floorItemIds,
86
- });
87
- }
50
+ // ── Asset-id integrity ──────────────────────────────────────────────────────
51
+ //
52
+ // Every item id that the fallback world can place on a map must also be
53
+ // present in DefaultCyberiaItems, otherwise the `import-default-items` seed
54
+ // will not create an ObjectLayer for it and the runtime client will fall
55
+ // back to a solid-colour rectangle instead of the intended sprite.
56
+ //
57
+ // auditFallbackItemIds() returns the set of unknown ids encountered in the
58
+ // canonical defaults so callers (CLI, test harness, gRPC fallback path)
59
+ // can surface drift immediately. Returns an empty array when in sync.
60
+
61
+ const KNOWN_DEFAULT_ITEM_IDS = new Set(DefaultCyberiaItems.map((e) => e.item.id));
62
+
63
+ function collectReferencedItemIds() {
64
+ const ids = new Set();
65
+ const push = (id) => { if (typeof id === 'string' && id.length > 0) ids.add(id); };
66
+
67
+ for (const e of ENTITY_TYPE_DEFAULTS) {
68
+ (e.liveItemIds || []).forEach(push);
69
+ (e.deadItemIds || []).forEach(push);
70
+ (e.dropItemIds || []).forEach(push);
71
+ (e.defaultObjectLayers || []).forEach((ol) => push(ol.itemId));
88
72
  }
89
- return entities;
90
- }
91
-
92
- // ── Portal entity generator ──────────────────────────────────────────────────
93
-
94
- /**
95
- * Generate a portal entity at a random walkable position with random dimensions.
96
- *
97
- * @param {{ gridX: number, gridY: number }} mapDims
98
- * @param {Array<{ key: string, r: number, g: number, b: number, a: number }>} colors
99
- * @param {OccupancyGrid} [grid] If provided, places portal only on walkable cells and marks them blocked.
100
- * @param {string} [portalSubtype] One of PORTAL_MODE_LIST values. Determines the portal colour.
101
- * @returns {object|null} Portal entity or null if no valid position found.
102
- */
103
- function generatePortalEntity(mapDims, colors, grid, portalSubtype) {
104
- // Resolve colour from subtype-specific palette key, falling back to generic PORTAL
105
- const colorKey = portalSubtype ? PORTAL_MODE_COLOR_KEY[portalSubtype] : 'PORTAL';
106
- const portalColor = findColor(colors, colorKey) || findColor(colors, 'PORTAL');
107
- const rgba = portalColor ? colorToRgba(portalColor) : 'rgba(0, 200, 200, 1)';
108
- const dimX = randInt(PORTAL_DIM_RANGE[0], PORTAL_DIM_RANGE[1]);
109
- const dimY = randInt(PORTAL_DIM_RANGE[0], PORTAL_DIM_RANGE[1]);
110
-
111
- if (grid) {
112
- const pos = grid.findPosition(dimX, dimY);
113
- if (!pos) return null;
114
- grid.block(pos.x, pos.y, dimX, dimY);
115
- return {
116
- entityType: 'portal',
117
- portalSubtype: portalSubtype || 'inter-portal',
118
- initCellX: pos.x,
119
- initCellY: pos.y,
120
- dimX,
121
- dimY,
122
- color: rgba,
123
- objectLayerItemIds: [],
124
- };
73
+ for (const r of RESOURCE_ENTITY_TYPE_DEFAULTS) {
74
+ (r.liveItemIds || []).forEach(push);
75
+ (r.deadItemIds || []).forEach(push);
76
+ (r.dropItemIds || []).forEach(push);
125
77
  }
126
-
127
- const maxX = Math.max(0, mapDims.gridX - dimX);
128
- const maxY = Math.max(0, mapDims.gridY - dimY);
129
- return {
130
- entityType: 'portal',
131
- portalSubtype: portalSubtype || 'inter-portal',
132
- initCellX: randInt(0, maxX),
133
- initCellY: randInt(0, maxY),
134
- dimX,
135
- dimY,
136
- color: rgba,
137
- objectLayerItemIds: [],
138
- };
78
+ return ids;
139
79
  }
140
80
 
141
81
  /**
142
- * Generate a random number of portal entities for a map, each with a
143
- * randomly assigned portal subtype (and corresponding colour).
82
+ * Audit every item id the fallback world can place against the canonical
83
+ * DefaultCyberiaItems registry. Returns an array of missing ids; an empty
84
+ * array means the registry is in sync.
144
85
  *
145
- * @param {{ gridX: number, gridY: number }} mapDims
146
- * @param {Array<{ key: string, r: number, g: number, b: number, a: number }>} colors
147
- * @param {object} [opts]
148
- * @param {number} [opts.count] Override count (ignores range).
149
- * @param {OccupancyGrid} [opts.grid] If provided, places portals only on walkable cells.
150
- * @returns {object[]}
151
- */
152
- function generatePortalEntities(mapDims, colors, opts = {}) {
153
- const count = opts.count ?? randInt(PORTAL_COUNT_RANGE[0], PORTAL_COUNT_RANGE[1]);
154
- const entities = [];
155
- for (let i = 0; i < count; i++) {
156
- // First portal is always inter-portal (reserved for the ring topology);
157
- // extra portals get a random non-ring subtype.
158
- const subtype =
159
- i === 0 ? PORTAL_MODES.INTER_PORTAL : EXTRA_PORTAL_MODES[Math.floor(Math.random() * EXTRA_PORTAL_MODES.length)];
160
- const portal = generatePortalEntity(mapDims, colors, opts.grid, subtype);
161
- if (portal) entities.push(portal);
162
- }
163
- return entities;
164
- }
165
-
166
- // ── Bot generator ────────────────────────────────────────────────────────────
167
-
168
- /**
169
- * Generate bot entities for a map.
170
- *
171
- * - Each bot picks a random skin from BOT_SKIN_POOL for visual variety.
172
- * - Random chance to also carry `atlas_pistol_mk2` weapon.
173
- * - Random count within BOT_RANGE, random positions, random dimensions.
174
- * - Uses the BOT palette color as fallback.
175
- *
176
- * @param {{ gridX: number, gridY: number }} mapDims
177
- * @param {Array<{ key: string, r: number, g: number, b: number, a: number }>} colors
178
- * @param {object} [opts]
179
- * @param {number} [opts.count] Override count (ignores range).
180
- * @param {number} [opts.spawnRadius]
181
- * @param {number} [opts.aggroRange]
182
- * @param {number} [opts.maxLife]
183
- * @param {OccupancyGrid} [opts.grid] If provided, places bots only on walkable cells.
184
- * @returns {object[]}
86
+ * @returns {string[]}
185
87
  */
186
- function generateBots(mapDims, colors, opts = {}) {
187
- const count = opts.count ?? randInt(BOT_RANGE[0], BOT_RANGE[1]);
188
- const { spawnRadius = 5, aggroRange = 10, maxLife = 100 } = opts;
189
- const botColor = findColor(colors, 'BOT');
190
- const rgba = botColor ? colorToRgba(botColor) : 'rgba(255, 128, 0, 1)';
191
-
192
- const entities = [];
193
- for (let i = 0; i < count; i++) {
194
- const dim = randInt(DEFAULT_BOT_DIM_RANGE[0], DEFAULT_BOT_DIM_RANGE[1]);
195
-
196
- let cellX, cellY;
197
- if (opts.grid) {
198
- const pos = opts.grid.findPosition(dim, dim);
199
- if (!pos) continue;
200
- opts.grid.block(pos.x, pos.y, dim, dim);
201
- cellX = pos.x;
202
- cellY = pos.y;
203
- } else {
204
- const maxX = Math.max(0, mapDims.gridX - dim);
205
- const maxY = Math.max(0, mapDims.gridY - dim);
206
- cellX = randInt(0, maxX);
207
- cellY = randInt(0, maxY);
208
- }
209
-
210
- const skin = BOT_SKIN_POOL[Math.floor(Math.random() * BOT_SKIN_POOL.length)];
211
- const hasWeapon = Math.random() < BOT_WEAPON_CHANCE;
212
- const itemIds = hasWeapon ? [skin, 'atlas_pistol_mk2'] : [skin];
213
-
214
- entities.push({
215
- entityType: 'bot',
216
- initCellX: cellX,
217
- initCellY: cellY,
218
- dimX: dim,
219
- dimY: dim,
220
- color: rgba,
221
- objectLayerItemIds: itemIds,
222
- spawnRadius,
223
- aggroRange,
224
- maxLife,
225
- lifeRegen: 0,
226
- });
88
+ function auditFallbackItemIds() {
89
+ const referenced = collectReferencedItemIds();
90
+ const missing = [];
91
+ for (const id of referenced) {
92
+ if (!KNOWN_DEFAULT_ITEM_IDS.has(id)) missing.push(id);
227
93
  }
228
- return entities;
94
+ return missing.sort();
229
95
  }
230
96
 
231
97
  // ── Single map generator ─────────────────────────────────────────────────────
@@ -235,12 +101,13 @@ function generateBots(mapDims, colors, opts = {}) {
235
101
  * Everything except floor tiles is randomized.
236
102
  *
237
103
  * @param {string} mapCode
238
- * @param {Array} colors Palette from CYBERIA_INSTANCE_CONF_DEFAULTS.
104
+ * @param {Array} colors Palette (PALETTE from SharedDefaultsCyberia).
239
105
  * @param {object} [opts]
240
106
  * @param {number} [opts.gridSize]
241
107
  * @param {number} [opts.obstacleCount]
242
108
  * @param {number} [opts.foregroundCount]
243
109
  * @param {number} [opts.botCount]
110
+ * @param {number} [opts.resourceCount]
244
111
  * @returns {object} CyberiaMap-shaped plain object.
245
112
  */
246
113
  function generateFallbackMap(mapCode, colors, opts = {}) {
@@ -263,10 +130,13 @@ function generateFallbackMap(mapCode, colors, opts = {}) {
263
130
  // 5. Bots — placed on walkable cells (avoids obstacles and portals)
264
131
  const bots = generateBots(mapDims, colors, { count: opts.botCount, grid });
265
132
 
266
- // 6. Foregrounddecorative, no collision restriction
133
+ // 6. Resourcesstatic exploitable entities placed on walkable cells
134
+ const resources = generateResources(mapDims, colors, { count: opts.resourceCount, grid });
135
+
136
+ // 7. Foreground — decorative, no collision restriction
267
137
  const foreground = generateForeground(mapDims, colors, { count: opts.foregroundCount });
268
138
 
269
- const entities = [...floors, ...obstacles, ...portalEntities, ...foreground, ...bots];
139
+ const entities = [...floors, ...obstacles, ...portalEntities, ...foreground, ...bots, ...resources];
270
140
 
271
141
  return {
272
142
  code: mapCode,
@@ -296,6 +166,7 @@ function generateFallbackMap(mapCode, colors, opts = {}) {
296
166
  * @param {number} [opts.obstacleCount] Obstacles per map (random if omitted).
297
167
  * @param {number} [opts.foregroundCount] Foreground entities per map (random if omitted).
298
168
  * @param {number} [opts.botCount] Bots per map (random if omitted).
169
+ * @param {number} [opts.resourceCount] Resources per map (random if omitted).
299
170
  * @param {Array} [opts.colors] Override palette.
300
171
  * @returns {{
301
172
  * instance: object,
@@ -313,9 +184,28 @@ function generateFallbackWorld(opts = {}) {
313
184
  obstacleCount,
314
185
  foregroundCount,
315
186
  botCount,
316
- colors = CYBERIA_INSTANCE_CONF_DEFAULTS.colors,
187
+ resourceCount,
188
+ // Palette lives in SharedDefaultsCyberia (presentation-owned). The
189
+ // world generator only uses it to stamp a cosmetic rgba(...) string on
190
+ // entities so the browser editor / preview can render a coloured
191
+ // fallback before atlases load. The C client resolves real colours
192
+ // through domain/presentation_runtime — it does not read this value.
193
+ colors = PALETTE,
317
194
  } = opts;
318
195
 
196
+ // Surface item-id drift loudly on the very first build, so a missing
197
+ // `bin/cyberia run-workflow import-default-items` run shows up at startup
198
+ // instead of as silent grey rectangles later.
199
+ const missing = auditFallbackItemIds();
200
+ if (missing.length > 0) {
201
+ // eslint-disable-next-line no-console
202
+ console.warn(
203
+ '[cyberia-fallback-world] item ids referenced by defaults but absent from DefaultCyberiaItems:',
204
+ missing.join(', '),
205
+ '— run `node bin/cyberia run-workflow import-default-items` after adding them.',
206
+ );
207
+ }
208
+
319
209
  // Generate map codes.
320
210
  const mapCodes = [];
321
211
  for (let i = 0; i < mapCount; i++) {
@@ -329,6 +219,7 @@ function generateFallbackWorld(opts = {}) {
329
219
  obstacleCount,
330
220
  foregroundCount,
331
221
  botCount,
222
+ resourceCount,
332
223
  }),
333
224
  );
334
225
 
@@ -352,17 +243,11 @@ function generateFallbackWorld(opts = {}) {
352
243
  portals,
353
244
  topology,
354
245
  config: CYBERIA_INSTANCE_CONF_DEFAULTS,
246
+ presentationHints: CYBERIA_CLIENT_HINTS_DEFAULTS,
355
247
  _fallback: true,
356
248
  };
357
249
  }
358
250
 
359
251
  // ── Public API ───────────────────────────────────────────────────────────────
360
252
 
361
- export {
362
- generateFallbackWorld,
363
- generateFallbackMap,
364
- generateFloorEntities,
365
- generatePortalEntity,
366
- generatePortalEntities,
367
- generateBots,
368
- };
253
+ export { generateFallbackWorld, generateFallbackMap, auditFallbackItemIds };
@@ -3,8 +3,8 @@ import { CyberiaInstanceService } from './cyberia-instance.service.js';
3
3
 
4
4
  const logger = loggerFactory(import.meta);
5
5
 
6
- const CyberiaInstanceController = {
7
- fallbackWorld: async (req, res, options) => {
6
+ class CyberiaInstanceController {
7
+ static fallbackWorld = async (req, res, options) => {
8
8
  try {
9
9
  const result = await CyberiaInstanceService.fallbackWorld(req);
10
10
  return res.status(200).json({ status: 'success', data: result });
@@ -12,8 +12,8 @@ const CyberiaInstanceController = {
12
12
  logger.error(error, error.stack);
13
13
  return res.status(400).json({ status: 'error', message: error.message });
14
14
  }
15
- },
16
- portalConnect: async (req, res, options) => {
15
+ };
16
+ static portalConnect = async (req, res, options) => {
17
17
  try {
18
18
  const result = await CyberiaInstanceService.portalConnect(req, res, options);
19
19
  return res.status(200).json({ status: 'success', data: result });
@@ -21,8 +21,8 @@ const CyberiaInstanceController = {
21
21
  logger.error(error, error.stack);
22
22
  return res.status(400).json({ status: 'error', message: error.message });
23
23
  }
24
- },
25
- post: async (req, res, options) => {
24
+ };
25
+ static post = async (req, res, options) => {
26
26
  try {
27
27
  const result = await CyberiaInstanceService.post(req, res, options);
28
28
  return res.status(200).json({
@@ -36,8 +36,8 @@ const CyberiaInstanceController = {
36
36
  message: error.message,
37
37
  });
38
38
  }
39
- },
40
- get: async (req, res, options) => {
39
+ };
40
+ static get = async (req, res, options) => {
41
41
  try {
42
42
  const { page, limit } = req.query;
43
43
  const result = await CyberiaInstanceService.get(
@@ -56,8 +56,8 @@ const CyberiaInstanceController = {
56
56
  message: error.message,
57
57
  });
58
58
  }
59
- },
60
- put: async (req, res, options) => {
59
+ };
60
+ static put = async (req, res, options) => {
61
61
  try {
62
62
  const result = await CyberiaInstanceService.put(req, res, options);
63
63
  return res.status(200).json({
@@ -71,8 +71,8 @@ const CyberiaInstanceController = {
71
71
  message: error.message,
72
72
  });
73
73
  }
74
- },
75
- delete: async (req, res, options) => {
74
+ };
75
+ static delete = async (req, res, options) => {
76
76
  try {
77
77
  const result = await CyberiaInstanceService.delete(req, res, options);
78
78
  return res.status(200).json({
@@ -86,7 +86,7 @@ const CyberiaInstanceController = {
86
86
  message: error.message,
87
87
  });
88
88
  }
89
- },
90
- };
89
+ };
90
+ }
91
91
 
92
92
  export { CyberiaInstanceController };
@@ -52,6 +52,9 @@ const CyberiaInstanceSchema = new Schema(
52
52
  // Vertex set of the graph
53
53
  cyberiaMapCodes: { type: [String], default: [] },
54
54
 
55
+ // Instance-level object layer item IDs.
56
+ itemIds: { type: [String], default: [] },
57
+
55
58
  // Directed edge set of the graph
56
59
  portals: { type: [PortalEdgeSchema], default: [] },
57
60
 
@@ -5,59 +5,64 @@ import express from 'express';
5
5
 
6
6
  const logger = loggerFactory(import.meta);
7
7
 
8
- const CyberiaInstanceRouter = (options) => {
9
- const router = express.Router();
10
- const authMiddleware = options.authMiddleware;
11
- // ── Custom actions (must come before generic /:id routes) ──────────────
12
- router.get(`/fallback-world`, async (req, res) => await CyberiaInstanceController.fallbackWorld(req, res, options));
13
- router.get(
14
- `/:id/portal-connect`,
15
- authMiddleware,
16
- userGuard,
17
- async (req, res) => await CyberiaInstanceController.portalConnect(req, res, options),
18
- );
8
+ class CyberiaInstanceRouter {
9
+ /**
10
+ * @param {import('../types.js').RouterOptions} options
11
+ * @returns {import('express').Router}
12
+ */
13
+ static router(options) {
14
+ const router = express.Router();
15
+ // ── Custom actions (must come before generic /:id routes) ──────────────
16
+ router.get(`/fallback-world`, async (req, res) => await CyberiaInstanceController.fallbackWorld(req, res, options));
17
+ router.get(
18
+ `/:id/portal-connect`,
19
+ options.authMiddleware,
20
+ userGuard,
21
+ async (req, res) => await CyberiaInstanceController.portalConnect(req, res, options),
22
+ );
19
23
 
20
- router.post(
21
- `/:id`,
22
- authMiddleware,
23
- userGuard,
24
- async (req, res) => await CyberiaInstanceController.post(req, res, options),
25
- );
26
- router.post(
27
- `/`,
28
- authMiddleware,
29
- userGuard,
30
- async (req, res) => await CyberiaInstanceController.post(req, res, options),
31
- );
32
- router.get(`/:id`, async (req, res) => await CyberiaInstanceController.get(req, res, options));
33
- router.get(`/`, async (req, res) => await CyberiaInstanceController.get(req, res, options));
34
- router.put(
35
- `/:id`,
36
- authMiddleware,
37
- userGuard,
38
- async (req, res) => await CyberiaInstanceController.put(req, res, options),
39
- );
40
- router.put(
41
- `/`,
42
- authMiddleware,
43
- userGuard,
44
- async (req, res) => await CyberiaInstanceController.put(req, res, options),
45
- );
46
- router.delete(
47
- `/:id`,
48
- authMiddleware,
49
- userGuard,
50
- async (req, res) => await CyberiaInstanceController.delete(req, res, options),
51
- );
52
- router.delete(
53
- `/`,
54
- authMiddleware,
55
- adminGuard,
56
- async (req, res) => await CyberiaInstanceController.delete(req, res, options),
57
- );
58
- return router;
59
- };
24
+ router.post(
25
+ `/:id`,
26
+ options.authMiddleware,
27
+ userGuard,
28
+ async (req, res) => await CyberiaInstanceController.post(req, res, options),
29
+ );
30
+ router.post(
31
+ `/`,
32
+ options.authMiddleware,
33
+ userGuard,
34
+ async (req, res) => await CyberiaInstanceController.post(req, res, options),
35
+ );
36
+ router.get(`/:id`, async (req, res) => await CyberiaInstanceController.get(req, res, options));
37
+ router.get(`/`, async (req, res) => await CyberiaInstanceController.get(req, res, options));
38
+ router.put(
39
+ `/:id`,
40
+ options.authMiddleware,
41
+ userGuard,
42
+ async (req, res) => await CyberiaInstanceController.put(req, res, options),
43
+ );
44
+ router.put(
45
+ `/`,
46
+ options.authMiddleware,
47
+ userGuard,
48
+ async (req, res) => await CyberiaInstanceController.put(req, res, options),
49
+ );
50
+ router.delete(
51
+ `/:id`,
52
+ options.authMiddleware,
53
+ userGuard,
54
+ async (req, res) => await CyberiaInstanceController.delete(req, res, options),
55
+ );
56
+ router.delete(
57
+ `/`,
58
+ options.authMiddleware,
59
+ adminGuard,
60
+ async (req, res) => await CyberiaInstanceController.delete(req, res, options),
61
+ );
62
+ return router;
63
+ }
64
+ }
60
65
 
61
- const ApiRouter = CyberiaInstanceRouter;
66
+ const ApiRouter = (options) => CyberiaInstanceRouter.router(options);
62
67
 
63
68
  export { ApiRouter, CyberiaInstanceRouter };