@underpostnet/cyberia 3.3.0 → 3.3.76
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 +1 -0
- package/.env.example +17 -5
- package/.github/workflows/coverall.cyberia.ci.yml +39 -14
- package/.github/workflows/cyberia-client.cd.yml +5 -0
- package/.github/workflows/cyberia-server.cd.yml +5 -0
- package/.github/workflows/docker-image.cyberia-client.ci.yml +8 -5
- package/.github/workflows/docker-image.cyberia-client.dev.ci.yml +8 -3
- package/.github/workflows/docker-image.cyberia-server.ci.yml +8 -5
- package/.github/workflows/docker-image.cyberia-server.dev.ci.yml +8 -5
- package/.github/workflows/docker-image.engine-cyberia.ci.yml +15 -1
- package/.github/workflows/docker-image.engine-cyberia.dev.ci.yml +15 -1
- package/.github/workflows/engine-cyberia.cd.yml +3 -0
- package/.github/workflows/engine-cyberia.ci.yml +4 -5
- package/.github/workflows/ghpkg.ci.yml +35 -20
- package/.github/workflows/hardhat.ci.yml +12 -11
- package/.github/workflows/npmpkg.ci.yml +17 -15
- package/.github/workflows/publish.cyberia.ci.yml +44 -0
- package/.github/workflows/pwa-microservices-template-test.ci.yml +2 -2
- package/.github/workflows/release.cd.yml +1 -0
- package/.prettierignore +1 -0
- package/AGENTS.md +96 -0
- package/CHANGELOG.md +653 -2513
- package/CLI-HELP.md +323 -157
- package/Dockerfile +25 -9
- package/Dockerfile.dev +25 -9
- package/Dockerfile.test +5 -5
- package/README.md +48 -28
- package/bin/build.js +86 -41
- package/bin/build.template.js +8 -3
- package/bin/cyberia.js +1494 -1403
- package/bin/deploy.js +18 -104
- package/bin/index.js +1494 -1403
- package/compose.env +17 -5
- package/conf.js +98 -7
- package/deploy/cyberia-client/deploy.sh +46 -0
- package/deploy/cyberia-client/package.sh +17 -0
- package/deploy/cyberia-client/state.sh +15 -0
- package/deploy/cyberia-server/deploy.sh +46 -0
- package/deploy/cyberia-server/package.sh +17 -0
- package/deploy/cyberia-server/state.sh +15 -0
- package/deploy/dd-cyberia/deploy.sh +9 -29
- package/deploy/dd-cyberia/init.sh +38 -45
- package/deploy/dd-cyberia/package.sh +16 -0
- package/deploy/dd-cyberia/state.sh +14 -0
- package/deploy/dd-cyberia/sync-deploy.sh +133 -147
- package/deploy/lib/config.sh +29 -0
- package/deploy/lib/github-actions-logging.sh +610 -0
- package/deploy/lib/host.sh +194 -0
- package/deploy/lib/state.sh +65 -0
- package/deploy/pwa-microservices-template/deploy.sh +17 -42
- package/deploy/release/deploy.sh +9 -41
- package/deployment.yaml +7 -2
- package/docker-compose.yml +23 -17
- package/examples/static-page/README.md +19 -19
- package/examples/static-page/ssr-components/CustomPage.js +2 -2
- package/hardhat/hardhat.config.js +1 -6
- package/hardhat/package-lock.json +101 -40
- package/hardhat/package.json +2 -2
- package/manifests/alertmanager/deployment.yaml +81 -0
- package/manifests/blackbox-exporter/deployment.yaml +75 -0
- package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +32 -7
- package/manifests/cronjobs/dd-cron/dd-cron-vultr.yaml +32 -7
- package/manifests/deployment/dd-cyberia-development/deployment.yaml +7 -2
- package/manifests/deployment/dd-default-development/deployment.yaml +2 -2
- package/manifests/deployment/mongo-express/deployment.yaml +46 -27
- package/manifests/deployment/mongo-express/kustomization.yaml +9 -0
- package/manifests/deployment/mongo-express/mongo-express-nodeport.yaml +18 -0
- package/manifests/deployment/mongo-express/service.yaml +16 -0
- package/manifests/deployment/mongo-express-no-auth/disable-mongodb-auth.yaml +16 -0
- package/manifests/deployment/mongo-express-no-auth/kustomization.yaml +16 -0
- package/manifests/grafana/deployment.yaml +26 -7
- package/manifests/grafana/kustomization.yaml +1 -0
- package/manifests/grafana/service.yaml +6 -1
- package/manifests/mariadb/pv.yaml +1 -0
- package/manifests/mongodb/statefulset.yaml +9 -2
- package/manifests/mysql/pv-pvc.yaml +14 -1
- package/manifests/postgresql/pv.yaml +12 -1
- package/manifests/postgresql/pvc.yaml +1 -0
- package/manifests/prometheus/deployment.yaml +18 -22
- package/package.json +87 -12
- package/scripts/event-monitor.sh +56 -0
- package/scripts/k3s-node-setup.sh +27 -14
- package/scripts/kubeadm-node-setup.sh +31 -11
- package/scripts/maas-setup.sh +8 -8
- package/scripts/selinux-normalize.sh +907 -0
- package/scripts/shutdown-machine.sh +843 -0
- package/scripts/test-monitor.sh +5 -5
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.controller.js +15 -10
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.model.js +36 -5
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.router.js +7 -2
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.service.js +90 -186
- package/src/api/core/core.controller.js +1 -1
- package/src/api/core/core.router.js +2 -2
- package/src/api/core/core.service.js +2 -2
- package/src/api/crypto/crypto.controller.js +1 -1
- package/src/api/crypto/crypto.service.js +1 -1
- package/src/api/cyberia-action/cyberia-action.controller.js +1 -1
- package/src/api/cyberia-action/cyberia-action.router.js +3 -3
- package/src/api/cyberia-action/cyberia-action.service.js +5 -6
- package/src/api/cyberia-audio/cyberia-audio.controller.js +6 -0
- package/src/api/cyberia-audio/cyberia-audio.model.js +61 -0
- package/src/api/cyberia-audio/cyberia-audio.router.js +21 -0
- package/src/api/cyberia-audio/cyberia-audio.service.js +220 -0
- package/src/api/cyberia-client-hints/cyberia-client-hints.controller.js +2 -4
- package/src/api/cyberia-client-hints/cyberia-client-hints.model.js +10 -19
- package/src/api/cyberia-client-hints/cyberia-client-hints.router.js +13 -35
- package/src/api/cyberia-client-hints/cyberia-client-hints.service.js +17 -34
- package/src/api/cyberia-dialogue/cyberia-dialogue.controller.js +1 -1
- package/src/api/cyberia-dialogue/cyberia-dialogue.model.js +1 -1
- package/src/api/cyberia-dialogue/cyberia-dialogue.router.js +2 -2
- package/src/api/cyberia-dialogue/cyberia-dialogue.service.js +2 -2
- package/src/api/cyberia-entity/cyberia-entity.controller.js +1 -1
- package/src/api/cyberia-entity/cyberia-entity.model.js +2 -0
- package/src/api/cyberia-entity/cyberia-entity.router.js +1 -1
- package/src/api/cyberia-entity/cyberia-entity.service.js +3 -3
- package/src/api/cyberia-entity-type-default/cyberia-entity-type-default.controller.js +8 -2
- package/src/api/cyberia-entity-type-default/cyberia-entity-type-default.model.js +31 -20
- package/src/api/cyberia-entity-type-default/cyberia-entity-type-default.router.js +17 -2
- package/src/api/cyberia-entity-type-default/cyberia-entity-type-default.service.js +468 -5
- package/src/api/cyberia-instance/cyberia-fallback-capture.js +502 -0
- package/src/api/cyberia-instance/cyberia-fallback-world.js +29 -40
- package/src/api/cyberia-instance/cyberia-instance-boot.service.js +5 -5
- package/src/api/cyberia-instance/cyberia-instance-items.js +98 -0
- package/src/api/cyberia-instance/cyberia-instance-map.service.js +35 -142
- package/src/api/cyberia-instance/cyberia-instance.controller.js +2 -5
- package/src/api/cyberia-instance/cyberia-instance.model.js +0 -14
- package/src/api/cyberia-instance/cyberia-instance.router.js +5 -18
- package/src/api/cyberia-instance/cyberia-instance.service.js +5 -45
- package/src/api/cyberia-instance/cyberia-world-generator.js +8 -13
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.controller.js +1 -1
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.model.js +49 -75
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.router.js +1 -1
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.service.js +76 -3
- package/src/api/cyberia-map/cyberia-map.controller.js +1 -1
- package/src/api/cyberia-map/cyberia-map.router.js +1 -1
- package/src/api/cyberia-map/cyberia-map.service.js +8 -4
- package/src/api/cyberia-map-audio-conf/cyberia-map-audio-conf.controller.js +31 -0
- package/src/api/cyberia-map-audio-conf/cyberia-map-audio-conf.model.js +56 -0
- package/src/api/cyberia-map-audio-conf/cyberia-map-audio-conf.router.js +33 -0
- package/src/api/cyberia-map-audio-conf/cyberia-map-audio-conf.service.js +189 -0
- package/src/api/cyberia-quest/cyberia-quest.controller.js +1 -1
- package/src/api/cyberia-quest/cyberia-quest.router.js +4 -4
- package/src/api/cyberia-quest/cyberia-quest.service.js +5 -5
- package/src/api/cyberia-quest-progress/cyberia-quest-progress.controller.js +1 -1
- package/src/api/cyberia-quest-progress/cyberia-quest-progress.model.js +1 -1
- package/src/api/cyberia-quest-progress/cyberia-quest-progress.router.js +1 -1
- package/src/api/cyberia-quest-progress/cyberia-quest-progress.service.js +2 -2
- package/src/api/cyberia-saga/cyberia-saga.controller.js +1 -1
- package/src/api/cyberia-saga/cyberia-saga.router.js +1 -1
- package/src/api/cyberia-saga/cyberia-saga.service.js +2 -2
- package/src/api/cyberia-server-defaults/cyberia-server-defaults.js +403 -214
- package/src/api/cyberia-skill/cyberia-skill.controller.js +1 -1
- package/src/api/cyberia-skill/cyberia-skill.model.js +6 -6
- package/src/api/cyberia-skill/cyberia-skill.router.js +1 -1
- package/src/api/cyberia-skill/cyberia-skill.service.js +2 -2
- package/src/api/default/default.controller.js +1 -1
- package/src/api/default/default.router.js +1 -1
- package/src/api/default/default.service.js +2 -2
- package/src/api/document/document.controller.js +1 -1
- package/src/api/document/document.router.js +1 -1
- package/src/api/document/document.service.js +2 -2
- package/src/api/file/file.controller.js +1 -1
- package/src/api/file/file.ref.js +153 -0
- package/src/api/file/file.ref.json +11 -2
- package/src/api/file/file.router.js +1 -1
- package/src/api/file/file.service.js +2 -2
- package/src/api/instance/instance.controller.js +1 -1
- package/src/api/instance/instance.router.js +1 -1
- package/src/api/instance/instance.service.js +2 -2
- package/src/api/ipfs/ipfs.controller.js +1 -1
- package/src/api/ipfs/ipfs.router.js +2 -2
- package/src/api/ipfs/ipfs.service.js +2 -2
- package/src/api/object-layer/object-layer.controller.js +1 -1
- package/src/api/object-layer/object-layer.model.js +47 -12
- package/src/api/object-layer/object-layer.router.js +12 -5
- package/src/api/object-layer/object-layer.service.js +116 -123
- package/src/api/object-layer-render-frames/object-layer-render-frames.controller.js +1 -1
- package/src/api/object-layer-render-frames/object-layer-render-frames.router.js +1 -1
- package/src/api/object-layer-render-frames/object-layer-render-frames.service.js +2 -2
- package/src/api/test/test.controller.js +1 -1
- package/src/api/test/test.service.js +1 -1
- package/src/api/user/guest.service.js +3 -3
- package/src/api/user/user.controller.js +1 -1
- package/src/api/user/user.router.js +2 -2
- package/src/api/user/user.service.js +4 -4
- package/src/api.js +5 -9
- package/src/cli/app.js +402 -0
- package/src/cli/baremetal.js +30 -35
- package/src/cli/client.js +306 -0
- package/src/cli/cloud-init.js +3 -3
- package/src/cli/cluster.js +191 -82
- package/src/cli/db.js +120 -68
- package/src/cli/deploy.js +157 -75
- package/src/cli/docker-compose.js +5 -5
- package/src/cli/domains.js +184 -0
- package/src/cli/dotenv-store.js +143 -0
- package/src/cli/event.js +2281 -0
- package/src/cli/fs-selection.js +115 -0
- package/src/cli/fs.js +159 -343
- package/src/cli/host.js +672 -0
- package/src/cli/image.js +4 -6
- package/src/cli/index.js +343 -151
- package/src/cli/ipfs.js +34 -30
- package/src/cli/kickstart.js +1 -1
- package/src/cli/kubectl.js +218 -41
- package/src/cli/lxd.js +3 -3
- package/src/cli/monitor.js +1359 -26
- package/src/cli/package.js +90 -0
- package/src/cli/release.js +16 -12
- package/src/cli/repository.js +586 -363
- package/src/cli/run.js +398 -843
- package/src/cli/secrets.js +2158 -964
- package/src/cli/ssh.js +478 -279
- package/src/cli/state.js +394 -0
- package/src/cli/static.js +2 -2
- package/src/cli/system.js +1 -1
- package/src/cli/test.js +203 -125
- package/src/cli/vultr.js +61 -21
- package/src/cli/wireguard.js +1112 -306
- package/src/client/components/core/CalendarCore.js +53 -96
- package/src/client/components/core/Docs.js +327 -303
- package/src/client/components/core/FileExplorer.js +0 -21
- package/src/client/components/core/Modal.js +56 -1
- package/src/client/components/core/PanelForm.js +4 -4
- package/src/client/components/core/Repository.js +56 -0
- package/src/client/components/core/Translate.js +7 -0
- package/src/client/components/core/{FullScreen.js → ViewModeController.js} +42 -39
- package/src/client/components/core/Wallet.js +0 -11
- package/src/client/components/core/Worker.js +7 -1
- package/src/client/components/cryptokoyn/SettingsCryptokoyn.js +2 -2
- package/src/client/components/cyberia/ActionEngineCyberia.js +12 -36
- package/src/client/components/cyberia/EntityEngineCyberia.js +492 -121
- package/src/client/components/cyberia/InstanceEngineCyberia.js +129 -160
- package/src/client/components/cyberia/InstanceSelectionView.js +7 -1
- package/src/client/components/cyberia/MapEngineCyberia.js +175 -69
- package/src/client/components/cyberia/ObjectLayerEngine.js +1011 -97
- package/src/client/components/cyberia/ObjectLayerEngineModal.js +81 -155
- package/src/client/components/cyberia/ObjectLayerEngineViewer.js +113 -98
- package/src/client/components/cyberia/SharedDefaultsCyberia.js +215 -56
- package/src/client/components/cyberia-portal/AppShellCyberiaPortal.js +2 -35
- package/src/client/components/cyberia-portal/CssCyberiaPortal.js +1 -1
- package/src/client/components/cyberia-portal/MainBodyCyberiaPortal.js +712 -76
- package/src/client/components/cyberia-portal/SettingsCyberiaPortal.js +2 -2
- package/src/client/components/cyberia-portal/TranslateCyberiaPortal.js +0 -4
- package/src/client/components/default/AppShellDefault.js +1 -1
- package/src/client/components/default/SettingsDefault.js +2 -2
- package/src/client/components/itemledger/SettingsItemledger.js +2 -2
- package/src/client/components/underpost/AppShellUnderpost.js +3 -2
- package/src/client/components/underpost/SettingsUnderpost.js +2 -2
- package/src/client/public/cyberia-docs/ARCHITECTURE.md +15 -15
- package/src/client/public/cyberia-docs/CYBERIA-CLI.md +313 -30
- package/src/client/public/cyberia-docs/CYBERIA-CLIENT.md +51 -29
- package/src/client/public/cyberia-docs/CYBERIA-SAGA.md +52 -53
- package/src/client/public/cyberia-docs/CYBERIA-SERVER.md +16 -11
- package/src/client/public/cyberia-docs/CYBERIA.md +48 -28
- package/src/client/public/cyberia-docs/ENTITY-PROFILE.md +11 -5
- package/src/client/public/cyberia-docs/HARDHAT-MODULE.md +23 -6
- package/src/client/public/cyberia-docs/ROADMAP.md +1 -1
- package/src/client/public/cyberia-docs/STATS-PROGRESSION.md +217 -0
- package/src/client/public/cyberia-docs/WHITE-PAPER.md +20 -12
- 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.png +0 -0
- package/src/client/public/default/apple-touch-icon-120x120.png +0 -0
- package/src/client/public/default/apple-touch-icon-144x144.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.png +0 -0
- package/src/client/public/default/apple-touch-icon-57x57.png +0 -0
- package/src/client/public/default/apple-touch-icon-60x60.png +0 -0
- package/src/client/public/default/apple-touch-icon-72x72.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/white.jpg +0 -0
- package/src/client/public/default/browserconfig.xml +1 -1
- 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 +5 -5
- 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/yandex-browser-50x50.png +0 -0
- package/src/client/public/default/yandex-browser-manifest.json +1 -1
- package/src/client/services/cyberia-audio/cyberia-audio.service.js +99 -0
- package/src/client/services/cyberia-entity-type-default/cyberia-entity-type-default.service.js +38 -0
- package/src/client/services/cyberia-instance/cyberia-instance.management.js +5 -4
- package/src/client/services/cyberia-instance/cyberia-instance.service.js +0 -40
- package/src/client/services/cyberia-map/cyberia-map.management.js +5 -4
- package/src/client/services/cyberia-map-audio-conf/cyberia-map-audio-conf.service.js +138 -0
- package/src/client/services/object-layer/object-layer.management.js +6 -10
- package/src/client/services/object-layer/object-layer.service.js +3 -1
- package/src/client/ssr/RootDocument.js +1 -1
- package/src/client/ssr/body/404.js +1 -1
- package/src/client/ssr/body/500.js +1 -1
- package/src/client/ssr/body/CacheControl.js +1 -1
- package/src/client/ssr/body/CyberiaDefaultSplashScreen.js +1 -1
- package/src/client/ssr/body/DefaultSplashScreen.js +1 -1
- package/src/client/ssr/body/SwaggerDarkMode.js +1 -1
- package/src/client/ssr/body/UnderpostDefaultSplashScreen.js +1 -1
- package/src/client/ssr/head/CryptokoynScripts.js +1 -1
- package/src/client/ssr/head/Css.js +1 -1
- package/src/client/ssr/head/CyberiaPortalScripts.js +1 -1
- package/src/client/ssr/head/DefaultScripts.js +1 -1
- package/src/client/ssr/head/ItemledgerScripts.js +1 -1
- package/src/client/ssr/head/Microdata.js +1 -1
- package/src/client/ssr/head/Production.js +1 -1
- package/src/client/ssr/head/Pwa.js +1 -1
- package/src/client/ssr/head/PwaItemledger.js +1 -1
- package/src/client/ssr/head/Seo.js +1 -1
- package/src/client/ssr/head/UnderpostScripts.js +1 -1
- package/src/client/ssr/mailer/DefaultRecoverEmail.js +1 -1
- package/src/client/ssr/mailer/DefaultVerifyEmail.js +1 -1
- package/src/client/ssr/views/Cyberia404.js +7 -5
- package/src/client/ssr/views/CyberiaServerMetrics.js +1 -1
- package/src/client/ssr/views/Maintenance.js +1 -1
- package/src/client/ssr/views/NoNetworkConnection.js +1 -1
- package/src/client/ssr/views/Test.js +1 -1
- package/src/client/sw/core.sw.js +20 -14
- package/src/client-builder/client-build-docs.js +92 -77
- package/src/client-builder/client-build-live.js +2 -2
- package/src/client-builder/client-build.js +105 -74
- package/src/client-builder/client-bundle.js +347 -0
- package/src/client-builder/client-dev-server.js +3 -3
- package/src/client-builder/client-icons.js +2 -2
- package/src/client-builder/ssr.js +3 -3
- package/src/client.build.js +3 -6
- package/src/client.dev.js +3 -6
- package/src/db/DataBaseProvider.js +186 -3
- package/src/db/mariadb/MariaDB.js +3 -2
- package/src/db/mongo/MongoBootstrap.js +273 -101
- package/src/db/mongo/MongoExpress.js +187 -0
- package/src/db/mongo/MongooseDB.js +7 -8
- package/src/{server/valkey.js → db/valkey/Valkey.js} +5 -4
- package/src/grpc/cyberia/grpc-server.js +6 -8
- package/src/index.js +79 -23
- package/src/mailer/EmailRender.js +2 -2
- package/src/mailer/MailerInterceptor.js +87 -0
- package/src/mailer/MailerProvider.js +50 -6
- package/src/projects/cyberia/atlas-sprite-sheet-generator.js +144 -147
- package/src/projects/cyberia/atlas-sprite-sheet-store.js +391 -0
- package/src/projects/cyberia/besu-genesis-generator.js +8 -17
- package/src/projects/cyberia/boot-contract-fixtures.js +32 -0
- package/src/projects/cyberia/catalog-cyberia.js +54 -10
- package/src/projects/cyberia/gemini-client.js +4 -4
- package/src/projects/cyberia/generate-saga.js +5 -12
- package/src/projects/cyberia/hot-reload-trigger.js +18 -29
- package/src/projects/cyberia/instance-backup.js +210 -0
- package/src/projects/cyberia/instance-data.js +178 -258
- package/src/projects/cyberia/ipfs-client.js +4 -4
- package/src/projects/cyberia/map-preview-generator.js +33 -69
- package/src/projects/cyberia/object-layer.js +153 -320
- package/src/projects/cyberia/seed-audio.js +139 -0
- package/src/projects/cyberia/semantic-layer-generator-skin.js +2 -8
- package/src/projects/cyberia/semantic-layer-generator.js +3 -19
- package/src/projects/cyberia/stat-balance.js +81 -0
- package/src/projects/cyberia/stat-commands.js +23 -0
- package/src/projects/cyberia/stat-contract-generator.js +101 -0
- package/src/projects/underpost/catalog-underpost.js +9 -1
- package/src/proxy.js +4 -7
- package/src/runtime/cyberia-client/Dockerfile +17 -8
- package/src/runtime/cyberia-client/Dockerfile.dev +13 -4
- package/src/runtime/cyberia-server/Dockerfile +18 -6
- package/src/runtime/cyberia-server/Dockerfile.dev +16 -3
- package/src/runtime/engine-cyberia/Dockerfile +25 -9
- package/src/runtime/engine-cyberia/Dockerfile.dev +25 -9
- package/src/runtime/engine-cyberia/Dockerfile.test +5 -5
- package/src/runtime/engine-cyberia/compose.env +17 -5
- package/src/runtime/engine-cyberia/docker-compose.yml +23 -17
- package/src/runtime/express/Express.js +32 -27
- package/src/runtime/lampp/Lampp.js +22 -70
- package/src/runtime/nginx/Nginx.js +1 -1
- package/src/runtime/wp/Wp.js +16 -48
- package/src/server/{catalog.js → build/catalog.js} +15 -5
- package/src/server/build/coverage.js +188 -0
- package/src/server/build/execution.js +402 -0
- package/src/server/build/package.js +508 -0
- package/src/server/build/testing.js +578 -0
- package/src/server/{dns.js → network/dns.js} +144 -11
- package/src/server/{forward-proxy.js → network/forward-proxy.js} +10 -18
- package/src/server/{middlewares.js → network/middlewares.js} +11 -5
- package/src/server/network/node-capability.js +98 -0
- package/src/server/{peer.js → network/peer.js} +3 -3
- package/src/server/{proxy.js → network/proxy.js} +7 -13
- package/src/server/network/router.js +356 -0
- package/src/server/{tls.js → network/tls.js} +2 -2
- package/src/server/{underpost-compression.js → network/underpost-compression.js} +1 -1
- package/src/server/{underpost-gateway.js → network/underpost-gateway.js} +7 -7
- package/src/server/{underpost-ingress.js → network/underpost-ingress.js} +2 -2
- package/src/server/{cri.js → ops/cri.js} +2 -2
- package/src/server/{cron.js → ops/cron.js} +349 -74
- package/src/server/ops/event-notification.js +284 -0
- package/src/server/{logger.js → ops/logger.js} +143 -23
- package/src/server/ops/monitoring.js +1724 -0
- package/src/server/{systemd.js → ops/systemd.js} +55 -1
- package/src/server/{conf.js → runtime/conf.js} +516 -423
- package/src/server/runtime/config-scope.js +215 -0
- package/src/server/runtime/environment.js +149 -0
- package/src/server/{process.js → runtime/process.js} +153 -12
- package/src/server/{runtime-status.js → runtime/runtime-status.js} +155 -16
- package/src/server/{runtime.js → runtime/runtime.js} +12 -8
- package/src/server/{start.js → runtime/start.js} +128 -39
- package/src/server/{auth.js → security/auth.js} +7 -8
- package/src/server/security/container-storage.js +382 -0
- package/src/server/{crypto.js → security/crypto.js} +1 -1
- package/src/server/{selinux.js → security/selinux.js} +1 -1
- package/src/server/{backup.js → storage/backup.js} +17 -8
- package/src/server/{data-query.js → storage/data-query.js} +17 -1
- package/src/server/storage/downloader.js +121 -0
- package/src/server/storage/repository.js +68 -0
- package/src/server/storage/zip.js +153 -0
- package/src/server.js +4 -7
- package/src/ws/IoInterface.js +1 -1
- package/src/ws/IoServer.js +1 -1
- package/src/ws/core/core.ws.connection.js +1 -1
- package/src/ws/core/core.ws.emit.js +1 -1
- package/src/ws/core/core.ws.server.js +1 -1
- package/src/ws/default/default.ws.connection.js +1 -1
- package/src/ws/default/default.ws.emit.js +1 -1
- package/src/ws/default/default.ws.server.js +1 -1
- package/test/e2e/event-e2e-public-ingress-down.js +45 -0
- package/test/e2e/event-e2e-wireguard-server-down.js +38 -0
- package/test/e2e/event-e2e-wireguard-spoke-down.js +40 -0
- package/test/{api.test.js → integration/app/api.test.js} +33 -14
- package/test/integration/app/cyberia/atlas-sprite-sheet-store.test.js +402 -0
- package/test/integration/app/cyberia/atlas-sprite-sheet.test.js +86 -0
- package/test/integration/app/cyberia/cyberia-cli-plain-reads.test.js +64 -0
- package/test/integration/app/cyberia/cyberia-entity-type-default.test.js +842 -0
- package/test/integration/app/cyberia/cyberia-instance-conf-coerce.test.js +53 -0
- package/test/{cyberia-instance-conf-defaults.test.js → integration/app/cyberia/cyberia-instance-conf-defaults.test.js} +17 -23
- package/test/integration/app/cyberia/cyberia-instance-items.test.js +90 -0
- package/test/integration/app/cyberia/cyberia-load.test.js +466 -0
- package/test/integration/app/cyberia/cyberia-map-audio-conf.test.js +256 -0
- package/test/integration/app/cyberia/cyberia-stats.test.js +150 -0
- package/test/integration/app/cyberia/fallback-world-capture.test.js +338 -0
- package/test/integration/app/cyberia/object-layer-item-id.test.js +327 -0
- package/test/integration/app/cyberia/object-layer-item-selection.test.js +56 -0
- package/test/integration/app/cyberia/object-layer-natural-key.test.js +32 -0
- package/test/integration/app/cyberia/seed-audio.test.js +275 -0
- package/test/{shape-generator.test.js → integration/app/cyberia/shape-generator.test.js} +1 -1
- package/test/integration/infra/1-security/config-scope.test.js +305 -0
- package/test/integration/infra/1-security/container-storage.test.js +356 -0
- package/test/integration/infra/1-security/in-pod-cli-surface.test.js +86 -0
- package/test/integration/infra/1-security/secret-onboarding.test.js +930 -0
- package/test/{selinux.test.js → integration/infra/1-security/selinux.test.js} +2 -4
- package/test/{sops-secret-store.test.js → integration/infra/1-security/sops-secret-store.test.js} +415 -61
- package/test/integration/infra/1-security/systemd-service.test.js +70 -0
- package/test/integration/infra/1-security/underpost-config-secret.test.js +367 -0
- package/test/integration/infra/2-network/dns-firewall.test.js +566 -0
- package/test/integration/infra/2-network/node-capability.test.js +182 -0
- package/test/integration/infra/2-network/wireguard-cli.test.js +1187 -0
- package/test/{wireguard-edge.test.js → integration/infra/2-network/wireguard-edge.test.js} +649 -55
- package/test/{cluster-instances.test.js → integration/infra/3-cluster/cluster-instances.test.js} +11 -15
- package/test/{deploy-node-placement.test.js → integration/infra/3-cluster/deploy-node-placement.test.js} +3 -3
- package/test/integration/infra/3-cluster/docker-compose-stack.test.js +313 -0
- package/test/integration/infra/3-cluster/mongo-express-deploy.test.js +156 -0
- package/test/integration/infra/4-ingress/api-cross-origin.test.js +79 -0
- package/test/integration/infra/4-ingress/deploy-routes.test.js +379 -0
- package/test/integration/infra/4-ingress/gateway-static-assets.test.js +453 -0
- package/test/{instance-traffic-plan.test.js → integration/infra/4-ingress/instance-traffic-plan.test.js} +10 -6
- package/test/{underpost-gateway.test.js → integration/infra/4-ingress/underpost-gateway.test.js} +6 -6
- package/test/{underpost-ingress.test.js → integration/infra/4-ingress/underpost-ingress.test.js} +4 -4
- package/test/integration/infra/5-observability/cron-jobs.test.js +652 -0
- package/test/{deploy-monitor.test.js → integration/infra/5-observability/deploy-monitor.test.js} +29 -31
- package/test/integration/infra/5-observability/event-notification.test.js +197 -0
- package/test/integration/infra/5-observability/event-remediation.test.js +502 -0
- package/test/integration/infra/5-observability/event-targets.test.js +1174 -0
- package/test/integration/infra/5-observability/monitoring-stack.test.js +902 -0
- package/test/support/shell-harness.js +73 -0
- package/test/unit/build-template.test.js +97 -0
- package/test/unit/build-workflow-offline.test.js +132 -0
- package/test/unit/catalog.test.js +71 -0
- package/test/unit/client-build-docs.test.js +361 -0
- package/test/unit/client-bundle.test.js +313 -0
- package/test/unit/conf-loading.test.js +303 -0
- package/test/unit/conf-resolution.test.js +996 -0
- package/test/unit/coverage-artifact.test.js +221 -0
- package/test/{crypto.test.js → unit/crypto.test.js} +1 -1
- package/test/unit/cyberia/instance-backup.test.js +183 -0
- package/test/unit/cyberia/instance-object-layer-items.test.js +46 -0
- package/test/unit/cyberia/publish-workflow.test.js +22 -0
- package/test/unit/cyberia/stat-balance.test.js +69 -0
- package/test/unit/deploy-env-resolution.test.js +38 -0
- package/test/unit/deploy-log-table.test.js +518 -0
- package/test/unit/downloader-integrity.test.js +98 -0
- package/test/unit/execution-profiles.test.js +219 -0
- package/test/unit/file-reference-registry.test.js +141 -0
- package/test/unit/fleet-sync-source.test.js +149 -0
- package/test/unit/fs-storage-paths.test.js +596 -0
- package/test/unit/logger-redaction.test.js +141 -0
- package/test/unit/package.test.js +457 -0
- package/test/unit/prepare-host.test.js +382 -0
- package/test/unit/process-environment.test.js +18 -0
- package/test/unit/propagation-message.test.js +78 -0
- package/test/unit/redeploy-plan.test.js +24 -0
- package/test/unit/release-bump.test.js +474 -0
- package/test/unit/ssh-output-redaction.test.js +28 -0
- package/test/unit/start-options.test.js +46 -0
- package/test/unit/test-tiers.test.js +220 -0
- package/test/unit/zip-archive.test.js +142 -0
- package/vitest.config.js +66 -0
- package/.nycrc +0 -9
- package/deploy/lib/logging.sh +0 -96
- package/manifests/cronjobs/dd-cron/dd-cron-dns.yaml +0 -48
- package/manifests/mongodb/pv-pvc.yaml +0 -59
- package/scripts/coverall-test-cyberia.sh +0 -24
- package/scripts/coverall-test.sh +0 -24
- package/scripts/link-local-underpost-cli.sh +0 -6
- package/src/api/cyberia-instance/cyberia-fallback-default-items.js +0 -63
- package/src/api/user/user.build.js +0 -16
- package/src/cli/env.js +0 -177
- package/src/client/components/core/Blockchain.js +0 -41
- package/src/client/components/core/Blog.js +0 -9
- package/src/client/components/core/KeyboardAvoidance.js +0 -145
- package/src/client/components/cyberia/FallbackWorldEngineCyberia.js +0 -368
- package/src/client/public/default/assets/background/dark.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/doc/favicon.ico +0 -0
- package/src/client/public/doc/sitemap +0 -148
- package/src/server/downloader.js +0 -73
- package/src/server/environment.js +0 -98
package/.dockerignore
CHANGED
package/.env.example
CHANGED
|
@@ -43,25 +43,37 @@ VALKEY_PORT=6379
|
|
|
43
43
|
# cyberia-server-* -> stable engine gateway for HTTP and the raw engine runtime
|
|
44
44
|
# for gRPC. The public engine-cyberia name belongs to nginx, avoiding ambiguous
|
|
45
45
|
# Docker DNS while keeping one stable HTTP endpoint for every module.
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
CYBERIA_DATA_SERVER_URL=http://engine-cyberia
|
|
47
|
+
CYBERIA_DATA_SERVER_GRPC=engine-cyberia-runtime:50051
|
|
48
48
|
|
|
49
49
|
# Client-visible Content Authority origin, forwarded to browser/Raylib clients
|
|
50
50
|
# for every engine-cyberia content/asset/metadata request. Host-reachable
|
|
51
51
|
# (Docker publishes the raw engine runtime on host :4005). Unlike the internal
|
|
52
|
-
#
|
|
52
|
+
# CYBERIA_DATA_SERVER_URL, this value is consumed outside the Compose network:
|
|
53
53
|
# the two responsibilities must never overwrite each other.
|
|
54
54
|
ENGINE_PUBLIC_URL=http://localhost:4005
|
|
55
55
|
ENGINE_GRPC_RELOAD_INTERVAL_SEC=300
|
|
56
56
|
|
|
57
|
-
#
|
|
57
|
+
# Shared secret between the engine and every game server. It guards the server
|
|
58
|
+
# registry report (server -> engine) and the hot-reload trigger (engine ->
|
|
59
|
+
# server). Unset disables both: a server then stays out of the public list.
|
|
60
|
+
CYBERIA_SERVER_API_KEY=change_me_dev_server_api_key
|
|
61
|
+
|
|
62
|
+
# Public origin of the server gateway. Each server reports this origin plus its
|
|
63
|
+
# own sub-path, which is the URL a client dials.
|
|
64
|
+
CYBERIA_SERVER_PUBLIC_ORIGIN=http://localhost:8081
|
|
65
|
+
|
|
66
|
+
# --- Browser-facing client runtime config (injected by wasm-driver.py) -----
|
|
58
67
|
# The single WASM bundle resolves its instance from the URL sub-path and builds
|
|
59
68
|
# its endpoints from these origins. HTTP client/API traffic uses nginx on :80;
|
|
60
69
|
# WebSocket traffic uses the dedicated multi-path server gateway on :8081.
|
|
61
70
|
# http://localhost/ -> default, ws://localhost:8081/ws
|
|
62
71
|
# http://localhost/FOREST -> FOREST, ws://localhost:8081/FOREST/ws
|
|
63
72
|
CYBERIA_WS_ORIGIN=ws://localhost:8081
|
|
64
|
-
|
|
73
|
+
# The browser's own route to the Data Server, through nginx on :80. Distinct from the internal
|
|
74
|
+
# CYBERIA_DATA_SERVER_URL above: both name a Data Server origin, but from opposite sides of the
|
|
75
|
+
# Compose network, and one file cannot hold two values under one name.
|
|
76
|
+
CYBERIA_CLIENT_DATA_SERVER_URL=http://localhost
|
|
65
77
|
CYBERIA_DEFAULT_INSTANCE=amethyst-strata-expansion
|
|
66
78
|
|
|
67
79
|
# cyberia-server logging. This is the dev stack, so default to DEBUG. Set
|
|
@@ -9,11 +9,14 @@ on:
|
|
|
9
9
|
jobs:
|
|
10
10
|
test:
|
|
11
11
|
name: Coverall Cyberia Test
|
|
12
|
+
# Deliberately not the engine repository: two coverage workflows on one commit
|
|
13
|
+
# are two Coveralls builds, and the badge then shows whichever landed last
|
|
14
|
+
# rather than the tree's coverage. The engine is served by coverall.ci.yml.
|
|
12
15
|
if: |
|
|
13
16
|
github.actor != 'dependabot[bot]' &&
|
|
14
|
-
(github.repository == 'underpostnet/engine' ||
|
|
15
|
-
github.repository == 'underpostnet/engine-cyberia' ||
|
|
16
|
-
github.repository == 'underpostnet/engine-
|
|
17
|
+
(github.repository == 'underpostnet/engine-cyberia' ||
|
|
18
|
+
github.repository == 'underpostnet/engine-ghpkg-cyberia' ||
|
|
19
|
+
github.repository == 'underpostnet/engine-test-cyberia')
|
|
17
20
|
runs-on: ubuntu-latest
|
|
18
21
|
container:
|
|
19
22
|
image: quay.io/rockylinux/rockylinux:9
|
|
@@ -31,14 +34,26 @@ jobs:
|
|
|
31
34
|
curl -fsSL https://rpm.nodesource.com/setup_24.x | bash -
|
|
32
35
|
dnf install nodejs -y
|
|
33
36
|
|
|
37
|
+
# gofmt formats the generated stat contract; the cyberia tier's contract
|
|
38
|
+
# check fails without it on PATH.
|
|
39
|
+
- name: Install Go
|
|
40
|
+
run: dnf install -y golang
|
|
41
|
+
|
|
34
42
|
- name: Install project dependencies
|
|
35
43
|
run: npm install
|
|
36
44
|
|
|
37
|
-
|
|
38
|
-
|
|
45
|
+
# Set the COVERAGE_MIN repository variable to gate below the shipped
|
|
46
|
+
# default while the suite is catching up to it.
|
|
47
|
+
- name: Run tests and enforce coverage threshold
|
|
48
|
+
run: COVERAGE_ENFORCE=1 node bin test unit,infra,app,cyberia
|
|
49
|
+
env:
|
|
50
|
+
COVERAGE_MIN: ${{ vars.COVERAGE_MIN }}
|
|
39
51
|
|
|
52
|
+
# Stored even when the threshold step failed — that step still fails the
|
|
53
|
+
# job, but without the report the badge freezes at the last passing build.
|
|
40
54
|
- name: Store coverage report
|
|
41
|
-
|
|
55
|
+
if: '!cancelled()'
|
|
56
|
+
uses: actions/upload-artifact@v7
|
|
42
57
|
with:
|
|
43
58
|
name: coverall-cyberia-lcov
|
|
44
59
|
path: ./coverage/lcov.info
|
|
@@ -47,18 +62,23 @@ jobs:
|
|
|
47
62
|
upload:
|
|
48
63
|
name: Upload Cyberia Coverage to Coveralls
|
|
49
64
|
needs: test
|
|
65
|
+
# Host runner, not the Rocky container the suite runs in: every step of the
|
|
66
|
+
# Coveralls action declares `shell: bash`, which the runner execs inside the
|
|
67
|
+
# job container and cannot resolve there.
|
|
50
68
|
if: |
|
|
69
|
+
!cancelled() &&
|
|
51
70
|
github.actor != 'dependabot[bot]' &&
|
|
52
|
-
(github.repository == 'underpostnet/engine' ||
|
|
53
|
-
github.repository == 'underpostnet/engine-cyberia' ||
|
|
54
|
-
github.repository == 'underpostnet/engine-
|
|
71
|
+
(github.repository == 'underpostnet/engine-cyberia' ||
|
|
72
|
+
github.repository == 'underpostnet/engine-ghpkg-cyberia' ||
|
|
73
|
+
github.repository == 'underpostnet/engine-test-cyberia')
|
|
55
74
|
runs-on: ubuntu-latest
|
|
56
75
|
steps:
|
|
76
|
+
# Coveralls reads the commit and branch metadata from the checkout.
|
|
57
77
|
- name: Clone repository
|
|
58
78
|
uses: actions/checkout@v7
|
|
59
79
|
|
|
60
80
|
- name: Restore coverage report
|
|
61
|
-
uses: actions/download-artifact@
|
|
81
|
+
uses: actions/download-artifact@v8
|
|
62
82
|
with:
|
|
63
83
|
name: coverall-cyberia-lcov
|
|
64
84
|
path: ./coverage
|
|
@@ -68,16 +88,21 @@ jobs:
|
|
|
68
88
|
with:
|
|
69
89
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
70
90
|
file: ./coverage/lcov.info
|
|
71
|
-
|
|
91
|
+
format: lcov
|
|
72
92
|
parallel: true
|
|
93
|
+
fail-on-error: true
|
|
73
94
|
|
|
74
95
|
finish:
|
|
96
|
+
name: Finish Cyberia Coveralls build
|
|
75
97
|
needs: upload
|
|
98
|
+
# The build stays open until this webhook lands, so it runs on any upload
|
|
99
|
+
# outcome rather than leaving a half-reported build behind.
|
|
76
100
|
if: |
|
|
101
|
+
!cancelled() &&
|
|
77
102
|
github.actor != 'dependabot[bot]' &&
|
|
78
|
-
(github.repository == 'underpostnet/engine' ||
|
|
79
|
-
github.repository == 'underpostnet/engine-cyberia' ||
|
|
80
|
-
github.repository == 'underpostnet/engine-
|
|
103
|
+
(github.repository == 'underpostnet/engine-cyberia' ||
|
|
104
|
+
github.repository == 'underpostnet/engine-ghpkg-cyberia' ||
|
|
105
|
+
github.repository == 'underpostnet/engine-test-cyberia')
|
|
81
106
|
runs-on: ubuntu-latest
|
|
82
107
|
steps:
|
|
83
108
|
- name: Notify Coveralls Finished
|
|
@@ -32,4 +32,9 @@ jobs:
|
|
|
32
32
|
script: |
|
|
33
33
|
set -e
|
|
34
34
|
set -o pipefail
|
|
35
|
+
# Carried across the SSH hop so the far side reports in GitHub Actions form:
|
|
36
|
+
# deploy/lib/github-actions-logging.sh folds its monitor frames into collapsed groups, and the
|
|
37
|
+
# state domain's telemetry export emits ::notice::/::error:: annotations this job
|
|
38
|
+
# surfaces. GITHUB_ACTIONS itself is a runner-local variable and does not travel.
|
|
39
|
+
export RUN_QUIET_CI=github
|
|
35
40
|
bash /home/dd/engine/deploy/cyberia-client/deploy.sh
|
|
@@ -32,4 +32,9 @@ jobs:
|
|
|
32
32
|
script: |
|
|
33
33
|
set -e
|
|
34
34
|
set -o pipefail
|
|
35
|
+
# Carried across the SSH hop so the far side reports in GitHub Actions form:
|
|
36
|
+
# deploy/lib/github-actions-logging.sh folds its monitor frames into collapsed groups, and the
|
|
37
|
+
# state domain's telemetry export emits ::notice::/::error:: annotations this job
|
|
38
|
+
# surfaces. GITHUB_ACTIONS itself is a runner-local variable and does not travel.
|
|
39
|
+
export RUN_QUIET_CI=github
|
|
35
40
|
bash /home/dd/engine/deploy/cyberia-server/deploy.sh
|
|
@@ -4,7 +4,7 @@ on:
|
|
|
4
4
|
workflow_dispatch:
|
|
5
5
|
|
|
6
6
|
env:
|
|
7
|
-
UNDERPOST_VERSION: '3.3.
|
|
7
|
+
UNDERPOST_VERSION: '3.3.76'
|
|
8
8
|
|
|
9
9
|
jobs:
|
|
10
10
|
build-and-push:
|
|
@@ -34,9 +34,15 @@ jobs:
|
|
|
34
34
|
- name: Build cyberia-server SSR dashboard
|
|
35
35
|
working-directory: engine
|
|
36
36
|
run: |
|
|
37
|
-
node bin
|
|
37
|
+
node bin package dd-cyberia --install
|
|
38
38
|
node bin/cyberia run-workflow build-cyberia-404 --output-path ../assets/404/index.html
|
|
39
39
|
|
|
40
|
+
- name: Stage underpost CLI package
|
|
41
|
+
working-directory: engine
|
|
42
|
+
# Bakes the CLI into the runtime image from this checkout instead of the registry, so a
|
|
43
|
+
# starting pod never fetches it. The Dockerfiles COPY ../underpost-cli.tgz.
|
|
44
|
+
run: node bin/cyberia run-workflow stage-cli --output-path ..
|
|
45
|
+
|
|
40
46
|
- name: Set up Docker Buildx
|
|
41
47
|
uses: docker/setup-buildx-action@v4
|
|
42
48
|
|
|
@@ -65,7 +71,4 @@ jobs:
|
|
|
65
71
|
push: true
|
|
66
72
|
tags: ${{ steps.meta.outputs.tags }}
|
|
67
73
|
labels: ${{ steps.meta.outputs.labels }}
|
|
68
|
-
|
|
69
|
-
build-args: |
|
|
70
|
-
UNDERPOST_VERSION=${{ env.UNDERPOST_VERSION }}
|
|
71
74
|
BUILD_MODE=RELEASE
|
|
@@ -4,7 +4,7 @@ on:
|
|
|
4
4
|
workflow_dispatch:
|
|
5
5
|
|
|
6
6
|
env:
|
|
7
|
-
UNDERPOST_VERSION: '3.3.
|
|
7
|
+
UNDERPOST_VERSION: '3.3.76'
|
|
8
8
|
|
|
9
9
|
jobs:
|
|
10
10
|
build-and-push:
|
|
@@ -34,9 +34,15 @@ jobs:
|
|
|
34
34
|
- name: Build cyberia-server SSR dashboard
|
|
35
35
|
working-directory: engine
|
|
36
36
|
run: |
|
|
37
|
-
node bin
|
|
37
|
+
node bin package dd-cyberia --install
|
|
38
38
|
node bin/cyberia run-workflow build-cyberia-404 --output-path ../assets/404/index.html
|
|
39
39
|
|
|
40
|
+
- name: Stage underpost CLI package
|
|
41
|
+
working-directory: engine
|
|
42
|
+
# Bakes the CLI into the runtime image from this checkout instead of the registry, so a
|
|
43
|
+
# starting pod never fetches it. The Dockerfiles COPY ../underpost-cli.tgz.
|
|
44
|
+
run: node bin/cyberia run-workflow stage-cli --output-path ..
|
|
45
|
+
|
|
40
46
|
- name: Set up Docker Buildx
|
|
41
47
|
uses: docker/setup-buildx-action@v4
|
|
42
48
|
|
|
@@ -66,5 +72,4 @@ jobs:
|
|
|
66
72
|
tags: ${{ steps.meta.outputs.tags }}
|
|
67
73
|
labels: ${{ steps.meta.outputs.labels }}
|
|
68
74
|
build-args: |
|
|
69
|
-
UNDERPOST_VERSION=${{ env.UNDERPOST_VERSION }}
|
|
70
75
|
BUILD_MODE=DEBUG
|
|
@@ -4,7 +4,7 @@ on:
|
|
|
4
4
|
workflow_dispatch:
|
|
5
5
|
|
|
6
6
|
env:
|
|
7
|
-
UNDERPOST_VERSION: '3.3.
|
|
7
|
+
UNDERPOST_VERSION: '3.3.76'
|
|
8
8
|
|
|
9
9
|
jobs:
|
|
10
10
|
build-and-push:
|
|
@@ -34,10 +34,16 @@ jobs:
|
|
|
34
34
|
- name: Build cyberia-server SSR dashboard
|
|
35
35
|
working-directory: engine
|
|
36
36
|
run: |
|
|
37
|
-
node bin
|
|
37
|
+
node bin package dd-cyberia --install
|
|
38
38
|
node bin/cyberia run-workflow build-server-dashboard --output-path ../public/index.html
|
|
39
39
|
node bin/cyberia run-workflow build-cyberia-404 --output-path ../public/404/index.html
|
|
40
40
|
|
|
41
|
+
- name: Stage underpost CLI package
|
|
42
|
+
working-directory: engine
|
|
43
|
+
# Bakes the CLI into the runtime image from this checkout instead of the registry, so a
|
|
44
|
+
# starting pod never fetches it. The Dockerfiles COPY ../underpost-cli.tgz.
|
|
45
|
+
run: node bin/cyberia run-workflow stage-cli --output-path ..
|
|
46
|
+
|
|
41
47
|
- name: Set up Docker Buildx
|
|
42
48
|
uses: docker/setup-buildx-action@v4
|
|
43
49
|
|
|
@@ -66,6 +72,3 @@ jobs:
|
|
|
66
72
|
push: true
|
|
67
73
|
tags: ${{ steps.meta.outputs.tags }}
|
|
68
74
|
labels: ${{ steps.meta.outputs.labels }}
|
|
69
|
-
|
|
70
|
-
build-args: |
|
|
71
|
-
UNDERPOST_VERSION=${{ env.UNDERPOST_VERSION }}
|
|
@@ -4,7 +4,7 @@ on:
|
|
|
4
4
|
workflow_dispatch:
|
|
5
5
|
|
|
6
6
|
env:
|
|
7
|
-
UNDERPOST_VERSION: '3.3.
|
|
7
|
+
UNDERPOST_VERSION: '3.3.76'
|
|
8
8
|
|
|
9
9
|
jobs:
|
|
10
10
|
build-and-push:
|
|
@@ -34,10 +34,16 @@ jobs:
|
|
|
34
34
|
- name: Build cyberia-server SSR dashboard (dev)
|
|
35
35
|
working-directory: engine
|
|
36
36
|
run: |
|
|
37
|
-
node bin
|
|
37
|
+
node bin package dd-cyberia --install
|
|
38
38
|
node bin/cyberia run-workflow build-server-dashboard --dev --output-path ../public/index.html
|
|
39
39
|
node bin/cyberia run-workflow build-cyberia-404 --output-path ../public/404/index.html
|
|
40
40
|
|
|
41
|
+
- name: Stage underpost CLI package
|
|
42
|
+
working-directory: engine
|
|
43
|
+
# Bakes the CLI into the runtime image from this checkout instead of the registry, so a
|
|
44
|
+
# starting pod never fetches it. The Dockerfiles COPY ../underpost-cli.tgz.
|
|
45
|
+
run: node bin/cyberia run-workflow stage-cli --output-path ..
|
|
46
|
+
|
|
41
47
|
- name: Set up Docker Buildx
|
|
42
48
|
uses: docker/setup-buildx-action@v4
|
|
43
49
|
|
|
@@ -66,6 +72,3 @@ jobs:
|
|
|
66
72
|
push: true
|
|
67
73
|
tags: ${{ steps.meta.outputs.tags }}
|
|
68
74
|
labels: ${{ steps.meta.outputs.labels }}
|
|
69
|
-
|
|
70
|
-
build-args: |
|
|
71
|
-
UNDERPOST_VERSION=${{ env.UNDERPOST_VERSION }}
|
|
@@ -4,7 +4,7 @@ on:
|
|
|
4
4
|
workflow_dispatch:
|
|
5
5
|
|
|
6
6
|
env:
|
|
7
|
-
UNDERPOST_VERSION: '3.3.
|
|
7
|
+
UNDERPOST_VERSION: '3.3.76'
|
|
8
8
|
|
|
9
9
|
jobs:
|
|
10
10
|
build-and-push:
|
|
@@ -16,6 +16,20 @@ jobs:
|
|
|
16
16
|
steps:
|
|
17
17
|
- uses: actions/checkout@v7
|
|
18
18
|
|
|
19
|
+
- name: Setup Node.js
|
|
20
|
+
uses: actions/setup-node@v7
|
|
21
|
+
with:
|
|
22
|
+
node-version: '24.x'
|
|
23
|
+
|
|
24
|
+
- name: Install engine dependencies
|
|
25
|
+
run: npm ci --ignore-scripts
|
|
26
|
+
|
|
27
|
+
- name: Stage underpost CLI package
|
|
28
|
+
# Bakes the CLI into the image from this checkout instead of the registry, so a starting
|
|
29
|
+
# pod never fetches it. The Dockerfiles COPY underpost-cli.tgz from the build context,
|
|
30
|
+
# which for this workflow is the repository root.
|
|
31
|
+
run: node bin/cyberia run-workflow stage-cli --output-path .
|
|
32
|
+
|
|
19
33
|
- name: Set up Docker Buildx
|
|
20
34
|
uses: docker/setup-buildx-action@v4
|
|
21
35
|
|
|
@@ -4,7 +4,7 @@ on:
|
|
|
4
4
|
workflow_dispatch:
|
|
5
5
|
|
|
6
6
|
env:
|
|
7
|
-
UNDERPOST_VERSION: '3.3.
|
|
7
|
+
UNDERPOST_VERSION: '3.3.76'
|
|
8
8
|
|
|
9
9
|
jobs:
|
|
10
10
|
build-and-push:
|
|
@@ -16,6 +16,20 @@ jobs:
|
|
|
16
16
|
steps:
|
|
17
17
|
- uses: actions/checkout@v7
|
|
18
18
|
|
|
19
|
+
- name: Setup Node.js
|
|
20
|
+
uses: actions/setup-node@v7
|
|
21
|
+
with:
|
|
22
|
+
node-version: '24.x'
|
|
23
|
+
|
|
24
|
+
- name: Install engine dependencies
|
|
25
|
+
run: npm ci --ignore-scripts
|
|
26
|
+
|
|
27
|
+
- name: Stage underpost CLI package
|
|
28
|
+
# Bakes the CLI into the image from this checkout instead of the registry, so a starting
|
|
29
|
+
# pod never fetches it. The Dockerfiles COPY underpost-cli.tgz from the build context,
|
|
30
|
+
# which for this workflow is the repository root.
|
|
31
|
+
run: node bin/cyberia run-workflow stage-cli --output-path .
|
|
32
|
+
|
|
19
33
|
- name: Set up Docker Buildx
|
|
20
34
|
uses: docker/setup-buildx-action@v4
|
|
21
35
|
|
|
@@ -40,6 +40,7 @@ jobs:
|
|
|
40
40
|
script: |
|
|
41
41
|
set -e
|
|
42
42
|
set -o pipefail
|
|
43
|
+
export RUN_QUIET_CI=github
|
|
43
44
|
bash /home/dd/engine/deploy/dd-cyberia/deploy.sh
|
|
44
45
|
sync-and-deploy:
|
|
45
46
|
if: github.event.inputs.job == 'sync-and-deploy'
|
|
@@ -65,6 +66,7 @@ jobs:
|
|
|
65
66
|
script: |
|
|
66
67
|
set -e
|
|
67
68
|
set -o pipefail
|
|
69
|
+
export RUN_QUIET_CI=github
|
|
68
70
|
bash /home/dd/engine/deploy/dd-cyberia/sync-deploy.sh
|
|
69
71
|
init:
|
|
70
72
|
if: github.event.inputs.job == 'init'
|
|
@@ -90,4 +92,5 @@ jobs:
|
|
|
90
92
|
script: |
|
|
91
93
|
set -e
|
|
92
94
|
set -o pipefail
|
|
95
|
+
export RUN_QUIET_CI=github
|
|
93
96
|
bash /home/dd/engine/deploy/dd-cyberia/init.sh
|
|
@@ -62,13 +62,12 @@ jobs:
|
|
|
62
62
|
env:
|
|
63
63
|
GITHUB_TOKEN: ${{ secrets.GIT_AUTH_TOKEN }}
|
|
64
64
|
GITHUB_USERNAME: ${{ github.repository_owner }}
|
|
65
|
+
# Never interpolated into the script: the propagated payload is multi-line and a shell
|
|
66
|
+
# expansion would corrupt entries holding `$` and execute anything in `$(...)`.
|
|
67
|
+
PROPAGATED_MESSAGE: ${{ github.event.inputs.message }}
|
|
65
68
|
run: |
|
|
66
69
|
cd .. && node engine/bin clone underpostnet/pwa-microservices-template
|
|
67
|
-
|
|
68
|
-
LAST_COMMIT_MESSAGE="${{ github.event.inputs.message }}"
|
|
69
|
-
else
|
|
70
|
-
LAST_COMMIT_MESSAGE=$(cd engine && node bin cmt --changelog-msg --from-n-commit 1 --changelog-no-hash 2>/dev/null || echo "")
|
|
71
|
-
fi
|
|
70
|
+
LAST_COMMIT_MESSAGE=$(cd engine && node bin cmt --propagate-msg 2>/dev/null || echo "")
|
|
72
71
|
SHOULD_CD="${{ github.event.inputs.sync }}"
|
|
73
72
|
DEPLOY_TYPE="${{ github.event.inputs.deploy_type }}"
|
|
74
73
|
if [ -z "$LAST_COMMIT_MESSAGE" ]; then
|
|
@@ -48,20 +48,30 @@ jobs:
|
|
|
48
48
|
curl -fsSL https://rpm.nodesource.com/setup_24.x | bash -
|
|
49
49
|
dnf install nodejs -y
|
|
50
50
|
|
|
51
|
-
- name: Capture commit message
|
|
52
|
-
run: |
|
|
53
|
-
FULL_MSG="${{ github.event.head_commit.message }}"
|
|
54
|
-
LAST_COMMIT_MESSAGE="${FULL_MSG:-update package}"
|
|
55
|
-
echo "LAST_COMMIT_MESSAGE<<EOF" >> $GITHUB_ENV
|
|
56
|
-
echo "$LAST_COMMIT_MESSAGE" >> $GITHUB_ENV
|
|
57
|
-
echo "EOF" >> $GITHUB_ENV
|
|
58
|
-
echo "[INFO] Commit message: $LAST_COMMIT_MESSAGE"
|
|
59
|
-
|
|
60
51
|
- name: Install dependencies and set repo configuration
|
|
61
52
|
run: |
|
|
62
53
|
npm install
|
|
63
|
-
node ./bin
|
|
64
|
-
node ./bin
|
|
54
|
+
node ./bin package --rename @underpostnet/underpost
|
|
55
|
+
node ./bin package --set-repo underpostnet/pwa-microservices-template-ghpkg
|
|
56
|
+
|
|
57
|
+
# Placed after the install because it resolves the payload through the CLI, which needs the
|
|
58
|
+
# dependencies. The push that triggers this job carries the payload the engine propagated.
|
|
59
|
+
- name: Capture commit message
|
|
60
|
+
env:
|
|
61
|
+
# Never interpolated into the script: the propagated payload is multi-line and a shell
|
|
62
|
+
# expansion would corrupt entries holding `$` and execute anything in `$(...)`.
|
|
63
|
+
PROPAGATED_MESSAGE: ${{ github.event.head_commit.message }}
|
|
64
|
+
run: |
|
|
65
|
+
LAST_COMMIT_MESSAGE=$(node ./bin cmt --propagate-msg 2>/dev/null || echo "")
|
|
66
|
+
if [ -z "$LAST_COMMIT_MESSAGE" ]; then
|
|
67
|
+
LAST_COMMIT_MESSAGE="update package"
|
|
68
|
+
fi
|
|
69
|
+
{
|
|
70
|
+
echo "LAST_COMMIT_MESSAGE<<PROPAGATION_EOF"
|
|
71
|
+
echo "$LAST_COMMIT_MESSAGE"
|
|
72
|
+
echo "PROPAGATION_EOF"
|
|
73
|
+
} >> $GITHUB_ENV
|
|
74
|
+
echo "[INFO] Commit message: $LAST_COMMIT_MESSAGE"
|
|
65
75
|
|
|
66
76
|
- name: Set git global credentials
|
|
67
77
|
run: |
|
|
@@ -124,15 +134,20 @@ jobs:
|
|
|
124
134
|
echo "[INFO] Canonical github package repo: underpostnet/engine-ghpkg-$CONF_ID"
|
|
125
135
|
|
|
126
136
|
- name: Capture commit message
|
|
137
|
+
env:
|
|
138
|
+
# Never interpolated into the script: the propagated payload is multi-line and a shell
|
|
139
|
+
# expansion would corrupt entries holding `$` and execute anything in `$(...)`.
|
|
140
|
+
PROPAGATED_MESSAGE: ${{ github.event.inputs.message }}
|
|
127
141
|
run: |
|
|
128
|
-
|
|
129
|
-
if [ -z "$
|
|
130
|
-
|
|
142
|
+
LAST_COMMIT_MESSAGE=$(node bin cmt --propagate-msg 2>/dev/null || echo "")
|
|
143
|
+
if [ -z "$LAST_COMMIT_MESSAGE" ]; then
|
|
144
|
+
LAST_COMMIT_MESSAGE="Update canonical github package repo"
|
|
131
145
|
fi
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
146
|
+
{
|
|
147
|
+
echo "LAST_COMMIT_MESSAGE<<PROPAGATION_EOF"
|
|
148
|
+
echo "$LAST_COMMIT_MESSAGE"
|
|
149
|
+
echo "PROPAGATION_EOF"
|
|
150
|
+
} >> $GITHUB_ENV
|
|
136
151
|
echo "[INFO] Commit message: $LAST_COMMIT_MESSAGE"
|
|
137
152
|
|
|
138
153
|
- name: Set git global credentials
|
|
@@ -152,8 +167,8 @@ jobs:
|
|
|
152
167
|
cd engine-$CONF_ID
|
|
153
168
|
rm -rf ./.git
|
|
154
169
|
mv ../$GHPKG_REPO.git ./.git
|
|
155
|
-
node ../engine/bin
|
|
156
|
-
node ../engine/bin
|
|
170
|
+
node ../engine/bin package --rename "$PACKAGE_NAME"
|
|
171
|
+
node ../engine/bin package --set-repo underpostnet/$GHPKG_REPO
|
|
157
172
|
git init
|
|
158
173
|
git config user.name 'underpostnet'
|
|
159
174
|
git config user.email 'development@underpost.net'
|
|
@@ -5,13 +5,10 @@ name: CI | Hardhat
|
|
|
5
5
|
|
|
6
6
|
on:
|
|
7
7
|
push:
|
|
8
|
-
|
|
9
|
-
- 'hardhat/**'
|
|
10
|
-
- '.github/workflows/hardhat.ci.yml'
|
|
8
|
+
branches: ['master', 'main']
|
|
11
9
|
pull_request:
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
- '.github/workflows/hardhat.ci.yml'
|
|
10
|
+
branches: ['master', 'main']
|
|
11
|
+
|
|
15
12
|
workflow_dispatch:
|
|
16
13
|
|
|
17
14
|
permissions:
|
|
@@ -20,6 +17,11 @@ permissions:
|
|
|
20
17
|
jobs:
|
|
21
18
|
build-and-test:
|
|
22
19
|
name: Compile, Test & Audit
|
|
20
|
+
if: |
|
|
21
|
+
github.actor != 'dependabot[bot]' &&
|
|
22
|
+
(github.repository == 'underpostnet/engine-cyberia' ||
|
|
23
|
+
github.repository == 'underpostnet/engine-ghpkg-cyberia' ||
|
|
24
|
+
github.repository == 'underpostnet/engine-test-cyberia')
|
|
23
25
|
runs-on: ubuntu-latest
|
|
24
26
|
defaults:
|
|
25
27
|
run:
|
|
@@ -59,18 +61,17 @@ jobs:
|
|
|
59
61
|
|
|
60
62
|
# ── Compile ──────────────────────────────────────────────────────────
|
|
61
63
|
- name: Compile Solidity contracts
|
|
62
|
-
run:
|
|
64
|
+
run: npm run compile
|
|
63
65
|
|
|
64
66
|
# ── Test ─────────────────────────────────────────────────────────────
|
|
65
67
|
- name: Run tests
|
|
66
|
-
run:
|
|
68
|
+
run: npm test
|
|
67
69
|
env:
|
|
68
70
|
REPORT_GAS: 'true'
|
|
69
71
|
|
|
70
|
-
# ── Coverage
|
|
72
|
+
# ── Coverage ─────────────────────────────────────────────────────────
|
|
71
73
|
- name: Solidity coverage
|
|
72
|
-
|
|
73
|
-
run: npx hardhat coverage
|
|
74
|
+
run: npm run coverage
|
|
74
75
|
|
|
75
76
|
# ── Lockfile integrity check ─────────────────────────────────────────
|
|
76
77
|
# Fail if package-lock.json is out of sync with package.json
|
|
@@ -51,26 +51,28 @@ jobs:
|
|
|
51
51
|
curl -fsSL https://rpm.nodesource.com/setup_24.x | bash -
|
|
52
52
|
dnf install nodejs -y
|
|
53
53
|
|
|
54
|
+
- name: Install dependencies
|
|
55
|
+
run: npm install
|
|
56
|
+
|
|
57
|
+
# Placed after the install because it resolves the payload through the CLI, which needs the
|
|
58
|
+
# dependencies. The dispatch input wins; a push carries its own commit message instead.
|
|
54
59
|
- name: Capture commit message
|
|
60
|
+
env:
|
|
61
|
+
# Never interpolated into the script: the propagated payload is multi-line and a shell
|
|
62
|
+
# expansion would corrupt entries holding `$` and execute anything in `$(...)`.
|
|
63
|
+
PROPAGATED_MESSAGE: ${{ github.event.inputs.message || github.event.head_commit.message }}
|
|
55
64
|
run: |
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
LAST_COMMIT_MESSAGE="Update repository"
|
|
60
|
-
fi
|
|
61
|
-
else
|
|
62
|
-
FULL_MSG="${{ github.event.head_commit.message }}"
|
|
63
|
-
REST="$(echo "$FULL_MSG" | tail -n +2 | awk 'NR==1{first=$0; has_first=1; next} NR==2{print first " " $0; has_first=0; next} {print} END{if(has_first) print first}')"
|
|
64
|
-
LAST_COMMIT_MESSAGE="${REST:-$FULL_MSG}"
|
|
65
|
+
LAST_COMMIT_MESSAGE=$(node bin cmt --propagate-msg 2>/dev/null || echo "")
|
|
66
|
+
if [ -z "$LAST_COMMIT_MESSAGE" ]; then
|
|
67
|
+
LAST_COMMIT_MESSAGE="Update repository"
|
|
65
68
|
fi
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
+
{
|
|
70
|
+
echo "LAST_COMMIT_MESSAGE<<PROPAGATION_EOF"
|
|
71
|
+
echo "$LAST_COMMIT_MESSAGE"
|
|
72
|
+
echo "PROPAGATION_EOF"
|
|
73
|
+
} >> $GITHUB_ENV
|
|
69
74
|
echo "[INFO] Extracted payload: $LAST_COMMIT_MESSAGE"
|
|
70
75
|
|
|
71
|
-
- name: Install dependencies
|
|
72
|
-
run: npm install
|
|
73
|
-
|
|
74
76
|
- name: Set git global credentials
|
|
75
77
|
run: |
|
|
76
78
|
git config --global --add safe.directory '*'
|
|
@@ -32,6 +32,28 @@ jobs:
|
|
|
32
32
|
- name: Install Dependencies
|
|
33
33
|
run: npm ci
|
|
34
34
|
|
|
35
|
+
# The repository declares the engine's runtime dependencies because it runs the engine
|
|
36
|
+
# source it ships; a registry consumer gets them through `underpost` instead. This restores
|
|
37
|
+
# the manifest the package published before that split, and only in the tarball — after
|
|
38
|
+
# `npm ci`, so the lockfile the checkout installs from is the repository's own.
|
|
39
|
+
- name: Restore the published dependency set
|
|
40
|
+
run: |
|
|
41
|
+
node --input-type=module -e '
|
|
42
|
+
import fs from "node:fs";
|
|
43
|
+
import { publishedProductPackageJson, DEPLOY_MANIFEST_INDENT } from "./src/server/build/package.js";
|
|
44
|
+
import { loadDeployCatalog } from "./src/server/build/catalog.js";
|
|
45
|
+
const packageJson = JSON.parse(fs.readFileSync("./package.json", "utf8"));
|
|
46
|
+
const published = publishedProductPackageJson({
|
|
47
|
+
packageJson,
|
|
48
|
+
catalog: await loadDeployCatalog("dd-cyberia"),
|
|
49
|
+
});
|
|
50
|
+
fs.writeFileSync("./package.json", JSON.stringify(published, null, DEPLOY_MANIFEST_INDENT) + "\n", "utf8");
|
|
51
|
+
console.log("published manifest", {
|
|
52
|
+
dependencies: Object.keys(published.dependencies).length,
|
|
53
|
+
devDependencies: Object.keys(published.devDependencies ?? {}).length,
|
|
54
|
+
});
|
|
55
|
+
'
|
|
56
|
+
|
|
35
57
|
- name: Publish to npm
|
|
36
58
|
env:
|
|
37
59
|
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
@@ -57,6 +79,28 @@ jobs:
|
|
|
57
79
|
- name: Install Dependencies
|
|
58
80
|
run: npm ci
|
|
59
81
|
|
|
82
|
+
# The repository declares the engine's runtime dependencies because it runs the engine
|
|
83
|
+
# source it ships; a registry consumer gets them through `underpost` instead. This restores
|
|
84
|
+
# the manifest the package published before that split, and only in the tarball — after
|
|
85
|
+
# `npm ci`, so the lockfile the checkout installs from is the repository's own.
|
|
86
|
+
- name: Restore the published dependency set
|
|
87
|
+
run: |
|
|
88
|
+
node --input-type=module -e '
|
|
89
|
+
import fs from "node:fs";
|
|
90
|
+
import { publishedProductPackageJson, DEPLOY_MANIFEST_INDENT } from "./src/server/build/package.js";
|
|
91
|
+
import { loadDeployCatalog } from "./src/server/build/catalog.js";
|
|
92
|
+
const packageJson = JSON.parse(fs.readFileSync("./package.json", "utf8"));
|
|
93
|
+
const published = publishedProductPackageJson({
|
|
94
|
+
packageJson,
|
|
95
|
+
catalog: await loadDeployCatalog("dd-cyberia"),
|
|
96
|
+
});
|
|
97
|
+
fs.writeFileSync("./package.json", JSON.stringify(published, null, DEPLOY_MANIFEST_INDENT) + "\n", "utf8");
|
|
98
|
+
console.log("published manifest", {
|
|
99
|
+
dependencies: Object.keys(published.dependencies).length,
|
|
100
|
+
devDependencies: Object.keys(published.devDependencies ?? {}).length,
|
|
101
|
+
});
|
|
102
|
+
'
|
|
103
|
+
|
|
60
104
|
- name: Publish to npm
|
|
61
105
|
env:
|
|
62
106
|
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|