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.
- package/.github/workflows/engine-cyberia.cd.yml +8 -2
- package/.github/workflows/npmpkg.ci.yml +1 -0
- package/.github/workflows/pwa-microservices-template-test.ci.yml +1 -1
- package/.github/workflows/release.cd.yml +2 -2
- package/.vscode/extensions.json +9 -9
- package/.vscode/settings.json +20 -4
- package/CHANGELOG.md +563 -1
- package/CLI-HELP.md +130 -34
- package/Dockerfile +0 -4
- package/README.md +194 -607
- package/bin/build.js +42 -12
- package/bin/build.template.js +187 -0
- package/bin/cyberia.js +1367 -281
- package/bin/deploy.js +582 -3
- package/bin/index.js +1367 -281
- package/bump.config.js +26 -0
- package/conf.js +195 -111
- package/deployment.yaml +6 -222
- package/hardhat/package-lock.json +118 -149
- package/hardhat/package.json +5 -4
- package/jsconfig.json +1 -1
- package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +2 -2
- package/manifests/cronjobs/dd-cron/dd-cron-dns.yaml +2 -2
- package/manifests/deployment/dd-cyberia-development/deployment.yaml +6 -222
- package/manifests/deployment/dd-cyberia-development/proxy.yaml +10 -118
- package/manifests/deployment/dd-default-development/deployment.yaml +2 -6
- package/manifests/deployment/dd-test-development/deployment.yaml +138 -66
- package/manifests/deployment/dd-test-development/proxy.yaml +41 -5
- package/manifests/kind-config-dev.yaml +8 -0
- package/manifests/lxd/lxd-admin-profile.yaml +12 -3
- package/manifests/mongodb/pv-pvc.yaml +44 -8
- package/manifests/mongodb/statefulset.yaml +55 -68
- package/manifests/mongodb-4.4/headless-service.yaml +10 -0
- package/manifests/mongodb-4.4/kustomization.yaml +3 -1
- package/manifests/mongodb-4.4/mongodb-nodeport.yaml +17 -0
- package/manifests/mongodb-4.4/pv-pvc.yaml +10 -14
- package/manifests/mongodb-4.4/statefulset.yaml +79 -0
- package/manifests/mongodb-4.4/storage-class.yaml +9 -0
- package/manifests/valkey/statefulset.yaml +1 -1
- package/manifests/valkey/valkey-nodeport.yaml +17 -0
- package/package.json +45 -24
- package/proxy.yaml +10 -118
- package/scripts/ipxe-setup.sh +52 -49
- package/scripts/k3s-node-setup.sh +83 -48
- package/scripts/lxd-vm-setup.sh +193 -8
- package/scripts/maas-nat-firewalld.sh +145 -0
- package/scripts/nat-iptables.sh +103 -18
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.controller.js +18 -18
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.model.js +7 -14
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.router.js +38 -33
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.service.js +91 -36
- package/src/api/core/core.controller.js +10 -10
- package/src/api/core/core.router.js +19 -14
- package/src/api/core/core.service.js +15 -15
- package/src/api/crypto/crypto.controller.js +8 -8
- package/src/api/crypto/crypto.router.js +18 -12
- package/src/api/crypto/crypto.service.js +11 -11
- package/src/api/cyberia-action/cyberia-action.controller.js +74 -0
- package/src/api/cyberia-action/cyberia-action.model.js +87 -0
- package/src/api/cyberia-action/cyberia-action.router.js +31 -0
- package/src/api/cyberia-action/cyberia-action.service.js +42 -0
- package/src/api/cyberia-client-hints/cyberia-client-hints.controller.js +74 -0
- package/src/api/cyberia-client-hints/cyberia-client-hints.model.js +99 -0
- package/src/api/cyberia-client-hints/cyberia-client-hints.router.js +98 -0
- package/src/api/cyberia-client-hints/cyberia-client-hints.service.js +152 -0
- package/src/api/cyberia-dialogue/cyberia-dialogue.controller.js +13 -13
- package/src/api/cyberia-dialogue/cyberia-dialogue.model.js +11 -11
- package/src/api/cyberia-dialogue/cyberia-dialogue.router.js +25 -20
- package/src/api/cyberia-dialogue/cyberia-dialogue.service.js +22 -22
- package/src/api/cyberia-entity/cyberia-entity.controller.js +10 -10
- package/src/api/cyberia-entity/cyberia-entity.router.js +22 -18
- package/src/api/cyberia-entity/cyberia-entity.service.js +15 -15
- package/src/api/cyberia-instance/cyberia-fallback-world.js +83 -198
- package/src/api/cyberia-instance/cyberia-instance.controller.js +14 -14
- package/src/api/cyberia-instance/cyberia-instance.model.js +3 -0
- package/src/api/cyberia-instance/cyberia-instance.router.js +57 -52
- package/src/api/cyberia-instance/cyberia-instance.service.js +32 -67
- package/src/api/cyberia-instance/cyberia-portal-connector.js +20 -246
- package/src/api/cyberia-instance/cyberia-world-generator.js +505 -0
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.controller.js +10 -10
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.model.js +18 -49
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.router.js +22 -18
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.service.js +19 -15
- package/src/api/cyberia-map/cyberia-map.controller.js +10 -10
- package/src/api/cyberia-map/cyberia-map.router.js +35 -30
- package/src/api/cyberia-map/cyberia-map.service.js +17 -17
- package/src/api/cyberia-quest/cyberia-quest.controller.js +74 -0
- package/src/api/cyberia-quest/cyberia-quest.model.js +67 -0
- package/src/api/cyberia-quest/cyberia-quest.router.js +31 -0
- package/src/api/cyberia-quest/cyberia-quest.service.js +42 -0
- package/src/api/cyberia-quest-progress/cyberia-quest-progress.controller.js +74 -0
- package/src/api/cyberia-quest-progress/cyberia-quest-progress.model.js +49 -0
- package/src/api/cyberia-quest-progress/cyberia-quest-progress.router.js +31 -0
- package/src/api/cyberia-quest-progress/cyberia-quest-progress.service.js +42 -0
- package/src/api/cyberia-server-defaults/cyberia-server-defaults.js +451 -0
- package/src/api/default/default.controller.js +10 -10
- package/src/api/default/default.router.js +22 -18
- package/src/api/default/default.service.js +15 -15
- package/src/api/document/document.controller.js +12 -12
- package/src/api/document/document.model.js +10 -16
- package/src/api/document/document.router.js +28 -23
- package/src/api/document/document.service.js +100 -23
- package/src/api/file/file.controller.js +8 -8
- package/src/api/file/file.model.js +10 -10
- package/src/api/file/file.router.js +19 -13
- package/src/api/file/file.service.js +45 -43
- package/src/api/instance/instance.controller.js +10 -10
- package/src/api/instance/instance.model.js +4 -10
- package/src/api/instance/instance.router.js +29 -24
- package/src/api/instance/instance.service.js +16 -16
- package/src/api/ipfs/ipfs.controller.js +12 -12
- package/src/api/ipfs/ipfs.model.js +4 -13
- package/src/api/ipfs/ipfs.router.js +21 -16
- package/src/api/ipfs/ipfs.service.js +22 -36
- package/src/api/object-layer/object-layer.controller.js +12 -12
- package/src/api/object-layer/object-layer.model.js +4 -17
- package/src/api/object-layer/object-layer.router.js +512 -507
- package/src/api/object-layer/object-layer.service.js +29 -26
- package/src/api/object-layer-render-frames/object-layer-render-frames.controller.js +10 -10
- package/src/api/object-layer-render-frames/object-layer-render-frames.model.js +6 -16
- package/src/api/object-layer-render-frames/object-layer-render-frames.router.js +22 -18
- package/src/api/object-layer-render-frames/object-layer-render-frames.service.js +19 -15
- package/src/api/test/test.controller.js +8 -8
- package/src/api/test/test.router.js +17 -12
- package/src/api/test/test.service.js +8 -8
- package/src/api/types.js +24 -0
- package/src/api/user/guest.service.js +100 -0
- package/src/api/user/user.controller.js +6 -6
- package/src/api/user/user.model.js +8 -13
- package/src/api/user/user.router.js +297 -288
- package/src/api/user/user.service.js +103 -55
- package/src/cli/baremetal.js +132 -101
- package/src/cli/cluster.js +732 -217
- package/src/cli/db.js +106 -62
- package/src/cli/deploy.js +260 -149
- package/src/cli/fs.js +90 -9
- package/src/cli/image.js +43 -1
- package/src/cli/index.js +106 -16
- package/src/cli/ipfs.js +4 -6
- package/src/cli/kubectl.js +4 -1
- package/src/cli/lxd.js +1099 -223
- package/src/cli/monitor.js +9 -3
- package/src/cli/release.js +336 -86
- package/src/cli/repository.js +136 -53
- package/src/cli/run.js +599 -76
- package/src/cli/secrets.js +11 -2
- package/src/cli/ssh.js +1 -1
- package/src/cli/static.js +43 -115
- package/src/cli/test.js +9 -3
- package/src/client/Cryptokoyn.index.js +18 -21
- package/src/client/CyberiaPortal.index.js +19 -23
- package/src/client/Default.index.js +30 -36
- package/src/client/Itemledger.index.js +20 -26
- package/src/client/Underpost.index.js +19 -23
- package/src/client/components/core/404.js +4 -4
- package/src/client/components/core/500.js +4 -4
- package/src/client/components/core/Account.js +73 -60
- package/src/client/components/core/AgGrid.js +23 -33
- package/src/client/components/core/Alert.js +12 -13
- package/src/client/components/core/AppStore.js +1 -1
- package/src/client/components/core/Auth.js +40 -37
- package/src/client/components/core/Badge.js +7 -13
- package/src/client/components/core/BtnIcon.js +15 -17
- package/src/client/components/core/CalendarCore.js +42 -63
- package/src/client/components/core/Chat.js +13 -15
- package/src/client/components/core/ClientEvents.js +163 -0
- package/src/client/components/core/ColorPaletteElement.js +309 -0
- package/src/client/components/core/Content.js +17 -14
- package/src/client/components/core/Css.js +15 -71
- package/src/client/components/core/CssCore.js +12 -16
- package/src/client/components/core/D3Chart.js +4 -4
- package/src/client/components/core/Docs.js +64 -91
- package/src/client/components/core/DropDown.js +69 -91
- package/src/client/components/core/EventBus.js +96 -0
- package/src/client/components/core/EventsUI.js +14 -17
- package/src/client/components/core/FileExplorer.js +96 -228
- package/src/client/components/core/FullScreen.js +47 -75
- package/src/client/components/core/Input.js +24 -69
- package/src/client/components/core/Keyboard.js +25 -18
- package/src/client/components/core/KeyboardAvoidance.js +145 -0
- package/src/client/components/core/LoadingAnimation.js +25 -31
- package/src/client/components/core/LogIn.js +41 -41
- package/src/client/components/core/LogOut.js +23 -14
- package/src/client/components/core/Modal.js +544 -219
- package/src/client/components/core/NotificationManager.js +14 -18
- package/src/client/components/core/Panel.js +54 -50
- package/src/client/components/core/PanelForm.js +81 -177
- package/src/client/components/core/Polyhedron.js +110 -214
- package/src/client/components/core/PublicProfile.js +39 -32
- package/src/client/components/core/Recover.js +48 -44
- package/src/client/components/core/Responsive.js +88 -32
- package/src/client/components/core/RichText.js +9 -18
- package/src/client/components/core/Router.js +24 -3
- package/src/client/components/core/SearchBox.js +37 -37
- package/src/client/components/core/SignUp.js +39 -30
- package/src/client/components/core/SocketIo.js +31 -2
- package/src/client/components/core/SocketIoHandler.js +6 -6
- package/src/client/components/core/ToggleSwitch.js +8 -20
- package/src/client/components/core/ToolTip.js +5 -17
- package/src/client/components/core/Translate.js +56 -59
- package/src/client/components/core/Validator.js +26 -16
- package/src/client/components/core/Wallet.js +15 -26
- package/src/client/components/core/Worker.js +211 -276
- package/src/client/components/core/windowGetDimensions.js +7 -7
- package/src/client/components/cryptokoyn/{MenuCryptokoyn.js → AppShellCryptokoyn.js} +57 -57
- package/src/client/components/cryptokoyn/CssCryptokoyn.js +15 -15
- package/src/client/components/cryptokoyn/LogInCryptokoyn.js +6 -4
- package/src/client/components/cryptokoyn/LogOutCryptokoyn.js +6 -4
- package/src/client/components/cryptokoyn/RouterCryptokoyn.js +37 -0
- package/src/client/components/cryptokoyn/SettingsCryptokoyn.js +4 -4
- package/src/client/components/cryptokoyn/SignUpCryptokoyn.js +6 -4
- package/src/client/components/cyberia/InstanceEngineCyberia.js +141 -60
- package/src/client/components/cyberia/MapEngineCyberia.js +691 -214
- package/src/client/components/cyberia/ObjectLayerEngine.js +19 -0
- package/src/client/components/cyberia/ObjectLayerEngineModal.js +1204 -94
- package/src/client/components/cyberia/ObjectLayerEngineViewer.js +196 -298
- package/src/client/components/cyberia/SharedDefaultsCyberia.js +330 -0
- package/src/client/components/cyberia-portal/{MenuCyberiaPortal.js → AppShellCyberiaPortal.js} +102 -102
- package/src/client/components/cyberia-portal/CssCyberiaPortal.js +15 -15
- package/src/client/components/cyberia-portal/LogInCyberiaPortal.js +6 -4
- package/src/client/components/cyberia-portal/LogOutCyberiaPortal.js +6 -4
- package/src/client/components/cyberia-portal/MainBodyCyberiaPortal.js +4 -4
- package/src/client/components/cyberia-portal/RouterCyberiaPortal.js +60 -0
- package/src/client/components/cyberia-portal/SettingsCyberiaPortal.js +4 -4
- package/src/client/components/cyberia-portal/SignUpCyberiaPortal.js +6 -4
- package/src/client/components/cyberia-portal/TranslateCyberiaPortal.js +4 -4
- package/src/client/components/default/{MenuDefault.js → AppShellDefault.js} +87 -87
- package/src/client/components/default/CssDefault.js +12 -12
- package/src/client/components/default/LogInDefault.js +6 -4
- package/src/client/components/default/LogOutDefault.js +6 -4
- package/src/client/components/default/RouterDefault.js +47 -0
- package/src/client/components/default/SettingsDefault.js +4 -4
- package/src/client/components/default/SignUpDefault.js +6 -4
- package/src/client/components/default/TranslateDefault.js +3 -3
- package/src/client/components/itemledger/{MenuItemledger.js → AppShellItemledger.js} +57 -57
- package/src/client/components/itemledger/CssItemledger.js +15 -15
- package/src/client/components/itemledger/LogInItemledger.js +6 -4
- package/src/client/components/itemledger/LogOutItemledger.js +6 -4
- package/src/client/components/itemledger/RouterItemledger.js +38 -0
- package/src/client/components/itemledger/SettingsItemledger.js +4 -4
- package/src/client/components/itemledger/SignUpItemledger.js +6 -4
- package/src/client/components/itemledger/TranslateItemledger.js +3 -3
- package/src/client/components/underpost/{MenuUnderpost.js → AppShellUnderpost.js} +88 -88
- package/src/client/components/underpost/CssUnderpost.js +14 -14
- package/src/client/components/underpost/CyberpunkBloggerUnderpost.js +4 -4
- package/src/client/components/underpost/DocumentSearchProvider.js +1 -1
- package/src/client/components/underpost/LabGalleryUnderpost.js +12 -15
- package/src/client/components/underpost/LogInUnderpost.js +6 -4
- package/src/client/components/underpost/LogOutUnderpost.js +6 -4
- package/src/client/components/underpost/RouterUnderpost.js +45 -0
- package/src/client/components/underpost/SettingsUnderpost.js +4 -4
- package/src/client/components/underpost/SignUpUnderpost.js +6 -4
- package/src/client/components/underpost/TranslateUnderpost.js +4 -4
- package/src/client/public/cyberia-docs/ACTION-SYSTEM.md +235 -0
- package/src/client/public/cyberia-docs/ARCHITECTURE.md +83 -0
- package/src/client/public/cyberia-docs/CYBERIA-CLI.md +204 -0
- package/src/client/public/cyberia-docs/CYBERIA-CLIENT.md +291 -0
- package/src/client/public/cyberia-docs/CYBERIA-SERVER.md +278 -0
- package/src/client/public/cyberia-docs/CYBERIA.md +259 -0
- package/src/client/public/cyberia-docs/ENTITY-PROFILE.md +241 -0
- package/src/client/public/cyberia-docs/HARDHAT-MODULE.md +300 -0
- package/src/client/public/cyberia-docs/OFF-CHAIN-ECONOMY.md +279 -0
- package/src/client/public/cyberia-docs/QUEST-SYSTEM.md +206 -0
- package/src/client/public/cyberia-docs/ROADMAP.md +240 -0
- package/src/client/public/cyberia-docs/UNDERPOST-PLATFORM.md +106 -0
- package/src/client/public/cyberia-docs/WHITE-PAPER.md +732 -0
- package/src/client/services/atlas-sprite-sheet/atlas-sprite-sheet.service.js +14 -20
- package/src/client/services/core/core.service.js +17 -49
- package/src/client/services/crypto/crypto.service.js +8 -13
- package/src/client/services/cyberia-action/cyberia-action.service.js +99 -0
- package/src/client/services/cyberia-client-hints/cyberia-client-hints.service.js +99 -0
- package/src/client/services/cyberia-dialogue/cyberia-dialogue.service.js +10 -16
- package/src/client/services/cyberia-entity/cyberia-entity.management.js +5 -5
- package/src/client/services/cyberia-entity/cyberia-entity.service.js +10 -16
- package/src/client/services/cyberia-instance/cyberia-instance.management.js +6 -6
- package/src/client/services/cyberia-instance/cyberia-instance.service.js +12 -18
- package/src/client/services/cyberia-instance-conf/cyberia-instance-conf.service.js +10 -16
- package/src/client/services/cyberia-map/cyberia-map.management.js +6 -6
- package/src/client/services/cyberia-map/cyberia-map.service.js +12 -18
- package/src/client/services/cyberia-quest/cyberia-quest.service.js +99 -0
- package/src/client/services/cyberia-quest-progress/cyberia-quest-progress.service.js +99 -0
- package/src/client/services/default/default.management.js +159 -267
- package/src/client/services/default/default.service.js +10 -16
- package/src/client/services/document/document.service.js +14 -19
- package/src/client/services/file/file.service.js +8 -13
- package/src/client/services/instance/instance.management.js +5 -5
- package/src/client/services/instance/instance.service.js +10 -15
- package/src/client/services/ipfs/ipfs.service.js +12 -18
- package/src/client/services/object-layer/object-layer.management.js +12 -12
- package/src/client/services/object-layer/object-layer.service.js +20 -26
- package/src/client/services/object-layer-render-frames/object-layer-render-frames.service.js +10 -16
- package/src/client/services/test/test.service.js +8 -13
- package/src/client/services/user/guest.service.js +86 -0
- package/src/client/services/user/user.management.js +5 -5
- package/src/client/services/user/user.service.js +14 -20
- package/src/client/ssr/body/404.js +3 -3
- package/src/client/ssr/body/500.js +3 -3
- package/src/client/ssr/body/CacheControl.js +5 -2
- package/src/client/ssr/body/DefaultSplashScreen.js +19 -12
- package/src/client/ssr/body/UnderpostDefaultSplashScreen.js +13 -6
- package/src/client/ssr/head/PwaItemledger.js +197 -60
- package/src/client/ssr/mailer/DefaultRecoverEmail.js +19 -20
- package/src/client/ssr/mailer/DefaultVerifyEmail.js +15 -16
- package/src/client/ssr/views/CyberiaServerMetrics.js +982 -0
- package/src/client/ssr/{offline → views}/Maintenance.js +12 -11
- package/src/client/ssr/{offline → views}/NoNetworkConnection.js +3 -3
- package/src/client/ssr/{pages → views}/Test.js +2 -2
- package/src/client/sw/core.sw.js +274 -0
- package/src/db/DataBaseProvider.js +115 -15
- package/src/db/mariadb/MariaDB.js +2 -1
- package/src/db/mongo/MongoBootstrap.js +657 -0
- package/src/db/mongo/MongooseDB.js +129 -21
- package/src/grpc/cyberia/grpc-server.js +185 -105
- package/src/index.js +1 -1
- package/src/runtime/cyberia-client/Dockerfile +101 -0
- package/src/runtime/cyberia-client/Dockerfile.dev +82 -0
- package/src/runtime/cyberia-server/Dockerfile +62 -0
- package/src/runtime/cyberia-server/Dockerfile.dev +71 -0
- package/src/runtime/express/Dockerfile +4 -4
- package/src/runtime/express/Express.js +2 -2
- package/src/runtime/lampp/Dockerfile +8 -7
- package/src/runtime/wp/Dockerfile +11 -17
- package/src/runtime/wp/Wp.js +8 -5
- package/src/server/atlas-sprite-sheet-generator.js +4 -2
- package/src/server/auth.js +2 -2
- package/src/server/client-build-docs.js +46 -47
- package/src/server/client-build.js +371 -132
- package/src/server/client-formatted.js +47 -16
- package/src/server/conf.js +91 -87
- package/src/server/data-query.js +32 -20
- package/src/server/dns.js +22 -0
- package/src/server/ipfs-client.js +232 -91
- package/src/server/object-layer.js +1 -6
- package/src/server/process.js +192 -45
- package/src/server/proxy.js +9 -2
- package/src/server/runtime.js +1 -1
- package/src/server/semantic-layer-generator-floor.js +11 -51
- package/src/server/semantic-layer-generator-resource.js +259 -0
- package/src/server/semantic-layer-generator-skin.js +41 -171
- package/src/server/semantic-layer-generator.js +122 -14
- package/src/server/shape-generator.js +108 -0
- package/src/server/start.js +34 -8
- package/src/server/valkey.js +143 -235
- package/src/ws/IoInterface.js +16 -16
- package/src/ws/core/channels/core.ws.chat.js +11 -11
- package/src/ws/core/channels/core.ws.mailer.js +29 -29
- package/src/ws/core/channels/core.ws.stream.js +19 -19
- package/src/ws/core/core.ws.connection.js +8 -8
- package/src/ws/core/core.ws.server.js +6 -5
- package/src/ws/default/channels/default.ws.main.js +10 -10
- package/src/ws/default/default.ws.connection.js +4 -4
- package/src/ws/default/default.ws.server.js +4 -3
- package/tsconfig.docs.json +15 -0
- package/typedoc.dd-cyberia.json +29 -0
- package/typedoc.json +29 -0
- package/WHITE-PAPER.md +0 -1540
- package/bin/file.js +0 -196
- package/bin/vs.js +0 -74
- package/bin/zed.js +0 -84
- package/hardhat/README.md +0 -531
- package/hardhat/WHITE-PAPER.md +0 -1540
- package/jsdoc.dd-cyberia.json +0 -68
- package/jsdoc.json +0 -68
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.defaults.js +0 -413
- package/src/api/object-layer/README.md +0 -672
- package/src/client/components/core/ColorPalette.js +0 -5267
- package/src/client/components/core/JoyStick.js +0 -80
- package/src/client/components/cryptokoyn/RoutesCryptokoyn.js +0 -39
- package/src/client/components/cyberia-portal/CommonCyberiaPortal.js +0 -223
- package/src/client/components/cyberia-portal/RoutesCyberiaPortal.js +0 -62
- package/src/client/components/cyberia-portal/ServerCyberiaPortal.js +0 -136
- package/src/client/components/default/RoutesDefault.js +0 -49
- package/src/client/components/itemledger/RoutesItemledger.js +0 -40
- package/src/client/components/underpost/RoutesUnderpost.js +0 -47
- package/src/client/ssr/email/DefaultRecoverEmail.js +0 -21
- package/src/client/ssr/email/DefaultVerifyEmail.js +0 -17
- package/src/client/ssr/pages/CyberiaServerMetrics.js +0 -461
- package/src/client/sw/default.sw.js +0 -127
- package/src/client/sw/template.sw.js +0 -84
- package/src/grpc/cyberia/OFF_CHAIN_ECONOMY.md +0 -305
- package/src/grpc/cyberia/README.md +0 -326
|
@@ -3,8 +3,8 @@ import { AtlasSpriteSheetService } from './atlas-sprite-sheet.service.js';
|
|
|
3
3
|
|
|
4
4
|
const logger = loggerFactory(import.meta);
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
blob
|
|
6
|
+
class AtlasSpriteSheetController {
|
|
7
|
+
static blob = async (req, res, options) => {
|
|
8
8
|
try {
|
|
9
9
|
if (req && req.headers && req.headers.origin) {
|
|
10
10
|
res.set('Access-Control-Allow-Origin', req.headers.origin);
|
|
@@ -23,8 +23,8 @@ const AtlasSpriteSheetController = {
|
|
|
23
23
|
message: error.message,
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
|
-
}
|
|
27
|
-
generate
|
|
26
|
+
};
|
|
27
|
+
static generate = async (req, res, options) => {
|
|
28
28
|
try {
|
|
29
29
|
const result = await AtlasSpriteSheetService.generate(req, res, options);
|
|
30
30
|
return res.status(200).json({
|
|
@@ -38,8 +38,8 @@ const AtlasSpriteSheetController = {
|
|
|
38
38
|
message: error.message,
|
|
39
39
|
});
|
|
40
40
|
}
|
|
41
|
-
}
|
|
42
|
-
deleteByObjectLayerId
|
|
41
|
+
};
|
|
42
|
+
static deleteByObjectLayerId = async (req, res, options) => {
|
|
43
43
|
try {
|
|
44
44
|
const result = await AtlasSpriteSheetService.deleteByObjectLayerId(req, res, options);
|
|
45
45
|
return res.status(200).json({
|
|
@@ -53,8 +53,8 @@ const AtlasSpriteSheetController = {
|
|
|
53
53
|
message: error.message,
|
|
54
54
|
});
|
|
55
55
|
}
|
|
56
|
-
}
|
|
57
|
-
post
|
|
56
|
+
};
|
|
57
|
+
static post = async (req, res, options) => {
|
|
58
58
|
try {
|
|
59
59
|
const result = await AtlasSpriteSheetService.post(req, res, options);
|
|
60
60
|
return res.status(200).json({
|
|
@@ -68,8 +68,8 @@ const AtlasSpriteSheetController = {
|
|
|
68
68
|
message: error.message,
|
|
69
69
|
});
|
|
70
70
|
}
|
|
71
|
-
}
|
|
72
|
-
get
|
|
71
|
+
};
|
|
72
|
+
static get = async (req, res, options) => {
|
|
73
73
|
try {
|
|
74
74
|
if (req && req.headers && req.headers.origin) {
|
|
75
75
|
res.set('Access-Control-Allow-Origin', req.headers.origin);
|
|
@@ -92,8 +92,8 @@ const AtlasSpriteSheetController = {
|
|
|
92
92
|
message: error.message,
|
|
93
93
|
});
|
|
94
94
|
}
|
|
95
|
-
}
|
|
96
|
-
put
|
|
95
|
+
};
|
|
96
|
+
static put = async (req, res, options) => {
|
|
97
97
|
try {
|
|
98
98
|
const result = await AtlasSpriteSheetService.put(req, res, options);
|
|
99
99
|
return res.status(200).json({
|
|
@@ -107,8 +107,8 @@ const AtlasSpriteSheetController = {
|
|
|
107
107
|
message: error.message,
|
|
108
108
|
});
|
|
109
109
|
}
|
|
110
|
-
}
|
|
111
|
-
delete
|
|
110
|
+
};
|
|
111
|
+
static delete = async (req, res, options) => {
|
|
112
112
|
try {
|
|
113
113
|
const result = await AtlasSpriteSheetService.delete(req, res, options);
|
|
114
114
|
return res.status(200).json({
|
|
@@ -122,8 +122,8 @@ const AtlasSpriteSheetController = {
|
|
|
122
122
|
message: error.message,
|
|
123
123
|
});
|
|
124
124
|
}
|
|
125
|
-
}
|
|
126
|
-
getMetadata
|
|
125
|
+
};
|
|
126
|
+
static getMetadata = async (req, res, options) => {
|
|
127
127
|
try {
|
|
128
128
|
if (req && req.headers && req.headers.origin) {
|
|
129
129
|
res.set('Access-Control-Allow-Origin', req.headers.origin);
|
|
@@ -146,7 +146,7 @@ const AtlasSpriteSheetController = {
|
|
|
146
146
|
message: error.message,
|
|
147
147
|
});
|
|
148
148
|
}
|
|
149
|
-
}
|
|
150
|
-
}
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
151
|
|
|
152
152
|
export { AtlasSpriteSheetController };
|
|
@@ -3,9 +3,7 @@
|
|
|
3
3
|
* @module src/api/atlas-sprite-sheet/atlas-sprite-sheet.model.js
|
|
4
4
|
* @namespace CyberiaAtlasSpriteSheetModel
|
|
5
5
|
*/
|
|
6
|
-
|
|
7
6
|
import { Schema, model, Types } from 'mongoose';
|
|
8
|
-
|
|
9
7
|
/**
|
|
10
8
|
* @typedef {Object} FrameMetadata
|
|
11
9
|
* @property {number} x - X position in the atlas
|
|
@@ -25,7 +23,6 @@ const FrameMetadataSchema = new Schema(
|
|
|
25
23
|
},
|
|
26
24
|
{ _id: false },
|
|
27
25
|
);
|
|
28
|
-
|
|
29
26
|
/**
|
|
30
27
|
* @typedef {Object} DirectionFrames
|
|
31
28
|
* @property {FrameMetadata[]} up_idle - Up idle animation frames
|
|
@@ -71,7 +68,6 @@ const DirectionFramesSchema = new Schema(
|
|
|
71
68
|
},
|
|
72
69
|
{ _id: false },
|
|
73
70
|
);
|
|
74
|
-
|
|
75
71
|
/**
|
|
76
72
|
* @typedef {Object} AtlasSpriteSheet
|
|
77
73
|
* @property {Types.ObjectId} fileId - Reference to File document (consolidated PNG)
|
|
@@ -81,6 +77,7 @@ const DirectionFramesSchema = new Schema(
|
|
|
81
77
|
* @property {number} metadata.atlasWidth - Total atlas width in pixels
|
|
82
78
|
* @property {number} metadata.atlasHeight - Total atlas height in pixels
|
|
83
79
|
* @property {number} metadata.cellPixelDim - Pixel dimension of each cell
|
|
80
|
+
* @property {number} metadata.frame_duration - Duration of each frame in milliseconds
|
|
84
81
|
* @property {DirectionFrames} metadata.frames - Frame positions in atlas by direction
|
|
85
82
|
* @property {Date} createdAt - When the document was created
|
|
86
83
|
* @property {Date} updatedAt - When the document was last updated
|
|
@@ -103,6 +100,7 @@ const AtlasSpriteSheetSchema = new Schema(
|
|
|
103
100
|
atlasWidth: { type: Number, required: true, min: 1 },
|
|
104
101
|
atlasHeight: { type: Number, required: true, min: 1 },
|
|
105
102
|
cellPixelDim: { type: Number, required: true, min: 1, default: 20 },
|
|
103
|
+
frame_duration: { type: Number, min: 0, default: 100 },
|
|
106
104
|
frames: { type: DirectionFramesSchema, required: true },
|
|
107
105
|
},
|
|
108
106
|
},
|
|
@@ -112,24 +110,19 @@ const AtlasSpriteSheetSchema = new Schema(
|
|
|
112
110
|
toObject: { virtuals: true },
|
|
113
111
|
},
|
|
114
112
|
);
|
|
115
|
-
|
|
116
113
|
// Indexes for efficient querying
|
|
117
114
|
AtlasSpriteSheetSchema.index({ 'metadata.itemKey': 1 }, { unique: true });
|
|
118
115
|
AtlasSpriteSheetSchema.index({ fileId: 1 });
|
|
119
|
-
|
|
120
116
|
// Pre-save validation
|
|
121
117
|
AtlasSpriteSheetSchema.pre('save', function () {
|
|
122
118
|
if (!this.fileId || !this.metadata) {
|
|
123
119
|
throw new Error('AtlasSpriteSheet missing required fields: fileId or metadata');
|
|
124
120
|
}
|
|
125
121
|
});
|
|
126
|
-
|
|
127
122
|
const AtlasSpriteSheetModel = model('AtlasSpriteSheet', AtlasSpriteSheetSchema);
|
|
128
|
-
|
|
129
123
|
const ProviderSchema = AtlasSpriteSheetSchema;
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
select: {
|
|
124
|
+
class AtlasSpriteSheetDto {
|
|
125
|
+
static select = {
|
|
133
126
|
get: () => {
|
|
134
127
|
return {
|
|
135
128
|
_id: 1,
|
|
@@ -151,12 +144,12 @@ const AtlasSpriteSheetDto = {
|
|
|
151
144
|
'metadata.atlasWidth': 1,
|
|
152
145
|
'metadata.atlasHeight': 1,
|
|
153
146
|
'metadata.cellPixelDim': 1,
|
|
147
|
+
'metadata.frame_duration': 1,
|
|
154
148
|
'metadata.frames': 1,
|
|
155
149
|
createdAt: 1,
|
|
156
150
|
updatedAt: 1,
|
|
157
151
|
};
|
|
158
152
|
},
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
|
|
153
|
+
};
|
|
154
|
+
}
|
|
162
155
|
export { AtlasSpriteSheetSchema, AtlasSpriteSheetModel, ProviderSchema, AtlasSpriteSheetDto };
|
|
@@ -4,39 +4,44 @@ import express from 'express';
|
|
|
4
4
|
|
|
5
5
|
const logger = loggerFactory(import.meta);
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
async (req, res) => await AtlasSpriteSheetController.
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
7
|
+
class AtlasSpriteSheetRouter {
|
|
8
|
+
/**
|
|
9
|
+
* @param {import('../types.js').RouterOptions} options
|
|
10
|
+
* @returns {import('express').Router}
|
|
11
|
+
*/
|
|
12
|
+
static router(options) {
|
|
13
|
+
const router = express.Router();
|
|
14
|
+
router.post(
|
|
15
|
+
`/generate/:id`,
|
|
16
|
+
options.authMiddleware,
|
|
17
|
+
async (req, res) => await AtlasSpriteSheetController.generate(req, res, options),
|
|
18
|
+
);
|
|
19
|
+
router.delete(
|
|
20
|
+
`/object-layer/:id`,
|
|
21
|
+
options.authMiddleware,
|
|
22
|
+
async (req, res) => await AtlasSpriteSheetController.deleteByObjectLayerId(req, res, options),
|
|
23
|
+
);
|
|
24
|
+
router.post(`/:id`, options.authMiddleware, async (req, res) => await AtlasSpriteSheetController.post(req, res, options));
|
|
25
|
+
router.post(`/`, options.authMiddleware, async (req, res) => await AtlasSpriteSheetController.post(req, res, options));
|
|
26
|
+
router.get(`/blob/:itemKey`, async (req, res) => await AtlasSpriteSheetController.blob(req, res, options));
|
|
27
|
+
// Metadata endpoints: returns itemKey, atlasWidth, atlasHeight, cellPixelDim, frames (no fileId).
|
|
28
|
+
// Client fetches /metadata/:itemKey once, caches it, then fetches /blob/:itemKey for the PNG.
|
|
29
|
+
router.get(`/metadata/:itemKey`, async (req, res) => await AtlasSpriteSheetController.getMetadata(req, res, options));
|
|
30
|
+
router.get(`/metadata`, async (req, res) => await AtlasSpriteSheetController.getMetadata(req, res, options));
|
|
31
|
+
router.get(
|
|
32
|
+
`/:id`,
|
|
33
|
+
// options.authMiddleware,
|
|
34
|
+
async (req, res) => await AtlasSpriteSheetController.get(req, res, options),
|
|
35
|
+
);
|
|
36
|
+
router.get(`/`, async (req, res) => await AtlasSpriteSheetController.get(req, res, options));
|
|
37
|
+
router.put(`/:id`, options.authMiddleware, async (req, res) => await AtlasSpriteSheetController.put(req, res, options));
|
|
38
|
+
router.put(`/`, options.authMiddleware, async (req, res) => await AtlasSpriteSheetController.put(req, res, options));
|
|
39
|
+
router.delete(`/:id`, options.authMiddleware, async (req, res) => await AtlasSpriteSheetController.delete(req, res, options));
|
|
40
|
+
router.delete(`/`, options.authMiddleware, async (req, res) => await AtlasSpriteSheetController.delete(req, res, options));
|
|
41
|
+
return router;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
39
44
|
|
|
40
|
-
const ApiRouter = AtlasSpriteSheetRouter;
|
|
45
|
+
const ApiRouter = (options) => AtlasSpriteSheetRouter.router(options);
|
|
41
46
|
|
|
42
47
|
export { ApiRouter, AtlasSpriteSheetRouter };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DataBaseProviderService } from '../../db/DataBaseProvider.js';
|
|
2
2
|
import { loggerFactory } from '../../server/logger.js';
|
|
3
3
|
import { DataQuery } from '../../server/data-query.js';
|
|
4
4
|
import { AtlasSpriteSheetGenerator } from '../../server/atlas-sprite-sheet-generator.js';
|
|
@@ -8,14 +8,56 @@ import { IpfsClient } from '../../server/ipfs-client.js';
|
|
|
8
8
|
import { createPinRecord, removePinRecordsAndUnpin } from '../ipfs/ipfs.service.js';
|
|
9
9
|
|
|
10
10
|
const logger = loggerFactory(import.meta);
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
const DEFAULT_ATLAS_FRAME_DURATION = 100;
|
|
12
|
+
|
|
13
|
+
function parseAtlasFrameDuration(value) {
|
|
14
|
+
const frameDuration = Number(value);
|
|
15
|
+
return Number.isFinite(frameDuration) ? frameDuration : null;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
async function resolveAtlasFrameDuration(ObjectLayer, itemKey) {
|
|
19
|
+
if (!itemKey) return DEFAULT_ATLAS_FRAME_DURATION;
|
|
20
|
+
|
|
21
|
+
const objectLayer = await ObjectLayer.findOne({ 'data.item.id': itemKey })
|
|
22
|
+
.select({ _id: 1, objectLayerRenderFramesId: 1 })
|
|
23
|
+
.populate('objectLayerRenderFramesId', { _id: 1, frame_duration: 1 })
|
|
24
|
+
.lean();
|
|
25
|
+
|
|
26
|
+
return (
|
|
27
|
+
parseAtlasFrameDuration(objectLayer?.objectLayerRenderFramesId?.frame_duration) || DEFAULT_ATLAS_FRAME_DURATION
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
async function withResolvedAtlasFrameDuration(doc, ObjectLayer) {
|
|
32
|
+
if (!doc?.metadata) return doc;
|
|
33
|
+
|
|
34
|
+
const frameDuration = parseAtlasFrameDuration(doc.metadata.frame_duration);
|
|
35
|
+
if (frameDuration !== null) {
|
|
36
|
+
return {
|
|
37
|
+
...doc,
|
|
38
|
+
metadata: {
|
|
39
|
+
...doc.metadata,
|
|
40
|
+
frame_duration: frameDuration,
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return {
|
|
46
|
+
...doc,
|
|
47
|
+
metadata: {
|
|
48
|
+
...doc.metadata,
|
|
49
|
+
frame_duration: await resolveAtlasFrameDuration(ObjectLayer, doc.metadata.itemKey),
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
class AtlasSpriteSheetService {
|
|
55
|
+
static blob = async (req, res, options) => {
|
|
14
56
|
/** @type {import('./atlas-sprite-sheet.model.js').AtlasSpriteSheetModel} */
|
|
15
57
|
const AtlasSpriteSheet =
|
|
16
|
-
|
|
58
|
+
DataBaseProviderService.getModel("AtlasSpriteSheet", options);
|
|
17
59
|
/** @type {import('../file/file.model.js').FileModel} */
|
|
18
|
-
const File =
|
|
60
|
+
const File = DataBaseProviderService.getModel("File", options);
|
|
19
61
|
|
|
20
62
|
const itemKey = req.params.itemKey;
|
|
21
63
|
const atlasDoc = await AtlasSpriteSheet.findOne({ 'metadata.itemKey': itemKey }).lean();
|
|
@@ -25,15 +67,15 @@ const AtlasSpriteSheetService = {
|
|
|
25
67
|
if (!fileDoc || !fileDoc.data) throw new Error(`File not found for atlas itemKey: ${itemKey}`);
|
|
26
68
|
|
|
27
69
|
return { buffer: Buffer.from(fileDoc.data), mimetype: fileDoc.mimetype || 'image/png', name: fileDoc.name };
|
|
28
|
-
}
|
|
29
|
-
generate
|
|
70
|
+
};
|
|
71
|
+
static generate = async (req, res, options, generateOptions = {}) => {
|
|
30
72
|
/** @type {import('../object-layer/object-layer.model.js').ObjectLayerModel} */
|
|
31
|
-
const ObjectLayer =
|
|
73
|
+
const ObjectLayer = DataBaseProviderService.getModel("ObjectLayer", options);
|
|
32
74
|
/** @type {import('../file/file.model.js').FileModel} */
|
|
33
|
-
const File =
|
|
75
|
+
const File = DataBaseProviderService.getModel("File", options);
|
|
34
76
|
/** @type {import('./atlas-sprite-sheet.model.js').AtlasSpriteSheetModel} */
|
|
35
77
|
const AtlasSpriteSheet =
|
|
36
|
-
|
|
78
|
+
DataBaseProviderService.getModel("AtlasSpriteSheet", options);
|
|
37
79
|
|
|
38
80
|
let objectLayer = req.objectLayer;
|
|
39
81
|
|
|
@@ -150,15 +192,15 @@ const AtlasSpriteSheetService = {
|
|
|
150
192
|
await objectLayer.save();
|
|
151
193
|
|
|
152
194
|
return atlasDoc;
|
|
153
|
-
}
|
|
154
|
-
deleteByObjectLayerId
|
|
195
|
+
};
|
|
196
|
+
static deleteByObjectLayerId = async (req, res, options) => {
|
|
155
197
|
/** @type {import('../object-layer/object-layer.model.js').ObjectLayerModel} */
|
|
156
|
-
const ObjectLayer =
|
|
198
|
+
const ObjectLayer = DataBaseProviderService.getModel("ObjectLayer", options);
|
|
157
199
|
/** @type {import('../file/file.model.js').FileModel} */
|
|
158
|
-
const File =
|
|
200
|
+
const File = DataBaseProviderService.getModel("File", options);
|
|
159
201
|
/** @type {import('./atlas-sprite-sheet.model.js').AtlasSpriteSheetModel} */
|
|
160
202
|
const AtlasSpriteSheet =
|
|
161
|
-
|
|
203
|
+
DataBaseProviderService.getModel("AtlasSpriteSheet", options);
|
|
162
204
|
|
|
163
205
|
const objectLayer = await ObjectLayer.findById(req.params.id);
|
|
164
206
|
if (!objectLayer) {
|
|
@@ -209,17 +251,17 @@ const AtlasSpriteSheetService = {
|
|
|
209
251
|
}
|
|
210
252
|
|
|
211
253
|
return { success: true };
|
|
212
|
-
}
|
|
213
|
-
post
|
|
254
|
+
};
|
|
255
|
+
static post = async (req, res, options) => {
|
|
214
256
|
/** @type {import('./atlas-sprite-sheet.model.js').AtlasSpriteSheetModel} */
|
|
215
257
|
const AtlasSpriteSheet =
|
|
216
|
-
|
|
258
|
+
DataBaseProviderService.getModel("AtlasSpriteSheet", options);
|
|
217
259
|
return await new AtlasSpriteSheet(req.body).save();
|
|
218
|
-
}
|
|
219
|
-
get
|
|
260
|
+
};
|
|
261
|
+
static get = async (req, res, options) => {
|
|
220
262
|
/** @type {import('./atlas-sprite-sheet.model.js').AtlasSpriteSheetModel} */
|
|
221
263
|
const AtlasSpriteSheet =
|
|
222
|
-
|
|
264
|
+
DataBaseProviderService.getModel("AtlasSpriteSheet", options);
|
|
223
265
|
if (req.params.id)
|
|
224
266
|
return await AtlasSpriteSheet.findById(req.params.id)
|
|
225
267
|
.select(AtlasSpriteSheetDto.select.get())
|
|
@@ -240,20 +282,22 @@ const AtlasSpriteSheetService = {
|
|
|
240
282
|
|
|
241
283
|
const totalPages = Math.ceil(total / limit);
|
|
242
284
|
return { data, total, page, totalPages };
|
|
243
|
-
}
|
|
285
|
+
};
|
|
244
286
|
// Returns atlas metadata (layout + frames) for the client.
|
|
245
287
|
// Client fetches this once per itemKey, caches it, then fetches the PNG blob.
|
|
246
|
-
getMetadata
|
|
288
|
+
static getMetadata = async (req, res, options) => {
|
|
289
|
+
/** @type {import('../object-layer/object-layer.model.js').ObjectLayerModel} */
|
|
290
|
+
const ObjectLayer = DataBaseProviderService.getModel("ObjectLayer", options);
|
|
247
291
|
/** @type {import('./atlas-sprite-sheet.model.js').AtlasSpriteSheetModel} */
|
|
248
292
|
const AtlasSpriteSheet =
|
|
249
|
-
|
|
293
|
+
DataBaseProviderService.getModel("AtlasSpriteSheet", options);
|
|
250
294
|
|
|
251
295
|
if (req.params.itemKey) {
|
|
252
296
|
const doc = await AtlasSpriteSheet.findOne({ 'metadata.itemKey': req.params.itemKey })
|
|
253
297
|
.select(AtlasSpriteSheetDto.select.getMetadataOnly())
|
|
254
298
|
.lean();
|
|
255
299
|
if (!doc) throw new Error(`Atlas not found for itemKey: ${req.params.itemKey}`);
|
|
256
|
-
return doc;
|
|
300
|
+
return await withResolvedAtlasFrameDuration(doc, ObjectLayer);
|
|
257
301
|
}
|
|
258
302
|
|
|
259
303
|
const { query, sort, skip, limit, page } = DataQuery.parse(req.query);
|
|
@@ -269,20 +313,31 @@ const AtlasSpriteSheetService = {
|
|
|
269
313
|
]);
|
|
270
314
|
|
|
271
315
|
const totalPages = Math.ceil(total / limit);
|
|
272
|
-
return {
|
|
273
|
-
|
|
274
|
-
|
|
316
|
+
return {
|
|
317
|
+
data: data.map((doc) => ({
|
|
318
|
+
...doc,
|
|
319
|
+
metadata: {
|
|
320
|
+
...doc.metadata,
|
|
321
|
+
frame_duration: parseAtlasFrameDuration(doc?.metadata?.frame_duration) || DEFAULT_ATLAS_FRAME_DURATION,
|
|
322
|
+
},
|
|
323
|
+
})),
|
|
324
|
+
total,
|
|
325
|
+
page,
|
|
326
|
+
totalPages,
|
|
327
|
+
};
|
|
328
|
+
};
|
|
329
|
+
static put = async (req, res, options) => {
|
|
275
330
|
/** @type {import('./atlas-sprite-sheet.model.js').AtlasSpriteSheetModel} */
|
|
276
331
|
const AtlasSpriteSheet =
|
|
277
|
-
|
|
332
|
+
DataBaseProviderService.getModel("AtlasSpriteSheet", options);
|
|
278
333
|
return await AtlasSpriteSheet.findByIdAndUpdate(req.params.id, req.body);
|
|
279
|
-
}
|
|
280
|
-
delete
|
|
334
|
+
};
|
|
335
|
+
static delete = async (req, res, options) => {
|
|
281
336
|
/** @type {import('./atlas-sprite-sheet.model.js').AtlasSpriteSheetModel} */
|
|
282
337
|
const AtlasSpriteSheet =
|
|
283
|
-
|
|
338
|
+
DataBaseProviderService.getModel("AtlasSpriteSheet", options);
|
|
284
339
|
/** @type {import('../file/file.model.js').FileModel} */
|
|
285
|
-
const File =
|
|
340
|
+
const File = DataBaseProviderService.getModel("File", options);
|
|
286
341
|
|
|
287
342
|
if (req.params.id) {
|
|
288
343
|
const atlasDoc = await AtlasSpriteSheet.findById(req.params.id);
|
|
@@ -329,7 +384,7 @@ const AtlasSpriteSheetService = {
|
|
|
329
384
|
}
|
|
330
385
|
return await AtlasSpriteSheet.deleteMany();
|
|
331
386
|
}
|
|
332
|
-
}
|
|
333
|
-
}
|
|
387
|
+
};
|
|
388
|
+
}
|
|
334
389
|
|
|
335
390
|
export { AtlasSpriteSheetService };
|
|
@@ -3,8 +3,8 @@ import { CoreService } from './core.service.js';
|
|
|
3
3
|
|
|
4
4
|
const logger = loggerFactory(import.meta);
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
post
|
|
6
|
+
class CoreController {
|
|
7
|
+
static post = async (req, res, options) => {
|
|
8
8
|
try {
|
|
9
9
|
const result = await CoreService.post(req, res, options);
|
|
10
10
|
return res.status(200).json({
|
|
@@ -18,8 +18,8 @@ const CoreController = {
|
|
|
18
18
|
message: error.message,
|
|
19
19
|
});
|
|
20
20
|
}
|
|
21
|
-
}
|
|
22
|
-
get
|
|
21
|
+
};
|
|
22
|
+
static get = async (req, res, options) => {
|
|
23
23
|
try {
|
|
24
24
|
const result = await CoreService.put(req, res, options);
|
|
25
25
|
return res.status(200).json({
|
|
@@ -33,8 +33,8 @@ const CoreController = {
|
|
|
33
33
|
message: error.message,
|
|
34
34
|
});
|
|
35
35
|
}
|
|
36
|
-
}
|
|
37
|
-
put
|
|
36
|
+
};
|
|
37
|
+
static put = async (req, res, options) => {
|
|
38
38
|
try {
|
|
39
39
|
const result = await CoreService.get(req, res, options);
|
|
40
40
|
return res.status(200).json({
|
|
@@ -48,8 +48,8 @@ const CoreController = {
|
|
|
48
48
|
message: error.message,
|
|
49
49
|
});
|
|
50
50
|
}
|
|
51
|
-
}
|
|
52
|
-
delete
|
|
51
|
+
};
|
|
52
|
+
static delete = async (req, res, options) => {
|
|
53
53
|
try {
|
|
54
54
|
const result = await CoreService.delete(req, res, options);
|
|
55
55
|
return res.status(200).json({
|
|
@@ -63,7 +63,7 @@ const CoreController = {
|
|
|
63
63
|
message: error.message,
|
|
64
64
|
});
|
|
65
65
|
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
68
|
|
|
69
69
|
export { CoreController };
|
|
@@ -5,20 +5,25 @@ import express from 'express';
|
|
|
5
5
|
|
|
6
6
|
const logger = loggerFactory(import.meta);
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
router
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
8
|
+
class CoreRouter {
|
|
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(`/:id`, options.authMiddleware, adminGuard, async (req, res) => await CoreController.post(req, res, options));
|
|
16
|
+
router.post(`/`, options.authMiddleware, adminGuard, async (req, res) => await CoreController.post(req, res, options));
|
|
17
|
+
router.get(`/:id`, options.authMiddleware, adminGuard, async (req, res) => await CoreController.get(req, res, options));
|
|
18
|
+
router.get(`/`, options.authMiddleware, adminGuard, async (req, res) => await CoreController.get(req, res, options));
|
|
19
|
+
router.put(`/:id`, options.authMiddleware, adminGuard, async (req, res) => await CoreController.put(req, res, options));
|
|
20
|
+
router.put(`/`, options.authMiddleware, adminGuard, async (req, res) => await CoreController.put(req, res, options));
|
|
21
|
+
router.delete(`/:id`, options.authMiddleware, adminGuard, async (req, res) => await CoreController.delete(req, res, options));
|
|
22
|
+
router.delete(`/`, options.authMiddleware, adminGuard, async (req, res) => await CoreController.delete(req, res, options));
|
|
23
|
+
return router;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
21
26
|
|
|
22
|
-
const ApiRouter = CoreRouter;
|
|
27
|
+
const ApiRouter = (options) => CoreRouter.router(options);
|
|
23
28
|
|
|
24
29
|
export { ApiRouter, CoreRouter };
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DataBaseProviderService } from '../../db/DataBaseProvider.js';
|
|
2
2
|
import { loggerFactory } from '../../server/logger.js';
|
|
3
3
|
import { shellExec } from '../../server/process.js';
|
|
4
4
|
|
|
5
5
|
const logger = loggerFactory(import.meta);
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
post
|
|
7
|
+
class CoreService {
|
|
8
|
+
static post = async (req, res, options) => {
|
|
9
9
|
/** @type {import('./core.model.js').CoreModel} */
|
|
10
|
-
const Core =
|
|
10
|
+
const Core = DataBaseProviderService.getModel("Core", options);
|
|
11
11
|
return await new Core(req.body).save();
|
|
12
|
-
}
|
|
13
|
-
get
|
|
12
|
+
};
|
|
13
|
+
static get = async (req, res, options) => {
|
|
14
14
|
/** @type {import('./core.model.js').CoreModel} */
|
|
15
|
-
const Core =
|
|
15
|
+
const Core = DataBaseProviderService.getModel("Core", options);
|
|
16
16
|
return await Core.findById(req.params.id);
|
|
17
|
-
}
|
|
18
|
-
put
|
|
17
|
+
};
|
|
18
|
+
static put = async (req, res, options) => {
|
|
19
19
|
/** @type {import('./core.model.js').CoreModel} */
|
|
20
|
-
const Core =
|
|
20
|
+
const Core = DataBaseProviderService.getModel("Core", options);
|
|
21
21
|
return await Core.findByIdAndUpdate(req.params.id, req.body);
|
|
22
|
-
}
|
|
23
|
-
delete
|
|
22
|
+
};
|
|
23
|
+
static delete = async (req, res, options) => {
|
|
24
24
|
/** @type {import('./core.model.js').CoreModel} */
|
|
25
|
-
const Core =
|
|
25
|
+
const Core = DataBaseProviderService.getModel("Core", options);
|
|
26
26
|
return await Core.findByIdAndDelete(req.params.id);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
29
|
|
|
30
30
|
export { CoreService };
|
|
@@ -2,8 +2,8 @@ import { loggerFactory } from '../../server/logger.js';
|
|
|
2
2
|
import { CryptoService } from './crypto.service.js';
|
|
3
3
|
const logger = loggerFactory(import.meta);
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
post
|
|
5
|
+
class CryptoController {
|
|
6
|
+
static post = async (req, res, options) => {
|
|
7
7
|
try {
|
|
8
8
|
return res.status(200).json({
|
|
9
9
|
status: 'success',
|
|
@@ -16,8 +16,8 @@ const CryptoController = {
|
|
|
16
16
|
message: error.message,
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
|
-
}
|
|
20
|
-
get
|
|
19
|
+
};
|
|
20
|
+
static get = async (req, res, options) => {
|
|
21
21
|
try {
|
|
22
22
|
return res.status(200).json({
|
|
23
23
|
status: 'success',
|
|
@@ -30,8 +30,8 @@ const CryptoController = {
|
|
|
30
30
|
message: error.message,
|
|
31
31
|
});
|
|
32
32
|
}
|
|
33
|
-
}
|
|
34
|
-
delete
|
|
33
|
+
};
|
|
34
|
+
static delete = async (req, res, options) => {
|
|
35
35
|
try {
|
|
36
36
|
const result = await CryptoService.delete(req, res, options);
|
|
37
37
|
return res.status(200).json({
|
|
@@ -45,7 +45,7 @@ const CryptoController = {
|
|
|
45
45
|
message: error.message,
|
|
46
46
|
});
|
|
47
47
|
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
50
|
|
|
51
51
|
export { CryptoController };
|