@underpostnet/cyberia 3.3.77 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +1 -0
- package/.github/workflows/coverall.cyberia.ci.yml +12 -3
- package/.github/workflows/cyberia-client.cd.yml +2 -1
- package/.github/workflows/cyberia-server.cd.yml +2 -1
- package/.github/workflows/docker-image.cyberia-client.ci.yml +1 -1
- package/.github/workflows/docker-image.cyberia-client.dev.ci.yml +1 -1
- package/.github/workflows/docker-image.cyberia-server.ci.yml +1 -1
- package/.github/workflows/docker-image.cyberia-server.dev.ci.yml +1 -1
- package/.github/workflows/docker-image.engine-cyberia.ci.yml +1 -1
- package/.github/workflows/docker-image.engine-cyberia.dev.ci.yml +1 -1
- package/.github/workflows/engine-cyberia.ci.yml +6 -0
- package/.github/workflows/ghpkg.ci.yml +19 -2
- package/.github/workflows/gitlab.ci.yml +8 -6
- package/.github/workflows/hardhat.ci.yml +4 -1
- package/.github/workflows/npmpkg.ci.yml +9 -5
- package/.github/workflows/publish.ci.yml +21 -12
- package/.github/workflows/publish.cyberia.ci.yml +25 -14
- package/.github/workflows/pwa-microservices-template-page.cd.yml +4 -2
- package/CHANGELOG.md +75 -140
- package/CLI-HELP.md +28 -1
- package/Dockerfile +1 -1
- package/Dockerfile.dev +1 -1
- package/Dockerfile.test +1 -1
- package/README.md +1 -1
- package/bin/build.js +2 -4
- package/bin/cyberia.js +4 -4
- package/bin/index.js +4 -4
- package/compose.env +1 -0
- package/conf.js +1 -1042
- package/deploy/cyberia-client/deploy.sh +13 -11
- package/deploy/cyberia-server/deploy.sh +13 -11
- package/deploy/dd-cyberia/sync-deploy.sh +7 -28
- package/deploy/lib/config.sh +1 -1
- package/deploy/lib/github-actions-logging.sh +3 -2
- package/deploy/pwa-microservices-template/deploy.sh +7 -1
- package/deployment.yaml +1 -1
- package/docker-compose.yml +7 -7
- package/docs/coverage/cyberia/api/cyberia-instance/cyberia-fallback-capture.js.html +1 -1
- package/docs/coverage/cyberia/api/cyberia-instance/index.html +1 -1
- package/docs/coverage/cyberia/api/cyberia-server-defaults/cyberia-server-defaults.js.html +1 -1
- package/docs/coverage/cyberia/api/cyberia-server-defaults/index.html +1 -1
- package/docs/coverage/cyberia/api/object-layer/index.html +1 -1
- package/docs/coverage/cyberia/api/object-layer/object-layer.model.js.html +1 -1
- package/docs/coverage/cyberia/index.html +1 -1
- package/docs/coverage/cyberia/projects/cyberia/atlas-sprite-sheet-generator.js.html +1 -1
- package/docs/coverage/cyberia/projects/cyberia/index.html +1 -1
- package/docs/coverage/cyberia/projects/cyberia/instance-backup.js.html +1 -1
- package/docs/coverage/cyberia/projects/cyberia/instance-data.js.html +1 -1
- package/docs/coverage/cyberia/projects/cyberia/shape-generator.js.html +1 -1
- package/docs/coverage/cyberia/projects/cyberia/stat-balance.js.html +1 -1
- package/hardhat/package-lock.json +6 -6
- package/hardhat/package.json +2 -2
- package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +1 -1
- package/manifests/cronjobs/dd-cron/dd-cron-vultr.yaml +1 -1
- package/manifests/deployment/dd-cyberia-development/deployment.yaml +1 -1
- package/manifests/deployment/dd-default-development/deployment.yaml +2 -2
- package/package.json +19 -17
- package/scripts/test-monitor.sh +1 -1
- package/src/api/file/file.router.js +7 -1
- package/src/cli/baremetal.js +1 -1
- package/src/cli/docker-compose.js +1 -1
- package/src/cli/index.js +36 -0
- package/src/cli/kubectl.js +4 -3
- package/src/cli/release.js +2 -0
- package/src/cli/repository.js +7 -2
- package/src/cli/run.js +1 -1
- package/src/cli/secrets.js +393 -200
- package/src/cli/socketsecurity.js +260 -0
- package/src/client/components/core/CssCore.js +3 -0
- package/src/client/components/core/Modal.js +160 -36
- package/src/client/components/core/SearchBox.js +0 -1
- package/src/client/components/underpost/AppShellUnderpost.js +13 -1
- package/src/client/components/underpost/CssUnderpost.js +15 -2
- package/src/client/public/cyberia-docs/CYBERIA-CLIENT.md +8 -0
- package/src/client/public/cyberia-docs/CYBERIA.md +1 -1
- package/src/client/public/cyberia-docs/OFF-CHAIN-ECONOMY.md +54 -56
- package/src/client/public/cyberia-docs/ROADMAP.md +1 -1
- package/src/client/public/cyberia-docs/UNDERPOST-PLATFORM.md +30 -29
- package/src/client/public/cyberia-docs/WHITE-PAPER.md +1 -1
- package/src/client/ssr/body/UnderpostDefaultSplashScreen.js +54 -25
- package/src/client/ssr/head/Css.js +12 -10
- package/src/client/ssr/views/Cyberia404.js +6 -10
- package/src/client/ssr/views/NotFound.js +75 -0
- package/src/client-builder/client-bundle.js +2 -2
- package/src/index.js +13 -1
- package/src/runtime/engine-cyberia/Dockerfile +1 -1
- package/src/runtime/engine-cyberia/Dockerfile.dev +1 -1
- package/src/runtime/engine-cyberia/Dockerfile.test +1 -1
- package/src/runtime/engine-cyberia/compose.env +1 -0
- package/src/runtime/engine-cyberia/docker-compose.yml +7 -7
- package/src/server/build/catalog.js +1 -0
- package/src/server/build/execution.js +19 -5
- package/src/server/build/package.js +166 -3
- package/src/server/build/testing.js +2 -1
- package/src/server/runtime/conf.js +21 -0
- package/src/server/runtime/config-scope.js +2 -0
- package/src/server/runtime/process.js +4 -3
- package/src/server/security/socketsecurity.js +1735 -0
- package/test/integration/infra/1-security/config-scope.test.js +3 -0
- package/test/integration/infra/1-security/socketsecurity.test.js +1041 -0
- package/test/integration/infra/1-security/sops-secret-store.test.js +201 -71
- package/test/unit/build-template.test.js +24 -0
- package/test/unit/deploy-log-table.test.js +38 -0
- package/test/unit/execution-profiles.test.js +1 -0
- package/test/unit/package.test.js +118 -0
|
@@ -8,6 +8,8 @@ source "$SCRIPT_DIR/../lib/host.sh"
|
|
|
8
8
|
DEPLOY_ID=dd-cyberia
|
|
9
9
|
INSTANCE_ID=mmo-client
|
|
10
10
|
TARGET_NODE="${TARGET_NODE:-$WORKER_NODE}"
|
|
11
|
+
ENGINE_SRC_REPO="${ENGINE_SRC_REPO:-underpostnet/engine-test-cyberia}"
|
|
12
|
+
ENGINE_SRC_PRIVATE_REPO="${ENGINE_SRC_PRIVATE_REPO:-underpostnet/engine-private}"
|
|
11
13
|
|
|
12
14
|
main() {
|
|
13
15
|
deploy_start "Starting remote deploy"
|
|
@@ -15,24 +17,24 @@ main() {
|
|
|
15
17
|
prepare_host "$ENGINE_ROOT"
|
|
16
18
|
|
|
17
19
|
deploy_step "Build $DEPLOY_ID configuration" \
|
|
18
|
-
|
|
19
|
-
|
|
20
|
+
sudo -n -- /bin/bash -lc \
|
|
21
|
+
"cd $ENGINE_ROOT && node bin/build $DEPLOY_ID --conf"
|
|
20
22
|
|
|
21
23
|
deploy_step "Wait for target node readiness" \
|
|
22
|
-
|
|
23
|
-
|
|
24
|
+
sudo -n -- /bin/bash -lc \
|
|
25
|
+
"cd $ENGINE_ROOT && kubectl wait --for=condition=Ready node/${TARGET_NODE} --timeout=2m"
|
|
24
26
|
|
|
25
27
|
deploy_step "Wait for ingress rollout" \
|
|
26
|
-
|
|
27
|
-
|
|
28
|
+
sudo -n -- /bin/bash -lc \
|
|
29
|
+
"cd $ENGINE_ROOT && kubectl rollout status deployment/underpost-ingress -n default --timeout=5m"
|
|
28
30
|
|
|
29
31
|
deploy_step "Wait for gateway rollout" \
|
|
30
|
-
|
|
31
|
-
|
|
32
|
+
sudo -n -- /bin/bash -lc \
|
|
33
|
+
"cd $ENGINE_ROOT && kubectl rollout status deployment/underpost-gateway -n default --timeout=5m"
|
|
32
34
|
|
|
33
35
|
deploy_step "Deploy $DEPLOY_ID $INSTANCE_ID instance" \
|
|
34
|
-
|
|
35
|
-
|
|
36
|
+
sudo -n -- /bin/bash -lc \
|
|
37
|
+
"cd $ENGINE_ROOT && node bin run instance \
|
|
36
38
|
--kubeadm \
|
|
37
39
|
${TARGET_NODE:+--node-name ${TARGET_NODE}} \
|
|
38
40
|
--gateway-api \
|
|
@@ -40,7 +42,7 @@ main() {
|
|
|
40
42
|
--ingress-node ${INGRESS_NODE} \
|
|
41
43
|
--ssh-key-path ${DEPLOY_SSH_KEY_PATH} \
|
|
42
44
|
--deploy-id $DEPLOY_ID \
|
|
43
|
-
|
|
45
|
+
--instance-id $INSTANCE_ID"
|
|
44
46
|
}
|
|
45
47
|
|
|
46
48
|
main "$@"
|
|
@@ -8,6 +8,8 @@ source "$SCRIPT_DIR/../lib/host.sh"
|
|
|
8
8
|
DEPLOY_ID=dd-cyberia
|
|
9
9
|
INSTANCE_ID=mmo-server
|
|
10
10
|
TARGET_NODE="${TARGET_NODE:-$WORKER_NODE}"
|
|
11
|
+
ENGINE_SRC_REPO="${ENGINE_SRC_REPO:-underpostnet/engine-test-cyberia}"
|
|
12
|
+
ENGINE_SRC_PRIVATE_REPO="${ENGINE_SRC_PRIVATE_REPO:-underpostnet/engine-private}"
|
|
11
13
|
|
|
12
14
|
main() {
|
|
13
15
|
deploy_start "Starting remote deploy"
|
|
@@ -15,24 +17,24 @@ main() {
|
|
|
15
17
|
prepare_host "$ENGINE_ROOT"
|
|
16
18
|
|
|
17
19
|
deploy_step "Build $DEPLOY_ID configuration" \
|
|
18
|
-
|
|
19
|
-
|
|
20
|
+
sudo -n -- /bin/bash -lc \
|
|
21
|
+
"cd $ENGINE_ROOT && node bin/build $DEPLOY_ID --conf"
|
|
20
22
|
|
|
21
23
|
deploy_step "Wait for target node readiness" \
|
|
22
|
-
|
|
23
|
-
|
|
24
|
+
sudo -n -- /bin/bash -lc \
|
|
25
|
+
"cd $ENGINE_ROOT && kubectl wait --for=condition=Ready node/${TARGET_NODE} --timeout=2m"
|
|
24
26
|
|
|
25
27
|
deploy_step "Wait for ingress rollout" \
|
|
26
|
-
|
|
27
|
-
|
|
28
|
+
sudo -n -- /bin/bash -lc \
|
|
29
|
+
"cd $ENGINE_ROOT && kubectl rollout status deployment/underpost-ingress -n default --timeout=5m"
|
|
28
30
|
|
|
29
31
|
deploy_step "Wait for gateway rollout" \
|
|
30
|
-
|
|
31
|
-
|
|
32
|
+
sudo -n -- /bin/bash -lc \
|
|
33
|
+
"cd $ENGINE_ROOT && kubectl rollout status deployment/underpost-gateway -n default --timeout=5m"
|
|
32
34
|
|
|
33
35
|
deploy_step "Deploy $DEPLOY_ID $INSTANCE_ID instance" \
|
|
34
|
-
|
|
35
|
-
|
|
36
|
+
sudo -n -- /bin/bash -lc \
|
|
37
|
+
"cd $ENGINE_ROOT && node bin run instance \
|
|
36
38
|
--kubeadm \
|
|
37
39
|
${TARGET_NODE:+--node-name ${TARGET_NODE}} \
|
|
38
40
|
--gateway-api \
|
|
@@ -40,7 +42,7 @@ main() {
|
|
|
40
42
|
--ingress-node ${INGRESS_NODE} \
|
|
41
43
|
--ssh-key-path ${DEPLOY_SSH_KEY_PATH} \
|
|
42
44
|
--deploy-id $DEPLOY_ID \
|
|
43
|
-
|
|
45
|
+
--instance-id $INSTANCE_ID"
|
|
44
46
|
}
|
|
45
47
|
|
|
46
48
|
main "$@"
|
|
@@ -23,13 +23,9 @@ UNDERPOST_ASSETS=src/client/public/underpost
|
|
|
23
23
|
# from source, which is the behaviour this script had before bundle mode existed.
|
|
24
24
|
BUNDLE_MODE="${BUNDLE_MODE:-1}"
|
|
25
25
|
BUNDLE_SPLIT="${BUNDLE_SPLIT:-8}"
|
|
26
|
-
# Where push-bundle records the uploaded keys, relative to a conf checkout root.
|
|
27
|
-
BUNDLE_MANIFEST_PATH="conf/$DEPLOY_ID/storage.bundle.json"
|
|
28
26
|
# `mv` into a directory that already exists nests the checkout inside it rather than replacing
|
|
29
27
|
# it, and the pod would then load whatever conf the image carried.
|
|
30
28
|
POD_SRC_PRIVATE_DIR="${POD_SRC_PRIVATE_REPO##*/}"
|
|
31
|
-
# Sibling of the engine checkout, so the publish work tree is never part of it.
|
|
32
|
-
POD_PRIVATE_CHECKOUT="../$POD_SRC_PRIVATE_DIR"
|
|
33
29
|
|
|
34
30
|
main() {
|
|
35
31
|
deploy_start "Starting remote sync and deploy"
|
|
@@ -102,38 +98,21 @@ main() {
|
|
|
102
98
|
|
|
103
99
|
# Follows the manifest step: the client renders from the conf.ssr.json that build-manifest
|
|
104
100
|
# writes, so a bundle pushed before it would ship the previous SSR views. The uploaded keys
|
|
105
|
-
# are recorded in engine-private/conf/$DEPLOY_ID/storage.bundle.json
|
|
106
|
-
# back through its own conf repository.
|
|
101
|
+
# are recorded in engine-private/conf/$DEPLOY_ID/storage.bundle.json.
|
|
107
102
|
if [ "$BUNDLE_MODE" = "1" ]; then
|
|
108
103
|
deploy_step "Push $DEPLOY_ID client bundle" \
|
|
109
104
|
sudo -n -- /bin/bash -lc \
|
|
110
105
|
"cd $ENGINE_ROOT && node bin run push-bundle \
|
|
111
106
|
--deploy-id $DEPLOY_ID \
|
|
112
107
|
--split $BUNDLE_SPLIT"
|
|
113
|
-
|
|
114
|
-
# push-bundle records the keys in the host's own conf checkout, but the pod replaces
|
|
115
|
-
# ./engine-private with a clone of its conf repository — so the manifest is published
|
|
116
|
-
# there too, or the pod reads an empty one and restores nothing. Cloning from the engine
|
|
117
|
-
# root keeps `underpost clone` reading this checkout's credentials, and the work tree is
|
|
118
|
-
# then moved out so it is never part of the engine checkout.
|
|
119
|
-
deploy_step "Stage $DEPLOY_ID bundle manifest" \
|
|
120
|
-
sudo -n -- /bin/bash -lc \
|
|
121
|
-
"cd $ENGINE_ROOT && rm -rf $POD_PRIVATE_CHECKOUT \
|
|
122
|
-
&& node bin clone $POD_SRC_PRIVATE_REPO \
|
|
123
|
-
&& mv ./$POD_SRC_PRIVATE_DIR $POD_PRIVATE_CHECKOUT \
|
|
124
|
-
&& mkdir -p $POD_PRIVATE_CHECKOUT/conf/$DEPLOY_ID \
|
|
125
|
-
&& cp ./engine-private/$BUNDLE_MANIFEST_PATH $POD_PRIVATE_CHECKOUT/$BUNDLE_MANIFEST_PATH"
|
|
126
|
-
|
|
127
|
-
# A rerun that uploads the same keys leaves the manifest byte-identical, and committing
|
|
128
|
-
# nothing fails the step.
|
|
129
|
-
if [ "$(has_changes $POD_PRIVATE_CHECKOUT "$ENGINE_ROOT")" = "1" ]; then
|
|
130
|
-
deploy_step "Publish $DEPLOY_ID bundle manifest" \
|
|
131
|
-
sudo -n -- /bin/bash -lc \
|
|
132
|
-
"cd $ENGINE_ROOT && node bin cmt $POD_PRIVATE_CHECKOUT feat 'Update $DEPLOY_ID bundle manifest' \
|
|
133
|
-
&& node bin push $POD_PRIVATE_CHECKOUT $POD_SRC_PRIVATE_REPO"
|
|
134
|
-
fi
|
|
135
108
|
fi
|
|
136
109
|
|
|
110
|
+
# The pod replaces ./engine-private with a clone of its conf repository, so this publishes
|
|
111
|
+
# the deploy's conf there — the bundle manifest included — before the pod starts.
|
|
112
|
+
deploy_step "Build $DEPLOY_ID configuration" \
|
|
113
|
+
sudo -n -- /bin/bash -lc \
|
|
114
|
+
"cd $ENGINE_ROOT && node bin/build $DEPLOY_ID --conf"
|
|
115
|
+
|
|
137
116
|
# Two commands, one bootstrap: `pod_bootstrap_cmd` replaces the image's engine with this
|
|
138
117
|
# deploy's source and repoints the global bin at it — without that, the first step needing
|
|
139
118
|
# the current CLI answered `unknown command 'app'`. `start --build` then owns the rest
|
package/deploy/lib/config.sh
CHANGED
|
@@ -26,4 +26,4 @@ DEPLOY_SSH_KEY_PATH="${DEPLOY_SSH_KEY_PATH:-/home/dd/tmp/897as9dxhaskd9}"
|
|
|
26
26
|
|
|
27
27
|
# The published image the WordPress deploys run. Pinned rather than derived from the checkout's
|
|
28
28
|
# version: a tag is only deployable once the release workflow has published it.
|
|
29
|
-
DEPLOY_WP_IMAGE="${DEPLOY_WP_IMAGE:-underpost/wp:v3.
|
|
29
|
+
DEPLOY_WP_IMAGE="${DEPLOY_WP_IMAGE:-underpost/wp:v3.4.0}"
|
|
@@ -537,8 +537,9 @@ run_quiet() {
|
|
|
537
537
|
|
|
538
538
|
# stderr is duplicated: on its own for the native error and stack trace, and
|
|
539
539
|
# into the merged stream so both the debug log and the filter see it in
|
|
540
|
-
# chronological order with stdout.
|
|
541
|
-
tee
|
|
540
|
+
# chronological order with stdout. tee opens the merged writer first: if a short command
|
|
541
|
+
# closes the stream before it, awk reads EOF and tee blocks until the drain kills it.
|
|
542
|
+
tee -a "$error_log" >"$fifo_dir/merged" <"$fifo_dir/stderr" &
|
|
542
543
|
stderr_pid=$!
|
|
543
544
|
|
|
544
545
|
"$@" >"$fifo_dir/merged" 2>"$fifo_dir/stderr" || status=$?
|
|
@@ -11,6 +11,12 @@ REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
|
|
11
11
|
|
|
12
12
|
DEPLOY_ID=dd-github-pages
|
|
13
13
|
|
|
14
|
+
# `bin new --default-conf --conf-workflow-id $DEPLOY_ID` (src/cli/repository.js) keys the
|
|
15
|
+
# generated conf off this same variable, defaulting to underpostnet when unset — kept in step so
|
|
16
|
+
# a checkout under any GitHub owner (underpost, underpostnet, ...) builds and uploads its own
|
|
17
|
+
# `<owner>.github.io` pages instead of always the default owner's.
|
|
18
|
+
GITHUB_PAGES_HOST="${GITHUB_USERNAME:-underpostnet}.github.io"
|
|
19
|
+
|
|
14
20
|
main() {
|
|
15
21
|
deploy_start "Starting github pages deploy"
|
|
16
22
|
|
|
@@ -41,7 +47,7 @@ main() {
|
|
|
41
47
|
node bin app load --env production --args deploy-id=$DEPLOY_ID
|
|
42
48
|
|
|
43
49
|
deploy_step "Build $DEPLOY_ID client" \
|
|
44
|
-
env NODE_ENV=production node bin client $DEPLOY_ID ''
|
|
50
|
+
env NODE_ENV=production node bin client $DEPLOY_ID '' $GITHUB_PAGES_HOST /pwa-microservices-template-ghpkg
|
|
45
51
|
}
|
|
46
52
|
|
|
47
53
|
main "$@"
|
package/deployment.yaml
CHANGED
package/docker-compose.yml
CHANGED
|
@@ -135,7 +135,7 @@ services:
|
|
|
135
135
|
# server starts but rejects connections until seeded). Serves REST/WS on 4005
|
|
136
136
|
# and the engine gRPC data service on 50051.
|
|
137
137
|
engine-cyberia-runtime:
|
|
138
|
-
image: ${ENGINE_CYBERIA_IMAGE:-underpost/engine-cyberia-dev}:${ENGINE_CYBERIA_TAG:-v3.
|
|
138
|
+
image: ${ENGINE_CYBERIA_IMAGE:-underpost/engine-cyberia-dev}:${ENGINE_CYBERIA_TAG:-v3.4.0}
|
|
139
139
|
container_name: dd-cyberia-engine
|
|
140
140
|
command:
|
|
141
141
|
- /bin/sh
|
|
@@ -190,7 +190,7 @@ services:
|
|
|
190
190
|
# gateway on host port 8081, so one port can route every instance path.
|
|
191
191
|
|
|
192
192
|
cyberia-server-runtime:
|
|
193
|
-
image: ${CYBERIA_SERVER_IMAGE:-underpost/cyberia-server-dev}:${CYBERIA_SERVER_TAG:-v3.
|
|
193
|
+
image: ${CYBERIA_SERVER_IMAGE:-underpost/cyberia-server-dev}:${CYBERIA_SERVER_TAG:-v3.4.0}
|
|
194
194
|
container_name: dd-cyberia-server
|
|
195
195
|
environment:
|
|
196
196
|
INSTANCE_CODE: amethyst-strata-expansion
|
|
@@ -228,7 +228,7 @@ services:
|
|
|
228
228
|
restart: unless-stopped
|
|
229
229
|
|
|
230
230
|
cyberia-server-forest:
|
|
231
|
-
image: ${CYBERIA_SERVER_IMAGE:-underpost/cyberia-server-dev}:${CYBERIA_SERVER_TAG:-v3.
|
|
231
|
+
image: ${CYBERIA_SERVER_IMAGE:-underpost/cyberia-server-dev}:${CYBERIA_SERVER_TAG:-v3.4.0}
|
|
232
232
|
container_name: dd-cyberia-server-forest
|
|
233
233
|
environment:
|
|
234
234
|
INSTANCE_CODE: FOREST
|
|
@@ -266,7 +266,7 @@ services:
|
|
|
266
266
|
restart: unless-stopped
|
|
267
267
|
|
|
268
268
|
cyberia-server-test:
|
|
269
|
-
image: ${CYBERIA_SERVER_IMAGE:-underpost/cyberia-server-dev}:${CYBERIA_SERVER_TAG:-v3.
|
|
269
|
+
image: ${CYBERIA_SERVER_IMAGE:-underpost/cyberia-server-dev}:${CYBERIA_SERVER_TAG:-v3.4.0}
|
|
270
270
|
container_name: dd-cyberia-server-test
|
|
271
271
|
environment:
|
|
272
272
|
INSTANCE_CODE: TEST
|
|
@@ -315,7 +315,7 @@ services:
|
|
|
315
315
|
# cyberia-server-test -> cyberia-client-test
|
|
316
316
|
|
|
317
317
|
cyberia-client-runtime:
|
|
318
|
-
image: ${CYBERIA_CLIENT_IMAGE:-underpost/cyberia-client-dev}:${CYBERIA_CLIENT_TAG:-v3.
|
|
318
|
+
image: ${CYBERIA_CLIENT_IMAGE:-underpost/cyberia-client-dev}:${CYBERIA_CLIENT_TAG:-v3.4.0}
|
|
319
319
|
container_name: dd-cyberia-client
|
|
320
320
|
environment:
|
|
321
321
|
CYBERIA_PORT: '8081'
|
|
@@ -340,7 +340,7 @@ services:
|
|
|
340
340
|
restart: unless-stopped
|
|
341
341
|
|
|
342
342
|
cyberia-client-forest:
|
|
343
|
-
image: ${CYBERIA_CLIENT_IMAGE:-underpost/cyberia-client-dev}:${CYBERIA_CLIENT_TAG:-v3.
|
|
343
|
+
image: ${CYBERIA_CLIENT_IMAGE:-underpost/cyberia-client-dev}:${CYBERIA_CLIENT_TAG:-v3.4.0}
|
|
344
344
|
container_name: dd-cyberia-client-forest
|
|
345
345
|
environment:
|
|
346
346
|
CYBERIA_PORT: '8081'
|
|
@@ -365,7 +365,7 @@ services:
|
|
|
365
365
|
restart: unless-stopped
|
|
366
366
|
|
|
367
367
|
cyberia-client-test:
|
|
368
|
-
image: ${CYBERIA_CLIENT_IMAGE:-underpost/cyberia-client-dev}:${CYBERIA_CLIENT_TAG:-v3.
|
|
368
|
+
image: ${CYBERIA_CLIENT_IMAGE:-underpost/cyberia-client-dev}:${CYBERIA_CLIENT_TAG:-v3.4.0}
|
|
369
369
|
container_name: dd-cyberia-client-test
|
|
370
370
|
environment:
|
|
371
371
|
CYBERIA_PORT: '8081'
|
|
@@ -1576,7 +1576,7 @@ export {
|
|
|
1576
1576
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1577
1577
|
Code coverage generated by
|
|
1578
1578
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1579
|
-
at 2026-09-
|
|
1579
|
+
at 2026-09-15T22:49:07.006Z
|
|
1580
1580
|
</div>
|
|
1581
1581
|
<script src="../../prettify.js"></script>
|
|
1582
1582
|
<script>
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
102
102
|
Code coverage generated by
|
|
103
103
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
104
|
-
at 2026-09-
|
|
104
|
+
at 2026-09-15T22:49:07.006Z
|
|
105
105
|
</div>
|
|
106
106
|
<script src="../../prettify.js"></script>
|
|
107
107
|
<script>
|
|
@@ -4123,7 +4123,7 @@ export function fillInstanceConfDefaults(conf = {}) {
|
|
|
4123
4123
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
4124
4124
|
Code coverage generated by
|
|
4125
4125
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
4126
|
-
at 2026-09-
|
|
4126
|
+
at 2026-09-15T22:49:07.006Z
|
|
4127
4127
|
</div>
|
|
4128
4128
|
<script src="../../prettify.js"></script>
|
|
4129
4129
|
<script>
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
102
102
|
Code coverage generated by
|
|
103
103
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
104
|
-
at 2026-09-
|
|
104
|
+
at 2026-09-15T22:49:07.006Z
|
|
105
105
|
</div>
|
|
106
106
|
<script src="../../prettify.js"></script>
|
|
107
107
|
<script>
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
102
102
|
Code coverage generated by
|
|
103
103
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
104
|
-
at 2026-09-
|
|
104
|
+
at 2026-09-15T22:49:07.006Z
|
|
105
105
|
</div>
|
|
106
106
|
<script src="../../prettify.js"></script>
|
|
107
107
|
<script>
|
|
@@ -1378,7 +1378,7 @@ export {
|
|
|
1378
1378
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1379
1379
|
Code coverage generated by
|
|
1380
1380
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1381
|
-
at 2026-09-
|
|
1381
|
+
at 2026-09-15T22:49:07.006Z
|
|
1382
1382
|
</div>
|
|
1383
1383
|
<script src="../../prettify.js"></script>
|
|
1384
1384
|
<script>
|
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
147
147
|
Code coverage generated by
|
|
148
148
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
149
|
-
at 2026-09-
|
|
149
|
+
at 2026-09-15T22:49:07.006Z
|
|
150
150
|
</div>
|
|
151
151
|
<script src="prettify.js"></script>
|
|
152
152
|
<script>
|
|
@@ -1300,7 +1300,7 @@ export class AtlasSpriteSheetGenerator {
|
|
|
1300
1300
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1301
1301
|
Code coverage generated by
|
|
1302
1302
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1303
|
-
at 2026-09-
|
|
1303
|
+
at 2026-09-15T22:49:07.006Z
|
|
1304
1304
|
</div>
|
|
1305
1305
|
<script src="../../prettify.js"></script>
|
|
1306
1306
|
<script>
|
|
@@ -161,7 +161,7 @@
|
|
|
161
161
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
162
162
|
Code coverage generated by
|
|
163
163
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
164
|
-
at 2026-09-
|
|
164
|
+
at 2026-09-15T22:49:07.006Z
|
|
165
165
|
</div>
|
|
166
166
|
<script src="../../prettify.js"></script>
|
|
167
167
|
<script>
|
|
@@ -700,7 +700,7 @@ export async function restoreObjectLayerBackup({ backupDir, itemId, options }) {
|
|
|
700
700
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
701
701
|
Code coverage generated by
|
|
702
702
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
703
|
-
at 2026-09-
|
|
703
|
+
at 2026-09-15T22:49:07.006Z
|
|
704
704
|
</div>
|
|
705
705
|
<script src="../../prettify.js"></script>
|
|
706
706
|
<script>
|
|
@@ -2167,7 +2167,7 @@ export {
|
|
|
2167
2167
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
2168
2168
|
Code coverage generated by
|
|
2169
2169
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
2170
|
-
at 2026-09-
|
|
2170
|
+
at 2026-09-15T22:49:07.006Z
|
|
2171
2171
|
</div>
|
|
2172
2172
|
<script src="../../prettify.js"></script>
|
|
2173
2173
|
<script>
|
|
@@ -3250,7 +3250,7 @@ export function listShapes() {
|
|
|
3250
3250
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
3251
3251
|
Code coverage generated by
|
|
3252
3252
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
3253
|
-
at 2026-09-
|
|
3253
|
+
at 2026-09-15T22:49:07.006Z
|
|
3254
3254
|
</div>
|
|
3255
3255
|
<script src="../../prettify.js"></script>
|
|
3256
3256
|
<script>
|
|
@@ -313,7 +313,7 @@ export function balanceStats({ stats, itemType, policy = {}, random = Math.rando
|
|
|
313
313
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
314
314
|
Code coverage generated by
|
|
315
315
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
316
|
-
at 2026-09-
|
|
316
|
+
at 2026-09-15T22:49:07.006Z
|
|
317
317
|
</div>
|
|
318
318
|
<script src="../../prettify.js"></script>
|
|
319
319
|
<script>
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cyberia-hardhat",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.4.0",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "cyberia-hardhat",
|
|
9
|
-
"version": "3.
|
|
9
|
+
"version": "3.4.0",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@openzeppelin/contracts": "~5.6.1",
|
|
12
12
|
"dotenv": "~17.4.2",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"devDependencies": {
|
|
16
16
|
"@nomicfoundation/hardhat-toolbox-viem": "^5.0.7",
|
|
17
17
|
"chai": "^6.2.2",
|
|
18
|
-
"hardhat": "~3.
|
|
18
|
+
"hardhat": "~3.16.0"
|
|
19
19
|
},
|
|
20
20
|
"engines": {
|
|
21
21
|
"node": ">=22.0.0"
|
|
@@ -2065,9 +2065,9 @@
|
|
|
2065
2065
|
"license": "ISC"
|
|
2066
2066
|
},
|
|
2067
2067
|
"node_modules/hardhat": {
|
|
2068
|
-
"version": "3.
|
|
2069
|
-
"resolved": "https://registry.npmjs.org/hardhat/-/hardhat-3.
|
|
2070
|
-
"integrity": "sha512-
|
|
2068
|
+
"version": "3.16.0",
|
|
2069
|
+
"resolved": "https://registry.npmjs.org/hardhat/-/hardhat-3.16.0.tgz",
|
|
2070
|
+
"integrity": "sha512-LWFFR3rYl8AIhwpYVjK2L5y0Z0CqdQFQ8AZWe8gqf1t7KGH+E/EguoIX7rcB4KfyKoWK6ooj+7Jgba4vlQ1feQ==",
|
|
2071
2071
|
"dev": true,
|
|
2072
2072
|
"license": "MIT",
|
|
2073
2073
|
"dependencies": {
|
package/hardhat/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cyberia-hardhat",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.4.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Hardhat project for Cyberia Online ObjectLayerToken (ERC-1155) on Hyperledger Besu",
|
|
6
6
|
"private": true,
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"devDependencies": {
|
|
22
22
|
"@nomicfoundation/hardhat-toolbox-viem": "^5.0.7",
|
|
23
23
|
"chai": "^6.2.2",
|
|
24
|
-
"hardhat": "~3.
|
|
24
|
+
"hardhat": "~3.16.0"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@openzeppelin/contracts": "~5.6.1",
|
|
@@ -17,7 +17,7 @@ spec:
|
|
|
17
17
|
spec:
|
|
18
18
|
containers:
|
|
19
19
|
- name: dd-default-development-blue
|
|
20
|
-
image: underpost/underpost-engine:v3.
|
|
20
|
+
image: underpost/underpost-engine:v3.4.0
|
|
21
21
|
# resources:
|
|
22
22
|
# requests:
|
|
23
23
|
# memory: "124Ki"
|
|
@@ -98,7 +98,7 @@ spec:
|
|
|
98
98
|
spec:
|
|
99
99
|
containers:
|
|
100
100
|
- name: dd-default-development-green
|
|
101
|
-
image: underpost/underpost-engine:v3.
|
|
101
|
+
image: underpost/underpost-engine:v3.4.0
|
|
102
102
|
# resources:
|
|
103
103
|
# requests:
|
|
104
104
|
# memory: "124Ki"
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"type": "module",
|
|
3
3
|
"main": "src/index.js",
|
|
4
4
|
"name": "@underpostnet/cyberia",
|
|
5
|
-
"version": "3.
|
|
5
|
+
"version": "3.4.0",
|
|
6
6
|
"description": "Cyberia CLI — toolchain for the Cyberia MMO data layer, content pipeline, persistence, gRPC services, and ERC-1155 lifecycle on Hyperledger Besu.",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"start": "node --max-old-space-size=8192 src/server",
|
|
@@ -18,14 +18,17 @@
|
|
|
18
18
|
"docs": "typedoc --options typedoc.json",
|
|
19
19
|
"install:global": "npm install -g prettier",
|
|
20
20
|
"install:test": "npm install -g coveralls-next",
|
|
21
|
-
"install": "npm run install:global && npm run install:test",
|
|
21
|
+
"install:tools": "npm run install:global && npm run install:test",
|
|
22
|
+
"prepare": "node bin socketsecurity --patch-apply",
|
|
22
23
|
"prettier": "prettier --write .",
|
|
23
24
|
"fix": "npm audit fix --force && npm audit",
|
|
24
25
|
"baremetal": "node bin baremetal --dev --commission --ls --create-machine",
|
|
25
26
|
"security:secrets": "gitleaks detect --source . --config .gitleaks.toml --report-path ./gitleaks-report.json --report-format json --redact=0",
|
|
26
27
|
"security:secrets:ci": "gitleaks detect --source . --config .gitleaks.toml --redact=1",
|
|
27
28
|
"security:deps": "npm audit",
|
|
28
|
-
"security": "
|
|
29
|
+
"security:socket": "node bin socketsecurity --audit",
|
|
30
|
+
"security:socket:ci": "node bin socketsecurity --ci",
|
|
31
|
+
"security": "npm run security:secrets:ci && npm run security:deps && npm run security:socket",
|
|
29
32
|
"docker:generate": "node bin docker-compose --generate --deploy-id dd-cyberia --docker-compose-id cyberia",
|
|
30
33
|
"docker:up": "node bin docker-compose --up --deploy-id dd-cyberia --docker-compose-id cyberia",
|
|
31
34
|
"docker:up:build": "node bin docker-compose --up --build --deploy-id dd-cyberia --docker-compose-id cyberia",
|
|
@@ -72,7 +75,7 @@
|
|
|
72
75
|
},
|
|
73
76
|
"homepage": "https://github.com/underpostnet/engine-cyberia#readme",
|
|
74
77
|
"dependencies": {
|
|
75
|
-
"underpost": "^3.
|
|
78
|
+
"@underpostnet/underpost": "^3.4.0",
|
|
76
79
|
"maxrects-packer": "^2.7.3",
|
|
77
80
|
"pngjs": "^7.0.0",
|
|
78
81
|
"jimp": "^1.6.0",
|
|
@@ -89,7 +92,7 @@
|
|
|
89
92
|
"minimatch": "^10.2.2",
|
|
90
93
|
"glob": "^11.0.0",
|
|
91
94
|
"diff": ">=8.0.3",
|
|
92
|
-
"js-yaml": "
|
|
95
|
+
"js-yaml": "^5.4.1",
|
|
93
96
|
"debug": ">=4.3.6",
|
|
94
97
|
"serialize-javascript": ">=7.0.5",
|
|
95
98
|
"router": {
|
|
@@ -105,12 +108,8 @@
|
|
|
105
108
|
"@grpc/grpc-js": "^1.14.4",
|
|
106
109
|
"@grpc/proto-loader": "^0.8.1",
|
|
107
110
|
"@neodrag/vanilla": "^2.3.1",
|
|
108
|
-
"@vitest/coverage-v8": "5.0.0",
|
|
109
111
|
"ag-grid-community": "^36.1.0",
|
|
110
|
-
"allure-vitest": "3.12.0",
|
|
111
112
|
"axios": "^1.20.0",
|
|
112
|
-
"bumpp": "^12.3.0",
|
|
113
|
-
"chai": "^6.2.2",
|
|
114
113
|
"clipboardy": "^5.3.2",
|
|
115
114
|
"cloudinary": "^2.11.0",
|
|
116
115
|
"colors": "^1.4.0",
|
|
@@ -119,11 +118,10 @@
|
|
|
119
118
|
"cookie-parser": "^1.4.7",
|
|
120
119
|
"cors": "^2.8.6",
|
|
121
120
|
"d3": "^7.9.0",
|
|
122
|
-
"dexie": "^4.4.
|
|
121
|
+
"dexie": "^4.4.6",
|
|
123
122
|
"dotenv": "^17.4.2",
|
|
124
123
|
"easymde": "^2.21.0",
|
|
125
124
|
"esbuild": "^0.28.2",
|
|
126
|
-
"escape-string-regexp": "^5.0.0",
|
|
127
125
|
"express": "^5.2.1",
|
|
128
126
|
"express-fileupload": "^1.4.3",
|
|
129
127
|
"express-rate-limit": "^8.7.0",
|
|
@@ -142,15 +140,14 @@
|
|
|
142
140
|
"jsonwebtoken": "^9.0.3",
|
|
143
141
|
"jszip": "^3.10.2",
|
|
144
142
|
"mariadb": "^3.5.4",
|
|
145
|
-
"marked": "^18.0.
|
|
146
|
-
"mongoose": "^9.
|
|
143
|
+
"marked": "^18.0.12",
|
|
144
|
+
"mongoose": "^9.10.0",
|
|
147
145
|
"morgan": "^1.12.0",
|
|
148
|
-
"nodemailer": "^10.0.
|
|
146
|
+
"nodemailer": "^10.0.3",
|
|
149
147
|
"nodemon": "^3.0.1",
|
|
150
148
|
"peer": "^1.0.2",
|
|
151
149
|
"peerjs": "^1.5.5",
|
|
152
150
|
"prom-client": "^15.1.2",
|
|
153
|
-
"read": "^6.0.0",
|
|
154
151
|
"rrule": "^2.8.1",
|
|
155
152
|
"shelljs": "^0.10.0",
|
|
156
153
|
"sitemap": "^9.0.1",
|
|
@@ -163,7 +160,6 @@
|
|
|
163
160
|
"typescript": "6.0.3",
|
|
164
161
|
"validator": "^13.15.35",
|
|
165
162
|
"vanilla-jsoneditor": "^3.13.0",
|
|
166
|
-
"vitest": "5.0.0",
|
|
167
163
|
"winston": "^3.19.0",
|
|
168
164
|
"workbox-background-sync": "^7.4.1",
|
|
169
165
|
"workbox-cacheable-response": "^7.4.1",
|
|
@@ -171,6 +167,12 @@
|
|
|
171
167
|
"workbox-expiration": "^7.4.1",
|
|
172
168
|
"workbox-precaching": "^7.4.1",
|
|
173
169
|
"workbox-routing": "^7.4.1",
|
|
174
|
-
"workbox-strategies": "^7.4.1"
|
|
170
|
+
"workbox-strategies": "^7.4.1",
|
|
171
|
+
"@socketsecurity/cli": "1.1.171",
|
|
172
|
+
"@vitest/coverage-v8": "5.0.0",
|
|
173
|
+
"allure-vitest": "3.12.1",
|
|
174
|
+
"bumpp": "^12.3.0",
|
|
175
|
+
"chai": "^6.2.2",
|
|
176
|
+
"vitest": "5.0.0"
|
|
175
177
|
}
|
|
176
178
|
}
|