cyberia 3.1.3 → 3.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +0 -2
- package/.github/workflows/engine-cyberia.cd.yml +10 -8
- package/.github/workflows/engine-cyberia.ci.yml +12 -29
- package/.github/workflows/ghpkg.ci.yml +4 -4
- package/.github/workflows/npmpkg.ci.yml +28 -11
- package/.github/workflows/publish.ci.yml +21 -2
- package/.github/workflows/pwa-microservices-template-page.cd.yml +4 -5
- package/.github/workflows/pwa-microservices-template-test.ci.yml +3 -3
- package/.github/workflows/release.cd.yml +14 -10
- package/CHANGELOG.md +783 -1
- package/CLI-HELP.md +95 -18
- package/Dockerfile +0 -2
- package/README.md +290 -220
- package/bin/build.js +24 -7
- package/bin/cyberia.js +2838 -252
- package/bin/deploy.js +747 -125
- package/bin/file.js +9 -0
- package/bin/index.js +2838 -252
- package/bin/vs.js +1 -1
- package/conf.js +99 -65
- package/deployment.yaml +18 -164
- package/hardhat/hardhat.config.js +13 -13
- package/hardhat/ignition/modules/ObjectLayerToken.js +1 -1
- package/hardhat/package-lock.json +2559 -5864
- package/hardhat/package.json +14 -23
- package/hardhat/scripts/deployObjectLayerToken.js +1 -1
- package/hardhat/test/ObjectLayerToken.js +4 -2
- package/hardhat/types/ethers-contracts/ObjectLayerToken.ts +690 -0
- package/hardhat/types/ethers-contracts/common.ts +92 -0
- package/hardhat/types/ethers-contracts/factories/ObjectLayerToken__factory.ts +1055 -0
- package/hardhat/types/ethers-contracts/factories/index.ts +4 -0
- package/hardhat/types/ethers-contracts/hardhat.d.ts +47 -0
- package/hardhat/types/ethers-contracts/index.ts +6 -0
- package/jsconfig.json +1 -1
- package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +6 -5
- package/manifests/cronjobs/dd-cron/dd-cron-dns.yaml +6 -5
- package/manifests/deployment/dd-cyberia-development/deployment.yaml +18 -164
- package/manifests/deployment/dd-cyberia-development/proxy.yaml +7 -79
- package/manifests/deployment/dd-default-development/deployment.yaml +2 -6
- package/manifests/deployment/dd-test-development/deployment.yaml +112 -28
- package/manifests/deployment/dd-test-development/proxy.yaml +46 -1
- package/manifests/deployment/playwright/deployment.yaml +1 -1
- package/nodemon.json +1 -1
- package/package.json +39 -24
- package/proxy.yaml +7 -79
- package/scripts/k3s-node-setup.sh +2 -2
- package/scripts/nat-iptables.sh +103 -18
- package/scripts/rhel-grpc-setup.sh +56 -0
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.controller.js +58 -14
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.model.js +23 -14
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.router.js +5 -0
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.service.js +148 -20
- 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 +93 -0
- package/src/api/cyberia-dialogue/cyberia-dialogue.model.js +36 -0
- package/src/api/cyberia-dialogue/cyberia-dialogue.router.js +29 -0
- package/src/api/cyberia-dialogue/cyberia-dialogue.service.js +51 -0
- package/src/api/cyberia-entity/cyberia-entity.controller.js +74 -0
- package/src/api/cyberia-entity/cyberia-entity.model.js +24 -0
- package/src/api/cyberia-entity/cyberia-entity.router.js +27 -0
- package/src/api/cyberia-entity/cyberia-entity.service.js +42 -0
- package/src/api/cyberia-instance/cyberia-fallback-world.js +178 -0
- package/src/api/cyberia-instance/cyberia-instance.controller.js +92 -0
- package/src/api/cyberia-instance/cyberia-instance.model.js +87 -0
- package/src/api/cyberia-instance/cyberia-instance.router.js +63 -0
- package/src/api/cyberia-instance/cyberia-instance.service.js +156 -0
- package/src/api/cyberia-instance/cyberia-portal-connector.js +260 -0
- package/src/api/cyberia-instance/cyberia-world-generator.js +505 -0
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.controller.js +74 -0
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.defaults.js +574 -0
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.model.js +231 -0
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.router.js +27 -0
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.service.js +46 -0
- package/src/api/cyberia-map/cyberia-map.controller.js +79 -0
- package/src/api/cyberia-map/cyberia-map.model.js +30 -0
- package/src/api/cyberia-map/cyberia-map.router.js +40 -0
- package/src/api/cyberia-map/cyberia-map.service.js +74 -0
- 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.ref.json +18 -0
- 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 +15 -36
- package/src/api/ipfs/ipfs.model.js +47 -47
- package/src/api/ipfs/ipfs.router.js +8 -13
- package/src/api/ipfs/ipfs.service.js +67 -129
- 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 +30 -0
- package/src/api/object-layer/object-layer.service.js +126 -43
- 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 +11 -27
- package/src/cli/cluster.js +68 -21
- package/src/cli/db.js +753 -825
- package/src/cli/deploy.js +215 -125
- package/src/cli/env.js +29 -0
- package/src/cli/fs.js +82 -8
- package/src/cli/image.js +43 -1
- package/src/cli/index.js +74 -3
- package/src/cli/kubectl.js +211 -0
- package/src/cli/release.js +340 -0
- package/src/cli/repository.js +475 -74
- package/src/cli/run.js +582 -43
- package/src/cli/secrets.js +73 -0
- package/src/cli/ssh.js +1 -1
- package/src/cli/static.js +43 -115
- package/src/cli/test.js +3 -3
- package/src/client/Cryptokoyn.index.js +18 -22
- package/src/client/CyberiaPortal.index.js +19 -24
- package/src/client/Default.index.js +21 -34
- package/src/client/Itemledger.index.js +20 -27
- package/src/client/Underpost.index.js +19 -24
- 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 +69 -0
- 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 +43 -64
- 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 +194 -96
- 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 +26 -19
- 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 +43 -43
- package/src/client/components/core/LogOut.js +25 -16
- package/src/client/components/core/Modal.js +462 -179
- package/src/client/components/core/NotificationManager.js +14 -18
- package/src/client/components/core/Panel.js +54 -51
- package/src/client/components/core/PanelForm.js +44 -144
- 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 +112 -30
- package/src/client/components/core/SocketIoHandler.js +75 -0
- package/src/client/components/core/Stream.js +143 -95
- 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/Webhook.js +40 -7
- 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} +59 -59
- package/src/client/components/cryptokoyn/AppStoreCryptokoyn.js +5 -0
- package/src/client/components/cryptokoyn/CssCryptokoyn.js +15 -15
- package/src/client/components/cryptokoyn/LogInCryptokoyn.js +9 -7
- package/src/client/components/cryptokoyn/LogOutCryptokoyn.js +8 -6
- 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/cryptokoyn/SocketIoCryptokoyn.js +3 -51
- package/src/client/components/cyberia/InstanceEngineCyberia.js +781 -0
- package/src/client/components/cyberia/MapEngineCyberia.js +1836 -2
- package/src/client/components/cyberia/ObjectLayerEngine.js +19 -0
- package/src/client/components/cyberia/ObjectLayerEngineModal.js +1220 -99
- package/src/client/components/cyberia/ObjectLayerEngineViewer.js +252 -316
- package/src/client/components/cyberia-portal/{MenuCyberiaPortal.js → AppShellCyberiaPortal.js} +136 -103
- package/src/client/components/cyberia-portal/AppStoreCyberiaPortal.js +5 -0
- package/src/client/components/cyberia-portal/CommonCyberiaPortal.js +462 -32
- package/src/client/components/cyberia-portal/CssCyberiaPortal.js +15 -15
- package/src/client/components/cyberia-portal/LogInCyberiaPortal.js +9 -7
- package/src/client/components/cyberia-portal/LogOutCyberiaPortal.js +8 -6
- 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/SocketIoCyberiaPortal.js +3 -49
- package/src/client/components/cyberia-portal/TranslateCyberiaPortal.js +8 -4
- package/src/client/components/default/{MenuDefault.js → AppShellDefault.js} +91 -91
- package/src/client/components/default/AppStoreDefault.js +5 -0
- package/src/client/components/default/CssDefault.js +12 -12
- package/src/client/components/default/LogInDefault.js +9 -7
- package/src/client/components/default/LogOutDefault.js +8 -6
- 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/SocketIoDefault.js +3 -51
- package/src/client/components/default/TranslateDefault.js +3 -3
- package/src/client/components/itemledger/{MenuItemledger.js → AppShellItemledger.js} +59 -59
- package/src/client/components/itemledger/AppStoreItemledger.js +5 -0
- package/src/client/components/itemledger/CssItemledger.js +15 -15
- package/src/client/components/itemledger/LogInItemledger.js +9 -7
- package/src/client/components/itemledger/LogOutItemledger.js +8 -6
- 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/SocketIoItemledger.js +3 -51
- package/src/client/components/itemledger/TranslateItemledger.js +3 -3
- package/src/client/components/underpost/{MenuUnderpost.js → AppShellUnderpost.js} +92 -92
- package/src/client/components/underpost/AppStoreUnderpost.js +5 -0
- 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 +9 -7
- package/src/client/components/underpost/LogOutUnderpost.js +8 -6
- 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/SocketIoUnderpost.js +3 -51
- 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 +35 -55
- 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 +99 -0
- package/src/client/services/cyberia-entity/cyberia-entity.management.js +57 -0
- package/src/client/services/cyberia-entity/cyberia-entity.service.js +99 -0
- package/src/client/services/cyberia-instance/cyberia-instance.management.js +194 -0
- package/src/client/services/cyberia-instance/cyberia-instance.service.js +116 -0
- package/src/client/services/cyberia-instance-conf/cyberia-instance-conf.service.js +99 -0
- package/src/client/services/cyberia-map/cyberia-map.management.js +193 -0
- package/src/client/services/cyberia-map/cyberia-map.service.js +120 -0
- 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 +6 -6
- package/src/client/services/instance/instance.service.js +10 -15
- package/src/client/services/ipfs/ipfs.service.js +14 -40
- package/src/client/services/object-layer/object-layer.management.js +14 -14
- package/src/client/services/object-layer/object-layer.service.js +39 -24
- 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 +6 -6
- 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/CyberiaServerMetrics.js +1 -1
- 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 +642 -0
- package/src/index.js +24 -1
- package/src/runtime/cyberia-client/Dockerfile +80 -0
- package/src/runtime/cyberia-server/Dockerfile +37 -0
- package/src/runtime/express/Dockerfile +5 -1
- package/src/runtime/express/Express.js +18 -1
- package/src/runtime/lampp/Dockerfile +17 -5
- package/src/runtime/lampp/Lampp.js +27 -4
- package/src/runtime/wp/Dockerfile +62 -0
- package/src/runtime/wp/Wp.js +639 -0
- package/src/server/atlas-sprite-sheet-generator.js +4 -2
- package/src/server/auth.js +24 -1
- package/src/server/backup.js +37 -9
- package/src/server/client-build-docs.js +52 -46
- package/src/server/client-build.js +356 -82
- package/src/server/client-formatted.js +140 -57
- package/src/server/conf.js +29 -13
- package/src/server/cron.js +25 -23
- package/src/server/data-query.js +32 -20
- package/src/server/dns.js +24 -1
- package/src/server/ipfs-client.js +253 -89
- package/src/server/object-layer.js +150 -114
- package/src/server/peer.js +8 -0
- package/src/server/process.js +13 -27
- package/src/server/runtime.js +25 -1
- package/src/server/semantic-layer-generator-floor.js +319 -0
- package/src/server/semantic-layer-generator-resource.js +259 -0
- package/src/server/semantic-layer-generator-skin.js +1164 -0
- package/src/server/semantic-layer-generator.js +211 -542
- package/src/server/shape-generator.js +108 -0
- package/src/server/start.js +19 -5
- package/src/server/valkey.js +141 -235
- package/src/ws/IoInterface.js +1 -10
- package/src/ws/IoServer.js +14 -33
- package/src/ws/core/channels/core.ws.chat.js +65 -20
- package/src/ws/core/channels/core.ws.mailer.js +113 -32
- package/src/ws/core/channels/core.ws.stream.js +90 -31
- package/src/ws/core/core.ws.connection.js +12 -33
- package/src/ws/core/core.ws.emit.js +10 -26
- package/src/ws/core/core.ws.server.js +25 -58
- package/src/ws/default/channels/default.ws.main.js +53 -12
- package/src/ws/default/default.ws.connection.js +26 -13
- package/src/ws/default/default.ws.server.js +30 -12
- 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 -59
- package/jsdoc.json +0 -59
- package/src/api/object-layer/README.md +0 -347
- package/src/client/components/core/ColorPalette.js +0 -5267
- package/src/client/components/core/JoyStick.js +0 -80
- package/src/client/components/cryptokoyn/CommonCryptokoyn.js +0 -29
- package/src/client/components/cryptokoyn/ElementsCryptokoyn.js +0 -38
- package/src/client/components/cryptokoyn/RoutesCryptokoyn.js +0 -39
- package/src/client/components/cyberia-portal/ElementsCyberiaPortal.js +0 -38
- package/src/client/components/cyberia-portal/RoutesCyberiaPortal.js +0 -58
- package/src/client/components/cyberia-portal/ServerCyberiaPortal.js +0 -136
- package/src/client/components/default/ElementsDefault.js +0 -38
- package/src/client/components/default/RoutesDefault.js +0 -49
- package/src/client/components/itemledger/CommonItemledger.js +0 -29
- package/src/client/components/itemledger/ElementsItemledger.js +0 -38
- package/src/client/components/itemledger/RoutesItemledger.js +0 -40
- package/src/client/components/underpost/CommonUnderpost.js +0 -29
- package/src/client/components/underpost/ElementsUnderpost.js +0 -38
- 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/ws/core/management/core.ws.chat.js +0 -8
- package/src/ws/core/management/core.ws.mailer.js +0 -16
- package/src/ws/core/management/core.ws.stream.js +0 -8
- package/src/ws/default/management/default.ws.main.js +0 -8
|
@@ -3,7 +3,6 @@ import validator from 'validator';
|
|
|
3
3
|
import { userRoleEnum } from '../../client/components/core/CommonJs.js';
|
|
4
4
|
import crypto from 'crypto';
|
|
5
5
|
// https://mongoosejs.com/docs/2.7.x/docs/schematypes.html
|
|
6
|
-
|
|
7
6
|
const UserSchema = new Schema(
|
|
8
7
|
{
|
|
9
8
|
email: {
|
|
@@ -88,13 +87,10 @@ const UserSchema = new Schema(
|
|
|
88
87
|
timestamps: true,
|
|
89
88
|
},
|
|
90
89
|
);
|
|
91
|
-
|
|
92
90
|
const UserModel = model('User', UserSchema);
|
|
93
|
-
|
|
94
91
|
const ProviderSchema = UserSchema;
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
select: {
|
|
92
|
+
class UserDto {
|
|
93
|
+
static select = {
|
|
98
94
|
get: () => {
|
|
99
95
|
return {
|
|
100
96
|
_id: 1,
|
|
@@ -112,8 +108,8 @@ const UserDto = {
|
|
|
112
108
|
getAll: () => {
|
|
113
109
|
return { _id: 1 };
|
|
114
110
|
},
|
|
115
|
-
}
|
|
116
|
-
public
|
|
111
|
+
};
|
|
112
|
+
static public = {
|
|
117
113
|
get: () => {
|
|
118
114
|
return {
|
|
119
115
|
_id: 1,
|
|
@@ -125,8 +121,8 @@ const UserDto = {
|
|
|
125
121
|
updatedAt: 1,
|
|
126
122
|
};
|
|
127
123
|
},
|
|
128
|
-
}
|
|
129
|
-
auth
|
|
124
|
+
};
|
|
125
|
+
static auth = {
|
|
130
126
|
payload: (user, jwtid, ip, userAgent, host, path) => {
|
|
131
127
|
const tokenPayload = {
|
|
132
128
|
_id: user._id.toString(),
|
|
@@ -141,7 +137,6 @@ const UserDto = {
|
|
|
141
137
|
};
|
|
142
138
|
return tokenPayload;
|
|
143
139
|
},
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
|
|
140
|
+
};
|
|
141
|
+
}
|
|
147
142
|
export { UserSchema, UserModel, userRoleEnum, ProviderSchema, UserDto };
|
|
@@ -9,19 +9,17 @@ import {
|
|
|
9
9
|
refreshSessionAndToken,
|
|
10
10
|
logoutSession,
|
|
11
11
|
jwtSign,
|
|
12
|
-
getBearerToken,
|
|
13
12
|
validatePasswordMiddleware,
|
|
14
13
|
} from '../../server/auth.js';
|
|
15
14
|
import { MailerProvider } from '../../mailer/MailerProvider.js';
|
|
16
|
-
import {
|
|
17
|
-
import { CoreWsEmit } from '../../ws/core/core.ws.emit.js';
|
|
15
|
+
import { CoreWsEmitter } from '../../ws/core/core.ws.emit.js';
|
|
18
16
|
import { CoreWsMailerChannel } from '../../ws/core/channels/core.ws.mailer.js';
|
|
19
17
|
import validator from 'validator';
|
|
20
18
|
import { DataBaseProvider } from '../../db/DataBaseProvider.js';
|
|
21
19
|
import { FileFactory, FileCleanup } from '../file/file.service.js';
|
|
22
20
|
import { UserDto } from './user.model.js';
|
|
23
|
-
import { selectDtoFactory, ValkeyAPI } from '../../server/valkey.js';
|
|
24
21
|
import { timer } from '../../client/components/core/CommonJs.js';
|
|
22
|
+
import { GuestService } from './guest.service.js';
|
|
25
23
|
|
|
26
24
|
const logger = loggerFactory(import.meta);
|
|
27
25
|
|
|
@@ -227,15 +225,7 @@ const UserService = {
|
|
|
227
225
|
} else throw new Error('Invalid credentials');
|
|
228
226
|
|
|
229
227
|
case 'guest': {
|
|
230
|
-
|
|
231
|
-
await ValkeyAPI.setValkeyObject(options, user.email, user);
|
|
232
|
-
return {
|
|
233
|
-
token: jwtSign(
|
|
234
|
-
UserDto.auth.payload(user, null, req.ip, req.headers['user-agent'], options.host, options.path),
|
|
235
|
-
options,
|
|
236
|
-
),
|
|
237
|
-
user: selectDtoFactory(user, UserDto.select.get()),
|
|
238
|
-
};
|
|
228
|
+
return await GuestService.create(req, options);
|
|
239
229
|
}
|
|
240
230
|
|
|
241
231
|
default:
|
|
@@ -319,11 +309,13 @@ const UserService = {
|
|
|
319
309
|
{
|
|
320
310
|
const user = await User.findByIdAndUpdate(_id, { emailConfirmed: true }, { runValidators: true });
|
|
321
311
|
}
|
|
322
|
-
const userWsId =
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
312
|
+
const userWsId = CoreWsMailerChannel.getUserWsId(`${options.host}${options.path}`, user._id.toString());
|
|
313
|
+
if (userWsId && CoreWsMailerChannel.client[userWsId]) {
|
|
314
|
+
CoreWsEmitter.emit(CoreWsMailerChannel.channel, CoreWsMailerChannel.client[userWsId], {
|
|
315
|
+
status: 'email-confirmed',
|
|
316
|
+
id: userWsId,
|
|
317
|
+
});
|
|
318
|
+
}
|
|
327
319
|
options.png.header(res, req);
|
|
328
320
|
return options.png.buffer['check'];
|
|
329
321
|
} else {
|
|
@@ -359,8 +351,7 @@ const UserService = {
|
|
|
359
351
|
case 'auth': {
|
|
360
352
|
let user;
|
|
361
353
|
if (req.auth.user._id.match('guest')) {
|
|
362
|
-
|
|
363
|
-
if (!user) throw new Error('guest user expired');
|
|
354
|
+
return await GuestService.auth(req, options);
|
|
364
355
|
} else
|
|
365
356
|
user = await User.findOne({
|
|
366
357
|
_id: req.auth.user._id,
|
|
@@ -368,13 +359,6 @@ const UserService = {
|
|
|
368
359
|
|
|
369
360
|
if (!user) throw new Error('user not found');
|
|
370
361
|
|
|
371
|
-
const guestUser = await ValkeyAPI.getValkeyObject(options, req.auth.user.email);
|
|
372
|
-
if (guestUser)
|
|
373
|
-
return {
|
|
374
|
-
user: selectDtoFactory(guestUser, UserDto.select.get()),
|
|
375
|
-
token: getBearerToken(req),
|
|
376
|
-
};
|
|
377
|
-
|
|
378
362
|
return {
|
|
379
363
|
token: await refreshSessionAndToken(req, res, User, options),
|
|
380
364
|
user: await User.findOne({
|
package/src/cli/cluster.js
CHANGED
|
@@ -111,7 +111,7 @@ class UnderpostCluster {
|
|
|
111
111
|
const npmRoot = getNpmRootPath();
|
|
112
112
|
const underpostRoot = options.dev ? '.' : `${npmRoot}/underpost`;
|
|
113
113
|
|
|
114
|
-
if (options.listPods) return console.table(Underpost.
|
|
114
|
+
if (options.listPods) return console.table(Underpost.kubectl.get(podName ?? undefined));
|
|
115
115
|
// Set default namespace if not specified
|
|
116
116
|
if (!options.namespace) options.namespace = 'default';
|
|
117
117
|
|
|
@@ -146,10 +146,10 @@ class UnderpostCluster {
|
|
|
146
146
|
}
|
|
147
147
|
|
|
148
148
|
// Check if a cluster (Kind, Kubeadm, or K3s) is already initialized
|
|
149
|
-
const alreadyKubeadmCluster = Underpost.
|
|
150
|
-
const alreadyKindCluster = Underpost.
|
|
149
|
+
const alreadyKubeadmCluster = Underpost.kubectl.get('calico-kube-controllers')[0];
|
|
150
|
+
const alreadyKindCluster = Underpost.kubectl.get('kube-apiserver-kind-control-plane')[0];
|
|
151
151
|
// K3s pods often contain 'svclb-traefik' in the kube-system namespace
|
|
152
|
-
const alreadyK3sCluster = Underpost.
|
|
152
|
+
const alreadyK3sCluster = Underpost.kubectl.get('svclb-traefik')[0];
|
|
153
153
|
|
|
154
154
|
// --- Kubeadm/Kind/K3s Cluster Initialization ---
|
|
155
155
|
if (!alreadyKubeadmCluster && !alreadyKindCluster && !alreadyK3sCluster) {
|
|
@@ -172,9 +172,19 @@ class UnderpostCluster {
|
|
|
172
172
|
const podNetworkCidr = options.podNetworkCidr || '192.168.0.0/16';
|
|
173
173
|
const controlPlaneEndpoint = options.controlPlaneEndpoint || `${os.hostname()}:6443`;
|
|
174
174
|
|
|
175
|
-
// Initialize kubeadm control plane
|
|
175
|
+
// Initialize kubeadm control plane.
|
|
176
|
+
// Use CRI-O socket when available, otherwise fall back to containerd.
|
|
177
|
+
const crioSocket = 'unix:///var/run/crio/crio.sock';
|
|
178
|
+
const containerdSocket = 'unix:///run/containerd/containerd.sock';
|
|
179
|
+
const criSocket =
|
|
180
|
+
shellExec(`test -S /var/run/crio/crio.sock && echo crio || echo containerd`, {
|
|
181
|
+
stdout: true,
|
|
182
|
+
silent: true,
|
|
183
|
+
}).trim() === 'crio'
|
|
184
|
+
? crioSocket
|
|
185
|
+
: containerdSocket;
|
|
176
186
|
shellExec(
|
|
177
|
-
`sudo kubeadm init --pod-network-cidr=${podNetworkCidr} --control-plane-endpoint="${controlPlaneEndpoint}"`,
|
|
187
|
+
`sudo kubeadm init --pod-network-cidr=${podNetworkCidr} --control-plane-endpoint="${controlPlaneEndpoint}" --cri-socket=${criSocket}`,
|
|
178
188
|
);
|
|
179
189
|
// Configure kubectl for the current user
|
|
180
190
|
Underpost.cluster.chown('kubeadm'); // Pass 'kubeadm' to chown
|
|
@@ -299,7 +309,7 @@ EOF
|
|
|
299
309
|
members: [{ _id: 0, host: `${options.mongoDbHost}:27017` }],
|
|
300
310
|
};
|
|
301
311
|
|
|
302
|
-
const [pod] = Underpost.
|
|
312
|
+
const [pod] = Underpost.kubectl.get(deploymentName);
|
|
303
313
|
|
|
304
314
|
shellExec(
|
|
305
315
|
`sudo kubectl exec -i ${pod.NAME} -- mongo --quiet \
|
|
@@ -351,7 +361,7 @@ EOF
|
|
|
351
361
|
}
|
|
352
362
|
|
|
353
363
|
if (options.certManager) {
|
|
354
|
-
if (!Underpost.
|
|
364
|
+
if (!Underpost.kubectl.get('cert-manager').find((p) => p.STATUS === 'Running')) {
|
|
355
365
|
shellExec(`helm repo add jetstack https://charts.jetstack.io --force-update`);
|
|
356
366
|
shellExec(
|
|
357
367
|
`helm install cert-manager jetstack/cert-manager \
|
|
@@ -389,8 +399,17 @@ EOF
|
|
|
389
399
|
);
|
|
390
400
|
shellExec(`rm -f ${tarPath}`);
|
|
391
401
|
} else if (options.kubeadm || options.k3s) {
|
|
392
|
-
// Kubeadm / K3s: use crictl to pull directly into
|
|
393
|
-
|
|
402
|
+
// Kubeadm / K3s: use crictl to pull directly into the active CRI runtime.
|
|
403
|
+
// crictl is not in sudo's secure_path; pass full PATH through env.
|
|
404
|
+
// Point crictl at CRI-O when the socket exists, otherwise fall back to containerd.
|
|
405
|
+
const criSock =
|
|
406
|
+
shellExec(`test -S /var/run/crio/crio.sock && echo crio || echo containerd`, {
|
|
407
|
+
stdout: true,
|
|
408
|
+
silent: true,
|
|
409
|
+
}).trim() === 'crio'
|
|
410
|
+
? 'unix:///var/run/crio/crio.sock'
|
|
411
|
+
: 'unix:///run/containerd/containerd.sock';
|
|
412
|
+
shellExec(`sudo env PATH="$PATH:/usr/local/bin:/usr/bin" crictl --runtime-endpoint ${criSock} pull ${image}`);
|
|
394
413
|
}
|
|
395
414
|
},
|
|
396
415
|
|
|
@@ -453,12 +472,11 @@ net.ipv4.ip_forward = 1' | sudo tee ${iptableConfPath}`,
|
|
|
453
472
|
shellExec(`sudo sysctl -w fs.inotify.max_queued_events=2099999999`);
|
|
454
473
|
|
|
455
474
|
// shellExec(`sudo sysctl --system`); // Apply sysctl changes immediately
|
|
456
|
-
// Apply NAT iptables rules.
|
|
475
|
+
// Apply NAT iptables rules and configure firewalld for Kubernetes.
|
|
476
|
+
// nat-iptables.sh enables firewalld and opens all required ports; do NOT stop it
|
|
477
|
+
// afterwards — keeping firewalld running with these rules is required for
|
|
478
|
+
// multi-machine kubeadm inter-node communication.
|
|
457
479
|
shellExec(`${underpostRoot}/scripts/nat-iptables.sh`, { silent: true });
|
|
458
|
-
|
|
459
|
-
// Disable firewalld (common cause of network issues in Kubernetes)
|
|
460
|
-
shellExec(`sudo systemctl stop firewalld`); // Stop if running
|
|
461
|
-
shellExec(`sudo systemctl disable firewalld`); // Disable from starting on boot
|
|
462
480
|
},
|
|
463
481
|
|
|
464
482
|
/**
|
|
@@ -575,8 +593,10 @@ net.ipv4.ip_forward = 1' | sudo tee ${iptableConfPath}`,
|
|
|
575
593
|
shellExec('sudo systemctl stop kubelet');
|
|
576
594
|
shellExec('sudo systemctl stop docker');
|
|
577
595
|
shellExec('sudo systemctl stop podman');
|
|
578
|
-
//
|
|
579
|
-
shellExec(
|
|
596
|
+
// Lazy-unmount all kubelet pod mounts to avoid 'Device or resource busy' on rm.
|
|
597
|
+
shellExec(
|
|
598
|
+
`sudo sh -c 'findmnt --raw --noheadings -o TARGET | grep /var/lib/kubelet | sort -r | xargs -r umount -l' 2>/dev/null || true`,
|
|
599
|
+
);
|
|
580
600
|
|
|
581
601
|
// Phase 3: Execute official uninstallation commands (type-specific)
|
|
582
602
|
const clusterType = options.clusterType || 'kind';
|
|
@@ -584,6 +604,14 @@ net.ipv4.ip_forward = 1' | sudo tee ${iptableConfPath}`,
|
|
|
584
604
|
`Phase 3/7: Executing official reset/uninstallation commands for cluster type: '${clusterType}'...`,
|
|
585
605
|
);
|
|
586
606
|
if (clusterType === 'kubeadm') {
|
|
607
|
+
// Kill control plane processes that hold ports (6443, 10257, 10259, 2379, 2380)
|
|
608
|
+
// so the next `kubeadm init` does not fail with [ERROR Port-xxxx].
|
|
609
|
+
logger.info(' -> Stopping and killing control plane containers and processes...');
|
|
610
|
+
shellExec('sudo crictl rm -a -f 2>/dev/null || true');
|
|
611
|
+
shellExec('sudo crictl rmp -a -f 2>/dev/null || true');
|
|
612
|
+
shellExec('sudo systemctl stop etcd 2>/dev/null || true');
|
|
613
|
+
for (const port of [6443, 10259, 10257, 2379, 2380])
|
|
614
|
+
shellExec(`sudo fuser -k ${port}/tcp 2>/dev/null || true`);
|
|
587
615
|
logger.info(' -> Executing kubeadm reset...');
|
|
588
616
|
shellExec('sudo kubeadm reset --force');
|
|
589
617
|
} else if (clusterType === 'k3s') {
|
|
@@ -600,7 +628,12 @@ net.ipv4.ip_forward = 1' | sudo tee ${iptableConfPath}`,
|
|
|
600
628
|
// Remove any leftover configurations and data.
|
|
601
629
|
shellExec('sudo rm -rf /etc/kubernetes/*');
|
|
602
630
|
shellExec('sudo rm -rf /etc/cni/net.d/*');
|
|
631
|
+
// Second-pass lazy umount before rm to clear any remaining busy mounts.
|
|
632
|
+
shellExec(
|
|
633
|
+
`sudo sh -c 'findmnt --raw --noheadings -o TARGET | grep /var/lib/kubelet | sort -r | xargs -r umount -l' 2>/dev/null || true`,
|
|
634
|
+
);
|
|
603
635
|
shellExec('sudo rm -rf /var/lib/kubelet/*');
|
|
636
|
+
shellExec('sudo rm -rf /var/lib/etcd');
|
|
604
637
|
shellExec('sudo rm -rf /var/lib/cni/*');
|
|
605
638
|
shellExec('sudo rm -rf /var/lib/docker/*');
|
|
606
639
|
shellExec('sudo rm -rf /var/lib/containerd/*');
|
|
@@ -613,11 +646,14 @@ net.ipv4.ip_forward = 1' | sudo tee ${iptableConfPath}`,
|
|
|
613
646
|
// Remove iptables rules and CNI network interfaces.
|
|
614
647
|
shellExec('sudo iptables -F');
|
|
615
648
|
shellExec('sudo iptables -t nat -F');
|
|
616
|
-
shellExec('sudo ip link del cni0');
|
|
617
|
-
shellExec('sudo ip link del flannel.1');
|
|
649
|
+
shellExec('sudo ip link del cni0 2>/dev/null || true');
|
|
650
|
+
shellExec('sudo ip link del flannel.1 2>/dev/null || true');
|
|
651
|
+
shellExec('sudo ip link del vxlan.calico 2>/dev/null || true');
|
|
652
|
+
shellExec('sudo ip link del tunl0 2>/dev/null || true');
|
|
618
653
|
|
|
619
654
|
logger.info('Phase 6/7: Clean up images');
|
|
620
|
-
shellExec(
|
|
655
|
+
shellExec('sudo podman rmi --all --force 2>/dev/null || true');
|
|
656
|
+
shellExec('sudo crictl rmi --prune 2>/dev/null || true');
|
|
621
657
|
|
|
622
658
|
// Phase 6: Reload daemon and finalize
|
|
623
659
|
logger.info('Phase 7/7: Reloading the system daemon and finalizing...');
|
|
@@ -641,7 +677,7 @@ net.ipv4.ip_forward = 1' | sudo tee ${iptableConfPath}`,
|
|
|
641
677
|
const resources = {};
|
|
642
678
|
const nodeName = node
|
|
643
679
|
? node
|
|
644
|
-
: Underpost.
|
|
680
|
+
: Underpost.kubectl.get('kind-control-plane', 'node').length > 0
|
|
645
681
|
? 'kind-control-plane'
|
|
646
682
|
: os.hostname();
|
|
647
683
|
const info = shellExec(`kubectl describe node ${nodeName} | grep -E '(Allocatable:|Capacity:)' -A 6`, {
|
|
@@ -687,6 +723,9 @@ net.ipv4.ip_forward = 1' | sudo tee ${iptableConfPath}`,
|
|
|
687
723
|
// Install Podman
|
|
688
724
|
shellExec(`sudo dnf -y install podman`);
|
|
689
725
|
|
|
726
|
+
// Install CRI-O (required for kubeadm with CRI-O socket)
|
|
727
|
+
shellExec(`node bin run install-crio`);
|
|
728
|
+
|
|
690
729
|
// Install Kind (Kubernetes in Docker)
|
|
691
730
|
shellExec(`[ $(uname -m) = ${archData.name} ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.29.0/kind-linux-${archData.alias}
|
|
692
731
|
chmod +x ./kind
|
|
@@ -744,6 +783,14 @@ EOF`);
|
|
|
744
783
|
console.log('Removing Podman...');
|
|
745
784
|
shellExec(`sudo dnf -y remove podman`);
|
|
746
785
|
|
|
786
|
+
// Remove CRI-O
|
|
787
|
+
console.log('Removing CRI-O...');
|
|
788
|
+
shellExec(`sudo systemctl stop crio 2>/dev/null || true`);
|
|
789
|
+
shellExec(`sudo systemctl disable crio 2>/dev/null || true`);
|
|
790
|
+
shellExec(`sudo dnf -y remove cri-o`);
|
|
791
|
+
shellExec(`sudo rm -f /etc/yum.repos.d/cri-o.repo`);
|
|
792
|
+
shellExec(`sudo rm -f /etc/crictl.yaml`);
|
|
793
|
+
|
|
747
794
|
// Remove Kubeadm, Kubelet, and Kubectl
|
|
748
795
|
console.log('Removing Kubernetes tools...');
|
|
749
796
|
shellExec(`sudo yum remove -y kubelet kubeadm kubectl`);
|