@underpostnet/cyberia 3.2.80
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/.dockerignore +14 -0
- package/.env.example +144 -0
- package/.github/workflows/cyberia-client.cd.yml +40 -0
- package/.github/workflows/cyberia-server.cd.yml +40 -0
- package/.github/workflows/docker-image.cyberia-client.ci.yml +71 -0
- package/.github/workflows/docker-image.cyberia-client.dev.ci.yml +70 -0
- package/.github/workflows/docker-image.cyberia-server.ci.yml +71 -0
- package/.github/workflows/docker-image.cyberia-server.dev.ci.yml +71 -0
- package/.github/workflows/docker-image.engine-cyberia.ci.yml +53 -0
- package/.github/workflows/docker-image.engine-cyberia.dev.ci.yml +53 -0
- package/.github/workflows/engine-cyberia.cd.yml +157 -0
- package/.github/workflows/engine-cyberia.ci.yml +125 -0
- package/.github/workflows/ghpkg.ci.yml +160 -0
- package/.github/workflows/gitlab.ci.yml +20 -0
- package/.github/workflows/hardhat.ci.yml +82 -0
- package/.github/workflows/npmpkg.ci.yml +126 -0
- package/.github/workflows/publish.ci.yml +87 -0
- package/.github/workflows/publish.cyberia.ci.yml +79 -0
- package/.github/workflows/pwa-microservices-template-page.cd.yml +65 -0
- package/.github/workflows/pwa-microservices-template-test.ci.yml +33 -0
- package/.github/workflows/release.cd.yml +46 -0
- package/.nycrc +9 -0
- package/.prettierignore +12 -0
- package/.prettierrc +9 -0
- package/.vscode/extensions.json +10 -0
- package/.vscode/settings.json +26 -0
- package/CHANGELOG.md +2516 -0
- package/CLI-HELP.md +1099 -0
- package/Dockerfile +161 -0
- package/Dockerfile.dev +161 -0
- package/Dockerfile.test +165 -0
- package/LICENSE +21 -0
- package/README.md +259 -0
- package/baremetal/commission-workflows.json +211 -0
- package/baremetal/packer-workflows.json +24 -0
- package/bin/build.js +261 -0
- package/bin/build.template.js +33 -0
- package/bin/cyberia.js +5627 -0
- package/bin/deploy.js +1547 -0
- package/bin/index.js +5627 -0
- package/bump.config.js +27 -0
- package/compose.env +144 -0
- package/conf.js +952 -0
- package/deployment.yaml +418 -0
- package/docker-compose.yml +434 -0
- package/examples/static-page/README.md +150 -0
- package/examples/static-page/ssr-components/CustomPage.js +554 -0
- package/examples/static-page/static-config-example.json +57 -0
- package/hardhat/.env.example +31 -0
- package/hardhat/contracts/ObjectLayerToken.sol +391 -0
- package/hardhat/deployments/.gitkeep +0 -0
- package/hardhat/deployments/hardhat-ObjectLayerToken.json +11 -0
- package/hardhat/hardhat.config.js +136 -0
- package/hardhat/ignition/modules/.gitkeep +0 -0
- package/hardhat/ignition/modules/ObjectLayerToken.js +21 -0
- package/hardhat/networks/besu-object-layer.network.json +138 -0
- package/hardhat/package-lock.json +2871 -0
- package/hardhat/package.json +43 -0
- package/hardhat/scripts/deployObjectLayerToken.js +98 -0
- package/hardhat/test/ObjectLayerToken.js +696 -0
- 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/ipfs/configure-ipfs.sh +13 -0
- package/jsconfig.json +9 -0
- package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +48 -0
- package/manifests/cronjobs/dd-cron/dd-cron-dns.yaml +48 -0
- package/manifests/deployment/adminer/deployment.yaml +32 -0
- package/manifests/deployment/adminer/kustomization.yaml +7 -0
- package/manifests/deployment/adminer/service.yaml +13 -0
- package/manifests/deployment/dd-cyberia-development/deployment.yaml +418 -0
- package/manifests/deployment/dd-cyberia-development/grpc-service.yaml +17 -0
- package/manifests/deployment/dd-cyberia-development/proxy.yaml +189 -0
- package/manifests/deployment/dd-cyberia-development/pv-pvc.yaml +164 -0
- package/manifests/deployment/dd-default-development/deployment.yaml +163 -0
- package/manifests/deployment/dd-default-development/proxy.yaml +46 -0
- package/manifests/deployment/fastapi/backend-deployment.yml +120 -0
- package/manifests/deployment/fastapi/backend-service.yml +19 -0
- package/manifests/deployment/fastapi/frontend-deployment.yml +54 -0
- package/manifests/deployment/fastapi/frontend-service.yml +15 -0
- package/manifests/deployment/fastapi/initial_data.sh +8 -0
- package/manifests/deployment/kafka/deployment.yaml +67 -0
- package/manifests/deployment/mongo-express/deployment.yaml +62 -0
- package/manifests/deployment/phpmyadmin/deployment.yaml +54 -0
- package/manifests/deployment/playwright/deployment.yaml +52 -0
- package/manifests/deployment/spark/spark-pi-py.yaml +20 -0
- package/manifests/deployment/tensorflow/tf-gpu-test.yaml +63 -0
- package/manifests/envoy-service-nodeport.yaml +22 -0
- package/manifests/grafana/deployment.yaml +64 -0
- package/manifests/grafana/kustomization.yaml +7 -0
- package/manifests/grafana/pvc.yaml +12 -0
- package/manifests/grafana/service.yaml +14 -0
- package/manifests/grafana/storage-class.yaml +9 -0
- package/manifests/ipfs/configmap.yaml +64 -0
- package/manifests/ipfs/headless-service.yaml +35 -0
- package/manifests/ipfs/kustomization.yaml +8 -0
- package/manifests/ipfs/statefulset.yaml +149 -0
- package/manifests/ipfs/storage-class.yaml +9 -0
- package/manifests/kind-config-dev.yaml +20 -0
- package/manifests/kind-config.yaml +12 -0
- package/manifests/kubeadm-calico-config.yaml +14 -0
- package/manifests/letsencrypt-prod.yaml +14 -0
- package/manifests/lxd/lxd-admin-profile.yaml +26 -0
- package/manifests/lxd/lxd-preseed.yaml +30 -0
- package/manifests/mariadb/kustomization.yaml +9 -0
- package/manifests/mariadb/pv.yaml +12 -0
- package/manifests/mariadb/pvc.yaml +10 -0
- package/manifests/mariadb/service.yaml +10 -0
- package/manifests/mariadb/statefulset.yaml +56 -0
- package/manifests/mariadb/storage-class.yaml +10 -0
- package/manifests/mongodb/headless-service.yaml +10 -0
- package/manifests/mongodb/kustomization.yaml +11 -0
- package/manifests/mongodb/pv-pvc.yaml +59 -0
- package/manifests/mongodb/statefulset.yaml +113 -0
- package/manifests/mongodb/storage-class.yaml +9 -0
- package/manifests/mongodb-4.4/headless-service.yaml +10 -0
- package/manifests/mongodb-4.4/kustomization.yaml +9 -0
- package/manifests/mongodb-4.4/mongodb-nodeport.yaml +17 -0
- package/manifests/mongodb-4.4/pv-pvc.yaml +19 -0
- package/manifests/mongodb-4.4/service-deployment.yaml +61 -0
- package/manifests/mongodb-4.4/statefulset.yaml +79 -0
- package/manifests/mongodb-4.4/storage-class.yaml +9 -0
- package/manifests/mysql/kustomization.yaml +7 -0
- package/manifests/mysql/pv-pvc.yaml +27 -0
- package/manifests/mysql/statefulset.yaml +55 -0
- package/manifests/postgresql/configmap.yaml +9 -0
- package/manifests/postgresql/kustomization.yaml +10 -0
- package/manifests/postgresql/pv.yaml +15 -0
- package/manifests/postgresql/pvc.yaml +13 -0
- package/manifests/postgresql/service.yaml +10 -0
- package/manifests/postgresql/statefulset.yaml +37 -0
- package/manifests/prometheus/deployment.yaml +82 -0
- package/manifests/pv-pvc-dd.yaml +34 -0
- package/manifests/valkey/kustomization.yaml +7 -0
- package/manifests/valkey/service.yaml +10 -0
- package/manifests/valkey/statefulset.yaml +37 -0
- package/manifests/valkey/valkey-nodeport.yaml +17 -0
- package/mongodb/entrypoint.sh +76 -0
- package/nginx.conf +128 -0
- package/nodemon.json +6 -0
- package/package.json +101 -0
- package/packer/images/Rocky9Amd64/Makefile +62 -0
- package/packer/images/Rocky9Amd64/QUICKSTART.md +113 -0
- package/packer/images/Rocky9Amd64/README.md +122 -0
- package/packer/images/Rocky9Amd64/http/rocky9.ks.pkrtpl.hcl +114 -0
- package/packer/images/Rocky9Amd64/rocky9.pkr.hcl +164 -0
- package/packer/images/Rocky9Arm64/Makefile +69 -0
- package/packer/images/Rocky9Arm64/README.md +122 -0
- package/packer/images/Rocky9Arm64/http/rocky9.ks.pkrtpl.hcl +114 -0
- package/packer/images/Rocky9Arm64/rocky9.pkr.hcl +171 -0
- package/packer/scripts/fuse-nbd +64 -0
- package/packer/scripts/fuse-tar-root +63 -0
- package/proxy.yaml +189 -0
- package/pv-pvc.yaml +164 -0
- package/scripts/device-scan.sh +65 -0
- package/scripts/disk-clean.sh +182 -0
- package/scripts/disk-devices.sh +13 -0
- package/scripts/gen-fqdns.sh +14 -0
- package/scripts/gpu-diag.sh +19 -0
- package/scripts/ip-info.sh +118 -0
- package/scripts/ipxe-setup.sh +200 -0
- package/scripts/k3s-node-setup.sh +124 -0
- package/scripts/kubeadm-node-setup.sh +317 -0
- package/scripts/link-local-underpost-cli.sh +6 -0
- package/scripts/lxd-vm-setup.sh +208 -0
- package/scripts/maas-nat-firewalld.sh +145 -0
- package/scripts/maas-setup.sh +135 -0
- package/scripts/maas-upload-boot-resource.sh +183 -0
- package/scripts/nat-iptables.sh +111 -0
- package/scripts/nvim.sh +91 -0
- package/scripts/packer-init-vars-file.sh +40 -0
- package/scripts/packer-setup.sh +289 -0
- package/scripts/ports-ls.sh +33 -0
- package/scripts/quick-tftp.sh +19 -0
- package/scripts/rhel-grpc-setup.sh +56 -0
- package/scripts/rocky-kickstart.sh +986 -0
- package/scripts/rocky-pwa.sh +200 -0
- package/scripts/rocky-setup.sh +106 -0
- package/scripts/rpmfusion-ffmpeg-setup.sh +32 -0
- package/scripts/ssl.sh +170 -0
- package/scripts/test-monitor.sh +248 -0
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.controller.js +30 -0
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.model.js +155 -0
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.router.js +39 -0
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.service.js +382 -0
- package/src/api/core/core.controller.js +8 -0
- package/src/api/core/core.model.js +11 -0
- package/src/api/core/core.router.js +23 -0
- package/src/api/core/core.service.js +30 -0
- package/src/api/crypto/crypto.controller.js +10 -0
- package/src/api/crypto/crypto.model.js +23 -0
- package/src/api/crypto/crypto.router.js +23 -0
- package/src/api/crypto/crypto.service.js +64 -0
- package/src/api/cyberia-action/cyberia-action.controller.js +8 -0
- package/src/api/cyberia-action/cyberia-action.model.js +79 -0
- package/src/api/cyberia-action/cyberia-action.router.js +21 -0
- package/src/api/cyberia-action/cyberia-action.service.js +58 -0
- package/src/api/cyberia-client-hints/cyberia-client-hints.controller.js +27 -0
- package/src/api/cyberia-client-hints/cyberia-client-hints.model.js +100 -0
- package/src/api/cyberia-client-hints/cyberia-client-hints.router.js +70 -0
- package/src/api/cyberia-client-hints/cyberia-client-hints.service.js +152 -0
- package/src/api/cyberia-dialogue/cyberia-dialogue.controller.js +8 -0
- package/src/api/cyberia-dialogue/cyberia-dialogue.model.js +36 -0
- package/src/api/cyberia-dialogue/cyberia-dialogue.router.js +20 -0
- package/src/api/cyberia-dialogue/cyberia-dialogue.service.js +57 -0
- package/src/api/cyberia-entity/cyberia-entity.controller.js +6 -0
- package/src/api/cyberia-entity/cyberia-entity.model.js +25 -0
- package/src/api/cyberia-entity/cyberia-entity.router.js +17 -0
- package/src/api/cyberia-entity/cyberia-entity.service.js +42 -0
- package/src/api/cyberia-entity-type-default/cyberia-entity-type-default.controller.js +6 -0
- package/src/api/cyberia-entity-type-default/cyberia-entity-type-default.model.js +67 -0
- package/src/api/cyberia-entity-type-default/cyberia-entity-type-default.router.js +17 -0
- package/src/api/cyberia-entity-type-default/cyberia-entity-type-default.service.js +46 -0
- package/src/api/cyberia-instance/cyberia-fallback-world.js +337 -0
- package/src/api/cyberia-instance/cyberia-instance-boot.service.js +57 -0
- package/src/api/cyberia-instance/cyberia-instance-map.service.js +583 -0
- package/src/api/cyberia-instance/cyberia-instance.controller.js +42 -0
- package/src/api/cyberia-instance/cyberia-instance.model.js +117 -0
- package/src/api/cyberia-instance/cyberia-instance.router.js +75 -0
- package/src/api/cyberia-instance/cyberia-instance.service.js +190 -0
- package/src/api/cyberia-instance/cyberia-portal-connector.js +260 -0
- package/src/api/cyberia-instance/cyberia-world-generator.js +618 -0
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.controller.js +6 -0
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.model.js +200 -0
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.router.js +17 -0
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.service.js +46 -0
- package/src/api/cyberia-map/cyberia-map.controller.js +6 -0
- package/src/api/cyberia-map/cyberia-map.model.js +33 -0
- package/src/api/cyberia-map/cyberia-map.router.js +19 -0
- package/src/api/cyberia-map/cyberia-map.service.js +76 -0
- package/src/api/cyberia-quest/cyberia-quest.controller.js +9 -0
- package/src/api/cyberia-quest/cyberia-quest.model.js +67 -0
- package/src/api/cyberia-quest/cyberia-quest.router.js +26 -0
- package/src/api/cyberia-quest/cyberia-quest.service.js +97 -0
- package/src/api/cyberia-quest-progress/cyberia-quest-progress.controller.js +6 -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 +21 -0
- package/src/api/cyberia-quest-progress/cyberia-quest-progress.service.js +42 -0
- package/src/api/cyberia-saga/cyberia-saga.controller.js +6 -0
- package/src/api/cyberia-saga/cyberia-saga.model.js +59 -0
- package/src/api/cyberia-saga/cyberia-saga.router.js +17 -0
- package/src/api/cyberia-saga/cyberia-saga.service.js +42 -0
- package/src/api/cyberia-server-defaults/cyberia-server-defaults.js +1076 -0
- package/src/api/cyberia-skill/cyberia-skill.controller.js +6 -0
- package/src/api/cyberia-skill/cyberia-skill.model.js +50 -0
- package/src/api/cyberia-skill/cyberia-skill.router.js +17 -0
- package/src/api/cyberia-skill/cyberia-skill.service.js +42 -0
- package/src/api/default/default.controller.js +6 -0
- package/src/api/default/default.model.js +20 -0
- package/src/api/default/default.router.js +21 -0
- package/src/api/default/default.service.js +42 -0
- package/src/api/document/document.controller.js +9 -0
- package/src/api/document/document.model.js +95 -0
- package/src/api/document/document.router.js +32 -0
- package/src/api/document/document.service.js +633 -0
- package/src/api/file/file.controller.js +15 -0
- package/src/api/file/file.model.js +127 -0
- package/src/api/file/file.ref.json +39 -0
- package/src/api/file/file.router.js +36 -0
- package/src/api/file/file.service.js +499 -0
- package/src/api/instance/instance.controller.js +8 -0
- package/src/api/instance/instance.model.js +34 -0
- package/src/api/instance/instance.router.js +27 -0
- package/src/api/instance/instance.service.js +75 -0
- package/src/api/ipfs/ipfs.controller.js +8 -0
- package/src/api/ipfs/ipfs.model.js +77 -0
- package/src/api/ipfs/ipfs.router.js +26 -0
- package/src/api/ipfs/ipfs.service.js +145 -0
- package/src/api/object-layer/object-layer.controller.js +18 -0
- package/src/api/object-layer/object-layer.model.js +200 -0
- package/src/api/object-layer/object-layer.router.js +729 -0
- package/src/api/object-layer/object-layer.service.js +894 -0
- package/src/api/object-layer-render-frames/object-layer-render-frames.controller.js +6 -0
- package/src/api/object-layer-render-frames/object-layer-render-frames.model.js +93 -0
- package/src/api/object-layer-render-frames/object-layer-render-frames.router.js +17 -0
- package/src/api/object-layer-render-frames/object-layer-render-frames.service.js +46 -0
- package/src/api/test/test.controller.js +14 -0
- package/src/api/test/test.model.js +14 -0
- package/src/api/test/test.router.js +23 -0
- package/src/api/test/test.service.js +35 -0
- package/src/api/types.js +24 -0
- package/src/api/user/guest.service.js +100 -0
- package/src/api/user/postman_collection.json +216 -0
- package/src/api/user/user.build.js +16 -0
- package/src/api/user/user.controller.js +35 -0
- package/src/api/user/user.model.js +142 -0
- package/src/api/user/user.router.js +367 -0
- package/src/api/user/user.service.js +582 -0
- package/src/api.js +23 -0
- package/src/cli/baremetal.js +3947 -0
- package/src/cli/cloud-init.js +673 -0
- package/src/cli/cluster.js +1395 -0
- package/src/cli/db.js +1533 -0
- package/src/cli/deploy.js +1542 -0
- package/src/cli/docker-compose.js +802 -0
- package/src/cli/env.js +177 -0
- package/src/cli/fs.js +380 -0
- package/src/cli/image.js +389 -0
- package/src/cli/index.js +1059 -0
- package/src/cli/ipfs.js +182 -0
- package/src/cli/kickstart.js +271 -0
- package/src/cli/kubectl.js +214 -0
- package/src/cli/lxd.js +1232 -0
- package/src/cli/monitor.js +659 -0
- package/src/cli/release.js +595 -0
- package/src/cli/repository.js +1969 -0
- package/src/cli/run.js +3326 -0
- package/src/cli/secrets.js +151 -0
- package/src/cli/ssh.js +975 -0
- package/src/cli/static.js +653 -0
- package/src/cli/system.js +332 -0
- package/src/cli/test.js +176 -0
- package/src/client/Cryptokoyn.index.js +30 -0
- package/src/client/CyberiaPortal.index.js +31 -0
- package/src/client/Default.index.js +77 -0
- package/src/client/Itemledger.index.js +35 -0
- package/src/client/Underpost.index.js +31 -0
- package/src/client/components/core/404.js +20 -0
- package/src/client/components/core/500.js +20 -0
- package/src/client/components/core/Account.js +630 -0
- package/src/client/components/core/AgGrid.js +238 -0
- package/src/client/components/core/Alert.js +76 -0
- package/src/client/components/core/AppStore.js +69 -0
- package/src/client/components/core/Auth.js +353 -0
- package/src/client/components/core/Badge.js +26 -0
- package/src/client/components/core/Blockchain.js +41 -0
- package/src/client/components/core/Blog.js +9 -0
- package/src/client/components/core/BtnIcon.js +109 -0
- package/src/client/components/core/CalendarCore.js +437 -0
- package/src/client/components/core/Chat.js +62 -0
- package/src/client/components/core/ClientEvents.js +163 -0
- package/src/client/components/core/ColorPaletteElement.js +309 -0
- package/src/client/components/core/CommonJs.js +1014 -0
- package/src/client/components/core/Content.js +349 -0
- package/src/client/components/core/Css.js +1134 -0
- package/src/client/components/core/CssCore.js +881 -0
- package/src/client/components/core/D3Chart.js +44 -0
- package/src/client/components/core/Docs.js +478 -0
- package/src/client/components/core/DropDown.js +321 -0
- package/src/client/components/core/EventBus.js +96 -0
- package/src/client/components/core/EventsUI.js +130 -0
- package/src/client/components/core/FileExplorer.js +1406 -0
- package/src/client/components/core/FullScreen.js +201 -0
- package/src/client/components/core/Input.js +537 -0
- package/src/client/components/core/Keyboard.js +80 -0
- package/src/client/components/core/KeyboardAvoidance.js +145 -0
- package/src/client/components/core/LoadingAnimation.js +152 -0
- package/src/client/components/core/LogIn.js +212 -0
- package/src/client/components/core/LogOut.js +72 -0
- package/src/client/components/core/Logger.js +22 -0
- package/src/client/components/core/Modal.js +2956 -0
- package/src/client/components/core/NotificationManager.js +80 -0
- package/src/client/components/core/Pagination.js +252 -0
- package/src/client/components/core/Panel.js +1308 -0
- package/src/client/components/core/PanelForm.js +915 -0
- package/src/client/components/core/Polyhedron.js +947 -0
- package/src/client/components/core/PublicProfile.js +895 -0
- package/src/client/components/core/Recover.js +211 -0
- package/src/client/components/core/Responsive.js +146 -0
- package/src/client/components/core/RichText.js +33 -0
- package/src/client/components/core/Router.js +523 -0
- package/src/client/components/core/Scroll.js +76 -0
- package/src/client/components/core/SearchBox.js +1007 -0
- package/src/client/components/core/SignUp.js +153 -0
- package/src/client/components/core/SocketIo.js +163 -0
- package/src/client/components/core/SocketIoHandler.js +75 -0
- package/src/client/components/core/Stream.js +161 -0
- package/src/client/components/core/ToggleSwitch.js +89 -0
- package/src/client/components/core/ToolTip.js +78 -0
- package/src/client/components/core/Translate.js +694 -0
- package/src/client/components/core/Validator.js +140 -0
- package/src/client/components/core/VanillaJs.js +485 -0
- package/src/client/components/core/Wallet.js +95 -0
- package/src/client/components/core/WebComponent.js +44 -0
- package/src/client/components/core/Webhook.js +58 -0
- package/src/client/components/core/Worker.js +313 -0
- package/src/client/components/core/windowGetDimensions.js +269 -0
- package/src/client/components/cryptokoyn/AppShellCryptokoyn.js +352 -0
- package/src/client/components/cryptokoyn/AppStoreCryptokoyn.js +5 -0
- package/src/client/components/cryptokoyn/CssCryptokoyn.js +212 -0
- package/src/client/components/cryptokoyn/LogInCryptokoyn.js +16 -0
- package/src/client/components/cryptokoyn/LogOutCryptokoyn.js +12 -0
- package/src/client/components/cryptokoyn/RouterCryptokoyn.js +37 -0
- package/src/client/components/cryptokoyn/SettingsCryptokoyn.js +16 -0
- package/src/client/components/cryptokoyn/SignUpCryptokoyn.js +11 -0
- package/src/client/components/cryptokoyn/SocketIoCryptokoyn.js +6 -0
- package/src/client/components/cyberia/ActionEngineCyberia.js +1867 -0
- package/src/client/components/cyberia/EntityEngineCyberia.js +585 -0
- package/src/client/components/cyberia/InstanceEngineCyberia.js +1088 -0
- package/src/client/components/cyberia/InstanceSelectionView.js +900 -0
- package/src/client/components/cyberia/MapEngineCyberia.js +1976 -0
- package/src/client/components/cyberia/ObjectLayerEngine.js +1540 -0
- package/src/client/components/cyberia/ObjectLayerEngineModal.js +2420 -0
- package/src/client/components/cyberia/ObjectLayerEngineViewer.js +1522 -0
- package/src/client/components/cyberia/SharedDefaultsCyberia.js +528 -0
- package/src/client/components/cyberia-portal/AppShellCyberiaPortal.js +772 -0
- package/src/client/components/cyberia-portal/AppStoreCyberiaPortal.js +5 -0
- package/src/client/components/cyberia-portal/CssCyberiaPortal.js +254 -0
- package/src/client/components/cyberia-portal/LogInCyberiaPortal.js +21 -0
- package/src/client/components/cyberia-portal/LogOutCyberiaPortal.js +16 -0
- package/src/client/components/cyberia-portal/MainBodyCyberiaPortal.js +518 -0
- package/src/client/components/cyberia-portal/RouterCyberiaPortal.js +72 -0
- package/src/client/components/cyberia-portal/SettingsCyberiaPortal.js +16 -0
- package/src/client/components/cyberia-portal/SignUpCyberiaPortal.js +13 -0
- package/src/client/components/cyberia-portal/SocketIoCyberiaPortal.js +6 -0
- package/src/client/components/cyberia-portal/TranslateCyberiaPortal.js +48 -0
- package/src/client/components/default/AppShellDefault.js +765 -0
- package/src/client/components/default/AppStoreDefault.js +5 -0
- package/src/client/components/default/CommonDefault.js +29 -0
- package/src/client/components/default/CssDefault.js +27 -0
- package/src/client/components/default/LogInDefault.js +16 -0
- package/src/client/components/default/LogOutDefault.js +12 -0
- package/src/client/components/default/RouterDefault.js +47 -0
- package/src/client/components/default/SettingsDefault.js +16 -0
- package/src/client/components/default/SignUpDefault.js +11 -0
- package/src/client/components/default/SocketIoDefault.js +6 -0
- package/src/client/components/default/TranslateDefault.js +7 -0
- package/src/client/components/itemledger/AppShellItemledger.js +353 -0
- package/src/client/components/itemledger/AppStoreItemledger.js +5 -0
- package/src/client/components/itemledger/CssItemledger.js +212 -0
- package/src/client/components/itemledger/LogInItemledger.js +17 -0
- package/src/client/components/itemledger/LogOutItemledger.js +12 -0
- package/src/client/components/itemledger/RouterItemledger.js +38 -0
- package/src/client/components/itemledger/SettingsItemledger.js +16 -0
- package/src/client/components/itemledger/SignUpItemledger.js +11 -0
- package/src/client/components/itemledger/SocketIoItemledger.js +6 -0
- package/src/client/components/itemledger/TranslateItemledger.js +7 -0
- package/src/client/components/underpost/AppShellUnderpost.js +691 -0
- package/src/client/components/underpost/AppStoreUnderpost.js +5 -0
- package/src/client/components/underpost/CssUnderpost.js +281 -0
- package/src/client/components/underpost/CyberpunkBloggerUnderpost.js +879 -0
- package/src/client/components/underpost/DocumentSearchProvider.js +448 -0
- package/src/client/components/underpost/LabGalleryUnderpost.js +79 -0
- package/src/client/components/underpost/LogInUnderpost.js +25 -0
- package/src/client/components/underpost/LogOutUnderpost.js +17 -0
- package/src/client/components/underpost/RouterUnderpost.js +45 -0
- package/src/client/components/underpost/SettingsUnderpost.js +16 -0
- package/src/client/components/underpost/SignUpUnderpost.js +11 -0
- package/src/client/components/underpost/SocketIoUnderpost.js +6 -0
- package/src/client/components/underpost/TranslateUnderpost.js +10 -0
- package/src/client/public/cryptokoyn/assets/banner/koyn-social.png +0 -0
- package/src/client/public/cryptokoyn/assets/logo/base-icon.png +0 -0
- package/src/client/public/cryptokoyn/assets/logo/cryptokoyn.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/android-chrome-144x144.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/android-chrome-192x192.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/android-chrome-256x256.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/android-chrome-36x36.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/android-chrome-48x48.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/android-chrome-72x72.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/android-chrome-96x96.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-114x114-precomposed.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-114x114.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-120x120-precomposed.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-120x120.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-144x144-precomposed.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-144x144.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-152x152-precomposed.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-152x152.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-180x180-precomposed.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-180x180.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-57x57-precomposed.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-57x57.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-60x60-precomposed.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-60x60.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-72x72-precomposed.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-72x72.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-76x76-precomposed.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-76x76.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-precomposed.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/favicon-16x16.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/favicon-32x32.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/mstile-144x144.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/mstile-150x150.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/mstile-310x150.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/mstile-310x310.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/mstile-70x70.png +0 -0
- package/src/client/public/cryptokoyn/assets/splash/safari-pinned-tab.svg +42 -0
- package/src/client/public/cryptokoyn/browserconfig.xml +12 -0
- package/src/client/public/cryptokoyn/favicon.ico +0 -0
- package/src/client/public/cryptokoyn/microdata.json +85 -0
- package/src/client/public/cryptokoyn/site.webmanifest +57 -0
- package/src/client/public/cryptokoyn/sitemap +148 -0
- package/src/client/public/cyberia-docs/ACTION-SYSTEM.md +307 -0
- package/src/client/public/cyberia-docs/ARCHITECTURE.md +309 -0
- package/src/client/public/cyberia-docs/CYBERIA-CLI.md +204 -0
- package/src/client/public/cyberia-docs/CYBERIA-CLIENT.md +341 -0
- package/src/client/public/cyberia-docs/CYBERIA-LORE.md +84 -0
- package/src/client/public/cyberia-docs/CYBERIA-SAGA.md +394 -0
- package/src/client/public/cyberia-docs/CYBERIA-SERVER.md +294 -0
- package/src/client/public/cyberia-docs/CYBERIA.md +259 -0
- package/src/client/public/cyberia-docs/ENTITY-PROFILE.md +242 -0
- package/src/client/public/cyberia-docs/HARDHAT-MODULE.md +300 -0
- package/src/client/public/cyberia-docs/OFF-CHAIN-ECONOMY.md +309 -0
- package/src/client/public/cyberia-docs/QUEST-SYSTEM.md +228 -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 +740 -0
- package/src/client/public/default/android-chrome-144x144.png +0 -0
- package/src/client/public/default/android-chrome-192x192.png +0 -0
- package/src/client/public/default/android-chrome-256x256.png +0 -0
- package/src/client/public/default/android-chrome-36x36.png +0 -0
- package/src/client/public/default/android-chrome-384x384.png +0 -0
- package/src/client/public/default/android-chrome-48x48.png +0 -0
- package/src/client/public/default/android-chrome-512x512.png +0 -0
- package/src/client/public/default/android-chrome-72x72.png +0 -0
- package/src/client/public/default/android-chrome-96x96.png +0 -0
- package/src/client/public/default/apple-touch-icon-1024x1024.png +0 -0
- package/src/client/public/default/apple-touch-icon-114x114-precomposed.png +0 -0
- package/src/client/public/default/apple-touch-icon-114x114.png +0 -0
- package/src/client/public/default/apple-touch-icon-120x120-precomposed.png +0 -0
- package/src/client/public/default/apple-touch-icon-120x120.png +0 -0
- package/src/client/public/default/apple-touch-icon-144x144-precomposed.png +0 -0
- package/src/client/public/default/apple-touch-icon-144x144.png +0 -0
- package/src/client/public/default/apple-touch-icon-152x152-precomposed.png +0 -0
- package/src/client/public/default/apple-touch-icon-152x152.png +0 -0
- package/src/client/public/default/apple-touch-icon-167x167.png +0 -0
- package/src/client/public/default/apple-touch-icon-180x180-precomposed.png +0 -0
- package/src/client/public/default/apple-touch-icon-180x180.png +0 -0
- package/src/client/public/default/apple-touch-icon-57x57-precomposed.png +0 -0
- package/src/client/public/default/apple-touch-icon-57x57.png +0 -0
- package/src/client/public/default/apple-touch-icon-60x60-precomposed.png +0 -0
- package/src/client/public/default/apple-touch-icon-60x60.png +0 -0
- package/src/client/public/default/apple-touch-icon-72x72-precomposed.png +0 -0
- package/src/client/public/default/apple-touch-icon-72x72.png +0 -0
- package/src/client/public/default/apple-touch-icon-76x76-precomposed.png +0 -0
- package/src/client/public/default/apple-touch-icon-76x76.png +0 -0
- package/src/client/public/default/apple-touch-icon-precomposed.png +0 -0
- package/src/client/public/default/apple-touch-icon.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1125x2436.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1136x640.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1170x2532.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1179x2556.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1242x2208.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1242x2688.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1284x2778.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1290x2796.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1334x750.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1488x2266.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1536x2048.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1620x2160.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1640x2160.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1668x2224.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1668x2388.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-1792x828.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2048x1536.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2048x2732.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2160x1620.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2160x1640.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2208x1242.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2224x1668.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2266x1488.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2388x1668.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2436x1125.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2532x1170.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2556x1179.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2688x1242.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2732x2048.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2778x1284.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-2796x1290.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-640x1136.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-750x1334.png +0 -0
- package/src/client/public/default/apple-touch-startup-image-828x1792.png +0 -0
- package/src/client/public/default/assets/background/dark.jpg +0 -0
- package/src/client/public/default/assets/background/dark.svg +557 -0
- package/src/client/public/default/assets/background/white.jpg +0 -0
- package/src/client/public/default/assets/background/white0-min.jpg +0 -0
- package/src/client/public/default/assets/background/white0.jpg +0 -0
- package/src/client/public/default/assets/logo/base-icon.png +0 -0
- package/src/client/public/default/assets/logo/underpost.gif +0 -0
- package/src/client/public/default/assets/mailer/api-user-check.png +0 -0
- package/src/client/public/default/assets/mailer/api-user-default-avatar.png +0 -0
- package/src/client/public/default/assets/mailer/api-user-invalid-token.png +0 -0
- package/src/client/public/default/assets/mailer/api-user-recover.png +0 -0
- package/src/client/public/default/browserconfig.xml +12 -0
- package/src/client/public/default/favicon-16x16.png +0 -0
- package/src/client/public/default/favicon-32x32.png +0 -0
- package/src/client/public/default/favicon-48x48.png +0 -0
- package/src/client/public/default/favicon.ico +0 -0
- package/src/client/public/default/manifest.webmanifest +69 -0
- package/src/client/public/default/mstile-144x144.png +0 -0
- package/src/client/public/default/mstile-150x150.png +0 -0
- package/src/client/public/default/mstile-310x150.png +0 -0
- package/src/client/public/default/mstile-310x310.png +0 -0
- package/src/client/public/default/mstile-70x70.png +0 -0
- package/src/client/public/default/safari-pinned-tab.svg +24 -0
- package/src/client/public/default/site.webmanifest +69 -0
- package/src/client/public/default/sitemap +148 -0
- package/src/client/public/default/yandex-browser-50x50.png +0 -0
- package/src/client/public/default/yandex-browser-manifest.json +9 -0
- package/src/client/public/doc/favicon.ico +0 -0
- package/src/client/public/doc/sitemap +148 -0
- package/src/client/public/itemledger/android-chrome-144x144.png +0 -0
- package/src/client/public/itemledger/android-chrome-192x192.png +0 -0
- package/src/client/public/itemledger/android-chrome-256x256.png +0 -0
- package/src/client/public/itemledger/android-chrome-36x36.png +0 -0
- package/src/client/public/itemledger/android-chrome-384x384.png +0 -0
- package/src/client/public/itemledger/android-chrome-48x48.png +0 -0
- package/src/client/public/itemledger/android-chrome-512x512.png +0 -0
- package/src/client/public/itemledger/android-chrome-72x72.png +0 -0
- package/src/client/public/itemledger/android-chrome-96x96.png +0 -0
- package/src/client/public/itemledger/apple-touch-icon-1024x1024.png +0 -0
- package/src/client/public/itemledger/apple-touch-icon-114x114.png +0 -0
- package/src/client/public/itemledger/apple-touch-icon-120x120.png +0 -0
- package/src/client/public/itemledger/apple-touch-icon-144x144.png +0 -0
- package/src/client/public/itemledger/apple-touch-icon-152x152.png +0 -0
- package/src/client/public/itemledger/apple-touch-icon-167x167.png +0 -0
- package/src/client/public/itemledger/apple-touch-icon-180x180.png +0 -0
- package/src/client/public/itemledger/apple-touch-icon-57x57.png +0 -0
- package/src/client/public/itemledger/apple-touch-icon-60x60.png +0 -0
- package/src/client/public/itemledger/apple-touch-icon-72x72.png +0 -0
- package/src/client/public/itemledger/apple-touch-icon-76x76.png +0 -0
- package/src/client/public/itemledger/apple-touch-icon-precomposed.png +0 -0
- package/src/client/public/itemledger/apple-touch-icon.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-1125x2436.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-1136x640.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-1170x2532.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-1179x2556.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-1242x2208.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-1242x2688.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-1284x2778.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-1290x2796.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-1334x750.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-1488x2266.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-1536x2048.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-1620x2160.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-1640x2160.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-1668x2224.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-1668x2388.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-1792x828.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-2048x1536.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-2048x2732.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-2160x1620.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-2160x1640.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-2208x1242.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-2224x1668.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-2266x1488.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-2388x1668.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-2436x1125.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-2532x1170.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-2556x1179.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-2688x1242.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-2732x2048.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-2778x1284.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-2796x1290.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-640x1136.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-750x1334.png +0 -0
- package/src/client/public/itemledger/apple-touch-startup-image-828x1792.png +0 -0
- package/src/client/public/itemledger/assets/logo/base-icon.png +0 -0
- package/src/client/public/itemledger/browserconfig.xml +12 -0
- package/src/client/public/itemledger/favicon-16x16.png +0 -0
- package/src/client/public/itemledger/favicon-32x32.png +0 -0
- package/src/client/public/itemledger/favicon-48x48.png +0 -0
- package/src/client/public/itemledger/favicon.ico +0 -0
- package/src/client/public/itemledger/manifest.webmanifest +69 -0
- package/src/client/public/itemledger/microdata.json +71 -0
- package/src/client/public/itemledger/mstile-144x144.png +0 -0
- package/src/client/public/itemledger/mstile-150x150.png +0 -0
- package/src/client/public/itemledger/mstile-310x150.png +0 -0
- package/src/client/public/itemledger/mstile-310x310.png +0 -0
- package/src/client/public/itemledger/mstile-70x70.png +0 -0
- package/src/client/public/itemledger/sitemap +148 -0
- package/src/client/public/itemledger/yandex-browser-50x50.png +0 -0
- package/src/client/public/itemledger/yandex-browser-manifest.json +9 -0
- package/src/client/public/test/favicon.ico +0 -0
- package/src/client/public/test/sitemap +148 -0
- package/src/client/services/atlas-sprite-sheet/atlas-sprite-sheet.service.js +137 -0
- package/src/client/services/core/core.service.js +309 -0
- package/src/client/services/crypto/crypto.service.js +68 -0
- 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 +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-entity-type-default/cyberia-entity-type-default.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 +137 -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/cyberia-saga/cyberia-saga.service.js +99 -0
- package/src/client/services/cyberia-skill/cyberia-skill.service.js +99 -0
- package/src/client/services/default/default.management.js +1015 -0
- package/src/client/services/default/default.service.js +99 -0
- package/src/client/services/document/document.service.js +134 -0
- package/src/client/services/file/file.service.js +94 -0
- package/src/client/services/instance/instance.management.js +78 -0
- package/src/client/services/instance/instance.service.js +107 -0
- package/src/client/services/ipfs/ipfs.service.js +118 -0
- package/src/client/services/object-layer/object-layer.management.js +414 -0
- package/src/client/services/object-layer/object-layer.service.js +208 -0
- package/src/client/services/object-layer-render-frames/object-layer-render-frames.service.js +99 -0
- package/src/client/services/test/test.service.js +68 -0
- package/src/client/services/user/guest.service.js +86 -0
- package/src/client/services/user/user.management.js +51 -0
- package/src/client/services/user/user.service.js +106 -0
- package/src/client/ssr/RootDocument.js +237 -0
- package/src/client/ssr/body/404.js +77 -0
- package/src/client/ssr/body/500.js +76 -0
- package/src/client/ssr/body/CacheControl.js +117 -0
- package/src/client/ssr/body/CyberiaDefaultSplashScreen.js +97 -0
- package/src/client/ssr/body/DefaultSplashScreen.js +97 -0
- package/src/client/ssr/body/SwaggerDarkMode.js +285 -0
- package/src/client/ssr/body/UnderpostDefaultSplashScreen.js +90 -0
- package/src/client/ssr/head/CryptokoynScripts.js +4 -0
- package/src/client/ssr/head/Css.js +241 -0
- package/src/client/ssr/head/CyberiaPortalScripts.js +6 -0
- package/src/client/ssr/head/DefaultScripts.js +6 -0
- package/src/client/ssr/head/ItemledgerScripts.js +4 -0
- package/src/client/ssr/head/Microdata.js +11 -0
- package/src/client/ssr/head/Production.js +1 -0
- package/src/client/ssr/head/Pwa.js +146 -0
- package/src/client/ssr/head/PwaItemledger.js +197 -0
- package/src/client/ssr/head/Seo.js +15 -0
- package/src/client/ssr/head/UnderpostScripts.js +6 -0
- package/src/client/ssr/mailer/DefaultRecoverEmail.js +20 -0
- package/src/client/ssr/mailer/DefaultVerifyEmail.js +16 -0
- package/src/client/ssr/views/Cyberia404.js +328 -0
- package/src/client/ssr/views/CyberiaServerMetrics.js +1070 -0
- package/src/client/ssr/views/Maintenance.js +64 -0
- package/src/client/ssr/views/NoNetworkConnection.js +68 -0
- package/src/client/ssr/views/Test.js +199 -0
- package/src/client/sw/core.sw.js +274 -0
- package/src/client-builder/client-build-docs.js +493 -0
- package/src/client-builder/client-build-live.js +100 -0
- package/src/client-builder/client-build.js +1092 -0
- package/src/client-builder/client-dev-server.js +88 -0
- package/src/client-builder/client-formatted.js +170 -0
- package/src/client-builder/client-icons.js +108 -0
- package/src/client-builder/ssr.js +124 -0
- package/src/client.build.js +17 -0
- package/src/client.dev.js +21 -0
- package/src/db/DataBaseProvider.js +213 -0
- package/src/db/mariadb/MariaDB.js +72 -0
- package/src/db/mongo/MongoBootstrap.js +657 -0
- package/src/db/mongo/MongooseDB.js +199 -0
- package/src/grpc/cyberia/grpc-server.js +162 -0
- package/src/index.js +357 -0
- package/src/mailer/EmailRender.js +116 -0
- package/src/mailer/MailerProvider.js +213 -0
- package/src/projects/cyberia/atlas-sprite-sheet-generator.js +413 -0
- package/src/projects/cyberia/besu-genesis-generator.js +1630 -0
- package/src/projects/cyberia/catalog-cyberia.js +90 -0
- package/src/projects/cyberia/gemini-client.js +175 -0
- package/src/projects/cyberia/generate-saga.js +2137 -0
- package/src/projects/cyberia/hot-reload-trigger.js +163 -0
- package/src/projects/cyberia/instance-data.js +719 -0
- package/src/projects/cyberia/ipfs-client.js +599 -0
- package/src/projects/cyberia/map-preview-generator.js +304 -0
- package/src/projects/cyberia/object-layer.js +978 -0
- package/src/projects/cyberia/semantic-layer-generator-floor.js +319 -0
- package/src/projects/cyberia/semantic-layer-generator-resource.js +259 -0
- package/src/projects/cyberia/semantic-layer-generator-skin.js +1164 -0
- package/src/projects/cyberia/semantic-layer-generator.js +753 -0
- package/src/projects/cyberia/shape-generator.js +1060 -0
- package/src/projects/underpost/catalog-underpost.js +60 -0
- package/src/proxy.js +19 -0
- package/src/runtime/cyberia-client/Dockerfile +49 -0
- package/src/runtime/cyberia-client/Dockerfile.dev +75 -0
- package/src/runtime/cyberia-server/Dockerfile +43 -0
- package/src/runtime/cyberia-server/Dockerfile.dev +56 -0
- package/src/runtime/engine-cyberia/Dockerfile +161 -0
- package/src/runtime/engine-cyberia/Dockerfile.dev +161 -0
- package/src/runtime/engine-cyberia/Dockerfile.test +165 -0
- package/src/runtime/engine-cyberia/compose.env +144 -0
- package/src/runtime/engine-cyberia/docker-compose.yml +434 -0
- package/src/runtime/engine-cyberia/ipfs/configure-ipfs.sh +13 -0
- package/src/runtime/engine-cyberia/mongodb/entrypoint.sh +76 -0
- package/src/runtime/engine-cyberia/nginx.conf +128 -0
- package/src/runtime/express/Dockerfile +45 -0
- package/src/runtime/express/Express.js +285 -0
- package/src/runtime/lampp/Dockerfile +62 -0
- package/src/runtime/lampp/Lampp.js +359 -0
- package/src/runtime/nginx/Nginx.js +250 -0
- package/src/runtime/wp/Dockerfile +62 -0
- package/src/runtime/wp/Wp.js +642 -0
- package/src/server/auth.js +713 -0
- package/src/server/backup.js +102 -0
- package/src/server/catalog.js +72 -0
- package/src/server/conf.js +2316 -0
- package/src/server/cron.js +476 -0
- package/src/server/crypto.js +210 -0
- package/src/server/data-query.js +461 -0
- package/src/server/dns.js +553 -0
- package/src/server/downloader.js +73 -0
- package/src/server/logger.js +229 -0
- package/src/server/middlewares.js +152 -0
- package/src/server/peer.js +75 -0
- package/src/server/process.js +299 -0
- package/src/server/proxy.js +139 -0
- package/src/server/runtime-status.js +252 -0
- package/src/server/runtime.js +183 -0
- package/src/server/start.js +272 -0
- package/src/server/tls.js +254 -0
- package/src/server/valkey.js +201 -0
- package/src/server.js +25 -0
- package/src/ws/IoInterface.js +129 -0
- package/src/ws/IoServer.js +68 -0
- package/src/ws/core/channels/core.ws.chat.js +68 -0
- package/src/ws/core/channels/core.ws.mailer.js +116 -0
- package/src/ws/core/channels/core.ws.stream.js +90 -0
- package/src/ws/core/core.ws.connection.js +41 -0
- package/src/ws/core/core.ws.emit.js +37 -0
- package/src/ws/core/core.ws.server.js +44 -0
- package/src/ws/default/channels/default.ws.main.js +57 -0
- package/src/ws/default/default.ws.connection.js +35 -0
- package/src/ws/default/default.ws.emit.js +14 -0
- package/src/ws/default/default.ws.server.js +39 -0
- package/test/api.test.js +53 -0
- package/test/crypto.test.js +117 -0
- package/test/cyberia-instance-conf-defaults.test.js +140 -0
- package/test/deploy-monitor.test.js +267 -0
- package/test/shape-generator.test.js +463 -0
- package/tsconfig.docs.json +15 -0
- package/typedoc.dd-cyberia.json +31 -0
- package/typedoc.json +31 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Schema, model } from 'mongoose';
|
|
2
|
+
|
|
3
|
+
// https://mongoosejs.com/docs/2.7.x/docs/schematypes.html
|
|
4
|
+
|
|
5
|
+
// CyberiaEntityTypeDefault — DB-backed, editable mirror of the per-entity-type
|
|
6
|
+
// item defaults that ship in cyberia-server-defaults.js (ENTITY_TYPE_DEFAULTS).
|
|
7
|
+
// A document binds an entity category (entityType) to the item ids the runtime
|
|
8
|
+
// rotates through by lifecycle state:
|
|
9
|
+
// liveItemIds — ObjectLayer item ids while the entity is alive.
|
|
10
|
+
// deadItemIds — ids swapped in on death / ghost state.
|
|
11
|
+
// dropItemIds — ids granted to the killer on depletion (resources).
|
|
12
|
+
// defaultObjectLayers — seed inventory rows ({ itemId, active, quantity }).
|
|
13
|
+
//
|
|
14
|
+
// Resolution rule (authoritative): defaults are looked up by the entity's ACTIVE
|
|
15
|
+
// itemId (usually the skin) — the system finds the document whose `liveItemIds`
|
|
16
|
+
// contains that itemId, then applies the document's deadItemIds / dropItemIds /
|
|
17
|
+
// defaultObjectLayers to drive what is shown as the entity's state changes.
|
|
18
|
+
//
|
|
19
|
+
// Resolution (subset matching): a document matches an entity when ALL of its
|
|
20
|
+
// `liveItemIds` are present in the entity's active item ids, and the MOST SPECIFIC
|
|
21
|
+
// match wins — the document requiring the largest item set. This lets the same
|
|
22
|
+
// skin map to different defaults by its full active set, e.g.
|
|
23
|
+
// { bot, liveItemIds:[purple, atlas_pistol_mk2], behavior:hostile }
|
|
24
|
+
// { bot, liveItemIds:[purple], behavior:passive }
|
|
25
|
+
// where a purple bot carrying the pistol is hostile and a bare purple bot is
|
|
26
|
+
// passive. The Go simulation (game/entity_defaults.go) implements the same rule.
|
|
27
|
+
//
|
|
28
|
+
// Invariants:
|
|
29
|
+
// - `entityType` is a label, not a unique key — a category appears in many
|
|
30
|
+
// documents.
|
|
31
|
+
// - There is NO per-itemId uniqueness: the same itemId may appear in the
|
|
32
|
+
// `liveItemIds` of many documents (different entity types, or the same type
|
|
33
|
+
// at different specificity levels). `liveItemIds` is indexed (non-unique
|
|
34
|
+
// multikey) only for fast membership lookups.
|
|
35
|
+
|
|
36
|
+
const ObjectLayerDefaultSchema = new Schema(
|
|
37
|
+
{
|
|
38
|
+
itemId: { type: String, required: true, trim: true },
|
|
39
|
+
active: { type: Boolean, default: false },
|
|
40
|
+
quantity: { type: Number, default: 0 },
|
|
41
|
+
},
|
|
42
|
+
{ _id: false },
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
const CyberiaEntityTypeDefaultSchema = new Schema(
|
|
46
|
+
{
|
|
47
|
+
entityType: { type: String, required: true, trim: true },
|
|
48
|
+
liveItemIds: { type: [{ type: String, trim: true }], index: true },
|
|
49
|
+
deadItemIds: [{ type: String, trim: true }],
|
|
50
|
+
dropItemIds: [{ type: String, trim: true }],
|
|
51
|
+
defaultObjectLayers: [ObjectLayerDefaultSchema],
|
|
52
|
+
// Canonical entity behavior bound to entities matched by liveItemIds (see
|
|
53
|
+
// SharedDefaultsCyberia.ENTITY_BEHAVIORS). Empty = let the runtime derive it
|
|
54
|
+
// (armed → hostile, else passive). The Go simulation resolves this with the
|
|
55
|
+
// same liveItemIds matching used for the live/dead/drop sets.
|
|
56
|
+
behavior: { type: String, trim: true },
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
timestamps: true,
|
|
60
|
+
},
|
|
61
|
+
);
|
|
62
|
+
|
|
63
|
+
const CyberiaEntityTypeDefaultModel = model('CyberiaEntityTypeDefault', CyberiaEntityTypeDefaultSchema);
|
|
64
|
+
|
|
65
|
+
const ProviderSchema = CyberiaEntityTypeDefaultSchema;
|
|
66
|
+
|
|
67
|
+
export { CyberiaEntityTypeDefaultSchema, CyberiaEntityTypeDefaultModel, ProviderSchema };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import express from 'express';
|
|
2
|
+
import { registerCrudRoutes } from '../../server/middlewares.js';
|
|
3
|
+
import { CyberiaEntityTypeDefaultController } from './cyberia-entity-type-default.controller.js';
|
|
4
|
+
|
|
5
|
+
class CyberiaEntityTypeDefaultRouter {
|
|
6
|
+
/**
|
|
7
|
+
* @param {import('../types.js').RouterOptions} options
|
|
8
|
+
* @returns {import('express').Router}
|
|
9
|
+
*/
|
|
10
|
+
static router(options) {
|
|
11
|
+
return registerCrudRoutes(express.Router(), CyberiaEntityTypeDefaultController, options);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const ApiRouter = (options) => CyberiaEntityTypeDefaultRouter.router(options);
|
|
16
|
+
|
|
17
|
+
export { ApiRouter, CyberiaEntityTypeDefaultRouter };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { DataBaseProviderService } from '../../db/DataBaseProvider.js';
|
|
2
|
+
import { loggerFactory } from '../../server/logger.js';
|
|
3
|
+
import { DataQuery } from '../../server/data-query.js';
|
|
4
|
+
|
|
5
|
+
const logger = loggerFactory(import.meta);
|
|
6
|
+
|
|
7
|
+
class CyberiaEntityTypeDefaultService {
|
|
8
|
+
// No per-itemId uniqueness: resolution is by subset containment (most-specific
|
|
9
|
+
// match wins), so the same itemId may appear in many documents — e.g.
|
|
10
|
+
// [purple, atlas_pistol_mk2]→hostile alongside [purple]→passive. See the model.
|
|
11
|
+
|
|
12
|
+
static post = async (req, res, options) => {
|
|
13
|
+
/** @type {import('./cyberia-entity-type-default.model.js').CyberiaEntityTypeDefaultModel} */
|
|
14
|
+
const CyberiaEntityTypeDefault = DataBaseProviderService.getModel('CyberiaEntityTypeDefault', options);
|
|
15
|
+
return await new CyberiaEntityTypeDefault(req.body).save();
|
|
16
|
+
};
|
|
17
|
+
static get = async (req, res, options) => {
|
|
18
|
+
/** @type {import('./cyberia-entity-type-default.model.js').CyberiaEntityTypeDefaultModel} */
|
|
19
|
+
const CyberiaEntityTypeDefault = DataBaseProviderService.getModel('CyberiaEntityTypeDefault', options);
|
|
20
|
+
if (req.params.id) return await CyberiaEntityTypeDefault.findById(req.params.id);
|
|
21
|
+
|
|
22
|
+
// Parse query parameters using DataQuery helper
|
|
23
|
+
const { query, sort, skip, limit, page } = DataQuery.parse(req.query);
|
|
24
|
+
|
|
25
|
+
const [data, total] = await Promise.all([
|
|
26
|
+
CyberiaEntityTypeDefault.find(query).sort(sort).limit(limit).skip(skip),
|
|
27
|
+
CyberiaEntityTypeDefault.countDocuments(query),
|
|
28
|
+
]);
|
|
29
|
+
|
|
30
|
+
const totalPages = Math.ceil(total / limit);
|
|
31
|
+
return { data, total, page, totalPages };
|
|
32
|
+
};
|
|
33
|
+
static put = async (req, res, options) => {
|
|
34
|
+
/** @type {import('./cyberia-entity-type-default.model.js').CyberiaEntityTypeDefaultModel} */
|
|
35
|
+
const CyberiaEntityTypeDefault = DataBaseProviderService.getModel('CyberiaEntityTypeDefault', options);
|
|
36
|
+
return await CyberiaEntityTypeDefault.findByIdAndUpdate(req.params.id, req.body);
|
|
37
|
+
};
|
|
38
|
+
static delete = async (req, res, options) => {
|
|
39
|
+
/** @type {import('./cyberia-entity-type-default.model.js').CyberiaEntityTypeDefaultModel} */
|
|
40
|
+
const CyberiaEntityTypeDefault = DataBaseProviderService.getModel('CyberiaEntityTypeDefault', options);
|
|
41
|
+
if (req.params.id) return await CyberiaEntityTypeDefault.findByIdAndDelete(req.params.id);
|
|
42
|
+
else return await CyberiaEntityTypeDefault.deleteMany();
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export { CyberiaEntityTypeDefaultService };
|
|
@@ -0,0 +1,337 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fallback World Generator — pure-function module.
|
|
3
|
+
*
|
|
4
|
+
* Produces a complete in-memory multi-map world with portal topology,
|
|
5
|
+
* floor tiles, obstacles, foreground, and bots. Nothing is persisted
|
|
6
|
+
* to MongoDB — the result is regenerated on every call.
|
|
7
|
+
*
|
|
8
|
+
* Everything that can be random IS random (counts within ranges,
|
|
9
|
+
* positions, dimensions). The floor is the exception: it deterministically
|
|
10
|
+
* covers the entire map grid so there are no gaps.
|
|
11
|
+
*
|
|
12
|
+
* Shared by:
|
|
13
|
+
* - gRPC server (getFullInstance fallback path)
|
|
14
|
+
* - CyberiaInstanceService (API / GUI fallback endpoint)
|
|
15
|
+
*
|
|
16
|
+
* All exported functions are stateless and synchronous.
|
|
17
|
+
*
|
|
18
|
+
* @module src/api/cyberia-instance/cyberia-fallback-world
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
import { connectPortals } from './cyberia-portal-connector.js';
|
|
22
|
+
|
|
23
|
+
import {
|
|
24
|
+
generateObstacles,
|
|
25
|
+
generateForeground,
|
|
26
|
+
generateResources,
|
|
27
|
+
generateStatic,
|
|
28
|
+
generateFloorEntities,
|
|
29
|
+
generatePortalEntity,
|
|
30
|
+
generatePortalEntities,
|
|
31
|
+
generateBots,
|
|
32
|
+
generateActionProviderBots,
|
|
33
|
+
OccupancyGrid,
|
|
34
|
+
} from './cyberia-world-generator.js';
|
|
35
|
+
|
|
36
|
+
import {
|
|
37
|
+
CYBERIA_INSTANCE_CONF_DEFAULTS,
|
|
38
|
+
DEFAULT_PLAYER_SPAWN,
|
|
39
|
+
ENTITY_TYPE_DEFAULTS,
|
|
40
|
+
RESOURCE_ENTITY_TYPE_DEFAULTS,
|
|
41
|
+
DefaultSkillConfig,
|
|
42
|
+
} from '../cyberia-server-defaults/cyberia-server-defaults.js';
|
|
43
|
+
import {
|
|
44
|
+
CYBERIA_CLIENT_HINTS_DEFAULTS,
|
|
45
|
+
DefaultCyberiaItems,
|
|
46
|
+
PALETTE,
|
|
47
|
+
} from '../../client/components/cyberia/SharedDefaultsCyberia.js';
|
|
48
|
+
|
|
49
|
+
// ── Defaults ─────────────────────────────────────────────────────────────────
|
|
50
|
+
|
|
51
|
+
const DEFAULT_MAP_COUNT = 4;
|
|
52
|
+
const DEFAULT_GRID_SIZE = 64;
|
|
53
|
+
|
|
54
|
+
// ── Asset-id integrity ──────────────────────────────────────────────────────
|
|
55
|
+
//
|
|
56
|
+
// Every item id that the fallback world can place on a map must also be
|
|
57
|
+
// present in DefaultCyberiaItems, otherwise the `import-default-items` seed
|
|
58
|
+
// will not create an ObjectLayer for it and the runtime client will fall
|
|
59
|
+
// back to a solid-colour rectangle instead of the intended sprite.
|
|
60
|
+
//
|
|
61
|
+
// auditFallbackItemIds() returns the set of unknown ids encountered in the
|
|
62
|
+
// canonical defaults so callers (CLI, test harness, gRPC fallback path)
|
|
63
|
+
// can surface drift immediately. Returns an empty array when in sync.
|
|
64
|
+
|
|
65
|
+
const KNOWN_DEFAULT_ITEM_IDS = new Set(DefaultCyberiaItems.map((e) => e.item.id));
|
|
66
|
+
|
|
67
|
+
function collectReferencedItemIds() {
|
|
68
|
+
const ids = new Set();
|
|
69
|
+
const push = (id) => {
|
|
70
|
+
if (typeof id === 'string' && id.length > 0) ids.add(id);
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
for (const e of ENTITY_TYPE_DEFAULTS) {
|
|
74
|
+
(e.liveItemIds || []).forEach(push);
|
|
75
|
+
(e.deadItemIds || []).forEach(push);
|
|
76
|
+
(e.dropItemIds || []).forEach(push);
|
|
77
|
+
(e.defaultObjectLayers || []).forEach((ol) => push(ol.itemId));
|
|
78
|
+
}
|
|
79
|
+
for (const r of RESOURCE_ENTITY_TYPE_DEFAULTS) {
|
|
80
|
+
(r.liveItemIds || []).forEach(push);
|
|
81
|
+
(r.deadItemIds || []).forEach(push);
|
|
82
|
+
(r.dropItemIds || []).forEach(push);
|
|
83
|
+
}
|
|
84
|
+
// Skill trigger items and the entities they summon must also resolve to an
|
|
85
|
+
// ObjectLayer. Runtime placeholders ('$active_skin', …) are resolved by the
|
|
86
|
+
// server and are intentionally excluded.
|
|
87
|
+
for (const sk of DefaultSkillConfig) {
|
|
88
|
+
push(sk.triggerItemId);
|
|
89
|
+
for (const s of sk.skills || []) {
|
|
90
|
+
if (typeof s.summonedEntityItemId === 'string' && !s.summonedEntityItemId.startsWith('$')) {
|
|
91
|
+
push(s.summonedEntityItemId);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return ids;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Audit every item id the fallback world can place against the canonical
|
|
100
|
+
* DefaultCyberiaItems registry. Returns an array of missing ids; an empty
|
|
101
|
+
* array means the registry is in sync.
|
|
102
|
+
*
|
|
103
|
+
* @returns {string[]}
|
|
104
|
+
*/
|
|
105
|
+
function auditFallbackItemIds() {
|
|
106
|
+
const referenced = collectReferencedItemIds();
|
|
107
|
+
const missing = [];
|
|
108
|
+
for (const id of referenced) {
|
|
109
|
+
if (!KNOWN_DEFAULT_ITEM_IDS.has(id)) missing.push(id);
|
|
110
|
+
}
|
|
111
|
+
return missing.sort();
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
// ── Single map generator ─────────────────────────────────────────────────────
|
|
115
|
+
|
|
116
|
+
/** AABB overlap test for two entities in cell space. */
|
|
117
|
+
function entitiesOverlap(a, b) {
|
|
118
|
+
return (
|
|
119
|
+
a.initCellX < b.initCellX + b.dimX &&
|
|
120
|
+
a.initCellX + a.dimX > b.initCellX &&
|
|
121
|
+
a.initCellY < b.initCellY + b.dimY &&
|
|
122
|
+
a.initCellY + a.dimY > b.initCellY
|
|
123
|
+
);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Generate a complete in-memory map with all entity types.
|
|
128
|
+
* Everything except floor tiles is randomized.
|
|
129
|
+
*
|
|
130
|
+
* @param {string} mapCode
|
|
131
|
+
* @param {Array} colors Palette (PALETTE from SharedDefaultsCyberia).
|
|
132
|
+
* @param {object} [opts]
|
|
133
|
+
* @param {number} [opts.gridSize]
|
|
134
|
+
* @param {number} [opts.obstacleCount]
|
|
135
|
+
* @param {number} [opts.foregroundCount]
|
|
136
|
+
* @param {number} [opts.botCount]
|
|
137
|
+
* @param {number} [opts.resourceCount]
|
|
138
|
+
* @param {number} [opts.staticCount]
|
|
139
|
+
* @returns {object} CyberiaMap-shaped plain object.
|
|
140
|
+
*/
|
|
141
|
+
function generateFallbackMap(mapCode, colors, opts = {}) {
|
|
142
|
+
const gridSize = opts.gridSize || DEFAULT_GRID_SIZE;
|
|
143
|
+
const mapDims = { gridX: gridSize, gridY: gridSize };
|
|
144
|
+
|
|
145
|
+
// 1. Floor — deterministic full coverage
|
|
146
|
+
const floors = generateFloorEntities(mapDims, colors);
|
|
147
|
+
|
|
148
|
+
// 2. Action-provider NPCs — fixed cells from DefaultCyberiaActions. Built
|
|
149
|
+
// first so their mission cells are guaranteed clear and walkable.
|
|
150
|
+
const actionProviders = generateActionProviderBots(mapCode, colors);
|
|
151
|
+
|
|
152
|
+
// 3. Obstacles — random, minus any overlapping an action-provider cell so
|
|
153
|
+
// the mission NPCs always stand on walkable ground.
|
|
154
|
+
const obstacles = generateObstacles(mapDims, colors, { count: opts.obstacleCount }).filter(
|
|
155
|
+
(o) => !actionProviders.some((ap) => entitiesOverlap(o, ap)),
|
|
156
|
+
);
|
|
157
|
+
|
|
158
|
+
// 4. Build occupancy grid from obstacles, then reserve action-provider cells.
|
|
159
|
+
const grid = new OccupancyGrid(gridSize, gridSize);
|
|
160
|
+
grid.addObstacles(obstacles);
|
|
161
|
+
for (const ap of actionProviders) grid.block(ap.initCellX, ap.initCellY, ap.dimX, ap.dimY);
|
|
162
|
+
|
|
163
|
+
// 5. Portals — placed on walkable cells only, then blocked so bots avoid them
|
|
164
|
+
const portalEntities = generatePortalEntities(mapDims, colors, { grid });
|
|
165
|
+
|
|
166
|
+
// 6. Bots — placed on walkable cells (avoids obstacles, portals, NPCs)
|
|
167
|
+
const bots = generateBots(mapDims, colors, { count: opts.botCount, grid });
|
|
168
|
+
|
|
169
|
+
// 7. Resources — static exploitable entities placed on walkable cells
|
|
170
|
+
const resources = generateResources(mapDims, colors, { count: opts.resourceCount, grid });
|
|
171
|
+
|
|
172
|
+
// 8. Foreground — decorative, no collision restriction
|
|
173
|
+
const foreground = generateForeground(mapDims, colors, { count: opts.foregroundCount });
|
|
174
|
+
|
|
175
|
+
// 9. Statics — non-moving, passable decorators; depth-sorted with entities.
|
|
176
|
+
const statics = generateStatic(mapDims, colors, { count: opts.staticCount });
|
|
177
|
+
|
|
178
|
+
const entities = [
|
|
179
|
+
...floors,
|
|
180
|
+
...obstacles,
|
|
181
|
+
...portalEntities,
|
|
182
|
+
...foreground,
|
|
183
|
+
...actionProviders,
|
|
184
|
+
...bots,
|
|
185
|
+
...resources,
|
|
186
|
+
...statics,
|
|
187
|
+
];
|
|
188
|
+
|
|
189
|
+
return {
|
|
190
|
+
code: mapCode,
|
|
191
|
+
name: `Fallback ${mapCode}`,
|
|
192
|
+
gridX: gridSize,
|
|
193
|
+
gridY: gridSize,
|
|
194
|
+
cellWidth: 32,
|
|
195
|
+
cellHeight: 32,
|
|
196
|
+
entities,
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
// ── Full world generator ─────────────────────────────────────────────────────
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* Generate a complete in-memory fallback world: multiple maps connected
|
|
204
|
+
* by a portal ring topology.
|
|
205
|
+
*
|
|
206
|
+
* Returns a plain-object structure matching what a real CyberiaInstance
|
|
207
|
+
* + CyberiaMap query would return, so consumers can treat it identically.
|
|
208
|
+
*
|
|
209
|
+
* Nothing is persisted to MongoDB.
|
|
210
|
+
*
|
|
211
|
+
* @param {object} [opts]
|
|
212
|
+
* @param {number} [opts.mapCount=4] Number of maps to generate.
|
|
213
|
+
* @param {number} [opts.gridSize=64] Grid size per map.
|
|
214
|
+
* @param {number} [opts.obstacleCount] Obstacles per map (random if omitted).
|
|
215
|
+
* @param {number} [opts.foregroundCount] Foreground entities per map (random if omitted).
|
|
216
|
+
* @param {number} [opts.botCount] Bots per map (random if omitted).
|
|
217
|
+
* @param {number} [opts.resourceCount] Resources per map (random if omitted).
|
|
218
|
+
* @param {number} [opts.staticCount] Static decorators per map (random if omitted).
|
|
219
|
+
* @param {Array} [opts.colors] Override palette.
|
|
220
|
+
* @returns {{
|
|
221
|
+
* instance: object,
|
|
222
|
+
* maps: object[],
|
|
223
|
+
* portals: object[],
|
|
224
|
+
* topology: string,
|
|
225
|
+
* config: object,
|
|
226
|
+
* _fallback: true
|
|
227
|
+
* }}
|
|
228
|
+
*/
|
|
229
|
+
function generateFallbackWorld(opts = {}) {
|
|
230
|
+
const {
|
|
231
|
+
mapCount = DEFAULT_MAP_COUNT,
|
|
232
|
+
gridSize,
|
|
233
|
+
obstacleCount,
|
|
234
|
+
foregroundCount,
|
|
235
|
+
botCount,
|
|
236
|
+
resourceCount,
|
|
237
|
+
staticCount,
|
|
238
|
+
// Palette lives in SharedDefaultsCyberia (presentation-owned). The
|
|
239
|
+
// world generator only uses it to stamp a cosmetic rgba(...) string on
|
|
240
|
+
// entities so the browser editor / preview can render a coloured
|
|
241
|
+
// fallback before atlases load. The C client resolves real colours
|
|
242
|
+
// through domain/presentation_runtime — it does not read this value.
|
|
243
|
+
colors = PALETTE,
|
|
244
|
+
} = opts;
|
|
245
|
+
|
|
246
|
+
// Surface item-id drift loudly on the very first build, so a missing
|
|
247
|
+
// `bin/cyberia run-workflow import-default-items` run shows up at startup
|
|
248
|
+
// instead of as silent grey rectangles later.
|
|
249
|
+
const missing = auditFallbackItemIds();
|
|
250
|
+
if (missing.length > 0) {
|
|
251
|
+
// eslint-disable-next-line no-console
|
|
252
|
+
console.warn(
|
|
253
|
+
'[cyberia-fallback-world] item ids referenced by defaults but absent from DefaultCyberiaItems:',
|
|
254
|
+
missing.join(', '),
|
|
255
|
+
'— run `node bin/cyberia run-workflow import-default-items` after adding them.',
|
|
256
|
+
);
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
// Generate map codes.
|
|
260
|
+
const mapCodes = [];
|
|
261
|
+
for (let i = 0; i < mapCount; i++) {
|
|
262
|
+
mapCodes.push(`fallback-map-${i}`);
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
// Generate each map (all randomized independently).
|
|
266
|
+
const maps = mapCodes.map((code) =>
|
|
267
|
+
generateFallbackMap(code, colors, {
|
|
268
|
+
gridSize,
|
|
269
|
+
obstacleCount,
|
|
270
|
+
foregroundCount,
|
|
271
|
+
botCount,
|
|
272
|
+
resourceCount,
|
|
273
|
+
staticCount,
|
|
274
|
+
}),
|
|
275
|
+
);
|
|
276
|
+
|
|
277
|
+
// Connect maps with portal topology using the portal connector module.
|
|
278
|
+
const { portals, topology } = connectPortals(mapCodes, maps);
|
|
279
|
+
|
|
280
|
+
// Build the instance shell (never persisted — no mongoId).
|
|
281
|
+
const instance = {
|
|
282
|
+
code: 'fallback',
|
|
283
|
+
name: 'Fallback Instance',
|
|
284
|
+
description: 'Auto-generated procedural world (not persisted)',
|
|
285
|
+
tags: ['fallback', 'procedural'],
|
|
286
|
+
cyberiaMapCodes: mapCodes,
|
|
287
|
+
portals,
|
|
288
|
+
topologyMode: 'procedural',
|
|
289
|
+
playerSpawn: { ...DEFAULT_PLAYER_SPAWN },
|
|
290
|
+
};
|
|
291
|
+
|
|
292
|
+
return {
|
|
293
|
+
instance,
|
|
294
|
+
maps,
|
|
295
|
+
portals,
|
|
296
|
+
topology,
|
|
297
|
+
config: CYBERIA_INSTANCE_CONF_DEFAULTS,
|
|
298
|
+
presentationHints: CYBERIA_CLIENT_HINTS_DEFAULTS,
|
|
299
|
+
_fallback: true,
|
|
300
|
+
};
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
// ── Selection-view fallback instance ─────────────────────────────────────────
|
|
304
|
+
//
|
|
305
|
+
// A dummy, never-persisted instance surfaced in the world/instance selection
|
|
306
|
+
// list so it is never empty: it points at the always-on TEST variant (a real
|
|
307
|
+
// deployed world in the mmo-server multiInstance block). Shaped like a
|
|
308
|
+
// CyberiaInstance list row — only the fields InstanceSelectionView reads
|
|
309
|
+
// (code/name/description/tags/status/thumbnail). Injected into the instance list
|
|
310
|
+
// return by CyberiaInstanceService.get when the caller opts in (?fallback=true).
|
|
311
|
+
|
|
312
|
+
const DEFAULT_FALLBACK_INSTANCE_CODE = 'TEST';
|
|
313
|
+
|
|
314
|
+
function fallbackListInstance() {
|
|
315
|
+
return {
|
|
316
|
+
_id: `fallback-${DEFAULT_FALLBACK_INSTANCE_CODE.toLowerCase()}`,
|
|
317
|
+
code: DEFAULT_FALLBACK_INSTANCE_CODE,
|
|
318
|
+
name: 'Test Grounds',
|
|
319
|
+
description: 'Always-on sandbox world — drop in to explore a procedurally generated instance.',
|
|
320
|
+
tags: ['fallback', 'test', 'sandbox'],
|
|
321
|
+
status: 'published',
|
|
322
|
+
thumbnail: null,
|
|
323
|
+
cyberiaMapCodes: [],
|
|
324
|
+
creator: null,
|
|
325
|
+
_fallback: true,
|
|
326
|
+
};
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
// ── Public API ───────────────────────────────────────────────────────────────
|
|
330
|
+
|
|
331
|
+
export {
|
|
332
|
+
generateFallbackWorld,
|
|
333
|
+
generateFallbackMap,
|
|
334
|
+
auditFallbackItemIds,
|
|
335
|
+
fallbackListInstance,
|
|
336
|
+
DEFAULT_FALLBACK_INSTANCE_CODE,
|
|
337
|
+
};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* REST boot service — the /api/cyberia-instance/boot/* fallback transport.
|
|
3
|
+
*
|
|
4
|
+
* Serves the exact CyberiaDataService payloads (world load, hot reload) over
|
|
5
|
+
* REST so cyberia-server can boot from ENGINE_API_BASE_URL when the engine
|
|
6
|
+
* gRPC server (ENGINE_GRPC_ADDRESS) is not enabled for the deploy. All data
|
|
7
|
+
* assembly lives in src/projects/cyberia/instance-data.js, shared with
|
|
8
|
+
* src/grpc/cyberia/grpc-server.js so both transports stay equivalent.
|
|
9
|
+
*
|
|
10
|
+
* Endpoints (all GET, internal server-to-server, mirroring the RPCs):
|
|
11
|
+
* /boot/ping → { serverTimeMs }
|
|
12
|
+
* /boot/object-layers[?itemType=x] → ObjectLayerMessage[] (getObjectLayerBatch)
|
|
13
|
+
* /boot/object-layer/:itemId → ObjectLayerMessage | 404 (getObjectLayer)
|
|
14
|
+
* /boot/map/:mapCode[?instanceCode=] → { map } | 404 (getMapData)
|
|
15
|
+
* /boot/full-instance[/:instanceCode]→ full world payload (getFullInstance)
|
|
16
|
+
* /boot/object-layer-manifest → { entries } (getObjectLayerManifest)
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
import {
|
|
20
|
+
fetchFullInstance,
|
|
21
|
+
fetchMapData,
|
|
22
|
+
fetchObjectLayer,
|
|
23
|
+
fetchObjectLayerBatch,
|
|
24
|
+
fetchObjectLayerManifest,
|
|
25
|
+
getInstanceModels,
|
|
26
|
+
pingData,
|
|
27
|
+
} from '../../projects/cyberia/instance-data.js';
|
|
28
|
+
|
|
29
|
+
class CyberiaInstanceBootService {
|
|
30
|
+
static ping = async () => pingData();
|
|
31
|
+
|
|
32
|
+
static objectLayerBatch = async (req, res, options) =>
|
|
33
|
+
await fetchObjectLayerBatch(getInstanceModels(options), req.query.itemType);
|
|
34
|
+
|
|
35
|
+
static objectLayer = async (req, res, options) => {
|
|
36
|
+
const msg = await fetchObjectLayer(getInstanceModels(options), req.params.itemId);
|
|
37
|
+
if (!msg) throw new Error(`ObjectLayer "${req.params.itemId}" not found`);
|
|
38
|
+
return msg;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
static mapData = async (req, res, options) => {
|
|
42
|
+
const result = await fetchMapData(getInstanceModels(options), {
|
|
43
|
+
mapCode: req.params.mapCode,
|
|
44
|
+
instanceCode: req.query.instanceCode,
|
|
45
|
+
});
|
|
46
|
+
if (!result) throw new Error(`Map "${req.params.mapCode}" not found`);
|
|
47
|
+
return result;
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
static fullInstance = async (req, res, options) =>
|
|
51
|
+
await fetchFullInstance(getInstanceModels(options), req.params.instanceCode);
|
|
52
|
+
|
|
53
|
+
static objectLayerManifest = async (req, res, options) =>
|
|
54
|
+
await fetchObjectLayerManifest(getInstanceModels(options));
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export { CyberiaInstanceBootService };
|