
> echo Attempting build for Acode-Foundation-Acode with Node 20 and JDK 17
Attempting build for Acode-Foundation-Acode with Node 20 and JDK 17

> docker run --rm -v /home/ubuntu/storage/cordova_assets/extracted/Acode-Foundation-Acode/Acode-f90fc1d9d35b9096f0d4279410d7fa3d7cbf3835:/source:ro -v /home/ubuntu/BachelorsThesis/scripts/cordova/output/Acode-Foundation-Acode:/output -v /home/ubuntu/.npm:/root/.npm cordova-android:20-jdk17 bash -c set -e
            cp -r /source/. /app
            cd /app
            rm -rf platforms plugins node_modules || true
            rm -rf $GRADLE_USER_HOME || true
            mkdir -p $GRADLE_USER_HOME

            # unset Gradle options
            unset JAVA_OPTS

            # install deps
            if [ -f yarn.lock ]; then
                yarn install --ignore-scripts
            else
                npm install --ignore-scripts
            fi

            # ensure android platform
            cordova platform add android
            cordova prepare android

            # ---- PATCH ROOT GRADLE FILES (CRITICAL FIX) ----
            for f in platforms/android/build.gradle platforms/android/CordovaLib/build.gradle; do
                if [ -f "$f" ]; then
                    # add missing repositories to buildscript + allprojects
                    sed -i '/buildscript[[:space:]]*{/a\
                repositories {\
                    google()\
                    mavenCentral()\
                    maven { url "https://plugins.gradle.org/m2/" }\
                    maven { url "https://maven.aliyun.com/repository/public" }\
                    maven { url "https://jcenter.bintray.com/" }\
                    maven { url "https://jitpack.io" }\
                }\
            ' "$f" || true

                    sed -i '/allprojects[[:space:]]*{/a\
                repositories {\
                    google()\
                    mavenCentral()\
                    maven { url "https://plugins.gradle.org/m2/" }\
                    maven { url "https://maven.aliyun.com/repository/public" }\
                    maven { url "https://jcenter.bintray.com/" }\
                    maven { url "https://jitpack.io" }\
                }\
            ' "$f" || true
                fi
            done

            # ---- FIX versioncompare (very common failure) ----
            grep -RIl 'com.g00fy2:versioncompare:1.3.4' platforms/android 2>/dev/null | \
            xargs -r sed -i 's/com.g00fy2:versioncompare:1.3.4/io.github.g00fy2:versioncompare:1.5.0/g' || true

            # ---- fix versioncompare imports (CRITICAL) ----
            find platforms/android \( -name "*.gradle" -o -name "*.gradle.kts" \) -print0 | \
            xargs -0 sed -i 's/import com\.g00fy2\.versioncompare\.Version/import io.github.g00fy2.versioncompare.Version/g' || true

            # ---- OPTIONAL: remove illegal JVM args ----
            find platforms/android -type f -exec sed -i 's/--illegal-access=permit//g' {} + || true

            # ---- JDK 8 specific patch (minimal, no overwrite!) ----
            if [ \"17\" = "8" ]; then
                # ensure older sdk usage (do NOT overwrite build.gradle anymore)
                find platforms/android -name "build.gradle" -exec \
                    sed -i 's/compileSdkVersion [0-9]\+/compileSdkVersion 30/g' {} \; || true

                find platforms/android -name "build.gradle" -exec \
                    sed -i 's/targetSdkVersion [0-9]\+/targetSdkVersion 30/g' {} \; || true
            fi

            # ---- android sdk path ----
            echo "sdk.dir=$ANDROID_HOME" > platforms/android/local.properties

            # ---- force APK output (suppress AAB generation) ----
            echo "android.bundle.enableAll=false" >> platforms/android/gradle.properties

            # ---- enable ABI splits ----
            if grep -q 'splits' platforms/android/app/build.gradle 2>/dev/null; then
                sed -i 's/enable false/enable true/' platforms/android/app/build.gradle || true
            else
                sed -i '/^android[[:space:]]*{/a\    splits {\n        abi {\n            reset()\n            enable true\n            universalApk false\n            include "armeabi-v7a", "arm64-v8a", "x86", "x86_64"\n        }\n    }' platforms/android/app/build.gradle || true
            fi

            # ---- build debug APK ----
            cordova build android --debug --no-interactive --verbose

            cp platforms/android/app/build/outputs/apk/debug/*.apk /output/

            # ---- copy TPL metadata ----
            [ -f config.xml ] && cp config.xml /output/ || true
            [ -f plugins/fetch.json ] && cp plugins/fetch.json /output/ || true
            [ -f plugins/android.json ] && cp plugins/android.json /output/ || true
            [ -f platforms/android/app/build.gradle ] && cp platforms/android/app/build.gradle /output/app-build.gradle || true
            [ -f platforms/android/build.gradle ] && cp platforms/android/build.gradle /output/root-build.gradle || true
            [ -f platforms/android/settings.gradle ] && cp platforms/android/settings.gradle /output/ || true
            [ -f package.json ] && cp package.json /output/ || true
            [ -f package-lock.json ] && cp package-lock.json /output/ || true
            [ -f yarn.lock ] && cp yarn.lock /output/ || true
            [ -f pnpm-lock.yaml ] && cp pnpm-lock.yaml /output/ || true
            mkdir -p /output/plugin_manifests
            find plugins -name "plugin.xml" 2>/dev/null | while read f; do cp "$f" /output/plugin_manifests/$(echo "$f" | tr '/' '_') 2>/dev/null; done || true
            find plugins -name "*.gradle" 2>/dev/null | while read f; do cp "$f" /output/ 2>/dev/null; done || true
            find platforms/android -name "*.gradle" 2>/dev/null | grep -v "/build/" | while read f; do cp "$f" /output/ 2>/dev/null; done || true
            mkdir -p /output/libs
            find plugins platforms/android -name "*.jar" -not -name "gradle-wrapper.jar" 2>/dev/null | grep -v "/build/" | while read f; do cp "$f" /output/libs/ 2>/dev/null; done || true
            find plugins platforms/android -name "*.aar" 2>/dev/null | grep -v "/build/" | while read f; do cp "$f" /output/libs/ 2>/dev/null; done || true
            find plugins platforms/android -name "*.so" 2>/dev/null | grep -v "/build/" | while read f; do cp "$f" /output/libs/ 2>/dev/null; done || true
            
npm warn ERESOLVE overriding peer dependency
npm warn While resolving: @babel/preset-modules@0.1.6-no-external-plugins
npm warn Found: @babel/core@8.0.1
npm warn node_modules/@babel/core
npm warn   dev @babel/core@"^8.0.1" from the root project
npm warn   71 more (@babel/helper-create-class-features-plugin, ...)
npm warn
npm warn Could not resolve dependency:
npm warn peer @babel/core@"^7.0.0-0 || ^8.0.0-0 <8.0.0" from @babel/preset-modules@0.1.6-no-external-plugins
npm warn node_modules/@babel/preset-modules
npm warn   @babel/preset-modules@"0.1.6-no-external-plugins" from @babel/preset-env@8.0.1
npm warn   node_modules/@babel/preset-env
npm warn
npm warn Conflicting peer dependency: @babel/core@8.0.0-rc.4
npm warn node_modules/@babel/core
npm warn   peer @babel/core@"^7.0.0-0 || ^8.0.0-0 <8.0.0" from @babel/preset-modules@0.1.6-no-external-plugins
npm warn   node_modules/@babel/preset-modules
npm warn     @babel/preset-modules@"0.1.6-no-external-plugins" from @babel/preset-env@8.0.1
npm warn     node_modules/@babel/preset-env
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/compat-data@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/core@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/code-frame@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/generator@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-globals@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-string-parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-validator-identifier@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/template@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/traverse@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/types@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-annotate-as-pure@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-string-parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-validator-identifier@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/types@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-compilation-targets@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-create-class-features-plugin@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/code-frame@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/generator@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-globals@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-string-parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-validator-identifier@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/template@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/traverse@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/types@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-create-regexp-features-plugin@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-member-expression-to-functions@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/code-frame@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/generator@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-globals@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-string-parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-validator-identifier@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/template@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/traverse@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/types@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-module-imports@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/code-frame@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/generator@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-globals@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-string-parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-validator-identifier@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/template@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/traverse@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/types@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-module-transforms@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/code-frame@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/generator@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-globals@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-string-parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-validator-identifier@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/template@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/traverse@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/types@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-optimise-call-expression@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-string-parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-validator-identifier@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/types@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-plugin-utils@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-remap-async-to-generator@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/code-frame@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/generator@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-globals@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-string-parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-validator-identifier@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/template@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/traverse@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/types@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-replace-supers@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/code-frame@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/generator@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-globals@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-string-parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-validator-identifier@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/template@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/traverse@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/types@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-skip-transparent-expression-wrappers@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/code-frame@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/generator@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-globals@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-string-parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-validator-identifier@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/template@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/traverse@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/types@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-validator-option@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-wrap-function@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/code-frame@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/generator@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-globals@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-string-parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-validator-identifier@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/template@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/traverse@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/types@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helpers@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/code-frame@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-string-parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-validator-identifier@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/template@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/types@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-bugfix-firefox-class-in-computed-class-key@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-bugfix-safari-class-field-initializer-scope@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-bugfix-safari-rest-destructuring-rhs-array@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-syntax-typescript@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-arrow-functions@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-async-generator-functions@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/code-frame@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/generator@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-globals@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-string-parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-validator-identifier@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/template@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/traverse@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/types@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-async-to-generator@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-block-scoped-functions@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-block-scoping@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-class-properties@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-class-static-block@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-classes@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/code-frame@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/generator@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-globals@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-string-parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-validator-identifier@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/template@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/traverse@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/types@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-computed-properties@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-destructuring@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-dotall-regex@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-duplicate-keys@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-duplicate-named-capturing-groups-regex@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-dynamic-import@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-explicit-resource-management@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-exponentiation-operator@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-export-namespace-from@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-for-of@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-function-name@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-json-strings@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-literals@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-logical-assignment-operators@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-member-expression-literals@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-modules-amd@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-modules-commonjs@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-modules-systemjs@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-validator-identifier@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-modules-umd@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-named-capturing-groups-regex@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-new-target@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-nullish-coalescing-operator@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-numeric-separator@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-object-rest-spread@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-object-super@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-optional-catch-binding@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-optional-chaining@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-parameters@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-private-methods@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-private-property-in-object@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-property-literals@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-regenerator@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-regexp-modifiers@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-reserved-words@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-runtime@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-shorthand-properties@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-spread@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-sticky-regex@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-template-literals@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-typeof-symbol@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-typescript@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-unicode-escapes@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-unicode-property-regex@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-unicode-regex@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-unicode-sets-regex@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/preset-env@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/preset-typescript@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn skipping integrity check for git dependency ssh://git@github.com/Acode-Foundation/codemirror-lsp-client.git
npm warn deprecated read-package-json@4.1.2: This package is no longer supported. Please use @npmcli/package-json instead.
npm warn deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm warn deprecated @npmcli/move-file@1.1.2: This functionality has been moved to @npmcli/fs
npm warn deprecated stringify-package@1.0.1: This module is not used anymore, and has been replaced by @npmcli/package-json
npm warn deprecated sprintf@0.1.5: The sprintf package is deprecated in favor of sprintf-js.
npm warn deprecated npmlog@4.1.2: This package is no longer supported.
npm warn deprecated har-validator@5.1.5: this library is no longer supported
npm warn deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm warn deprecated are-we-there-yet@1.1.7: This package is no longer supported.
npm warn deprecated glob@7.2.3: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
npm warn deprecated glob@7.2.3: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
npm warn deprecated glob@7.2.3: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
npm warn deprecated glob@7.2.0: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
npm warn deprecated glob@7.2.3: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
npm warn deprecated q@1.5.1: You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.
npm warn deprecated
npm warn deprecated (For a CapTP with native promises, see @endo/eventual-send and @endo/captp)
npm warn deprecated dep-graph@1.1.0: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
npm warn deprecated uuid@3.4.0: uuid@10 and below is no longer supported.  For ESM codebases, update to uuid@latest.  For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).
npm warn deprecated uuid@3.4.0: uuid@10 and below is no longer supported.  For ESM codebases, update to uuid@latest.  For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).
npm warn deprecated gauge@2.7.4: This package is no longer supported.
npm warn deprecated request@2.88.0: request has been deprecated, see https://github.com/request/request/issues/3142
npm warn deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm warn deprecated tar@6.2.1: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
npm warn deprecated uuid@8.3.2: uuid@10 and below is no longer supported.  For ESM codebases, update to uuid@latest.  For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).

added 1432 packages, and audited 1450 packages in 35s

154 packages are looking for funding
  run `npm fund` for details

48 vulnerabilities (7 low, 13 moderate, 25 high, 3 critical)

To address issues that do not require attention, run:
  npm audit fix

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.
Using cordova-fetch for cordova-android@^15.1.0
Adding android project...
Creating Cordova project for the Android platform:
	Path: platforms/android
	Package: com.foxdebug.acode
	Name: Acode
	Activity: MainActivity
	Android Target SDK: android-36
	Android Compile SDK: 36
Subproject Path: CordovaLib
Subproject Path: app
Android project created with cordova-android@15.1.0
Discovered plugin "cordova-clipboard". Adding it to the project
Installing "cordova-clipboard" for android
Adding cordova-clipboard to package.json
Discovered plugin "cordova-plugin-device". Adding it to the project
Installing "cordova-plugin-device" for android
Adding cordova-plugin-device to package.json
Discovered plugin "cordova-plugin-file". Adding it to the project
Installing "cordova-plugin-file" for android
Subproject Path: CordovaLib
Subproject Path: app

The Android Persistent storage location now defaults to "Internal". Please check this plugin's README to see if your application needs any changes in its config.xml.

If this is a new application no changes are required.

If this is an update to an existing application that did not specify an "AndroidPersistentFileLocation" you may need to add:

      "<preference name="AndroidPersistentFileLocation" value="Compatibility" />"

to config.xml in order for the application to find previously stored files.
        
Adding cordova-plugin-file to package.json
Discovered plugin "cordova-plugin-server". Adding it to the project
/app/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebView.java updated
/app/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebViewEngine.java updated
/app/platforms/android/CordovaLib/src/org/apache/cordova/CordovaWebViewEngine.java updated
/app/platforms/android/CordovaLib/src/org/apache/cordova/CordovaWebView.java updated
/app/platforms/android/CordovaLib/src/org/apache/cordova/CordovaWebViewImpl.java updated
/app/platforms/android/.flag_done updated
Installing "cordova-plugin-server" for android
Subproject Path: CordovaLib
Subproject Path: app
Adding cordova-plugin-server to package.json
Discovered plugin "cordova-plugin-ftp". Adding it to the project
Installing "cordova-plugin-ftp" for android
Subproject Path: CordovaLib
Subproject Path: app
Adding cordova-plugin-ftp to package.json
Discovered plugin "cordova-plugin-sdcard". Adding it to the project
Installing "cordova-plugin-sdcard" for android
Subproject Path: CordovaLib
Subproject Path: app
Adding cordova-plugin-sdcard to package.json
Discovered plugin "cordova-plugin-websocket". Adding it to the project
Installing "cordova-plugin-websocket" for android
Subproject Path: CordovaLib
Subproject Path: app
Adding cordova-plugin-websocket to package.json
Discovered plugin "cordova-plugin-buildinfo". Adding it to the project
Installing "cordova-plugin-buildinfo" for android
Subproject Path: CordovaLib
Subproject Path: app
Adding cordova-plugin-buildinfo to package.json
Discovered plugin "cordova-plugin-browser". Adding it to the project
Installing "cordova-plugin-browser" for android
Adding cordova-plugin-browser to package.json
Discovered plugin "cordova-plugin-sftp". Adding it to the project
Installing "cordova-plugin-sftp" for android
Subproject Path: CordovaLib
Subproject Path: app
Adding cordova-plugin-sftp to package.json
Discovered plugin "com.foxdebug.acode.rk.exec.terminal". Adding it to the project
Installing "com.foxdebug.acode.rk.exec.terminal" for android
Subproject Path: CordovaLib
Subproject Path: app
Adding com.foxdebug.acode.rk.exec.terminal to package.json
Discovered plugin "com.foxdebug.acode.rk.plugin.plugincontext". Adding it to the project
Installing "com.foxdebug.acode.rk.plugin.plugincontext" for android
Adding com.foxdebug.acode.rk.plugin.plugincontext to package.json
Discovered plugin "com.foxdebug.acode.rk.auth". Adding it to the project
Installing "com.foxdebug.acode.rk.auth" for android
Subproject Path: CordovaLib
Subproject Path: app
Adding com.foxdebug.acode.rk.auth to package.json
Discovered plugin "com.foxdebug.acode.rk.exec.proot". Adding it to the project
Installing "com.foxdebug.acode.rk.exec.proot" for android
Adding com.foxdebug.acode.rk.exec.proot to package.json
Discovered plugin "cordova-plugin-iap". Adding it to the project
Installing "cordova-plugin-iap" for android
Subproject Path: CordovaLib
Subproject Path: app
Adding cordova-plugin-iap to package.json
Discovered plugin "com.foxdebug.acode.rk.customtabs". Adding it to the project
Installing "com.foxdebug.acode.rk.customtabs" for android
Subproject Path: CordovaLib
Subproject Path: app
Adding com.foxdebug.acode.rk.customtabs to package.json
Discovered plugin "cordova-plugin-system". Adding it to the project
Installing "cordova-plugin-system" for android
Subproject Path: CordovaLib
Subproject Path: app
Adding cordova-plugin-system to package.json
Discovered plugin "cordova-plugin-crashhandler". Adding it to the project
Installing "cordova-plugin-crashhandler" for android
Adding cordova-plugin-crashhandler to package.json
Discovered plugin "cordova-plugin-advanced-http". Adding it to the project
Installing "cordova-plugin-advanced-http" for android
Plugin dependency "cordova-plugin-file@8.1.3" already fetched, using that version.
Dependent plugin "cordova-plugin-file" already installed on android.
Adding cordova-plugin-advanced-http to package.json
Discovered plugin "cordova-plugin-acode-webview". Adding it to the project
Installing "cordova-plugin-acode-webview" for android
Adding cordova-plugin-acode-webview to package.json
[32mcopied: ic_launcher_background.xml[0m
[32mcopied: ic_launcher_foreground.xml[0m
[32mcopied: ic_launcher.xml[0m
[32mcopied: ic_launcher_round.xml[0m
[31mdeleted conflicting resource: ic_launcher.png[0m
[32mcopied: ic_launcher.webp[0m
[32mcopied: ic_launcher_round.webp[0m
[31mdeleted conflicting resource: ic_launcher.png[0m
[32mcopied: ic_launcher.webp[0m
[32mcopied: ic_launcher_round.webp[0m
[31mdeleted conflicting resource: ic_launcher.png[0m
[32mcopied: ic_launcher.webp[0m
[32mcopied: ic_launcher_round.webp[0m
[31mdeleted conflicting resource: ic_launcher.png[0m
[32mcopied: ic_launcher.webp[0m
[32mcopied: ic_launcher_round.webp[0m
[31mdeleted conflicting resource: ic_launcher.png[0m
[32mcopied: ic_launcher.webp[0m
[32mcopied: ic_launcher_round.webp[0m
[32mcopied: colors.xml[0m
[32mcopied: ic_launcher_background.xml[0m
[32mcopied: themes.xml[0m
[32mcopied: network_security_config.xml[0m
[Cordova Hook] ✅ Enabled legacy JNI packaging
[Cordova Hook] ✅ Enabled static context
---------------------------------------------------------------------------------




⚠️ fdroid.bool not found
⚠️ Fdroid flavour will be built




---------------------------------------------------------------------------------
[Cordova Hook] ✅ Patched targetSdkVersion to 28

===============================================
==== Changed package to com.foxdebug.acode ====
===============================================


=========================================================
==== Changed provider to com.foxdebug.acode.provider ====
=========================================================


===================================================
==== Changed provider to com.foxdebug.provider ====
===================================================

[32mcopied: ic_launcher_background.xml[0m
[32mcopied: ic_launcher_foreground.xml[0m
[32mcopied: ic_launcher.xml[0m
[32mcopied: ic_launcher_round.xml[0m
[32mcopied: ic_launcher.webp[0m
[32mcopied: ic_launcher_round.webp[0m
[32mcopied: ic_launcher.webp[0m
[32mcopied: ic_launcher_round.webp[0m
[32mcopied: ic_launcher.webp[0m
[32mcopied: ic_launcher_round.webp[0m
[32mcopied: ic_launcher.webp[0m
[32mcopied: ic_launcher_round.webp[0m
[32mcopied: ic_launcher.webp[0m
[32mcopied: ic_launcher_round.webp[0m
[32mcopied: colors.xml[0m
[32mcopied: ic_launcher_background.xml[0m
[32mcopied: themes.xml[0m
[32mcopied: network_security_config.xml[0m
[Cordova Hook] ✅ Legacy JNI packaging already enabled, skipping
[Cordova Hook] ✅ Static context already enabled, skipping
---------------------------------------------------------------------------------




⚠️ fdroid.bool not found
⚠️ Fdroid flavour will be built




---------------------------------------------------------------------------------
[Cordova Hook] ✅ Patched targetSdkVersion to 28

===============================================
==== Changed package to com.foxdebug.acode ====
===============================================


=========================================================
==== Changed provider to com.foxdebug.acode.provider ====
=========================================================

No scripts found for hook "before_build".
Executing script found in config.xml for hook "before_prepare": hooks/restore-cordova-resources.js
Executing script found in config.xml for hook "before_prepare": hooks/modify-java-files.js
Executing script found in plugin cordova-plugin-system for hook "before_prepare": plugins/cordova-plugin-system/utils/resetProvider.js

===================================================
==== Changed provider to com.foxdebug.provider ====
===================================================

Checking for saved platforms that haven't been added to the project
Loaded API for android project /app/platforms/android/cordova/Api.js
Checking for saved plugins that haven't been added to the project
Generating platform-specific config.xml from defaults for android at /app/platforms/android/app/src/main/res/xml/config.xml
Merging project's config.xml into platform-specific android config.xml
[Gradle Properties] Preparing Configuration
[Gradle Properties] Appending default configuration properties
[Gradle Properties] Appending custom configuration properties
[Gradle Properties] Updating Gradle property "kotlin.code.style" with the value of "official"
[Gradle Properties] Updating and Saving File
Merging and updating files from [www, platforms/android/platform_www] to platforms/android/app/src/main/assets/www
  copy  platforms/android/platform_www/cordova.js platforms/android/app/src/main/assets/www/cordova.js (updated file)
  copy  platforms/android/platform_www/cordova_plugins.js platforms/android/app/src/main/assets/www/cordova_plugins.js (updated file)
  copy  platforms/android/platform_www/plugins/com.foxdebug.acode.rk.customtabs/www/customtabs.js platforms/android/app/src/main/assets/www/plugins/com.foxdebug.acode.rk.customtabs/www/customtabs.js (updated file)
  copy  platforms/android/platform_www/plugins/com.foxdebug.acode.rk.exec.terminal/www/Executor.js platforms/android/app/src/main/assets/www/plugins/com.foxdebug.acode.rk.exec.terminal/www/Executor.js (updated file)
  copy  platforms/android/platform_www/plugins/com.foxdebug.acode.rk.exec.terminal/www/Terminal.js platforms/android/app/src/main/assets/www/plugins/com.foxdebug.acode.rk.exec.terminal/www/Terminal.js (updated file)
  copy  platforms/android/platform_www/plugins/com.foxdebug.acode.rk.plugin.plugincontext/www/PluginContext.js platforms/android/app/src/main/assets/www/plugins/com.foxdebug.acode.rk.plugin.plugincontext/www/PluginContext.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-clipboard/www/clipboard.js platforms/android/app/src/main/assets/www/plugins/cordova-clipboard/www/clipboard.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-advanced-http/www/advanced-http.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-advanced-http/www/advanced-http.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-advanced-http/www/cookie-handler.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-advanced-http/www/cookie-handler.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-advanced-http/www/dependency-validator.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-advanced-http/www/dependency-validator.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-advanced-http/www/error-codes.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-advanced-http/www/error-codes.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-advanced-http/www/global-configs.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-advanced-http/www/global-configs.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-advanced-http/www/helpers.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-advanced-http/www/helpers.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-advanced-http/www/js-util.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-advanced-http/www/js-util.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-advanced-http/www/local-storage-store.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-advanced-http/www/local-storage-store.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-advanced-http/www/lodash.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-advanced-http/www/lodash.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-advanced-http/www/messages.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-advanced-http/www/messages.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-advanced-http/www/ponyfills.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-advanced-http/www/ponyfills.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-advanced-http/www/public-interface.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-advanced-http/www/public-interface.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-advanced-http/www/umd-tough-cookie.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-advanced-http/www/umd-tough-cookie.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-advanced-http/www/url-util.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-advanced-http/www/url-util.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-buildinfo/www/buildinfo.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-buildinfo/www/buildinfo.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-device/www/device.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-device/www/device.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/DirectoryEntry.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/DirectoryEntry.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/DirectoryReader.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/DirectoryReader.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/Entry.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/Entry.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/File.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/File.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/FileEntry.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/FileEntry.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/FileError.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/FileError.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/FileReader.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/FileReader.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/FileSystem.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/FileSystem.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/FileUploadOptions.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/FileUploadOptions.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/FileUploadResult.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/FileUploadResult.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/FileWriter.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/FileWriter.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/Flags.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/Flags.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/LocalFileSystem.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/LocalFileSystem.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/Metadata.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/Metadata.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/ProgressEvent.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/ProgressEvent.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/android/Entry.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/android/Entry.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/android/FileSystem.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/android/FileSystem.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/browser/isChrome.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/browser/isChrome.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/fileSystemPaths.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/fileSystemPaths.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/fileSystems-roots.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/fileSystems-roots.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/fileSystems.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/fileSystems.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/requestFileSystem.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/requestFileSystem.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/resolveLocalFileSystemURI.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/resolveLocalFileSystemURI.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-ftp/www/ftp.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-ftp/www/ftp.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-iap/www/plugin.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-iap/www/plugin.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-sdcard/www/plugin.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-sdcard/www/plugin.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-server/www/server.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-server/www/server.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-sftp/www/sftp.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-sftp/www/sftp.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-system/www/plugin.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-system/www/plugin.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-websocket/www/websocket.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-websocket/www/websocket.js (updated file)
Wrote out android application name "Acode" to /app/platforms/android/app/src/main/res/values/cdv_strings.xml
The Android Splash Screen background color was set to: @color/ic_splash_background
The "AndroidWindowSplashScreenBrandingImage" is undefined. Cordova's default will be used.
Wrote out Android application SplashScreen Icon Color to /app/platforms/android/app/src/main/res/values/cdv_colors.xml
Wrote out Android application themes to /app/platforms/android/app/src/main/res/values/cdv_themes.xml
[Cordova Gradle Config] Setting "PACKAGE_NAMESPACE" to com.foxdebug.acode
[Cordova Gradle Config] Saving File
This app does not have launcher icons defined
This app does not have additional resource files defined
Prepared android project successfully
Executing script found in config.xml for hook "after_prepare": hooks/post-process.js
[32mcopied: ic_launcher_background.xml[0m
[32mcopied: ic_launcher_foreground.xml[0m
[32mcopied: ic_launcher.xml[0m
[32mcopied: ic_launcher_round.xml[0m
[32mcopied: ic_launcher.webp[0m
[32mcopied: ic_launcher_round.webp[0m
[32mcopied: ic_launcher.webp[0m
[32mcopied: ic_launcher_round.webp[0m
[32mcopied: ic_launcher.webp[0m
[32mcopied: ic_launcher_round.webp[0m
[32mcopied: ic_launcher.webp[0m
[32mcopied: ic_launcher_round.webp[0m
[32mcopied: ic_launcher.webp[0m
[32mcopied: ic_launcher_round.webp[0m
[32mcopied: colors.xml[0m
[32mcopied: ic_launcher_background.xml[0m
[32mcopied: themes.xml[0m
[32mcopied: network_security_config.xml[0m
[Cordova Hook] ✅ Legacy JNI packaging already enabled, skipping
[Cordova Hook] ✅ Static context already enabled, skipping
---------------------------------------------------------------------------------




⚠️ fdroid.bool not found
⚠️ Fdroid flavour will be built




---------------------------------------------------------------------------------
[Cordova Hook] ✅ Patched targetSdkVersion to 28
Executing script found in plugin cordova-plugin-browser for hook "after_prepare": plugins/cordova-plugin-browser/utils/updatePackage.js

===============================================
==== Changed package to com.foxdebug.acode ====
===============================================

Executing script found in plugin cordova-plugin-system for hook "after_prepare": plugins/cordova-plugin-system/utils/fixProvider.js

=========================================================
==== Changed provider to com.foxdebug.acode.provider ====
=========================================================

No scripts found for hook "before_compile".
Checking Java JDK and Android SDK versions
ANDROID_HOME=/opt/android (recommended setting)
ANDROID_SDK_ROOT=/opt/android (DEPRECATED)
Using Android SDK: /opt/android
Using Gradle: 8.14.2

Welcome to Gradle 8.5!

Here are the highlights of this release:
 - Support for running on Java 21
 - Faster first use with Kotlin DSL
 - Improved error and warning messages

For more details see https://docs.gradle.org/8.5/release-notes.html

> Task :wrapper

BUILD SUCCESSFUL in 8s
1 actionable task: 1 executed
Subproject Path: CordovaLib
Subproject Path: app
Running Gradle Build: /app/platforms/android/tools/gradlew cdvBuildDebug
Downloading https://services.gradle.org/distributions/gradle-8.14.2-bin.zip
.............10%.............20%.............30%.............40%.............50%.............60%.............70%.............80%.............90%..............100%

Welcome to Gradle 8.14.2!

Here are the highlights of this release:
 - Java 24 support
 - GraalVM Native Image toolchain selection
 - Enhancements to test reporting
 - Build Authoring improvements

For more details see https://docs.gradle.org/8.14.2/release-notes.html

To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/8.14.2/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation.
Daemon will be stopped at the end of the build 
> Task :app:preBuild UP-TO-DATE
> Task :app:preDebugBuild UP-TO-DATE
> Task :app:mergeDebugNativeDebugMetadata NO-SOURCE
> Task :app:checkKotlinGradlePluginConfigurationErrors SKIPPED
> Task :app:generateDebugBuildConfig
> Task :CordovaLib:preBuild UP-TO-DATE
> Task :CordovaLib:preDebugBuild UP-TO-DATE
> Task :app:generateDebugResValues
> Task :CordovaLib:generateDebugResValues
> Task :CordovaLib:writeDebugAarMetadata
> Task :CordovaLib:generateDebugResources
> Task :app:checkDebugAarMetadata
> Task :CordovaLib:packageDebugResources
> Task :app:mapDebugSourceSetPaths
> Task :app:generateDebugResources
> Task :app:packageDebugResources
> Task :app:mergeDebugResources
> Task :app:createDebugCompatibleScreenManifests
> Task :app:extractDeepLinksDebug
> Task :CordovaLib:extractDeepLinksDebug
> Task :app:parseDebugLocalResources
> Task :CordovaLib:processDebugManifest
> Task :CordovaLib:compileDebugLibraryResources
> Task :app:processDebugMainManifest
> Task :app:processDebugManifest
> Task :CordovaLib:parseDebugLocalResources
> Task :CordovaLib:javaPreCompileDebug
> Task :app:javaPreCompileDebug
> Task :app:mergeDebugShaders
> Task :app:compileDebugShaders NO-SOURCE
> Task :CordovaLib:generateDebugRFile
> Task :app:generateDebugAssets UP-TO-DATE

> Task :CordovaLib:compileDebugJavaWithJavac
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

> Task :CordovaLib:mergeDebugShaders
> Task :CordovaLib:compileDebugShaders NO-SOURCE
> Task :CordovaLib:generateDebugAssets UP-TO-DATE
> Task :CordovaLib:mergeDebugAssets
> Task :CordovaLib:bundleLibCompileToJarDebug
> Task :app:mergeDebugAssets
> Task :CordovaLib:processDebugJavaRes
> Task :app:compressDebugAssets
> Task :app:desugarDebugFileDependencies
> Task :app:processDebugManifestForPackage
> Task :app:checkDebugDuplicateClasses
> Task :CordovaLib:bundleLibRuntimeToDirDebug
> Task :app:processDebugResources
> Task :app:mergeExtDexDebug
> Task :app:compileDebugKotlin NO-SOURCE

> Task :app:compileDebugJavaWithJavac
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

> Task :app:processDebugJavaRes NO-SOURCE
> Task :app:mergeLibDexDebug
> Task :app:dexBuilderDebug
> Task :app:mergeProjectDexDebug
> Task :app:mergeDebugJniLibFolders
> Task :CordovaLib:mergeDebugJniLibFolders
> Task :CordovaLib:mergeDebugNativeLibs NO-SOURCE
> Task :CordovaLib:copyDebugJniLibsProjectOnly
> Task :app:mergeDebugJavaResource
> Task :app:validateSigningDebug
> Task :app:writeDebugAppMetadata
> Task :app:writeDebugSigningConfigVersions
> Task :app:mergeDebugNativeLibs

> Task :app:stripDebugDebugSymbols
Unable to strip the following libraries, packaging them as they are: libaxs.so, libproot-xed.so, libproot.so, libproot32.so, libtalloc.so. Run with --info option to learn more.

> Task :app:packageDebug
There are no .so files available to package in the APK for x86.

> Task :app:createDebugApkListingFileRedirect
> Task :app:assembleDebug
> Task :app:cdvBuildDebug

[Incubating] Problems report is available at: file:///app/platforms/android/build/reports/problems/problems-report.html

Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

For more on this, please refer to https://docs.gradle.org/8.14.2/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.

BUILD SUCCESSFUL in 2m 44s
52 actionable tasks: 52 executed
Built the following apk(s): 
	/app/platforms/android/app/build/outputs/apk/debug/app-x86_64-debug.apk
	/app/platforms/android/app/build/outputs/apk/debug/app-armeabi-v7a-debug.apk
	/app/platforms/android/app/build/outputs/apk/debug/app-x86-debug.apk
	/app/platforms/android/app/build/outputs/apk/debug/app-arm64-v8a-debug.apk
No scripts found for hook "after_compile".
No scripts found for hook "after_build".

> docker run --rm -v /home/ubuntu/storage/cordova_assets/extracted/Acode-Foundation-Acode/Acode-f90fc1d9d35b9096f0d4279410d7fa3d7cbf3835:/source:ro -v /home/ubuntu/BachelorsThesis/scripts/cordova/output/Acode-Foundation-Acode:/output -v /home/ubuntu/.npm:/root/.npm cordova-android:20-jdk17 bash -c set -e
            cp -r /source/. /app
            cd /app
            rm -rf platforms plugins node_modules || true
            rm -rf $GRADLE_USER_HOME || true
            mkdir -p $GRADLE_USER_HOME

            # unset Gradle options
            unset JAVA_OPTS

            # install deps
            if [ -f yarn.lock ]; then
                yarn install --ignore-scripts
            else
                npm install --ignore-scripts
            fi

            # ensure android platform
            cordova platform add android
            cordova prepare android

            # ---- PATCH ROOT GRADLE FILES (CRITICAL FIX) ----
            for f in platforms/android/build.gradle platforms/android/CordovaLib/build.gradle; do
                if [ -f "$f" ]; then
                    sed -i '/buildscript[[:space:]]*{/a\
                repositories {\
                    google()\
                    mavenCentral()\
                    maven { url "https://plugins.gradle.org/m2/" }\
                    maven { url "https://maven.aliyun.com/repository/public" }\
                    maven { url "https://jcenter.bintray.com/" }\
                    maven { url "https://jitpack.io" }\
                }\
            ' "$f" || true

                    sed -i '/allprojects[[:space:]]*{/a\
                repositories {\
                    google()\
                    mavenCentral()\
                    maven { url "https://plugins.gradle.org/m2/" }\
                    maven { url "https://maven.aliyun.com/repository/public" }\
                    maven { url "https://jcenter.bintray.com/" }\
                    maven { url "https://jitpack.io" }\
                }\
            ' "$f" || true
                fi
            done

            # ---- FIX versioncompare (very common failure) ----
            grep -RIl 'com.g00fy2:versioncompare:1.3.4' platforms/android 2>/dev/null | \
            xargs -r sed -i 's/com.g00fy2:versioncompare:1.3.4/io.github.g00fy2:versioncompare:1.5.0/g' || true

            # ---- fix versioncompare imports (CRITICAL) ----
            find platforms/android \( -name "*.gradle" -o -name "*.gradle.kts" \) -print0 | \
            xargs -0 sed -i 's/import com\.g00fy2\.versioncompare\.Version/import io.github.g00fy2.versioncompare.Version/g' || true

            # ---- OPTIONAL: remove illegal JVM args ----
            find platforms/android -type f -exec sed -i 's/--illegal-access=permit//g' {} + || true

            # ---- JDK 8 specific patch ----
            if [ \"17\" = "8" ]; then
                find platforms/android -name "build.gradle" -exec \
                    sed -i 's/compileSdkVersion [0-9]\+/compileSdkVersion 30/g' {} \; || true

                find platforms/android -name "build.gradle" -exec \
                    sed -i 's/targetSdkVersion [0-9]\+/targetSdkVersion 30/g' {} \; || true
            fi

            # ---- android sdk path ----
            echo "sdk.dir=$ANDROID_HOME" > platforms/android/local.properties

            # ---- force APK output (suppress AAB generation) ----
            echo "android.bundle.enableAll=false" >> platforms/android/gradle.properties

            # ---- enable ABI splits ----
            if grep -q 'splits' platforms/android/app/build.gradle 2>/dev/null; then
                sed -i 's/enable false/enable true/' platforms/android/app/build.gradle || true
            else
                sed -i '/^android[[:space:]]*{/a\    splits {\n        abi {\n            reset()\n            enable true\n            universalApk false\n            include "armeabi-v7a", "arm64-v8a", "x86", "x86_64"\n        }\n    }' platforms/android/app/build.gradle || true
            fi

            # ---- enable R8 / minification ----
            sed -i 's/minifyEnabled false/minifyEnabled true/' platforms/android/app/build.gradle || true

            # ---- sign release with debug key ----
            sed -i '/buildTypes/,/}/s/release {/release {\n            signingConfig signingConfigs.debug/' platforms/android/app/build.gradle || true

            # ---- build release APK ----
            cordova build android --release --no-interactive --verbose

            cp platforms/android/app/build/outputs/apk/release/*.apk /output/r8/

            # ---- copy TPL metadata ----
            [ -f config.xml ] && cp config.xml /output/r8/ || true
            [ -f plugins/fetch.json ] && cp plugins/fetch.json /output/r8/ || true
            [ -f plugins/android.json ] && cp plugins/android.json /output/r8/ || true
            [ -f platforms/android/app/build.gradle ] && cp platforms/android/app/build.gradle /output/r8/app-build.gradle || true
            [ -f platforms/android/build.gradle ] && cp platforms/android/build.gradle /output/r8/root-build.gradle || true
            [ -f platforms/android/settings.gradle ] && cp platforms/android/settings.gradle /output/r8/ || true
            [ -f package.json ] && cp package.json /output/r8/ || true
            [ -f package-lock.json ] && cp package-lock.json /output/r8/ || true
            [ -f yarn.lock ] && cp yarn.lock /output/r8/ || true
            [ -f pnpm-lock.yaml ] && cp pnpm-lock.yaml /output/r8/ || true
            mkdir -p /output/r8/plugin_manifests
            find plugins -name "plugin.xml" 2>/dev/null | while read f; do cp "$f" /output/r8/plugin_manifests/$(echo "$f" | tr '/' '_') 2>/dev/null; done || true
            find plugins -name "*.gradle" 2>/dev/null | while read f; do cp "$f" /output/r8/ 2>/dev/null; done || true
            find platforms/android -name "*.gradle" 2>/dev/null | grep -v "/build/" | while read f; do cp "$f" /output/r8/ 2>/dev/null; done || true
            mkdir -p /output/r8/libs
            find plugins platforms/android -name "*.jar" -not -name "gradle-wrapper.jar" 2>/dev/null | grep -v "/build/" | while read f; do cp "$f" /output/r8/libs/ 2>/dev/null; done || true
            find plugins platforms/android -name "*.aar" 2>/dev/null | grep -v "/build/" | while read f; do cp "$f" /output/r8/libs/ 2>/dev/null; done || true
            find plugins platforms/android -name "*.so" 2>/dev/null | grep -v "/build/" | while read f; do cp "$f" /output/r8/libs/ 2>/dev/null; done || true
            
npm warn ERESOLVE overriding peer dependency
npm warn While resolving: @babel/preset-modules@0.1.6-no-external-plugins
npm warn Found: @babel/core@8.0.1
npm warn node_modules/@babel/core
npm warn   dev @babel/core@"^8.0.1" from the root project
npm warn   71 more (@babel/helper-create-class-features-plugin, ...)
npm warn
npm warn Could not resolve dependency:
npm warn peer @babel/core@"^7.0.0-0 || ^8.0.0-0 <8.0.0" from @babel/preset-modules@0.1.6-no-external-plugins
npm warn node_modules/@babel/preset-modules
npm warn   @babel/preset-modules@"0.1.6-no-external-plugins" from @babel/preset-env@8.0.1
npm warn   node_modules/@babel/preset-env
npm warn
npm warn Conflicting peer dependency: @babel/core@8.0.0-rc.4
npm warn node_modules/@babel/core
npm warn   peer @babel/core@"^7.0.0-0 || ^8.0.0-0 <8.0.0" from @babel/preset-modules@0.1.6-no-external-plugins
npm warn   node_modules/@babel/preset-modules
npm warn     @babel/preset-modules@"0.1.6-no-external-plugins" from @babel/preset-env@8.0.1
npm warn     node_modules/@babel/preset-env
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/compat-data@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/core@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/code-frame@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/generator@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-globals@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-string-parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-validator-identifier@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/template@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/traverse@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/types@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-annotate-as-pure@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-string-parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-validator-identifier@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/types@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-compilation-targets@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-create-class-features-plugin@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/code-frame@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/generator@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-globals@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-string-parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-validator-identifier@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/template@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/traverse@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/types@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-create-regexp-features-plugin@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-member-expression-to-functions@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/code-frame@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/generator@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-globals@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-string-parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-validator-identifier@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/template@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/traverse@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/types@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-module-imports@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/code-frame@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/generator@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-globals@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-string-parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-validator-identifier@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/template@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/traverse@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/types@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-module-transforms@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/code-frame@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/generator@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-globals@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-string-parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-validator-identifier@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/template@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/traverse@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/types@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-optimise-call-expression@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-string-parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-validator-identifier@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/types@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-plugin-utils@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-remap-async-to-generator@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/code-frame@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/generator@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-globals@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-string-parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-validator-identifier@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/template@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/traverse@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/types@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-replace-supers@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/code-frame@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/generator@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-globals@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-string-parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-validator-identifier@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/template@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/traverse@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/types@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-skip-transparent-expression-wrappers@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/code-frame@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/generator@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-globals@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-string-parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-validator-identifier@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/template@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/traverse@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/types@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-validator-option@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-wrap-function@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/code-frame@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/generator@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-globals@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-string-parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-validator-identifier@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/template@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/traverse@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/types@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helpers@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/code-frame@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-string-parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-validator-identifier@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/template@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/types@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-bugfix-firefox-class-in-computed-class-key@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-bugfix-safari-class-field-initializer-scope@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-bugfix-safari-rest-destructuring-rhs-array@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-syntax-typescript@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-arrow-functions@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-async-generator-functions@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/code-frame@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/generator@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-globals@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-string-parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-validator-identifier@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/template@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/traverse@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/types@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-async-to-generator@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-block-scoped-functions@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-block-scoping@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-class-properties@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-class-static-block@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-classes@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/code-frame@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/generator@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-globals@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-string-parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-validator-identifier@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/parser@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/template@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/traverse@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/types@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-computed-properties@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-destructuring@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-dotall-regex@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-duplicate-keys@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-duplicate-named-capturing-groups-regex@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-dynamic-import@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-explicit-resource-management@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-exponentiation-operator@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-export-namespace-from@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-for-of@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-function-name@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-json-strings@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-literals@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-logical-assignment-operators@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-member-expression-literals@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-modules-amd@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-modules-commonjs@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-modules-systemjs@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/helper-validator-identifier@8.0.0',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-modules-umd@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-named-capturing-groups-regex@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-new-target@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-nullish-coalescing-operator@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-numeric-separator@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-object-rest-spread@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-object-super@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-optional-catch-binding@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-optional-chaining@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-parameters@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-private-methods@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-private-property-in-object@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-property-literals@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-regenerator@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-regexp-modifiers@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-reserved-words@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-runtime@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-shorthand-properties@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-spread@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-sticky-regex@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-template-literals@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-typeof-symbol@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-typescript@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-unicode-escapes@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-unicode-property-regex@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-unicode-regex@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/plugin-transform-unicode-sets-regex@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/preset-env@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '@babel/preset-typescript@8.0.1',
npm warn EBADENGINE   required: { node: '^22.18.0 || >=24.11.0' },
npm warn EBADENGINE   current: { node: 'v20.20.2', npm: '10.8.2' }
npm warn EBADENGINE }
npm warn skipping integrity check for git dependency ssh://git@github.com/Acode-Foundation/codemirror-lsp-client.git
npm warn deprecated read-package-json@4.1.2: This package is no longer supported. Please use @npmcli/package-json instead.
npm warn deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm warn deprecated @npmcli/move-file@1.1.2: This functionality has been moved to @npmcli/fs
npm warn deprecated stringify-package@1.0.1: This module is not used anymore, and has been replaced by @npmcli/package-json
npm warn deprecated sprintf@0.1.5: The sprintf package is deprecated in favor of sprintf-js.
npm warn deprecated npmlog@4.1.2: This package is no longer supported.
npm warn deprecated har-validator@5.1.5: this library is no longer supported
npm warn deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm warn deprecated are-we-there-yet@1.1.7: This package is no longer supported.
npm warn deprecated glob@7.2.3: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
npm warn deprecated glob@7.2.3: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
npm warn deprecated glob@7.2.3: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
npm warn deprecated glob@7.2.0: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
npm warn deprecated glob@7.2.3: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
npm warn deprecated q@1.5.1: You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.
npm warn deprecated
npm warn deprecated (For a CapTP with native promises, see @endo/eventual-send and @endo/captp)
npm warn deprecated dep-graph@1.1.0: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
npm warn deprecated uuid@3.4.0: uuid@10 and below is no longer supported.  For ESM codebases, update to uuid@latest.  For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).
npm warn deprecated uuid@3.4.0: uuid@10 and below is no longer supported.  For ESM codebases, update to uuid@latest.  For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).
npm warn deprecated gauge@2.7.4: This package is no longer supported.
npm warn deprecated request@2.88.0: request has been deprecated, see https://github.com/request/request/issues/3142
npm warn deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm warn deprecated tar@6.2.1: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
npm warn deprecated uuid@8.3.2: uuid@10 and below is no longer supported.  For ESM codebases, update to uuid@latest.  For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).

added 1432 packages, and audited 1450 packages in 32s

154 packages are looking for funding
  run `npm fund` for details

48 vulnerabilities (7 low, 13 moderate, 25 high, 3 critical)

To address issues that do not require attention, run:
  npm audit fix

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.
Using cordova-fetch for cordova-android@^15.1.0
Adding android project...
Creating Cordova project for the Android platform:
	Path: platforms/android
	Package: com.foxdebug.acode
	Name: Acode
	Activity: MainActivity
	Android Target SDK: android-36
	Android Compile SDK: 36
Subproject Path: CordovaLib
Subproject Path: app
Android project created with cordova-android@15.1.0
Discovered plugin "cordova-clipboard". Adding it to the project
Installing "cordova-clipboard" for android
Adding cordova-clipboard to package.json
Discovered plugin "cordova-plugin-device". Adding it to the project
Installing "cordova-plugin-device" for android
Adding cordova-plugin-device to package.json
Discovered plugin "cordova-plugin-file". Adding it to the project
Installing "cordova-plugin-file" for android
Subproject Path: CordovaLib
Subproject Path: app

The Android Persistent storage location now defaults to "Internal". Please check this plugin's README to see if your application needs any changes in its config.xml.

If this is a new application no changes are required.

If this is an update to an existing application that did not specify an "AndroidPersistentFileLocation" you may need to add:

      "<preference name="AndroidPersistentFileLocation" value="Compatibility" />"

to config.xml in order for the application to find previously stored files.
        
Adding cordova-plugin-file to package.json
Discovered plugin "cordova-plugin-server". Adding it to the project
/app/platforms/android/CordovaLib/src/org/apache/cordova/CordovaWebViewEngine.java updated
/app/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebViewEngine.java updated
/app/platforms/android/CordovaLib/src/org/apache/cordova/CordovaWebView.java updated
/app/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebView.java updated
/app/platforms/android/CordovaLib/src/org/apache/cordova/CordovaWebViewImpl.java updated
/app/platforms/android/.flag_done updated
Installing "cordova-plugin-server" for android
Subproject Path: CordovaLib
Subproject Path: app
Adding cordova-plugin-server to package.json
Discovered plugin "cordova-plugin-ftp". Adding it to the project
Installing "cordova-plugin-ftp" for android
Subproject Path: CordovaLib
Subproject Path: app
Adding cordova-plugin-ftp to package.json
Discovered plugin "cordova-plugin-sdcard". Adding it to the project
Installing "cordova-plugin-sdcard" for android
Subproject Path: CordovaLib
Subproject Path: app
Adding cordova-plugin-sdcard to package.json
Discovered plugin "cordova-plugin-websocket". Adding it to the project
Installing "cordova-plugin-websocket" for android
Subproject Path: CordovaLib
Subproject Path: app
Adding cordova-plugin-websocket to package.json
Discovered plugin "cordova-plugin-buildinfo". Adding it to the project
Installing "cordova-plugin-buildinfo" for android
Subproject Path: CordovaLib
Subproject Path: app
Adding cordova-plugin-buildinfo to package.json
Discovered plugin "cordova-plugin-browser". Adding it to the project
Installing "cordova-plugin-browser" for android
Adding cordova-plugin-browser to package.json
Discovered plugin "cordova-plugin-sftp". Adding it to the project
Installing "cordova-plugin-sftp" for android
Subproject Path: CordovaLib
Subproject Path: app
Adding cordova-plugin-sftp to package.json
Discovered plugin "com.foxdebug.acode.rk.exec.terminal". Adding it to the project
Installing "com.foxdebug.acode.rk.exec.terminal" for android
Subproject Path: CordovaLib
Subproject Path: app
Adding com.foxdebug.acode.rk.exec.terminal to package.json
Discovered plugin "com.foxdebug.acode.rk.plugin.plugincontext". Adding it to the project
Installing "com.foxdebug.acode.rk.plugin.plugincontext" for android
Adding com.foxdebug.acode.rk.plugin.plugincontext to package.json
Discovered plugin "com.foxdebug.acode.rk.auth". Adding it to the project
Installing "com.foxdebug.acode.rk.auth" for android
Subproject Path: CordovaLib
Subproject Path: app
Adding com.foxdebug.acode.rk.auth to package.json
Discovered plugin "com.foxdebug.acode.rk.exec.proot". Adding it to the project
Installing "com.foxdebug.acode.rk.exec.proot" for android
Adding com.foxdebug.acode.rk.exec.proot to package.json
Discovered plugin "cordova-plugin-iap". Adding it to the project
Installing "cordova-plugin-iap" for android
Subproject Path: CordovaLib
Subproject Path: app
Adding cordova-plugin-iap to package.json
Discovered plugin "com.foxdebug.acode.rk.customtabs". Adding it to the project
Installing "com.foxdebug.acode.rk.customtabs" for android
Subproject Path: CordovaLib
Subproject Path: app
Adding com.foxdebug.acode.rk.customtabs to package.json
Discovered plugin "cordova-plugin-system". Adding it to the project
Installing "cordova-plugin-system" for android
Subproject Path: CordovaLib
Subproject Path: app
Adding cordova-plugin-system to package.json
Discovered plugin "cordova-plugin-crashhandler". Adding it to the project
Installing "cordova-plugin-crashhandler" for android
Adding cordova-plugin-crashhandler to package.json
Discovered plugin "cordova-plugin-advanced-http". Adding it to the project
Installing "cordova-plugin-advanced-http" for android
Plugin dependency "cordova-plugin-file@8.1.3" already fetched, using that version.
Dependent plugin "cordova-plugin-file" already installed on android.
Adding cordova-plugin-advanced-http to package.json
Discovered plugin "cordova-plugin-acode-webview". Adding it to the project
Installing "cordova-plugin-acode-webview" for android
Adding cordova-plugin-acode-webview to package.json
[32mcopied: ic_launcher_background.xml[0m
[32mcopied: ic_launcher_foreground.xml[0m
[32mcopied: ic_launcher.xml[0m
[32mcopied: ic_launcher_round.xml[0m
[31mdeleted conflicting resource: ic_launcher.png[0m
[32mcopied: ic_launcher.webp[0m
[32mcopied: ic_launcher_round.webp[0m
[31mdeleted conflicting resource: ic_launcher.png[0m
[32mcopied: ic_launcher.webp[0m
[32mcopied: ic_launcher_round.webp[0m
[31mdeleted conflicting resource: ic_launcher.png[0m
[32mcopied: ic_launcher.webp[0m
[32mcopied: ic_launcher_round.webp[0m
[31mdeleted conflicting resource: ic_launcher.png[0m
[32mcopied: ic_launcher.webp[0m
[32mcopied: ic_launcher_round.webp[0m
[31mdeleted conflicting resource: ic_launcher.png[0m
[32mcopied: ic_launcher.webp[0m
[32mcopied: ic_launcher_round.webp[0m
[32mcopied: colors.xml[0m
[32mcopied: ic_launcher_background.xml[0m
[32mcopied: themes.xml[0m
[32mcopied: network_security_config.xml[0m
[Cordova Hook] ✅ Enabled legacy JNI packaging
[Cordova Hook] ✅ Enabled static context
---------------------------------------------------------------------------------




⚠️ fdroid.bool not found
⚠️ Fdroid flavour will be built




---------------------------------------------------------------------------------
[Cordova Hook] ✅ Patched targetSdkVersion to 28

===============================================
==== Changed package to com.foxdebug.acode ====
===============================================


=========================================================
==== Changed provider to com.foxdebug.acode.provider ====
=========================================================


===================================================
==== Changed provider to com.foxdebug.provider ====
===================================================

[32mcopied: ic_launcher_background.xml[0m
[32mcopied: ic_launcher_foreground.xml[0m
[32mcopied: ic_launcher.xml[0m
[32mcopied: ic_launcher_round.xml[0m
[32mcopied: ic_launcher.webp[0m
[32mcopied: ic_launcher_round.webp[0m
[32mcopied: ic_launcher.webp[0m
[32mcopied: ic_launcher_round.webp[0m
[32mcopied: ic_launcher.webp[0m
[32mcopied: ic_launcher_round.webp[0m
[32mcopied: ic_launcher.webp[0m
[32mcopied: ic_launcher_round.webp[0m
[32mcopied: ic_launcher.webp[0m
[32mcopied: ic_launcher_round.webp[0m
[32mcopied: colors.xml[0m
[32mcopied: ic_launcher_background.xml[0m
[32mcopied: themes.xml[0m
[32mcopied: network_security_config.xml[0m
[Cordova Hook] ✅ Legacy JNI packaging already enabled, skipping
[Cordova Hook] ✅ Static context already enabled, skipping
[Cordova Hook] ✅ Patched targetSdkVersion to 28
---------------------------------------------------------------------------------




⚠️ fdroid.bool not found
⚠️ Fdroid flavour will be built




---------------------------------------------------------------------------------

===============================================
==== Changed package to com.foxdebug.acode ====
===============================================


=========================================================
==== Changed provider to com.foxdebug.acode.provider ====
=========================================================

No scripts found for hook "before_build".
Executing script found in config.xml for hook "before_prepare": hooks/restore-cordova-resources.js
Executing script found in config.xml for hook "before_prepare": hooks/modify-java-files.js
Executing script found in plugin cordova-plugin-system for hook "before_prepare": plugins/cordova-plugin-system/utils/resetProvider.js

===================================================
==== Changed provider to com.foxdebug.provider ====
===================================================

Checking for saved platforms that haven't been added to the project
Loaded API for android project /app/platforms/android/cordova/Api.js
Checking for saved plugins that haven't been added to the project
Generating platform-specific config.xml from defaults for android at /app/platforms/android/app/src/main/res/xml/config.xml
Merging project's config.xml into platform-specific android config.xml
[Gradle Properties] Preparing Configuration
[Gradle Properties] Appending default configuration properties
[Gradle Properties] Appending custom configuration properties
[Gradle Properties] Updating Gradle property "kotlin.code.style" with the value of "official"
[Gradle Properties] Updating and Saving File
Merging and updating files from [www, platforms/android/platform_www] to platforms/android/app/src/main/assets/www
  copy  platforms/android/platform_www/cordova.js platforms/android/app/src/main/assets/www/cordova.js (updated file)
  copy  platforms/android/platform_www/cordova_plugins.js platforms/android/app/src/main/assets/www/cordova_plugins.js (updated file)
  copy  platforms/android/platform_www/plugins/com.foxdebug.acode.rk.customtabs/www/customtabs.js platforms/android/app/src/main/assets/www/plugins/com.foxdebug.acode.rk.customtabs/www/customtabs.js (updated file)
  copy  platforms/android/platform_www/plugins/com.foxdebug.acode.rk.exec.terminal/www/Executor.js platforms/android/app/src/main/assets/www/plugins/com.foxdebug.acode.rk.exec.terminal/www/Executor.js (updated file)
  copy  platforms/android/platform_www/plugins/com.foxdebug.acode.rk.exec.terminal/www/Terminal.js platforms/android/app/src/main/assets/www/plugins/com.foxdebug.acode.rk.exec.terminal/www/Terminal.js (updated file)
  copy  platforms/android/platform_www/plugins/com.foxdebug.acode.rk.plugin.plugincontext/www/PluginContext.js platforms/android/app/src/main/assets/www/plugins/com.foxdebug.acode.rk.plugin.plugincontext/www/PluginContext.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-clipboard/www/clipboard.js platforms/android/app/src/main/assets/www/plugins/cordova-clipboard/www/clipboard.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-advanced-http/www/advanced-http.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-advanced-http/www/advanced-http.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-advanced-http/www/cookie-handler.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-advanced-http/www/cookie-handler.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-advanced-http/www/dependency-validator.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-advanced-http/www/dependency-validator.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-advanced-http/www/error-codes.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-advanced-http/www/error-codes.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-advanced-http/www/global-configs.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-advanced-http/www/global-configs.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-advanced-http/www/helpers.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-advanced-http/www/helpers.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-advanced-http/www/js-util.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-advanced-http/www/js-util.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-advanced-http/www/local-storage-store.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-advanced-http/www/local-storage-store.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-advanced-http/www/lodash.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-advanced-http/www/lodash.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-advanced-http/www/messages.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-advanced-http/www/messages.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-advanced-http/www/ponyfills.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-advanced-http/www/ponyfills.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-advanced-http/www/public-interface.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-advanced-http/www/public-interface.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-advanced-http/www/umd-tough-cookie.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-advanced-http/www/umd-tough-cookie.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-advanced-http/www/url-util.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-advanced-http/www/url-util.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-buildinfo/www/buildinfo.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-buildinfo/www/buildinfo.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-device/www/device.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-device/www/device.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/DirectoryEntry.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/DirectoryEntry.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/DirectoryReader.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/DirectoryReader.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/Entry.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/Entry.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/File.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/File.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/FileEntry.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/FileEntry.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/FileError.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/FileError.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/FileReader.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/FileReader.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/FileSystem.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/FileSystem.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/FileUploadOptions.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/FileUploadOptions.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/FileUploadResult.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/FileUploadResult.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/FileWriter.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/FileWriter.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/Flags.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/Flags.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/LocalFileSystem.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/LocalFileSystem.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/Metadata.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/Metadata.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/ProgressEvent.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/ProgressEvent.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/android/Entry.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/android/Entry.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/android/FileSystem.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/android/FileSystem.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/browser/isChrome.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/browser/isChrome.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/fileSystemPaths.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/fileSystemPaths.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/fileSystems-roots.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/fileSystems-roots.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/fileSystems.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/fileSystems.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/requestFileSystem.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/requestFileSystem.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-file/www/resolveLocalFileSystemURI.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-file/www/resolveLocalFileSystemURI.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-ftp/www/ftp.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-ftp/www/ftp.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-iap/www/plugin.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-iap/www/plugin.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-sdcard/www/plugin.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-sdcard/www/plugin.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-server/www/server.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-server/www/server.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-sftp/www/sftp.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-sftp/www/sftp.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-system/www/plugin.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-system/www/plugin.js (updated file)
  copy  platforms/android/platform_www/plugins/cordova-plugin-websocket/www/websocket.js platforms/android/app/src/main/assets/www/plugins/cordova-plugin-websocket/www/websocket.js (updated file)
Wrote out android application name "Acode" to /app/platforms/android/app/src/main/res/values/cdv_strings.xml
The Android Splash Screen background color was set to: @color/ic_splash_background
The "AndroidWindowSplashScreenBrandingImage" is undefined. Cordova's default will be used.
Wrote out Android application SplashScreen Icon Color to /app/platforms/android/app/src/main/res/values/cdv_colors.xml
Wrote out Android application themes to /app/platforms/android/app/src/main/res/values/cdv_themes.xml
[Cordova Gradle Config] Setting "PACKAGE_NAMESPACE" to com.foxdebug.acode
[Cordova Gradle Config] Saving File
This app does not have launcher icons defined
This app does not have additional resource files defined
Prepared android project successfully
Executing script found in config.xml for hook "after_prepare": hooks/post-process.js
[32mcopied: ic_launcher_background.xml[0m
[32mcopied: ic_launcher_foreground.xml[0m
[32mcopied: ic_launcher.xml[0m
[32mcopied: ic_launcher_round.xml[0m
[32mcopied: ic_launcher.webp[0m
[32mcopied: ic_launcher_round.webp[0m
[32mcopied: ic_launcher.webp[0m
[32mcopied: ic_launcher_round.webp[0m
[32mcopied: ic_launcher.webp[0m
[32mcopied: ic_launcher_round.webp[0m
[32mcopied: ic_launcher.webp[0m
[32mcopied: ic_launcher_round.webp[0m
[32mcopied: ic_launcher.webp[0m
[32mcopied: ic_launcher_round.webp[0m
[32mcopied: colors.xml[0m
[32mcopied: ic_launcher_background.xml[0m
[32mcopied: themes.xml[0m
[32mcopied: network_security_config.xml[0m
[Cordova Hook] ✅ Legacy JNI packaging already enabled, skipping
[Cordova Hook] ✅ Static context already enabled, skipping
---------------------------------------------------------------------------------




⚠️ fdroid.bool not found
⚠️ Fdroid flavour will be built




---------------------------------------------------------------------------------
[Cordova Hook] ✅ Patched targetSdkVersion to 28
Executing script found in plugin cordova-plugin-browser for hook "after_prepare": plugins/cordova-plugin-browser/utils/updatePackage.js

===============================================
==== Changed package to com.foxdebug.acode ====
===============================================

Executing script found in plugin cordova-plugin-system for hook "after_prepare": plugins/cordova-plugin-system/utils/fixProvider.js

=========================================================
==== Changed provider to com.foxdebug.acode.provider ====
=========================================================

No scripts found for hook "before_compile".
Checking Java JDK and Android SDK versions
ANDROID_HOME=/opt/android (recommended setting)
ANDROID_SDK_ROOT=/opt/android (DEPRECATED)
Using Android SDK: /opt/android
Using Gradle: 8.14.2

Welcome to Gradle 8.5!

Here are the highlights of this release:
 - Support for running on Java 21
 - Faster first use with Kotlin DSL
 - Improved error and warning messages

For more details see https://docs.gradle.org/8.5/release-notes.html

> Task :wrapper

BUILD SUCCESSFUL in 10s
1 actionable task: 1 executed
Subproject Path: CordovaLib
Subproject Path: app
Running Gradle Build: /app/platforms/android/tools/gradlew :app:bundleRelease
Downloading https://services.gradle.org/distributions/gradle-8.14.2-bin.zip
.............10%.............20%.............30%.............40%.............50%.............60%.............70%.............80%.............90%..............100%

Welcome to Gradle 8.14.2!

Here are the highlights of this release:
 - Java 24 support
 - GraalVM Native Image toolchain selection
 - Enhancements to test reporting
 - Build Authoring improvements

For more details see https://docs.gradle.org/8.14.2/release-notes.html

To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/8.14.2/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation.
Daemon will be stopped at the end of the build 
> Task :app:preBuild UP-TO-DATE
> Task :app:preReleaseBuild UP-TO-DATE
> Task :app:generateReleaseResValues
> Task :CordovaLib:preBuild UP-TO-DATE
> Task :CordovaLib:preReleaseBuild UP-TO-DATE
> Task :CordovaLib:generateReleaseResValues
> Task :CordovaLib:generateReleaseResources
> Task :CordovaLib:packageReleaseResources
> Task :app:mapReleaseSourceSetPaths
> Task :app:generateReleaseResources
> Task :app:createReleaseCompatibleScreenManifests
> Task :app:extractDeepLinksRelease
> Task :CordovaLib:extractDeepLinksRelease
> Task :CordovaLib:writeReleaseAarMetadata
> Task :CordovaLib:processReleaseManifest
> Task :app:mergeReleaseResources
> Task :app:packageReleaseResources
> Task :app:processReleaseMainManifest
> Task :app:processReleaseManifest
> Task :app:processApplicationManifestReleaseForBundle
> Task :app:checkReleaseAarMetadata
> Task :CordovaLib:compileReleaseLibraryResources
> Task :app:parseReleaseLocalResources
> Task :CordovaLib:parseReleaseLocalResources
> Task :app:extractReleaseVersionControlInfo
> Task :CordovaLib:javaPreCompileRelease
> Task :CordovaLib:generateReleaseRFile
> Task :app:checkReleaseDuplicateClasses

> Task :CordovaLib:compileReleaseJavaWithJavac
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

> Task :app:buildKotlinToolingMetadata
> Task :app:checkKotlinGradlePluginConfigurationErrors SKIPPED
> Task :app:generateReleaseBuildConfig
> Task :app:javaPreCompileRelease
> Task :CordovaLib:bundleLibRuntimeToDirRelease
> Task :app:desugarReleaseFileDependencies
> Task :app:mergeReleaseStartupProfile
> Task :CordovaLib:bundleLibCompileToJarRelease
> Task :app:processReleaseManifestForPackage
> Task :app:mergeExtDexRelease
> Task :app:mergeReleaseShaders
> Task :app:compileReleaseShaders NO-SOURCE
> Task :app:generateReleaseAssets UP-TO-DATE
> Task :CordovaLib:mergeReleaseShaders
> Task :CordovaLib:compileReleaseShaders NO-SOURCE
> Task :CordovaLib:generateReleaseAssets UP-TO-DATE
> Task :CordovaLib:mergeReleaseAssets
> Task :app:mergeReleaseAssets
> Task :CordovaLib:bundleLibRuntimeToJarRelease
> Task :CordovaLib:processReleaseJavaRes
> Task :app:mergeReleaseJniLibFolders
> Task :CordovaLib:mergeReleaseJniLibFolders
> Task :CordovaLib:mergeReleaseNativeLibs NO-SOURCE
> Task :CordovaLib:copyReleaseJniLibsProjectOnly
> Task :app:writeReleaseAppMetadata
> Task :CordovaLib:prepareReleaseArtProfile
> Task :app:mergeReleaseNativeLibs
> Task :app:mergeReleaseArtProfile
> Task :app:collectReleaseDependencies

> Task :app:stripReleaseDebugSymbols
Unable to strip the following libraries, packaging them as they are: libaxs.so, libproot-xed.so, libproot.so, libproot32.so, libtalloc.so. Run with --info option to learn more.

> Task :app:configureReleaseDependencies
> Task :app:extractReleaseNativeSymbolTables
> Task :app:extractProguardFiles
> Task :CordovaLib:createFullJarRelease
> Task :CordovaLib:extractProguardFiles
> Task :CordovaLib:generateReleaseLintModel
> Task :CordovaLib:prepareLintJarForPublish
> Task :CordovaLib:stripReleaseDebugSymbols NO-SOURCE
> Task :CordovaLib:copyReleaseJniLibsProjectAndLocalJars
> Task :CordovaLib:extractDeepLinksForAarRelease
> Task :CordovaLib:extractReleaseAnnotations
> Task :CordovaLib:mergeReleaseGeneratedProguardFiles
> Task :CordovaLib:mergeReleaseConsumerProguardFiles
> Task :CordovaLib:writeReleaseLintModelMetadata
> Task :CordovaLib:mergeReleaseJavaResource
> Task :CordovaLib:generateReleaseLintVitalModel
> Task :CordovaLib:syncReleaseLibJars
> Task :CordovaLib:bundleReleaseLocalLintAar
> Task :app:parseReleaseIntegrityConfig
> Task :app:processReleaseResources
> Task :app:compileReleaseKotlin NO-SOURCE
> Task :app:bundleReleaseResources

> Task :app:compileReleaseJavaWithJavac
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

> Task :CordovaLib:lintVitalAnalyzeRelease
> Task :app:dexBuilderRelease
> Task :app:processReleaseJavaRes
> Task :app:mergeReleaseGlobalSynthetics
> Task :app:generateReleaseLintVitalReportModel
> Task :app:mergeReleaseJavaResource
> Task :app:mergeDexRelease
> Task :app:buildReleasePreBundle
> Task :app:compileReleaseArtProfile
> Task :app:lintVitalAnalyzeRelease
> Task :app:lintVitalReportRelease
> Task :app:lintVitalRelease
> Task :app:packageReleaseBundle
> Task :app:signReleaseBundle
> Task :app:produceReleaseBundleIdeListingFile
> Task :app:createReleaseBundleListingFileRedirect
> Task :app:bundleRelease

[Incubating] Problems report is available at: file:///app/platforms/android/build/reports/problems/problems-report.html

Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

For more on this, please refer to https://docs.gradle.org/8.14.2/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.

BUILD SUCCESSFUL in 3m 37s
86 actionable tasks: 86 executed
Built the following bundle(s): 
	/app/platforms/android/app/build/outputs/bundle/release/app-release.aab
No scripts found for hook "after_compile".
No scripts found for hook "after_build".
cp: cannot stat 'platforms/android/app/build/outputs/apk/release/*.apk': No such file or directory

> echo Build failed with Node 20 and JDK 17: Command '['docker', 'run', '--rm', '-v', '/home/ubuntu/storage/cordova_assets/extracted/Acode-Foundation-Acode/Acode-f90fc1d9d35b9096f0d4279410d7fa3d7cbf3835:/source:ro', '-v', '/home/ubuntu/BachelorsThesis/scripts/cordova/output/Acode-Foundation-Acode:/output', '-v', '/home/ubuntu/.npm:/root/.npm', 'cordova-android:20-jdk17', 'bash', '-c', 'set -e\n            cp -r /source/. /app\n            cd /app\n            rm -rf platforms plugins node_modules || true\n            rm -rf $GRADLE_USER_HOME || true\n            mkdir -p $GRADLE_USER_HOME\n\n            # unset Gradle options\n            unset JAVA_OPTS\n\n            # install deps\n            if [ -f yarn.lock ]; then\n                yarn install --ignore-scripts\n            else\n                npm install --ignore-scripts\n            fi\n\n            # ensure android platform\n            cordova platform add android\n            cordova prepare android\n\n            # ---- PATCH ROOT GRADLE FILES (CRITICAL FIX) ----\n            for f in platforms/android/build.gradle platforms/android/CordovaLib/build.gradle; do\n                if [ -f "$f" ]; then\n                    sed -i \'/buildscript[[:space:]]*{/a\\\n                repositories {\\\n                    google()\\\n                    mavenCentral()\\\n                    maven { url "https://plugins.gradle.org/m2/" }\\\n                    maven { url "https://maven.aliyun.com/repository/public" }\\\n                    maven { url "https://jcenter.bintray.com/" }\\\n                    maven { url "https://jitpack.io" }\\\n                }\\\n            \' "$f" || true\n\n                    sed -i \'/allprojects[[:space:]]*{/a\\\n                repositories {\\\n                    google()\\\n                    mavenCentral()\\\n                    maven { url "https://plugins.gradle.org/m2/" }\\\n                    maven { url "https://maven.aliyun.com/repository/public" }\\\n                    maven { url "https://jcenter.bintray.com/" }\\\n                    maven { url "https://jitpack.io" }\\\n                }\\\n            \' "$f" || true\n                fi\n            done\n\n            # ---- FIX versioncompare (very common failure) ----\n            grep -RIl \'com.g00fy2:versioncompare:1.3.4\' platforms/android 2>/dev/null | \\\n            xargs -r sed -i \'s/com.g00fy2:versioncompare:1.3.4/io.github.g00fy2:versioncompare:1.5.0/g\' || true\n\n            # ---- fix versioncompare imports (CRITICAL) ----\n            find platforms/android \\( -name "*.gradle" -o -name "*.gradle.kts" \\) -print0 | \\\n            xargs -0 sed -i \'s/import com\\.g00fy2\\.versioncompare\\.Version/import io.github.g00fy2.versioncompare.Version/g\' || true\n\n            # ---- OPTIONAL: remove illegal JVM args ----\n            find platforms/android -type f -exec sed -i \'s/--illegal-access=permit//g\' {} + || true\n\n            # ---- JDK 8 specific patch ----\n            if [ \\"17\\" = "8" ]; then\n                find platforms/android -name "build.gradle" -exec \\\n                    sed -i \'s/compileSdkVersion [0-9]\\+/compileSdkVersion 30/g\' {} \\; || true\n\n                find platforms/android -name "build.gradle" -exec \\\n                    sed -i \'s/targetSdkVersion [0-9]\\+/targetSdkVersion 30/g\' {} \\; || true\n            fi\n\n            # ---- android sdk path ----\n            echo "sdk.dir=$ANDROID_HOME" > platforms/android/local.properties\n\n            # ---- force APK output (suppress AAB generation) ----\n            echo "android.bundle.enableAll=false" >> platforms/android/gradle.properties\n\n            # ---- enable ABI splits ----\n            if grep -q \'splits\' platforms/android/app/build.gradle 2>/dev/null; then\n                sed -i \'s/enable false/enable true/\' platforms/android/app/build.gradle || true\n            else\n                sed -i \'/^android[[:space:]]*{/a\\    splits {\\n        abi {\\n            reset()\\n            enable true\\n            universalApk false\\n            include "armeabi-v7a", "arm64-v8a", "x86", "x86_64"\\n        }\\n    }\' platforms/android/app/build.gradle || true\n            fi\n\n            # ---- enable R8 / minification ----\n            sed -i \'s/minifyEnabled false/minifyEnabled true/\' platforms/android/app/build.gradle || true\n\n            # ---- sign release with debug key ----\n            sed -i \'/buildTypes/,/}/s/release {/release {\\n            signingConfig signingConfigs.debug/\' platforms/android/app/build.gradle || true\n\n            # ---- build release APK ----\n            cordova build android --release --no-interactive --verbose\n\n            cp platforms/android/app/build/outputs/apk/release/*.apk /output/r8/\n\n            # ---- copy TPL metadata ----\n            [ -f config.xml ] && cp config.xml /output/r8/ || true\n            [ -f plugins/fetch.json ] && cp plugins/fetch.json /output/r8/ || true\n            [ -f plugins/android.json ] && cp plugins/android.json /output/r8/ || true\n            [ -f platforms/android/app/build.gradle ] && cp platforms/android/app/build.gradle /output/r8/app-build.gradle || true\n            [ -f platforms/android/build.gradle ] && cp platforms/android/build.gradle /output/r8/root-build.gradle || true\n            [ -f platforms/android/settings.gradle ] && cp platforms/android/settings.gradle /output/r8/ || true\n            [ -f package.json ] && cp package.json /output/r8/ || true\n            [ -f package-lock.json ] && cp package-lock.json /output/r8/ || true\n            [ -f yarn.lock ] && cp yarn.lock /output/r8/ || true\n            [ -f pnpm-lock.yaml ] && cp pnpm-lock.yaml /output/r8/ || true\n            mkdir -p /output/r8/plugin_manifests\n            find plugins -name "plugin.xml" 2>/dev/null | while read f; do cp "$f" /output/r8/plugin_manifests/$(echo "$f" | tr \'/\' \'_\') 2>/dev/null; done || true\n            find plugins -name "*.gradle" 2>/dev/null | while read f; do cp "$f" /output/r8/ 2>/dev/null; done || true\n            find platforms/android -name "*.gradle" 2>/dev/null | grep -v "/build/" | while read f; do cp "$f" /output/r8/ 2>/dev/null; done || true\n            mkdir -p /output/r8/libs\n            find plugins platforms/android -name "*.jar" -not -name "gradle-wrapper.jar" 2>/dev/null | grep -v "/build/" | while read f; do cp "$f" /output/r8/libs/ 2>/dev/null; done || true\n            find plugins platforms/android -name "*.aar" 2>/dev/null | grep -v "/build/" | while read f; do cp "$f" /output/r8/libs/ 2>/dev/null; done || true\n            find plugins platforms/android -name "*.so" 2>/dev/null | grep -v "/build/" | while read f; do cp "$f" /output/r8/libs/ 2>/dev/null; done || true\n            ']' returned non-zero exit status 1.
Build failed with Node 20 and JDK 17: Command '['docker', 'run', '--rm', '-v', '/home/ubuntu/storage/cordova_assets/extracted/Acode-Foundation-Acode/Acode-f90fc1d9d35b9096f0d4279410d7fa3d7cbf3835:/source:ro', '-v', '/home/ubuntu/BachelorsThesis/scripts/cordova/output/Acode-Foundation-Acode:/output', '-v', '/home/ubuntu/.npm:/root/.npm', 'cordova-android:20-jdk17', 'bash', '-c', 'set -e\n            cp -r /source/. /app\n            cd /app\n            rm -rf platforms plugins node_modules || true\n            rm -rf $GRADLE_USER_HOME || true\n            mkdir -p $GRADLE_USER_HOME\n\n            # unset Gradle options\n            unset JAVA_OPTS\n\n            # install deps\n            if [ -f yarn.lock ]; then\n                yarn install --ignore-scripts\n            else\n                npm install --ignore-scripts\n            fi\n\n            # ensure android platform\n            cordova platform add android\n            cordova prepare android\n\n            # ---- PATCH ROOT GRADLE FILES (CRITICAL FIX) ----\n            for f in platforms/android/build.gradle platforms/android/CordovaLib/build.gradle; do\n                if [ -f "$f" ]; then\n                    sed -i \'/buildscript[[:space:]]*{/a\\\n                repositories {\\\n                    google()\\\n                    mavenCentral()\\\n                    maven { url "https://plugins.gradle.org/m2/" }\\\n                    maven { url "https://maven.aliyun.com/repository/public" }\\\n                    maven { url "https://jcenter.bintray.com/" }\\\n                    maven { url "https://jitpack.io" }\\\n                }\\\n            \' "$f" || true\n\n                    sed -i \'/allprojects[[:space:]]*{/a\\\n                repositories {\\\n                    google()\\\n                    mavenCentral()\\\n                    maven { url "https://plugins.gradle.org/m2/" }\\\n                    maven { url "https://maven.aliyun.com/repository/public" }\\\n                    maven { url "https://jcenter.bintray.com/" }\\\n                    maven { url "https://jitpack.io" }\\\n                }\\\n            \' "$f" || true\n                fi\n            done\n\n            # ---- FIX versioncompare (very common failure) ----\n            grep -RIl \'com.g00fy2:versioncompare:1.3.4\' platforms/android 2>/dev/null | \\\n            xargs -r sed -i \'s/com.g00fy2:versioncompare:1.3.4/io.github.g00fy2:versioncompare:1.5.0/g\' || true\n\n            # ---- fix versioncompare imports (CRITICAL) ----\n            find platforms/android \\( -name "*.gradle" -o -name "*.gradle.kts" \\) -print0 | \\\n            xargs -0 sed -i \'s/import com\\.g00fy2\\.versioncompare\\.Version/import io.github.g00fy2.versioncompare.Version/g\' || true\n\n            # ---- OPTIONAL: remove illegal JVM args ----\n            find platforms/android -type f -exec sed -i \'s/--illegal-access=permit//g\' {} + || true\n\n            # ---- JDK 8 specific patch ----\n            if [ \\"17\\" = "8" ]; then\n                find platforms/android -name "build.gradle" -exec \\\n                    sed -i \'s/compileSdkVersion [0-9]\\+/compileSdkVersion 30/g\' {} \\; || true\n\n                find platforms/android -name "build.gradle" -exec \\\n                    sed -i \'s/targetSdkVersion [0-9]\\+/targetSdkVersion 30/g\' {} \\; || true\n            fi\n\n            # ---- android sdk path ----\n            echo "sdk.dir=$ANDROID_HOME" > platforms/android/local.properties\n\n            # ---- force APK output (suppress AAB generation) ----\n            echo "android.bundle.enableAll=false" >> platforms/android/gradle.properties\n\n            # ---- enable ABI splits ----\n            if grep -q \'splits\' platforms/android/app/build.gradle 2>/dev/null; then\n                sed -i \'s/enable false/enable true/\' platforms/android/app/build.gradle || true\n            else\n                sed -i \'/^android[[:space:]]*{/a\\    splits {\\n        abi {\\n            reset()\\n            enable true\\n            universalApk false\\n            include "armeabi-v7a", "arm64-v8a", "x86", "x86_64"\\n        }\\n    }\' platforms/android/app/build.gradle || true\n            fi\n\n            # ---- enable R8 / minification ----\n            sed -i \'s/minifyEnabled false/minifyEnabled true/\' platforms/android/app/build.gradle || true\n\n            # ---- sign release with debug key ----\n            sed -i \'/buildTypes/,/}/s/release {/release {\\n            signingConfig signingConfigs.debug/\' platforms/android/app/build.gradle || true\n\n            # ---- build release APK ----\n            cordova build android --release --no-interactive --verbose\n\n            cp platforms/android/app/build/outputs/apk/release/*.apk /output/r8/\n\n            # ---- copy TPL metadata ----\n            [ -f config.xml ] && cp config.xml /output/r8/ || true\n            [ -f plugins/fetch.json ] && cp plugins/fetch.json /output/r8/ || true\n            [ -f plugins/android.json ] && cp plugins/android.json /output/r8/ || true\n            [ -f platforms/android/app/build.gradle ] && cp platforms/android/app/build.gradle /output/r8/app-build.gradle || true\n            [ -f platforms/android/build.gradle ] && cp platforms/android/build.gradle /output/r8/root-build.gradle || true\n            [ -f platforms/android/settings.gradle ] && cp platforms/android/settings.gradle /output/r8/ || true\n            [ -f package.json ] && cp package.json /output/r8/ || true\n            [ -f package-lock.json ] && cp package-lock.json /output/r8/ || true\n            [ -f yarn.lock ] && cp yarn.lock /output/r8/ || true\n            [ -f pnpm-lock.yaml ] && cp pnpm-lock.yaml /output/r8/ || true\n            mkdir -p /output/r8/plugin_manifests\n            find plugins -name "plugin.xml" 2>/dev/null | while read f; do cp "$f" /output/r8/plugin_manifests/$(echo "$f" | tr \'/\' \'_\') 2>/dev/null; done || true\n            find plugins -name "*.gradle" 2>/dev/null | while read f; do cp "$f" /output/r8/ 2>/dev/null; done || true\n            find platforms/android -name "*.gradle" 2>/dev/null | grep -v "/build/" | while read f; do cp "$f" /output/r8/ 2>/dev/null; done || true\n            mkdir -p /output/r8/libs\n            find plugins platforms/android -name "*.jar" -not -name "gradle-wrapper.jar" 2>/dev/null | grep -v "/build/" | while read f; do cp "$f" /output/r8/libs/ 2>/dev/null; done || true\n            find plugins platforms/android -name "*.aar" 2>/dev/null | grep -v "/build/" | while read f; do cp "$f" /output/r8/libs/ 2>/dev/null; done || true\n            find plugins platforms/android -name "*.so" 2>/dev/null | grep -v "/build/" | while read f; do cp "$f" /output/r8/libs/ 2>/dev/null; done || true\n            ']' returned non-zero exit status 1.
