cyberia 3.2.5 → 3.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/engine-cyberia.cd.yml +2 -2
- package/.github/workflows/release.cd.yml +1 -2
- package/CHANGELOG.md +351 -1
- package/CLI-HELP.md +40 -13
- package/Dockerfile +0 -4
- package/README.md +242 -497
- package/bin/build.js +19 -5
- package/bin/cyberia.js +1149 -240
- package/bin/deploy.js +570 -1
- package/bin/file.js +6 -0
- package/bin/index.js +1149 -240
- package/bin/vs.js +1 -1
- package/conf.js +67 -89
- package/deployment.yaml +4 -222
- package/hardhat/package-lock.json +32 -32
- package/hardhat/package.json +3 -3
- 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 +4 -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 +136 -66
- package/manifests/deployment/dd-test-development/proxy.yaml +41 -5
- package/package.json +23 -14
- package/proxy.yaml +10 -118
- package/scripts/k3s-node-setup.sh +2 -2
- 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.service.js +76 -21
- package/src/api/core/core.controller.js +10 -10
- package/src/api/core/core.service.js +10 -10
- package/src/api/crypto/crypto.controller.js +8 -8
- package/src/api/crypto/crypto.service.js +8 -8
- 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 +27 -0
- package/src/api/cyberia-action/cyberia-action.service.js +42 -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 +2 -2
- package/src/api/cyberia-dialogue/cyberia-dialogue.service.js +16 -16
- package/src/api/cyberia-entity/cyberia-entity.controller.js +10 -10
- package/src/api/cyberia-entity/cyberia-entity.service.js +10 -10
- package/src/api/cyberia-instance/cyberia-fallback-world.js +19 -209
- 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.service.js +22 -57
- 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.defaults.js +216 -55
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.model.js +4 -1
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.service.js +18 -14
- package/src/api/cyberia-map/cyberia-map.controller.js +10 -10
- package/src/api/cyberia-map/cyberia-map.service.js +10 -10
- 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 +27 -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 +27 -0
- package/src/api/cyberia-quest-progress/cyberia-quest-progress.service.js +42 -0
- package/src/api/default/default.controller.js +10 -10
- package/src/api/default/default.service.js +10 -10
- package/src/api/document/document.controller.js +12 -12
- package/src/api/document/document.model.js +10 -16
- package/src/api/file/file.controller.js +8 -8
- package/src/api/file/file.model.js +10 -10
- package/src/api/file/file.service.js +36 -36
- package/src/api/instance/instance.controller.js +10 -10
- package/src/api/instance/instance.model.js +4 -10
- package/src/api/instance/instance.service.js +10 -10
- package/src/api/ipfs/ipfs.controller.js +12 -12
- package/src/api/ipfs/ipfs.model.js +4 -13
- package/src/api/ipfs/ipfs.service.js +14 -28
- 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.service.js +12 -12
- 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.service.js +18 -14
- package/src/api/test/test.controller.js +8 -8
- package/src/api/test/test.service.js +8 -8
- package/src/api/user/guest.service.js +99 -0
- package/src/api/user/user.controller.js +6 -6
- package/src/api/user/user.model.js +8 -13
- package/src/api/user/user.service.js +3 -20
- package/src/cli/cluster.js +61 -14
- package/src/cli/db.js +47 -2
- package/src/cli/deploy.js +67 -35
- package/src/cli/fs.js +79 -8
- package/src/cli/image.js +43 -1
- package/src/cli/index.js +26 -1
- package/src/cli/release.js +57 -1
- package/src/cli/repository.js +69 -31
- package/src/cli/run.js +415 -36
- package/src/cli/ssh.js +1 -1
- package/src/cli/static.js +43 -115
- package/src/client/Cryptokoyn.index.js +18 -21
- package/src/client/CyberiaPortal.index.js +19 -23
- package/src/client/Default.index.js +21 -33
- 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 +35 -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 +87 -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 +92 -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 +462 -178
- 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 +25 -125
- 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 +163 -27
- 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-portal/{MenuCyberiaPortal.js → AppShellCyberiaPortal.js} +102 -102
- package/src/client/components/cyberia-portal/CommonCyberiaPortal.js +305 -61
- 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 +443 -0
- package/src/client/public/cyberia-docs/CYBERIA-CLI.md +417 -0
- package/src/client/public/cyberia-docs/CYBERIA-CLIENT.md +313 -0
- package/src/client/public/cyberia-docs/CYBERIA-SERVER.md +260 -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/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-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/offline/Maintenance.js +12 -11
- package/src/client/ssr/offline/NoNetworkConnection.js +3 -3
- package/src/client/ssr/pages/Test.js +2 -2
- package/src/client/sw/core.sw.js +212 -0
- package/src/grpc/cyberia/grpc-server.js +179 -67
- package/src/index.js +1 -1
- package/src/runtime/cyberia-client/Dockerfile +80 -0
- package/src/runtime/cyberia-server/Dockerfile +37 -0
- package/src/runtime/express/Dockerfile +4 -4
- package/src/runtime/lampp/Dockerfile +8 -7
- package/src/runtime/wp/Dockerfile +11 -17
- package/src/server/atlas-sprite-sheet-generator.js +4 -2
- package/src/server/client-build-docs.js +45 -46
- package/src/server/client-build.js +334 -60
- package/src/server/client-formatted.js +47 -16
- package/src/server/conf.js +5 -4
- 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 +13 -27
- 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 +17 -3
- package/src/server/valkey.js +141 -235
- 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/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/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/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/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
package/scripts/nat-iptables.sh
CHANGED
|
@@ -1,26 +1,111 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
set -euo pipefail
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
sudo systemctl
|
|
6
|
-
sudo systemctl disable --now ufw
|
|
7
|
-
sudo systemctl disable --now firewalld
|
|
4
|
+
echo "[INFO] Enabling firewalld..."
|
|
5
|
+
sudo systemctl enable --now firewalld
|
|
8
6
|
|
|
7
|
+
echo "[INFO] Configuring kernel networking..."
|
|
9
8
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
echo "net.ipv6.conf.all.forwarding = 1" | sudo tee -a /etc/sysctl.conf
|
|
15
|
-
# ---
|
|
9
|
+
sudo tee /etc/sysctl.d/99-kubernetes.conf >/dev/null <<'EOF'
|
|
10
|
+
# Kubernetes networking
|
|
11
|
+
net.ipv4.ip_forward = 1
|
|
12
|
+
net.ipv6.conf.all.forwarding = 1
|
|
16
13
|
|
|
17
|
-
|
|
14
|
+
# Required for Kubernetes iptables
|
|
15
|
+
net.bridge.bridge-nf-call-iptables = 1
|
|
16
|
+
net.bridge.bridge-nf-call-ip6tables = 1
|
|
18
17
|
|
|
19
|
-
#
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
sudo iptables -P OUTPUT ACCEPT
|
|
18
|
+
# Better conntrack handling
|
|
19
|
+
net.netfilter.nf_conntrack_max = 131072
|
|
20
|
+
EOF
|
|
23
21
|
|
|
24
|
-
#
|
|
25
|
-
sudo
|
|
26
|
-
|
|
22
|
+
# Load br_netfilter immediately
|
|
23
|
+
sudo modprobe br_netfilter
|
|
24
|
+
|
|
25
|
+
# Apply sysctl
|
|
26
|
+
sudo sysctl --system
|
|
27
|
+
|
|
28
|
+
echo "[INFO] Opening common WAN/public services..."
|
|
29
|
+
|
|
30
|
+
# Public services
|
|
31
|
+
sudo firewall-cmd --permanent --zone=public --add-service=ssh
|
|
32
|
+
sudo firewall-cmd --permanent --zone=public --add-service=http
|
|
33
|
+
sudo firewall-cmd --permanent --zone=public --add-service=https
|
|
34
|
+
|
|
35
|
+
echo "[INFO] Opening Kubernetes control plane ports..."
|
|
36
|
+
|
|
37
|
+
# Kubernetes API Server
|
|
38
|
+
sudo firewall-cmd --permanent --zone=public --add-port=6443/tcp
|
|
39
|
+
|
|
40
|
+
# etcd
|
|
41
|
+
sudo firewall-cmd --permanent --zone=public --add-port=2379-2380/tcp
|
|
42
|
+
|
|
43
|
+
# kubelet API
|
|
44
|
+
sudo firewall-cmd --permanent --zone=public --add-port=10250/tcp
|
|
45
|
+
|
|
46
|
+
# kube-scheduler
|
|
47
|
+
sudo firewall-cmd --permanent --zone=public --add-port=10259/tcp
|
|
48
|
+
|
|
49
|
+
# kube-controller-manager
|
|
50
|
+
sudo firewall-cmd --permanent --zone=public --add-port=10257/tcp
|
|
51
|
+
|
|
52
|
+
echo "[INFO] Opening Kubernetes networking ports..."
|
|
53
|
+
|
|
54
|
+
# CoreDNS
|
|
55
|
+
sudo firewall-cmd --permanent --zone=public --add-port=53/tcp
|
|
56
|
+
sudo firewall-cmd --permanent --zone=public --add-port=53/udp
|
|
57
|
+
|
|
58
|
+
# NodePort Services
|
|
59
|
+
sudo firewall-cmd --permanent --zone=public --add-port=30000-32767/tcp
|
|
60
|
+
sudo firewall-cmd --permanent --zone=public --add-port=30000-32767/udp
|
|
61
|
+
|
|
62
|
+
# Calico VXLAN
|
|
63
|
+
sudo firewall-cmd --permanent --zone=public --add-port=4789/udp
|
|
64
|
+
|
|
65
|
+
# Calico BGP
|
|
66
|
+
sudo firewall-cmd --permanent --zone=public --add-port=179/tcp
|
|
67
|
+
|
|
68
|
+
# Calico Typha (required for multi-node Calico deployments)
|
|
69
|
+
sudo firewall-cmd --permanent --zone=public --add-port=5473/tcp
|
|
70
|
+
|
|
71
|
+
# Calico WireGuard (optional encrypted overlay)
|
|
72
|
+
sudo firewall-cmd --permanent --zone=public --add-port=51820/udp
|
|
73
|
+
sudo firewall-cmd --permanent --zone=public --add-port=51821/udp
|
|
74
|
+
|
|
75
|
+
# Flannel VXLAN (UDP, required if using Flannel CNI)
|
|
76
|
+
sudo firewall-cmd --permanent --zone=public --add-port=8472/udp
|
|
77
|
+
|
|
78
|
+
# kube-proxy healthz
|
|
79
|
+
sudo firewall-cmd --permanent --zone=public --add-port=10256/tcp
|
|
80
|
+
|
|
81
|
+
# metrics-server
|
|
82
|
+
sudo firewall-cmd --permanent --zone=public --add-port=4443/tcp
|
|
83
|
+
|
|
84
|
+
echo "[INFO] Configuring trusted zone for inter-node pod/service CIDRs..."
|
|
85
|
+
# Allow all traffic from the default pod CIDR and service CIDR so that
|
|
86
|
+
# cross-node pod-to-pod and service routing works without explicit per-port rules.
|
|
87
|
+
sudo firewall-cmd --permanent --zone=trusted --add-source=192.168.0.0/16
|
|
88
|
+
sudo firewall-cmd --permanent --zone=trusted --add-source=10.96.0.0/12
|
|
89
|
+
|
|
90
|
+
echo "[INFO] Enabling masquerade and forwarding..."
|
|
91
|
+
|
|
92
|
+
sudo firewall-cmd --permanent --zone=public --add-masquerade
|
|
93
|
+
|
|
94
|
+
echo "[INFO] Reloading firewall..."
|
|
95
|
+
|
|
96
|
+
sudo firewall-cmd --reload
|
|
97
|
+
|
|
98
|
+
echo
|
|
99
|
+
echo "[INFO] Sysctl status:"
|
|
100
|
+
sudo sysctl \
|
|
101
|
+
net.ipv4.ip_forward \
|
|
102
|
+
net.ipv6.conf.all.forwarding \
|
|
103
|
+
net.bridge.bridge-nf-call-iptables \
|
|
104
|
+
net.bridge.bridge-nf-call-ip6tables
|
|
105
|
+
|
|
106
|
+
echo
|
|
107
|
+
echo "[INFO] Firewall status:"
|
|
108
|
+
sudo firewall-cmd --zone=public --list-all
|
|
109
|
+
|
|
110
|
+
echo
|
|
111
|
+
echo "[INFO] Kubernetes firewall configuration completed."
|
|
@@ -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 };
|
|
@@ -8,9 +8,51 @@ 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
|
DataBaseProvider.instance[`${options.host}${options.path}`].mongoose.models.AtlasSpriteSheet;
|
|
@@ -25,8 +67,8 @@ 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
73
|
const ObjectLayer = DataBaseProvider.instance[`${options.host}${options.path}`].mongoose.models.ObjectLayer;
|
|
32
74
|
/** @type {import('../file/file.model.js').FileModel} */
|
|
@@ -150,8 +192,8 @@ 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
198
|
const ObjectLayer = DataBaseProvider.instance[`${options.host}${options.path}`].mongoose.models.ObjectLayer;
|
|
157
199
|
/** @type {import('../file/file.model.js').FileModel} */
|
|
@@ -209,14 +251,14 @@ 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
|
DataBaseProvider.instance[`${options.host}${options.path}`].mongoose.models.AtlasSpriteSheet;
|
|
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
|
DataBaseProvider.instance[`${options.host}${options.path}`].mongoose.models.AtlasSpriteSheet;
|
|
@@ -240,10 +282,12 @@ 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 = DataBaseProvider.instance[`${options.host}${options.path}`].mongoose.models.ObjectLayer;
|
|
247
291
|
/** @type {import('./atlas-sprite-sheet.model.js').AtlasSpriteSheetModel} */
|
|
248
292
|
const AtlasSpriteSheet =
|
|
249
293
|
DataBaseProvider.instance[`${options.host}${options.path}`].mongoose.models.AtlasSpriteSheet;
|
|
@@ -253,7 +297,7 @@ const AtlasSpriteSheetService = {
|
|
|
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,15 +313,26 @@ 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
|
DataBaseProvider.instance[`${options.host}${options.path}`].mongoose.models.AtlasSpriteSheet;
|
|
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
|
DataBaseProvider.instance[`${options.host}${options.path}`].mongoose.models.AtlasSpriteSheet;
|
|
@@ -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 };
|
|
@@ -4,27 +4,27 @@ 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
10
|
const Core = DataBaseProvider.instance[`${options.host}${options.path}`].mongoose.models.Core;
|
|
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
15
|
const Core = DataBaseProvider.instance[`${options.host}${options.path}`].mongoose.models.Core;
|
|
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
20
|
const Core = DataBaseProvider.instance[`${options.host}${options.path}`].mongoose.models.Core;
|
|
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
25
|
const Core = DataBaseProvider.instance[`${options.host}${options.path}`].mongoose.models.Core;
|
|
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 };
|
|
@@ -3,8 +3,8 @@ import crypto from 'crypto';
|
|
|
3
3
|
import { DataBaseProvider } from '../../db/DataBaseProvider.js';
|
|
4
4
|
const logger = loggerFactory(import.meta);
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
post
|
|
6
|
+
class CryptoService {
|
|
7
|
+
static post = async (req, res, options) => {
|
|
8
8
|
/** @type {import('./crypto.model.js').CryptoModel} */
|
|
9
9
|
const Crypto = DataBaseProvider.instance[`${options.host}${options.path}`].mongoose.models.Crypto;
|
|
10
10
|
/** @type {import('../user/user.model.js').UserModel} */
|
|
@@ -48,17 +48,17 @@ const CryptoService = {
|
|
|
48
48
|
return publicKey;
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
|
-
}
|
|
52
|
-
get
|
|
51
|
+
};
|
|
52
|
+
static get = async (req, res, options) => {
|
|
53
53
|
switch (req.params.id) {
|
|
54
54
|
default:
|
|
55
55
|
}
|
|
56
|
-
}
|
|
57
|
-
delete
|
|
56
|
+
};
|
|
57
|
+
static delete = async (req, res, options) => {
|
|
58
58
|
switch (req.params.id) {
|
|
59
59
|
default:
|
|
60
60
|
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
63
|
|
|
64
64
|
export { CryptoService };
|