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
@@ -5,22 +5,82 @@ import { adminGuard } from '../../server/auth.js';
5
5
 
6
6
  const logger = loggerFactory(import.meta);
7
7
 
8
- const ObjectLayerRouter = (options) => {
9
- const router = express.Router();
10
- const authMiddleware = options.authMiddleware;
11
- router.post(`/frame-image/:itemType/:itemId/:directionCode`, async (req, res) => {
12
- /*
8
+ class ObjectLayerRouter {
9
+ /**
10
+ * @param {import('../types.js').RouterOptions} options
11
+ * @returns {import('express').Router}
12
+ */
13
+ static router(options) {
14
+ const router = express.Router();
15
+ router.post(`/frame-image/:itemType/:itemId/:directionCode`, async (req, res) => {
16
+ /*
17
+ #swagger.auto = false
18
+ #swagger.tags = ['object-layer']
19
+ #swagger.summary = 'Upload frame image'
20
+ #swagger.description = 'This endpoint uploads a frame image for a specific object layer item by type, item ID, and direction code'
21
+ #swagger.path = '/object-layer/frame-image/{itemType}/{itemId}/{directionCode}'
22
+ #swagger.method = 'post'
23
+ #swagger.consumes = ['application/octet-stream']
24
+
25
+ #swagger.parameters['itemType'] = {
26
+ in: 'path',
27
+ description: 'The type of the item (e.g. skin, weapon)',
28
+ required: true,
29
+ type: 'string'
30
+ }
31
+
32
+ #swagger.parameters['itemId'] = {
33
+ in: 'path',
34
+ description: 'The item ID',
35
+ required: true,
36
+ type: 'string'
37
+ }
38
+
39
+ #swagger.parameters['directionCode'] = {
40
+ in: 'path',
41
+ description: 'The direction code for the frame (e.g. up, down, left, right)',
42
+ required: true,
43
+ type: 'string'
44
+ }
45
+
46
+ #swagger.responses[200] = {
47
+ description: 'Frame image uploaded successfully',
48
+ content: {
49
+ 'application/json': {
50
+ schema: {
51
+ $ref: '#/components/schemas/objectLayerResponse'
52
+ }
53
+ }
54
+ }
55
+ }
56
+
57
+ #swagger.responses[400] = {
58
+ description: 'Bad request. Please check the input data',
59
+ content: {
60
+ 'application/json': {
61
+ schema: {
62
+ $ref: '#/components/schemas/objectLayerBadRequestResponse'
63
+ }
64
+ }
65
+ }
66
+ }
67
+ */
68
+ return await ObjectLayerController.post(req, res, options);
69
+ });
70
+ router.post(`/metadata/:itemType/:itemId`, async (req, res) => {
71
+ /*
13
72
  #swagger.auto = false
14
73
  #swagger.tags = ['object-layer']
15
- #swagger.summary = 'Upload frame image'
16
- #swagger.description = 'This endpoint uploads a frame image for a specific object layer item by type, item ID, and direction code'
17
- #swagger.path = '/object-layer/frame-image/{itemType}/{itemId}/{directionCode}'
74
+ #swagger.summary = 'Create object layer metadata'
75
+ #swagger.description = 'This endpoint creates metadata for a specific object layer item by type and item ID'
76
+ #swagger.path = '/object-layer/metadata/{itemType}/{itemId}'
18
77
  #swagger.method = 'post'
19
- #swagger.consumes = ['application/octet-stream']
78
+ #swagger.produces = ['application/json']
79
+ #swagger.consumes = ['application/json']
20
80
 
21
81
  #swagger.parameters['itemType'] = {
22
82
  in: 'path',
23
- description: 'The type of the item (e.g. skin, weapon)',
83
+ description: 'The type of the item',
24
84
  required: true,
25
85
  type: 'string'
26
86
  }
@@ -32,15 +92,54 @@ const ObjectLayerRouter = (options) => {
32
92
  type: 'string'
33
93
  }
34
94
 
35
- #swagger.parameters['directionCode'] = {
95
+ #swagger.responses[200] = {
96
+ description: 'Metadata created successfully',
97
+ content: {
98
+ 'application/json': {
99
+ schema: {
100
+ $ref: '#/components/schemas/objectLayerResponse'
101
+ }
102
+ }
103
+ }
104
+ }
105
+
106
+ #swagger.responses[400] = {
107
+ description: 'Bad request. Please check the input data',
108
+ content: {
109
+ 'application/json': {
110
+ schema: {
111
+ $ref: '#/components/schemas/objectLayerBadRequestResponse'
112
+ }
113
+ }
114
+ }
115
+ }
116
+ */
117
+ return await ObjectLayerController.post(req, res, options);
118
+ });
119
+
120
+ router.post(`/:id`, options.authMiddleware, async (req, res) => {
121
+ /*
122
+ #swagger.auto = false
123
+ #swagger.tags = ['object-layer']
124
+ #swagger.summary = 'Create object layer by ID'
125
+ #swagger.description = 'This endpoint creates a new object layer entry with a specific ID'
126
+ #swagger.path = '/object-layer/{id}'
127
+ #swagger.method = 'post'
128
+ #swagger.produces = ['application/json']
129
+ #swagger.consumes = ['application/json']
130
+ #swagger.security = [{
131
+ 'bearerAuth': []
132
+ }]
133
+
134
+ #swagger.parameters['id'] = {
36
135
  in: 'path',
37
- description: 'The direction code for the frame (e.g. up, down, left, right)',
136
+ description: 'Object layer ID',
38
137
  required: true,
39
138
  type: 'string'
40
139
  }
41
140
 
42
141
  #swagger.responses[200] = {
43
- description: 'Frame image uploaded successfully',
142
+ description: 'Object layer created successfully',
44
143
  content: {
45
144
  'application/json': {
46
145
  schema: {
@@ -61,179 +160,125 @@ const ObjectLayerRouter = (options) => {
61
160
  }
62
161
  }
63
162
  */
64
- return await ObjectLayerController.post(req, res, options);
65
- });
66
- router.post(`/metadata/:itemType/:itemId`, async (req, res) => {
67
- /*
68
- #swagger.auto = false
69
- #swagger.tags = ['object-layer']
70
- #swagger.summary = 'Create object layer metadata'
71
- #swagger.description = 'This endpoint creates metadata for a specific object layer item by type and item ID'
72
- #swagger.path = '/object-layer/metadata/{itemType}/{itemId}'
73
- #swagger.method = 'post'
74
- #swagger.produces = ['application/json']
75
- #swagger.consumes = ['application/json']
76
-
77
- #swagger.parameters['itemType'] = {
78
- in: 'path',
79
- description: 'The type of the item',
80
- required: true,
81
- type: 'string'
82
- }
83
-
84
- #swagger.parameters['itemId'] = {
85
- in: 'path',
86
- description: 'The item ID',
87
- required: true,
88
- type: 'string'
89
- }
90
-
91
- #swagger.responses[200] = {
92
- description: 'Metadata created successfully',
93
- content: {
94
- 'application/json': {
95
- schema: {
96
- $ref: '#/components/schemas/objectLayerResponse'
97
- }
98
- }
99
- }
100
- }
101
-
102
- #swagger.responses[400] = {
103
- description: 'Bad request. Please check the input data',
104
- content: {
105
- 'application/json': {
106
- schema: {
107
- $ref: '#/components/schemas/objectLayerBadRequestResponse'
108
- }
109
- }
110
- }
111
- }
112
- */
113
- return await ObjectLayerController.post(req, res, options);
114
- });
115
-
116
- router.post(`/:id`, authMiddleware, async (req, res) => {
117
- /*
118
- #swagger.auto = false
119
- #swagger.tags = ['object-layer']
120
- #swagger.summary = 'Create object layer by ID'
121
- #swagger.description = 'This endpoint creates a new object layer entry with a specific ID'
122
- #swagger.path = '/object-layer/{id}'
123
- #swagger.method = 'post'
124
- #swagger.produces = ['application/json']
125
- #swagger.consumes = ['application/json']
126
- #swagger.security = [{
127
- 'bearerAuth': []
128
- }]
129
-
130
- #swagger.parameters['id'] = {
131
- in: 'path',
132
- description: 'Object layer ID',
133
- required: true,
134
- type: 'string'
135
- }
136
-
137
- #swagger.responses[200] = {
138
- description: 'Object layer created successfully',
139
- content: {
140
- 'application/json': {
141
- schema: {
142
- $ref: '#/components/schemas/objectLayerResponse'
143
- }
144
- }
163
+ return await ObjectLayerController.post(req, res, options);
164
+ });
165
+ router.post(`/`, options.authMiddleware, async (req, res) => {
166
+ /*
167
+ #swagger.auto = false
168
+ #swagger.tags = ['object-layer']
169
+ #swagger.summary = 'Create object layer'
170
+ #swagger.description = 'This endpoint creates a new object layer entry'
171
+ #swagger.path = '/object-layer'
172
+ #swagger.method = 'post'
173
+ #swagger.produces = ['application/json']
174
+ #swagger.consumes = ['application/json']
175
+ #swagger.security = [{
176
+ 'bearerAuth': []
177
+ }]
178
+
179
+ #swagger.responses[200] = {
180
+ description: 'Object layer created successfully',
181
+ content: {
182
+ 'application/json': {
183
+ schema: {
184
+ $ref: '#/components/schemas/objectLayerResponse'
185
+ }
186
+ }
187
+ }
145
188
  }
146
- }
147
-
148
- #swagger.responses[400] = {
149
- description: 'Bad request. Please check the input data',
150
- content: {
151
- 'application/json': {
152
- schema: {
153
- $ref: '#/components/schemas/objectLayerBadRequestResponse'
154
- }
155
- }
189
+
190
+ #swagger.responses[400] = {
191
+ description: 'Bad request. Please check the input data',
192
+ content: {
193
+ 'application/json': {
194
+ schema: {
195
+ $ref: '#/components/schemas/objectLayerBadRequestResponse'
196
+ }
197
+ }
198
+ }
156
199
  }
157
- }
158
- */
159
- return await ObjectLayerController.post(req, res, options);
160
- });
161
- router.post(`/`, authMiddleware, async (req, res) => {
162
- /*
163
- #swagger.auto = false
164
- #swagger.tags = ['object-layer']
165
- #swagger.summary = 'Create object layer'
166
- #swagger.description = 'This endpoint creates a new object layer entry'
167
- #swagger.path = '/object-layer'
168
- #swagger.method = 'post'
169
- #swagger.produces = ['application/json']
170
- #swagger.consumes = ['application/json']
171
- #swagger.security = [{
172
- 'bearerAuth': []
173
- }]
174
-
175
- #swagger.responses[200] = {
176
- description: 'Object layer created successfully',
177
- content: {
178
- 'application/json': {
179
- schema: {
180
- $ref: '#/components/schemas/objectLayerResponse'
200
+ */
201
+ return await ObjectLayerController.post(req, res, options);
202
+ });
203
+ router.get(`/generate-webp/:itemType/:itemId/:directionCode`, async (req, res) => {
204
+ /*
205
+ #swagger.auto = false
206
+ #swagger.tags = ['object-layer']
207
+ #swagger.summary = 'Generate WebP image'
208
+ #swagger.description = 'This endpoint generates a WebP image for a specific object layer item by type, item ID, and direction code'
209
+ #swagger.path = '/object-layer/generate-webp/{itemType}/{itemId}/{directionCode}'
210
+ #swagger.method = 'get'
211
+ #swagger.produces = ['image/webp']
212
+
213
+ #swagger.parameters['itemType'] = {
214
+ in: 'path',
215
+ description: 'The type of the item',
216
+ required: true,
217
+ type: 'string'
218
+ }
219
+
220
+ #swagger.parameters['itemId'] = {
221
+ in: 'path',
222
+ description: 'The item ID',
223
+ required: true,
224
+ type: 'string'
225
+ }
226
+
227
+ #swagger.parameters['directionCode'] = {
228
+ in: 'path',
229
+ description: 'The direction code for the frame',
230
+ required: true,
231
+ type: 'string'
232
+ }
233
+
234
+ #swagger.responses[200] = {
235
+ description: 'WebP image generated successfully',
236
+ content: {
237
+ 'image/webp': {
238
+ schema: {
239
+ type: 'string',
240
+ format: 'binary'
241
+ }
181
242
  }
182
243
  }
183
- }
184
- }
185
-
186
- #swagger.responses[400] = {
187
- description: 'Bad request. Please check the input data',
188
- content: {
189
- 'application/json': {
190
- schema: {
191
- $ref: '#/components/schemas/objectLayerBadRequestResponse'
244
+ }
245
+
246
+ #swagger.responses[400] = {
247
+ description: 'Bad request. Please check the input data',
248
+ content: {
249
+ 'application/json': {
250
+ schema: {
251
+ $ref: '#/components/schemas/objectLayerBadRequestResponse'
252
+ }
192
253
  }
193
254
  }
194
- }
195
- }
196
- */
197
- return await ObjectLayerController.post(req, res, options);
198
- });
199
- router.get(`/generate-webp/:itemType/:itemId/:directionCode`, async (req, res) => {
200
- /*
255
+ }
256
+ */
257
+ return await ObjectLayerController.generateWebp(req, res, options);
258
+ });
259
+ router.get(`/render/:id`, async (req, res) => {
260
+ /*
201
261
  #swagger.auto = false
202
262
  #swagger.tags = ['object-layer']
203
- #swagger.summary = 'Generate WebP image'
204
- #swagger.description = 'This endpoint generates a WebP image for a specific object layer item by type, item ID, and direction code'
205
- #swagger.path = '/object-layer/generate-webp/{itemType}/{itemId}/{directionCode}'
263
+ #swagger.summary = 'Get object layer render data'
264
+ #swagger.description = 'This endpoint retrieves render data for a specific object layer by ID'
265
+ #swagger.path = '/object-layer/render/{id}'
206
266
  #swagger.method = 'get'
207
- #swagger.produces = ['image/webp']
208
-
209
- #swagger.parameters['itemType'] = {
210
- in: 'path',
211
- description: 'The type of the item',
212
- required: true,
213
- type: 'string'
214
- }
215
-
216
- #swagger.parameters['itemId'] = {
217
- in: 'path',
218
- description: 'The item ID',
219
- required: true,
220
- type: 'string'
221
- }
267
+ #swagger.produces = ['application/json']
222
268
 
223
- #swagger.parameters['directionCode'] = {
269
+ #swagger.parameters['id'] = {
224
270
  in: 'path',
225
- description: 'The direction code for the frame',
271
+ description: 'Object layer ID',
226
272
  required: true,
227
273
  type: 'string'
228
274
  }
229
275
 
230
276
  #swagger.responses[200] = {
231
- description: 'WebP image generated successfully',
277
+ description: 'Object layer render data retrieved successfully',
232
278
  content: {
233
- 'image/webp': {
279
+ 'application/json': {
234
280
  schema: {
235
- type: 'string',
236
- format: 'binary'
281
+ $ref: '#/components/schemas/objectLayerResponse'
237
282
  }
238
283
  }
239
284
  }
@@ -250,248 +295,17 @@ const ObjectLayerRouter = (options) => {
250
295
  }
251
296
  }
252
297
  */
253
- return await ObjectLayerController.generateWebp(req, res, options);
254
- });
255
- router.get(`/render/:id`, async (req, res) => {
256
- /*
257
- #swagger.auto = false
258
- #swagger.tags = ['object-layer']
259
- #swagger.summary = 'Get object layer render data'
260
- #swagger.description = 'This endpoint retrieves render data for a specific object layer by ID'
261
- #swagger.path = '/object-layer/render/{id}'
262
- #swagger.method = 'get'
263
- #swagger.produces = ['application/json']
264
-
265
- #swagger.parameters['id'] = {
266
- in: 'path',
267
- description: 'Object layer ID',
268
- required: true,
269
- type: 'string'
270
- }
271
-
272
- #swagger.responses[200] = {
273
- description: 'Object layer render data retrieved successfully',
274
- content: {
275
- 'application/json': {
276
- schema: {
277
- $ref: '#/components/schemas/objectLayerResponse'
278
- }
279
- }
280
- }
281
- }
282
-
283
- #swagger.responses[400] = {
284
- description: 'Bad request. Please check the input data',
285
- content: {
286
- 'application/json': {
287
- schema: {
288
- $ref: '#/components/schemas/objectLayerBadRequestResponse'
289
- }
290
- }
291
- }
292
- }
293
- */
294
- return await ObjectLayerController.get(req, res, options);
295
- });
296
- router.get(`/metadata/:id`, async (req, res) => {
297
- /*
298
- #swagger.auto = false
299
- #swagger.tags = ['object-layer']
300
- #swagger.summary = 'Get object layer metadata'
301
- #swagger.description = 'This endpoint retrieves metadata for a specific object layer by ID'
302
- #swagger.path = '/object-layer/metadata/{id}'
303
- #swagger.method = 'get'
304
- #swagger.produces = ['application/json']
305
-
306
- #swagger.parameters['id'] = {
307
- in: 'path',
308
- description: 'Object layer ID',
309
- required: true,
310
- type: 'string'
311
- }
312
-
313
- #swagger.responses[200] = {
314
- description: 'Object layer metadata retrieved successfully',
315
- content: {
316
- 'application/json': {
317
- schema: {
318
- $ref: '#/components/schemas/objectLayerResponse'
319
- }
320
- }
321
- }
322
- }
323
-
324
- #swagger.responses[400] = {
325
- description: 'Bad request. Please check the input data',
326
- content: {
327
- 'application/json': {
328
- schema: {
329
- $ref: '#/components/schemas/objectLayerBadRequestResponse'
330
- }
331
- }
332
- }
333
- }
334
- */
335
- return await ObjectLayerController.get(req, res, options);
336
- });
337
- router.get(`/search-item-ids`, async (req, res) => {
338
- /*
339
- #swagger.auto = false
340
- #swagger.tags = ['object-layer']
341
- #swagger.summary = 'Search object layer item IDs'
342
- #swagger.description = 'Returns partial matches of data.item.id for type-ahead autocomplete'
343
- #swagger.path = '/object-layer/search-item-ids'
344
- #swagger.method = 'get'
345
- #swagger.produces = ['application/json']
346
-
347
- #swagger.parameters['q'] = {
348
- in: 'query',
349
- description: 'Partial item ID to search for',
350
- required: false,
351
- type: 'string'
352
- }
353
-
354
- #swagger.responses[200] = {
355
- description: 'Item IDs matching the query',
356
- content: {
357
- 'application/json': {
358
- schema: {
359
- $ref: '#/components/schemas/objectLayerResponse'
360
- }
361
- }
362
- }
363
- }
364
- */
365
- return await ObjectLayerController.get(req, res, options);
366
- });
367
- router.get(`/frame-counts/:id`, async (req, res) => {
368
- /*
369
- #swagger.auto = false
370
- #swagger.tags = ['object-layer']
371
- #swagger.summary = 'Get frame counts'
372
- #swagger.description = 'This endpoint retrieves frame counts for a specific object layer by ID'
373
- #swagger.path = '/object-layer/frame-counts/{id}'
374
- #swagger.method = 'get'
375
- #swagger.produces = ['application/json']
376
-
377
- #swagger.parameters['id'] = {
378
- in: 'path',
379
- description: 'Object layer ID',
380
- required: true,
381
- type: 'string'
382
- }
383
-
384
- #swagger.responses[200] = {
385
- description: 'Frame counts retrieved successfully',
386
- content: {
387
- 'application/json': {
388
- schema: {
389
- $ref: '#/components/schemas/objectLayerResponse'
390
- }
391
- }
392
- }
393
- }
394
-
395
- #swagger.responses[400] = {
396
- description: 'Bad request. Please check the input data',
397
- content: {
398
- 'application/json': {
399
- schema: {
400
- $ref: '#/components/schemas/objectLayerBadRequestResponse'
401
- }
402
- }
403
- }
404
- }
405
- */
406
- return await ObjectLayerController.get(req, res, options);
407
- });
408
- router.get(`/:id`, async (req, res) => {
409
- /*
410
- #swagger.auto = false
411
- #swagger.tags = ['object-layer']
412
- #swagger.summary = 'Get object layer by ID'
413
- #swagger.description = 'This endpoint retrieves a specific object layer by ID'
414
- #swagger.path = '/object-layer/{id}'
415
- #swagger.method = 'get'
416
- #swagger.produces = ['application/json']
417
-
418
- #swagger.parameters['id'] = {
419
- in: 'path',
420
- description: 'Object layer ID',
421
- required: true,
422
- type: 'string'
423
- }
424
-
425
- #swagger.responses[200] = {
426
- description: 'Object layer retrieved successfully',
427
- content: {
428
- 'application/json': {
429
- schema: {
430
- $ref: '#/components/schemas/objectLayerResponse'
431
- }
432
- }
433
- }
434
- }
435
-
436
- #swagger.responses[400] = {
437
- description: 'Bad request. Please check the input data',
438
- content: {
439
- 'application/json': {
440
- schema: {
441
- $ref: '#/components/schemas/objectLayerBadRequestResponse'
442
- }
443
- }
444
- }
445
- }
446
- */
447
- return await ObjectLayerController.get(req, res, options);
448
- });
449
- router.get(`/`, async (req, res) => {
450
- /*
451
- #swagger.auto = false
452
- #swagger.tags = ['object-layer']
453
- #swagger.summary = 'Get all object layers'
454
- #swagger.description = 'This endpoint retrieves all object layers'
455
- #swagger.path = '/object-layer'
456
- #swagger.method = 'get'
457
- #swagger.produces = ['application/json']
458
-
459
- #swagger.responses[200] = {
460
- description: 'Object layers retrieved successfully',
461
- content: {
462
- 'application/json': {
463
- schema: {
464
- $ref: '#/components/schemas/objectLayerResponse'
465
- }
466
- }
467
- }
468
- }
469
-
470
- #swagger.responses[400] = {
471
- description: 'Bad request. Please check the input data',
472
- content: {
473
- 'application/json': {
474
- schema: {
475
- $ref: '#/components/schemas/objectLayerBadRequestResponse'
476
- }
477
- }
478
- }
479
- }
480
- */
481
- return await ObjectLayerController.get(req, res, options);
482
- });
483
- router.put(`/:id/frame-image/:itemType/:itemId/:directionCode`, authMiddleware, async (req, res) => {
484
- /*
298
+ return await ObjectLayerController.get(req, res, options);
299
+ });
300
+ router.get(`/metadata/:id`, async (req, res) => {
301
+ /*
485
302
  #swagger.auto = false
486
303
  #swagger.tags = ['object-layer']
487
- #swagger.summary = 'Update frame image'
488
- #swagger.description = 'This endpoint updates a frame image for a specific object layer item by ID, type, item ID, and direction code'
489
- #swagger.path = '/object-layer/{id}/frame-image/{itemType}/{itemId}/{directionCode}'
490
- #swagger.method = 'put'
491
- #swagger.consumes = ['application/octet-stream']
492
- #swagger.security = [{
493
- 'bearerAuth': []
494
- }]
304
+ #swagger.summary = 'Get object layer metadata'
305
+ #swagger.description = 'This endpoint retrieves metadata for a specific object layer by ID'
306
+ #swagger.path = '/object-layer/metadata/{id}'
307
+ #swagger.method = 'get'
308
+ #swagger.produces = ['application/json']
495
309
 
496
310
  #swagger.parameters['id'] = {
497
311
  in: 'path',
@@ -500,29 +314,79 @@ const ObjectLayerRouter = (options) => {
500
314
  type: 'string'
501
315
  }
502
316
 
503
- #swagger.parameters['itemType'] = {
504
- in: 'path',
505
- description: 'The type of the item',
506
- required: true,
507
- type: 'string'
317
+ #swagger.responses[200] = {
318
+ description: 'Object layer metadata retrieved successfully',
319
+ content: {
320
+ 'application/json': {
321
+ schema: {
322
+ $ref: '#/components/schemas/objectLayerResponse'
323
+ }
324
+ }
325
+ }
508
326
  }
509
327
 
510
- #swagger.parameters['itemId'] = {
511
- in: 'path',
512
- description: 'The item ID',
513
- required: true,
328
+ #swagger.responses[400] = {
329
+ description: 'Bad request. Please check the input data',
330
+ content: {
331
+ 'application/json': {
332
+ schema: {
333
+ $ref: '#/components/schemas/objectLayerBadRequestResponse'
334
+ }
335
+ }
336
+ }
337
+ }
338
+ */
339
+ return await ObjectLayerController.get(req, res, options);
340
+ });
341
+ router.get(`/search-item-ids`, async (req, res) => {
342
+ /*
343
+ #swagger.auto = false
344
+ #swagger.tags = ['object-layer']
345
+ #swagger.summary = 'Search object layer item IDs'
346
+ #swagger.description = 'Returns partial matches of data.item.id for type-ahead autocomplete'
347
+ #swagger.path = '/object-layer/search-item-ids'
348
+ #swagger.method = 'get'
349
+ #swagger.produces = ['application/json']
350
+
351
+ #swagger.parameters['q'] = {
352
+ in: 'query',
353
+ description: 'Partial item ID to search for',
354
+ required: false,
514
355
  type: 'string'
515
356
  }
516
357
 
517
- #swagger.parameters['directionCode'] = {
358
+ #swagger.responses[200] = {
359
+ description: 'Item IDs matching the query',
360
+ content: {
361
+ 'application/json': {
362
+ schema: {
363
+ $ref: '#/components/schemas/objectLayerResponse'
364
+ }
365
+ }
366
+ }
367
+ }
368
+ */
369
+ return await ObjectLayerController.get(req, res, options);
370
+ });
371
+ router.get(`/frame-counts/:id`, async (req, res) => {
372
+ /*
373
+ #swagger.auto = false
374
+ #swagger.tags = ['object-layer']
375
+ #swagger.summary = 'Get frame counts'
376
+ #swagger.description = 'This endpoint retrieves frame counts for a specific object layer by ID'
377
+ #swagger.path = '/object-layer/frame-counts/{id}'
378
+ #swagger.method = 'get'
379
+ #swagger.produces = ['application/json']
380
+
381
+ #swagger.parameters['id'] = {
518
382
  in: 'path',
519
- description: 'The direction code for the frame',
383
+ description: 'Object layer ID',
520
384
  required: true,
521
385
  type: 'string'
522
386
  }
523
387
 
524
388
  #swagger.responses[200] = {
525
- description: 'Frame image updated successfully',
389
+ description: 'Frame counts retrieved successfully',
526
390
  content: {
527
391
  'application/json': {
528
392
  schema: {
@@ -543,21 +407,17 @@ const ObjectLayerRouter = (options) => {
543
407
  }
544
408
  }
545
409
  */
546
- return await ObjectLayerController.put(req, res, options);
547
- });
548
- router.put(`/:id/metadata/:itemType/:itemId`, authMiddleware, async (req, res) => {
549
- /*
410
+ return await ObjectLayerController.get(req, res, options);
411
+ });
412
+ router.get(`/:id`, async (req, res) => {
413
+ /*
550
414
  #swagger.auto = false
551
415
  #swagger.tags = ['object-layer']
552
- #swagger.summary = 'Update object layer metadata'
553
- #swagger.description = 'This endpoint updates metadata for a specific object layer item by ID, type, and item ID'
554
- #swagger.path = '/object-layer/{id}/metadata/{itemType}/{itemId}'
555
- #swagger.method = 'put'
416
+ #swagger.summary = 'Get object layer by ID'
417
+ #swagger.description = 'This endpoint retrieves a specific object layer by ID'
418
+ #swagger.path = '/object-layer/{id}'
419
+ #swagger.method = 'get'
556
420
  #swagger.produces = ['application/json']
557
- #swagger.consumes = ['application/json']
558
- #swagger.security = [{
559
- 'bearerAuth': []
560
- }]
561
421
 
562
422
  #swagger.parameters['id'] = {
563
423
  in: 'path',
@@ -566,22 +426,42 @@ const ObjectLayerRouter = (options) => {
566
426
  type: 'string'
567
427
  }
568
428
 
569
- #swagger.parameters['itemType'] = {
570
- in: 'path',
571
- description: 'The type of the item',
572
- required: true,
573
- type: 'string'
429
+ #swagger.responses[200] = {
430
+ description: 'Object layer retrieved successfully',
431
+ content: {
432
+ 'application/json': {
433
+ schema: {
434
+ $ref: '#/components/schemas/objectLayerResponse'
435
+ }
436
+ }
437
+ }
574
438
  }
575
439
 
576
- #swagger.parameters['itemId'] = {
577
- in: 'path',
578
- description: 'The item ID',
579
- required: true,
580
- type: 'string'
440
+ #swagger.responses[400] = {
441
+ description: 'Bad request. Please check the input data',
442
+ content: {
443
+ 'application/json': {
444
+ schema: {
445
+ $ref: '#/components/schemas/objectLayerBadRequestResponse'
446
+ }
447
+ }
448
+ }
581
449
  }
450
+ */
451
+ return await ObjectLayerController.get(req, res, options);
452
+ });
453
+ router.get(`/`, async (req, res) => {
454
+ /*
455
+ #swagger.auto = false
456
+ #swagger.tags = ['object-layer']
457
+ #swagger.summary = 'Get all object layers'
458
+ #swagger.description = 'This endpoint retrieves all object layers'
459
+ #swagger.path = '/object-layer'
460
+ #swagger.method = 'get'
461
+ #swagger.produces = ['application/json']
582
462
 
583
463
  #swagger.responses[200] = {
584
- description: 'Metadata updated successfully',
464
+ description: 'Object layers retrieved successfully',
585
465
  content: {
586
466
  'application/json': {
587
467
  schema: {
@@ -602,67 +482,140 @@ const ObjectLayerRouter = (options) => {
602
482
  }
603
483
  }
604
484
  */
605
- return await ObjectLayerController.put(req, res, options);
606
- });
607
- router.put(`/:id`, authMiddleware, async (req, res) => {
608
- /*
609
- #swagger.auto = false
610
- #swagger.tags = ['object-layer']
611
- #swagger.summary = 'Update object layer by ID'
612
- #swagger.description = 'This endpoint updates an object layer entry by ID'
613
- #swagger.path = '/object-layer/{id}'
614
- #swagger.method = 'put'
615
- #swagger.produces = ['application/json']
616
- #swagger.consumes = ['application/json']
617
- #swagger.security = [{
618
- 'bearerAuth': []
619
- }]
620
-
621
- #swagger.parameters['id'] = {
622
- in: 'path',
623
- description: 'Object layer ID',
624
- required: true,
625
- type: 'string'
626
- }
627
-
628
- #swagger.responses[200] = {
629
- description: 'Object layer updated successfully',
630
- content: {
631
- 'application/json': {
632
- schema: {
633
- $ref: '#/components/schemas/objectLayerResponse'
485
+ return await ObjectLayerController.get(req, res, options);
486
+ });
487
+ router.put(`/:id/frame-image/:itemType/:itemId/:directionCode`, options.authMiddleware, async (req, res) => {
488
+ /*
489
+ #swagger.auto = false
490
+ #swagger.tags = ['object-layer']
491
+ #swagger.summary = 'Update frame image'
492
+ #swagger.description = 'This endpoint updates a frame image for a specific object layer item by ID, type, item ID, and direction code'
493
+ #swagger.path = '/object-layer/{id}/frame-image/{itemType}/{itemId}/{directionCode}'
494
+ #swagger.method = 'put'
495
+ #swagger.consumes = ['application/octet-stream']
496
+ #swagger.security = [{
497
+ 'bearerAuth': []
498
+ }]
499
+
500
+ #swagger.parameters['id'] = {
501
+ in: 'path',
502
+ description: 'Object layer ID',
503
+ required: true,
504
+ type: 'string'
505
+ }
506
+
507
+ #swagger.parameters['itemType'] = {
508
+ in: 'path',
509
+ description: 'The type of the item',
510
+ required: true,
511
+ type: 'string'
512
+ }
513
+
514
+ #swagger.parameters['itemId'] = {
515
+ in: 'path',
516
+ description: 'The item ID',
517
+ required: true,
518
+ type: 'string'
519
+ }
520
+
521
+ #swagger.parameters['directionCode'] = {
522
+ in: 'path',
523
+ description: 'The direction code for the frame',
524
+ required: true,
525
+ type: 'string'
526
+ }
527
+
528
+ #swagger.responses[200] = {
529
+ description: 'Frame image updated successfully',
530
+ content: {
531
+ 'application/json': {
532
+ schema: {
533
+ $ref: '#/components/schemas/objectLayerResponse'
534
+ }
634
535
  }
635
536
  }
636
- }
637
- }
638
-
639
- #swagger.responses[400] = {
640
- description: 'Bad request. Please check the input data',
641
- content: {
642
- 'application/json': {
643
- schema: {
644
- $ref: '#/components/schemas/objectLayerBadRequestResponse'
537
+ }
538
+
539
+ #swagger.responses[400] = {
540
+ description: 'Bad request. Please check the input data',
541
+ content: {
542
+ 'application/json': {
543
+ schema: {
544
+ $ref: '#/components/schemas/objectLayerBadRequestResponse'
545
+ }
645
546
  }
646
547
  }
647
- }
648
- }
649
- */
650
- return await ObjectLayerController.put(req, res, options);
651
- });
652
- router.put(`/`, authMiddleware, async (req, res) => {
653
- /*
654
- #swagger.ignore = true
655
- */
656
- return await ObjectLayerController.put(req, res, options);
657
- });
658
- router.delete(`/:id`, authMiddleware, adminGuard, async (req, res) => {
659
- /*
548
+ }
549
+ */
550
+ return await ObjectLayerController.put(req, res, options);
551
+ });
552
+ router.put(`/:id/metadata/:itemType/:itemId`, options.authMiddleware, async (req, res) => {
553
+ /*
554
+ #swagger.auto = false
555
+ #swagger.tags = ['object-layer']
556
+ #swagger.summary = 'Update object layer metadata'
557
+ #swagger.description = 'This endpoint updates metadata for a specific object layer item by ID, type, and item ID'
558
+ #swagger.path = '/object-layer/{id}/metadata/{itemType}/{itemId}'
559
+ #swagger.method = 'put'
560
+ #swagger.produces = ['application/json']
561
+ #swagger.consumes = ['application/json']
562
+ #swagger.security = [{
563
+ 'bearerAuth': []
564
+ }]
565
+
566
+ #swagger.parameters['id'] = {
567
+ in: 'path',
568
+ description: 'Object layer ID',
569
+ required: true,
570
+ type: 'string'
571
+ }
572
+
573
+ #swagger.parameters['itemType'] = {
574
+ in: 'path',
575
+ description: 'The type of the item',
576
+ required: true,
577
+ type: 'string'
578
+ }
579
+
580
+ #swagger.parameters['itemId'] = {
581
+ in: 'path',
582
+ description: 'The item ID',
583
+ required: true,
584
+ type: 'string'
585
+ }
586
+
587
+ #swagger.responses[200] = {
588
+ description: 'Metadata updated successfully',
589
+ content: {
590
+ 'application/json': {
591
+ schema: {
592
+ $ref: '#/components/schemas/objectLayerResponse'
593
+ }
594
+ }
595
+ }
596
+ }
597
+
598
+ #swagger.responses[400] = {
599
+ description: 'Bad request. Please check the input data',
600
+ content: {
601
+ 'application/json': {
602
+ schema: {
603
+ $ref: '#/components/schemas/objectLayerBadRequestResponse'
604
+ }
605
+ }
606
+ }
607
+ }
608
+ */
609
+ return await ObjectLayerController.put(req, res, options);
610
+ });
611
+ router.put(`/:id`, options.authMiddleware, async (req, res) => {
612
+ /*
660
613
  #swagger.auto = false
661
614
  #swagger.tags = ['object-layer']
662
- #swagger.summary = 'Delete object layer by ID'
663
- #swagger.description = 'This endpoint deletes an object layer entry by ID. Requires admin privileges'
615
+ #swagger.summary = 'Update object layer by ID'
616
+ #swagger.description = 'This endpoint updates an object layer entry by ID'
664
617
  #swagger.path = '/object-layer/{id}'
665
- #swagger.method = 'delete'
618
+ #swagger.method = 'put'
666
619
  #swagger.produces = ['application/json']
667
620
  #swagger.consumes = ['application/json']
668
621
  #swagger.security = [{
@@ -677,7 +630,7 @@ const ObjectLayerRouter = (options) => {
677
630
  }
678
631
 
679
632
  #swagger.responses[200] = {
680
- description: 'Object layer deleted successfully',
633
+ description: 'Object layer updated successfully',
681
634
  content: {
682
635
  'application/json': {
683
636
  schema: {
@@ -698,17 +651,69 @@ const ObjectLayerRouter = (options) => {
698
651
  }
699
652
  }
700
653
  */
701
- return await ObjectLayerController.delete(req, res, options);
702
- });
703
- router.delete(`/`, authMiddleware, adminGuard, async (req, res) => {
704
- /*
654
+ return await ObjectLayerController.put(req, res, options);
655
+ });
656
+ router.put(`/`, options.authMiddleware, async (req, res) => {
657
+ /*
705
658
  #swagger.ignore = true
706
659
  */
707
- return await ObjectLayerController.delete(req, res, options);
708
- });
709
- return router;
710
- };
660
+ return await ObjectLayerController.put(req, res, options);
661
+ });
662
+ router.delete(`/:id`, options.authMiddleware, adminGuard, async (req, res) => {
663
+ /*
664
+ #swagger.auto = false
665
+ #swagger.tags = ['object-layer']
666
+ #swagger.summary = 'Delete object layer by ID'
667
+ #swagger.description = 'This endpoint deletes an object layer entry by ID. Requires admin privileges'
668
+ #swagger.path = '/object-layer/{id}'
669
+ #swagger.method = 'delete'
670
+ #swagger.produces = ['application/json']
671
+ #swagger.consumes = ['application/json']
672
+ #swagger.security = [{
673
+ 'bearerAuth': []
674
+ }]
675
+
676
+ #swagger.parameters['id'] = {
677
+ in: 'path',
678
+ description: 'Object layer ID',
679
+ required: true,
680
+ type: 'string'
681
+ }
682
+
683
+ #swagger.responses[200] = {
684
+ description: 'Object layer deleted successfully',
685
+ content: {
686
+ 'application/json': {
687
+ schema: {
688
+ $ref: '#/components/schemas/objectLayerResponse'
689
+ }
690
+ }
691
+ }
692
+ }
711
693
 
712
- const ApiRouter = ObjectLayerRouter;
694
+ #swagger.responses[400] = {
695
+ description: 'Bad request. Please check the input data',
696
+ content: {
697
+ 'application/json': {
698
+ schema: {
699
+ $ref: '#/components/schemas/objectLayerBadRequestResponse'
700
+ }
701
+ }
702
+ }
703
+ }
704
+ */
705
+ return await ObjectLayerController.delete(req, res, options);
706
+ });
707
+ router.delete(`/`, options.authMiddleware, adminGuard, async (req, res) => {
708
+ /*
709
+ #swagger.ignore = true
710
+ */
711
+ return await ObjectLayerController.delete(req, res, options);
712
+ });
713
+ return router;
714
+ }
715
+ }
716
+
717
+ const ApiRouter = (options) => ObjectLayerRouter.router(options);
713
718
 
714
719
  export { ApiRouter, ObjectLayerRouter };