cyberia 3.2.5 → 3.2.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/engine-cyberia.cd.yml +8 -2
- package/.github/workflows/npmpkg.ci.yml +1 -0
- package/.github/workflows/pwa-microservices-template-test.ci.yml +1 -1
- package/.github/workflows/release.cd.yml +2 -2
- package/.vscode/extensions.json +9 -9
- package/.vscode/settings.json +20 -4
- package/CHANGELOG.md +563 -1
- package/CLI-HELP.md +130 -34
- package/Dockerfile +0 -4
- package/README.md +194 -607
- package/bin/build.js +42 -12
- package/bin/build.template.js +187 -0
- package/bin/cyberia.js +1367 -281
- package/bin/deploy.js +582 -3
- package/bin/index.js +1367 -281
- package/bump.config.js +26 -0
- package/conf.js +195 -111
- package/deployment.yaml +6 -222
- package/hardhat/package-lock.json +118 -149
- package/hardhat/package.json +5 -4
- package/jsconfig.json +1 -1
- package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +2 -2
- package/manifests/cronjobs/dd-cron/dd-cron-dns.yaml +2 -2
- package/manifests/deployment/dd-cyberia-development/deployment.yaml +6 -222
- package/manifests/deployment/dd-cyberia-development/proxy.yaml +10 -118
- package/manifests/deployment/dd-default-development/deployment.yaml +2 -6
- package/manifests/deployment/dd-test-development/deployment.yaml +138 -66
- package/manifests/deployment/dd-test-development/proxy.yaml +41 -5
- package/manifests/kind-config-dev.yaml +8 -0
- package/manifests/lxd/lxd-admin-profile.yaml +12 -3
- package/manifests/mongodb/pv-pvc.yaml +44 -8
- package/manifests/mongodb/statefulset.yaml +55 -68
- package/manifests/mongodb-4.4/headless-service.yaml +10 -0
- package/manifests/mongodb-4.4/kustomization.yaml +3 -1
- package/manifests/mongodb-4.4/mongodb-nodeport.yaml +17 -0
- package/manifests/mongodb-4.4/pv-pvc.yaml +10 -14
- package/manifests/mongodb-4.4/statefulset.yaml +79 -0
- package/manifests/mongodb-4.4/storage-class.yaml +9 -0
- package/manifests/valkey/statefulset.yaml +1 -1
- package/manifests/valkey/valkey-nodeport.yaml +17 -0
- package/package.json +45 -24
- package/proxy.yaml +10 -118
- package/scripts/ipxe-setup.sh +52 -49
- package/scripts/k3s-node-setup.sh +83 -48
- package/scripts/lxd-vm-setup.sh +193 -8
- package/scripts/maas-nat-firewalld.sh +145 -0
- package/scripts/nat-iptables.sh +103 -18
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.controller.js +18 -18
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.model.js +7 -14
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.router.js +38 -33
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.service.js +91 -36
- package/src/api/core/core.controller.js +10 -10
- package/src/api/core/core.router.js +19 -14
- package/src/api/core/core.service.js +15 -15
- package/src/api/crypto/crypto.controller.js +8 -8
- package/src/api/crypto/crypto.router.js +18 -12
- package/src/api/crypto/crypto.service.js +11 -11
- package/src/api/cyberia-action/cyberia-action.controller.js +74 -0
- package/src/api/cyberia-action/cyberia-action.model.js +87 -0
- package/src/api/cyberia-action/cyberia-action.router.js +31 -0
- package/src/api/cyberia-action/cyberia-action.service.js +42 -0
- package/src/api/cyberia-client-hints/cyberia-client-hints.controller.js +74 -0
- package/src/api/cyberia-client-hints/cyberia-client-hints.model.js +99 -0
- package/src/api/cyberia-client-hints/cyberia-client-hints.router.js +98 -0
- package/src/api/cyberia-client-hints/cyberia-client-hints.service.js +152 -0
- package/src/api/cyberia-dialogue/cyberia-dialogue.controller.js +13 -13
- package/src/api/cyberia-dialogue/cyberia-dialogue.model.js +11 -11
- package/src/api/cyberia-dialogue/cyberia-dialogue.router.js +25 -20
- package/src/api/cyberia-dialogue/cyberia-dialogue.service.js +22 -22
- package/src/api/cyberia-entity/cyberia-entity.controller.js +10 -10
- package/src/api/cyberia-entity/cyberia-entity.router.js +22 -18
- package/src/api/cyberia-entity/cyberia-entity.service.js +15 -15
- package/src/api/cyberia-instance/cyberia-fallback-world.js +83 -198
- package/src/api/cyberia-instance/cyberia-instance.controller.js +14 -14
- package/src/api/cyberia-instance/cyberia-instance.model.js +3 -0
- package/src/api/cyberia-instance/cyberia-instance.router.js +57 -52
- package/src/api/cyberia-instance/cyberia-instance.service.js +32 -67
- package/src/api/cyberia-instance/cyberia-portal-connector.js +20 -246
- package/src/api/cyberia-instance/cyberia-world-generator.js +505 -0
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.controller.js +10 -10
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.model.js +18 -49
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.router.js +22 -18
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.service.js +19 -15
- package/src/api/cyberia-map/cyberia-map.controller.js +10 -10
- package/src/api/cyberia-map/cyberia-map.router.js +35 -30
- package/src/api/cyberia-map/cyberia-map.service.js +17 -17
- package/src/api/cyberia-quest/cyberia-quest.controller.js +74 -0
- package/src/api/cyberia-quest/cyberia-quest.model.js +67 -0
- package/src/api/cyberia-quest/cyberia-quest.router.js +31 -0
- package/src/api/cyberia-quest/cyberia-quest.service.js +42 -0
- package/src/api/cyberia-quest-progress/cyberia-quest-progress.controller.js +74 -0
- package/src/api/cyberia-quest-progress/cyberia-quest-progress.model.js +49 -0
- package/src/api/cyberia-quest-progress/cyberia-quest-progress.router.js +31 -0
- package/src/api/cyberia-quest-progress/cyberia-quest-progress.service.js +42 -0
- package/src/api/cyberia-server-defaults/cyberia-server-defaults.js +451 -0
- package/src/api/default/default.controller.js +10 -10
- package/src/api/default/default.router.js +22 -18
- package/src/api/default/default.service.js +15 -15
- package/src/api/document/document.controller.js +12 -12
- package/src/api/document/document.model.js +10 -16
- package/src/api/document/document.router.js +28 -23
- package/src/api/document/document.service.js +100 -23
- package/src/api/file/file.controller.js +8 -8
- package/src/api/file/file.model.js +10 -10
- package/src/api/file/file.router.js +19 -13
- package/src/api/file/file.service.js +45 -43
- package/src/api/instance/instance.controller.js +10 -10
- package/src/api/instance/instance.model.js +4 -10
- package/src/api/instance/instance.router.js +29 -24
- package/src/api/instance/instance.service.js +16 -16
- package/src/api/ipfs/ipfs.controller.js +12 -12
- package/src/api/ipfs/ipfs.model.js +4 -13
- package/src/api/ipfs/ipfs.router.js +21 -16
- package/src/api/ipfs/ipfs.service.js +22 -36
- package/src/api/object-layer/object-layer.controller.js +12 -12
- package/src/api/object-layer/object-layer.model.js +4 -17
- package/src/api/object-layer/object-layer.router.js +512 -507
- package/src/api/object-layer/object-layer.service.js +29 -26
- package/src/api/object-layer-render-frames/object-layer-render-frames.controller.js +10 -10
- package/src/api/object-layer-render-frames/object-layer-render-frames.model.js +6 -16
- package/src/api/object-layer-render-frames/object-layer-render-frames.router.js +22 -18
- package/src/api/object-layer-render-frames/object-layer-render-frames.service.js +19 -15
- package/src/api/test/test.controller.js +8 -8
- package/src/api/test/test.router.js +17 -12
- package/src/api/test/test.service.js +8 -8
- package/src/api/types.js +24 -0
- package/src/api/user/guest.service.js +100 -0
- package/src/api/user/user.controller.js +6 -6
- package/src/api/user/user.model.js +8 -13
- package/src/api/user/user.router.js +297 -288
- package/src/api/user/user.service.js +103 -55
- package/src/cli/baremetal.js +132 -101
- package/src/cli/cluster.js +732 -217
- package/src/cli/db.js +106 -62
- package/src/cli/deploy.js +260 -149
- package/src/cli/fs.js +90 -9
- package/src/cli/image.js +43 -1
- package/src/cli/index.js +106 -16
- package/src/cli/ipfs.js +4 -6
- package/src/cli/kubectl.js +4 -1
- package/src/cli/lxd.js +1099 -223
- package/src/cli/monitor.js +9 -3
- package/src/cli/release.js +336 -86
- package/src/cli/repository.js +136 -53
- package/src/cli/run.js +599 -76
- package/src/cli/secrets.js +11 -2
- package/src/cli/ssh.js +1 -1
- package/src/cli/static.js +43 -115
- package/src/cli/test.js +9 -3
- package/src/client/Cryptokoyn.index.js +18 -21
- package/src/client/CyberiaPortal.index.js +19 -23
- package/src/client/Default.index.js +30 -36
- package/src/client/Itemledger.index.js +20 -26
- package/src/client/Underpost.index.js +19 -23
- package/src/client/components/core/404.js +4 -4
- package/src/client/components/core/500.js +4 -4
- package/src/client/components/core/Account.js +73 -60
- package/src/client/components/core/AgGrid.js +23 -33
- package/src/client/components/core/Alert.js +12 -13
- package/src/client/components/core/AppStore.js +1 -1
- package/src/client/components/core/Auth.js +40 -37
- package/src/client/components/core/Badge.js +7 -13
- package/src/client/components/core/BtnIcon.js +15 -17
- package/src/client/components/core/CalendarCore.js +42 -63
- package/src/client/components/core/Chat.js +13 -15
- package/src/client/components/core/ClientEvents.js +163 -0
- package/src/client/components/core/ColorPaletteElement.js +309 -0
- package/src/client/components/core/Content.js +17 -14
- package/src/client/components/core/Css.js +15 -71
- package/src/client/components/core/CssCore.js +12 -16
- package/src/client/components/core/D3Chart.js +4 -4
- package/src/client/components/core/Docs.js +64 -91
- package/src/client/components/core/DropDown.js +69 -91
- package/src/client/components/core/EventBus.js +96 -0
- package/src/client/components/core/EventsUI.js +14 -17
- package/src/client/components/core/FileExplorer.js +96 -228
- package/src/client/components/core/FullScreen.js +47 -75
- package/src/client/components/core/Input.js +24 -69
- package/src/client/components/core/Keyboard.js +25 -18
- package/src/client/components/core/KeyboardAvoidance.js +145 -0
- package/src/client/components/core/LoadingAnimation.js +25 -31
- package/src/client/components/core/LogIn.js +41 -41
- package/src/client/components/core/LogOut.js +23 -14
- package/src/client/components/core/Modal.js +544 -219
- package/src/client/components/core/NotificationManager.js +14 -18
- package/src/client/components/core/Panel.js +54 -50
- package/src/client/components/core/PanelForm.js +81 -177
- package/src/client/components/core/Polyhedron.js +110 -214
- package/src/client/components/core/PublicProfile.js +39 -32
- package/src/client/components/core/Recover.js +48 -44
- package/src/client/components/core/Responsive.js +88 -32
- package/src/client/components/core/RichText.js +9 -18
- package/src/client/components/core/Router.js +24 -3
- package/src/client/components/core/SearchBox.js +37 -37
- package/src/client/components/core/SignUp.js +39 -30
- package/src/client/components/core/SocketIo.js +31 -2
- package/src/client/components/core/SocketIoHandler.js +6 -6
- package/src/client/components/core/ToggleSwitch.js +8 -20
- package/src/client/components/core/ToolTip.js +5 -17
- package/src/client/components/core/Translate.js +56 -59
- package/src/client/components/core/Validator.js +26 -16
- package/src/client/components/core/Wallet.js +15 -26
- package/src/client/components/core/Worker.js +211 -276
- package/src/client/components/core/windowGetDimensions.js +7 -7
- package/src/client/components/cryptokoyn/{MenuCryptokoyn.js → AppShellCryptokoyn.js} +57 -57
- package/src/client/components/cryptokoyn/CssCryptokoyn.js +15 -15
- package/src/client/components/cryptokoyn/LogInCryptokoyn.js +6 -4
- package/src/client/components/cryptokoyn/LogOutCryptokoyn.js +6 -4
- package/src/client/components/cryptokoyn/RouterCryptokoyn.js +37 -0
- package/src/client/components/cryptokoyn/SettingsCryptokoyn.js +4 -4
- package/src/client/components/cryptokoyn/SignUpCryptokoyn.js +6 -4
- package/src/client/components/cyberia/InstanceEngineCyberia.js +141 -60
- package/src/client/components/cyberia/MapEngineCyberia.js +691 -214
- package/src/client/components/cyberia/ObjectLayerEngine.js +19 -0
- package/src/client/components/cyberia/ObjectLayerEngineModal.js +1204 -94
- package/src/client/components/cyberia/ObjectLayerEngineViewer.js +196 -298
- package/src/client/components/cyberia/SharedDefaultsCyberia.js +330 -0
- package/src/client/components/cyberia-portal/{MenuCyberiaPortal.js → AppShellCyberiaPortal.js} +102 -102
- package/src/client/components/cyberia-portal/CssCyberiaPortal.js +15 -15
- package/src/client/components/cyberia-portal/LogInCyberiaPortal.js +6 -4
- package/src/client/components/cyberia-portal/LogOutCyberiaPortal.js +6 -4
- package/src/client/components/cyberia-portal/MainBodyCyberiaPortal.js +4 -4
- package/src/client/components/cyberia-portal/RouterCyberiaPortal.js +60 -0
- package/src/client/components/cyberia-portal/SettingsCyberiaPortal.js +4 -4
- package/src/client/components/cyberia-portal/SignUpCyberiaPortal.js +6 -4
- package/src/client/components/cyberia-portal/TranslateCyberiaPortal.js +4 -4
- package/src/client/components/default/{MenuDefault.js → AppShellDefault.js} +87 -87
- package/src/client/components/default/CssDefault.js +12 -12
- package/src/client/components/default/LogInDefault.js +6 -4
- package/src/client/components/default/LogOutDefault.js +6 -4
- package/src/client/components/default/RouterDefault.js +47 -0
- package/src/client/components/default/SettingsDefault.js +4 -4
- package/src/client/components/default/SignUpDefault.js +6 -4
- package/src/client/components/default/TranslateDefault.js +3 -3
- package/src/client/components/itemledger/{MenuItemledger.js → AppShellItemledger.js} +57 -57
- package/src/client/components/itemledger/CssItemledger.js +15 -15
- package/src/client/components/itemledger/LogInItemledger.js +6 -4
- package/src/client/components/itemledger/LogOutItemledger.js +6 -4
- package/src/client/components/itemledger/RouterItemledger.js +38 -0
- package/src/client/components/itemledger/SettingsItemledger.js +4 -4
- package/src/client/components/itemledger/SignUpItemledger.js +6 -4
- package/src/client/components/itemledger/TranslateItemledger.js +3 -3
- package/src/client/components/underpost/{MenuUnderpost.js → AppShellUnderpost.js} +88 -88
- package/src/client/components/underpost/CssUnderpost.js +14 -14
- package/src/client/components/underpost/CyberpunkBloggerUnderpost.js +4 -4
- package/src/client/components/underpost/DocumentSearchProvider.js +1 -1
- package/src/client/components/underpost/LabGalleryUnderpost.js +12 -15
- package/src/client/components/underpost/LogInUnderpost.js +6 -4
- package/src/client/components/underpost/LogOutUnderpost.js +6 -4
- package/src/client/components/underpost/RouterUnderpost.js +45 -0
- package/src/client/components/underpost/SettingsUnderpost.js +4 -4
- package/src/client/components/underpost/SignUpUnderpost.js +6 -4
- package/src/client/components/underpost/TranslateUnderpost.js +4 -4
- package/src/client/public/cyberia-docs/ACTION-SYSTEM.md +235 -0
- package/src/client/public/cyberia-docs/ARCHITECTURE.md +83 -0
- package/src/client/public/cyberia-docs/CYBERIA-CLI.md +204 -0
- package/src/client/public/cyberia-docs/CYBERIA-CLIENT.md +291 -0
- package/src/client/public/cyberia-docs/CYBERIA-SERVER.md +278 -0
- package/src/client/public/cyberia-docs/CYBERIA.md +259 -0
- package/src/client/public/cyberia-docs/ENTITY-PROFILE.md +241 -0
- package/src/client/public/cyberia-docs/HARDHAT-MODULE.md +300 -0
- package/src/client/public/cyberia-docs/OFF-CHAIN-ECONOMY.md +279 -0
- package/src/client/public/cyberia-docs/QUEST-SYSTEM.md +206 -0
- package/src/client/public/cyberia-docs/ROADMAP.md +240 -0
- package/src/client/public/cyberia-docs/UNDERPOST-PLATFORM.md +106 -0
- package/src/client/public/cyberia-docs/WHITE-PAPER.md +732 -0
- package/src/client/services/atlas-sprite-sheet/atlas-sprite-sheet.service.js +14 -20
- package/src/client/services/core/core.service.js +17 -49
- package/src/client/services/crypto/crypto.service.js +8 -13
- package/src/client/services/cyberia-action/cyberia-action.service.js +99 -0
- package/src/client/services/cyberia-client-hints/cyberia-client-hints.service.js +99 -0
- package/src/client/services/cyberia-dialogue/cyberia-dialogue.service.js +10 -16
- package/src/client/services/cyberia-entity/cyberia-entity.management.js +5 -5
- package/src/client/services/cyberia-entity/cyberia-entity.service.js +10 -16
- package/src/client/services/cyberia-instance/cyberia-instance.management.js +6 -6
- package/src/client/services/cyberia-instance/cyberia-instance.service.js +12 -18
- package/src/client/services/cyberia-instance-conf/cyberia-instance-conf.service.js +10 -16
- package/src/client/services/cyberia-map/cyberia-map.management.js +6 -6
- package/src/client/services/cyberia-map/cyberia-map.service.js +12 -18
- package/src/client/services/cyberia-quest/cyberia-quest.service.js +99 -0
- package/src/client/services/cyberia-quest-progress/cyberia-quest-progress.service.js +99 -0
- package/src/client/services/default/default.management.js +159 -267
- package/src/client/services/default/default.service.js +10 -16
- package/src/client/services/document/document.service.js +14 -19
- package/src/client/services/file/file.service.js +8 -13
- package/src/client/services/instance/instance.management.js +5 -5
- package/src/client/services/instance/instance.service.js +10 -15
- package/src/client/services/ipfs/ipfs.service.js +12 -18
- package/src/client/services/object-layer/object-layer.management.js +12 -12
- package/src/client/services/object-layer/object-layer.service.js +20 -26
- package/src/client/services/object-layer-render-frames/object-layer-render-frames.service.js +10 -16
- package/src/client/services/test/test.service.js +8 -13
- package/src/client/services/user/guest.service.js +86 -0
- package/src/client/services/user/user.management.js +5 -5
- package/src/client/services/user/user.service.js +14 -20
- package/src/client/ssr/body/404.js +3 -3
- package/src/client/ssr/body/500.js +3 -3
- package/src/client/ssr/body/CacheControl.js +5 -2
- package/src/client/ssr/body/DefaultSplashScreen.js +19 -12
- package/src/client/ssr/body/UnderpostDefaultSplashScreen.js +13 -6
- package/src/client/ssr/head/PwaItemledger.js +197 -60
- package/src/client/ssr/mailer/DefaultRecoverEmail.js +19 -20
- package/src/client/ssr/mailer/DefaultVerifyEmail.js +15 -16
- package/src/client/ssr/views/CyberiaServerMetrics.js +982 -0
- package/src/client/ssr/{offline → views}/Maintenance.js +12 -11
- package/src/client/ssr/{offline → views}/NoNetworkConnection.js +3 -3
- package/src/client/ssr/{pages → views}/Test.js +2 -2
- package/src/client/sw/core.sw.js +274 -0
- package/src/db/DataBaseProvider.js +115 -15
- package/src/db/mariadb/MariaDB.js +2 -1
- package/src/db/mongo/MongoBootstrap.js +657 -0
- package/src/db/mongo/MongooseDB.js +129 -21
- package/src/grpc/cyberia/grpc-server.js +185 -105
- package/src/index.js +1 -1
- package/src/runtime/cyberia-client/Dockerfile +101 -0
- package/src/runtime/cyberia-client/Dockerfile.dev +82 -0
- package/src/runtime/cyberia-server/Dockerfile +62 -0
- package/src/runtime/cyberia-server/Dockerfile.dev +71 -0
- package/src/runtime/express/Dockerfile +4 -4
- package/src/runtime/express/Express.js +2 -2
- package/src/runtime/lampp/Dockerfile +8 -7
- package/src/runtime/wp/Dockerfile +11 -17
- package/src/runtime/wp/Wp.js +8 -5
- package/src/server/atlas-sprite-sheet-generator.js +4 -2
- package/src/server/auth.js +2 -2
- package/src/server/client-build-docs.js +46 -47
- package/src/server/client-build.js +371 -132
- package/src/server/client-formatted.js +47 -16
- package/src/server/conf.js +91 -87
- package/src/server/data-query.js +32 -20
- package/src/server/dns.js +22 -0
- package/src/server/ipfs-client.js +232 -91
- package/src/server/object-layer.js +1 -6
- package/src/server/process.js +192 -45
- package/src/server/proxy.js +9 -2
- package/src/server/runtime.js +1 -1
- package/src/server/semantic-layer-generator-floor.js +11 -51
- package/src/server/semantic-layer-generator-resource.js +259 -0
- package/src/server/semantic-layer-generator-skin.js +41 -171
- package/src/server/semantic-layer-generator.js +122 -14
- package/src/server/shape-generator.js +108 -0
- package/src/server/start.js +34 -8
- package/src/server/valkey.js +143 -235
- package/src/ws/IoInterface.js +16 -16
- package/src/ws/core/channels/core.ws.chat.js +11 -11
- package/src/ws/core/channels/core.ws.mailer.js +29 -29
- package/src/ws/core/channels/core.ws.stream.js +19 -19
- package/src/ws/core/core.ws.connection.js +8 -8
- package/src/ws/core/core.ws.server.js +6 -5
- package/src/ws/default/channels/default.ws.main.js +10 -10
- package/src/ws/default/default.ws.connection.js +4 -4
- package/src/ws/default/default.ws.server.js +4 -3
- package/tsconfig.docs.json +15 -0
- package/typedoc.dd-cyberia.json +29 -0
- package/typedoc.json +29 -0
- package/WHITE-PAPER.md +0 -1540
- package/bin/file.js +0 -196
- package/bin/vs.js +0 -74
- package/bin/zed.js +0 -84
- package/hardhat/README.md +0 -531
- package/hardhat/WHITE-PAPER.md +0 -1540
- package/jsdoc.dd-cyberia.json +0 -68
- package/jsdoc.json +0 -68
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.defaults.js +0 -413
- package/src/api/object-layer/README.md +0 -672
- package/src/client/components/core/ColorPalette.js +0 -5267
- package/src/client/components/core/JoyStick.js +0 -80
- package/src/client/components/cryptokoyn/RoutesCryptokoyn.js +0 -39
- package/src/client/components/cyberia-portal/CommonCyberiaPortal.js +0 -223
- package/src/client/components/cyberia-portal/RoutesCyberiaPortal.js +0 -62
- package/src/client/components/cyberia-portal/ServerCyberiaPortal.js +0 -136
- package/src/client/components/default/RoutesDefault.js +0 -49
- package/src/client/components/itemledger/RoutesItemledger.js +0 -40
- package/src/client/components/underpost/RoutesUnderpost.js +0 -47
- package/src/client/ssr/email/DefaultRecoverEmail.js +0 -21
- package/src/client/ssr/email/DefaultVerifyEmail.js +0 -17
- package/src/client/ssr/pages/CyberiaServerMetrics.js +0 -461
- package/src/client/sw/default.sw.js +0 -127
- package/src/client/sw/template.sw.js +0 -84
- package/src/grpc/cyberia/OFF_CHAIN_ECONOMY.md +0 -305
- package/src/grpc/cyberia/README.md +0 -326
package/src/cli/repository.js
CHANGED
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
buildReplicaId,
|
|
22
22
|
writeEnv,
|
|
23
23
|
} from '../server/conf.js';
|
|
24
|
-
import { buildClient } from '../server/client-build.js';
|
|
24
|
+
import { buildClient, unzipClientBuild, mergeClientBuildZip } from '../server/client-build.js';
|
|
25
25
|
import { DefaultConf } from '../../conf.js';
|
|
26
26
|
import Underpost from '../index.js';
|
|
27
27
|
|
|
@@ -401,6 +401,7 @@ class UnderpostRepository {
|
|
|
401
401
|
|
|
402
402
|
/**
|
|
403
403
|
* Retrieves the message of the last Git commit.
|
|
404
|
+
* @param {number} [skip=0] - Number of commits to skip from HEAD (0 = most recent).
|
|
404
405
|
* @returns {string} The last commit message.
|
|
405
406
|
* @memberof UnderpostRepository
|
|
406
407
|
*/
|
|
@@ -642,6 +643,9 @@ class UnderpostRepository {
|
|
|
642
643
|
* @param {boolean} [options.syncEnvPort=false] - If true, syncs environment port assignments across all deploy IDs.
|
|
643
644
|
* @param {boolean} [options.singleReplica=false] - If true, builds single replica folders instead of full client.
|
|
644
645
|
* @param {boolean} [options.buildZip=false] - If true, creates zip files of the builds.
|
|
646
|
+
* @param {string|number} [options.split=''] - Optional ZIP part size in MB. When set with buildZip, writes split parts.
|
|
647
|
+
* @param {string} [options.unzip=''] - Optional build ZIP prefix to extract from ./build.
|
|
648
|
+
* @param {string} [options.mergeZip=''] - Optional build prefix to merge split ZIP parts into a single ZIP.
|
|
645
649
|
* @param {boolean} [options.liteBuild=false] - If true, skips full build (default is full build).
|
|
646
650
|
* @param {boolean} [options.iconsBuild=false] - If true, builds icons.
|
|
647
651
|
* @returns {Promise<boolean>} A promise that resolves when the build is complete.
|
|
@@ -656,12 +660,31 @@ class UnderpostRepository {
|
|
|
656
660
|
syncEnvPort: false,
|
|
657
661
|
singleReplica: false,
|
|
658
662
|
buildZip: false,
|
|
663
|
+
split: '',
|
|
664
|
+
unzip: '',
|
|
665
|
+
mergeZip: '',
|
|
659
666
|
liteBuild: false,
|
|
660
667
|
iconsBuild: false,
|
|
661
668
|
},
|
|
662
669
|
) {
|
|
663
670
|
return new Promise(async (resolve, reject) => {
|
|
664
671
|
try {
|
|
672
|
+
if (options.mergeZip) {
|
|
673
|
+
mergeClientBuildZip({
|
|
674
|
+
buildPrefix: options.mergeZip,
|
|
675
|
+
logger,
|
|
676
|
+
});
|
|
677
|
+
return resolve(true);
|
|
678
|
+
}
|
|
679
|
+
|
|
680
|
+
if (options.unzip) {
|
|
681
|
+
unzipClientBuild({
|
|
682
|
+
buildPrefix: options.unzip,
|
|
683
|
+
logger,
|
|
684
|
+
});
|
|
685
|
+
return resolve(true);
|
|
686
|
+
}
|
|
687
|
+
|
|
665
688
|
// Handle singleReplica operation (must run before syncEnvPort to ensure replica dirs exist)
|
|
666
689
|
if (options.singleReplica) {
|
|
667
690
|
const replicaPath = path;
|
|
@@ -804,6 +827,9 @@ class UnderpostRepository {
|
|
|
804
827
|
let argPath = path ? path.split(',') : [];
|
|
805
828
|
let deployIdSingleReplicas = [];
|
|
806
829
|
let singleReplicaHosts = [];
|
|
830
|
+
const isReplicaContext = resolvedDeployId
|
|
831
|
+
? fs.existsSync(`./engine-private/replica/${resolvedDeployId}`)
|
|
832
|
+
: false;
|
|
807
833
|
const serverConf = resolvedDeployId
|
|
808
834
|
? readConfJson(resolvedDeployId, 'server', { loadReplicas: true })
|
|
809
835
|
: Config.default.server;
|
|
@@ -814,7 +840,7 @@ class UnderpostRepository {
|
|
|
814
840
|
if (argHost.length && argPath.length && (!argHost.includes(host) || !argPath.includes(path))) {
|
|
815
841
|
delete serverConf[host][path];
|
|
816
842
|
} else {
|
|
817
|
-
if (serverConf[host][path].singleReplica && serverConf[host][path].replicas) {
|
|
843
|
+
if (!isReplicaContext && serverConf[host][path].singleReplica && serverConf[host][path].replicas) {
|
|
818
844
|
singleReplicaHosts.push({ host, path });
|
|
819
845
|
deployIdSingleReplicas = deployIdSingleReplicas.concat(
|
|
820
846
|
serverConf[host][path].replicas.map((replica) =>
|
|
@@ -827,10 +853,17 @@ class UnderpostRepository {
|
|
|
827
853
|
}
|
|
828
854
|
await buildClient({
|
|
829
855
|
buildZip: options.buildZip || false,
|
|
856
|
+
split: options.split || '',
|
|
830
857
|
fullBuild: options.liteBuild ? false : true,
|
|
831
858
|
iconsBuild: options.iconsBuild || false,
|
|
832
859
|
});
|
|
833
|
-
for (const replicaDeployId of deployIdSingleReplicas)
|
|
860
|
+
for (const replicaDeployId of deployIdSingleReplicas) {
|
|
861
|
+
if (!fs.existsSync(`./engine-private/replica/${replicaDeployId}`)) {
|
|
862
|
+
logger.warn('Skip replica client build: replica folder not found', { replicaDeployId });
|
|
863
|
+
continue;
|
|
864
|
+
}
|
|
865
|
+
await Underpost.repo.client(replicaDeployId);
|
|
866
|
+
}
|
|
834
867
|
|
|
835
868
|
return resolve(true);
|
|
836
869
|
}
|
|
@@ -891,8 +924,6 @@ class UnderpostRepository {
|
|
|
891
924
|
shellExec(`cd ${privateRepoPath} && underpost pull . ${process.env.GITHUB_USERNAME}/${privateRepoName}`, {
|
|
892
925
|
silent: true,
|
|
893
926
|
});
|
|
894
|
-
shellExec(`underpost run secret`);
|
|
895
|
-
shellExec(`underpost run underpost-config`);
|
|
896
927
|
const packageJsonDeploy = JSON.parse(fs.readFileSync(`./engine-private/conf/${deployId}/package.json`, 'utf8'));
|
|
897
928
|
const packageJsonEngine = JSON.parse(fs.readFileSync(`./package.json`, 'utf8'));
|
|
898
929
|
if (packageJsonDeploy.version !== packageJsonEngine.version) {
|
|
@@ -917,6 +948,7 @@ Prevent build private config repo.`,
|
|
|
917
948
|
/**
|
|
918
949
|
* Retrieves the Git commit history.
|
|
919
950
|
* @param {number} [sinceCommit=1] - The number of recent commits to retrieve.
|
|
951
|
+
* @param {string} [repoPath='.'] - The path to the repository.
|
|
920
952
|
* @returns {Array<{hash: string, message: string, files: string}>} An array of commit objects with hash, message, and files.
|
|
921
953
|
* @memberof UnderpostRepository
|
|
922
954
|
*/
|
|
@@ -974,11 +1006,14 @@ Prevent build private config repo.`,
|
|
|
974
1006
|
const host = 'default.net';
|
|
975
1007
|
const path = '/';
|
|
976
1008
|
DefaultConf.server[host][path].valkey = {
|
|
977
|
-
port: 6379,
|
|
978
|
-
host: '
|
|
1009
|
+
port: 'env:VALKEY_PORT:int:6379',
|
|
1010
|
+
host: 'env:VALKEY_HOST:127.0.0.1',
|
|
979
1011
|
};
|
|
980
|
-
|
|
981
|
-
DefaultConf.server[host][path].db.
|
|
1012
|
+
DefaultConf.server[host][path].db.host = 'env:DB_HOST:mongodb://127.0.0.1:27017';
|
|
1013
|
+
DefaultConf.server[host][path].db.replicaSet = 'env:DB_REPLICA_SET:rs0';
|
|
1014
|
+
DefaultConf.server[host][path].db.authSource = 'env:DB_AUTH_SOURCE:admin';
|
|
1015
|
+
DefaultConf.server[host][path].db.user = 'env:DB_USER:';
|
|
1016
|
+
DefaultConf.server[host][path].db.password = 'env:DB_PASSWORD:';
|
|
982
1017
|
defaultConf = true;
|
|
983
1018
|
break;
|
|
984
1019
|
}
|
|
@@ -1014,9 +1049,9 @@ Prevent build private config repo.`,
|
|
|
1014
1049
|
*/
|
|
1015
1050
|
clean(options = { paths: [''] }) {
|
|
1016
1051
|
for (const path of options.paths) {
|
|
1017
|
-
shellExec(`cd ${path} && git reset`, { silent: true });
|
|
1018
|
-
shellExec(`cd ${path} && git checkout .`, { silent: true });
|
|
1019
|
-
shellExec(`cd ${path} && git clean -f -d`, { silent: true });
|
|
1052
|
+
shellExec(`cd ${path} && git reset`, { silentOnError: true, silent: true, disableLog: true });
|
|
1053
|
+
shellExec(`cd ${path} && git checkout .`, { silentOnError: true, silent: true, disableLog: true });
|
|
1054
|
+
shellExec(`cd ${path} && git clean -f -d`, { silentOnError: true, silent: true, disableLog: true });
|
|
1020
1055
|
}
|
|
1021
1056
|
},
|
|
1022
1057
|
|
|
@@ -1070,7 +1105,7 @@ Prevent build private config repo.`,
|
|
|
1070
1105
|
|
|
1071
1106
|
try {
|
|
1072
1107
|
// Fetch directory contents recursively
|
|
1073
|
-
const copiedFiles = await this.
|
|
1108
|
+
const copiedFiles = await this.fetchAndCopyGitHubDirectory({
|
|
1074
1109
|
apiUrl,
|
|
1075
1110
|
targetPath,
|
|
1076
1111
|
basePath: directoryPath,
|
|
@@ -1106,7 +1141,7 @@ Prevent build private config repo.`,
|
|
|
1106
1141
|
* @returns {Promise<array>} Array of copied file paths.
|
|
1107
1142
|
* @memberof UnderpostRepository
|
|
1108
1143
|
*/
|
|
1109
|
-
async
|
|
1144
|
+
async fetchAndCopyGitHubDirectory(options) {
|
|
1110
1145
|
const { apiUrl, targetPath, basePath, branch } = options;
|
|
1111
1146
|
const copiedFiles = [];
|
|
1112
1147
|
|
|
@@ -1141,14 +1176,12 @@ Prevent build private config repo.`,
|
|
|
1141
1176
|
|
|
1142
1177
|
logger.info(`Found ${contents.length} items in directory: ${basePath}`);
|
|
1143
1178
|
|
|
1144
|
-
// Process each item in the directory
|
|
1145
1179
|
for (const item of contents) {
|
|
1146
1180
|
const itemTargetPath = `${targetPath}/${item.name}`;
|
|
1147
1181
|
|
|
1148
1182
|
if (item.type === 'file') {
|
|
1149
1183
|
logger.info(`Downloading file: ${item.path}`);
|
|
1150
1184
|
|
|
1151
|
-
// Download file content
|
|
1152
1185
|
const fileResponse = await fetch(item.download_url);
|
|
1153
1186
|
if (!fileResponse.ok) {
|
|
1154
1187
|
logger.error(`Failed to download: ${item.download_url}`);
|
|
@@ -1158,16 +1191,14 @@ Prevent build private config repo.`,
|
|
|
1158
1191
|
const fileContent = await fileResponse.text();
|
|
1159
1192
|
fs.writeFileSync(itemTargetPath, fileContent);
|
|
1160
1193
|
|
|
1161
|
-
logger.info(
|
|
1194
|
+
logger.info(`Saved: ${itemTargetPath}`);
|
|
1162
1195
|
copiedFiles.push(itemTargetPath);
|
|
1163
1196
|
} else if (item.type === 'dir') {
|
|
1164
|
-
logger.info(
|
|
1197
|
+
logger.info(`Processing directory: ${item.path}`);
|
|
1165
1198
|
|
|
1166
|
-
// Create subdirectory
|
|
1167
1199
|
fs.mkdirSync(itemTargetPath, { recursive: true });
|
|
1168
1200
|
|
|
1169
|
-
|
|
1170
|
-
const subFiles = await this._fetchAndCopyGitHubDirectory({
|
|
1201
|
+
const subFiles = await this.fetchAndCopyGitHubDirectory({
|
|
1171
1202
|
apiUrl: item.url,
|
|
1172
1203
|
targetPath: itemTargetPath,
|
|
1173
1204
|
basePath: item.path,
|
|
@@ -1175,7 +1206,7 @@ Prevent build private config repo.`,
|
|
|
1175
1206
|
});
|
|
1176
1207
|
|
|
1177
1208
|
copiedFiles.push(...subFiles);
|
|
1178
|
-
logger.info(
|
|
1209
|
+
logger.info(`Completed directory: ${item.path} (${subFiles.length} files)`);
|
|
1179
1210
|
} else {
|
|
1180
1211
|
logger.warn(`Skipping unknown item type '${item.type}': ${item.path}`);
|
|
1181
1212
|
}
|
|
@@ -1238,19 +1269,10 @@ Prevent build private config repo.`,
|
|
|
1238
1269
|
},
|
|
1239
1270
|
|
|
1240
1271
|
/**
|
|
1241
|
-
*
|
|
1242
|
-
*
|
|
1243
|
-
* @param {string}
|
|
1244
|
-
* @
|
|
1245
|
-
* @returns {{ count: number, branch: string, hasUnpushed: boolean }} Unpush metadata.
|
|
1246
|
-
* @memberof UnderpostRepository
|
|
1247
|
-
*/
|
|
1248
|
-
/**
|
|
1249
|
-
* Checks whether a remote Git repository URL is reachable.
|
|
1250
|
-
* Uses `git ls-remote` with `|| true` so the process always exits 0.
|
|
1251
|
-
* Injects `GITHUB_TOKEN` into GitHub HTTPS URLs when available.
|
|
1252
|
-
* @param {string} url - Full HTTPS clone URL to test (e.g. "https://github.com/org/repo.git").
|
|
1253
|
-
* @returns {boolean} `true` when the remote responded with at least one ref hash.
|
|
1272
|
+
* Resolves a Git remote URL, normalizing short-form owner/repo references to full
|
|
1273
|
+
* GitHub HTTPS URLs and injecting GITHUB_TOKEN when available.
|
|
1274
|
+
* @param {string} url - The repository URL or short-form (e.g. "owner/repo" or full HTTPS URL).
|
|
1275
|
+
* @returns {string} The resolved (and optionally authenticated) HTTPS URL.
|
|
1254
1276
|
* @memberof UnderpostRepository
|
|
1255
1277
|
*/
|
|
1256
1278
|
resolveAuthUrl(url) {
|
|
@@ -1268,20 +1290,36 @@ Prevent build private config repo.`,
|
|
|
1268
1290
|
}
|
|
1269
1291
|
return normalized;
|
|
1270
1292
|
},
|
|
1271
|
-
|
|
1293
|
+
/**
|
|
1294
|
+
* Checks whether a remote Git repository URL is reachable.
|
|
1295
|
+
* Uses `silentOnError` so a non-reachable remote returns false instead of throwing.
|
|
1296
|
+
* Injects `GITHUB_TOKEN` into GitHub HTTPS URLs when available.
|
|
1297
|
+
* @param {string} url - Full HTTPS clone URL to test (e.g. "https://github.com/org/repo.git").
|
|
1298
|
+
* @returns {boolean} `true` when the remote responded with at least one ref hash.
|
|
1299
|
+
* @memberof UnderpostRepository
|
|
1300
|
+
*/
|
|
1272
1301
|
isRemoteRepo(url) {
|
|
1273
1302
|
if (!url) return false;
|
|
1274
1303
|
const authUrl = Underpost.repo.resolveAuthUrl(url);
|
|
1275
1304
|
// GIT_TERMINAL_PROMPT=0 prevents git from hanging on credential prompts inside containers.
|
|
1276
|
-
const raw = shellExec(`GIT_TERMINAL_PROMPT=0 git ls-remote "${authUrl}" HEAD 2>&1
|
|
1305
|
+
const raw = shellExec(`GIT_TERMINAL_PROMPT=0 git ls-remote "${authUrl}" HEAD 2>&1`, {
|
|
1277
1306
|
stdout: true,
|
|
1278
1307
|
silent: true,
|
|
1279
1308
|
disableLog: true,
|
|
1309
|
+
silentOnError: true,
|
|
1280
1310
|
});
|
|
1281
1311
|
logger.info('isRemoteRepo', { url, raw: (raw || '').slice(0, 120) });
|
|
1282
1312
|
return typeof raw === 'string' && /^[0-9a-f]{40}\t/m.test(raw);
|
|
1283
1313
|
},
|
|
1284
1314
|
|
|
1315
|
+
/**
|
|
1316
|
+
* Returns metadata about unpushed commits in a git repository.
|
|
1317
|
+
* Fetches from origin, then counts commits ahead of the remote branch.
|
|
1318
|
+
* @param {string} [repoPath='.'] - Path to the git repository.
|
|
1319
|
+
* @param {number} [fallback=1] - Value to return as `count` when no unpushed commits are detected.
|
|
1320
|
+
* @returns {{ count: number, branch: string, hasUnpushed: boolean }} Unpush metadata.
|
|
1321
|
+
* @memberof UnderpostRepository
|
|
1322
|
+
*/
|
|
1285
1323
|
getUnpushedCount(repoPath = '.', fallback = 1) {
|
|
1286
1324
|
const branch = shellExec(`cd ${repoPath} && git branch --show-current`, {
|
|
1287
1325
|
stdout: true,
|
|
@@ -1321,19 +1359,6 @@ Prevent build private config repo.`,
|
|
|
1321
1359
|
.trim()
|
|
1322
1360
|
.replaceAll('] - ', '] ');
|
|
1323
1361
|
},
|
|
1324
|
-
|
|
1325
|
-
/**
|
|
1326
|
-
* Manages a cron-backup Git repository: clone, pull, commit, or push.
|
|
1327
|
-
* Resolves the repository path as `../<repoName>` relative to the CWD.
|
|
1328
|
-
* Requires the `GITHUB_USERNAME` environment variable to be set.
|
|
1329
|
-
* @param {object} params
|
|
1330
|
-
* @param {string} params.repoName - Repository name (e.g. `engine-cyberia-cron-backups`).
|
|
1331
|
-
* @param {'clone'|'pull'|'commit'|'push'} params.operation - Git operation to perform.
|
|
1332
|
-
* @param {string} [params.message=''] - Commit message (used by the `commit` operation).
|
|
1333
|
-
* @param {boolean} [params.forceClone=false] - Remove existing clone before re-cloning.
|
|
1334
|
-
* @returns {boolean} `true` on success, `false` if GITHUB_USERNAME is unset or on error.
|
|
1335
|
-
* @memberof UnderpostRepository
|
|
1336
|
-
*/
|
|
1337
1362
|
/**
|
|
1338
1363
|
* Initializes a git repository at the given path and configures user identity
|
|
1339
1364
|
* from environment variables (`GITHUB_USERNAME` / `GITHUB_EMAIL`).
|
|
@@ -1353,11 +1378,12 @@ Prevent build private config repo.`,
|
|
|
1353
1378
|
}
|
|
1354
1379
|
shellExec(`cd "${repoPath}" && git config user.name '${gitUsername}'`);
|
|
1355
1380
|
shellExec(`cd "${repoPath}" && git config user.email '${gitEmail}'`);
|
|
1356
|
-
|
|
1381
|
+
shellExec(`cd "${repoPath}" && git config core.filemode false`);
|
|
1357
1382
|
if (origin) {
|
|
1358
|
-
const currentRemote = shellExec(`cd "${repoPath}" && git remote get-url origin
|
|
1383
|
+
const currentRemote = shellExec(`cd "${repoPath}" && git remote get-url origin`, {
|
|
1359
1384
|
stdout: true,
|
|
1360
1385
|
silent: true,
|
|
1386
|
+
silentOnError: true,
|
|
1361
1387
|
}).trim();
|
|
1362
1388
|
if (!currentRemote) {
|
|
1363
1389
|
shellExec(`cd "${repoPath}" && git remote add origin "${origin}"`);
|
|
@@ -1366,7 +1392,18 @@ Prevent build private config repo.`,
|
|
|
1366
1392
|
}
|
|
1367
1393
|
}
|
|
1368
1394
|
},
|
|
1369
|
-
|
|
1395
|
+
/**
|
|
1396
|
+
* Manages a cron-backup Git repository: clone, pull, commit, or push.
|
|
1397
|
+
* Resolves the repository path as `../<repoName>` relative to the CWD.
|
|
1398
|
+
* Requires the `GITHUB_USERNAME` environment variable to be set.
|
|
1399
|
+
* @param {object} params
|
|
1400
|
+
* @param {string} params.repoName - Repository name (e.g. `engine-cyberia-cron-backups`).
|
|
1401
|
+
* @param {'clone'|'pull'|'commit'|'push'} params.operation - Git operation to perform.
|
|
1402
|
+
* @param {string} [params.message=''] - Commit message (used by the `commit` operation).
|
|
1403
|
+
* @param {boolean} [params.forceClone=false] - Remove existing clone before re-cloning.
|
|
1404
|
+
* @returns {boolean} `true` on success, `false` if GITHUB_USERNAME is unset or on error.
|
|
1405
|
+
* @memberof UnderpostRepository
|
|
1406
|
+
*/
|
|
1370
1407
|
manageBackupRepo({ repoName, operation, message = '', forceClone = false }) {
|
|
1371
1408
|
try {
|
|
1372
1409
|
const username = process.env.GITHUB_USERNAME;
|
|
@@ -1570,6 +1607,52 @@ Prevent build private config repo.`,
|
|
|
1570
1607
|
logger.info('engine-private in /home/dd removed');
|
|
1571
1608
|
}
|
|
1572
1609
|
},
|
|
1610
|
+
|
|
1611
|
+
/**
|
|
1612
|
+
* Resolves the GitHub repository for a given instance runtime by scanning
|
|
1613
|
+
* every `conf.instances.json` listed in `./engine-private/deploy/dd.router`.
|
|
1614
|
+
*
|
|
1615
|
+
* Resolution order:
|
|
1616
|
+
* 1. If `runtime` is falsy, returns `${GITHUB_USERNAME}/engine`.
|
|
1617
|
+
* 2. Iterates each deploy ID found in `dd.router` and looks for an instance
|
|
1618
|
+
* whose `runtime` field matches the supplied value.
|
|
1619
|
+
* 3. When a match is found, returns `instance.metadata.repository`.
|
|
1620
|
+
* 4. Falls back to `${GITHUB_USERNAME}/engine` when no match is found.
|
|
1621
|
+
*
|
|
1622
|
+
* @param {string} [runtime=''] - The runtime identifier to look up (e.g. `'cyberia-server'`, `'cyberia-client'`).
|
|
1623
|
+
* @returns {string} The resolved `owner/repo` string.
|
|
1624
|
+
* @memberof UnderpostRepository
|
|
1625
|
+
*/
|
|
1626
|
+
resolveInstanceRepo(runtime = '') {
|
|
1627
|
+
const fallback = `${process.env.GITHUB_USERNAME}/engine`;
|
|
1628
|
+
if (!runtime) return fallback;
|
|
1629
|
+
const ddRouter = './engine-private/deploy/dd.router';
|
|
1630
|
+
const deployIds = fs.existsSync(ddRouter)
|
|
1631
|
+
? fs
|
|
1632
|
+
.readFileSync(ddRouter, 'utf8')
|
|
1633
|
+
.split(',')
|
|
1634
|
+
.map((s) => s.trim())
|
|
1635
|
+
.filter(Boolean)
|
|
1636
|
+
: [];
|
|
1637
|
+
for (const deployId of deployIds) {
|
|
1638
|
+
const confPath = `./engine-private/conf/${deployId}/conf.instances.json`;
|
|
1639
|
+
if (!fs.existsSync(confPath)) continue;
|
|
1640
|
+
try {
|
|
1641
|
+
const instances = JSON.parse(fs.readFileSync(confPath, 'utf8'));
|
|
1642
|
+
const match = instances.find((i) => i && i.runtime === runtime);
|
|
1643
|
+
if (match && match.metadata && match.metadata.repository) {
|
|
1644
|
+
logger.info(`[resolveInstanceRepo] resolved from ${confPath}`, {
|
|
1645
|
+
runtime,
|
|
1646
|
+
repo: match.metadata.repository,
|
|
1647
|
+
});
|
|
1648
|
+
return match.metadata.repository;
|
|
1649
|
+
}
|
|
1650
|
+
} catch (err) {
|
|
1651
|
+
logger.warn(`[resolveInstanceRepo] failed to parse ${confPath}: ${err.message}`);
|
|
1652
|
+
}
|
|
1653
|
+
}
|
|
1654
|
+
return fallback;
|
|
1655
|
+
},
|
|
1573
1656
|
};
|
|
1574
1657
|
}
|
|
1575
1658
|
|