From 93b9a2976e2c05aefc31ae64b2e6dfb5000ced92 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Fri, 11 Oct 2024 10:21:55 +0200 Subject: [PATCH 001/167] c library --- .github/workflows/libxtracfg.yml | 51 ++++++++++ .github/workflows/xtracfg.yml | 6 ++ libxtracfg/c/README.md | 1 + libxtracfg/c/build.sh | 28 ++++++ libxtracfg/c/include/libxtracfg.h | 1 + .../c/native-image/static-compiler-darwin.sh | 77 +++++++++++++++ .../c/native-image/static-compiler-linux.sh | 96 +++++++++++++++++++ libxtracfg/c/test/main.c | 26 +++++ libxtracfg/c/wrapper/libxtracfg.c | 48 ++++++++++ xtracfg/build.gradle | 47 +++++++-- .../de/ii/xtraplatform/cli/NativeFeature.java | 25 ++--- .../META-INF/native-image/jni-config.json | 6 +- 12 files changed, 391 insertions(+), 21 deletions(-) create mode 100644 .github/workflows/libxtracfg.yml create mode 100644 libxtracfg/c/README.md create mode 100755 libxtracfg/c/build.sh create mode 100644 libxtracfg/c/include/libxtracfg.h create mode 100755 libxtracfg/c/native-image/static-compiler-darwin.sh create mode 100755 libxtracfg/c/native-image/static-compiler-linux.sh create mode 100644 libxtracfg/c/test/main.c create mode 100644 libxtracfg/c/wrapper/libxtracfg.c diff --git a/.github/workflows/libxtracfg.yml b/.github/workflows/libxtracfg.yml new file mode 100644 index 0000000..7f6d64b --- /dev/null +++ b/.github/workflows/libxtracfg.yml @@ -0,0 +1,51 @@ +name: xtracfg + +on: [push] + +jobs: + build: + strategy: + matrix: + os: + - runner: ubuntu-latest + type: linux + platform: linux-amd64 + #- runner: buildjet-2vcpu-ubuntu-2204-arm + # type: linux + # platform: linux-arm64 + - runner: macos-latest + type: macos + platform: darwin-arm64 + runs-on: ${{ matrix.os.runner }} + defaults: + run: + working-directory: ./libxtracfg/c + steps: + - uses: actions/checkout@v4 + - uses: graalvm/setup-graalvm@v1 + with: + java-version: "17" + distribution: "liberica" + native-image-job-reports: true + cache: gradle + cache-dependency-path: | + xtracfg/*.gradle* + xtracfg/**/gradle-wrapper.properties + - name: native-image + working-directory: ./xtracfg + run: | + ./gradlew nativeCompile -PLIB=true + - name: log + run: | + ls -l ./build + - name: wrapper + run: | + ./build.sh + - name: log2 + run: | + ls -l ./build + - uses: actions/upload-artifact@v4 + with: + name: libxtracfg-${{ matrix.os.platform }} + path: ./libxtracfg/c/build/libxtracfg.a + retention-days: 1 diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index d548523..44930f6 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -53,6 +53,12 @@ jobs: - name: log2 run: | ls -lR ./build/native/nativeCompile + - uses: docker://backplane/upx:latest + with: + args: upx --best xtracfg/build/native/nativeCompile/xtracfg + - name: log3 + run: | + ls -lR ./build/native/nativeCompile - uses: actions/upload-artifact@v4 with: name: ${{ matrix.os.platform }} diff --git a/libxtracfg/c/README.md b/libxtracfg/c/README.md new file mode 100644 index 0000000..41d1792 --- /dev/null +++ b/libxtracfg/c/README.md @@ -0,0 +1 @@ +# xtracfg C library diff --git a/libxtracfg/c/build.sh b/libxtracfg/c/build.sh new file mode 100755 index 0000000..486b82c --- /dev/null +++ b/libxtracfg/c/build.sh @@ -0,0 +1,28 @@ +#!/bin/sh + +OUT_DIR=build +PLATFORM=$(uname -s | tr '[:upper:]' '[:lower:]' ) +EXT=$([ "$PLATFORM" = "darwin" ] && echo "dylib" || echo "so") + +mkdir -p ${OUT_DIR} + +cd ${OUT_DIR} + +echo "lib" + +# shared +#clang -shared -fpic -Wall -I./ -L./ -I$JAVA_HOME/include -I$JAVA_HOME/include/${PLATFORM} -lxtracfgjni -o libxtracfg.${EXT} ../wrapper/libxtracfg.c + +# static +clang -c -Wall -I./ -I$JAVA_HOME/include -I$JAVA_HOME/include/${PLATFORM} -o libxtracfg.o ../wrapper/libxtracfg.c +cp libxtracfgjni.a libxtracfg.a +ar -rv libxtracfg.a libxtracfg.o + +echo "test" + +# shared +#clang -I./ -L./ -lxtracfgjni -lxtracfg -o test ../test/main.c + +# static +clang -I./ -L./ -Wl,-framework,CoreServices -ldl -lpthread -Wl,-framework,Foundation -o test ../test/main.c ./libxtracfg.a + diff --git a/libxtracfg/c/include/libxtracfg.h b/libxtracfg/c/include/libxtracfg.h new file mode 100644 index 0000000..2df68ee --- /dev/null +++ b/libxtracfg/c/include/libxtracfg.h @@ -0,0 +1 @@ +char* xtracfg_execute(const char* command, int* err); diff --git a/libxtracfg/c/native-image/static-compiler-darwin.sh b/libxtracfg/c/native-image/static-compiler-darwin.sh new file mode 100755 index 0000000..363e3d3 --- /dev/null +++ b/libxtracfg/c/native-image/static-compiler-darwin.sh @@ -0,0 +1,77 @@ +#!/bin/bash +# see https://github.com/oracle/graal/issues/3053#issuecomment-1866735057 +# This script intercepts compiler arguments from graalvm native shared images +# and additionally generates a static library. The script was tested with +# GraalVM jdk21+35.1 on macOS and may need to be modified for other versions. +# +# Use with --native-compiler-path=${pathToThisScript} + +# Determine the project name and output path based on the output .dylib argument +for arg in "$@"; do + if [[ "$arg" == *.dylib ]]; then + OUTPUT_PATH=$(dirname "$arg") + LIB_NAME=$(basename "${arg%.dylib}") + break + fi +done + +# Do a simple forward for any calls that are used to compile individual C files +if [[ -z $LIB_NAME ]]; then + cc $* + exit 0 +fi + +# Create a debug log in $output/logs +LOG_PATH="${OUTPUT_PATH}/logs" +LOG_FILE="${LOG_PATH}/compiler_commands.txt" +mkdir -p $LOG_PATH + +WORKINGDIR=${PWD} +echo "Working directory: ${WORKINGDIR}" > ${LOG_FILE} +echo "Output path: ${OUTPUT_PATH}" >> ${LOG_FILE} +echo "Library name: ${LIB_NAME}" >> ${LOG_FILE} + +echo "=====================================================" >> ${LOG_FILE} +echo " SHARED LIBRARY " >> ${LOG_FILE} +echo "=====================================================" >> ${LOG_FILE} +# Modify the arguments if needed +CC_ARGS=$* +echo "cc $CC_ARGS" >> ${LOG_FILE} +cc $CC_ARGS + +echo "=====================================================" >> ${LOG_FILE} +echo " STATIC LIBRARY " >> ${LOG_FILE} +echo "=====================================================" >> ${LOG_FILE} +# To create a single static library on macos we need to call 'ar -r' on all .o files. +# In order to also include all static library dependencies, we can first extract the +# .o files and then include them as well. +echo "======= Source archives" >> ${LOG_FILE} +OBJECTS=${OUTPUT_PATH}/objects +rm -rf ${OBJECTS} +mkdir ${OBJECTS} +AR_ARGS="-rcs ${OUTPUT_PATH}/${LIB_NAME}.a ${OBJECTS}/*.o" +for arg in $* +do + if [[ $arg =~ .*\.(a)$ ]]; then + # extract the objects (.o) of each archive (.a) into + # separate directories to avoid naming collisions + echo "$arg" >> ${LOG_FILE} + ARCHIVE_DIR=${OBJECTS}/$(basename "${arg%.a}") + mkdir ${ARCHIVE_DIR} + cp $arg ${ARCHIVE_DIR} + cd ${ARCHIVE_DIR} + ar -x $arg + cd ${WORKINGDIR} + AR_ARGS+=" ${ARCHIVE_DIR}/*.o" + fi + if [[ $arg =~ .*\.(o)$ ]]; then + cp $arg ${OBJECTS} + fi +done + +echo "======= Objects" >> ${LOG_FILE} +find ${OBJECTS} -name "*.o" >> ${LOG_FILE} + +echo "======= Archive command" >> ${LOG_FILE} +echo "ar $AR_ARGS" >> ${LOG_FILE} +ar $AR_ARGS diff --git a/libxtracfg/c/native-image/static-compiler-linux.sh b/libxtracfg/c/native-image/static-compiler-linux.sh new file mode 100755 index 0000000..a8787a8 --- /dev/null +++ b/libxtracfg/c/native-image/static-compiler-linux.sh @@ -0,0 +1,96 @@ +#!/bin/bash +# see https://github.com/oracle/graal/issues/3053#issuecomment-1866735057 +# This script intercepts compiler arguments from graalvm native shared images and can replace +# select dynamically linked libraries with statically linked ones. The script was tested with +# GraalVM jdk21.0.1+12.1 on Ubuntu and may need to be modified for other versions. +# +# Use with --native-compiler-path=${pathToThisScript}.sh + +# Determine the project name and output path based on the output .so argument +for arg in "$@"; do + if [[ "$arg" == *.so ]]; then + OUTPUT_PATH=$(dirname "$arg") + LIB_NAME=$(basename "${arg%.so}") + break + fi +done + +# Do a simple forward for any calls that are used to compile individual C files +if [[ -z $LIB_NAME ]]; then + gcc $* + exit 0 +fi + +# Create a debug log in $output/logs +LOG_PATH="${OUTPUT_PATH}/logs" +LOG_FILE="${LOG_PATH}/compiler_commands.txt" +mkdir -p $LOG_PATH + +WORKINGDIR=${PWD} +echo "Working directory: ${WORKINGDIR}" > ${LOG_FILE} +echo "Output path: ${OUTPUT_PATH}" >> ${LOG_FILE} +echo "Library name: ${LIB_NAME}" >> ${LOG_FILE} + +echo "=====================================================" >> ${LOG_FILE} +echo " ORIGINAL ARGS " >> ${LOG_FILE} +echo "=====================================================" >> ${LOG_FILE} +echo "$*" >> ${LOG_FILE} + +echo "=====================================================" >> ${LOG_FILE} +echo " SHARED LIBRARY WITH STATIC LIBS " >> ${LOG_FILE} +echo "=====================================================" >> ${LOG_FILE} +# Path to the system library files +ARCH=$(uname -m) +STATIC_LIBS_PATH="/usr/lib/${ARCH}-linux-gnu" + +# Do the original call, but replace dynamic libs with static versions +GCC_ARGS="" +for arg in "$@" +do + if [ "$arg" = "-lz" ] + then + GCC_ARGS+=" ${STATIC_LIBS_PATH}/libz.a" + else + GCC_ARGS+=" $arg" + fi +done + +echo "gcc $GCC_ARGS" >> ${LOG_FILE} +gcc $GCC_ARGS + +echo "=====================================================" >> ${LOG_FILE} +echo " STATIC LIBRARY " >> ${LOG_FILE} +echo "=====================================================" >> ${LOG_FILE} +# To create a single static library on linux we need to call 'ar -r' on all .o files. +# In order to also include all static library dependencies, we can first extract the +# .o files and then include them as well. +echo "======= Source archives" >> ${LOG_FILE} +OBJECTS=${OUTPUT_PATH}/objects +rm -rf ${OBJECTS} +mkdir ${OBJECTS} +AR_ARGS="-rcs ${OUTPUT_PATH}/${LIB_NAME}.a ${OBJECTS}/*.o" +for arg in $GCC_ARGS +do + if [[ $arg =~ .*\.(a)$ ]]; then + # extract the objects (.o) of each archive (.a) into + # separate directories to avoid naming collisions + echo "$arg" >> ${LOG_FILE} + ARCHIVE_DIR=${OBJECTS}/$(basename "${arg%.a}") + mkdir ${ARCHIVE_DIR} + cp $arg ${ARCHIVE_DIR} + cd ${ARCHIVE_DIR} + ar -x $arg + cd ${WORKINGDIR} + AR_ARGS+=" ${ARCHIVE_DIR}/*.o" + fi + if [[ $arg =~ .*\.(o)$ ]]; then + cp $arg ${OBJECTS} + fi +done + +echo "======= Objects" >> ${LOG_FILE} +find ${OBJECTS} -name "*.o" >> ${LOG_FILE} + +echo "======= Archive command" >> ${LOG_FILE} +echo "ar $AR_ARGS" >> ${LOG_FILE} +ar $AR_ARGS diff --git a/libxtracfg/c/test/main.c b/libxtracfg/c/test/main.c new file mode 100644 index 0000000..bb16dca --- /dev/null +++ b/libxtracfg/c/test/main.c @@ -0,0 +1,26 @@ + #include + #include + + #include "../include/libxtracfg.h" + + int main(int argc, char **argv) { + if (argc != 2) { + fprintf(stderr, "Usage: %s \n", argv[0]); + fprintf(stderr, "Example: %s '{\"command\": \"info\", \"source\": \"/Users/az/development/configs-ldproxy/embed\"}'\n", argv[0]); + exit(1); + } + + int err = 0; + char *result = xtracfg_execute( argv[1], &err); + + if (err > 0) { + fprintf(stderr, "Unexpected error: %s\n", result); + free(result); + exit(1); + } + + printf("%s\n", result); + + free(result); + } + diff --git a/libxtracfg/c/wrapper/libxtracfg.c b/libxtracfg/c/wrapper/libxtracfg.c new file mode 100644 index 0000000..8f485e0 --- /dev/null +++ b/libxtracfg/c/wrapper/libxtracfg.c @@ -0,0 +1,48 @@ +#include +#include +#include +#include + +char* xtracfg_execute(const char* command, int* err) { + JavaVM *jvm; + JNIEnv *env; + JavaVMInitArgs vm_args; + JavaVMOption options[0]; + vm_args.version = JNI_VERSION_10; + vm_args.nOptions = 0; + vm_args.options = options; + vm_args.ignoreUnrecognized = 0; + + jint res = JNI_CreateJavaVM(&jvm, (void**)&env, &vm_args); + if (JNI_OK != res) { + printf("ERR\n"); + *err = 1; + return "Could not create JVM"; + } + + jclass cls = (*env)->FindClass(env, "de/ii/xtraplatform/cli/CommandHandler"); + jmethodID cid = (*env)->GetMethodID(env, cls, "", "()V"); + jmethodID mid = (*env)->GetMethodID(env, cls, "handleCommand", "(Ljava/lang/String;)Ljava/lang/String;"); + + //printf("JVM %d %d %d\n", cls, cid, mid); + + jobject ch = (*env)->NewObject(env, cls, cid); + + jstring command2 = (*env)->NewStringUTF(env, command); + + jstring result2 = (jstring)(*env)->CallObjectMethod(env, ch, mid, command2); + + (*env)->DeleteLocalRef(env, command2); + + const char* result = (*env)->GetStringUTFChars(env, result2, NULL); + + char *result3 = malloc(strlen(result) + 1); + strcpy(result3,result); + //printf("%s", result3); + + (*jvm)->DestroyJavaVM(jvm); + + *err = 0; + return result3; + } + diff --git a/xtracfg/build.gradle b/xtracfg/build.gradle index 37167b2..5971ea5 100644 --- a/xtracfg/build.gradle +++ b/xtracfg/build.gradle @@ -1,9 +1,15 @@ plugins { id 'application' id 'org.graalvm.buildtools.native' version '0.9.22' + id "com.google.osdetector" version "1.7.3" id "org.gretty" version "3.0.5" apply false } +ext { + targetos = osdetector.os.replace('osx', 'darwin') + targetarch = osdetector.arch.replace('x86_64', 'amd64').replace('aarch_64', 'arm64') +} + group = 'de.interactive_instruments' version = '1.0.0' @@ -41,14 +47,25 @@ graalvmNative { enableExperimentalPredefinedClasses = true }*/ binaries.all { - imageName = "xtracfg" verbose = true fallback = false quickBuild = false richOutput = true - //sharedLibrary = true requiredVersion = '22.3' + if (project.hasProperty('LIB')) { + imageName = "libxtracfgjni" + sharedLibrary = true + buildArgs("--native-compiler-path=${project.projectDir}/../libxtracfg/c/native-image/static-compiler-${targetos}.sh") + buildArgs('-O3') + //TODO JDK 23 test buildArgs("-Os") + } else { + imageName = "xtracfg" + // for statically linking xtracfg + buildArgs('--features=de.ii.xtraplatform.cli.NativeFeature') + buildArgs("-H:CLibraryPath=${project.projectDir}/dist") + } + //buildArgs("--module-path", "${buildDir}/install/ldproxy/lib") //buildArgs("--module", application.mainModule.get()) //buildArgs("--enable-http") @@ -62,10 +79,10 @@ graalvmNative { //buildArgs('-H:-UseServiceLoaderFeature') //resources.autodetect() - if (project.hasProperty('STATIC')) { - // makes sense??? + if (!project.hasProperty('LIB') && targetos == 'linux') { buildArgs('-H:+StaticExecutableWithDynamicLibC') - } else { + } + if (targetos == 'darwin') { buildArgs('--native-compiler-options=-Wl,-framework,Security') } @@ -73,8 +90,7 @@ graalvmNative { //buildArgs('-H:+PrintClassInitialization') //buildArgs("--allow-incomplete-classpath") - // for statically linking xtracfg - buildArgs("-H:CLibraryPath=${project.projectDir}/dist") + buildArgs("--add-exports=org.graalvm.nativeimage.builder/com.oracle.svm.core.jdk=ALL-UNNAMED") buildArgs("--add-exports=org.graalvm.nativeimage.builder/com.oracle.svm.hosted=ALL-UNNAMED") buildArgs("--add-exports=org.graalvm.nativeimage.builder/com.oracle.svm.hosted.c=ALL-UNNAMED") @@ -82,6 +98,21 @@ graalvmNative { toolchainDetection = false } +tasks.register('nativeSync', Sync) { + from "${project.buildDir}/native/nativeCompile" + into '../libxtracfg/c/build' +} + +tasks.register('os') { + doLast { + println targetos + "-" + targetarch + } +} + +if (project.hasProperty('LIB')) { + tasks.nativeCompile.finalizedBy tasks.nativeSync +} + if (!project.hasProperty('CI')) { apply from: 'dev.gradle' -} +} \ No newline at end of file diff --git a/xtracfg/src/main/java/de/ii/xtraplatform/cli/NativeFeature.java b/xtracfg/src/main/java/de/ii/xtraplatform/cli/NativeFeature.java index 9b42161..204013b 100644 --- a/xtracfg/src/main/java/de/ii/xtraplatform/cli/NativeFeature.java +++ b/xtracfg/src/main/java/de/ii/xtraplatform/cli/NativeFeature.java @@ -1,23 +1,24 @@ package de.ii.xtraplatform.cli; -import com.oracle.svm.core.annotate.AutomaticFeature; import com.oracle.svm.core.jdk.NativeLibrarySupport; import com.oracle.svm.core.jdk.PlatformNativeLibrarySupport; import com.oracle.svm.hosted.FeatureImpl; import com.oracle.svm.hosted.c.NativeLibraries; import org.graalvm.nativeimage.hosted.Feature; -@AutomaticFeature +// @AutomaticFeature public class NativeFeature implements Feature { - @Override - public void beforeAnalysis(BeforeAnalysisAccess access) { - // Treat "Native" as a built-in library. - NativeLibrarySupport.singleton().preregisterUninitializedBuiltinLibrary("xtracfg"); - // Treat JNI calls in "HelloWorld" as calls to built-in library. - PlatformNativeLibrarySupport.singleton().addBuiltinPkgNativePrefix("de_ii_xtraplatform_cli_Cli"); - NativeLibraries nativeLibraries = ((FeatureImpl.BeforeAnalysisAccessImpl) access).getNativeLibraries(); - // Add "jvm" as a dependency to "Native". - nativeLibraries.addStaticJniLibrary("xtracfg"); - } + @Override + public void beforeAnalysis(BeforeAnalysisAccess access) { + // Treat "Native" as a built-in library. + NativeLibrarySupport.singleton().preregisterUninitializedBuiltinLibrary("xtracfg"); + // Treat JNI calls in "HelloWorld" as calls to built-in library. + PlatformNativeLibrarySupport.singleton() + .addBuiltinPkgNativePrefix("de_ii_xtraplatform_cli_Cli"); + NativeLibraries nativeLibraries = + ((FeatureImpl.BeforeAnalysisAccessImpl) access).getNativeLibraries(); + // Add "jvm" as a dependency to "Native". + nativeLibraries.addStaticJniLibrary("xtracfg"); + } } diff --git a/xtracfg/src/main/resources/META-INF/native-image/jni-config.json b/xtracfg/src/main/resources/META-INF/native-image/jni-config.json index 2249e6c..4dea2e8 100644 --- a/xtracfg/src/main/resources/META-INF/native-image/jni-config.json +++ b/xtracfg/src/main/resources/META-INF/native-image/jni-config.json @@ -1,7 +1,11 @@ [ { "name":"de.ii.xtraplatform.cli.CommandHandler", - "methods":[{"name":"handleCommand","parameterTypes":["java.lang.String", "de.ii.xtraplatform.cli.Progress"] }] + "methods":[ + { "name" : "", "parameterTypes" : [] }, + {"name":"handleCommand","parameterTypes":["java.lang.String"] }, + {"name":"handleCommand","parameterTypes":["java.lang.String", "de.ii.xtraplatform.cli.Progress"] } + ] }, { "name":"java.lang.Boolean", From bb8b6aa1a49287daec25080b1ad1921723f34013 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Fri, 11 Oct 2024 10:32:49 +0200 Subject: [PATCH 002/167] c library --- .github/workflows/libxtracfg.yml | 8 ++++---- libxtracfg/c/build.sh | 5 ++++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/libxtracfg.yml b/.github/workflows/libxtracfg.yml index 7f6d64b..09498d7 100644 --- a/.github/workflows/libxtracfg.yml +++ b/.github/workflows/libxtracfg.yml @@ -1,4 +1,4 @@ -name: xtracfg +name: libxtracfg on: [push] @@ -7,9 +7,9 @@ jobs: strategy: matrix: os: - - runner: ubuntu-latest - type: linux - platform: linux-amd64 + #- runner: ubuntu-latest + # type: linux + # platform: linux-amd64 #- runner: buildjet-2vcpu-ubuntu-2204-arm # type: linux # platform: linux-arm64 diff --git a/libxtracfg/c/build.sh b/libxtracfg/c/build.sh index 486b82c..c32c8ad 100755 --- a/libxtracfg/c/build.sh +++ b/libxtracfg/c/build.sh @@ -24,5 +24,8 @@ echo "test" #clang -I./ -L./ -lxtracfgjni -lxtracfg -o test ../test/main.c # static +if [ "$PLATFORM" = "darwin" ]; then clang -I./ -L./ -Wl,-framework,CoreServices -ldl -lpthread -Wl,-framework,Foundation -o test ../test/main.c ./libxtracfg.a - +else +clang -I./ -L./ -ldl -lpthread -o test ../test/main.c ./libxtracfg.a +fi From 00bd7d91ff115257fd7c213f115c635348c230d3 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Fri, 11 Oct 2024 10:51:33 +0200 Subject: [PATCH 003/167] js lib --- libxtracfg/js/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 libxtracfg/js/README.md diff --git a/libxtracfg/js/README.md b/libxtracfg/js/README.md new file mode 100644 index 0000000..f8b1b1b --- /dev/null +++ b/libxtracfg/js/README.md @@ -0,0 +1 @@ +# xtracfg JS library From 326f2486ee29c57a23d742504897f97821583016 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Fri, 11 Oct 2024 13:56:44 +0200 Subject: [PATCH 004/167] fix c header --- libxtracfg/c/include/libxtracfg.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/libxtracfg/c/include/libxtracfg.h b/libxtracfg/c/include/libxtracfg.h index 2df68ee..daa9894 100644 --- a/libxtracfg/c/include/libxtracfg.h +++ b/libxtracfg/c/include/libxtracfg.h @@ -1 +1,8 @@ -char* xtracfg_execute(const char* command, int* err); + +#ifdef __cplusplus +extern "C" { +#endif + char* xtracfg_execute(const char* command, int* err); +#ifdef __cplusplus +} +#endif From 79c2aae8d111ec6f6bb7f87e86dd27303ca465ac Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Fri, 11 Oct 2024 14:21:02 +0200 Subject: [PATCH 005/167] fix build --- .github/workflows/libxtracfg.yml | 2 +- libxtracfg/c/build.sh | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/libxtracfg.yml b/.github/workflows/libxtracfg.yml index 09498d7..eec9541 100644 --- a/.github/workflows/libxtracfg.yml +++ b/.github/workflows/libxtracfg.yml @@ -24,7 +24,7 @@ jobs: - uses: actions/checkout@v4 - uses: graalvm/setup-graalvm@v1 with: - java-version: "17" + java-version: "17.0.12" distribution: "liberica" native-image-job-reports: true cache: gradle diff --git a/libxtracfg/c/build.sh b/libxtracfg/c/build.sh index c32c8ad..fd3e65d 100755 --- a/libxtracfg/c/build.sh +++ b/libxtracfg/c/build.sh @@ -4,6 +4,8 @@ OUT_DIR=build PLATFORM=$(uname -s | tr '[:upper:]' '[:lower:]' ) EXT=$([ "$PLATFORM" = "darwin" ] && echo "dylib" || echo "so") +echo "platform: ${PLATFORM}" + mkdir -p ${OUT_DIR} cd ${OUT_DIR} From d2737741403d29fc5ae2e4b476da7e223ede0c82 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Fri, 11 Oct 2024 14:32:30 +0200 Subject: [PATCH 006/167] fix build --- .github/workflows/libxtracfg.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/libxtracfg.yml b/.github/workflows/libxtracfg.yml index eec9541..6c4180b 100644 --- a/.github/workflows/libxtracfg.yml +++ b/.github/workflows/libxtracfg.yml @@ -24,8 +24,8 @@ jobs: - uses: actions/checkout@v4 - uses: graalvm/setup-graalvm@v1 with: - java-version: "17.0.12" - distribution: "liberica" + java-version: "17" + distribution: "graalvm" native-image-job-reports: true cache: gradle cache-dependency-path: | From 7dbfb45e051d346e56629a2609d93b013530beb0 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Fri, 11 Oct 2024 15:02:02 +0200 Subject: [PATCH 007/167] fix build --- libxtracfg/c/build.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libxtracfg/c/build.sh b/libxtracfg/c/build.sh index fd3e65d..7199bfd 100755 --- a/libxtracfg/c/build.sh +++ b/libxtracfg/c/build.sh @@ -5,6 +5,8 @@ PLATFORM=$(uname -s | tr '[:upper:]' '[:lower:]' ) EXT=$([ "$PLATFORM" = "darwin" ] && echo "dylib" || echo "so") echo "platform: ${PLATFORM}" +echo $(whereis ar) +echo $(clang --version) mkdir -p ${OUT_DIR} From 77ef61dfc837a9135817241ebc8413ab520d9fa9 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sat, 12 Oct 2024 11:23:37 +0200 Subject: [PATCH 008/167] fix build --- xtracfg/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xtracfg/build.gradle b/xtracfg/build.gradle index 5971ea5..05f55b8 100644 --- a/xtracfg/build.gradle +++ b/xtracfg/build.gradle @@ -1,6 +1,6 @@ plugins { id 'application' - id 'org.graalvm.buildtools.native' version '0.9.22' + id 'org.graalvm.buildtools.native' version '0.10.3' id "com.google.osdetector" version "1.7.3" id "org.gretty" version "3.0.5" apply false } @@ -31,7 +31,7 @@ dependencies { // use this instead for debugging purposes //implementation group: 'org.slf4j', name: 'slf4j-simple', version: '1.7.35' - compileOnly group: 'org.graalvm.nativeimage', name: 'svm', version: '22.3.2' + compileOnly group: 'org.graalvm.nativeimage', name: 'svm', version: '22.3.5' } application { From d41b764d3cd5488f27ce7e391bf465d8b3f2c493 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sat, 12 Oct 2024 12:02:00 +0200 Subject: [PATCH 009/167] fix build --- .github/workflows/libxtracfg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/libxtracfg.yml b/.github/workflows/libxtracfg.yml index 6c4180b..8a6146a 100644 --- a/.github/workflows/libxtracfg.yml +++ b/.github/workflows/libxtracfg.yml @@ -24,7 +24,7 @@ jobs: - uses: actions/checkout@v4 - uses: graalvm/setup-graalvm@v1 with: - java-version: "17" + java-version: "21" distribution: "graalvm" native-image-job-reports: true cache: gradle From 20f1073b3f98c66aa4cbf9a53c38129f0fa2010a Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sat, 12 Oct 2024 12:09:07 +0200 Subject: [PATCH 010/167] fix build --- libxtracfg/c/build.sh | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/libxtracfg/c/build.sh b/libxtracfg/c/build.sh index 7199bfd..84c8ad2 100755 --- a/libxtracfg/c/build.sh +++ b/libxtracfg/c/build.sh @@ -4,10 +4,6 @@ OUT_DIR=build PLATFORM=$(uname -s | tr '[:upper:]' '[:lower:]' ) EXT=$([ "$PLATFORM" = "darwin" ] && echo "dylib" || echo "so") -echo "platform: ${PLATFORM}" -echo $(whereis ar) -echo $(clang --version) - mkdir -p ${OUT_DIR} cd ${OUT_DIR} @@ -29,7 +25,7 @@ echo "test" # static if [ "$PLATFORM" = "darwin" ]; then -clang -I./ -L./ -Wl,-framework,CoreServices -ldl -lpthread -Wl,-framework,Foundation -o test ../test/main.c ./libxtracfg.a +#clang -I./ -L./ -Wl,-framework,CoreServices -ldl -lpthread -Wl,-framework,Foundation -o test ../test/main.c ./libxtracfg.a else clang -I./ -L./ -ldl -lpthread -o test ../test/main.c ./libxtracfg.a fi From b39c984d933cb7a5a4fc3e6c87c9d4c4a1c4d7fa Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sat, 12 Oct 2024 12:16:24 +0200 Subject: [PATCH 011/167] fix build --- libxtracfg/c/build.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/libxtracfg/c/build.sh b/libxtracfg/c/build.sh index 84c8ad2..8477773 100755 --- a/libxtracfg/c/build.sh +++ b/libxtracfg/c/build.sh @@ -26,6 +26,7 @@ echo "test" # static if [ "$PLATFORM" = "darwin" ]; then #clang -I./ -L./ -Wl,-framework,CoreServices -ldl -lpthread -Wl,-framework,Foundation -o test ../test/main.c ./libxtracfg.a +echo "test temporarily disabled on macOS" else clang -I./ -L./ -ldl -lpthread -o test ../test/main.c ./libxtracfg.a fi From ec7f1256f62d55736411bdee0fc2ed4b671a68e6 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sat, 12 Oct 2024 13:29:41 +0200 Subject: [PATCH 012/167] fix build --- xtracfg/build.gradle | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/xtracfg/build.gradle b/xtracfg/build.gradle index 05f55b8..35965e2 100644 --- a/xtracfg/build.gradle +++ b/xtracfg/build.gradle @@ -31,7 +31,8 @@ dependencies { // use this instead for debugging purposes //implementation group: 'org.slf4j', name: 'slf4j-simple', version: '1.7.35' - compileOnly group: 'org.graalvm.nativeimage', name: 'svm', version: '22.3.5' + // 24.x is for JDK 21 + compileOnly group: 'org.graalvm.nativeimage', name: 'svm', version: '24.1.0' } application { @@ -51,14 +52,16 @@ graalvmNative { fallback = false quickBuild = false richOutput = true - requiredVersion = '22.3' + //requiredVersion = '22.3' if (project.hasProperty('LIB')) { imageName = "libxtracfgjni" sharedLibrary = true buildArgs("--native-compiler-path=${project.projectDir}/../libxtracfg/c/native-image/static-compiler-${targetos}.sh") - buildArgs('-O3') - //TODO JDK 23 test buildArgs("-Os") + buildArgs('-march=native') + buildArgs('-O2') //TODO -O3 image is 50% larger than -O2, test -Os with JDK 23 + //buildArgs('--pgo') see https://www.graalvm.org/latest/reference-manual/native-image/optimizations-and-performance/PGO/ + } else { imageName = "xtracfg" // for statically linking xtracfg From 0f928cd22d03dca284cc3d43583605961a47d03f Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sat, 12 Oct 2024 20:59:39 +0200 Subject: [PATCH 013/167] refactor go --- libxtracfg/c/include/libxtracfg.h | 10 + libxtracfg/c/wrapper/libxtracfg.c | 56 +++- libxtracfg/go/go.mod | 3 + libxtracfg/go/go.sum | 0 .../go/xtracfg}/client.go | 67 ++-- .../go/xtracfg}/response.go | 2 +- xtracfg/client/mock.go | 29 -- xtracfg/cmd/root.go | 6 +- xtracfg/cmd/store/check.go | 17 +- xtracfg/cmd/store/info.go | 7 +- xtracfg/cmd/store/listen.go | 7 +- xtracfg/cmd/store/upgrade.go | 41 +-- xtracfg/go.mod | 25 +- xtracfg/go.sum | 305 +----------------- xtracfg/jni.c | 86 ----- xtracfg/main.go | 43 --- .../java/de/ii/xtraplatform/cli/XtraCfg.java | 13 + .../META-INF/native-image/jni-config.json | 12 +- xtracfg/{client => util}/console.go | 15 +- xtracfg/{client => util}/server.go | 11 +- 20 files changed, 196 insertions(+), 559 deletions(-) create mode 100644 libxtracfg/go/go.mod create mode 100644 libxtracfg/go/go.sum rename {xtracfg/client => libxtracfg/go/xtracfg}/client.go (76%) rename {xtracfg/client => libxtracfg/go/xtracfg}/response.go (99%) delete mode 100644 xtracfg/client/mock.go delete mode 100644 xtracfg/jni.c rename xtracfg/{client => util}/console.go (80%) rename xtracfg/{client => util}/server.go (90%) diff --git a/libxtracfg/c/include/libxtracfg.h b/libxtracfg/c/include/libxtracfg.h index daa9894..bbaa54f 100644 --- a/libxtracfg/c/include/libxtracfg.h +++ b/libxtracfg/c/include/libxtracfg.h @@ -1,8 +1,18 @@ #ifdef __cplusplus extern "C" { + #endif + typedef void (*progress_callback) (const char* msg); + + int xtracfg_init(); + + void xtracfg_cleanup(); + + void xtracfg_progress_subscribe(progress_callback progress_cb); + char* xtracfg_execute(const char* command, int* err); + #ifdef __cplusplus } #endif diff --git a/libxtracfg/c/wrapper/libxtracfg.c b/libxtracfg/c/wrapper/libxtracfg.c index 8f485e0..b8a7d94 100644 --- a/libxtracfg/c/wrapper/libxtracfg.c +++ b/libxtracfg/c/wrapper/libxtracfg.c @@ -2,10 +2,23 @@ #include #include #include +#include "../include/libxtracfg.h" -char* xtracfg_execute(const char* command, int* err) { - JavaVM *jvm; - JNIEnv *env; +JavaVM *jvm = NULL; +JNIEnv *env = NULL; +progress_callback progress_cb = NULL; + +// called from java with progress, pass to callback +JNIEXPORT void JNICALL Java_de_ii_xtraplatform_cli_Cli_00024NativeProgress_update + (JNIEnv *env2, jobject obj, jstring update) { + if (progress_cb != NULL) { + const char* msg = (*env)->GetStringUTFChars(env, update, NULL); + + progress_cb(msg); + } + } + +int xtracfg_init() { JavaVMInitArgs vm_args; JavaVMOption options[0]; vm_args.version = JNI_VERSION_10; @@ -14,23 +27,39 @@ char* xtracfg_execute(const char* command, int* err) { vm_args.ignoreUnrecognized = 0; jint res = JNI_CreateJavaVM(&jvm, (void**)&env, &vm_args); + if (JNI_OK != res) { printf("ERR\n"); - *err = 1; - return "Could not create JVM"; + return 1; + } + + return 0; +} + +void xtracfg_cleanup() { + if (jvm != NULL) { + (*jvm)->DestroyJavaVM(jvm); } +} - jclass cls = (*env)->FindClass(env, "de/ii/xtraplatform/cli/CommandHandler"); - jmethodID cid = (*env)->GetMethodID(env, cls, "", "()V"); - jmethodID mid = (*env)->GetMethodID(env, cls, "handleCommand", "(Ljava/lang/String;)Ljava/lang/String;"); +void xtracfg_progress_subscribe(progress_callback callback) { + progress_cb = callback; +} - //printf("JVM %d %d %d\n", cls, cid, mid); +char* xtracfg_execute(const char* command, int* err) { + if (jvm == NULL || env == NULL) { + printf("ERR\n"); + *err = 1; + return "Not intialized"; + } - jobject ch = (*env)->NewObject(env, cls, cid); + jclass cls = (*env)->FindClass(env, "de/ii/xtraplatform/cli/XtraCfg"); + jmethodID mid = (*env)->GetStaticMethodID(env, cls, "execute", "(Ljava/lang/String;)Ljava/lang/String;"); + //printf("JVM %d %d\n", cls, mid); jstring command2 = (*env)->NewStringUTF(env, command); - jstring result2 = (jstring)(*env)->CallObjectMethod(env, ch, mid, command2); + jstring result2 = (jstring)(*env)->CallStaticObjectMethod(env, cls, mid, command2); (*env)->DeleteLocalRef(env, command2); @@ -38,11 +67,8 @@ char* xtracfg_execute(const char* command, int* err) { char *result3 = malloc(strlen(result) + 1); strcpy(result3,result); - //printf("%s", result3); - - (*jvm)->DestroyJavaVM(jvm); + //printf("%s", result3);D"); *err = 0; return result3; } - diff --git a/libxtracfg/go/go.mod b/libxtracfg/go/go.mod new file mode 100644 index 0000000..5134f27 --- /dev/null +++ b/libxtracfg/go/go.mod @@ -0,0 +1,3 @@ +module github.com/interactive-instruments/xtraplatform-cli/libxtracfg/go + +go 1.23.2 diff --git a/libxtracfg/go/go.sum b/libxtracfg/go/go.sum new file mode 100644 index 0000000..e69de29 diff --git a/xtracfg/client/client.go b/libxtracfg/go/xtracfg/client.go similarity index 76% rename from xtracfg/client/client.go rename to libxtracfg/go/xtracfg/client.go index 615da99..383bc95 100644 --- a/xtracfg/client/client.go +++ b/libxtracfg/go/xtracfg/client.go @@ -1,4 +1,15 @@ -package client +package xtracfg + +/* +#cgo CFLAGS: -I ../../c/include +#cgo LDFLAGS: -L../../c/build -lxtracfg -framework CoreServices -framework Foundation + +#include +#include "libxtracfg.h" + +void progress(char *msg); +*/ +import "C" import ( "encoding/json" @@ -6,30 +17,47 @@ import ( "path/filepath" "strconv" "strings" + "unsafe" ) -type CommandHandler func(command string) string - // Store is type Store struct { source *string driver *string verbose *bool debug *bool - progress *chan string + Progress *chan string } -var handle CommandHandler -var progress chan string +var progress_chan chan string + +//export progress +func progress(msg *C.char) { + progress_chan <- C.GoString(msg) +} + +func xtracfg_init() { + progress_chan = make(chan string, 16) + /*go func() { + for { + msg, more := <-progress_chan + if !more { + return + } + + log.Println("PROGRESS", msg) + } + }()*/ + + C.xtracfg_init() + C.xtracfg_progress_subscribe((C.progress_callback)(unsafe.Pointer(C.progress))) +} // New is func New(source *string, driver *string, verbose *bool, debug *bool) *Store { - return &Store{source: source, driver: driver, debug: debug, verbose: verbose, progress: &progress} -} + xtracfg_init() -func Init(handle_command CommandHandler, progress_chan chan string) { - handle = handle_command - progress = progress_chan + return &Store{source: source, driver: driver, debug: debug, verbose: verbose, Progress: &progress_chan} } // Label is @@ -69,7 +97,7 @@ func (store Store) Connect() error { if err == nil { if *store.verbose { - PrintResults(*response.Results, err) + //PrintResults(*response.Results, err) // fmt.Printf("Connected to store source %s\n\n", store.Label()) } return nil @@ -142,7 +170,10 @@ func (store Store) Request(request []byte) (response []byte) { fmt.Println("->", request2) } - response = requestC(request2) + var err C.int + r := C.xtracfg_execute(C.CString(request2), &err) + response = []byte(C.GoString(r)) + C.free(unsafe.Pointer(r)) if *store.debug { fmt.Println("<-", string(response)) @@ -150,13 +181,3 @@ func (store Store) Request(request []byte) (response []byte) { return response } - -func requestC(command string) (response []byte) { - if handle == nil { - handle = mockHandler - } - - response = []byte(handle(command)) - - return response -} diff --git a/xtracfg/client/response.go b/libxtracfg/go/xtracfg/response.go similarity index 99% rename from xtracfg/client/response.go rename to libxtracfg/go/xtracfg/response.go index 1773588..f862beb 100644 --- a/xtracfg/client/response.go +++ b/libxtracfg/go/xtracfg/response.go @@ -1,4 +1,4 @@ -package client +package xtracfg import ( "encoding/json" diff --git a/xtracfg/client/mock.go b/xtracfg/client/mock.go deleted file mode 100644 index 8781622..0000000 --- a/xtracfg/client/mock.go +++ /dev/null @@ -1,29 +0,0 @@ -package client - -import "fmt" - -func mockHandler(command string) string { - fmt.Printf("MOCK JNI Command: %s\n", command) - - resp := ` - { - "results": [ - { - "status": "ERROR", - "message": "Doh!" - }, - { - "status": "WARNING", - "message": "Doh!" - }, - { - "status": "SUCCESS", - "message": "Doh!" - } - ] - }` - - fmt.Printf("MOCK JNI Result: %s\n", resp) - - return resp -} diff --git a/xtracfg/cmd/root.go b/xtracfg/cmd/root.go index 25258bd..d7b66bc 100644 --- a/xtracfg/cmd/root.go +++ b/xtracfg/cmd/root.go @@ -4,7 +4,7 @@ import ( "fmt" "os" - "github.com/interactive-instruments/xtraplatform-cli/xtracfg/client" + "github.com/interactive-instruments/xtraplatform-cli/libxtracfg/go/xtracfg" "github.com/interactive-instruments/xtraplatform-cli/xtracfg/cmd/store" "github.com/spf13/cobra" @@ -25,7 +25,7 @@ func version() string { } var name string = "xtracfg" -var storeSrc client.Store +var storeSrc xtracfg.Store // RootCmd represents the base command when called without any subcommands var RootCmd = &cobra.Command{ @@ -61,7 +61,7 @@ func init() { RootCmd.PersistentFlags().MarkHidden("debug") RootCmd.PersistentFlags().Bool("help", false, "show help") - storeSrc = *client.New(src, typ, verbose, debug) + storeSrc = *xtracfg.New(src, typ, verbose, debug) infoCmd := store.InfoCmd(storeSrc, name, verbose, debug) diff --git a/xtracfg/cmd/store/check.go b/xtracfg/cmd/store/check.go index 912dce9..4b9b4c1 100644 --- a/xtracfg/cmd/store/check.go +++ b/xtracfg/cmd/store/check.go @@ -7,14 +7,15 @@ import ( "strconv" "strings" - "github.com/interactive-instruments/xtraplatform-cli/xtracfg/client" + "github.com/interactive-instruments/xtraplatform-cli/libxtracfg/go/xtracfg" + "github.com/interactive-instruments/xtraplatform-cli/xtracfg/util" "github.com/spf13/cobra" ) var ignoreRedundant *bool // CheckCmd represents the check command -func CheckCmd(store client.Store, name string, verbose *bool, debug *bool) *cobra.Command { +func CheckCmd(store xtracfg.Store, name string, verbose *bool, debug *bool) *cobra.Command { check := &cobra.Command{ Use: "check", Short: "Check the store source", @@ -27,7 +28,7 @@ Executes all subcommands in order, see the subcommand help for details.`, } results, err := store.Handle(map[string]interface{}{"ignoreRedundant": strconv.FormatBool(*ignoreRedundant)}, "check") - client.PrintResults(results, err) + util.PrintResults(results, err) printFix(results, err, name) }, @@ -50,7 +51,7 @@ Executes all subcommands in order, see the subcommand help for details.`, results, err := store.Handle(map[string]interface{}{"ignoreRedundant": strconv.FormatBool(*ignoreRedundant)}, "check", "cfg") - client.PrintResults(results, err) + util.PrintResults(results, err) printFix(results, err, name) }, @@ -84,7 +85,7 @@ To check only a single entity, pass the path to the file relative to the source results, err := store.Handle(map[string]interface{}{"ignoreRedundant": strconv.FormatBool(*ignoreRedundant), "path": path}, "check", "entities") - client.PrintResults(results, err) + util.PrintResults(results, err) printFix(results, err, name) }, @@ -102,7 +103,7 @@ To check only a single entity, pass the path to the file relative to the source results, err := store.Handle(map[string]interface{}{"ignoreRedundant": strconv.FormatBool(*ignoreRedundant)}, "check", "layout") - client.PrintResults(results, err) + util.PrintResults(results, err) printFix(results, err, name) }, @@ -115,8 +116,8 @@ To check only a single entity, pass the path to the file relative to the source return check } -func printFix(results []client.Result, err error, name string) { - if err == nil && client.HasStatus(results, client.Warning) { +func printFix(results []xtracfg.Result, err error, name string) { + if err == nil && xtracfg.HasStatus(results, xtracfg.Warning) { fmt.Fprint(os.Stdout, "\n", "Run '", name, " ", strings.Replace(strings.Join(os.Args[1:], " "), "check", "upgrade", 1), "' to fix all detected issues.", "\n") } else { fmt.Fprint(os.Stdout, "\n") diff --git a/xtracfg/cmd/store/info.go b/xtracfg/cmd/store/info.go index ecdf9e0..c9f4ee3 100644 --- a/xtracfg/cmd/store/info.go +++ b/xtracfg/cmd/store/info.go @@ -1,12 +1,13 @@ package store import ( - "github.com/interactive-instruments/xtraplatform-cli/xtracfg/client" + "github.com/interactive-instruments/xtraplatform-cli/libxtracfg/go/xtracfg" + "github.com/interactive-instruments/xtraplatform-cli/xtracfg/util" "github.com/spf13/cobra" ) // InfoCmd represents the check command -func InfoCmd(store client.Store, name string, verbose *bool, debug *bool) *cobra.Command { +func InfoCmd(store xtracfg.Store, name string, verbose *bool, debug *bool) *cobra.Command { info := &cobra.Command{ Use: "info", Short: "Print info about the store source", @@ -14,7 +15,7 @@ func InfoCmd(store client.Store, name string, verbose *bool, debug *bool) *cobra Run: func(cmd *cobra.Command, args []string) { results, err := store.Handle(map[string]interface{}{}, "info") - client.PrintResults(results, err) + util.PrintResults(results, err) }, } diff --git a/xtracfg/cmd/store/listen.go b/xtracfg/cmd/store/listen.go index a00858c..a497fdd 100644 --- a/xtracfg/cmd/store/listen.go +++ b/xtracfg/cmd/store/listen.go @@ -3,12 +3,13 @@ package store import ( "fmt" - "github.com/interactive-instruments/xtraplatform-cli/xtracfg/client" + "github.com/interactive-instruments/xtraplatform-cli/libxtracfg/go/xtracfg" + "github.com/interactive-instruments/xtraplatform-cli/xtracfg/util" "github.com/spf13/cobra" ) // InfoCmd represents the check command -func ListenCmd(store client.Store, name string, version string, verbose *bool, debug *bool) *cobra.Command { +func ListenCmd(store xtracfg.Store, name string, version string, verbose *bool, debug *bool) *cobra.Command { listen := &cobra.Command{ Use: "listen [port]", Short: "Listen for command on websocket", @@ -20,7 +21,7 @@ func ListenCmd(store client.Store, name string, version string, verbose *bool, d port = ":" + args[0] } fmt.Printf("%s (%s) listening on port %s\n", name, version, port) - client.OpenWebsocket(store, port) + util.OpenWebsocket(store, port) }, } diff --git a/xtracfg/cmd/store/upgrade.go b/xtracfg/cmd/store/upgrade.go index 7d57438..7f6e08f 100644 --- a/xtracfg/cmd/store/upgrade.go +++ b/xtracfg/cmd/store/upgrade.go @@ -6,7 +6,8 @@ import ( "os" "strconv" - "github.com/interactive-instruments/xtraplatform-cli/xtracfg/client" + "github.com/interactive-instruments/xtraplatform-cli/libxtracfg/go/xtracfg" + "github.com/interactive-instruments/xtraplatform-cli/xtracfg/util" "github.com/spf13/cobra" ) @@ -16,7 +17,7 @@ var noConfirm *bool var keepRedundant *bool // Cmd represents the entity command -func UpgradeCmd(store client.Store, name string, verbose *bool, debug *bool) *cobra.Command { +func UpgradeCmd(store xtracfg.Store, name string, verbose *bool, debug *bool) *cobra.Command { upgrade := &cobra.Command{ Use: "upgrade", Short: "Upgrade the store source", @@ -36,13 +37,13 @@ No changes are made without confirmation (unless --yes is set).`, results, err := store.Handle(map[string]interface{}{"ignoreRedundant": strconv.FormatBool(*keepRedundant)}, "pre_upgrade", "cfg") if !*noConfirm { - client.PrintResults(results, err) + util.PrintResults(results, err) } - if client.HasStatus(results, client.Confirmation) { + if xtracfg.HasStatus(results, xtracfg.Confirmation) { results, err = store.Handle(map[string]interface{}{"backup": strconv.FormatBool(*backup), "ignoreRedundant": strconv.FormatBool(*keepRedundant), "noConfirm": strconv.FormatBool(*noConfirm)}, "upgrade", "cfg") - client.PrintResults(results, err) + util.PrintResults(results, err) } fmt.Fprint(os.Stdout, "\n", "Upgrading entities", "\n") @@ -50,13 +51,13 @@ No changes are made without confirmation (unless --yes is set).`, results, err = store.Handle(map[string]interface{}{"force": strconv.FormatBool(*force), "ignoreRedundant": strconv.FormatBool(*keepRedundant)}, "pre_upgrade", "entities") if !*noConfirm { - client.PrintResults(results, err) + util.PrintResults(results, err) } - if client.HasStatus(results, client.Confirmation) { + if xtracfg.HasStatus(results, xtracfg.Confirmation) { results, err = store.Handle(map[string]interface{}{"backup": strconv.FormatBool(*backup), "force": strconv.FormatBool(*force), "ignoreRedundant": strconv.FormatBool(*keepRedundant), "noConfirm": strconv.FormatBool(*noConfirm)}, "upgrade", "entities") - client.PrintResults(results, err) + util.PrintResults(results, err) } fmt.Fprint(os.Stdout, "\n", "Upgrading layout", "\n") @@ -64,13 +65,13 @@ No changes are made without confirmation (unless --yes is set).`, results, err = store.Handle(map[string]interface{}{"ignoreRedundant": strconv.FormatBool(*keepRedundant)}, "pre_upgrade", "layout") if !*noConfirm { - client.PrintResults(results, err) + util.PrintResults(results, err) } - if client.HasStatus(results, client.Confirmation) { + if xtracfg.HasStatus(results, xtracfg.Confirmation) { results, err = store.Handle(map[string]interface{}{"backup": strconv.FormatBool(*backup), "ignoreRedundant": strconv.FormatBool(*keepRedundant), "noConfirm": strconv.FormatBool(*noConfirm)}, "upgrade", "layout") - client.PrintResults(results, err) + util.PrintResults(results, err) } fmt.Fprint(os.Stdout, "\n") @@ -99,13 +100,13 @@ No changes are made without confirmation (unless --yes is set).`, results, err := store.Handle(map[string]interface{}{"ignoreRedundant": strconv.FormatBool(*keepRedundant)}, "pre_upgrade", "cfg") if !*noConfirm { - client.PrintResults(results, err) + util.PrintResults(results, err) } - if client.HasStatus(results, client.Confirmation) { + if xtracfg.HasStatus(results, xtracfg.Confirmation) { results, err = store.Handle(map[string]interface{}{"backup": strconv.FormatBool(*backup), "ignoreRedundant": strconv.FormatBool(*keepRedundant), "noConfirm": strconv.FormatBool(*noConfirm)}, "upgrade", "cfg") - client.PrintResults(results, err) + util.PrintResults(results, err) } fmt.Fprint(os.Stdout, "\n") @@ -142,13 +143,13 @@ No changes are made without confirmation (unless --yes is set).`, results, err := store.Handle(map[string]interface{}{"force": strconv.FormatBool(*force), "ignoreRedundant": strconv.FormatBool(*keepRedundant), "path": path}, "pre_upgrade", "entities") if !*noConfirm { - client.PrintResults(results, err) + util.PrintResults(results, err) } - if client.HasStatus(results, client.Confirmation) { + if xtracfg.HasStatus(results, xtracfg.Confirmation) { results, err = store.Handle(map[string]interface{}{"backup": strconv.FormatBool(*backup), "force": strconv.FormatBool(*force), "ignoreRedundant": strconv.FormatBool(*keepRedundant), "noConfirm": strconv.FormatBool(*noConfirm), "path": path}, "upgrade", "entities") - client.PrintResults(results, err) + util.PrintResults(results, err) } fmt.Fprint(os.Stdout, "\n") @@ -169,13 +170,13 @@ No changes are made without confirmation (unless --yes is set).`, results, err := store.Handle(map[string]interface{}{"ignoreRedundant": strconv.FormatBool(*keepRedundant)}, "pre_upgrade", "layout") if !*noConfirm { - client.PrintResults(results, err) + util.PrintResults(results, err) } - if client.HasStatus(results, client.Confirmation) { + if xtracfg.HasStatus(results, xtracfg.Confirmation) { results, err = store.Handle(map[string]interface{}{"backup": strconv.FormatBool(*backup), "ignoreRedundant": strconv.FormatBool(*keepRedundant), "noConfirm": strconv.FormatBool(*noConfirm)}, "upgrade", "layout") - client.PrintResults(results, err) + util.PrintResults(results, err) } fmt.Fprint(os.Stdout, "\n") diff --git a/xtracfg/go.mod b/xtracfg/go.mod index 17bccc3..bb36a8f 100644 --- a/xtracfg/go.mod +++ b/xtracfg/go.mod @@ -1,13 +1,26 @@ module github.com/interactive-instruments/xtraplatform-cli/xtracfg -go 1.16 +go 1.23.2 require ( - github.com/AlecAivazis/survey/v2 v2.3.7 // indirect + github.com/AlecAivazis/survey/v2 v2.3.7 github.com/fatih/color v1.10.0 - github.com/gorilla/websocket v1.5.1 // indirect - github.com/juju/ansiterm v0.0.0-20180109212912-720a0952cc2a - github.com/julienroland/usg v0.0.0-20160918114137-cb52eabb3d84 // indirect - github.com/lunixbochs/vtclean v1.0.0 // indirect + github.com/gorilla/websocket v1.5.1 + github.com/interactive-instruments/xtraplatform-cli/libxtracfg/go v0.0.0-00010101000000-000000000000 github.com/spf13/cobra v1.7.0 ) + +require ( + github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect + github.com/mattn/go-colorable v0.1.8 // indirect + github.com/mattn/go-isatty v0.0.12 // indirect + github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b // indirect + github.com/spf13/pflag v1.0.5 // indirect + golang.org/x/net v0.17.0 // indirect + golang.org/x/sys v0.13.0 // indirect + golang.org/x/term v0.13.0 // indirect + golang.org/x/text v0.13.0 // indirect +) + +replace github.com/interactive-instruments/xtraplatform-cli/libxtracfg/go => ../libxtracfg/go diff --git a/xtracfg/go.sum b/xtracfg/go.sum index bdfcd08..c2fc8ff 100644 --- a/xtracfg/go.sum +++ b/xtracfg/go.sum @@ -1,366 +1,77 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= -cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= -cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= -cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= -cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= -cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= -cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/AlecAivazis/survey/v2 v2.3.7 h1:6I/u8FvytdGsgonrYsVn2t8t4QiRnh6QSTqkkhIiSjQ= github.com/AlecAivazis/survey/v2 v2.3.7/go.mod h1:xUTIdE4KCOIjsBAE1JYsUPoCqYdZ1reCfTwbto0Fduo= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2 h1:+vx7roKuyA63nhn5WAunQHLTznkw5W8b1Xc0dNjp83s= github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2/go.mod h1:HBCaDeC1lPdgDeDbhX8XFpy1jqjK0IBG8W5K+xYqA0w= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= -github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= -github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/creack/pty v1.1.17 h1:QeVUsEDNrLBW4tMgZHvxy18sKtr6VI492kBhUfhDJNI= github.com/creack/pty v1.1.17/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.10.0 h1:s36xzo75JdqLaaWoiEHk767eHiwo0598uUxyfiPkDsg= github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= -github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= -github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= -github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= -github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= -github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= -github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= -github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= -github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= -github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= -github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= -github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= -github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= -github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= +github.com/hinshun/vt10x v0.0.0-20220119200601-820417d04eec h1:qv2VnGeEQHchGaZ/u7lxST/RaJw+cv273q79D81Xbog= github.com/hinshun/vt10x v0.0.0-20220119200601-820417d04eec/go.mod h1:Q48J4R4DvxnHolD5P8pOtXigYlRuPLGl6moFx3ulM68= -github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= -github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= -github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/juju/ansiterm v0.0.0-20180109212912-720a0952cc2a h1:FaWFmfWdAUKbSCtOU2QjDaorUexogfaMgbipgYATUMU= -github.com/juju/ansiterm v0.0.0-20180109212912-720a0952cc2a/go.mod h1:UJSiEoRfvx3hP73CvoARgeLjaIOjybY9vj8PUPPFGeU= -github.com/julienroland/usg v0.0.0-20160918114137-cb52eabb3d84 h1:85dnNFRw7mhd4fujbFQraFc6lgJNbvZ8ZqV7/YTOd6w= -github.com/julienroland/usg v0.0.0-20160918114137-cb52eabb3d84/go.mod h1:JbqaH26To+mLqYBTlZi6/G8W5gtrNxZ46yIbCZ3Yl1s= -github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= -github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/lunixbochs/vtclean v1.0.0 h1:xu2sLAri4lGiovBDQKxl5mrXyESr3gUr5m5SM5+LVb8= -github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8= github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b h1:j7+1HpAFS1zy5+Q4qx1fWh90gTKwiN4QCGoY9TWyyO4= github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= -github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= -github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= -github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= -github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= -github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v1.1.3 h1:xghbfqPkxzxP3C/f3n5DdpAbdKLj4ZE4BWQI362l53M= -github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.1.0 h1:kunALQeHf1/185U1i0GOB/fy1IPRDDpuoOOqRReG57U= -golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.4.0 h1:BrVqGRd7+k1DiOgtnFvAkoQEWQvBc25ouMJM6429SFg= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= -google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= -gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= diff --git a/xtracfg/jni.c b/xtracfg/jni.c deleted file mode 100644 index ec9d302..0000000 --- a/xtracfg/jni.c +++ /dev/null @@ -1,86 +0,0 @@ -#include "de_ii_xtraplatform_cli_Cli.h" -#include "client.h" -#include "libxtracfg.h" -#include -#include -#include - -JavaVM *javaVM; -JNIEnv* jniEnv; -jobject handler; -jobject tracker; -jmethodID methodId; -progress_func progress_cb2; - -// called from go, calls exec with command -// saves go progress callback, used in Java_de_ii_xtraplatform_cli_Cli_00024NativeProgress_update -const char* handle_command_2(handle_command_func handle_command_cb, const char* command, progress_func progress_cb) { - progress_cb2 = progress_cb; - - return handle_command_cb(command); -} - -// callback indirectly called from go with the command -// calls the java CommandHandler and returns the result to go -const char* exec(const char* command) { - //printf("JNI Command: %s\n", command); - - jint res = (*javaVM)->AttachCurrentThread(javaVM, (void**)&jniEnv, NULL); - if (JNI_OK != res) { - printf("JNI no thread"); - return NULL; - } - - jstring command2 = (*jniEnv)->NewStringUTF(jniEnv, command); - - jstring result2 = (jstring)(*jniEnv)->CallObjectMethod(jniEnv, handler, methodId, command2, tracker); - - (*jniEnv)->DeleteLocalRef(jniEnv, command2); - - const char* result = (*jniEnv)->GetStringUTFChars(jniEnv, result2, NULL); - - res = (*javaVM)->DetachCurrentThread(javaVM); - if (JNI_OK != res) { - printf("JNI no thread end"); - return NULL; - } - - //printf("JNI Result: %s\n", result); - - return result; - } - -// entrypoint, called from java -JNIEXPORT void JNICALL Java_de_ii_xtraplatform_cli_Cli_execute - (JNIEnv* jni, jclass thisObject, jobject commandHandler, jobject progress) { - - jint res = (*jni)->GetJavaVM(jni, &javaVM); - if (JNI_OK != res) { - printf("JNI no vm"); - return; - } - - jniEnv = jni; - handler = (*jni)->NewGlobalRef(jni, commandHandler); - tracker = (*jni)->NewGlobalRef(jni, progress); - - // Find and save the id of the Java method to be called - jclass commandHandlerClass = (*jni)->GetObjectClass(jni, commandHandler); - methodId = (*jni)->GetMethodID(jni, commandHandlerClass, "handleCommand", "(Ljava/lang/String;Lde/ii/xtraplatform/cli/Progress;)Ljava/lang/String;"); - - handle_command_func hc = &exec; - - // switch to go, pass exec above as callback - cmd_execute(hc); - - (*jni)->DeleteGlobalRef(jni, handler); - (*jni)->DeleteGlobalRef(jni, tracker); -} - -// called from java with progress, pass to go callback -JNIEXPORT void JNICALL Java_de_ii_xtraplatform_cli_Cli_00024NativeProgress_update - (JNIEnv *, jobject, jstring update) { - const char* msg = (*jniEnv)->GetStringUTFChars(jniEnv, update, NULL); - - progress_cb2(msg); - } diff --git a/xtracfg/main.go b/xtracfg/main.go index 5c8705b..e134bcf 100644 --- a/xtracfg/main.go +++ b/xtracfg/main.go @@ -1,52 +1,9 @@ package main -/* -//pass on command line with CGO_CFLAGS -//#cgo CFLAGS: -I"$JAVA_HOME/include" -I"$JAVA_HOME/include/linux" -#cgo CFLAGS: -I include - -#include "client.h" -*/ -import "C" import ( - "github.com/interactive-instruments/xtraplatform-cli/xtracfg/client" "github.com/interactive-instruments/xtraplatform-cli/xtracfg/cmd" ) -var handleC C.handle_command_func -var progress_chan chan string - func main() { cmd.Execute() } - -//export cmd_execute -func cmd_execute(handle_command C.handle_command_func) { - handleC = handle_command - progress_chan = make(chan string, 16) - - client.Init(handle, progress_chan) - - cmd.Execute() -} - -//export progress -func progress(msg *C.char) { - progress_chan <- C.GoString(msg) -} - -func handle(command string) string { - //fmt.Printf("JNI PASS: %s\n", command) - - messages := make(chan string) - - // has to run concurrently since we are being called from java and calling into java at the same time - go func() { - r := C.handle_command_2(handleC, C.CString(command), C.progress_func(C.progress)) - messages <- C.GoString(r) - }() - - msg := <-messages - - return msg -} diff --git a/xtracfg/src/main/java/de/ii/xtraplatform/cli/XtraCfg.java b/xtracfg/src/main/java/de/ii/xtraplatform/cli/XtraCfg.java index 0ff8602..c784a58 100644 --- a/xtracfg/src/main/java/de/ii/xtraplatform/cli/XtraCfg.java +++ b/xtracfg/src/main/java/de/ii/xtraplatform/cli/XtraCfg.java @@ -13,4 +13,17 @@ public static void main(String[] args) { e.printStackTrace(); } } + + public static String execute(String command) { + try { + CommandHandler commandHandler = new CommandHandler(); + Cli.NativeProgress progress = new Cli.NativeProgress(); + + return commandHandler.handleCommand(command, progress); + } catch (Throwable e) { + System.out.println("ERROR " + e.getMessage()); + e.printStackTrace(); + return ""; + } + } } diff --git a/xtracfg/src/main/resources/META-INF/native-image/jni-config.json b/xtracfg/src/main/resources/META-INF/native-image/jni-config.json index 4dea2e8..9a38494 100644 --- a/xtracfg/src/main/resources/META-INF/native-image/jni-config.json +++ b/xtracfg/src/main/resources/META-INF/native-image/jni-config.json @@ -1,14 +1,6 @@ [ { - "name":"de.ii.xtraplatform.cli.CommandHandler", - "methods":[ - { "name" : "", "parameterTypes" : [] }, - {"name":"handleCommand","parameterTypes":["java.lang.String"] }, - {"name":"handleCommand","parameterTypes":["java.lang.String", "de.ii.xtraplatform.cli.Progress"] } - ] -}, -{ - "name":"java.lang.Boolean", - "methods":[{"name":"getBoolean","parameterTypes":["java.lang.String"] }] + "name":"de.ii.xtraplatform.cli.XtraCfg", + "methods":[{"name":"execute","parameterTypes":["java.lang.String"]}] } ] \ No newline at end of file diff --git a/xtracfg/client/console.go b/xtracfg/util/console.go similarity index 80% rename from xtracfg/client/console.go rename to xtracfg/util/console.go index 9b40db2..b32b1a4 100644 --- a/xtracfg/client/console.go +++ b/xtracfg/util/console.go @@ -1,4 +1,4 @@ -package client +package util import ( "fmt" @@ -6,6 +6,7 @@ import ( "github.com/AlecAivazis/survey/v2" "github.com/fatih/color" + "github.com/interactive-instruments/xtraplatform-cli/libxtracfg/go/xtracfg" ) var grey = color.New(color.FgHiWhite, color.Faint).SprintFunc() @@ -19,7 +20,7 @@ var cross = fmt.Sprintf("%c", '\u26CC') var danger = fmt.Sprintf("%c", '!') // PrintResults prints the results to the console -func PrintResults(results []Result, err error) { +func PrintResults(results []xtracfg.Result, err error) { fmt.Fprint(os.Stdout, "\n") if err != nil { @@ -29,15 +30,15 @@ func PrintResults(results []Result, err error) { for _, r := range results { switch r.Status { - case Error: + case xtracfg.Error: fmt.Fprint(os.Stdout, red(cross), " ", *r.Message, "\n") - case Warning: + case xtracfg.Warning: fmt.Fprint(os.Stdout, yellow(danger), " ", *r.Message, "\n") - case Success: + case xtracfg.Success: fmt.Fprint(os.Stdout, green(check), " ", *r.Message, "\n") - case Info: + case xtracfg.Info: fmt.Fprint(os.Stdout, *r.Message, "\n") - case Confirmation: + case xtracfg.Confirmation: fmt.Fprint(os.Stdout, "\n") do := false prompt := &survey.Confirm{ diff --git a/xtracfg/client/server.go b/xtracfg/util/server.go similarity index 90% rename from xtracfg/client/server.go rename to xtracfg/util/server.go index 22b40dd..a65b051 100644 --- a/xtracfg/client/server.go +++ b/xtracfg/util/server.go @@ -1,15 +1,16 @@ -package client +package util import ( "log" "net/http" "github.com/gorilla/websocket" + "github.com/interactive-instruments/xtraplatform-cli/libxtracfg/go/xtracfg" ) -var store Store +var store xtracfg.Store -func OpenWebsocket(store2 Store, port string) { +func OpenWebsocket(store2 xtracfg.Store, port string) { store = store2 handler := newLimitHandler(1, http.HandlerFunc(wsEndpoint)) @@ -46,7 +47,7 @@ func wsEndpoint(w http.ResponseWriter, r *http.Request) { // listen indefinitely for new messages coming through on our WebSocket connection reader(ws) - *store.progress <- WS_CLOSED + *store.Progress <- WS_CLOSED log.Println("done reading") } @@ -74,7 +75,7 @@ func reader(conn *websocket.Conn) { func progress_writer(conn *websocket.Conn) { go func() { for { - msg, more := <-*store.progress + msg, more := <-*store.Progress if !more || msg == WS_CLOSED { log.Println("ERR5", more, msg) return From 4d2c26837aab4c97779a42dde7d0cfd9cdd75d7a Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sat, 12 Oct 2024 21:20:30 +0200 Subject: [PATCH 014/167] refactor java --- {xtracfg => libxtracfg/java}/build.gradle | 4 +- {xtracfg => libxtracfg/java}/dev.gradle | 0 .../java}/gradle/wrapper/gradle-wrapper.jar | Bin .../gradle/wrapper/gradle-wrapper.properties | 0 {xtracfg => libxtracfg/java}/gradlew | 0 {xtracfg => libxtracfg/java}/gradlew.bat | 0 .../xtraplatform/cli/dev/XtraCfgApiDev.java | 0 .../ii/xtraplatform/cli/dev/XtraCfgDev.java | 0 .../de/ii/xtraplatform/cli/AutoHandler.java | 0 .../de/ii/xtraplatform/cli/AutoTypes.java | 0 .../ii/xtraplatform/cli/AutoValueHandler.java | 0 .../java/de/ii/xtraplatform/cli/Call.java | 0 .../de/ii/xtraplatform/cli/CfgHandler.java | 0 .../de/ii/xtraplatform/cli/CfgValidation.java | 0 .../main/java/de/ii/xtraplatform/cli/Cli.java | 0 .../ii/xtraplatform/cli/CommandHandler.java | 0 .../ii/xtraplatform/cli/EntitiesHandler.java | 0 .../de/ii/xtraplatform/cli/LayoutHandler.java | 0 .../de/ii/xtraplatform/cli/MapDiffer.java | 0 .../cli/MbStyleStylesheetGenerator.java | 0 .../java/de/ii/xtraplatform/cli/Messages.java | 0 .../de/ii/xtraplatform/cli/Migration.java | 0 .../de/ii/xtraplatform/cli/NativeFeature.java | 0 .../java/de/ii/xtraplatform/cli/Progress.java | 0 .../java/de/ii/xtraplatform/cli/Result.java | 0 .../java/de/ii/xtraplatform/cli/Upgrade.java | 0 .../de/ii/xtraplatform/cli/Validation.java | 0 .../java/de/ii/xtraplatform/cli/XtraCfg.java | 0 .../java/de/ii/xtraplatform/cli/cmd/Auto.java | 0 .../de/ii/xtraplatform/cli/cmd/AutoValue.java | 0 .../de/ii/xtraplatform/cli/cmd/Check.java | 0 .../de/ii/xtraplatform/cli/cmd/Common.java | 0 .../de/ii/xtraplatform/cli/cmd/Connect.java | 0 .../de/ii/xtraplatform/cli/cmd/Context.java | 0 .../de/ii/xtraplatform/cli/cmd/FileType.java | 0 .../java/de/ii/xtraplatform/cli/cmd/Info.java | 0 .../de/ii/xtraplatform/cli/cmd/Schemas.java | 0 .../de/ii/xtraplatform/cli/cmd/Store.java | 0 .../de/ii/xtraplatform/cli/cmd/Upgrade.java | 0 .../META-INF/native-image/jni-config.json | 0 .../META-INF/native-image/proxy-config.json | 0 .../META-INF/native-image/reflect-config.json | 0 .../native-image/resource-config.json | 0 .../native-image/serialization-config.json | 0 .../java}/src/main/webapp/index.html | 0 xtracfg/include/client.h | 12 --- xtracfg/include/de_ii_xtraplatform_cli_Cli.h | 21 ---- xtracfg/include/libxtracfg.h | 91 ------------------ 48 files changed, 2 insertions(+), 126 deletions(-) rename {xtracfg => libxtracfg/java}/build.gradle (97%) rename {xtracfg => libxtracfg/java}/dev.gradle (100%) rename {xtracfg => libxtracfg/java}/gradle/wrapper/gradle-wrapper.jar (100%) rename {xtracfg => libxtracfg/java}/gradle/wrapper/gradle-wrapper.properties (100%) rename {xtracfg => libxtracfg/java}/gradlew (100%) rename {xtracfg => libxtracfg/java}/gradlew.bat (100%) rename {xtracfg => libxtracfg/java}/src/dev/java/de/ii/xtraplatform/cli/dev/XtraCfgApiDev.java (100%) rename {xtracfg => libxtracfg/java}/src/dev/java/de/ii/xtraplatform/cli/dev/XtraCfgDev.java (100%) rename {xtracfg => libxtracfg/java}/src/main/java/de/ii/xtraplatform/cli/AutoHandler.java (100%) rename {xtracfg => libxtracfg/java}/src/main/java/de/ii/xtraplatform/cli/AutoTypes.java (100%) rename {xtracfg => libxtracfg/java}/src/main/java/de/ii/xtraplatform/cli/AutoValueHandler.java (100%) rename {xtracfg => libxtracfg/java}/src/main/java/de/ii/xtraplatform/cli/Call.java (100%) rename {xtracfg => libxtracfg/java}/src/main/java/de/ii/xtraplatform/cli/CfgHandler.java (100%) rename {xtracfg => libxtracfg/java}/src/main/java/de/ii/xtraplatform/cli/CfgValidation.java (100%) rename {xtracfg => libxtracfg/java}/src/main/java/de/ii/xtraplatform/cli/Cli.java (100%) rename {xtracfg => libxtracfg/java}/src/main/java/de/ii/xtraplatform/cli/CommandHandler.java (100%) rename {xtracfg => libxtracfg/java}/src/main/java/de/ii/xtraplatform/cli/EntitiesHandler.java (100%) rename {xtracfg => libxtracfg/java}/src/main/java/de/ii/xtraplatform/cli/LayoutHandler.java (100%) rename {xtracfg => libxtracfg/java}/src/main/java/de/ii/xtraplatform/cli/MapDiffer.java (100%) rename {xtracfg => libxtracfg/java}/src/main/java/de/ii/xtraplatform/cli/MbStyleStylesheetGenerator.java (100%) rename {xtracfg => libxtracfg/java}/src/main/java/de/ii/xtraplatform/cli/Messages.java (100%) rename {xtracfg => libxtracfg/java}/src/main/java/de/ii/xtraplatform/cli/Migration.java (100%) rename {xtracfg => libxtracfg/java}/src/main/java/de/ii/xtraplatform/cli/NativeFeature.java (100%) rename {xtracfg => libxtracfg/java}/src/main/java/de/ii/xtraplatform/cli/Progress.java (100%) rename {xtracfg => libxtracfg/java}/src/main/java/de/ii/xtraplatform/cli/Result.java (100%) rename {xtracfg => libxtracfg/java}/src/main/java/de/ii/xtraplatform/cli/Upgrade.java (100%) rename {xtracfg => libxtracfg/java}/src/main/java/de/ii/xtraplatform/cli/Validation.java (100%) rename {xtracfg => libxtracfg/java}/src/main/java/de/ii/xtraplatform/cli/XtraCfg.java (100%) rename {xtracfg => libxtracfg/java}/src/main/java/de/ii/xtraplatform/cli/cmd/Auto.java (100%) rename {xtracfg => libxtracfg/java}/src/main/java/de/ii/xtraplatform/cli/cmd/AutoValue.java (100%) rename {xtracfg => libxtracfg/java}/src/main/java/de/ii/xtraplatform/cli/cmd/Check.java (100%) rename {xtracfg => libxtracfg/java}/src/main/java/de/ii/xtraplatform/cli/cmd/Common.java (100%) rename {xtracfg => libxtracfg/java}/src/main/java/de/ii/xtraplatform/cli/cmd/Connect.java (100%) rename {xtracfg => libxtracfg/java}/src/main/java/de/ii/xtraplatform/cli/cmd/Context.java (100%) rename {xtracfg => libxtracfg/java}/src/main/java/de/ii/xtraplatform/cli/cmd/FileType.java (100%) rename {xtracfg => libxtracfg/java}/src/main/java/de/ii/xtraplatform/cli/cmd/Info.java (100%) rename {xtracfg => libxtracfg/java}/src/main/java/de/ii/xtraplatform/cli/cmd/Schemas.java (100%) rename {xtracfg => libxtracfg/java}/src/main/java/de/ii/xtraplatform/cli/cmd/Store.java (100%) rename {xtracfg => libxtracfg/java}/src/main/java/de/ii/xtraplatform/cli/cmd/Upgrade.java (100%) rename {xtracfg => libxtracfg/java}/src/main/resources/META-INF/native-image/jni-config.json (100%) rename {xtracfg => libxtracfg/java}/src/main/resources/META-INF/native-image/proxy-config.json (100%) rename {xtracfg => libxtracfg/java}/src/main/resources/META-INF/native-image/reflect-config.json (100%) rename {xtracfg => libxtracfg/java}/src/main/resources/META-INF/native-image/resource-config.json (100%) rename {xtracfg => libxtracfg/java}/src/main/resources/META-INF/native-image/serialization-config.json (100%) rename {xtracfg => libxtracfg/java}/src/main/webapp/index.html (100%) delete mode 100644 xtracfg/include/client.h delete mode 100644 xtracfg/include/de_ii_xtraplatform_cli_Cli.h delete mode 100644 xtracfg/include/libxtracfg.h diff --git a/xtracfg/build.gradle b/libxtracfg/java/build.gradle similarity index 97% rename from xtracfg/build.gradle rename to libxtracfg/java/build.gradle index 35965e2..5c8eaee 100644 --- a/xtracfg/build.gradle +++ b/libxtracfg/java/build.gradle @@ -57,7 +57,7 @@ graalvmNative { if (project.hasProperty('LIB')) { imageName = "libxtracfgjni" sharedLibrary = true - buildArgs("--native-compiler-path=${project.projectDir}/../libxtracfg/c/native-image/static-compiler-${targetos}.sh") + buildArgs("--native-compiler-path=${project.projectDir}/../c/native-image/static-compiler-${targetos}.sh") buildArgs('-march=native') buildArgs('-O2') //TODO -O3 image is 50% larger than -O2, test -Os with JDK 23 //buildArgs('--pgo') see https://www.graalvm.org/latest/reference-manual/native-image/optimizations-and-performance/PGO/ @@ -103,7 +103,7 @@ graalvmNative { tasks.register('nativeSync', Sync) { from "${project.buildDir}/native/nativeCompile" - into '../libxtracfg/c/build' + into '../c/build' } tasks.register('os') { diff --git a/xtracfg/dev.gradle b/libxtracfg/java/dev.gradle similarity index 100% rename from xtracfg/dev.gradle rename to libxtracfg/java/dev.gradle diff --git a/xtracfg/gradle/wrapper/gradle-wrapper.jar b/libxtracfg/java/gradle/wrapper/gradle-wrapper.jar similarity index 100% rename from xtracfg/gradle/wrapper/gradle-wrapper.jar rename to libxtracfg/java/gradle/wrapper/gradle-wrapper.jar diff --git a/xtracfg/gradle/wrapper/gradle-wrapper.properties b/libxtracfg/java/gradle/wrapper/gradle-wrapper.properties similarity index 100% rename from xtracfg/gradle/wrapper/gradle-wrapper.properties rename to libxtracfg/java/gradle/wrapper/gradle-wrapper.properties diff --git a/xtracfg/gradlew b/libxtracfg/java/gradlew similarity index 100% rename from xtracfg/gradlew rename to libxtracfg/java/gradlew diff --git a/xtracfg/gradlew.bat b/libxtracfg/java/gradlew.bat similarity index 100% rename from xtracfg/gradlew.bat rename to libxtracfg/java/gradlew.bat diff --git a/xtracfg/src/dev/java/de/ii/xtraplatform/cli/dev/XtraCfgApiDev.java b/libxtracfg/java/src/dev/java/de/ii/xtraplatform/cli/dev/XtraCfgApiDev.java similarity index 100% rename from xtracfg/src/dev/java/de/ii/xtraplatform/cli/dev/XtraCfgApiDev.java rename to libxtracfg/java/src/dev/java/de/ii/xtraplatform/cli/dev/XtraCfgApiDev.java diff --git a/xtracfg/src/dev/java/de/ii/xtraplatform/cli/dev/XtraCfgDev.java b/libxtracfg/java/src/dev/java/de/ii/xtraplatform/cli/dev/XtraCfgDev.java similarity index 100% rename from xtracfg/src/dev/java/de/ii/xtraplatform/cli/dev/XtraCfgDev.java rename to libxtracfg/java/src/dev/java/de/ii/xtraplatform/cli/dev/XtraCfgDev.java diff --git a/xtracfg/src/main/java/de/ii/xtraplatform/cli/AutoHandler.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/AutoHandler.java similarity index 100% rename from xtracfg/src/main/java/de/ii/xtraplatform/cli/AutoHandler.java rename to libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/AutoHandler.java diff --git a/xtracfg/src/main/java/de/ii/xtraplatform/cli/AutoTypes.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/AutoTypes.java similarity index 100% rename from xtracfg/src/main/java/de/ii/xtraplatform/cli/AutoTypes.java rename to libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/AutoTypes.java diff --git a/xtracfg/src/main/java/de/ii/xtraplatform/cli/AutoValueHandler.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/AutoValueHandler.java similarity index 100% rename from xtracfg/src/main/java/de/ii/xtraplatform/cli/AutoValueHandler.java rename to libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/AutoValueHandler.java diff --git a/xtracfg/src/main/java/de/ii/xtraplatform/cli/Call.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/Call.java similarity index 100% rename from xtracfg/src/main/java/de/ii/xtraplatform/cli/Call.java rename to libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/Call.java diff --git a/xtracfg/src/main/java/de/ii/xtraplatform/cli/CfgHandler.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/CfgHandler.java similarity index 100% rename from xtracfg/src/main/java/de/ii/xtraplatform/cli/CfgHandler.java rename to libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/CfgHandler.java diff --git a/xtracfg/src/main/java/de/ii/xtraplatform/cli/CfgValidation.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/CfgValidation.java similarity index 100% rename from xtracfg/src/main/java/de/ii/xtraplatform/cli/CfgValidation.java rename to libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/CfgValidation.java diff --git a/xtracfg/src/main/java/de/ii/xtraplatform/cli/Cli.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/Cli.java similarity index 100% rename from xtracfg/src/main/java/de/ii/xtraplatform/cli/Cli.java rename to libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/Cli.java diff --git a/xtracfg/src/main/java/de/ii/xtraplatform/cli/CommandHandler.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/CommandHandler.java similarity index 100% rename from xtracfg/src/main/java/de/ii/xtraplatform/cli/CommandHandler.java rename to libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/CommandHandler.java diff --git a/xtracfg/src/main/java/de/ii/xtraplatform/cli/EntitiesHandler.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/EntitiesHandler.java similarity index 100% rename from xtracfg/src/main/java/de/ii/xtraplatform/cli/EntitiesHandler.java rename to libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/EntitiesHandler.java diff --git a/xtracfg/src/main/java/de/ii/xtraplatform/cli/LayoutHandler.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/LayoutHandler.java similarity index 100% rename from xtracfg/src/main/java/de/ii/xtraplatform/cli/LayoutHandler.java rename to libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/LayoutHandler.java diff --git a/xtracfg/src/main/java/de/ii/xtraplatform/cli/MapDiffer.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/MapDiffer.java similarity index 100% rename from xtracfg/src/main/java/de/ii/xtraplatform/cli/MapDiffer.java rename to libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/MapDiffer.java diff --git a/xtracfg/src/main/java/de/ii/xtraplatform/cli/MbStyleStylesheetGenerator.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/MbStyleStylesheetGenerator.java similarity index 100% rename from xtracfg/src/main/java/de/ii/xtraplatform/cli/MbStyleStylesheetGenerator.java rename to libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/MbStyleStylesheetGenerator.java diff --git a/xtracfg/src/main/java/de/ii/xtraplatform/cli/Messages.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/Messages.java similarity index 100% rename from xtracfg/src/main/java/de/ii/xtraplatform/cli/Messages.java rename to libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/Messages.java diff --git a/xtracfg/src/main/java/de/ii/xtraplatform/cli/Migration.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/Migration.java similarity index 100% rename from xtracfg/src/main/java/de/ii/xtraplatform/cli/Migration.java rename to libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/Migration.java diff --git a/xtracfg/src/main/java/de/ii/xtraplatform/cli/NativeFeature.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/NativeFeature.java similarity index 100% rename from xtracfg/src/main/java/de/ii/xtraplatform/cli/NativeFeature.java rename to libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/NativeFeature.java diff --git a/xtracfg/src/main/java/de/ii/xtraplatform/cli/Progress.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/Progress.java similarity index 100% rename from xtracfg/src/main/java/de/ii/xtraplatform/cli/Progress.java rename to libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/Progress.java diff --git a/xtracfg/src/main/java/de/ii/xtraplatform/cli/Result.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/Result.java similarity index 100% rename from xtracfg/src/main/java/de/ii/xtraplatform/cli/Result.java rename to libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/Result.java diff --git a/xtracfg/src/main/java/de/ii/xtraplatform/cli/Upgrade.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/Upgrade.java similarity index 100% rename from xtracfg/src/main/java/de/ii/xtraplatform/cli/Upgrade.java rename to libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/Upgrade.java diff --git a/xtracfg/src/main/java/de/ii/xtraplatform/cli/Validation.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/Validation.java similarity index 100% rename from xtracfg/src/main/java/de/ii/xtraplatform/cli/Validation.java rename to libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/Validation.java diff --git a/xtracfg/src/main/java/de/ii/xtraplatform/cli/XtraCfg.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/XtraCfg.java similarity index 100% rename from xtracfg/src/main/java/de/ii/xtraplatform/cli/XtraCfg.java rename to libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/XtraCfg.java diff --git a/xtracfg/src/main/java/de/ii/xtraplatform/cli/cmd/Auto.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/Auto.java similarity index 100% rename from xtracfg/src/main/java/de/ii/xtraplatform/cli/cmd/Auto.java rename to libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/Auto.java diff --git a/xtracfg/src/main/java/de/ii/xtraplatform/cli/cmd/AutoValue.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/AutoValue.java similarity index 100% rename from xtracfg/src/main/java/de/ii/xtraplatform/cli/cmd/AutoValue.java rename to libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/AutoValue.java diff --git a/xtracfg/src/main/java/de/ii/xtraplatform/cli/cmd/Check.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/Check.java similarity index 100% rename from xtracfg/src/main/java/de/ii/xtraplatform/cli/cmd/Check.java rename to libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/Check.java diff --git a/xtracfg/src/main/java/de/ii/xtraplatform/cli/cmd/Common.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/Common.java similarity index 100% rename from xtracfg/src/main/java/de/ii/xtraplatform/cli/cmd/Common.java rename to libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/Common.java diff --git a/xtracfg/src/main/java/de/ii/xtraplatform/cli/cmd/Connect.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/Connect.java similarity index 100% rename from xtracfg/src/main/java/de/ii/xtraplatform/cli/cmd/Connect.java rename to libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/Connect.java diff --git a/xtracfg/src/main/java/de/ii/xtraplatform/cli/cmd/Context.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/Context.java similarity index 100% rename from xtracfg/src/main/java/de/ii/xtraplatform/cli/cmd/Context.java rename to libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/Context.java diff --git a/xtracfg/src/main/java/de/ii/xtraplatform/cli/cmd/FileType.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/FileType.java similarity index 100% rename from xtracfg/src/main/java/de/ii/xtraplatform/cli/cmd/FileType.java rename to libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/FileType.java diff --git a/xtracfg/src/main/java/de/ii/xtraplatform/cli/cmd/Info.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/Info.java similarity index 100% rename from xtracfg/src/main/java/de/ii/xtraplatform/cli/cmd/Info.java rename to libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/Info.java diff --git a/xtracfg/src/main/java/de/ii/xtraplatform/cli/cmd/Schemas.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/Schemas.java similarity index 100% rename from xtracfg/src/main/java/de/ii/xtraplatform/cli/cmd/Schemas.java rename to libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/Schemas.java diff --git a/xtracfg/src/main/java/de/ii/xtraplatform/cli/cmd/Store.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/Store.java similarity index 100% rename from xtracfg/src/main/java/de/ii/xtraplatform/cli/cmd/Store.java rename to libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/Store.java diff --git a/xtracfg/src/main/java/de/ii/xtraplatform/cli/cmd/Upgrade.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/Upgrade.java similarity index 100% rename from xtracfg/src/main/java/de/ii/xtraplatform/cli/cmd/Upgrade.java rename to libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/Upgrade.java diff --git a/xtracfg/src/main/resources/META-INF/native-image/jni-config.json b/libxtracfg/java/src/main/resources/META-INF/native-image/jni-config.json similarity index 100% rename from xtracfg/src/main/resources/META-INF/native-image/jni-config.json rename to libxtracfg/java/src/main/resources/META-INF/native-image/jni-config.json diff --git a/xtracfg/src/main/resources/META-INF/native-image/proxy-config.json b/libxtracfg/java/src/main/resources/META-INF/native-image/proxy-config.json similarity index 100% rename from xtracfg/src/main/resources/META-INF/native-image/proxy-config.json rename to libxtracfg/java/src/main/resources/META-INF/native-image/proxy-config.json diff --git a/xtracfg/src/main/resources/META-INF/native-image/reflect-config.json b/libxtracfg/java/src/main/resources/META-INF/native-image/reflect-config.json similarity index 100% rename from xtracfg/src/main/resources/META-INF/native-image/reflect-config.json rename to libxtracfg/java/src/main/resources/META-INF/native-image/reflect-config.json diff --git a/xtracfg/src/main/resources/META-INF/native-image/resource-config.json b/libxtracfg/java/src/main/resources/META-INF/native-image/resource-config.json similarity index 100% rename from xtracfg/src/main/resources/META-INF/native-image/resource-config.json rename to libxtracfg/java/src/main/resources/META-INF/native-image/resource-config.json diff --git a/xtracfg/src/main/resources/META-INF/native-image/serialization-config.json b/libxtracfg/java/src/main/resources/META-INF/native-image/serialization-config.json similarity index 100% rename from xtracfg/src/main/resources/META-INF/native-image/serialization-config.json rename to libxtracfg/java/src/main/resources/META-INF/native-image/serialization-config.json diff --git a/xtracfg/src/main/webapp/index.html b/libxtracfg/java/src/main/webapp/index.html similarity index 100% rename from xtracfg/src/main/webapp/index.html rename to libxtracfg/java/src/main/webapp/index.html diff --git a/xtracfg/include/client.h b/xtracfg/include/client.h deleted file mode 100644 index 0a57711..0000000 --- a/xtracfg/include/client.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef FUSION_H -#define FUSION_H - -typedef const char* (*handle_command_func) (const char* command); - -typedef void (*progress_func) (const char* msg); - -const char* handle_command_2(handle_command_func handle_command_cb, const char* command, progress_func progress_cb); - -void progress(char* msg); - -#endif diff --git a/xtracfg/include/de_ii_xtraplatform_cli_Cli.h b/xtracfg/include/de_ii_xtraplatform_cli_Cli.h deleted file mode 100644 index b367856..0000000 --- a/xtracfg/include/de_ii_xtraplatform_cli_Cli.h +++ /dev/null @@ -1,21 +0,0 @@ -/* DO NOT EDIT THIS FILE - it is machine generated */ -#include -/* Header for class de_ii_xtraplatform_cli_Cli */ - -#ifndef _Included_de_ii_xtraplatform_cli_Cli -#define _Included_de_ii_xtraplatform_cli_Cli -#ifdef __cplusplus -extern "C" { -#endif -/* - * Class: de_ii_xtraplatform_cli_Cli - * Method: execute - * Signature: (Lde/ii/xtraplatform/cli/CommandHandler;)V - */ -JNIEXPORT void JNICALL Java_de_ii_xtraplatform_cli_Cli_execute - (JNIEnv *, jclass, jobject, jobject); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/xtracfg/include/libxtracfg.h b/xtracfg/include/libxtracfg.h deleted file mode 100644 index 565a3f1..0000000 --- a/xtracfg/include/libxtracfg.h +++ /dev/null @@ -1,91 +0,0 @@ -/* Code generated by cmd/cgo; DO NOT EDIT. */ - -/* package github.com/interactive-instruments/xtraplatform-cli/xtracfg */ - - -#line 1 "cgo-builtin-export-prolog" - -#include - -#ifndef GO_CGO_EXPORT_PROLOGUE_H -#define GO_CGO_EXPORT_PROLOGUE_H - -#ifndef GO_CGO_GOSTRING_TYPEDEF -typedef struct { const char *p; ptrdiff_t n; } _GoString_; -#endif - -#endif - -/* Start of preamble from import "C" comments. */ - - -#line 3 "main.go" - -//pass on command line with CGO_CFLAGS -//#cgo CFLAGS: -I"$JAVA_HOME/include" -I"$JAVA_HOME/include/linux" - - -#include "client.h" - -#line 1 "cgo-generated-wrapper" - - -/* End of preamble from import "C" comments. */ - - -/* Start of boilerplate cgo prologue. */ -#line 1 "cgo-gcc-export-header-prolog" - -#ifndef GO_CGO_PROLOGUE_H -#define GO_CGO_PROLOGUE_H - -typedef signed char GoInt8; -typedef unsigned char GoUint8; -typedef short GoInt16; -typedef unsigned short GoUint16; -typedef int GoInt32; -typedef unsigned int GoUint32; -typedef long long GoInt64; -typedef unsigned long long GoUint64; -typedef GoInt64 GoInt; -typedef GoUint64 GoUint; -typedef size_t GoUintptr; -typedef float GoFloat32; -typedef double GoFloat64; -#ifdef _MSC_VER -#include -typedef _Fcomplex GoComplex64; -typedef _Dcomplex GoComplex128; -#else -typedef float _Complex GoComplex64; -typedef double _Complex GoComplex128; -#endif - -/* - static assertion to make sure the file is being used on architecture - at least with matching size of GoInt. -*/ -typedef char _check_for_64_bit_pointer_matching_GoInt[sizeof(void*)==64/8 ? 1:-1]; - -#ifndef GO_CGO_GOSTRING_TYPEDEF -typedef _GoString_ GoString; -#endif -typedef void *GoMap; -typedef void *GoChan; -typedef struct { void *t; void *v; } GoInterface; -typedef struct { void *data; GoInt len; GoInt cap; } GoSlice; - -#endif - -/* End of boilerplate cgo prologue. */ - -#ifdef __cplusplus -extern "C" { -#endif - -extern void cmd_execute(handle_command_func handle_command); -extern void progress(char* msg); - -#ifdef __cplusplus -} -#endif From 906c215e8b4d2f41ac6be344841cd438fc4db96b Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sun, 13 Oct 2024 14:36:39 +0200 Subject: [PATCH 015/167] refactor go --- .github/workflows/libxtracfg.yml | 32 ++++++++++++++++++++++++-------- .github/workflows/xtracfg.yml | 2 +- .github/workflows/xtractl.yml | 2 +- .gitignore | 1 + libxtracfg/c/build.sh | 6 ++++++ libxtracfg/c/test/main.c | 9 +++++++++ libxtracfg/go/xtracfg/client.go | 8 +++++++- 7 files changed, 49 insertions(+), 11 deletions(-) diff --git a/.github/workflows/libxtracfg.yml b/.github/workflows/libxtracfg.yml index 8a6146a..0c43ba7 100644 --- a/.github/workflows/libxtracfg.yml +++ b/.github/workflows/libxtracfg.yml @@ -17,11 +17,12 @@ jobs: type: macos platform: darwin-arm64 runs-on: ${{ matrix.os.runner }} - defaults: - run: - working-directory: ./libxtracfg/c steps: - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 + with: + go-version: "1.23.2" + cache-dependency-path: xtracfg/go.sum - uses: graalvm/setup-graalvm@v1 with: java-version: "21" @@ -31,21 +32,36 @@ jobs: cache-dependency-path: | xtracfg/*.gradle* xtracfg/**/gradle-wrapper.properties - - name: native-image - working-directory: ./xtracfg + - name: java + working-directory: ./libxtracfg/java run: | ./gradlew nativeCompile -PLIB=true - name: log run: | - ls -l ./build - - name: wrapper + ls -l ./libxtracfg/c/build + - name: c + working-directory: ./libxtracfg/c run: | ./build.sh - name: log2 run: | - ls -l ./build + ls -l ./libxtracfg/c/build + - name: go + working-directory: ./xtracfg + env: + CGO_FLAGS: ${{ matrix.os.type == 'macos' && '-framework CoreServices -framework Foundation' || '' }} + run: | + go build -o build/xtracfg -v + - name: log3 + run: | + ls -l ./xtracfg/build - uses: actions/upload-artifact@v4 with: name: libxtracfg-${{ matrix.os.platform }} path: ./libxtracfg/c/build/libxtracfg.a retention-days: 1 + - uses: actions/upload-artifact@v4 + with: + name: xtracfg-${{ matrix.os.platform }} + path: ./xtracfg/build/xtracfg + retention-days: 1 diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 44930f6..e68d174 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -1,6 +1,6 @@ name: xtracfg -on: [push] +on: [] jobs: build: diff --git a/.github/workflows/xtractl.yml b/.github/workflows/xtractl.yml index 83bd324..1565bc0 100644 --- a/.github/workflows/xtractl.yml +++ b/.github/workflows/xtractl.yml @@ -1,6 +1,6 @@ name: xtractl -on: [push] +on: [] jobs: build: diff --git a/.gitignore b/.gitignore index 5eb0894..7bc5816 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ build .idea .DS_Store bin +libxtracfg/go/xtracfg/libxtracfg.sha1sum diff --git a/libxtracfg/c/build.sh b/libxtracfg/c/build.sh index 8477773..b2d9f57 100755 --- a/libxtracfg/c/build.sh +++ b/libxtracfg/c/build.sh @@ -17,6 +17,12 @@ echo "lib" clang -c -Wall -I./ -I$JAVA_HOME/include -I$JAVA_HOME/include/${PLATFORM} -o libxtracfg.o ../wrapper/libxtracfg.c cp libxtracfgjni.a libxtracfg.a ar -rv libxtracfg.a libxtracfg.o +if [ "$PLATFORM" = "darwin" ]; then +shasum libxtracfg.a > libxtracfg.sha1sum +else +sha1sum libxtracfg.a > libxtracfg.sha1sum +fi +cp libxtracfg.sha1sum ../../go/xtracfg/ echo "test" diff --git a/libxtracfg/c/test/main.c b/libxtracfg/c/test/main.c index bb16dca..3d2c041 100644 --- a/libxtracfg/c/test/main.c +++ b/libxtracfg/c/test/main.c @@ -3,6 +3,10 @@ #include "../include/libxtracfg.h" + void progress (const char* msg) { + printf("%s\n", msg); + } + int main(int argc, char **argv) { if (argc != 2) { fprintf(stderr, "Usage: %s \n", argv[0]); @@ -10,9 +14,14 @@ exit(1); } + xtracfg_init(); + xtracfg_progress_subscribe(progress); + int err = 0; char *result = xtracfg_execute( argv[1], &err); + xtracfg_cleanup(); + if (err > 0) { fprintf(stderr, "Unexpected error: %s\n", result); free(result); diff --git a/libxtracfg/go/xtracfg/client.go b/libxtracfg/go/xtracfg/client.go index 383bc95..0bf27ed 100644 --- a/libxtracfg/go/xtracfg/client.go +++ b/libxtracfg/go/xtracfg/client.go @@ -2,7 +2,7 @@ package xtracfg /* #cgo CFLAGS: -I ../../c/include -#cgo LDFLAGS: -L../../c/build -lxtracfg -framework CoreServices -framework Foundation +#cgo LDFLAGS: -L../../c/build -lxtracfg #include #include "libxtracfg.h" @@ -12,6 +12,7 @@ void progress(char *msg); import "C" import ( + _ "embed" "encoding/json" "fmt" "path/filepath" @@ -20,6 +21,11 @@ import ( "unsafe" ) +// needed to trigger a rebuild when libxtracfg.a changes +// +//go:embed libxtracfg.sha1sum +var res string + // Store is type Store struct { source *string From 76e64a5c79341d5b4c4bf74fee60429881801622 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sun, 13 Oct 2024 14:44:54 +0200 Subject: [PATCH 016/167] fix build --- .github/workflows/libxtracfg.yml | 12 ++++++------ libxtracfg/c/build.sh | 4 ++++ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/.github/workflows/libxtracfg.yml b/.github/workflows/libxtracfg.yml index 0c43ba7..a6fd063 100644 --- a/.github/workflows/libxtracfg.yml +++ b/.github/workflows/libxtracfg.yml @@ -7,15 +7,15 @@ jobs: strategy: matrix: os: - #- runner: ubuntu-latest - # type: linux - # platform: linux-amd64 + - runner: ubuntu-latest + type: linux + platform: linux-amd64 #- runner: buildjet-2vcpu-ubuntu-2204-arm # type: linux # platform: linux-arm64 - - runner: macos-latest - type: macos - platform: darwin-arm64 + #- runner: macos-latest + # type: macos + # platform: darwin-arm64 runs-on: ${{ matrix.os.runner }} steps: - uses: actions/checkout@v4 diff --git a/libxtracfg/c/build.sh b/libxtracfg/c/build.sh index b2d9f57..73ef967 100755 --- a/libxtracfg/c/build.sh +++ b/libxtracfg/c/build.sh @@ -1,5 +1,9 @@ #!/bin/sh +#TODO: use gradle? +#https://docs.gradle.org/current/userguide/building_cpp_projects.html#sec:cpp_supported_tool_chain +#https://github.com/gradle/native-samples/blob/master/c/application/build.gradle + OUT_DIR=build PLATFORM=$(uname -s | tr '[:upper:]' '[:lower:]' ) EXT=$([ "$PLATFORM" = "darwin" ] && echo "dylib" || echo "so") From 7f713172ede89eef582f59a452cf98395c5a1d3a Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sun, 13 Oct 2024 14:55:11 +0200 Subject: [PATCH 017/167] fix build --- .github/workflows/libxtracfg.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/libxtracfg.yml b/.github/workflows/libxtracfg.yml index a6fd063..7c6401f 100644 --- a/.github/workflows/libxtracfg.yml +++ b/.github/workflows/libxtracfg.yml @@ -7,15 +7,15 @@ jobs: strategy: matrix: os: - - runner: ubuntu-latest - type: linux - platform: linux-amd64 + #- runner: ubuntu-latest + # type: linux + # platform: linux-amd64 #- runner: buildjet-2vcpu-ubuntu-2204-arm # type: linux # platform: linux-arm64 - #- runner: macos-latest - # type: macos - # platform: darwin-arm64 + - runner: macos-15 + type: macos + platform: darwin-arm64 runs-on: ${{ matrix.os.runner }} steps: - uses: actions/checkout@v4 From d06c044e1a0816c8c771ea402cf2d09f7b994591 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sun, 13 Oct 2024 15:03:18 +0200 Subject: [PATCH 018/167] fix build --- .github/workflows/libxtracfg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/libxtracfg.yml b/.github/workflows/libxtracfg.yml index 7c6401f..1aac1ba 100644 --- a/.github/workflows/libxtracfg.yml +++ b/.github/workflows/libxtracfg.yml @@ -51,7 +51,7 @@ jobs: env: CGO_FLAGS: ${{ matrix.os.type == 'macos' && '-framework CoreServices -framework Foundation' || '' }} run: | - go build -o build/xtracfg -v + go build -o build/xtracfg -v -x - name: log3 run: | ls -l ./xtracfg/build From 0e80f69dc5c11cd16c6ac4acfab21567b1e7d727 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sun, 13 Oct 2024 19:09:45 +0200 Subject: [PATCH 019/167] fix build --- libxtracfg/c/native-image/static-compiler-darwin.sh | 10 ++++++++-- libxtracfg/java/settings.gradle | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 libxtracfg/java/settings.gradle diff --git a/libxtracfg/c/native-image/static-compiler-darwin.sh b/libxtracfg/c/native-image/static-compiler-darwin.sh index 363e3d3..377c1a0 100755 --- a/libxtracfg/c/native-image/static-compiler-darwin.sh +++ b/libxtracfg/c/native-image/static-compiler-darwin.sh @@ -17,7 +17,9 @@ done # Do a simple forward for any calls that are used to compile individual C files if [[ -z $LIB_NAME ]]; then - cc $* + CC_ARGS=$* + echo "CC $CC_ARGS" + cc $CC_ARGS exit 0 fi @@ -65,7 +67,9 @@ do AR_ARGS+=" ${ARCHIVE_DIR}/*.o" fi if [[ $arg =~ .*\.(o)$ ]]; then - cp $arg ${OBJECTS} + #cp $arg ${OBJECTS} + #echo "VTOOOL $arg -> ${OBJECTS}/$(basename "${arg}")" + vtool -set-build-version macos 14.0 15.0 -replace -output ${OBJECTS}/$(basename "${arg}") $arg fi done @@ -75,3 +79,5 @@ find ${OBJECTS} -name "*.o" >> ${LOG_FILE} echo "======= Archive command" >> ${LOG_FILE} echo "ar $AR_ARGS" >> ${LOG_FILE} ar $AR_ARGS + + diff --git a/libxtracfg/java/settings.gradle b/libxtracfg/java/settings.gradle new file mode 100644 index 0000000..1bb6398 --- /dev/null +++ b/libxtracfg/java/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'libxtracfg' \ No newline at end of file From fcddab7dbed7134aca68ddc4fda3105af8496ba7 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sun, 13 Oct 2024 19:46:11 +0200 Subject: [PATCH 020/167] fix build --- .github/workflows/libxtracfg.yml | 2 +- libxtracfg/c/build.sh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/libxtracfg.yml b/.github/workflows/libxtracfg.yml index 1aac1ba..1728fd9 100644 --- a/.github/workflows/libxtracfg.yml +++ b/.github/workflows/libxtracfg.yml @@ -49,7 +49,7 @@ jobs: - name: go working-directory: ./xtracfg env: - CGO_FLAGS: ${{ matrix.os.type == 'macos' && '-framework CoreServices -framework Foundation' || '' }} + LDFLAGS: ${{ matrix.os.type == 'macos' && '-framework CoreServices -framework Foundation' || '' }} run: | go build -o build/xtracfg -v -x - name: log3 diff --git a/libxtracfg/c/build.sh b/libxtracfg/c/build.sh index 73ef967..d177662 100755 --- a/libxtracfg/c/build.sh +++ b/libxtracfg/c/build.sh @@ -35,8 +35,8 @@ echo "test" # static if [ "$PLATFORM" = "darwin" ]; then -#clang -I./ -L./ -Wl,-framework,CoreServices -ldl -lpthread -Wl,-framework,Foundation -o test ../test/main.c ./libxtracfg.a -echo "test temporarily disabled on macOS" +clang -I./ -L./ -Wl,-framework,CoreServices -ldl -lpthread -Wl,-framework,Foundation -o test ../test/main.c ./libxtracfg.a +#echo "test temporarily disabled on macOS" else clang -I./ -L./ -ldl -lpthread -o test ../test/main.c ./libxtracfg.a fi From 8eb6bea8976e7d31851a491b32b17d7df5c8f3fe Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sun, 13 Oct 2024 20:21:43 +0200 Subject: [PATCH 021/167] fix build --- .github/workflows/libxtracfg.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/libxtracfg.yml b/.github/workflows/libxtracfg.yml index 1728fd9..cc3ce60 100644 --- a/.github/workflows/libxtracfg.yml +++ b/.github/workflows/libxtracfg.yml @@ -49,9 +49,9 @@ jobs: - name: go working-directory: ./xtracfg env: - LDFLAGS: ${{ matrix.os.type == 'macos' && '-framework CoreServices -framework Foundation' || '' }} + CGO_LDFLAGS: ${{ matrix.os.type == 'macos' && '-framework CoreServices -framework Foundation' || '' }} run: | - go build -o build/xtracfg -v -x + go build -o build/xtracfg -v - name: log3 run: | ls -l ./xtracfg/build From 49466f5c2c8890251e6175755055f1c55d102919 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sun, 13 Oct 2024 21:06:17 +0200 Subject: [PATCH 022/167] refactor build --- .github/workflows/libxtracfg.yml | 67 --------------------- .github/workflows/xtracfg.yml | 100 +++++++++++++++++++++++-------- 2 files changed, 75 insertions(+), 92 deletions(-) delete mode 100644 .github/workflows/libxtracfg.yml diff --git a/.github/workflows/libxtracfg.yml b/.github/workflows/libxtracfg.yml deleted file mode 100644 index cc3ce60..0000000 --- a/.github/workflows/libxtracfg.yml +++ /dev/null @@ -1,67 +0,0 @@ -name: libxtracfg - -on: [push] - -jobs: - build: - strategy: - matrix: - os: - #- runner: ubuntu-latest - # type: linux - # platform: linux-amd64 - #- runner: buildjet-2vcpu-ubuntu-2204-arm - # type: linux - # platform: linux-arm64 - - runner: macos-15 - type: macos - platform: darwin-arm64 - runs-on: ${{ matrix.os.runner }} - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 - with: - go-version: "1.23.2" - cache-dependency-path: xtracfg/go.sum - - uses: graalvm/setup-graalvm@v1 - with: - java-version: "21" - distribution: "graalvm" - native-image-job-reports: true - cache: gradle - cache-dependency-path: | - xtracfg/*.gradle* - xtracfg/**/gradle-wrapper.properties - - name: java - working-directory: ./libxtracfg/java - run: | - ./gradlew nativeCompile -PLIB=true - - name: log - run: | - ls -l ./libxtracfg/c/build - - name: c - working-directory: ./libxtracfg/c - run: | - ./build.sh - - name: log2 - run: | - ls -l ./libxtracfg/c/build - - name: go - working-directory: ./xtracfg - env: - CGO_LDFLAGS: ${{ matrix.os.type == 'macos' && '-framework CoreServices -framework Foundation' || '' }} - run: | - go build -o build/xtracfg -v - - name: log3 - run: | - ls -l ./xtracfg/build - - uses: actions/upload-artifact@v4 - with: - name: libxtracfg-${{ matrix.os.platform }} - path: ./libxtracfg/c/build/libxtracfg.a - retention-days: 1 - - uses: actions/upload-artifact@v4 - with: - name: xtracfg-${{ matrix.os.platform }} - path: ./xtracfg/build/xtracfg - retention-days: 1 diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index e68d174..120b90e 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -1,22 +1,72 @@ name: xtracfg -on: [] +on: [push] jobs: - build: + libraries: + runs-on: ${{ matrix.os.runner }} strategy: matrix: os: - - runner: ubuntu-latest - type: linux - platform: linux-amd64 + #- runner: ubuntu-latest + # type: linux + # platform: linux-amd64 #- runner: buildjet-2vcpu-ubuntu-2204-arm # type: linux # platform: linux-arm64 - - runner: macos-latest + - runner: macos-15 type: macos platform: darwin-arm64 + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 + with: + go-version: "1.23.2" + cache-dependency-path: xtracfg/go.sum + - uses: graalvm/setup-graalvm@v1 + with: + java-version: "21" + distribution: "graalvm" + native-image-job-reports: true + cache: gradle + cache-dependency-path: | + xtracfg/*.gradle* + xtracfg/**/gradle-wrapper.properties + - name: java + working-directory: ./libxtracfg/java + run: | + ./gradlew nativeCompile -PLIB=true + - name: log + run: | + ls -l ./libxtracfg/c/build + - name: c + working-directory: ./libxtracfg/c + run: | + ./build.sh + - name: log2 + run: | + ls -l ./libxtracfg/c/build + - uses: actions/upload-artifact@v4 + with: + name: libxtracfg-c-${{ matrix.os.platform }} + path: ./libxtracfg/c/build/libxtracfg.a + retention-days: 1 + + binary: runs-on: ${{ matrix.os.runner }} + needs: libraries + strategy: + matrix: + os: + #- runner: ubuntu-latest + # type: linux + # platform: linux-amd64 + #- runner: buildjet-2vcpu-ubuntu-2204-arm + # type: linux + # platform: linux-arm64 + - runner: macos-latest + type: macos + platform: darwin-arm64 defaults: run: working-directory: ./xtracfg @@ -24,45 +74,44 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: - go-version: "1.21.13" + go-version: "1.23.2" cache-dependency-path: xtracfg/go.sum - uses: graalvm/setup-graalvm@v1 with: - java-version: "17" - distribution: "liberica" + java-version: "21" + distribution: "graalvm" native-image-job-reports: true cache: gradle cache-dependency-path: | xtracfg/*.gradle* xtracfg/**/gradle-wrapper.properties + - uses: actions/download-artifact@v4 + with: + name: libxtracfg-c-${{ matrix.os.platform }} - name: build go env: CI_COMMIT_BRANCH: ${{ github.ref_name }} CI_COMMIT_SHA: ${{ github.sha }} CI_COMMIT_TAG: ${{ github.ref_type == 'tag' && github.ref_name || '' }} - JAVA_INCLUDE: ${{ matrix.os.type == 'macos' && 'darwin' || 'linux' }} + # JAVA_INCLUDE: ${{ matrix.os.type == 'macos' && 'darwin' || 'linux' }} + # -s -w '-extldflags=-z noexecstack' + CGO_LDFLAGS: "${{ matrix.os.type == 'macos' && '-framework CoreServices -framework Foundation' || '' }} -X github.com/interactive-instruments/xtraplatform-cli/xtracfg/cmd.gitTag=${CI_COMMIT_TAG} -X github.com/interactive-instruments/xtraplatform-cli/xtracfg/cmd.gitSha=${CI_COMMIT_SHA} -X github.com/interactive-instruments/xtraplatform-cli/xtracfg/cmd.gitBranch=${CI_COMMIT_BRANCH}" run: | - git config --global --add safe.directory $GITHUB_WORKSPACE - CGO_CFLAGS="-I$JAVA_HOME/include -I$JAVA_HOME/include/${JAVA_INCLUDE}" go build -buildmode c-archive -o dist/libxtracfg.a -ldflags="-s -w '-extldflags=-z noexecstack' -X github.com/interactive-instruments/xtraplatform-cli/xtracfg/cmd.gitTag=${CI_COMMIT_TAG} -X github.com/interactive-instruments/xtraplatform-cli/xtracfg/cmd.gitSha=${CI_COMMIT_SHA} -X github.com/interactive-instruments/xtraplatform-cli/xtracfg/cmd.gitBranch=${CI_COMMIT_BRANCH}" + #git config --global --add safe.directory $GITHUB_WORKSPACE + go build -o build/xtracfg - name: log1 run: | - ls -lR ./dist - - name: build java - run: | - ./gradlew nativeCompile ${{ matrix.os.type == 'linux' && '-PSTATIC=true' || '' }} - - name: log2 - run: | - ls -lR ./build/native/nativeCompile + ls -lR ./build - uses: docker://backplane/upx:latest with: - args: upx --best xtracfg/build/native/nativeCompile/xtracfg - - name: log3 + args: upx --best xtracfg/build/xtracfg + - name: log2 run: | - ls -lR ./build/native/nativeCompile + ls -lR ./build - uses: actions/upload-artifact@v4 with: - name: ${{ matrix.os.platform }} - path: ./xtracfg/build/native/nativeCompile + name: xtracfg-${{ matrix.os.platform }} + path: ./xtracfg/build/xtracfg retention-days: 1 - uses: actions/upload-artifact@v4 if: ${{ matrix.os.platform == 'linux-amd64' }} @@ -72,8 +121,9 @@ jobs: retention-days: 1 docker: + if: ${{ matrix.os.platform == 'linux-amd64' }} runs-on: ubuntu-latest - needs: build + needs: binary steps: - name: load uses: actions/download-artifact@v4 From 442b945a26b4eaf01022ff1297652ce9f73b30cc Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sun, 13 Oct 2024 21:08:37 +0200 Subject: [PATCH 023/167] refactor build --- .github/workflows/xtracfg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 120b90e..6caeb21 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -121,7 +121,7 @@ jobs: retention-days: 1 docker: - if: ${{ matrix.os.platform == 'linux-amd64' }} + if: ${{ github.ref_name == 'main' }} runs-on: ubuntu-latest needs: binary steps: From 0b27459bbb45a702f69af628d5ce44ee1b260ce3 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sun, 13 Oct 2024 21:28:40 +0200 Subject: [PATCH 024/167] refactor build --- .github/workflows/xtracfg.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 6caeb21..c75146c 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -51,6 +51,11 @@ jobs: name: libxtracfg-c-${{ matrix.os.platform }} path: ./libxtracfg/c/build/libxtracfg.a retention-days: 1 + - uses: actions/upload-artifact@v4 + with: + name: libxtracfg-c-hash-${{ matrix.os.platform }} + path: ./libxtracfg/go/xtracfg/libxtracfg.sha1sum + retention-days: 1 binary: runs-on: ${{ matrix.os.runner }} @@ -88,6 +93,9 @@ jobs: - uses: actions/download-artifact@v4 with: name: libxtracfg-c-${{ matrix.os.platform }} + - uses: actions/download-artifact@v4 + with: + name: libxtracfg-c-hash-${{ matrix.os.platform }} - name: build go env: CI_COMMIT_BRANCH: ${{ github.ref_name }} From 2ac8c930dde24d748abea8d234b37c98d41a2ba2 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sun, 13 Oct 2024 21:40:26 +0200 Subject: [PATCH 025/167] refactor build --- .github/workflows/xtracfg.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index c75146c..977c27b 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -96,6 +96,11 @@ jobs: - uses: actions/download-artifact@v4 with: name: libxtracfg-c-hash-${{ matrix.os.platform }} + - name: log2 + run: | + ls -l ../ + ls -l ./ + ls -l ./build - name: build go env: CI_COMMIT_BRANCH: ${{ github.ref_name }} From f79ea7e229ed061cc7b18ccdcd229be7171bbdc8 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sun, 13 Oct 2024 21:55:08 +0200 Subject: [PATCH 026/167] refactor build --- .github/workflows/xtracfg.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 977c27b..7b8014e 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -93,14 +93,17 @@ jobs: - uses: actions/download-artifact@v4 with: name: libxtracfg-c-${{ matrix.os.platform }} + path: ./libxtracfg/c/build/libxtracfg.a - uses: actions/download-artifact@v4 with: name: libxtracfg-c-hash-${{ matrix.os.platform }} + path: ./libxtracfg/go/xtracfg/libxtracfg.sha1sum - name: log2 run: | ls -l ../ ls -l ./ - ls -l ./build + ls -l ../libxtracfg/c/build/ + ls -l ../libxtracfg/go/xtracfg/libxtracfg.sha1sum - name: build go env: CI_COMMIT_BRANCH: ${{ github.ref_name }} From c235abc0dbbc425cc1238d37dbfee08acd37a84d Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Mon, 14 Oct 2024 08:39:58 +0200 Subject: [PATCH 027/167] refactor build --- .github/workflows/xtracfg.yml | 13 +++++-------- libxtracfg/c/wrapper/libxtracfg.c | 12 ++++++++++-- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 7b8014e..ac6ff16 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -106,15 +106,12 @@ jobs: ls -l ../libxtracfg/go/xtracfg/libxtracfg.sha1sum - name: build go env: - CI_COMMIT_BRANCH: ${{ github.ref_name }} - CI_COMMIT_SHA: ${{ github.sha }} - CI_COMMIT_TAG: ${{ github.ref_type == 'tag' && github.ref_name || '' }} - # JAVA_INCLUDE: ${{ matrix.os.type == 'macos' && 'darwin' || 'linux' }} - # -s -w '-extldflags=-z noexecstack' - CGO_LDFLAGS: "${{ matrix.os.type == 'macos' && '-framework CoreServices -framework Foundation' || '' }} -X github.com/interactive-instruments/xtraplatform-cli/xtracfg/cmd.gitTag=${CI_COMMIT_TAG} -X github.com/interactive-instruments/xtraplatform-cli/xtracfg/cmd.gitSha=${CI_COMMIT_SHA} -X github.com/interactive-instruments/xtraplatform-cli/xtracfg/cmd.gitBranch=${CI_COMMIT_BRANCH}" + CMD_GIT_BRANCH: github.com/interactive-instruments/xtraplatform-cli/xtracfg/cmd.gitBranch=${{ github.ref_name }} + CMD_GIT_SHA: github.com/interactive-instruments/xtraplatform-cli/xtracfg/cmd.gitSha=${{ github.sha }} + CMD_GIT_TAG: github.com/interactive-instruments/xtraplatform-cli/xtracfg/cmd.gitTag=${{ github.ref_type == 'tag' && github.ref_name || '' }} + CGO_LDFLAGS: ${{ matrix.os.type == 'macos' && '-framework CoreServices -framework Foundation' || '' }} run: | - #git config --global --add safe.directory $GITHUB_WORKSPACE - go build -o build/xtracfg + go build -o build/xtracfg -ldflags="-s -w '-extldflags=-z noexecstack' -X ${CMD_GIT_TAG} -X ${CMD_GIT_SHA} -X ${CMD_GIT_BRANCH}" - name: log1 run: | ls -lR ./build diff --git a/libxtracfg/c/wrapper/libxtracfg.c b/libxtracfg/c/wrapper/libxtracfg.c index b8a7d94..17076f9 100644 --- a/libxtracfg/c/wrapper/libxtracfg.c +++ b/libxtracfg/c/wrapper/libxtracfg.c @@ -47,12 +47,18 @@ void xtracfg_progress_subscribe(progress_callback callback) { } char* xtracfg_execute(const char* command, int* err) { - if (jvm == NULL || env == NULL) { - printf("ERR\n"); + if (jvm == NULL) { *err = 1; return "Not intialized"; } + jint res = (*jvm)->AttachCurrentThread(jvm, (void**)&env, NULL); + + if (JNI_OK != res) { + *err = 1; + return "Could not attach thread"; + } + jclass cls = (*env)->FindClass(env, "de/ii/xtraplatform/cli/XtraCfg"); jmethodID mid = (*env)->GetStaticMethodID(env, cls, "execute", "(Ljava/lang/String;)Ljava/lang/String;"); //printf("JVM %d %d\n", cls, mid); @@ -69,6 +75,8 @@ char* xtracfg_execute(const char* command, int* err) { strcpy(result3,result); //printf("%s", result3);D"); + (*jvm)->DetachCurrentThread(jvm); + *err = 0; return result3; } From 432a1e5bad1eaf75df2b84cf74d66d9f4ef0103f Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Mon, 14 Oct 2024 08:49:14 +0200 Subject: [PATCH 028/167] refactor build --- .github/workflows/xtracfg.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index ac6ff16..0ff60d3 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -109,9 +109,9 @@ jobs: CMD_GIT_BRANCH: github.com/interactive-instruments/xtraplatform-cli/xtracfg/cmd.gitBranch=${{ github.ref_name }} CMD_GIT_SHA: github.com/interactive-instruments/xtraplatform-cli/xtracfg/cmd.gitSha=${{ github.sha }} CMD_GIT_TAG: github.com/interactive-instruments/xtraplatform-cli/xtracfg/cmd.gitTag=${{ github.ref_type == 'tag' && github.ref_name || '' }} - CGO_LDFLAGS: ${{ matrix.os.type == 'macos' && '-framework CoreServices -framework Foundation' || '' }} + CGO_LDFLAGS: ${{ matrix.os.type == 'macos' && '-framework CoreServices -framework Foundation' || '''-extldflags=-z noexecstack''' }} run: | - go build -o build/xtracfg -ldflags="-s -w '-extldflags=-z noexecstack' -X ${CMD_GIT_TAG} -X ${CMD_GIT_SHA} -X ${CMD_GIT_BRANCH}" + go build -o build/xtracfg -ldflags="-s -w -X ${CMD_GIT_TAG} -X ${CMD_GIT_SHA} -X ${CMD_GIT_BRANCH}" - name: log1 run: | ls -lR ./build From 6cf7c2c18e4cbd27b52294a1b845aa1e1b15f438 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Mon, 14 Oct 2024 09:00:14 +0200 Subject: [PATCH 029/167] refactor build --- .github/workflows/xtracfg.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 0ff60d3..666791a 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -14,7 +14,7 @@ jobs: #- runner: buildjet-2vcpu-ubuntu-2204-arm # type: linux # platform: linux-arm64 - - runner: macos-15 + - runner: macos-latest type: macos platform: darwin-arm64 steps: @@ -93,17 +93,17 @@ jobs: - uses: actions/download-artifact@v4 with: name: libxtracfg-c-${{ matrix.os.platform }} - path: ./libxtracfg/c/build/libxtracfg.a + path: ./libxtracfg/c/build/ - uses: actions/download-artifact@v4 with: name: libxtracfg-c-hash-${{ matrix.os.platform }} - path: ./libxtracfg/go/xtracfg/libxtracfg.sha1sum + path: ./libxtracfg/go/xtracfg/ - name: log2 run: | ls -l ../ ls -l ./ ls -l ../libxtracfg/c/build/ - ls -l ../libxtracfg/go/xtracfg/libxtracfg.sha1sum + ls -l ../libxtracfg/go/xtracfg/ - name: build go env: CMD_GIT_BRANCH: github.com/interactive-instruments/xtraplatform-cli/xtracfg/cmd.gitBranch=${{ github.ref_name }} From 13b9759dd67bdf4f0f4b8c2cf76c6ca40f3477f2 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Mon, 14 Oct 2024 09:32:44 +0200 Subject: [PATCH 030/167] refactor build --- .github/workflows/xtracfg.yml | 35 ++++++++++++++--------------------- libxtracfg/c/build.sh | 1 - libxtracfg/c/test.sh | 5 +++++ 3 files changed, 19 insertions(+), 22 deletions(-) create mode 100755 libxtracfg/c/test.sh diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 666791a..6527297 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -43,9 +43,11 @@ jobs: working-directory: ./libxtracfg/c run: | ./build.sh + ./test.sh - name: log2 run: | ls -l ./libxtracfg/c/build + # TODO: run tests for java, c, go - uses: actions/upload-artifact@v4 with: name: libxtracfg-c-${{ matrix.os.platform }} @@ -81,15 +83,6 @@ jobs: with: go-version: "1.23.2" cache-dependency-path: xtracfg/go.sum - - uses: graalvm/setup-graalvm@v1 - with: - java-version: "21" - distribution: "graalvm" - native-image-job-reports: true - cache: gradle - cache-dependency-path: | - xtracfg/*.gradle* - xtracfg/**/gradle-wrapper.properties - uses: actions/download-artifact@v4 with: name: libxtracfg-c-${{ matrix.os.platform }} @@ -98,13 +91,7 @@ jobs: with: name: libxtracfg-c-hash-${{ matrix.os.platform }} path: ./libxtracfg/go/xtracfg/ - - name: log2 - run: | - ls -l ../ - ls -l ./ - ls -l ../libxtracfg/c/build/ - ls -l ../libxtracfg/go/xtracfg/ - - name: build go + - name: build env: CMD_GIT_BRANCH: github.com/interactive-instruments/xtraplatform-cli/xtracfg/cmd.gitBranch=${{ github.ref_name }} CMD_GIT_SHA: github.com/interactive-instruments/xtraplatform-cli/xtracfg/cmd.gitSha=${{ github.sha }} @@ -115,12 +102,10 @@ jobs: - name: log1 run: | ls -lR ./build - - uses: docker://backplane/upx:latest - with: - args: upx --best xtracfg/build/xtracfg - - name: log2 + - name: test run: | - ls -lR ./build + ./build/xtracfg --version + ./build/xtracfg info - uses: actions/upload-artifact@v4 with: name: xtracfg-${{ matrix.os.platform }} @@ -143,6 +128,12 @@ jobs: - name: log1 run: | ls -lR + - uses: docker://backplane/upx:latest + with: + args: upx --best **/xtracfg + - name: log2 + run: | + ls -lR - uses: bhowell2/github-substring-action@1.0.2 id: short-sha with: @@ -183,3 +174,5 @@ jobs: platforms: | linux/amd64 # linux/arm64 + +# TODO: validate binaries and docker images diff --git a/libxtracfg/c/build.sh b/libxtracfg/c/build.sh index d177662..b10b37c 100755 --- a/libxtracfg/c/build.sh +++ b/libxtracfg/c/build.sh @@ -36,7 +36,6 @@ echo "test" # static if [ "$PLATFORM" = "darwin" ]; then clang -I./ -L./ -Wl,-framework,CoreServices -ldl -lpthread -Wl,-framework,Foundation -o test ../test/main.c ./libxtracfg.a -#echo "test temporarily disabled on macOS" else clang -I./ -L./ -ldl -lpthread -o test ../test/main.c ./libxtracfg.a fi diff --git a/libxtracfg/c/test.sh b/libxtracfg/c/test.sh new file mode 100755 index 0000000..0b30cfa --- /dev/null +++ b/libxtracfg/c/test.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +DIR=$(dirname "$(readlink -f "$0")") + +./build/test "{\"command\": \"info\", \"source\": \"$DIR\"}" From 41ed9b182da392a9fd1418bde3c57c36af6d8cf6 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Mon, 14 Oct 2024 09:46:55 +0200 Subject: [PATCH 031/167] refactor build --- .github/workflows/xtracfg.yml | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 6527297..15f325b 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -8,9 +8,9 @@ jobs: strategy: matrix: os: - #- runner: ubuntu-latest - # type: linux - # platform: linux-amd64 + - runner: ubuntu-latest + type: linux + platform: linux-amd64 #- runner: buildjet-2vcpu-ubuntu-2204-arm # type: linux # platform: linux-arm64 @@ -65,9 +65,9 @@ jobs: strategy: matrix: os: - #- runner: ubuntu-latest - # type: linux - # platform: linux-amd64 + - runner: ubuntu-latest + type: linux + platform: linux-amd64 #- runner: buildjet-2vcpu-ubuntu-2204-arm # type: linux # platform: linux-arm64 @@ -91,10 +91,15 @@ jobs: with: name: libxtracfg-c-hash-${{ matrix.os.platform }} path: ./libxtracfg/go/xtracfg/ + - uses: bhowell2/github-substring-action@1.0.2 + id: short-sha + with: + value: ${{ github.sha }} + length_from_start: 7 - name: build env: CMD_GIT_BRANCH: github.com/interactive-instruments/xtraplatform-cli/xtracfg/cmd.gitBranch=${{ github.ref_name }} - CMD_GIT_SHA: github.com/interactive-instruments/xtraplatform-cli/xtracfg/cmd.gitSha=${{ github.sha }} + CMD_GIT_SHA: github.com/interactive-instruments/xtraplatform-cli/xtracfg/cmd.gitSha=${{ steps.short-sha.outputs.substring }} CMD_GIT_TAG: github.com/interactive-instruments/xtraplatform-cli/xtracfg/cmd.gitTag=${{ github.ref_type == 'tag' && github.ref_name || '' }} CGO_LDFLAGS: ${{ matrix.os.type == 'macos' && '-framework CoreServices -framework Foundation' || '''-extldflags=-z noexecstack''' }} run: | From 991e67a5b4d9e9ca7ad39fc1024473c0bd94408d Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Mon, 14 Oct 2024 09:59:14 +0200 Subject: [PATCH 032/167] fix build --- .github/workflows/xtracfg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 15f325b..eeaff7c 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -101,7 +101,7 @@ jobs: CMD_GIT_BRANCH: github.com/interactive-instruments/xtraplatform-cli/xtracfg/cmd.gitBranch=${{ github.ref_name }} CMD_GIT_SHA: github.com/interactive-instruments/xtraplatform-cli/xtracfg/cmd.gitSha=${{ steps.short-sha.outputs.substring }} CMD_GIT_TAG: github.com/interactive-instruments/xtraplatform-cli/xtracfg/cmd.gitTag=${{ github.ref_type == 'tag' && github.ref_name || '' }} - CGO_LDFLAGS: ${{ matrix.os.type == 'macos' && '-framework CoreServices -framework Foundation' || '''-extldflags=-z noexecstack''' }} + CGO_LDFLAGS: "${{ matrix.os.type == 'macos' && '-framework CoreServices -framework Foundation' || '''-extldflags=-z noexecstack''' }}" run: | go build -o build/xtracfg -ldflags="-s -w -X ${CMD_GIT_TAG} -X ${CMD_GIT_SHA} -X ${CMD_GIT_BRANCH}" - name: log1 From e01a0b7e1de75e62964cb5807eb824e7c5a9f82a Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Mon, 14 Oct 2024 10:54:47 +0200 Subject: [PATCH 033/167] fix build --- .github/workflows/xtracfg.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index eeaff7c..a355e93 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -101,9 +101,9 @@ jobs: CMD_GIT_BRANCH: github.com/interactive-instruments/xtraplatform-cli/xtracfg/cmd.gitBranch=${{ github.ref_name }} CMD_GIT_SHA: github.com/interactive-instruments/xtraplatform-cli/xtracfg/cmd.gitSha=${{ steps.short-sha.outputs.substring }} CMD_GIT_TAG: github.com/interactive-instruments/xtraplatform-cli/xtracfg/cmd.gitTag=${{ github.ref_type == 'tag' && github.ref_name || '' }} - CGO_LDFLAGS: "${{ matrix.os.type == 'macos' && '-framework CoreServices -framework Foundation' || '''-extldflags=-z noexecstack''' }}" + MORE_LDFLAGS: "${{ matrix.os.type == 'macos' && '-framework CoreServices -framework Foundation' || '''-extldflags=-z noexecstack''' }}" run: | - go build -o build/xtracfg -ldflags="-s -w -X ${CMD_GIT_TAG} -X ${CMD_GIT_SHA} -X ${CMD_GIT_BRANCH}" + go build -o build/xtracfg -ldflags="-s -w -X ${CMD_GIT_TAG} -X ${CMD_GIT_SHA} -X ${CMD_GIT_BRANCH} ${MORE_LDFLAGS}" - name: log1 run: | ls -lR ./build From 701a9b45faa2c9fd7e837bb43e3c30cc8cf4ca1e Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Mon, 14 Oct 2024 11:04:49 +0200 Subject: [PATCH 034/167] fix build --- .github/workflows/xtracfg.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index a355e93..bd5f663 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -101,9 +101,9 @@ jobs: CMD_GIT_BRANCH: github.com/interactive-instruments/xtraplatform-cli/xtracfg/cmd.gitBranch=${{ github.ref_name }} CMD_GIT_SHA: github.com/interactive-instruments/xtraplatform-cli/xtracfg/cmd.gitSha=${{ steps.short-sha.outputs.substring }} CMD_GIT_TAG: github.com/interactive-instruments/xtraplatform-cli/xtracfg/cmd.gitTag=${{ github.ref_type == 'tag' && github.ref_name || '' }} - MORE_LDFLAGS: "${{ matrix.os.type == 'macos' && '-framework CoreServices -framework Foundation' || '''-extldflags=-z noexecstack''' }}" + EXT_LDFLAGS: ${{ matrix.os.type == 'macos' && '-framework CoreServices -framework Foundation' || '-z noexecstack' }} run: | - go build -o build/xtracfg -ldflags="-s -w -X ${CMD_GIT_TAG} -X ${CMD_GIT_SHA} -X ${CMD_GIT_BRANCH} ${MORE_LDFLAGS}" + go build -o build/xtracfg -ldflags="-s -w -X ${CMD_GIT_TAG} -X ${CMD_GIT_SHA} -X ${CMD_GIT_BRANCH} '-extldflags=${EXT_LDFLAGS}'" - name: log1 run: | ls -lR ./build From 2d9b5747da841fe51ac307db0c8efc3be3582432 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Mon, 14 Oct 2024 12:17:53 +0200 Subject: [PATCH 035/167] refactor build --- .github/workflows/xtracfg.yml | 1 - xtracfg/Dockerfile | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index bd5f663..ddcf860 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -124,7 +124,6 @@ jobs: retention-days: 1 docker: - if: ${{ github.ref_name == 'main' }} runs-on: ubuntu-latest needs: binary steps: diff --git a/xtracfg/Dockerfile b/xtracfg/Dockerfile index 1b6d6a2..98b036c 100644 --- a/xtracfg/Dockerfile +++ b/xtracfg/Dockerfile @@ -1,6 +1,6 @@ FROM cgr.dev/chainguard/glibc-dynamic:latest ARG TARGETOS ARG TARGETARCH -COPY --chmod=0777 ./$TARGETOS-$TARGETARCH/xtracfg /xtracfg +COPY --chmod=0777 ./xtracfg-$TARGETOS-$TARGETARCH/xtracfg /xtracfg WORKDIR /src ENTRYPOINT ["/xtracfg"] From 879a01b82a438b75cf8c00d8348b32e77ab6fb16 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Mon, 14 Oct 2024 12:56:55 +0200 Subject: [PATCH 036/167] fix build --- .github/workflows/xtracfg.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index ddcf860..5b158ee 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -129,12 +129,14 @@ jobs: steps: - name: load uses: actions/download-artifact@v4 + with: + name: {xtracfg, common}* - name: log1 run: | ls -lR - uses: docker://backplane/upx:latest with: - args: upx --best **/xtracfg + args: upx --best ./xtracfg-*/xtracfg - name: log2 run: | ls -lR From 5cb571ae80ca9628e0cd1e71516cd1d68dacc863 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Mon, 14 Oct 2024 12:57:27 +0200 Subject: [PATCH 037/167] fix build --- .github/workflows/xtracfg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 5b158ee..59616f0 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -130,7 +130,7 @@ jobs: - name: load uses: actions/download-artifact@v4 with: - name: {xtracfg, common}* + name: "{xtracfg, common}*" - name: log1 run: | ls -lR From 3d26a5903bc6bf4c2f2781aa04d32771a3026219 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Mon, 14 Oct 2024 13:11:32 +0200 Subject: [PATCH 038/167] fix build --- .github/workflows/xtracfg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 59616f0..04ade82 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -130,7 +130,7 @@ jobs: - name: load uses: actions/download-artifact@v4 with: - name: "{xtracfg, common}*" + pattern: "{xtracfg-*, common}" - name: log1 run: | ls -lR From 7653614f81b45fc1d40dac54a9eccc8e6e3de2d9 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Mon, 14 Oct 2024 13:22:09 +0200 Subject: [PATCH 039/167] fix build --- .github/workflows/xtracfg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 04ade82..a735496 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -130,7 +130,7 @@ jobs: - name: load uses: actions/download-artifact@v4 with: - pattern: "{xtracfg-*, common}" + pattern: "{common,xtracfg-}*" - name: log1 run: | ls -lR From ee5157bb5ca60c35d93d5ad5017278b15a373cd0 Mon Sep 17 00:00:00 2001 From: PZahnen Date: Mon, 14 Oct 2024 13:36:11 +0200 Subject: [PATCH 040/167] xtracfg wrapped as node.js-addon --- .gitignore | 1 + libxtracfg/js/binding.gyp | 21 ++++++++ libxtracfg/js/lib/binding.js | 6 +++ libxtracfg/js/package-lock.json | 22 ++++++++ libxtracfg/js/package.json | 15 ++++++ libxtracfg/js/src/xtracfg_lib.cc | 84 ++++++++++++++++++++++++++++++ libxtracfg/js/test/test_binding.js | 21 ++++++++ 7 files changed, 170 insertions(+) create mode 100644 libxtracfg/js/binding.gyp create mode 100644 libxtracfg/js/lib/binding.js create mode 100644 libxtracfg/js/package-lock.json create mode 100644 libxtracfg/js/package.json create mode 100644 libxtracfg/js/src/xtracfg_lib.cc create mode 100644 libxtracfg/js/test/test_binding.js diff --git a/.gitignore b/.gitignore index 7bc5816..d6053b0 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ build .DS_Store bin libxtracfg/go/xtracfg/libxtracfg.sha1sum +node_modules diff --git a/libxtracfg/js/binding.gyp b/libxtracfg/js/binding.gyp new file mode 100644 index 0000000..fc93f37 --- /dev/null +++ b/libxtracfg/js/binding.gyp @@ -0,0 +1,21 @@ +{ + 'targets': [ + { + 'target_name': 'xtracfg-lib-native', + 'sources': [ 'src/xtracfg_lib.cc' ], + 'libraries': [ '/Users/pascal/Documents/GitHub/xtraplatform-cli/libxtracfg/c/build/libxtracfg.a' ], + 'include_dirs': [" +#include + +using namespace Napi; + +// Globale Variable für die Callback-Referenz +Napi::FunctionReference callbackRef; + +void Progress(const char* progress) { + Napi::Env env = callbackRef.Env(); + + // Rufe die gespeicherte JavaScript-Funktion mit einem String auf + callbackRef.Call(env.Global(), { Napi::String::New(env, progress) }); +} + + +Napi::String ExecuteCommand(const Napi::CallbackInfo& info) { + Napi::Env env = info.Env(); + + // Überprüfen Sie die Anzahl der Argumente + if (info.Length() < 1 || !info[0].IsString()) { + Napi::TypeError::New(env, "String expected").ThrowAsJavaScriptException(); + return Napi::String::New(env, ""); + } + + // Holen Sie sich das Argument + std::string command = info[0].As().Utf8Value(); + + // Rufen Sie die externe Funktion auf + int err; + char* result2 = xtracfg_execute(command.c_str(), &err); + + // Überprüfen Sie auf Fehler + if (err != 0) { + Napi::Error::New(env, "Error executing command").ThrowAsJavaScriptException(); + return Napi::String::New(env, ""); + } + + // Erstellen Sie das Ergebnis als Napi::String + Napi::String result = Napi::String::New(env, result2); + + // Geben Sie den Speicher frei + free(result2); + + return result; +} + +void Subscribe(const Napi::CallbackInfo& info) { + Napi::Env env = info.Env(); + + // Überprüfen, ob das Argument eine Funktion ist + if (!info[0].IsFunction()) { + Napi::TypeError::New(env, "Function expected").ThrowAsJavaScriptException(); + return; + } + + // Speichere die JavaScript-Funktion in der globalen Variable + callbackRef = Napi::Persistent(info[0].As()); + + // Registriere die Progress-Funktion bei der Bibliothek + xtracfg_progress_subscribe(Progress); +} + + + +void Cleanup(void* arg) { + xtracfg_cleanup(); +} + + +Napi::Object Init(Napi::Env env, Napi::Object exports) { + xtracfg_init(); + + napi_add_env_cleanup_hook(env, Cleanup, nullptr); + + exports.Set(Napi::String::New(env, "xtracfgLib"), + Napi::Function::New(env, ExecuteCommand)); + exports.Set(Napi::String::New(env, "subscribe"), + Napi::Function::New(env, Subscribe)); + return exports; +} + +NODE_API_MODULE(addon, Init) + diff --git a/libxtracfg/js/test/test_binding.js b/libxtracfg/js/test/test_binding.js new file mode 100644 index 0000000..800b1a6 --- /dev/null +++ b/libxtracfg/js/test/test_binding.js @@ -0,0 +1,21 @@ +const xtracfgLib = require("../lib/binding.js"); + +function testBasic() { + const command = + '{"command": "info", "source": "/Users/pascal/Documents/GitHub/demo"}'; + + const result = xtracfgLib.xtracfgLib(command); + + console.log("Result:", result); +} + +function testSubscribe() { + if (typeof xtracfgLib.subscribe === "function") { + xtracfgLib.subscribe(console.log); // Übergabe von console.log als Callback + } else { + console.error("subscribe is not a function"); + } +} + +testSubscribe(); +testBasic(); From aad402d7119f0dc0ba0f1ff733ccbac382e48a69 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Mon, 14 Oct 2024 18:12:53 +0200 Subject: [PATCH 041/167] fix build --- .github/workflows/xtracfg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index a735496..d837645 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -136,7 +136,7 @@ jobs: ls -lR - uses: docker://backplane/upx:latest with: - args: upx --best ./xtracfg-*/xtracfg + args: upx --best ${GITHUB_WORKSPACE}/xtracfg-*/xtracfg - name: log2 run: | ls -lR From 33415e72f9165c248d2297f57bcfc2637a0592e0 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Mon, 14 Oct 2024 18:24:28 +0200 Subject: [PATCH 042/167] fix build --- .github/workflows/xtracfg.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index d837645..b5e6c0d 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -134,9 +134,12 @@ jobs: - name: log1 run: | ls -lR - - uses: docker://backplane/upx:latest + - uses: mmatheson/ghaction-upx@v1 with: - args: upx --best ${GITHUB_WORKSPACE}/xtracfg-*/xtracfg + version: v4.2.4 + files: | + ./xtracfg-*/xtracfg + args: --best - name: log2 run: | ls -lR From e58918e0b2131ac21e46260481e3d6251eeadedc Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Mon, 14 Oct 2024 18:33:48 +0200 Subject: [PATCH 043/167] fix build --- .github/workflows/xtracfg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index b5e6c0d..4dc6fe6 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -134,7 +134,7 @@ jobs: - name: log1 run: | ls -lR - - uses: mmatheson/ghaction-upx@v1 + - uses: mmatheson/ghaction-upx@v1.0.2 with: version: v4.2.4 files: | From 3298a511cd7da6ac7953c8b99bc55f8551bb41f9 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Mon, 14 Oct 2024 19:00:04 +0200 Subject: [PATCH 044/167] fix build --- .github/workflows/xtracfg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 4dc6fe6..323abfc 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -139,7 +139,7 @@ jobs: version: v4.2.4 files: | ./xtracfg-*/xtracfg - args: --best + args: --best --force-macos - name: log2 run: | ls -lR From 66252a949d6784b35f2dd48bbd8b8972f2f42ff8 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Mon, 14 Oct 2024 19:26:14 +0200 Subject: [PATCH 045/167] fix build --- .github/workflows/xtracfg.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 323abfc..7e8b274 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -131,6 +131,9 @@ jobs: uses: actions/download-artifact@v4 with: pattern: "{common,xtracfg-}*" + - name: chmod + run: | + chmod +x ./xtracfg-*/xtracfg - name: log1 run: | ls -lR From 3965c753d2b26f622fc18faccc0e5dcd3c715fa1 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Mon, 14 Oct 2024 19:38:46 +0200 Subject: [PATCH 046/167] fix build --- .github/workflows/xtracfg.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 7e8b274..40a91aa 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -178,6 +178,7 @@ jobs: uses: docker/build-push-action@v6 with: context: . + file: ./common/Dockerfile push: true pull: true tags: | From bc40c1c616585d31d23a0ea67e3da4408a128c5f Mon Sep 17 00:00:00 2001 From: PZahnen Date: Tue, 15 Oct 2024 18:12:13 +0200 Subject: [PATCH 047/167] correction --- libxtracfg/js/lib/binding.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libxtracfg/js/lib/binding.js b/libxtracfg/js/lib/binding.js index 8eb1585..ec35a0f 100644 --- a/libxtracfg/js/lib/binding.js +++ b/libxtracfg/js/lib/binding.js @@ -1,4 +1,4 @@ -const addon = require("../build/Release/xtracfg-lib-native"); +const addon = require("/Users/pascal/Documents/GitHub/xtraplatform-cli/libxtracfg/js/build/Release/xtracfg-lib-native.node"); module.exports = { xtracfgLib: addon.xtracfgLib, From 3a3e081fa63ea5574e26c67305b390da192fbc4a Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Wed, 16 Oct 2024 14:50:58 +0200 Subject: [PATCH 048/167] refactor js --- libxtracfg/js/lib/binding.js | 6 - libxtracfg/js/package-lock.json | 2500 ++++++++++++++++- libxtracfg/js/package.json | 20 +- .../{ => xtracfg-native-binding}/binding.gyp | 8 +- .../xtracfg-native-binding/package-lock.json | 41 + .../js/xtracfg-native-binding/package.json | 18 + .../js/xtracfg-native-binding/src/index.js | 6 + .../src/xtracfg_lib.cc | 2 +- .../test/test_binding.js | 4 +- .../js/xtracfg-transport-native/.esbuild.js | 26 + .../js/xtracfg-transport-native/package.json | 26 + .../js/xtracfg-transport-native/src/index.ts | 23 + .../js/xtracfg-transport-native/test/test.ts | 18 + .../js/xtracfg-transport-native/tsconfig.json | 9 + .../xtracfg-transport-websocket/.esbuild.js | 26 + .../package-lock.json | 2423 ++++++++++++++++ .../xtracfg-transport-websocket/package.json | 25 + .../xtracfg-transport-websocket/src/index.ts | 77 + .../xtracfg-transport-websocket/test/test.ts | 18 + .../xtracfg-transport-websocket/tsconfig.json | 9 + libxtracfg/js/xtracfg/.esbuild.js | 26 + libxtracfg/js/xtracfg/package-lock.json | 2423 ++++++++++++++++ libxtracfg/js/xtracfg/package.json | 28 + libxtracfg/js/xtracfg/protobuf.d.ts | 352 +++ libxtracfg/js/xtracfg/protobuf.js | 692 +++++ libxtracfg/js/xtracfg/src/index.ts | 161 ++ libxtracfg/js/xtracfg/test/test.ts | 40 + libxtracfg/js/xtracfg/tsconfig.json | 9 + libxtracfg/protobuf/xtracfg.proto | 18 + 29 files changed, 9001 insertions(+), 33 deletions(-) delete mode 100644 libxtracfg/js/lib/binding.js rename libxtracfg/js/{ => xtracfg-native-binding}/binding.gyp (69%) create mode 100644 libxtracfg/js/xtracfg-native-binding/package-lock.json create mode 100644 libxtracfg/js/xtracfg-native-binding/package.json create mode 100644 libxtracfg/js/xtracfg-native-binding/src/index.js rename libxtracfg/js/{ => xtracfg-native-binding}/src/xtracfg_lib.cc (97%) rename libxtracfg/js/{ => xtracfg-native-binding}/test/test_binding.js (80%) create mode 100644 libxtracfg/js/xtracfg-transport-native/.esbuild.js create mode 100644 libxtracfg/js/xtracfg-transport-native/package.json create mode 100644 libxtracfg/js/xtracfg-transport-native/src/index.ts create mode 100644 libxtracfg/js/xtracfg-transport-native/test/test.ts create mode 100644 libxtracfg/js/xtracfg-transport-native/tsconfig.json create mode 100644 libxtracfg/js/xtracfg-transport-websocket/.esbuild.js create mode 100644 libxtracfg/js/xtracfg-transport-websocket/package-lock.json create mode 100644 libxtracfg/js/xtracfg-transport-websocket/package.json create mode 100644 libxtracfg/js/xtracfg-transport-websocket/src/index.ts create mode 100644 libxtracfg/js/xtracfg-transport-websocket/test/test.ts create mode 100644 libxtracfg/js/xtracfg-transport-websocket/tsconfig.json create mode 100644 libxtracfg/js/xtracfg/.esbuild.js create mode 100644 libxtracfg/js/xtracfg/package-lock.json create mode 100644 libxtracfg/js/xtracfg/package.json create mode 100644 libxtracfg/js/xtracfg/protobuf.d.ts create mode 100644 libxtracfg/js/xtracfg/protobuf.js create mode 100644 libxtracfg/js/xtracfg/src/index.ts create mode 100644 libxtracfg/js/xtracfg/test/test.ts create mode 100644 libxtracfg/js/xtracfg/tsconfig.json create mode 100644 libxtracfg/protobuf/xtracfg.proto diff --git a/libxtracfg/js/lib/binding.js b/libxtracfg/js/lib/binding.js deleted file mode 100644 index ec35a0f..0000000 --- a/libxtracfg/js/lib/binding.js +++ /dev/null @@ -1,6 +0,0 @@ -const addon = require("/Users/pascal/Documents/GitHub/xtraplatform-cli/libxtracfg/js/build/Release/xtracfg-lib-native.node"); - -module.exports = { - xtracfgLib: addon.xtracfgLib, - subscribe: addon.subscribe, -}; diff --git a/libxtracfg/js/package-lock.json b/libxtracfg/js/package-lock.json index b883d52..2200ad1 100644 --- a/libxtracfg/js/package-lock.json +++ b/libxtracfg/js/package-lock.json @@ -1,22 +1,2508 @@ { - "name": "xtracfg-lib", - "version": "1.0.0", + "name": "libxtracfg-js", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "xtracfg-lib", + "name": "libxtracfg-js", + "workspaces": [ + "xtracfg", + "xtracfg-native-binding", + "xtracfg-transport-native", + "xtracfg-transport-websocket" + ] + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz", + "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz", + "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.8.tgz", + "integrity": "sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.8" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.8.tgz", + "integrity": "sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz", + "integrity": "sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.0.tgz", + "integrity": "sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz", + "integrity": "sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.0.tgz", + "integrity": "sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz", + "integrity": "sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz", + "integrity": "sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz", + "integrity": "sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz", + "integrity": "sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz", + "integrity": "sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz", + "integrity": "sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz", + "integrity": "sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz", + "integrity": "sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz", + "integrity": "sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz", + "integrity": "sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz", + "integrity": "sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz", + "integrity": "sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz", + "integrity": "sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz", + "integrity": "sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz", + "integrity": "sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz", + "integrity": "sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz", + "integrity": "sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz", + "integrity": "sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz", + "integrity": "sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz", + "integrity": "sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@jsdoc/salty": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.8.tgz", + "integrity": "sha512-5e+SFVavj1ORKlKaKr2BmTOekmXbelU7dC0cDkQLqag7xfuTPuGMUFx7KWJuv4bYZrTsoL2Z18VVCOKYxzoHcg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "lodash": "^4.17.21" + }, + "engines": { + "node": ">=v12.0.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", + "license": "BSD-3-Clause" + }, + "node_modules/@tsconfig/node20": { + "version": "20.1.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node20/-/node20-20.1.4.tgz", + "integrity": "sha512-sqgsT69YFeLWf5NtJ4Xq/xAF8p4ZQHlmGW74Nu2tD4+g5fAsposc4ZfaaPixVu4y01BEiDCWLRDCvDM5JOsRxg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/markdown-it": { + "version": "14.1.2", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz", + "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/linkify-it": "^5", + "@types/mdurl": "^2" + } + }, + "node_modules/@types/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "20.16.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.11.tgz", + "integrity": "sha512-y+cTCACu92FyA5fgQSAI8A1H429g7aSK2HsO7K4XYUWc4dY5IUz55JSDIYT6/VsOLfGy8vmvQYC2hfb0iF16Uw==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/acorn": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.13.0.tgz", + "integrity": "sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/async-mutex": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.5.0.tgz", + "integrity": "sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/catharsis": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", + "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.15" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "dev": true, + "license": "MIT", + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/esbuild": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz", + "integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.24.0", + "@esbuild/android-arm": "0.24.0", + "@esbuild/android-arm64": "0.24.0", + "@esbuild/android-x64": "0.24.0", + "@esbuild/darwin-arm64": "0.24.0", + "@esbuild/darwin-x64": "0.24.0", + "@esbuild/freebsd-arm64": "0.24.0", + "@esbuild/freebsd-x64": "0.24.0", + "@esbuild/linux-arm": "0.24.0", + "@esbuild/linux-arm64": "0.24.0", + "@esbuild/linux-ia32": "0.24.0", + "@esbuild/linux-loong64": "0.24.0", + "@esbuild/linux-mips64el": "0.24.0", + "@esbuild/linux-ppc64": "0.24.0", + "@esbuild/linux-riscv64": "0.24.0", + "@esbuild/linux-s390x": "0.24.0", + "@esbuild/linux-x64": "0.24.0", + "@esbuild/netbsd-x64": "0.24.0", + "@esbuild/openbsd-arm64": "0.24.0", + "@esbuild/openbsd-x64": "0.24.0", + "@esbuild/sunos-x64": "0.24.0", + "@esbuild/win32-arm64": "0.24.0", + "@esbuild/win32-ia32": "0.24.0", + "@esbuild/win32-x64": "0.24.0" + } + }, + "node_modules/esbuild-plugin-clean": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esbuild-plugin-clean/-/esbuild-plugin-clean-1.0.1.tgz", + "integrity": "sha512-ul606g0wX6oeobBgi3EqpZtCBCwNwCDivvnshsNS5pUsRylKoxUnDqK0ZIyPinlMbP6s8Opc9y2zOeY1Plhe8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2", + "del": "^6.0.0" + }, + "peerDependencies": { + "esbuild": ">= 0.14.0" + } + }, + "node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs.realpath": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-tsconfig": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", + "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "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.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/js2xmlparser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz", + "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "xmlcreate": "^2.0.4" + } + }, + "node_modules/jsdoc": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.3.tgz", + "integrity": "sha512-Nu7Sf35kXJ1MWDZIMAuATRQTg1iIPdzh7tqJ6jjvaU/GfDf+qi5UV8zJR3Mo+/pYFvm8mzay4+6O5EWigaQBQw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@babel/parser": "^7.20.15", + "@jsdoc/salty": "^0.2.1", + "@types/markdown-it": "^14.1.1", + "bluebird": "^3.7.2", + "catharsis": "^0.9.0", + "escape-string-regexp": "^2.0.0", + "js2xmlparser": "^4.0.2", + "klaw": "^3.0.0", + "markdown-it": "^14.1.0", + "markdown-it-anchor": "^8.6.7", + "marked": "^4.0.10", + "mkdirp": "^1.0.4", + "requizzle": "^0.2.3", + "strip-json-comments": "^3.1.0", + "underscore": "~1.13.2" + }, + "bin": { + "jsdoc": "jsdoc.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/klaw": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", + "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.9" + } + }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "uc.micro": "^2.0.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT" + }, + "node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", + "license": "Apache-2.0" + }, + "node_modules/markdown-it": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" + } + }, + "node_modules/markdown-it-anchor": { + "version": "8.6.7", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz", + "integrity": "sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==", + "dev": true, + "license": "Unlicense", + "peerDependencies": { + "@types/markdown-it": "*", + "markdown-it": "*" + } + }, + "node_modules/marked": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", + "dev": true, + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, "license": "ISC", "dependencies": { - "node-addon-api": "^1.1.0" + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/node-addon-api": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", - "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.2.1.tgz", + "integrity": "sha512-vmEOvxwiH8tlOcv4SyE8RH34rI5/nWVaigUeAUPawC6f0+HoDthwI0vkMu4tbtsZrXq6QXFfrkhjofzKEs5tpA==", + "license": "MIT", + "engines": { + "node": "^18 || ^20 || >= 21" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/protobufjs": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", + "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/protobufjs-cli": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/protobufjs-cli/-/protobufjs-cli-1.1.3.tgz", + "integrity": "sha512-MqD10lqF+FMsOayFiNOdOGNlXc4iKDCf0ZQPkPR+gizYh9gqUeGTWulABUCdI+N67w5RfJ6xhgX4J8pa8qmMXQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "chalk": "^4.0.0", + "escodegen": "^1.13.0", + "espree": "^9.0.0", + "estraverse": "^5.1.0", + "glob": "^8.0.0", + "jsdoc": "^4.0.0", + "minimist": "^1.2.0", + "semver": "^7.1.2", + "tmp": "^0.2.1", + "uglify-js": "^3.7.7" + }, + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "protobufjs": "^7.0.0" + } + }, + "node_modules/protobufjs-cli/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/protobufjs-cli/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/protobufjs-cli/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "license": "MIT" + }, + "node_modules/requizzle": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.4.tgz", + "integrity": "sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.21" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tmp": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.14" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tslib": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz", + "integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==", + "license": "0BSD" + }, + "node_modules/tsx": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.19.1.tgz", + "integrity": "sha512-0flMz1lh74BR4wOvBjuh9olbnwqCPc35OOlfyzHba0Dc+QNUeWX/Gq2YTbnwcWPO3BMd8fkzRVrHcsR+a7z7rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "~0.23.0", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/tsx/node_modules/@esbuild/aix-ppc64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz", + "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-arm": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz", + "integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz", + "integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.1.tgz", + "integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/darwin-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz", + "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/darwin-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz", + "integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/freebsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz", + "integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/freebsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz", + "integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-arm": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz", + "integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz", + "integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-ia32": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz", + "integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-loong64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz", + "integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-mips64el": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz", + "integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-ppc64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz", + "integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-riscv64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz", + "integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-s390x": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz", + "integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz", + "integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/netbsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz", + "integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/openbsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz", + "integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/openbsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz", + "integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/sunos-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz", + "integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz", + "integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-ia32": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz", + "integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz", + "integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/esbuild": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz", + "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.23.1", + "@esbuild/android-arm": "0.23.1", + "@esbuild/android-arm64": "0.23.1", + "@esbuild/android-x64": "0.23.1", + "@esbuild/darwin-arm64": "0.23.1", + "@esbuild/darwin-x64": "0.23.1", + "@esbuild/freebsd-arm64": "0.23.1", + "@esbuild/freebsd-x64": "0.23.1", + "@esbuild/linux-arm": "0.23.1", + "@esbuild/linux-arm64": "0.23.1", + "@esbuild/linux-ia32": "0.23.1", + "@esbuild/linux-loong64": "0.23.1", + "@esbuild/linux-mips64el": "0.23.1", + "@esbuild/linux-ppc64": "0.23.1", + "@esbuild/linux-riscv64": "0.23.1", + "@esbuild/linux-s390x": "0.23.1", + "@esbuild/linux-x64": "0.23.1", + "@esbuild/netbsd-x64": "0.23.1", + "@esbuild/openbsd-arm64": "0.23.1", + "@esbuild/openbsd-x64": "0.23.1", + "@esbuild/sunos-x64": "0.23.1", + "@esbuild/win32-arm64": "0.23.1", + "@esbuild/win32-ia32": "0.23.1", + "@esbuild/win32-x64": "0.23.1" + } + }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typescript": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "dev": true, + "license": "MIT" + }, + "node_modules/uglify-js": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/underscore": { + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", + "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==", + "dev": true, + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "license": "MIT" + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/xmlcreate": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", + "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/xtracfg": { + "resolved": "xtracfg", + "link": true + }, + "node_modules/xtracfg-native-binding": { + "resolved": "xtracfg-native-binding", + "link": true + }, + "node_modules/xtracfg-transport-native": { + "resolved": "xtracfg-transport-native", + "link": true + }, + "node_modules/xtracfg-transport-websocket": { + "resolved": "xtracfg-transport-websocket", + "link": true + }, + "xtracfg": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "async-mutex": "^0.5.0", + "protobufjs": "^7.4.0" + }, + "devDependencies": { + "@tsconfig/node20": "^20.1.4", + "@types/node": "^20.12.7", + "esbuild": "0.24.0", + "esbuild-plugin-clean": "^1.0.1", + "protobufjs-cli": "^1.1.3", + "tsx": "^4.7.2", + "typescript": "^5.4.5" + } + }, + "xtracfg-native-binding": { + "version": "1.0.0", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "bindings": "~1.5.0", + "node-addon-api": "^8.2.1" + } + }, + "xtracfg-native-binding/node_modules/bindings": { + "version": "1.5.0", + "license": "MIT", + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "xtracfg-native-binding/node_modules/file-uri-to-path": { + "version": "1.0.0", + "license": "MIT" + }, + "xtracfg-transport-native": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "xtracfg": "^1.0.0", + "xtracfg-native-binding": "^1.0.0" + }, + "devDependencies": { + "@tsconfig/node20": "^20.1.4", + "@types/node": "^20.12.7", + "esbuild": "0.24.0", + "esbuild-plugin-clean": "^1.0.1", + "protobufjs-cli": "^1.1.3", + "tsx": "^4.7.2", + "typescript": "^5.4.5" + } + }, + "xtracfg-transport-websocket": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "async-mutex": "^0.5.0", + "xtracfg": "^1.0.0" + }, + "devDependencies": { + "@tsconfig/node20": "^20.1.4", + "@types/node": "^20.12.7", + "esbuild": "0.24.0", + "esbuild-plugin-clean": "^1.0.1", + "tsx": "^4.7.2", + "typescript": "^5.4.5" + } } } } diff --git a/libxtracfg/js/package.json b/libxtracfg/js/package.json index a2e1761..81ab18a 100644 --- a/libxtracfg/js/package.json +++ b/libxtracfg/js/package.json @@ -1,15 +1,9 @@ { - "main": "lib/binding.js", - "dependencies": { - "node-addon-api": "^1.1.0" - }, - "scripts": { - "test": "node --napi-modules ./test/test_binding.js" - }, - "gypfile": true, - "name": "xtracfg-lib", - "description": "", - "version": "1.0.0", - "author": "", - "license": "ISC" + "name": "libxtracfg-js", + "workspaces": [ + "xtracfg", + "xtracfg-native-binding", + "xtracfg-transport-native", + "xtracfg-transport-websocket" + ] } diff --git a/libxtracfg/js/binding.gyp b/libxtracfg/js/xtracfg-native-binding/binding.gyp similarity index 69% rename from libxtracfg/js/binding.gyp rename to libxtracfg/js/xtracfg-native-binding/binding.gyp index fc93f37..7a71ed2 100644 --- a/libxtracfg/js/binding.gyp +++ b/libxtracfg/js/xtracfg-native-binding/binding.gyp @@ -1,10 +1,10 @@ { 'targets': [ { - 'target_name': 'xtracfg-lib-native', + 'target_name': 'xtracfg-native', 'sources': [ 'src/xtracfg_lib.cc' ], - 'libraries': [ '/Users/pascal/Documents/GitHub/xtraplatform-cli/libxtracfg/c/build/libxtracfg.a' ], - 'include_dirs': ["= 21" + } + } + } +} diff --git a/libxtracfg/js/xtracfg-native-binding/package.json b/libxtracfg/js/xtracfg-native-binding/package.json new file mode 100644 index 0000000..c324e1f --- /dev/null +++ b/libxtracfg/js/xtracfg-native-binding/package.json @@ -0,0 +1,18 @@ +{ + "name": "xtracfg-native-binding", + "description": "", + "version": "1.0.0", + "author": "", + "license": "MIT", + "type": "commonjs", + "main": "src/index.js", + "dependencies": { + "bindings": "~1.5.0", + "node-addon-api": "^8.2.1" + }, + "scripts": { + "build": "node-gyp rebuild", + "test": "node --napi-modules ./test/test_binding.js" + }, + "gypfile": true +} diff --git a/libxtracfg/js/xtracfg-native-binding/src/index.js b/libxtracfg/js/xtracfg-native-binding/src/index.js new file mode 100644 index 0000000..a44087e --- /dev/null +++ b/libxtracfg/js/xtracfg-native-binding/src/index.js @@ -0,0 +1,6 @@ +const addon = require("bindings")("xtracfg-native"); + +module.exports = { + execute: addon.execute, + subscribe: addon.subscribe, +}; diff --git a/libxtracfg/js/src/xtracfg_lib.cc b/libxtracfg/js/xtracfg-native-binding/src/xtracfg_lib.cc similarity index 97% rename from libxtracfg/js/src/xtracfg_lib.cc rename to libxtracfg/js/xtracfg-native-binding/src/xtracfg_lib.cc index 23eda7d..1bc7697 100644 --- a/libxtracfg/js/src/xtracfg_lib.cc +++ b/libxtracfg/js/xtracfg-native-binding/src/xtracfg_lib.cc @@ -73,7 +73,7 @@ Napi::Object Init(Napi::Env env, Napi::Object exports) { napi_add_env_cleanup_hook(env, Cleanup, nullptr); - exports.Set(Napi::String::New(env, "xtracfgLib"), + exports.Set(Napi::String::New(env, "execute"), Napi::Function::New(env, ExecuteCommand)); exports.Set(Napi::String::New(env, "subscribe"), Napi::Function::New(env, Subscribe)); diff --git a/libxtracfg/js/test/test_binding.js b/libxtracfg/js/xtracfg-native-binding/test/test_binding.js similarity index 80% rename from libxtracfg/js/test/test_binding.js rename to libxtracfg/js/xtracfg-native-binding/test/test_binding.js index 800b1a6..0d6f1cf 100644 --- a/libxtracfg/js/test/test_binding.js +++ b/libxtracfg/js/xtracfg-native-binding/test/test_binding.js @@ -1,10 +1,10 @@ -const xtracfgLib = require("../lib/binding.js"); +const xtracfgLib = require("../src/index.js"); function testBasic() { const command = '{"command": "info", "source": "/Users/pascal/Documents/GitHub/demo"}'; - const result = xtracfgLib.xtracfgLib(command); + const result = xtracfgLib.execute(command); console.log("Result:", result); } diff --git a/libxtracfg/js/xtracfg-transport-native/.esbuild.js b/libxtracfg/js/xtracfg-transport-native/.esbuild.js new file mode 100644 index 0000000..4b95647 --- /dev/null +++ b/libxtracfg/js/xtracfg-transport-native/.esbuild.js @@ -0,0 +1,26 @@ +import { build } from "esbuild"; +import { clean } from "esbuild-plugin-clean"; + +await build({ + entryPoints: ["src/index.ts"], + bundle: true, + platform: "node", + target: "node20", + format: "esm", + minify: true, + //logLevel: "debug", + /*loader: { + ".node": "copy", + },*/ + outdir: "build", + outbase: "node_modules", + entryNames: "[name]", + define: { + "process.env.NODE_ENV": '"production"', + }, + plugins: [ + clean({ + patterns: ["./build/*"], + }), + ], +}); diff --git a/libxtracfg/js/xtracfg-transport-native/package.json b/libxtracfg/js/xtracfg-transport-native/package.json new file mode 100644 index 0000000..e428233 --- /dev/null +++ b/libxtracfg/js/xtracfg-transport-native/package.json @@ -0,0 +1,26 @@ +{ + "name": "xtracfg-transport-native", + "description": "", + "version": "1.0.0", + "author": "", + "license": "MIT", + "type": "module", + "main": "build/index.js", + "scripts": { + "build": "node .esbuild.js", + "test": "tsx ./test/test.ts" + }, + "dependencies": { + "xtracfg": "^1.0.0", + "xtracfg-native-binding": "^1.0.0" + }, + "devDependencies": { + "@tsconfig/node20": "^20.1.4", + "@types/node": "^20.12.7", + "esbuild": "0.24.0", + "esbuild-plugin-clean": "^1.0.1", + "protobufjs-cli": "^1.1.3", + "tsx": "^4.7.2", + "typescript": "^5.4.5" + } +} diff --git a/libxtracfg/js/xtracfg-transport-native/src/index.ts b/libxtracfg/js/xtracfg-transport-native/src/index.ts new file mode 100644 index 0000000..4e1ae73 --- /dev/null +++ b/libxtracfg/js/xtracfg-transport-native/src/index.ts @@ -0,0 +1,23 @@ +import { Transport, TransportCreator } from "xtracfg"; +import addon from "xtracfg-native-binding"; + +let listener: (response: Response) => void; + +const transport: TransportCreator = () => { + return async (): Promise => { + return { + send: (request) => { + if (listener) { + const response = addon.execute(JSON.stringify(request)); + + listener.call(null, JSON.parse(response)); + } + }, + listen: (handler) => { + listener = handler; + }, + }; + }; +}; + +export default transport; diff --git a/libxtracfg/js/xtracfg-transport-native/test/test.ts b/libxtracfg/js/xtracfg-transport-native/test/test.ts new file mode 100644 index 0000000..825dc90 --- /dev/null +++ b/libxtracfg/js/xtracfg-transport-native/test/test.ts @@ -0,0 +1,18 @@ +import { connect } from "xtracfg"; +import transport from "../src"; + +const xtracfg = connect(transport); + +xtracfg.listen( + (response) => { + console.log("success", response); + }, + (error) => { + console.error("error", error); + } +); + +xtracfg.send({ + command: "info", + source: "/Users/pascal/Documents/GitHub/demo", +}); diff --git a/libxtracfg/js/xtracfg-transport-native/tsconfig.json b/libxtracfg/js/xtracfg-transport-native/tsconfig.json new file mode 100644 index 0000000..3023874 --- /dev/null +++ b/libxtracfg/js/xtracfg-transport-native/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@tsconfig/node20/tsconfig.json", + "compilerOptions": { + "rootDir": "./src" /* Specify the root folder within your source files. */, + "outDir": "./build" /* Specify an output folder for all emitted files. */, + "allowJs": true /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */, + "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */ + } +} diff --git a/libxtracfg/js/xtracfg-transport-websocket/.esbuild.js b/libxtracfg/js/xtracfg-transport-websocket/.esbuild.js new file mode 100644 index 0000000..4b95647 --- /dev/null +++ b/libxtracfg/js/xtracfg-transport-websocket/.esbuild.js @@ -0,0 +1,26 @@ +import { build } from "esbuild"; +import { clean } from "esbuild-plugin-clean"; + +await build({ + entryPoints: ["src/index.ts"], + bundle: true, + platform: "node", + target: "node20", + format: "esm", + minify: true, + //logLevel: "debug", + /*loader: { + ".node": "copy", + },*/ + outdir: "build", + outbase: "node_modules", + entryNames: "[name]", + define: { + "process.env.NODE_ENV": '"production"', + }, + plugins: [ + clean({ + patterns: ["./build/*"], + }), + ], +}); diff --git a/libxtracfg/js/xtracfg-transport-websocket/package-lock.json b/libxtracfg/js/xtracfg-transport-websocket/package-lock.json new file mode 100644 index 0000000..009c241 --- /dev/null +++ b/libxtracfg/js/xtracfg-transport-websocket/package-lock.json @@ -0,0 +1,2423 @@ +{ + "name": "xtracfg", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "xtracfg", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "async-mutex": "^0.5.0", + "protobufjs": "^7.4.0" + }, + "devDependencies": { + "@tsconfig/node20": "^20.1.4", + "@types/node": "^20.12.7", + "esbuild": "0.24.0", + "esbuild-plugin-clean": "^1.0.1", + "protobufjs-cli": "^1.1.3", + "tsx": "^4.7.2", + "typescript": "^5.4.5" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz", + "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz", + "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.8.tgz", + "integrity": "sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.8" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.8.tgz", + "integrity": "sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz", + "integrity": "sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.0.tgz", + "integrity": "sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz", + "integrity": "sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.0.tgz", + "integrity": "sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz", + "integrity": "sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz", + "integrity": "sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz", + "integrity": "sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz", + "integrity": "sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz", + "integrity": "sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz", + "integrity": "sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz", + "integrity": "sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz", + "integrity": "sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz", + "integrity": "sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz", + "integrity": "sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz", + "integrity": "sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz", + "integrity": "sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz", + "integrity": "sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz", + "integrity": "sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz", + "integrity": "sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz", + "integrity": "sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz", + "integrity": "sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz", + "integrity": "sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz", + "integrity": "sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz", + "integrity": "sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@jsdoc/salty": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.8.tgz", + "integrity": "sha512-5e+SFVavj1ORKlKaKr2BmTOekmXbelU7dC0cDkQLqag7xfuTPuGMUFx7KWJuv4bYZrTsoL2Z18VVCOKYxzoHcg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "lodash": "^4.17.21" + }, + "engines": { + "node": ">=v12.0.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", + "license": "BSD-3-Clause" + }, + "node_modules/@tsconfig/node20": { + "version": "20.1.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node20/-/node20-20.1.4.tgz", + "integrity": "sha512-sqgsT69YFeLWf5NtJ4Xq/xAF8p4ZQHlmGW74Nu2tD4+g5fAsposc4ZfaaPixVu4y01BEiDCWLRDCvDM5JOsRxg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/markdown-it": { + "version": "14.1.2", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz", + "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/linkify-it": "^5", + "@types/mdurl": "^2" + } + }, + "node_modules/@types/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "20.16.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.11.tgz", + "integrity": "sha512-y+cTCACu92FyA5fgQSAI8A1H429g7aSK2HsO7K4XYUWc4dY5IUz55JSDIYT6/VsOLfGy8vmvQYC2hfb0iF16Uw==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/async-mutex": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.5.0.tgz", + "integrity": "sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/catharsis": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", + "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.15" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "dev": true, + "license": "MIT", + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/esbuild": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz", + "integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.24.0", + "@esbuild/android-arm": "0.24.0", + "@esbuild/android-arm64": "0.24.0", + "@esbuild/android-x64": "0.24.0", + "@esbuild/darwin-arm64": "0.24.0", + "@esbuild/darwin-x64": "0.24.0", + "@esbuild/freebsd-arm64": "0.24.0", + "@esbuild/freebsd-x64": "0.24.0", + "@esbuild/linux-arm": "0.24.0", + "@esbuild/linux-arm64": "0.24.0", + "@esbuild/linux-ia32": "0.24.0", + "@esbuild/linux-loong64": "0.24.0", + "@esbuild/linux-mips64el": "0.24.0", + "@esbuild/linux-ppc64": "0.24.0", + "@esbuild/linux-riscv64": "0.24.0", + "@esbuild/linux-s390x": "0.24.0", + "@esbuild/linux-x64": "0.24.0", + "@esbuild/netbsd-x64": "0.24.0", + "@esbuild/openbsd-arm64": "0.24.0", + "@esbuild/openbsd-x64": "0.24.0", + "@esbuild/sunos-x64": "0.24.0", + "@esbuild/win32-arm64": "0.24.0", + "@esbuild/win32-ia32": "0.24.0", + "@esbuild/win32-x64": "0.24.0" + } + }, + "node_modules/esbuild-plugin-clean": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esbuild-plugin-clean/-/esbuild-plugin-clean-1.0.1.tgz", + "integrity": "sha512-ul606g0wX6oeobBgi3EqpZtCBCwNwCDivvnshsNS5pUsRylKoxUnDqK0ZIyPinlMbP6s8Opc9y2zOeY1Plhe8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2", + "del": "^6.0.0" + }, + "peerDependencies": { + "esbuild": ">= 0.14.0" + } + }, + "node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-tsconfig": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", + "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "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.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/js2xmlparser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz", + "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "xmlcreate": "^2.0.4" + } + }, + "node_modules/jsdoc": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.3.tgz", + "integrity": "sha512-Nu7Sf35kXJ1MWDZIMAuATRQTg1iIPdzh7tqJ6jjvaU/GfDf+qi5UV8zJR3Mo+/pYFvm8mzay4+6O5EWigaQBQw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@babel/parser": "^7.20.15", + "@jsdoc/salty": "^0.2.1", + "@types/markdown-it": "^14.1.1", + "bluebird": "^3.7.2", + "catharsis": "^0.9.0", + "escape-string-regexp": "^2.0.0", + "js2xmlparser": "^4.0.2", + "klaw": "^3.0.0", + "markdown-it": "^14.1.0", + "markdown-it-anchor": "^8.6.7", + "marked": "^4.0.10", + "mkdirp": "^1.0.4", + "requizzle": "^0.2.3", + "strip-json-comments": "^3.1.0", + "underscore": "~1.13.2" + }, + "bin": { + "jsdoc": "jsdoc.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/klaw": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", + "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.9" + } + }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "uc.micro": "^2.0.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT" + }, + "node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", + "license": "Apache-2.0" + }, + "node_modules/markdown-it": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" + } + }, + "node_modules/markdown-it-anchor": { + "version": "8.6.7", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz", + "integrity": "sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==", + "dev": true, + "license": "Unlicense", + "peerDependencies": { + "@types/markdown-it": "*", + "markdown-it": "*" + } + }, + "node_modules/marked": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", + "dev": true, + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/protobufjs": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", + "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/protobufjs-cli": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/protobufjs-cli/-/protobufjs-cli-1.1.3.tgz", + "integrity": "sha512-MqD10lqF+FMsOayFiNOdOGNlXc4iKDCf0ZQPkPR+gizYh9gqUeGTWulABUCdI+N67w5RfJ6xhgX4J8pa8qmMXQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "chalk": "^4.0.0", + "escodegen": "^1.13.0", + "espree": "^9.0.0", + "estraverse": "^5.1.0", + "glob": "^8.0.0", + "jsdoc": "^4.0.0", + "minimist": "^1.2.0", + "semver": "^7.1.2", + "tmp": "^0.2.1", + "uglify-js": "^3.7.7" + }, + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "protobufjs": "^7.0.0" + } + }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/requizzle": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.4.tgz", + "integrity": "sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.21" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tmp": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.14" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "license": "0BSD" + }, + "node_modules/tsx": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.19.1.tgz", + "integrity": "sha512-0flMz1lh74BR4wOvBjuh9olbnwqCPc35OOlfyzHba0Dc+QNUeWX/Gq2YTbnwcWPO3BMd8fkzRVrHcsR+a7z7rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "~0.23.0", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/tsx/node_modules/@esbuild/aix-ppc64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz", + "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-arm": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz", + "integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz", + "integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.1.tgz", + "integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/darwin-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz", + "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/darwin-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz", + "integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/freebsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz", + "integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/freebsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz", + "integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-arm": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz", + "integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz", + "integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-ia32": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz", + "integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-loong64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz", + "integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-mips64el": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz", + "integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-ppc64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz", + "integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-riscv64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz", + "integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-s390x": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz", + "integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz", + "integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/netbsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz", + "integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/openbsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz", + "integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/openbsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz", + "integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/sunos-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz", + "integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz", + "integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-ia32": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz", + "integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz", + "integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/esbuild": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz", + "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.23.1", + "@esbuild/android-arm": "0.23.1", + "@esbuild/android-arm64": "0.23.1", + "@esbuild/android-x64": "0.23.1", + "@esbuild/darwin-arm64": "0.23.1", + "@esbuild/darwin-x64": "0.23.1", + "@esbuild/freebsd-arm64": "0.23.1", + "@esbuild/freebsd-x64": "0.23.1", + "@esbuild/linux-arm": "0.23.1", + "@esbuild/linux-arm64": "0.23.1", + "@esbuild/linux-ia32": "0.23.1", + "@esbuild/linux-loong64": "0.23.1", + "@esbuild/linux-mips64el": "0.23.1", + "@esbuild/linux-ppc64": "0.23.1", + "@esbuild/linux-riscv64": "0.23.1", + "@esbuild/linux-s390x": "0.23.1", + "@esbuild/linux-x64": "0.23.1", + "@esbuild/netbsd-x64": "0.23.1", + "@esbuild/openbsd-arm64": "0.23.1", + "@esbuild/openbsd-x64": "0.23.1", + "@esbuild/sunos-x64": "0.23.1", + "@esbuild/win32-arm64": "0.23.1", + "@esbuild/win32-ia32": "0.23.1", + "@esbuild/win32-x64": "0.23.1" + } + }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typescript": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "dev": true, + "license": "MIT" + }, + "node_modules/uglify-js": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/underscore": { + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", + "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==", + "dev": true, + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "license": "MIT" + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/xmlcreate": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", + "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==", + "dev": true, + "license": "Apache-2.0" + } + } +} diff --git a/libxtracfg/js/xtracfg-transport-websocket/package.json b/libxtracfg/js/xtracfg-transport-websocket/package.json new file mode 100644 index 0000000..7713ca4 --- /dev/null +++ b/libxtracfg/js/xtracfg-transport-websocket/package.json @@ -0,0 +1,25 @@ +{ + "name": "xtracfg-transport-websocket", + "description": "", + "version": "1.0.0", + "author": "", + "license": "MIT", + "type": "module", + "main": "build/index.js", + "scripts": { + "build": "node .esbuild.js", + "test": "tsx ./test/test.ts" + }, + "dependencies": { + "async-mutex": "^0.5.0", + "xtracfg": "^1.0.0" + }, + "devDependencies": { + "@tsconfig/node20": "^20.1.4", + "@types/node": "^20.12.7", + "esbuild": "0.24.0", + "esbuild-plugin-clean": "^1.0.1", + "tsx": "^4.7.2", + "typescript": "^5.4.5" + } +} diff --git a/libxtracfg/js/xtracfg-transport-websocket/src/index.ts b/libxtracfg/js/xtracfg-transport-websocket/src/index.ts new file mode 100644 index 0000000..350c347 --- /dev/null +++ b/libxtracfg/js/xtracfg-transport-websocket/src/index.ts @@ -0,0 +1,77 @@ +import { Mutex } from "async-mutex"; +import { Transport, TransportCreator, TransportOptions } from "."; + +export const transport: TransportCreator = ({ debug }: TransportOptions) => { + return async (): Promise => { + const socket = getSocket(debug); + + return { + send: (request) => + socket.then((s) => { + s?.send(JSON.stringify(request)); + }), + listen: (handler) => + socket.then((s) => { + s?.addEventListener("message", (event) => { + const response = JSON.parse(event.data); + + handler(response); + }); + }), + }; + }; +}; + +export default transport; + +const mutex = new Mutex(); +let _socket: WebSocket; + +const getSocket = async (dev?: boolean): Promise => { + const release = await mutex.acquire(); + + if (_socket && _socket.readyState === _socket.OPEN) { + release(); + + return Promise.resolve(_socket); + } + + if ( + !_socket || + _socket.readyState === _socket.CLOSED || + _socket.readyState === _socket.CLOSING + ) { + if (dev) { + console.log("CONNECTING to websocket", "ws://localhost:8081/sock"); + _socket = new WebSocket("ws://localhost:8081/sock"); + } else { + //console.log("CONNECTING to websocket", `ws://${self.location.host}/proxy/8081/`); + const protocol = self.location.protocol === "https:" ? "wss" : "ws"; + _socket = new WebSocket( + `${protocol}://${self.location.host}/proxy/8081/` + ); + } + } + + return new Promise((resolve, reject) => { + _socket.addEventListener("open", () => { + resolve(_socket); + release(); + }); + _socket.addEventListener("error", () => { + reject("websocket error"); + release(); + }); + _socket.addEventListener("close", (event) => { + if (dev && event.wasClean) { + console.log("websocket was closed", event.code, event.reason); + } else if (!event.wasClean) { + console.error( + "websocket was closed unexpectedly", + event.code, + event.reason + ); + } + }); + }); +}; diff --git a/libxtracfg/js/xtracfg-transport-websocket/test/test.ts b/libxtracfg/js/xtracfg-transport-websocket/test/test.ts new file mode 100644 index 0000000..dbb1051 --- /dev/null +++ b/libxtracfg/js/xtracfg-transport-websocket/test/test.ts @@ -0,0 +1,18 @@ +import { connect } from "xtracfg"; +import transport from "../src"; + +const xtracfg = connect(transport, { debug: true }); + +xtracfg.listen( + (response) => { + console.log("success", response); + }, + (error) => { + console.error("error", error); + } +); + +xtracfg.send({ + command: "info", + source: "/Users/pascal/Documents/GitHub/demo", +}); diff --git a/libxtracfg/js/xtracfg-transport-websocket/tsconfig.json b/libxtracfg/js/xtracfg-transport-websocket/tsconfig.json new file mode 100644 index 0000000..3023874 --- /dev/null +++ b/libxtracfg/js/xtracfg-transport-websocket/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@tsconfig/node20/tsconfig.json", + "compilerOptions": { + "rootDir": "./src" /* Specify the root folder within your source files. */, + "outDir": "./build" /* Specify an output folder for all emitted files. */, + "allowJs": true /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */, + "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */ + } +} diff --git a/libxtracfg/js/xtracfg/.esbuild.js b/libxtracfg/js/xtracfg/.esbuild.js new file mode 100644 index 0000000..4b95647 --- /dev/null +++ b/libxtracfg/js/xtracfg/.esbuild.js @@ -0,0 +1,26 @@ +import { build } from "esbuild"; +import { clean } from "esbuild-plugin-clean"; + +await build({ + entryPoints: ["src/index.ts"], + bundle: true, + platform: "node", + target: "node20", + format: "esm", + minify: true, + //logLevel: "debug", + /*loader: { + ".node": "copy", + },*/ + outdir: "build", + outbase: "node_modules", + entryNames: "[name]", + define: { + "process.env.NODE_ENV": '"production"', + }, + plugins: [ + clean({ + patterns: ["./build/*"], + }), + ], +}); diff --git a/libxtracfg/js/xtracfg/package-lock.json b/libxtracfg/js/xtracfg/package-lock.json new file mode 100644 index 0000000..009c241 --- /dev/null +++ b/libxtracfg/js/xtracfg/package-lock.json @@ -0,0 +1,2423 @@ +{ + "name": "xtracfg", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "xtracfg", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "async-mutex": "^0.5.0", + "protobufjs": "^7.4.0" + }, + "devDependencies": { + "@tsconfig/node20": "^20.1.4", + "@types/node": "^20.12.7", + "esbuild": "0.24.0", + "esbuild-plugin-clean": "^1.0.1", + "protobufjs-cli": "^1.1.3", + "tsx": "^4.7.2", + "typescript": "^5.4.5" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz", + "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz", + "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.8.tgz", + "integrity": "sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.8" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.25.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.8.tgz", + "integrity": "sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz", + "integrity": "sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.0.tgz", + "integrity": "sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz", + "integrity": "sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.0.tgz", + "integrity": "sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz", + "integrity": "sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz", + "integrity": "sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz", + "integrity": "sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz", + "integrity": "sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz", + "integrity": "sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz", + "integrity": "sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz", + "integrity": "sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz", + "integrity": "sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz", + "integrity": "sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz", + "integrity": "sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz", + "integrity": "sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz", + "integrity": "sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz", + "integrity": "sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz", + "integrity": "sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz", + "integrity": "sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz", + "integrity": "sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz", + "integrity": "sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz", + "integrity": "sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz", + "integrity": "sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz", + "integrity": "sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@jsdoc/salty": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.8.tgz", + "integrity": "sha512-5e+SFVavj1ORKlKaKr2BmTOekmXbelU7dC0cDkQLqag7xfuTPuGMUFx7KWJuv4bYZrTsoL2Z18VVCOKYxzoHcg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "lodash": "^4.17.21" + }, + "engines": { + "node": ">=v12.0.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", + "license": "BSD-3-Clause" + }, + "node_modules/@tsconfig/node20": { + "version": "20.1.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node20/-/node20-20.1.4.tgz", + "integrity": "sha512-sqgsT69YFeLWf5NtJ4Xq/xAF8p4ZQHlmGW74Nu2tD4+g5fAsposc4ZfaaPixVu4y01BEiDCWLRDCvDM5JOsRxg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/markdown-it": { + "version": "14.1.2", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz", + "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/linkify-it": "^5", + "@types/mdurl": "^2" + } + }, + "node_modules/@types/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "20.16.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.11.tgz", + "integrity": "sha512-y+cTCACu92FyA5fgQSAI8A1H429g7aSK2HsO7K4XYUWc4dY5IUz55JSDIYT6/VsOLfGy8vmvQYC2hfb0iF16Uw==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/async-mutex": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.5.0.tgz", + "integrity": "sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/catharsis": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", + "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.15" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "dev": true, + "license": "MIT", + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/esbuild": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz", + "integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.24.0", + "@esbuild/android-arm": "0.24.0", + "@esbuild/android-arm64": "0.24.0", + "@esbuild/android-x64": "0.24.0", + "@esbuild/darwin-arm64": "0.24.0", + "@esbuild/darwin-x64": "0.24.0", + "@esbuild/freebsd-arm64": "0.24.0", + "@esbuild/freebsd-x64": "0.24.0", + "@esbuild/linux-arm": "0.24.0", + "@esbuild/linux-arm64": "0.24.0", + "@esbuild/linux-ia32": "0.24.0", + "@esbuild/linux-loong64": "0.24.0", + "@esbuild/linux-mips64el": "0.24.0", + "@esbuild/linux-ppc64": "0.24.0", + "@esbuild/linux-riscv64": "0.24.0", + "@esbuild/linux-s390x": "0.24.0", + "@esbuild/linux-x64": "0.24.0", + "@esbuild/netbsd-x64": "0.24.0", + "@esbuild/openbsd-arm64": "0.24.0", + "@esbuild/openbsd-x64": "0.24.0", + "@esbuild/sunos-x64": "0.24.0", + "@esbuild/win32-arm64": "0.24.0", + "@esbuild/win32-ia32": "0.24.0", + "@esbuild/win32-x64": "0.24.0" + } + }, + "node_modules/esbuild-plugin-clean": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esbuild-plugin-clean/-/esbuild-plugin-clean-1.0.1.tgz", + "integrity": "sha512-ul606g0wX6oeobBgi3EqpZtCBCwNwCDivvnshsNS5pUsRylKoxUnDqK0ZIyPinlMbP6s8Opc9y2zOeY1Plhe8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2", + "del": "^6.0.0" + }, + "peerDependencies": { + "esbuild": ">= 0.14.0" + } + }, + "node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-tsconfig": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", + "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "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.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/js2xmlparser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz", + "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "xmlcreate": "^2.0.4" + } + }, + "node_modules/jsdoc": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.3.tgz", + "integrity": "sha512-Nu7Sf35kXJ1MWDZIMAuATRQTg1iIPdzh7tqJ6jjvaU/GfDf+qi5UV8zJR3Mo+/pYFvm8mzay4+6O5EWigaQBQw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@babel/parser": "^7.20.15", + "@jsdoc/salty": "^0.2.1", + "@types/markdown-it": "^14.1.1", + "bluebird": "^3.7.2", + "catharsis": "^0.9.0", + "escape-string-regexp": "^2.0.0", + "js2xmlparser": "^4.0.2", + "klaw": "^3.0.0", + "markdown-it": "^14.1.0", + "markdown-it-anchor": "^8.6.7", + "marked": "^4.0.10", + "mkdirp": "^1.0.4", + "requizzle": "^0.2.3", + "strip-json-comments": "^3.1.0", + "underscore": "~1.13.2" + }, + "bin": { + "jsdoc": "jsdoc.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/klaw": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", + "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.9" + } + }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "uc.micro": "^2.0.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT" + }, + "node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", + "license": "Apache-2.0" + }, + "node_modules/markdown-it": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" + } + }, + "node_modules/markdown-it-anchor": { + "version": "8.6.7", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz", + "integrity": "sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==", + "dev": true, + "license": "Unlicense", + "peerDependencies": { + "@types/markdown-it": "*", + "markdown-it": "*" + } + }, + "node_modules/marked": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", + "dev": true, + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/protobufjs": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", + "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/protobufjs-cli": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/protobufjs-cli/-/protobufjs-cli-1.1.3.tgz", + "integrity": "sha512-MqD10lqF+FMsOayFiNOdOGNlXc4iKDCf0ZQPkPR+gizYh9gqUeGTWulABUCdI+N67w5RfJ6xhgX4J8pa8qmMXQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "chalk": "^4.0.0", + "escodegen": "^1.13.0", + "espree": "^9.0.0", + "estraverse": "^5.1.0", + "glob": "^8.0.0", + "jsdoc": "^4.0.0", + "minimist": "^1.2.0", + "semver": "^7.1.2", + "tmp": "^0.2.1", + "uglify-js": "^3.7.7" + }, + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "protobufjs": "^7.0.0" + } + }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/requizzle": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.4.tgz", + "integrity": "sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.21" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tmp": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.14" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "license": "0BSD" + }, + "node_modules/tsx": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.19.1.tgz", + "integrity": "sha512-0flMz1lh74BR4wOvBjuh9olbnwqCPc35OOlfyzHba0Dc+QNUeWX/Gq2YTbnwcWPO3BMd8fkzRVrHcsR+a7z7rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "~0.23.0", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/tsx/node_modules/@esbuild/aix-ppc64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz", + "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-arm": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz", + "integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz", + "integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.1.tgz", + "integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/darwin-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz", + "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/darwin-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz", + "integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/freebsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz", + "integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/freebsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz", + "integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-arm": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz", + "integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz", + "integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-ia32": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz", + "integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-loong64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz", + "integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-mips64el": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz", + "integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-ppc64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz", + "integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-riscv64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz", + "integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-s390x": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz", + "integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz", + "integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/netbsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz", + "integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/openbsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz", + "integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/openbsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz", + "integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/sunos-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz", + "integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz", + "integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-ia32": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz", + "integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz", + "integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/esbuild": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz", + "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.23.1", + "@esbuild/android-arm": "0.23.1", + "@esbuild/android-arm64": "0.23.1", + "@esbuild/android-x64": "0.23.1", + "@esbuild/darwin-arm64": "0.23.1", + "@esbuild/darwin-x64": "0.23.1", + "@esbuild/freebsd-arm64": "0.23.1", + "@esbuild/freebsd-x64": "0.23.1", + "@esbuild/linux-arm": "0.23.1", + "@esbuild/linux-arm64": "0.23.1", + "@esbuild/linux-ia32": "0.23.1", + "@esbuild/linux-loong64": "0.23.1", + "@esbuild/linux-mips64el": "0.23.1", + "@esbuild/linux-ppc64": "0.23.1", + "@esbuild/linux-riscv64": "0.23.1", + "@esbuild/linux-s390x": "0.23.1", + "@esbuild/linux-x64": "0.23.1", + "@esbuild/netbsd-x64": "0.23.1", + "@esbuild/openbsd-arm64": "0.23.1", + "@esbuild/openbsd-x64": "0.23.1", + "@esbuild/sunos-x64": "0.23.1", + "@esbuild/win32-arm64": "0.23.1", + "@esbuild/win32-ia32": "0.23.1", + "@esbuild/win32-x64": "0.23.1" + } + }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typescript": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "dev": true, + "license": "MIT" + }, + "node_modules/uglify-js": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/underscore": { + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", + "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==", + "dev": true, + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "license": "MIT" + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/xmlcreate": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", + "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==", + "dev": true, + "license": "Apache-2.0" + } + } +} diff --git a/libxtracfg/js/xtracfg/package.json b/libxtracfg/js/xtracfg/package.json new file mode 100644 index 0000000..b227a20 --- /dev/null +++ b/libxtracfg/js/xtracfg/package.json @@ -0,0 +1,28 @@ +{ + "name": "xtracfg", + "description": "", + "version": "1.0.0", + "author": "", + "license": "MIT", + "type": "module", + "main": "build/index.js", + "scripts": { + "build": "node .esbuild.js", + "dev": "tsx ./src/index.ts", + "proto": "pbjs -t static-module -w es6 -o protobuf.js ../../protobuf/xtracfg.proto && pbts -o protobuf.d.ts protobuf.js", + "test": "tsx ./test/test.ts" + }, + "dependencies": { + "async-mutex": "^0.5.0", + "protobufjs": "^7.4.0" + }, + "devDependencies": { + "@tsconfig/node20": "^20.1.4", + "@types/node": "^20.12.7", + "esbuild": "0.24.0", + "esbuild-plugin-clean": "^1.0.1", + "protobufjs-cli": "^1.1.3", + "tsx": "^4.7.2", + "typescript": "^5.4.5" + } +} diff --git a/libxtracfg/js/xtracfg/protobuf.d.ts b/libxtracfg/js/xtracfg/protobuf.d.ts new file mode 100644 index 0000000..ff7d509 --- /dev/null +++ b/libxtracfg/js/xtracfg/protobuf.d.ts @@ -0,0 +1,352 @@ +import * as $protobuf from "protobufjs"; +import Long = require("long"); +/** Represents a Xtracfg */ +export class Xtracfg extends $protobuf.rpc.Service { + + /** + * Constructs a new Xtracfg service. + * @param rpcImpl RPC implementation + * @param [requestDelimited=false] Whether requests are length-delimited + * @param [responseDelimited=false] Whether responses are length-delimited + */ + constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean); + + /** + * Creates new Xtracfg service using the specified rpc implementation. + * @param rpcImpl RPC implementation + * @param [requestDelimited=false] Whether requests are length-delimited + * @param [responseDelimited=false] Whether responses are length-delimited + * @returns RPC service. Useful where requests and/or responses are streamed. + */ + public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): Xtracfg; + + /** + * Calls Execute. + * @param request Info message or plain object + * @param callback Node-style callback called with the error, if any, and Response + */ + public execute(request: IInfo, callback: Xtracfg.ExecuteCallback): void; + + /** + * Calls Execute. + * @param request Info message or plain object + * @returns Promise + */ + public execute(request: IInfo): Promise; + + /** + * Calls Subscribe. + * @param request Empty message or plain object + * @param callback Node-style callback called with the error, if any, and Response + */ + public subscribe(request: IEmpty, callback: Xtracfg.SubscribeCallback): void; + + /** + * Calls Subscribe. + * @param request Empty message or plain object + * @returns Promise + */ + public subscribe(request: IEmpty): Promise; +} + +export namespace Xtracfg { + + /** + * Callback as used by {@link Xtracfg#execute}. + * @param error Error, if any + * @param [response] Response + */ + type ExecuteCallback = (error: (Error|null), response?: Response) => void; + + /** + * Callback as used by {@link Xtracfg#subscribe}. + * @param error Error, if any + * @param [response] Response + */ + type SubscribeCallback = (error: (Error|null), response?: Response) => void; +} + +/** Properties of an Info. */ +export interface IInfo { + + /** Info source */ + source?: (string|null); +} + +/** Represents an Info. */ +export class Info implements IInfo { + + /** + * Constructs a new Info. + * @param [properties] Properties to set + */ + constructor(properties?: IInfo); + + /** Info source. */ + public source: string; + + /** + * Creates a new Info instance using the specified properties. + * @param [properties] Properties to set + * @returns Info instance + */ + public static create(properties?: IInfo): Info; + + /** + * Encodes the specified Info message. Does not implicitly {@link Info.verify|verify} messages. + * @param message Info message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: IInfo, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Info message, length delimited. Does not implicitly {@link Info.verify|verify} messages. + * @param message Info message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: IInfo, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an Info message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Info + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Info; + + /** + * Decodes an Info message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Info + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Info; + + /** + * Verifies an Info message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates an Info message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Info + */ + public static fromObject(object: { [k: string]: any }): Info; + + /** + * Creates a plain object from an Info message. Also converts values to other types if specified. + * @param message Info + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: Info, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Info to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for Info + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; +} + +/** Properties of a Response. */ +export interface IResponse { + + /** Response msg */ + msg?: (string|null); +} + +/** Represents a Response. */ +export class Response implements IResponse { + + /** + * Constructs a new Response. + * @param [properties] Properties to set + */ + constructor(properties?: IResponse); + + /** Response msg. */ + public msg: string; + + /** + * Creates a new Response instance using the specified properties. + * @param [properties] Properties to set + * @returns Response instance + */ + public static create(properties?: IResponse): Response; + + /** + * Encodes the specified Response message. Does not implicitly {@link Response.verify|verify} messages. + * @param message Response message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: IResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Response message, length delimited. Does not implicitly {@link Response.verify|verify} messages. + * @param message Response message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: IResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a Response message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Response + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Response; + + /** + * Decodes a Response message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Response + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Response; + + /** + * Verifies a Response message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a Response message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Response + */ + public static fromObject(object: { [k: string]: any }): Response; + + /** + * Creates a plain object from a Response message. Also converts values to other types if specified. + * @param message Response + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: Response, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Response to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for Response + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; +} + +/** Properties of an Empty. */ +export interface IEmpty { +} + +/** Represents an Empty. */ +export class Empty implements IEmpty { + + /** + * Constructs a new Empty. + * @param [properties] Properties to set + */ + constructor(properties?: IEmpty); + + /** + * Creates a new Empty instance using the specified properties. + * @param [properties] Properties to set + * @returns Empty instance + */ + public static create(properties?: IEmpty): Empty; + + /** + * Encodes the specified Empty message. Does not implicitly {@link Empty.verify|verify} messages. + * @param message Empty message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: IEmpty, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Empty message, length delimited. Does not implicitly {@link Empty.verify|verify} messages. + * @param message Empty message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: IEmpty, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an Empty message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Empty + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): Empty; + + /** + * Decodes an Empty message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Empty + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): Empty; + + /** + * Verifies an Empty message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates an Empty message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Empty + */ + public static fromObject(object: { [k: string]: any }): Empty; + + /** + * Creates a plain object from an Empty message. Also converts values to other types if specified. + * @param message Empty + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: Empty, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Empty to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for Empty + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; +} diff --git a/libxtracfg/js/xtracfg/protobuf.js b/libxtracfg/js/xtracfg/protobuf.js new file mode 100644 index 0000000..a31fad9 --- /dev/null +++ b/libxtracfg/js/xtracfg/protobuf.js @@ -0,0 +1,692 @@ +/*eslint-disable block-scoped-var, id-length, no-control-regex, no-magic-numbers, no-prototype-builtins, no-redeclare, no-shadow, no-var, sort-vars*/ +import * as $protobuf from "protobufjs/minimal"; + +// Common aliases +const $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util; + +// Exported root namespace +const $root = $protobuf.roots["default"] || ($protobuf.roots["default"] = {}); + +export const Xtracfg = $root.Xtracfg = (() => { + + /** + * Constructs a new Xtracfg service. + * @exports Xtracfg + * @classdesc Represents a Xtracfg + * @extends $protobuf.rpc.Service + * @constructor + * @param {$protobuf.RPCImpl} rpcImpl RPC implementation + * @param {boolean} [requestDelimited=false] Whether requests are length-delimited + * @param {boolean} [responseDelimited=false] Whether responses are length-delimited + */ + function Xtracfg(rpcImpl, requestDelimited, responseDelimited) { + $protobuf.rpc.Service.call(this, rpcImpl, requestDelimited, responseDelimited); + } + + (Xtracfg.prototype = Object.create($protobuf.rpc.Service.prototype)).constructor = Xtracfg; + + /** + * Creates new Xtracfg service using the specified rpc implementation. + * @function create + * @memberof Xtracfg + * @static + * @param {$protobuf.RPCImpl} rpcImpl RPC implementation + * @param {boolean} [requestDelimited=false] Whether requests are length-delimited + * @param {boolean} [responseDelimited=false] Whether responses are length-delimited + * @returns {Xtracfg} RPC service. Useful where requests and/or responses are streamed. + */ + Xtracfg.create = function create(rpcImpl, requestDelimited, responseDelimited) { + return new this(rpcImpl, requestDelimited, responseDelimited); + }; + + /** + * Callback as used by {@link Xtracfg#execute}. + * @memberof Xtracfg + * @typedef ExecuteCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {Response} [response] Response + */ + + /** + * Calls Execute. + * @function execute + * @memberof Xtracfg + * @instance + * @param {IInfo} request Info message or plain object + * @param {Xtracfg.ExecuteCallback} callback Node-style callback called with the error, if any, and Response + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(Xtracfg.prototype.execute = function execute(request, callback) { + return this.rpcCall(execute, $root.Info, $root.Response, request, callback); + }, "name", { value: "Execute" }); + + /** + * Calls Execute. + * @function execute + * @memberof Xtracfg + * @instance + * @param {IInfo} request Info message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link Xtracfg#subscribe}. + * @memberof Xtracfg + * @typedef SubscribeCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {Response} [response] Response + */ + + /** + * Calls Subscribe. + * @function subscribe + * @memberof Xtracfg + * @instance + * @param {IEmpty} request Empty message or plain object + * @param {Xtracfg.SubscribeCallback} callback Node-style callback called with the error, if any, and Response + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(Xtracfg.prototype.subscribe = function subscribe(request, callback) { + return this.rpcCall(subscribe, $root.Empty, $root.Response, request, callback); + }, "name", { value: "Subscribe" }); + + /** + * Calls Subscribe. + * @function subscribe + * @memberof Xtracfg + * @instance + * @param {IEmpty} request Empty message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + return Xtracfg; +})(); + +export const Info = $root.Info = (() => { + + /** + * Properties of an Info. + * @exports IInfo + * @interface IInfo + * @property {string|null} [source] Info source + */ + + /** + * Constructs a new Info. + * @exports Info + * @classdesc Represents an Info. + * @implements IInfo + * @constructor + * @param {IInfo=} [properties] Properties to set + */ + function Info(properties) { + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Info source. + * @member {string} source + * @memberof Info + * @instance + */ + Info.prototype.source = ""; + + /** + * Creates a new Info instance using the specified properties. + * @function create + * @memberof Info + * @static + * @param {IInfo=} [properties] Properties to set + * @returns {Info} Info instance + */ + Info.create = function create(properties) { + return new Info(properties); + }; + + /** + * Encodes the specified Info message. Does not implicitly {@link Info.verify|verify} messages. + * @function encode + * @memberof Info + * @static + * @param {IInfo} message Info message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Info.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.source != null && Object.hasOwnProperty.call(message, "source")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.source); + return writer; + }; + + /** + * Encodes the specified Info message, length delimited. Does not implicitly {@link Info.verify|verify} messages. + * @function encodeDelimited + * @memberof Info + * @static + * @param {IInfo} message Info message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Info.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an Info message from the specified reader or buffer. + * @function decode + * @memberof Info + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {Info} Info + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Info.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.Info(); + while (reader.pos < end) { + let tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.source = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an Info message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof Info + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {Info} Info + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Info.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an Info message. + * @function verify + * @memberof Info + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Info.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.source != null && message.hasOwnProperty("source")) + if (!$util.isString(message.source)) + return "source: string expected"; + return null; + }; + + /** + * Creates an Info message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof Info + * @static + * @param {Object.} object Plain object + * @returns {Info} Info + */ + Info.fromObject = function fromObject(object) { + if (object instanceof $root.Info) + return object; + let message = new $root.Info(); + if (object.source != null) + message.source = String(object.source); + return message; + }; + + /** + * Creates a plain object from an Info message. Also converts values to other types if specified. + * @function toObject + * @memberof Info + * @static + * @param {Info} message Info + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Info.toObject = function toObject(message, options) { + if (!options) + options = {}; + let object = {}; + if (options.defaults) + object.source = ""; + if (message.source != null && message.hasOwnProperty("source")) + object.source = message.source; + return object; + }; + + /** + * Converts this Info to JSON. + * @function toJSON + * @memberof Info + * @instance + * @returns {Object.} JSON object + */ + Info.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for Info + * @function getTypeUrl + * @memberof Info + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + Info.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/Info"; + }; + + return Info; +})(); + +export const Response = $root.Response = (() => { + + /** + * Properties of a Response. + * @exports IResponse + * @interface IResponse + * @property {string|null} [msg] Response msg + */ + + /** + * Constructs a new Response. + * @exports Response + * @classdesc Represents a Response. + * @implements IResponse + * @constructor + * @param {IResponse=} [properties] Properties to set + */ + function Response(properties) { + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Response msg. + * @member {string} msg + * @memberof Response + * @instance + */ + Response.prototype.msg = ""; + + /** + * Creates a new Response instance using the specified properties. + * @function create + * @memberof Response + * @static + * @param {IResponse=} [properties] Properties to set + * @returns {Response} Response instance + */ + Response.create = function create(properties) { + return new Response(properties); + }; + + /** + * Encodes the specified Response message. Does not implicitly {@link Response.verify|verify} messages. + * @function encode + * @memberof Response + * @static + * @param {IResponse} message Response message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Response.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.msg != null && Object.hasOwnProperty.call(message, "msg")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.msg); + return writer; + }; + + /** + * Encodes the specified Response message, length delimited. Does not implicitly {@link Response.verify|verify} messages. + * @function encodeDelimited + * @memberof Response + * @static + * @param {IResponse} message Response message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Response.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Response message from the specified reader or buffer. + * @function decode + * @memberof Response + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {Response} Response + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Response.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.Response(); + while (reader.pos < end) { + let tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.msg = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Response message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof Response + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {Response} Response + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Response.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Response message. + * @function verify + * @memberof Response + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Response.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.msg != null && message.hasOwnProperty("msg")) + if (!$util.isString(message.msg)) + return "msg: string expected"; + return null; + }; + + /** + * Creates a Response message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof Response + * @static + * @param {Object.} object Plain object + * @returns {Response} Response + */ + Response.fromObject = function fromObject(object) { + if (object instanceof $root.Response) + return object; + let message = new $root.Response(); + if (object.msg != null) + message.msg = String(object.msg); + return message; + }; + + /** + * Creates a plain object from a Response message. Also converts values to other types if specified. + * @function toObject + * @memberof Response + * @static + * @param {Response} message Response + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Response.toObject = function toObject(message, options) { + if (!options) + options = {}; + let object = {}; + if (options.defaults) + object.msg = ""; + if (message.msg != null && message.hasOwnProperty("msg")) + object.msg = message.msg; + return object; + }; + + /** + * Converts this Response to JSON. + * @function toJSON + * @memberof Response + * @instance + * @returns {Object.} JSON object + */ + Response.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for Response + * @function getTypeUrl + * @memberof Response + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + Response.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/Response"; + }; + + return Response; +})(); + +export const Empty = $root.Empty = (() => { + + /** + * Properties of an Empty. + * @exports IEmpty + * @interface IEmpty + */ + + /** + * Constructs a new Empty. + * @exports Empty + * @classdesc Represents an Empty. + * @implements IEmpty + * @constructor + * @param {IEmpty=} [properties] Properties to set + */ + function Empty(properties) { + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Creates a new Empty instance using the specified properties. + * @function create + * @memberof Empty + * @static + * @param {IEmpty=} [properties] Properties to set + * @returns {Empty} Empty instance + */ + Empty.create = function create(properties) { + return new Empty(properties); + }; + + /** + * Encodes the specified Empty message. Does not implicitly {@link Empty.verify|verify} messages. + * @function encode + * @memberof Empty + * @static + * @param {IEmpty} message Empty message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Empty.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + return writer; + }; + + /** + * Encodes the specified Empty message, length delimited. Does not implicitly {@link Empty.verify|verify} messages. + * @function encodeDelimited + * @memberof Empty + * @static + * @param {IEmpty} message Empty message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Empty.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an Empty message from the specified reader or buffer. + * @function decode + * @memberof Empty + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {Empty} Empty + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Empty.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.Empty(); + while (reader.pos < end) { + let tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an Empty message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof Empty + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {Empty} Empty + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Empty.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an Empty message. + * @function verify + * @memberof Empty + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Empty.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + return null; + }; + + /** + * Creates an Empty message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof Empty + * @static + * @param {Object.} object Plain object + * @returns {Empty} Empty + */ + Empty.fromObject = function fromObject(object) { + if (object instanceof $root.Empty) + return object; + return new $root.Empty(); + }; + + /** + * Creates a plain object from an Empty message. Also converts values to other types if specified. + * @function toObject + * @memberof Empty + * @static + * @param {Empty} message Empty + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Empty.toObject = function toObject() { + return {}; + }; + + /** + * Converts this Empty to JSON. + * @function toJSON + * @memberof Empty + * @instance + * @returns {Object.} JSON object + */ + Empty.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for Empty + * @function getTypeUrl + * @memberof Empty + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + Empty.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/Empty"; + }; + + return Empty; +})(); + +export { $root as default }; diff --git a/libxtracfg/js/xtracfg/src/index.ts b/libxtracfg/js/xtracfg/src/index.ts new file mode 100644 index 0000000..cf30213 --- /dev/null +++ b/libxtracfg/js/xtracfg/src/index.ts @@ -0,0 +1,161 @@ +export type Request = { + command: string; + subcommand?: string; + source?: string; + verbose?: boolean; + debug?: boolean; + [key: string]: any; +}; + +export type Response = { + error?: string; + details?: { [key: string]: any }; + results?: Array<{ status: string; message: string }>; +}; + +export type Error = { + error?: string; + status?: string; + message?: string; + notification?: string; + fields?: { + [key: string]: string; + }; +}; + +export type Xtracfg = { + send: (request: Request) => Promise; + listen: ( + successHandler: (response: Response) => void, + errorHandler: (error: Error) => void + ) => Promise; +}; + +export type TransportCreator = ( + options: TransportOptions +) => TransportConnector; + +export type TransportConnector = () => Promise; + +export type TransportOptions = { + debug?: boolean; +}; + +export type Transport = { + send: (request: Request) => Promise; + listen: (handler: (response: Response) => void) => Promise; +}; + +export const connect = ( + transport: TransportCreator, + options: TransportOptions = {} +): Xtracfg => { + const ensureOpen = transport(options); + + return { + send: send(options, ensureOpen), + listen: listen(options, ensureOpen), + }; +}; + +const send = ({ debug }: TransportOptions, ensureOpen: TransportConnector) => { + return (request: Request) => + ensureOpen() + .then((transport) => { + const cmd = JSON.stringify(request); + + if (debug) { + console.log("sending to xtracfg", cmd); + } + + transport.send(request); + }) + .catch((error: Error) => { + console.error( + "Could not send command to xtracfg", + error.message || error + ); + }); +}; + +const listen = ( + { debug }: TransportOptions, + ensureOpen: TransportConnector +) => { + return ( + successHandler: (response: Response) => void, + errorHandler: (error: Error) => void + ) => + ensureOpen() + .then((transport) => { + transport.listen((response) => { + if (debug) { + console.log("received from xtracfg", response); + } + + const error = parseError(response); + + if (!error) { + successHandler(response); + } else { + errorHandler(error); + } + }); + }) + .catch((error: Error) => { + console.error("Could not listen to xtracfg", error.message || error); + }); +}; + +const parseError = (response: Response): Error | undefined => { + const error = response.error || ""; + const status = + response.results && response.results.length > 0 + ? response.results[0].status + : ""; + const message = + response.results && response.results.length > 0 + ? response.results[0].message + : ""; + + if (error.length === 0 && status !== "ERROR") { + return undefined; + } + + if (error === "No 'command' given: {}") { + return { notification: "Empty Fields" }; + } + + if (message.includes("host") && !message.includes("refused")) { + return { fields: { host: message.split(",")[0] } }; + } else if (error.includes("Host") && !message.includes("refused")) { + return { fields: { host: error } }; + } else if (message.includes("database")) { + return { fields: { database: message } }; + } else if (message.includes("user name")) { + return { fields: { user: message } }; + } else if (message.includes("password")) { + return { fields: { user: message, password: message } }; + } else if (error.includes("No id given")) { + return { fields: { id: error } }; + } else if (error.includes("Id has to")) { + return { fields: { id: error } }; + } else if (error.includes("with id")) { + return { fields: { id: error } }; + } else if (message.includes("url")) { + return { fields: { url: message } }; + } + + if ( + (!message.includes("host") && + !message.includes("url") && + !message.includes("database") && + !message.includes("user") && + !message.includes("password")) || + message.includes("refused") + ) { + return { notification: error.length > 0 ? error : message }; + } + + return { error, status, message }; +}; diff --git a/libxtracfg/js/xtracfg/test/test.ts b/libxtracfg/js/xtracfg/test/test.ts new file mode 100644 index 0000000..72a9411 --- /dev/null +++ b/libxtracfg/js/xtracfg/test/test.ts @@ -0,0 +1,40 @@ +import { connect, Transport, TransportCreator } from "../src"; + +let listener: (response: Response) => void; + +const transport: TransportCreator = () => { + return async (): Promise => { + return { + send: (request) => { + console.log("sending", request); + if (listener) { + const response = + request.command === "hello" + ? { results: [{ status: "SUCCESS", message: "world" }] } + : { error: "unknown command " + request.command }; + + listener.call(null, response); + } + }, + listen: (handler) => { + console.log("listening", handler); + listener = handler; + }, + }; + }; +}; + +const xtracfg = connect(transport); + +xtracfg.listen( + (response) => { + console.log("success", response); + }, + (error) => { + console.error("error", error); + } +); + +xtracfg.send({ command: "hello" }); + +xtracfg.send({ command: "foo" }); diff --git a/libxtracfg/js/xtracfg/tsconfig.json b/libxtracfg/js/xtracfg/tsconfig.json new file mode 100644 index 0000000..3023874 --- /dev/null +++ b/libxtracfg/js/xtracfg/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@tsconfig/node20/tsconfig.json", + "compilerOptions": { + "rootDir": "./src" /* Specify the root folder within your source files. */, + "outDir": "./build" /* Specify an output folder for all emitted files. */, + "allowJs": true /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */, + "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */ + } +} diff --git a/libxtracfg/protobuf/xtracfg.proto b/libxtracfg/protobuf/xtracfg.proto new file mode 100644 index 0000000..882439b --- /dev/null +++ b/libxtracfg/protobuf/xtracfg.proto @@ -0,0 +1,18 @@ +syntax = "proto3"; + +service Xtracfg { + rpc Execute(Info) returns (Response); + + rpc Subscribe(Empty) returns (stream Response); +} + +message Info { + string source = 1; +} + +message Response { + string msg = 1; +} + +message Empty { +} From d10ce7d10bffaafa6e3c9a77b341b3cdaef84068 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Wed, 16 Oct 2024 16:23:05 +0200 Subject: [PATCH 049/167] refactor js --- libxtracfg/js/package-lock.json | 2 -- libxtracfg/js/package.json | 7 ++++++- .../js/xtracfg-transport-native/package.json | 3 ++- .../js/xtracfg-transport-native/src/index.ts | 6 +++--- .../js/xtracfg-transport-native/tsconfig.json | 1 + .../js/xtracfg-transport-websocket/package.json | 5 ++--- .../js/xtracfg-transport-websocket/src/index.ts | 2 +- .../xtracfg-transport-websocket/tsconfig.json | 17 ++++++++++++----- libxtracfg/js/xtracfg/package.json | 3 ++- libxtracfg/js/xtracfg/tsconfig.json | 1 + 10 files changed, 30 insertions(+), 17 deletions(-) diff --git a/libxtracfg/js/package-lock.json b/libxtracfg/js/package-lock.json index 2200ad1..e2aaa72 100644 --- a/libxtracfg/js/package-lock.json +++ b/libxtracfg/js/package-lock.json @@ -2496,8 +2496,6 @@ "xtracfg": "^1.0.0" }, "devDependencies": { - "@tsconfig/node20": "^20.1.4", - "@types/node": "^20.12.7", "esbuild": "0.24.0", "esbuild-plugin-clean": "^1.0.1", "tsx": "^4.7.2", diff --git a/libxtracfg/js/package.json b/libxtracfg/js/package.json index 81ab18a..a254024 100644 --- a/libxtracfg/js/package.json +++ b/libxtracfg/js/package.json @@ -1,9 +1,14 @@ { "name": "libxtracfg-js", + "private": true, "workspaces": [ "xtracfg", "xtracfg-native-binding", "xtracfg-transport-native", "xtracfg-transport-websocket" - ] + ], + "scripts": { + "build": "npm run build --workspaces", + "test": "npm run test --workspaces" + } } diff --git a/libxtracfg/js/xtracfg-transport-native/package.json b/libxtracfg/js/xtracfg-transport-native/package.json index e428233..1445cea 100644 --- a/libxtracfg/js/xtracfg-transport-native/package.json +++ b/libxtracfg/js/xtracfg-transport-native/package.json @@ -6,8 +6,9 @@ "license": "MIT", "type": "module", "main": "build/index.js", + "types": "build/index.d.ts", "scripts": { - "build": "node .esbuild.js", + "build": "node .esbuild.js && tsc --declaration --emitDeclarationOnly", "test": "tsx ./test/test.ts" }, "dependencies": { diff --git a/libxtracfg/js/xtracfg-transport-native/src/index.ts b/libxtracfg/js/xtracfg-transport-native/src/index.ts index 4e1ae73..638844d 100644 --- a/libxtracfg/js/xtracfg-transport-native/src/index.ts +++ b/libxtracfg/js/xtracfg-transport-native/src/index.ts @@ -1,4 +1,4 @@ -import { Transport, TransportCreator } from "xtracfg"; +import { Transport, TransportCreator, Response } from "xtracfg"; import addon from "xtracfg-native-binding"; let listener: (response: Response) => void; @@ -6,14 +6,14 @@ let listener: (response: Response) => void; const transport: TransportCreator = () => { return async (): Promise => { return { - send: (request) => { + send: async (request) => { if (listener) { const response = addon.execute(JSON.stringify(request)); listener.call(null, JSON.parse(response)); } }, - listen: (handler) => { + listen: async (handler) => { listener = handler; }, }; diff --git a/libxtracfg/js/xtracfg-transport-native/tsconfig.json b/libxtracfg/js/xtracfg-transport-native/tsconfig.json index 3023874..23e8967 100644 --- a/libxtracfg/js/xtracfg-transport-native/tsconfig.json +++ b/libxtracfg/js/xtracfg-transport-native/tsconfig.json @@ -1,5 +1,6 @@ { "extends": "@tsconfig/node20/tsconfig.json", + "include": ["src/**/*.ts", "src/**/*.js"], "compilerOptions": { "rootDir": "./src" /* Specify the root folder within your source files. */, "outDir": "./build" /* Specify an output folder for all emitted files. */, diff --git a/libxtracfg/js/xtracfg-transport-websocket/package.json b/libxtracfg/js/xtracfg-transport-websocket/package.json index 7713ca4..59aa988 100644 --- a/libxtracfg/js/xtracfg-transport-websocket/package.json +++ b/libxtracfg/js/xtracfg-transport-websocket/package.json @@ -6,8 +6,9 @@ "license": "MIT", "type": "module", "main": "build/index.js", + "types": "build/index.d.ts", "scripts": { - "build": "node .esbuild.js", + "build": "node .esbuild.js && tsc --declaration --emitDeclarationOnly", "test": "tsx ./test/test.ts" }, "dependencies": { @@ -15,8 +16,6 @@ "xtracfg": "^1.0.0" }, "devDependencies": { - "@tsconfig/node20": "^20.1.4", - "@types/node": "^20.12.7", "esbuild": "0.24.0", "esbuild-plugin-clean": "^1.0.1", "tsx": "^4.7.2", diff --git a/libxtracfg/js/xtracfg-transport-websocket/src/index.ts b/libxtracfg/js/xtracfg-transport-websocket/src/index.ts index 350c347..e9fb7dd 100644 --- a/libxtracfg/js/xtracfg-transport-websocket/src/index.ts +++ b/libxtracfg/js/xtracfg-transport-websocket/src/index.ts @@ -1,5 +1,5 @@ import { Mutex } from "async-mutex"; -import { Transport, TransportCreator, TransportOptions } from "."; +import { Transport, TransportCreator, TransportOptions } from "xtracfg"; export const transport: TransportCreator = ({ debug }: TransportOptions) => { return async (): Promise => { diff --git a/libxtracfg/js/xtracfg-transport-websocket/tsconfig.json b/libxtracfg/js/xtracfg-transport-websocket/tsconfig.json index 3023874..77c984f 100644 --- a/libxtracfg/js/xtracfg-transport-websocket/tsconfig.json +++ b/libxtracfg/js/xtracfg-transport-websocket/tsconfig.json @@ -1,9 +1,16 @@ { - "extends": "@tsconfig/node20/tsconfig.json", + "include": ["src/**/*.ts", "src/**/*.js"], "compilerOptions": { - "rootDir": "./src" /* Specify the root folder within your source files. */, - "outDir": "./build" /* Specify an output folder for all emitted files. */, - "allowJs": true /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */, - "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */ + "rootDir": "./src", + "outDir": "./build", + "forceConsistentCasingInFileNames": true, + "target": "esnext", + "lib": ["dom", "esnext"], + "allowJs": false, + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "strict": true, + "module": "esnext", + "moduleResolution": "node" } } diff --git a/libxtracfg/js/xtracfg/package.json b/libxtracfg/js/xtracfg/package.json index b227a20..26a96d8 100644 --- a/libxtracfg/js/xtracfg/package.json +++ b/libxtracfg/js/xtracfg/package.json @@ -6,8 +6,9 @@ "license": "MIT", "type": "module", "main": "build/index.js", + "types": "build/index.d.ts", "scripts": { - "build": "node .esbuild.js", + "build": "node .esbuild.js && tsc --declaration --emitDeclarationOnly", "dev": "tsx ./src/index.ts", "proto": "pbjs -t static-module -w es6 -o protobuf.js ../../protobuf/xtracfg.proto && pbts -o protobuf.d.ts protobuf.js", "test": "tsx ./test/test.ts" diff --git a/libxtracfg/js/xtracfg/tsconfig.json b/libxtracfg/js/xtracfg/tsconfig.json index 3023874..23e8967 100644 --- a/libxtracfg/js/xtracfg/tsconfig.json +++ b/libxtracfg/js/xtracfg/tsconfig.json @@ -1,5 +1,6 @@ { "extends": "@tsconfig/node20/tsconfig.json", + "include": ["src/**/*.ts", "src/**/*.js"], "compilerOptions": { "rootDir": "./src" /* Specify the root folder within your source files. */, "outDir": "./build" /* Specify an output folder for all emitted files. */, From a1ac7447f2122eb43f6972107678f21d1b16492f Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Wed, 16 Oct 2024 16:56:13 +0200 Subject: [PATCH 050/167] fix node files --- libxtracfg/js/xtracfg-transport-native/.esbuild.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libxtracfg/js/xtracfg-transport-native/.esbuild.js b/libxtracfg/js/xtracfg-transport-native/.esbuild.js index 4b95647..9d62b9e 100644 --- a/libxtracfg/js/xtracfg-transport-native/.esbuild.js +++ b/libxtracfg/js/xtracfg-transport-native/.esbuild.js @@ -9,9 +9,9 @@ await build({ format: "esm", minify: true, //logLevel: "debug", - /*loader: { - ".node": "copy", - },*/ + loader: { + ".node": "empty", + }, outdir: "build", outbase: "node_modules", entryNames: "[name]", From 888c613ff53ecabe7d910041ca3a62956b24a3d3 Mon Sep 17 00:00:00 2001 From: PZahnen Date: Wed, 16 Oct 2024 16:26:17 +0200 Subject: [PATCH 051/167] handler parameter subscribe function --- libxtracfg/js/xtracfg-transport-native/src/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/libxtracfg/js/xtracfg-transport-native/src/index.ts b/libxtracfg/js/xtracfg-transport-native/src/index.ts index 638844d..e96e106 100644 --- a/libxtracfg/js/xtracfg-transport-native/src/index.ts +++ b/libxtracfg/js/xtracfg-transport-native/src/index.ts @@ -15,6 +15,7 @@ const transport: TransportCreator = () => { }, listen: async (handler) => { listener = handler; + addon.subscribe(handler); }, }; }; From cd277827770a91012de1fa663331adfcdf123f42 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Wed, 16 Oct 2024 17:17:05 +0200 Subject: [PATCH 052/167] fix websocket --- libxtracfg/js/package-lock.json | 44 ++++++++++++++++++- .../xtracfg-transport-websocket/package.json | 3 ++ .../xtracfg-transport-websocket/src/index.ts | 1 + 3 files changed, 47 insertions(+), 1 deletion(-) diff --git a/libxtracfg/js/package-lock.json b/libxtracfg/js/package-lock.json index e2aaa72..ca697e1 100644 --- a/libxtracfg/js/package-lock.json +++ b/libxtracfg/js/package-lock.json @@ -627,6 +627,16 @@ "undici-types": "~6.19.2" } }, + "node_modules/@types/websocket": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.10.tgz", + "integrity": "sha512-svjGZvPB7EzuYS94cI7a+qhwgGU1y89wUgjT6E2wVUfmAGIvRfT7obBvRtnhXCSsoMdlG4gBFGE7MfkIXZLoww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/acorn": { "version": "8.13.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.13.0.tgz", @@ -1276,6 +1286,15 @@ "node": ">=8" } }, + "node_modules/isomorphic-ws": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz", + "integrity": "sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==", + "license": "MIT", + "peerDependencies": { + "ws": "*" + } + }, "node_modules/js2xmlparser": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz", @@ -2411,6 +2430,27 @@ "dev": true, "license": "ISC" }, + "node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/xmlcreate": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", @@ -2453,7 +2493,6 @@ }, "xtracfg-native-binding": { "version": "1.0.0", - "hasInstallScript": true, "license": "MIT", "dependencies": { "bindings": "~1.5.0", @@ -2493,9 +2532,12 @@ "license": "MIT", "dependencies": { "async-mutex": "^0.5.0", + "isomorphic-ws": "^5.0.0", + "ws": "^8.18.0", "xtracfg": "^1.0.0" }, "devDependencies": { + "@types/websocket": "^1.0.10", "esbuild": "0.24.0", "esbuild-plugin-clean": "^1.0.1", "tsx": "^4.7.2", diff --git a/libxtracfg/js/xtracfg-transport-websocket/package.json b/libxtracfg/js/xtracfg-transport-websocket/package.json index 59aa988..1666ca3 100644 --- a/libxtracfg/js/xtracfg-transport-websocket/package.json +++ b/libxtracfg/js/xtracfg-transport-websocket/package.json @@ -13,9 +13,12 @@ }, "dependencies": { "async-mutex": "^0.5.0", + "isomorphic-ws": "^5.0.0", + "ws": "^8.18.0", "xtracfg": "^1.0.0" }, "devDependencies": { + "@types/websocket": "^1.0.10", "esbuild": "0.24.0", "esbuild-plugin-clean": "^1.0.1", "tsx": "^4.7.2", diff --git a/libxtracfg/js/xtracfg-transport-websocket/src/index.ts b/libxtracfg/js/xtracfg-transport-websocket/src/index.ts index e9fb7dd..49a993f 100644 --- a/libxtracfg/js/xtracfg-transport-websocket/src/index.ts +++ b/libxtracfg/js/xtracfg-transport-websocket/src/index.ts @@ -1,5 +1,6 @@ import { Mutex } from "async-mutex"; import { Transport, TransportCreator, TransportOptions } from "xtracfg"; +import WebSocket from "isomorphic-ws"; export const transport: TransportCreator = ({ debug }: TransportOptions) => { return async (): Promise => { From e7b416d4f33ab34a99f679530f5ab58d0e86839e Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Wed, 16 Oct 2024 17:20:55 +0200 Subject: [PATCH 053/167] fix websocket --- libxtracfg/js/package-lock.json | 10 +++++----- libxtracfg/js/xtracfg-transport-websocket/package.json | 2 +- libxtracfg/js/xtracfg-transport-websocket/src/index.ts | 3 +++ 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/libxtracfg/js/package-lock.json b/libxtracfg/js/package-lock.json index ca697e1..d44d67a 100644 --- a/libxtracfg/js/package-lock.json +++ b/libxtracfg/js/package-lock.json @@ -627,10 +627,10 @@ "undici-types": "~6.19.2" } }, - "node_modules/@types/websocket": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.10.tgz", - "integrity": "sha512-svjGZvPB7EzuYS94cI7a+qhwgGU1y89wUgjT6E2wVUfmAGIvRfT7obBvRtnhXCSsoMdlG4gBFGE7MfkIXZLoww==", + "node_modules/@types/ws": { + "version": "8.5.12", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.12.tgz", + "integrity": "sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2537,7 +2537,7 @@ "xtracfg": "^1.0.0" }, "devDependencies": { - "@types/websocket": "^1.0.10", + "@types/ws": "^8.5.12", "esbuild": "0.24.0", "esbuild-plugin-clean": "^1.0.1", "tsx": "^4.7.2", diff --git a/libxtracfg/js/xtracfg-transport-websocket/package.json b/libxtracfg/js/xtracfg-transport-websocket/package.json index 1666ca3..f4adf5d 100644 --- a/libxtracfg/js/xtracfg-transport-websocket/package.json +++ b/libxtracfg/js/xtracfg-transport-websocket/package.json @@ -18,7 +18,7 @@ "xtracfg": "^1.0.0" }, "devDependencies": { - "@types/websocket": "^1.0.10", + "@types/ws": "^8.5.12", "esbuild": "0.24.0", "esbuild-plugin-clean": "^1.0.1", "tsx": "^4.7.2", diff --git a/libxtracfg/js/xtracfg-transport-websocket/src/index.ts b/libxtracfg/js/xtracfg-transport-websocket/src/index.ts index 49a993f..967ec9a 100644 --- a/libxtracfg/js/xtracfg-transport-websocket/src/index.ts +++ b/libxtracfg/js/xtracfg-transport-websocket/src/index.ts @@ -14,6 +14,9 @@ export const transport: TransportCreator = ({ debug }: TransportOptions) => { listen: (handler) => socket.then((s) => { s?.addEventListener("message", (event) => { + if (typeof event.data !== "string") { + return; + } const response = JSON.parse(event.data); handler(response); From 08790756eec45c2e3b43614a7afa19d430ae47b9 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Wed, 16 Oct 2024 20:55:49 +0200 Subject: [PATCH 054/167] js build --- .github/workflows/xtracfg.yml | 41 +++ .gitignore | 1 + libxtracfg/c/test.sh | 2 +- libxtracfg/c/wrapper/libxtracfg.c | 2 +- libxtracfg/java/build.gradle | 4 +- .../de/ii/xtraplatform/cli/cmd/Common.java | 4 + .../de/ii/xtraplatform/cli/cmd/Connect.java | 4 +- libxtracfg/js/package-lock.json | 288 +++++++++++++++++- libxtracfg/js/package.json | 1 + libxtracfg/js/xtracfg-native-binding/index.js | 3 + .../js/xtracfg-native-binding/package.json | 19 +- .../js/xtracfg-native-binding/src/index.js | 6 - .../test/test_binding.js | 4 +- .../js/xtracfg-transport-native/package.json | 1 + .../xtracfg-transport-websocket/package.json | 1 + libxtracfg/js/xtracfg/package.json | 1 + 16 files changed, 351 insertions(+), 31 deletions(-) create mode 100644 libxtracfg/js/xtracfg-native-binding/index.js delete mode 100644 libxtracfg/js/xtracfg-native-binding/src/index.js diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 40a91aa..85566db 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -47,6 +47,15 @@ jobs: - name: log2 run: | ls -l ./libxtracfg/c/build + - name: js + working-directory: ./libxtracfg/js/xtracfg-native-binding + run: | + npm ci + npm run prebuild + npm run test + - name: log3 + run: | + ls -lR ./libxtracfg/js/xtracfg-native-binding/prebuilds # TODO: run tests for java, c, go - uses: actions/upload-artifact@v4 with: @@ -58,8 +67,14 @@ jobs: name: libxtracfg-c-hash-${{ matrix.os.platform }} path: ./libxtracfg/go/xtracfg/libxtracfg.sha1sum retention-days: 1 + - uses: actions/upload-artifact@v4 + with: + name: libxtracfg-js-${{ matrix.os.platform }} + path: ./libxtracfg/js/xtracfg-native-binding/prebuilds + retention-days: 1 binary: + if: ${{ github.ref_name == 'main' }} runs-on: ${{ matrix.os.runner }} needs: libraries strategy: @@ -123,7 +138,33 @@ jobs: path: ./xtracfg/Dockerfile retention-days: 1 + npm: + runs-on: ubuntu-latest + needs: libraries + defaults: + run: + working-directory: ./libxtracfg/js + steps: + - uses: actions/checkout@v4 + - uses: actions/download-artifact@v4 + with: + pattern: "{libxtracfg-js-}*" + path: ./libxtracfg/js/xtracfg-native-binding/prebuilds + merge-multiple: true + - name: log1 + run: | + ls -lR .//xtracfg-native-binding/prebuilds + - name: js + run: | + npm ci + npm run build + npm run pkg + - name: log2 + run: | + ls -lR ./**/build + docker: + if: ${{ github.ref_name == 'main' }} runs-on: ubuntu-latest needs: binary steps: diff --git a/.gitignore b/.gitignore index d6053b0..a751e02 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ build bin libxtracfg/go/xtracfg/libxtracfg.sha1sum node_modules +prebuilds diff --git a/libxtracfg/c/test.sh b/libxtracfg/c/test.sh index 0b30cfa..2f0a63b 100755 --- a/libxtracfg/c/test.sh +++ b/libxtracfg/c/test.sh @@ -2,4 +2,4 @@ DIR=$(dirname "$(readlink -f "$0")") -./build/test "{\"command\": \"info\", \"source\": \"$DIR\"}" +./build/test "{\"command\": \"info\", \"source\": \"$DIR\", \"debug\": \"true\", \"verbose\": \"true\"}" diff --git a/libxtracfg/c/wrapper/libxtracfg.c b/libxtracfg/c/wrapper/libxtracfg.c index 17076f9..13329d3 100644 --- a/libxtracfg/c/wrapper/libxtracfg.c +++ b/libxtracfg/c/wrapper/libxtracfg.c @@ -73,7 +73,7 @@ char* xtracfg_execute(const char* command, int* err) { char *result3 = malloc(strlen(result) + 1); strcpy(result3,result); - //printf("%s", result3);D"); + //printf("%s", result3); (*jvm)->DetachCurrentThread(jvm); diff --git a/libxtracfg/java/build.gradle b/libxtracfg/java/build.gradle index 5c8eaee..e310cc8 100644 --- a/libxtracfg/java/build.gradle +++ b/libxtracfg/java/build.gradle @@ -26,7 +26,7 @@ repositories { } dependencies { - implementation group: 'de.interactive_instruments', name: 'ldproxy-cfg', version: '4.1.0-auto-styles-SNAPSHOT' + implementation group: 'de.interactive_instruments', name: 'ldproxy-cfg', version: '4.2.0-SNAPSHOT' implementation group: 'org.slf4j', name: 'slf4j-nop', version: '1.7.35' // use this instead for debugging purposes //implementation group: 'org.slf4j', name: 'slf4j-simple', version: '1.7.35' @@ -118,4 +118,4 @@ if (project.hasProperty('LIB')) { if (!project.hasProperty('CI')) { apply from: 'dev.gradle' -} \ No newline at end of file +} diff --git a/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/Common.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/Common.java index 0a0e92e..8ffaf32 100644 --- a/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/Common.java +++ b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/Common.java @@ -20,6 +20,10 @@ protected Common(Common common) { protected Common(Map parameters) { this.verbose = flag(parameters, "verbose"); this.debug = flag(parameters, "debug"); + + if (verbose) { + System.out.println("Running " + this.getClass().getSimpleName() + " with parameters: " + parameters); + } } protected final boolean flag(Map parameters, String name) { diff --git a/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/Connect.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/Connect.java index 3dba405..5bfdc4c 100644 --- a/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/Connect.java +++ b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/Connect.java @@ -26,7 +26,9 @@ public Result run(Context.Builder context) { return Result.ok(String.format("Store source: %s", context.layout.info().label())); } } catch (Throwable e) { - // e.printStackTrace(); + if (debug && verbose) { + e.printStackTrace(); + } return Result.failure(e.getMessage()); } return Result.empty(); diff --git a/libxtracfg/js/package-lock.json b/libxtracfg/js/package-lock.json index d44d67a..519ef5b 100644 --- a/libxtracfg/js/package-lock.json +++ b/libxtracfg/js/package-lock.json @@ -723,6 +723,39 @@ "dev": true, "license": "MIT" }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, "node_modules/bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -754,6 +787,31 @@ "node": ">=8" } }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, "node_modules/catharsis": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", @@ -784,6 +842,13 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true, + "license": "ISC" + }, "node_modules/clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -864,6 +929,16 @@ "node": ">=8" } }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -1086,6 +1161,13 @@ "node": ">=8" } }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true, + "license": "MIT" + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -1194,6 +1276,27 @@ "node": ">=8" } }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -1491,6 +1594,26 @@ "node": ">=10" } }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-abi": { + "version": "3.71.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.71.0.tgz", + "integrity": "sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/node-addon-api": { "version": "8.2.1", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.2.1.tgz", @@ -1500,6 +1623,30 @@ "node": "^18 || ^20 || >= 21" } }, + "node_modules/node-gyp-build": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.2.tgz", + "integrity": "sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==", + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/npm-run-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz", + "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -1554,6 +1701,16 @@ "node": ">=0.10.0" } }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -1577,6 +1734,24 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/prebuildify": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/prebuildify/-/prebuildify-6.0.1.tgz", + "integrity": "sha512-8Y2oOOateom/s8dNBsGIcnm6AxPmLH4/nanQzL5lQMU+sC0CMhzARZHizwr36pUPLdvBnOkCNQzxg4djuFSgIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5", + "mkdirp-classic": "^0.5.3", + "node-abi": "^3.3.0", + "npm-run-path": "^3.1.0", + "pump": "^3.0.0", + "tar-fs": "^2.1.0" + }, + "bin": { + "prebuildify": "bin.js" + } + }, "node_modules/prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", @@ -1683,6 +1858,17 @@ "node": ">=10" } }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "node_modules/punycode.js": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", @@ -1714,6 +1900,21 @@ ], "license": "MIT" }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/requizzle": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.4.tgz", @@ -1786,6 +1987,27 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/semver": { "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", @@ -1820,6 +2042,16 @@ "node": ">=0.10.0" } }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -1846,6 +2078,36 @@ "node": ">=8" } }, + "node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dev": true, + "license": "MIT", + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/tmp": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", @@ -2413,6 +2675,13 @@ "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", "license": "MIT" }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", @@ -2493,23 +2762,16 @@ }, "xtracfg-native-binding": { "version": "1.0.0", + "hasInstallScript": true, "license": "MIT", "dependencies": { - "bindings": "~1.5.0", - "node-addon-api": "^8.2.1" - } - }, - "xtracfg-native-binding/node_modules/bindings": { - "version": "1.5.0", - "license": "MIT", - "dependencies": { - "file-uri-to-path": "1.0.0" + "node-addon-api": "^8.2.1", + "node-gyp-build": "^4.8.2" + }, + "devDependencies": { + "prebuildify": "^6.0.1" } }, - "xtracfg-native-binding/node_modules/file-uri-to-path": { - "version": "1.0.0", - "license": "MIT" - }, "xtracfg-transport-native": { "version": "1.0.0", "license": "MIT", diff --git a/libxtracfg/js/package.json b/libxtracfg/js/package.json index a254024..c61366b 100644 --- a/libxtracfg/js/package.json +++ b/libxtracfg/js/package.json @@ -9,6 +9,7 @@ ], "scripts": { "build": "npm run build --workspaces", + "pkg": "npm run pkg --workspaces", "test": "npm run test --workspaces" } } diff --git a/libxtracfg/js/xtracfg-native-binding/index.js b/libxtracfg/js/xtracfg-native-binding/index.js new file mode 100644 index 0000000..9b4c67f --- /dev/null +++ b/libxtracfg/js/xtracfg-native-binding/index.js @@ -0,0 +1,3 @@ +const addon = require("node-gyp-build")(__dirname); + +module.exports = addon; diff --git a/libxtracfg/js/xtracfg-native-binding/package.json b/libxtracfg/js/xtracfg-native-binding/package.json index c324e1f..0532aa4 100644 --- a/libxtracfg/js/xtracfg-native-binding/package.json +++ b/libxtracfg/js/xtracfg-native-binding/package.json @@ -5,14 +5,23 @@ "author": "", "license": "MIT", "type": "commonjs", - "main": "src/index.js", + "main": "index.js", + "files": [ + "prebuilds" + ], "dependencies": { - "bindings": "~1.5.0", - "node-addon-api": "^8.2.1" + "node-addon-api": "^8.2.1", + "node-gyp-build": "^4.8.2" }, "scripts": { "build": "node-gyp rebuild", - "test": "node --napi-modules ./test/test_binding.js" + "install": "node-gyp-build", + "pkg": "npm pack --pack-destination build", + "prebuild": "prebuildify --napi --strip", + "test": "node ./test/test_binding.js" }, - "gypfile": true + "gypfile": true, + "devDependencies": { + "prebuildify": "^6.0.1" + } } diff --git a/libxtracfg/js/xtracfg-native-binding/src/index.js b/libxtracfg/js/xtracfg-native-binding/src/index.js deleted file mode 100644 index a44087e..0000000 --- a/libxtracfg/js/xtracfg-native-binding/src/index.js +++ /dev/null @@ -1,6 +0,0 @@ -const addon = require("bindings")("xtracfg-native"); - -module.exports = { - execute: addon.execute, - subscribe: addon.subscribe, -}; diff --git a/libxtracfg/js/xtracfg-native-binding/test/test_binding.js b/libxtracfg/js/xtracfg-native-binding/test/test_binding.js index 0d6f1cf..50ebd57 100644 --- a/libxtracfg/js/xtracfg-native-binding/test/test_binding.js +++ b/libxtracfg/js/xtracfg-native-binding/test/test_binding.js @@ -1,8 +1,8 @@ -const xtracfgLib = require("../src/index.js"); +const xtracfgLib = require("../index.js"); function testBasic() { const command = - '{"command": "info", "source": "/Users/pascal/Documents/GitHub/demo"}'; + '{"command": "info", "source": "/Users/az/development/configs-ldproxy/demogh", "verbose": "true", "debug": "true"}'; const result = xtracfgLib.execute(command); diff --git a/libxtracfg/js/xtracfg-transport-native/package.json b/libxtracfg/js/xtracfg-transport-native/package.json index 1445cea..8b21ea7 100644 --- a/libxtracfg/js/xtracfg-transport-native/package.json +++ b/libxtracfg/js/xtracfg-transport-native/package.json @@ -9,6 +9,7 @@ "types": "build/index.d.ts", "scripts": { "build": "node .esbuild.js && tsc --declaration --emitDeclarationOnly", + "pkg": "npm pack --pack-destination build", "test": "tsx ./test/test.ts" }, "dependencies": { diff --git a/libxtracfg/js/xtracfg-transport-websocket/package.json b/libxtracfg/js/xtracfg-transport-websocket/package.json index f4adf5d..9653b6c 100644 --- a/libxtracfg/js/xtracfg-transport-websocket/package.json +++ b/libxtracfg/js/xtracfg-transport-websocket/package.json @@ -9,6 +9,7 @@ "types": "build/index.d.ts", "scripts": { "build": "node .esbuild.js && tsc --declaration --emitDeclarationOnly", + "pkg": "npm pack --pack-destination build", "test": "tsx ./test/test.ts" }, "dependencies": { diff --git a/libxtracfg/js/xtracfg/package.json b/libxtracfg/js/xtracfg/package.json index 26a96d8..5c93b19 100644 --- a/libxtracfg/js/xtracfg/package.json +++ b/libxtracfg/js/xtracfg/package.json @@ -10,6 +10,7 @@ "scripts": { "build": "node .esbuild.js && tsc --declaration --emitDeclarationOnly", "dev": "tsx ./src/index.ts", + "pkg": "npm pack --pack-destination build", "proto": "pbjs -t static-module -w es6 -o protobuf.js ../../protobuf/xtracfg.proto && pbts -o protobuf.d.ts protobuf.js", "test": "tsx ./test/test.ts" }, From a7b14d079bbdaebdaf8d9d9f29e6615daa5f4e6b Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Wed, 16 Oct 2024 21:10:57 +0200 Subject: [PATCH 055/167] fix build --- libxtracfg/c/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libxtracfg/c/build.sh b/libxtracfg/c/build.sh index b10b37c..a568cf5 100755 --- a/libxtracfg/c/build.sh +++ b/libxtracfg/c/build.sh @@ -18,7 +18,7 @@ echo "lib" #clang -shared -fpic -Wall -I./ -L./ -I$JAVA_HOME/include -I$JAVA_HOME/include/${PLATFORM} -lxtracfgjni -o libxtracfg.${EXT} ../wrapper/libxtracfg.c # static -clang -c -Wall -I./ -I$JAVA_HOME/include -I$JAVA_HOME/include/${PLATFORM} -o libxtracfg.o ../wrapper/libxtracfg.c +clang -c -Wall -fPIC -I./ -I$JAVA_HOME/include -I$JAVA_HOME/include/${PLATFORM} -o libxtracfg.o ../wrapper/libxtracfg.c cp libxtracfgjni.a libxtracfg.a ar -rv libxtracfg.a libxtracfg.o if [ "$PLATFORM" = "darwin" ]; then From f2a1264dfe24c6992866a89dae6def17b217bf7b Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Wed, 16 Oct 2024 22:07:21 +0200 Subject: [PATCH 056/167] js build --- .github/workflows/xtracfg.yml | 1 + libxtracfg/js/.gitignore | 1 + libxtracfg/js/lerna.json | 4 + libxtracfg/js/package-lock.json | 9089 +++++++++++++++-- libxtracfg/js/package.json | 7 +- .../js/xtracfg-native-binding/binding.gyp | 4 +- .../xtracfg-native-binding/package-lock.json | 7 +- .../js/xtracfg-native-binding/package.json | 4 +- .../js/xtracfg-transport-native/package.json | 8 +- .../package-lock.json | 12 +- .../xtracfg-transport-websocket/package.json | 8 +- libxtracfg/js/xtracfg/package-lock.json | 6 +- libxtracfg/js/xtracfg/package.json | 4 +- 13 files changed, 8004 insertions(+), 1151 deletions(-) create mode 100644 libxtracfg/js/.gitignore create mode 100644 libxtracfg/js/lerna.json diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 85566db..eca5052 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -156,6 +156,7 @@ jobs: ls -lR .//xtracfg-native-binding/prebuilds - name: js run: | + npm run bump -- prerelease --build-metadata ${{ github.run_number }} npm ci npm run build npm run pkg diff --git a/libxtracfg/js/.gitignore b/libxtracfg/js/.gitignore new file mode 100644 index 0000000..40b878d --- /dev/null +++ b/libxtracfg/js/.gitignore @@ -0,0 +1 @@ +node_modules/ \ No newline at end of file diff --git a/libxtracfg/js/lerna.json b/libxtracfg/js/lerna.json new file mode 100644 index 0000000..f6b31ed --- /dev/null +++ b/libxtracfg/js/lerna.json @@ -0,0 +1,4 @@ +{ + "$schema": "node_modules/lerna/schemas/lerna-schema.json", + "version": "4.2.0-beta.0" +} \ No newline at end of file diff --git a/libxtracfg/js/package-lock.json b/libxtracfg/js/package-lock.json index 519ef5b..5ec61e3 100644 --- a/libxtracfg/js/package-lock.json +++ b/libxtracfg/js/package-lock.json @@ -10,7 +10,24 @@ "xtracfg-native-binding", "xtracfg-transport-native", "xtracfg-transport-websocket" - ] + ], + "devDependencies": { + "lerna": "^8.1.8" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.7.tgz", + "integrity": "sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.25.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } }, "node_modules/@babel/helper-string-parser": { "version": "7.25.7", @@ -32,6 +49,100 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/highlight": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.7.tgz", + "integrity": "sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/parser": { "version": "7.25.8", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.8.tgz", @@ -63,6 +174,37 @@ "node": ">=6.9.0" } }, + "node_modules/@emnapi/core": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.3.1.tgz", + "integrity": "sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==", + "dev": true, + "license": "MIT", + "dependencies": { + "@emnapi/wasi-threads": "1.0.1", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", + "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.1.tgz", + "integrity": "sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@esbuild/aix-ppc64": { "version": "0.24.0", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz", @@ -471,1585 +613,7686 @@ "node": ">=18" } }, - "node_modules/@jsdoc/salty": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.8.tgz", - "integrity": "sha512-5e+SFVavj1ORKlKaKr2BmTOekmXbelU7dC0cDkQLqag7xfuTPuGMUFx7KWJuv4bYZrTsoL2Z18VVCOKYxzoHcg==", + "node_modules/@hutson/parse-repository-url": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", + "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", "dev": true, "license": "Apache-2.0", - "dependencies": { - "lodash": "^4.17.21" - }, "engines": { - "node": ">=v12.0.0" + "node": ">=6.9.0" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" }, "engines": { - "node": ">= 8" + "node": ">=12" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, "license": "MIT", "engines": { - "node": ">= 8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, "engines": { - "node": ">= 8" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "license": "BSD-3-Clause", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", - "license": "BSD-3-Clause" - }, - "node_modules/@tsconfig/node20": { - "version": "20.1.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node20/-/node20-20.1.4.tgz", - "integrity": "sha512-sqgsT69YFeLWf5NtJ4Xq/xAF8p4ZQHlmGW74Nu2tD4+g5fAsposc4ZfaaPixVu4y01BEiDCWLRDCvDM5JOsRxg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/linkify-it": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", - "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true, "license": "MIT" }, - "node_modules/@types/markdown-it": { - "version": "14.1.2", - "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz", - "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==", + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, "license": "MIT", "dependencies": { - "@types/linkify-it": "^5", - "@types/mdurl": "^2" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@types/mdurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", - "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "20.16.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.11.tgz", - "integrity": "sha512-y+cTCACu92FyA5fgQSAI8A1H429g7aSK2HsO7K4XYUWc4dY5IUz55JSDIYT6/VsOLfGy8vmvQYC2hfb0iF16Uw==", "license": "MIT", "dependencies": { - "undici-types": "~6.19.2" + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/@types/ws": { - "version": "8.5.12", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.12.tgz", - "integrity": "sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==", + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, "license": "MIT", "dependencies": { - "@types/node": "*" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/acorn": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.13.0.tgz", - "integrity": "sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==", + "node_modules/@isaacs/string-locale-compare": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz", + "integrity": "sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, "license": "MIT", - "bin": { - "acorn": "bin/acorn" + "dependencies": { + "@sinclair/typebox": "^0.27.8" }, "engines": { - "node": ">=0.4.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "node_modules/@jsdoc/salty": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.8.tgz", + "integrity": "sha512-5e+SFVavj1ORKlKaKr2BmTOekmXbelU7dC0cDkQLqag7xfuTPuGMUFx7KWJuv4bYZrTsoL2Z18VVCOKYxzoHcg==", "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + "license": "Apache-2.0", + "dependencies": { + "lodash": "^4.17.21" + }, + "engines": { + "node": ">=v12.0.0" } }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "node_modules/@lerna/create": { + "version": "8.1.8", + "resolved": "https://registry.npmjs.org/@lerna/create/-/create-8.1.8.tgz", + "integrity": "sha512-wi72R01tgjBjzG2kjRyTHl4yCTKDfDMIXRyKz9E/FBa9SkFvUOAE4bdyY9MhEsRZmSWL7+CYE8Flv/HScRpBbA==", "dev": true, "license": "MIT", "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" + "@npmcli/arborist": "7.5.4", + "@npmcli/package-json": "5.2.0", + "@npmcli/run-script": "8.1.0", + "@nx/devkit": ">=17.1.2 < 20", + "@octokit/plugin-enterprise-rest": "6.0.1", + "@octokit/rest": "19.0.11", + "aproba": "2.0.0", + "byte-size": "8.1.1", + "chalk": "4.1.0", + "clone-deep": "4.0.1", + "cmd-shim": "6.0.3", + "color-support": "1.1.3", + "columnify": "1.6.0", + "console-control-strings": "^1.1.0", + "conventional-changelog-core": "5.0.1", + "conventional-recommended-bump": "7.0.1", + "cosmiconfig": "^8.2.0", + "dedent": "1.5.3", + "execa": "5.0.0", + "fs-extra": "^11.2.0", + "get-stream": "6.0.0", + "git-url-parse": "14.0.0", + "glob-parent": "6.0.2", + "globby": "11.1.0", + "graceful-fs": "4.2.11", + "has-unicode": "2.0.1", + "ini": "^1.3.8", + "init-package-json": "6.0.3", + "inquirer": "^8.2.4", + "is-ci": "3.0.1", + "is-stream": "2.0.0", + "js-yaml": "4.1.0", + "libnpmpublish": "9.0.9", + "load-json-file": "6.2.0", + "lodash": "^4.17.21", + "make-dir": "4.0.0", + "minimatch": "3.0.5", + "multimatch": "5.0.0", + "node-fetch": "2.6.7", + "npm-package-arg": "11.0.2", + "npm-packlist": "8.0.2", + "npm-registry-fetch": "^17.1.0", + "nx": ">=17.1.2 < 20", + "p-map": "4.0.0", + "p-map-series": "2.1.0", + "p-queue": "6.6.2", + "p-reduce": "^2.1.0", + "pacote": "^18.0.6", + "pify": "5.0.0", + "read-cmd-shim": "4.0.0", + "resolve-from": "5.0.0", + "rimraf": "^4.4.1", + "semver": "^7.3.4", + "set-blocking": "^2.0.0", + "signal-exit": "3.0.7", + "slash": "^3.0.0", + "ssri": "^10.0.6", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "strong-log-transformer": "2.1.0", + "tar": "6.2.1", + "temp-dir": "1.0.0", + "upath": "2.0.1", + "uuid": "^10.0.0", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "5.0.1", + "wide-align": "1.1.5", + "write-file-atomic": "5.0.1", + "write-pkg": "4.0.0", + "yargs": "17.7.2", + "yargs-parser": "21.1.1" }, "engines": { - "node": ">=8" + "node": ">=18.0.0" } }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@lerna/create/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "node_modules/@lerna/create/node_modules/glob": { + "version": "9.3.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", + "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", "dev": true, - "license": "Python-2.0" + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "minimatch": "^8.0.2", + "minipass": "^4.2.4", + "path-scurry": "^1.6.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "node_modules/@lerna/create/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, - "license": "MIT", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, "engines": { - "node": ">=8" + "node": ">=10.13.0" } }, - "node_modules/async-mutex": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.5.0.tgz", - "integrity": "sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==", + "node_modules/@lerna/create/node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, "license": "MIT", "dependencies": { - "tslib": "^2.4.0" + "balanced-match": "^1.0.0" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "node_modules/@lerna/create/node_modules/glob/node_modules/minimatch": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", + "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", "dev": true, - "license": "MIT" + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "node_modules/@lerna/create/node_modules/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "node_modules/@lerna/create/node_modules/minipass": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", "dev": true, - "license": "MIT", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" + "license": "ISC", + "engines": { + "node": ">=8" } }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "node_modules/@lerna/create/node_modules/rimraf": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz", + "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==", "dev": true, - "license": "MIT" + "license": "ISC", + "dependencies": { + "glob": "^9.2.0" + }, + "bin": { + "rimraf": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.4.tgz", + "integrity": "sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@emnapi/core": "^1.1.0", + "@emnapi/runtime": "^1.1.0", + "@tybys/wasm-util": "^0.9.0" } }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "license": "MIT", "dependencies": { - "fill-range": "^7.1.1" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, "engines": { - "node": ">=8" + "node": ">= 8" } }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "engines": { + "node": ">= 8" } }, - "node_modules/catharsis": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", - "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==", + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "license": "MIT", "dependencies": { - "lodash": "^4.17.15" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, "engines": { - "node": ">= 10" + "node": ">= 8" } }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@npmcli/agent": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz", + "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true, - "license": "ISC" - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "node_modules/@npmcli/arborist": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-7.5.4.tgz", + "integrity": "sha512-nWtIc6QwwoUORCRNzKx4ypHqCk3drI+5aeYdMTQQiRCcn4lOOgfQh7WyZobGYTxXPSq1VwV53lkpN/BRlRk08g==", "dev": true, - "license": "MIT", + "license": "ISC", + "dependencies": { + "@isaacs/string-locale-compare": "^1.1.0", + "@npmcli/fs": "^3.1.1", + "@npmcli/installed-package-contents": "^2.1.0", + "@npmcli/map-workspaces": "^3.0.2", + "@npmcli/metavuln-calculator": "^7.1.1", + "@npmcli/name-from-folder": "^2.0.0", + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/package-json": "^5.1.0", + "@npmcli/query": "^3.1.0", + "@npmcli/redact": "^2.0.0", + "@npmcli/run-script": "^8.1.0", + "bin-links": "^4.0.4", + "cacache": "^18.0.3", + "common-ancestor-path": "^1.0.1", + "hosted-git-info": "^7.0.2", + "json-parse-even-better-errors": "^3.0.2", + "json-stringify-nice": "^1.1.4", + "lru-cache": "^10.2.2", + "minimatch": "^9.0.4", + "nopt": "^7.2.1", + "npm-install-checks": "^6.2.0", + "npm-package-arg": "^11.0.2", + "npm-pick-manifest": "^9.0.1", + "npm-registry-fetch": "^17.0.1", + "pacote": "^18.0.6", + "parse-conflict-json": "^3.0.0", + "proc-log": "^4.2.0", + "proggy": "^2.0.0", + "promise-all-reject-late": "^1.0.0", + "promise-call-limit": "^3.0.1", + "read-package-json-fast": "^3.0.2", + "semver": "^7.3.7", + "ssri": "^10.0.6", + "treeverse": "^3.0.0", + "walk-up-path": "^3.0.1" + }, + "bin": { + "arborist": "bin/index.js" + }, "engines": { - "node": ">=6" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/color-convert": { + "node_modules/@npmcli/arborist/node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "balanced-match": "^1.0.0" + } + }, + "node_modules/@npmcli/arborist/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=7.0.0" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "node_modules/@npmcli/fs": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", + "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", "dev": true, - "license": "MIT" + "license": "ISC", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "node_modules/@npmcli/git": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.8.tgz", + "integrity": "sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==", "dev": true, - "license": "MIT" + "license": "ISC", + "dependencies": { + "@npmcli/promise-spawn": "^7.0.0", + "ini": "^4.1.3", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^9.0.0", + "proc-log": "^4.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "node_modules/@npmcli/git/node_modules/ini": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz", + "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", "dev": true, - "license": "MIT" + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } }, - "node_modules/del": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", - "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "node_modules/@npmcli/installed-package-contents": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz", + "integrity": "sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" + "npm-bundled": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" }, - "engines": { - "node": ">=10" + "bin": { + "installed-package-contents": "bin/index.js" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "node_modules/@npmcli/map-workspaces": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-3.0.6.tgz", + "integrity": "sha512-tkYs0OYnzQm6iIRdfy+LcLBjcKuQCeE5YLb8KnrIlutJfheNaPvPpgoFEyEFgbjzl5PLZ3IA/BWAwRU0eHuQDA==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "path-type": "^4.0.0" + "@npmcli/name-from-folder": "^2.0.0", + "glob": "^10.2.2", + "minimatch": "^9.0.0", + "read-package-json-fast": "^3.0.0" }, "engines": { - "node": ">=8" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "node_modules/@npmcli/map-workspaces/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "license": "MIT", "dependencies": { - "once": "^1.4.0" + "balanced-match": "^1.0.0" } }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "node_modules/@npmcli/map-workspaces/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" }, "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/esbuild": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz", - "integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==", + "node_modules/@npmcli/map-workspaces/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=18" + "node": ">=16 || 14 >=14.17" }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.24.0", - "@esbuild/android-arm": "0.24.0", - "@esbuild/android-arm64": "0.24.0", - "@esbuild/android-x64": "0.24.0", - "@esbuild/darwin-arm64": "0.24.0", - "@esbuild/darwin-x64": "0.24.0", - "@esbuild/freebsd-arm64": "0.24.0", - "@esbuild/freebsd-x64": "0.24.0", - "@esbuild/linux-arm": "0.24.0", - "@esbuild/linux-arm64": "0.24.0", - "@esbuild/linux-ia32": "0.24.0", - "@esbuild/linux-loong64": "0.24.0", - "@esbuild/linux-mips64el": "0.24.0", - "@esbuild/linux-ppc64": "0.24.0", - "@esbuild/linux-riscv64": "0.24.0", - "@esbuild/linux-s390x": "0.24.0", - "@esbuild/linux-x64": "0.24.0", - "@esbuild/netbsd-x64": "0.24.0", - "@esbuild/openbsd-arm64": "0.24.0", - "@esbuild/openbsd-x64": "0.24.0", - "@esbuild/sunos-x64": "0.24.0", - "@esbuild/win32-arm64": "0.24.0", - "@esbuild/win32-ia32": "0.24.0", - "@esbuild/win32-x64": "0.24.0" + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/esbuild-plugin-clean": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/esbuild-plugin-clean/-/esbuild-plugin-clean-1.0.1.tgz", - "integrity": "sha512-ul606g0wX6oeobBgi3EqpZtCBCwNwCDivvnshsNS5pUsRylKoxUnDqK0ZIyPinlMbP6s8Opc9y2zOeY1Plhe8Q==", + "node_modules/@npmcli/metavuln-calculator": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-7.1.1.tgz", + "integrity": "sha512-Nkxf96V0lAx3HCpVda7Vw4P23RILgdi/5K1fmj2tZkWIYLpXAN8k2UVVOsW16TsS5F8Ws2I7Cm+PU1/rsVF47g==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "chalk": "^4.1.2", - "del": "^6.0.0" + "cacache": "^18.0.0", + "json-parse-even-better-errors": "^3.0.0", + "pacote": "^18.0.0", + "proc-log": "^4.1.0", + "semver": "^7.3.5" }, - "peerDependencies": { - "esbuild": ">= 0.14.0" + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/escape-string-regexp": { + "node_modules/@npmcli/name-from-folder": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz", + "integrity": "sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg==", "dev": true, - "license": "MIT", + "license": "ISC", "engines": { - "node": ">=8" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "node_modules/@npmcli/node-gyp": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", + "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", "dev": true, - "license": "BSD-2-Clause", + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/package-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.2.0.tgz", + "integrity": "sha512-qe/kiqqkW0AGtvBjL8TJKZk/eBBSpnJkUWvHdQ9jM2lKHXRYYJuyNpJPlJw3c8QjC2ow6NZYiLExhUaeJelbxQ==", + "dev": true, + "license": "ISC", "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" + "@npmcli/git": "^5.0.0", + "glob": "^10.2.2", + "hosted-git-info": "^7.0.0", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^6.0.0", + "proc-log": "^4.0.0", + "semver": "^7.5.3" }, "engines": { - "node": ">=4.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/escodegen/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "node_modules/@npmcli/package-json/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" } }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "node_modules/@npmcli/package-json/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "node_modules/@npmcli/package-json/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, - "license": "BSD-2-Clause", + "license": "ISC", "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=16 || 14 >=14.17" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "node_modules/@npmcli/promise-spawn": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz", + "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==", "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" + "license": "ISC", + "dependencies": { + "which": "^4.0.0" }, "engines": { - "node": ">=4" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "node_modules/@npmcli/query": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/query/-/query-3.1.0.tgz", + "integrity": "sha512-C/iR0tk7KSKGldibYIB9x8GtO/0Bd0I2mhOaDb8ucQL/bQVTmGoeREaFj64Z5+iCBRf3dQfed0CjJL7I8iTkiQ==", "dev": true, - "license": "BSD-2-Clause", + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, "engines": { - "node": ">=4.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "node_modules/@npmcli/redact": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-2.0.1.tgz", + "integrity": "sha512-YgsR5jCQZhVmTJvjduTOIHph0L73pK8xwMVaDY0PatySqVM9AZj93jpoXYSJqfHFxFkN9dmqTw6OiqExsS3LPw==", "dev": true, - "license": "BSD-2-Clause", + "license": "ISC", "engines": { - "node": ">=0.10.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "node_modules/@npmcli/run-script": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-8.1.0.tgz", + "integrity": "sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/package-json": "^5.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "node-gyp": "^10.0.0", + "proc-log": "^4.0.0", + "which": "^4.0.0" }, "engines": { - "node": ">=8.6.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "node_modules/@nrwl/devkit": { + "version": "19.8.5", + "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-19.8.5.tgz", + "integrity": "sha512-2p/yWPsbHpGn2veDYf/0b90FKglqNRc+avlpu0EQgAtLLl4RLWu16gvJYlngqWLYVP17pM1dXUSnvW5jJlDZIA==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "@nx/devkit": "19.8.5" + } }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "node_modules/@nrwl/tao": { + "version": "19.8.5", + "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-19.8.5.tgz", + "integrity": "sha512-09hZxUknDESjHLhsfpiWOfe8VnZb4qDDRlOw9StHe1obxoOFr545ghQ7MbggU5yEk9KnEaUKnzEtHQl199NLaw==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "reusify": "^1.0.4" + "nx": "19.8.5", + "tslib": "^2.3.0" + }, + "bin": { + "tao": "index.js" } }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "node_modules/@nx/devkit": { + "version": "19.8.5", + "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-19.8.5.tgz", + "integrity": "sha512-5JW8K5ZbEQwsgIq5wh+6MDerR0ncS+wUPuYwE4CeyBIGk+YWF6OLGEXSqW/QZPhKgZnTVPIKGYYpdgHTS6G5wQ==", "dev": true, "license": "MIT", "dependencies": { - "to-regex-range": "^5.0.1" + "@nrwl/devkit": "19.8.5", + "ejs": "^3.1.7", + "enquirer": "~2.3.6", + "ignore": "^5.0.4", + "minimatch": "9.0.3", + "semver": "^7.5.3", + "tmp": "~0.2.1", + "tslib": "^2.3.0", + "yargs-parser": "21.1.1" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "nx": ">= 19 <= 21" } }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true, - "license": "MIT" - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true, - "license": "ISC" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/get-tsconfig": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", - "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==", + "node_modules/@nx/devkit/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "license": "MIT", "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + "balanced-match": "^1.0.0" } }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "node_modules/@nx/devkit/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, "license": "ISC", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/@nx/nx-darwin-arm64": { + "version": "19.8.5", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-19.8.5.tgz", + "integrity": "sha512-u0oS0LLzn4Xj50Q6K7xIVJDMHe5mBatOBcmwM/Jtu2j01N3yvZyoJnhxmK4I31wAgXhKYSbRIAMFzF9wdzgWhg==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">= 6" + "node": ">= 10" } }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "node_modules/@nx/nx-darwin-x64": { + "version": "19.8.5", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-19.8.5.tgz", + "integrity": "sha512-za2V0FpLrV9KUfGaegqZIirgu9cBOCefUqzEDWz5eFjdcdLMTvOpp53vHEsD+DE4XbDmvBHOLfSKVsT/lkfW1w==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 10" } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "node_modules/@nx/nx-freebsd-x64": { + "version": "19.8.5", + "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-19.8.5.tgz", + "integrity": "sha512-jl9VUXGYRrpvKedX202J9Mq1gL4pS9ArFKAoAYzJCkyaKeIwrW3petLO+IZRP1pV3hI2EjjIG+Cl9D0SIqQrQw==", + "cpu": [ + "x64" + ], "dev": true, - "license": "ISC" + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/@nx/nx-linux-arm-gnueabihf": { + "version": "19.8.5", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-19.8.5.tgz", + "integrity": "sha512-ZsBHugu+wrRsFETOcxtMJkq/Cyi4YMc1v4EtPaBMa22EfIsXZltYagTF6XWbCNfggoY5KAueF4Bpg0IiqVgFPw==", + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=8" + "node": ">= 10" } }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "node_modules/@nx/nx-linux-arm64-gnu": { + "version": "19.8.5", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-19.8.5.tgz", + "integrity": "sha512-cPt9ouuOKzfCa6CTHenWtJw32vqsgKbiavv683ZaZPeg3Y610hAF9vjeQWXDJi8kX1M5Sbox8suI9W3CzNzdFA==", + "cpu": [ + "arm64" + ], "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" ], - "license": "BSD-3-Clause" + "engines": { + "node": ">= 10" + } }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "node_modules/@nx/nx-linux-arm64-musl": { + "version": "19.8.5", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-19.8.5.tgz", + "integrity": "sha512-r4e1cfpPAAfV8J+MDfhzqqfwlnsNOfOvWYxvsZDlJ/mRGo9jZqwRAdsnCN7ltd13NbHZ/LT/e7y3ih5+CG4GZg==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 4" + "node": ">= 10" } }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "node_modules/@nx/nx-linux-x64-gnu": { + "version": "19.8.5", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-19.8.5.tgz", + "integrity": "sha512-5fCxgGp6gW/zBt3TpNM4L1h/srmnzW/PWkA8WWSIpiJAXFTWq/p1H83jcAmk/bXaUxwOtr3viIjm9F17HRCLMw==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=8" + "node": ">= 10" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "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.", + "node_modules/@nx/nx-linux-x64-musl": { + "version": "19.8.5", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-19.8.5.tgz", + "integrity": "sha512-UM/PJNi0SmsMosCdR6DcYHpZvdIXaByztXoA9ddM6Bc9MD0RJ86juyFKPCuvcD5Lir+msHGM74pCWK4qjpEiVQ==", + "cpu": [ + "x64" + ], "dev": true, - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "node_modules/@nx/nx-win32-arm64-msvc": { + "version": "19.8.5", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-19.8.5.tgz", + "integrity": "sha512-KqV1lLGuVIXa7Od+Sf4NLZmrX1Hx3pXoKpNvWEE9+x3w965GH9pTzSwy3S4+JbmuPboV8LFeMknrJcprgz/imA==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "ISC" + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "node_modules/@nx/nx-win32-x64-msvc": { + "version": "19.8.5", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-19.8.5.tgz", + "integrity": "sha512-oMEC17hno2C5hXmXD/HLJ9swJ86AVa0vw0NTjKWm1vnRNiJlhw9mA+hNTQcm1L2VUpQSUN60Jg+134LPZh6nCQ==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=0.10.0" + "node": ">= 10" } }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "node_modules/@octokit/auth-token": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.4.tgz", + "integrity": "sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ==", "dev": true, "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, "engines": { - "node": ">=0.10.0" + "node": ">= 14" } }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "node_modules/@octokit/core": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.4.tgz", + "integrity": "sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ==", "dev": true, "license": "MIT", + "dependencies": { + "@octokit/auth-token": "^3.0.0", + "@octokit/graphql": "^5.0.0", + "@octokit/request": "^6.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + }, "engines": { - "node": ">=0.12.0" + "node": ">= 14" } }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "node_modules/@octokit/endpoint": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.6.tgz", + "integrity": "sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==", "dev": true, "license": "MIT", + "dependencies": { + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + }, "engines": { - "node": ">=6" + "node": ">= 14" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "node_modules/@octokit/graphql": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.6.tgz", + "integrity": "sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw==", "dev": true, "license": "MIT", + "dependencies": { + "@octokit/request": "^6.0.0", + "@octokit/types": "^9.0.0", + "universal-user-agent": "^6.0.0" + }, "engines": { - "node": ">=8" + "node": ">= 14" } }, - "node_modules/isomorphic-ws": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz", - "integrity": "sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==", - "license": "MIT", - "peerDependencies": { - "ws": "*" - } + "node_modules/@octokit/openapi-types": { + "version": "18.1.1", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.1.1.tgz", + "integrity": "sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw==", + "dev": true, + "license": "MIT" }, - "node_modules/js2xmlparser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz", - "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==", + "node_modules/@octokit/plugin-enterprise-rest": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz", + "integrity": "sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==", "dev": true, - "license": "Apache-2.0", - "dependencies": { - "xmlcreate": "^2.0.4" - } + "license": "MIT" }, - "node_modules/jsdoc": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.3.tgz", - "integrity": "sha512-Nu7Sf35kXJ1MWDZIMAuATRQTg1iIPdzh7tqJ6jjvaU/GfDf+qi5UV8zJR3Mo+/pYFvm8mzay4+6O5EWigaQBQw==", + "node_modules/@octokit/plugin-paginate-rest": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.2.tgz", + "integrity": "sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "@babel/parser": "^7.20.15", - "@jsdoc/salty": "^0.2.1", - "@types/markdown-it": "^14.1.1", - "bluebird": "^3.7.2", - "catharsis": "^0.9.0", - "escape-string-regexp": "^2.0.0", - "js2xmlparser": "^4.0.2", - "klaw": "^3.0.0", - "markdown-it": "^14.1.0", - "markdown-it-anchor": "^8.6.7", - "marked": "^4.0.10", - "mkdirp": "^1.0.4", - "requizzle": "^0.2.3", - "strip-json-comments": "^3.1.0", - "underscore": "~1.13.2" - }, - "bin": { - "jsdoc": "jsdoc.js" + "@octokit/tsconfig": "^1.0.2", + "@octokit/types": "^9.2.3" }, "engines": { - "node": ">=12.0.0" + "node": ">= 14" + }, + "peerDependencies": { + "@octokit/core": ">=4" } }, - "node_modules/klaw": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", - "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", + "node_modules/@octokit/plugin-request-log": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", + "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", "dev": true, "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.9" + "peerDependencies": { + "@octokit/core": ">=3" } }, - "node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "node_modules/@octokit/plugin-rest-endpoint-methods": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.2.3.tgz", + "integrity": "sha512-I5Gml6kTAkzVlN7KCtjOM+Ruwe/rQppp0QU372K1GP7kNOYEKe8Xn5BW4sE62JAHdwpq95OQK/qGNyKQMUzVgA==", "dev": true, "license": "MIT", "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "@octokit/types": "^10.0.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">= 14" + }, + "peerDependencies": { + "@octokit/core": ">=3" } }, - "node_modules/linkify-it": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", - "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-10.0.0.tgz", + "integrity": "sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg==", "dev": true, "license": "MIT", "dependencies": { - "uc.micro": "^2.0.0" + "@octokit/openapi-types": "^18.0.0" } }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true, - "license": "MIT" - }, - "node_modules/long": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", - "license": "Apache-2.0" - }, - "node_modules/markdown-it": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", - "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "node_modules/@octokit/request": { + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.8.tgz", + "integrity": "sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==", "dev": true, "license": "MIT", "dependencies": { - "argparse": "^2.0.1", - "entities": "^4.4.0", - "linkify-it": "^5.0.0", - "mdurl": "^2.0.0", - "punycode.js": "^2.3.1", - "uc.micro": "^2.1.0" + "@octokit/endpoint": "^7.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.7", + "universal-user-agent": "^6.0.0" }, - "bin": { - "markdown-it": "bin/markdown-it.mjs" + "engines": { + "node": ">= 14" } }, - "node_modules/markdown-it-anchor": { - "version": "8.6.7", - "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz", - "integrity": "sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==", + "node_modules/@octokit/request-error": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", + "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", "dev": true, - "license": "Unlicense", - "peerDependencies": { - "@types/markdown-it": "*", - "markdown-it": "*" + "license": "MIT", + "dependencies": { + "@octokit/types": "^9.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 14" } }, - "node_modules/marked": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", - "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", + "node_modules/@octokit/rest": { + "version": "19.0.11", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.11.tgz", + "integrity": "sha512-m2a9VhaP5/tUw8FwfnW2ICXlXpLPIqxtg3XcAiGMLj/Xhw3RSBfZ8le/466ktO1Gcjr8oXudGnHhxV1TXJgFxw==", "dev": true, "license": "MIT", - "bin": { - "marked": "bin/marked.js" + "dependencies": { + "@octokit/core": "^4.2.1", + "@octokit/plugin-paginate-rest": "^6.1.2", + "@octokit/plugin-request-log": "^1.0.4", + "@octokit/plugin-rest-endpoint-methods": "^7.1.2" }, "engines": { - "node": ">= 12" + "node": ">= 14" } }, - "node_modules/mdurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", - "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "node_modules/@octokit/tsconfig": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@octokit/tsconfig/-/tsconfig-1.0.2.tgz", + "integrity": "sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA==", "dev": true, "license": "MIT" }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "node_modules/@octokit/types": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", + "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", "dev": true, "license": "MIT", - "engines": { - "node": ">= 8" + "dependencies": { + "@octokit/openapi-types": "^18.0.0" } }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, + "optional": true, "engines": { - "node": ">=8.6" + "node": ">=14" } }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", + "license": "BSD-3-Clause" + }, + "node_modules/@sigstore/bundle": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.2.tgz", + "integrity": "sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==", "dev": true, - "license": "ISC", + "license": "Apache-2.0", "dependencies": { - "brace-expansion": "^1.1.7" + "@sigstore/protobuf-specs": "^0.3.2" }, "engines": { - "node": "*" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "node_modules/@sigstore/core": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-1.1.0.tgz", + "integrity": "sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==", "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "license": "Apache-2.0", + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "node_modules/@sigstore/protobuf-specs": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.2.tgz", + "integrity": "sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw==", "dev": true, - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, + "license": "Apache-2.0", "engines": { - "node": ">=10" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "node_modules/@sigstore/sign": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.2.tgz", + "integrity": "sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==", "dev": true, - "license": "MIT" + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.2", + "make-fetch-happen": "^13.0.1", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } }, - "node_modules/node-abi": { - "version": "3.71.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.71.0.tgz", - "integrity": "sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw==", + "node_modules/@sigstore/tuf": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.4.tgz", + "integrity": "sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "semver": "^7.3.5" + "@sigstore/protobuf-specs": "^0.3.2", + "tuf-js": "^2.2.1" }, "engines": { - "node": ">=10" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/node-addon-api": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.2.1.tgz", - "integrity": "sha512-vmEOvxwiH8tlOcv4SyE8RH34rI5/nWVaigUeAUPawC6f0+HoDthwI0vkMu4tbtsZrXq6QXFfrkhjofzKEs5tpA==", - "license": "MIT", + "node_modules/@sigstore/verify": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.2.1.tgz", + "integrity": "sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.1.0", + "@sigstore/protobuf-specs": "^0.3.2" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node20": { + "version": "20.1.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node20/-/node20-20.1.4.tgz", + "integrity": "sha512-sqgsT69YFeLWf5NtJ4Xq/xAF8p4ZQHlmGW74Nu2tD4+g5fAsposc4ZfaaPixVu4y01BEiDCWLRDCvDM5JOsRxg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tufjs/canonical-json": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", + "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.1.tgz", + "integrity": "sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@tufjs/models/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@tybys/wasm-util": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", + "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/markdown-it": { + "version": "14.1.2", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz", + "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/linkify-it": "^5", + "@types/mdurl": "^2" + } + }, + "node_modules/@types/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "20.16.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.11.tgz", + "integrity": "sha512-y+cTCACu92FyA5fgQSAI8A1H429g7aSK2HsO7K4XYUWc4dY5IUz55JSDIYT6/VsOLfGy8vmvQYC2hfb0iF16Uw==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/ws": { + "version": "8.5.12", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.12.tgz", + "integrity": "sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@xtracfg/core": { + "resolved": "xtracfg", + "link": true + }, + "node_modules/@xtracfg/native": { + "resolved": "xtracfg-native-binding", + "link": true + }, + "node_modules/@xtracfg/transport-native": { + "resolved": "xtracfg-transport-native", + "link": true + }, + "node_modules/@xtracfg/transport-websocket": { + "resolved": "xtracfg-transport-websocket", + "link": true + }, + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/@yarnpkg/parsers": { + "version": "3.0.0-rc.46", + "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.0-rc.46.tgz", + "integrity": "sha512-aiATs7pSutzda/rq8fnuPwTglyVwjM22bNnK2ZgjrpAjQHSSl3lztd2f9evst1W/qnC58DRz7T7QndUDumAR4Q==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "js-yaml": "^3.10.0", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=14.15.0" + } + }, + "node_modules/@yarnpkg/parsers/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@yarnpkg/parsers/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@yarnpkg/parsers/node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@zkochan/js-yaml": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.7.tgz", + "integrity": "sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/abbrev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/acorn": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.13.0.tgz", + "integrity": "sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/add-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", + "integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-differ": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", + "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/array-ify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", + "dev": true, + "license": "MIT" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true, + "license": "MIT" + }, + "node_modules/async-mutex": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.5.0.tgz", + "integrity": "sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", + "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/before-after-hook": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/bin-links": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-4.0.4.tgz", + "integrity": "sha512-cMtq4W5ZsEwcutJrVId+a/tjt8GSbS+h0oNkdl6+6rBuEv8Ot33Bevj5KPm40t309zuhVic8NjpuL42QCiJWWA==", + "dev": true, + "license": "ISC", + "dependencies": { + "cmd-shim": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "read-cmd-shim": "^4.0.0", + "write-file-atomic": "^5.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/byte-size": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-8.1.1.tgz", + "integrity": "sha512-tUkzZWK0M/qdoLEqikxBWe4kumyuwjl3HO6zHTr4yEI23EojPtLYXdG1+AQY7MN0cGyNDvEaJ8wiYQm6P2bPxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.17" + } + }, + "node_modules/cacache": { + "version": "18.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.4.tgz", + "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/cacache/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/cacache/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacache/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/catharsis": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", + "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.15" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true, + "license": "MIT" + }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true, + "license": "ISC" + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clone-deep/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cmd-shim": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-6.0.3.tgz", + "integrity": "sha512-FMabTRlc5t5zjdenF6mS0MBeFZm0XqHqeOkcskKFb/LYCcRQ5fVgLOHVc4Lq9CqABd9zhjwPjMBCJvMCziSVtA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true, + "license": "ISC", + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/columnify": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz", + "integrity": "sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "strip-ansi": "^6.0.1", + "wcwidth": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/common-ancestor-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", + "integrity": "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==", + "dev": true, + "license": "ISC" + }, + "node_modules/compare-func": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", + "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", + "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", + "dev": true, + "engines": [ + "node >= 6.0" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/conventional-changelog-angular": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz", + "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/conventional-changelog-core": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-5.0.1.tgz", + "integrity": "sha512-Rvi5pH+LvgsqGwZPZ3Cq/tz4ty7mjijhr3qR4m9IBXNbxGGYgTVVO+duXzz9aArmHxFtwZ+LRkrNIMDQzgoY4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "add-stream": "^1.0.0", + "conventional-changelog-writer": "^6.0.0", + "conventional-commits-parser": "^4.0.0", + "dateformat": "^3.0.3", + "get-pkg-repo": "^4.2.1", + "git-raw-commits": "^3.0.0", + "git-remote-origin-url": "^2.0.0", + "git-semver-tags": "^5.0.0", + "normalize-package-data": "^3.0.3", + "read-pkg": "^3.0.0", + "read-pkg-up": "^3.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/conventional-changelog-core/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-core/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-core/node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-preset-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-3.0.0.tgz", + "integrity": "sha512-qy9XbdSLmVnwnvzEisjxdDiLA4OmV3o8db+Zdg4WiFw14fP3B6XNz98X0swPPpkTd/pc1K7+adKgEDM1JCUMiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/conventional-changelog-writer": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-6.0.1.tgz", + "integrity": "sha512-359t9aHorPw+U+nHzUXHS5ZnPBOizRxfQsWT5ZDHBfvfxQOAik+yfuhKXG66CN5LEWPpMNnIMHUTCKeYNprvHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "conventional-commits-filter": "^3.0.0", + "dateformat": "^3.0.3", + "handlebars": "^4.7.7", + "json-stringify-safe": "^5.0.1", + "meow": "^8.1.2", + "semver": "^7.0.0", + "split": "^1.0.1" + }, + "bin": { + "conventional-changelog-writer": "cli.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/conventional-commits-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-3.0.0.tgz", + "integrity": "sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash.ismatch": "^4.4.0", + "modify-values": "^1.0.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/conventional-commits-parser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz", + "integrity": "sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-text-path": "^1.0.1", + "JSONStream": "^1.3.5", + "meow": "^8.1.2", + "split2": "^3.2.2" + }, + "bin": { + "conventional-commits-parser": "cli.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/conventional-recommended-bump": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-7.0.1.tgz", + "integrity": "sha512-Ft79FF4SlOFvX4PkwFDRnaNiIVX7YbmqGU0RwccUaiGvgp3S0a8ipR2/Qxk31vclDNM+GSdJOVs2KrsUCjblVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "concat-stream": "^2.0.0", + "conventional-changelog-preset-loader": "^3.0.0", + "conventional-commits-filter": "^3.0.0", + "conventional-commits-parser": "^4.0.0", + "git-raw-commits": "^3.0.0", + "git-semver-tags": "^5.0.0", + "meow": "^8.1.2" + }, + "bin": { + "conventional-recommended-bump": "cli.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/dargs": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", + "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "dev": true, + "license": "MIT", + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "dev": true, + "license": "MIT", + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/detect-indent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", + "integrity": "sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dotenv-expand": { + "version": "11.0.6", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.6.tgz", + "integrity": "sha512-8NHi73otpWsZGBSZwwknTXS5pqMOrk9+Ssrna8xCaxkzEpU9OTf9R5ArQGVw03//Zmk9MOwLPng9WwndvpAJ5g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dotenv": "^16.4.4" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true, + "license": "MIT" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/envinfo": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz", + "integrity": "sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==", + "dev": true, + "license": "MIT", + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true, + "license": "MIT" + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/esbuild": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz", + "integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.24.0", + "@esbuild/android-arm": "0.24.0", + "@esbuild/android-arm64": "0.24.0", + "@esbuild/android-x64": "0.24.0", + "@esbuild/darwin-arm64": "0.24.0", + "@esbuild/darwin-x64": "0.24.0", + "@esbuild/freebsd-arm64": "0.24.0", + "@esbuild/freebsd-x64": "0.24.0", + "@esbuild/linux-arm": "0.24.0", + "@esbuild/linux-arm64": "0.24.0", + "@esbuild/linux-ia32": "0.24.0", + "@esbuild/linux-loong64": "0.24.0", + "@esbuild/linux-mips64el": "0.24.0", + "@esbuild/linux-ppc64": "0.24.0", + "@esbuild/linux-riscv64": "0.24.0", + "@esbuild/linux-s390x": "0.24.0", + "@esbuild/linux-x64": "0.24.0", + "@esbuild/netbsd-x64": "0.24.0", + "@esbuild/openbsd-arm64": "0.24.0", + "@esbuild/openbsd-x64": "0.24.0", + "@esbuild/sunos-x64": "0.24.0", + "@esbuild/win32-arm64": "0.24.0", + "@esbuild/win32-ia32": "0.24.0", + "@esbuild/win32-x64": "0.24.0" + } + }, + "node_modules/esbuild-plugin-clean": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esbuild-plugin-clean/-/esbuild-plugin-clean-1.0.1.tgz", + "integrity": "sha512-ul606g0wX6oeobBgi3EqpZtCBCwNwCDivvnshsNS5pUsRylKoxUnDqK0ZIyPinlMbP6s8Opc9y2zOeY1Plhe8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2", + "del": "^6.0.0" + }, + "peerDependencies": { + "esbuild": ">= 0.14.0" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true, + "license": "MIT" + }, + "node_modules/execa": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz", + "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/exponential-backoff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "license": "MIT", + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/external-editor/node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "license": "BSD-3-Clause", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/form-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/front-matter": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz", + "integrity": "sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-yaml": "^3.13.1" + } + }, + "node_modules/front-matter/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/front-matter/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/front-matter/node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true, + "license": "MIT" + }, + "node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fs-minipass": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-pkg-repo": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", + "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@hutson/parse-repository-url": "^3.0.0", + "hosted-git-info": "^4.0.0", + "through2": "^2.0.0", + "yargs": "^16.2.0" + }, + "bin": { + "get-pkg-repo": "src/cli.js" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-pkg-repo/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/get-pkg-repo/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/get-pkg-repo/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/get-pkg-repo/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/get-pkg-repo/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/get-pkg-repo/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/get-port": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", + "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-stream": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.0.tgz", + "integrity": "sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-tsconfig": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", + "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/git-raw-commits": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-3.0.0.tgz", + "integrity": "sha512-b5OHmZ3vAgGrDn/X0kS+9qCfNKWe4K/jFnhwzVWWg0/k5eLa3060tZShrRg8Dja5kPc+YjS0Gc6y7cRr44Lpjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "dargs": "^7.0.0", + "meow": "^8.1.2", + "split2": "^3.2.2" + }, + "bin": { + "git-raw-commits": "cli.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/git-remote-origin-url": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", + "integrity": "sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "gitconfiglocal": "^1.0.0", + "pify": "^2.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/git-remote-origin-url/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/git-semver-tags": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-5.0.1.tgz", + "integrity": "sha512-hIvOeZwRbQ+7YEUmCkHqo8FOLQZCEn18yevLHADlFPZY02KJGsu5FZt9YW/lybfK2uhWFI7Qg/07LekJiTv7iA==", + "dev": true, + "license": "MIT", + "dependencies": { + "meow": "^8.1.2", + "semver": "^7.0.0" + }, + "bin": { + "git-semver-tags": "cli.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/git-up": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/git-up/-/git-up-7.0.0.tgz", + "integrity": "sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-ssh": "^1.4.0", + "parse-url": "^8.1.0" + } + }, + "node_modules/git-url-parse": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-14.0.0.tgz", + "integrity": "sha512-NnLweV+2A4nCvn4U/m2AoYu0pPKlsmhK9cknG7IMwsjFY1S2jxM+mAhsDxyxfCIGfGaD+dozsyX4b6vkYc83yQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "git-up": "^7.0.0" + } + }, + "node_modules/gitconfiglocal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", + "integrity": "sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==", + "dev": true, + "license": "BSD", + "dependencies": { + "ini": "^1.3.2" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hosted-git-info": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-walk": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.5.tgz", + "integrity": "sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==", + "dev": true, + "license": "ISC", + "dependencies": { + "minimatch": "^9.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/ignore-walk/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/ignore-walk/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "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.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC" + }, + "node_modules/init-package-json": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-6.0.3.tgz", + "integrity": "sha512-Zfeb5ol+H+eqJWHTaGca9BovufyGeIfr4zaaBorPmJBMrJ+KBnN+kQx2ZtXdsotUTgldHmHQV44xvUWOUA7E2w==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/package-json": "^5.0.0", + "npm-package-arg": "^11.0.0", + "promzard": "^1.0.0", + "read": "^3.0.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "^5.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/inquirer": { + "version": "8.2.6", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz", + "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^6.0.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-ssh": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.0.tgz", + "integrity": "sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "protocols": "^2.0.1" + } + }, + "node_modules/is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-text-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", + "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "text-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isomorphic-ws": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz", + "integrity": "sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==", + "license": "MIT", + "peerDependencies": { + "ws": "*" + } + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jake": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/js2xmlparser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz", + "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "xmlcreate": "^2.0.4" + } + }, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsdoc": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.3.tgz", + "integrity": "sha512-Nu7Sf35kXJ1MWDZIMAuATRQTg1iIPdzh7tqJ6jjvaU/GfDf+qi5UV8zJR3Mo+/pYFvm8mzay4+6O5EWigaQBQw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@babel/parser": "^7.20.15", + "@jsdoc/salty": "^0.2.1", + "@types/markdown-it": "^14.1.1", + "bluebird": "^3.7.2", + "catharsis": "^0.9.0", + "escape-string-regexp": "^2.0.0", + "js2xmlparser": "^4.0.2", + "klaw": "^3.0.0", + "markdown-it": "^14.1.0", + "markdown-it-anchor": "^8.6.7", + "marked": "^4.0.10", + "mkdirp": "^1.0.4", + "requizzle": "^0.2.3", + "strip-json-comments": "^3.1.0", + "underscore": "~1.13.2" + }, + "bin": { + "jsdoc": "jsdoc.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", + "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/json-stringify-nice": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz", + "integrity": "sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==", + "dev": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true, + "license": "ISC" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "dev": true, + "engines": [ + "node >= 0.2.0" + ], + "license": "MIT" + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "license": "(MIT OR Apache-2.0)", + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/just-diff": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-6.0.2.tgz", + "integrity": "sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA==", + "dev": true, + "license": "MIT" + }, + "node_modules/just-diff-apply": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.5.0.tgz", + "integrity": "sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/klaw": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", + "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.9" + } + }, + "node_modules/lerna": { + "version": "8.1.8", + "resolved": "https://registry.npmjs.org/lerna/-/lerna-8.1.8.tgz", + "integrity": "sha512-Rmo5ShMx73xM2CUcRixjmpZIXB7ZFlWEul1YvJyx/rH4onAwDHtUGD7Rx4NZYL8QSRiQHroglM2Oyq+WqA4BYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@lerna/create": "8.1.8", + "@npmcli/arborist": "7.5.4", + "@npmcli/package-json": "5.2.0", + "@npmcli/run-script": "8.1.0", + "@nx/devkit": ">=17.1.2 < 20", + "@octokit/plugin-enterprise-rest": "6.0.1", + "@octokit/rest": "19.0.11", + "aproba": "2.0.0", + "byte-size": "8.1.1", + "chalk": "4.1.0", + "clone-deep": "4.0.1", + "cmd-shim": "6.0.3", + "color-support": "1.1.3", + "columnify": "1.6.0", + "console-control-strings": "^1.1.0", + "conventional-changelog-angular": "7.0.0", + "conventional-changelog-core": "5.0.1", + "conventional-recommended-bump": "7.0.1", + "cosmiconfig": "^8.2.0", + "dedent": "1.5.3", + "envinfo": "7.13.0", + "execa": "5.0.0", + "fs-extra": "^11.2.0", + "get-port": "5.1.1", + "get-stream": "6.0.0", + "git-url-parse": "14.0.0", + "glob-parent": "6.0.2", + "globby": "11.1.0", + "graceful-fs": "4.2.11", + "has-unicode": "2.0.1", + "import-local": "3.1.0", + "ini": "^1.3.8", + "init-package-json": "6.0.3", + "inquirer": "^8.2.4", + "is-ci": "3.0.1", + "is-stream": "2.0.0", + "jest-diff": ">=29.4.3 < 30", + "js-yaml": "4.1.0", + "libnpmaccess": "8.0.6", + "libnpmpublish": "9.0.9", + "load-json-file": "6.2.0", + "lodash": "^4.17.21", + "make-dir": "4.0.0", + "minimatch": "3.0.5", + "multimatch": "5.0.0", + "node-fetch": "2.6.7", + "npm-package-arg": "11.0.2", + "npm-packlist": "8.0.2", + "npm-registry-fetch": "^17.1.0", + "nx": ">=17.1.2 < 20", + "p-map": "4.0.0", + "p-map-series": "2.1.0", + "p-pipe": "3.1.0", + "p-queue": "6.6.2", + "p-reduce": "2.1.0", + "p-waterfall": "2.1.1", + "pacote": "^18.0.6", + "pify": "5.0.0", + "read-cmd-shim": "4.0.0", + "resolve-from": "5.0.0", + "rimraf": "^4.4.1", + "semver": "^7.3.8", + "set-blocking": "^2.0.0", + "signal-exit": "3.0.7", + "slash": "3.0.0", + "ssri": "^10.0.6", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "strong-log-transformer": "2.1.0", + "tar": "6.2.1", + "temp-dir": "1.0.0", + "typescript": ">=3 < 6", + "upath": "2.0.1", + "uuid": "^10.0.0", + "validate-npm-package-license": "3.0.4", + "validate-npm-package-name": "5.0.1", + "wide-align": "1.1.5", + "write-file-atomic": "5.0.1", + "write-pkg": "4.0.0", + "yargs": "17.7.2", + "yargs-parser": "21.1.1" + }, + "bin": { + "lerna": "dist/cli.js" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/lerna/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/lerna/node_modules/glob": { + "version": "9.3.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", + "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "minimatch": "^8.0.2", + "minipass": "^4.2.4", + "path-scurry": "^1.6.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/lerna/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/lerna/node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/lerna/node_modules/glob/node_modules/minimatch": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", + "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/lerna/node_modules/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/lerna/node_modules/minipass": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/lerna/node_modules/rimraf": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz", + "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^9.2.0" + }, + "bin": { + "rimraf": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/libnpmaccess": { + "version": "8.0.6", + "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-8.0.6.tgz", + "integrity": "sha512-uM8DHDEfYG6G5gVivVl+yQd4pH3uRclHC59lzIbSvy7b5FEwR+mU49Zq1jEyRtRFv7+M99mUW9S0wL/4laT4lw==", + "dev": true, + "license": "ISC", + "dependencies": { + "npm-package-arg": "^11.0.2", + "npm-registry-fetch": "^17.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/libnpmpublish": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-9.0.9.tgz", + "integrity": "sha512-26zzwoBNAvX9AWOPiqqF6FG4HrSCPsHFkQm7nT+xU1ggAujL/eae81RnCv4CJ2In9q9fh10B88sYSzKCUh/Ghg==", + "dev": true, + "license": "ISC", + "dependencies": { + "ci-info": "^4.0.0", + "normalize-package-data": "^6.0.1", + "npm-package-arg": "^11.0.2", + "npm-registry-fetch": "^17.0.1", + "proc-log": "^4.2.0", + "semver": "^7.3.7", + "sigstore": "^2.2.0", + "ssri": "^10.0.6" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/libnpmpublish/node_modules/ci-info": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.0.0.tgz", + "integrity": "sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/lines-and-columns": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", + "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "uc.micro": "^2.0.0" + } + }, + "node_modules/load-json-file": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-6.2.0.tgz", + "integrity": "sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.15", + "parse-json": "^5.0.0", + "strip-bom": "^4.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/load-json-file/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.ismatch": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", + "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", + "dev": true, + "license": "MIT" + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", + "license": "Apache-2.0" + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-fetch-happen": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", + "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/markdown-it": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" + } + }, + "node_modules/markdown-it-anchor": { + "version": "8.6.7", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz", + "integrity": "sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==", + "dev": true, + "license": "Unlicense", + "peerDependencies": { + "@types/markdown-it": "*", + "markdown-it": "*" + } + }, + "node_modules/marked": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", + "dev": true, + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "dev": true, + "license": "MIT" + }, + "node_modules/meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/meow/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/meow/node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/meow/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" + }, + "node_modules/meow/node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/meow/node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/meow/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-collect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", + "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-fetch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", + "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true, + "license": "MIT" + }, + "node_modules/modify-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", + "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/multimatch": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", + "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimatch": "^3.0.3", + "array-differ": "^3.0.0", + "array-union": "^2.1.0", + "arrify": "^2.0.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/multimatch/node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true, + "license": "ISC" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-abi": { + "version": "3.71.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.71.0.tgz", + "integrity": "sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-addon-api": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.2.1.tgz", + "integrity": "sha512-vmEOvxwiH8tlOcv4SyE8RH34rI5/nWVaigUeAUPawC6f0+HoDthwI0vkMu4tbtsZrXq6QXFfrkhjofzKEs5tpA==", + "license": "MIT", + "engines": { + "node": "^18 || ^20 || >= 21" + } + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-gyp": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.2.0.tgz", + "integrity": "sha512-sp3FonBAaFe4aYTcFdZUn2NYkbP7xroPGYvQmP4Nl5PxamznItBnNCgjrVTKrEfQynInMsJvZrdmqUnysCJ8rw==", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^4.1.0", + "semver": "^7.3.5", + "tar": "^6.2.1", + "which": "^4.0.0" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.2.tgz", + "integrity": "sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==", + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-gyp/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/node-gyp/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-gyp/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-machine-id": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/node-machine-id/-/node-machine-id-1.1.12.tgz", + "integrity": "sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/nopt": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", + "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", + "dev": true, + "license": "ISC", + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/normalize-package-data": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", + "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^7.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-bundled": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.1.tgz", + "integrity": "sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-install-checks": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", + "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-package-arg": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.2.tgz", + "integrity": "sha512-IGN0IAwmhDJwy13Wc8k+4PEbTPhpJnMtfR53ZbOyjkvmEcLS4nCwp6mvMWjS5sUjeiW3mpx6cHmuhKEu9XmcQw==", + "dev": true, + "license": "ISC", + "dependencies": { + "hosted-git-info": "^7.0.0", + "proc-log": "^4.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-packlist": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.2.tgz", + "integrity": "sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==", + "dev": true, + "license": "ISC", + "dependencies": { + "ignore-walk": "^6.0.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-pick-manifest": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.1.0.tgz", + "integrity": "sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==", + "dev": true, + "license": "ISC", + "dependencies": { + "npm-install-checks": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "npm-package-arg": "^11.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-registry-fetch": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-17.1.0.tgz", + "integrity": "sha512-5+bKQRH0J1xG1uZ1zMNvxW0VEyoNWgJpY9UDuluPFLKDfJ9u2JmmjmTJV1srBGQOROfdBMiVvnH2Zvpbm+xkVA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/redact": "^2.0.0", + "jsonparse": "^1.3.1", + "make-fetch-happen": "^13.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minizlib": "^2.1.2", + "npm-package-arg": "^11.0.0", + "proc-log": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-run-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz", + "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nx": { + "version": "19.8.5", + "resolved": "https://registry.npmjs.org/nx/-/nx-19.8.5.tgz", + "integrity": "sha512-QB0E7ylVtnmo06T4cGU/Q/Pxpt5gcM/Jr9WCpwhTFOrzzHHPB3Rta6ISL4KvXeqPP4rCVT7kV46jquq6LQEGNw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@napi-rs/wasm-runtime": "0.2.4", + "@nrwl/tao": "19.8.5", + "@yarnpkg/lockfile": "^1.1.0", + "@yarnpkg/parsers": "3.0.0-rc.46", + "@zkochan/js-yaml": "0.0.7", + "axios": "^1.7.4", + "chalk": "^4.1.0", + "cli-cursor": "3.1.0", + "cli-spinners": "2.6.1", + "cliui": "^8.0.1", + "dotenv": "~16.4.5", + "dotenv-expand": "~11.0.6", + "enquirer": "~2.3.6", + "figures": "3.2.0", + "flat": "^5.0.2", + "front-matter": "^4.0.2", + "ignore": "^5.0.4", + "jest-diff": "^29.4.1", + "jsonc-parser": "3.2.0", + "lines-and-columns": "2.0.3", + "minimatch": "9.0.3", + "node-machine-id": "1.1.12", + "npm-run-path": "^4.0.1", + "open": "^8.4.0", + "ora": "5.3.0", + "semver": "^7.5.3", + "string-width": "^4.2.3", + "strong-log-transformer": "^2.1.0", + "tar-stream": "~2.2.0", + "tmp": "~0.2.1", + "tsconfig-paths": "^4.1.2", + "tslib": "^2.3.0", + "yargs": "^17.6.2", + "yargs-parser": "21.1.1" + }, + "bin": { + "nx": "bin/nx.js", + "nx-cloud": "bin/nx-cloud.js" + }, + "optionalDependencies": { + "@nx/nx-darwin-arm64": "19.8.5", + "@nx/nx-darwin-x64": "19.8.5", + "@nx/nx-freebsd-x64": "19.8.5", + "@nx/nx-linux-arm-gnueabihf": "19.8.5", + "@nx/nx-linux-arm64-gnu": "19.8.5", + "@nx/nx-linux-arm64-musl": "19.8.5", + "@nx/nx-linux-x64-gnu": "19.8.5", + "@nx/nx-linux-x64-musl": "19.8.5", + "@nx/nx-win32-arm64-msvc": "19.8.5", + "@nx/nx-win32-x64-msvc": "19.8.5" + }, + "peerDependencies": { + "@swc-node/register": "^1.8.0", + "@swc/core": "^1.3.85" + }, + "peerDependenciesMeta": { + "@swc-node/register": { + "optional": true + }, + "@swc/core": { + "optional": true + } + } + }, + "node_modules/nx/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/nx/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/nx/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nx/node_modules/ora": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.3.0.tgz", + "integrity": "sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "bl": "^4.0.3", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "log-symbols": "^4.0.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map-series": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-2.1.0.tgz", + "integrity": "sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-pipe": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-3.1.0.tgz", + "integrity": "sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-queue": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", + "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.4", + "p-timeout": "^3.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-reduce": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", + "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/p-waterfall": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-waterfall/-/p-waterfall-2.1.1.tgz", + "integrity": "sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-reduce": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/pacote": { + "version": "18.0.6", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-18.0.6.tgz", + "integrity": "sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^5.0.0", + "@npmcli/installed-package-contents": "^2.0.1", + "@npmcli/package-json": "^5.1.0", + "@npmcli/promise-spawn": "^7.0.0", + "@npmcli/run-script": "^8.0.0", + "cacache": "^18.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^11.0.0", + "npm-packlist": "^8.0.0", + "npm-pick-manifest": "^9.0.0", + "npm-registry-fetch": "^17.0.0", + "proc-log": "^4.0.0", + "promise-retry": "^2.0.1", + "sigstore": "^2.2.0", + "ssri": "^10.0.0", + "tar": "^6.1.11" + }, + "bin": { + "pacote": "bin/index.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-conflict-json": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-3.0.1.tgz", + "integrity": "sha512-01TvEktc68vwbJOtWZluyWeVGWjP+bZwXtPDMQVbBKzbJ/vZBif0L69KH1+cHv1SZ6e0FKLvjyHe8mqsIqYOmw==", + "dev": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^3.0.0", + "just-diff": "^6.0.0", + "just-diff-apply": "^5.2.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-json/node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/parse-json/node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/parse-path": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-7.0.0.tgz", + "integrity": "sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==", + "dev": true, + "license": "MIT", + "dependencies": { + "protocols": "^2.0.0" + } + }, + "node_modules/parse-url": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-8.1.0.tgz", + "integrity": "sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-path": "^7.0.0" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", + "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prebuildify": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/prebuildify/-/prebuildify-6.0.1.tgz", + "integrity": "sha512-8Y2oOOateom/s8dNBsGIcnm6AxPmLH4/nanQzL5lQMU+sC0CMhzARZHizwr36pUPLdvBnOkCNQzxg4djuFSgIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5", + "mkdirp-classic": "^0.5.3", + "node-abi": "^3.3.0", + "npm-run-path": "^3.1.0", + "pump": "^3.0.0", + "tar-fs": "^2.1.0" + }, + "bin": { + "prebuildify": "bin.js" + } + }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/proggy": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/proggy/-/proggy-2.0.0.tgz", + "integrity": "sha512-69agxLtnI8xBs9gUGqEnK26UfiexpHy+KUpBQWabiytQjnn5wFY8rklAi7GRfABIuPNnQ/ik48+LGLkYYJcy4A==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/promise-all-reject-late": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz", + "integrity": "sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==", + "dev": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/promise-call-limit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/promise-call-limit/-/promise-call-limit-3.0.2.tgz", + "integrity": "sha512-mRPQO2T1QQVw11E7+UdCJu7S61eJVWknzml9sC1heAdj1jxl0fWMBypIt9ZOcLFf8FkG995ZD7RnVk7HH72fZw==", + "dev": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/promzard": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/promzard/-/promzard-1.0.2.tgz", + "integrity": "sha512-2FPputGL+mP3jJ3UZg/Dl9YOkovB7DX0oOr+ck5QbZ5MtORtds8k/BZdn+02peDLI8/YWbmzx34k5fA+fHvCVQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "read": "^3.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/protobufjs": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", + "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/protobufjs-cli": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/protobufjs-cli/-/protobufjs-cli-1.1.3.tgz", + "integrity": "sha512-MqD10lqF+FMsOayFiNOdOGNlXc4iKDCf0ZQPkPR+gizYh9gqUeGTWulABUCdI+N67w5RfJ6xhgX4J8pa8qmMXQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "chalk": "^4.0.0", + "escodegen": "^1.13.0", + "espree": "^9.0.0", + "estraverse": "^5.1.0", + "glob": "^8.0.0", + "jsdoc": "^4.0.0", + "minimist": "^1.2.0", + "semver": "^7.1.2", + "tmp": "^0.2.1", + "uglify-js": "^3.7.7" + }, + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "protobufjs": "^7.0.0" + } + }, + "node_modules/protobufjs-cli/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/protobufjs-cli/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/protobufjs-cli/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/protocols": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/protocols/-/protocols-2.0.1.tgz", + "integrity": "sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true, + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/read": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/read/-/read-3.0.1.tgz", + "integrity": "sha512-SLBrDU/Srs/9EoWhU5GdbAoxG1GzpQHo/6qiGItaoLJ1thmYpcNIM1qISEUvyHBzfGlWIyd6p2DNi1oV1VmAuw==", + "dev": true, + "license": "ISC", + "dependencies": { + "mute-stream": "^1.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-cmd-shim": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-4.0.0.tgz", + "integrity": "sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-package-json-fast": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", + "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", + "dev": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true, + "license": "MIT", "engines": { - "node": "^18 || ^20 || >= 21" + "node": ">=4" } }, - "node_modules/node-gyp-build": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.2.tgz", - "integrity": "sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==", + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" + }, + "node_modules/read-pkg/node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/read-pkg/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" + "semver": "bin/semver" + } + }, + "node_modules/read-pkg/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/read/node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requizzle": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.4.tgz", + "integrity": "sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.21" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/npm-run-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz", - "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==", + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } + "license": "ISC" }, - "node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, "license": "MIT", "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" + "kind-of": "^6.0.2" }, "engines": { - "node": ">= 0.8.0" + "node": ">=8" } }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "license": "MIT", "dependencies": { - "aggregate-error": "^3.0.0" + "shebang-regex": "^3.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true, - "license": "MIT", + "license": "ISC" + }, + "node_modules/sigstore": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.3.1.tgz", + "integrity": "sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.2", + "@sigstore/sign": "^2.3.2", + "@sigstore/tuf": "^2.3.4", + "@sigstore/verify": "^1.2.1" + }, "engines": { - "node": ">=8" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", "dev": true, "license": "MIT", "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "node": ">= 6.0.0", + "npm": ">= 3.0.0" } }, - "node_modules/prebuildify": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/prebuildify/-/prebuildify-6.0.1.tgz", - "integrity": "sha512-8Y2oOOateom/s8dNBsGIcnm6AxPmLH4/nanQzL5lQMU+sC0CMhzARZHizwr36pUPLdvBnOkCNQzxg4djuFSgIw==", + "node_modules/socks": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", + "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", "dev": true, "license": "MIT", "dependencies": { - "minimist": "^1.2.5", - "mkdirp-classic": "^0.5.3", - "node-abi": "^3.3.0", - "npm-run-path": "^3.1.0", - "pump": "^3.0.0", - "tar-fs": "^2.1.0" - }, - "bin": { - "prebuildify": "bin.js" - } - }, - "node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/protobufjs": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", - "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", - "hasInstallScript": true, - "license": "BSD-3-Clause", - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" }, "engines": { - "node": ">=12.0.0" + "node": ">= 10.0.0", + "npm": ">= 3.0.0" } }, - "node_modules/protobufjs-cli": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/protobufjs-cli/-/protobufjs-cli-1.1.3.tgz", - "integrity": "sha512-MqD10lqF+FMsOayFiNOdOGNlXc4iKDCf0ZQPkPR+gizYh9gqUeGTWulABUCdI+N67w5RfJ6xhgX4J8pa8qmMXQ==", + "node_modules/socks-proxy-agent": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz", + "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", "dependencies": { - "chalk": "^4.0.0", - "escodegen": "^1.13.0", - "espree": "^9.0.0", - "estraverse": "^5.1.0", - "glob": "^8.0.0", - "jsdoc": "^4.0.0", - "minimist": "^1.2.0", - "semver": "^7.1.2", - "tmp": "^0.2.1", - "uglify-js": "^3.7.7" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" + "agent-base": "^7.1.1", + "debug": "^4.3.4", + "socks": "^2.8.3" }, "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "protobufjs": "^7.0.0" + "node": ">= 14" } }, - "node_modules/protobufjs-cli/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/sort-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", + "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/protobufjs-cli/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "is-plain-obj": "^1.0.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=4" } }, - "node_modules/protobufjs-cli/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, + "license": "BSD-3-Clause", "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/pump": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", - "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/punycode.js": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", - "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, "license": "MIT", - "engines": { - "node": ">=6" + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "node_modules/spdx-license-ids": { + "version": "3.0.20", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", + "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" + "license": "CC0-1.0" }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "node_modules/split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "dev": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "through": "2" }, "engines": { - "node": ">= 6" + "node": "*" } }, - "node_modules/requizzle": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.4.tgz", - "integrity": "sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw==", + "node_modules/split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", "dev": true, - "license": "MIT", + "license": "ISC", + "dependencies": { + "readable-stream": "^3.0.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/ssri": { + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", + "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", + "dev": true, + "license": "ISC", "dependencies": { - "lodash": "^4.17.21" + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", - "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, "license": "MIT", - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + "dependencies": { + "safe-buffer": "~5.2.0" } }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "engines": { + "node": ">=8" } }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], "license": "MIT", "dependencies": { - "queue-microtask": "^1.2.2" + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, - "license": "BSD-3-Clause", - "optional": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", "dev": true, "license": "MIT", "dependencies": { - "safe-buffer": "~5.2.0" + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/strip-json-comments": { @@ -2065,6 +8308,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/strong-log-transformer": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz", + "integrity": "sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "duplexer": "^0.1.1", + "minimist": "^1.2.0", + "through": "^2.3.4" + }, + "bin": { + "sl-log-transformer": "bin/sl-log-transformer.js" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -2078,6 +8339,37 @@ "node": ">=8" } }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "dev": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/tar-fs": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", @@ -2105,40 +8397,209 @@ "readable-stream": "^3.1.1" }, "engines": { - "node": ">=6" + "node": ">=6" + } + }, + "node_modules/tar/node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/temp-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", + "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/text-extensions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", + "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/through2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/tmp": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.14" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/treeverse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/treeverse/-/treeverse-3.0.0.tgz", + "integrity": "sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/tmp": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", - "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", "dev": true, "license": "MIT", "engines": { - "node": ">=14.14" + "node": ">=8" } }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", "dev": true, "license": "MIT", + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, "engines": { - "node": ">=4" + "node": ">=6" } }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, "engines": { - "node": ">=8.0" + "node": ">=4" } }, "node_modules/tslib": { @@ -2615,6 +9076,21 @@ "@esbuild/win32-x64": "0.23.1" } }, + "node_modules/tuf-js": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.1.tgz", + "integrity": "sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tufjs/models": "2.0.1", + "debug": "^4.3.4", + "make-fetch-happen": "^13.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, "node_modules/type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", @@ -2628,6 +9104,26 @@ "node": ">= 0.8.0" } }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "license": "MIT" + }, "node_modules/typescript": { "version": "5.6.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", @@ -2675,6 +9171,60 @@ "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", "license": "MIT" }, + "node_modules/unique-filename": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "dev": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/unique-slug": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/universal-user-agent": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", + "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/upath": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", + "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -2682,6 +9232,102 @@ "dev": true, "license": "MIT" }, + "node_modules/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", + "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/walk-up-path": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-3.0.1.tgz", + "integrity": "sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==", + "dev": true, + "license": "ISC" + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", @@ -2692,6 +9338,47 @@ "node": ">=0.10.0" } }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -2699,6 +9386,122 @@ "dev": true, "license": "ISC" }, + "node_modules/write-file-atomic": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/write-file-atomic/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/write-json-file": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-3.2.0.tgz", + "integrity": "sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-indent": "^5.0.0", + "graceful-fs": "^4.1.15", + "make-dir": "^2.1.0", + "pify": "^4.0.1", + "sort-keys": "^2.0.0", + "write-file-atomic": "^2.4.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/write-json-file/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/write-json-file/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/write-json-file/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/write-json-file/node_modules/write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "node_modules/write-pkg": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-4.0.0.tgz", + "integrity": "sha512-v2UQ+50TNf2rNHJ8NyWttfm/EJUBWMJcx6ZTYZr6Qp52uuegWw/lBkCtCbnYZEmPRNL61m+u67dAmGxo+HTULA==", + "dev": true, + "license": "MIT", + "dependencies": { + "sort-keys": "^2.0.0", + "type-fest": "^0.4.1", + "write-json-file": "^3.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/write-pkg/node_modules/type-fest": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz", + "integrity": "sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=6" + } + }, "node_modules/ws": { "version": "8.18.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", @@ -2727,24 +9530,65 @@ "dev": true, "license": "Apache-2.0" }, - "node_modules/xtracfg": { - "resolved": "xtracfg", - "link": true + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + } }, - "node_modules/xtracfg-native-binding": { - "resolved": "xtracfg-native-binding", - "link": true + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } }, - "node_modules/xtracfg-transport-native": { - "resolved": "xtracfg-transport-native", - "link": true + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" }, - "node_modules/xtracfg-transport-websocket": { - "resolved": "xtracfg-transport-websocket", - "link": true + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } }, "xtracfg": { - "version": "1.0.0", + "name": "@xtracfg/core", + "version": "4.2.0-beta.0", "license": "MIT", "dependencies": { "async-mutex": "^0.5.0", @@ -2761,7 +9605,8 @@ } }, "xtracfg-native-binding": { - "version": "1.0.0", + "name": "@xtracfg/native", + "version": "4.2.0-beta.0", "hasInstallScript": true, "license": "MIT", "dependencies": { @@ -2773,11 +9618,12 @@ } }, "xtracfg-transport-native": { - "version": "1.0.0", + "name": "@xtracfg/transport-native", + "version": "4.2.0-beta.0", "license": "MIT", "dependencies": { - "xtracfg": "^1.0.0", - "xtracfg-native-binding": "^1.0.0" + "@xtracfg/core": "4.2.0-beta.0", + "@xtracfg/native": "4.2.0-beta.0" }, "devDependencies": { "@tsconfig/node20": "^20.1.4", @@ -2790,13 +9636,14 @@ } }, "xtracfg-transport-websocket": { - "version": "1.0.0", + "name": "@xtracfg/transport-websocket", + "version": "4.2.0-beta.0", "license": "MIT", "dependencies": { + "@xtracfg/core": "4.2.0-beta.0", "async-mutex": "^0.5.0", "isomorphic-ws": "^5.0.0", - "ws": "^8.18.0", - "xtracfg": "^1.0.0" + "ws": "^8.18.0" }, "devDependencies": { "@types/ws": "^8.5.12", diff --git a/libxtracfg/js/package.json b/libxtracfg/js/package.json index c61366b..a506580 100644 --- a/libxtracfg/js/package.json +++ b/libxtracfg/js/package.json @@ -10,6 +10,11 @@ "scripts": { "build": "npm run build --workspaces", "pkg": "npm run pkg --workspaces", - "test": "npm run test --workspaces" + "test": "npm run test --workspaces", + "bump": "lerna version --exact --no-git-tag-version --ignore-scripts --no-private --yes" + }, + "dependencies": {}, + "devDependencies": { + "lerna": "^8.1.8" } } diff --git a/libxtracfg/js/xtracfg-native-binding/binding.gyp b/libxtracfg/js/xtracfg-native-binding/binding.gyp index 7a71ed2..6e400b4 100644 --- a/libxtracfg/js/xtracfg-native-binding/binding.gyp +++ b/libxtracfg/js/xtracfg-native-binding/binding.gyp @@ -6,8 +6,8 @@ 'libraries': [ '<(local_prefix)/../c/build/libxtracfg.a' ], 'include_dirs': [" Date: Wed, 16 Oct 2024 22:27:54 +0200 Subject: [PATCH 057/167] fix build --- libxtracfg/js/xtracfg-native-binding/binding.gyp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libxtracfg/js/xtracfg-native-binding/binding.gyp b/libxtracfg/js/xtracfg-native-binding/binding.gyp index 6e400b4..673447d 100644 --- a/libxtracfg/js/xtracfg-native-binding/binding.gyp +++ b/libxtracfg/js/xtracfg-native-binding/binding.gyp @@ -6,12 +6,14 @@ 'libraries': [ '<(local_prefix)/../c/build/libxtracfg.a' ], 'include_dirs': [" Date: Wed, 16 Oct 2024 22:28:21 +0200 Subject: [PATCH 058/167] fix build --- libxtracfg/js/xtracfg-native-binding/binding.gyp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libxtracfg/js/xtracfg-native-binding/binding.gyp b/libxtracfg/js/xtracfg-native-binding/binding.gyp index 673447d..2884053 100644 --- a/libxtracfg/js/xtracfg-native-binding/binding.gyp +++ b/libxtracfg/js/xtracfg-native-binding/binding.gyp @@ -9,7 +9,7 @@ 'cflags': ['-fPIC'], 'cflags!': [ '-fno-exceptions'], 'cflags_cc': ['-fPIC'], - 'cflags_cc!': [ '-fno-exceptions', '-fPIC' ], + 'cflags_cc!': [ '-fno-exceptions' ], 'xcode_settings': { 'GCC_ENABLE_CPP_EXCEPTIONS': 'YES', 'CLANG_CXX_LIBRARY': 'libc++', From 6f0bd2934c4094ff73d80309f39c2e3eec03255e Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Thu, 17 Oct 2024 08:29:32 +0200 Subject: [PATCH 059/167] fix build --- .github/workflows/xtracfg.yml | 9 +++++---- libxtracfg/js/lerna.json | 2 +- libxtracfg/js/package-lock.json | 14 +++++++------- libxtracfg/js/package.json | 3 ++- libxtracfg/js/xtracfg-native-binding/binding.gyp | 3 ++- .../js/xtracfg-native-binding/package-lock.json | 4 ++-- libxtracfg/js/xtracfg-native-binding/package.json | 2 +- .../js/xtracfg-transport-native/package.json | 6 +++--- .../xtracfg-transport-websocket/package-lock.json | 4 ++-- .../js/xtracfg-transport-websocket/package.json | 4 ++-- libxtracfg/js/xtracfg/package-lock.json | 4 ++-- libxtracfg/js/xtracfg/package.json | 2 +- 12 files changed, 30 insertions(+), 27 deletions(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index eca5052..38b071d 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -8,9 +8,9 @@ jobs: strategy: matrix: os: - - runner: ubuntu-latest - type: linux - platform: linux-amd64 + #- runner: ubuntu-latest + # type: linux + # platform: linux-amd64 #- runner: buildjet-2vcpu-ubuntu-2204-arm # type: linux # platform: linux-arm64 @@ -156,10 +156,11 @@ jobs: ls -lR .//xtracfg-native-binding/prebuilds - name: js run: | - npm run bump -- prerelease --build-metadata ${{ github.run_number }} + npm run bump -- prerelease --build-metadata ${{ github.run_number }} --preid ${{ github.ref_name }} npm ci npm run build npm run pkg + # npm run publish -- --dist-tag ${{ github.ref_name }} --registry --legacy-auth ${{ secrets.npm_rw_token }} - name: log2 run: | ls -lR ./**/build diff --git a/libxtracfg/js/lerna.json b/libxtracfg/js/lerna.json index f6b31ed..5946ba5 100644 --- a/libxtracfg/js/lerna.json +++ b/libxtracfg/js/lerna.json @@ -1,4 +1,4 @@ { "$schema": "node_modules/lerna/schemas/lerna-schema.json", - "version": "4.2.0-beta.0" + "version": "4.2.0" } \ No newline at end of file diff --git a/libxtracfg/js/package-lock.json b/libxtracfg/js/package-lock.json index 5ec61e3..922cd8e 100644 --- a/libxtracfg/js/package-lock.json +++ b/libxtracfg/js/package-lock.json @@ -9588,7 +9588,7 @@ }, "xtracfg": { "name": "@xtracfg/core", - "version": "4.2.0-beta.0", + "version": "4.2.0", "license": "MIT", "dependencies": { "async-mutex": "^0.5.0", @@ -9606,7 +9606,7 @@ }, "xtracfg-native-binding": { "name": "@xtracfg/native", - "version": "4.2.0-beta.0", + "version": "4.2.0", "hasInstallScript": true, "license": "MIT", "dependencies": { @@ -9619,11 +9619,11 @@ }, "xtracfg-transport-native": { "name": "@xtracfg/transport-native", - "version": "4.2.0-beta.0", + "version": "4.2.0", "license": "MIT", "dependencies": { - "@xtracfg/core": "4.2.0-beta.0", - "@xtracfg/native": "4.2.0-beta.0" + "@xtracfg/core": "4.2.0", + "@xtracfg/native": "4.2.0" }, "devDependencies": { "@tsconfig/node20": "^20.1.4", @@ -9637,10 +9637,10 @@ }, "xtracfg-transport-websocket": { "name": "@xtracfg/transport-websocket", - "version": "4.2.0-beta.0", + "version": "4.2.0", "license": "MIT", "dependencies": { - "@xtracfg/core": "4.2.0-beta.0", + "@xtracfg/core": "4.2.0", "async-mutex": "^0.5.0", "isomorphic-ws": "^5.0.0", "ws": "^8.18.0" diff --git a/libxtracfg/js/package.json b/libxtracfg/js/package.json index a506580..9bc42f3 100644 --- a/libxtracfg/js/package.json +++ b/libxtracfg/js/package.json @@ -11,7 +11,8 @@ "build": "npm run build --workspaces", "pkg": "npm run pkg --workspaces", "test": "npm run test --workspaces", - "bump": "lerna version --exact --no-git-tag-version --ignore-scripts --no-private --yes" + "bump": "lerna version --exact --no-git-tag-version --ignore-scripts --no-private --yes", + "publish": "lerna publish from-package --no-git-tag-version --no-git-reset --ignore-scripts --no-push --yes" }, "dependencies": {}, "devDependencies": { diff --git a/libxtracfg/js/xtracfg-native-binding/binding.gyp b/libxtracfg/js/xtracfg-native-binding/binding.gyp index 2884053..6041b03 100644 --- a/libxtracfg/js/xtracfg-native-binding/binding.gyp +++ b/libxtracfg/js/xtracfg-native-binding/binding.gyp @@ -13,7 +13,8 @@ 'xcode_settings': { 'GCC_ENABLE_CPP_EXCEPTIONS': 'YES', 'CLANG_CXX_LIBRARY': 'libc++', - 'MACOSX_DEPLOYMENT_TARGET': '14.0' + 'MACOSX_DEPLOYMENT_TARGET': '14.0', + "OTHER_CFLAGS": [ "-fPIC"] }, 'msvs_settings': { 'VCCLCompilerTool': { 'ExceptionHandling': 1 }, diff --git a/libxtracfg/js/xtracfg-native-binding/package-lock.json b/libxtracfg/js/xtracfg-native-binding/package-lock.json index 14e6d47..f469dad 100644 --- a/libxtracfg/js/xtracfg-native-binding/package-lock.json +++ b/libxtracfg/js/xtracfg-native-binding/package-lock.json @@ -1,12 +1,12 @@ { "name": "xtracfg-native-binding", - "version": "4.2.0-beta.0", + "version": "4.2.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "xtracfg-native-binding", - "version": "4.2.0-beta.0", + "version": "4.2.0", "license": "MIT", "dependencies": { "node-addon-api": "^8.2.1" diff --git a/libxtracfg/js/xtracfg-native-binding/package.json b/libxtracfg/js/xtracfg-native-binding/package.json index b8f4a19..1166351 100644 --- a/libxtracfg/js/xtracfg-native-binding/package.json +++ b/libxtracfg/js/xtracfg-native-binding/package.json @@ -1,7 +1,7 @@ { "name": "@xtracfg/native", "description": "", - "version": "4.2.0-beta.0", + "version": "4.2.0", "author": "", "license": "MIT", "type": "commonjs", diff --git a/libxtracfg/js/xtracfg-transport-native/package.json b/libxtracfg/js/xtracfg-transport-native/package.json index 4957161..42358f8 100644 --- a/libxtracfg/js/xtracfg-transport-native/package.json +++ b/libxtracfg/js/xtracfg-transport-native/package.json @@ -1,7 +1,7 @@ { "name": "@xtracfg/transport-native", "description": "", - "version": "4.2.0-beta.0", + "version": "4.2.0", "author": "", "license": "MIT", "type": "module", @@ -13,8 +13,8 @@ "test": "tsx ./test/test.ts" }, "dependencies": { - "@xtracfg/core": "4.2.0-beta.0", - "@xtracfg/native": "4.2.0-beta.0" + "@xtracfg/core": "4.2.0", + "@xtracfg/native": "4.2.0" }, "devDependencies": { "@tsconfig/node20": "^20.1.4", diff --git a/libxtracfg/js/xtracfg-transport-websocket/package-lock.json b/libxtracfg/js/xtracfg-transport-websocket/package-lock.json index f98a034..569d463 100644 --- a/libxtracfg/js/xtracfg-transport-websocket/package-lock.json +++ b/libxtracfg/js/xtracfg-transport-websocket/package-lock.json @@ -1,12 +1,12 @@ { "name": "xtracfg", - "version": "4.2.0-beta.0", + "version": "4.2.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "xtracfg", - "version": "4.2.0-beta.0", + "version": "4.2.0", "license": "MIT", "dependencies": { "async-mutex": "^0.5.0" diff --git a/libxtracfg/js/xtracfg-transport-websocket/package.json b/libxtracfg/js/xtracfg-transport-websocket/package.json index be53c6e..7fa17d5 100644 --- a/libxtracfg/js/xtracfg-transport-websocket/package.json +++ b/libxtracfg/js/xtracfg-transport-websocket/package.json @@ -1,7 +1,7 @@ { "name": "@xtracfg/transport-websocket", "description": "", - "version": "4.2.0-beta.0", + "version": "4.2.0", "author": "", "license": "MIT", "type": "module", @@ -13,7 +13,7 @@ "test": "tsx ./test/test.ts" }, "dependencies": { - "@xtracfg/core": "4.2.0-beta.0", + "@xtracfg/core": "4.2.0", "async-mutex": "^0.5.0", "isomorphic-ws": "^5.0.0", "ws": "^8.18.0" diff --git a/libxtracfg/js/xtracfg/package-lock.json b/libxtracfg/js/xtracfg/package-lock.json index 23e0069..2870ece 100644 --- a/libxtracfg/js/xtracfg/package-lock.json +++ b/libxtracfg/js/xtracfg/package-lock.json @@ -1,12 +1,12 @@ { "name": "xtracfg", - "version": "4.2.0-beta.0", + "version": "4.2.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "xtracfg", - "version": "4.2.0-beta.0", + "version": "4.2.0", "license": "MIT", "dependencies": { "async-mutex": "^0.5.0", diff --git a/libxtracfg/js/xtracfg/package.json b/libxtracfg/js/xtracfg/package.json index 34ba8de..cf570d5 100644 --- a/libxtracfg/js/xtracfg/package.json +++ b/libxtracfg/js/xtracfg/package.json @@ -1,7 +1,7 @@ { "name": "@xtracfg/core", "description": "", - "version": "4.2.0-beta.0", + "version": "4.2.0", "author": "", "license": "MIT", "type": "module", From fce0288f258438b33355d78d047fd2dc7678737b Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Thu, 17 Oct 2024 08:37:57 +0200 Subject: [PATCH 060/167] fix build --- .github/workflows/xtracfg.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 38b071d..9a372e9 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -148,12 +148,12 @@ jobs: - uses: actions/checkout@v4 - uses: actions/download-artifact@v4 with: - pattern: "{libxtracfg-js-}*" + pattern: "libxtracfg-js-*" path: ./libxtracfg/js/xtracfg-native-binding/prebuilds merge-multiple: true - name: log1 run: | - ls -lR .//xtracfg-native-binding/prebuilds + ls -lR ./xtracfg-native-binding/prebuilds - name: js run: | npm run bump -- prerelease --build-metadata ${{ github.run_number }} --preid ${{ github.ref_name }} From d04d1ff98adc7259938bd57768be72df292ddd67 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Thu, 17 Oct 2024 08:53:40 +0200 Subject: [PATCH 061/167] fix build --- libxtracfg/js/package.json | 6 +++--- libxtracfg/js/xtracfg-native-binding/package.json | 2 +- libxtracfg/js/xtracfg-transport-native/src/index.ts | 4 ++-- libxtracfg/js/xtracfg-transport-native/test/test.ts | 2 +- libxtracfg/js/xtracfg-transport-websocket/src/index.ts | 2 +- libxtracfg/js/xtracfg-transport-websocket/test/test.ts | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/libxtracfg/js/package.json b/libxtracfg/js/package.json index 9bc42f3..7104c5d 100644 --- a/libxtracfg/js/package.json +++ b/libxtracfg/js/package.json @@ -8,9 +8,9 @@ "xtracfg-transport-websocket" ], "scripts": { - "build": "npm run build --workspaces", - "pkg": "npm run pkg --workspaces", - "test": "npm run test --workspaces", + "build": "npm run build --workspaces --if-present", + "pkg": "npm run pkg --workspaces --if-present", + "test": "npm run test --workspace=xtracfg --workspace=xtracfg-native-binding --workspace=xtracfg-transport-native", "bump": "lerna version --exact --no-git-tag-version --ignore-scripts --no-private --yes", "publish": "lerna publish from-package --no-git-tag-version --no-git-reset --ignore-scripts --no-push --yes" }, diff --git a/libxtracfg/js/xtracfg-native-binding/package.json b/libxtracfg/js/xtracfg-native-binding/package.json index 1166351..8da01fe 100644 --- a/libxtracfg/js/xtracfg-native-binding/package.json +++ b/libxtracfg/js/xtracfg-native-binding/package.json @@ -14,7 +14,7 @@ "node-gyp-build": "^4.8.2" }, "scripts": { - "build": "node-gyp rebuild", + "devbuild": "node-gyp rebuild", "install": "node-gyp-build", "pkg": "npm pack --pack-destination build", "prebuild": "prebuildify --napi --strip", diff --git a/libxtracfg/js/xtracfg-transport-native/src/index.ts b/libxtracfg/js/xtracfg-transport-native/src/index.ts index e96e106..e728333 100644 --- a/libxtracfg/js/xtracfg-transport-native/src/index.ts +++ b/libxtracfg/js/xtracfg-transport-native/src/index.ts @@ -1,5 +1,5 @@ -import { Transport, TransportCreator, Response } from "xtracfg"; -import addon from "xtracfg-native-binding"; +import { Transport, TransportCreator, Response } from "@xtracfg/core"; +import addon from "@xtracfg/native"; let listener: (response: Response) => void; diff --git a/libxtracfg/js/xtracfg-transport-native/test/test.ts b/libxtracfg/js/xtracfg-transport-native/test/test.ts index 825dc90..5ff0eb7 100644 --- a/libxtracfg/js/xtracfg-transport-native/test/test.ts +++ b/libxtracfg/js/xtracfg-transport-native/test/test.ts @@ -1,4 +1,4 @@ -import { connect } from "xtracfg"; +import { connect } from "@xtracfg/core"; import transport from "../src"; const xtracfg = connect(transport); diff --git a/libxtracfg/js/xtracfg-transport-websocket/src/index.ts b/libxtracfg/js/xtracfg-transport-websocket/src/index.ts index 967ec9a..e441cc9 100644 --- a/libxtracfg/js/xtracfg-transport-websocket/src/index.ts +++ b/libxtracfg/js/xtracfg-transport-websocket/src/index.ts @@ -1,5 +1,5 @@ import { Mutex } from "async-mutex"; -import { Transport, TransportCreator, TransportOptions } from "xtracfg"; +import { Transport, TransportCreator, TransportOptions } from "@xtracfg/core"; import WebSocket from "isomorphic-ws"; export const transport: TransportCreator = ({ debug }: TransportOptions) => { diff --git a/libxtracfg/js/xtracfg-transport-websocket/test/test.ts b/libxtracfg/js/xtracfg-transport-websocket/test/test.ts index dbb1051..848208e 100644 --- a/libxtracfg/js/xtracfg-transport-websocket/test/test.ts +++ b/libxtracfg/js/xtracfg-transport-websocket/test/test.ts @@ -1,4 +1,4 @@ -import { connect } from "xtracfg"; +import { connect } from "@xtracfg/core"; import transport from "../src"; const xtracfg = connect(transport, { debug: true }); From 266939fdec684e69faad701fd92af88d482b21a7 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Thu, 17 Oct 2024 09:09:30 +0200 Subject: [PATCH 062/167] fix build --- .github/workflows/xtracfg.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 9a372e9..c938668 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -156,8 +156,9 @@ jobs: ls -lR ./xtracfg-native-binding/prebuilds - name: js run: | + set -x npm run bump -- prerelease --build-metadata ${{ github.run_number }} --preid ${{ github.ref_name }} - npm ci + npm ci --ignore-scripts npm run build npm run pkg # npm run publish -- --dist-tag ${{ github.ref_name }} --registry --legacy-auth ${{ secrets.npm_rw_token }} From 98062b7f58f9733b926d70e0b4811de741f0e3c1 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Thu, 17 Oct 2024 09:26:26 +0200 Subject: [PATCH 063/167] publish js --- .github/workflows/xtracfg.yml | 4 ++-- libxtracfg/js/lerna.json | 2 +- libxtracfg/js/package-lock.json | 14 +++++++------- .../js/xtracfg-native-binding/package-lock.json | 4 ++-- libxtracfg/js/xtracfg-native-binding/package.json | 3 ++- .../js/xtracfg-transport-native/package.json | 6 +++--- .../xtracfg-transport-websocket/package-lock.json | 4 ++-- .../js/xtracfg-transport-websocket/package.json | 4 ++-- libxtracfg/js/xtracfg/package-lock.json | 4 ++-- libxtracfg/js/xtracfg/package.json | 2 +- 10 files changed, 24 insertions(+), 23 deletions(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index c938668..08b0d80 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -160,8 +160,8 @@ jobs: npm run bump -- prerelease --build-metadata ${{ github.run_number }} --preid ${{ github.ref_name }} npm ci --ignore-scripts npm run build - npm run pkg - # npm run publish -- --dist-tag ${{ github.ref_name }} --registry --legacy-auth ${{ secrets.npm_rw_token }} + #npm run pkg + npm run publish -- --dist-tag ${{ github.ref_name }} --registry '${{ vars.npm_registry }}' --legacy-auth '${{ secrets.npm_rw_token }}' - name: log2 run: | ls -lR ./**/build diff --git a/libxtracfg/js/lerna.json b/libxtracfg/js/lerna.json index 5946ba5..4e5da58 100644 --- a/libxtracfg/js/lerna.json +++ b/libxtracfg/js/lerna.json @@ -1,4 +1,4 @@ { "$schema": "node_modules/lerna/schemas/lerna-schema.json", - "version": "4.2.0" + "version": "4.2.0-lib.0" } \ No newline at end of file diff --git a/libxtracfg/js/package-lock.json b/libxtracfg/js/package-lock.json index 922cd8e..f61dfa2 100644 --- a/libxtracfg/js/package-lock.json +++ b/libxtracfg/js/package-lock.json @@ -9588,7 +9588,7 @@ }, "xtracfg": { "name": "@xtracfg/core", - "version": "4.2.0", + "version": "4.2.0-lib.0", "license": "MIT", "dependencies": { "async-mutex": "^0.5.0", @@ -9606,7 +9606,7 @@ }, "xtracfg-native-binding": { "name": "@xtracfg/native", - "version": "4.2.0", + "version": "4.2.0-lib.0", "hasInstallScript": true, "license": "MIT", "dependencies": { @@ -9619,11 +9619,11 @@ }, "xtracfg-transport-native": { "name": "@xtracfg/transport-native", - "version": "4.2.0", + "version": "4.2.0-lib.0", "license": "MIT", "dependencies": { - "@xtracfg/core": "4.2.0", - "@xtracfg/native": "4.2.0" + "@xtracfg/core": "4.2.0-lib.0", + "@xtracfg/native": "4.2.0-lib.0" }, "devDependencies": { "@tsconfig/node20": "^20.1.4", @@ -9637,10 +9637,10 @@ }, "xtracfg-transport-websocket": { "name": "@xtracfg/transport-websocket", - "version": "4.2.0", + "version": "4.2.0-lib.0", "license": "MIT", "dependencies": { - "@xtracfg/core": "4.2.0", + "@xtracfg/core": "4.2.0-lib.0", "async-mutex": "^0.5.0", "isomorphic-ws": "^5.0.0", "ws": "^8.18.0" diff --git a/libxtracfg/js/xtracfg-native-binding/package-lock.json b/libxtracfg/js/xtracfg-native-binding/package-lock.json index f469dad..2683bdd 100644 --- a/libxtracfg/js/xtracfg-native-binding/package-lock.json +++ b/libxtracfg/js/xtracfg-native-binding/package-lock.json @@ -1,12 +1,12 @@ { "name": "xtracfg-native-binding", - "version": "4.2.0", + "version": "4.2.0-lib.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "xtracfg-native-binding", - "version": "4.2.0", + "version": "4.2.0-lib.0", "license": "MIT", "dependencies": { "node-addon-api": "^8.2.1" diff --git a/libxtracfg/js/xtracfg-native-binding/package.json b/libxtracfg/js/xtracfg-native-binding/package.json index 8da01fe..5f7cc97 100644 --- a/libxtracfg/js/xtracfg-native-binding/package.json +++ b/libxtracfg/js/xtracfg-native-binding/package.json @@ -1,7 +1,7 @@ { "name": "@xtracfg/native", "description": "", - "version": "4.2.0", + "version": "4.2.0-lib.0", "author": "", "license": "MIT", "type": "commonjs", @@ -14,6 +14,7 @@ "node-gyp-build": "^4.8.2" }, "scripts": { + "build": "mkdir build", "devbuild": "node-gyp rebuild", "install": "node-gyp-build", "pkg": "npm pack --pack-destination build", diff --git a/libxtracfg/js/xtracfg-transport-native/package.json b/libxtracfg/js/xtracfg-transport-native/package.json index 42358f8..419abc5 100644 --- a/libxtracfg/js/xtracfg-transport-native/package.json +++ b/libxtracfg/js/xtracfg-transport-native/package.json @@ -1,7 +1,7 @@ { "name": "@xtracfg/transport-native", "description": "", - "version": "4.2.0", + "version": "4.2.0-lib.0", "author": "", "license": "MIT", "type": "module", @@ -13,8 +13,8 @@ "test": "tsx ./test/test.ts" }, "dependencies": { - "@xtracfg/core": "4.2.0", - "@xtracfg/native": "4.2.0" + "@xtracfg/core": "4.2.0-lib.0", + "@xtracfg/native": "4.2.0-lib.0" }, "devDependencies": { "@tsconfig/node20": "^20.1.4", diff --git a/libxtracfg/js/xtracfg-transport-websocket/package-lock.json b/libxtracfg/js/xtracfg-transport-websocket/package-lock.json index 569d463..ef1d91e 100644 --- a/libxtracfg/js/xtracfg-transport-websocket/package-lock.json +++ b/libxtracfg/js/xtracfg-transport-websocket/package-lock.json @@ -1,12 +1,12 @@ { "name": "xtracfg", - "version": "4.2.0", + "version": "4.2.0-lib.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "xtracfg", - "version": "4.2.0", + "version": "4.2.0-lib.0", "license": "MIT", "dependencies": { "async-mutex": "^0.5.0" diff --git a/libxtracfg/js/xtracfg-transport-websocket/package.json b/libxtracfg/js/xtracfg-transport-websocket/package.json index 7fa17d5..6a78367 100644 --- a/libxtracfg/js/xtracfg-transport-websocket/package.json +++ b/libxtracfg/js/xtracfg-transport-websocket/package.json @@ -1,7 +1,7 @@ { "name": "@xtracfg/transport-websocket", "description": "", - "version": "4.2.0", + "version": "4.2.0-lib.0", "author": "", "license": "MIT", "type": "module", @@ -13,7 +13,7 @@ "test": "tsx ./test/test.ts" }, "dependencies": { - "@xtracfg/core": "4.2.0", + "@xtracfg/core": "4.2.0-lib.0", "async-mutex": "^0.5.0", "isomorphic-ws": "^5.0.0", "ws": "^8.18.0" diff --git a/libxtracfg/js/xtracfg/package-lock.json b/libxtracfg/js/xtracfg/package-lock.json index 2870ece..2c60d36 100644 --- a/libxtracfg/js/xtracfg/package-lock.json +++ b/libxtracfg/js/xtracfg/package-lock.json @@ -1,12 +1,12 @@ { "name": "xtracfg", - "version": "4.2.0", + "version": "4.2.0-lib.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "xtracfg", - "version": "4.2.0", + "version": "4.2.0-lib.0", "license": "MIT", "dependencies": { "async-mutex": "^0.5.0", diff --git a/libxtracfg/js/xtracfg/package.json b/libxtracfg/js/xtracfg/package.json index cf570d5..ea5a0b0 100644 --- a/libxtracfg/js/xtracfg/package.json +++ b/libxtracfg/js/xtracfg/package.json @@ -1,7 +1,7 @@ { "name": "@xtracfg/core", "description": "", - "version": "4.2.0", + "version": "4.2.0-lib.0", "author": "", "license": "MIT", "type": "module", From 3911d792accb5716096607499a041eb6056bc719 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Thu, 17 Oct 2024 09:36:25 +0200 Subject: [PATCH 064/167] fix build --- .github/workflows/xtracfg.yml | 2 +- libxtracfg/js/xtracfg-native-binding/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 08b0d80..a2b2323 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -51,7 +51,7 @@ jobs: working-directory: ./libxtracfg/js/xtracfg-native-binding run: | npm ci - npm run prebuild + npm run prebuildify npm run test - name: log3 run: | diff --git a/libxtracfg/js/xtracfg-native-binding/package.json b/libxtracfg/js/xtracfg-native-binding/package.json index 5f7cc97..85452b8 100644 --- a/libxtracfg/js/xtracfg-native-binding/package.json +++ b/libxtracfg/js/xtracfg-native-binding/package.json @@ -18,7 +18,7 @@ "devbuild": "node-gyp rebuild", "install": "node-gyp-build", "pkg": "npm pack --pack-destination build", - "prebuild": "prebuildify --napi --strip", + "prebuildify": "prebuildify --napi --strip", "test": "node ./test/test_binding.js" }, "gypfile": true, From 6526590198be023112d34472f38468dba70cbbd6 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Thu, 17 Oct 2024 09:44:29 +0200 Subject: [PATCH 065/167] fix build --- libxtracfg/js/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libxtracfg/js/package.json b/libxtracfg/js/package.json index 7104c5d..65c0f53 100644 --- a/libxtracfg/js/package.json +++ b/libxtracfg/js/package.json @@ -12,7 +12,7 @@ "pkg": "npm run pkg --workspaces --if-present", "test": "npm run test --workspace=xtracfg --workspace=xtracfg-native-binding --workspace=xtracfg-transport-native", "bump": "lerna version --exact --no-git-tag-version --ignore-scripts --no-private --yes", - "publish": "lerna publish from-package --no-git-tag-version --no-git-reset --ignore-scripts --no-push --yes" + "publish": "lerna publish from-package --no-git-tag-version --no-git-reset --ignore-scripts --no-push --force-publish --yes" }, "dependencies": {}, "devDependencies": { From 43ae799552615151ed97208b06f30dee53187024 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Thu, 17 Oct 2024 10:28:41 +0200 Subject: [PATCH 066/167] fix build --- .github/workflows/xtracfg.yml | 12 ++++++------ libxtracfg/js/lerna.json | 2 +- libxtracfg/js/package-lock.json | 14 +++++++------- .../js/xtracfg-native-binding/package-lock.json | 4 ++-- libxtracfg/js/xtracfg-native-binding/package.json | 2 +- .../js/xtracfg-transport-native/package.json | 6 +++--- .../xtracfg-transport-websocket/package-lock.json | 4 ++-- .../js/xtracfg-transport-websocket/package.json | 4 ++-- libxtracfg/js/xtracfg/package-lock.json | 4 ++-- libxtracfg/js/xtracfg/package.json | 2 +- 10 files changed, 27 insertions(+), 27 deletions(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index a2b2323..b821ac5 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -3,7 +3,7 @@ name: xtracfg on: [push] jobs: - libraries: + build_libraries: runs-on: ${{ matrix.os.runner }} strategy: matrix: @@ -73,7 +73,7 @@ jobs: path: ./libxtracfg/js/xtracfg-native-binding/prebuilds retention-days: 1 - binary: + build_binaries: if: ${{ github.ref_name == 'main' }} runs-on: ${{ matrix.os.runner }} needs: libraries @@ -138,7 +138,7 @@ jobs: path: ./xtracfg/Dockerfile retention-days: 1 - npm: + publish_npm: runs-on: ubuntu-latest needs: libraries defaults: @@ -157,16 +157,16 @@ jobs: - name: js run: | set -x - npm run bump -- prerelease --build-metadata ${{ github.run_number }} --preid ${{ github.ref_name }} + #npm run bump -- prerelease --build-metadata ${{ github.run_number }} --preid ${{ github.ref_name }} npm ci --ignore-scripts npm run build #npm run pkg - npm run publish -- --dist-tag ${{ github.ref_name }} --registry '${{ vars.npm_registry }}' --legacy-auth '${{ secrets.npm_rw_token }}' + npm run publish -- --canary --preid ${{ github.ref_name }} --dist-tag ${{ github.ref_name }} --registry '${{ vars.npm_registry }}' --legacy-auth '${{ secrets.npm_rw_token }}' - name: log2 run: | ls -lR ./**/build - docker: + publish_docker: if: ${{ github.ref_name == 'main' }} runs-on: ubuntu-latest needs: binary diff --git a/libxtracfg/js/lerna.json b/libxtracfg/js/lerna.json index 4e5da58..60e32aa 100644 --- a/libxtracfg/js/lerna.json +++ b/libxtracfg/js/lerna.json @@ -1,4 +1,4 @@ { "$schema": "node_modules/lerna/schemas/lerna-schema.json", - "version": "4.2.0-lib.0" + "version": "4.1.0" } \ No newline at end of file diff --git a/libxtracfg/js/package-lock.json b/libxtracfg/js/package-lock.json index f61dfa2..fefb763 100644 --- a/libxtracfg/js/package-lock.json +++ b/libxtracfg/js/package-lock.json @@ -9588,7 +9588,7 @@ }, "xtracfg": { "name": "@xtracfg/core", - "version": "4.2.0-lib.0", + "version": "4.1.0", "license": "MIT", "dependencies": { "async-mutex": "^0.5.0", @@ -9606,7 +9606,7 @@ }, "xtracfg-native-binding": { "name": "@xtracfg/native", - "version": "4.2.0-lib.0", + "version": "4.1.0", "hasInstallScript": true, "license": "MIT", "dependencies": { @@ -9619,11 +9619,11 @@ }, "xtracfg-transport-native": { "name": "@xtracfg/transport-native", - "version": "4.2.0-lib.0", + "version": "4.1.0", "license": "MIT", "dependencies": { - "@xtracfg/core": "4.2.0-lib.0", - "@xtracfg/native": "4.2.0-lib.0" + "@xtracfg/core": "4.1.0", + "@xtracfg/native": "4.1.0" }, "devDependencies": { "@tsconfig/node20": "^20.1.4", @@ -9637,10 +9637,10 @@ }, "xtracfg-transport-websocket": { "name": "@xtracfg/transport-websocket", - "version": "4.2.0-lib.0", + "version": "4.1.0", "license": "MIT", "dependencies": { - "@xtracfg/core": "4.2.0-lib.0", + "@xtracfg/core": "4.1.0", "async-mutex": "^0.5.0", "isomorphic-ws": "^5.0.0", "ws": "^8.18.0" diff --git a/libxtracfg/js/xtracfg-native-binding/package-lock.json b/libxtracfg/js/xtracfg-native-binding/package-lock.json index 2683bdd..dcc383d 100644 --- a/libxtracfg/js/xtracfg-native-binding/package-lock.json +++ b/libxtracfg/js/xtracfg-native-binding/package-lock.json @@ -1,12 +1,12 @@ { "name": "xtracfg-native-binding", - "version": "4.2.0-lib.0", + "version": "4.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "xtracfg-native-binding", - "version": "4.2.0-lib.0", + "version": "4.1.0", "license": "MIT", "dependencies": { "node-addon-api": "^8.2.1" diff --git a/libxtracfg/js/xtracfg-native-binding/package.json b/libxtracfg/js/xtracfg-native-binding/package.json index 85452b8..1773f11 100644 --- a/libxtracfg/js/xtracfg-native-binding/package.json +++ b/libxtracfg/js/xtracfg-native-binding/package.json @@ -1,7 +1,7 @@ { "name": "@xtracfg/native", "description": "", - "version": "4.2.0-lib.0", + "version": "4.1.0", "author": "", "license": "MIT", "type": "commonjs", diff --git a/libxtracfg/js/xtracfg-transport-native/package.json b/libxtracfg/js/xtracfg-transport-native/package.json index 419abc5..abd9482 100644 --- a/libxtracfg/js/xtracfg-transport-native/package.json +++ b/libxtracfg/js/xtracfg-transport-native/package.json @@ -1,7 +1,7 @@ { "name": "@xtracfg/transport-native", "description": "", - "version": "4.2.0-lib.0", + "version": "4.1.0", "author": "", "license": "MIT", "type": "module", @@ -13,8 +13,8 @@ "test": "tsx ./test/test.ts" }, "dependencies": { - "@xtracfg/core": "4.2.0-lib.0", - "@xtracfg/native": "4.2.0-lib.0" + "@xtracfg/core": "4.1.0", + "@xtracfg/native": "4.1.0" }, "devDependencies": { "@tsconfig/node20": "^20.1.4", diff --git a/libxtracfg/js/xtracfg-transport-websocket/package-lock.json b/libxtracfg/js/xtracfg-transport-websocket/package-lock.json index ef1d91e..731f0bc 100644 --- a/libxtracfg/js/xtracfg-transport-websocket/package-lock.json +++ b/libxtracfg/js/xtracfg-transport-websocket/package-lock.json @@ -1,12 +1,12 @@ { "name": "xtracfg", - "version": "4.2.0-lib.0", + "version": "4.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "xtracfg", - "version": "4.2.0-lib.0", + "version": "4.1.0", "license": "MIT", "dependencies": { "async-mutex": "^0.5.0" diff --git a/libxtracfg/js/xtracfg-transport-websocket/package.json b/libxtracfg/js/xtracfg-transport-websocket/package.json index 6a78367..4f7fd72 100644 --- a/libxtracfg/js/xtracfg-transport-websocket/package.json +++ b/libxtracfg/js/xtracfg-transport-websocket/package.json @@ -1,7 +1,7 @@ { "name": "@xtracfg/transport-websocket", "description": "", - "version": "4.2.0-lib.0", + "version": "4.1.0", "author": "", "license": "MIT", "type": "module", @@ -13,7 +13,7 @@ "test": "tsx ./test/test.ts" }, "dependencies": { - "@xtracfg/core": "4.2.0-lib.0", + "@xtracfg/core": "4.1.0", "async-mutex": "^0.5.0", "isomorphic-ws": "^5.0.0", "ws": "^8.18.0" diff --git a/libxtracfg/js/xtracfg/package-lock.json b/libxtracfg/js/xtracfg/package-lock.json index 2c60d36..4be9c1d 100644 --- a/libxtracfg/js/xtracfg/package-lock.json +++ b/libxtracfg/js/xtracfg/package-lock.json @@ -1,12 +1,12 @@ { "name": "xtracfg", - "version": "4.2.0-lib.0", + "version": "4.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "xtracfg", - "version": "4.2.0-lib.0", + "version": "4.1.0", "license": "MIT", "dependencies": { "async-mutex": "^0.5.0", diff --git a/libxtracfg/js/xtracfg/package.json b/libxtracfg/js/xtracfg/package.json index ea5a0b0..dfdd5be 100644 --- a/libxtracfg/js/xtracfg/package.json +++ b/libxtracfg/js/xtracfg/package.json @@ -1,7 +1,7 @@ { "name": "@xtracfg/core", "description": "", - "version": "4.2.0-lib.0", + "version": "4.1.0", "author": "", "license": "MIT", "type": "module", From e8d4d25793f225671150a346abc1a4443503db77 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Thu, 17 Oct 2024 10:29:41 +0200 Subject: [PATCH 067/167] fix build --- .github/workflows/xtracfg.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index b821ac5..ed28052 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -76,7 +76,7 @@ jobs: build_binaries: if: ${{ github.ref_name == 'main' }} runs-on: ${{ matrix.os.runner }} - needs: libraries + needs: build_libraries strategy: matrix: os: @@ -140,7 +140,7 @@ jobs: publish_npm: runs-on: ubuntu-latest - needs: libraries + needs: build_libraries defaults: run: working-directory: ./libxtracfg/js @@ -169,7 +169,7 @@ jobs: publish_docker: if: ${{ github.ref_name == 'main' }} runs-on: ubuntu-latest - needs: binary + needs: build_binaries steps: - name: load uses: actions/download-artifact@v4 From b0c71d0657a9dc1d88406582665090579b2bad69 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Thu, 17 Oct 2024 14:24:46 +0200 Subject: [PATCH 068/167] fix build --- libxtracfg/js/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libxtracfg/js/package.json b/libxtracfg/js/package.json index 65c0f53..d006ed0 100644 --- a/libxtracfg/js/package.json +++ b/libxtracfg/js/package.json @@ -12,7 +12,7 @@ "pkg": "npm run pkg --workspaces --if-present", "test": "npm run test --workspace=xtracfg --workspace=xtracfg-native-binding --workspace=xtracfg-transport-native", "bump": "lerna version --exact --no-git-tag-version --ignore-scripts --no-private --yes", - "publish": "lerna publish from-package --no-git-tag-version --no-git-reset --ignore-scripts --no-push --force-publish --yes" + "publish": "lerna publish --no-git-tag-version --no-git-reset --ignore-scripts --no-push --force-publish --yes" }, "dependencies": {}, "devDependencies": { From 3a038f2005ddc57353d7ec1e71106e6f18e4dfb0 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Thu, 17 Oct 2024 15:39:54 +0200 Subject: [PATCH 069/167] fix build --- .github/workflows/xtracfg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index ed28052..0bcc249 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -161,7 +161,7 @@ jobs: npm ci --ignore-scripts npm run build #npm run pkg - npm run publish -- --canary --preid ${{ github.ref_name }} --dist-tag ${{ github.ref_name }} --registry '${{ vars.npm_registry }}' --legacy-auth '${{ secrets.npm_rw_token }}' + npm run publish -- --canary preminor --preid ${{ github.ref_name }} --dist-tag ${{ github.ref_name }} --registry '${{ vars.npm_registry }}' --legacy-auth '${{ secrets.npm_rw_token }}' - name: log2 run: | ls -lR ./**/build From 52c1d97933c5b01ead9ef3e65613a25567dc0639 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Thu, 17 Oct 2024 16:46:06 +0200 Subject: [PATCH 070/167] fix build --- .github/workflows/xtracfg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 0bcc249..6837c0b 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -161,7 +161,7 @@ jobs: npm ci --ignore-scripts npm run build #npm run pkg - npm run publish -- --canary preminor --preid ${{ github.ref_name }} --dist-tag ${{ github.ref_name }} --registry '${{ vars.npm_registry }}' --legacy-auth '${{ secrets.npm_rw_token }}' + npm run publish -- --canary preminor --preid ${{ github.ref_name }} --dist-tag ${{ github.ref_name }} --registry '${{ vars.npm_registry }}' --legacy-auth '${{ secrets.npm_rw_token }}' --loglevel silly - name: log2 run: | ls -lR ./**/build From ac3f8ea04c9dfa4c0aa99a364e8bae277029c5ba Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Thu, 17 Oct 2024 18:27:43 +0200 Subject: [PATCH 071/167] fix build --- .github/workflows/xtracfg.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 6837c0b..3175332 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -155,13 +155,15 @@ jobs: run: | ls -lR ./xtracfg-native-binding/prebuilds - name: js + env: + NPM_TOKEN: ${{ secrets.npm_rw_token }} run: | set -x #npm run bump -- prerelease --build-metadata ${{ github.run_number }} --preid ${{ github.ref_name }} npm ci --ignore-scripts npm run build #npm run pkg - npm run publish -- --canary preminor --preid ${{ github.ref_name }} --dist-tag ${{ github.ref_name }} --registry '${{ vars.npm_registry }}' --legacy-auth '${{ secrets.npm_rw_token }}' --loglevel silly + npm run publish -- --canary preminor --preid ${{ github.ref_name }} --dist-tag ${{ github.ref_name }} --registry '${{ vars.npm_registry }}' --legacy-auth "$NPM_TOKEN" --loglevel silly - name: log2 run: | ls -lR ./**/build From 99cabf4368ae8e99fc11940dba63f86ad701e8f4 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Fri, 18 Oct 2024 15:34:58 +0200 Subject: [PATCH 072/167] websocket for browsers --- .../xtracfg-transport-websocket/.esbuild.js | 23 ++++++++++++------- .../xtracfg-transport-websocket/package.json | 1 + 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/libxtracfg/js/xtracfg-transport-websocket/.esbuild.js b/libxtracfg/js/xtracfg-transport-websocket/.esbuild.js index 4b95647..279f9a4 100644 --- a/libxtracfg/js/xtracfg-transport-websocket/.esbuild.js +++ b/libxtracfg/js/xtracfg-transport-websocket/.esbuild.js @@ -1,26 +1,33 @@ import { build } from "esbuild"; import { clean } from "esbuild-plugin-clean"; -await build({ +const common = { entryPoints: ["src/index.ts"], bundle: true, - platform: "node", - target: "node20", format: "esm", minify: true, - //logLevel: "debug", - /*loader: { - ".node": "copy", - },*/ outdir: "build", outbase: "node_modules", - entryNames: "[name]", define: { "process.env.NODE_ENV": '"production"', }, +}; + +await build({ + ...common, + platform: "node", + target: "node20", + entryNames: "[name]", plugins: [ clean({ patterns: ["./build/*"], }), ], }); + +await build({ + ...common, + platform: "browser", + target: "esnext", + entryNames: "[name].browser", +}); diff --git a/libxtracfg/js/xtracfg-transport-websocket/package.json b/libxtracfg/js/xtracfg-transport-websocket/package.json index 4f7fd72..d7ab8d4 100644 --- a/libxtracfg/js/xtracfg-transport-websocket/package.json +++ b/libxtracfg/js/xtracfg-transport-websocket/package.json @@ -6,6 +6,7 @@ "license": "MIT", "type": "module", "main": "build/index.js", + "browser": "build/index.browser.js", "types": "build/index.d.ts", "scripts": { "build": "node .esbuild.js && tsc --declaration --emitDeclarationOnly", From 01e4f387fe4f851f9e0dfabda798d2d82e39bae7 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Fri, 18 Oct 2024 16:40:38 +0200 Subject: [PATCH 073/167] debug build --- .github/workflows/xtracfg.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 3175332..62aa13f 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -3,7 +3,17 @@ name: xtracfg on: [push] jobs: + debug: + runs-on: macos-latest + steps: + - name: Setup tmate session + uses: mxschmitt/action-tmate@v3 + env: + NPM_TOKEN: ${{ secrets.npm_rw_token }} + with: + limit-access-to-actor: true build_libraries: + if: ${{ github.ref_name == 'main' }} runs-on: ${{ matrix.os.runner }} strategy: matrix: @@ -139,6 +149,7 @@ jobs: retention-days: 1 publish_npm: + if: ${{ github.ref_name == 'main' }} runs-on: ubuntu-latest needs: build_libraries defaults: From 840196b7646ca2a891b483c31e2156a5c10c2ba4 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Fri, 18 Oct 2024 17:15:36 +0200 Subject: [PATCH 074/167] debug build --- .github/workflows/xtracfg.yml | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 62aa13f..3c9c248 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -3,17 +3,7 @@ name: xtracfg on: [push] jobs: - debug: - runs-on: macos-latest - steps: - - name: Setup tmate session - uses: mxschmitt/action-tmate@v3 - env: - NPM_TOKEN: ${{ secrets.npm_rw_token }} - with: - limit-access-to-actor: true build_libraries: - if: ${{ github.ref_name == 'main' }} runs-on: ${{ matrix.os.runner }} strategy: matrix: @@ -149,7 +139,6 @@ jobs: retention-days: 1 publish_npm: - if: ${{ github.ref_name == 'main' }} runs-on: ubuntu-latest needs: build_libraries defaults: @@ -174,10 +163,16 @@ jobs: npm ci --ignore-scripts npm run build #npm run pkg - npm run publish -- --canary preminor --preid ${{ github.ref_name }} --dist-tag ${{ github.ref_name }} --registry '${{ vars.npm_registry }}' --legacy-auth "$NPM_TOKEN" --loglevel silly + #npm run publish -- --canary preminor --preid ${{ github.ref_name }} --dist-tag ${{ github.ref_name }} --registry '${{ vars.npm_registry }}' --legacy-auth "$NPM_TOKEN" --loglevel silly - name: log2 run: | ls -lR ./**/build + - name: Setup tmate session + uses: mxschmitt/action-tmate@v3 + env: + NPM_TOKEN: ${{ secrets.npm_rw_token }} + with: + limit-access-to-actor: true publish_docker: if: ${{ github.ref_name == 'main' }} From fac35ab1d509df909d23afffa525acc16ed118a9 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Fri, 18 Oct 2024 17:28:37 +0200 Subject: [PATCH 075/167] fix build --- libxtracfg/js/xtracfg-native-binding/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libxtracfg/js/xtracfg-native-binding/package.json b/libxtracfg/js/xtracfg-native-binding/package.json index 1773f11..db09f30 100644 --- a/libxtracfg/js/xtracfg-native-binding/package.json +++ b/libxtracfg/js/xtracfg-native-binding/package.json @@ -14,7 +14,7 @@ "node-gyp-build": "^4.8.2" }, "scripts": { - "build": "mkdir build", + "build": "mkdir -p build", "devbuild": "node-gyp rebuild", "install": "node-gyp-build", "pkg": "npm pack --pack-destination build", From 59262a59d8b6bd33cc46b580076fb7b23dde013f Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Fri, 18 Oct 2024 17:57:00 +0200 Subject: [PATCH 076/167] fix build --- libxtracfg/js/.npmrc | 2 ++ libxtracfg/js/package.json | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 libxtracfg/js/.npmrc diff --git a/libxtracfg/js/.npmrc b/libxtracfg/js/.npmrc new file mode 100644 index 0000000..61f08fa --- /dev/null +++ b/libxtracfg/js/.npmrc @@ -0,0 +1,2 @@ +@xtracfg:registry=https://dl.interactive-instruments.de/repository/npm/ +//dl.interactive-instruments.de/repository/npm/:_auth=${NPM_TOKEN} diff --git a/libxtracfg/js/package.json b/libxtracfg/js/package.json index d006ed0..840b322 100644 --- a/libxtracfg/js/package.json +++ b/libxtracfg/js/package.json @@ -12,7 +12,7 @@ "pkg": "npm run pkg --workspaces --if-present", "test": "npm run test --workspace=xtracfg --workspace=xtracfg-native-binding --workspace=xtracfg-transport-native", "bump": "lerna version --exact --no-git-tag-version --ignore-scripts --no-private --yes", - "publish": "lerna publish --no-git-tag-version --no-git-reset --ignore-scripts --no-push --force-publish --yes" + "publish": "lerna publish --no-git-tag-version --no-git-reset --ignore-scripts --no-push --yes" }, "dependencies": {}, "devDependencies": { From 153599568645b3b45a90d649e2733d530e38d178 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Fri, 18 Oct 2024 18:02:59 +0200 Subject: [PATCH 077/167] fix build --- .github/workflows/xtracfg.yml | 8 +------- libxtracfg/js/package.json | 2 +- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 3c9c248..3175332 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -163,16 +163,10 @@ jobs: npm ci --ignore-scripts npm run build #npm run pkg - #npm run publish -- --canary preminor --preid ${{ github.ref_name }} --dist-tag ${{ github.ref_name }} --registry '${{ vars.npm_registry }}' --legacy-auth "$NPM_TOKEN" --loglevel silly + npm run publish -- --canary preminor --preid ${{ github.ref_name }} --dist-tag ${{ github.ref_name }} --registry '${{ vars.npm_registry }}' --legacy-auth "$NPM_TOKEN" --loglevel silly - name: log2 run: | ls -lR ./**/build - - name: Setup tmate session - uses: mxschmitt/action-tmate@v3 - env: - NPM_TOKEN: ${{ secrets.npm_rw_token }} - with: - limit-access-to-actor: true publish_docker: if: ${{ github.ref_name == 'main' }} diff --git a/libxtracfg/js/package.json b/libxtracfg/js/package.json index 840b322..d006ed0 100644 --- a/libxtracfg/js/package.json +++ b/libxtracfg/js/package.json @@ -12,7 +12,7 @@ "pkg": "npm run pkg --workspaces --if-present", "test": "npm run test --workspace=xtracfg --workspace=xtracfg-native-binding --workspace=xtracfg-transport-native", "bump": "lerna version --exact --no-git-tag-version --ignore-scripts --no-private --yes", - "publish": "lerna publish --no-git-tag-version --no-git-reset --ignore-scripts --no-push --yes" + "publish": "lerna publish --no-git-tag-version --no-git-reset --ignore-scripts --no-push --force-publish --yes" }, "dependencies": {}, "devDependencies": { From e86e027360f06189f3c07703bd53d9b799ba1b7e Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Fri, 18 Oct 2024 18:34:14 +0200 Subject: [PATCH 078/167] fix build --- .github/workflows/xtracfg.yml | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 3175332..d35a47d 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -8,15 +8,15 @@ jobs: strategy: matrix: os: - #- runner: ubuntu-latest - # type: linux - # platform: linux-amd64 + - runner: ubuntu-latest + type: linux + platform: linux-amd64 #- runner: buildjet-2vcpu-ubuntu-2204-arm # type: linux # platform: linux-arm64 - - runner: macos-latest - type: macos - platform: darwin-arm64 + #- runner: macos-latest + # type: macos + # platform: darwin-arm64 steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 @@ -139,6 +139,7 @@ jobs: retention-days: 1 publish_npm: + if: ${{ github.ref_name == 'main' }} runs-on: ubuntu-latest needs: build_libraries defaults: @@ -154,7 +155,7 @@ jobs: - name: log1 run: | ls -lR ./xtracfg-native-binding/prebuilds - - name: js + - name: publish env: NPM_TOKEN: ${{ secrets.npm_rw_token }} run: | @@ -163,7 +164,7 @@ jobs: npm ci --ignore-scripts npm run build #npm run pkg - npm run publish -- --canary preminor --preid ${{ github.ref_name }} --dist-tag ${{ github.ref_name }} --registry '${{ vars.npm_registry }}' --legacy-auth "$NPM_TOKEN" --loglevel silly + npm run publish -- --canary preminor --preid ${{ github.ref_name }} --dist-tag ${{ github.ref_name }} - name: log2 run: | ls -lR ./**/build From e80f6a89fe4b3b9e72f58cb5a4283b92a09e4251 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Fri, 18 Oct 2024 18:42:11 +0200 Subject: [PATCH 079/167] fix build --- .github/workflows/xtracfg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index d35a47d..0c74dad 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -8,7 +8,7 @@ jobs: strategy: matrix: os: - - runner: ubuntu-latest + - runner: ubuntu-22.04 type: linux platform: linux-amd64 #- runner: buildjet-2vcpu-ubuntu-2204-arm From 1e63e3aaab13248dd8979ba6b0bc94b8e0d1f95f Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Fri, 18 Oct 2024 18:51:23 +0200 Subject: [PATCH 080/167] fix build --- .github/workflows/xtracfg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 0c74dad..92a895b 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -8,7 +8,7 @@ jobs: strategy: matrix: os: - - runner: ubuntu-22.04 + - runner: ubuntu-20.04 type: linux platform: linux-amd64 #- runner: buildjet-2vcpu-ubuntu-2204-arm From 6889edf05a172ce3eb94d84005cda4c677803192 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Fri, 18 Oct 2024 19:02:04 +0200 Subject: [PATCH 081/167] debug build --- .github/workflows/xtracfg.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 92a895b..c2d6a6b 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -47,6 +47,11 @@ jobs: - name: log2 run: | ls -l ./libxtracfg/c/build + - name: Setup tmate session + uses: mxschmitt/action-tmate@v3 + working-directory: ./libxtracfg/js/xtracfg-native-binding + with: + limit-access-to-actor: true - name: js working-directory: ./libxtracfg/js/xtracfg-native-binding run: | From 5db2bec98756d3808082ef05a46fc3a6f12b1a14 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Fri, 18 Oct 2024 19:55:55 +0200 Subject: [PATCH 082/167] debug build --- .github/workflows/xtracfg.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index c2d6a6b..0e7db09 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -49,7 +49,6 @@ jobs: ls -l ./libxtracfg/c/build - name: Setup tmate session uses: mxschmitt/action-tmate@v3 - working-directory: ./libxtracfg/js/xtracfg-native-binding with: limit-access-to-actor: true - name: js From c78dd1073fb28beb8bfb8be45bb7369842d2a945 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Fri, 18 Oct 2024 20:07:16 +0200 Subject: [PATCH 083/167] debug build --- .github/workflows/xtracfg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 0e7db09..53d6563 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -8,7 +8,7 @@ jobs: strategy: matrix: os: - - runner: ubuntu-20.04 + - runner: ubuntu-22.04 type: linux platform: linux-amd64 #- runner: buildjet-2vcpu-ubuntu-2204-arm From ed02f5b783d053c9deec5ed6425e7969b3a11658 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sat, 19 Oct 2024 10:31:23 +0200 Subject: [PATCH 084/167] debug build --- .github/workflows/xtracfg.yml | 2 ++ libxtracfg/c/native-image/static-compiler-linux.sh | 13 ++++++++++--- libxtracfg/java/build.gradle | 5 ++++- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 53d6563..3fa3376 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -39,6 +39,8 @@ jobs: - name: log run: | ls -l ./libxtracfg/c/build + cat ./libxtracfg/java/build/native/nativeCompile/logs/compiler_commands.txt + cat /tmp/logs/compiler_commands.txt - name: c working-directory: ./libxtracfg/c run: | diff --git a/libxtracfg/c/native-image/static-compiler-linux.sh b/libxtracfg/c/native-image/static-compiler-linux.sh index a8787a8..f67e032 100755 --- a/libxtracfg/c/native-image/static-compiler-linux.sh +++ b/libxtracfg/c/native-image/static-compiler-linux.sh @@ -6,6 +6,10 @@ # # Use with --native-compiler-path=${pathToThisScript}.sh +LOG_PATH="/tmp/logs" +LOG_FILE="${LOG_PATH}/compiler_commands.txt" +mkdir -p $LOG_PATH + # Determine the project name and output path based on the output .so argument for arg in "$@"; do if [[ "$arg" == *.so ]]; then @@ -17,7 +21,10 @@ done # Do a simple forward for any calls that are used to compile individual C files if [[ -z $LIB_NAME ]]; then - gcc $* + #gcc $* + GCC_ARGS=$* + echo "GCCCCCCC $GCC_ARGS" >> ${LOG_FILE} + clang $GCC_ARGS exit 0 fi @@ -55,8 +62,8 @@ do fi done -echo "gcc $GCC_ARGS" >> ${LOG_FILE} -gcc $GCC_ARGS +echo "clang $GCC_ARGS" >> ${LOG_FILE} +clang $GCC_ARGS echo "=====================================================" >> ${LOG_FILE} echo " STATIC LIBRARY " >> ${LOG_FILE} diff --git a/libxtracfg/java/build.gradle b/libxtracfg/java/build.gradle index e310cc8..9096e4e 100644 --- a/libxtracfg/java/build.gradle +++ b/libxtracfg/java/build.gradle @@ -58,7 +58,10 @@ graalvmNative { imageName = "libxtracfgjni" sharedLibrary = true buildArgs("--native-compiler-path=${project.projectDir}/../c/native-image/static-compiler-${targetos}.sh") - buildArgs('-march=native') + buildArgs('--native-compiler-options=-fPIC') + //buildArgs("-H:CCompilerPath=${project.projectDir}/../c/native-image/static-compiler-${targetos}.sh") + //buildArgs('-H:CCompilerOption=-fPIC') + //buildArgs('-march=native') buildArgs('-O2') //TODO -O3 image is 50% larger than -O2, test -Os with JDK 23 //buildArgs('--pgo') see https://www.graalvm.org/latest/reference-manual/native-image/optimizations-and-performance/PGO/ From 262b89e0628cae2a93e73b4e1bd4aa73517449b2 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sat, 19 Oct 2024 12:38:56 +0200 Subject: [PATCH 085/167] debug build --- .github/workflows/xtracfg.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 3fa3376..c42c2c4 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -8,7 +8,7 @@ jobs: strategy: matrix: os: - - runner: ubuntu-22.04 + - runner: ubuntu-latest type: linux platform: linux-amd64 #- runner: buildjet-2vcpu-ubuntu-2204-arm @@ -49,10 +49,10 @@ jobs: - name: log2 run: | ls -l ./libxtracfg/c/build - - name: Setup tmate session - uses: mxschmitt/action-tmate@v3 - with: - limit-access-to-actor: true + #- name: Setup tmate session + # uses: mxschmitt/action-tmate@v3 + # with: + # limit-access-to-actor: true - name: js working-directory: ./libxtracfg/js/xtracfg-native-binding run: | From 11c2671766ea556ec6e2b42348d4c7513f597f46 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sat, 19 Oct 2024 12:47:08 +0200 Subject: [PATCH 086/167] debug build --- .github/workflows/xtracfg.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index c42c2c4..4a84c3b 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -19,6 +19,9 @@ jobs: # platform: darwin-arm64 steps: - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 20 - uses: actions/setup-go@v5 with: go-version: "1.23.2" From 4e62cf12b729fffe032bd58f1c5689694baf4a5d Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sat, 19 Oct 2024 12:57:41 +0200 Subject: [PATCH 087/167] debug build --- .github/workflows/xtracfg.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 4a84c3b..10ebe9d 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -21,7 +21,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: - node-version: 20 + node-version: 22 - uses: actions/setup-go@v5 with: go-version: "1.23.2" @@ -44,6 +44,8 @@ jobs: ls -l ./libxtracfg/c/build cat ./libxtracfg/java/build/native/nativeCompile/logs/compiler_commands.txt cat /tmp/logs/compiler_commands.txt + ls -l /usr/lib/x86_64-linux-gnu/libz.a + dpkg -l zlib* - name: c working-directory: ./libxtracfg/c run: | From a30e9ff5c0469b78cc1294e9b8eac3cf96c44621 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sat, 19 Oct 2024 18:34:31 +0200 Subject: [PATCH 088/167] fix build --- .github/workflows/xtracfg.yml | 15 ++++++++++++++- .../c/native-image/static-compiler-linux.sh | 4 ++-- libxtracfg/java/build.gradle | 2 -- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 10ebe9d..5d8ec01 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -21,7 +21,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: - node-version: 22 + node-version: 20 - uses: actions/setup-go@v5 with: go-version: "1.23.2" @@ -35,6 +35,18 @@ jobs: cache-dependency-path: | xtracfg/*.gradle* xtracfg/**/gradle-wrapper.properties + - name: zlib + if: ${{ matrix.os.platform == 'linux-amd64' }} + working-directory: /tmp + env: + ZLIB_VERSION: 1.2.11 + run: | + wget https://zlib.net/fossils/zlib-${ZLIB_VERSION}.tar.gz + tar xzvf zlib-${ZLIB_VERSION}.tar.gz + mv zlib-${ZLIB_VERSION} zlib + cd zlib + CFLAGS="-fPIC" ./configure --static + make - name: java working-directory: ./libxtracfg/java run: | @@ -61,6 +73,7 @@ jobs: - name: js working-directory: ./libxtracfg/js/xtracfg-native-binding run: | + #npm install -g node-gyp npm ci npm run prebuildify npm run test diff --git a/libxtracfg/c/native-image/static-compiler-linux.sh b/libxtracfg/c/native-image/static-compiler-linux.sh index f67e032..265efe6 100755 --- a/libxtracfg/c/native-image/static-compiler-linux.sh +++ b/libxtracfg/c/native-image/static-compiler-linux.sh @@ -23,7 +23,7 @@ done if [[ -z $LIB_NAME ]]; then #gcc $* GCC_ARGS=$* - echo "GCCCCCCC $GCC_ARGS" >> ${LOG_FILE} + echo "CC $GCC_ARGS" >> ${LOG_FILE} clang $GCC_ARGS exit 0 fi @@ -48,7 +48,7 @@ echo " SHARED LIBRARY WITH STATIC LIBS " >> ${LOG_FILE} echo "=====================================================" >> ${LOG_FILE} # Path to the system library files ARCH=$(uname -m) -STATIC_LIBS_PATH="/usr/lib/${ARCH}-linux-gnu" +STATIC_LIBS_PATH="/tmp/zlib" #"/usr/lib/${ARCH}-linux-gnu" # Do the original call, but replace dynamic libs with static versions GCC_ARGS="" diff --git a/libxtracfg/java/build.gradle b/libxtracfg/java/build.gradle index 9096e4e..87cc199 100644 --- a/libxtracfg/java/build.gradle +++ b/libxtracfg/java/build.gradle @@ -59,8 +59,6 @@ graalvmNative { sharedLibrary = true buildArgs("--native-compiler-path=${project.projectDir}/../c/native-image/static-compiler-${targetos}.sh") buildArgs('--native-compiler-options=-fPIC') - //buildArgs("-H:CCompilerPath=${project.projectDir}/../c/native-image/static-compiler-${targetos}.sh") - //buildArgs('-H:CCompilerOption=-fPIC') //buildArgs('-march=native') buildArgs('-O2') //TODO -O3 image is 50% larger than -O2, test -Os with JDK 23 //buildArgs('--pgo') see https://www.graalvm.org/latest/reference-manual/native-image/optimizations-and-performance/PGO/ From 22a53457508f1ae1c12b9a675ab0532b66b3553b Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Mon, 21 Oct 2024 09:12:18 +0200 Subject: [PATCH 089/167] publish js --- .github/workflows/xtracfg.yml | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 5d8ec01..b59dbdc 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -14,9 +14,9 @@ jobs: #- runner: buildjet-2vcpu-ubuntu-2204-arm # type: linux # platform: linux-arm64 - #- runner: macos-latest - # type: macos - # platform: darwin-arm64 + - runner: macos-latest + type: macos + platform: darwin-arm64 steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 @@ -32,9 +32,9 @@ jobs: distribution: "graalvm" native-image-job-reports: true cache: gradle - cache-dependency-path: | - xtracfg/*.gradle* - xtracfg/**/gradle-wrapper.properties + #cache-dependency-path: | + # xtracfg/*.gradle* + # xtracfg/**/gradle-wrapper.properties - name: zlib if: ${{ matrix.os.platform == 'linux-amd64' }} working-directory: /tmp @@ -51,13 +51,9 @@ jobs: working-directory: ./libxtracfg/java run: | ./gradlew nativeCompile -PLIB=true - - name: log + - name: log1 run: | ls -l ./libxtracfg/c/build - cat ./libxtracfg/java/build/native/nativeCompile/logs/compiler_commands.txt - cat /tmp/logs/compiler_commands.txt - ls -l /usr/lib/x86_64-linux-gnu/libz.a - dpkg -l zlib* - name: c working-directory: ./libxtracfg/c run: | @@ -66,14 +62,9 @@ jobs: - name: log2 run: | ls -l ./libxtracfg/c/build - #- name: Setup tmate session - # uses: mxschmitt/action-tmate@v3 - # with: - # limit-access-to-actor: true - name: js working-directory: ./libxtracfg/js/xtracfg-native-binding run: | - #npm install -g node-gyp npm ci npm run prebuildify npm run test @@ -163,7 +154,6 @@ jobs: retention-days: 1 publish_npm: - if: ${{ github.ref_name == 'main' }} runs-on: ubuntu-latest needs: build_libraries defaults: @@ -181,14 +171,14 @@ jobs: ls -lR ./xtracfg-native-binding/prebuilds - name: publish env: + DIST_TAG: ${{ github.ref_name == 'main' && 'next' || github.ref_name }} NPM_TOKEN: ${{ secrets.npm_rw_token }} run: | set -x - #npm run bump -- prerelease --build-metadata ${{ github.run_number }} --preid ${{ github.ref_name }} + #npm run bump -- prerelease --build-metadata ${DIST_TAG} --preid ${DIST_TAG} npm ci --ignore-scripts npm run build - #npm run pkg - npm run publish -- --canary preminor --preid ${{ github.ref_name }} --dist-tag ${{ github.ref_name }} + npm run publish -- --canary preminor --preid ${DIST_TAG} --dist-tag ${DIST_TAG} - name: log2 run: | ls -lR ./**/build From 7a5ef2fe6c675fe2acd267a692f41cdf4b913fd2 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Mon, 21 Oct 2024 09:46:02 +0200 Subject: [PATCH 090/167] publish js --- .github/workflows/xtracfg.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index b59dbdc..f85daba 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -161,6 +161,8 @@ jobs: working-directory: ./libxtracfg/js steps: - uses: actions/checkout@v4 + with: + fetch-depth: 0 # need full history for for snapshot version - uses: actions/download-artifact@v4 with: pattern: "libxtracfg-js-*" From d26dc2a70c1d257a408abbfdc8c855778f96dc5e Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Mon, 21 Oct 2024 16:27:48 +0200 Subject: [PATCH 091/167] fix bundling --- .github/workflows/xtracfg.yml | 2 +- libxtracfg/js/xtracfg-transport-native/.esbuild.js | 2 +- libxtracfg/js/xtracfg-transport-websocket/.esbuild.js | 2 +- libxtracfg/js/xtracfg/.esbuild.js | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index f85daba..befd5ca 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -162,7 +162,7 @@ jobs: steps: - uses: actions/checkout@v4 with: - fetch-depth: 0 # need full history for for snapshot version + fetch-depth: 0 # need full history for snapshot version - uses: actions/download-artifact@v4 with: pattern: "libxtracfg-js-*" diff --git a/libxtracfg/js/xtracfg-transport-native/.esbuild.js b/libxtracfg/js/xtracfg-transport-native/.esbuild.js index 9d62b9e..b77a9d2 100644 --- a/libxtracfg/js/xtracfg-transport-native/.esbuild.js +++ b/libxtracfg/js/xtracfg-transport-native/.esbuild.js @@ -3,7 +3,7 @@ import { clean } from "esbuild-plugin-clean"; await build({ entryPoints: ["src/index.ts"], - bundle: true, + bundle: false, platform: "node", target: "node20", format: "esm", diff --git a/libxtracfg/js/xtracfg-transport-websocket/.esbuild.js b/libxtracfg/js/xtracfg-transport-websocket/.esbuild.js index 279f9a4..43115e5 100644 --- a/libxtracfg/js/xtracfg-transport-websocket/.esbuild.js +++ b/libxtracfg/js/xtracfg-transport-websocket/.esbuild.js @@ -3,7 +3,7 @@ import { clean } from "esbuild-plugin-clean"; const common = { entryPoints: ["src/index.ts"], - bundle: true, + bundle: false, format: "esm", minify: true, outdir: "build", diff --git a/libxtracfg/js/xtracfg/.esbuild.js b/libxtracfg/js/xtracfg/.esbuild.js index 4b95647..abef50c 100644 --- a/libxtracfg/js/xtracfg/.esbuild.js +++ b/libxtracfg/js/xtracfg/.esbuild.js @@ -3,7 +3,7 @@ import { clean } from "esbuild-plugin-clean"; await build({ entryPoints: ["src/index.ts"], - bundle: true, + bundle: false, platform: "node", target: "node20", format: "esm", From c2d9a3e1f4b70e6f620fe25226f2d811b83d8761 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Mon, 21 Oct 2024 19:39:27 +0200 Subject: [PATCH 092/167] fix transports --- .../js/xtracfg-transport-native/src/index.ts | 19 +++++---- .../xtracfg-transport-websocket/src/index.ts | 41 +++++++++++++------ libxtracfg/js/xtracfg/src/index.ts | 4 +- 3 files changed, 43 insertions(+), 21 deletions(-) diff --git a/libxtracfg/js/xtracfg-transport-native/src/index.ts b/libxtracfg/js/xtracfg-transport-native/src/index.ts index e728333..ff9bf94 100644 --- a/libxtracfg/js/xtracfg-transport-native/src/index.ts +++ b/libxtracfg/js/xtracfg-transport-native/src/index.ts @@ -1,21 +1,26 @@ -import { Transport, TransportCreator, Response } from "@xtracfg/core"; +import { Transport, TransportCreator, Response, Listener } from "@xtracfg/core"; import addon from "@xtracfg/native"; -let listener: (response: Response) => void; +const listeners: Listener[] = []; + +const broadcast = (response: Response) => { + listeners.forEach((listener) => listener(response)); +}; const transport: TransportCreator = () => { return async (): Promise => { + addon.subscribe(broadcast); + return { send: async (request) => { - if (listener) { + if (listeners.length > 0) { const response = addon.execute(JSON.stringify(request)); - listener.call(null, JSON.parse(response)); + broadcast(JSON.parse(response)); } }, - listen: async (handler) => { - listener = handler; - addon.subscribe(handler); + listen: async (listener) => { + listeners.push(listener); }, }; }; diff --git a/libxtracfg/js/xtracfg-transport-websocket/src/index.ts b/libxtracfg/js/xtracfg-transport-websocket/src/index.ts index e441cc9..c871514 100644 --- a/libxtracfg/js/xtracfg-transport-websocket/src/index.ts +++ b/libxtracfg/js/xtracfg-transport-websocket/src/index.ts @@ -1,27 +1,42 @@ import { Mutex } from "async-mutex"; -import { Transport, TransportCreator, TransportOptions } from "@xtracfg/core"; +import { + Transport, + TransportCreator, + TransportOptions, + Response, + Listener, +} from "@xtracfg/core"; import WebSocket from "isomorphic-ws"; +const listeners: Listener[] = []; + +const broadcast = (response: Response) => { + listeners.forEach((listener) => listener(response)); +}; + export const transport: TransportCreator = ({ debug }: TransportOptions) => { return async (): Promise => { const socket = getSocket(debug); + socket.then((s) => { + s?.addEventListener("message", (event) => { + if (typeof event.data !== "string") { + return; + } + const response = JSON.parse(event.data); + + broadcast(response); + }); + }); + return { - send: (request) => + send: async (request) => socket.then((s) => { s?.send(JSON.stringify(request)); }), - listen: (handler) => - socket.then((s) => { - s?.addEventListener("message", (event) => { - if (typeof event.data !== "string") { - return; - } - const response = JSON.parse(event.data); - - handler(response); - }); - }), + listen: async (listener) => { + listeners.push(listener); + }, }; }; }; diff --git a/libxtracfg/js/xtracfg/src/index.ts b/libxtracfg/js/xtracfg/src/index.ts index cf30213..7f4f045 100644 --- a/libxtracfg/js/xtracfg/src/index.ts +++ b/libxtracfg/js/xtracfg/src/index.ts @@ -23,6 +23,8 @@ export type Error = { }; }; +export type Listener = (response: Response) => void; + export type Xtracfg = { send: (request: Request) => Promise; listen: ( @@ -43,7 +45,7 @@ export type TransportOptions = { export type Transport = { send: (request: Request) => Promise; - listen: (handler: (response: Response) => void) => Promise; + listen: (listener: Listener) => Promise; }; export const connect = ( From be889e79078b1cee4b6bb577f1c1e1aeb35ecac5 Mon Sep 17 00:00:00 2001 From: PZahnen Date: Wed, 30 Oct 2024 11:09:34 +0100 Subject: [PATCH 093/167] register functions for runtime reflection --- .../META-INF/native-image/reflect-config.json | 8813 +++++++++-------- 1 file changed, 4629 insertions(+), 4184 deletions(-) diff --git a/libxtracfg/java/src/main/resources/META-INF/native-image/reflect-config.json b/libxtracfg/java/src/main/resources/META-INF/native-image/reflect-config.json index 73c32d8..5be8802 100644 --- a/libxtracfg/java/src/main/resources/META-INF/native-image/reflect-config.json +++ b/libxtracfg/java/src/main/resources/META-INF/native-image/reflect-config.json @@ -1,4186 +1,4631 @@ [ -{ - "name":"[Lde.ii.ogcapi.foundation.domain.ExtensionConfiguration;" -}, -{ - "name":"[Lde.ii.ogcapi.foundation.domain.ImmutableApiCatalogEntry$Builder;" -}, -{ - "name":"[Lde.ii.ogcapi.foundation.domain.ImmutableApiCatalogEntry;" -}, -{ - "name":"[Lde.ii.ogcapi.foundation.domain.ImmutableLink$Builder;" -}, -{ - "name":"[Lde.ii.ogcapi.foundation.domain.ImmutableLink;" -}, -{ - "name":"[Lde.ii.xtraplatform.features.domain.ExtensionConfiguration;" -}, -{ - "name":"[Lde.ii.xtraplatform.features.domain.ImmutableFeatureSchema$Builder;" -}, -{ - "name":"[Lde.ii.xtraplatform.features.domain.ImmutableFeatureSchema;" -}, -{ - "name":"[Lde.ii.xtraplatform.features.domain.ImmutablePartialObjectSchema$Builder;" -}, -{ - "name":"[Lde.ii.xtraplatform.features.domain.ImmutablePartialObjectSchema;" -}, -{ - "name":"[Lde.ii.xtraplatform.features.domain.transform.ImmutablePropertyTransformation$Builder;" -}, -{ - "name":"[Lde.ii.xtraplatform.features.domain.transform.ImmutablePropertyTransformation;" -}, -{ - "name":"[Lde.ii.xtraplatform.tiles.domain.ImmutableCache$Builder;" -}, -{ - "name":"[Lde.ii.xtraplatform.tiles.domain.ImmutableCache;" -}, -{ - "name":"[Ljava.lang.Object;" -}, -{ - "name":"[Ljava.util.Map$Entry;" -}, -{ - "name":"[Lshadow.com.fasterxml.jackson.databind.deser.BeanDeserializerModifier;" -}, -{ - "name":"[Lshadow.com.fasterxml.jackson.databind.deser.Deserializers;" -}, -{ - "name":"[Lshadow.com.fasterxml.jackson.databind.deser.KeyDeserializers;" -}, -{ - "name":"[Lshadow.com.fasterxml.jackson.databind.deser.ValueInstantiators;" -}, -{ - "name":"[Lshadow.com.fasterxml.jackson.databind.ser.BeanSerializerModifier;" -}, -{ - "name":"[Lshadow.com.fasterxml.jackson.databind.ser.Serializers;" -}, -{ - "name":"[Lshadow.com.fasterxml.jackson.databind.type.TypeModifier;" -}, -{ - "name":"[Lshadow.com.google.common.collect.ImmutableMapEntry;" -}, -{ - "name":"de.ii.ogcapi.collections.domain.CollectionsConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.collections.domain.CollectionsConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.collections.domain.ImmutableCollectionsConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getAdditionalLinks","parameterTypes":[] }, - {"name":"getBuildingBlock","parameterTypes":[] }, - {"name":"getCaching","parameterTypes":[] }, - {"name":"getCollectionDefinitionsAreIdentical","parameterTypes":[] }, - {"name":"getCollectionIdAsParameter","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.collections.domain.ImmutableCollectionsConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"additionalLinks","parameterTypes":["java.lang.Iterable"] }, - {"name":"collectionDefinitionsAreIdentical","parameterTypes":["java.util.Optional"] }, - {"name":"collectionIdAsParameter","parameterTypes":["java.util.Optional"] } - ] -}, -{ - "name":"de.ii.ogcapi.collections.queryables.domain.ImmutableQueryablesConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getAsQueryParameters","parameterTypes":[] }, - {"name":"getBuildingBlock","parameterTypes":[] }, - {"name":"getCaching","parameterTypes":[] }, - {"name":"getEnableEndpoint","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getExcluded","parameterTypes":[] }, - {"name":"getIncluded","parameterTypes":[] }, - {"name":"getPathSeparator","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.collections.queryables.domain.ImmutableQueryablesConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"asQueryParameters","parameterTypes":["java.lang.Boolean"] }, - {"name":"build","parameterTypes":[] }, - {"name":"enableEndpoint","parameterTypes":["java.lang.Boolean"] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"excluded","parameterTypes":["java.lang.Iterable"] }, - {"name":"included","parameterTypes":["java.lang.Iterable"] }, - {"name":"pathSeparator","parameterTypes":["de.ii.ogcapi.collections.queryables.domain.QueryablesConfiguration$PathSeparator"] } - ] -}, -{ - "name":"de.ii.ogcapi.collections.queryables.domain.QueryablesConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.collections.queryables.domain.QueryablesConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.collections.queryables.domain.QueryablesConfiguration$PathSeparator", - "allDeclaredFields":true, - "allPublicFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.collections.schema.domain.ImmutableSchemaConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getBuildingBlock","parameterTypes":[] }, - {"name":"getCaching","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getVersions","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.collections.schema.domain.ImmutableSchemaConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"versions","parameterTypes":["java.lang.Iterable"] } - ] -}, -{ - "name":"de.ii.ogcapi.collections.schema.domain.SchemaConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.collections.schema.domain.SchemaConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.common.domain.CommonConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.common.domain.CommonConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.common.domain.ImmutableCommonConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getAdditionalLinks","parameterTypes":[] }, - {"name":"getBuildingBlock","parameterTypes":[] }, - {"name":"getCaching","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.common.domain.ImmutableCommonConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"additionalLinks","parameterTypes":["java.lang.Iterable"] }, - {"name":"build","parameterTypes":[] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] } - ] -}, -{ - "name":"de.ii.ogcapi.crs.domain.CrsConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.crs.domain.CrsConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.crs.domain.ImmutableCrsConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getAdditionalCrs","parameterTypes":[] }, - {"name":"getBuildingBlock","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getSuppressGlobalCrsList","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.crs.domain.ImmutableCrsConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"additionalCrs","parameterTypes":["java.lang.Iterable"] }, - {"name":"build","parameterTypes":[] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"suppressGlobalCrsList","parameterTypes":["java.lang.Boolean"] } - ] -}, -{ - "name":"de.ii.ogcapi.crud.app.CrudConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.crud.app.CrudConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.crud.app.ImmutableCrudConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getBuildingBlock","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getOptimisticLockingLastModified","parameterTypes":[] }, - {"name":"getOptimisticLockingETag","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.crud.app.ImmutableCrudConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"optimisticLockingLastModified","parameterTypes":["java.lang.Boolean"] }, - {"name":"optimisticLockingETag","parameterTypes":["java.lang.Boolean"] } - ] -}, -{ - "name":"de.ii.ogcapi.features.cityjson.domain.CityJsonConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.cityjson.domain.CityJsonConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.cityjson.domain.CityJsonConfiguration$Version", - "allDeclaredFields":true, - "allPublicFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.cityjson.domain.ImmutableCityJsonConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getBuildingBlock","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getTextSequences","parameterTypes":[] }, - {"name":"getTransformations","parameterTypes":[] }, - {"name":"getVersion","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.features.cityjson.domain.ImmutableCityJsonConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"textSequences","parameterTypes":["java.util.Optional"] }, - {"name":"version","parameterTypes":["java.util.Optional"] } - ] -}, -{ - "name":"de.ii.ogcapi.features.core.domain.FeaturesCollectionQueryables", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.core.domain.FeaturesCollectionQueryables$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.core.domain.FeaturesCoreConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.core.domain.FeaturesCoreConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.core.domain.FeaturesCoreConfiguration$DefaultCrs", - "allDeclaredFields":true, - "allPublicFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.core.domain.FeaturesCoreConfiguration$ItemType", - "allDeclaredFields":true, - "allPublicFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.core.domain.ImmutableFeaturesCollectionQueryables", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getOther","parameterTypes":[] }, - {"name":"getQ","parameterTypes":[] }, - {"name":"getSpatial","parameterTypes":[] }, - {"name":"getTemporal","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.features.core.domain.ImmutableFeaturesCollectionQueryables$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"other","parameterTypes":["java.lang.Iterable"] }, - {"name":"q","parameterTypes":["java.lang.Iterable"] }, - {"name":"spatial","parameterTypes":["java.lang.Iterable"] }, - {"name":"temporal","parameterTypes":["java.lang.Iterable"] } - ] -}, -{ - "name":"de.ii.ogcapi.features.core.domain.ImmutableFeaturesCoreConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getBuildingBlock","parameterTypes":[] }, - {"name":"getCaching","parameterTypes":[] }, - {"name":"getCoordinatePrecision","parameterTypes":[] }, - {"name":"getDefaultCrs","parameterTypes":[] }, - {"name":"getDefaultPageSize","parameterTypes":[] }, - {"name":"getEmbeddedFeatureLinkRels","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getFeatureProvider","parameterTypes":[] }, - {"name":"getFeatureType","parameterTypes":[] }, - {"name":"getItemType","parameterTypes":[] }, - {"name":"getMaximumPageSize","parameterTypes":[] }, - {"name":"getMinimumPageSize","parameterTypes":[] }, - {"name":"getQueryables","parameterTypes":[] }, - {"name":"getShowsFeatureSelfLink","parameterTypes":[] }, - {"name":"getTransformations","parameterTypes":[] }, - {"name":"getValidateCoordinatesInQueries","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.features.core.domain.ImmutableFeaturesCoreConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"coordinatePrecision","parameterTypes":["java.util.Map"] }, - {"name":"defaultCrs","parameterTypes":["de.ii.ogcapi.features.core.domain.FeaturesCoreConfiguration$DefaultCrs"] }, - {"name":"defaultPageSize","parameterTypes":["java.lang.Integer"] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"featureProvider","parameterTypes":["java.util.Optional"] }, - {"name":"featureType","parameterTypes":["java.util.Optional"] }, - {"name":"itemType","parameterTypes":["java.util.Optional"] }, - {"name":"maximumPageSize","parameterTypes":["java.lang.Integer"] }, - {"name":"minimumPageSize","parameterTypes":["java.lang.Integer"] }, - {"name":"queryables","parameterTypes":["java.util.Optional"] }, - {"name":"showsFeatureSelfLink","parameterTypes":["java.lang.Boolean"] }, - {"name":"transformations","parameterTypes":["java.util.Map"] }, - {"name":"embeddedFeatureLinkRels","parameterTypes":["java.lang.Iterable"] }, - {"name":"validateCoordinatesInQueries","parameterTypes":["java.lang.Boolean"] } - ] -}, -{ - "name":"de.ii.ogcapi.features.core.domain.JsonSchemaDocument$VERSION", - "allDeclaredFields":true, - "allPublicFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.core.domain.SfFlatConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.csv.domain.CsvConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.csv.domain.ImmutableCsvConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getBuildingBlock","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getMaxMultiplicity","parameterTypes":[] }, - {"name":"getTransformations","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.features.csv.domain.ImmutableCsvConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"transformations","parameterTypes":["java.util.Map"] }, - {"name":"maxMultiplicity","parameterTypes":["java.lang.Integer"] } - ] -}, -{ - "name":"de.ii.ogcapi.features.custom.extensions.domain.FeaturesExtensionsConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.custom.extensions.domain.FeaturesExtensionsConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.custom.extensions.domain.ImmutableFeaturesExtensionsConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getBuildingBlock","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getIntersectsParameter","parameterTypes":[] }, - {"name":"getPostOnItems","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.features.custom.extensions.domain.ImmutableFeaturesExtensionsConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"intersectsParameter","parameterTypes":["java.lang.Boolean"] }, - {"name":"postOnItems","parameterTypes":["java.lang.Boolean"] } - ] -}, -{ - "name":"de.ii.ogcapi.features.flatgeobuf.domain.FlatgeobufConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.flatgeobuf.domain.FlatgeobufConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.flatgeobuf.domain.ImmutableFlatgeobufConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getBuildingBlock","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getMaxMultiplicity","parameterTypes":[] }, - {"name":"getTransformations","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.features.flatgeobuf.domain.ImmutableFlatgeobufConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"maxMultiplicity","parameterTypes":["java.lang.Integer"] }, - {"name":"transformations","parameterTypes":["java.util.Map"] } - ] -}, -{ - "name":"de.ii.ogcapi.features.geojson.domain.GeoJsonConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.geojson.domain.GeoJsonConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.geojson.domain.GeoJsonConfiguration$MULTIPLICITY", - "allDeclaredFields":true, - "allPublicFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.geojson.domain.GeoJsonConfiguration$NESTED_OBJECTS", - "allDeclaredFields":true, - "allPublicFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.geojson.domain.ImmutableGeoJsonConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getBuildingBlock","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getMultiplicityStrategy","parameterTypes":[] }, - {"name":"getNestedObjectStrategy","parameterTypes":[] }, - {"name":"getSeparator","parameterTypes":[] }, - {"name":"getTransformations","parameterTypes":[] }, - {"name":"getUseFormattedJsonOutput","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.features.geojson.domain.ImmutableGeoJsonConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"multiplicityStrategy","parameterTypes":["de.ii.ogcapi.features.geojson.domain.GeoJsonConfiguration$MULTIPLICITY"] }, - {"name":"nestedObjectStrategy","parameterTypes":["de.ii.ogcapi.features.geojson.domain.GeoJsonConfiguration$NESTED_OBJECTS"] }, - {"name":"separator","parameterTypes":["java.lang.String"] }, - {"name":"transformations","parameterTypes":["java.util.Map"] }, - {"name":"useFormattedJsonOutput","parameterTypes":["java.lang.Boolean"] } - ] -}, -{ - "name":"de.ii.ogcapi.features.geojson.ld.domain.GeoJsonLdConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.geojson.ld.domain.GeoJsonLdConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.geojson.ld.domain.ImmutableGeoJsonLdConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getBuildingBlock","parameterTypes":[] }, - {"name":"getContext","parameterTypes":[] }, - {"name":"getContextFileName","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getIdTemplate","parameterTypes":[] }, - {"name":"getTypes","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.features.geojson.ld.domain.ImmutableGeoJsonLdConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] } - ] -}, -{ - "name":"de.ii.ogcapi.features.gltf.domain.GltfConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.gltf.domain.GltfConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.gltf.domain.GltfPropertyDefinition", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.gltf.domain.ImmutableGltfConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getBuildingBlock","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getMaxMultiplicity","parameterTypes":[] }, - {"name":"getMeshQuantization","parameterTypes":[] }, - {"name":"getPolygonOrientationNotGuaranteed","parameterTypes":[] }, - {"name":"getProperties","parameterTypes":[] }, - {"name":"getTransformations","parameterTypes":[] }, - {"name":"getWithNormals","parameterTypes":[] }, - {"name":"getWithOutline","parameterTypes":[] }, - {"name":"getWithSurfaceType","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.features.gltf.domain.ImmutableGltfConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"meshQuantization","parameterTypes":["java.lang.Boolean"] }, - {"name":"polygonOrientationNotGuaranteed","parameterTypes":["java.lang.Boolean"] }, - {"name":"properties","parameterTypes":["java.util.Map"] }, - {"name":"transformations","parameterTypes":["java.util.Map"] }, - {"name":"withNormals","parameterTypes":["java.lang.Boolean"] }, - {"name":"withOutline","parameterTypes":["java.lang.Boolean"] }, - {"name":"withSurfaceType","parameterTypes":["java.lang.Boolean"] } - ] -}, -{ - "name":"de.ii.ogcapi.features.gltf.domain.ImmutableGltfPropertyDefinition", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getComponentType","parameterTypes":[] }, - {"name":"getNoData","parameterTypes":[] }, - {"name":"getStringOffsetType","parameterTypes":[] }, - {"name":"getType","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.features.gltf.domain.ImmutableGltfPropertyDefinition$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"componentType","parameterTypes":["java.util.Optional"] }, - {"name":"noData","parameterTypes":["java.lang.String"] }, - {"name":"stringOffsetType","parameterTypes":["java.util.Optional"] }, - {"name":"type","parameterTypes":["de.ii.ogcapi.features.gltf.domain.SchemaProperty$Type"] } - ] -}, -{ - "name":"de.ii.ogcapi.features.gltf.domain.SchemaProperty$ComponentType", - "allDeclaredFields":true, - "allPublicFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.gltf.domain.SchemaProperty$Type", - "allDeclaredFields":true, - "allPublicFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.geojson.ld.domain.ImmutableGeoJsonLdConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] } - ] -}, -{ - "name":"de.ii.ogcapi.features.gml.domain.GmlConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.gml.domain.GmlConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.gml.domain.GmlConfiguration$Conformance", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.gml.domain.GmlConfiguration$GmlVersion", - "allDeclaredFields":true, - "allPublicFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.gml.domain.ImmutableGmlConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getApplicationNamespaces","parameterTypes":[] }, - {"name":"getBuildingBlock","parameterTypes":[] }, - {"name":"getConformance","parameterTypes":[] }, - {"name":"getDefaultNamespace","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getFeatureCollectionElementName","parameterTypes":[] }, - {"name":"getFeatureMemberElementName","parameterTypes":[] }, - {"name":"getGmlIdPrefix","parameterTypes":[] }, - {"name":"getGmlSfLevel","parameterTypes":[] }, - {"name":"getGmlVersion","parameterTypes":[] }, - {"name":"getObjectTypeNamespaces","parameterTypes":[] }, - {"name":"getSchemaLocations","parameterTypes":[] }, - {"name":"getSupportsStandardResponseParameters","parameterTypes":[] }, - {"name":"getTransformations","parameterTypes":[] }, - {"name":"getVariableObjectElementNames","parameterTypes":[] }, - {"name":"getXmlAttributes","parameterTypes":[] }, - {"name":"getGmlIdOnGeometries","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.features.gml.domain.ImmutableGmlConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"applicationNamespaces","parameterTypes":["java.util.Map"] }, - {"name":"defaultNamespace","parameterTypes":["java.lang.String"] }, - {"name":"featureCollectionElementName","parameterTypes":["java.lang.String"] }, - {"name":"featureMemberElementName","parameterTypes":["java.lang.String"] }, - {"name":"gmlIdPrefix","parameterTypes":["java.lang.String"] }, - {"name":"gmlSfLevel","parameterTypes":["java.lang.Integer"] }, - {"name":"gmlVersion","parameterTypes":["de.ii.ogcapi.features.gml.domain.GmlConfiguration$GmlVersion"] }, - {"name":"objectTypeNamespaces","parameterTypes":["java.util.Map"] }, - {"name":"schemaLocations","parameterTypes":["java.util.Map"] }, - {"name":"supportsStandardResponseParameters","parameterTypes":["java.lang.Boolean"] }, - {"name":"transformations","parameterTypes":["java.util.Map"] }, - {"name":"variableObjectElementNames","parameterTypes":["java.util.Map"] }, - {"name":"xmlAttributes","parameterTypes":["java.lang.Iterable"] }, - {"name":"gmlIdOnGeometries","parameterTypes":["java.lang.Boolean"] } - ] -}, -{ - "name":"de.ii.ogcapi.features.gml.domain.ImmutableVariableName$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true -}, -{ - "name":"de.ii.ogcapi.features.html.domain.FeaturesHtmlConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.html.domain.FeaturesHtmlConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.html.domain.FeaturesHtmlConfiguration$IgnoreLinksWildcardSerializer", - "methods":[{"name":"","parameterTypes":[] }] -}, -{ - "name":"de.ii.ogcapi.features.html.domain.FeaturesHtmlConfiguration$LAYOUT", - "allDeclaredFields":true, - "allPublicFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.html.domain.FeaturesHtmlConfiguration$POSITION", - "allDeclaredFields":true, - "allPublicFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.html.domain.ImmutableFeaturesHtmlConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getBuildingBlock","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getFeatureTitleTemplate","parameterTypes":[] }, - {"name":"getGeometryProperties","parameterTypes":[] }, - {"name":"getLayout","parameterTypes":[] }, - {"name":"getMapClientType","parameterTypes":[] }, - {"name":"getMapPosition","parameterTypes":[] }, - {"name":"getMaximumPageSize","parameterTypes":[] }, - {"name":"getPropertyTooltips","parameterTypes":[] }, - {"name":"getPropertyTooltipsOnItems","parameterTypes":[] }, - {"name":"getRemoveZoomLevelConstraints","parameterTypes":[] }, - {"name":"getStyle","parameterTypes":[] }, - {"name":"getTransformations","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.features.html.domain.ImmutableFeaturesHtmlConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"featureTitleTemplate","parameterTypes":["java.util.Optional"] }, - {"name":"geometryProperties","parameterTypes":["java.lang.Iterable"] }, - {"name":"layout","parameterTypes":["de.ii.ogcapi.features.html.domain.FeaturesHtmlConfiguration$LAYOUT"] }, - {"name":"mapClientType","parameterTypes":["de.ii.ogcapi.html.domain.MapClient$Type"] }, - {"name":"mapPosition","parameterTypes":["de.ii.ogcapi.features.html.domain.FeaturesHtmlConfiguration$POSITION"] }, - {"name":"maximumPageSize","parameterTypes":["java.lang.Integer"] }, - {"name":"propertyTooltips","parameterTypes":["java.lang.Boolean"] }, - {"name":"propertyTooltipsOnItems","parameterTypes":["java.lang.Boolean"] }, - {"name":"removeZoomLevelConstraints","parameterTypes":["java.lang.Boolean"] }, - {"name":"style","parameterTypes":["java.lang.String"] }, - {"name":"transformations","parameterTypes":["java.util.Map"] } - ] -}, -{ - "name":"de.ii.ogcapi.features.jsonfg.domain.ImmutableJsonFgConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getBuildingBlock","parameterTypes":[] }, - {"name":"getCoordRefSys","parameterTypes":[] }, - {"name":"getDescribedby","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getFeatureType","parameterTypes":[] }, - {"name":"getGeojsonCompatibility","parameterTypes":[] }, - {"name":"getIncludeInGeoJson","parameterTypes":[] }, - {"name":"getLinks","parameterTypes":[] }, - {"name":"getSchemaCollection","parameterTypes":[] }, - {"name":"getSchemaFeature","parameterTypes":[] }, - {"name":"getTransformations","parameterTypes":[] }, - {"name":"getUseCuries","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.features.jsonfg.domain.ImmutableJsonFgConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"coordRefSys","parameterTypes":["java.lang.Boolean"] }, - {"name":"describedby","parameterTypes":["java.lang.Boolean"] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"featureType","parameterTypes":["java.lang.Iterable"] }, - {"name":"geojsonCompatibility","parameterTypes":["java.lang.Boolean"] }, - {"name":"transformations","parameterTypes":["java.util.Map"] }, - {"name":"includeInGeoJson","parameterTypes":["java.lang.Iterable"] }, - {"name":"links","parameterTypes":["java.lang.Iterable"] }, - {"name":"schemaCollection","parameterTypes":["java.lang.String"] }, - {"name":"schemaFeature","parameterTypes":["java.lang.String"] }, - {"name":"useCuries","parameterTypes":["java.lang.Boolean"] } - ] -}, -{ - "name":"de.ii.ogcapi.features.jsonfg.domain.JsonFgConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.jsonfg.domain.JsonFgConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.jsonfg.domain.JsonFgConfiguration$OPTION", - "allDeclaredFields":true, - "allPublicFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.features.search.domain.ImmutableSearchConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getAllLinksAreLocal","parameterTypes":[] }, - {"name":"getBuildingBlock","parameterTypes":[] }, - {"name":"getCaching","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getManagerEnabled","parameterTypes":[] }, - {"name":"getValidationEnabled","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.features.search.domain.ImmutableSearchConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"allLinksAreLocal","parameterTypes":["java.lang.Boolean"] }, - {"name":"managerEnabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"validationEnabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"caching","parameterTypes":["de.ii.ogcapi.foundation.domain.Caching"] } - ] -}, -{ - "name":"de.ii.ogcapi.features.search.domain.SearchConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.filter.domain.FilterConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.filter.domain.FilterConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.filter.domain.ImmutableFilterConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getBuildingBlock","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.filter.domain.ImmutableFilterConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] } - ] -}, -{ - "name":"de.ii.ogcapi.foundation.domain.ApiMetadata", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.foundation.domain.ApiSecurity", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.foundation.domain.ApiSecurity$Policies", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.foundation.domain.ApiSecurity$PolicyAttribute", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.foundation.domain.ApiSecurity$ScopeGranularity", - "allDeclaredFields":true, - "allPublicFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.foundation.domain.Caching", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.foundation.domain.CachingConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.foundation.domain.CollectionExtent", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.foundation.domain.ExtendableConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.foundation.domain.ExtensionConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.foundation.domain.ExtensionConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.foundation.domain.ExternalDocumentation", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.foundation.domain.FeatureTypeConfigurationOgcApi", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.foundation.domain.FeatureTypeConfigurationOgcApi$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.foundation.domain.FoundationConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.foundation.domain.FoundationConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.foundation.domain.ImmutableApiCatalogEntry$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true -}, -{ - "name":"de.ii.ogcapi.foundation.domain.ImmutableApiMetadata", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getAttribution","parameterTypes":[] }, - {"name":"getContactEmail","parameterTypes":[] }, - {"name":"getContactName","parameterTypes":[] }, - {"name":"getContactPhone","parameterTypes":[] }, - {"name":"getContactUrl","parameterTypes":[] }, - {"name":"getCreatorLogoUrl","parameterTypes":[] }, - {"name":"getCreatorName","parameterTypes":[] }, - {"name":"getCreatorUrl","parameterTypes":[] }, - {"name":"getKeywords","parameterTypes":[] }, - {"name":"getLicenseName","parameterTypes":[] }, - {"name":"getLicenseUrl","parameterTypes":[] }, - {"name":"getPublisherLogoUrl","parameterTypes":[] }, - {"name":"getPublisherName","parameterTypes":[] }, - {"name":"getPublisherUrl","parameterTypes":[] }, - {"name":"getVersion","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.foundation.domain.ImmutableApiMetadata$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"attribution","parameterTypes":["java.util.Optional"] }, - {"name":"contactEmail","parameterTypes":["java.util.Optional"] }, - {"name":"contactName","parameterTypes":["java.util.Optional"] }, - {"name":"contactPhone","parameterTypes":["java.util.Optional"] }, - {"name":"contactUrl","parameterTypes":["java.util.Optional"] }, - {"name":"creatorLogoUrl","parameterTypes":["java.util.Optional"] }, - {"name":"creatorName","parameterTypes":["java.util.Optional"] }, - {"name":"creatorUrl","parameterTypes":["java.util.Optional"] }, - {"name":"keywords","parameterTypes":["java.lang.Iterable"] }, - {"name":"licenseName","parameterTypes":["java.util.Optional"] }, - {"name":"licenseUrl","parameterTypes":["java.util.Optional"] }, - {"name":"publisherLogoUrl","parameterTypes":["java.util.Optional"] }, - {"name":"publisherName","parameterTypes":["java.util.Optional"] }, - {"name":"publisherUrl","parameterTypes":["java.util.Optional"] }, - {"name":"version","parameterTypes":["java.util.Optional"] } - ] -}, -{ - "name":"de.ii.ogcapi.foundation.domain.ImmutableApiSecurity", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getPublicScopes","parameterTypes":[] }, - {"name":"getGroups","parameterTypes":[] }, - {"name":"getScopes","parameterTypes":[] }, - {"name":"getAudience","parameterTypes":[] }, - {"name":"getPolicies","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.foundation.domain.ImmutableApiSecurity$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"enabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"publicScopes","parameterTypes":["java.lang.Iterable"] }, - {"name":"groups","parameterTypes":["java.util.Map"] }, - {"name":"scopes","parameterTypes":["java.lang.Iterable"] }, - {"name":"audience","parameterTypes":["java.lang.Iterable"] }, - {"name":"policies","parameterTypes":["java.util.Optional"] } - ] -}, - { - "name":"de.ii.ogcapi.foundation.domain.ImmutablePolicyAttribute", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getConstant","parameterTypes":[] }, - {"name":"getProperty","parameterTypes":[] }, - {"name":"getParameter","parameterTypes":[] } - ] - }, - { - "name":"de.ii.ogcapi.foundation.domain.ImmutablePolicyAttribute$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"constant","parameterTypes":["java.util.Optional"] }, - {"name":"property","parameterTypes":["java.util.Optional"] }, - {"name":"parameter","parameterTypes":["java.util.Optional"] } - ] - }, - { - "name":"de.ii.ogcapi.foundation.domain.ImmutablePolicies", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getAttributes","parameterTypes":[] }, - {"name":"getObligations","parameterTypes":[] } - ] - }, - { - "name":"de.ii.ogcapi.foundation.domain.ImmutablePolicies$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"enabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"attributes","parameterTypes":["java.util.Map"] }, - {"name":"obligations","parameterTypes":["java.util.Map"] } - ] - }, -{ - "name":"de.ii.ogcapi.foundation.domain.ImmutableCaching", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getLastModified","parameterTypes":[] }, - {"name":"getExpires","parameterTypes":[] }, - {"name":"getCacheControl","parameterTypes":[] }, - {"name":"getCacheControlItems","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.foundation.domain.ImmutableCaching$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"lastModified","parameterTypes":["java.util.Date"] }, - {"name":"expires","parameterTypes":["java.util.Date"] }, - {"name":"cacheControl","parameterTypes":["java.lang.String"] }, - {"name":"cacheControlItems","parameterTypes":["java.lang.String"] } - ] -}, -{ - "name":"de.ii.ogcapi.foundation.domain.ImmutableCollectionExtent", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getSpatial","parameterTypes":[] }, - {"name":"getSpatialComputed","parameterTypes":[] }, - {"name":"getTemporal","parameterTypes":[] }, - {"name":"getTemporalComputed","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.foundation.domain.ImmutableCollectionExtent$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"spatialBuilder","parameterTypes":[] }, - {"name":"spatialComputed","parameterTypes":["java.util.Optional"] }, - {"name":"temporalBuilder","parameterTypes":[] }, - {"name":"temporalComputed","parameterTypes":["java.util.Optional"] } - ] -}, -{ - "name":"de.ii.ogcapi.foundation.domain.ImmutableExternalDocumentation", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getDescription","parameterTypes":[] }, - {"name":"getUrl","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.foundation.domain.ImmutableExternalDocumentation$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"description","parameterTypes":["java.util.Optional"] }, - {"name":"url","parameterTypes":["java.lang.String"] } - ] -}, -{ - "name":"de.ii.ogcapi.foundation.domain.ImmutableFeatureTypeConfigurationOgcApi", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getAdditionalLinks","parameterTypes":[] }, - {"name":"getDescription","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getExtensions","parameterTypes":[] }, - {"name":"getExtent","parameterTypes":[] }, - {"name":"getId","parameterTypes":[] }, - {"name":"getLabel","parameterTypes":[] }, - {"name":"getPersistentUriTemplate","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.foundation.domain.ImmutableFeatureTypeConfigurationOgcApi$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"addAllExtensions","parameterTypes":["java.lang.Iterable"] }, - {"name":"additionalLinks","parameterTypes":["java.lang.Iterable"] }, - {"name":"description","parameterTypes":["java.util.Optional"] }, - {"name":"enabled","parameterTypes":["boolean"] }, - {"name":"extentBuilder","parameterTypes":[] }, - {"name":"id","parameterTypes":["java.lang.String"] }, - {"name":"label","parameterTypes":["java.lang.String"] }, - {"name":"persistentUriTemplate","parameterTypes":["java.util.Optional"] } - ] -}, -{ - "name":"de.ii.ogcapi.foundation.domain.ImmutableFoundationConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getApiCatalogDescription","parameterTypes":[] }, - {"name":"getApiCatalogLabel","parameterTypes":[] }, - {"name":"getBuildingBlock","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getGoogleSiteVerification","parameterTypes":[] }, - {"name":"getIncludeLinkHeader","parameterTypes":[] }, - {"name":"getIncludeSpecificationInformation","parameterTypes":[] }, - {"name":"getUseLangParameter","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.foundation.domain.ImmutableFoundationConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"apiCatalogDescription","parameterTypes":["java.lang.String"] }, - {"name":"apiCatalogLabel","parameterTypes":["java.lang.String"] }, - {"name":"build","parameterTypes":[] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"googleSiteVerification","parameterTypes":["java.lang.String"] }, - {"name":"includeLinkHeader","parameterTypes":["java.lang.Boolean"] }, - {"name":"includeSpecificationInformation","parameterTypes":["java.lang.Boolean"] }, - {"name":"useLangParameter","parameterTypes":["java.lang.Boolean"] } - ] -}, -{ - "name":"de.ii.ogcapi.foundation.domain.ImmutableLink", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getAnchor","parameterTypes":[] }, - {"name":"getHref","parameterTypes":[] }, - {"name":"getHreflang","parameterTypes":[] }, - {"name":"getLength","parameterTypes":[] }, - {"name":"getRel","parameterTypes":[] }, - {"name":"getTemplated","parameterTypes":[] }, - {"name":"getTitle","parameterTypes":[] }, - {"name":"getType","parameterTypes":[] }, - {"name":"getVarBase","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.foundation.domain.ImmutableLink$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"anchor","parameterTypes":["java.lang.String"] }, - {"name":"href","parameterTypes":["java.lang.String"] }, - {"name":"hreflang","parameterTypes":["java.lang.String"] }, - {"name":"rel","parameterTypes":["java.lang.String"] }, - {"name":"title","parameterTypes":["java.lang.String"] }, - {"name":"type","parameterTypes":["java.lang.String"] }, - {"name":"length","parameterTypes":["java.lang.Integer"] }, - {"name":"templated","parameterTypes":["java.lang.Boolean"] }, - {"name":"varBase","parameterTypes":["java.lang.String"] }, - {"name":"build","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.foundation.domain.ImmutableOgcApiDataV2", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getAccessControl","parameterTypes":[] }, - {"name":"getApiValidation","parameterTypes":[] }, - {"name":"getApiVersion","parameterTypes":[] }, - {"name":"getCollections","parameterTypes":[] }, - {"name":"getCreatedAt","parameterTypes":[] }, - {"name":"getDefaultCaching","parameterTypes":[] }, - {"name":"getDefaultExtent","parameterTypes":[] }, - {"name":"getDescription","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getEntityStorageVersion","parameterTypes":[] }, - {"name":"getExtensions","parameterTypes":[] }, - {"name":"getExternalDocs","parameterTypes":[] }, - {"name":"getId","parameterTypes":[] }, - {"name":"getLabel","parameterTypes":[] }, - {"name":"getLastModified","parameterTypes":[] }, - {"name":"getMetadata","parameterTypes":[] }, - {"name":"getServiceType","parameterTypes":[] }, - {"name":"getTags","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.foundation.domain.ImmutableOgcApiDataV2$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"accessControlBuilder","parameterTypes":[] }, - {"name":"addAllExtensions","parameterTypes":["java.lang.Iterable"] }, - {"name":"apiValidation","parameterTypes":["de.ii.xtraplatform.entities.domain.ValidationResult$MODE"] }, - {"name":"apiVersion","parameterTypes":["java.util.Optional"] }, - {"name":"auto","parameterTypes":["java.util.Optional"] }, - {"name":"createdAt","parameterTypes":["long"] }, - {"name":"defaultCachingBuilder","parameterTypes":[] }, - {"name":"defaultExtentBuilder","parameterTypes":["de.ii.ogcapi.foundation.domain.ImmutableCollectionExtent$Builder"] }, - {"name":"description","parameterTypes":["java.util.Optional"] }, - {"name":"enabled","parameterTypes":["boolean"] }, - {"name":"entityStorageVersion","parameterTypes":["long"] }, - {"name":"externalDocsBuilder","parameterTypes":[] }, - {"name":"getCollections","parameterTypes":[] }, - {"name":"id","parameterTypes":["java.lang.String"] }, - {"name":"label","parameterTypes":["java.lang.String"] }, - {"name":"lastModified","parameterTypes":["long"] }, - {"name":"metadataBuilder","parameterTypes":[] }, - {"name":"serviceType","parameterTypes":["java.lang.String"] }, - {"name":"tags","parameterTypes":["java.lang.Iterable"] } - ] -}, -{ - "name":"de.ii.ogcapi.foundation.domain.ImmutableTemporalExtent", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getEnd","parameterTypes":[] }, - {"name":"getStart","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.foundation.domain.ImmutableTemporalExtent$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"end","parameterTypes":["java.lang.Long"] }, - {"name":"start","parameterTypes":["java.lang.Long"] } - ] -}, -{ - "name":"de.ii.ogcapi.foundation.domain.Link", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.foundation.domain.OgcApiDataV2", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.foundation.domain.OgcApiDataV2$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.foundation.domain.TemporalExtent", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.geometry.simplification.app.GeometrySimplificationConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.geometry.simplification.app.GeometrySimplificationConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.geometry.simplification.app.ImmutableGeometrySimplificationConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getBuildingBlock","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.geometry.simplification.app.ImmutableGeometrySimplificationConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] } - ] -}, -{ - "name":"de.ii.ogcapi.html.domain.HtmlConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.html.domain.HtmlConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.html.domain.ImmutableHtmlConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getAdditionalApis","parameterTypes":[] }, - {"name":"getBasemapAttribution","parameterTypes":[] }, - {"name":"getBasemapUrl","parameterTypes":[] }, - {"name":"getBuildingBlock","parameterTypes":[] }, - {"name":"getCollectionDescriptionsInOverview","parameterTypes":[] }, - {"name":"getDefaultStyle","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getFooterText","parameterTypes":[] }, - {"name":"getLeafletAttribution","parameterTypes":[] }, - {"name":"getLeafletUrl","parameterTypes":[] }, - {"name":"getLegalName","parameterTypes":[] }, - {"name":"getLegalUrl","parameterTypes":[] }, - {"name":"getNoIndexEnabled","parameterTypes":[] }, - {"name":"getOpenLayersAttribution","parameterTypes":[] }, - {"name":"getOpenLayersUrl","parameterTypes":[] }, - {"name":"getPrivacyName","parameterTypes":[] }, - {"name":"getPrivacyUrl","parameterTypes":[] }, - {"name":"getSchemaOrgEnabled","parameterTypes":[] }, - {"name":"getSendEtags","parameterTypes":[] }, - {"name":"getSuppressEmptyCollectionsInOverview","parameterTypes":[] }, - {"name":"getLoginProvider","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.html.domain.ImmutableHtmlConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"basemapAttribution","parameterTypes":["java.lang.String"] }, - {"name":"basemapUrl","parameterTypes":["java.lang.String"] }, - {"name":"build","parameterTypes":[] }, - {"name":"collectionDescriptionsInOverview","parameterTypes":["java.lang.Boolean"] }, - {"name":"defaultStyle","parameterTypes":["java.lang.String"] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"footerText","parameterTypes":["java.lang.String"] }, - {"name":"leafletAttribution","parameterTypes":["java.lang.String"] }, - {"name":"leafletUrl","parameterTypes":["java.lang.String"] }, - {"name":"legalName","parameterTypes":["java.lang.String"] }, - {"name":"legalUrl","parameterTypes":["java.lang.String"] }, - {"name":"noIndexEnabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"openLayersAttribution","parameterTypes":["java.lang.String"] }, - {"name":"openLayersUrl","parameterTypes":["java.lang.String"] }, - {"name":"privacyName","parameterTypes":["java.lang.String"] }, - {"name":"privacyUrl","parameterTypes":["java.lang.String"] }, - {"name":"schemaOrgEnabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"sendEtags","parameterTypes":["java.lang.Boolean"] }, - {"name":"suppressEmptyCollectionsInOverview","parameterTypes":["java.lang.Boolean"] }, - {"name":"loginProvider","parameterTypes":["java.lang.String"] } - ] -}, -{ - "name":"de.ii.ogcapi.html.domain.MapClient$Type", - "allDeclaredFields":true, - "allPublicFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.json.domain.ImmutableJsonConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getBuildingBlock","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.json.domain.ImmutableJsonConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] } - ] -}, -{ - "name":"de.ii.ogcapi.json.domain.JsonConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.json.domain.JsonConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.oas30.domain.ImmutableOas30Configuration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getBuildingBlock","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.oas30.domain.ImmutableOas30Configuration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] } - ] -}, -{ - "name":"de.ii.ogcapi.oas30.domain.Oas30Configuration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.oas30.domain.Oas30Configuration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.projections.app.ImmutableProjectionsConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getBuildingBlock","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.projections.app.ImmutableProjectionsConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] } - ] -}, -{ - "name":"de.ii.ogcapi.projections.app.ProjectionsConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.projections.app.ProjectionsConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.resources.domain.ImmutableResourcesConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getBuildingBlock","parameterTypes":[] }, - {"name":"getCaching","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getManagerEnabled","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.resources.domain.ImmutableResourcesConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"managerEnabled","parameterTypes":["java.lang.Boolean"] } - ] -}, -{ - "name":"de.ii.ogcapi.resources.domain.ResourcesConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.resources.domain.ResourcesConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.routes.domain.RoutingFlag", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.routes.domain.ImmutableRoutingFlag", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getLabel","parameterTypes":[] }, - {"name":"getDefault","parameterTypes":[] }, - {"name":"getProviderFlag","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.routes.domain.ImmutableRoutingFlag$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"label","parameterTypes":["java.lang.String"] }, - {"name":"getDefault","parameterTypes":["boolean"] }, - {"name":"providerFlag","parameterTypes":["java.util.Optional"] } - ] -}, -{ - "name":"de.ii.ogcapi.routes.domain.HtmlForm", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.routes.domain.ImmutableHtmlForm", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getDefaults","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.routes.domain.ImmutableHtmlForm$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"defaults","parameterTypes":["java.util.Optional"] } - ] -}, -{ - "name":"de.ii.ogcapi.routes.domain.HtmlFormDefaults", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.routes.domain.ImmutableHtmlFormDefaults", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getName","parameterTypes":[] }, - {"name":"getStart","parameterTypes":[] }, - {"name":"getEnd","parameterTypes":[] }, - {"name":"getCenter","parameterTypes":[] }, - {"name":"getCenterLevel","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.routes.domain.ImmutableHtmlFormDefaults$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"name","parameterTypes":["java.util.Optional"] }, - {"name":"start","parameterTypes":["java.lang.Iterable"] }, - {"name":"end","parameterTypes":["java.lang.Iterable"] }, - {"name":"center","parameterTypes":["java.lang.Iterable"] }, - {"name":"centerLevel","parameterTypes":["java.lang.Integer"] } - ] -}, -{ - "name":"de.ii.ogcapi.routes.domain.ImmutableRoutingConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getAdditionalFlags","parameterTypes":[] }, - {"name":"getBuildingBlock","parameterTypes":[] }, - {"name":"getCaching","parameterTypes":[] }, - {"name":"getCoordinatePrecision","parameterTypes":[] }, - {"name":"getDefaultCrs","parameterTypes":[] }, - {"name":"getDefaultMode","parameterTypes":[] }, - {"name":"getDefaultPreference","parameterTypes":[] }, - {"name":"getElevationProfileSimplificationTolerance","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getFeatureType","parameterTypes":[] }, - {"name":"getHeightRestrictions","parameterTypes":[] }, - {"name":"getHtml","parameterTypes":[] }, - {"name":"getIntermediateWaypoints","parameterTypes":[] }, - {"name":"getManageRoutes","parameterTypes":[] }, - {"name":"getObstacles","parameterTypes":[] }, - {"name":"getSpeedLimitUnit","parameterTypes":[] }, - {"name":"getWeightRestrictions","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.routes.domain.ImmutableRoutingConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"additionalFlags","parameterTypes":["java.util.Map"] }, - {"name":"caching","parameterTypes":["de.ii.ogcapi.foundation.domain.Caching"] }, - {"name":"coordinatePrecision","parameterTypes":["java.util.Map"] }, - {"name":"defaultCrs","parameterTypes":["de.ii.ogcapi.features.core.domain.FeaturesCoreConfiguration$DefaultCrs"] }, - {"name":"defaultMode","parameterTypes":["java.lang.String"] }, - {"name":"defaultPreference","parameterTypes":["java.lang.String"] }, - {"name":"elevationProfileSimplificationTolerance","parameterTypes":["java.lang.Double"] }, - {"name":"featureType","parameterTypes":["java.lang.String"] }, - {"name":"heightRestrictions","parameterTypes":["java.lang.Boolean"] }, - {"name":"html","parameterTypes":["de.ii.ogcapi.routes.domain.HtmlForm"] }, - {"name":"intermediateWaypoints","parameterTypes":["java.lang.Boolean"] }, - {"name":"manageRoutes","parameterTypes":["java.lang.Boolean"] }, - {"name":"obstacles","parameterTypes":["java.lang.Boolean"] }, - {"name":"speedLimitUnit","parameterTypes":["java.lang.String"] }, - {"name":"weightRestrictions","parameterTypes":["java.lang.Boolean"] } - ] -}, -{ - "name":"de.ii.ogcapi.routes.domain.RoutingConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.sorting.domain.ImmutableSortingConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getBuildingBlock","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getExcluded","parameterTypes":[] }, - {"name":"getIncluded","parameterTypes":[] }, - {"name":"getPathSeparator","parameterTypes":[] }, - {"name":"getSortables","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.sorting.domain.ImmutableSortingConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"included","parameterTypes":["java.lang.Iterable"] }, - {"name":"pathSeparator","parameterTypes":["de.ii.ogcapi.collections.queryables.domain.QueryablesConfiguration$PathSeparator"] }, - {"name":"sortables","parameterTypes":["java.lang.Iterable"] } - ] -}, -{ - "name":"de.ii.ogcapi.sorting.domain.SortingConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.sorting.domain.SortingConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.styles.domain.ImmutableStylesConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getBuildingBlock","parameterTypes":[] }, - {"name":"getCaching","parameterTypes":[] }, - {"name":"getDefaultStyle","parameterTypes":[] }, - {"name":"getDeriveCollectionStyles","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getLayerControlAllLayers","parameterTypes":[] }, - {"name":"getManagerEnabled","parameterTypes":[] }, - {"name":"getResourceManagerEnabled","parameterTypes":[] }, - {"name":"getResourcesEnabled","parameterTypes":[] }, - {"name":"getStyleEncodings","parameterTypes":[] }, - {"name":"getUseIdFromStylesheet","parameterTypes":[] }, - {"name":"getValidationEnabled","parameterTypes":[] }, - {"name":"getWebmapWithLayerControl","parameterTypes":[] }, - {"name":"getWebmapWithPopup","parameterTypes":[] }, - {"name":"getLegendEnabled","parameterTypes":[] }, - {"name":"getAddBoundsToVectorSource","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.styles.domain.ImmutableStylesConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"defaultStyle","parameterTypes":["java.lang.String"] }, - {"name":"deriveCollectionStyles","parameterTypes":["java.lang.Boolean"] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"layerControlAllLayers","parameterTypes":["java.lang.Boolean"] }, - {"name":"managerEnabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"resourceManagerEnabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"resourcesEnabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"styleEncodings","parameterTypes":["java.lang.Iterable"] }, - {"name":"useIdFromStylesheet","parameterTypes":["java.lang.Boolean"] }, - {"name":"validationEnabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"webmapWithLayerControl","parameterTypes":["java.lang.Boolean"] }, - {"name":"webmapWithPopup","parameterTypes":["java.lang.Boolean"] }, - {"name":"legendEnabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"addBoundsToVectorSource","parameterTypes":["java.lang.Boolean"] } - ] -}, -{ - "name":"de.ii.ogcapi.styles.domain.StylesConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.styles.domain.StylesConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.text.search.domain.ImmutableTextSearchConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getBuildingBlock","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getProperties","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.text.search.domain.ImmutableTextSearchConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"properties","parameterTypes":["java.lang.Iterable"] } - ] -}, -{ - "name":"de.ii.ogcapi.tilematrixsets.domain.ImmutableTileMatrixSetsConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getBuildingBlock","parameterTypes":[] }, - {"name":"getCaching","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getIncludePredefined","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.tilematrixsets.domain.TileMatrixSetsConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.tilematrixsets.domain.ImmutableTileMatrixSetsConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"includePredefined","parameterTypes":["java.lang.Iterable"] }, - {"name":"caching","parameterTypes":["de.ii.ogcapi.foundation.domain.Caching"] } - ] -}, -{ - "name":"de.ii.ogcapi.tiles.domain.ImmutableTileProviderFeatures", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getCenter","parameterTypes":[] }, - {"name":"getFilters","parameterTypes":[] }, - {"name":"getIgnoreInvalidGeometries","parameterTypes":[] }, - {"name":"getLimit","parameterTypes":[] }, - {"name":"getMinimumSizeInPixel","parameterTypes":[] }, - {"name":"getMultiCollectionEnabled","parameterTypes":[] }, - {"name":"getRules","parameterTypes":[] }, - {"name":"getSeeding","parameterTypes":[] }, - {"name":"getSeedingOptions","parameterTypes":[] }, - {"name":"getSingleCollectionEnabled","parameterTypes":[] }, - {"name":"getTileEncodings","parameterTypes":[] }, - {"name":"getType","parameterTypes":[] }, - {"name":"getZoomLevels","parameterTypes":[] }, - {"name":"getZoomLevelsCache","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.tiles.domain.ImmutableTileProviderFeatures$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"center","parameterTypes":["java.lang.Iterable"] }, - {"name":"filters","parameterTypes":["java.util.Map"] }, - {"name":"ignoreInvalidGeometries","parameterTypes":["java.lang.Boolean"] }, - {"name":"limit","parameterTypes":["java.lang.Integer"] }, - {"name":"minimumSizeInPixel","parameterTypes":["java.lang.Double"] }, - {"name":"multiCollectionEnabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"rules","parameterTypes":["java.util.Map"] }, - {"name":"seeding","parameterTypes":["java.util.Map"] }, - {"name":"seedingOptions","parameterTypes":["java.util.Optional"] }, - {"name":"singleCollectionEnabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"tileEncodings","parameterTypes":["java.lang.Iterable"] }, - {"name":"zoomLevels","parameterTypes":["java.util.Map"] }, - {"name":"zoomLevelsCache","parameterTypes":["java.util.Map"] } - ] -}, -{ - "name":"de.ii.ogcapi.tiles.domain.ImmutableTileProviderMbtiles", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getFilename","parameterTypes":[] }, - {"name":"getTileMatrixSetId","parameterTypes":[] }, - {"name":"getType","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.tiles.domain.ImmutableTileProviderMbtiles$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"filename","parameterTypes":["java.lang.String"] }, - {"name":"tileMatrixSetId","parameterTypes":["java.lang.String"] } - ] -}, -{ - "name":"de.ii.ogcapi.tiles.domain.ImmutableTileProviderTileServer", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getUrlTemplate","parameterTypes":[] }, - {"name":"getUrlTemplateSingleCollection","parameterTypes":[] }, - {"name":"getTileEncodings","parameterTypes":[] }, - {"name":"getType","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.tiles.domain.ImmutableTileProviderTileServer$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"urlTemplate","parameterTypes":["java.lang.String"] }, - {"name":"urlTemplateSingleCollection","parameterTypes":["java.lang.String"] }, - {"name":"tileEncodings","parameterTypes":["java.lang.Iterable"] } - ] -}, -{ - "name":"de.ii.ogcapi.tiles.domain.ImmutableTilesConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getBuildingBlock","parameterTypes":[] }, - {"name":"getCache","parameterTypes":[] }, - {"name":"getCaching","parameterTypes":[] }, - {"name":"getCenter","parameterTypes":[] }, - {"name":"getCollectionTiles","parameterTypes":[] }, - {"name":"getDatasetTiles","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getFilters","parameterTypes":[] }, - {"name":"getIgnoreInvalidGeometries","parameterTypes":[] }, - {"name":"getLimit","parameterTypes":[] }, - {"name":"getMapClientType","parameterTypes":[] }, - {"name":"getMaxMultiplicity","parameterTypes":[] }, - {"name":"getMinimumSizeInPixel","parameterTypes":[] }, - {"name":"getRemoveZoomLevelConstraints","parameterTypes":[] }, - {"name":"getRules","parameterTypes":[] }, - {"name":"getSeeding","parameterTypes":[] }, - {"name":"getSeedingOptions","parameterTypes":[] }, - {"name":"getStyle","parameterTypes":[] }, - {"name":"getTileEncodings","parameterTypes":[] }, - {"name":"getTileProvider","parameterTypes":[] }, - {"name":"getTileProviderTileset","parameterTypes":[] }, - {"name":"getTileSetEncodings","parameterTypes":[] }, - {"name":"getTransformations","parameterTypes":[] }, - {"name":"getZoomLevels","parameterTypes":[] }, - {"name":"getZoomLevelsCache","parameterTypes":[] }, - {"name":"getWmts","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.tiles.domain.ImmutableTilesConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"cache","parameterTypes":["de.ii.ogcapi.tiles.domain.TilesConfiguration$TileCacheType"] }, - {"name":"center","parameterTypes":["java.lang.Iterable"] }, - {"name":"collectionTiles","parameterTypes":["java.lang.Boolean"] }, - {"name":"datasetTiles","parameterTypes":["java.lang.Boolean"] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"filters","parameterTypes":["java.util.Map"] }, - {"name":"ignoreInvalidGeometries","parameterTypes":["java.lang.Boolean"] }, - {"name":"limit","parameterTypes":["java.lang.Integer"] }, - {"name":"mapClientType","parameterTypes":["de.ii.ogcapi.html.domain.MapClient$Type"] }, - {"name":"minimumSizeInPixel","parameterTypes":["java.lang.Double"] }, - {"name":"removeZoomLevelConstraints","parameterTypes":["java.lang.Boolean"] }, - {"name":"rules","parameterTypes":["java.util.Map"] }, - {"name":"seeding","parameterTypes":["java.util.Map"] }, - {"name":"seedingOptions","parameterTypes":["java.util.Optional"] }, - {"name":"style","parameterTypes":["java.lang.String"] }, - {"name":"tileEncodings","parameterTypes":["java.lang.Iterable"] }, - {"name":"tileProvider","parameterTypes":["java.lang.String"] }, - {"name":"tileProviderTileset","parameterTypes":["java.lang.String"] }, - {"name":"tileSetEncodings","parameterTypes":["java.lang.Iterable"] }, - {"name":"transformations","parameterTypes":["java.util.Map"] }, - {"name":"zoomLevels","parameterTypes":["java.util.Map"] }, - {"name":"zoomLevelsCache","parameterTypes":["java.util.Map"] }, - {"name":"wmts","parameterTypes":["de.ii.ogcapi.tiles.domain.TilesConfiguration$WmtsScope"] } - ] -}, -{ - "name":"de.ii.ogcapi.tiles.domain.TilesConfiguration$WmtsScope", - "allDeclaredFields":true, - "allPublicFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.tiles.domain.TileProvider", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true -}, -{ - "name":"de.ii.ogcapi.tiles.domain.TileProviderFeatures", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.tiles.domain.TileProviderMbtiles", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.tiles.domain.TilesConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.tiles.domain.TilesConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.tiles.domain.TilesConfiguration$TileCacheType", - "allDeclaredFields":true, - "allPublicFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.tiles3d.domain.ImmutableTiles3dConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getBuildingBlock","parameterTypes":[] }, - {"name":"getClampToEllipsoid","parameterTypes":[] }, - {"name":"getContentFilters","parameterTypes":[] }, - {"name":"getCustomTerrainProviderUri","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getFirstLevelWithContent","parameterTypes":[] }, - {"name":"getGeometricErrorRoot","parameterTypes":[] }, - {"name":"getIonAccessToken","parameterTypes":[] }, - {"name":"getMaptilerApiKey","parameterTypes":[] }, - {"name":"getMaxLevel","parameterTypes":[] }, - {"name":"getSeeding","parameterTypes":[] }, - {"name":"getStyle","parameterTypes":[] }, - {"name":"getSubtreeLevels","parameterTypes":[] }, - {"name":"getTerrainHeightDifference","parameterTypes":[] }, - {"name":"getTileFilters","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.tiles3d.domain.ImmutableTiles3dConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"clampToEllipsoid","parameterTypes":["java.lang.Boolean"] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"firstLevelWithContent","parameterTypes":["java.lang.Integer"] }, - {"name":"geometricErrorRoot","parameterTypes":["java.lang.Float"] }, - {"name":"maxLevel","parameterTypes":["java.lang.Integer"] }, - {"name":"seedingBuilder","parameterTypes":[] }, - {"name":"subtreeLevels","parameterTypes":["java.lang.Integer"] } - ] -}, -{ - "name":"de.ii.ogcapi.tiles3d.domain.Tiles3dConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.tiles3d.domain.Tiles3dConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.xml.domain.ImmutableXmlConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getBuildingBlock","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.xml.domain.ImmutableXmlConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] } - ] -}, -{ - "name":"de.ii.ogcapi.xml.domain.XmlConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.xml.domain.XmlConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.auth.app.ImmutableUserData", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getCreatedAt","parameterTypes":[] }, - {"name":"getEntityStorageVersion","parameterTypes":[] }, - {"name":"getId","parameterTypes":[] }, - {"name":"getLastModified","parameterTypes":[] }, - {"name":"getPassword","parameterTypes":[] }, - {"name":"getPasswordExpiresAt","parameterTypes":[] }, - {"name":"getRole","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.auth.app.ImmutableUserData$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"createdAt","parameterTypes":["long"] }, - {"name":"entityStorageVersion","parameterTypes":["long"] }, - {"name":"id","parameterTypes":["java.lang.String"] }, - {"name":"lastModified","parameterTypes":["long"] }, - {"name":"password","parameterTypes":["java.lang.String"] }, - {"name":"role","parameterTypes":["de.ii.xtraplatform.auth.domain.Role"] } - ] -}, -{ - "name":"de.ii.xtraplatform.auth.app.User$UserData", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.auth.app.User$UserData$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.auth.domain.Role", - "allDeclaredFields":true, - "allPublicFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.codelists.domain.Codelist", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.codelists.domain.Codelist$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.codelists.domain.Codelist$ImportType", - "allDeclaredFields":true, - "allPublicFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.codelists.domain.ImmutableCodelist", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getEntries","parameterTypes":[] }, - {"name":"getFallback","parameterTypes":[] }, - {"name":"getLabel","parameterTypes":[] }, - {"name":"getSourceType","parameterTypes":[] }, - {"name":"getSourceUrl","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.codelists.domain.ImmutableCodelist$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"entries","parameterTypes":["java.util.Map"] }, - {"name":"fallback","parameterTypes":["java.util.Optional"] }, - {"name":"label","parameterTypes":["java.util.Optional"] }, - {"name":"sourceType","parameterTypes":["de.ii.xtraplatform.codelists.domain.Codelist$ImportType"] }, - {"name":"sourceUrl","parameterTypes":["java.util.Optional"] } - ] -}, -{ - "name":"de.ii.ogcapi.styles.domain.MbStyleStylesheet", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.ogcapi.styles.domain.ImmutableMbStyleStylesheet", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getVersion","parameterTypes":[] }, - {"name":"getName","parameterTypes":[] }, - {"name":"getMetadata","parameterTypes":[] }, - {"name":"getCenter","parameterTypes":[] }, - {"name":"getZoom","parameterTypes":[] }, - {"name":"getBearing","parameterTypes":[] }, - {"name":"getPitch","parameterTypes":[] }, - {"name":"getLight","parameterTypes":[] }, - {"name":"getSources","parameterTypes":[] }, - {"name":"getSprite","parameterTypes":[] }, - {"name":"getGlyphs","parameterTypes":[] }, - {"name":"getTransition","parameterTypes":[] }, - {"name":"getLayers","parameterTypes":[] }, - {"name":"getTerrain","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.styles.domain.MbStyleVectorSource", - "queryAllDeclaredMethods":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getType","parameterTypes":[] }, - {"name":"getUrl","parameterTypes":[] }, - {"name":"getTiles","parameterTypes":[] }, - {"name":"getBounds","parameterTypes":[] }, - {"name":"getScheme","parameterTypes":[] }, - {"name":"getMinzoom","parameterTypes":[] }, - {"name":"getMaxzoom","parameterTypes":[] }, - {"name":"getAttribution","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.styles.domain.ImmutableMbStyleVectorSource", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getType","parameterTypes":[] }, - {"name":"getUrl","parameterTypes":[] }, - {"name":"getTiles","parameterTypes":[] }, - {"name":"getBounds","parameterTypes":[] }, - {"name":"getScheme","parameterTypes":[] }, - {"name":"getMinzoom","parameterTypes":[] }, - {"name":"getMaxzoom","parameterTypes":[] }, - {"name":"getAttribution","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.styles.domain.MbStyleLayer", - "queryAllDeclaredMethods":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getId","parameterTypes":[] }, - {"name":"getType","parameterTypes":[] }, - {"name":"getMetadata","parameterTypes":[] }, - {"name":"getSource","parameterTypes":[] }, - {"name":"getSourceLayer","parameterTypes":[] }, - {"name":"getMinzoom","parameterTypes":[] }, - {"name":"getMaxzoom","parameterTypes":[] }, - {"name":"getFilter","parameterTypes":[] }, - {"name":"getLayout","parameterTypes":[] }, - {"name":"getPaint","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.ogcapi.styles.domain.ImmutableMbStyleLayer", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getId","parameterTypes":[] }, - {"name":"getType","parameterTypes":[] }, - {"name":"getMetadata","parameterTypes":[] }, - {"name":"getSource","parameterTypes":[] }, - {"name":"getSourceLayer","parameterTypes":[] }, - {"name":"getMinzoom","parameterTypes":[] }, - {"name":"getMaxzoom","parameterTypes":[] }, - {"name":"getFilter","parameterTypes":[] }, - {"name":"getLayout","parameterTypes":[] }, - {"name":"getPaint","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.crs.domain.BoundingBox", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.crs.domain.EpsgCrs", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.crs.domain.EpsgCrs$Force", - "allDeclaredFields":true, - "allPublicFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.crs.domain.ImmutableBoundingBox", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getEpsgCrs","parameterTypes":[] }, - {"name":"getXmax","parameterTypes":[] }, - {"name":"getXmin","parameterTypes":[] }, - {"name":"getYmax","parameterTypes":[] }, - {"name":"getYmin","parameterTypes":[] }, - {"name":"getZmax","parameterTypes":[] }, - {"name":"getZmin","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.crs.domain.ImmutableBoundingBox$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"epsgCrs","parameterTypes":["de.ii.xtraplatform.crs.domain.EpsgCrs"] }, - {"name":"xmax","parameterTypes":["double"] }, - {"name":"xmin","parameterTypes":["double"] }, - {"name":"ymax","parameterTypes":["double"] }, - {"name":"ymin","parameterTypes":["double"] } - ] -}, -{ - "name":"de.ii.xtraplatform.crs.domain.ImmutableEpsgCrs", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getCode","parameterTypes":[] }, - {"name":"getForceAxisOrder","parameterTypes":[] }, - {"name":"getVerticalCode","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.crs.domain.ImmutableEpsgCrs$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"code","parameterTypes":["int"] }, - {"name":"verticalCode","parameterTypes":["java.util.OptionalInt"] }, - {"name":"forceAxisOrder","parameterTypes":["de.ii.xtraplatform.crs.domain.EpsgCrs$Force"] }, - {"name":"forceLongitudeFirst","parameterTypes":["boolean"] } - ] -}, -{ - "name":"de.ii.xtraplatform.features.domain.ConnectionInfo", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.features.domain.ExtendableConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.feature.changes.sql.domain.FeatureChangesPgConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.feature.changes.sql.domain.ImmutableFeatureChangesPgConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getType","parameterTypes":[] }, - {"name":"getListenForTypes","parameterTypes":[] }, - {"name":"getPollingInterval","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.feature.changes.sql.domain.ImmutableFeatureChangesPgConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"listenForTypes","parameterTypes":["java.lang.Iterable"] }, - {"name":"pollingInterval","parameterTypes":["shadow.io.dropwizard.util.Duration"] } - ] -}, -{ - "name":"de.ii.xtraplatform.schemas.ext.domain.JsonSchemaConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.schemas.ext.domain.ImmutableJsonSchemaConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getType","parameterTypes":[] }, - {"name":"getObjectTypeRefs","parameterTypes":[] }, - {"name":"getGeometryTypeRefs","parameterTypes":[] }, - {"name":"getRelationRefs","parameterTypes":[] }, - {"name":"getCompositionIndexes","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.schemas.ext.domain.ImmutableJsonSchemaConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"objectTypeRefs","parameterTypes":["java.util.Map"] }, - {"name":"geometryTypeRefs","parameterTypes":["java.util.Map"] }, - {"name":"relationRefs","parameterTypes":["java.util.Map"] }, - {"name":"compositionIndexes","parameterTypes":["java.util.Map"] } - ] -}, -{ - "name":"de.ii.xtraplatform.routes.sql.domain.RoutesConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.routes.sql.domain.ImmutableRoutesConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getType","parameterTypes":[] }, - {"name":"getFromToQuery","parameterTypes":[] }, - {"name":"getEdgesQuery","parameterTypes":[] }, - {"name":"getRouteQuery","parameterTypes":[] }, - {"name":"getFlags","parameterTypes":[] }, - {"name":"getNativeCrs","parameterTypes":[] }, - {"name":"getModes","parameterTypes":[] }, - {"name":"getWeightDefault","parameterTypes":[] }, - {"name":"getHeightDefault","parameterTypes":[] }, - {"name":"getObstaclesDefault","parameterTypes":[] }, - {"name":"getWarmup","parameterTypes":[] }, - {"name":"getPreferences","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.routes.sql.domain.ImmutableRoutesConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"fromToQuery","parameterTypes":["java.util.Map"] }, - {"name":"edgesQuery","parameterTypes":["java.util.Map"] }, - {"name":"routeQuery","parameterTypes":["java.lang.String"] }, - {"name":"flags","parameterTypes":["java.util.Map"] }, - {"name":"nativeCrs","parameterTypes":["de.ii.xtraplatform.crs.domain.EpsgCrs"] }, - {"name":"modes","parameterTypes":["java.util.Map"] }, - {"name":"weightDefault","parameterTypes":["java.lang.String"] }, - {"name":"heightDefault","parameterTypes":["java.lang.String"] }, - {"name":"obstaclesDefault","parameterTypes":["java.lang.String"] }, - {"name":"warmup","parameterTypes":["java.lang.Boolean"] }, - {"name":"preferences","parameterTypes":["java.util.Map"] } - ] -}, -{ - "name":"de.ii.xtraplatform.routes.sql.domain.Preference", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.routes.sql.domain.ImmutablePreference", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getLabel","parameterTypes":[] }, - {"name":"getCostColumn","parameterTypes":[] }, - {"name":"getReverseCostColumn","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.routes.sql.domain.ImmutablePreference$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"label","parameterTypes":["java.lang.String"] }, - {"name":"costColumn","parameterTypes":["java.lang.String"] }, - {"name":"reverseCostColumn","parameterTypes":["java.lang.String"] } - ] -}, -{ - "name":"de.ii.xtraplatform.features.domain.ExtensionConfiguration", - "queryAllDeclaredMethods":true, - "methods":[{"name":"getType","parameterTypes":[] }] -}, -{ - "name":"de.ii.xtraplatform.features.domain.ExtensionConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.features.domain.FeatureProviderDataV2", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.features.domain.FeatureProviderDataV2$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "methods":[ - {"name":"getFragments2","parameterTypes":[] }, - {"name":"getTypes2","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.features.domain.FeatureSchema", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.features.domain.FeatureSchema$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "methods":[ - {"name":"concatBuilders","parameterTypes":["java.lang.Iterable"] }, - {"name":"coalesceBuilders","parameterTypes":["java.lang.Iterable"] } - ] -}, -{ - "name":"de.ii.xtraplatform.features.domain.FeatureSchemaBase", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.features.domain.SchemaBase$Scope", - "allDeclaredFields":true, - "allPublicFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.features.domain.FeatureTypeConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.features.domain.ImmutableFeatureSchema", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getAdditionalInfo","parameterTypes":[] }, - {"name":"getCoalesce","parameterTypes":[] }, - {"name":"getConcat","parameterTypes":[] }, - {"name":"getConstantValue","parameterTypes":[] }, - {"name":"getConstraints","parameterTypes":[] }, - {"name":"getDescription","parameterTypes":[] }, - {"name":"getForcePolygonCCW","parameterTypes":[] }, - {"name":"getGeometryType","parameterTypes":[] }, - {"name":"getIsQueryable","parameterTypes":[] }, - {"name":"getIsSortable","parameterTypes":[] }, - {"name":"getLabel","parameterTypes":[] }, - {"name":"getMerge","parameterTypes":[] }, - {"name":"getObjectType","parameterTypes":[] }, - {"name":"getPropertyMap","parameterTypes":[] }, - {"name":"getRefType","parameterTypes":[] }, - {"name":"getRefKeyTemplate","parameterTypes":[] }, - {"name":"getRefUriTemplate","parameterTypes":[] }, - {"name":"getRole","parameterTypes":[] }, - {"name":"getSchema","parameterTypes":[] }, - {"name":"getScope","parameterTypes":[] }, - {"name":"getExcludedScopes","parameterTypes":[] }, - {"name":"getSourcePath","parameterTypes":[] }, - {"name":"getSourcePaths","parameterTypes":[] }, - {"name":"getTransformations","parameterTypes":[] }, - {"name":"getDesiredType","parameterTypes":[] }, - {"name":"getUnit","parameterTypes":[] }, - {"name":"getValueType","parameterTypes":[] }, - {"name":"getLinearizeCurves","parameterTypes":[] }, - {"name":"getIsLastModified","parameterTypes":[] }, - {"name":"getFormat","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.features.domain.ImmutableFeatureSchema$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"additionalInfo","parameterTypes":["java.util.Map"] }, - {"name":"concat","parameterTypes":["java.lang.Iterable"] }, - {"name":"coalesce","parameterTypes":["java.lang.Iterable"] }, - {"name":"constantValue","parameterTypes":["java.util.Optional"] }, - {"name":"constraintsBuilder","parameterTypes":[] }, - {"name":"description","parameterTypes":["java.util.Optional"] }, - {"name":"forcePolygonCCW","parameterTypes":["java.util.Optional"] }, - {"name":"geometryType","parameterTypes":["java.util.Optional"] }, - {"name":"isQueryable","parameterTypes":["java.util.Optional"] }, - {"name":"isSortable","parameterTypes":["java.util.Optional"] }, - {"name":"label","parameterTypes":["java.util.Optional"] }, - {"name":"merge","parameterTypes":["java.lang.Iterable"] }, - {"name":"objectType","parameterTypes":["java.util.Optional"] }, - {"name":"propertyMap","parameterTypes":["java.util.Map"] }, - {"name":"refType","parameterTypes":["java.util.Optional"] }, - {"name":"refKeyTemplate","parameterTypes":["java.util.Optional"] }, - {"name":"refUriTemplate","parameterTypes":["java.util.Optional"] }, - {"name":"role","parameterTypes":["java.util.Optional"] }, - {"name":"schema","parameterTypes":["java.util.Optional"] }, - {"name":"sourcePath","parameterTypes":["java.util.Optional"] }, - {"name":"sourcePaths","parameterTypes":["java.lang.Iterable"] }, - {"name":"transformations","parameterTypes":["java.lang.Iterable"] }, - {"name":"desiredType","parameterTypes":["de.ii.xtraplatform.features.domain.SchemaBase$Type"] }, - {"name":"unit","parameterTypes":["java.util.Optional"] }, - {"name":"valueType","parameterTypes":["java.util.Optional"] }, - {"name":"isLastModified","parameterTypes":["java.util.Optional"] }, - {"name":"scope","parameterTypes":["java.util.Optional"] }, - {"name":"excludedScopes","parameterTypes":["java.lang.Iterable"] }, - {"name":"linearizeCurves","parameterTypes":["java.util.Optional"] }, - {"name":"format","parameterTypes":["java.util.Optional"] } - ] -}, -{ - "name":"de.ii.xtraplatform.features.domain.ImmutablePartialObjectSchema", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getPropertyMap","parameterTypes":[] }, - {"name":"getSchema","parameterTypes":[] }, - {"name":"getSourcePath","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.features.domain.ImmutablePartialObjectSchema$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"schema","parameterTypes":["java.util.Optional"] }, - {"name":"sourcePath","parameterTypes":["java.util.Optional"] } - ] -}, -{ - "name":"de.ii.xtraplatform.features.domain.ImmutableProviderCommonData$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"enabled","parameterTypes":["boolean"] }, - {"name":"createdAt","parameterTypes":["long"] }, - {"name":"entityStorageVersion","parameterTypes":["long"] }, - {"name":"id","parameterTypes":["java.lang.String"] }, - {"name":"lastModified","parameterTypes":["long"] }, - {"name":"providerSubType","parameterTypes":["java.lang.String"] }, - {"name":"providerType","parameterTypes":["java.lang.String"] } - ] -}, -{ - "name":"de.ii.xtraplatform.features.domain.ImmutableSchemaConstraints", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getClosed","parameterTypes":[] }, - {"name":"getCodelist","parameterTypes":[] }, - {"name":"getComposite","parameterTypes":[] }, - {"name":"getEnumValues","parameterTypes":[] }, - {"name":"getMax","parameterTypes":[] }, - {"name":"getMaxOccurrence","parameterTypes":[] }, - {"name":"getMin","parameterTypes":[] }, - {"name":"getMinOccurrence","parameterTypes":[] }, - {"name":"getRegex","parameterTypes":[] }, - {"name":"getRequired","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.features.domain.ImmutableSchemaConstraints$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"closed","parameterTypes":["java.util.Optional"] }, - {"name":"codelist","parameterTypes":["java.util.Optional"] }, - {"name":"composite","parameterTypes":["java.util.Optional"] }, - {"name":"enumValues","parameterTypes":["java.lang.Iterable"] }, - {"name":"max","parameterTypes":["java.util.Optional"] }, - {"name":"min","parameterTypes":["java.util.Optional"] }, - {"name":"maxOccurrence","parameterTypes":["java.util.Optional"] }, - {"name":"minOccurrence","parameterTypes":["java.util.Optional"] }, - {"name":"regex","parameterTypes":["java.util.Optional"] }, - {"name":"required","parameterTypes":["java.util.Optional"] } - ] -}, -{ - "name":"de.ii.xtraplatform.features.domain.PartialObjectSchema", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.features.domain.PartialObjectSchema$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.features.domain.PropertiesSchema", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.features.domain.PropertiesSchema$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "methods":[{"name":"putProperties2","parameterTypes":["java.util.Map"] }] -}, -{ - "name":"de.ii.xtraplatform.features.domain.PropertiesSchema$BuilderWithName", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.features.domain.ProviderCommonData$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.features.domain.ProviderData", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.features.domain.SchemaBase", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.features.domain.SchemaBase$Role", - "allDeclaredFields":true, - "allPublicFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.features.domain.SchemaBase$Type", - "allDeclaredFields":true, - "allPublicFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.features.domain.SchemaConstraints", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.features.domain.WithConnectionInfo", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.features.domain.ZoneIdFromString", - "methods":[{"name":"","parameterTypes":[] }] -}, -{ - "name":"de.ii.xtraplatform.features.domain.transform.ImmutablePropertyTransformation", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getCodelist","parameterTypes":[] }, - {"name":"getDateFormat","parameterTypes":[] }, - {"name":"getFlatten","parameterTypes":[] }, - {"name":"getNullify","parameterTypes":[] }, - {"name":"getObjectReduceFormat","parameterTypes":[] }, - {"name":"getObjectReduceSelect","parameterTypes":[] }, - {"name":"getObjectMapFormat","parameterTypes":[] }, - {"name":"getObjectRemoveSelect","parameterTypes":[] }, - {"name":"getArrayReduceFormat","parameterTypes":[] }, - {"name":"getRemove","parameterTypes":[] }, - {"name":"getRename","parameterTypes":[] }, - {"name":"getStringFormat","parameterTypes":[] }, - {"name":"getRemoveNullValues","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.features.domain.transform.ImmutablePropertyTransformation$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"codelist","parameterTypes":["java.util.Optional"] }, - {"name":"dateFormat","parameterTypes":["java.util.Optional"] }, - {"name":"flatten","parameterTypes":["java.util.Optional"] }, - {"name":"getNull","parameterTypes":["java.util.Optional"] }, - {"name":"nullify","parameterTypes":["java.lang.Iterable"] }, - {"name":"objectReduceFormat","parameterTypes":["java.util.Optional"] }, - {"name":"objectReduceSelect","parameterTypes":["java.util.Optional"] }, - {"name":"objectMapFormat","parameterTypes":["java.util.Map"] }, - {"name":"objectRemoveSelect","parameterTypes":["java.util.Optional"] }, - {"name":"arrayReduceFormat","parameterTypes":["java.util.Optional"] }, - {"name":"remove","parameterTypes":["java.util.Optional"] }, - {"name":"rename","parameterTypes":["java.util.Optional"] }, - {"name":"stringFormat","parameterTypes":["java.util.Optional"] }, - {"name":"removeNullValues","parameterTypes":["java.util.Optional"] } - ] -}, -{ - "name":"de.ii.xtraplatform.features.domain.transform.PropertyTransformation", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.features.domain.transform.PropertyTransformation$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.features.domain.transform.PropertyTransformations", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.features.sql.domain.ConnectionInfoSql", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.features.sql.domain.ConnectionInfoSql$Dialect", - "allDeclaredFields":true, - "allPublicFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.features.sql.domain.ConnectionInfoSql$PoolSettings", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.features.sql.domain.FeatureProviderSqlData", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.features.sql.domain.FeatureProviderSqlData$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.features.sql.domain.FeatureProviderSqlData$QueryGeneratorSettings", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.features.sql.domain.ImmutableConnectionInfoSql", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getConnectionUri","parameterTypes":[] }, - {"name":"getConnectorType","parameterTypes":[] }, - {"name":"getDatabase","parameterTypes":[] }, - {"name":"getDialect","parameterTypes":[] }, - {"name":"getDriverOptions","parameterTypes":[] }, - {"name":"getHost","parameterTypes":[] }, - {"name":"getPassword","parameterTypes":[] }, - {"name":"getPool","parameterTypes":[] }, - {"name":"getSchemas","parameterTypes":[] }, - {"name":"getTriggers","parameterTypes":[] }, - {"name":"getUser","parameterTypes":[] }, - {"name":"getAssumeExternalChanges","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.features.sql.domain.ImmutableConnectionInfoSql$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"database","parameterTypes":["java.lang.String"] }, - {"name":"dialect","parameterTypes":["java.lang.String"] }, - {"name":"host","parameterTypes":["java.util.Optional"] }, - {"name":"password","parameterTypes":["java.util.Optional"] }, - {"name":"pathSyntaxBuilder","parameterTypes":["de.ii.xtraplatform.features.sql.domain.ImmutableSqlPathDefaults$Builder"] }, - {"name":"poolBuilder","parameterTypes":[] }, - {"name":"poolBuilder","parameterTypes":["de.ii.xtraplatform.features.sql.domain.ImmutablePoolSettings$Builder"] }, - {"name":"schemas","parameterTypes":["java.lang.Iterable"] }, - {"name":"user","parameterTypes":["java.util.Optional"] }, - {"name":"assumeExternalChanges","parameterTypes":["java.lang.Boolean"] } - ] -}, -{ - "name":"de.ii.xtraplatform.features.gml.domain.ImmutableConnectionInfoWfsHttp", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getUri","parameterTypes":[] }, - {"name":"getConnectionUri","parameterTypes":[] }, - {"name":"getConnectorType","parameterTypes":[] }, - {"name":"getMethod","parameterTypes":[] }, - {"name":"getPassword","parameterTypes":[] }, - {"name":"getDatasetIdentifier","parameterTypes":[] }, - {"name":"getUser","parameterTypes":[] }, - {"name":"getVersion","parameterTypes":[] }, - {"name":"getGmlVersion","parameterTypes":[] }, - {"name":"getNamespaces","parameterTypes":[] }, - {"name":"getOtherUrls","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.features.gml.domain.ImmutableConnectionInfoWfsHttp$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"uri","parameterTypes":["java.net.URI"] }, - {"name":"method","parameterTypes":["de.ii.xtraplatform.features.gml.domain.ConnectionInfoWfsHttp$METHOD"] }, - {"name":"password","parameterTypes":["java.util.Optional"] }, - {"name":"version","parameterTypes":["java.lang.String"] }, - {"name":"gmlVersion","parameterTypes":["java.util.Optional"] }, - {"name":"namespaces","parameterTypes":["java.util.Map"] }, - {"name":"otherUrls","parameterTypes":["java.util.Map"] }, - {"name":"user","parameterTypes":["java.util.Optional"] } - ] -}, -{ - "name":"de.ii.xtraplatform.features.sql.domain.ImmutableFeatureActionTrigger$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true -}, -{ - "name":"de.ii.xtraplatform.features.sql.domain.ImmutableFeatureProviderSqlData", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getAuto","parameterTypes":[] }, - {"name":"getAutoPersist","parameterTypes":[] }, - {"name":"getAutoTypes","parameterTypes":[] }, - {"name":"getCodelists","parameterTypes":[] }, - {"name":"getConnectionInfo","parameterTypes":[] }, - {"name":"getCreatedAt","parameterTypes":[] }, - {"name":"getDefaultLanguage","parameterTypes":[] }, - {"name":"getEntityStorageVersion","parameterTypes":[] }, - {"name":"getExtensions","parameterTypes":[] }, - {"name":"getFragments","parameterTypes":[] }, - {"name":"getId","parameterTypes":[] }, - {"name":"getLabelTemplate","parameterTypes":[] }, - {"name":"getLastModified","parameterTypes":[] }, - {"name":"getNativeCrs","parameterTypes":[] }, - {"name":"getNativeTimeZone","parameterTypes":[] }, - {"name":"getProviderSubType","parameterTypes":[] }, - {"name":"getProviderType","parameterTypes":[] }, - {"name":"getQueryGeneration","parameterTypes":[] }, - {"name":"getSourcePathDefaults","parameterTypes":[] }, - {"name":"getTypeValidation","parameterTypes":[] }, - {"name":"getTypes","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.features.sql.domain.ImmutableFeatureProviderSqlData$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"enabled","parameterTypes":["boolean"] }, - {"name":"addAllExtensions","parameterTypes":["java.lang.Iterable"] }, - {"name":"connectionInfoBuilder","parameterTypes":[] }, - {"name":"createdAt","parameterTypes":["long"] }, - {"name":"defaultLanguage","parameterTypes":["java.util.Optional"] }, - {"name":"entityStorageVersion","parameterTypes":["long"] }, - {"name":"id","parameterTypes":["java.lang.String"] }, - {"name":"lastModified","parameterTypes":["long"] }, - {"name":"nativeCrsBuilder","parameterTypes":[] }, - {"name":"nativeTimeZone","parameterTypes":["java.util.Optional"] }, - {"name":"providerSubType","parameterTypes":["java.lang.String"] }, - {"name":"providerType","parameterTypes":["java.lang.String"] }, - {"name":"queryGenerationBuilder","parameterTypes":[] }, - {"name":"queryGenerationBuilder","parameterTypes":["de.ii.xtraplatform.features.sql.domain.ImmutableQueryGeneratorSettings$Builder"] }, - {"name":"sourcePathDefaultsBuilder","parameterTypes":[] }, - {"name":"typeValidation","parameterTypes":["de.ii.xtraplatform.entities.domain.ValidationResult$MODE"] } - ] -}, -{ - "name":"de.ii.xtraplatform.features.gml.domain.ImmutableFeatureProviderWfsData", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getAuto","parameterTypes":[] }, - {"name":"getAutoPersist","parameterTypes":[] }, - {"name":"getAutoTypes","parameterTypes":[] }, - {"name":"getCodelists","parameterTypes":[] }, - {"name":"getConnectionInfo","parameterTypes":[] }, - {"name":"getCreatedAt","parameterTypes":[] }, - {"name":"getDefaultLanguage","parameterTypes":[] }, - {"name":"getEntityStorageVersion","parameterTypes":[] }, - {"name":"getExtensions","parameterTypes":[] }, - {"name":"getFragments","parameterTypes":[] }, - {"name":"getId","parameterTypes":[] }, - {"name":"getLabelTemplate","parameterTypes":[] }, - {"name":"getLastModified","parameterTypes":[] }, - {"name":"getNativeCrs","parameterTypes":[] }, - {"name":"getNativeTimeZone","parameterTypes":[] }, - {"name":"getProviderSubType","parameterTypes":[] }, - {"name":"getProviderType","parameterTypes":[] }, - {"name":"getTypeValidation","parameterTypes":[] }, - {"name":"getTypes","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.features.gml.domain.ImmutableFeatureProviderWfsData$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"enabled","parameterTypes":["boolean"] }, - {"name":"addAllExtensions","parameterTypes":["java.lang.Iterable"] }, - {"name":"connectionInfoBuilder","parameterTypes":[] }, - {"name":"createdAt","parameterTypes":["long"] }, - {"name":"defaultLanguage","parameterTypes":["java.util.Optional"] }, - {"name":"entityStorageVersion","parameterTypes":["long"] }, - {"name":"id","parameterTypes":["java.lang.String"] }, - {"name":"lastModified","parameterTypes":["long"] }, - {"name":"nativeCrsBuilder","parameterTypes":[] }, - {"name":"nativeTimeZone","parameterTypes":["java.util.Optional"] }, - {"name":"providerSubType","parameterTypes":["java.lang.String"] }, - {"name":"providerType","parameterTypes":["java.lang.String"] }, - {"name":"typeValidation","parameterTypes":["de.ii.xtraplatform.entities.domain.ValidationResult$MODE"] } - ] -}, -{ - "name":"de.ii.xtraplatform.features.sql.domain.ImmutablePoolSettings", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getIdleTimeout","parameterTypes":[] }, - {"name":"getInitFailFast","parameterTypes":[] }, - {"name":"getInitFailTimeout","parameterTypes":[] }, - {"name":"getMaxConnections","parameterTypes":[] }, - {"name":"getMinConnections","parameterTypes":[] }, - {"name":"getShared","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.features.sql.domain.ImmutablePoolSettings$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"idleTimeout","parameterTypes":["java.lang.String"] }, - {"name":"initFailFast","parameterTypes":["java.lang.Boolean"] }, - {"name":"initFailTimeout","parameterTypes":["java.lang.String"] }, - {"name":"maxConnections","parameterTypes":["java.lang.Integer"] }, - {"name":"minConnections","parameterTypes":["java.lang.Integer"] }, - {"name":"shared","parameterTypes":["java.lang.Boolean"] } - ] -}, -{ - "name":"de.ii.xtraplatform.features.sql.domain.ImmutableQueryGeneratorSettings", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getAccentiCollation","parameterTypes":[] }, - {"name":"getChunkSize","parameterTypes":[] }, - {"name":"getComputeNumberMatched","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.features.sql.domain.ImmutableQueryGeneratorSettings$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"chunkSize","parameterTypes":["int"] }, - {"name":"computeNumberMatched","parameterTypes":["boolean"] } - ] -}, -{ - "name":"de.ii.xtraplatform.features.sql.domain.ImmutableSqlPathDefaults", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getJunctionTablePattern","parameterTypes":[] }, - {"name":"getPrimaryKey","parameterTypes":[] }, - {"name":"getSchema","parameterTypes":[] }, - {"name":"getSortKey","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.features.sql.domain.ImmutableSqlPathDefaults$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"junctionTablePattern","parameterTypes":["java.util.Optional"] }, - {"name":"primaryKey","parameterTypes":["java.lang.String"] }, - {"name":"sortKey","parameterTypes":["java.lang.String"] } - ] -}, -{ - "name":"de.ii.xtraplatform.features.sql.domain.SqlPathDefaults", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.geometries.domain.SimpleFeatureGeometry", - "allDeclaredFields":true, - "allPublicFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.schemas.ext.domain.ImmutableJsonSchemaConfiguration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getCompositionIndexes","parameterTypes":[] }, - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getGeometryTypeRefs","parameterTypes":[] }, - {"name":"getObjectTypeRefs","parameterTypes":[] }, - {"name":"getRelationRefs","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.schemas.ext.domain.ImmutableJsonSchemaConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"enabled","parameterTypes":["java.lang.Boolean"] }, - {"name":"objectTypeRefs","parameterTypes":["java.util.Map"] } - ] -}, -{ - "name":"de.ii.xtraplatform.schemas.ext.domain.JsonSchemaConfiguration", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.schemas.ext.domain.JsonSchemaConfiguration$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.services.domain.ImmutableServiceDataCommon$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"apiVersion","parameterTypes":["java.util.Optional"] }, - {"name":"auto","parameterTypes":["java.util.Optional"] }, - {"name":"createdAt","parameterTypes":["long"] }, - {"name":"description","parameterTypes":["java.util.Optional"] }, - {"name":"enabled","parameterTypes":["boolean"] }, - {"name":"entityStorageVersion","parameterTypes":["long"] }, - {"name":"id","parameterTypes":["java.lang.String"] }, - {"name":"label","parameterTypes":["java.lang.String"] }, - {"name":"lastModified","parameterTypes":["long"] }, - {"name":"serviceType","parameterTypes":["java.lang.String"] } - ] -}, -{ - "name":"de.ii.xtraplatform.services.domain.ServiceData", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.services.domain.ServiceDataCommon$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.values.domain.ValueBuilder", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.values.domain.StoredValue", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.entities.domain.AutoEntity", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.entities.domain.EntityData", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.entities.domain.EntityDataBuilder", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.entities.domain.Mergeable", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.entities.domain.ValidationResult$MODE", - "allDeclaredFields":true, - "allPublicFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.entities.domain.maptobuilder.Buildable", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.entities.domain.maptobuilder.BuildableBuilder", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.entities.domain.maptobuilder.BuildableMap", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.entities.domain.maptobuilder.ImmutableBuildableMap", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.Cache", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.Cache$Storage", - "allDeclaredFields":true, - "allPublicFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.Cache$Type", - "allDeclaredFields":true, - "allPublicFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.ImmutableCache", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getLevels","parameterTypes":[] }, - {"name":"getSeeded","parameterTypes":[] }, - {"name":"getStorage","parameterTypes":[] }, - {"name":"getTilesetLevels","parameterTypes":[] }, - {"name":"getType","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.ImmutableCache$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"levels","parameterTypes":["java.util.Map"] }, - {"name":"seeded","parameterTypes":["boolean"] }, - {"name":"storage","parameterTypes":["de.ii.xtraplatform.tiles.domain.Cache$Storage"] }, - {"name":"type","parameterTypes":["de.ii.xtraplatform.tiles.domain.Cache$Type"] } - ] -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.ImmutableLevelFilter", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getFilter","parameterTypes":[] }, - {"name":"getMax","parameterTypes":[] }, - {"name":"getMin","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.ImmutableLevelFilter$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"filter","parameterTypes":["java.lang.String"] }, - {"name":"max","parameterTypes":["int"] }, - {"name":"min","parameterTypes":["int"] } - ] -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.ImmutableLevelTransformation", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getGroupBy","parameterTypes":[] }, - {"name":"getMax","parameterTypes":[] }, - {"name":"getMerge","parameterTypes":[] }, - {"name":"getMin","parameterTypes":[] }, - {"name":"getProperties","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.ImmutableLevelTransformation$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"groupBy","parameterTypes":["java.lang.Iterable"] }, - {"name":"max","parameterTypes":["int"] }, - {"name":"merge","parameterTypes":["java.util.Optional"] }, - {"name":"min","parameterTypes":["int"] }, - {"name":"properties","parameterTypes":["java.lang.Iterable"] } - ] -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.ImmutableLonLat", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getLat","parameterTypes":[] }, - {"name":"getLon","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.ImmutableLonLat$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"lat","parameterTypes":["double"] }, - {"name":"lon","parameterTypes":["double"] } - ] -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.ImmutableMinMax", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getDefault","parameterTypes":[] }, - {"name":"getMax","parameterTypes":[] }, - {"name":"getMin","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.ImmutableMinMax$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"getDefault","parameterTypes":["java.util.Optional"] }, - {"name":"max","parameterTypes":["int"] }, - {"name":"min","parameterTypes":["int"] } - ] -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.ImmutableSeedingOptions", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getJobSize","parameterTypes":[] }, - {"name":"getMaxThreads","parameterTypes":[] }, - {"name":"getPurge","parameterTypes":[] }, - {"name":"getRunOnStartup","parameterTypes":[] }, - {"name":"getRunPeriodic","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.ImmutableSeedingOptions$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"jobSize","parameterTypes":["de.ii.xtraplatform.tiles.domain.SeedingOptions$JobSize"] }, - {"name":"maxThreads","parameterTypes":["java.lang.Integer"] }, - {"name":"purge","parameterTypes":["java.lang.Boolean"] }, - {"name":"runOnStartup","parameterTypes":["java.lang.Boolean"] }, - {"name":"runPeriodic","parameterTypes":["java.lang.String"] } - ] -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.SeedingOptions$JobSize", - "allDeclaredFields":true, - "allPublicFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.ImmutableTileProviderFeaturesData", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getAuto","parameterTypes":[] }, - {"name":"getAutoPersist","parameterTypes":[] }, - {"name":"getCaches","parameterTypes":[] }, - {"name":"getCreatedAt","parameterTypes":[] }, - {"name":"getEntityStorageVersion","parameterTypes":[] }, - {"name":"getId","parameterTypes":[] }, - {"name":"getLastModified","parameterTypes":[] }, - {"name":"getProviderSubType","parameterTypes":[] }, - {"name":"getProviderType","parameterTypes":[] }, - {"name":"getSeeding","parameterTypes":[] }, - {"name":"getTilesetDefaults","parameterTypes":[] }, - {"name":"getTilesets","parameterTypes":[] }, - {"name":"getRasterTilesets","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.ImmutableTileProviderFeaturesData$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"enabled","parameterTypes":["boolean"] }, - {"name":"caches","parameterTypes":["java.lang.Iterable"] }, - {"name":"getTilesets","parameterTypes":[] }, - {"name":"getRasterTilesets","parameterTypes":[] }, - {"name":"id","parameterTypes":["java.lang.String"] }, - {"name":"providerSubType","parameterTypes":["java.lang.String"] }, - {"name":"providerType","parameterTypes":["java.lang.String"] }, - {"name":"tilesetDefaultsBuilder","parameterTypes":[] }, - {"name":"createdAt","parameterTypes":["long"] }, - {"name":"lastModified","parameterTypes":["long"] }, - {"name":"entityStorageVersion","parameterTypes":["long"] }, - {"name":"seedingBuilder","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.ImmutableTileProviderHttpData", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getCreatedAt","parameterTypes":[] }, - {"name":"getEntityStorageVersion","parameterTypes":[] }, - {"name":"getId","parameterTypes":[] }, - {"name":"getLastModified","parameterTypes":[] }, - {"name":"getProviderSubType","parameterTypes":[] }, - {"name":"getProviderType","parameterTypes":[] }, - {"name":"getTilesetDefaults","parameterTypes":[] }, - {"name":"getTilesets","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.ImmutableTileProviderHttpData$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"enabled","parameterTypes":["boolean"] }, - {"name":"getTilesets","parameterTypes":[] }, - {"name":"id","parameterTypes":["java.lang.String"] }, - {"name":"providerSubType","parameterTypes":["java.lang.String"] }, - {"name":"providerType","parameterTypes":["java.lang.String"] }, - {"name":"tilesetDefaultsBuilder","parameterTypes":[] }, - {"name":"createdAt","parameterTypes":["long"] }, - {"name":"lastModified","parameterTypes":["long"] }, - {"name":"entityStorageVersion","parameterTypes":["long"] } - ] -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.ImmutableTileProviderMbtilesData", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getEnabled","parameterTypes":[] }, - {"name":"getCreatedAt","parameterTypes":[] }, - {"name":"getEntityStorageVersion","parameterTypes":[] }, - {"name":"getId","parameterTypes":[] }, - {"name":"getLastModified","parameterTypes":[] }, - {"name":"getProviderSubType","parameterTypes":[] }, - {"name":"getProviderType","parameterTypes":[] }, - {"name":"getTilesetDefaults","parameterTypes":[] }, - {"name":"getTilesets","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.ImmutableTileProviderMbtilesData$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"enabled","parameterTypes":["boolean"] }, - {"name":"id","parameterTypes":["java.lang.String"] }, - {"name":"providerSubType","parameterTypes":["java.lang.String"] }, - {"name":"providerType","parameterTypes":["java.lang.String"] }, - {"name":"tilesets","parameterTypes":["java.util.Map"] }, - {"name":"tilesetDefaults","parameterTypes":["de.ii.xtraplatform.tiles.domain.ImmutableTilesetMbTilesDefaults"] }, - {"name":"createdAt","parameterTypes":["long"] }, - {"name":"lastModified","parameterTypes":["long"] }, - {"name":"entityStorageVersion","parameterTypes":["long"] } - ] -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.ImmutableTilesetFeatures", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getCenter","parameterTypes":[] }, - {"name":"getCombine","parameterTypes":[] }, - {"name":"getFeatureLimit","parameterTypes":[] }, - {"name":"getFeatureProvider","parameterTypes":[] }, - {"name":"getFeatureType","parameterTypes":[] }, - {"name":"getFilters","parameterTypes":[] }, - {"name":"getId","parameterTypes":[] }, - {"name":"getIgnoreInvalidGeometries","parameterTypes":[] }, - {"name":"getLevels","parameterTypes":[] }, - {"name":"getMinimumSizeInPixel","parameterTypes":[] }, - {"name":"getTransformations","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.ImmutableTilesetFeatures$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"combine","parameterTypes":["java.lang.Iterable"] }, - {"name":"filters","parameterTypes":["java.util.Map"] }, - {"name":"getLevels","parameterTypes":[] }, - {"name":"id","parameterTypes":["java.lang.String"] }, - {"name":"transformations","parameterTypes":["java.util.Map"] }, - {"name":"centerBuilder","parameterTypes":[] }, - {"name":"featureProvider","parameterTypes":["java.util.Optional"] }, - {"name":"featureType","parameterTypes":["java.util.Optional"] }, - {"name":"ignoreInvalidGeometries","parameterTypes":["java.lang.Boolean"] } - ] -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.ImmutableTilesetFeaturesDefaults", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getCenter","parameterTypes":[] }, - {"name":"getFeatureLimit","parameterTypes":[] }, - {"name":"getFeatureProvider","parameterTypes":[] }, - {"name":"getIgnoreInvalidGeometries","parameterTypes":[] }, - {"name":"getLevels","parameterTypes":[] }, - {"name":"getMinimumSizeInPixel","parameterTypes":[] }, - {"name":"getTransformations","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.ImmutableTilesetFeaturesDefaults$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"centerBuilder","parameterTypes":[] }, - {"name":"getLevels","parameterTypes":[] }, - {"name":"levels","parameterTypes":["java.util.Map"] }, - {"name":"featureProvider","parameterTypes":["java.util.Optional"] }, - {"name":"featureLimit","parameterTypes":["java.lang.Integer"] }, - {"name":"minimumSizeInPixel","parameterTypes":["java.lang.Double"] }, - {"name":"ignoreInvalidGeometries","parameterTypes":["java.lang.Boolean"] }, - {"name":"transformations","parameterTypes":["java.util.Map"] } - ] -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.ImmutableTilesetHttp", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getCenter","parameterTypes":[] }, - {"name":"getEncodings","parameterTypes":[] }, - {"name":"getId","parameterTypes":[] }, - {"name":"getLevels","parameterTypes":[] }, - {"name":"getUrlTemplate","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.ImmutableTilesetHttp$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"encodings","parameterTypes":["java.util.Map"] }, - {"name":"id","parameterTypes":["java.lang.String"] }, - {"name":"urlTemplate","parameterTypes":["java.lang.String"] } - ] -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.ImmutableTilesetHttpDefaults", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getCenter","parameterTypes":[] }, - {"name":"getEncodings","parameterTypes":[] }, - {"name":"getLevels","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.ImmutableTilesetHttpDefaults$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[{"name":"getLevels","parameterTypes":[] }] -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.ImmutableTilesetMbTiles", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getCenter","parameterTypes":[] }, - {"name":"getId","parameterTypes":[] }, - {"name":"getLevels","parameterTypes":[] }, - {"name":"getSource","parameterTypes":[] }, - {"name":"getTileMatrixSet","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.ImmutableTilesetMbTiles$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"build","parameterTypes":[] }, - {"name":"id","parameterTypes":["java.lang.String"] }, - {"name":"source","parameterTypes":["java.lang.String"] } - ] -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.ImmutableTilesetMbTilesDefaults", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getCenter","parameterTypes":[] }, - {"name":"getLevels","parameterTypes":[] }, - {"name":"getTileMatrixSet","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.ImmutableTilesetMbTilesDefaults$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.ImmutableTilesetRaster", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"getPrefix","parameterTypes":[] }, - {"name":"getCenter","parameterTypes":[] }, - {"name":"getLevels","parameterTypes":[] }, - {"name":"getStyles","parameterTypes":[] } - ] -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.ImmutableTilesetRaster$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"","parameterTypes":[] }, - {"name":"styles","parameterTypes":["java.lang.Iterable"] } - ] -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.LevelFilter", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.LevelTransformation", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.MinMax", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.MinMax$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.SeedingOptions", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.TileGenerationOptions", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.TileProviderData", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.TileProviderData$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.TileProviderFeaturesData", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.TileProviderFeaturesData$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.TileProviderHttpData", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.TileProviderHttpData$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.TileProviderMbtilesData", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.TileProviderMbtilesData$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.TilesetCommon", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.TilesetCommonDefaults", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.TilesetFeatures", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.TilesetFeatures$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.TilesetFeaturesDefaults", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.TilesetFeaturesDefaults$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.TilesetHttp", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.TilesetHttp$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.TilesetHttpDefaults", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.TilesetHttpDefaults$Builder", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.TilesetMbTiles", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.TilesetMbTilesDefaults", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.WithCaches", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.WithCenter", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.WithCenter$LonLat", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.WithEncodings", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.WithFeatureProvider", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.WithLevels", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.WithTilesetTmsLevels", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.WithTmsLevels", - "queryAllDeclaredMethods":true -}, -{ - "name":"de.ii.xtraplatform.tiles.domain.WithTmsLevelsMergeable", - "queryAllDeclaredMethods":true -}, -{ - "name":"double", - "queryAllDeclaredMethods":true -}, -{ - "name":"java.io.Serializable", - "queryAllDeclaredMethods":true -}, -{ - "name":"java.lang.Comparable", - "queryAllDeclaredMethods":true -}, -{ - "name":"java.lang.Double", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true -}, -{ - "name":"java.lang.Float", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true -}, -{ - "name":"java.lang.Iterable", - "queryAllDeclaredMethods":true -}, -{ - "name":"java.lang.Number", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"java.sql.Date" -}, -{ - "name":"java.sql.Timestamp" -}, -{ - "name":"java.util.AbstractCollection", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"java.util.Collection", - "queryAllDeclaredMethods":true -}, -{ - "name":"java.util.List", - "queryAllDeclaredMethods":true -}, -{ - "name":"java.util.Map", - "queryAllDeclaredMethods":true -}, -{ - "name":"java.util.RandomAccess", - "queryAllDeclaredMethods":true -}, -{ - "name":"java.util.Set", - "queryAllDeclaredMethods":true -}, -{ - "name":"java.util.HashSet", - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true -}, -{ - "name":"shadow.com.fasterxml.jackson.databind.ext.Java7HandlersImpl", - "methods":[{"name":"","parameterTypes":[] }] -}, -{ - "name":"shadow.com.google.common.collect.BiMap", - "queryAllDeclaredMethods":true -}, -{ - "name":"shadow.com.google.common.collect.ForwardingMap", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"shadow.com.google.common.collect.ForwardingObject", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"shadow.com.google.common.collect.ImmutableBiMap", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"shadow.com.google.common.collect.ImmutableBiMapFauxverideShim", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"shadow.com.google.common.collect.ImmutableCollection", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"shadow.com.google.common.collect.ImmutableList", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true -}, -{ - "name":"shadow.com.google.common.collect.ImmutableMap", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"shadow.com.google.common.collect.ImmutableSet", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"shadow.com.google.common.collect.ImmutableSet$CachingAsList", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true -}, -{ - "name":"shadow.com.google.common.collect.RegularImmutableList", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true -}, -{ - "name":"shadow.com.google.common.collect.RegularImmutableMap", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true -}, -{ - "name":"shadow.com.google.common.collect.RegularImmutableSet", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true -}, -{ - "name":"shadow.com.google.common.collect.SingletonImmutableBiMap", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true -}, -{ - "name":"shadow.com.google.common.collect.SingletonImmutableList", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true -}, -{ - "name":"shadow.com.google.common.collect.SingletonImmutableSet", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true -}, -{ - "name":"shadow.io.dropwizard.util.Duration", - "allDeclaredFields":true, - "queryAllDeclaredMethods":true, - "queryAllDeclaredConstructors":true, - "methods":[ - {"name":"parse","parameterTypes":["java.lang.String"] }, - {"name":"toString","parameterTypes":[] } - ] -}, -{ - "name":"shadow.com.networknt.schema.AdditionalPropertiesValidator", - "methods":[{"name":"","parameterTypes":["java.lang.String","shadow.com.fasterxml.jackson.databind.JsonNode","shadow.com.networknt.schema.JsonSchema","shadow.com.networknt.schema.ValidationContext"] }] -}, -{ - "name":"shadow.com.networknt.schema.AllOfValidator", - "methods":[{"name":"","parameterTypes":["java.lang.String","shadow.com.fasterxml.jackson.databind.JsonNode","shadow.com.networknt.schema.JsonSchema","shadow.com.networknt.schema.ValidationContext"] }] -}, -{ - "name":"shadow.com.networknt.schema.AnyOfValidator", - "methods":[{"name":"","parameterTypes":["java.lang.String","shadow.com.fasterxml.jackson.databind.JsonNode","shadow.com.networknt.schema.JsonSchema","shadow.com.networknt.schema.ValidationContext"] }] -}, -{ - "name":"shadow.com.networknt.schema.ConstValidator", - "methods":[{"name":"","parameterTypes":["java.lang.String","shadow.com.fasterxml.jackson.databind.JsonNode","shadow.com.networknt.schema.JsonSchema","shadow.com.networknt.schema.ValidationContext"] }] -}, -{ - "name":"shadow.com.networknt.schema.EnumValidator", - "methods":[{"name":"","parameterTypes":["java.lang.String","shadow.com.fasterxml.jackson.databind.JsonNode","shadow.com.networknt.schema.JsonSchema","shadow.com.networknt.schema.ValidationContext"] }] -}, -{ - "name":"shadow.com.networknt.schema.IfValidator", - "methods":[{"name":"","parameterTypes":["java.lang.String","shadow.com.fasterxml.jackson.databind.JsonNode","shadow.com.networknt.schema.JsonSchema","shadow.com.networknt.schema.ValidationContext"] }] -}, -{ - "name":"shadow.com.networknt.schema.ItemsValidator202012", - "methods":[{"name":"","parameterTypes":["java.lang.String","shadow.com.fasterxml.jackson.databind.JsonNode","shadow.com.networknt.schema.JsonSchema","shadow.com.networknt.schema.ValidationContext"] }] -}, -{ - "name":"shadow.com.networknt.schema.PatternValidator", - "methods":[{"name":"","parameterTypes":["java.lang.String","shadow.com.fasterxml.jackson.databind.JsonNode","shadow.com.networknt.schema.JsonSchema","shadow.com.networknt.schema.ValidationContext"] }] -}, -{ - "name":"shadow.com.networknt.schema.PropertiesValidator", - "methods":[{"name":"","parameterTypes":["java.lang.String","shadow.com.fasterxml.jackson.databind.JsonNode","shadow.com.networknt.schema.JsonSchema","shadow.com.networknt.schema.ValidationContext"] }] -}, -{ - "name":"shadow.com.networknt.schema.OneOfValidator", - "methods":[{"name":"","parameterTypes":["java.lang.String","shadow.com.fasterxml.jackson.databind.JsonNode","shadow.com.networknt.schema.JsonSchema","shadow.com.networknt.schema.ValidationContext"] }] -}, -{ - "name":"shadow.com.networknt.schema.RefValidator", - "methods":[{"name":"","parameterTypes":["java.lang.String","shadow.com.fasterxml.jackson.databind.JsonNode","shadow.com.networknt.schema.JsonSchema","shadow.com.networknt.schema.ValidationContext"] }] -}, -{ - "name":"shadow.com.networknt.schema.RequiredValidator", - "methods":[{"name":"","parameterTypes":["java.lang.String","shadow.com.fasterxml.jackson.databind.JsonNode","shadow.com.networknt.schema.JsonSchema","shadow.com.networknt.schema.ValidationContext"] }] -}, -{ - "name":"shadow.com.networknt.schema.TypeValidator", - "methods":[{"name":"","parameterTypes":["java.lang.String","shadow.com.fasterxml.jackson.databind.JsonNode","shadow.com.networknt.schema.JsonSchema","shadow.com.networknt.schema.ValidationContext"] }] -}, -{ - "name":"shadow.org.postgresql.Driver", - "methods":[{"name":"","parameterTypes":[] }] -} + { + "name": "[Lde.ii.xtraplatform.features.sql.domain.ImmutableFeatureProviderSqlData.getEnabled;" + }, + { + "name": "[Lde.ii.xtraplatform.features.domain.ImmutableFeatureSchema.getEmbeddedRole;" + }, + { + "name": "[Lde.ii.ogcapi.foundation.domain.ExtensionConfiguration;" + }, + { + "name": "[Lde.ii.ogcapi.foundation.domain.ImmutableApiCatalogEntry$Builder;" + }, + { + "name": "[Lde.ii.ogcapi.foundation.domain.ImmutableApiCatalogEntry;" + }, + { + "name": "[Lde.ii.ogcapi.foundation.domain.ImmutableLink$Builder;" + }, + { + "name": "[Lde.ii.ogcapi.foundation.domain.ImmutableLink;" + }, + { + "name": "[Lde.ii.xtraplatform.features.domain.ExtensionConfiguration;" + }, + { + "name": "[Lde.ii.xtraplatform.features.domain.ImmutableFeatureSchema$Builder;" + }, + { + "name": "[Lde.ii.xtraplatform.features.domain.ImmutableFeatureSchema;" + }, + { + "name": "[Lde.ii.xtraplatform.features.domain.ImmutablePartialObjectSchema$Builder;" + }, + { + "name": "[Lde.ii.xtraplatform.features.domain.ImmutablePartialObjectSchema;" + }, + { + "name": "[Lde.ii.xtraplatform.features.domain.transform.ImmutablePropertyTransformation$Builder;" + }, + { + "name": "[Lde.ii.xtraplatform.features.domain.transform.ImmutablePropertyTransformation;" + }, + { + "name": "[Lde.ii.xtraplatform.tiles.domain.ImmutableCache$Builder;" + }, + { + "name": "[Lde.ii.xtraplatform.tiles.domain.ImmutableCache;" + }, + { + "name": "[Ljava.lang.Object;" + }, + { + "name": "[Ljava.util.Map$Entry;" + }, + { + "name": "[Lshadow.com.fasterxml.jackson.databind.deser.BeanDeserializerModifier;" + }, + { + "name": "[Lshadow.com.fasterxml.jackson.databind.deser.Deserializers;" + }, + { + "name": "[Lshadow.com.fasterxml.jackson.databind.deser.KeyDeserializers;" + }, + { + "name": "[Lshadow.com.fasterxml.jackson.databind.deser.ValueInstantiators;" + }, + { + "name": "[Lshadow.com.fasterxml.jackson.databind.ser.BeanSerializerModifier;" + }, + { + "name": "[Lshadow.com.fasterxml.jackson.databind.ser.Serializers;" + }, + { + "name": "[Lshadow.com.fasterxml.jackson.databind.type.TypeModifier;" + }, + { + "name": "[Lshadow.com.google.common.collect.ImmutableMapEntry;" + }, + { + "name": "de.ii.ogcapi.collections.domain.CollectionsConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.collections.domain.CollectionsConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.collections.domain.ImmutableCollectionsConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getAdditionalLinks", "parameterTypes": [] }, + { "name": "getBuildingBlock", "parameterTypes": [] }, + { "name": "getCaching", "parameterTypes": [] }, + { "name": "getCollectionDefinitionsAreIdentical", "parameterTypes": [] }, + { "name": "getCollectionIdAsParameter", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.collections.domain.ImmutableCollectionsConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "additionalLinks", "parameterTypes": ["java.lang.Iterable"] }, + { + "name": "collectionDefinitionsAreIdentical", + "parameterTypes": ["java.util.Optional"] + }, + { + "name": "collectionIdAsParameter", + "parameterTypes": ["java.util.Optional"] + } + ] + }, + { + "name": "de.ii.ogcapi.collections.queryables.domain.ImmutableQueryablesConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getAsQueryParameters", "parameterTypes": [] }, + { "name": "getBuildingBlock", "parameterTypes": [] }, + { "name": "getCaching", "parameterTypes": [] }, + { "name": "getEnableEndpoint", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getExcluded", "parameterTypes": [] }, + { "name": "getIncluded", "parameterTypes": [] }, + { "name": "getPathSeparator", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.collections.queryables.domain.ImmutableQueryablesConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "asQueryParameters", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "build", "parameterTypes": [] }, + { "name": "enableEndpoint", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "excluded", "parameterTypes": ["java.lang.Iterable"] }, + { "name": "included", "parameterTypes": ["java.lang.Iterable"] }, + { + "name": "pathSeparator", + "parameterTypes": [ + "de.ii.ogcapi.collections.queryables.domain.QueryablesConfiguration$PathSeparator" + ] + } + ] + }, + { + "name": "de.ii.ogcapi.collections.queryables.domain.QueryablesConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.collections.queryables.domain.QueryablesConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.collections.queryables.domain.QueryablesConfiguration$PathSeparator", + "allDeclaredFields": true, + "allPublicFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.collections.schema.domain.ImmutableSchemaConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getBuildingBlock", "parameterTypes": [] }, + { "name": "getCaching", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getVersions", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.collections.schema.domain.ImmutableSchemaConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "versions", "parameterTypes": ["java.lang.Iterable"] } + ] + }, + { + "name": "de.ii.ogcapi.collections.schema.domain.SchemaConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.collections.schema.domain.SchemaConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.common.domain.CommonConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.common.domain.CommonConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.common.domain.ImmutableCommonConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getAdditionalLinks", "parameterTypes": [] }, + { "name": "getBuildingBlock", "parameterTypes": [] }, + { "name": "getCaching", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.common.domain.ImmutableCommonConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "additionalLinks", "parameterTypes": ["java.lang.Iterable"] }, + { "name": "build", "parameterTypes": [] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] } + ] + }, + { + "name": "de.ii.ogcapi.crs.domain.CrsConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.crs.domain.CrsConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.crs.domain.ImmutableCrsConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getAdditionalCrs", "parameterTypes": [] }, + { "name": "getBuildingBlock", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getSuppressGlobalCrsList", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.crs.domain.ImmutableCrsConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "additionalCrs", "parameterTypes": ["java.lang.Iterable"] }, + { "name": "build", "parameterTypes": [] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, + { + "name": "suppressGlobalCrsList", + "parameterTypes": ["java.lang.Boolean"] + } + ] + }, + { + "name": "de.ii.ogcapi.crud.app.CrudConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.crud.app.CrudConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.crud.app.ImmutableCrudConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getBuildingBlock", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getOptimisticLockingLastModified", "parameterTypes": [] }, + { "name": "getOptimisticLockingETag", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.crud.app.ImmutableCrudConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, + { + "name": "optimisticLockingLastModified", + "parameterTypes": ["java.lang.Boolean"] + }, + { + "name": "optimisticLockingETag", + "parameterTypes": ["java.lang.Boolean"] + } + ] + }, + { + "name": "de.ii.ogcapi.features.cityjson.domain.CityJsonConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.cityjson.domain.CityJsonConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.cityjson.domain.CityJsonConfiguration$Version", + "allDeclaredFields": true, + "allPublicFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.cityjson.domain.ImmutableCityJsonConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getBuildingBlock", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getTextSequences", "parameterTypes": [] }, + { "name": "getTransformations", "parameterTypes": [] }, + { "name": "getVersion", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.features.cityjson.domain.ImmutableCityJsonConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "textSequences", "parameterTypes": ["java.util.Optional"] }, + { "name": "version", "parameterTypes": ["java.util.Optional"] } + ] + }, + { + "name": "de.ii.ogcapi.features.core.domain.FeaturesCollectionQueryables", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.core.domain.FeaturesCollectionQueryables$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.core.domain.FeaturesCoreConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.core.domain.FeaturesCoreConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.core.domain.FeaturesCoreConfiguration$DefaultCrs", + "allDeclaredFields": true, + "allPublicFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.core.domain.FeaturesCoreConfiguration$ItemType", + "allDeclaredFields": true, + "allPublicFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.core.domain.ImmutableFeaturesCollectionQueryables", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getOther", "parameterTypes": [] }, + { "name": "getQ", "parameterTypes": [] }, + { "name": "getSpatial", "parameterTypes": [] }, + { "name": "getTemporal", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.features.core.domain.ImmutableFeaturesCollectionQueryables$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "other", "parameterTypes": ["java.lang.Iterable"] }, + { "name": "q", "parameterTypes": ["java.lang.Iterable"] }, + { "name": "spatial", "parameterTypes": ["java.lang.Iterable"] }, + { "name": "temporal", "parameterTypes": ["java.lang.Iterable"] } + ] + }, + { + "name": "de.ii.ogcapi.features.core.domain.ImmutableFeaturesCoreConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getBuildingBlock", "parameterTypes": [] }, + { "name": "getCaching", "parameterTypes": [] }, + { "name": "getCoordinatePrecision", "parameterTypes": [] }, + { "name": "getDefaultCrs", "parameterTypes": [] }, + { "name": "getDefaultPageSize", "parameterTypes": [] }, + { "name": "getEmbeddedFeatureLinkRels", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getFeatureProvider", "parameterTypes": [] }, + { "name": "getFeatureType", "parameterTypes": [] }, + { "name": "getItemType", "parameterTypes": [] }, + { "name": "getMaximumPageSize", "parameterTypes": [] }, + { "name": "getMinimumPageSize", "parameterTypes": [] }, + { "name": "getQueryables", "parameterTypes": [] }, + { "name": "getShowsFeatureSelfLink", "parameterTypes": [] }, + { "name": "getTransformations", "parameterTypes": [] }, + { "name": "getValidateCoordinatesInQueries", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.features.core.domain.ImmutableFeaturesCoreConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "coordinatePrecision", "parameterTypes": ["java.util.Map"] }, + { + "name": "defaultCrs", + "parameterTypes": [ + "de.ii.ogcapi.features.core.domain.FeaturesCoreConfiguration$DefaultCrs" + ] + }, + { "name": "defaultPageSize", "parameterTypes": ["java.lang.Integer"] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "featureProvider", "parameterTypes": ["java.util.Optional"] }, + { "name": "featureType", "parameterTypes": ["java.util.Optional"] }, + { "name": "itemType", "parameterTypes": ["java.util.Optional"] }, + { "name": "maximumPageSize", "parameterTypes": ["java.lang.Integer"] }, + { "name": "minimumPageSize", "parameterTypes": ["java.lang.Integer"] }, + { "name": "queryables", "parameterTypes": ["java.util.Optional"] }, + { + "name": "showsFeatureSelfLink", + "parameterTypes": ["java.lang.Boolean"] + }, + { "name": "transformations", "parameterTypes": ["java.util.Map"] }, + { + "name": "embeddedFeatureLinkRels", + "parameterTypes": ["java.lang.Iterable"] + }, + { + "name": "validateCoordinatesInQueries", + "parameterTypes": ["java.lang.Boolean"] + } + ] + }, + { + "name": "de.ii.ogcapi.features.core.domain.JsonSchemaDocument$VERSION", + "allDeclaredFields": true, + "allPublicFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.core.domain.SfFlatConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.csv.domain.CsvConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.csv.domain.ImmutableCsvConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getBuildingBlock", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getMaxMultiplicity", "parameterTypes": [] }, + { "name": "getTransformations", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.features.csv.domain.ImmutableCsvConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "transformations", "parameterTypes": ["java.util.Map"] }, + { "name": "maxMultiplicity", "parameterTypes": ["java.lang.Integer"] } + ] + }, + { + "name": "de.ii.ogcapi.features.custom.extensions.domain.FeaturesExtensionsConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.custom.extensions.domain.FeaturesExtensionsConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.custom.extensions.domain.ImmutableFeaturesExtensionsConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getBuildingBlock", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getIntersectsParameter", "parameterTypes": [] }, + { "name": "getPostOnItems", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.features.custom.extensions.domain.ImmutableFeaturesExtensionsConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, + { + "name": "intersectsParameter", + "parameterTypes": ["java.lang.Boolean"] + }, + { "name": "postOnItems", "parameterTypes": ["java.lang.Boolean"] } + ] + }, + { + "name": "de.ii.ogcapi.features.flatgeobuf.domain.FlatgeobufConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.flatgeobuf.domain.FlatgeobufConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.flatgeobuf.domain.ImmutableFlatgeobufConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getBuildingBlock", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getMaxMultiplicity", "parameterTypes": [] }, + { "name": "getTransformations", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.features.flatgeobuf.domain.ImmutableFlatgeobufConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "maxMultiplicity", "parameterTypes": ["java.lang.Integer"] }, + { "name": "transformations", "parameterTypes": ["java.util.Map"] } + ] + }, + { + "name": "de.ii.ogcapi.features.geojson.domain.GeoJsonConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.geojson.domain.GeoJsonConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.geojson.domain.GeoJsonConfiguration$MULTIPLICITY", + "allDeclaredFields": true, + "allPublicFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.geojson.domain.GeoJsonConfiguration$NESTED_OBJECTS", + "allDeclaredFields": true, + "allPublicFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.geojson.domain.ImmutableGeoJsonConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getBuildingBlock", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getMultiplicityStrategy", "parameterTypes": [] }, + { "name": "getNestedObjectStrategy", "parameterTypes": [] }, + { "name": "getSeparator", "parameterTypes": [] }, + { "name": "getTransformations", "parameterTypes": [] }, + { "name": "getUseFormattedJsonOutput", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.features.geojson.domain.ImmutableGeoJsonConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, + { + "name": "multiplicityStrategy", + "parameterTypes": [ + "de.ii.ogcapi.features.geojson.domain.GeoJsonConfiguration$MULTIPLICITY" + ] + }, + { + "name": "nestedObjectStrategy", + "parameterTypes": [ + "de.ii.ogcapi.features.geojson.domain.GeoJsonConfiguration$NESTED_OBJECTS" + ] + }, + { "name": "separator", "parameterTypes": ["java.lang.String"] }, + { "name": "transformations", "parameterTypes": ["java.util.Map"] }, + { + "name": "useFormattedJsonOutput", + "parameterTypes": ["java.lang.Boolean"] + } + ] + }, + { + "name": "de.ii.ogcapi.features.geojson.ld.domain.GeoJsonLdConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.geojson.ld.domain.GeoJsonLdConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.geojson.ld.domain.ImmutableGeoJsonLdConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getBuildingBlock", "parameterTypes": [] }, + { "name": "getContext", "parameterTypes": [] }, + { "name": "getContextFileName", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getIdTemplate", "parameterTypes": [] }, + { "name": "getTypes", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.features.geojson.ld.domain.ImmutableGeoJsonLdConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] } + ] + }, + { + "name": "de.ii.ogcapi.features.gltf.domain.GltfConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.gltf.domain.GltfConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.gltf.domain.GltfPropertyDefinition", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.gltf.domain.ImmutableGltfConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getBuildingBlock", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getMaxMultiplicity", "parameterTypes": [] }, + { "name": "getMeshQuantization", "parameterTypes": [] }, + { "name": "getPolygonOrientationNotGuaranteed", "parameterTypes": [] }, + { "name": "getProperties", "parameterTypes": [] }, + { "name": "getTransformations", "parameterTypes": [] }, + { "name": "getWithNormals", "parameterTypes": [] }, + { "name": "getWithOutline", "parameterTypes": [] }, + { "name": "getWithSurfaceType", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.features.gltf.domain.ImmutableGltfConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "meshQuantization", "parameterTypes": ["java.lang.Boolean"] }, + { + "name": "polygonOrientationNotGuaranteed", + "parameterTypes": ["java.lang.Boolean"] + }, + { "name": "properties", "parameterTypes": ["java.util.Map"] }, + { "name": "transformations", "parameterTypes": ["java.util.Map"] }, + { "name": "withNormals", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "withOutline", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "withSurfaceType", "parameterTypes": ["java.lang.Boolean"] } + ] + }, + { + "name": "de.ii.ogcapi.features.gltf.domain.ImmutableGltfPropertyDefinition", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getComponentType", "parameterTypes": [] }, + { "name": "getNoData", "parameterTypes": [] }, + { "name": "getStringOffsetType", "parameterTypes": [] }, + { "name": "getType", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.features.gltf.domain.ImmutableGltfPropertyDefinition$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "componentType", "parameterTypes": ["java.util.Optional"] }, + { "name": "noData", "parameterTypes": ["java.lang.String"] }, + { "name": "stringOffsetType", "parameterTypes": ["java.util.Optional"] }, + { + "name": "type", + "parameterTypes": [ + "de.ii.ogcapi.features.gltf.domain.SchemaProperty$Type" + ] + } + ] + }, + { + "name": "de.ii.ogcapi.features.gltf.domain.SchemaProperty$ComponentType", + "allDeclaredFields": true, + "allPublicFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.gltf.domain.SchemaProperty$Type", + "allDeclaredFields": true, + "allPublicFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.geojson.ld.domain.ImmutableGeoJsonLdConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] } + ] + }, + { + "name": "de.ii.ogcapi.features.gml.domain.GmlConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.gml.domain.GmlConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.gml.domain.GmlConfiguration$Conformance", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.gml.domain.GmlConfiguration$GmlVersion", + "allDeclaredFields": true, + "allPublicFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.gml.domain.ImmutableGmlConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getApplicationNamespaces", "parameterTypes": [] }, + { "name": "getBuildingBlock", "parameterTypes": [] }, + { "name": "getConformance", "parameterTypes": [] }, + { "name": "getDefaultNamespace", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getFeatureCollectionElementName", "parameterTypes": [] }, + { "name": "getFeatureMemberElementName", "parameterTypes": [] }, + { "name": "getGmlIdPrefix", "parameterTypes": [] }, + { "name": "getGmlSfLevel", "parameterTypes": [] }, + { "name": "getGmlVersion", "parameterTypes": [] }, + { "name": "getObjectTypeNamespaces", "parameterTypes": [] }, + { "name": "getSchemaLocations", "parameterTypes": [] }, + { "name": "getSupportsStandardResponseParameters", "parameterTypes": [] }, + { "name": "getTransformations", "parameterTypes": [] }, + { "name": "getVariableObjectElementNames", "parameterTypes": [] }, + { "name": "getXmlAttributes", "parameterTypes": [] }, + { "name": "getGmlIdOnGeometries", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.features.gml.domain.ImmutableGmlConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "applicationNamespaces", "parameterTypes": ["java.util.Map"] }, + { "name": "defaultNamespace", "parameterTypes": ["java.lang.String"] }, + { + "name": "featureCollectionElementName", + "parameterTypes": ["java.lang.String"] + }, + { + "name": "featureMemberElementName", + "parameterTypes": ["java.lang.String"] + }, + { "name": "gmlIdPrefix", "parameterTypes": ["java.lang.String"] }, + { "name": "gmlSfLevel", "parameterTypes": ["java.lang.Integer"] }, + { + "name": "gmlVersion", + "parameterTypes": [ + "de.ii.ogcapi.features.gml.domain.GmlConfiguration$GmlVersion" + ] + }, + { "name": "objectTypeNamespaces", "parameterTypes": ["java.util.Map"] }, + { "name": "schemaLocations", "parameterTypes": ["java.util.Map"] }, + { + "name": "supportsStandardResponseParameters", + "parameterTypes": ["java.lang.Boolean"] + }, + { "name": "transformations", "parameterTypes": ["java.util.Map"] }, + { + "name": "variableObjectElementNames", + "parameterTypes": ["java.util.Map"] + }, + { "name": "xmlAttributes", "parameterTypes": ["java.lang.Iterable"] }, + { "name": "gmlIdOnGeometries", "parameterTypes": ["java.lang.Boolean"] } + ] + }, + { + "name": "de.ii.ogcapi.features.gml.domain.ImmutableVariableName$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true + }, + { + "name": "de.ii.ogcapi.features.html.domain.FeaturesHtmlConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.html.domain.FeaturesHtmlConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.html.domain.FeaturesHtmlConfiguration$IgnoreLinksWildcardSerializer", + "methods": [{ "name": "", "parameterTypes": [] }] + }, + { + "name": "de.ii.ogcapi.features.html.domain.FeaturesHtmlConfiguration$LAYOUT", + "allDeclaredFields": true, + "allPublicFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.html.domain.FeaturesHtmlConfiguration$POSITION", + "allDeclaredFields": true, + "allPublicFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.html.domain.ImmutableFeaturesHtmlConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getBuildingBlock", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getFeatureTitleTemplate", "parameterTypes": [] }, + { "name": "getGeometryProperties", "parameterTypes": [] }, + { "name": "getLayout", "parameterTypes": [] }, + { "name": "getMapClientType", "parameterTypes": [] }, + { "name": "getMapPosition", "parameterTypes": [] }, + { "name": "getMaximumPageSize", "parameterTypes": [] }, + { "name": "getPropertyTooltips", "parameterTypes": [] }, + { "name": "getPropertyTooltipsOnItems", "parameterTypes": [] }, + { "name": "getRemoveZoomLevelConstraints", "parameterTypes": [] }, + { "name": "getStyle", "parameterTypes": [] }, + { "name": "getTransformations", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.features.html.domain.ImmutableFeaturesHtmlConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, + { + "name": "featureTitleTemplate", + "parameterTypes": ["java.util.Optional"] + }, + { + "name": "geometryProperties", + "parameterTypes": ["java.lang.Iterable"] + }, + { + "name": "layout", + "parameterTypes": [ + "de.ii.ogcapi.features.html.domain.FeaturesHtmlConfiguration$LAYOUT" + ] + }, + { + "name": "mapClientType", + "parameterTypes": ["de.ii.ogcapi.html.domain.MapClient$Type"] + }, + { + "name": "mapPosition", + "parameterTypes": [ + "de.ii.ogcapi.features.html.domain.FeaturesHtmlConfiguration$POSITION" + ] + }, + { "name": "maximumPageSize", "parameterTypes": ["java.lang.Integer"] }, + { "name": "propertyTooltips", "parameterTypes": ["java.lang.Boolean"] }, + { + "name": "propertyTooltipsOnItems", + "parameterTypes": ["java.lang.Boolean"] + }, + { + "name": "removeZoomLevelConstraints", + "parameterTypes": ["java.lang.Boolean"] + }, + { "name": "style", "parameterTypes": ["java.lang.String"] }, + { "name": "transformations", "parameterTypes": ["java.util.Map"] } + ] + }, + { + "name": "de.ii.ogcapi.features.jsonfg.domain.ImmutableJsonFgConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getBuildingBlock", "parameterTypes": [] }, + { "name": "getCoordRefSys", "parameterTypes": [] }, + { "name": "getDescribedby", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getFeatureType", "parameterTypes": [] }, + { "name": "getGeojsonCompatibility", "parameterTypes": [] }, + { "name": "getIncludeInGeoJson", "parameterTypes": [] }, + { "name": "getLinks", "parameterTypes": [] }, + { "name": "getSchemaCollection", "parameterTypes": [] }, + { "name": "getSchemaFeature", "parameterTypes": [] }, + { "name": "getTransformations", "parameterTypes": [] }, + { "name": "getUseCuries", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.features.jsonfg.domain.ImmutableJsonFgConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "coordRefSys", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "describedby", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "featureType", "parameterTypes": ["java.lang.Iterable"] }, + { + "name": "geojsonCompatibility", + "parameterTypes": ["java.lang.Boolean"] + }, + { "name": "transformations", "parameterTypes": ["java.util.Map"] }, + { "name": "includeInGeoJson", "parameterTypes": ["java.lang.Iterable"] }, + { "name": "links", "parameterTypes": ["java.lang.Iterable"] }, + { "name": "schemaCollection", "parameterTypes": ["java.lang.String"] }, + { "name": "schemaFeature", "parameterTypes": ["java.lang.String"] }, + { "name": "useCuries", "parameterTypes": ["java.lang.Boolean"] } + ] + }, + { + "name": "de.ii.ogcapi.features.jsonfg.domain.JsonFgConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.jsonfg.domain.JsonFgConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.jsonfg.domain.JsonFgConfiguration$OPTION", + "allDeclaredFields": true, + "allPublicFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.features.search.domain.ImmutableSearchConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getAllLinksAreLocal", "parameterTypes": [] }, + { "name": "getBuildingBlock", "parameterTypes": [] }, + { "name": "getCaching", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getManagerEnabled", "parameterTypes": [] }, + { "name": "getValidationEnabled", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.features.search.domain.ImmutableSearchConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "allLinksAreLocal", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "managerEnabled", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "validationEnabled", "parameterTypes": ["java.lang.Boolean"] }, + { + "name": "caching", + "parameterTypes": ["de.ii.ogcapi.foundation.domain.Caching"] + } + ] + }, + { + "name": "de.ii.ogcapi.features.search.domain.SearchConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.filter.domain.FilterConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.filter.domain.FilterConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.filter.domain.ImmutableFilterConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getBuildingBlock", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.filter.domain.ImmutableFilterConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] } + ] + }, + { + "name": "de.ii.ogcapi.foundation.domain.ApiMetadata", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.foundation.domain.ApiSecurity", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.foundation.domain.ApiSecurity$Policies", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.foundation.domain.ApiSecurity$PolicyAttribute", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.foundation.domain.ApiSecurity$ScopeGranularity", + "allDeclaredFields": true, + "allPublicFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.foundation.domain.Caching", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.foundation.domain.CachingConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.foundation.domain.CollectionExtent", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.foundation.domain.ExtendableConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.foundation.domain.ExtensionConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.foundation.domain.ExtensionConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.foundation.domain.ExternalDocumentation", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.foundation.domain.FeatureTypeConfigurationOgcApi", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.foundation.domain.FeatureTypeConfigurationOgcApi$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.foundation.domain.FoundationConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.foundation.domain.FoundationConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.foundation.domain.ImmutableApiCatalogEntry$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true + }, + { + "name": "de.ii.ogcapi.foundation.domain.ImmutableApiMetadata", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getAttribution", "parameterTypes": [] }, + { "name": "getContactEmail", "parameterTypes": [] }, + { "name": "getContactName", "parameterTypes": [] }, + { "name": "getContactPhone", "parameterTypes": [] }, + { "name": "getContactUrl", "parameterTypes": [] }, + { "name": "getCreatorLogoUrl", "parameterTypes": [] }, + { "name": "getCreatorName", "parameterTypes": [] }, + { "name": "getCreatorUrl", "parameterTypes": [] }, + { "name": "getKeywords", "parameterTypes": [] }, + { "name": "getLicenseName", "parameterTypes": [] }, + { "name": "getLicenseUrl", "parameterTypes": [] }, + { "name": "getPublisherLogoUrl", "parameterTypes": [] }, + { "name": "getPublisherName", "parameterTypes": [] }, + { "name": "getPublisherUrl", "parameterTypes": [] }, + { "name": "getVersion", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.foundation.domain.ImmutableApiMetadata$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "attribution", "parameterTypes": ["java.util.Optional"] }, + { "name": "contactEmail", "parameterTypes": ["java.util.Optional"] }, + { "name": "contactName", "parameterTypes": ["java.util.Optional"] }, + { "name": "contactPhone", "parameterTypes": ["java.util.Optional"] }, + { "name": "contactUrl", "parameterTypes": ["java.util.Optional"] }, + { "name": "creatorLogoUrl", "parameterTypes": ["java.util.Optional"] }, + { "name": "creatorName", "parameterTypes": ["java.util.Optional"] }, + { "name": "creatorUrl", "parameterTypes": ["java.util.Optional"] }, + { "name": "keywords", "parameterTypes": ["java.lang.Iterable"] }, + { "name": "licenseName", "parameterTypes": ["java.util.Optional"] }, + { "name": "licenseUrl", "parameterTypes": ["java.util.Optional"] }, + { "name": "publisherLogoUrl", "parameterTypes": ["java.util.Optional"] }, + { "name": "publisherName", "parameterTypes": ["java.util.Optional"] }, + { "name": "publisherUrl", "parameterTypes": ["java.util.Optional"] }, + { "name": "version", "parameterTypes": ["java.util.Optional"] } + ] + }, + { + "name": "de.ii.ogcapi.foundation.domain.ImmutableApiSecurity", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getPublicScopes", "parameterTypes": [] }, + { "name": "getGroups", "parameterTypes": [] }, + { "name": "getScopes", "parameterTypes": [] }, + { "name": "getAudience", "parameterTypes": [] }, + { "name": "getPolicies", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.foundation.domain.ImmutableApiSecurity$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "publicScopes", "parameterTypes": ["java.lang.Iterable"] }, + { "name": "groups", "parameterTypes": ["java.util.Map"] }, + { "name": "scopes", "parameterTypes": ["java.lang.Iterable"] }, + { "name": "audience", "parameterTypes": ["java.lang.Iterable"] }, + { "name": "policies", "parameterTypes": ["java.util.Optional"] } + ] + }, + { + "name": "de.ii.ogcapi.foundation.domain.ImmutablePolicyAttribute", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getConstant", "parameterTypes": [] }, + { "name": "getProperty", "parameterTypes": [] }, + { "name": "getParameter", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.foundation.domain.ImmutablePolicyAttribute$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "constant", "parameterTypes": ["java.util.Optional"] }, + { "name": "property", "parameterTypes": ["java.util.Optional"] }, + { "name": "parameter", "parameterTypes": ["java.util.Optional"] } + ] + }, + { + "name": "de.ii.ogcapi.foundation.domain.ImmutablePolicies", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getAttributes", "parameterTypes": [] }, + { "name": "getObligations", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.foundation.domain.ImmutablePolicies$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "attributes", "parameterTypes": ["java.util.Map"] }, + { "name": "obligations", "parameterTypes": ["java.util.Map"] } + ] + }, + { + "name": "de.ii.ogcapi.foundation.domain.ImmutableCaching", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getLastModified", "parameterTypes": [] }, + { "name": "getExpires", "parameterTypes": [] }, + { "name": "getCacheControl", "parameterTypes": [] }, + { "name": "getCacheControlItems", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.foundation.domain.ImmutableCaching$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "lastModified", "parameterTypes": ["java.util.Date"] }, + { "name": "expires", "parameterTypes": ["java.util.Date"] }, + { "name": "cacheControl", "parameterTypes": ["java.lang.String"] }, + { "name": "cacheControlItems", "parameterTypes": ["java.lang.String"] } + ] + }, + { + "name": "de.ii.ogcapi.foundation.domain.ImmutableCollectionExtent", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getSpatial", "parameterTypes": [] }, + { "name": "getSpatialComputed", "parameterTypes": [] }, + { "name": "getTemporal", "parameterTypes": [] }, + { "name": "getTemporalComputed", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.foundation.domain.ImmutableCollectionExtent$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "spatialBuilder", "parameterTypes": [] }, + { "name": "spatialComputed", "parameterTypes": ["java.util.Optional"] }, + { "name": "temporalBuilder", "parameterTypes": [] }, + { "name": "temporalComputed", "parameterTypes": ["java.util.Optional"] } + ] + }, + { + "name": "de.ii.ogcapi.foundation.domain.ImmutableExternalDocumentation", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getDescription", "parameterTypes": [] }, + { "name": "getUrl", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.foundation.domain.ImmutableExternalDocumentation$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "description", "parameterTypes": ["java.util.Optional"] }, + { "name": "url", "parameterTypes": ["java.lang.String"] } + ] + }, + { + "name": "de.ii.ogcapi.foundation.domain.ImmutableFeatureTypeConfigurationOgcApi", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getAdditionalLinks", "parameterTypes": [] }, + { "name": "getDescription", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getExtensions", "parameterTypes": [] }, + { "name": "getExtent", "parameterTypes": [] }, + { "name": "getId", "parameterTypes": [] }, + { "name": "getLabel", "parameterTypes": [] }, + { "name": "getPersistentUriTemplate", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.foundation.domain.ImmutableFeatureTypeConfigurationOgcApi$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "addAllExtensions", "parameterTypes": ["java.lang.Iterable"] }, + { "name": "additionalLinks", "parameterTypes": ["java.lang.Iterable"] }, + { "name": "description", "parameterTypes": ["java.util.Optional"] }, + { "name": "enabled", "parameterTypes": ["boolean"] }, + { "name": "extentBuilder", "parameterTypes": [] }, + { "name": "id", "parameterTypes": ["java.lang.String"] }, + { "name": "label", "parameterTypes": ["java.lang.String"] }, + { + "name": "persistentUriTemplate", + "parameterTypes": ["java.util.Optional"] + } + ] + }, + { + "name": "de.ii.ogcapi.foundation.domain.ImmutableFoundationConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getApiCatalogDescription", "parameterTypes": [] }, + { "name": "getApiCatalogLabel", "parameterTypes": [] }, + { "name": "getBuildingBlock", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getGoogleSiteVerification", "parameterTypes": [] }, + { "name": "getIncludeLinkHeader", "parameterTypes": [] }, + { "name": "getIncludeSpecificationInformation", "parameterTypes": [] }, + { "name": "getUseLangParameter", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.foundation.domain.ImmutableFoundationConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { + "name": "apiCatalogDescription", + "parameterTypes": ["java.lang.String"] + }, + { "name": "apiCatalogLabel", "parameterTypes": ["java.lang.String"] }, + { "name": "build", "parameterTypes": [] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, + { + "name": "googleSiteVerification", + "parameterTypes": ["java.lang.String"] + }, + { "name": "includeLinkHeader", "parameterTypes": ["java.lang.Boolean"] }, + { + "name": "includeSpecificationInformation", + "parameterTypes": ["java.lang.Boolean"] + }, + { "name": "useLangParameter", "parameterTypes": ["java.lang.Boolean"] } + ] + }, + { + "name": "de.ii.ogcapi.foundation.domain.ImmutableLink", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getAnchor", "parameterTypes": [] }, + { "name": "getHref", "parameterTypes": [] }, + { "name": "getHreflang", "parameterTypes": [] }, + { "name": "getLength", "parameterTypes": [] }, + { "name": "getRel", "parameterTypes": [] }, + { "name": "getTemplated", "parameterTypes": [] }, + { "name": "getTitle", "parameterTypes": [] }, + { "name": "getType", "parameterTypes": [] }, + { "name": "getVarBase", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.foundation.domain.ImmutableLink$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "anchor", "parameterTypes": ["java.lang.String"] }, + { "name": "href", "parameterTypes": ["java.lang.String"] }, + { "name": "hreflang", "parameterTypes": ["java.lang.String"] }, + { "name": "rel", "parameterTypes": ["java.lang.String"] }, + { "name": "title", "parameterTypes": ["java.lang.String"] }, + { "name": "type", "parameterTypes": ["java.lang.String"] }, + { "name": "length", "parameterTypes": ["java.lang.Integer"] }, + { "name": "templated", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "varBase", "parameterTypes": ["java.lang.String"] }, + { "name": "build", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.foundation.domain.ImmutableOgcApiDataV2", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getAccessControl", "parameterTypes": [] }, + { "name": "getApiValidation", "parameterTypes": [] }, + { "name": "getApiVersion", "parameterTypes": [] }, + { "name": "getCollections", "parameterTypes": [] }, + { "name": "getCreatedAt", "parameterTypes": [] }, + { "name": "getDefaultCaching", "parameterTypes": [] }, + { "name": "getDefaultExtent", "parameterTypes": [] }, + { "name": "getDescription", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getEntityStorageVersion", "parameterTypes": [] }, + { "name": "getExtensions", "parameterTypes": [] }, + { "name": "getExternalDocs", "parameterTypes": [] }, + { "name": "getId", "parameterTypes": [] }, + { "name": "getLabel", "parameterTypes": [] }, + { "name": "getLastModified", "parameterTypes": [] }, + { "name": "getMetadata", "parameterTypes": [] }, + { "name": "getServiceType", "parameterTypes": [] }, + { "name": "getTags", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.foundation.domain.ImmutableOgcApiDataV2$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "accessControlBuilder", "parameterTypes": [] }, + { "name": "addAllExtensions", "parameterTypes": ["java.lang.Iterable"] }, + { + "name": "apiValidation", + "parameterTypes": [ + "de.ii.xtraplatform.entities.domain.ValidationResult$MODE" + ] + }, + { "name": "apiVersion", "parameterTypes": ["java.util.Optional"] }, + { "name": "auto", "parameterTypes": ["java.util.Optional"] }, + { "name": "createdAt", "parameterTypes": ["long"] }, + { "name": "defaultCachingBuilder", "parameterTypes": [] }, + { + "name": "defaultExtentBuilder", + "parameterTypes": [ + "de.ii.ogcapi.foundation.domain.ImmutableCollectionExtent$Builder" + ] + }, + { "name": "description", "parameterTypes": ["java.util.Optional"] }, + { "name": "enabled", "parameterTypes": ["boolean"] }, + { "name": "entityStorageVersion", "parameterTypes": ["long"] }, + { "name": "externalDocsBuilder", "parameterTypes": [] }, + { "name": "getCollections", "parameterTypes": [] }, + { "name": "id", "parameterTypes": ["java.lang.String"] }, + { "name": "label", "parameterTypes": ["java.lang.String"] }, + { "name": "lastModified", "parameterTypes": ["long"] }, + { "name": "metadataBuilder", "parameterTypes": [] }, + { "name": "serviceType", "parameterTypes": ["java.lang.String"] }, + { "name": "tags", "parameterTypes": ["java.lang.Iterable"] } + ] + }, + { + "name": "de.ii.ogcapi.foundation.domain.ImmutableTemporalExtent", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getEnd", "parameterTypes": [] }, + { "name": "getStart", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.foundation.domain.ImmutableTemporalExtent$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "end", "parameterTypes": ["java.lang.Long"] }, + { "name": "start", "parameterTypes": ["java.lang.Long"] } + ] + }, + { + "name": "de.ii.ogcapi.foundation.domain.Link", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.foundation.domain.OgcApiDataV2", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.foundation.domain.OgcApiDataV2$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.foundation.domain.TemporalExtent", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.geometry.simplification.app.GeometrySimplificationConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.geometry.simplification.app.GeometrySimplificationConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.geometry.simplification.app.ImmutableGeometrySimplificationConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getBuildingBlock", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.geometry.simplification.app.ImmutableGeometrySimplificationConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] } + ] + }, + { + "name": "de.ii.ogcapi.html.domain.HtmlConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.html.domain.HtmlConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.html.domain.ImmutableHtmlConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getAdditionalApis", "parameterTypes": [] }, + { "name": "getBasemapAttribution", "parameterTypes": [] }, + { "name": "getBasemapUrl", "parameterTypes": [] }, + { "name": "getBuildingBlock", "parameterTypes": [] }, + { "name": "getCollectionDescriptionsInOverview", "parameterTypes": [] }, + { "name": "getDefaultStyle", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getFooterText", "parameterTypes": [] }, + { "name": "getLeafletAttribution", "parameterTypes": [] }, + { "name": "getLeafletUrl", "parameterTypes": [] }, + { "name": "getLegalName", "parameterTypes": [] }, + { "name": "getLegalUrl", "parameterTypes": [] }, + { "name": "getNoIndexEnabled", "parameterTypes": [] }, + { "name": "getOpenLayersAttribution", "parameterTypes": [] }, + { "name": "getOpenLayersUrl", "parameterTypes": [] }, + { "name": "getPrivacyName", "parameterTypes": [] }, + { "name": "getPrivacyUrl", "parameterTypes": [] }, + { "name": "getSchemaOrgEnabled", "parameterTypes": [] }, + { "name": "getSendEtags", "parameterTypes": [] }, + { "name": "getSuppressEmptyCollectionsInOverview", "parameterTypes": [] }, + { "name": "getLoginProvider", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.html.domain.ImmutableHtmlConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "basemapAttribution", "parameterTypes": ["java.lang.String"] }, + { "name": "basemapUrl", "parameterTypes": ["java.lang.String"] }, + { "name": "build", "parameterTypes": [] }, + { + "name": "collectionDescriptionsInOverview", + "parameterTypes": ["java.lang.Boolean"] + }, + { "name": "defaultStyle", "parameterTypes": ["java.lang.String"] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "footerText", "parameterTypes": ["java.lang.String"] }, + { "name": "leafletAttribution", "parameterTypes": ["java.lang.String"] }, + { "name": "leafletUrl", "parameterTypes": ["java.lang.String"] }, + { "name": "legalName", "parameterTypes": ["java.lang.String"] }, + { "name": "legalUrl", "parameterTypes": ["java.lang.String"] }, + { "name": "noIndexEnabled", "parameterTypes": ["java.lang.Boolean"] }, + { + "name": "openLayersAttribution", + "parameterTypes": ["java.lang.String"] + }, + { "name": "openLayersUrl", "parameterTypes": ["java.lang.String"] }, + { "name": "privacyName", "parameterTypes": ["java.lang.String"] }, + { "name": "privacyUrl", "parameterTypes": ["java.lang.String"] }, + { "name": "schemaOrgEnabled", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "sendEtags", "parameterTypes": ["java.lang.Boolean"] }, + { + "name": "suppressEmptyCollectionsInOverview", + "parameterTypes": ["java.lang.Boolean"] + }, + { "name": "loginProvider", "parameterTypes": ["java.lang.String"] } + ] + }, + { + "name": "de.ii.ogcapi.html.domain.MapClient$Type", + "allDeclaredFields": true, + "allPublicFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.json.domain.ImmutableJsonConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getBuildingBlock", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.json.domain.ImmutableJsonConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] } + ] + }, + { + "name": "de.ii.ogcapi.json.domain.JsonConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.json.domain.JsonConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.oas30.domain.ImmutableOas30Configuration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getBuildingBlock", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.oas30.domain.ImmutableOas30Configuration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] } + ] + }, + { + "name": "de.ii.ogcapi.oas30.domain.Oas30Configuration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.oas30.domain.Oas30Configuration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.projections.app.ImmutableProjectionsConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getBuildingBlock", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.projections.app.ImmutableProjectionsConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] } + ] + }, + { + "name": "de.ii.ogcapi.projections.app.ProjectionsConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.projections.app.ProjectionsConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.resources.domain.ImmutableResourcesConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getBuildingBlock", "parameterTypes": [] }, + { "name": "getCaching", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getManagerEnabled", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.resources.domain.ImmutableResourcesConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "managerEnabled", "parameterTypes": ["java.lang.Boolean"] } + ] + }, + { + "name": "de.ii.ogcapi.resources.domain.ResourcesConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.resources.domain.ResourcesConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.routes.domain.RoutingFlag", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.routes.domain.ImmutableRoutingFlag", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getLabel", "parameterTypes": [] }, + { "name": "getDefault", "parameterTypes": [] }, + { "name": "getProviderFlag", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.routes.domain.ImmutableRoutingFlag$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "label", "parameterTypes": ["java.lang.String"] }, + { "name": "getDefault", "parameterTypes": ["boolean"] }, + { "name": "providerFlag", "parameterTypes": ["java.util.Optional"] } + ] + }, + { + "name": "de.ii.ogcapi.routes.domain.HtmlForm", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.routes.domain.ImmutableHtmlForm", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getDefaults", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.routes.domain.ImmutableHtmlForm$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "defaults", "parameterTypes": ["java.util.Optional"] } + ] + }, + { + "name": "de.ii.ogcapi.routes.domain.HtmlFormDefaults", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.routes.domain.ImmutableHtmlFormDefaults", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getName", "parameterTypes": [] }, + { "name": "getStart", "parameterTypes": [] }, + { "name": "getEnd", "parameterTypes": [] }, + { "name": "getCenter", "parameterTypes": [] }, + { "name": "getCenterLevel", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.routes.domain.ImmutableHtmlFormDefaults$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "name", "parameterTypes": ["java.util.Optional"] }, + { "name": "start", "parameterTypes": ["java.lang.Iterable"] }, + { "name": "end", "parameterTypes": ["java.lang.Iterable"] }, + { "name": "center", "parameterTypes": ["java.lang.Iterable"] }, + { "name": "centerLevel", "parameterTypes": ["java.lang.Integer"] } + ] + }, + { + "name": "de.ii.ogcapi.routes.domain.ImmutableRoutingConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getAdditionalFlags", "parameterTypes": [] }, + { "name": "getBuildingBlock", "parameterTypes": [] }, + { "name": "getCaching", "parameterTypes": [] }, + { "name": "getCoordinatePrecision", "parameterTypes": [] }, + { "name": "getDefaultCrs", "parameterTypes": [] }, + { "name": "getDefaultMode", "parameterTypes": [] }, + { "name": "getDefaultPreference", "parameterTypes": [] }, + { + "name": "getElevationProfileSimplificationTolerance", + "parameterTypes": [] + }, + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getFeatureType", "parameterTypes": [] }, + { "name": "getHeightRestrictions", "parameterTypes": [] }, + { "name": "getHtml", "parameterTypes": [] }, + { "name": "getIntermediateWaypoints", "parameterTypes": [] }, + { "name": "getManageRoutes", "parameterTypes": [] }, + { "name": "getObstacles", "parameterTypes": [] }, + { "name": "getSpeedLimitUnit", "parameterTypes": [] }, + { "name": "getWeightRestrictions", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.routes.domain.ImmutableRoutingConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "additionalFlags", "parameterTypes": ["java.util.Map"] }, + { + "name": "caching", + "parameterTypes": ["de.ii.ogcapi.foundation.domain.Caching"] + }, + { "name": "coordinatePrecision", "parameterTypes": ["java.util.Map"] }, + { + "name": "defaultCrs", + "parameterTypes": [ + "de.ii.ogcapi.features.core.domain.FeaturesCoreConfiguration$DefaultCrs" + ] + }, + { "name": "defaultMode", "parameterTypes": ["java.lang.String"] }, + { "name": "defaultPreference", "parameterTypes": ["java.lang.String"] }, + { + "name": "elevationProfileSimplificationTolerance", + "parameterTypes": ["java.lang.Double"] + }, + { "name": "featureType", "parameterTypes": ["java.lang.String"] }, + { "name": "heightRestrictions", "parameterTypes": ["java.lang.Boolean"] }, + { + "name": "html", + "parameterTypes": ["de.ii.ogcapi.routes.domain.HtmlForm"] + }, + { + "name": "intermediateWaypoints", + "parameterTypes": ["java.lang.Boolean"] + }, + { "name": "manageRoutes", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "obstacles", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "speedLimitUnit", "parameterTypes": ["java.lang.String"] }, + { "name": "weightRestrictions", "parameterTypes": ["java.lang.Boolean"] } + ] + }, + { + "name": "de.ii.ogcapi.routes.domain.RoutingConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.sorting.domain.ImmutableSortingConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getBuildingBlock", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getExcluded", "parameterTypes": [] }, + { "name": "getIncluded", "parameterTypes": [] }, + { "name": "getPathSeparator", "parameterTypes": [] }, + { "name": "getSortables", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.sorting.domain.ImmutableSortingConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "included", "parameterTypes": ["java.lang.Iterable"] }, + { + "name": "pathSeparator", + "parameterTypes": [ + "de.ii.ogcapi.collections.queryables.domain.QueryablesConfiguration$PathSeparator" + ] + }, + { "name": "sortables", "parameterTypes": ["java.lang.Iterable"] } + ] + }, + { + "name": "de.ii.ogcapi.sorting.domain.SortingConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.sorting.domain.SortingConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.styles.domain.ImmutableStylesConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getBuildingBlock", "parameterTypes": [] }, + { "name": "getCaching", "parameterTypes": [] }, + { "name": "getDefaultStyle", "parameterTypes": [] }, + { "name": "getDeriveCollectionStyles", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getLayerControlAllLayers", "parameterTypes": [] }, + { "name": "getManagerEnabled", "parameterTypes": [] }, + { "name": "getResourceManagerEnabled", "parameterTypes": [] }, + { "name": "getResourcesEnabled", "parameterTypes": [] }, + { "name": "getStyleEncodings", "parameterTypes": [] }, + { "name": "getUseIdFromStylesheet", "parameterTypes": [] }, + { "name": "getValidationEnabled", "parameterTypes": [] }, + { "name": "getWebmapWithLayerControl", "parameterTypes": [] }, + { "name": "getWebmapWithPopup", "parameterTypes": [] }, + { "name": "getLegendEnabled", "parameterTypes": [] }, + { "name": "getAddBoundsToVectorSource", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.styles.domain.ImmutableStylesConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "defaultStyle", "parameterTypes": ["java.lang.String"] }, + { + "name": "deriveCollectionStyles", + "parameterTypes": ["java.lang.Boolean"] + }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, + { + "name": "layerControlAllLayers", + "parameterTypes": ["java.lang.Boolean"] + }, + { "name": "managerEnabled", "parameterTypes": ["java.lang.Boolean"] }, + { + "name": "resourceManagerEnabled", + "parameterTypes": ["java.lang.Boolean"] + }, + { "name": "resourcesEnabled", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "styleEncodings", "parameterTypes": ["java.lang.Iterable"] }, + { + "name": "useIdFromStylesheet", + "parameterTypes": ["java.lang.Boolean"] + }, + { "name": "validationEnabled", "parameterTypes": ["java.lang.Boolean"] }, + { + "name": "webmapWithLayerControl", + "parameterTypes": ["java.lang.Boolean"] + }, + { "name": "webmapWithPopup", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "legendEnabled", "parameterTypes": ["java.lang.Boolean"] }, + { + "name": "addBoundsToVectorSource", + "parameterTypes": ["java.lang.Boolean"] + } + ] + }, + { + "name": "de.ii.ogcapi.styles.domain.StylesConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.styles.domain.StylesConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.text.search.domain.ImmutableTextSearchConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getBuildingBlock", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getProperties", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.text.search.domain.ImmutableTextSearchConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "properties", "parameterTypes": ["java.lang.Iterable"] } + ] + }, + { + "name": "de.ii.ogcapi.tilematrixsets.domain.ImmutableTileMatrixSetsConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getBuildingBlock", "parameterTypes": [] }, + { "name": "getCaching", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getIncludePredefined", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.tilematrixsets.domain.TileMatrixSetsConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.tilematrixsets.domain.ImmutableTileMatrixSetsConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "includePredefined", "parameterTypes": ["java.lang.Iterable"] }, + { + "name": "caching", + "parameterTypes": ["de.ii.ogcapi.foundation.domain.Caching"] + } + ] + }, + { + "name": "de.ii.ogcapi.tiles.domain.ImmutableTileProviderFeatures", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getCenter", "parameterTypes": [] }, + { "name": "getFilters", "parameterTypes": [] }, + { "name": "getIgnoreInvalidGeometries", "parameterTypes": [] }, + { "name": "getLimit", "parameterTypes": [] }, + { "name": "getMinimumSizeInPixel", "parameterTypes": [] }, + { "name": "getMultiCollectionEnabled", "parameterTypes": [] }, + { "name": "getRules", "parameterTypes": [] }, + { "name": "getSeeding", "parameterTypes": [] }, + { "name": "getSeedingOptions", "parameterTypes": [] }, + { "name": "getSingleCollectionEnabled", "parameterTypes": [] }, + { "name": "getTileEncodings", "parameterTypes": [] }, + { "name": "getType", "parameterTypes": [] }, + { "name": "getZoomLevels", "parameterTypes": [] }, + { "name": "getZoomLevelsCache", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.tiles.domain.ImmutableTileProviderFeatures$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "center", "parameterTypes": ["java.lang.Iterable"] }, + { "name": "filters", "parameterTypes": ["java.util.Map"] }, + { + "name": "ignoreInvalidGeometries", + "parameterTypes": ["java.lang.Boolean"] + }, + { "name": "limit", "parameterTypes": ["java.lang.Integer"] }, + { "name": "minimumSizeInPixel", "parameterTypes": ["java.lang.Double"] }, + { + "name": "multiCollectionEnabled", + "parameterTypes": ["java.lang.Boolean"] + }, + { "name": "rules", "parameterTypes": ["java.util.Map"] }, + { "name": "seeding", "parameterTypes": ["java.util.Map"] }, + { "name": "seedingOptions", "parameterTypes": ["java.util.Optional"] }, + { + "name": "singleCollectionEnabled", + "parameterTypes": ["java.lang.Boolean"] + }, + { "name": "tileEncodings", "parameterTypes": ["java.lang.Iterable"] }, + { "name": "zoomLevels", "parameterTypes": ["java.util.Map"] }, + { "name": "zoomLevelsCache", "parameterTypes": ["java.util.Map"] } + ] + }, + { + "name": "de.ii.ogcapi.tiles.domain.ImmutableTileProviderMbtiles", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getFilename", "parameterTypes": [] }, + { "name": "getTileMatrixSetId", "parameterTypes": [] }, + { "name": "getType", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.tiles.domain.ImmutableTileProviderMbtiles$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "filename", "parameterTypes": ["java.lang.String"] }, + { "name": "tileMatrixSetId", "parameterTypes": ["java.lang.String"] } + ] + }, + { + "name": "de.ii.ogcapi.tiles.domain.ImmutableTileProviderTileServer", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getUrlTemplate", "parameterTypes": [] }, + { "name": "getUrlTemplateSingleCollection", "parameterTypes": [] }, + { "name": "getTileEncodings", "parameterTypes": [] }, + { "name": "getType", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.tiles.domain.ImmutableTileProviderTileServer$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "urlTemplate", "parameterTypes": ["java.lang.String"] }, + { + "name": "urlTemplateSingleCollection", + "parameterTypes": ["java.lang.String"] + }, + { "name": "tileEncodings", "parameterTypes": ["java.lang.Iterable"] } + ] + }, + { + "name": "de.ii.ogcapi.tiles.domain.ImmutableTilesConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getBuildingBlock", "parameterTypes": [] }, + { "name": "getCache", "parameterTypes": [] }, + { "name": "getCaching", "parameterTypes": [] }, + { "name": "getCenter", "parameterTypes": [] }, + { "name": "getCollectionTiles", "parameterTypes": [] }, + { "name": "getDatasetTiles", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getFilters", "parameterTypes": [] }, + { "name": "getIgnoreInvalidGeometries", "parameterTypes": [] }, + { "name": "getLimit", "parameterTypes": [] }, + { "name": "getMapClientType", "parameterTypes": [] }, + { "name": "getMaxMultiplicity", "parameterTypes": [] }, + { "name": "getMinimumSizeInPixel", "parameterTypes": [] }, + { "name": "getRemoveZoomLevelConstraints", "parameterTypes": [] }, + { "name": "getRules", "parameterTypes": [] }, + { "name": "getSeeding", "parameterTypes": [] }, + { "name": "getSeedingOptions", "parameterTypes": [] }, + { "name": "getStyle", "parameterTypes": [] }, + { "name": "getTileEncodings", "parameterTypes": [] }, + { "name": "getTileProvider", "parameterTypes": [] }, + { "name": "getTileProviderTileset", "parameterTypes": [] }, + { "name": "getTileSetEncodings", "parameterTypes": [] }, + { "name": "getTransformations", "parameterTypes": [] }, + { "name": "getZoomLevels", "parameterTypes": [] }, + { "name": "getZoomLevelsCache", "parameterTypes": [] }, + { "name": "getWmts", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.tiles.domain.ImmutableTilesConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { + "name": "cache", + "parameterTypes": [ + "de.ii.ogcapi.tiles.domain.TilesConfiguration$TileCacheType" + ] + }, + { "name": "center", "parameterTypes": ["java.lang.Iterable"] }, + { "name": "collectionTiles", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "datasetTiles", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "filters", "parameterTypes": ["java.util.Map"] }, + { + "name": "ignoreInvalidGeometries", + "parameterTypes": ["java.lang.Boolean"] + }, + { "name": "limit", "parameterTypes": ["java.lang.Integer"] }, + { + "name": "mapClientType", + "parameterTypes": ["de.ii.ogcapi.html.domain.MapClient$Type"] + }, + { "name": "minimumSizeInPixel", "parameterTypes": ["java.lang.Double"] }, + { + "name": "removeZoomLevelConstraints", + "parameterTypes": ["java.lang.Boolean"] + }, + { "name": "rules", "parameterTypes": ["java.util.Map"] }, + { "name": "seeding", "parameterTypes": ["java.util.Map"] }, + { "name": "seedingOptions", "parameterTypes": ["java.util.Optional"] }, + { "name": "style", "parameterTypes": ["java.lang.String"] }, + { "name": "tileEncodings", "parameterTypes": ["java.lang.Iterable"] }, + { "name": "tileProvider", "parameterTypes": ["java.lang.String"] }, + { "name": "tileProviderTileset", "parameterTypes": ["java.lang.String"] }, + { "name": "tileSetEncodings", "parameterTypes": ["java.lang.Iterable"] }, + { "name": "transformations", "parameterTypes": ["java.util.Map"] }, + { "name": "zoomLevels", "parameterTypes": ["java.util.Map"] }, + { "name": "zoomLevelsCache", "parameterTypes": ["java.util.Map"] }, + { + "name": "wmts", + "parameterTypes": [ + "de.ii.ogcapi.tiles.domain.TilesConfiguration$WmtsScope" + ] + } + ] + }, + { + "name": "de.ii.ogcapi.tiles.domain.TilesConfiguration$WmtsScope", + "allDeclaredFields": true, + "allPublicFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.tiles.domain.TileProvider", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true + }, + { + "name": "de.ii.ogcapi.tiles.domain.TileProviderFeatures", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.tiles.domain.TileProviderMbtiles", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.tiles.domain.TilesConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.tiles.domain.TilesConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.tiles.domain.TilesConfiguration$TileCacheType", + "allDeclaredFields": true, + "allPublicFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.tiles3d.domain.ImmutableTiles3dConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getBuildingBlock", "parameterTypes": [] }, + { "name": "getClampToEllipsoid", "parameterTypes": [] }, + { "name": "getContentFilters", "parameterTypes": [] }, + { "name": "getCustomTerrainProviderUri", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getFirstLevelWithContent", "parameterTypes": [] }, + { "name": "getGeometricErrorRoot", "parameterTypes": [] }, + { "name": "getIonAccessToken", "parameterTypes": [] }, + { "name": "getMaptilerApiKey", "parameterTypes": [] }, + { "name": "getMaxLevel", "parameterTypes": [] }, + { "name": "getSeeding", "parameterTypes": [] }, + { "name": "getStyle", "parameterTypes": [] }, + { "name": "getSubtreeLevels", "parameterTypes": [] }, + { "name": "getTerrainHeightDifference", "parameterTypes": [] }, + { "name": "getTileFilters", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.tiles3d.domain.ImmutableTiles3dConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "clampToEllipsoid", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, + { + "name": "firstLevelWithContent", + "parameterTypes": ["java.lang.Integer"] + }, + { "name": "geometricErrorRoot", "parameterTypes": ["java.lang.Float"] }, + { "name": "maxLevel", "parameterTypes": ["java.lang.Integer"] }, + { "name": "seedingBuilder", "parameterTypes": [] }, + { "name": "subtreeLevels", "parameterTypes": ["java.lang.Integer"] } + ] + }, + { + "name": "de.ii.ogcapi.tiles3d.domain.Tiles3dConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.tiles3d.domain.Tiles3dConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.xml.domain.ImmutableXmlConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getBuildingBlock", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.xml.domain.ImmutableXmlConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] } + ] + }, + { + "name": "de.ii.ogcapi.xml.domain.XmlConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.xml.domain.XmlConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.auth.app.ImmutableUserData", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getCreatedAt", "parameterTypes": [] }, + { "name": "getEntityStorageVersion", "parameterTypes": [] }, + { "name": "getId", "parameterTypes": [] }, + { "name": "getLastModified", "parameterTypes": [] }, + { "name": "getPassword", "parameterTypes": [] }, + { "name": "getPasswordExpiresAt", "parameterTypes": [] }, + { "name": "getRole", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.auth.app.ImmutableUserData$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "createdAt", "parameterTypes": ["long"] }, + { "name": "entityStorageVersion", "parameterTypes": ["long"] }, + { "name": "id", "parameterTypes": ["java.lang.String"] }, + { "name": "lastModified", "parameterTypes": ["long"] }, + { "name": "password", "parameterTypes": ["java.lang.String"] }, + { + "name": "role", + "parameterTypes": ["de.ii.xtraplatform.auth.domain.Role"] + } + ] + }, + { + "name": "de.ii.xtraplatform.auth.app.User$UserData", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.auth.app.User$UserData$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.auth.domain.Role", + "allDeclaredFields": true, + "allPublicFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.codelists.domain.Codelist", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.codelists.domain.Codelist$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.codelists.domain.Codelist$ImportType", + "allDeclaredFields": true, + "allPublicFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.codelists.domain.ImmutableCodelist", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getEntries", "parameterTypes": [] }, + { "name": "getFallback", "parameterTypes": [] }, + { "name": "getLabel", "parameterTypes": [] }, + { "name": "getSourceType", "parameterTypes": [] }, + { "name": "getSourceUrl", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.codelists.domain.ImmutableCodelist$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "entries", "parameterTypes": ["java.util.Map"] }, + { "name": "fallback", "parameterTypes": ["java.util.Optional"] }, + { "name": "label", "parameterTypes": ["java.util.Optional"] }, + { + "name": "sourceType", + "parameterTypes": [ + "de.ii.xtraplatform.codelists.domain.Codelist$ImportType" + ] + }, + { "name": "sourceUrl", "parameterTypes": ["java.util.Optional"] } + ] + }, + { + "name": "de.ii.ogcapi.styles.domain.MbStyleStylesheet", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.ogcapi.styles.domain.ImmutableMbStyleStylesheet", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getVersion", "parameterTypes": [] }, + { "name": "getName", "parameterTypes": [] }, + { "name": "getMetadata", "parameterTypes": [] }, + { "name": "getCenter", "parameterTypes": [] }, + { "name": "getZoom", "parameterTypes": [] }, + { "name": "getBearing", "parameterTypes": [] }, + { "name": "getPitch", "parameterTypes": [] }, + { "name": "getLight", "parameterTypes": [] }, + { "name": "getSources", "parameterTypes": [] }, + { "name": "getSprite", "parameterTypes": [] }, + { "name": "getGlyphs", "parameterTypes": [] }, + { "name": "getTransition", "parameterTypes": [] }, + { "name": "getLayers", "parameterTypes": [] }, + { "name": "getTerrain", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.styles.domain.MbStyleVectorSource", + "queryAllDeclaredMethods": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getType", "parameterTypes": [] }, + { "name": "getUrl", "parameterTypes": [] }, + { "name": "getTiles", "parameterTypes": [] }, + { "name": "getBounds", "parameterTypes": [] }, + { "name": "getScheme", "parameterTypes": [] }, + { "name": "getMinzoom", "parameterTypes": [] }, + { "name": "getMaxzoom", "parameterTypes": [] }, + { "name": "getAttribution", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.styles.domain.ImmutableMbStyleVectorSource", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getType", "parameterTypes": [] }, + { "name": "getUrl", "parameterTypes": [] }, + { "name": "getTiles", "parameterTypes": [] }, + { "name": "getBounds", "parameterTypes": [] }, + { "name": "getScheme", "parameterTypes": [] }, + { "name": "getMinzoom", "parameterTypes": [] }, + { "name": "getMaxzoom", "parameterTypes": [] }, + { "name": "getAttribution", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.styles.domain.MbStyleLayer", + "queryAllDeclaredMethods": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getId", "parameterTypes": [] }, + { "name": "getType", "parameterTypes": [] }, + { "name": "getMetadata", "parameterTypes": [] }, + { "name": "getSource", "parameterTypes": [] }, + { "name": "getSourceLayer", "parameterTypes": [] }, + { "name": "getMinzoom", "parameterTypes": [] }, + { "name": "getMaxzoom", "parameterTypes": [] }, + { "name": "getFilter", "parameterTypes": [] }, + { "name": "getLayout", "parameterTypes": [] }, + { "name": "getPaint", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.ogcapi.styles.domain.ImmutableMbStyleLayer", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getId", "parameterTypes": [] }, + { "name": "getType", "parameterTypes": [] }, + { "name": "getMetadata", "parameterTypes": [] }, + { "name": "getSource", "parameterTypes": [] }, + { "name": "getSourceLayer", "parameterTypes": [] }, + { "name": "getMinzoom", "parameterTypes": [] }, + { "name": "getMaxzoom", "parameterTypes": [] }, + { "name": "getFilter", "parameterTypes": [] }, + { "name": "getLayout", "parameterTypes": [] }, + { "name": "getPaint", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.crs.domain.BoundingBox", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.crs.domain.EpsgCrs", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.crs.domain.EpsgCrs$Force", + "allDeclaredFields": true, + "allPublicFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.crs.domain.ImmutableBoundingBox", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getEpsgCrs", "parameterTypes": [] }, + { "name": "getXmax", "parameterTypes": [] }, + { "name": "getXmin", "parameterTypes": [] }, + { "name": "getYmax", "parameterTypes": [] }, + { "name": "getYmin", "parameterTypes": [] }, + { "name": "getZmax", "parameterTypes": [] }, + { "name": "getZmin", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.crs.domain.ImmutableBoundingBox$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { + "name": "epsgCrs", + "parameterTypes": ["de.ii.xtraplatform.crs.domain.EpsgCrs"] + }, + { "name": "xmax", "parameterTypes": ["double"] }, + { "name": "xmin", "parameterTypes": ["double"] }, + { "name": "ymax", "parameterTypes": ["double"] }, + { "name": "ymin", "parameterTypes": ["double"] } + ] + }, + { + "name": "de.ii.xtraplatform.crs.domain.ImmutableEpsgCrs", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getCode", "parameterTypes": [] }, + { "name": "getForceAxisOrder", "parameterTypes": [] }, + { "name": "getVerticalCode", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.crs.domain.ImmutableEpsgCrs$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "code", "parameterTypes": ["int"] }, + { "name": "verticalCode", "parameterTypes": ["java.util.OptionalInt"] }, + { + "name": "forceAxisOrder", + "parameterTypes": ["de.ii.xtraplatform.crs.domain.EpsgCrs$Force"] + }, + { "name": "forceLongitudeFirst", "parameterTypes": ["boolean"] } + ] + }, + { + "name": "de.ii.xtraplatform.features.domain.ConnectionInfo", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.features.domain.ExtendableConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.feature.changes.sql.domain.FeatureChangesPgConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.feature.changes.sql.domain.ImmutableFeatureChangesPgConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getType", "parameterTypes": [] }, + { "name": "getListenForTypes", "parameterTypes": [] }, + { "name": "getPollingInterval", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.feature.changes.sql.domain.ImmutableFeatureChangesPgConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "listenForTypes", "parameterTypes": ["java.lang.Iterable"] }, + { + "name": "pollingInterval", + "parameterTypes": ["shadow.io.dropwizard.util.Duration"] + } + ] + }, + { + "name": "de.ii.xtraplatform.schemas.ext.domain.JsonSchemaConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.schemas.ext.domain.ImmutableJsonSchemaConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getType", "parameterTypes": [] }, + { "name": "getObjectTypeRefs", "parameterTypes": [] }, + { "name": "getGeometryTypeRefs", "parameterTypes": [] }, + { "name": "getRelationRefs", "parameterTypes": [] }, + { "name": "getCompositionIndexes", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.schemas.ext.domain.ImmutableJsonSchemaConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "objectTypeRefs", "parameterTypes": ["java.util.Map"] }, + { "name": "geometryTypeRefs", "parameterTypes": ["java.util.Map"] }, + { "name": "relationRefs", "parameterTypes": ["java.util.Map"] }, + { "name": "compositionIndexes", "parameterTypes": ["java.util.Map"] } + ] + }, + { + "name": "de.ii.xtraplatform.routes.sql.domain.RoutesConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.routes.sql.domain.ImmutableRoutesConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getType", "parameterTypes": [] }, + { "name": "getFromToQuery", "parameterTypes": [] }, + { "name": "getEdgesQuery", "parameterTypes": [] }, + { "name": "getRouteQuery", "parameterTypes": [] }, + { "name": "getFlags", "parameterTypes": [] }, + { "name": "getNativeCrs", "parameterTypes": [] }, + { "name": "getModes", "parameterTypes": [] }, + { "name": "getWeightDefault", "parameterTypes": [] }, + { "name": "getHeightDefault", "parameterTypes": [] }, + { "name": "getObstaclesDefault", "parameterTypes": [] }, + { "name": "getWarmup", "parameterTypes": [] }, + { "name": "getPreferences", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.routes.sql.domain.ImmutableRoutesConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "fromToQuery", "parameterTypes": ["java.util.Map"] }, + { "name": "edgesQuery", "parameterTypes": ["java.util.Map"] }, + { "name": "routeQuery", "parameterTypes": ["java.lang.String"] }, + { "name": "flags", "parameterTypes": ["java.util.Map"] }, + { + "name": "nativeCrs", + "parameterTypes": ["de.ii.xtraplatform.crs.domain.EpsgCrs"] + }, + { "name": "modes", "parameterTypes": ["java.util.Map"] }, + { "name": "weightDefault", "parameterTypes": ["java.lang.String"] }, + { "name": "heightDefault", "parameterTypes": ["java.lang.String"] }, + { "name": "obstaclesDefault", "parameterTypes": ["java.lang.String"] }, + { "name": "warmup", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "preferences", "parameterTypes": ["java.util.Map"] } + ] + }, + { + "name": "de.ii.xtraplatform.routes.sql.domain.Preference", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.routes.sql.domain.ImmutablePreference", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getLabel", "parameterTypes": [] }, + { "name": "getCostColumn", "parameterTypes": [] }, + { "name": "getReverseCostColumn", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.routes.sql.domain.ImmutablePreference$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "label", "parameterTypes": ["java.lang.String"] }, + { "name": "costColumn", "parameterTypes": ["java.lang.String"] }, + { "name": "reverseCostColumn", "parameterTypes": ["java.lang.String"] } + ] + }, + { + "name": "de.ii.xtraplatform.features.domain.ExtensionConfiguration", + "queryAllDeclaredMethods": true, + "methods": [{ "name": "getType", "parameterTypes": [] }] + }, + { + "name": "de.ii.xtraplatform.features.domain.ExtensionConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.features.domain.FeatureProviderDataV2", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.features.domain.FeatureProviderDataV2$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "methods": [ + { "name": "getFragments2", "parameterTypes": [] }, + { "name": "getTypes2", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.features.domain.FeatureSchema", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.features.domain.FeatureSchema$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "methods": [ + { "name": "concatBuilders", "parameterTypes": ["java.lang.Iterable"] }, + { "name": "coalesceBuilders", "parameterTypes": ["java.lang.Iterable"] } + ] + }, + { + "name": "de.ii.xtraplatform.features.domain.FeatureSchemaBase", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.features.domain.SchemaBase$Scope", + "allDeclaredFields": true, + "allPublicFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.features.domain.FeatureTypeConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.features.domain.ImmutableFeatureSchema", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getAdditionalInfo", "parameterTypes": [] }, + { "name": "getCoalesce", "parameterTypes": [] }, + { "name": "getConcat", "parameterTypes": [] }, + { "name": "getConstantValue", "parameterTypes": [] }, + { "name": "getConstraints", "parameterTypes": [] }, + { "name": "getDescription", "parameterTypes": [] }, + { "name": "getForcePolygonCCW", "parameterTypes": [] }, + { "name": "getGeometryType", "parameterTypes": [] }, + { "name": "getIsQueryable", "parameterTypes": [] }, + { "name": "getIsSortable", "parameterTypes": [] }, + { "name": "getLabel", "parameterTypes": [] }, + { "name": "getMerge", "parameterTypes": [] }, + { "name": "getObjectType", "parameterTypes": [] }, + { "name": "getPropertyMap", "parameterTypes": [] }, + { "name": "getRefType", "parameterTypes": [] }, + { "name": "getRefKeyTemplate", "parameterTypes": [] }, + { "name": "getRefUriTemplate", "parameterTypes": [] }, + { "name": "getRole", "parameterTypes": [] }, + { "name": "getSchema", "parameterTypes": [] }, + { "name": "getScope", "parameterTypes": [] }, + { "name": "getExcludedScopes", "parameterTypes": [] }, + { "name": "getSourcePath", "parameterTypes": [] }, + { "name": "getSourcePaths", "parameterTypes": [] }, + { "name": "getTransformations", "parameterTypes": [] }, + { "name": "getDesiredType", "parameterTypes": [] }, + { "name": "getUnit", "parameterTypes": [] }, + { "name": "getValueType", "parameterTypes": [] }, + { "name": "getLinearizeCurves", "parameterTypes": [] }, + { "name": "getIsLastModified", "parameterTypes": [] }, + { "name": "getFormat", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.features.domain.ImmutableFeatureSchema$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "additionalInfo", "parameterTypes": ["java.util.Map"] }, + { "name": "concat", "parameterTypes": ["java.lang.Iterable"] }, + { "name": "coalesce", "parameterTypes": ["java.lang.Iterable"] }, + { "name": "constantValue", "parameterTypes": ["java.util.Optional"] }, + { "name": "constraintsBuilder", "parameterTypes": [] }, + { "name": "description", "parameterTypes": ["java.util.Optional"] }, + { "name": "forcePolygonCCW", "parameterTypes": ["java.util.Optional"] }, + { "name": "geometryType", "parameterTypes": ["java.util.Optional"] }, + { "name": "isQueryable", "parameterTypes": ["java.util.Optional"] }, + { "name": "isSortable", "parameterTypes": ["java.util.Optional"] }, + { "name": "label", "parameterTypes": ["java.util.Optional"] }, + { "name": "merge", "parameterTypes": ["java.lang.Iterable"] }, + { "name": "objectType", "parameterTypes": ["java.util.Optional"] }, + { "name": "propertyMap", "parameterTypes": ["java.util.Map"] }, + { "name": "refType", "parameterTypes": ["java.util.Optional"] }, + { "name": "refKeyTemplate", "parameterTypes": ["java.util.Optional"] }, + { "name": "refUriTemplate", "parameterTypes": ["java.util.Optional"] }, + { "name": "role", "parameterTypes": ["java.util.Optional"] }, + { "name": "schema", "parameterTypes": ["java.util.Optional"] }, + { "name": "sourcePath", "parameterTypes": ["java.util.Optional"] }, + { "name": "sourcePaths", "parameterTypes": ["java.lang.Iterable"] }, + { "name": "transformations", "parameterTypes": ["java.lang.Iterable"] }, + { + "name": "desiredType", + "parameterTypes": ["de.ii.xtraplatform.features.domain.SchemaBase$Type"] + }, + { "name": "unit", "parameterTypes": ["java.util.Optional"] }, + { "name": "valueType", "parameterTypes": ["java.util.Optional"] }, + { "name": "isLastModified", "parameterTypes": ["java.util.Optional"] }, + { "name": "scope", "parameterTypes": ["java.util.Optional"] }, + { "name": "excludedScopes", "parameterTypes": ["java.lang.Iterable"] }, + { "name": "linearizeCurves", "parameterTypes": ["java.util.Optional"] }, + { "name": "format", "parameterTypes": ["java.util.Optional"] } + ] + }, + { + "name": "de.ii.xtraplatform.features.domain.ImmutablePartialObjectSchema", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getPropertyMap", "parameterTypes": [] }, + { "name": "getSchema", "parameterTypes": [] }, + { "name": "getSourcePath", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.features.domain.ImmutablePartialObjectSchema$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "schema", "parameterTypes": ["java.util.Optional"] }, + { "name": "sourcePath", "parameterTypes": ["java.util.Optional"] } + ] + }, + { + "name": "de.ii.xtraplatform.features.domain.ImmutableProviderCommonData$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "enabled", "parameterTypes": ["boolean"] }, + { "name": "createdAt", "parameterTypes": ["long"] }, + { "name": "entityStorageVersion", "parameterTypes": ["long"] }, + { "name": "id", "parameterTypes": ["java.lang.String"] }, + { "name": "lastModified", "parameterTypes": ["long"] }, + { "name": "providerSubType", "parameterTypes": ["java.lang.String"] }, + { "name": "providerType", "parameterTypes": ["java.lang.String"] } + ] + }, + { + "name": "de.ii.xtraplatform.features.domain.ImmutableSchemaConstraints", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getClosed", "parameterTypes": [] }, + { "name": "getCodelist", "parameterTypes": [] }, + { "name": "getComposite", "parameterTypes": [] }, + { "name": "getEnumValues", "parameterTypes": [] }, + { "name": "getMax", "parameterTypes": [] }, + { "name": "getMaxOccurrence", "parameterTypes": [] }, + { "name": "getMin", "parameterTypes": [] }, + { "name": "getMinOccurrence", "parameterTypes": [] }, + { "name": "getRegex", "parameterTypes": [] }, + { "name": "getRequired", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.features.domain.ImmutableSchemaConstraints$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "closed", "parameterTypes": ["java.util.Optional"] }, + { "name": "codelist", "parameterTypes": ["java.util.Optional"] }, + { "name": "composite", "parameterTypes": ["java.util.Optional"] }, + { "name": "enumValues", "parameterTypes": ["java.lang.Iterable"] }, + { "name": "max", "parameterTypes": ["java.util.Optional"] }, + { "name": "min", "parameterTypes": ["java.util.Optional"] }, + { "name": "maxOccurrence", "parameterTypes": ["java.util.Optional"] }, + { "name": "minOccurrence", "parameterTypes": ["java.util.Optional"] }, + { "name": "regex", "parameterTypes": ["java.util.Optional"] }, + { "name": "required", "parameterTypes": ["java.util.Optional"] } + ] + }, + { + "name": "de.ii.xtraplatform.features.domain.PartialObjectSchema", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.features.domain.PartialObjectSchema$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.features.domain.PropertiesSchema", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.features.domain.PropertiesSchema$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "methods": [ + { "name": "putProperties2", "parameterTypes": ["java.util.Map"] } + ] + }, + { + "name": "de.ii.xtraplatform.features.domain.PropertiesSchema$BuilderWithName", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.features.domain.ProviderCommonData$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.features.domain.ProviderData", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.features.domain.SchemaBase", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.features.domain.SchemaBase$Role", + "allDeclaredFields": true, + "allPublicFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.features.domain.SchemaBase$Type", + "allDeclaredFields": true, + "allPublicFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.features.domain.SchemaConstraints", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.features.domain.WithConnectionInfo", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.features.domain.ZoneIdFromString", + "methods": [{ "name": "", "parameterTypes": [] }] + }, + { + "name": "de.ii.xtraplatform.features.domain.transform.ImmutablePropertyTransformation", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getCodelist", "parameterTypes": [] }, + { "name": "getDateFormat", "parameterTypes": [] }, + { "name": "getFlatten", "parameterTypes": [] }, + { "name": "getNullify", "parameterTypes": [] }, + { "name": "getObjectReduceFormat", "parameterTypes": [] }, + { "name": "getObjectReduceSelect", "parameterTypes": [] }, + { "name": "getObjectMapFormat", "parameterTypes": [] }, + { "name": "getObjectRemoveSelect", "parameterTypes": [] }, + { "name": "getArrayReduceFormat", "parameterTypes": [] }, + { "name": "getRemove", "parameterTypes": [] }, + { "name": "getRename", "parameterTypes": [] }, + { "name": "getStringFormat", "parameterTypes": [] }, + { "name": "getRemoveNullValues", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.features.domain.transform.ImmutablePropertyTransformation$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "codelist", "parameterTypes": ["java.util.Optional"] }, + { "name": "dateFormat", "parameterTypes": ["java.util.Optional"] }, + { "name": "flatten", "parameterTypes": ["java.util.Optional"] }, + { "name": "getNull", "parameterTypes": ["java.util.Optional"] }, + { "name": "nullify", "parameterTypes": ["java.lang.Iterable"] }, + { + "name": "objectReduceFormat", + "parameterTypes": ["java.util.Optional"] + }, + { + "name": "objectReduceSelect", + "parameterTypes": ["java.util.Optional"] + }, + { "name": "objectMapFormat", "parameterTypes": ["java.util.Map"] }, + { + "name": "objectRemoveSelect", + "parameterTypes": ["java.util.Optional"] + }, + { "name": "arrayReduceFormat", "parameterTypes": ["java.util.Optional"] }, + { "name": "remove", "parameterTypes": ["java.util.Optional"] }, + { "name": "rename", "parameterTypes": ["java.util.Optional"] }, + { "name": "stringFormat", "parameterTypes": ["java.util.Optional"] }, + { "name": "removeNullValues", "parameterTypes": ["java.util.Optional"] } + ] + }, + { + "name": "de.ii.xtraplatform.features.domain.transform.PropertyTransformation", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.features.domain.transform.PropertyTransformation$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.features.domain.transform.PropertyTransformations", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.features.sql.domain.ConnectionInfoSql", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.features.sql.domain.ConnectionInfoSql$Dialect", + "allDeclaredFields": true, + "allPublicFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.features.sql.domain.ConnectionInfoSql$PoolSettings", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.features.sql.domain.FeatureProviderSqlData", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.features.sql.domain.FeatureProviderSqlData$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.features.sql.domain.FeatureProviderSqlData$QueryGeneratorSettings", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.features.sql.domain.ImmutableConnectionInfoSql", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getConnectionUri", "parameterTypes": [] }, + { "name": "getConnectorType", "parameterTypes": [] }, + { "name": "getDatabase", "parameterTypes": [] }, + { "name": "getDialect", "parameterTypes": [] }, + { "name": "getDriverOptions", "parameterTypes": [] }, + { "name": "getHost", "parameterTypes": [] }, + { "name": "getPassword", "parameterTypes": [] }, + { "name": "getPool", "parameterTypes": [] }, + { "name": "getSchemas", "parameterTypes": [] }, + { "name": "getTriggers", "parameterTypes": [] }, + { "name": "getUser", "parameterTypes": [] }, + { "name": "getAssumeExternalChanges", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.features.sql.domain.ImmutableConnectionInfoSql$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "database", "parameterTypes": ["java.lang.String"] }, + { "name": "dialect", "parameterTypes": ["java.lang.String"] }, + { "name": "host", "parameterTypes": ["java.util.Optional"] }, + { "name": "password", "parameterTypes": ["java.util.Optional"] }, + { + "name": "pathSyntaxBuilder", + "parameterTypes": [ + "de.ii.xtraplatform.features.sql.domain.ImmutableSqlPathDefaults$Builder" + ] + }, + { "name": "poolBuilder", "parameterTypes": [] }, + { + "name": "poolBuilder", + "parameterTypes": [ + "de.ii.xtraplatform.features.sql.domain.ImmutablePoolSettings$Builder" + ] + }, + { "name": "schemas", "parameterTypes": ["java.lang.Iterable"] }, + { "name": "user", "parameterTypes": ["java.util.Optional"] }, + { + "name": "assumeExternalChanges", + "parameterTypes": ["java.lang.Boolean"] + } + ] + }, + { + "name": "de.ii.xtraplatform.features.gml.domain.ImmutableConnectionInfoWfsHttp", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getUri", "parameterTypes": [] }, + { "name": "getConnectionUri", "parameterTypes": [] }, + { "name": "getConnectorType", "parameterTypes": [] }, + { "name": "getMethod", "parameterTypes": [] }, + { "name": "getPassword", "parameterTypes": [] }, + { "name": "getDatasetIdentifier", "parameterTypes": [] }, + { "name": "getUser", "parameterTypes": [] }, + { "name": "getVersion", "parameterTypes": [] }, + { "name": "getGmlVersion", "parameterTypes": [] }, + { "name": "getNamespaces", "parameterTypes": [] }, + { "name": "getOtherUrls", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.features.gml.domain.ImmutableConnectionInfoWfsHttp$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "uri", "parameterTypes": ["java.net.URI"] }, + { + "name": "method", + "parameterTypes": [ + "de.ii.xtraplatform.features.gml.domain.ConnectionInfoWfsHttp$METHOD" + ] + }, + { "name": "password", "parameterTypes": ["java.util.Optional"] }, + { "name": "version", "parameterTypes": ["java.lang.String"] }, + { "name": "gmlVersion", "parameterTypes": ["java.util.Optional"] }, + { "name": "namespaces", "parameterTypes": ["java.util.Map"] }, + { "name": "otherUrls", "parameterTypes": ["java.util.Map"] }, + { "name": "user", "parameterTypes": ["java.util.Optional"] } + ] + }, + { + "name": "de.ii.xtraplatform.features.sql.domain.ImmutableFeatureActionTrigger$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true + }, + { + "name": "de.ii.xtraplatform.features.sql.domain.ImmutableFeatureProviderSqlData", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getAuto", "parameterTypes": [] }, + { "name": "getAutoPersist", "parameterTypes": [] }, + { "name": "getAutoTypes", "parameterTypes": [] }, + { "name": "getCodelists", "parameterTypes": [] }, + { "name": "getConnectionInfo", "parameterTypes": [] }, + { "name": "getCreatedAt", "parameterTypes": [] }, + { "name": "getDefaultLanguage", "parameterTypes": [] }, + { "name": "getEntityStorageVersion", "parameterTypes": [] }, + { "name": "getExtensions", "parameterTypes": [] }, + { "name": "getFragments", "parameterTypes": [] }, + { "name": "getId", "parameterTypes": [] }, + { "name": "getLabelTemplate", "parameterTypes": [] }, + { "name": "getLastModified", "parameterTypes": [] }, + { "name": "getNativeCrs", "parameterTypes": [] }, + { "name": "getNativeTimeZone", "parameterTypes": [] }, + { "name": "getProviderSubType", "parameterTypes": [] }, + { "name": "getProviderType", "parameterTypes": [] }, + { "name": "getQueryGeneration", "parameterTypes": [] }, + { "name": "getSourcePathDefaults", "parameterTypes": [] }, + { "name": "getTypeValidation", "parameterTypes": [] }, + { "name": "getTypes", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.features.sql.domain.ImmutableFeatureProviderSqlData$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "enabled", "parameterTypes": ["boolean"] }, + { "name": "addAllExtensions", "parameterTypes": ["java.lang.Iterable"] }, + { "name": "connectionInfoBuilder", "parameterTypes": [] }, + { "name": "createdAt", "parameterTypes": ["long"] }, + { "name": "defaultLanguage", "parameterTypes": ["java.util.Optional"] }, + { "name": "entityStorageVersion", "parameterTypes": ["long"] }, + { "name": "id", "parameterTypes": ["java.lang.String"] }, + { "name": "lastModified", "parameterTypes": ["long"] }, + { "name": "nativeCrsBuilder", "parameterTypes": [] }, + { "name": "nativeTimeZone", "parameterTypes": ["java.util.Optional"] }, + { "name": "providerSubType", "parameterTypes": ["java.lang.String"] }, + { "name": "providerType", "parameterTypes": ["java.lang.String"] }, + { "name": "queryGenerationBuilder", "parameterTypes": [] }, + { + "name": "queryGenerationBuilder", + "parameterTypes": [ + "de.ii.xtraplatform.features.sql.domain.ImmutableQueryGeneratorSettings$Builder" + ] + }, + { "name": "sourcePathDefaultsBuilder", "parameterTypes": [] }, + { + "name": "typeValidation", + "parameterTypes": [ + "de.ii.xtraplatform.entities.domain.ValidationResult$MODE" + ] + } + ] + }, + { + "name": "de.ii.xtraplatform.features.gml.domain.ImmutableFeatureProviderWfsData", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getAuto", "parameterTypes": [] }, + { "name": "getAutoPersist", "parameterTypes": [] }, + { "name": "getAutoTypes", "parameterTypes": [] }, + { "name": "getCodelists", "parameterTypes": [] }, + { "name": "getConnectionInfo", "parameterTypes": [] }, + { "name": "getCreatedAt", "parameterTypes": [] }, + { "name": "getDefaultLanguage", "parameterTypes": [] }, + { "name": "getEntityStorageVersion", "parameterTypes": [] }, + { "name": "getExtensions", "parameterTypes": [] }, + { "name": "getFragments", "parameterTypes": [] }, + { "name": "getId", "parameterTypes": [] }, + { "name": "getLabelTemplate", "parameterTypes": [] }, + { "name": "getLastModified", "parameterTypes": [] }, + { "name": "getNativeCrs", "parameterTypes": [] }, + { "name": "getNativeTimeZone", "parameterTypes": [] }, + { "name": "getProviderSubType", "parameterTypes": [] }, + { "name": "getProviderType", "parameterTypes": [] }, + { "name": "getTypeValidation", "parameterTypes": [] }, + { "name": "getTypes", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.features.gml.domain.ImmutableFeatureProviderWfsData$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "enabled", "parameterTypes": ["boolean"] }, + { "name": "addAllExtensions", "parameterTypes": ["java.lang.Iterable"] }, + { "name": "connectionInfoBuilder", "parameterTypes": [] }, + { "name": "createdAt", "parameterTypes": ["long"] }, + { "name": "defaultLanguage", "parameterTypes": ["java.util.Optional"] }, + { "name": "entityStorageVersion", "parameterTypes": ["long"] }, + { "name": "id", "parameterTypes": ["java.lang.String"] }, + { "name": "lastModified", "parameterTypes": ["long"] }, + { "name": "nativeCrsBuilder", "parameterTypes": [] }, + { "name": "nativeTimeZone", "parameterTypes": ["java.util.Optional"] }, + { "name": "providerSubType", "parameterTypes": ["java.lang.String"] }, + { "name": "providerType", "parameterTypes": ["java.lang.String"] }, + { + "name": "typeValidation", + "parameterTypes": [ + "de.ii.xtraplatform.entities.domain.ValidationResult$MODE" + ] + } + ] + }, + { + "name": "de.ii.xtraplatform.features.sql.domain.ImmutablePoolSettings", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getIdleTimeout", "parameterTypes": [] }, + { "name": "getInitFailFast", "parameterTypes": [] }, + { "name": "getInitFailTimeout", "parameterTypes": [] }, + { "name": "getMaxConnections", "parameterTypes": [] }, + { "name": "getMinConnections", "parameterTypes": [] }, + { "name": "getShared", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.features.sql.domain.ImmutablePoolSettings$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "idleTimeout", "parameterTypes": ["java.lang.String"] }, + { "name": "initFailFast", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "initFailTimeout", "parameterTypes": ["java.lang.String"] }, + { "name": "maxConnections", "parameterTypes": ["java.lang.Integer"] }, + { "name": "minConnections", "parameterTypes": ["java.lang.Integer"] }, + { "name": "shared", "parameterTypes": ["java.lang.Boolean"] } + ] + }, + { + "name": "de.ii.xtraplatform.features.sql.domain.ImmutableQueryGeneratorSettings", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getAccentiCollation", "parameterTypes": [] }, + { "name": "getChunkSize", "parameterTypes": [] }, + { "name": "getComputeNumberMatched", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.features.sql.domain.ImmutableQueryGeneratorSettings$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "chunkSize", "parameterTypes": ["int"] }, + { "name": "computeNumberMatched", "parameterTypes": ["boolean"] } + ] + }, + { + "name": "de.ii.xtraplatform.features.sql.domain.ImmutableSqlPathDefaults", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getJunctionTablePattern", "parameterTypes": [] }, + { "name": "getPrimaryKey", "parameterTypes": [] }, + { "name": "getSchema", "parameterTypes": [] }, + { "name": "getSortKey", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.features.sql.domain.ImmutableSqlPathDefaults$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { + "name": "junctionTablePattern", + "parameterTypes": ["java.util.Optional"] + }, + { "name": "primaryKey", "parameterTypes": ["java.lang.String"] }, + { "name": "sortKey", "parameterTypes": ["java.lang.String"] } + ] + }, + { + "name": "de.ii.xtraplatform.features.sql.domain.SqlPathDefaults", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.geometries.domain.SimpleFeatureGeometry", + "allDeclaredFields": true, + "allPublicFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.schemas.ext.domain.ImmutableJsonSchemaConfiguration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getCompositionIndexes", "parameterTypes": [] }, + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getGeometryTypeRefs", "parameterTypes": [] }, + { "name": "getObjectTypeRefs", "parameterTypes": [] }, + { "name": "getRelationRefs", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.schemas.ext.domain.ImmutableJsonSchemaConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "objectTypeRefs", "parameterTypes": ["java.util.Map"] } + ] + }, + { + "name": "de.ii.xtraplatform.schemas.ext.domain.JsonSchemaConfiguration", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.schemas.ext.domain.JsonSchemaConfiguration$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.services.domain.ImmutableServiceDataCommon$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "apiVersion", "parameterTypes": ["java.util.Optional"] }, + { "name": "auto", "parameterTypes": ["java.util.Optional"] }, + { "name": "createdAt", "parameterTypes": ["long"] }, + { "name": "description", "parameterTypes": ["java.util.Optional"] }, + { "name": "enabled", "parameterTypes": ["boolean"] }, + { "name": "entityStorageVersion", "parameterTypes": ["long"] }, + { "name": "id", "parameterTypes": ["java.lang.String"] }, + { "name": "label", "parameterTypes": ["java.lang.String"] }, + { "name": "lastModified", "parameterTypes": ["long"] }, + { "name": "serviceType", "parameterTypes": ["java.lang.String"] } + ] + }, + { + "name": "de.ii.xtraplatform.services.domain.ServiceData", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.services.domain.ServiceDataCommon$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.values.domain.ValueBuilder", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.values.domain.StoredValue", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.entities.domain.AutoEntity", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.entities.domain.EntityData", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.entities.domain.EntityDataBuilder", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.entities.domain.Mergeable", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.entities.domain.ValidationResult$MODE", + "allDeclaredFields": true, + "allPublicFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.entities.domain.maptobuilder.Buildable", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.entities.domain.maptobuilder.BuildableBuilder", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.entities.domain.maptobuilder.BuildableMap", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.entities.domain.maptobuilder.ImmutableBuildableMap", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.Cache", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.Cache$Storage", + "allDeclaredFields": true, + "allPublicFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.Cache$Type", + "allDeclaredFields": true, + "allPublicFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.ImmutableCache", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getLevels", "parameterTypes": [] }, + { "name": "getSeeded", "parameterTypes": [] }, + { "name": "getStorage", "parameterTypes": [] }, + { "name": "getTilesetLevels", "parameterTypes": [] }, + { "name": "getType", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.tiles.domain.ImmutableCache$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "levels", "parameterTypes": ["java.util.Map"] }, + { "name": "seeded", "parameterTypes": ["boolean"] }, + { + "name": "storage", + "parameterTypes": ["de.ii.xtraplatform.tiles.domain.Cache$Storage"] + }, + { + "name": "type", + "parameterTypes": ["de.ii.xtraplatform.tiles.domain.Cache$Type"] + } + ] + }, + { + "name": "de.ii.xtraplatform.tiles.domain.ImmutableLevelFilter", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getFilter", "parameterTypes": [] }, + { "name": "getMax", "parameterTypes": [] }, + { "name": "getMin", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.tiles.domain.ImmutableLevelFilter$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "filter", "parameterTypes": ["java.lang.String"] }, + { "name": "max", "parameterTypes": ["int"] }, + { "name": "min", "parameterTypes": ["int"] } + ] + }, + { + "name": "de.ii.xtraplatform.tiles.domain.ImmutableLevelTransformation", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getGroupBy", "parameterTypes": [] }, + { "name": "getMax", "parameterTypes": [] }, + { "name": "getMerge", "parameterTypes": [] }, + { "name": "getMin", "parameterTypes": [] }, + { "name": "getProperties", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.tiles.domain.ImmutableLevelTransformation$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "groupBy", "parameterTypes": ["java.lang.Iterable"] }, + { "name": "max", "parameterTypes": ["int"] }, + { "name": "merge", "parameterTypes": ["java.util.Optional"] }, + { "name": "min", "parameterTypes": ["int"] }, + { "name": "properties", "parameterTypes": ["java.lang.Iterable"] } + ] + }, + { + "name": "de.ii.xtraplatform.tiles.domain.ImmutableLonLat", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getLat", "parameterTypes": [] }, + { "name": "getLon", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.tiles.domain.ImmutableLonLat$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "lat", "parameterTypes": ["double"] }, + { "name": "lon", "parameterTypes": ["double"] } + ] + }, + { + "name": "de.ii.xtraplatform.tiles.domain.ImmutableMinMax", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getDefault", "parameterTypes": [] }, + { "name": "getMax", "parameterTypes": [] }, + { "name": "getMin", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.tiles.domain.ImmutableMinMax$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "getDefault", "parameterTypes": ["java.util.Optional"] }, + { "name": "max", "parameterTypes": ["int"] }, + { "name": "min", "parameterTypes": ["int"] } + ] + }, + { + "name": "de.ii.xtraplatform.tiles.domain.ImmutableSeedingOptions", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getJobSize", "parameterTypes": [] }, + { "name": "getMaxThreads", "parameterTypes": [] }, + { "name": "getPurge", "parameterTypes": [] }, + { "name": "getRunOnStartup", "parameterTypes": [] }, + { "name": "getRunPeriodic", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.tiles.domain.ImmutableSeedingOptions$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { + "name": "jobSize", + "parameterTypes": [ + "de.ii.xtraplatform.tiles.domain.SeedingOptions$JobSize" + ] + }, + { "name": "maxThreads", "parameterTypes": ["java.lang.Integer"] }, + { "name": "purge", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "runOnStartup", "parameterTypes": ["java.lang.Boolean"] }, + { "name": "runPeriodic", "parameterTypes": ["java.lang.String"] } + ] + }, + { + "name": "de.ii.xtraplatform.tiles.domain.SeedingOptions$JobSize", + "allDeclaredFields": true, + "allPublicFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.ImmutableTileProviderFeaturesData", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getAuto", "parameterTypes": [] }, + { "name": "getAutoPersist", "parameterTypes": [] }, + { "name": "getCaches", "parameterTypes": [] }, + { "name": "getCreatedAt", "parameterTypes": [] }, + { "name": "getEntityStorageVersion", "parameterTypes": [] }, + { "name": "getId", "parameterTypes": [] }, + { "name": "getLastModified", "parameterTypes": [] }, + { "name": "getProviderSubType", "parameterTypes": [] }, + { "name": "getProviderType", "parameterTypes": [] }, + { "name": "getSeeding", "parameterTypes": [] }, + { "name": "getTilesetDefaults", "parameterTypes": [] }, + { "name": "getTilesets", "parameterTypes": [] }, + { "name": "getRasterTilesets", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.tiles.domain.ImmutableTileProviderFeaturesData$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "enabled", "parameterTypes": ["boolean"] }, + { "name": "caches", "parameterTypes": ["java.lang.Iterable"] }, + { "name": "getTilesets", "parameterTypes": [] }, + { "name": "getRasterTilesets", "parameterTypes": [] }, + { "name": "id", "parameterTypes": ["java.lang.String"] }, + { "name": "providerSubType", "parameterTypes": ["java.lang.String"] }, + { "name": "providerType", "parameterTypes": ["java.lang.String"] }, + { "name": "tilesetDefaultsBuilder", "parameterTypes": [] }, + { "name": "createdAt", "parameterTypes": ["long"] }, + { "name": "lastModified", "parameterTypes": ["long"] }, + { "name": "entityStorageVersion", "parameterTypes": ["long"] }, + { "name": "seedingBuilder", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.tiles.domain.ImmutableTileProviderHttpData", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getCreatedAt", "parameterTypes": [] }, + { "name": "getEntityStorageVersion", "parameterTypes": [] }, + { "name": "getId", "parameterTypes": [] }, + { "name": "getLastModified", "parameterTypes": [] }, + { "name": "getProviderSubType", "parameterTypes": [] }, + { "name": "getProviderType", "parameterTypes": [] }, + { "name": "getTilesetDefaults", "parameterTypes": [] }, + { "name": "getTilesets", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.tiles.domain.ImmutableTileProviderHttpData$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "enabled", "parameterTypes": ["boolean"] }, + { "name": "getTilesets", "parameterTypes": [] }, + { "name": "id", "parameterTypes": ["java.lang.String"] }, + { "name": "providerSubType", "parameterTypes": ["java.lang.String"] }, + { "name": "providerType", "parameterTypes": ["java.lang.String"] }, + { "name": "tilesetDefaultsBuilder", "parameterTypes": [] }, + { "name": "createdAt", "parameterTypes": ["long"] }, + { "name": "lastModified", "parameterTypes": ["long"] }, + { "name": "entityStorageVersion", "parameterTypes": ["long"] } + ] + }, + { + "name": "de.ii.xtraplatform.tiles.domain.ImmutableTileProviderMbtilesData", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getEnabled", "parameterTypes": [] }, + { "name": "getCreatedAt", "parameterTypes": [] }, + { "name": "getEntityStorageVersion", "parameterTypes": [] }, + { "name": "getId", "parameterTypes": [] }, + { "name": "getLastModified", "parameterTypes": [] }, + { "name": "getProviderSubType", "parameterTypes": [] }, + { "name": "getProviderType", "parameterTypes": [] }, + { "name": "getTilesetDefaults", "parameterTypes": [] }, + { "name": "getTilesets", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.tiles.domain.ImmutableTileProviderMbtilesData$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "enabled", "parameterTypes": ["boolean"] }, + { "name": "id", "parameterTypes": ["java.lang.String"] }, + { "name": "providerSubType", "parameterTypes": ["java.lang.String"] }, + { "name": "providerType", "parameterTypes": ["java.lang.String"] }, + { "name": "tilesets", "parameterTypes": ["java.util.Map"] }, + { + "name": "tilesetDefaults", + "parameterTypes": [ + "de.ii.xtraplatform.tiles.domain.ImmutableTilesetMbTilesDefaults" + ] + }, + { "name": "createdAt", "parameterTypes": ["long"] }, + { "name": "lastModified", "parameterTypes": ["long"] }, + { "name": "entityStorageVersion", "parameterTypes": ["long"] } + ] + }, + { + "name": "de.ii.xtraplatform.tiles.domain.ImmutableTilesetFeatures", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getCenter", "parameterTypes": [] }, + { "name": "getCombine", "parameterTypes": [] }, + { "name": "getFeatureLimit", "parameterTypes": [] }, + { "name": "getFeatureProvider", "parameterTypes": [] }, + { "name": "getFeatureType", "parameterTypes": [] }, + { "name": "getFilters", "parameterTypes": [] }, + { "name": "getId", "parameterTypes": [] }, + { "name": "getIgnoreInvalidGeometries", "parameterTypes": [] }, + { "name": "getLevels", "parameterTypes": [] }, + { "name": "getMinimumSizeInPixel", "parameterTypes": [] }, + { "name": "getTransformations", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.tiles.domain.ImmutableTilesetFeatures$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "combine", "parameterTypes": ["java.lang.Iterable"] }, + { "name": "filters", "parameterTypes": ["java.util.Map"] }, + { "name": "getLevels", "parameterTypes": [] }, + { "name": "id", "parameterTypes": ["java.lang.String"] }, + { "name": "transformations", "parameterTypes": ["java.util.Map"] }, + { "name": "centerBuilder", "parameterTypes": [] }, + { "name": "featureProvider", "parameterTypes": ["java.util.Optional"] }, + { "name": "featureType", "parameterTypes": ["java.util.Optional"] }, + { + "name": "ignoreInvalidGeometries", + "parameterTypes": ["java.lang.Boolean"] + } + ] + }, + { + "name": "de.ii.xtraplatform.tiles.domain.ImmutableTilesetFeaturesDefaults", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getCenter", "parameterTypes": [] }, + { "name": "getFeatureLimit", "parameterTypes": [] }, + { "name": "getFeatureProvider", "parameterTypes": [] }, + { "name": "getIgnoreInvalidGeometries", "parameterTypes": [] }, + { "name": "getLevels", "parameterTypes": [] }, + { "name": "getMinimumSizeInPixel", "parameterTypes": [] }, + { "name": "getTransformations", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.tiles.domain.ImmutableTilesetFeaturesDefaults$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "centerBuilder", "parameterTypes": [] }, + { "name": "getLevels", "parameterTypes": [] }, + { "name": "levels", "parameterTypes": ["java.util.Map"] }, + { "name": "featureProvider", "parameterTypes": ["java.util.Optional"] }, + { "name": "featureLimit", "parameterTypes": ["java.lang.Integer"] }, + { "name": "minimumSizeInPixel", "parameterTypes": ["java.lang.Double"] }, + { + "name": "ignoreInvalidGeometries", + "parameterTypes": ["java.lang.Boolean"] + }, + { "name": "transformations", "parameterTypes": ["java.util.Map"] } + ] + }, + { + "name": "de.ii.xtraplatform.tiles.domain.ImmutableTilesetHttp", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getCenter", "parameterTypes": [] }, + { "name": "getEncodings", "parameterTypes": [] }, + { "name": "getId", "parameterTypes": [] }, + { "name": "getLevels", "parameterTypes": [] }, + { "name": "getUrlTemplate", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.tiles.domain.ImmutableTilesetHttp$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "encodings", "parameterTypes": ["java.util.Map"] }, + { "name": "id", "parameterTypes": ["java.lang.String"] }, + { "name": "urlTemplate", "parameterTypes": ["java.lang.String"] } + ] + }, + { + "name": "de.ii.xtraplatform.tiles.domain.ImmutableTilesetHttpDefaults", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getCenter", "parameterTypes": [] }, + { "name": "getEncodings", "parameterTypes": [] }, + { "name": "getLevels", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.tiles.domain.ImmutableTilesetHttpDefaults$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [{ "name": "getLevels", "parameterTypes": [] }] + }, + { + "name": "de.ii.xtraplatform.tiles.domain.ImmutableTilesetMbTiles", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getCenter", "parameterTypes": [] }, + { "name": "getId", "parameterTypes": [] }, + { "name": "getLevels", "parameterTypes": [] }, + { "name": "getSource", "parameterTypes": [] }, + { "name": "getTileMatrixSet", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.tiles.domain.ImmutableTilesetMbTiles$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "build", "parameterTypes": [] }, + { "name": "id", "parameterTypes": ["java.lang.String"] }, + { "name": "source", "parameterTypes": ["java.lang.String"] } + ] + }, + { + "name": "de.ii.xtraplatform.tiles.domain.ImmutableTilesetMbTilesDefaults", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getCenter", "parameterTypes": [] }, + { "name": "getLevels", "parameterTypes": [] }, + { "name": "getTileMatrixSet", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.tiles.domain.ImmutableTilesetMbTilesDefaults$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.ImmutableTilesetRaster", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "getPrefix", "parameterTypes": [] }, + { "name": "getCenter", "parameterTypes": [] }, + { "name": "getLevels", "parameterTypes": [] }, + { "name": "getStyles", "parameterTypes": [] } + ] + }, + { + "name": "de.ii.xtraplatform.tiles.domain.ImmutableTilesetRaster$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "", "parameterTypes": [] }, + { "name": "styles", "parameterTypes": ["java.lang.Iterable"] } + ] + }, + { + "name": "de.ii.xtraplatform.tiles.domain.LevelFilter", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.LevelTransformation", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.MinMax", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.MinMax$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.SeedingOptions", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.TileGenerationOptions", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.TileProviderData", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.TileProviderData$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.TileProviderFeaturesData", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.TileProviderFeaturesData$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.TileProviderHttpData", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.TileProviderHttpData$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.TileProviderMbtilesData", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.TileProviderMbtilesData$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.TilesetCommon", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.TilesetCommonDefaults", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.TilesetFeatures", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.TilesetFeatures$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.TilesetFeaturesDefaults", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.TilesetFeaturesDefaults$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.TilesetHttp", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.TilesetHttp$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.TilesetHttpDefaults", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.TilesetHttpDefaults$Builder", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.TilesetMbTiles", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.TilesetMbTilesDefaults", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.WithCaches", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.WithCenter", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.WithCenter$LonLat", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.WithEncodings", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.WithFeatureProvider", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.WithLevels", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.WithTilesetTmsLevels", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.WithTmsLevels", + "queryAllDeclaredMethods": true + }, + { + "name": "de.ii.xtraplatform.tiles.domain.WithTmsLevelsMergeable", + "queryAllDeclaredMethods": true + }, + { + "name": "double", + "queryAllDeclaredMethods": true + }, + { + "name": "java.io.Serializable", + "queryAllDeclaredMethods": true + }, + { + "name": "java.lang.Comparable", + "queryAllDeclaredMethods": true + }, + { + "name": "java.lang.Double", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true + }, + { + "name": "java.lang.Float", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true + }, + { + "name": "java.lang.Iterable", + "queryAllDeclaredMethods": true + }, + { + "name": "java.lang.Number", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "java.sql.Date" + }, + { + "name": "java.sql.Timestamp" + }, + { + "name": "java.util.AbstractCollection", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "java.util.Collection", + "queryAllDeclaredMethods": true + }, + { + "name": "java.util.List", + "queryAllDeclaredMethods": true + }, + { + "name": "java.util.Map", + "queryAllDeclaredMethods": true + }, + { + "name": "java.util.RandomAccess", + "queryAllDeclaredMethods": true + }, + { + "name": "java.util.Set", + "queryAllDeclaredMethods": true + }, + { + "name": "java.util.HashSet", + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true + }, + { + "name": "shadow.com.fasterxml.jackson.databind.ext.Java7HandlersImpl", + "methods": [{ "name": "", "parameterTypes": [] }] + }, + { + "name": "shadow.com.google.common.collect.BiMap", + "queryAllDeclaredMethods": true + }, + { + "name": "shadow.com.google.common.collect.ForwardingMap", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "shadow.com.google.common.collect.ForwardingObject", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "shadow.com.google.common.collect.ImmutableBiMap", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "shadow.com.google.common.collect.ImmutableBiMapFauxverideShim", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "shadow.com.google.common.collect.ImmutableCollection", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "shadow.com.google.common.collect.ImmutableList", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true + }, + { + "name": "shadow.com.google.common.collect.ImmutableMap", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "shadow.com.google.common.collect.ImmutableSet", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "shadow.com.google.common.collect.ImmutableSet$CachingAsList", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true + }, + { + "name": "shadow.com.google.common.collect.RegularImmutableList", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true + }, + { + "name": "shadow.com.google.common.collect.RegularImmutableMap", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true + }, + { + "name": "shadow.com.google.common.collect.RegularImmutableSet", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true + }, + { + "name": "shadow.com.google.common.collect.SingletonImmutableBiMap", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true + }, + { + "name": "shadow.com.google.common.collect.SingletonImmutableList", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true + }, + { + "name": "shadow.com.google.common.collect.SingletonImmutableSet", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true + }, + { + "name": "shadow.io.dropwizard.util.Duration", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, + "methods": [ + { "name": "parse", "parameterTypes": ["java.lang.String"] }, + { "name": "toString", "parameterTypes": [] } + ] + }, + { + "name": "shadow.com.networknt.schema.AdditionalPropertiesValidator", + "methods": [ + { + "name": "", + "parameterTypes": [ + "java.lang.String", + "shadow.com.fasterxml.jackson.databind.JsonNode", + "shadow.com.networknt.schema.JsonSchema", + "shadow.com.networknt.schema.ValidationContext" + ] + } + ] + }, + { + "name": "shadow.com.networknt.schema.AllOfValidator", + "methods": [ + { + "name": "", + "parameterTypes": [ + "java.lang.String", + "shadow.com.fasterxml.jackson.databind.JsonNode", + "shadow.com.networknt.schema.JsonSchema", + "shadow.com.networknt.schema.ValidationContext" + ] + } + ] + }, + { + "name": "shadow.com.networknt.schema.AnyOfValidator", + "methods": [ + { + "name": "", + "parameterTypes": [ + "java.lang.String", + "shadow.com.fasterxml.jackson.databind.JsonNode", + "shadow.com.networknt.schema.JsonSchema", + "shadow.com.networknt.schema.ValidationContext" + ] + } + ] + }, + { + "name": "shadow.com.networknt.schema.ConstValidator", + "methods": [ + { + "name": "", + "parameterTypes": [ + "java.lang.String", + "shadow.com.fasterxml.jackson.databind.JsonNode", + "shadow.com.networknt.schema.JsonSchema", + "shadow.com.networknt.schema.ValidationContext" + ] + } + ] + }, + { + "name": "shadow.com.networknt.schema.EnumValidator", + "methods": [ + { + "name": "", + "parameterTypes": [ + "java.lang.String", + "shadow.com.fasterxml.jackson.databind.JsonNode", + "shadow.com.networknt.schema.JsonSchema", + "shadow.com.networknt.schema.ValidationContext" + ] + } + ] + }, + { + "name": "shadow.com.networknt.schema.IfValidator", + "methods": [ + { + "name": "", + "parameterTypes": [ + "java.lang.String", + "shadow.com.fasterxml.jackson.databind.JsonNode", + "shadow.com.networknt.schema.JsonSchema", + "shadow.com.networknt.schema.ValidationContext" + ] + } + ] + }, + { + "name": "shadow.com.networknt.schema.ItemsValidator202012", + "methods": [ + { + "name": "", + "parameterTypes": [ + "java.lang.String", + "shadow.com.fasterxml.jackson.databind.JsonNode", + "shadow.com.networknt.schema.JsonSchema", + "shadow.com.networknt.schema.ValidationContext" + ] + } + ] + }, + { + "name": "shadow.com.networknt.schema.PatternValidator", + "methods": [ + { + "name": "", + "parameterTypes": [ + "java.lang.String", + "shadow.com.fasterxml.jackson.databind.JsonNode", + "shadow.com.networknt.schema.JsonSchema", + "shadow.com.networknt.schema.ValidationContext" + ] + } + ] + }, + { + "name": "shadow.com.networknt.schema.PropertiesValidator", + "methods": [ + { + "name": "", + "parameterTypes": [ + "java.lang.String", + "shadow.com.fasterxml.jackson.databind.JsonNode", + "shadow.com.networknt.schema.JsonSchema", + "shadow.com.networknt.schema.ValidationContext" + ] + } + ] + }, + { + "name": "shadow.com.networknt.schema.OneOfValidator", + "methods": [ + { + "name": "", + "parameterTypes": [ + "java.lang.String", + "shadow.com.fasterxml.jackson.databind.JsonNode", + "shadow.com.networknt.schema.JsonSchema", + "shadow.com.networknt.schema.ValidationContext" + ] + } + ] + }, + { + "name": "shadow.com.networknt.schema.RefValidator", + "methods": [ + { + "name": "", + "parameterTypes": [ + "java.lang.String", + "shadow.com.fasterxml.jackson.databind.JsonNode", + "shadow.com.networknt.schema.JsonSchema", + "shadow.com.networknt.schema.ValidationContext" + ] + } + ] + }, + { + "name": "shadow.com.networknt.schema.RequiredValidator", + "methods": [ + { + "name": "", + "parameterTypes": [ + "java.lang.String", + "shadow.com.fasterxml.jackson.databind.JsonNode", + "shadow.com.networknt.schema.JsonSchema", + "shadow.com.networknt.schema.ValidationContext" + ] + } + ] + }, + { + "name": "shadow.com.networknt.schema.TypeValidator", + "methods": [ + { + "name": "", + "parameterTypes": [ + "java.lang.String", + "shadow.com.fasterxml.jackson.databind.JsonNode", + "shadow.com.networknt.schema.JsonSchema", + "shadow.com.networknt.schema.ValidationContext" + ] + } + ] + }, + { + "name": "shadow.org.postgresql.Driver", + "methods": [{ "name": "", "parameterTypes": [] }] + } ] From ceebee736686bd279b4ea98011f14b988a1fcf8f Mon Sep 17 00:00:00 2001 From: PZahnen Date: Wed, 30 Oct 2024 11:30:07 +0100 Subject: [PATCH 094/167] register functions for runtime reflection 2 --- .../resources/META-INF/native-image/reflect-config.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libxtracfg/java/src/main/resources/META-INF/native-image/reflect-config.json b/libxtracfg/java/src/main/resources/META-INF/native-image/reflect-config.json index 5be8802..c7fed31 100644 --- a/libxtracfg/java/src/main/resources/META-INF/native-image/reflect-config.json +++ b/libxtracfg/java/src/main/resources/META-INF/native-image/reflect-config.json @@ -1,9 +1,11 @@ [ { - "name": "[Lde.ii.xtraplatform.features.sql.domain.ImmutableFeatureProviderSqlData.getEnabled;" + "name": "de.ii.xtraplatform.features.sql.domain.ImmutableFeatureProviderSqlData", + "methods": [{ "name": "getEnabled", "parameterTypes": [] }] }, { - "name": "[Lde.ii.xtraplatform.features.domain.ImmutableFeatureSchema.getEmbeddedRole;" + "name": "de.ii.xtraplatform.features.domain.ImmutableFeatureSchema", + "methods": [{ "name": "getEmbeddedRole", "parameterTypes": [] }] }, { "name": "[Lde.ii.ogcapi.foundation.domain.ExtensionConfiguration;" From 6bff6e73c9cf89470d53fe03cee7cc5302935e3f Mon Sep 17 00:00:00 2001 From: PZahnen Date: Wed, 30 Oct 2024 12:24:02 +0100 Subject: [PATCH 095/167] register functions for runtime reflection 3 --- .../resources/META-INF/native-image/reflect-config.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libxtracfg/java/src/main/resources/META-INF/native-image/reflect-config.json b/libxtracfg/java/src/main/resources/META-INF/native-image/reflect-config.json index c7fed31..aabb5f6 100644 --- a/libxtracfg/java/src/main/resources/META-INF/native-image/reflect-config.json +++ b/libxtracfg/java/src/main/resources/META-INF/native-image/reflect-config.json @@ -1,10 +1,16 @@ [ { "name": "de.ii.xtraplatform.features.sql.domain.ImmutableFeatureProviderSqlData", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, "methods": [{ "name": "getEnabled", "parameterTypes": [] }] }, { "name": "de.ii.xtraplatform.features.domain.ImmutableFeatureSchema", + "allDeclaredFields": true, + "queryAllDeclaredMethods": true, + "queryAllDeclaredConstructors": true, "methods": [{ "name": "getEmbeddedRole", "parameterTypes": [] }] }, { From a55c17cdc486709a437d4b5999485d8ca069c62b Mon Sep 17 00:00:00 2001 From: PZahnen Date: Wed, 30 Oct 2024 13:13:55 +0100 Subject: [PATCH 096/167] register functions for runtime reflection 4 --- .../META-INF/native-image/reflect-config.json | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/libxtracfg/java/src/main/resources/META-INF/native-image/reflect-config.json b/libxtracfg/java/src/main/resources/META-INF/native-image/reflect-config.json index aabb5f6..18bed87 100644 --- a/libxtracfg/java/src/main/resources/META-INF/native-image/reflect-config.json +++ b/libxtracfg/java/src/main/resources/META-INF/native-image/reflect-config.json @@ -1,18 +1,4 @@ [ - { - "name": "de.ii.xtraplatform.features.sql.domain.ImmutableFeatureProviderSqlData", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [{ "name": "getEnabled", "parameterTypes": [] }] - }, - { - "name": "de.ii.xtraplatform.features.domain.ImmutableFeatureSchema", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [{ "name": "getEmbeddedRole", "parameterTypes": [] }] - }, { "name": "[Lde.ii.ogcapi.foundation.domain.ExtensionConfiguration;" }, @@ -2934,6 +2920,8 @@ "queryAllDeclaredMethods": true, "queryAllDeclaredConstructors": true, "methods": [ + { "name": "getEmbeddedRole", "parameterTypes": [] }, + { "name": "getEmbed", "parameterTypes": [] }, { "name": "getAdditionalInfo", "parameterTypes": [] }, { "name": "getCoalesce", "parameterTypes": [] }, { "name": "getConcat", "parameterTypes": [] }, From 56e6ff95d4c55cd0029f372c0be999038a8f319b Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Wed, 30 Oct 2024 17:28:06 +0100 Subject: [PATCH 097/167] reactivate docker build --- .github/workflows/xtracfg.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index befd5ca..300abd3 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -89,7 +89,6 @@ jobs: retention-days: 1 build_binaries: - if: ${{ github.ref_name == 'main' }} runs-on: ${{ matrix.os.runner }} needs: build_libraries strategy: @@ -186,7 +185,6 @@ jobs: ls -lR ./**/build publish_docker: - if: ${{ github.ref_name == 'main' }} runs-on: ubuntu-latest needs: build_binaries steps: From 471956381d3e8039e282bb8387196f4cdd0f2171 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Thu, 31 Oct 2024 08:43:08 +0100 Subject: [PATCH 098/167] fix docker build --- xtracfg/cmd/store/create.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/xtracfg/cmd/store/create.go b/xtracfg/cmd/store/create.go index d3cc109..f86f3ff 100644 --- a/xtracfg/cmd/store/create.go +++ b/xtracfg/cmd/store/create.go @@ -6,7 +6,8 @@ import ( "fmt" "os" - "github.com/interactive-instruments/xtraplatform-cli/xtracfg/client" + "github.com/interactive-instruments/xtraplatform-cli/libxtracfg/go/xtracfg" + "github.com/interactive-instruments/xtraplatform-cli/xtracfg/util" "github.com/spf13/cobra" ) @@ -26,14 +27,14 @@ func isValidValueType(value string) bool { return false } -func CreateCmd(store client.Store, name string, verbose *bool, debug *bool) *cobra.Command { +func CreateCmd(store xtracfg.Store, name string, verbose *bool, debug *bool) *cobra.Command { create := &cobra.Command{ Use: "create", Short: "Create values for an API", Args: cobra.NoArgs, Run: func(cmd *cobra.Command, args []string) { results, err := store.Handle(map[string]interface{}{}, "create") - client.PrintResults(results, err) + util.PrintResults(results, err) }, } @@ -63,7 +64,7 @@ func CreateCmd(store client.Store, name string, verbose *bool, debug *bool) *cob // Call analyze resultAnalyze, err := store.Handle(map[string]interface{}{"type": *valueType, "apiId": *api, "name": *fileName}, "autoValue", "analyze") if err != nil { - client.PrintResults(resultAnalyze, err) + util.PrintResults(resultAnalyze, err) os.Exit(1) } else { @@ -108,7 +109,7 @@ func CreateCmd(store client.Store, name string, verbose *bool, debug *bool) *cob os.Exit(1) } - client.PrintResults(results, err) + util.PrintResults(results, err) } }, } From 589ffa9a5160cf78aaffbcae18a78a8b2b9c1de4 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Thu, 31 Oct 2024 12:46:44 +0100 Subject: [PATCH 099/167] fix progress messages --- libxtracfg/js/xtracfg-transport-native/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libxtracfg/js/xtracfg-transport-native/src/index.ts b/libxtracfg/js/xtracfg-transport-native/src/index.ts index ff9bf94..a8bbd24 100644 --- a/libxtracfg/js/xtracfg-transport-native/src/index.ts +++ b/libxtracfg/js/xtracfg-transport-native/src/index.ts @@ -9,7 +9,7 @@ const broadcast = (response: Response) => { const transport: TransportCreator = () => { return async (): Promise => { - addon.subscribe(broadcast); + addon.subscribe((response: string) => broadcast(JSON.parse(response))); return { send: async (request) => { From ee67410a74fe980b71859a3fdeb8d4a92d45ea2d Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Wed, 6 Nov 2024 11:06:42 +0100 Subject: [PATCH 100/167] upgrade dev websockets for java 21 --- libxtracfg/java/build.gradle | 2 +- libxtracfg/java/dev.gradle | 5 +++-- .../java/de/ii/xtraplatform/cli/dev/XtraCfgApiDev.java | 10 +++++----- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/libxtracfg/java/build.gradle b/libxtracfg/java/build.gradle index 87cc199..cd2c5ce 100644 --- a/libxtracfg/java/build.gradle +++ b/libxtracfg/java/build.gradle @@ -2,7 +2,7 @@ plugins { id 'application' id 'org.graalvm.buildtools.native' version '0.10.3' id "com.google.osdetector" version "1.7.3" - id "org.gretty" version "3.0.5" apply false + id "org.gretty" version "4.1.5" apply false } ext { diff --git a/libxtracfg/java/dev.gradle b/libxtracfg/java/dev.gradle index d24e6c7..39188d7 100644 --- a/libxtracfg/java/dev.gradle +++ b/libxtracfg/java/dev.gradle @@ -3,7 +3,7 @@ apply plugin: 'org.gretty' // start with ./gradlew appRun or ./gradlew appRunDebug gretty { - servletContainer = 'jetty9.4' + servletContainer = 'jetty11' contextPath = '/' httpPort = 8081 } @@ -17,7 +17,8 @@ sourceSets { } dependencies { - implementation 'javax.websocket:javax.websocket-api:1.1' + implementation 'jakarta.websocket:jakarta.websocket-api:2.2.0' + implementation 'jakarta.websocket:jakarta.websocket-client-api:2.2.0' } tasks.run.mainClass = 'de.ii.xtraplatform.cli.dev.XtraCfgDev' \ No newline at end of file diff --git a/libxtracfg/java/src/dev/java/de/ii/xtraplatform/cli/dev/XtraCfgApiDev.java b/libxtracfg/java/src/dev/java/de/ii/xtraplatform/cli/dev/XtraCfgApiDev.java index 04d6758..c430060 100644 --- a/libxtracfg/java/src/dev/java/de/ii/xtraplatform/cli/dev/XtraCfgApiDev.java +++ b/libxtracfg/java/src/dev/java/de/ii/xtraplatform/cli/dev/XtraCfgApiDev.java @@ -3,12 +3,12 @@ import de.ii.xtraplatform.cli.CommandHandler; import de.ii.xtraplatform.cli.EntitiesHandler; import de.ii.xtraplatform.cli.Progress; +import jakarta.websocket.OnMessage; +import jakarta.websocket.OnOpen; +import jakarta.websocket.RemoteEndpoint; +import jakarta.websocket.Session; +import jakarta.websocket.server.ServerEndpoint; import java.io.IOException; -import javax.websocket.OnMessage; -import javax.websocket.OnOpen; -import javax.websocket.RemoteEndpoint; -import javax.websocket.Session; -import javax.websocket.server.ServerEndpoint; @ServerEndpoint("/sock") public class XtraCfgApiDev { From 2d533a0b913c5ecf56d913941a2cdb07656c78e2 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Wed, 6 Nov 2024 11:07:00 +0100 Subject: [PATCH 101/167] improve error messages --- .../de/ii/xtraplatform/cli/AutoHandler.java | 18 ++++++++++++++++-- libxtracfg/js/xtracfg/src/index.ts | 4 ++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/AutoHandler.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/AutoHandler.java index 7b3dce1..ac03ba4 100644 --- a/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/AutoHandler.java +++ b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/AutoHandler.java @@ -45,11 +45,25 @@ public static Result preCheck(Map parameters, LdproxyCfg ldproxy if (parameters.containsKey("featureProviderType") && parameters.get("featureProviderType").equals("PGIS") - && parameters.containsKey("host") - && parameters.get("host").isBlank()) { + && (!parameters.containsKey("host") || parameters.get("host").isBlank())) { return Result.failure("Host is required for PGIS connection"); } + if (parameters.containsKey("featureProviderType") + && parameters.get("featureProviderType").equals("WFS")) { + if (!parameters.containsKey("url") || parameters.get("url").isBlank()) { + return Result.failure("URL is required for WFS connection"); + } + try { + URI uri = URI.create(parameters.get("url")); + if (!Objects.equals(uri.getScheme(), "http") && !Objects.equals(uri.getScheme(), "https")) { + return Result.failure("Invalid URL scheme for WFS connection"); + } + } catch (IllegalArgumentException e) { + return Result.failure("Invalid URL for WFS connection"); + } + } + return Result.empty(); } diff --git a/libxtracfg/js/xtracfg/src/index.ts b/libxtracfg/js/xtracfg/src/index.ts index 7f4f045..d27a5d2 100644 --- a/libxtracfg/js/xtracfg/src/index.ts +++ b/libxtracfg/js/xtracfg/src/index.ts @@ -146,11 +146,15 @@ const parseError = (response: Response): Error | undefined => { return { fields: { id: error } }; } else if (message.includes("url")) { return { fields: { url: message } }; + } else if (message.includes("URL")) { + return { fields: { url: message } }; } if ( (!message.includes("host") && + !message.includes("Host") && !message.includes("url") && + !message.includes("URL") && !message.includes("database") && !message.includes("user") && !message.includes("password")) || From e09fcb8925cf96c02a28769234a2a7c4658ba084 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Fri, 8 Nov 2024 14:21:03 +0100 Subject: [PATCH 102/167] fix issues with defaults validation --- .../src/main/java/de/ii/xtraplatform/cli/Validation.java | 4 ++-- .../src/main/java/de/ii/xtraplatform/cli/cmd/FileType.java | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/Validation.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/Validation.java index eaf5075..6934c3a 100644 --- a/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/Validation.java +++ b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/Validation.java @@ -121,8 +121,8 @@ static String loadFileContent(Path path, EntitiesHandler.Type type, FileInfo fil if (type == EntitiesHandler.Type.Defaults && fileInfo.entitySubType.isPresent()) { - if (fileContent.startsWith("---\n")) { - fileContent = fileContent.substring(4); + if (fileContent.startsWith("---")) { + fileContent = fileContent.substring(fileContent.indexOf("\n") + 1); } if (fileInfo.discriminatorKey.isPresent() && fileInfo.discriminatorValue.isPresent()) { diff --git a/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/FileType.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/FileType.java index 7a69d87..42977a1 100644 --- a/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/FileType.java +++ b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/FileType.java @@ -86,6 +86,7 @@ public Result run(LdproxyCfg ldproxyCfg) { // TODO: multi-file overrides if (path.getNameCount() >= 3 + && Objects.equals(path.getName(1).toString(), "overrides") && CONTENT_TYPES.contains(type) && ENTITY_TYPES.contains(path.getFileName().toString())) { @@ -129,6 +130,10 @@ public Result run(LdproxyCfg ldproxyCfg) { return found( fileName.substring(0, fileName.indexOf('.')), fileName.substring(fileName.indexOf('.') + 1)); + } else if (ENTITY_TYPES.contains(path.getFileName().toString())) { + return found( + path.getFileName().toString(), + fileName); } if (path.getNameCount() >= 4 && ENTITY_TYPES.contains(path.getName(2).toString())) { From c203cb1e6fb7da6ccf9b88a6d27bfe954d5f5d13 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Tue, 19 Nov 2024 09:49:42 +0100 Subject: [PATCH 103/167] js implement disconnect --- .../js/xtracfg-transport-native/src/index.ts | 3 +++ .../xtracfg-transport-websocket/src/index.ts | 4 ++++ libxtracfg/js/xtracfg/src/index.ts | 20 +++++++++++++++++++ libxtracfg/js/xtracfg/test/test.ts | 17 +++++++++++----- 4 files changed, 39 insertions(+), 5 deletions(-) diff --git a/libxtracfg/js/xtracfg-transport-native/src/index.ts b/libxtracfg/js/xtracfg-transport-native/src/index.ts index a8bbd24..5e35d11 100644 --- a/libxtracfg/js/xtracfg-transport-native/src/index.ts +++ b/libxtracfg/js/xtracfg-transport-native/src/index.ts @@ -22,6 +22,9 @@ const transport: TransportCreator = () => { listen: async (listener) => { listeners.push(listener); }, + stop: async () => { + listeners.length = 0; + }, }; }; }; diff --git a/libxtracfg/js/xtracfg-transport-websocket/src/index.ts b/libxtracfg/js/xtracfg-transport-websocket/src/index.ts index c871514..85f3e95 100644 --- a/libxtracfg/js/xtracfg-transport-websocket/src/index.ts +++ b/libxtracfg/js/xtracfg-transport-websocket/src/index.ts @@ -37,6 +37,10 @@ export const transport: TransportCreator = ({ debug }: TransportOptions) => { listen: async (listener) => { listeners.push(listener); }, + stop: async () => { + listeners.length = 0; + socket.then((s) => s?.close()); + }, }; }; }; diff --git a/libxtracfg/js/xtracfg/src/index.ts b/libxtracfg/js/xtracfg/src/index.ts index d27a5d2..0e8c350 100644 --- a/libxtracfg/js/xtracfg/src/index.ts +++ b/libxtracfg/js/xtracfg/src/index.ts @@ -31,6 +31,7 @@ export type Xtracfg = { successHandler: (response: Response) => void, errorHandler: (error: Error) => void ) => Promise; + disconnect: () => Promise; }; export type TransportCreator = ( @@ -46,6 +47,7 @@ export type TransportOptions = { export type Transport = { send: (request: Request) => Promise; listen: (listener: Listener) => Promise; + stop: () => Promise; }; export const connect = ( @@ -57,6 +59,7 @@ export const connect = ( return { send: send(options, ensureOpen), listen: listen(options, ensureOpen), + disconnect: disconnect(options, ensureOpen), }; }; @@ -109,6 +112,23 @@ const listen = ( }); }; +const disconnect = ( + { debug }: TransportOptions, + ensureOpen: TransportConnector +) => { + return () => + ensureOpen() + .then((transport) => { + transport.stop(); + }) + .catch((error: Error) => { + console.error( + "Could not disconnect from xtracfg", + error.message || error + ); + }); +}; + const parseError = (response: Response): Error | undefined => { const error = response.error || ""; const status = diff --git a/libxtracfg/js/xtracfg/test/test.ts b/libxtracfg/js/xtracfg/test/test.ts index 72a9411..32d4c01 100644 --- a/libxtracfg/js/xtracfg/test/test.ts +++ b/libxtracfg/js/xtracfg/test/test.ts @@ -1,13 +1,13 @@ -import { connect, Transport, TransportCreator } from "../src"; +import { connect, Transport, TransportCreator, Listener } from "../src"; -let listener: (response: Response) => void; +let listener: undefined | Listener; const transport: TransportCreator = () => { return async (): Promise => { return { - send: (request) => { - console.log("sending", request); + send: async (request) => { if (listener) { + console.log("sending", request); const response = request.command === "hello" ? { results: [{ status: "SUCCESS", message: "world" }] } @@ -16,10 +16,13 @@ const transport: TransportCreator = () => { listener.call(null, response); } }, - listen: (handler) => { + listen: async (handler) => { console.log("listening", handler); listener = handler; }, + stop: async () => { + listener = undefined; + }, }; }; }; @@ -38,3 +41,7 @@ xtracfg.listen( xtracfg.send({ command: "hello" }); xtracfg.send({ command: "foo" }); + +xtracfg.disconnect(); + +xtracfg.send({ command: "ERROR: SHOULD NOT BE SENT" }); From 858b0fe7face371592d885eb08c81574d773228d Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Tue, 19 Nov 2024 10:29:02 +0100 Subject: [PATCH 104/167] js implement disconnect --- libxtracfg/js/xtracfg-transport-native/src/index.ts | 7 +++++-- libxtracfg/js/xtracfg-transport-websocket/src/index.ts | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/libxtracfg/js/xtracfg-transport-native/src/index.ts b/libxtracfg/js/xtracfg-transport-native/src/index.ts index 5e35d11..937faf1 100644 --- a/libxtracfg/js/xtracfg-transport-native/src/index.ts +++ b/libxtracfg/js/xtracfg-transport-native/src/index.ts @@ -1,14 +1,17 @@ import { Transport, TransportCreator, Response, Listener } from "@xtracfg/core"; import addon from "@xtracfg/native"; -const listeners: Listener[] = []; +const allListeners: Listener[][] = []; const broadcast = (response: Response) => { - listeners.forEach((listener) => listener(response)); + allListeners.flat().forEach((listener) => listener(response)); }; const transport: TransportCreator = () => { return async (): Promise => { + const listeners: Listener[] = []; + allListeners.push(listeners); + addon.subscribe((response: string) => broadcast(JSON.parse(response))); return { diff --git a/libxtracfg/js/xtracfg-transport-websocket/src/index.ts b/libxtracfg/js/xtracfg-transport-websocket/src/index.ts index 85f3e95..91aa75d 100644 --- a/libxtracfg/js/xtracfg-transport-websocket/src/index.ts +++ b/libxtracfg/js/xtracfg-transport-websocket/src/index.ts @@ -8,14 +8,17 @@ import { } from "@xtracfg/core"; import WebSocket from "isomorphic-ws"; -const listeners: Listener[] = []; +const allListeners: Listener[][] = []; const broadcast = (response: Response) => { - listeners.forEach((listener) => listener(response)); + allListeners.flat().forEach((listener) => listener(response)); }; export const transport: TransportCreator = ({ debug }: TransportOptions) => { return async (): Promise => { + const listeners: Listener[] = []; + allListeners.push(listeners); + const socket = getSocket(debug); socket.then((s) => { From ae57f74d1517297b3a95f371a7b66793c4d36818 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Tue, 31 Dec 2024 16:25:01 +0100 Subject: [PATCH 105/167] fix json schema validation --- libxtracfg/java/build.gradle | 6 +- libxtracfg/java/dev.gradle | 3 + .../ii/xtraplatform/cli/dev/XtraCfgDev.java | 6 + .../src/dev/resources/simplelogger.properties | 7 + .../ii/xtraplatform/cli/EntitiesHandler.java | 45 +- .../de/ii/xtraplatform/cli/cmd/FileType.java | 2 +- .../META-INF/native-image/reflect-config.json | 4443 ----------------- 7 files changed, 59 insertions(+), 4453 deletions(-) create mode 100644 libxtracfg/java/src/dev/resources/simplelogger.properties diff --git a/libxtracfg/java/build.gradle b/libxtracfg/java/build.gradle index cd2c5ce..d32a345 100644 --- a/libxtracfg/java/build.gradle +++ b/libxtracfg/java/build.gradle @@ -26,10 +26,8 @@ repositories { } dependencies { - implementation group: 'de.interactive_instruments', name: 'ldproxy-cfg', version: '4.2.0-SNAPSHOT' - implementation group: 'org.slf4j', name: 'slf4j-nop', version: '1.7.35' - // use this instead for debugging purposes - //implementation group: 'org.slf4j', name: 'slf4j-simple', version: '1.7.35' + implementation group: 'de.interactive_instruments', name: 'ldproxy-cfg', version: '4.3.0-SNAPSHOT' + implementation group: 'org.slf4j', name: project.hasProperty('CI') ? 'slf4j-nop' : 'slf4j-simple', version: '2.0.16' // 24.x is for JDK 21 compileOnly group: 'org.graalvm.nativeimage', name: 'svm', version: '24.1.0' diff --git a/libxtracfg/java/dev.gradle b/libxtracfg/java/dev.gradle index 39188d7..b932563 100644 --- a/libxtracfg/java/dev.gradle +++ b/libxtracfg/java/dev.gradle @@ -13,6 +13,9 @@ sourceSets { java { srcDirs 'src/dev/java' } + resources { + srcDirs 'src/dev/resources' + } } } diff --git a/libxtracfg/java/src/dev/java/de/ii/xtraplatform/cli/dev/XtraCfgDev.java b/libxtracfg/java/src/dev/java/de/ii/xtraplatform/cli/dev/XtraCfgDev.java index 6340fe0..c28d4c5 100644 --- a/libxtracfg/java/src/dev/java/de/ii/xtraplatform/cli/dev/XtraCfgDev.java +++ b/libxtracfg/java/src/dev/java/de/ii/xtraplatform/cli/dev/XtraCfgDev.java @@ -7,6 +7,12 @@ public class XtraCfgDev { public static void main(String[] args) { if (args.length == 0) { + System.out.println( + "Example: ./gradlew run --rerun --args='{\"command\":\"check\",\"subcommand\":\"entities\",\"ignoreRedundant\":true,\"verbose\":true,\"debug\":true,\"source\":\"/path/to/store\"}'"); + System.out.println( + "Or: ./gradlew run --rerun --args=\"{command:check,subcommand:entities,ignoreRedundant:true,verbose:true,debug:true,source:/path/to/store}\""); + System.out.println(); + throw new IllegalArgumentException("No command given"); } diff --git a/libxtracfg/java/src/dev/resources/simplelogger.properties b/libxtracfg/java/src/dev/resources/simplelogger.properties new file mode 100644 index 0000000..6712764 --- /dev/null +++ b/libxtracfg/java/src/dev/resources/simplelogger.properties @@ -0,0 +1,7 @@ +org.slf4j.simpleLogger.logFile=System.out +org.slf4j.simpleLogger.defaultLogLevel=error +org.slf4j.simpleLogger.log.de.ii=debug +org.slf4j.simpleLogger.levelInBrackets=true +org.slf4j.simpleLogger.showDateTime=false +org.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd HH:mm:ss:SSS Z +org.slf4j.simpleLogger.showThreadName=false diff --git a/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/EntitiesHandler.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/EntitiesHandler.java index 0f389f5..8d1c49b 100644 --- a/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/EntitiesHandler.java +++ b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/EntitiesHandler.java @@ -40,6 +40,9 @@ public enum Type { public static boolean DEV = false; + private static final org.slf4j.Logger LOGGER = + org.slf4j.LoggerFactory.getLogger(EntitiesHandler.class); + private static final TypeReference> AS_MAP = new TypeReference>() {}; @@ -426,6 +429,10 @@ private static List getUpgrades( ? ldproxyCfg.getOverrideIdentifiers() : List.of(); + if (debug && LOGGER.isDebugEnabled()) { + LOGGER.debug("defaultIdentifiers: {}", defaultIdentifiers); + } + // TODO: optionally compare ordering of elements return Stream.concat( Stream.concat( @@ -629,6 +636,10 @@ private static Optional getDefaultUpgrade( Path relYml = ldproxyCfg.getDataDirectory().relativize(yml); FileInfo fileInfo = new FileType(Map.of("path", relYml.toString())).get(ldproxyCfg); + if (debug && LOGGER.isDebugEnabled()) { + LOGGER.debug("fileInfo: {} {}", fileInfo.isValid(), fileInfo.entitySubType); + } + if (!fileInfo.isValid() || fileInfo.entitySubType.isEmpty()) { return Optional.empty(); } @@ -639,7 +650,12 @@ private static Optional getDefaultUpgrade( Map original = ldproxyCfg.getObjectMapper().readValue(yml.toFile(), AS_MAP); Map upgraded = getUpgradedDefaultsOrOverrides( - ldproxyCfg, yml, storeIdentifier, Type.Defaults, fileInfo, original); + ldproxyCfg, yml, storeIdentifier, Type.Defaults, fileInfo, original, debug); + + if (debug && LOGGER.isDebugEnabled()) { + LOGGER.debug("original1: {}", original); + LOGGER.debug("upgraded1: {}", upgraded); + } if (fileInfo.subProperty.isPresent()) { try { @@ -674,8 +690,7 @@ private static Optional getDefaultUpgrade( } if (force || !diff.isEmpty()) { - return Optional.of( - new Upgrade(Type.Defaults, relYml, original, upgraded, null, Map.of())); + return Optional.of(new Upgrade(Type.Defaults, relYml, original, upgraded, null, Map.of())); } return Optional.empty(); @@ -699,7 +714,7 @@ private static Optional getOverrideUpgrade( Map original = ldproxyCfg.getObjectMapper().readValue(yml.toFile(), AS_MAP); Map upgraded = getUpgradedDefaultsOrOverrides( - ldproxyCfg, yml, identifier, Type.Overrides, fileInfo, original); + ldproxyCfg, yml, identifier, Type.Overrides, fileInfo, original, debug); Map diff = MapDiffer.diff(original, upgraded, true); if (debug) { @@ -719,9 +734,16 @@ private static Map getUpgradedDefaultsOrOverrides( Identifier identifier, Type type, FileInfo fileInfo, - Map original) + Map original, + boolean debug) throws IOException { String fileContent = Validation.loadFileContent(yml, type, fileInfo); + + if (debug && LOGGER.isDebugEnabled()) { + LOGGER.debug("fileInfo: {} {}", fileInfo.entityType, fileInfo.entitySubType); + LOGGER.debug("fileContent: {}", fileContent); + } + EntityDataBuilder builder = ldproxyCfg .getEntityFactories() @@ -735,6 +757,10 @@ private static Map getUpgradedDefaultsOrOverrides( .readerForUpdating(builder) .readValue(fileContent); + if (debug && LOGGER.isDebugEnabled()) { + LOGGER.debug("builder: {}", builder.build()); + } + Map upgraded = ldproxyCfg.getEntityDataDefaultsStore().asMap(identifier, builder.build()); Map cleanUpgraded = new LinkedHashMap<>(); @@ -746,6 +772,15 @@ private static Map getUpgradedDefaultsOrOverrides( if (entry.getKey().equals("label") && !original.containsKey("label")) { continue; } + if (entry.getKey().equals("providerType") && !original.containsKey("providerType")) { + continue; + } + if (entry.getKey().equals("providerSubType") && !original.containsKey("providerSubType")) { + continue; + } + if (entry.getKey().equals("serviceType") && !original.containsKey("serviceType")) { + continue; + } if (entry.getKey().equals("enabled") && !(original.containsKey("enabled") || original.containsKey("shouldStart"))) { continue; diff --git a/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/FileType.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/FileType.java index 42977a1..a23aede 100644 --- a/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/FileType.java +++ b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/cmd/FileType.java @@ -86,7 +86,7 @@ public Result run(LdproxyCfg ldproxyCfg) { // TODO: multi-file overrides if (path.getNameCount() >= 3 - && Objects.equals(path.getName(1).toString(), "overrides") + && !Objects.equals(type, "defaults") && CONTENT_TYPES.contains(type) && ENTITY_TYPES.contains(path.getFileName().toString())) { diff --git a/libxtracfg/java/src/main/resources/META-INF/native-image/reflect-config.json b/libxtracfg/java/src/main/resources/META-INF/native-image/reflect-config.json index 18bed87..b66bee1 100644 --- a/libxtracfg/java/src/main/resources/META-INF/native-image/reflect-config.json +++ b/libxtracfg/java/src/main/resources/META-INF/native-image/reflect-config.json @@ -1,4443 +1,4 @@ [ - { - "name": "[Lde.ii.ogcapi.foundation.domain.ExtensionConfiguration;" - }, - { - "name": "[Lde.ii.ogcapi.foundation.domain.ImmutableApiCatalogEntry$Builder;" - }, - { - "name": "[Lde.ii.ogcapi.foundation.domain.ImmutableApiCatalogEntry;" - }, - { - "name": "[Lde.ii.ogcapi.foundation.domain.ImmutableLink$Builder;" - }, - { - "name": "[Lde.ii.ogcapi.foundation.domain.ImmutableLink;" - }, - { - "name": "[Lde.ii.xtraplatform.features.domain.ExtensionConfiguration;" - }, - { - "name": "[Lde.ii.xtraplatform.features.domain.ImmutableFeatureSchema$Builder;" - }, - { - "name": "[Lde.ii.xtraplatform.features.domain.ImmutableFeatureSchema;" - }, - { - "name": "[Lde.ii.xtraplatform.features.domain.ImmutablePartialObjectSchema$Builder;" - }, - { - "name": "[Lde.ii.xtraplatform.features.domain.ImmutablePartialObjectSchema;" - }, - { - "name": "[Lde.ii.xtraplatform.features.domain.transform.ImmutablePropertyTransformation$Builder;" - }, - { - "name": "[Lde.ii.xtraplatform.features.domain.transform.ImmutablePropertyTransformation;" - }, - { - "name": "[Lde.ii.xtraplatform.tiles.domain.ImmutableCache$Builder;" - }, - { - "name": "[Lde.ii.xtraplatform.tiles.domain.ImmutableCache;" - }, - { - "name": "[Ljava.lang.Object;" - }, - { - "name": "[Ljava.util.Map$Entry;" - }, - { - "name": "[Lshadow.com.fasterxml.jackson.databind.deser.BeanDeserializerModifier;" - }, - { - "name": "[Lshadow.com.fasterxml.jackson.databind.deser.Deserializers;" - }, - { - "name": "[Lshadow.com.fasterxml.jackson.databind.deser.KeyDeserializers;" - }, - { - "name": "[Lshadow.com.fasterxml.jackson.databind.deser.ValueInstantiators;" - }, - { - "name": "[Lshadow.com.fasterxml.jackson.databind.ser.BeanSerializerModifier;" - }, - { - "name": "[Lshadow.com.fasterxml.jackson.databind.ser.Serializers;" - }, - { - "name": "[Lshadow.com.fasterxml.jackson.databind.type.TypeModifier;" - }, - { - "name": "[Lshadow.com.google.common.collect.ImmutableMapEntry;" - }, - { - "name": "de.ii.ogcapi.collections.domain.CollectionsConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.collections.domain.CollectionsConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.collections.domain.ImmutableCollectionsConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getAdditionalLinks", "parameterTypes": [] }, - { "name": "getBuildingBlock", "parameterTypes": [] }, - { "name": "getCaching", "parameterTypes": [] }, - { "name": "getCollectionDefinitionsAreIdentical", "parameterTypes": [] }, - { "name": "getCollectionIdAsParameter", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.collections.domain.ImmutableCollectionsConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "additionalLinks", "parameterTypes": ["java.lang.Iterable"] }, - { - "name": "collectionDefinitionsAreIdentical", - "parameterTypes": ["java.util.Optional"] - }, - { - "name": "collectionIdAsParameter", - "parameterTypes": ["java.util.Optional"] - } - ] - }, - { - "name": "de.ii.ogcapi.collections.queryables.domain.ImmutableQueryablesConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getAsQueryParameters", "parameterTypes": [] }, - { "name": "getBuildingBlock", "parameterTypes": [] }, - { "name": "getCaching", "parameterTypes": [] }, - { "name": "getEnableEndpoint", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getExcluded", "parameterTypes": [] }, - { "name": "getIncluded", "parameterTypes": [] }, - { "name": "getPathSeparator", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.collections.queryables.domain.ImmutableQueryablesConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "asQueryParameters", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "build", "parameterTypes": [] }, - { "name": "enableEndpoint", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "excluded", "parameterTypes": ["java.lang.Iterable"] }, - { "name": "included", "parameterTypes": ["java.lang.Iterable"] }, - { - "name": "pathSeparator", - "parameterTypes": [ - "de.ii.ogcapi.collections.queryables.domain.QueryablesConfiguration$PathSeparator" - ] - } - ] - }, - { - "name": "de.ii.ogcapi.collections.queryables.domain.QueryablesConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.collections.queryables.domain.QueryablesConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.collections.queryables.domain.QueryablesConfiguration$PathSeparator", - "allDeclaredFields": true, - "allPublicFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.collections.schema.domain.ImmutableSchemaConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getBuildingBlock", "parameterTypes": [] }, - { "name": "getCaching", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getVersions", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.collections.schema.domain.ImmutableSchemaConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "versions", "parameterTypes": ["java.lang.Iterable"] } - ] - }, - { - "name": "de.ii.ogcapi.collections.schema.domain.SchemaConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.collections.schema.domain.SchemaConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.common.domain.CommonConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.common.domain.CommonConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.common.domain.ImmutableCommonConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getAdditionalLinks", "parameterTypes": [] }, - { "name": "getBuildingBlock", "parameterTypes": [] }, - { "name": "getCaching", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.common.domain.ImmutableCommonConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "additionalLinks", "parameterTypes": ["java.lang.Iterable"] }, - { "name": "build", "parameterTypes": [] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] } - ] - }, - { - "name": "de.ii.ogcapi.crs.domain.CrsConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.crs.domain.CrsConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.crs.domain.ImmutableCrsConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getAdditionalCrs", "parameterTypes": [] }, - { "name": "getBuildingBlock", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getSuppressGlobalCrsList", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.crs.domain.ImmutableCrsConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "additionalCrs", "parameterTypes": ["java.lang.Iterable"] }, - { "name": "build", "parameterTypes": [] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, - { - "name": "suppressGlobalCrsList", - "parameterTypes": ["java.lang.Boolean"] - } - ] - }, - { - "name": "de.ii.ogcapi.crud.app.CrudConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.crud.app.CrudConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.crud.app.ImmutableCrudConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getBuildingBlock", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getOptimisticLockingLastModified", "parameterTypes": [] }, - { "name": "getOptimisticLockingETag", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.crud.app.ImmutableCrudConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, - { - "name": "optimisticLockingLastModified", - "parameterTypes": ["java.lang.Boolean"] - }, - { - "name": "optimisticLockingETag", - "parameterTypes": ["java.lang.Boolean"] - } - ] - }, - { - "name": "de.ii.ogcapi.features.cityjson.domain.CityJsonConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.cityjson.domain.CityJsonConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.cityjson.domain.CityJsonConfiguration$Version", - "allDeclaredFields": true, - "allPublicFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.cityjson.domain.ImmutableCityJsonConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getBuildingBlock", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getTextSequences", "parameterTypes": [] }, - { "name": "getTransformations", "parameterTypes": [] }, - { "name": "getVersion", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.features.cityjson.domain.ImmutableCityJsonConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "textSequences", "parameterTypes": ["java.util.Optional"] }, - { "name": "version", "parameterTypes": ["java.util.Optional"] } - ] - }, - { - "name": "de.ii.ogcapi.features.core.domain.FeaturesCollectionQueryables", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.core.domain.FeaturesCollectionQueryables$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.core.domain.FeaturesCoreConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.core.domain.FeaturesCoreConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.core.domain.FeaturesCoreConfiguration$DefaultCrs", - "allDeclaredFields": true, - "allPublicFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.core.domain.FeaturesCoreConfiguration$ItemType", - "allDeclaredFields": true, - "allPublicFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.core.domain.ImmutableFeaturesCollectionQueryables", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getOther", "parameterTypes": [] }, - { "name": "getQ", "parameterTypes": [] }, - { "name": "getSpatial", "parameterTypes": [] }, - { "name": "getTemporal", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.features.core.domain.ImmutableFeaturesCollectionQueryables$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "other", "parameterTypes": ["java.lang.Iterable"] }, - { "name": "q", "parameterTypes": ["java.lang.Iterable"] }, - { "name": "spatial", "parameterTypes": ["java.lang.Iterable"] }, - { "name": "temporal", "parameterTypes": ["java.lang.Iterable"] } - ] - }, - { - "name": "de.ii.ogcapi.features.core.domain.ImmutableFeaturesCoreConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getBuildingBlock", "parameterTypes": [] }, - { "name": "getCaching", "parameterTypes": [] }, - { "name": "getCoordinatePrecision", "parameterTypes": [] }, - { "name": "getDefaultCrs", "parameterTypes": [] }, - { "name": "getDefaultPageSize", "parameterTypes": [] }, - { "name": "getEmbeddedFeatureLinkRels", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getFeatureProvider", "parameterTypes": [] }, - { "name": "getFeatureType", "parameterTypes": [] }, - { "name": "getItemType", "parameterTypes": [] }, - { "name": "getMaximumPageSize", "parameterTypes": [] }, - { "name": "getMinimumPageSize", "parameterTypes": [] }, - { "name": "getQueryables", "parameterTypes": [] }, - { "name": "getShowsFeatureSelfLink", "parameterTypes": [] }, - { "name": "getTransformations", "parameterTypes": [] }, - { "name": "getValidateCoordinatesInQueries", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.features.core.domain.ImmutableFeaturesCoreConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "coordinatePrecision", "parameterTypes": ["java.util.Map"] }, - { - "name": "defaultCrs", - "parameterTypes": [ - "de.ii.ogcapi.features.core.domain.FeaturesCoreConfiguration$DefaultCrs" - ] - }, - { "name": "defaultPageSize", "parameterTypes": ["java.lang.Integer"] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "featureProvider", "parameterTypes": ["java.util.Optional"] }, - { "name": "featureType", "parameterTypes": ["java.util.Optional"] }, - { "name": "itemType", "parameterTypes": ["java.util.Optional"] }, - { "name": "maximumPageSize", "parameterTypes": ["java.lang.Integer"] }, - { "name": "minimumPageSize", "parameterTypes": ["java.lang.Integer"] }, - { "name": "queryables", "parameterTypes": ["java.util.Optional"] }, - { - "name": "showsFeatureSelfLink", - "parameterTypes": ["java.lang.Boolean"] - }, - { "name": "transformations", "parameterTypes": ["java.util.Map"] }, - { - "name": "embeddedFeatureLinkRels", - "parameterTypes": ["java.lang.Iterable"] - }, - { - "name": "validateCoordinatesInQueries", - "parameterTypes": ["java.lang.Boolean"] - } - ] - }, - { - "name": "de.ii.ogcapi.features.core.domain.JsonSchemaDocument$VERSION", - "allDeclaredFields": true, - "allPublicFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.core.domain.SfFlatConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.csv.domain.CsvConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.csv.domain.ImmutableCsvConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getBuildingBlock", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getMaxMultiplicity", "parameterTypes": [] }, - { "name": "getTransformations", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.features.csv.domain.ImmutableCsvConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "transformations", "parameterTypes": ["java.util.Map"] }, - { "name": "maxMultiplicity", "parameterTypes": ["java.lang.Integer"] } - ] - }, - { - "name": "de.ii.ogcapi.features.custom.extensions.domain.FeaturesExtensionsConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.custom.extensions.domain.FeaturesExtensionsConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.custom.extensions.domain.ImmutableFeaturesExtensionsConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getBuildingBlock", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getIntersectsParameter", "parameterTypes": [] }, - { "name": "getPostOnItems", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.features.custom.extensions.domain.ImmutableFeaturesExtensionsConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, - { - "name": "intersectsParameter", - "parameterTypes": ["java.lang.Boolean"] - }, - { "name": "postOnItems", "parameterTypes": ["java.lang.Boolean"] } - ] - }, - { - "name": "de.ii.ogcapi.features.flatgeobuf.domain.FlatgeobufConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.flatgeobuf.domain.FlatgeobufConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.flatgeobuf.domain.ImmutableFlatgeobufConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getBuildingBlock", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getMaxMultiplicity", "parameterTypes": [] }, - { "name": "getTransformations", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.features.flatgeobuf.domain.ImmutableFlatgeobufConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "maxMultiplicity", "parameterTypes": ["java.lang.Integer"] }, - { "name": "transformations", "parameterTypes": ["java.util.Map"] } - ] - }, - { - "name": "de.ii.ogcapi.features.geojson.domain.GeoJsonConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.geojson.domain.GeoJsonConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.geojson.domain.GeoJsonConfiguration$MULTIPLICITY", - "allDeclaredFields": true, - "allPublicFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.geojson.domain.GeoJsonConfiguration$NESTED_OBJECTS", - "allDeclaredFields": true, - "allPublicFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.geojson.domain.ImmutableGeoJsonConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getBuildingBlock", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getMultiplicityStrategy", "parameterTypes": [] }, - { "name": "getNestedObjectStrategy", "parameterTypes": [] }, - { "name": "getSeparator", "parameterTypes": [] }, - { "name": "getTransformations", "parameterTypes": [] }, - { "name": "getUseFormattedJsonOutput", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.features.geojson.domain.ImmutableGeoJsonConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, - { - "name": "multiplicityStrategy", - "parameterTypes": [ - "de.ii.ogcapi.features.geojson.domain.GeoJsonConfiguration$MULTIPLICITY" - ] - }, - { - "name": "nestedObjectStrategy", - "parameterTypes": [ - "de.ii.ogcapi.features.geojson.domain.GeoJsonConfiguration$NESTED_OBJECTS" - ] - }, - { "name": "separator", "parameterTypes": ["java.lang.String"] }, - { "name": "transformations", "parameterTypes": ["java.util.Map"] }, - { - "name": "useFormattedJsonOutput", - "parameterTypes": ["java.lang.Boolean"] - } - ] - }, - { - "name": "de.ii.ogcapi.features.geojson.ld.domain.GeoJsonLdConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.geojson.ld.domain.GeoJsonLdConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.geojson.ld.domain.ImmutableGeoJsonLdConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getBuildingBlock", "parameterTypes": [] }, - { "name": "getContext", "parameterTypes": [] }, - { "name": "getContextFileName", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getIdTemplate", "parameterTypes": [] }, - { "name": "getTypes", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.features.geojson.ld.domain.ImmutableGeoJsonLdConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] } - ] - }, - { - "name": "de.ii.ogcapi.features.gltf.domain.GltfConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.gltf.domain.GltfConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.gltf.domain.GltfPropertyDefinition", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.gltf.domain.ImmutableGltfConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getBuildingBlock", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getMaxMultiplicity", "parameterTypes": [] }, - { "name": "getMeshQuantization", "parameterTypes": [] }, - { "name": "getPolygonOrientationNotGuaranteed", "parameterTypes": [] }, - { "name": "getProperties", "parameterTypes": [] }, - { "name": "getTransformations", "parameterTypes": [] }, - { "name": "getWithNormals", "parameterTypes": [] }, - { "name": "getWithOutline", "parameterTypes": [] }, - { "name": "getWithSurfaceType", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.features.gltf.domain.ImmutableGltfConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "meshQuantization", "parameterTypes": ["java.lang.Boolean"] }, - { - "name": "polygonOrientationNotGuaranteed", - "parameterTypes": ["java.lang.Boolean"] - }, - { "name": "properties", "parameterTypes": ["java.util.Map"] }, - { "name": "transformations", "parameterTypes": ["java.util.Map"] }, - { "name": "withNormals", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "withOutline", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "withSurfaceType", "parameterTypes": ["java.lang.Boolean"] } - ] - }, - { - "name": "de.ii.ogcapi.features.gltf.domain.ImmutableGltfPropertyDefinition", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getComponentType", "parameterTypes": [] }, - { "name": "getNoData", "parameterTypes": [] }, - { "name": "getStringOffsetType", "parameterTypes": [] }, - { "name": "getType", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.features.gltf.domain.ImmutableGltfPropertyDefinition$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "componentType", "parameterTypes": ["java.util.Optional"] }, - { "name": "noData", "parameterTypes": ["java.lang.String"] }, - { "name": "stringOffsetType", "parameterTypes": ["java.util.Optional"] }, - { - "name": "type", - "parameterTypes": [ - "de.ii.ogcapi.features.gltf.domain.SchemaProperty$Type" - ] - } - ] - }, - { - "name": "de.ii.ogcapi.features.gltf.domain.SchemaProperty$ComponentType", - "allDeclaredFields": true, - "allPublicFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.gltf.domain.SchemaProperty$Type", - "allDeclaredFields": true, - "allPublicFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.geojson.ld.domain.ImmutableGeoJsonLdConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] } - ] - }, - { - "name": "de.ii.ogcapi.features.gml.domain.GmlConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.gml.domain.GmlConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.gml.domain.GmlConfiguration$Conformance", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.gml.domain.GmlConfiguration$GmlVersion", - "allDeclaredFields": true, - "allPublicFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.gml.domain.ImmutableGmlConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getApplicationNamespaces", "parameterTypes": [] }, - { "name": "getBuildingBlock", "parameterTypes": [] }, - { "name": "getConformance", "parameterTypes": [] }, - { "name": "getDefaultNamespace", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getFeatureCollectionElementName", "parameterTypes": [] }, - { "name": "getFeatureMemberElementName", "parameterTypes": [] }, - { "name": "getGmlIdPrefix", "parameterTypes": [] }, - { "name": "getGmlSfLevel", "parameterTypes": [] }, - { "name": "getGmlVersion", "parameterTypes": [] }, - { "name": "getObjectTypeNamespaces", "parameterTypes": [] }, - { "name": "getSchemaLocations", "parameterTypes": [] }, - { "name": "getSupportsStandardResponseParameters", "parameterTypes": [] }, - { "name": "getTransformations", "parameterTypes": [] }, - { "name": "getVariableObjectElementNames", "parameterTypes": [] }, - { "name": "getXmlAttributes", "parameterTypes": [] }, - { "name": "getGmlIdOnGeometries", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.features.gml.domain.ImmutableGmlConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "applicationNamespaces", "parameterTypes": ["java.util.Map"] }, - { "name": "defaultNamespace", "parameterTypes": ["java.lang.String"] }, - { - "name": "featureCollectionElementName", - "parameterTypes": ["java.lang.String"] - }, - { - "name": "featureMemberElementName", - "parameterTypes": ["java.lang.String"] - }, - { "name": "gmlIdPrefix", "parameterTypes": ["java.lang.String"] }, - { "name": "gmlSfLevel", "parameterTypes": ["java.lang.Integer"] }, - { - "name": "gmlVersion", - "parameterTypes": [ - "de.ii.ogcapi.features.gml.domain.GmlConfiguration$GmlVersion" - ] - }, - { "name": "objectTypeNamespaces", "parameterTypes": ["java.util.Map"] }, - { "name": "schemaLocations", "parameterTypes": ["java.util.Map"] }, - { - "name": "supportsStandardResponseParameters", - "parameterTypes": ["java.lang.Boolean"] - }, - { "name": "transformations", "parameterTypes": ["java.util.Map"] }, - { - "name": "variableObjectElementNames", - "parameterTypes": ["java.util.Map"] - }, - { "name": "xmlAttributes", "parameterTypes": ["java.lang.Iterable"] }, - { "name": "gmlIdOnGeometries", "parameterTypes": ["java.lang.Boolean"] } - ] - }, - { - "name": "de.ii.ogcapi.features.gml.domain.ImmutableVariableName$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true - }, - { - "name": "de.ii.ogcapi.features.html.domain.FeaturesHtmlConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.html.domain.FeaturesHtmlConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.html.domain.FeaturesHtmlConfiguration$IgnoreLinksWildcardSerializer", - "methods": [{ "name": "", "parameterTypes": [] }] - }, - { - "name": "de.ii.ogcapi.features.html.domain.FeaturesHtmlConfiguration$LAYOUT", - "allDeclaredFields": true, - "allPublicFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.html.domain.FeaturesHtmlConfiguration$POSITION", - "allDeclaredFields": true, - "allPublicFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.html.domain.ImmutableFeaturesHtmlConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getBuildingBlock", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getFeatureTitleTemplate", "parameterTypes": [] }, - { "name": "getGeometryProperties", "parameterTypes": [] }, - { "name": "getLayout", "parameterTypes": [] }, - { "name": "getMapClientType", "parameterTypes": [] }, - { "name": "getMapPosition", "parameterTypes": [] }, - { "name": "getMaximumPageSize", "parameterTypes": [] }, - { "name": "getPropertyTooltips", "parameterTypes": [] }, - { "name": "getPropertyTooltipsOnItems", "parameterTypes": [] }, - { "name": "getRemoveZoomLevelConstraints", "parameterTypes": [] }, - { "name": "getStyle", "parameterTypes": [] }, - { "name": "getTransformations", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.features.html.domain.ImmutableFeaturesHtmlConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, - { - "name": "featureTitleTemplate", - "parameterTypes": ["java.util.Optional"] - }, - { - "name": "geometryProperties", - "parameterTypes": ["java.lang.Iterable"] - }, - { - "name": "layout", - "parameterTypes": [ - "de.ii.ogcapi.features.html.domain.FeaturesHtmlConfiguration$LAYOUT" - ] - }, - { - "name": "mapClientType", - "parameterTypes": ["de.ii.ogcapi.html.domain.MapClient$Type"] - }, - { - "name": "mapPosition", - "parameterTypes": [ - "de.ii.ogcapi.features.html.domain.FeaturesHtmlConfiguration$POSITION" - ] - }, - { "name": "maximumPageSize", "parameterTypes": ["java.lang.Integer"] }, - { "name": "propertyTooltips", "parameterTypes": ["java.lang.Boolean"] }, - { - "name": "propertyTooltipsOnItems", - "parameterTypes": ["java.lang.Boolean"] - }, - { - "name": "removeZoomLevelConstraints", - "parameterTypes": ["java.lang.Boolean"] - }, - { "name": "style", "parameterTypes": ["java.lang.String"] }, - { "name": "transformations", "parameterTypes": ["java.util.Map"] } - ] - }, - { - "name": "de.ii.ogcapi.features.jsonfg.domain.ImmutableJsonFgConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getBuildingBlock", "parameterTypes": [] }, - { "name": "getCoordRefSys", "parameterTypes": [] }, - { "name": "getDescribedby", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getFeatureType", "parameterTypes": [] }, - { "name": "getGeojsonCompatibility", "parameterTypes": [] }, - { "name": "getIncludeInGeoJson", "parameterTypes": [] }, - { "name": "getLinks", "parameterTypes": [] }, - { "name": "getSchemaCollection", "parameterTypes": [] }, - { "name": "getSchemaFeature", "parameterTypes": [] }, - { "name": "getTransformations", "parameterTypes": [] }, - { "name": "getUseCuries", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.features.jsonfg.domain.ImmutableJsonFgConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "coordRefSys", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "describedby", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "featureType", "parameterTypes": ["java.lang.Iterable"] }, - { - "name": "geojsonCompatibility", - "parameterTypes": ["java.lang.Boolean"] - }, - { "name": "transformations", "parameterTypes": ["java.util.Map"] }, - { "name": "includeInGeoJson", "parameterTypes": ["java.lang.Iterable"] }, - { "name": "links", "parameterTypes": ["java.lang.Iterable"] }, - { "name": "schemaCollection", "parameterTypes": ["java.lang.String"] }, - { "name": "schemaFeature", "parameterTypes": ["java.lang.String"] }, - { "name": "useCuries", "parameterTypes": ["java.lang.Boolean"] } - ] - }, - { - "name": "de.ii.ogcapi.features.jsonfg.domain.JsonFgConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.jsonfg.domain.JsonFgConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.jsonfg.domain.JsonFgConfiguration$OPTION", - "allDeclaredFields": true, - "allPublicFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.features.search.domain.ImmutableSearchConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getAllLinksAreLocal", "parameterTypes": [] }, - { "name": "getBuildingBlock", "parameterTypes": [] }, - { "name": "getCaching", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getManagerEnabled", "parameterTypes": [] }, - { "name": "getValidationEnabled", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.features.search.domain.ImmutableSearchConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "allLinksAreLocal", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "managerEnabled", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "validationEnabled", "parameterTypes": ["java.lang.Boolean"] }, - { - "name": "caching", - "parameterTypes": ["de.ii.ogcapi.foundation.domain.Caching"] - } - ] - }, - { - "name": "de.ii.ogcapi.features.search.domain.SearchConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.filter.domain.FilterConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.filter.domain.FilterConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.filter.domain.ImmutableFilterConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getBuildingBlock", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.filter.domain.ImmutableFilterConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] } - ] - }, - { - "name": "de.ii.ogcapi.foundation.domain.ApiMetadata", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.foundation.domain.ApiSecurity", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.foundation.domain.ApiSecurity$Policies", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.foundation.domain.ApiSecurity$PolicyAttribute", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.foundation.domain.ApiSecurity$ScopeGranularity", - "allDeclaredFields": true, - "allPublicFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.foundation.domain.Caching", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.foundation.domain.CachingConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.foundation.domain.CollectionExtent", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.foundation.domain.ExtendableConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.foundation.domain.ExtensionConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.foundation.domain.ExtensionConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.foundation.domain.ExternalDocumentation", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.foundation.domain.FeatureTypeConfigurationOgcApi", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.foundation.domain.FeatureTypeConfigurationOgcApi$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.foundation.domain.FoundationConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.foundation.domain.FoundationConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.foundation.domain.ImmutableApiCatalogEntry$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true - }, - { - "name": "de.ii.ogcapi.foundation.domain.ImmutableApiMetadata", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getAttribution", "parameterTypes": [] }, - { "name": "getContactEmail", "parameterTypes": [] }, - { "name": "getContactName", "parameterTypes": [] }, - { "name": "getContactPhone", "parameterTypes": [] }, - { "name": "getContactUrl", "parameterTypes": [] }, - { "name": "getCreatorLogoUrl", "parameterTypes": [] }, - { "name": "getCreatorName", "parameterTypes": [] }, - { "name": "getCreatorUrl", "parameterTypes": [] }, - { "name": "getKeywords", "parameterTypes": [] }, - { "name": "getLicenseName", "parameterTypes": [] }, - { "name": "getLicenseUrl", "parameterTypes": [] }, - { "name": "getPublisherLogoUrl", "parameterTypes": [] }, - { "name": "getPublisherName", "parameterTypes": [] }, - { "name": "getPublisherUrl", "parameterTypes": [] }, - { "name": "getVersion", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.foundation.domain.ImmutableApiMetadata$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "attribution", "parameterTypes": ["java.util.Optional"] }, - { "name": "contactEmail", "parameterTypes": ["java.util.Optional"] }, - { "name": "contactName", "parameterTypes": ["java.util.Optional"] }, - { "name": "contactPhone", "parameterTypes": ["java.util.Optional"] }, - { "name": "contactUrl", "parameterTypes": ["java.util.Optional"] }, - { "name": "creatorLogoUrl", "parameterTypes": ["java.util.Optional"] }, - { "name": "creatorName", "parameterTypes": ["java.util.Optional"] }, - { "name": "creatorUrl", "parameterTypes": ["java.util.Optional"] }, - { "name": "keywords", "parameterTypes": ["java.lang.Iterable"] }, - { "name": "licenseName", "parameterTypes": ["java.util.Optional"] }, - { "name": "licenseUrl", "parameterTypes": ["java.util.Optional"] }, - { "name": "publisherLogoUrl", "parameterTypes": ["java.util.Optional"] }, - { "name": "publisherName", "parameterTypes": ["java.util.Optional"] }, - { "name": "publisherUrl", "parameterTypes": ["java.util.Optional"] }, - { "name": "version", "parameterTypes": ["java.util.Optional"] } - ] - }, - { - "name": "de.ii.ogcapi.foundation.domain.ImmutableApiSecurity", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getPublicScopes", "parameterTypes": [] }, - { "name": "getGroups", "parameterTypes": [] }, - { "name": "getScopes", "parameterTypes": [] }, - { "name": "getAudience", "parameterTypes": [] }, - { "name": "getPolicies", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.foundation.domain.ImmutableApiSecurity$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "publicScopes", "parameterTypes": ["java.lang.Iterable"] }, - { "name": "groups", "parameterTypes": ["java.util.Map"] }, - { "name": "scopes", "parameterTypes": ["java.lang.Iterable"] }, - { "name": "audience", "parameterTypes": ["java.lang.Iterable"] }, - { "name": "policies", "parameterTypes": ["java.util.Optional"] } - ] - }, - { - "name": "de.ii.ogcapi.foundation.domain.ImmutablePolicyAttribute", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getConstant", "parameterTypes": [] }, - { "name": "getProperty", "parameterTypes": [] }, - { "name": "getParameter", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.foundation.domain.ImmutablePolicyAttribute$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "constant", "parameterTypes": ["java.util.Optional"] }, - { "name": "property", "parameterTypes": ["java.util.Optional"] }, - { "name": "parameter", "parameterTypes": ["java.util.Optional"] } - ] - }, - { - "name": "de.ii.ogcapi.foundation.domain.ImmutablePolicies", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getAttributes", "parameterTypes": [] }, - { "name": "getObligations", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.foundation.domain.ImmutablePolicies$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "attributes", "parameterTypes": ["java.util.Map"] }, - { "name": "obligations", "parameterTypes": ["java.util.Map"] } - ] - }, - { - "name": "de.ii.ogcapi.foundation.domain.ImmutableCaching", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getLastModified", "parameterTypes": [] }, - { "name": "getExpires", "parameterTypes": [] }, - { "name": "getCacheControl", "parameterTypes": [] }, - { "name": "getCacheControlItems", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.foundation.domain.ImmutableCaching$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "lastModified", "parameterTypes": ["java.util.Date"] }, - { "name": "expires", "parameterTypes": ["java.util.Date"] }, - { "name": "cacheControl", "parameterTypes": ["java.lang.String"] }, - { "name": "cacheControlItems", "parameterTypes": ["java.lang.String"] } - ] - }, - { - "name": "de.ii.ogcapi.foundation.domain.ImmutableCollectionExtent", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getSpatial", "parameterTypes": [] }, - { "name": "getSpatialComputed", "parameterTypes": [] }, - { "name": "getTemporal", "parameterTypes": [] }, - { "name": "getTemporalComputed", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.foundation.domain.ImmutableCollectionExtent$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "spatialBuilder", "parameterTypes": [] }, - { "name": "spatialComputed", "parameterTypes": ["java.util.Optional"] }, - { "name": "temporalBuilder", "parameterTypes": [] }, - { "name": "temporalComputed", "parameterTypes": ["java.util.Optional"] } - ] - }, - { - "name": "de.ii.ogcapi.foundation.domain.ImmutableExternalDocumentation", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getDescription", "parameterTypes": [] }, - { "name": "getUrl", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.foundation.domain.ImmutableExternalDocumentation$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "description", "parameterTypes": ["java.util.Optional"] }, - { "name": "url", "parameterTypes": ["java.lang.String"] } - ] - }, - { - "name": "de.ii.ogcapi.foundation.domain.ImmutableFeatureTypeConfigurationOgcApi", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getAdditionalLinks", "parameterTypes": [] }, - { "name": "getDescription", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getExtensions", "parameterTypes": [] }, - { "name": "getExtent", "parameterTypes": [] }, - { "name": "getId", "parameterTypes": [] }, - { "name": "getLabel", "parameterTypes": [] }, - { "name": "getPersistentUriTemplate", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.foundation.domain.ImmutableFeatureTypeConfigurationOgcApi$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "addAllExtensions", "parameterTypes": ["java.lang.Iterable"] }, - { "name": "additionalLinks", "parameterTypes": ["java.lang.Iterable"] }, - { "name": "description", "parameterTypes": ["java.util.Optional"] }, - { "name": "enabled", "parameterTypes": ["boolean"] }, - { "name": "extentBuilder", "parameterTypes": [] }, - { "name": "id", "parameterTypes": ["java.lang.String"] }, - { "name": "label", "parameterTypes": ["java.lang.String"] }, - { - "name": "persistentUriTemplate", - "parameterTypes": ["java.util.Optional"] - } - ] - }, - { - "name": "de.ii.ogcapi.foundation.domain.ImmutableFoundationConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getApiCatalogDescription", "parameterTypes": [] }, - { "name": "getApiCatalogLabel", "parameterTypes": [] }, - { "name": "getBuildingBlock", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getGoogleSiteVerification", "parameterTypes": [] }, - { "name": "getIncludeLinkHeader", "parameterTypes": [] }, - { "name": "getIncludeSpecificationInformation", "parameterTypes": [] }, - { "name": "getUseLangParameter", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.foundation.domain.ImmutableFoundationConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { - "name": "apiCatalogDescription", - "parameterTypes": ["java.lang.String"] - }, - { "name": "apiCatalogLabel", "parameterTypes": ["java.lang.String"] }, - { "name": "build", "parameterTypes": [] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, - { - "name": "googleSiteVerification", - "parameterTypes": ["java.lang.String"] - }, - { "name": "includeLinkHeader", "parameterTypes": ["java.lang.Boolean"] }, - { - "name": "includeSpecificationInformation", - "parameterTypes": ["java.lang.Boolean"] - }, - { "name": "useLangParameter", "parameterTypes": ["java.lang.Boolean"] } - ] - }, - { - "name": "de.ii.ogcapi.foundation.domain.ImmutableLink", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getAnchor", "parameterTypes": [] }, - { "name": "getHref", "parameterTypes": [] }, - { "name": "getHreflang", "parameterTypes": [] }, - { "name": "getLength", "parameterTypes": [] }, - { "name": "getRel", "parameterTypes": [] }, - { "name": "getTemplated", "parameterTypes": [] }, - { "name": "getTitle", "parameterTypes": [] }, - { "name": "getType", "parameterTypes": [] }, - { "name": "getVarBase", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.foundation.domain.ImmutableLink$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "anchor", "parameterTypes": ["java.lang.String"] }, - { "name": "href", "parameterTypes": ["java.lang.String"] }, - { "name": "hreflang", "parameterTypes": ["java.lang.String"] }, - { "name": "rel", "parameterTypes": ["java.lang.String"] }, - { "name": "title", "parameterTypes": ["java.lang.String"] }, - { "name": "type", "parameterTypes": ["java.lang.String"] }, - { "name": "length", "parameterTypes": ["java.lang.Integer"] }, - { "name": "templated", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "varBase", "parameterTypes": ["java.lang.String"] }, - { "name": "build", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.foundation.domain.ImmutableOgcApiDataV2", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getAccessControl", "parameterTypes": [] }, - { "name": "getApiValidation", "parameterTypes": [] }, - { "name": "getApiVersion", "parameterTypes": [] }, - { "name": "getCollections", "parameterTypes": [] }, - { "name": "getCreatedAt", "parameterTypes": [] }, - { "name": "getDefaultCaching", "parameterTypes": [] }, - { "name": "getDefaultExtent", "parameterTypes": [] }, - { "name": "getDescription", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getEntityStorageVersion", "parameterTypes": [] }, - { "name": "getExtensions", "parameterTypes": [] }, - { "name": "getExternalDocs", "parameterTypes": [] }, - { "name": "getId", "parameterTypes": [] }, - { "name": "getLabel", "parameterTypes": [] }, - { "name": "getLastModified", "parameterTypes": [] }, - { "name": "getMetadata", "parameterTypes": [] }, - { "name": "getServiceType", "parameterTypes": [] }, - { "name": "getTags", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.foundation.domain.ImmutableOgcApiDataV2$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "accessControlBuilder", "parameterTypes": [] }, - { "name": "addAllExtensions", "parameterTypes": ["java.lang.Iterable"] }, - { - "name": "apiValidation", - "parameterTypes": [ - "de.ii.xtraplatform.entities.domain.ValidationResult$MODE" - ] - }, - { "name": "apiVersion", "parameterTypes": ["java.util.Optional"] }, - { "name": "auto", "parameterTypes": ["java.util.Optional"] }, - { "name": "createdAt", "parameterTypes": ["long"] }, - { "name": "defaultCachingBuilder", "parameterTypes": [] }, - { - "name": "defaultExtentBuilder", - "parameterTypes": [ - "de.ii.ogcapi.foundation.domain.ImmutableCollectionExtent$Builder" - ] - }, - { "name": "description", "parameterTypes": ["java.util.Optional"] }, - { "name": "enabled", "parameterTypes": ["boolean"] }, - { "name": "entityStorageVersion", "parameterTypes": ["long"] }, - { "name": "externalDocsBuilder", "parameterTypes": [] }, - { "name": "getCollections", "parameterTypes": [] }, - { "name": "id", "parameterTypes": ["java.lang.String"] }, - { "name": "label", "parameterTypes": ["java.lang.String"] }, - { "name": "lastModified", "parameterTypes": ["long"] }, - { "name": "metadataBuilder", "parameterTypes": [] }, - { "name": "serviceType", "parameterTypes": ["java.lang.String"] }, - { "name": "tags", "parameterTypes": ["java.lang.Iterable"] } - ] - }, - { - "name": "de.ii.ogcapi.foundation.domain.ImmutableTemporalExtent", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getEnd", "parameterTypes": [] }, - { "name": "getStart", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.foundation.domain.ImmutableTemporalExtent$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "end", "parameterTypes": ["java.lang.Long"] }, - { "name": "start", "parameterTypes": ["java.lang.Long"] } - ] - }, - { - "name": "de.ii.ogcapi.foundation.domain.Link", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.foundation.domain.OgcApiDataV2", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.foundation.domain.OgcApiDataV2$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.foundation.domain.TemporalExtent", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.geometry.simplification.app.GeometrySimplificationConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.geometry.simplification.app.GeometrySimplificationConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.geometry.simplification.app.ImmutableGeometrySimplificationConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getBuildingBlock", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.geometry.simplification.app.ImmutableGeometrySimplificationConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] } - ] - }, - { - "name": "de.ii.ogcapi.html.domain.HtmlConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.html.domain.HtmlConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.html.domain.ImmutableHtmlConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getAdditionalApis", "parameterTypes": [] }, - { "name": "getBasemapAttribution", "parameterTypes": [] }, - { "name": "getBasemapUrl", "parameterTypes": [] }, - { "name": "getBuildingBlock", "parameterTypes": [] }, - { "name": "getCollectionDescriptionsInOverview", "parameterTypes": [] }, - { "name": "getDefaultStyle", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getFooterText", "parameterTypes": [] }, - { "name": "getLeafletAttribution", "parameterTypes": [] }, - { "name": "getLeafletUrl", "parameterTypes": [] }, - { "name": "getLegalName", "parameterTypes": [] }, - { "name": "getLegalUrl", "parameterTypes": [] }, - { "name": "getNoIndexEnabled", "parameterTypes": [] }, - { "name": "getOpenLayersAttribution", "parameterTypes": [] }, - { "name": "getOpenLayersUrl", "parameterTypes": [] }, - { "name": "getPrivacyName", "parameterTypes": [] }, - { "name": "getPrivacyUrl", "parameterTypes": [] }, - { "name": "getSchemaOrgEnabled", "parameterTypes": [] }, - { "name": "getSendEtags", "parameterTypes": [] }, - { "name": "getSuppressEmptyCollectionsInOverview", "parameterTypes": [] }, - { "name": "getLoginProvider", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.html.domain.ImmutableHtmlConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "basemapAttribution", "parameterTypes": ["java.lang.String"] }, - { "name": "basemapUrl", "parameterTypes": ["java.lang.String"] }, - { "name": "build", "parameterTypes": [] }, - { - "name": "collectionDescriptionsInOverview", - "parameterTypes": ["java.lang.Boolean"] - }, - { "name": "defaultStyle", "parameterTypes": ["java.lang.String"] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "footerText", "parameterTypes": ["java.lang.String"] }, - { "name": "leafletAttribution", "parameterTypes": ["java.lang.String"] }, - { "name": "leafletUrl", "parameterTypes": ["java.lang.String"] }, - { "name": "legalName", "parameterTypes": ["java.lang.String"] }, - { "name": "legalUrl", "parameterTypes": ["java.lang.String"] }, - { "name": "noIndexEnabled", "parameterTypes": ["java.lang.Boolean"] }, - { - "name": "openLayersAttribution", - "parameterTypes": ["java.lang.String"] - }, - { "name": "openLayersUrl", "parameterTypes": ["java.lang.String"] }, - { "name": "privacyName", "parameterTypes": ["java.lang.String"] }, - { "name": "privacyUrl", "parameterTypes": ["java.lang.String"] }, - { "name": "schemaOrgEnabled", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "sendEtags", "parameterTypes": ["java.lang.Boolean"] }, - { - "name": "suppressEmptyCollectionsInOverview", - "parameterTypes": ["java.lang.Boolean"] - }, - { "name": "loginProvider", "parameterTypes": ["java.lang.String"] } - ] - }, - { - "name": "de.ii.ogcapi.html.domain.MapClient$Type", - "allDeclaredFields": true, - "allPublicFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.json.domain.ImmutableJsonConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getBuildingBlock", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.json.domain.ImmutableJsonConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] } - ] - }, - { - "name": "de.ii.ogcapi.json.domain.JsonConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.json.domain.JsonConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.oas30.domain.ImmutableOas30Configuration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getBuildingBlock", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.oas30.domain.ImmutableOas30Configuration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] } - ] - }, - { - "name": "de.ii.ogcapi.oas30.domain.Oas30Configuration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.oas30.domain.Oas30Configuration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.projections.app.ImmutableProjectionsConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getBuildingBlock", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.projections.app.ImmutableProjectionsConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] } - ] - }, - { - "name": "de.ii.ogcapi.projections.app.ProjectionsConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.projections.app.ProjectionsConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.resources.domain.ImmutableResourcesConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getBuildingBlock", "parameterTypes": [] }, - { "name": "getCaching", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getManagerEnabled", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.resources.domain.ImmutableResourcesConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "managerEnabled", "parameterTypes": ["java.lang.Boolean"] } - ] - }, - { - "name": "de.ii.ogcapi.resources.domain.ResourcesConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.resources.domain.ResourcesConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.routes.domain.RoutingFlag", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.routes.domain.ImmutableRoutingFlag", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getLabel", "parameterTypes": [] }, - { "name": "getDefault", "parameterTypes": [] }, - { "name": "getProviderFlag", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.routes.domain.ImmutableRoutingFlag$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "label", "parameterTypes": ["java.lang.String"] }, - { "name": "getDefault", "parameterTypes": ["boolean"] }, - { "name": "providerFlag", "parameterTypes": ["java.util.Optional"] } - ] - }, - { - "name": "de.ii.ogcapi.routes.domain.HtmlForm", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.routes.domain.ImmutableHtmlForm", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getDefaults", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.routes.domain.ImmutableHtmlForm$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "defaults", "parameterTypes": ["java.util.Optional"] } - ] - }, - { - "name": "de.ii.ogcapi.routes.domain.HtmlFormDefaults", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.routes.domain.ImmutableHtmlFormDefaults", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getName", "parameterTypes": [] }, - { "name": "getStart", "parameterTypes": [] }, - { "name": "getEnd", "parameterTypes": [] }, - { "name": "getCenter", "parameterTypes": [] }, - { "name": "getCenterLevel", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.routes.domain.ImmutableHtmlFormDefaults$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "name", "parameterTypes": ["java.util.Optional"] }, - { "name": "start", "parameterTypes": ["java.lang.Iterable"] }, - { "name": "end", "parameterTypes": ["java.lang.Iterable"] }, - { "name": "center", "parameterTypes": ["java.lang.Iterable"] }, - { "name": "centerLevel", "parameterTypes": ["java.lang.Integer"] } - ] - }, - { - "name": "de.ii.ogcapi.routes.domain.ImmutableRoutingConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getAdditionalFlags", "parameterTypes": [] }, - { "name": "getBuildingBlock", "parameterTypes": [] }, - { "name": "getCaching", "parameterTypes": [] }, - { "name": "getCoordinatePrecision", "parameterTypes": [] }, - { "name": "getDefaultCrs", "parameterTypes": [] }, - { "name": "getDefaultMode", "parameterTypes": [] }, - { "name": "getDefaultPreference", "parameterTypes": [] }, - { - "name": "getElevationProfileSimplificationTolerance", - "parameterTypes": [] - }, - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getFeatureType", "parameterTypes": [] }, - { "name": "getHeightRestrictions", "parameterTypes": [] }, - { "name": "getHtml", "parameterTypes": [] }, - { "name": "getIntermediateWaypoints", "parameterTypes": [] }, - { "name": "getManageRoutes", "parameterTypes": [] }, - { "name": "getObstacles", "parameterTypes": [] }, - { "name": "getSpeedLimitUnit", "parameterTypes": [] }, - { "name": "getWeightRestrictions", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.routes.domain.ImmutableRoutingConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "additionalFlags", "parameterTypes": ["java.util.Map"] }, - { - "name": "caching", - "parameterTypes": ["de.ii.ogcapi.foundation.domain.Caching"] - }, - { "name": "coordinatePrecision", "parameterTypes": ["java.util.Map"] }, - { - "name": "defaultCrs", - "parameterTypes": [ - "de.ii.ogcapi.features.core.domain.FeaturesCoreConfiguration$DefaultCrs" - ] - }, - { "name": "defaultMode", "parameterTypes": ["java.lang.String"] }, - { "name": "defaultPreference", "parameterTypes": ["java.lang.String"] }, - { - "name": "elevationProfileSimplificationTolerance", - "parameterTypes": ["java.lang.Double"] - }, - { "name": "featureType", "parameterTypes": ["java.lang.String"] }, - { "name": "heightRestrictions", "parameterTypes": ["java.lang.Boolean"] }, - { - "name": "html", - "parameterTypes": ["de.ii.ogcapi.routes.domain.HtmlForm"] - }, - { - "name": "intermediateWaypoints", - "parameterTypes": ["java.lang.Boolean"] - }, - { "name": "manageRoutes", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "obstacles", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "speedLimitUnit", "parameterTypes": ["java.lang.String"] }, - { "name": "weightRestrictions", "parameterTypes": ["java.lang.Boolean"] } - ] - }, - { - "name": "de.ii.ogcapi.routes.domain.RoutingConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.sorting.domain.ImmutableSortingConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getBuildingBlock", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getExcluded", "parameterTypes": [] }, - { "name": "getIncluded", "parameterTypes": [] }, - { "name": "getPathSeparator", "parameterTypes": [] }, - { "name": "getSortables", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.sorting.domain.ImmutableSortingConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "included", "parameterTypes": ["java.lang.Iterable"] }, - { - "name": "pathSeparator", - "parameterTypes": [ - "de.ii.ogcapi.collections.queryables.domain.QueryablesConfiguration$PathSeparator" - ] - }, - { "name": "sortables", "parameterTypes": ["java.lang.Iterable"] } - ] - }, - { - "name": "de.ii.ogcapi.sorting.domain.SortingConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.sorting.domain.SortingConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.styles.domain.ImmutableStylesConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getBuildingBlock", "parameterTypes": [] }, - { "name": "getCaching", "parameterTypes": [] }, - { "name": "getDefaultStyle", "parameterTypes": [] }, - { "name": "getDeriveCollectionStyles", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getLayerControlAllLayers", "parameterTypes": [] }, - { "name": "getManagerEnabled", "parameterTypes": [] }, - { "name": "getResourceManagerEnabled", "parameterTypes": [] }, - { "name": "getResourcesEnabled", "parameterTypes": [] }, - { "name": "getStyleEncodings", "parameterTypes": [] }, - { "name": "getUseIdFromStylesheet", "parameterTypes": [] }, - { "name": "getValidationEnabled", "parameterTypes": [] }, - { "name": "getWebmapWithLayerControl", "parameterTypes": [] }, - { "name": "getWebmapWithPopup", "parameterTypes": [] }, - { "name": "getLegendEnabled", "parameterTypes": [] }, - { "name": "getAddBoundsToVectorSource", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.styles.domain.ImmutableStylesConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "defaultStyle", "parameterTypes": ["java.lang.String"] }, - { - "name": "deriveCollectionStyles", - "parameterTypes": ["java.lang.Boolean"] - }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, - { - "name": "layerControlAllLayers", - "parameterTypes": ["java.lang.Boolean"] - }, - { "name": "managerEnabled", "parameterTypes": ["java.lang.Boolean"] }, - { - "name": "resourceManagerEnabled", - "parameterTypes": ["java.lang.Boolean"] - }, - { "name": "resourcesEnabled", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "styleEncodings", "parameterTypes": ["java.lang.Iterable"] }, - { - "name": "useIdFromStylesheet", - "parameterTypes": ["java.lang.Boolean"] - }, - { "name": "validationEnabled", "parameterTypes": ["java.lang.Boolean"] }, - { - "name": "webmapWithLayerControl", - "parameterTypes": ["java.lang.Boolean"] - }, - { "name": "webmapWithPopup", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "legendEnabled", "parameterTypes": ["java.lang.Boolean"] }, - { - "name": "addBoundsToVectorSource", - "parameterTypes": ["java.lang.Boolean"] - } - ] - }, - { - "name": "de.ii.ogcapi.styles.domain.StylesConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.styles.domain.StylesConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.text.search.domain.ImmutableTextSearchConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getBuildingBlock", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getProperties", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.text.search.domain.ImmutableTextSearchConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "properties", "parameterTypes": ["java.lang.Iterable"] } - ] - }, - { - "name": "de.ii.ogcapi.tilematrixsets.domain.ImmutableTileMatrixSetsConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getBuildingBlock", "parameterTypes": [] }, - { "name": "getCaching", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getIncludePredefined", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.tilematrixsets.domain.TileMatrixSetsConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.tilematrixsets.domain.ImmutableTileMatrixSetsConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "includePredefined", "parameterTypes": ["java.lang.Iterable"] }, - { - "name": "caching", - "parameterTypes": ["de.ii.ogcapi.foundation.domain.Caching"] - } - ] - }, - { - "name": "de.ii.ogcapi.tiles.domain.ImmutableTileProviderFeatures", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getCenter", "parameterTypes": [] }, - { "name": "getFilters", "parameterTypes": [] }, - { "name": "getIgnoreInvalidGeometries", "parameterTypes": [] }, - { "name": "getLimit", "parameterTypes": [] }, - { "name": "getMinimumSizeInPixel", "parameterTypes": [] }, - { "name": "getMultiCollectionEnabled", "parameterTypes": [] }, - { "name": "getRules", "parameterTypes": [] }, - { "name": "getSeeding", "parameterTypes": [] }, - { "name": "getSeedingOptions", "parameterTypes": [] }, - { "name": "getSingleCollectionEnabled", "parameterTypes": [] }, - { "name": "getTileEncodings", "parameterTypes": [] }, - { "name": "getType", "parameterTypes": [] }, - { "name": "getZoomLevels", "parameterTypes": [] }, - { "name": "getZoomLevelsCache", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.tiles.domain.ImmutableTileProviderFeatures$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "center", "parameterTypes": ["java.lang.Iterable"] }, - { "name": "filters", "parameterTypes": ["java.util.Map"] }, - { - "name": "ignoreInvalidGeometries", - "parameterTypes": ["java.lang.Boolean"] - }, - { "name": "limit", "parameterTypes": ["java.lang.Integer"] }, - { "name": "minimumSizeInPixel", "parameterTypes": ["java.lang.Double"] }, - { - "name": "multiCollectionEnabled", - "parameterTypes": ["java.lang.Boolean"] - }, - { "name": "rules", "parameterTypes": ["java.util.Map"] }, - { "name": "seeding", "parameterTypes": ["java.util.Map"] }, - { "name": "seedingOptions", "parameterTypes": ["java.util.Optional"] }, - { - "name": "singleCollectionEnabled", - "parameterTypes": ["java.lang.Boolean"] - }, - { "name": "tileEncodings", "parameterTypes": ["java.lang.Iterable"] }, - { "name": "zoomLevels", "parameterTypes": ["java.util.Map"] }, - { "name": "zoomLevelsCache", "parameterTypes": ["java.util.Map"] } - ] - }, - { - "name": "de.ii.ogcapi.tiles.domain.ImmutableTileProviderMbtiles", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getFilename", "parameterTypes": [] }, - { "name": "getTileMatrixSetId", "parameterTypes": [] }, - { "name": "getType", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.tiles.domain.ImmutableTileProviderMbtiles$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "filename", "parameterTypes": ["java.lang.String"] }, - { "name": "tileMatrixSetId", "parameterTypes": ["java.lang.String"] } - ] - }, - { - "name": "de.ii.ogcapi.tiles.domain.ImmutableTileProviderTileServer", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getUrlTemplate", "parameterTypes": [] }, - { "name": "getUrlTemplateSingleCollection", "parameterTypes": [] }, - { "name": "getTileEncodings", "parameterTypes": [] }, - { "name": "getType", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.tiles.domain.ImmutableTileProviderTileServer$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "urlTemplate", "parameterTypes": ["java.lang.String"] }, - { - "name": "urlTemplateSingleCollection", - "parameterTypes": ["java.lang.String"] - }, - { "name": "tileEncodings", "parameterTypes": ["java.lang.Iterable"] } - ] - }, - { - "name": "de.ii.ogcapi.tiles.domain.ImmutableTilesConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getBuildingBlock", "parameterTypes": [] }, - { "name": "getCache", "parameterTypes": [] }, - { "name": "getCaching", "parameterTypes": [] }, - { "name": "getCenter", "parameterTypes": [] }, - { "name": "getCollectionTiles", "parameterTypes": [] }, - { "name": "getDatasetTiles", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getFilters", "parameterTypes": [] }, - { "name": "getIgnoreInvalidGeometries", "parameterTypes": [] }, - { "name": "getLimit", "parameterTypes": [] }, - { "name": "getMapClientType", "parameterTypes": [] }, - { "name": "getMaxMultiplicity", "parameterTypes": [] }, - { "name": "getMinimumSizeInPixel", "parameterTypes": [] }, - { "name": "getRemoveZoomLevelConstraints", "parameterTypes": [] }, - { "name": "getRules", "parameterTypes": [] }, - { "name": "getSeeding", "parameterTypes": [] }, - { "name": "getSeedingOptions", "parameterTypes": [] }, - { "name": "getStyle", "parameterTypes": [] }, - { "name": "getTileEncodings", "parameterTypes": [] }, - { "name": "getTileProvider", "parameterTypes": [] }, - { "name": "getTileProviderTileset", "parameterTypes": [] }, - { "name": "getTileSetEncodings", "parameterTypes": [] }, - { "name": "getTransformations", "parameterTypes": [] }, - { "name": "getZoomLevels", "parameterTypes": [] }, - { "name": "getZoomLevelsCache", "parameterTypes": [] }, - { "name": "getWmts", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.tiles.domain.ImmutableTilesConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { - "name": "cache", - "parameterTypes": [ - "de.ii.ogcapi.tiles.domain.TilesConfiguration$TileCacheType" - ] - }, - { "name": "center", "parameterTypes": ["java.lang.Iterable"] }, - { "name": "collectionTiles", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "datasetTiles", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "filters", "parameterTypes": ["java.util.Map"] }, - { - "name": "ignoreInvalidGeometries", - "parameterTypes": ["java.lang.Boolean"] - }, - { "name": "limit", "parameterTypes": ["java.lang.Integer"] }, - { - "name": "mapClientType", - "parameterTypes": ["de.ii.ogcapi.html.domain.MapClient$Type"] - }, - { "name": "minimumSizeInPixel", "parameterTypes": ["java.lang.Double"] }, - { - "name": "removeZoomLevelConstraints", - "parameterTypes": ["java.lang.Boolean"] - }, - { "name": "rules", "parameterTypes": ["java.util.Map"] }, - { "name": "seeding", "parameterTypes": ["java.util.Map"] }, - { "name": "seedingOptions", "parameterTypes": ["java.util.Optional"] }, - { "name": "style", "parameterTypes": ["java.lang.String"] }, - { "name": "tileEncodings", "parameterTypes": ["java.lang.Iterable"] }, - { "name": "tileProvider", "parameterTypes": ["java.lang.String"] }, - { "name": "tileProviderTileset", "parameterTypes": ["java.lang.String"] }, - { "name": "tileSetEncodings", "parameterTypes": ["java.lang.Iterable"] }, - { "name": "transformations", "parameterTypes": ["java.util.Map"] }, - { "name": "zoomLevels", "parameterTypes": ["java.util.Map"] }, - { "name": "zoomLevelsCache", "parameterTypes": ["java.util.Map"] }, - { - "name": "wmts", - "parameterTypes": [ - "de.ii.ogcapi.tiles.domain.TilesConfiguration$WmtsScope" - ] - } - ] - }, - { - "name": "de.ii.ogcapi.tiles.domain.TilesConfiguration$WmtsScope", - "allDeclaredFields": true, - "allPublicFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.tiles.domain.TileProvider", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true - }, - { - "name": "de.ii.ogcapi.tiles.domain.TileProviderFeatures", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.tiles.domain.TileProviderMbtiles", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.tiles.domain.TilesConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.tiles.domain.TilesConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.tiles.domain.TilesConfiguration$TileCacheType", - "allDeclaredFields": true, - "allPublicFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.tiles3d.domain.ImmutableTiles3dConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getBuildingBlock", "parameterTypes": [] }, - { "name": "getClampToEllipsoid", "parameterTypes": [] }, - { "name": "getContentFilters", "parameterTypes": [] }, - { "name": "getCustomTerrainProviderUri", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getFirstLevelWithContent", "parameterTypes": [] }, - { "name": "getGeometricErrorRoot", "parameterTypes": [] }, - { "name": "getIonAccessToken", "parameterTypes": [] }, - { "name": "getMaptilerApiKey", "parameterTypes": [] }, - { "name": "getMaxLevel", "parameterTypes": [] }, - { "name": "getSeeding", "parameterTypes": [] }, - { "name": "getStyle", "parameterTypes": [] }, - { "name": "getSubtreeLevels", "parameterTypes": [] }, - { "name": "getTerrainHeightDifference", "parameterTypes": [] }, - { "name": "getTileFilters", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.tiles3d.domain.ImmutableTiles3dConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "clampToEllipsoid", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, - { - "name": "firstLevelWithContent", - "parameterTypes": ["java.lang.Integer"] - }, - { "name": "geometricErrorRoot", "parameterTypes": ["java.lang.Float"] }, - { "name": "maxLevel", "parameterTypes": ["java.lang.Integer"] }, - { "name": "seedingBuilder", "parameterTypes": [] }, - { "name": "subtreeLevels", "parameterTypes": ["java.lang.Integer"] } - ] - }, - { - "name": "de.ii.ogcapi.tiles3d.domain.Tiles3dConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.tiles3d.domain.Tiles3dConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.xml.domain.ImmutableXmlConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getBuildingBlock", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.xml.domain.ImmutableXmlConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] } - ] - }, - { - "name": "de.ii.ogcapi.xml.domain.XmlConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.xml.domain.XmlConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.auth.app.ImmutableUserData", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getCreatedAt", "parameterTypes": [] }, - { "name": "getEntityStorageVersion", "parameterTypes": [] }, - { "name": "getId", "parameterTypes": [] }, - { "name": "getLastModified", "parameterTypes": [] }, - { "name": "getPassword", "parameterTypes": [] }, - { "name": "getPasswordExpiresAt", "parameterTypes": [] }, - { "name": "getRole", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.auth.app.ImmutableUserData$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "createdAt", "parameterTypes": ["long"] }, - { "name": "entityStorageVersion", "parameterTypes": ["long"] }, - { "name": "id", "parameterTypes": ["java.lang.String"] }, - { "name": "lastModified", "parameterTypes": ["long"] }, - { "name": "password", "parameterTypes": ["java.lang.String"] }, - { - "name": "role", - "parameterTypes": ["de.ii.xtraplatform.auth.domain.Role"] - } - ] - }, - { - "name": "de.ii.xtraplatform.auth.app.User$UserData", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.auth.app.User$UserData$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.auth.domain.Role", - "allDeclaredFields": true, - "allPublicFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.codelists.domain.Codelist", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.codelists.domain.Codelist$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.codelists.domain.Codelist$ImportType", - "allDeclaredFields": true, - "allPublicFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.codelists.domain.ImmutableCodelist", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getEntries", "parameterTypes": [] }, - { "name": "getFallback", "parameterTypes": [] }, - { "name": "getLabel", "parameterTypes": [] }, - { "name": "getSourceType", "parameterTypes": [] }, - { "name": "getSourceUrl", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.codelists.domain.ImmutableCodelist$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "entries", "parameterTypes": ["java.util.Map"] }, - { "name": "fallback", "parameterTypes": ["java.util.Optional"] }, - { "name": "label", "parameterTypes": ["java.util.Optional"] }, - { - "name": "sourceType", - "parameterTypes": [ - "de.ii.xtraplatform.codelists.domain.Codelist$ImportType" - ] - }, - { "name": "sourceUrl", "parameterTypes": ["java.util.Optional"] } - ] - }, - { - "name": "de.ii.ogcapi.styles.domain.MbStyleStylesheet", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.ogcapi.styles.domain.ImmutableMbStyleStylesheet", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getVersion", "parameterTypes": [] }, - { "name": "getName", "parameterTypes": [] }, - { "name": "getMetadata", "parameterTypes": [] }, - { "name": "getCenter", "parameterTypes": [] }, - { "name": "getZoom", "parameterTypes": [] }, - { "name": "getBearing", "parameterTypes": [] }, - { "name": "getPitch", "parameterTypes": [] }, - { "name": "getLight", "parameterTypes": [] }, - { "name": "getSources", "parameterTypes": [] }, - { "name": "getSprite", "parameterTypes": [] }, - { "name": "getGlyphs", "parameterTypes": [] }, - { "name": "getTransition", "parameterTypes": [] }, - { "name": "getLayers", "parameterTypes": [] }, - { "name": "getTerrain", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.styles.domain.MbStyleVectorSource", - "queryAllDeclaredMethods": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getType", "parameterTypes": [] }, - { "name": "getUrl", "parameterTypes": [] }, - { "name": "getTiles", "parameterTypes": [] }, - { "name": "getBounds", "parameterTypes": [] }, - { "name": "getScheme", "parameterTypes": [] }, - { "name": "getMinzoom", "parameterTypes": [] }, - { "name": "getMaxzoom", "parameterTypes": [] }, - { "name": "getAttribution", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.styles.domain.ImmutableMbStyleVectorSource", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getType", "parameterTypes": [] }, - { "name": "getUrl", "parameterTypes": [] }, - { "name": "getTiles", "parameterTypes": [] }, - { "name": "getBounds", "parameterTypes": [] }, - { "name": "getScheme", "parameterTypes": [] }, - { "name": "getMinzoom", "parameterTypes": [] }, - { "name": "getMaxzoom", "parameterTypes": [] }, - { "name": "getAttribution", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.styles.domain.MbStyleLayer", - "queryAllDeclaredMethods": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getId", "parameterTypes": [] }, - { "name": "getType", "parameterTypes": [] }, - { "name": "getMetadata", "parameterTypes": [] }, - { "name": "getSource", "parameterTypes": [] }, - { "name": "getSourceLayer", "parameterTypes": [] }, - { "name": "getMinzoom", "parameterTypes": [] }, - { "name": "getMaxzoom", "parameterTypes": [] }, - { "name": "getFilter", "parameterTypes": [] }, - { "name": "getLayout", "parameterTypes": [] }, - { "name": "getPaint", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.ogcapi.styles.domain.ImmutableMbStyleLayer", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getId", "parameterTypes": [] }, - { "name": "getType", "parameterTypes": [] }, - { "name": "getMetadata", "parameterTypes": [] }, - { "name": "getSource", "parameterTypes": [] }, - { "name": "getSourceLayer", "parameterTypes": [] }, - { "name": "getMinzoom", "parameterTypes": [] }, - { "name": "getMaxzoom", "parameterTypes": [] }, - { "name": "getFilter", "parameterTypes": [] }, - { "name": "getLayout", "parameterTypes": [] }, - { "name": "getPaint", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.crs.domain.BoundingBox", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.crs.domain.EpsgCrs", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.crs.domain.EpsgCrs$Force", - "allDeclaredFields": true, - "allPublicFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.crs.domain.ImmutableBoundingBox", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getEpsgCrs", "parameterTypes": [] }, - { "name": "getXmax", "parameterTypes": [] }, - { "name": "getXmin", "parameterTypes": [] }, - { "name": "getYmax", "parameterTypes": [] }, - { "name": "getYmin", "parameterTypes": [] }, - { "name": "getZmax", "parameterTypes": [] }, - { "name": "getZmin", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.crs.domain.ImmutableBoundingBox$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { - "name": "epsgCrs", - "parameterTypes": ["de.ii.xtraplatform.crs.domain.EpsgCrs"] - }, - { "name": "xmax", "parameterTypes": ["double"] }, - { "name": "xmin", "parameterTypes": ["double"] }, - { "name": "ymax", "parameterTypes": ["double"] }, - { "name": "ymin", "parameterTypes": ["double"] } - ] - }, - { - "name": "de.ii.xtraplatform.crs.domain.ImmutableEpsgCrs", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getCode", "parameterTypes": [] }, - { "name": "getForceAxisOrder", "parameterTypes": [] }, - { "name": "getVerticalCode", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.crs.domain.ImmutableEpsgCrs$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "code", "parameterTypes": ["int"] }, - { "name": "verticalCode", "parameterTypes": ["java.util.OptionalInt"] }, - { - "name": "forceAxisOrder", - "parameterTypes": ["de.ii.xtraplatform.crs.domain.EpsgCrs$Force"] - }, - { "name": "forceLongitudeFirst", "parameterTypes": ["boolean"] } - ] - }, - { - "name": "de.ii.xtraplatform.features.domain.ConnectionInfo", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.features.domain.ExtendableConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.feature.changes.sql.domain.FeatureChangesPgConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.feature.changes.sql.domain.ImmutableFeatureChangesPgConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getType", "parameterTypes": [] }, - { "name": "getListenForTypes", "parameterTypes": [] }, - { "name": "getPollingInterval", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.feature.changes.sql.domain.ImmutableFeatureChangesPgConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "listenForTypes", "parameterTypes": ["java.lang.Iterable"] }, - { - "name": "pollingInterval", - "parameterTypes": ["shadow.io.dropwizard.util.Duration"] - } - ] - }, - { - "name": "de.ii.xtraplatform.schemas.ext.domain.JsonSchemaConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.schemas.ext.domain.ImmutableJsonSchemaConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getType", "parameterTypes": [] }, - { "name": "getObjectTypeRefs", "parameterTypes": [] }, - { "name": "getGeometryTypeRefs", "parameterTypes": [] }, - { "name": "getRelationRefs", "parameterTypes": [] }, - { "name": "getCompositionIndexes", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.schemas.ext.domain.ImmutableJsonSchemaConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "objectTypeRefs", "parameterTypes": ["java.util.Map"] }, - { "name": "geometryTypeRefs", "parameterTypes": ["java.util.Map"] }, - { "name": "relationRefs", "parameterTypes": ["java.util.Map"] }, - { "name": "compositionIndexes", "parameterTypes": ["java.util.Map"] } - ] - }, - { - "name": "de.ii.xtraplatform.routes.sql.domain.RoutesConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.routes.sql.domain.ImmutableRoutesConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getType", "parameterTypes": [] }, - { "name": "getFromToQuery", "parameterTypes": [] }, - { "name": "getEdgesQuery", "parameterTypes": [] }, - { "name": "getRouteQuery", "parameterTypes": [] }, - { "name": "getFlags", "parameterTypes": [] }, - { "name": "getNativeCrs", "parameterTypes": [] }, - { "name": "getModes", "parameterTypes": [] }, - { "name": "getWeightDefault", "parameterTypes": [] }, - { "name": "getHeightDefault", "parameterTypes": [] }, - { "name": "getObstaclesDefault", "parameterTypes": [] }, - { "name": "getWarmup", "parameterTypes": [] }, - { "name": "getPreferences", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.routes.sql.domain.ImmutableRoutesConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "fromToQuery", "parameterTypes": ["java.util.Map"] }, - { "name": "edgesQuery", "parameterTypes": ["java.util.Map"] }, - { "name": "routeQuery", "parameterTypes": ["java.lang.String"] }, - { "name": "flags", "parameterTypes": ["java.util.Map"] }, - { - "name": "nativeCrs", - "parameterTypes": ["de.ii.xtraplatform.crs.domain.EpsgCrs"] - }, - { "name": "modes", "parameterTypes": ["java.util.Map"] }, - { "name": "weightDefault", "parameterTypes": ["java.lang.String"] }, - { "name": "heightDefault", "parameterTypes": ["java.lang.String"] }, - { "name": "obstaclesDefault", "parameterTypes": ["java.lang.String"] }, - { "name": "warmup", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "preferences", "parameterTypes": ["java.util.Map"] } - ] - }, - { - "name": "de.ii.xtraplatform.routes.sql.domain.Preference", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.routes.sql.domain.ImmutablePreference", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getLabel", "parameterTypes": [] }, - { "name": "getCostColumn", "parameterTypes": [] }, - { "name": "getReverseCostColumn", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.routes.sql.domain.ImmutablePreference$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "label", "parameterTypes": ["java.lang.String"] }, - { "name": "costColumn", "parameterTypes": ["java.lang.String"] }, - { "name": "reverseCostColumn", "parameterTypes": ["java.lang.String"] } - ] - }, - { - "name": "de.ii.xtraplatform.features.domain.ExtensionConfiguration", - "queryAllDeclaredMethods": true, - "methods": [{ "name": "getType", "parameterTypes": [] }] - }, - { - "name": "de.ii.xtraplatform.features.domain.ExtensionConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.features.domain.FeatureProviderDataV2", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.features.domain.FeatureProviderDataV2$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "methods": [ - { "name": "getFragments2", "parameterTypes": [] }, - { "name": "getTypes2", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.features.domain.FeatureSchema", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.features.domain.FeatureSchema$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "methods": [ - { "name": "concatBuilders", "parameterTypes": ["java.lang.Iterable"] }, - { "name": "coalesceBuilders", "parameterTypes": ["java.lang.Iterable"] } - ] - }, - { - "name": "de.ii.xtraplatform.features.domain.FeatureSchemaBase", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.features.domain.SchemaBase$Scope", - "allDeclaredFields": true, - "allPublicFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.features.domain.FeatureTypeConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.features.domain.ImmutableFeatureSchema", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getEmbeddedRole", "parameterTypes": [] }, - { "name": "getEmbed", "parameterTypes": [] }, - { "name": "getAdditionalInfo", "parameterTypes": [] }, - { "name": "getCoalesce", "parameterTypes": [] }, - { "name": "getConcat", "parameterTypes": [] }, - { "name": "getConstantValue", "parameterTypes": [] }, - { "name": "getConstraints", "parameterTypes": [] }, - { "name": "getDescription", "parameterTypes": [] }, - { "name": "getForcePolygonCCW", "parameterTypes": [] }, - { "name": "getGeometryType", "parameterTypes": [] }, - { "name": "getIsQueryable", "parameterTypes": [] }, - { "name": "getIsSortable", "parameterTypes": [] }, - { "name": "getLabel", "parameterTypes": [] }, - { "name": "getMerge", "parameterTypes": [] }, - { "name": "getObjectType", "parameterTypes": [] }, - { "name": "getPropertyMap", "parameterTypes": [] }, - { "name": "getRefType", "parameterTypes": [] }, - { "name": "getRefKeyTemplate", "parameterTypes": [] }, - { "name": "getRefUriTemplate", "parameterTypes": [] }, - { "name": "getRole", "parameterTypes": [] }, - { "name": "getSchema", "parameterTypes": [] }, - { "name": "getScope", "parameterTypes": [] }, - { "name": "getExcludedScopes", "parameterTypes": [] }, - { "name": "getSourcePath", "parameterTypes": [] }, - { "name": "getSourcePaths", "parameterTypes": [] }, - { "name": "getTransformations", "parameterTypes": [] }, - { "name": "getDesiredType", "parameterTypes": [] }, - { "name": "getUnit", "parameterTypes": [] }, - { "name": "getValueType", "parameterTypes": [] }, - { "name": "getLinearizeCurves", "parameterTypes": [] }, - { "name": "getIsLastModified", "parameterTypes": [] }, - { "name": "getFormat", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.features.domain.ImmutableFeatureSchema$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "additionalInfo", "parameterTypes": ["java.util.Map"] }, - { "name": "concat", "parameterTypes": ["java.lang.Iterable"] }, - { "name": "coalesce", "parameterTypes": ["java.lang.Iterable"] }, - { "name": "constantValue", "parameterTypes": ["java.util.Optional"] }, - { "name": "constraintsBuilder", "parameterTypes": [] }, - { "name": "description", "parameterTypes": ["java.util.Optional"] }, - { "name": "forcePolygonCCW", "parameterTypes": ["java.util.Optional"] }, - { "name": "geometryType", "parameterTypes": ["java.util.Optional"] }, - { "name": "isQueryable", "parameterTypes": ["java.util.Optional"] }, - { "name": "isSortable", "parameterTypes": ["java.util.Optional"] }, - { "name": "label", "parameterTypes": ["java.util.Optional"] }, - { "name": "merge", "parameterTypes": ["java.lang.Iterable"] }, - { "name": "objectType", "parameterTypes": ["java.util.Optional"] }, - { "name": "propertyMap", "parameterTypes": ["java.util.Map"] }, - { "name": "refType", "parameterTypes": ["java.util.Optional"] }, - { "name": "refKeyTemplate", "parameterTypes": ["java.util.Optional"] }, - { "name": "refUriTemplate", "parameterTypes": ["java.util.Optional"] }, - { "name": "role", "parameterTypes": ["java.util.Optional"] }, - { "name": "schema", "parameterTypes": ["java.util.Optional"] }, - { "name": "sourcePath", "parameterTypes": ["java.util.Optional"] }, - { "name": "sourcePaths", "parameterTypes": ["java.lang.Iterable"] }, - { "name": "transformations", "parameterTypes": ["java.lang.Iterable"] }, - { - "name": "desiredType", - "parameterTypes": ["de.ii.xtraplatform.features.domain.SchemaBase$Type"] - }, - { "name": "unit", "parameterTypes": ["java.util.Optional"] }, - { "name": "valueType", "parameterTypes": ["java.util.Optional"] }, - { "name": "isLastModified", "parameterTypes": ["java.util.Optional"] }, - { "name": "scope", "parameterTypes": ["java.util.Optional"] }, - { "name": "excludedScopes", "parameterTypes": ["java.lang.Iterable"] }, - { "name": "linearizeCurves", "parameterTypes": ["java.util.Optional"] }, - { "name": "format", "parameterTypes": ["java.util.Optional"] } - ] - }, - { - "name": "de.ii.xtraplatform.features.domain.ImmutablePartialObjectSchema", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getPropertyMap", "parameterTypes": [] }, - { "name": "getSchema", "parameterTypes": [] }, - { "name": "getSourcePath", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.features.domain.ImmutablePartialObjectSchema$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "schema", "parameterTypes": ["java.util.Optional"] }, - { "name": "sourcePath", "parameterTypes": ["java.util.Optional"] } - ] - }, - { - "name": "de.ii.xtraplatform.features.domain.ImmutableProviderCommonData$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "enabled", "parameterTypes": ["boolean"] }, - { "name": "createdAt", "parameterTypes": ["long"] }, - { "name": "entityStorageVersion", "parameterTypes": ["long"] }, - { "name": "id", "parameterTypes": ["java.lang.String"] }, - { "name": "lastModified", "parameterTypes": ["long"] }, - { "name": "providerSubType", "parameterTypes": ["java.lang.String"] }, - { "name": "providerType", "parameterTypes": ["java.lang.String"] } - ] - }, - { - "name": "de.ii.xtraplatform.features.domain.ImmutableSchemaConstraints", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getClosed", "parameterTypes": [] }, - { "name": "getCodelist", "parameterTypes": [] }, - { "name": "getComposite", "parameterTypes": [] }, - { "name": "getEnumValues", "parameterTypes": [] }, - { "name": "getMax", "parameterTypes": [] }, - { "name": "getMaxOccurrence", "parameterTypes": [] }, - { "name": "getMin", "parameterTypes": [] }, - { "name": "getMinOccurrence", "parameterTypes": [] }, - { "name": "getRegex", "parameterTypes": [] }, - { "name": "getRequired", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.features.domain.ImmutableSchemaConstraints$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "closed", "parameterTypes": ["java.util.Optional"] }, - { "name": "codelist", "parameterTypes": ["java.util.Optional"] }, - { "name": "composite", "parameterTypes": ["java.util.Optional"] }, - { "name": "enumValues", "parameterTypes": ["java.lang.Iterable"] }, - { "name": "max", "parameterTypes": ["java.util.Optional"] }, - { "name": "min", "parameterTypes": ["java.util.Optional"] }, - { "name": "maxOccurrence", "parameterTypes": ["java.util.Optional"] }, - { "name": "minOccurrence", "parameterTypes": ["java.util.Optional"] }, - { "name": "regex", "parameterTypes": ["java.util.Optional"] }, - { "name": "required", "parameterTypes": ["java.util.Optional"] } - ] - }, - { - "name": "de.ii.xtraplatform.features.domain.PartialObjectSchema", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.features.domain.PartialObjectSchema$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.features.domain.PropertiesSchema", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.features.domain.PropertiesSchema$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "methods": [ - { "name": "putProperties2", "parameterTypes": ["java.util.Map"] } - ] - }, - { - "name": "de.ii.xtraplatform.features.domain.PropertiesSchema$BuilderWithName", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.features.domain.ProviderCommonData$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.features.domain.ProviderData", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.features.domain.SchemaBase", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.features.domain.SchemaBase$Role", - "allDeclaredFields": true, - "allPublicFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.features.domain.SchemaBase$Type", - "allDeclaredFields": true, - "allPublicFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.features.domain.SchemaConstraints", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.features.domain.WithConnectionInfo", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.features.domain.ZoneIdFromString", - "methods": [{ "name": "", "parameterTypes": [] }] - }, - { - "name": "de.ii.xtraplatform.features.domain.transform.ImmutablePropertyTransformation", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getCodelist", "parameterTypes": [] }, - { "name": "getDateFormat", "parameterTypes": [] }, - { "name": "getFlatten", "parameterTypes": [] }, - { "name": "getNullify", "parameterTypes": [] }, - { "name": "getObjectReduceFormat", "parameterTypes": [] }, - { "name": "getObjectReduceSelect", "parameterTypes": [] }, - { "name": "getObjectMapFormat", "parameterTypes": [] }, - { "name": "getObjectRemoveSelect", "parameterTypes": [] }, - { "name": "getArrayReduceFormat", "parameterTypes": [] }, - { "name": "getRemove", "parameterTypes": [] }, - { "name": "getRename", "parameterTypes": [] }, - { "name": "getStringFormat", "parameterTypes": [] }, - { "name": "getRemoveNullValues", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.features.domain.transform.ImmutablePropertyTransformation$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "codelist", "parameterTypes": ["java.util.Optional"] }, - { "name": "dateFormat", "parameterTypes": ["java.util.Optional"] }, - { "name": "flatten", "parameterTypes": ["java.util.Optional"] }, - { "name": "getNull", "parameterTypes": ["java.util.Optional"] }, - { "name": "nullify", "parameterTypes": ["java.lang.Iterable"] }, - { - "name": "objectReduceFormat", - "parameterTypes": ["java.util.Optional"] - }, - { - "name": "objectReduceSelect", - "parameterTypes": ["java.util.Optional"] - }, - { "name": "objectMapFormat", "parameterTypes": ["java.util.Map"] }, - { - "name": "objectRemoveSelect", - "parameterTypes": ["java.util.Optional"] - }, - { "name": "arrayReduceFormat", "parameterTypes": ["java.util.Optional"] }, - { "name": "remove", "parameterTypes": ["java.util.Optional"] }, - { "name": "rename", "parameterTypes": ["java.util.Optional"] }, - { "name": "stringFormat", "parameterTypes": ["java.util.Optional"] }, - { "name": "removeNullValues", "parameterTypes": ["java.util.Optional"] } - ] - }, - { - "name": "de.ii.xtraplatform.features.domain.transform.PropertyTransformation", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.features.domain.transform.PropertyTransformation$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.features.domain.transform.PropertyTransformations", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.features.sql.domain.ConnectionInfoSql", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.features.sql.domain.ConnectionInfoSql$Dialect", - "allDeclaredFields": true, - "allPublicFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.features.sql.domain.ConnectionInfoSql$PoolSettings", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.features.sql.domain.FeatureProviderSqlData", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.features.sql.domain.FeatureProviderSqlData$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.features.sql.domain.FeatureProviderSqlData$QueryGeneratorSettings", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.features.sql.domain.ImmutableConnectionInfoSql", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getConnectionUri", "parameterTypes": [] }, - { "name": "getConnectorType", "parameterTypes": [] }, - { "name": "getDatabase", "parameterTypes": [] }, - { "name": "getDialect", "parameterTypes": [] }, - { "name": "getDriverOptions", "parameterTypes": [] }, - { "name": "getHost", "parameterTypes": [] }, - { "name": "getPassword", "parameterTypes": [] }, - { "name": "getPool", "parameterTypes": [] }, - { "name": "getSchemas", "parameterTypes": [] }, - { "name": "getTriggers", "parameterTypes": [] }, - { "name": "getUser", "parameterTypes": [] }, - { "name": "getAssumeExternalChanges", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.features.sql.domain.ImmutableConnectionInfoSql$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "database", "parameterTypes": ["java.lang.String"] }, - { "name": "dialect", "parameterTypes": ["java.lang.String"] }, - { "name": "host", "parameterTypes": ["java.util.Optional"] }, - { "name": "password", "parameterTypes": ["java.util.Optional"] }, - { - "name": "pathSyntaxBuilder", - "parameterTypes": [ - "de.ii.xtraplatform.features.sql.domain.ImmutableSqlPathDefaults$Builder" - ] - }, - { "name": "poolBuilder", "parameterTypes": [] }, - { - "name": "poolBuilder", - "parameterTypes": [ - "de.ii.xtraplatform.features.sql.domain.ImmutablePoolSettings$Builder" - ] - }, - { "name": "schemas", "parameterTypes": ["java.lang.Iterable"] }, - { "name": "user", "parameterTypes": ["java.util.Optional"] }, - { - "name": "assumeExternalChanges", - "parameterTypes": ["java.lang.Boolean"] - } - ] - }, - { - "name": "de.ii.xtraplatform.features.gml.domain.ImmutableConnectionInfoWfsHttp", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getUri", "parameterTypes": [] }, - { "name": "getConnectionUri", "parameterTypes": [] }, - { "name": "getConnectorType", "parameterTypes": [] }, - { "name": "getMethod", "parameterTypes": [] }, - { "name": "getPassword", "parameterTypes": [] }, - { "name": "getDatasetIdentifier", "parameterTypes": [] }, - { "name": "getUser", "parameterTypes": [] }, - { "name": "getVersion", "parameterTypes": [] }, - { "name": "getGmlVersion", "parameterTypes": [] }, - { "name": "getNamespaces", "parameterTypes": [] }, - { "name": "getOtherUrls", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.features.gml.domain.ImmutableConnectionInfoWfsHttp$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "uri", "parameterTypes": ["java.net.URI"] }, - { - "name": "method", - "parameterTypes": [ - "de.ii.xtraplatform.features.gml.domain.ConnectionInfoWfsHttp$METHOD" - ] - }, - { "name": "password", "parameterTypes": ["java.util.Optional"] }, - { "name": "version", "parameterTypes": ["java.lang.String"] }, - { "name": "gmlVersion", "parameterTypes": ["java.util.Optional"] }, - { "name": "namespaces", "parameterTypes": ["java.util.Map"] }, - { "name": "otherUrls", "parameterTypes": ["java.util.Map"] }, - { "name": "user", "parameterTypes": ["java.util.Optional"] } - ] - }, - { - "name": "de.ii.xtraplatform.features.sql.domain.ImmutableFeatureActionTrigger$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true - }, - { - "name": "de.ii.xtraplatform.features.sql.domain.ImmutableFeatureProviderSqlData", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getAuto", "parameterTypes": [] }, - { "name": "getAutoPersist", "parameterTypes": [] }, - { "name": "getAutoTypes", "parameterTypes": [] }, - { "name": "getCodelists", "parameterTypes": [] }, - { "name": "getConnectionInfo", "parameterTypes": [] }, - { "name": "getCreatedAt", "parameterTypes": [] }, - { "name": "getDefaultLanguage", "parameterTypes": [] }, - { "name": "getEntityStorageVersion", "parameterTypes": [] }, - { "name": "getExtensions", "parameterTypes": [] }, - { "name": "getFragments", "parameterTypes": [] }, - { "name": "getId", "parameterTypes": [] }, - { "name": "getLabelTemplate", "parameterTypes": [] }, - { "name": "getLastModified", "parameterTypes": [] }, - { "name": "getNativeCrs", "parameterTypes": [] }, - { "name": "getNativeTimeZone", "parameterTypes": [] }, - { "name": "getProviderSubType", "parameterTypes": [] }, - { "name": "getProviderType", "parameterTypes": [] }, - { "name": "getQueryGeneration", "parameterTypes": [] }, - { "name": "getSourcePathDefaults", "parameterTypes": [] }, - { "name": "getTypeValidation", "parameterTypes": [] }, - { "name": "getTypes", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.features.sql.domain.ImmutableFeatureProviderSqlData$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "enabled", "parameterTypes": ["boolean"] }, - { "name": "addAllExtensions", "parameterTypes": ["java.lang.Iterable"] }, - { "name": "connectionInfoBuilder", "parameterTypes": [] }, - { "name": "createdAt", "parameterTypes": ["long"] }, - { "name": "defaultLanguage", "parameterTypes": ["java.util.Optional"] }, - { "name": "entityStorageVersion", "parameterTypes": ["long"] }, - { "name": "id", "parameterTypes": ["java.lang.String"] }, - { "name": "lastModified", "parameterTypes": ["long"] }, - { "name": "nativeCrsBuilder", "parameterTypes": [] }, - { "name": "nativeTimeZone", "parameterTypes": ["java.util.Optional"] }, - { "name": "providerSubType", "parameterTypes": ["java.lang.String"] }, - { "name": "providerType", "parameterTypes": ["java.lang.String"] }, - { "name": "queryGenerationBuilder", "parameterTypes": [] }, - { - "name": "queryGenerationBuilder", - "parameterTypes": [ - "de.ii.xtraplatform.features.sql.domain.ImmutableQueryGeneratorSettings$Builder" - ] - }, - { "name": "sourcePathDefaultsBuilder", "parameterTypes": [] }, - { - "name": "typeValidation", - "parameterTypes": [ - "de.ii.xtraplatform.entities.domain.ValidationResult$MODE" - ] - } - ] - }, - { - "name": "de.ii.xtraplatform.features.gml.domain.ImmutableFeatureProviderWfsData", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getAuto", "parameterTypes": [] }, - { "name": "getAutoPersist", "parameterTypes": [] }, - { "name": "getAutoTypes", "parameterTypes": [] }, - { "name": "getCodelists", "parameterTypes": [] }, - { "name": "getConnectionInfo", "parameterTypes": [] }, - { "name": "getCreatedAt", "parameterTypes": [] }, - { "name": "getDefaultLanguage", "parameterTypes": [] }, - { "name": "getEntityStorageVersion", "parameterTypes": [] }, - { "name": "getExtensions", "parameterTypes": [] }, - { "name": "getFragments", "parameterTypes": [] }, - { "name": "getId", "parameterTypes": [] }, - { "name": "getLabelTemplate", "parameterTypes": [] }, - { "name": "getLastModified", "parameterTypes": [] }, - { "name": "getNativeCrs", "parameterTypes": [] }, - { "name": "getNativeTimeZone", "parameterTypes": [] }, - { "name": "getProviderSubType", "parameterTypes": [] }, - { "name": "getProviderType", "parameterTypes": [] }, - { "name": "getTypeValidation", "parameterTypes": [] }, - { "name": "getTypes", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.features.gml.domain.ImmutableFeatureProviderWfsData$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "enabled", "parameterTypes": ["boolean"] }, - { "name": "addAllExtensions", "parameterTypes": ["java.lang.Iterable"] }, - { "name": "connectionInfoBuilder", "parameterTypes": [] }, - { "name": "createdAt", "parameterTypes": ["long"] }, - { "name": "defaultLanguage", "parameterTypes": ["java.util.Optional"] }, - { "name": "entityStorageVersion", "parameterTypes": ["long"] }, - { "name": "id", "parameterTypes": ["java.lang.String"] }, - { "name": "lastModified", "parameterTypes": ["long"] }, - { "name": "nativeCrsBuilder", "parameterTypes": [] }, - { "name": "nativeTimeZone", "parameterTypes": ["java.util.Optional"] }, - { "name": "providerSubType", "parameterTypes": ["java.lang.String"] }, - { "name": "providerType", "parameterTypes": ["java.lang.String"] }, - { - "name": "typeValidation", - "parameterTypes": [ - "de.ii.xtraplatform.entities.domain.ValidationResult$MODE" - ] - } - ] - }, - { - "name": "de.ii.xtraplatform.features.sql.domain.ImmutablePoolSettings", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getIdleTimeout", "parameterTypes": [] }, - { "name": "getInitFailFast", "parameterTypes": [] }, - { "name": "getInitFailTimeout", "parameterTypes": [] }, - { "name": "getMaxConnections", "parameterTypes": [] }, - { "name": "getMinConnections", "parameterTypes": [] }, - { "name": "getShared", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.features.sql.domain.ImmutablePoolSettings$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "idleTimeout", "parameterTypes": ["java.lang.String"] }, - { "name": "initFailFast", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "initFailTimeout", "parameterTypes": ["java.lang.String"] }, - { "name": "maxConnections", "parameterTypes": ["java.lang.Integer"] }, - { "name": "minConnections", "parameterTypes": ["java.lang.Integer"] }, - { "name": "shared", "parameterTypes": ["java.lang.Boolean"] } - ] - }, - { - "name": "de.ii.xtraplatform.features.sql.domain.ImmutableQueryGeneratorSettings", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getAccentiCollation", "parameterTypes": [] }, - { "name": "getChunkSize", "parameterTypes": [] }, - { "name": "getComputeNumberMatched", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.features.sql.domain.ImmutableQueryGeneratorSettings$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "chunkSize", "parameterTypes": ["int"] }, - { "name": "computeNumberMatched", "parameterTypes": ["boolean"] } - ] - }, - { - "name": "de.ii.xtraplatform.features.sql.domain.ImmutableSqlPathDefaults", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getJunctionTablePattern", "parameterTypes": [] }, - { "name": "getPrimaryKey", "parameterTypes": [] }, - { "name": "getSchema", "parameterTypes": [] }, - { "name": "getSortKey", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.features.sql.domain.ImmutableSqlPathDefaults$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { - "name": "junctionTablePattern", - "parameterTypes": ["java.util.Optional"] - }, - { "name": "primaryKey", "parameterTypes": ["java.lang.String"] }, - { "name": "sortKey", "parameterTypes": ["java.lang.String"] } - ] - }, - { - "name": "de.ii.xtraplatform.features.sql.domain.SqlPathDefaults", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.geometries.domain.SimpleFeatureGeometry", - "allDeclaredFields": true, - "allPublicFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.schemas.ext.domain.ImmutableJsonSchemaConfiguration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getCompositionIndexes", "parameterTypes": [] }, - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getGeometryTypeRefs", "parameterTypes": [] }, - { "name": "getObjectTypeRefs", "parameterTypes": [] }, - { "name": "getRelationRefs", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.schemas.ext.domain.ImmutableJsonSchemaConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "enabled", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "objectTypeRefs", "parameterTypes": ["java.util.Map"] } - ] - }, - { - "name": "de.ii.xtraplatform.schemas.ext.domain.JsonSchemaConfiguration", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.schemas.ext.domain.JsonSchemaConfiguration$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.services.domain.ImmutableServiceDataCommon$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "apiVersion", "parameterTypes": ["java.util.Optional"] }, - { "name": "auto", "parameterTypes": ["java.util.Optional"] }, - { "name": "createdAt", "parameterTypes": ["long"] }, - { "name": "description", "parameterTypes": ["java.util.Optional"] }, - { "name": "enabled", "parameterTypes": ["boolean"] }, - { "name": "entityStorageVersion", "parameterTypes": ["long"] }, - { "name": "id", "parameterTypes": ["java.lang.String"] }, - { "name": "label", "parameterTypes": ["java.lang.String"] }, - { "name": "lastModified", "parameterTypes": ["long"] }, - { "name": "serviceType", "parameterTypes": ["java.lang.String"] } - ] - }, - { - "name": "de.ii.xtraplatform.services.domain.ServiceData", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.services.domain.ServiceDataCommon$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.values.domain.ValueBuilder", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.values.domain.StoredValue", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.entities.domain.AutoEntity", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.entities.domain.EntityData", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.entities.domain.EntityDataBuilder", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.entities.domain.Mergeable", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.entities.domain.ValidationResult$MODE", - "allDeclaredFields": true, - "allPublicFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.entities.domain.maptobuilder.Buildable", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.entities.domain.maptobuilder.BuildableBuilder", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.entities.domain.maptobuilder.BuildableMap", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.entities.domain.maptobuilder.ImmutableBuildableMap", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.Cache", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.Cache$Storage", - "allDeclaredFields": true, - "allPublicFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.Cache$Type", - "allDeclaredFields": true, - "allPublicFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.ImmutableCache", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getLevels", "parameterTypes": [] }, - { "name": "getSeeded", "parameterTypes": [] }, - { "name": "getStorage", "parameterTypes": [] }, - { "name": "getTilesetLevels", "parameterTypes": [] }, - { "name": "getType", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.tiles.domain.ImmutableCache$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "levels", "parameterTypes": ["java.util.Map"] }, - { "name": "seeded", "parameterTypes": ["boolean"] }, - { - "name": "storage", - "parameterTypes": ["de.ii.xtraplatform.tiles.domain.Cache$Storage"] - }, - { - "name": "type", - "parameterTypes": ["de.ii.xtraplatform.tiles.domain.Cache$Type"] - } - ] - }, - { - "name": "de.ii.xtraplatform.tiles.domain.ImmutableLevelFilter", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getFilter", "parameterTypes": [] }, - { "name": "getMax", "parameterTypes": [] }, - { "name": "getMin", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.tiles.domain.ImmutableLevelFilter$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "filter", "parameterTypes": ["java.lang.String"] }, - { "name": "max", "parameterTypes": ["int"] }, - { "name": "min", "parameterTypes": ["int"] } - ] - }, - { - "name": "de.ii.xtraplatform.tiles.domain.ImmutableLevelTransformation", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getGroupBy", "parameterTypes": [] }, - { "name": "getMax", "parameterTypes": [] }, - { "name": "getMerge", "parameterTypes": [] }, - { "name": "getMin", "parameterTypes": [] }, - { "name": "getProperties", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.tiles.domain.ImmutableLevelTransformation$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "groupBy", "parameterTypes": ["java.lang.Iterable"] }, - { "name": "max", "parameterTypes": ["int"] }, - { "name": "merge", "parameterTypes": ["java.util.Optional"] }, - { "name": "min", "parameterTypes": ["int"] }, - { "name": "properties", "parameterTypes": ["java.lang.Iterable"] } - ] - }, - { - "name": "de.ii.xtraplatform.tiles.domain.ImmutableLonLat", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getLat", "parameterTypes": [] }, - { "name": "getLon", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.tiles.domain.ImmutableLonLat$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "lat", "parameterTypes": ["double"] }, - { "name": "lon", "parameterTypes": ["double"] } - ] - }, - { - "name": "de.ii.xtraplatform.tiles.domain.ImmutableMinMax", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getDefault", "parameterTypes": [] }, - { "name": "getMax", "parameterTypes": [] }, - { "name": "getMin", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.tiles.domain.ImmutableMinMax$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "getDefault", "parameterTypes": ["java.util.Optional"] }, - { "name": "max", "parameterTypes": ["int"] }, - { "name": "min", "parameterTypes": ["int"] } - ] - }, - { - "name": "de.ii.xtraplatform.tiles.domain.ImmutableSeedingOptions", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getJobSize", "parameterTypes": [] }, - { "name": "getMaxThreads", "parameterTypes": [] }, - { "name": "getPurge", "parameterTypes": [] }, - { "name": "getRunOnStartup", "parameterTypes": [] }, - { "name": "getRunPeriodic", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.tiles.domain.ImmutableSeedingOptions$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { - "name": "jobSize", - "parameterTypes": [ - "de.ii.xtraplatform.tiles.domain.SeedingOptions$JobSize" - ] - }, - { "name": "maxThreads", "parameterTypes": ["java.lang.Integer"] }, - { "name": "purge", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "runOnStartup", "parameterTypes": ["java.lang.Boolean"] }, - { "name": "runPeriodic", "parameterTypes": ["java.lang.String"] } - ] - }, - { - "name": "de.ii.xtraplatform.tiles.domain.SeedingOptions$JobSize", - "allDeclaredFields": true, - "allPublicFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.ImmutableTileProviderFeaturesData", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getAuto", "parameterTypes": [] }, - { "name": "getAutoPersist", "parameterTypes": [] }, - { "name": "getCaches", "parameterTypes": [] }, - { "name": "getCreatedAt", "parameterTypes": [] }, - { "name": "getEntityStorageVersion", "parameterTypes": [] }, - { "name": "getId", "parameterTypes": [] }, - { "name": "getLastModified", "parameterTypes": [] }, - { "name": "getProviderSubType", "parameterTypes": [] }, - { "name": "getProviderType", "parameterTypes": [] }, - { "name": "getSeeding", "parameterTypes": [] }, - { "name": "getTilesetDefaults", "parameterTypes": [] }, - { "name": "getTilesets", "parameterTypes": [] }, - { "name": "getRasterTilesets", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.tiles.domain.ImmutableTileProviderFeaturesData$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "enabled", "parameterTypes": ["boolean"] }, - { "name": "caches", "parameterTypes": ["java.lang.Iterable"] }, - { "name": "getTilesets", "parameterTypes": [] }, - { "name": "getRasterTilesets", "parameterTypes": [] }, - { "name": "id", "parameterTypes": ["java.lang.String"] }, - { "name": "providerSubType", "parameterTypes": ["java.lang.String"] }, - { "name": "providerType", "parameterTypes": ["java.lang.String"] }, - { "name": "tilesetDefaultsBuilder", "parameterTypes": [] }, - { "name": "createdAt", "parameterTypes": ["long"] }, - { "name": "lastModified", "parameterTypes": ["long"] }, - { "name": "entityStorageVersion", "parameterTypes": ["long"] }, - { "name": "seedingBuilder", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.tiles.domain.ImmutableTileProviderHttpData", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getCreatedAt", "parameterTypes": [] }, - { "name": "getEntityStorageVersion", "parameterTypes": [] }, - { "name": "getId", "parameterTypes": [] }, - { "name": "getLastModified", "parameterTypes": [] }, - { "name": "getProviderSubType", "parameterTypes": [] }, - { "name": "getProviderType", "parameterTypes": [] }, - { "name": "getTilesetDefaults", "parameterTypes": [] }, - { "name": "getTilesets", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.tiles.domain.ImmutableTileProviderHttpData$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "enabled", "parameterTypes": ["boolean"] }, - { "name": "getTilesets", "parameterTypes": [] }, - { "name": "id", "parameterTypes": ["java.lang.String"] }, - { "name": "providerSubType", "parameterTypes": ["java.lang.String"] }, - { "name": "providerType", "parameterTypes": ["java.lang.String"] }, - { "name": "tilesetDefaultsBuilder", "parameterTypes": [] }, - { "name": "createdAt", "parameterTypes": ["long"] }, - { "name": "lastModified", "parameterTypes": ["long"] }, - { "name": "entityStorageVersion", "parameterTypes": ["long"] } - ] - }, - { - "name": "de.ii.xtraplatform.tiles.domain.ImmutableTileProviderMbtilesData", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getEnabled", "parameterTypes": [] }, - { "name": "getCreatedAt", "parameterTypes": [] }, - { "name": "getEntityStorageVersion", "parameterTypes": [] }, - { "name": "getId", "parameterTypes": [] }, - { "name": "getLastModified", "parameterTypes": [] }, - { "name": "getProviderSubType", "parameterTypes": [] }, - { "name": "getProviderType", "parameterTypes": [] }, - { "name": "getTilesetDefaults", "parameterTypes": [] }, - { "name": "getTilesets", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.tiles.domain.ImmutableTileProviderMbtilesData$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "enabled", "parameterTypes": ["boolean"] }, - { "name": "id", "parameterTypes": ["java.lang.String"] }, - { "name": "providerSubType", "parameterTypes": ["java.lang.String"] }, - { "name": "providerType", "parameterTypes": ["java.lang.String"] }, - { "name": "tilesets", "parameterTypes": ["java.util.Map"] }, - { - "name": "tilesetDefaults", - "parameterTypes": [ - "de.ii.xtraplatform.tiles.domain.ImmutableTilesetMbTilesDefaults" - ] - }, - { "name": "createdAt", "parameterTypes": ["long"] }, - { "name": "lastModified", "parameterTypes": ["long"] }, - { "name": "entityStorageVersion", "parameterTypes": ["long"] } - ] - }, - { - "name": "de.ii.xtraplatform.tiles.domain.ImmutableTilesetFeatures", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getCenter", "parameterTypes": [] }, - { "name": "getCombine", "parameterTypes": [] }, - { "name": "getFeatureLimit", "parameterTypes": [] }, - { "name": "getFeatureProvider", "parameterTypes": [] }, - { "name": "getFeatureType", "parameterTypes": [] }, - { "name": "getFilters", "parameterTypes": [] }, - { "name": "getId", "parameterTypes": [] }, - { "name": "getIgnoreInvalidGeometries", "parameterTypes": [] }, - { "name": "getLevels", "parameterTypes": [] }, - { "name": "getMinimumSizeInPixel", "parameterTypes": [] }, - { "name": "getTransformations", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.tiles.domain.ImmutableTilesetFeatures$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "combine", "parameterTypes": ["java.lang.Iterable"] }, - { "name": "filters", "parameterTypes": ["java.util.Map"] }, - { "name": "getLevels", "parameterTypes": [] }, - { "name": "id", "parameterTypes": ["java.lang.String"] }, - { "name": "transformations", "parameterTypes": ["java.util.Map"] }, - { "name": "centerBuilder", "parameterTypes": [] }, - { "name": "featureProvider", "parameterTypes": ["java.util.Optional"] }, - { "name": "featureType", "parameterTypes": ["java.util.Optional"] }, - { - "name": "ignoreInvalidGeometries", - "parameterTypes": ["java.lang.Boolean"] - } - ] - }, - { - "name": "de.ii.xtraplatform.tiles.domain.ImmutableTilesetFeaturesDefaults", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getCenter", "parameterTypes": [] }, - { "name": "getFeatureLimit", "parameterTypes": [] }, - { "name": "getFeatureProvider", "parameterTypes": [] }, - { "name": "getIgnoreInvalidGeometries", "parameterTypes": [] }, - { "name": "getLevels", "parameterTypes": [] }, - { "name": "getMinimumSizeInPixel", "parameterTypes": [] }, - { "name": "getTransformations", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.tiles.domain.ImmutableTilesetFeaturesDefaults$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "centerBuilder", "parameterTypes": [] }, - { "name": "getLevels", "parameterTypes": [] }, - { "name": "levels", "parameterTypes": ["java.util.Map"] }, - { "name": "featureProvider", "parameterTypes": ["java.util.Optional"] }, - { "name": "featureLimit", "parameterTypes": ["java.lang.Integer"] }, - { "name": "minimumSizeInPixel", "parameterTypes": ["java.lang.Double"] }, - { - "name": "ignoreInvalidGeometries", - "parameterTypes": ["java.lang.Boolean"] - }, - { "name": "transformations", "parameterTypes": ["java.util.Map"] } - ] - }, - { - "name": "de.ii.xtraplatform.tiles.domain.ImmutableTilesetHttp", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getCenter", "parameterTypes": [] }, - { "name": "getEncodings", "parameterTypes": [] }, - { "name": "getId", "parameterTypes": [] }, - { "name": "getLevels", "parameterTypes": [] }, - { "name": "getUrlTemplate", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.tiles.domain.ImmutableTilesetHttp$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "encodings", "parameterTypes": ["java.util.Map"] }, - { "name": "id", "parameterTypes": ["java.lang.String"] }, - { "name": "urlTemplate", "parameterTypes": ["java.lang.String"] } - ] - }, - { - "name": "de.ii.xtraplatform.tiles.domain.ImmutableTilesetHttpDefaults", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getCenter", "parameterTypes": [] }, - { "name": "getEncodings", "parameterTypes": [] }, - { "name": "getLevels", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.tiles.domain.ImmutableTilesetHttpDefaults$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [{ "name": "getLevels", "parameterTypes": [] }] - }, - { - "name": "de.ii.xtraplatform.tiles.domain.ImmutableTilesetMbTiles", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getCenter", "parameterTypes": [] }, - { "name": "getId", "parameterTypes": [] }, - { "name": "getLevels", "parameterTypes": [] }, - { "name": "getSource", "parameterTypes": [] }, - { "name": "getTileMatrixSet", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.tiles.domain.ImmutableTilesetMbTiles$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "build", "parameterTypes": [] }, - { "name": "id", "parameterTypes": ["java.lang.String"] }, - { "name": "source", "parameterTypes": ["java.lang.String"] } - ] - }, - { - "name": "de.ii.xtraplatform.tiles.domain.ImmutableTilesetMbTilesDefaults", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getCenter", "parameterTypes": [] }, - { "name": "getLevels", "parameterTypes": [] }, - { "name": "getTileMatrixSet", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.tiles.domain.ImmutableTilesetMbTilesDefaults$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.ImmutableTilesetRaster", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "getPrefix", "parameterTypes": [] }, - { "name": "getCenter", "parameterTypes": [] }, - { "name": "getLevels", "parameterTypes": [] }, - { "name": "getStyles", "parameterTypes": [] } - ] - }, - { - "name": "de.ii.xtraplatform.tiles.domain.ImmutableTilesetRaster$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "", "parameterTypes": [] }, - { "name": "styles", "parameterTypes": ["java.lang.Iterable"] } - ] - }, - { - "name": "de.ii.xtraplatform.tiles.domain.LevelFilter", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.LevelTransformation", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.MinMax", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.MinMax$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.SeedingOptions", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.TileGenerationOptions", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.TileProviderData", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.TileProviderData$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.TileProviderFeaturesData", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.TileProviderFeaturesData$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.TileProviderHttpData", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.TileProviderHttpData$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.TileProviderMbtilesData", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.TileProviderMbtilesData$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.TilesetCommon", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.TilesetCommonDefaults", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.TilesetFeatures", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.TilesetFeatures$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.TilesetFeaturesDefaults", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.TilesetFeaturesDefaults$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.TilesetHttp", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.TilesetHttp$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.TilesetHttpDefaults", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.TilesetHttpDefaults$Builder", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.TilesetMbTiles", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.TilesetMbTilesDefaults", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.WithCaches", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.WithCenter", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.WithCenter$LonLat", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.WithEncodings", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.WithFeatureProvider", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.WithLevels", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.WithTilesetTmsLevels", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.WithTmsLevels", - "queryAllDeclaredMethods": true - }, - { - "name": "de.ii.xtraplatform.tiles.domain.WithTmsLevelsMergeable", - "queryAllDeclaredMethods": true - }, - { - "name": "double", - "queryAllDeclaredMethods": true - }, - { - "name": "java.io.Serializable", - "queryAllDeclaredMethods": true - }, - { - "name": "java.lang.Comparable", - "queryAllDeclaredMethods": true - }, - { - "name": "java.lang.Double", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true - }, - { - "name": "java.lang.Float", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true - }, - { - "name": "java.lang.Iterable", - "queryAllDeclaredMethods": true - }, - { - "name": "java.lang.Number", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "java.sql.Date" - }, - { - "name": "java.sql.Timestamp" - }, - { - "name": "java.util.AbstractCollection", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "java.util.Collection", - "queryAllDeclaredMethods": true - }, - { - "name": "java.util.List", - "queryAllDeclaredMethods": true - }, - { - "name": "java.util.Map", - "queryAllDeclaredMethods": true - }, - { - "name": "java.util.RandomAccess", - "queryAllDeclaredMethods": true - }, - { - "name": "java.util.Set", - "queryAllDeclaredMethods": true - }, - { - "name": "java.util.HashSet", - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true - }, - { - "name": "shadow.com.fasterxml.jackson.databind.ext.Java7HandlersImpl", - "methods": [{ "name": "", "parameterTypes": [] }] - }, - { - "name": "shadow.com.google.common.collect.BiMap", - "queryAllDeclaredMethods": true - }, - { - "name": "shadow.com.google.common.collect.ForwardingMap", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "shadow.com.google.common.collect.ForwardingObject", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "shadow.com.google.common.collect.ImmutableBiMap", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "shadow.com.google.common.collect.ImmutableBiMapFauxverideShim", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "shadow.com.google.common.collect.ImmutableCollection", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "shadow.com.google.common.collect.ImmutableList", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true - }, - { - "name": "shadow.com.google.common.collect.ImmutableMap", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "shadow.com.google.common.collect.ImmutableSet", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "shadow.com.google.common.collect.ImmutableSet$CachingAsList", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true - }, - { - "name": "shadow.com.google.common.collect.RegularImmutableList", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true - }, - { - "name": "shadow.com.google.common.collect.RegularImmutableMap", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true - }, - { - "name": "shadow.com.google.common.collect.RegularImmutableSet", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true - }, - { - "name": "shadow.com.google.common.collect.SingletonImmutableBiMap", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true - }, - { - "name": "shadow.com.google.common.collect.SingletonImmutableList", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true - }, - { - "name": "shadow.com.google.common.collect.SingletonImmutableSet", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true - }, - { - "name": "shadow.io.dropwizard.util.Duration", - "allDeclaredFields": true, - "queryAllDeclaredMethods": true, - "queryAllDeclaredConstructors": true, - "methods": [ - { "name": "parse", "parameterTypes": ["java.lang.String"] }, - { "name": "toString", "parameterTypes": [] } - ] - }, { "name": "shadow.com.networknt.schema.AdditionalPropertiesValidator", "methods": [ @@ -4619,9 +180,5 @@ ] } ] - }, - { - "name": "shadow.org.postgresql.Driver", - "methods": [{ "name": "", "parameterTypes": [] }] } ] From 5908dc8418afd43cbb4cf5f7dff1fc782307a31d Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Tue, 31 Dec 2024 16:51:46 +0100 Subject: [PATCH 106/167] code generation --- libxtracfg/js/types/generate-go-structs.ts | 8 + libxtracfg/js/types/generate-java-classes.ts | 460 +++++++ libxtracfg/js/types/generate-js-validators.ts | 123 ++ libxtracfg/js/types/generate-json-schema.ts | 108 ++ libxtracfg/js/types/generate.ts | 73 ++ libxtracfg/js/types/package-lock.json | 1160 +++++++++++++++++ libxtracfg/js/types/package.json | 21 + libxtracfg/js/types/src/index.ts | 118 ++ libxtracfg/js/types/test.ts | 17 + libxtracfg/js/types/tsconfig.json | 14 + 10 files changed, 2102 insertions(+) create mode 100644 libxtracfg/js/types/generate-go-structs.ts create mode 100644 libxtracfg/js/types/generate-java-classes.ts create mode 100644 libxtracfg/js/types/generate-js-validators.ts create mode 100644 libxtracfg/js/types/generate-json-schema.ts create mode 100644 libxtracfg/js/types/generate.ts create mode 100644 libxtracfg/js/types/package-lock.json create mode 100644 libxtracfg/js/types/package.json create mode 100644 libxtracfg/js/types/src/index.ts create mode 100644 libxtracfg/js/types/test.ts create mode 100644 libxtracfg/js/types/tsconfig.json diff --git a/libxtracfg/js/types/generate-go-structs.ts b/libxtracfg/js/types/generate-go-structs.ts new file mode 100644 index 0000000..6bf701b --- /dev/null +++ b/libxtracfg/js/types/generate-go-structs.ts @@ -0,0 +1,8 @@ +import { Definition } from "typescript-json-schema"; + +export const generateGoStructs = (schema: Definition) => { + return { + name: "Go Client", + files: [], + }; +}; diff --git a/libxtracfg/js/types/generate-java-classes.ts b/libxtracfg/js/types/generate-java-classes.ts new file mode 100644 index 0000000..7dccf95 --- /dev/null +++ b/libxtracfg/js/types/generate-java-classes.ts @@ -0,0 +1,460 @@ +import { Definition, DefinitionOrBoolean } from "typescript-json-schema"; +import { Result } from "./generate.ts"; + +type Defs = [string, Definition][]; +type Generator = (name: string, pkg: string) => string; + +const defs = (entry: DefinitionOrBoolean): Defs => { + return typeof entry !== "boolean" ? Object.entries(entry as Definition) : []; +}; + +const generate = (name: string, pkg: string, generate: Generator) => { + const dir = pkg.replaceAll(".", "/"); + const code = generate(name, pkg); + + return { path: `${dir}/${name}.java`, content: code }; +}; + +const dataNs = ["Command", "Options", "Result"]; +const suffixNs = ["Command", "Options"]; +const commandNs = "Command"; +const baseResult = "BaseResult"; +const failureResult = "FailureResult"; + +const getName = (name: string, ns: string) => { + return suffixNs.includes(ns) && name !== ns ? name + ns : name; +}; + +export const generateJavaClasses = (schema: Definition, pkg: string) => { + const definitions = schema.definitions || {}; + let consts: Defs = []; + let enums: Defs = []; + const commands: string[] = []; + let initCommand: string | undefined; + let baseCommand: string | undefined; + const result: Result = { name: "Java Backend", files: [] }; + + for (const [ns, entries] of Object.entries(definitions)) { + if (ns === "Consts") { + consts = defs(entries); + continue; + } + if (ns === "Enums") { + enums = defs(entries); + continue; + } + let nsInterface: string | undefined; + let nsInterfaceDef: Definition | undefined; + let nsDiscriminator: string | undefined; + let nsDiscriminators: { [key: string]: string } = {}; + + for (const [key, def] of Object.entries(entries)) { + if (dataNs.includes(ns) && def && def.interface) { + nsInterface = getName(key, ns); + nsInterfaceDef = def as Definition; + if (def.discriminator) { + nsDiscriminator = def.discriminator as string; + } + if (ns === commandNs) { + baseCommand = getName(key, ns); + } + } + } + for (const [key, def] of Object.entries(entries)) { + if (dataNs.includes(ns) && def && !def.interface) { + if ( + nsDiscriminator && + def.properties && + def.properties[nsDiscriminator] + ) { + nsDiscriminators[getName(key, ns)] = getValue( + def.properties[nsDiscriminator], + true + ); + } + if (ns === commandNs) { + if (def.javaContextInit) { + initCommand = getName(key, ns); + } else { + commands.push(getName(key, ns)); + } + } + result.files.push( + generate(getName(key, ns), pkg, generateDataClass(def, nsInterface)) + ); + } + } + if (nsInterface) { + result.files.push( + generate( + nsInterface, + pkg, + generateInterface( + nsInterfaceDef as Definition, + nsDiscriminators, + nsDiscriminator + ) + ) + ); + } + if (ns === commandNs) { + if (!initCommand) { + throw new Error("No init command found"); + } + if (!baseCommand) { + throw new Error("No base command found"); + } + result.files.push( + generate( + "Handler", + pkg, + generateHandler( + commands, + initCommand, + baseCommand, + baseResult, + failureResult + ) + ) + ); + } + } + + result.files.push( + generate("Identifiers", pkg, generateIdentifiersClass(consts, enums)) + ); + + return result; +}; + +const getType = (schema: DefinitionOrBoolean): string => { + if (typeof schema === "boolean") { + return "boolean"; + } + if (schema.type) { + if (schema.type === "object" && !schema.properties) { + return "java.util.Map"; + } + if (schema.type === "array" && schema.items) { + return `java.util.List<${getType(schema.items as DefinitionOrBoolean)}>`; + } + const type = + schema.type === "integer" + ? "int" + : schema.type === "number" + ? "double" + : schema.type === "boolean" + ? "boolean" + : "String"; + if (Object.hasOwn(schema, "optional")) { + return `java.util.Optional<${firstLetterUpperCase(type)}>`; + } + return firstLetterUpperCase(schema.type as string); + } + if (schema.$ref) { + if (schema.$ref.includes("/Consts/")) { + return "String"; + } + let type = schema.$ref.substring(schema.$ref.lastIndexOf("/") + 1); + if (type.includes(".")) { + type = type.substring(0, type.lastIndexOf(".")); + } + const prefix = schema.$ref.includes("/Enums/") ? "Identifiers." : ""; + const suffix = + suffixNs.find((ns) => type !== ns && schema.$ref?.includes(`/${ns}/`)) || + ""; + type = `${prefix}${type}${suffix}`; + + if (Object.hasOwn(schema, "optional")) { + return `java.util.Optional<${type}>`; + } + return type; + } + + return ""; +}; + +const getValue = ( + schema: DefinitionOrBoolean, + stringNotEnum?: boolean +): string => { + if (typeof schema === "boolean") { + return schema ? "true" : "false"; + } + if (schema.const) { + return `"${schema.const}"`; + } + if (Object.hasOwn(schema, "hide")) { + return `null`; + } + if ( + schema.$ref && + (schema.$ref.includes("/Consts/") || schema.$ref.includes("/Enums/")) + ) { + const name = + stringNotEnum && schema.$ref.includes(".") + ? schema.$ref.substring(schema.$ref.lastIndexOf(".") + 1) + : schema.$ref.substring(schema.$ref.lastIndexOf("/") + 1); + return `Identifiers.${name}`; + } + return ""; +}; + +const isConst = (schema: DefinitionOrBoolean) => { + return ( + typeof schema === "object" && + (Object.hasOwn(schema, "const") || + Object.hasOwn(schema, "hide") || + (Object.hasOwn(schema, "$ref") && + schema.$ref && + (schema.$ref.includes("/Consts/") || + (schema.$ref.includes("/Enums/") && schema.$ref.includes("."))))) + ); +}; + +const isEnum = (schema: DefinitionOrBoolean) => { + return ( + typeof schema === "object" && + (Object.hasOwn(schema, "enum") || + (Object.hasOwn(schema, "$ref") && + schema.$ref && + schema.$ref.includes("/Enums/"))) + ); +}; + +const firstLetterUpperCase = (str: string) => { + return str.charAt(0).toUpperCase() + str.slice(1); +}; + +const generateDataClass = + (schema: Definition, intface?: string): Generator => + (name: string, pkg: string): string => { + const properties = schema.properties || {}; + + let code = ` +package ${pkg}; + +public class ${name}${intface ? ` implements ${intface}` : ""} { + `; + for (const [key, entry] of Object.entries(properties)) { + code += ` + private final ${getType(entry)} ${key};`; + } + + code += ` + + public ${name}(`; + let i = 0; + for (const [key, entry] of Object.entries(properties)) { + i++; + if (isConst(entry)) { + continue; + } + const comma = i <= Object.keys(properties).length - 1 ? "," : ""; + code += ` + ${getType(entry)} ${key}${comma}`; + } + + code += ` + ) {`; + for (const [key, entry] of Object.entries(properties)) { + if (isConst(entry)) { + code += ` + this.${key} = ${getValue(entry)};`; + continue; + } + code += ` + this.${key} = ${key};`; + } + + code += ` + } + `; + for (const [key, entry] of Object.entries(properties)) { + code += ` + public ${getType(entry)} get${firstLetterUpperCase(key)}() { + return ${key}; + } + `; + } + + code += ` +} + + `; + + return code; + }; + +const generateIdentifiersClass = + (consts: Defs, enums: Defs): Generator => + (name: string, pkg: string): string => { + //const properties = schema.properties || {}; + + let code = ` + package ${pkg}; + + public interface ${name} { + `; + for (const [key, entry] of consts) { + if (!isConst(entry)) { + continue; + } + code += ` + ${getType(entry)} ${key} = ${getValue(entry)};`; + } + + code += ` + `; + + for (const [key, entry] of enums) { + if (!isEnum(entry)) { + continue; + } + code += ` + enum ${key} { ${entry["enum"]?.join(", ")} };`; + } + + code += ` + } + `; + + return code; + }; + +const generateInterface = + ( + schema: Definition, + discriminators: { [key: string]: string }, + discriminatorKey?: string + ): Generator => + (name: string, pkg: string): string => { + const properties = schema.properties || {}; + + let code = ` +package ${pkg}; + `; + + if (discriminatorKey) { + code += ` +import shadow.com.fasterxml.jackson.annotation.JsonSubTypes; +import shadow.com.fasterxml.jackson.annotation.JsonTypeInfo; + +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "${discriminatorKey}", visible = true) +@JsonSubTypes({`; + for (const [key, value] of Object.entries(discriminators)) { + code += ` + @JsonSubTypes.Type(value = ${key}.class, name = ${value}),`; + } + + code += ` +})`; + } + + code += ` +public interface ${name} { + `; + for (const [key, entry] of Object.entries(properties)) { + code += ` + ${getType(entry)} get${firstLetterUpperCase(key)}(); + `; + } + + code += ` +} + `; + + return code; + }; + +const generateHandler = + ( + commands: string[], + initCommand: string, + baseCommand: string, + result: string, + failure: string + ): Generator => + (name: string, pkg: string): string => { + const initName = initCommand.replace("Command", ""); + let code = ` +package ${pkg}; + +import java.util.Objects; +import java.util.function.Consumer; + +public abstract class Handler> { + + public interface Context { + boolean isConnected(); + } + + public interface ContextBuilder { + T build(); + } + + private T context; + + public Handler() { + this.context = null; + } + + private boolean isConnected() { + return Objects.nonNull(context) && context.isConnected(); + } + + protected ${result} notConnected() { + return new ${failure}("Not connected to store"); + } + + protected abstract U createContextBuilder(); + + protected abstract ${result} run${initName}(${initCommand} command, U builder, Consumer<${result}> tracker); + `; + for (const command of commands) { + const commandName = command.replace("Command", ""); + code += ` + protected abstract ${result} run${commandName}(${command} command, T context, Consumer<${result}> tracker); + `; + } + + code += ` + public final ${result} handle(${baseCommand} command, boolean autoConnect, Consumer<${result}> tracker) { + if ((!(command instanceof ${initCommand})) && !isConnected()) { + if (!autoConnect) { + return notConnected(); + } + + ${result} result = handle(new ${initCommand}(command.getOptions()), false, ignore -> {}); + + if (result instanceof ${failure}) { + return result; + } + } + + if (command instanceof ${initCommand}) { + U builder = createContextBuilder(); + ${result} result = run${initName}(((${initCommand}) command), builder, tracker); + + context = builder.build(); + + return result; + } + `; + for (const command of commands) { + const commandName = command.replace("Command", ""); + code += ` + if (command instanceof ${command}) { + return run${commandName}(((${command}) command), context, tracker); + } + `; + } + + code += ` + return new ${failure}("Unknown command: " + command.getCommand()); + } +} + `; + + return code; + }; diff --git a/libxtracfg/js/types/generate-js-validators.ts b/libxtracfg/js/types/generate-js-validators.ts new file mode 100644 index 0000000..6ce8d90 --- /dev/null +++ b/libxtracfg/js/types/generate-js-validators.ts @@ -0,0 +1,123 @@ +import { Definition } from "typescript-json-schema"; +import { + validationKeywordsBoolean, + validationKeywordsString, +} from "./generate-json-schema.ts"; + +export const generateJsValidators = (schema: Definition) => { + const code = generateValidators(schema); + + return { + name: "JS Validators", + files: [{ path: "validate.ts", content: code }], + }; +}; + +const generateValidators = (schema: Definition) => { + const definitions = schema.definitions || {}; + + let code = ` +import { Ajv, ValidateFunction } from "ajv"; +import schema from "./schema.json"; +import { ${Object.keys(definitions).join(", ")} } from "../index.ts"; + +const ajv = new Ajv(); +ajv.addSchema(schema); + `; + + for (const keyword of validationKeywordsBoolean) { + code += ` +ajv.addKeyword({keyword: "${keyword}", type: "boolean"});`; + } + for (const keyword of validationKeywordsString) { + code += ` +ajv.addKeyword({keyword: "${keyword}", type: "string"});`; + } + + code += ` + +const validate = ( + validator: ValidateFunction, + data: any, + type: string = "object" +) => { + const valid = validator(data); + + if (!valid) { + const message = "not a valid " + type; + const cause: string[] = []; + + for (const error of validator.errors || []) { + if (error.keyword === "additionalProperties") { + cause.push( + \`unexpected property '\${error.params.additionalProperty}' in \${ + error.instancePath || "root" + }\` + ); + } else { + cause.push(JSON.stringify(error, null, 2)); + } + } + + throw new Error(message, { cause }); + } +}; + +const getSchema = (ref: string): ValidateFunction => { + const schema = ajv.getSchema(ref); + + if (!schema) { + throw new Error(\`schema not found: \${ref}\`); + } + + return schema; +}; + +const validators: { [key: string]: ValidateFunction } = { + `; + + for (const [ns, entries] of Object.entries(definitions)) { + for (const [key, def] of Object.entries(entries)) { + code += ` + '${ns}/${key}': getSchema("#/definitions/${ns}/${key}"), + `; + } + } + + code += ` +}; + + `; + + for (const [ns, entries] of Object.entries(definitions)) { + for (const [key, def] of Object.entries(entries)) { + code += ` +export const validate${ns}${key} = (data: any) => validate(validators['${ns}/${key}'], data, '${ns}.${key}'); + `; + } + } + + for (const [ns, entries] of Object.entries(definitions)) { + if (ns !== "Command") { + continue; + } + code += ` +export const validate${ns} = (data: ${ns}.Base) => { + `; + for (const [key, def] of Object.entries(entries)) { + if (key === "Base") { + continue; + } + code += ` + if (data instanceof ${ns}.${key}) {validate${ns}${key}(data); return;} + `; + } + + code += ` + throw new Error("invalid Command"); +}; + `; + } + + return code; +}; diff --git a/libxtracfg/js/types/generate-json-schema.ts b/libxtracfg/js/types/generate-json-schema.ts new file mode 100644 index 0000000..2a1d936 --- /dev/null +++ b/libxtracfg/js/types/generate-json-schema.ts @@ -0,0 +1,108 @@ +import { resolve } from "path"; +import * as TJS from "typescript-json-schema"; + +export const generateJsonSchema = () => { + const schema = generate(); + console.log(schema.string); + + return { + name: "JSON Schema", + obj: schema.js, + files: [{ path: "api-schema.json", content: schema.string }], + }; +}; + +export const validationKeywordsBoolean = [ + "hide", + "optional", + "interface", + "javaContextInit", +]; +export const validationKeywordsString = ["discriminator"]; + +const namespaces = ["Enums", "Consts", "Options", "Command", "Result"]; + +const generate = () => { + // optionally pass argument to schema generator + const settings: TJS.PartialArgs = { + required: true, + noExtraProps: true, + //id: "Xtracfg", + validationKeywords: [ + ...validationKeywordsBoolean, + ...validationKeywordsString, + ], + ref: true, + aliasRef: true, + //titles: true, + //constAsEnum: true, + }; + + // optionally pass ts compiler options + const compilerOptions = { + strictNullChecks: true, + }; + + const program = TJS.getProgramFromFiles( + [resolve("./src/index.ts")], + compilerOptions, + "./" + ); + + const generator = TJS.buildGenerator(program, settings); + + if (!generator) { + throw new Error("Failed to create schema generator"); + } + + const symbols = generator + .getUserSymbols() + .filter( + (s) => !s.endsWith("_1") && namespaces.some((ns) => s.startsWith(ns)) + ); + + const schema = generator.getSchemaForSymbols(symbols, true, true); + + const fixedSchema = fix(schema); + + return { + js: fixedSchema, + string: JSON.stringify(fixedSchema, null, 2), + }; +}; + +const fix = (schema: TJS.Definition) => { + const definitions = schema.definitions || {}; + const newDefinitions: { [key: string]: any } = {}; + namespaces.forEach((ns) => { + newDefinitions[ns] = {}; + }); + + for (const [key, value] of Object.entries(definitions)) { + handleKey(key, value, newDefinitions); + } + + const newSchema = { ...schema, definitions: newDefinitions }; + + return JSON.parse( + JSON.stringify(newSchema) + .replaceAll(new RegExp(`(${namespaces.join("|")})\\.`, "g"), "$1/") + .replaceAll("_1", "") + ); +}; + +function handleKey(key: string, value: any, newDefinitions: any) { + let handled = false; + + for (const namespace of namespaces) { + if (key.startsWith(`${namespace}.`)) { + newDefinitions[namespace][key.replace(`${namespace}.`, "")] = value; + handled = true; + break; + } + } + + if (!handled) { + newDefinitions[key] = value; + } +} diff --git a/libxtracfg/js/types/generate.ts b/libxtracfg/js/types/generate.ts new file mode 100644 index 0000000..0ff8d08 --- /dev/null +++ b/libxtracfg/js/types/generate.ts @@ -0,0 +1,73 @@ +import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs"; +import { dirname } from "path"; + +import { generateJsonSchema } from "./generate-json-schema.ts"; +import { generateJsValidators } from "./generate-js-validators.ts"; +import { generateJavaClasses } from "./generate-java-classes.ts"; +import { generateGoStructs } from "./generate-go-structs.ts"; + +const basePath = "./src/gen"; +const javaBasePath = "../../java/src/main/java"; +const javaPkg = "de.ii.xtraplatform.cli.gen"; + +type Files = { path: string; content: string }[]; +export type Result = { name: string; files: Files }; +type SchemaResult = Result & { obj: any }; + +//TODO: move writing here, compare with existing before writing +//TODO: restructure -> xtracfg/bin, xtracfg/lib/*, gen in root? +const generateAll = (verbose?: boolean) => { + console.log("Generating code from TypeScript definitions"); + + mkdirSync(basePath, { recursive: true }); + + const schema: SchemaResult = generateJsonSchema(); + + write(schema, basePath, verbose); + + const js: Result = generateJsValidators(schema.obj); + + write(js, basePath, verbose); + + const java: Result = generateJavaClasses(schema.obj, javaPkg); + + write(java, javaBasePath, verbose); + + const go: Result = generateGoStructs(schema.obj); + + write(go, basePath, verbose); +}; + +const write = ( + result: Result, + basePath: string, + verbose?: boolean +): boolean => { + let noChanges = true; + const messages = []; + + for (const { path, content } of result.files) { + const fullPath = `${basePath}/${path}`; + const oldContent = existsSync(fullPath) + ? readFileSync(fullPath, "utf8") + : ""; + + if (oldContent === content) { + if (verbose) messages.push(` - ${path}: NO CHANGES`); + continue; + } + + mkdirSync(dirname(fullPath), { recursive: true }); + writeFileSync(fullPath, content); + noChanges = false; + + if (verbose) messages.push(` - ${path}: UPDATED`); + } + + console.log(`- ${result.name}: ${noChanges ? "NO CHANGES" : "UPDATED"}`); + messages.forEach((msg) => console.log(msg)); + + return noChanges; +}; + +generateAll(false); diff --git a/libxtracfg/js/types/package-lock.json b/libxtracfg/js/types/package-lock.json new file mode 100644 index 0000000..6bfd2ba --- /dev/null +++ b/libxtracfg/js/types/package-lock.json @@ -0,0 +1,1160 @@ +{ + "name": "@xtracfg/types", + "version": "4.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@xtracfg/types", + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "ajv": "^8.17.1" + }, + "devDependencies": { + "@tsconfig/node20": "^20.1.4", + "tsx": "^4.7.2", + "typescript-json-schema": "^0.65.1" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz", + "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz", + "integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz", + "integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.1.tgz", + "integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz", + "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz", + "integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz", + "integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz", + "integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz", + "integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz", + "integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz", + "integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz", + "integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz", + "integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz", + "integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz", + "integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz", + "integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz", + "integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz", + "integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz", + "integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz", + "integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz", + "integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz", + "integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz", + "integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz", + "integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node20": { + "version": "20.1.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node20/-/node20-20.1.4.tgz", + "integrity": "sha512-sqgsT69YFeLWf5NtJ4Xq/xAF8p4ZQHlmGW74Nu2tD4+g5fAsposc4ZfaaPixVu4y01BEiDCWLRDCvDM5JOsRxg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "18.19.56", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.56.tgz", + "integrity": "sha512-4EMJlWwwGnVPflJAtM14p9eVSa6BOv5b92mCsh5zcM1UagNtEtrbbtaE6WE1tw2TabavatnwqXjlIpcAEuJJNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/acorn": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.13.0.tgz", + "integrity": "sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true, + "license": "MIT" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz", + "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.23.1", + "@esbuild/android-arm": "0.23.1", + "@esbuild/android-arm64": "0.23.1", + "@esbuild/android-x64": "0.23.1", + "@esbuild/darwin-arm64": "0.23.1", + "@esbuild/darwin-x64": "0.23.1", + "@esbuild/freebsd-arm64": "0.23.1", + "@esbuild/freebsd-x64": "0.23.1", + "@esbuild/linux-arm": "0.23.1", + "@esbuild/linux-arm64": "0.23.1", + "@esbuild/linux-ia32": "0.23.1", + "@esbuild/linux-loong64": "0.23.1", + "@esbuild/linux-mips64el": "0.23.1", + "@esbuild/linux-ppc64": "0.23.1", + "@esbuild/linux-riscv64": "0.23.1", + "@esbuild/linux-s390x": "0.23.1", + "@esbuild/linux-x64": "0.23.1", + "@esbuild/netbsd-x64": "0.23.1", + "@esbuild/openbsd-arm64": "0.23.1", + "@esbuild/openbsd-x64": "0.23.1", + "@esbuild/sunos-x64": "0.23.1", + "@esbuild/win32-arm64": "0.23.1", + "@esbuild/win32-ia32": "0.23.1", + "@esbuild/win32-x64": "0.23.1" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", + "license": "BSD-3-Clause" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-tsconfig": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", + "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "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.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true, + "license": "ISC" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/path-equal": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/path-equal/-/path-equal-1.2.5.tgz", + "integrity": "sha512-i73IctDr3F2W+bsOWDyyVm/lqsXO47aY9nsFZUjTT/aljSbkxHxxCoyZ9UUrM8jK0JVod+An+rl48RCsvWM+9g==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/safe-stable-stringify": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", + "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/tsx": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.19.1.tgz", + "integrity": "sha512-0flMz1lh74BR4wOvBjuh9olbnwqCPc35OOlfyzHba0Dc+QNUeWX/Gq2YTbnwcWPO3BMd8fkzRVrHcsR+a7z7rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "~0.23.0", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/typescript": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-json-schema": { + "version": "0.65.1", + "resolved": "https://registry.npmjs.org/typescript-json-schema/-/typescript-json-schema-0.65.1.tgz", + "integrity": "sha512-tuGH7ff2jPaUYi6as3lHyHcKpSmXIqN7/mu50x3HlYn0EHzLpmt3nplZ7EuhUkO0eqDRc9GqWNkfjgBPIS9kxg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@types/json-schema": "^7.0.9", + "@types/node": "^18.11.9", + "glob": "^7.1.7", + "path-equal": "^1.2.5", + "safe-stable-stringify": "^2.2.0", + "ts-node": "^10.9.1", + "typescript": "~5.5.0", + "yargs": "^17.1.1" + }, + "bin": { + "typescript-json-schema": "bin/typescript-json-schema" + } + }, + "node_modules/typescript-json-schema/node_modules/typescript": { + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", + "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true, + "license": "MIT" + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + } + } +} diff --git a/libxtracfg/js/types/package.json b/libxtracfg/js/types/package.json new file mode 100644 index 0000000..9304f10 --- /dev/null +++ b/libxtracfg/js/types/package.json @@ -0,0 +1,21 @@ +{ + "name": "@xtracfg/types", + "description": "", + "version": "4.1.0", + "author": "", + "license": "MIT", + "type": "module", + "private": true, + "scripts": { + "test": "tsx ./test.ts", + "parse": "tsx ./generate.ts" + }, + "devDependencies": { + "@tsconfig/node20": "^20.1.4", + "tsx": "^4.7.2", + "typescript-json-schema": "^0.65.1" + }, + "dependencies": { + "ajv": "^8.17.1" + } +} diff --git a/libxtracfg/js/types/src/index.ts b/libxtracfg/js/types/src/index.ts new file mode 100644 index 0000000..4f6e51d --- /dev/null +++ b/libxtracfg/js/types/src/index.ts @@ -0,0 +1,118 @@ +export namespace Enums { + export enum Main { + Connect = "Connect", + Info = "Info", + Check = "Check", + } + export enum StoreSubs { + Cfg = "Cfg", + Entities = "Entities", + Layout = "Layout", + } + export enum MessageType { + ERROR = "ERROR", + WARNING = "WARNING", + SUCCESS = "SUCCESS", + INFO = "INFO", + CONFIRMATION = "CONFIRMATION", + } +} + +export namespace Consts { + export type Connect = "Connect"; + export type Info = "Info"; + export type Check = "Check"; +} + +export namespace Options { + /** + * @interface true + */ + export interface Options { + readonly source?: string; + readonly verbose?: boolean; + readonly debug?: boolean; + } + + export interface Base extends Options {} + + export interface Store extends Options { + /** + * @optional true + */ + readonly subcommand?: Enums.StoreSubs; + readonly ignoreRedundant?: boolean; + readonly path?: string; + } +} + +export namespace Command { + /** + * @interface true + * @discriminator command + */ + //TODO: should be abstract so that it cannot be instantiated, but that breaks the JSON schema generation + export class Base { + readonly command: Enums.Main; + readonly options: Options.Options; + + constructor(command: Enums.Main, options: Options.Options) { + this.command = command; + this.options = options; + } + } + + /** + * @javaContextInit true + */ + export class Connect extends Base { + declare readonly command: Enums.Main.Connect; + declare readonly options: Options.Options; + + constructor(options: Options.Options = {}) { + super(Enums.Main.Connect, options); + } + } + + export class Info extends Base { + declare readonly command: Enums.Main.Info; + declare readonly options: Options.Options; + + constructor(options: Options.Options = {}) { + super(Enums.Main.Info, options); + } + } + + export class Check extends Base { + declare readonly command: Enums.Main.Check; + declare readonly options: Options.Store; + + constructor(options: Options.Store = {}) { + super(Enums.Main.Check, options); + } + } +} + +export namespace Result { + export interface Message { + readonly type: Enums.MessageType; + readonly text: string; + } + + export interface RegularResult { + /** + * @minItems 1 + */ + readonly messages: Message[]; + readonly details?: { [key: string]: any }; + } + + export interface FailureResult { + readonly error: string; + } + + /** + * @interface true + */ + export type BaseResult = RegularResult | FailureResult; +} diff --git a/libxtracfg/js/types/test.ts b/libxtracfg/js/types/test.ts new file mode 100644 index 0000000..c2b214a --- /dev/null +++ b/libxtracfg/js/types/test.ts @@ -0,0 +1,17 @@ +import { Command } from "./src/index.ts"; +import { validateCommand } from "./src/gen/validate.ts"; + +const options = { source: "libxtracfg", foo: "bar" }; + +const info = new Command.Connect(options); + +//info.command = "info"; +//info.options.source = "libxtracfg"; + +console.log(JSON.stringify(info, null, 2)); + +//validateOptionsStore(options); + +const shouldNotValidate = { command: "info", options: {} }; + +validateCommand(info); diff --git a/libxtracfg/js/types/tsconfig.json b/libxtracfg/js/types/tsconfig.json new file mode 100644 index 0000000..e6f0651 --- /dev/null +++ b/libxtracfg/js/types/tsconfig.json @@ -0,0 +1,14 @@ +{ + "extends": "@tsconfig/node20/tsconfig.json", + "include": ["**/*.ts"], + "compilerOptions": { + "rootDir": "./" /* Specify the root folder within your source files. */, + "outDir": "./build" /* Specify an output folder for all emitted files. */, + "allowJs": true /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */, + "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, + "experimentalDecorators": true, + "allowImportingTsExtensions": true /* Allow importing of .ts files even when they cannot be resolved. */, + "noEmit": true, + "resolveJsonModule": true + } +} From f93a9db00b1b24b65469ccda717de636731111fb Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Wed, 1 Jan 2025 16:56:56 +0100 Subject: [PATCH 107/167] default values --- libxtracfg/js/types/generate-java-classes.ts | 17 ++++++++++++++++- libxtracfg/js/types/src/index.ts | 15 +++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/libxtracfg/js/types/generate-java-classes.ts b/libxtracfg/js/types/generate-java-classes.ts index 7dccf95..2648e39 100644 --- a/libxtracfg/js/types/generate-java-classes.ts +++ b/libxtracfg/js/types/generate-java-classes.ts @@ -200,6 +200,16 @@ const getValue = ( return ""; }; +const getDefault = (schema: DefinitionOrBoolean): string => { + if (typeof schema === "object" && Object.hasOwn(schema, "default")) { + if (schema.type === "string") { + return `"${schema.default}"`; + } + return `${schema.default}`; + } + return ""; +}; + const isConst = (schema: DefinitionOrBoolean) => { return ( typeof schema === "object" && @@ -263,8 +273,13 @@ public class ${name}${intface ? ` implements ${intface}` : ""} { this.${key} = ${getValue(entry)};`; continue; } - code += ` + if (Object.hasOwn(entry, "default")) { + code += ` + this.${key} = Object.requireNonNullElse(${key},${getDefault(entry)});`; + } else { + code += ` this.${key} = ${key};`; + } } code += ` diff --git a/libxtracfg/js/types/src/index.ts b/libxtracfg/js/types/src/index.ts index 4f6e51d..d32ede9 100644 --- a/libxtracfg/js/types/src/index.ts +++ b/libxtracfg/js/types/src/index.ts @@ -29,8 +29,17 @@ export namespace Options { * @interface true */ export interface Options { + /** + * @default ./ + */ readonly source?: string; + /** + * @default false + */ readonly verbose?: boolean; + /** + * @default false + */ readonly debug?: boolean; } @@ -41,7 +50,13 @@ export namespace Options { * @optional true */ readonly subcommand?: Enums.StoreSubs; + /** + * @default false + */ readonly ignoreRedundant?: boolean; + /** + * @optional true + */ readonly path?: string; } } From 13f94a0030251871063f835efd795808ca2f0acb Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Thu, 2 Jan 2025 15:57:23 +0100 Subject: [PATCH 108/167] refactor --- libxtracfg/js/types/common/index.ts | 75 ++++ libxtracfg/js/types/generate-java-classes.ts | 403 ++---------------- libxtracfg/js/types/generate.ts | 6 +- .../{generate-go-structs.ts => go/index.ts} | 0 libxtracfg/js/types/java/data.ts | 162 +++++++ libxtracfg/js/types/java/index.ts | 181 ++++++++ .../index.ts} | 3 +- .../index.ts} | 1 + libxtracfg/js/types/package-lock.json | 8 + libxtracfg/js/types/package.json | 8 +- libxtracfg/js/types/tsconfig.json | 2 +- 11 files changed, 483 insertions(+), 366 deletions(-) create mode 100644 libxtracfg/js/types/common/index.ts rename libxtracfg/js/types/{generate-go-structs.ts => go/index.ts} (100%) create mode 100644 libxtracfg/js/types/java/data.ts create mode 100644 libxtracfg/js/types/java/index.ts rename libxtracfg/js/types/{generate-js-validators.ts => js/index.ts} (97%) rename libxtracfg/js/types/{generate-json-schema.ts => json-schema/index.ts} (98%) diff --git a/libxtracfg/js/types/common/index.ts b/libxtracfg/js/types/common/index.ts new file mode 100644 index 0000000..cd138c6 --- /dev/null +++ b/libxtracfg/js/types/common/index.ts @@ -0,0 +1,75 @@ +import { Definition, DefinitionOrBoolean } from "typescript-json-schema"; + +export type Defs = [string, Definition][]; +export type Generator = (name: string, pkg: string) => string; + +export const defs = (entry: DefinitionOrBoolean): Defs => { + return typeof entry !== "boolean" ? Object.entries(entry as Definition) : []; +}; + +export const constsNs = "Consts"; +export const enumsNs = "Enums"; +export const constsPath = "/Consts/"; +export const enumsPath = "/Enums/"; + +export const getValue = ( + schema: DefinitionOrBoolean, + stringNotEnum?: boolean +): string => { + if (typeof schema === "boolean") { + return schema ? "true" : "false"; + } + if (schema.const) { + return `"${schema.const}"`; + } + if (Object.hasOwn(schema, "hide")) { + return `null`; + } + if ( + schema.$ref && + (schema.$ref.includes(constsPath) || schema.$ref.includes(enumsPath)) + ) { + const name = + stringNotEnum && schema.$ref.includes(".") + ? schema.$ref.substring(schema.$ref.lastIndexOf(".") + 1) + : schema.$ref.substring(schema.$ref.lastIndexOf("/") + 1); + return `Identifiers.${name}`; + } + return ""; +}; + +export const getDefault = (schema: DefinitionOrBoolean): string => { + if (typeof schema === "object" && Object.hasOwn(schema, "default")) { + if (schema.type === "string") { + return `"${schema.default}"`; + } + return `${schema.default}`; + } + return ""; +}; + +export const isConst = (schema: DefinitionOrBoolean) => { + return ( + typeof schema === "object" && + (Object.hasOwn(schema, "const") || + Object.hasOwn(schema, "hide") || + (Object.hasOwn(schema, "$ref") && + schema.$ref && + (schema.$ref.includes(constsPath) || + (schema.$ref.includes(enumsPath) && schema.$ref.includes("."))))) + ); +}; + +export const isEnum = (schema: DefinitionOrBoolean) => { + return ( + typeof schema === "object" && + (Object.hasOwn(schema, "enum") || + (Object.hasOwn(schema, "$ref") && + schema.$ref && + schema.$ref.includes(enumsPath))) + ); +}; + +export const firstLetterUpperCase = (str: string) => { + return str.charAt(0).toUpperCase() + str.slice(1); +}; diff --git a/libxtracfg/js/types/generate-java-classes.ts b/libxtracfg/js/types/generate-java-classes.ts index 2648e39..09a2e80 100644 --- a/libxtracfg/js/types/generate-java-classes.ts +++ b/libxtracfg/js/types/generate-java-classes.ts @@ -1,19 +1,7 @@ -import { Definition, DefinitionOrBoolean } from "typescript-json-schema"; +import { Definition } from "typescript-json-schema"; import { Result } from "./generate.ts"; - -type Defs = [string, Definition][]; -type Generator = (name: string, pkg: string) => string; - -const defs = (entry: DefinitionOrBoolean): Defs => { - return typeof entry !== "boolean" ? Object.entries(entry as Definition) : []; -}; - -const generate = (name: string, pkg: string, generate: Generator) => { - const dir = pkg.replaceAll(".", "/"); - const code = generate(name, pkg); - - return { path: `${dir}/${name}.java`, content: code }; -}; +import { Generator } from "./common/index.ts"; +import { generateClass, generateJava } from "./java/index.ts"; const dataNs = ["Command", "Options", "Result"]; const suffixNs = ["Command", "Options"]; @@ -21,367 +9,68 @@ const commandNs = "Command"; const baseResult = "BaseResult"; const failureResult = "FailureResult"; -const getName = (name: string, ns: string) => { - return suffixNs.includes(ns) && name !== ns ? name + ns : name; -}; - -export const generateJavaClasses = (schema: Definition, pkg: string) => { - const definitions = schema.definitions || {}; - let consts: Defs = []; - let enums: Defs = []; +export const generateJavaClasses = ( + schema: Definition, + pkg: string +): Result => { const commands: string[] = []; let initCommand: string | undefined; let baseCommand: string | undefined; - const result: Result = { name: "Java Backend", files: [] }; - for (const [ns, entries] of Object.entries(definitions)) { - if (ns === "Consts") { - consts = defs(entries); - continue; - } - if (ns === "Enums") { - enums = defs(entries); - continue; + const onNs = ( + ns: string, + nsInterface?: string, + nsInterfaceDef?: Definition + ) => { + if (ns === commandNs) { + baseCommand = nsInterface; } - let nsInterface: string | undefined; - let nsInterfaceDef: Definition | undefined; - let nsDiscriminator: string | undefined; - let nsDiscriminators: { [key: string]: string } = {}; + }; - for (const [key, def] of Object.entries(entries)) { - if (dataNs.includes(ns) && def && def.interface) { - nsInterface = getName(key, ns); - nsInterfaceDef = def as Definition; - if (def.discriminator) { - nsDiscriminator = def.discriminator as string; - } - if (ns === commandNs) { - baseCommand = getName(key, ns); - } - } - } - for (const [key, def] of Object.entries(entries)) { - if (dataNs.includes(ns) && def && !def.interface) { - if ( - nsDiscriminator && - def.properties && - def.properties[nsDiscriminator] - ) { - nsDiscriminators[getName(key, ns)] = getValue( - def.properties[nsDiscriminator], - true - ); - } - if (ns === commandNs) { - if (def.javaContextInit) { - initCommand = getName(key, ns); - } else { - commands.push(getName(key, ns)); - } - } - result.files.push( - generate(getName(key, ns), pkg, generateDataClass(def, nsInterface)) - ); - } - } - if (nsInterface) { - result.files.push( - generate( - nsInterface, - pkg, - generateInterface( - nsInterfaceDef as Definition, - nsDiscriminators, - nsDiscriminator - ) - ) - ); - } + const onClass = (ns: string, name: string, def?: any) => { if (ns === commandNs) { - if (!initCommand) { - throw new Error("No init command found"); - } - if (!baseCommand) { - throw new Error("No base command found"); + if (def?.javaContextInit) { + initCommand = name; + } else { + commands.push(name); } - result.files.push( - generate( - "Handler", - pkg, - generateHandler( - commands, - initCommand, - baseCommand, - baseResult, - failureResult - ) - ) - ); } - } + }; - result.files.push( - generate("Identifiers", pkg, generateIdentifiersClass(consts, enums)) + const result = generateJava( + "Java Backend", + schema, + pkg, + dataNs, + suffixNs, + onNs, + onClass ); - return result; -}; - -const getType = (schema: DefinitionOrBoolean): string => { - if (typeof schema === "boolean") { - return "boolean"; + if (!initCommand) { + throw new Error("No init command found"); } - if (schema.type) { - if (schema.type === "object" && !schema.properties) { - return "java.util.Map"; - } - if (schema.type === "array" && schema.items) { - return `java.util.List<${getType(schema.items as DefinitionOrBoolean)}>`; - } - const type = - schema.type === "integer" - ? "int" - : schema.type === "number" - ? "double" - : schema.type === "boolean" - ? "boolean" - : "String"; - if (Object.hasOwn(schema, "optional")) { - return `java.util.Optional<${firstLetterUpperCase(type)}>`; - } - return firstLetterUpperCase(schema.type as string); + if (!baseCommand) { + throw new Error("No base command found"); } - if (schema.$ref) { - if (schema.$ref.includes("/Consts/")) { - return "String"; - } - let type = schema.$ref.substring(schema.$ref.lastIndexOf("/") + 1); - if (type.includes(".")) { - type = type.substring(0, type.lastIndexOf(".")); - } - const prefix = schema.$ref.includes("/Enums/") ? "Identifiers." : ""; - const suffix = - suffixNs.find((ns) => type !== ns && schema.$ref?.includes(`/${ns}/`)) || - ""; - type = `${prefix}${type}${suffix}`; - - if (Object.hasOwn(schema, "optional")) { - return `java.util.Optional<${type}>`; - } - return type; - } - - return ""; -}; -const getValue = ( - schema: DefinitionOrBoolean, - stringNotEnum?: boolean -): string => { - if (typeof schema === "boolean") { - return schema ? "true" : "false"; - } - if (schema.const) { - return `"${schema.const}"`; - } - if (Object.hasOwn(schema, "hide")) { - return `null`; - } - if ( - schema.$ref && - (schema.$ref.includes("/Consts/") || schema.$ref.includes("/Enums/")) - ) { - const name = - stringNotEnum && schema.$ref.includes(".") - ? schema.$ref.substring(schema.$ref.lastIndexOf(".") + 1) - : schema.$ref.substring(schema.$ref.lastIndexOf("/") + 1); - return `Identifiers.${name}`; - } - return ""; -}; - -const getDefault = (schema: DefinitionOrBoolean): string => { - if (typeof schema === "object" && Object.hasOwn(schema, "default")) { - if (schema.type === "string") { - return `"${schema.default}"`; - } - return `${schema.default}`; - } - return ""; -}; - -const isConst = (schema: DefinitionOrBoolean) => { - return ( - typeof schema === "object" && - (Object.hasOwn(schema, "const") || - Object.hasOwn(schema, "hide") || - (Object.hasOwn(schema, "$ref") && - schema.$ref && - (schema.$ref.includes("/Consts/") || - (schema.$ref.includes("/Enums/") && schema.$ref.includes("."))))) - ); -}; - -const isEnum = (schema: DefinitionOrBoolean) => { - return ( - typeof schema === "object" && - (Object.hasOwn(schema, "enum") || - (Object.hasOwn(schema, "$ref") && - schema.$ref && - schema.$ref.includes("/Enums/"))) + result.files.push( + generateClass( + "Handler", + pkg, + generateHandler( + commands, + initCommand, + baseCommand, + baseResult, + failureResult + ) + ) ); -}; -const firstLetterUpperCase = (str: string) => { - return str.charAt(0).toUpperCase() + str.slice(1); + return result; }; -const generateDataClass = - (schema: Definition, intface?: string): Generator => - (name: string, pkg: string): string => { - const properties = schema.properties || {}; - - let code = ` -package ${pkg}; - -public class ${name}${intface ? ` implements ${intface}` : ""} { - `; - for (const [key, entry] of Object.entries(properties)) { - code += ` - private final ${getType(entry)} ${key};`; - } - - code += ` - - public ${name}(`; - let i = 0; - for (const [key, entry] of Object.entries(properties)) { - i++; - if (isConst(entry)) { - continue; - } - const comma = i <= Object.keys(properties).length - 1 ? "," : ""; - code += ` - ${getType(entry)} ${key}${comma}`; - } - - code += ` - ) {`; - for (const [key, entry] of Object.entries(properties)) { - if (isConst(entry)) { - code += ` - this.${key} = ${getValue(entry)};`; - continue; - } - if (Object.hasOwn(entry, "default")) { - code += ` - this.${key} = Object.requireNonNullElse(${key},${getDefault(entry)});`; - } else { - code += ` - this.${key} = ${key};`; - } - } - - code += ` - } - `; - for (const [key, entry] of Object.entries(properties)) { - code += ` - public ${getType(entry)} get${firstLetterUpperCase(key)}() { - return ${key}; - } - `; - } - - code += ` -} - - `; - - return code; - }; - -const generateIdentifiersClass = - (consts: Defs, enums: Defs): Generator => - (name: string, pkg: string): string => { - //const properties = schema.properties || {}; - - let code = ` - package ${pkg}; - - public interface ${name} { - `; - for (const [key, entry] of consts) { - if (!isConst(entry)) { - continue; - } - code += ` - ${getType(entry)} ${key} = ${getValue(entry)};`; - } - - code += ` - `; - - for (const [key, entry] of enums) { - if (!isEnum(entry)) { - continue; - } - code += ` - enum ${key} { ${entry["enum"]?.join(", ")} };`; - } - - code += ` - } - `; - - return code; - }; - -const generateInterface = - ( - schema: Definition, - discriminators: { [key: string]: string }, - discriminatorKey?: string - ): Generator => - (name: string, pkg: string): string => { - const properties = schema.properties || {}; - - let code = ` -package ${pkg}; - `; - - if (discriminatorKey) { - code += ` -import shadow.com.fasterxml.jackson.annotation.JsonSubTypes; -import shadow.com.fasterxml.jackson.annotation.JsonTypeInfo; - -@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "${discriminatorKey}", visible = true) -@JsonSubTypes({`; - for (const [key, value] of Object.entries(discriminators)) { - code += ` - @JsonSubTypes.Type(value = ${key}.class, name = ${value}),`; - } - - code += ` -})`; - } - - code += ` -public interface ${name} { - `; - for (const [key, entry] of Object.entries(properties)) { - code += ` - ${getType(entry)} get${firstLetterUpperCase(key)}(); - `; - } - - code += ` -} - `; - - return code; - }; - const generateHandler = ( commands: string[], diff --git a/libxtracfg/js/types/generate.ts b/libxtracfg/js/types/generate.ts index 0ff8d08..a9d24a9 100644 --- a/libxtracfg/js/types/generate.ts +++ b/libxtracfg/js/types/generate.ts @@ -1,10 +1,10 @@ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs"; import { dirname } from "path"; -import { generateJsonSchema } from "./generate-json-schema.ts"; -import { generateJsValidators } from "./generate-js-validators.ts"; +import { generateJsonSchema } from "./json-schema/index.ts"; +import { generateJsValidators } from "./js/index.ts"; import { generateJavaClasses } from "./generate-java-classes.ts"; -import { generateGoStructs } from "./generate-go-structs.ts"; +import { generateGoStructs } from "./go/index.ts"; const basePath = "./src/gen"; const javaBasePath = "../../java/src/main/java"; diff --git a/libxtracfg/js/types/generate-go-structs.ts b/libxtracfg/js/types/go/index.ts similarity index 100% rename from libxtracfg/js/types/generate-go-structs.ts rename to libxtracfg/js/types/go/index.ts diff --git a/libxtracfg/js/types/java/data.ts b/libxtracfg/js/types/java/data.ts new file mode 100644 index 0000000..a403a2a --- /dev/null +++ b/libxtracfg/js/types/java/data.ts @@ -0,0 +1,162 @@ +import { Definition } from "typescript-json-schema"; + +import { + Defs, + defs, + firstLetterUpperCase, + Generator, + getDefault, + getValue, + isConst, + isEnum, +} from "../common/index.ts"; +import { getType } from "./index.ts"; + +//TODO: use records +export const generateDataClass = + (schema: Definition, suffixNs: string[] = [], intface?: string): Generator => + (name: string, pkg: string): string => { + const properties = schema.properties || {}; + const props = defs(properties); + + let code = ` +package ${pkg}; + +public class ${name}${intface ? ` implements ${intface}` : ""} { + `; + for (const [key, entry] of props) { + code += ` + private final ${getType(entry, suffixNs)} ${key};`; + } + + code += ` + + public ${name}(`; + let i = 0; + for (const [key, entry] of props) { + i++; + if (isConst(entry)) { + continue; + } + const comma = i <= Object.keys(properties).length - 1 ? "," : ""; + code += ` + ${getType(entry, suffixNs)} ${key}${comma}`; + } + + code += ` + ) {`; + for (const [key, entry] of props) { + if (isConst(entry)) { + code += ` + this.${key} = ${getValue(entry)};`; + continue; + } + if (Object.hasOwn(entry, "default")) { + code += ` + this.${key} = Object.requireNonNullElse(${key},${getDefault(entry)});`; + } else { + code += ` + this.${key} = ${key};`; + } + } + + code += ` + } + `; + for (const [key, entry] of props) { + code += ` + public ${getType(entry, suffixNs)} get${firstLetterUpperCase(key)}() { + return ${key}; + } + `; + } + + code += ` +} + + `; + + return code; + }; + +export const generateInterface = + ( + schema: Definition, + suffixNs: string[], + discriminators: { [key: string]: string }, + discriminatorKey?: string + ): Generator => + (name: string, pkg: string): string => { + const properties = schema.properties || {}; + + let code = ` +package ${pkg}; + `; + + if (discriminatorKey) { + code += ` +import shadow.com.fasterxml.jackson.annotation.JsonSubTypes; +import shadow.com.fasterxml.jackson.annotation.JsonTypeInfo; + +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "${discriminatorKey}", visible = true) +@JsonSubTypes({`; + for (const [key, value] of Object.entries(discriminators)) { + code += ` + @JsonSubTypes.Type(value = ${key}.class, name = ${value}),`; + } + + code += ` +})`; + } + + code += ` +public interface ${name} { + `; + for (const [key, entry] of Object.entries(properties)) { + code += ` +${getType(entry, suffixNs)} get${firstLetterUpperCase(key)}(); + `; + } + + code += ` +} + `; + + return code; + }; + +export const generateIdentifiersClass = + (consts: Defs, enums: Defs, suffixNs: string[]): Generator => + (name: string, pkg: string): string => { + //const properties = schema.properties || {}; + + let code = ` +package ${pkg}; + +public interface ${name} { + `; + for (const [key, entry] of consts) { + if (!isConst(entry)) { + continue; + } + code += ` + ${getType(entry, suffixNs)} ${key} = ${getValue(entry)};`; + } + + code += ` +`; + + for (const [key, entry] of enums) { + if (!isEnum(entry)) { + continue; + } + code += ` + enum ${key} { ${entry["enum"]?.join(", ")} };`; + } + + code += ` +} +`; + + return code; + }; diff --git a/libxtracfg/js/types/java/index.ts b/libxtracfg/js/types/java/index.ts new file mode 100644 index 0000000..b249e3a --- /dev/null +++ b/libxtracfg/js/types/java/index.ts @@ -0,0 +1,181 @@ +import { Definition, DefinitionOrBoolean } from "typescript-json-schema"; + +import { + firstLetterUpperCase, + constsPath, + enumsPath, + Generator, + Defs, + constsNs, + enumsNs, + defs, + getValue, +} from "../common/index.ts"; +import { Result } from "../generate.ts"; +import { + generateDataClass, + generateIdentifiersClass, + generateInterface, +} from "./data.ts"; + +//TODO: remove suffixNs +export const generateJava = ( + name: string, + schema: Definition, + pkg: string, + dataNs: string[], + suffixNs: string[], + onNs: (ns: string, nsInterface?: string, nsInterfaceDef?: Definition) => void, + onClass: (ns: string, name: string, def?: any) => void +): Result => { + const definitions = schema.definitions || {}; + let consts: Defs = []; + let enums: Defs = []; + const result: Result = { name, files: [] }; + + for (const [ns, entries] of Object.entries(definitions)) { + if (ns === constsNs) { + consts = defs(entries); + continue; + } + if (ns === enumsNs) { + enums = defs(entries); + continue; + } + let nsInterface: string | undefined; + let nsInterfaceDef: Definition | undefined; + let nsDiscriminator: string | undefined; + let nsDiscriminators: { [key: string]: string } = {}; + + for (const [key, def] of Object.entries(entries)) { + if (dataNs.includes(ns) && def && def.interface) { + nsInterface = getName(key, ns, suffixNs); + nsInterfaceDef = def as Definition; + if (def.discriminator) { + nsDiscriminator = def.discriminator as string; + } + } + } + + onNs(ns, nsInterface, nsInterfaceDef); + + for (const [key, def] of Object.entries(entries)) { + if (dataNs.includes(ns) && def && !def.interface) { + if ( + nsDiscriminator && + def.properties && + def.properties[nsDiscriminator] + ) { + nsDiscriminators[getName(key, ns, suffixNs)] = getValue( + def.properties[nsDiscriminator], + true + ); + } + + onClass(ns, getName(key, ns, suffixNs), def); + + result.files.push( + generateClass( + getName(key, ns, suffixNs), + pkg, + generateDataClass(def, suffixNs, nsInterface) + ) + ); + } + } + if (nsInterface) { + result.files.push( + generateClass( + nsInterface, + pkg, + generateInterface( + nsInterfaceDef as Definition, + suffixNs, + nsDiscriminators, + nsDiscriminator + ) + ) + ); + } + } + + result.files.push( + generateClass( + "Identifiers", + pkg, + generateIdentifiersClass(consts, enums, suffixNs) + ) + ); + + return result; +}; + +const getName = (name: string, ns: string, suffixNs: string[]) => { + return suffixNs.includes(ns) && name !== ns ? name + ns : name; +}; + +const identifiersPrefix = "Identifiers."; + +export const generateClass = ( + name: string, + pkg: string, + generate: Generator +) => { + const dir = pkg.replaceAll(".", "/"); + const code = generate(name, pkg); + + return { path: `${dir}/${name}.java`, content: code }; +}; + +export const getType = ( + schema: DefinitionOrBoolean, + suffixNs: string[] +): string => { + if (typeof schema === "boolean") { + return "boolean"; + } + if (schema.type) { + if (schema.type === "object" && !schema.properties) { + return "java.util.Map"; + } + if (schema.type === "array" && schema.items) { + return `java.util.List<${getType( + schema.items as DefinitionOrBoolean, + suffixNs + )}>`; + } + const type = + schema.type === "integer" + ? "int" + : schema.type === "number" + ? "double" + : schema.type === "boolean" + ? "boolean" + : "String"; + if (Object.hasOwn(schema, "optional")) { + return `java.util.Optional<${firstLetterUpperCase(type)}>`; + } + return firstLetterUpperCase(schema.type as string); + } + if (schema.$ref) { + if (schema.$ref.includes(constsPath)) { + return "String"; + } + let type = schema.$ref.substring(schema.$ref.lastIndexOf("/") + 1); + if (type.includes(".")) { + type = type.substring(0, type.lastIndexOf(".")); + } + const prefix = schema.$ref.includes(enumsPath) ? identifiersPrefix : ""; + const suffix = + suffixNs.find((ns) => type !== ns && schema.$ref?.includes(`/${ns}/`)) || + ""; + type = `${prefix}${type}${suffix}`; + + if (Object.hasOwn(schema, "optional")) { + return `java.util.Optional<${type}>`; + } + return type; + } + + return ""; +}; diff --git a/libxtracfg/js/types/generate-js-validators.ts b/libxtracfg/js/types/js/index.ts similarity index 97% rename from libxtracfg/js/types/generate-js-validators.ts rename to libxtracfg/js/types/js/index.ts index 6ce8d90..0cb9bd7 100644 --- a/libxtracfg/js/types/generate-js-validators.ts +++ b/libxtracfg/js/types/js/index.ts @@ -2,8 +2,9 @@ import { Definition } from "typescript-json-schema"; import { validationKeywordsBoolean, validationKeywordsString, -} from "./generate-json-schema.ts"; +} from "../json-schema/index.ts"; +//TODO: configurable settings export const generateJsValidators = (schema: Definition) => { const code = generateValidators(schema); diff --git a/libxtracfg/js/types/generate-json-schema.ts b/libxtracfg/js/types/json-schema/index.ts similarity index 98% rename from libxtracfg/js/types/generate-json-schema.ts rename to libxtracfg/js/types/json-schema/index.ts index 2a1d936..473cd9c 100644 --- a/libxtracfg/js/types/generate-json-schema.ts +++ b/libxtracfg/js/types/json-schema/index.ts @@ -1,6 +1,7 @@ import { resolve } from "path"; import * as TJS from "typescript-json-schema"; +//TODO: configurable settings export const generateJsonSchema = () => { const schema = generate(); console.log(schema.string); diff --git a/libxtracfg/js/types/package-lock.json b/libxtracfg/js/types/package-lock.json index 6bfd2ba..47e47e0 100644 --- a/libxtracfg/js/types/package-lock.json +++ b/libxtracfg/js/types/package-lock.json @@ -13,6 +13,7 @@ }, "devDependencies": { "@tsconfig/node20": "^20.1.4", + "@tsconfig/node22": "^22.0.0", "tsx": "^4.7.2", "typescript-json-schema": "^0.65.1" } @@ -501,6 +502,13 @@ "dev": true, "license": "MIT" }, + "node_modules/@tsconfig/node22": { + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/@tsconfig/node22/-/node22-22.0.0.tgz", + "integrity": "sha512-twLQ77zevtxobBOD4ToAtVmuYrpeYUh3qh+TEp+08IWhpsrIflVHqQ1F1CiPxQGL7doCdBIOOCF+1Tm833faNg==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", diff --git a/libxtracfg/js/types/package.json b/libxtracfg/js/types/package.json index 9304f10..8f36807 100644 --- a/libxtracfg/js/types/package.json +++ b/libxtracfg/js/types/package.json @@ -11,11 +11,11 @@ "parse": "tsx ./generate.ts" }, "devDependencies": { - "@tsconfig/node20": "^20.1.4", - "tsx": "^4.7.2", - "typescript-json-schema": "^0.65.1" + "@tsconfig/node22": "^22.0.0", + "tsx": "^4.7.2" }, "dependencies": { - "ajv": "^8.17.1" + "ajv": "^8.17.1", + "typescript-json-schema": "^0.65.1" } } diff --git a/libxtracfg/js/types/tsconfig.json b/libxtracfg/js/types/tsconfig.json index e6f0651..5fcc6ee 100644 --- a/libxtracfg/js/types/tsconfig.json +++ b/libxtracfg/js/types/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "@tsconfig/node20/tsconfig.json", + "extends": "@tsconfig/node22/tsconfig.json", "include": ["**/*.ts"], "compilerOptions": { "rootDir": "./" /* Specify the root folder within your source files. */, From 6569161f4e0b5a069239c608638dc5b259925801 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Thu, 2 Jan 2025 17:48:26 +0100 Subject: [PATCH 109/167] records --- libxtracfg/js/types/java/data.ts | 92 +++++++++++++++++++++++++------ libxtracfg/js/types/java/index.ts | 4 +- 2 files changed, 78 insertions(+), 18 deletions(-) diff --git a/libxtracfg/js/types/java/data.ts b/libxtracfg/js/types/java/data.ts index a403a2a..b061cf2 100644 --- a/libxtracfg/js/types/java/data.ts +++ b/libxtracfg/js/types/java/data.ts @@ -12,7 +12,67 @@ import { } from "../common/index.ts"; import { getType } from "./index.ts"; -//TODO: use records +export const generateDataRecord = + (schema: Definition, suffixNs: string[] = [], intface?: string): Generator => + (name: string, pkg: string): string => { + const properties = schema.properties || {}; + const props = defs(properties); + + let code = ` +package ${pkg}; + +public record ${name}(`; + let i = 0; + for (const [key, entry] of props) { + i++; + /*if (isConst(entry)) { + continue; + }*/ + const comma = i <= Object.keys(properties).length - 1 ? "," : ""; + code += ` + ${getType(entry, suffixNs)} ${key}${comma}`; + } + + code += ` + )${intface ? ` implements ${intface}` : ""} { + +public ${name}(`; + let j = 0; + for (const [key, entry] of props) { + j++; + /*if (isConst(entry)) { + continue; + }*/ + const comma = j <= Object.keys(properties).length - 1 ? "," : ""; + code += ` + ${getType(entry, suffixNs)} ${key}${comma}`; + } + + code += ` +) {`; + for (const [key, entry] of props) { + if (isConst(entry)) { + code += ` + this.${key} = ${getValue(entry)};`; + continue; + } + if (Object.hasOwn(entry, "default")) { + code += ` + this.${key} = Object.requireNonNullElse(${key},${getDefault(entry)});`; + } else { + code += ` + this.${key} = ${key};`; + } + } + + code += ` +} +} + `; + + return code; + }; + export const generateDataClass = (schema: Definition, suffixNs: string[] = [], intface?: string): Generator => (name: string, pkg: string): string => { @@ -23,15 +83,15 @@ export const generateDataClass = package ${pkg}; public class ${name}${intface ? ` implements ${intface}` : ""} { - `; + `; for (const [key, entry] of props) { code += ` - private final ${getType(entry, suffixNs)} ${key};`; +private final ${getType(entry, suffixNs)} ${key};`; } code += ` - public ${name}(`; +public ${name}(`; let i = 0; for (const [key, entry] of props) { i++; @@ -40,41 +100,41 @@ public class ${name}${intface ? ` implements ${intface}` : ""} { } const comma = i <= Object.keys(properties).length - 1 ? "," : ""; code += ` - ${getType(entry, suffixNs)} ${key}${comma}`; + ${getType(entry, suffixNs)} ${key}${comma}`; } code += ` - ) {`; +) {`; for (const [key, entry] of props) { if (isConst(entry)) { code += ` - this.${key} = ${getValue(entry)};`; + this.${key} = ${getValue(entry)};`; continue; } if (Object.hasOwn(entry, "default")) { code += ` - this.${key} = Object.requireNonNullElse(${key},${getDefault(entry)});`; + this.${key} = Object.requireNonNullElse(${key},${getDefault(entry)});`; } else { code += ` - this.${key} = ${key};`; + this.${key} = ${key};`; } } code += ` - } - `; +} + `; for (const [key, entry] of props) { code += ` - public ${getType(entry, suffixNs)} get${firstLetterUpperCase(key)}() { - return ${key}; - } - `; +public ${getType(entry, suffixNs)} get${firstLetterUpperCase(key)}() { + return ${key}; +} + `; } code += ` } - `; + `; return code; }; diff --git a/libxtracfg/js/types/java/index.ts b/libxtracfg/js/types/java/index.ts index b249e3a..9bccee1 100644 --- a/libxtracfg/js/types/java/index.ts +++ b/libxtracfg/js/types/java/index.ts @@ -13,7 +13,7 @@ import { } from "../common/index.ts"; import { Result } from "../generate.ts"; import { - generateDataClass, + generateDataRecord, generateIdentifiersClass, generateInterface, } from "./data.ts"; @@ -78,7 +78,7 @@ export const generateJava = ( generateClass( getName(key, ns, suffixNs), pkg, - generateDataClass(def, suffixNs, nsInterface) + generateDataRecord(def, suffixNs, nsInterface) ) ); } From 7dbe73446b10a3701b03a82d12999f7c29084d26 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Thu, 2 Jan 2025 18:02:23 +0100 Subject: [PATCH 110/167] records --- libxtracfg/js/types/java/data.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/libxtracfg/js/types/java/data.ts b/libxtracfg/js/types/java/data.ts index b061cf2..fc32399 100644 --- a/libxtracfg/js/types/java/data.ts +++ b/libxtracfg/js/types/java/data.ts @@ -58,7 +58,9 @@ public ${name}(`; } if (Object.hasOwn(entry, "default")) { code += ` - this.${key} = Object.requireNonNullElse(${key},${getDefault(entry)});`; + this.${key} = java.util.Objects.requireNonNullElse(${key},${getDefault( + entry + )});`; } else { code += ` this.${key} = ${key};`; @@ -113,7 +115,9 @@ public ${name}(`; } if (Object.hasOwn(entry, "default")) { code += ` - this.${key} = Object.requireNonNullElse(${key},${getDefault(entry)});`; + this.${key} = java.util.Objects.requireNonNullElse(${key},${getDefault( + entry + )});`; } else { code += ` this.${key} = ${key};`; @@ -125,7 +129,7 @@ public ${name}(`; `; for (const [key, entry] of props) { code += ` -public ${getType(entry, suffixNs)} get${firstLetterUpperCase(key)}() { +public ${getType(entry, suffixNs)} ${key}() { return ${key}; } `; @@ -174,7 +178,7 @@ public interface ${name} { `; for (const [key, entry] of Object.entries(properties)) { code += ` -${getType(entry, suffixNs)} get${firstLetterUpperCase(key)}(); +${getType(entry, suffixNs)} ${key}(); `; } From 1d593e4fa5b2a7ce7a6fb571822ff56a0b4c6dec Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Thu, 2 Jan 2025 18:18:59 +0100 Subject: [PATCH 111/167] records --- libxtracfg/js/types/generate-java-classes.ts | 4 +-- libxtracfg/js/types/java/data.ts | 28 +++++++++++++++----- libxtracfg/js/types/src/index.ts | 8 +++--- 3 files changed, 27 insertions(+), 13 deletions(-) diff --git a/libxtracfg/js/types/generate-java-classes.ts b/libxtracfg/js/types/generate-java-classes.ts index 09a2e80..d83fb95 100644 --- a/libxtracfg/js/types/generate-java-classes.ts +++ b/libxtracfg/js/types/generate-java-classes.ts @@ -129,7 +129,7 @@ public abstract class Handler {}); + ${result} result = handle(new ${initCommand}(command.options()), false, ignore -> {}); if (result instanceof ${failure}) { return result; @@ -155,7 +155,7 @@ public abstract class Handler Date: Thu, 2 Jan 2025 18:23:54 +0100 Subject: [PATCH 112/167] records --- libxtracfg/js/types/src/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libxtracfg/js/types/src/index.ts b/libxtracfg/js/types/src/index.ts index 2de852f..157e12e 100644 --- a/libxtracfg/js/types/src/index.ts +++ b/libxtracfg/js/types/src/index.ts @@ -69,9 +69,9 @@ export namespace Command { //TODO: should be abstract so that it cannot be instantiated, but that breaks the JSON schema generation export class Base { readonly command: Enums.Main; - readonly options: Options.Options; + readonly options: Options.Base; - constructor(command: Enums.Main, options: Options.Options) { + constructor(command: Enums.Main, options: Options.Base) { this.command = command; this.options = options; } From fd83a2a870d7c37e752638a1f2cfb8fd4a9125ba Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Thu, 2 Jan 2025 18:26:27 +0100 Subject: [PATCH 113/167] records --- libxtracfg/js/types/generate-java-classes.ts | 3 ++- libxtracfg/js/types/src/index.ts | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/libxtracfg/js/types/generate-java-classes.ts b/libxtracfg/js/types/generate-java-classes.ts index d83fb95..f6f7675 100644 --- a/libxtracfg/js/types/generate-java-classes.ts +++ b/libxtracfg/js/types/generate-java-classes.ts @@ -6,6 +6,7 @@ import { generateClass, generateJava } from "./java/index.ts"; const dataNs = ["Command", "Options", "Result"]; const suffixNs = ["Command", "Options"]; const commandNs = "Command"; +const baseOptions = "BaseOptions"; const baseResult = "BaseResult"; const failureResult = "FailureResult"; @@ -129,7 +130,7 @@ public abstract class Handler {}); + ${result} result = handle(new ${initCommand}((${baseOptions})command.options()), false, ignore -> {}); if (result instanceof ${failure}) { return result; diff --git a/libxtracfg/js/types/src/index.ts b/libxtracfg/js/types/src/index.ts index 157e12e..2de852f 100644 --- a/libxtracfg/js/types/src/index.ts +++ b/libxtracfg/js/types/src/index.ts @@ -69,9 +69,9 @@ export namespace Command { //TODO: should be abstract so that it cannot be instantiated, but that breaks the JSON schema generation export class Base { readonly command: Enums.Main; - readonly options: Options.Base; + readonly options: Options.Options; - constructor(command: Enums.Main, options: Options.Base) { + constructor(command: Enums.Main, options: Options.Options) { this.command = command; this.options = options; } From 887625194bddfad0ebb6a419cc6474c31c3f7d54 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Thu, 2 Jan 2025 18:28:58 +0100 Subject: [PATCH 114/167] records --- libxtracfg/js/types/generate-java-classes.ts | 3 +-- libxtracfg/js/types/src/index.ts | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/libxtracfg/js/types/generate-java-classes.ts b/libxtracfg/js/types/generate-java-classes.ts index f6f7675..d83fb95 100644 --- a/libxtracfg/js/types/generate-java-classes.ts +++ b/libxtracfg/js/types/generate-java-classes.ts @@ -6,7 +6,6 @@ import { generateClass, generateJava } from "./java/index.ts"; const dataNs = ["Command", "Options", "Result"]; const suffixNs = ["Command", "Options"]; const commandNs = "Command"; -const baseOptions = "BaseOptions"; const baseResult = "BaseResult"; const failureResult = "FailureResult"; @@ -130,7 +129,7 @@ public abstract class Handler {}); + ${result} result = handle(new ${initCommand}(command.options()), false, ignore -> {}); if (result instanceof ${failure}) { return result; diff --git a/libxtracfg/js/types/src/index.ts b/libxtracfg/js/types/src/index.ts index 2de852f..3a4cf2e 100644 --- a/libxtracfg/js/types/src/index.ts +++ b/libxtracfg/js/types/src/index.ts @@ -82,9 +82,9 @@ export namespace Command { */ export class Connect extends Base { declare readonly command: Enums.Main.Connect; - declare readonly options: Options.Base; + declare readonly options: Options.Options; - constructor(options: Options.Base = {}) { + constructor(options: Options.Options = {}) { super(Enums.Main.Connect, options); } } From 545d60998d43be7ccac1ce4ca2020ea8186fdabd Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Tue, 7 Jan 2025 08:28:41 +0100 Subject: [PATCH 115/167] go --- libxtracfg/go/go.mod | 8 + libxtracfg/go/go.sum | 10 + libxtracfg/go/handler/handler.go | 35 +++ libxtracfg/go/handler/handler_test.go | 128 ++++++++ libxtracfg/js/types/common/index.ts | 107 ++++++- libxtracfg/js/types/generate-java-classes.ts | 7 +- libxtracfg/js/types/generate.ts | 53 +--- libxtracfg/js/types/go/index.ts | 290 ++++++++++++++++++- libxtracfg/js/types/java/data.ts | 56 +++- libxtracfg/js/types/java/index.ts | 63 +--- libxtracfg/js/types/json-schema/index.ts | 25 +- libxtracfg/js/types/src/index.ts | 35 ++- 12 files changed, 667 insertions(+), 150 deletions(-) create mode 100644 libxtracfg/go/handler/handler.go create mode 100644 libxtracfg/go/handler/handler_test.go diff --git a/libxtracfg/go/go.mod b/libxtracfg/go/go.mod index 5134f27..aa431d0 100644 --- a/libxtracfg/go/go.mod +++ b/libxtracfg/go/go.mod @@ -1,3 +1,11 @@ module github.com/interactive-instruments/xtraplatform-cli/libxtracfg/go go 1.23.2 + +require github.com/stretchr/testify v1.10.0 + +require ( + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect +) diff --git a/libxtracfg/go/go.sum b/libxtracfg/go/go.sum index e69de29..713a0b4 100644 --- a/libxtracfg/go/go.sum +++ b/libxtracfg/go/go.sum @@ -0,0 +1,10 @@ +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/libxtracfg/go/handler/handler.go b/libxtracfg/go/handler/handler.go new file mode 100644 index 0000000..f12ba7a --- /dev/null +++ b/libxtracfg/go/handler/handler.go @@ -0,0 +1,35 @@ +package handler + +import ( + "encoding/json" + "fmt" + + "github.com/interactive-instruments/xtraplatform-cli/libxtracfg/go/gen" +) + +type Client struct { + Send func(request []byte) (response []byte) +} + +func (client Client) Execute(command gen.Command) (result *gen.Result, err error) { + if !command.IsCommand() { + return nil, fmt.Errorf("invalid command: %v", command) + } + + request, err := json.Marshal(command) + + if err != nil { + return nil, fmt.Errorf("failed to marshal the request body: %w", err) + } + + response := client.Send(request) + + result = &gen.Result{} + err = json.Unmarshal(response, result) + + if err != nil { + return nil, fmt.Errorf("failed to read the response body: %w", err) + } + + return result, nil +} diff --git a/libxtracfg/go/handler/handler_test.go b/libxtracfg/go/handler/handler_test.go new file mode 100644 index 0000000..b5d71c0 --- /dev/null +++ b/libxtracfg/go/handler/handler_test.go @@ -0,0 +1,128 @@ +package handler + +import ( + "fmt" + "testing" + + "github.com/interactive-instruments/xtraplatform-cli/libxtracfg/go/gen" + "github.com/stretchr/testify/assert" +) + +type notACommand struct { +} + +func (c *notACommand) IsCommand() bool { + return false +} + +func TestInvalid(t *testing.T) { + result, err := defaultClient.Execute(¬ACommand{}) + + assert.NotNil(t, err) + assert.Nil(t, result) +} + +func TestFailure(t *testing.T) { + command := gen.NewConnect(gen.NewBase(nil, nil, nil)) + + client := Client{ + Send: func(request []byte) (response []byte) { + request2 := string(request) + + t.Logf("-> %v", request2) + + response = []byte(`{"error":"something went wrong"}`) + + t.Logf("<- %v", string(response)) + + return response + }, + } + + result, err := client.Execute(command) + + assert.Nil(t, err) + assert.NotNil(t, result) + assert.NotNil(t, result.Failure, "result.Failure") + assert.Nil(t, result.Regular, "result.Regular") + assert.Equal(t, "something went wrong", result.Error, "result.Error") + + t.Logf("regular: %v, failure: %v", result.Regular, result.Failure) +} + +func TestSuccess(t *testing.T) { + command := gen.NewConnect(gen.NewBase(nil, nil, nil)) + + client := Client{ + Send: func(request []byte) (response []byte) { + request2 := string(request) + + t.Logf("-> %v", request2) + + response = []byte(`{"messages":[{"status":"SUCCESS","text":"everything is fine"}],"details":{"foo":"bar"}}`) + + t.Logf("<- %v", string(response)) + + return response + }, + } + + result, err := client.Execute(command) + + assert.Nil(t, err) + assert.NotNil(t, result) + assert.Nil(t, result.Failure, "result.Failure") + assert.NotNil(t, result.Regular, "result.Regular") + assert.NotEmpty(t, result.Messages, "result.Messages") + assert.Equal(t, "everything is fine", result.Messages[0].Text, "result.Messages[0].Text") + assert.Equal(t, gen.MessageTypeSUCCESS, result.Messages[0].Status, "result.Messages[0].Status") + assert.Contains(t, result.Details, "foo", "result.Details") + assert.Equal(t, "bar", result.Details["foo"], "result.Details[\"foo\"]") + + t.Logf("regular: %v, failure: %v", result.Regular, result.Failure) +} + +func TestValid(t *testing.T) { + command := gen.NewConnect(gen.NewBase(nil, nil, nil)) + commandJson := `{"command":"Connect","options":{"source":"./","verbose":false,"debug":false}}` + + client := Client{ + Send: func(request []byte) (response []byte) { + request2 := string(request) + + t.Logf("-> %v", request2) + + assert.Equal(t, commandJson, request2) + + response = []byte("{}") + + t.Logf("<- %v", string(response)) + + return response + }, + } + + result, err := client.Execute(command) + + if err != nil { + t.Fatalf("expected result, got error: %v", err) + } + + t.Logf("result: %v", result) +} + +var defaultClient = Client{ + Send: request, +} + +func request(request []byte) (response []byte) { + request2 := string(request) + + fmt.Println("->", request2) + + response = []byte("{}") + + fmt.Println("<-", string(response)) + + return response +} diff --git a/libxtracfg/js/types/common/index.ts b/libxtracfg/js/types/common/index.ts index cd138c6..a16385c 100644 --- a/libxtracfg/js/types/common/index.ts +++ b/libxtracfg/js/types/common/index.ts @@ -1,8 +1,15 @@ import { Definition, DefinitionOrBoolean } from "typescript-json-schema"; +import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs"; +import { dirname } from "path"; export type Defs = [string, Definition][]; + export type Generator = (name: string, pkg: string) => string; +type Files = { path: string; content: string }[]; + +export type Result = { name: string; files: Files }; + export const defs = (entry: DefinitionOrBoolean): Defs => { return typeof entry !== "boolean" ? Object.entries(entry as Definition) : []; }; @@ -12,8 +19,106 @@ export const enumsNs = "Enums"; export const constsPath = "/Consts/"; export const enumsPath = "/Enums/"; +export enum DataType { + STRING = "string", + NUMBER = "number", + INTEGER = "integer", + BOOLEAN = "boolean", + OBJECT = "object", + ARRAY = "array", + OPTIONAL = "optional", +} + +export const write = ( + result: Result, + basePath: string, + verbose?: boolean +): boolean => { + let noChanges = true; + const messages = []; + + for (const { path, content } of result.files) { + const fullPath = `${basePath}/${path}`; + const oldContent = existsSync(fullPath) + ? readFileSync(fullPath, "utf8") + : ""; + + if (oldContent === content) { + if (verbose) messages.push(` - ${path}: NO CHANGES`); + continue; + } + + mkdirSync(dirname(fullPath), { recursive: true }); + writeFileSync(fullPath, content); + noChanges = false; + + if (verbose) messages.push(` - ${path}: UPDATED`); + } + + console.log(`- ${result.name}: ${noChanges ? "NO CHANGES" : "UPDATED"}`); + messages.forEach((msg) => console.log(msg)); + + return noChanges; +}; + +export const getType = ( + schema: DefinitionOrBoolean, + getLanguageType: (type: DataType, innerType?: string) => string, + suffixNs: string[] = [], + identifiersPrefix: string = "" +): string => { + if (typeof schema === "boolean") { + return getLanguageType(DataType.BOOLEAN); + } + if (schema.type) { + if (schema.type === "object" && !schema.properties) { + return getLanguageType(DataType.OBJECT); + } + if (schema.type === "array" && schema.items) { + return getLanguageType( + DataType.ARRAY, + getType(schema.items as DefinitionOrBoolean, getLanguageType, suffixNs) + ); + } + const type = + schema.type === "integer" + ? DataType.INTEGER + : schema.type === "number" + ? DataType.NUMBER + : schema.type === "boolean" + ? DataType.BOOLEAN + : DataType.STRING; + if (Object.hasOwn(schema, "optional")) { + return getLanguageType(DataType.OPTIONAL, getLanguageType(type)); + } + return getLanguageType(type); + } + if (schema.$ref) { + if (schema.$ref.includes(constsPath)) { + return getLanguageType(DataType.STRING); + } + let type = schema.$ref.substring(schema.$ref.lastIndexOf("/") + 1); + if (type.includes(".")) { + type = type.substring(0, type.lastIndexOf(".")); + } + const prefix = schema.$ref.includes(enumsPath) ? identifiersPrefix : ""; + const suffix = + suffixNs.find((ns) => type !== ns && schema.$ref?.includes(`/${ns}/`)) || + ""; + type = `${prefix}${type}${suffix}`; + + if (Object.hasOwn(schema, "optional")) { + return getLanguageType(DataType.OPTIONAL, type); + } + return type; + } + + return ""; +}; + export const getValue = ( schema: DefinitionOrBoolean, + prefix: string = "", stringNotEnum?: boolean ): string => { if (typeof schema === "boolean") { @@ -33,7 +138,7 @@ export const getValue = ( stringNotEnum && schema.$ref.includes(".") ? schema.$ref.substring(schema.$ref.lastIndexOf(".") + 1) : schema.$ref.substring(schema.$ref.lastIndexOf("/") + 1); - return `Identifiers.${name}`; + return `${prefix}${name}`; } return ""; }; diff --git a/libxtracfg/js/types/generate-java-classes.ts b/libxtracfg/js/types/generate-java-classes.ts index d83fb95..e95a1e4 100644 --- a/libxtracfg/js/types/generate-java-classes.ts +++ b/libxtracfg/js/types/generate-java-classes.ts @@ -1,9 +1,7 @@ import { Definition } from "typescript-json-schema"; -import { Result } from "./generate.ts"; -import { Generator } from "./common/index.ts"; +import { Generator, Result } from "./common/index.ts"; import { generateClass, generateJava } from "./java/index.ts"; -const dataNs = ["Command", "Options", "Result"]; const suffixNs = ["Command", "Options"]; const commandNs = "Command"; const baseResult = "BaseResult"; @@ -11,7 +9,8 @@ const failureResult = "FailureResult"; export const generateJavaClasses = ( schema: Definition, - pkg: string + pkg: string, + dataNs: string[] ): Result => { const commands: string[] = []; let initCommand: string | undefined; diff --git a/libxtracfg/js/types/generate.ts b/libxtracfg/js/types/generate.ts index a9d24a9..fa3f117 100644 --- a/libxtracfg/js/types/generate.ts +++ b/libxtracfg/js/types/generate.ts @@ -1,27 +1,28 @@ -import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs"; -import { dirname } from "path"; +import { mkdirSync } from "fs"; import { generateJsonSchema } from "./json-schema/index.ts"; import { generateJsValidators } from "./js/index.ts"; import { generateJavaClasses } from "./generate-java-classes.ts"; -import { generateGoStructs } from "./go/index.ts"; +import { generateGo } from "./go/index.ts"; +import { Result, write } from "./common/index.ts"; const basePath = "./src/gen"; const javaBasePath = "../../java/src/main/java"; const javaPkg = "de.ii.xtraplatform.cli.gen"; +const goBasePath = "../../go"; +const goPkg = "gen"; + +const dataNs = ["Command", "Options", "Result", "Misc"]; -type Files = { path: string; content: string }[]; -export type Result = { name: string; files: Files }; type SchemaResult = Result & { obj: any }; -//TODO: move writing here, compare with existing before writing //TODO: restructure -> xtracfg/bin, xtracfg/lib/*, gen in root? const generateAll = (verbose?: boolean) => { console.log("Generating code from TypeScript definitions"); mkdirSync(basePath, { recursive: true }); - const schema: SchemaResult = generateJsonSchema(); + const schema: SchemaResult = generateJsonSchema("JSON Schema", dataNs); write(schema, basePath, verbose); @@ -29,45 +30,13 @@ const generateAll = (verbose?: boolean) => { write(js, basePath, verbose); - const java: Result = generateJavaClasses(schema.obj, javaPkg); + const java: Result = generateJavaClasses(schema.obj, javaPkg, dataNs); write(java, javaBasePath, verbose); - const go: Result = generateGoStructs(schema.obj); - - write(go, basePath, verbose); -}; - -const write = ( - result: Result, - basePath: string, - verbose?: boolean -): boolean => { - let noChanges = true; - const messages = []; - - for (const { path, content } of result.files) { - const fullPath = `${basePath}/${path}`; - const oldContent = existsSync(fullPath) - ? readFileSync(fullPath, "utf8") - : ""; - - if (oldContent === content) { - if (verbose) messages.push(` - ${path}: NO CHANGES`); - continue; - } - - mkdirSync(dirname(fullPath), { recursive: true }); - writeFileSync(fullPath, content); - noChanges = false; - - if (verbose) messages.push(` - ${path}: UPDATED`); - } - - console.log(`- ${result.name}: ${noChanges ? "NO CHANGES" : "UPDATED"}`); - messages.forEach((msg) => console.log(msg)); + const go: Result = generateGo("Go Client", schema.obj, goPkg, dataNs); - return noChanges; + write(go, goBasePath, verbose); }; generateAll(false); diff --git a/libxtracfg/js/types/go/index.ts b/libxtracfg/js/types/go/index.ts index 6bf701b..6d22bbe 100644 --- a/libxtracfg/js/types/go/index.ts +++ b/libxtracfg/js/types/go/index.ts @@ -1,8 +1,286 @@ -import { Definition } from "typescript-json-schema"; +import { Definition, DefinitionOrBoolean } from "typescript-json-schema"; -export const generateGoStructs = (schema: Definition) => { - return { - name: "Go Client", - files: [], - }; +import { + constsNs, + DataType, + defs, + Defs, + enumsNs, + firstLetterUpperCase, + Generator, + Result, + getDefault, + getType, + getValue, + isConst, + isEnum, +} from "../common/index.ts"; + +//TODO: move +const prefixNs = { Command: "cmd-", Options: "opts-", Result: "res-" }; + +export const generateGo = ( + name: string, + schema: Definition, + pkg: string, + dataNs: string[] +) => { + const definitions = schema.definitions || {}; + let consts: Defs = []; + let enums: Defs = []; + const result: Result = { name, files: [] }; + + for (const [ns, entries] of Object.entries(definitions)) { + if (ns === constsNs) { + consts = defs(entries); + continue; + } + if (ns === enumsNs) { + enums = defs(entries); + continue; + } + let nsInterface: string | undefined; + + for (const [key, def] of Object.entries(entries)) { + if (dataNs.includes(ns) && def && def.interface) { + const intface = getName(key, ns); + + if (!def.anyOf) { + nsInterface = intface; + } + + result.files.push( + generateFile(intface, ns, pkg, generateInterface(def)) + ); + } + } + + for (const [key, def] of Object.entries(entries)) { + if (dataNs.includes(ns) && def && !def.interface) { + result.files.push( + generateFile(key, ns, pkg, generateDataStruct(def, nsInterface)) + ); + } + } + } + + result.files.push( + generateFile("consts", "", pkg + "/consts", generateConsts(consts)) + ); + + result.files.push(generateFile("enums", "", pkg, generateEnums(enums))); + + result.files.push(generateFile("util", "", pkg, generateUtil())); + + return result; +}; + +const getName = ( + name: string, + ns?: string, + prefixNs?: Record +) => { + return ns && prefixNs && prefixNs[ns] + ? `${prefixNs[ns]}${name.toLowerCase()}` + : name.toLowerCase(); }; + +const generateFile = ( + name: string, + ns: string, + pkg: string, + generate: Generator +) => { + const dir = pkg.replaceAll(".", "/"); + const file = getName(name, ns, prefixNs); + const code = generate(getName(name), pkg); + + return { path: `${dir}/${file}.go`, content: code }; +}; + +const getLanguageType = (type: DataType, innerType?: string): string => { + switch (type) { + case DataType.STRING: + return "string"; + case DataType.NUMBER: + return "float64"; + case DataType.INTEGER: + return "int"; + case DataType.BOOLEAN: + return "bool"; + case DataType.OBJECT: + return innerType || "map[string]interface{}"; + case DataType.ARRAY: + return `[]${innerType || "interface{}"}`; + case DataType.OPTIONAL: + return `*${innerType || "interface{}"}`; + } +}; + +const generateDataStruct = + (schema: Definition, intface?: string): Generator => + (nam: string, pkg: string): string => { + const properties = schema.properties || {}; + const props = defs(properties); + const toType = (entry: Definition) => getType(entry, getLanguageType); + const name = firstLetterUpperCase(nam); + + let code = ` +package ${pkg} + +type ${name} struct {`; + for (const [key, entry] of props) { + code += ` + ${firstLetterUpperCase(key)} ${toType(entry)} \`json:"${key}"\``; + } + + code += ` +} +`; + + if (intface) { + code += ` +func (self *${name}) Is${firstLetterUpperCase(intface)}() bool { + return true +} +`; + } + + code += ` +func New${name}(`; + for (const [key, entry] of props) { + if (isConst(entry)) { + continue; + } + const pointer = Object.hasOwn(entry, "default") ? "*" : ""; + code += ` + ${key} ${pointer}${toType(entry)},`; + } + + code += ` +) ${intface ? firstLetterUpperCase(intface) : `*${name}`} {`; + + for (const [key, entry] of props) { + if (Object.hasOwn(entry, "default")) { + code += ` + if ${key} == nil { ${key} = ptr(${getDefault(entry)}) }`; + } + } + + code += ` + + return &${name}{`; + for (const [key, entry] of props) { + if (isConst(entry)) { + code += ` + ${firstLetterUpperCase(key)}: ${getValue(entry).replace(".", "")},`; + continue; + } + const pointer = Object.hasOwn(entry, "default") ? "*" : ""; + code += ` + ${firstLetterUpperCase(key)}: ${pointer}${key},`; + } + + code += ` + } +} + `; + + return code; + }; + +const generateUtil = + (): Generator => + (name: string, pkg: string): string => { + let code = ` +package ${pkg} + +func ptr[T any](t T) *T { return &t } + `; + + return code; + }; + +const generateInterface = + (schema: Definition): Generator => + (nam: string, pkg: string): string => { + const toType = (entry: DefinitionOrBoolean) => + getType(entry, getLanguageType); + const name = firstLetterUpperCase(nam); + + let code = ` +package ${pkg} + `; + + if (schema.anyOf) { + code += ` +type ${name} struct {`; + + for (const def of schema.anyOf) { + code += ` + *${toType(def)}`; + } + + code += ` +} + `; + } else { + code += ` +type ${name} interface { + Is${name}() bool +} + `; + } + + return code; + }; + +const generateConsts = + (consts: Defs): Generator => + (name: string, pkg: string): string => { + const toType = (entry: Definition) => getType(entry, getLanguageType); + + let code = ` +package ${name} + `; + + for (const [key, entry] of consts) { + if (!isConst(entry)) { + continue; + } + code += ` +const ${key} ${toType(entry)} = ${getValue(entry)}`; + } + + code += ` + `; + + return code; + }; + +const generateEnums = + (enums: Defs): Generator => + (name: string, pkg: string): string => { + const toType = (entry: Definition) => getType(entry, getLanguageType); + + let code = ` +package ${pkg} + `; + + for (const [key, entry] of enums) { + if (!isEnum(entry)) { + continue; + } + code += ` +type ${key} string + +const ( + ${entry["enum"] + ?.map((name) => `${key}${name} ${key} = "${name}"`) + .join("\n ")} +) + `; + } + + return code; + }; diff --git a/libxtracfg/js/types/java/data.ts b/libxtracfg/js/types/java/data.ts index 4694ccf..35f34c9 100644 --- a/libxtracfg/js/types/java/data.ts +++ b/libxtracfg/js/types/java/data.ts @@ -1,22 +1,48 @@ -import { Definition } from "typescript-json-schema"; +import { Definition, DefinitionOrBoolean } from "typescript-json-schema"; import { + DataType, Defs, defs, firstLetterUpperCase, Generator, getDefault, + getType, getValue, isConst, isEnum, } from "../common/index.ts"; -import { getType } from "./index.ts"; + +const identifiersPrefix = "Identifiers."; + +const getLanguageTypeJava = (type: DataType, innerType?: string): string => { + switch (type) { + case DataType.STRING: + return "String"; + case DataType.NUMBER: + return "Double"; + case DataType.INTEGER: + return "Integer"; + case DataType.BOOLEAN: + return "Boolean"; + case DataType.OBJECT: + return "java.util.Map"; + case DataType.ARRAY: + return `java.util.List<${innerType || "Object"}>`; + case DataType.OPTIONAL: + return `java.util.Optional<${innerType || "Object"}>`; + default: + return "String"; + } +}; export const generateDataRecord = (schema: Definition, suffixNs: string[] = [], intface?: string): Generator => (name: string, pkg: string): string => { const properties = schema.properties || {}; const props = defs(properties); + const toType = (entry: Definition) => + getType(entry, getLanguageTypeJava, suffixNs, identifiersPrefix); let code = ` package ${pkg}; @@ -30,7 +56,7 @@ public record ${name}(`; } const comma = i <= Object.keys(properties).length - 1 ? "," : ""; code += ` - ${getType(entry, suffixNs)} ${key}${comma}`; + ${toType(entry)} ${key}${comma}`; } code += ` @@ -45,7 +71,7 @@ public ${name}(`; } const comma = j <= Object.keys(properties).length - 1 ? "," : ""; code += ` - ${getType(entry, suffixNs)} ${key}${comma}`; + ${toType(entry)} ${key}${comma}`; } code += ` @@ -74,8 +100,8 @@ public ${name}(`; for (const [key, entry] of props) { if (isConst(entry)) { code += ` -public ${getType(entry, suffixNs)} ${key}() { - return ${getValue(entry)}; +public ${toType(entry)} ${key}() { + return ${getValue(entry, identifiersPrefix)}; } `; } @@ -94,6 +120,8 @@ export const generateDataClass = (name: string, pkg: string): string => { const properties = schema.properties || {}; const props = defs(properties); + const toType = (entry: Definition) => + getType(entry, getLanguageTypeJava, suffixNs, identifiersPrefix); let code = ` package ${pkg}; @@ -102,7 +130,7 @@ public class ${name}${intface ? ` implements ${intface}` : ""} { `; for (const [key, entry] of props) { code += ` -private final ${getType(entry, suffixNs)} ${key};`; +private final ${toType(entry)} ${key};`; } code += ` @@ -116,7 +144,7 @@ public ${name}(`; } const comma = i <= Object.keys(properties).length - 1 ? "," : ""; code += ` - ${getType(entry, suffixNs)} ${key}${comma}`; + ${toType(entry)} ${key}${comma}`; } code += ` @@ -124,7 +152,7 @@ public ${name}(`; for (const [key, entry] of props) { if (isConst(entry)) { code += ` - this.${key} = ${getValue(entry)};`; + this.${key} = ${getValue(entry, identifiersPrefix)};`; continue; } if (Object.hasOwn(entry, "default")) { @@ -143,7 +171,7 @@ public ${name}(`; `; for (const [key, entry] of props) { code += ` -public ${getType(entry, suffixNs)} ${key}() { +public ${toType(entry)} ${key}() { return ${key}; } `; @@ -166,6 +194,8 @@ export const generateInterface = ): Generator => (name: string, pkg: string): string => { const properties = schema.properties || {}; + const toType = (entry: DefinitionOrBoolean) => + getType(entry, getLanguageTypeJava, suffixNs, identifiersPrefix); let code = ` package ${pkg}; @@ -192,7 +222,7 @@ public interface ${name} { `; for (const [key, entry] of Object.entries(properties)) { code += ` -${getType(entry, suffixNs)} ${key}(); +${toType(entry)} ${key}(); `; } @@ -207,6 +237,8 @@ export const generateIdentifiersClass = (consts: Defs, enums: Defs, suffixNs: string[]): Generator => (name: string, pkg: string): string => { //const properties = schema.properties || {}; + const toType = (entry: Definition) => + getType(entry, getLanguageTypeJava, suffixNs, identifiersPrefix); let code = ` package ${pkg}; @@ -218,7 +250,7 @@ public interface ${name} { continue; } code += ` - ${getType(entry, suffixNs)} ${key} = ${getValue(entry)};`; + ${toType(entry)} ${key} = ${getValue(entry)};`; } code += ` diff --git a/libxtracfg/js/types/java/index.ts b/libxtracfg/js/types/java/index.ts index 9bccee1..c7d87c7 100644 --- a/libxtracfg/js/types/java/index.ts +++ b/libxtracfg/js/types/java/index.ts @@ -1,17 +1,14 @@ -import { Definition, DefinitionOrBoolean } from "typescript-json-schema"; +import { Definition } from "typescript-json-schema"; import { - firstLetterUpperCase, - constsPath, - enumsPath, Generator, Defs, + Result, constsNs, enumsNs, defs, getValue, } from "../common/index.ts"; -import { Result } from "../generate.ts"; import { generateDataRecord, generateIdentifiersClass, @@ -68,6 +65,7 @@ export const generateJava = ( ) { nsDiscriminators[getName(key, ns, suffixNs)] = getValue( def.properties[nsDiscriminator], + "", true ); } @@ -114,8 +112,6 @@ const getName = (name: string, ns: string, suffixNs: string[]) => { return suffixNs.includes(ns) && name !== ns ? name + ns : name; }; -const identifiersPrefix = "Identifiers."; - export const generateClass = ( name: string, pkg: string, @@ -126,56 +122,3 @@ export const generateClass = ( return { path: `${dir}/${name}.java`, content: code }; }; - -export const getType = ( - schema: DefinitionOrBoolean, - suffixNs: string[] -): string => { - if (typeof schema === "boolean") { - return "boolean"; - } - if (schema.type) { - if (schema.type === "object" && !schema.properties) { - return "java.util.Map"; - } - if (schema.type === "array" && schema.items) { - return `java.util.List<${getType( - schema.items as DefinitionOrBoolean, - suffixNs - )}>`; - } - const type = - schema.type === "integer" - ? "int" - : schema.type === "number" - ? "double" - : schema.type === "boolean" - ? "boolean" - : "String"; - if (Object.hasOwn(schema, "optional")) { - return `java.util.Optional<${firstLetterUpperCase(type)}>`; - } - return firstLetterUpperCase(schema.type as string); - } - if (schema.$ref) { - if (schema.$ref.includes(constsPath)) { - return "String"; - } - let type = schema.$ref.substring(schema.$ref.lastIndexOf("/") + 1); - if (type.includes(".")) { - type = type.substring(0, type.lastIndexOf(".")); - } - const prefix = schema.$ref.includes(enumsPath) ? identifiersPrefix : ""; - const suffix = - suffixNs.find((ns) => type !== ns && schema.$ref?.includes(`/${ns}/`)) || - ""; - type = `${prefix}${type}${suffix}`; - - if (Object.hasOwn(schema, "optional")) { - return `java.util.Optional<${type}>`; - } - return type; - } - - return ""; -}; diff --git a/libxtracfg/js/types/json-schema/index.ts b/libxtracfg/js/types/json-schema/index.ts index 473cd9c..c81ab90 100644 --- a/libxtracfg/js/types/json-schema/index.ts +++ b/libxtracfg/js/types/json-schema/index.ts @@ -2,12 +2,12 @@ import { resolve } from "path"; import * as TJS from "typescript-json-schema"; //TODO: configurable settings -export const generateJsonSchema = () => { - const schema = generate(); +export const generateJsonSchema = (name: string, dataNs: string[]) => { + const schema = generate(dataNs); console.log(schema.string); return { - name: "JSON Schema", + name, obj: schema.js, files: [{ path: "api-schema.json", content: schema.string }], }; @@ -21,9 +21,11 @@ export const validationKeywordsBoolean = [ ]; export const validationKeywordsString = ["discriminator"]; -const namespaces = ["Enums", "Consts", "Options", "Command", "Result"]; +const constNs = ["Enums", "Consts"]; + +const generate = (dataNs: string[]) => { + const namespaces = [...constNs, ...dataNs]; -const generate = () => { // optionally pass argument to schema generator const settings: TJS.PartialArgs = { required: true, @@ -64,7 +66,7 @@ const generate = () => { const schema = generator.getSchemaForSymbols(symbols, true, true); - const fixedSchema = fix(schema); + const fixedSchema = fix(schema, namespaces); return { js: fixedSchema, @@ -72,7 +74,7 @@ const generate = () => { }; }; -const fix = (schema: TJS.Definition) => { +const fix = (schema: TJS.Definition, namespaces: string[]) => { const definitions = schema.definitions || {}; const newDefinitions: { [key: string]: any } = {}; namespaces.forEach((ns) => { @@ -80,7 +82,7 @@ const fix = (schema: TJS.Definition) => { }); for (const [key, value] of Object.entries(definitions)) { - handleKey(key, value, newDefinitions); + handleKey(key, value, newDefinitions, namespaces); } const newSchema = { ...schema, definitions: newDefinitions }; @@ -92,7 +94,12 @@ const fix = (schema: TJS.Definition) => { ); }; -function handleKey(key: string, value: any, newDefinitions: any) { +function handleKey( + key: string, + value: any, + newDefinitions: any, + namespaces: string[] +) { let handled = false; for (const namespace of namespaces) { diff --git a/libxtracfg/js/types/src/index.ts b/libxtracfg/js/types/src/index.ts index 3a4cf2e..b3a135b 100644 --- a/libxtracfg/js/types/src/index.ts +++ b/libxtracfg/js/types/src/index.ts @@ -18,6 +18,7 @@ export namespace Enums { } } +//TODO: java specialty? export namespace Consts { export type Connect = "Connect"; export type Info = "Info"; @@ -28,7 +29,7 @@ export namespace Options { /** * @interface true */ - export interface Options { + export class Options { /** * @default ./ */ @@ -43,9 +44,9 @@ export namespace Options { readonly debug?: boolean; } - export interface Base extends Options {} + export class Base extends Options {} - export interface Store extends Options { + export class Store extends Options { /** * @optional true */ @@ -67,7 +68,7 @@ export namespace Command { * @discriminator command */ //TODO: should be abstract so that it cannot be instantiated, but that breaks the JSON schema generation - export class Base { + export class Command { readonly command: Enums.Main; readonly options: Options.Options; @@ -80,7 +81,7 @@ export namespace Command { /** * @javaContextInit true */ - export class Connect extends Base { + export class Connect extends Command { declare readonly command: Enums.Main.Connect; declare readonly options: Options.Options; @@ -89,7 +90,7 @@ export namespace Command { } } - export class Info extends Base { + export class Info extends Command { declare readonly command: Enums.Main.Info; declare readonly options: Options.Base; @@ -98,7 +99,7 @@ export namespace Command { } } - export class Check extends Base { + export class Check extends Command { declare readonly command: Enums.Main.Check; declare readonly options: Options.Store; @@ -109,25 +110,27 @@ export namespace Command { } export namespace Result { - export interface Message { - readonly type: Enums.MessageType; - readonly text: string; - } - - export interface RegularResult { + export interface Regular { /** * @minItems 1 */ - readonly messages: Message[]; + readonly messages: Misc.Message[]; readonly details?: { [key: string]: any }; } - export interface FailureResult { + export interface Failure { readonly error: string; } /** * @interface true */ - export type BaseResult = RegularResult | FailureResult; + export type Result = Regular | Failure; +} + +export namespace Misc { + export interface Message { + readonly status: Enums.MessageType; + readonly text: string; + } } From a05579e1f296c9c194844b02afe0b2c70110117d Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Tue, 7 Jan 2025 09:03:09 +0100 Subject: [PATCH 116/167] refactor --- libxtracfg/js/types/common/index.ts | 2 + libxtracfg/js/types/generate-java-classes.ts | 3 +- libxtracfg/js/types/generate.ts | 36 ++++++++++- libxtracfg/js/types/go/index.ts | 4 +- libxtracfg/js/types/java/data.ts | 4 +- libxtracfg/js/types/java/index.ts | 3 +- libxtracfg/js/types/js/index.ts | 4 +- libxtracfg/js/types/json-schema/index.ts | 25 ++++---- libxtracfg/js/types/package-lock.json | 66 +------------------- 9 files changed, 60 insertions(+), 87 deletions(-) diff --git a/libxtracfg/js/types/common/index.ts b/libxtracfg/js/types/common/index.ts index a16385c..c2d837b 100644 --- a/libxtracfg/js/types/common/index.ts +++ b/libxtracfg/js/types/common/index.ts @@ -2,6 +2,8 @@ import { Definition, DefinitionOrBoolean } from "typescript-json-schema"; import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs"; import { dirname } from "path"; +export { Definition, DefinitionOrBoolean }; + export type Defs = [string, Definition][]; export type Generator = (name: string, pkg: string) => string; diff --git a/libxtracfg/js/types/generate-java-classes.ts b/libxtracfg/js/types/generate-java-classes.ts index e95a1e4..5ef3afa 100644 --- a/libxtracfg/js/types/generate-java-classes.ts +++ b/libxtracfg/js/types/generate-java-classes.ts @@ -1,5 +1,4 @@ -import { Definition } from "typescript-json-schema"; -import { Generator, Result } from "./common/index.ts"; +import { Definition, Generator, Result } from "./common/index.ts"; import { generateClass, generateJava } from "./java/index.ts"; const suffixNs = ["Command", "Options"]; diff --git a/libxtracfg/js/types/generate.ts b/libxtracfg/js/types/generate.ts index fa3f117..73604d9 100644 --- a/libxtracfg/js/types/generate.ts +++ b/libxtracfg/js/types/generate.ts @@ -16,13 +16,33 @@ const dataNs = ["Command", "Options", "Result", "Misc"]; type SchemaResult = Result & { obj: any }; +type GenCfg = { + basePath: string; +}; + +type GenLangCfg = GenCfg & { + pkg: string; +}; + +type Cfg = { + java?: GenLangCfg; + go?: GenLangCfg; + verbose?: boolean; +}; + //TODO: restructure -> xtracfg/bin, xtracfg/lib/*, gen in root? -const generateAll = (verbose?: boolean) => { +const generateAll = (cfg: Cfg) => { console.log("Generating code from TypeScript definitions"); + const { verbose, java: javaCfg, go: goCfg } = cfg; + mkdirSync(basePath, { recursive: true }); - const schema: SchemaResult = generateJsonSchema("JSON Schema", dataNs); + const schema: SchemaResult = generateJsonSchema( + "JSON Schema", + "./src/index.ts", + dataNs + ); write(schema, basePath, verbose); @@ -39,4 +59,14 @@ const generateAll = (verbose?: boolean) => { write(go, goBasePath, verbose); }; -generateAll(false); +generateAll({ + verbose: true, + java: { + basePath: "../../java/src/main/java", + pkg: "de.ii.xtraplatform.cli.gen", + }, + go: { + basePath: "../../go", + pkg: "gen", + }, +}); diff --git a/libxtracfg/js/types/go/index.ts b/libxtracfg/js/types/go/index.ts index 6d22bbe..0612745 100644 --- a/libxtracfg/js/types/go/index.ts +++ b/libxtracfg/js/types/go/index.ts @@ -1,9 +1,9 @@ -import { Definition, DefinitionOrBoolean } from "typescript-json-schema"; - import { constsNs, DataType, defs, + Definition, + DefinitionOrBoolean, Defs, enumsNs, firstLetterUpperCase, diff --git a/libxtracfg/js/types/java/data.ts b/libxtracfg/js/types/java/data.ts index 35f34c9..18ecc58 100644 --- a/libxtracfg/js/types/java/data.ts +++ b/libxtracfg/js/types/java/data.ts @@ -1,6 +1,6 @@ -import { Definition, DefinitionOrBoolean } from "typescript-json-schema"; - import { + Definition, + DefinitionOrBoolean, DataType, Defs, defs, diff --git a/libxtracfg/js/types/java/index.ts b/libxtracfg/js/types/java/index.ts index c7d87c7..9a0aef3 100644 --- a/libxtracfg/js/types/java/index.ts +++ b/libxtracfg/js/types/java/index.ts @@ -1,6 +1,5 @@ -import { Definition } from "typescript-json-schema"; - import { + Definition, Generator, Defs, Result, diff --git a/libxtracfg/js/types/js/index.ts b/libxtracfg/js/types/js/index.ts index 0cb9bd7..ee1bc26 100644 --- a/libxtracfg/js/types/js/index.ts +++ b/libxtracfg/js/types/js/index.ts @@ -1,4 +1,4 @@ -import { Definition } from "typescript-json-schema"; +import { Definition } from "../common/index.ts"; import { validationKeywordsBoolean, validationKeywordsString, @@ -19,7 +19,7 @@ const generateValidators = (schema: Definition) => { let code = ` import { Ajv, ValidateFunction } from "ajv"; -import schema from "./schema.json"; +import schema from "./schema.json" assert { type: "json" }; import { ${Object.keys(definitions).join(", ")} } from "../index.ts"; const ajv = new Ajv(); diff --git a/libxtracfg/js/types/json-schema/index.ts b/libxtracfg/js/types/json-schema/index.ts index c81ab90..3b11400 100644 --- a/libxtracfg/js/types/json-schema/index.ts +++ b/libxtracfg/js/types/json-schema/index.ts @@ -1,15 +1,20 @@ -import { resolve } from "path"; import * as TJS from "typescript-json-schema"; +import { resolve } from "path"; -//TODO: configurable settings -export const generateJsonSchema = (name: string, dataNs: string[]) => { - const schema = generate(dataNs); - console.log(schema.string); +import { constsNs, enumsNs } from "../common/index.ts"; + +export const generateJsonSchema = ( + name: string, + source: string, + dataNs: string[], + fileName: string = "schema" +) => { + const schema = generate(source, dataNs); return { name, obj: schema.js, - files: [{ path: "api-schema.json", content: schema.string }], + files: [{ path: `${fileName}.json`, content: schema.string }], }; }; @@ -21,10 +26,8 @@ export const validationKeywordsBoolean = [ ]; export const validationKeywordsString = ["discriminator"]; -const constNs = ["Enums", "Consts"]; - -const generate = (dataNs: string[]) => { - const namespaces = [...constNs, ...dataNs]; +const generate = (source: string, dataNs: string[]) => { + const namespaces = [constsNs, enumsNs, ...dataNs]; // optionally pass argument to schema generator const settings: TJS.PartialArgs = { @@ -47,7 +50,7 @@ const generate = (dataNs: string[]) => { }; const program = TJS.getProgramFromFiles( - [resolve("./src/index.ts")], + [resolve(source)], compilerOptions, "./" ); diff --git a/libxtracfg/js/types/package-lock.json b/libxtracfg/js/types/package-lock.json index 47e47e0..320b741 100644 --- a/libxtracfg/js/types/package-lock.json +++ b/libxtracfg/js/types/package-lock.json @@ -9,20 +9,18 @@ "version": "4.1.0", "license": "MIT", "dependencies": { - "ajv": "^8.17.1" + "ajv": "^8.17.1", + "typescript-json-schema": "^0.65.1" }, "devDependencies": { - "@tsconfig/node20": "^20.1.4", "@tsconfig/node22": "^22.0.0", - "tsx": "^4.7.2", - "typescript-json-schema": "^0.65.1" + "tsx": "^4.7.2" } }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "0.3.9" @@ -443,7 +441,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" @@ -453,14 +450,12 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.9", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", @@ -471,35 +466,24 @@ "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", - "dev": true, "license": "MIT" }, "node_modules/@tsconfig/node12": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true, "license": "MIT" }, "node_modules/@tsconfig/node14": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true, "license": "MIT" }, "node_modules/@tsconfig/node16": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@tsconfig/node20": { - "version": "20.1.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node20/-/node20-20.1.4.tgz", - "integrity": "sha512-sqgsT69YFeLWf5NtJ4Xq/xAF8p4ZQHlmGW74Nu2tD4+g5fAsposc4ZfaaPixVu4y01BEiDCWLRDCvDM5JOsRxg==", - "dev": true, "license": "MIT" }, "node_modules/@tsconfig/node22": { @@ -513,14 +497,12 @@ "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true, "license": "MIT" }, "node_modules/@types/node": { "version": "18.19.56", "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.56.tgz", "integrity": "sha512-4EMJlWwwGnVPflJAtM14p9eVSa6BOv5b92mCsh5zcM1UagNtEtrbbtaE6WE1tw2TabavatnwqXjlIpcAEuJJNg==", - "dev": true, "license": "MIT", "dependencies": { "undici-types": "~5.26.4" @@ -530,7 +512,6 @@ "version": "8.13.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.13.0.tgz", "integrity": "sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==", - "dev": true, "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -543,7 +524,6 @@ "version": "8.3.4", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", - "dev": true, "license": "MIT", "dependencies": { "acorn": "^8.11.0" @@ -572,7 +552,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -582,7 +561,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -598,21 +576,18 @@ "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true, "license": "MIT" }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, "license": "MIT" }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", @@ -623,7 +598,6 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, "license": "ISC", "dependencies": { "string-width": "^4.2.0", @@ -638,7 +612,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -651,28 +624,24 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, "license": "MIT" }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, "license": "MIT" }, "node_modules/create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true, "license": "MIT" }, "node_modules/diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" @@ -682,7 +651,6 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, "license": "MIT" }, "node_modules/esbuild": { @@ -729,7 +697,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -751,7 +718,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true, "license": "ISC" }, "node_modules/fsevents": { @@ -773,7 +739,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" @@ -797,7 +762,6 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", @@ -819,7 +783,6 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "deprecated": "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.", - "dev": true, "license": "ISC", "dependencies": { "once": "^1.3.0", @@ -830,14 +793,12 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, "license": "ISC" }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -853,14 +814,12 @@ "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true, "license": "ISC" }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" @@ -873,7 +832,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, "license": "ISC", "dependencies": { "wrappy": "1" @@ -883,14 +841,12 @@ "version": "1.2.5", "resolved": "https://registry.npmjs.org/path-equal/-/path-equal-1.2.5.tgz", "integrity": "sha512-i73IctDr3F2W+bsOWDyyVm/lqsXO47aY9nsFZUjTT/aljSbkxHxxCoyZ9UUrM8jK0JVod+An+rl48RCsvWM+9g==", - "dev": true, "license": "MIT" }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -900,7 +856,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -929,7 +884,6 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", - "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -939,7 +893,6 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -954,7 +907,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -967,7 +919,6 @@ "version": "10.9.2", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", - "dev": true, "license": "MIT", "dependencies": { "@cspotcode/source-map-support": "^0.8.0", @@ -1031,7 +982,6 @@ "version": "5.6.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", - "dev": true, "license": "Apache-2.0", "peer": true, "bin": { @@ -1046,7 +996,6 @@ "version": "0.65.1", "resolved": "https://registry.npmjs.org/typescript-json-schema/-/typescript-json-schema-0.65.1.tgz", "integrity": "sha512-tuGH7ff2jPaUYi6as3lHyHcKpSmXIqN7/mu50x3HlYn0EHzLpmt3nplZ7EuhUkO0eqDRc9GqWNkfjgBPIS9kxg==", - "dev": true, "license": "BSD-3-Clause", "dependencies": { "@types/json-schema": "^7.0.9", @@ -1066,7 +1015,6 @@ "version": "5.5.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", - "dev": true, "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", @@ -1080,21 +1028,18 @@ "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true, "license": "MIT" }, "node_modules/v8-compile-cache-lib": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true, "license": "MIT" }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", @@ -1112,14 +1057,12 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true, "license": "ISC" }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, "license": "ISC", "engines": { "node": ">=10" @@ -1129,7 +1072,6 @@ "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, "license": "MIT", "dependencies": { "cliui": "^8.0.1", @@ -1148,7 +1090,6 @@ "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, "license": "ISC", "engines": { "node": ">=12" @@ -1158,7 +1099,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, "license": "MIT", "engines": { "node": ">=6" From 256625621ddb9c197c3ba0eacdb740d8895e2e4e Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Tue, 7 Jan 2025 14:17:12 +0100 Subject: [PATCH 117/167] refactor --- libxtracfg/js/types/generate.ts | 72 ------ libxtracfg/js/types/index.ts | 32 +++ .../{generate-java-classes.ts => java.ts} | 82 +++---- libxtracfg/js/types/package.json | 4 +- libxtracfg/js/types/src/index.ts | 213 +++++++++--------- libxtracfg/js/types/test.ts | 4 +- libxtracfg/js/types/ts2x/common/index.ts | 1 + libxtracfg/js/types/ts2x/common/io.ts | 38 ++++ .../index.ts => ts2x/common/schema.ts} | 50 +--- libxtracfg/js/types/{ => ts2x}/go/index.ts | 50 ++-- libxtracfg/js/types/ts2x/index.ts | 106 +++++++++ libxtracfg/js/types/{ => ts2x}/java/data.ts | 10 +- libxtracfg/js/types/{ => ts2x}/java/index.ts | 70 ++++-- libxtracfg/js/types/{ => ts2x}/js/index.ts | 14 +- .../js/types/{ => ts2x}/json-schema/index.ts | 38 ++-- 15 files changed, 443 insertions(+), 341 deletions(-) delete mode 100644 libxtracfg/js/types/generate.ts create mode 100644 libxtracfg/js/types/index.ts rename libxtracfg/js/types/{generate-java-classes.ts => java.ts} (71%) create mode 100644 libxtracfg/js/types/ts2x/common/index.ts create mode 100644 libxtracfg/js/types/ts2x/common/io.ts rename libxtracfg/js/types/{common/index.ts => ts2x/common/schema.ts} (76%) rename libxtracfg/js/types/{ => ts2x}/go/index.ts (83%) create mode 100644 libxtracfg/js/types/ts2x/index.ts rename libxtracfg/js/types/{ => ts2x}/java/data.ts (96%) rename libxtracfg/js/types/{ => ts2x}/java/index.ts (62%) rename libxtracfg/js/types/{ => ts2x}/js/index.ts (91%) rename libxtracfg/js/types/{ => ts2x}/json-schema/index.ts (76%) diff --git a/libxtracfg/js/types/generate.ts b/libxtracfg/js/types/generate.ts deleted file mode 100644 index 73604d9..0000000 --- a/libxtracfg/js/types/generate.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { mkdirSync } from "fs"; - -import { generateJsonSchema } from "./json-schema/index.ts"; -import { generateJsValidators } from "./js/index.ts"; -import { generateJavaClasses } from "./generate-java-classes.ts"; -import { generateGo } from "./go/index.ts"; -import { Result, write } from "./common/index.ts"; - -const basePath = "./src/gen"; -const javaBasePath = "../../java/src/main/java"; -const javaPkg = "de.ii.xtraplatform.cli.gen"; -const goBasePath = "../../go"; -const goPkg = "gen"; - -const dataNs = ["Command", "Options", "Result", "Misc"]; - -type SchemaResult = Result & { obj: any }; - -type GenCfg = { - basePath: string; -}; - -type GenLangCfg = GenCfg & { - pkg: string; -}; - -type Cfg = { - java?: GenLangCfg; - go?: GenLangCfg; - verbose?: boolean; -}; - -//TODO: restructure -> xtracfg/bin, xtracfg/lib/*, gen in root? -const generateAll = (cfg: Cfg) => { - console.log("Generating code from TypeScript definitions"); - - const { verbose, java: javaCfg, go: goCfg } = cfg; - - mkdirSync(basePath, { recursive: true }); - - const schema: SchemaResult = generateJsonSchema( - "JSON Schema", - "./src/index.ts", - dataNs - ); - - write(schema, basePath, verbose); - - const js: Result = generateJsValidators(schema.obj); - - write(js, basePath, verbose); - - const java: Result = generateJavaClasses(schema.obj, javaPkg, dataNs); - - write(java, javaBasePath, verbose); - - const go: Result = generateGo("Go Client", schema.obj, goPkg, dataNs); - - write(go, goBasePath, verbose); -}; - -generateAll({ - verbose: true, - java: { - basePath: "../../java/src/main/java", - pkg: "de.ii.xtraplatform.cli.gen", - }, - go: { - basePath: "../../go", - pkg: "gen", - }, -}); diff --git a/libxtracfg/js/types/index.ts b/libxtracfg/js/types/index.ts new file mode 100644 index 0000000..4abe6f8 --- /dev/null +++ b/libxtracfg/js/types/index.ts @@ -0,0 +1,32 @@ +import { resolve } from "path"; + +import { generate } from "./ts2x/index.ts"; +import { onClass, onNamespace, getAdditional } from "./java.ts"; + +//TODO: restructure -> xtracfg/bin, xtracfg/lib/*, gen in root? + +generate({ + source: resolve("./src/index.ts"), + verbose: false, + schema: { + basePath: "./src/gen", + }, + go: { + basePath: "../../go", + pkg: "gen", + filePrefixes: { Command: "cmd-", Options: "opts-", Result: "res-" }, + }, + java: { + basePath: "../../java/src/main/java", + pkg: "de.ii.xtraplatform.cli.gen", + classSuffixes: ["Command", "Options", "Result"], + additionalClasses: getAdditional("de.ii.xtraplatform.cli.gen"), + hooks: { + onNamespace, + onClass, + }, + }, + ts: { + basePath: "./src/gen", + }, +}); diff --git a/libxtracfg/js/types/generate-java-classes.ts b/libxtracfg/js/types/java.ts similarity index 71% rename from libxtracfg/js/types/generate-java-classes.ts rename to libxtracfg/js/types/java.ts index 5ef3afa..8a40920 100644 --- a/libxtracfg/js/types/generate-java-classes.ts +++ b/libxtracfg/js/types/java.ts @@ -1,50 +1,36 @@ -import { Definition, Generator, Result } from "./common/index.ts"; -import { generateClass, generateJava } from "./java/index.ts"; +import { ClassGenerator, Definition, Generator } from "./ts2x/index.ts"; + +//TODO: generalize as java commandHandler option -const suffixNs = ["Command", "Options"]; const commandNs = "Command"; -const baseResult = "BaseResult"; +const baseResult = "Result"; const failureResult = "FailureResult"; -export const generateJavaClasses = ( - schema: Definition, - pkg: string, - dataNs: string[] -): Result => { - const commands: string[] = []; - let initCommand: string | undefined; - let baseCommand: string | undefined; - - const onNs = ( - ns: string, - nsInterface?: string, - nsInterfaceDef?: Definition - ) => { - if (ns === commandNs) { - baseCommand = nsInterface; - } - }; +const commands: string[] = []; +let initCommand: string | undefined; +let baseCommand: string | undefined; + +export const onNamespace = ( + ns: string, + nsInterface?: string, + nsInterfaceDef?: Definition +) => { + if (ns === commandNs) { + baseCommand = nsInterface; + } +}; - const onClass = (ns: string, name: string, def?: any) => { - if (ns === commandNs) { - if (def?.javaContextInit) { - initCommand = name; - } else { - commands.push(name); - } +export const onClass = (ns: string, name: string, def?: any) => { + if (ns === commandNs) { + if (def?.javaContextInit) { + initCommand = name; + } else { + commands.push(name); } - }; - - const result = generateJava( - "Java Backend", - schema, - pkg, - dataNs, - suffixNs, - onNs, - onClass - ); + } +}; +export const getAdditional = (pkg: string) => (): ClassGenerator[] => { if (!initCommand) { throw new Error("No init command found"); } @@ -52,21 +38,19 @@ export const generateJavaClasses = ( throw new Error("No base command found"); } - result.files.push( - generateClass( - "Handler", + return [ + { + name: "Handler", pkg, - generateHandler( + codeOrGenerator: generateHandler( commands, initCommand, baseCommand, baseResult, failureResult - ) - ) - ); - - return result; + ), + }, + ]; }; const generateHandler = diff --git a/libxtracfg/js/types/package.json b/libxtracfg/js/types/package.json index 8f36807..98157ab 100644 --- a/libxtracfg/js/types/package.json +++ b/libxtracfg/js/types/package.json @@ -8,11 +8,11 @@ "private": true, "scripts": { "test": "tsx ./test.ts", - "parse": "tsx ./generate.ts" + "parse": "tsx ./index.ts" }, "devDependencies": { "@tsconfig/node22": "^22.0.0", - "tsx": "^4.7.2" + "tsx": "4.19.2" }, "dependencies": { "ajv": "^8.17.1", diff --git a/libxtracfg/js/types/src/index.ts b/libxtracfg/js/types/src/index.ts index b3a135b..67c64b2 100644 --- a/libxtracfg/js/types/src/index.ts +++ b/libxtracfg/js/types/src/index.ts @@ -1,136 +1,137 @@ -export namespace Enums { - export enum Main { - Connect = "Connect", - Info = "Info", - Check = "Check", - } - export enum StoreSubs { - Cfg = "Cfg", - Entities = "Entities", - Layout = "Layout", - } - export enum MessageType { - ERROR = "ERROR", - WARNING = "WARNING", - SUCCESS = "SUCCESS", - INFO = "INFO", - CONFIRMATION = "CONFIRMATION", +export namespace Ts2x { + export namespace Enums { + export enum Main { + Connect = "Connect", + Info = "Info", + Check = "Check", + } + export enum StoreSubs { + Cfg = "Cfg", + Entities = "Entities", + Layout = "Layout", + } + export enum MessageType { + ERROR = "ERROR", + WARNING = "WARNING", + SUCCESS = "SUCCESS", + INFO = "INFO", + CONFIRMATION = "CONFIRMATION", + } } -} -//TODO: java specialty? -export namespace Consts { - export type Connect = "Connect"; - export type Info = "Info"; - export type Check = "Check"; -} + export namespace Consts { + //export type Connect = "Connect"; + //export type Info = "Info"; + //export type Check = "Check"; + } -export namespace Options { - /** - * @interface true - */ - export class Options { + export namespace Options { /** - * @default ./ + * @interface true */ - readonly source?: string; - /** - * @default false - */ - readonly verbose?: boolean; - /** - * @default false - */ - readonly debug?: boolean; - } + export class Options { + /** + * @default ./ + */ + readonly source?: string; + /** + * @default false + */ + readonly verbose?: boolean; + /** + * @default false + */ + readonly debug?: boolean; + } - export class Base extends Options {} + export class Base extends Options {} + + export class Store extends Options { + /** + * @optional true + */ + readonly subcommand?: Enums.StoreSubs; + /** + * @default false + */ + readonly ignoreRedundant?: boolean; + /** + * @optional true + */ + readonly path?: string; + } + } - export class Store extends Options { + export namespace Command { /** - * @optional true + * @interface true + * @discriminator command */ - readonly subcommand?: Enums.StoreSubs; - /** - * @default false - */ - readonly ignoreRedundant?: boolean; + //TODO: should be abstract so that it cannot be instantiated, but that breaks the JSON schema generation + export class Command { + readonly command: Enums.Main; + readonly options: Options.Options; + + constructor(command: Enums.Main, options: Options.Options) { + this.command = command; + this.options = options; + } + } + /** - * @optional true + * @javaContextInit true */ - readonly path?: string; - } -} + export class Connect extends Command { + declare readonly command: Enums.Main.Connect; + declare readonly options: Options.Options; -export namespace Command { - /** - * @interface true - * @discriminator command - */ - //TODO: should be abstract so that it cannot be instantiated, but that breaks the JSON schema generation - export class Command { - readonly command: Enums.Main; - readonly options: Options.Options; - - constructor(command: Enums.Main, options: Options.Options) { - this.command = command; - this.options = options; + constructor(options: Options.Options = {}) { + super(Enums.Main.Connect, options); + } } - } - /** - * @javaContextInit true - */ - export class Connect extends Command { - declare readonly command: Enums.Main.Connect; - declare readonly options: Options.Options; + export class Info extends Command { + declare readonly command: Enums.Main.Info; + declare readonly options: Options.Base; - constructor(options: Options.Options = {}) { - super(Enums.Main.Connect, options); + constructor(options: Options.Base = {}) { + super(Enums.Main.Info, options); + } } - } - export class Info extends Command { - declare readonly command: Enums.Main.Info; - declare readonly options: Options.Base; + export class Check extends Command { + declare readonly command: Enums.Main.Check; + declare readonly options: Options.Store; - constructor(options: Options.Base = {}) { - super(Enums.Main.Info, options); + constructor(options: Options.Store = {}) { + super(Enums.Main.Check, options); + } } } - export class Check extends Command { - declare readonly command: Enums.Main.Check; - declare readonly options: Options.Store; + export namespace Result { + export interface Regular { + /** + * @minItems 1 + */ + readonly messages: Misc.Message[]; + readonly details?: { [key: string]: any }; + } - constructor(options: Options.Store = {}) { - super(Enums.Main.Check, options); + export interface Failure { + readonly error: string; } - } -} -export namespace Result { - export interface Regular { /** - * @minItems 1 + * @interface true */ - readonly messages: Misc.Message[]; - readonly details?: { [key: string]: any }; - } - - export interface Failure { - readonly error: string; + export type Result = Regular | Failure; } - /** - * @interface true - */ - export type Result = Regular | Failure; -} - -export namespace Misc { - export interface Message { - readonly status: Enums.MessageType; - readonly text: string; + export namespace Misc { + export interface Message { + readonly status: Enums.MessageType; + readonly text: string; + } } } diff --git a/libxtracfg/js/types/test.ts b/libxtracfg/js/types/test.ts index c2b214a..6876cdb 100644 --- a/libxtracfg/js/types/test.ts +++ b/libxtracfg/js/types/test.ts @@ -1,9 +1,9 @@ -import { Command } from "./src/index.ts"; +import { Ts2x } from "./src/index.ts"; import { validateCommand } from "./src/gen/validate.ts"; const options = { source: "libxtracfg", foo: "bar" }; -const info = new Command.Connect(options); +const info = new Ts2x.Command.Connect(options); //info.command = "info"; //info.options.source = "libxtracfg"; diff --git a/libxtracfg/js/types/ts2x/common/index.ts b/libxtracfg/js/types/ts2x/common/index.ts new file mode 100644 index 0000000..e3e0bda --- /dev/null +++ b/libxtracfg/js/types/ts2x/common/index.ts @@ -0,0 +1 @@ +export type Generator = (name: string, pkg: string) => string; diff --git a/libxtracfg/js/types/ts2x/common/io.ts b/libxtracfg/js/types/ts2x/common/io.ts new file mode 100644 index 0000000..67ec3a2 --- /dev/null +++ b/libxtracfg/js/types/ts2x/common/io.ts @@ -0,0 +1,38 @@ +import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs"; +import { dirname } from "path"; + +export type File = { path: string; content: string }; + +export type Result = { name: string; files: File[] }; + +export const write = ( + result: Result, + basePath: string, + verbose?: boolean +): boolean => { + let noChanges = true; + const messages = []; + + for (const { path, content } of result.files) { + const fullPath = `${basePath}/${path}`; + const oldContent = existsSync(fullPath) + ? readFileSync(fullPath, "utf8") + : ""; + + if (oldContent === content) { + if (verbose) messages.push(` - ${path}: NO CHANGES`); + continue; + } + + mkdirSync(dirname(fullPath), { recursive: true }); + writeFileSync(fullPath, content); + noChanges = false; + + if (verbose) messages.push(` - ${path}: UPDATED`); + } + + console.log(`- ${result.name}: ${noChanges ? "NO CHANGES" : "UPDATED"}`); + messages.forEach((msg) => console.log(msg)); + + return noChanges; +}; diff --git a/libxtracfg/js/types/common/index.ts b/libxtracfg/js/types/ts2x/common/schema.ts similarity index 76% rename from libxtracfg/js/types/common/index.ts rename to libxtracfg/js/types/ts2x/common/schema.ts index c2d837b..58c54a5 100644 --- a/libxtracfg/js/types/common/index.ts +++ b/libxtracfg/js/types/ts2x/common/schema.ts @@ -1,21 +1,7 @@ import { Definition, DefinitionOrBoolean } from "typescript-json-schema"; -import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs"; -import { dirname } from "path"; - -export { Definition, DefinitionOrBoolean }; export type Defs = [string, Definition][]; -export type Generator = (name: string, pkg: string) => string; - -type Files = { path: string; content: string }[]; - -export type Result = { name: string; files: Files }; - -export const defs = (entry: DefinitionOrBoolean): Defs => { - return typeof entry !== "boolean" ? Object.entries(entry as Definition) : []; -}; - export const constsNs = "Consts"; export const enumsNs = "Enums"; export const constsPath = "/Consts/"; @@ -31,36 +17,8 @@ export enum DataType { OPTIONAL = "optional", } -export const write = ( - result: Result, - basePath: string, - verbose?: boolean -): boolean => { - let noChanges = true; - const messages = []; - - for (const { path, content } of result.files) { - const fullPath = `${basePath}/${path}`; - const oldContent = existsSync(fullPath) - ? readFileSync(fullPath, "utf8") - : ""; - - if (oldContent === content) { - if (verbose) messages.push(` - ${path}: NO CHANGES`); - continue; - } - - mkdirSync(dirname(fullPath), { recursive: true }); - writeFileSync(fullPath, content); - noChanges = false; - - if (verbose) messages.push(` - ${path}: UPDATED`); - } - - console.log(`- ${result.name}: ${noChanges ? "NO CHANGES" : "UPDATED"}`); - messages.forEach((msg) => console.log(msg)); - - return noChanges; +export const defs = (entry: DefinitionOrBoolean): Defs => { + return typeof entry !== "boolean" ? Object.entries(entry as Definition) : []; }; export const getType = ( @@ -121,7 +79,7 @@ export const getType = ( export const getValue = ( schema: DefinitionOrBoolean, prefix: string = "", - stringNotEnum?: boolean + ignoreQualifier?: boolean ): string => { if (typeof schema === "boolean") { return schema ? "true" : "false"; @@ -137,7 +95,7 @@ export const getValue = ( (schema.$ref.includes(constsPath) || schema.$ref.includes(enumsPath)) ) { const name = - stringNotEnum && schema.$ref.includes(".") + ignoreQualifier && schema.$ref.includes(".") ? schema.$ref.substring(schema.$ref.lastIndexOf(".") + 1) : schema.$ref.substring(schema.$ref.lastIndexOf("/") + 1); return `${prefix}${name}`; diff --git a/libxtracfg/js/types/go/index.ts b/libxtracfg/js/types/ts2x/go/index.ts similarity index 83% rename from libxtracfg/js/types/go/index.ts rename to libxtracfg/js/types/ts2x/go/index.ts index 0612745..e07e5b3 100644 --- a/libxtracfg/js/types/go/index.ts +++ b/libxtracfg/js/types/ts2x/go/index.ts @@ -1,29 +1,26 @@ +import { Definition, DefinitionOrBoolean } from "typescript-json-schema"; import { constsNs, DataType, defs, - Definition, - DefinitionOrBoolean, Defs, enumsNs, firstLetterUpperCase, - Generator, - Result, getDefault, getType, getValue, isConst, isEnum, -} from "../common/index.ts"; - -//TODO: move -const prefixNs = { Command: "cmd-", Options: "opts-", Result: "res-" }; +} from "../common/schema.ts"; +import { Result } from "../common/io.ts"; +import { Generator } from "../common/index.ts"; export const generateGo = ( name: string, schema: Definition, pkg: string, - dataNs: string[] + dataNs: string[], + filePrefixes: Record = {} ) => { const definitions = schema.definitions || {}; let consts: Defs = []; @@ -50,7 +47,7 @@ export const generateGo = ( } result.files.push( - generateFile(intface, ns, pkg, generateInterface(def)) + generateFile(intface, ns, pkg, filePrefixes, generateInterface(def)) ); } } @@ -58,19 +55,35 @@ export const generateGo = ( for (const [key, def] of Object.entries(entries)) { if (dataNs.includes(ns) && def && !def.interface) { result.files.push( - generateFile(key, ns, pkg, generateDataStruct(def, nsInterface)) + generateFile( + key, + ns, + pkg, + filePrefixes, + generateDataStruct(def, nsInterface) + ) ); } } } result.files.push( - generateFile("consts", "", pkg + "/consts", generateConsts(consts)) + generateFile( + "consts", + "", + pkg + "/consts", + filePrefixes, + generateConsts(consts) + ) ); - result.files.push(generateFile("enums", "", pkg, generateEnums(enums))); + result.files.push( + generateFile("enums", "", pkg, filePrefixes, generateEnums(enums)) + ); - result.files.push(generateFile("util", "", pkg, generateUtil())); + result.files.push( + generateFile("util", "", pkg, filePrefixes, generateUtil()) + ); return result; }; @@ -78,10 +91,10 @@ export const generateGo = ( const getName = ( name: string, ns?: string, - prefixNs?: Record + filePrefixes?: Record ) => { - return ns && prefixNs && prefixNs[ns] - ? `${prefixNs[ns]}${name.toLowerCase()}` + return ns && filePrefixes && filePrefixes[ns] + ? `${filePrefixes[ns]}${name.toLowerCase()}` : name.toLowerCase(); }; @@ -89,10 +102,11 @@ const generateFile = ( name: string, ns: string, pkg: string, + filePrefixes: Record, generate: Generator ) => { const dir = pkg.replaceAll(".", "/"); - const file = getName(name, ns, prefixNs); + const file = getName(name, ns, filePrefixes); const code = generate(getName(name), pkg); return { path: `${dir}/${file}.go`, content: code }; diff --git a/libxtracfg/js/types/ts2x/index.ts b/libxtracfg/js/types/ts2x/index.ts new file mode 100644 index 0000000..279cd39 --- /dev/null +++ b/libxtracfg/js/types/ts2x/index.ts @@ -0,0 +1,106 @@ +import { Result, write } from "./common/io.ts"; +import { constsNs, enumsNs } from "./common/schema.ts"; +import { generateGo } from "./go/index.ts"; +import { ClassGenerators, generateJava, Hooks } from "./java/index.ts"; +import { generateJsValidators } from "./js/index.ts"; +import { generateJsonSchema, SchemaResult } from "./json-schema/index.ts"; + +export { + type Definition, + type DefinitionOrBoolean, +} from "typescript-json-schema"; + +export { + type ClassGenerators, + type ClassGenerator, + type Hooks, + type OnNamespace, + type OnClass, +} from "./java/index.ts"; + +export { type Generator } from "./common/index.ts"; +export { write, type File, type Result } from "./common/io.ts"; + +export type GenCfg = { + basePath: string; + label?: string; +}; + +export type GenLangCfg = GenCfg & { + pkg: string; +}; + +export type GoCfg = GenLangCfg & { + filePrefixes: Record; +}; + +export type JavaCfg = GenLangCfg & { + classSuffixes?: string[]; + additionalClasses?: ClassGenerators; + hooks?: Hooks; +}; + +export type Cfg = { + source: string; + go?: GoCfg; + java?: JavaCfg; + ts?: GenCfg; + schema?: GenCfg; + verbose?: boolean; +}; + +export const generate = (cfg: Cfg) => { + console.log("Generating code from TypeScript definitions"); + + const { source, verbose, schema: schemaCfg, java, go, ts } = cfg; + + const schema: SchemaResult = generateJsonSchema( + schemaCfg?.label || "JSON Schema", + source + ); + + if (schemaCfg) { + write(schema, schemaCfg.basePath, verbose); + } + + //TODO: do we need dedicated namespaces for consts and enums? + const dataNs = Array.from(schema.namespaces).filter( + (ns) => ns !== constsNs && ns !== enumsNs + ); + //console.log("Data namespaces:", dataNs); + + if (ts) { + const code: Result = generateJsValidators( + schema.obj, + ts.label || "Typescript code" + ); + + write(code, ts.basePath, verbose); + } + + if (java) { + const code: Result = generateJava( + java.label || "Java code", + schema.obj, + java.pkg, + dataNs, + java.classSuffixes || [], + java.additionalClasses || [], + java.hooks + ); + + write(code, java.basePath, verbose); + } + + if (go) { + const code: Result = generateGo( + go.label || "Go code", + schema.obj, + go.pkg, + dataNs, + go.filePrefixes + ); + + write(code, go.basePath, verbose); + } +}; diff --git a/libxtracfg/js/types/java/data.ts b/libxtracfg/js/types/ts2x/java/data.ts similarity index 96% rename from libxtracfg/js/types/java/data.ts rename to libxtracfg/js/types/ts2x/java/data.ts index 18ecc58..76c7727 100644 --- a/libxtracfg/js/types/java/data.ts +++ b/libxtracfg/js/types/ts2x/java/data.ts @@ -1,17 +1,15 @@ +import { Definition, DefinitionOrBoolean } from "typescript-json-schema"; import { - Definition, - DefinitionOrBoolean, DataType, Defs, defs, - firstLetterUpperCase, - Generator, getDefault, getType, getValue, isConst, isEnum, -} from "../common/index.ts"; +} from "../common/schema.ts"; +import { Generator } from "../common/index.ts"; const identifiersPrefix = "Identifiers."; @@ -210,7 +208,7 @@ import shadow.com.fasterxml.jackson.annotation.JsonTypeInfo; @JsonSubTypes({`; for (const [key, value] of Object.entries(discriminators)) { code += ` - @JsonSubTypes.Type(value = ${key}.class, name = ${value}),`; + @JsonSubTypes.Type(value = ${key}.class, name = "${value}"),`; } code += ` diff --git a/libxtracfg/js/types/java/index.ts b/libxtracfg/js/types/ts2x/java/index.ts similarity index 62% rename from libxtracfg/js/types/java/index.ts rename to libxtracfg/js/types/ts2x/java/index.ts index 9a0aef3..84c48ea 100644 --- a/libxtracfg/js/types/java/index.ts +++ b/libxtracfg/js/types/ts2x/java/index.ts @@ -1,28 +1,42 @@ -import { - Definition, - Generator, - Defs, - Result, - constsNs, - enumsNs, - defs, - getValue, -} from "../common/index.ts"; +import { Definition } from "typescript-json-schema"; +import { Defs, constsNs, enumsNs, defs, getValue } from "../common/schema.ts"; +import { Result, File } from "../common/io.ts"; +import { Generator } from "../common/index.ts"; import { generateDataRecord, generateIdentifiersClass, generateInterface, } from "./data.ts"; -//TODO: remove suffixNs +export type OnNamespace = ( + ns: string, + nsInterface?: string, + nsInterfaceDef?: Definition +) => void; + +export type OnClass = (ns: string, name: string, def?: any) => void; + +export type ClassGenerator = { + name: string; + pkg: string; + codeOrGenerator: string | Generator; +}; + +export type ClassGenerators = (() => ClassGenerator[]) | ClassGenerator[]; + +export type Hooks = { + onNamespace?: OnNamespace; + onClass?: OnClass; +}; + export const generateJava = ( name: string, schema: Definition, pkg: string, dataNs: string[], suffixNs: string[], - onNs: (ns: string, nsInterface?: string, nsInterfaceDef?: Definition) => void, - onClass: (ns: string, name: string, def?: any) => void + additionalClasses: ClassGenerators = [], + hooks?: Hooks ): Result => { const definitions = schema.definitions || {}; let consts: Defs = []; @@ -53,7 +67,9 @@ export const generateJava = ( } } - onNs(ns, nsInterface, nsInterfaceDef); + if (hooks && hooks.onNamespace) { + hooks.onNamespace(ns, nsInterface, nsInterfaceDef); + } for (const [key, def] of Object.entries(entries)) { if (dataNs.includes(ns) && def && !def.interface) { @@ -69,7 +85,9 @@ export const generateJava = ( ); } - onClass(ns, getName(key, ns, suffixNs), def); + if (hooks && hooks.onClass) { + hooks.onClass(ns, getName(key, ns, suffixNs), def); + } result.files.push( generateClass( @@ -104,6 +122,19 @@ export const generateJava = ( ) ); + const classes = + typeof additionalClasses === "function" + ? additionalClasses() + : additionalClasses; + + classes.forEach((cls) => { + if (typeof cls.codeOrGenerator === "string") { + result.files.push(toFile(cls.name, cls.pkg, cls.codeOrGenerator)); + } else { + result.files.push(generateClass(cls.name, cls.pkg, cls.codeOrGenerator)); + } + }); + return result; }; @@ -111,13 +142,16 @@ const getName = (name: string, ns: string, suffixNs: string[]) => { return suffixNs.includes(ns) && name !== ns ? name + ns : name; }; -export const generateClass = ( +const generateClass = ( name: string, pkg: string, generate: Generator -) => { +): File => { + return toFile(name, pkg, generate(name, pkg)); +}; + +const toFile = (name: string, pkg: string, code: string): File => { const dir = pkg.replaceAll(".", "/"); - const code = generate(name, pkg); return { path: `${dir}/${name}.java`, content: code }; }; diff --git a/libxtracfg/js/types/js/index.ts b/libxtracfg/js/types/ts2x/js/index.ts similarity index 91% rename from libxtracfg/js/types/js/index.ts rename to libxtracfg/js/types/ts2x/js/index.ts index ee1bc26..3168bac 100644 --- a/libxtracfg/js/types/js/index.ts +++ b/libxtracfg/js/types/ts2x/js/index.ts @@ -1,16 +1,20 @@ -import { Definition } from "../common/index.ts"; +import { Definition } from "typescript-json-schema"; + import { validationKeywordsBoolean, validationKeywordsString, } from "../json-schema/index.ts"; -//TODO: configurable settings -export const generateJsValidators = (schema: Definition) => { +export const generateJsValidators = ( + schema: Definition, + name: string, + fileName: string = "validate" +) => { const code = generateValidators(schema); return { - name: "JS Validators", - files: [{ path: "validate.ts", content: code }], + name, + files: [{ path: `${fileName}.ts`, content: code }], }; }; diff --git a/libxtracfg/js/types/json-schema/index.ts b/libxtracfg/js/types/ts2x/json-schema/index.ts similarity index 76% rename from libxtracfg/js/types/json-schema/index.ts rename to libxtracfg/js/types/ts2x/json-schema/index.ts index 3b11400..5ef8549 100644 --- a/libxtracfg/js/types/json-schema/index.ts +++ b/libxtracfg/js/types/ts2x/json-schema/index.ts @@ -1,19 +1,20 @@ import * as TJS from "typescript-json-schema"; -import { resolve } from "path"; -import { constsNs, enumsNs } from "../common/index.ts"; +import { Result } from "../common/io.ts"; + +export type SchemaResult = Result & { obj: any; namespaces: string[] }; export const generateJsonSchema = ( name: string, source: string, - dataNs: string[], fileName: string = "schema" -) => { - const schema = generate(source, dataNs); +): SchemaResult => { + const schema = generate(source); return { name, obj: schema.js, + namespaces: schema.namespaces, files: [{ path: `${fileName}.json`, content: schema.string }], }; }; @@ -26,9 +27,7 @@ export const validationKeywordsBoolean = [ ]; export const validationKeywordsString = ["discriminator"]; -const generate = (source: string, dataNs: string[]) => { - const namespaces = [constsNs, enumsNs, ...dataNs]; - +const generate = (source: string) => { // optionally pass argument to schema generator const settings: TJS.PartialArgs = { required: true, @@ -49,11 +48,7 @@ const generate = (source: string, dataNs: string[]) => { strictNullChecks: true, }; - const program = TJS.getProgramFromFiles( - [resolve(source)], - compilerOptions, - "./" - ); + const program = TJS.getProgramFromFiles([source], compilerOptions, "./"); const generator = TJS.buildGenerator(program, settings); @@ -63,17 +58,24 @@ const generate = (source: string, dataNs: string[]) => { const symbols = generator .getUserSymbols() - .filter( - (s) => !s.endsWith("_1") && namespaces.some((ns) => s.startsWith(ns)) - ); + .filter((s) => !s.endsWith("_1") && s.startsWith("Ts2x.")); const schema = generator.getSchemaForSymbols(symbols, true, true); + const namespaces = Array.from( + new Set( + symbols + .filter((s) => s.split(".").length >= 3) + .map((s) => s.split(".")[1]) + ) + ); + const fixedSchema = fix(schema, namespaces); return { js: fixedSchema, string: JSON.stringify(fixedSchema, null, 2), + namespaces, }; }; @@ -85,13 +87,15 @@ const fix = (schema: TJS.Definition, namespaces: string[]) => { }); for (const [key, value] of Object.entries(definitions)) { - handleKey(key, value, newDefinitions, namespaces); + const key2 = key.replace("Ts2x.", ""); + handleKey(key2, value, newDefinitions, namespaces); } const newSchema = { ...schema, definitions: newDefinitions }; return JSON.parse( JSON.stringify(newSchema) + .replaceAll("Ts2x.", "") .replaceAll(new RegExp(`(${namespaces.join("|")})\\.`, "g"), "$1/") .replaceAll("_1", "") ); From 148ae607323c1414894c2fbcf900207e142cb9b3 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Tue, 7 Jan 2025 14:32:27 +0100 Subject: [PATCH 118/167] refactor --- libxtracfg/{js/types => .ts2x}/index.ts | 10 +- libxtracfg/{js/types => .ts2x}/java.ts | 0 libxtracfg/.ts2x/package-lock.json | 562 ++++++++++++++++++ libxtracfg/.ts2x/package.json | 14 + libxtracfg/{js/types => .ts2x}/src/index.ts | 0 libxtracfg/{js/types => .ts2x}/test.ts | 0 libxtracfg/{js/types => .ts2x}/tsconfig.json | 0 .../{js/types => ts2x}/package-lock.json | 16 +- libxtracfg/{js/types => ts2x}/package.json | 12 +- .../types/ts2x => ts2x/src}/common/index.ts | 0 .../{js/types/ts2x => ts2x/src}/common/io.ts | 0 .../types/ts2x => ts2x/src}/common/schema.ts | 0 .../{js/types/ts2x => ts2x/src}/go/index.ts | 0 .../{js/types/ts2x => ts2x/src}/index.ts | 0 .../{js/types/ts2x => ts2x/src}/java/data.ts | 0 .../{js/types/ts2x => ts2x/src}/java/index.ts | 0 .../{js/types/ts2x => ts2x/src}/js/index.ts | 0 .../ts2x => ts2x/src}/json-schema/index.ts | 0 libxtracfg/ts2x/tsconfig.json | 14 + 19 files changed, 608 insertions(+), 20 deletions(-) rename libxtracfg/{js/types => .ts2x}/index.ts (76%) rename libxtracfg/{js/types => .ts2x}/java.ts (100%) create mode 100644 libxtracfg/.ts2x/package-lock.json create mode 100644 libxtracfg/.ts2x/package.json rename libxtracfg/{js/types => .ts2x}/src/index.ts (100%) rename libxtracfg/{js/types => .ts2x}/test.ts (100%) rename libxtracfg/{js/types => .ts2x}/tsconfig.json (100%) rename libxtracfg/{js/types => ts2x}/package-lock.json (99%) rename libxtracfg/{js/types => ts2x}/package.json (63%) rename libxtracfg/{js/types/ts2x => ts2x/src}/common/index.ts (100%) rename libxtracfg/{js/types/ts2x => ts2x/src}/common/io.ts (100%) rename libxtracfg/{js/types/ts2x => ts2x/src}/common/schema.ts (100%) rename libxtracfg/{js/types/ts2x => ts2x/src}/go/index.ts (100%) rename libxtracfg/{js/types/ts2x => ts2x/src}/index.ts (100%) rename libxtracfg/{js/types/ts2x => ts2x/src}/java/data.ts (100%) rename libxtracfg/{js/types/ts2x => ts2x/src}/java/index.ts (100%) rename libxtracfg/{js/types/ts2x => ts2x/src}/js/index.ts (100%) rename libxtracfg/{js/types/ts2x => ts2x/src}/json-schema/index.ts (100%) create mode 100644 libxtracfg/ts2x/tsconfig.json diff --git a/libxtracfg/js/types/index.ts b/libxtracfg/.ts2x/index.ts similarity index 76% rename from libxtracfg/js/types/index.ts rename to libxtracfg/.ts2x/index.ts index 4abe6f8..7fd1a66 100644 --- a/libxtracfg/js/types/index.ts +++ b/libxtracfg/.ts2x/index.ts @@ -1,6 +1,6 @@ import { resolve } from "path"; -import { generate } from "./ts2x/index.ts"; +import { generate } from "ts2x/src/index.ts"; import { onClass, onNamespace, getAdditional } from "./java.ts"; //TODO: restructure -> xtracfg/bin, xtracfg/lib/*, gen in root? @@ -9,15 +9,15 @@ generate({ source: resolve("./src/index.ts"), verbose: false, schema: { - basePath: "./src/gen", + basePath: "../js/xtracfg/src/gen", }, go: { - basePath: "../../go", + basePath: "../go", pkg: "gen", filePrefixes: { Command: "cmd-", Options: "opts-", Result: "res-" }, }, java: { - basePath: "../../java/src/main/java", + basePath: "../java/src/main/java", pkg: "de.ii.xtraplatform.cli.gen", classSuffixes: ["Command", "Options", "Result"], additionalClasses: getAdditional("de.ii.xtraplatform.cli.gen"), @@ -27,6 +27,6 @@ generate({ }, }, ts: { - basePath: "./src/gen", + basePath: "../js/xtracfg/src/gen", }, }); diff --git a/libxtracfg/js/types/java.ts b/libxtracfg/.ts2x/java.ts similarity index 100% rename from libxtracfg/js/types/java.ts rename to libxtracfg/.ts2x/java.ts diff --git a/libxtracfg/.ts2x/package-lock.json b/libxtracfg/.ts2x/package-lock.json new file mode 100644 index 0000000..598ee29 --- /dev/null +++ b/libxtracfg/.ts2x/package-lock.json @@ -0,0 +1,562 @@ +{ + "name": ".ts2x", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "devDependencies": { + "@tsconfig/node22": "^22.0.0", + "@types/node": "^22.10.5", + "ts2x": "file:../ts2x", + "tsx": "4.19.2" + } + }, + "../ts2x": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.17.1", + "typescript-json-schema": "^0.65.1" + }, + "devDependencies": { + "@tsconfig/node22": "^22.0.0", + "tsx": "4.19.2" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz", + "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz", + "integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz", + "integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.1.tgz", + "integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz", + "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz", + "integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz", + "integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz", + "integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz", + "integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz", + "integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz", + "integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz", + "integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz", + "integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz", + "integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz", + "integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz", + "integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz", + "integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz", + "integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz", + "integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz", + "integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz", + "integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz", + "integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz", + "integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz", + "integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@tsconfig/node22": { + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/@tsconfig/node22/-/node22-22.0.0.tgz", + "integrity": "sha512-twLQ77zevtxobBOD4ToAtVmuYrpeYUh3qh+TEp+08IWhpsrIflVHqQ1F1CiPxQGL7doCdBIOOCF+1Tm833faNg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.10.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.5.tgz", + "integrity": "sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/esbuild": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz", + "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.23.1", + "@esbuild/android-arm": "0.23.1", + "@esbuild/android-arm64": "0.23.1", + "@esbuild/android-x64": "0.23.1", + "@esbuild/darwin-arm64": "0.23.1", + "@esbuild/darwin-x64": "0.23.1", + "@esbuild/freebsd-arm64": "0.23.1", + "@esbuild/freebsd-x64": "0.23.1", + "@esbuild/linux-arm": "0.23.1", + "@esbuild/linux-arm64": "0.23.1", + "@esbuild/linux-ia32": "0.23.1", + "@esbuild/linux-loong64": "0.23.1", + "@esbuild/linux-mips64el": "0.23.1", + "@esbuild/linux-ppc64": "0.23.1", + "@esbuild/linux-riscv64": "0.23.1", + "@esbuild/linux-s390x": "0.23.1", + "@esbuild/linux-x64": "0.23.1", + "@esbuild/netbsd-x64": "0.23.1", + "@esbuild/openbsd-arm64": "0.23.1", + "@esbuild/openbsd-x64": "0.23.1", + "@esbuild/sunos-x64": "0.23.1", + "@esbuild/win32-arm64": "0.23.1", + "@esbuild/win32-ia32": "0.23.1", + "@esbuild/win32-x64": "0.23.1" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-tsconfig": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", + "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/ts2x": { + "resolved": "../ts2x", + "link": true + }, + "node_modules/tsx": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.19.2.tgz", + "integrity": "sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "~0.23.0", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "dev": true, + "license": "MIT" + } + } +} diff --git a/libxtracfg/.ts2x/package.json b/libxtracfg/.ts2x/package.json new file mode 100644 index 0000000..93afd70 --- /dev/null +++ b/libxtracfg/.ts2x/package.json @@ -0,0 +1,14 @@ +{ + "type": "module", + "private": true, + "scripts": { + "test": "tsx ./test.ts", + "parse": "tsx ./index.ts" + }, + "devDependencies": { + "@tsconfig/node22": "^22.0.0", + "@types/node": "^22.10.5", + "ts2x": "file:../ts2x", + "tsx": "4.19.2" + } +} diff --git a/libxtracfg/js/types/src/index.ts b/libxtracfg/.ts2x/src/index.ts similarity index 100% rename from libxtracfg/js/types/src/index.ts rename to libxtracfg/.ts2x/src/index.ts diff --git a/libxtracfg/js/types/test.ts b/libxtracfg/.ts2x/test.ts similarity index 100% rename from libxtracfg/js/types/test.ts rename to libxtracfg/.ts2x/test.ts diff --git a/libxtracfg/js/types/tsconfig.json b/libxtracfg/.ts2x/tsconfig.json similarity index 100% rename from libxtracfg/js/types/tsconfig.json rename to libxtracfg/.ts2x/tsconfig.json diff --git a/libxtracfg/js/types/package-lock.json b/libxtracfg/ts2x/package-lock.json similarity index 99% rename from libxtracfg/js/types/package-lock.json rename to libxtracfg/ts2x/package-lock.json index 320b741..f6f621a 100644 --- a/libxtracfg/js/types/package-lock.json +++ b/libxtracfg/ts2x/package-lock.json @@ -1,12 +1,12 @@ { - "name": "@xtracfg/types", - "version": "4.1.0", + "name": "ts2x", + "version": "1.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "@xtracfg/types", - "version": "4.1.0", + "name": "ts2x", + "version": "1.0.0", "license": "MIT", "dependencies": { "ajv": "^8.17.1", @@ -14,7 +14,7 @@ }, "devDependencies": { "@tsconfig/node22": "^22.0.0", - "tsx": "^4.7.2" + "tsx": "4.19.2" } }, "node_modules/@cspotcode/source-map-support": { @@ -959,9 +959,9 @@ } }, "node_modules/tsx": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.19.1.tgz", - "integrity": "sha512-0flMz1lh74BR4wOvBjuh9olbnwqCPc35OOlfyzHba0Dc+QNUeWX/Gq2YTbnwcWPO3BMd8fkzRVrHcsR+a7z7rA==", + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.19.2.tgz", + "integrity": "sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==", "dev": true, "license": "MIT", "dependencies": { diff --git a/libxtracfg/js/types/package.json b/libxtracfg/ts2x/package.json similarity index 63% rename from libxtracfg/js/types/package.json rename to libxtracfg/ts2x/package.json index 98157ab..f47e492 100644 --- a/libxtracfg/js/types/package.json +++ b/libxtracfg/ts2x/package.json @@ -1,15 +1,13 @@ { - "name": "@xtracfg/types", + "name": "ts2x", "description": "", - "version": "4.1.0", - "author": "", + "version": "1.0.0", + "author": "Andreas Zahnen", "license": "MIT", "type": "module", "private": true, - "scripts": { - "test": "tsx ./test.ts", - "parse": "tsx ./index.ts" - }, + "module": "src/index.ts", + "scripts": {}, "devDependencies": { "@tsconfig/node22": "^22.0.0", "tsx": "4.19.2" diff --git a/libxtracfg/js/types/ts2x/common/index.ts b/libxtracfg/ts2x/src/common/index.ts similarity index 100% rename from libxtracfg/js/types/ts2x/common/index.ts rename to libxtracfg/ts2x/src/common/index.ts diff --git a/libxtracfg/js/types/ts2x/common/io.ts b/libxtracfg/ts2x/src/common/io.ts similarity index 100% rename from libxtracfg/js/types/ts2x/common/io.ts rename to libxtracfg/ts2x/src/common/io.ts diff --git a/libxtracfg/js/types/ts2x/common/schema.ts b/libxtracfg/ts2x/src/common/schema.ts similarity index 100% rename from libxtracfg/js/types/ts2x/common/schema.ts rename to libxtracfg/ts2x/src/common/schema.ts diff --git a/libxtracfg/js/types/ts2x/go/index.ts b/libxtracfg/ts2x/src/go/index.ts similarity index 100% rename from libxtracfg/js/types/ts2x/go/index.ts rename to libxtracfg/ts2x/src/go/index.ts diff --git a/libxtracfg/js/types/ts2x/index.ts b/libxtracfg/ts2x/src/index.ts similarity index 100% rename from libxtracfg/js/types/ts2x/index.ts rename to libxtracfg/ts2x/src/index.ts diff --git a/libxtracfg/js/types/ts2x/java/data.ts b/libxtracfg/ts2x/src/java/data.ts similarity index 100% rename from libxtracfg/js/types/ts2x/java/data.ts rename to libxtracfg/ts2x/src/java/data.ts diff --git a/libxtracfg/js/types/ts2x/java/index.ts b/libxtracfg/ts2x/src/java/index.ts similarity index 100% rename from libxtracfg/js/types/ts2x/java/index.ts rename to libxtracfg/ts2x/src/java/index.ts diff --git a/libxtracfg/js/types/ts2x/js/index.ts b/libxtracfg/ts2x/src/js/index.ts similarity index 100% rename from libxtracfg/js/types/ts2x/js/index.ts rename to libxtracfg/ts2x/src/js/index.ts diff --git a/libxtracfg/js/types/ts2x/json-schema/index.ts b/libxtracfg/ts2x/src/json-schema/index.ts similarity index 100% rename from libxtracfg/js/types/ts2x/json-schema/index.ts rename to libxtracfg/ts2x/src/json-schema/index.ts diff --git a/libxtracfg/ts2x/tsconfig.json b/libxtracfg/ts2x/tsconfig.json new file mode 100644 index 0000000..5fcc6ee --- /dev/null +++ b/libxtracfg/ts2x/tsconfig.json @@ -0,0 +1,14 @@ +{ + "extends": "@tsconfig/node22/tsconfig.json", + "include": ["**/*.ts"], + "compilerOptions": { + "rootDir": "./" /* Specify the root folder within your source files. */, + "outDir": "./build" /* Specify an output folder for all emitted files. */, + "allowJs": true /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */, + "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, + "experimentalDecorators": true, + "allowImportingTsExtensions": true /* Allow importing of .ts files even when they cannot be resolved. */, + "noEmit": true, + "resolveJsonModule": true + } +} From 98a315199dd105d59a3472b8341ea86aee2e5123 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Wed, 8 Jan 2025 14:07:23 +0100 Subject: [PATCH 119/167] fix native transport --- libxtracfg/java/build.gradle | 3 +- .../js/xtracfg-transport-native/src/index.ts | 56 ++++++++++++------- .../js/xtracfg-transport-native/test/test.ts | 4 +- 3 files changed, 42 insertions(+), 21 deletions(-) diff --git a/libxtracfg/java/build.gradle b/libxtracfg/java/build.gradle index d32a345..07ec196 100644 --- a/libxtracfg/java/build.gradle +++ b/libxtracfg/java/build.gradle @@ -8,6 +8,7 @@ plugins { ext { targetos = osdetector.os.replace('osx', 'darwin') targetarch = osdetector.arch.replace('x86_64', 'amd64').replace('aarch_64', 'arm64') + isCi = project.hasProperty('CI') || System.getenv('CI') != null } group = 'de.interactive_instruments' @@ -27,7 +28,7 @@ repositories { dependencies { implementation group: 'de.interactive_instruments', name: 'ldproxy-cfg', version: '4.3.0-SNAPSHOT' - implementation group: 'org.slf4j', name: project.hasProperty('CI') ? 'slf4j-nop' : 'slf4j-simple', version: '2.0.16' + implementation group: 'org.slf4j', name: isCi ? 'slf4j-nop' : 'slf4j-simple', version: '2.0.16' // 24.x is for JDK 21 compileOnly group: 'org.graalvm.nativeimage', name: 'svm', version: '24.1.0' diff --git a/libxtracfg/js/xtracfg-transport-native/src/index.ts b/libxtracfg/js/xtracfg-transport-native/src/index.ts index 937faf1..3758010 100644 --- a/libxtracfg/js/xtracfg-transport-native/src/index.ts +++ b/libxtracfg/js/xtracfg-transport-native/src/index.ts @@ -1,4 +1,10 @@ -import { Transport, TransportCreator, Response, Listener } from "@xtracfg/core"; +import { + Transport, + TransportCreator, + TransportOptions, + Response, + Listener, +} from "@xtracfg/core"; import addon from "@xtracfg/native"; const allListeners: Listener[][] = []; @@ -7,29 +13,41 @@ const broadcast = (response: Response) => { allListeners.flat().forEach((listener) => listener(response)); }; -const transport: TransportCreator = () => { - return async (): Promise => { - const listeners: Listener[] = []; - allListeners.push(listeners); +const transport: TransportCreator = ({ debug }: TransportOptions) => { + const listeners: Listener[] = []; + allListeners.push(listeners); - addon.subscribe((response: string) => broadcast(JSON.parse(response))); + if (debug) { + console.log("native transport created"); + } - return { - send: async (request) => { - if (listeners.length > 0) { - const response = addon.execute(JSON.stringify(request)); + addon.subscribe((response: string) => broadcast(JSON.parse(response))); - broadcast(JSON.parse(response)); + const transport: Transport = { + send: async (request) => { + if (debug) { + console.log("sending to native xtracfg", request, listeners.length); + } + + if (listeners.length > 0) { + const response = addon.execute(JSON.stringify(request)); + + if (debug) { + console.log("received from native xtracfg", response); } - }, - listen: async (listener) => { - listeners.push(listener); - }, - stop: async () => { - listeners.length = 0; - }, - }; + + broadcast(JSON.parse(response)); + } + }, + listen: async (listener) => { + listeners.push(listener); + }, + stop: async () => { + listeners.length = 0; + }, }; + + return async (): Promise => transport; }; export default transport; diff --git a/libxtracfg/js/xtracfg-transport-native/test/test.ts b/libxtracfg/js/xtracfg-transport-native/test/test.ts index 5ff0eb7..31ad355 100644 --- a/libxtracfg/js/xtracfg-transport-native/test/test.ts +++ b/libxtracfg/js/xtracfg-transport-native/test/test.ts @@ -1,7 +1,7 @@ import { connect } from "@xtracfg/core"; import transport from "../src"; -const xtracfg = connect(transport); +const xtracfg = connect(transport, { debug: true }); xtracfg.listen( (response) => { @@ -16,3 +16,5 @@ xtracfg.send({ command: "info", source: "/Users/pascal/Documents/GitHub/demo", }); + +//TODO: proper unit test that checks the response From 0ea574d47e3ede056439650df7343d09ed44d044 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Fri, 10 Jan 2025 12:38:00 +0100 Subject: [PATCH 120/167] trigger build --- libxtracfg/java/src/dev/resources/simplelogger.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libxtracfg/java/src/dev/resources/simplelogger.properties b/libxtracfg/java/src/dev/resources/simplelogger.properties index 6712764..7bb8be4 100644 --- a/libxtracfg/java/src/dev/resources/simplelogger.properties +++ b/libxtracfg/java/src/dev/resources/simplelogger.properties @@ -1,6 +1,6 @@ org.slf4j.simpleLogger.logFile=System.out org.slf4j.simpleLogger.defaultLogLevel=error -org.slf4j.simpleLogger.log.de.ii=debug +org.slf4j.simpleLogger.log.de.ii=info org.slf4j.simpleLogger.levelInBrackets=true org.slf4j.simpleLogger.showDateTime=false org.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd HH:mm:ss:SSS Z From 5cc6e4073fad0e98bd046c03235e63a31d049a31 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Wed, 15 Jan 2025 16:26:36 +0100 Subject: [PATCH 121/167] trigger build --- libxtracfg/java/build.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/libxtracfg/java/build.gradle b/libxtracfg/java/build.gradle index 07ec196..1bd1a7a 100644 --- a/libxtracfg/java/build.gradle +++ b/libxtracfg/java/build.gradle @@ -119,3 +119,4 @@ if (project.hasProperty('LIB')) { if (!project.hasProperty('CI')) { apply from: 'dev.gradle' } + From 966cc012652817ab45249f8f03eecc7df0aca9b8 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Thu, 16 Jan 2025 11:42:51 +0100 Subject: [PATCH 122/167] trigger build --- libxtracfg/java/build.gradle | 1 - 1 file changed, 1 deletion(-) diff --git a/libxtracfg/java/build.gradle b/libxtracfg/java/build.gradle index 1bd1a7a..07ec196 100644 --- a/libxtracfg/java/build.gradle +++ b/libxtracfg/java/build.gradle @@ -119,4 +119,3 @@ if (project.hasProperty('LIB')) { if (!project.hasProperty('CI')) { apply from: 'dev.gradle' } - From 42150885fda8813b99c024a3c12b54096ba0ca18 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Tue, 25 Feb 2025 16:14:32 +0100 Subject: [PATCH 123/167] windows build --- .github/workflows/xtracfg.yml | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 300abd3..456f2c6 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -8,15 +8,18 @@ jobs: strategy: matrix: os: - - runner: ubuntu-latest + - runner: ubuntu-24.04 type: linux platform: linux-amd64 - #- runner: buildjet-2vcpu-ubuntu-2204-arm - # type: linux - # platform: linux-arm64 - - runner: macos-latest + - runner: ubuntu-24.04-arm #buildjet-2vcpu-ubuntu-2204-arm + type: linux + platform: linux-arm64 + - runner: macos-14 type: macos platform: darwin-arm64 + - runner: windows-2022 + type: windows + platform: windows-amd64 steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 @@ -94,15 +97,18 @@ jobs: strategy: matrix: os: - - runner: ubuntu-latest + - runner: ubuntu-24.04 type: linux platform: linux-amd64 - #- runner: buildjet-2vcpu-ubuntu-2204-arm - # type: linux - # platform: linux-arm64 - - runner: macos-latest + - runner: ubuntu-24.04-arm #buildjet-2vcpu-ubuntu-2204-arm + type: linux + platform: linux-arm64 + - runner: macos-14 type: macos platform: darwin-arm64 + - runner: windows-2022 + type: windows + platform: windows-amd64 defaults: run: working-directory: ./xtracfg @@ -233,7 +239,7 @@ jobs: ghcr.io/ldproxy/xtracfg:next-${{steps.short-sha.outputs.substring}} platforms: | linux/amd64 - # linux/arm64 + linux/arm64 - name: push-branch if: ${{ github.ref_name != 'main' }} uses: docker/build-push-action@v6 @@ -247,6 +253,6 @@ jobs: ghcr.io/ldproxy/xtracfg:${{ github.ref_name }}-${{steps.short-sha.outputs.substring}} platforms: | linux/amd64 - # linux/arm64 + linux/arm64 # TODO: validate binaries and docker images From 7db49a900acfed3a015d27d039711a150cb37739 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Tue, 25 Feb 2025 16:57:14 +0100 Subject: [PATCH 124/167] windows build --- .../c/native-image/static-compiler-windows.sh | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100755 libxtracfg/c/native-image/static-compiler-windows.sh diff --git a/libxtracfg/c/native-image/static-compiler-windows.sh b/libxtracfg/c/native-image/static-compiler-windows.sh new file mode 100755 index 0000000..f434a3c --- /dev/null +++ b/libxtracfg/c/native-image/static-compiler-windows.sh @@ -0,0 +1,55 @@ +@echo off +setlocal EnableDelayedExpansion + +REM This script intercepts compiler arguments generated by GraalVM's native-image for +REM creating a shared library, and generates both shared and static libraries. The +REM output path has to be specified relative to this script because GraalVM builds +REM in a local temp directory and does not specify the output path anywhere. Tested on +REM GraalVM jdk21.+35.1 on Windows 10 and may need to be modified for other versions. +REM +REM Use with --native-compiler-path=${pathToThisScript}.bat +set OUTPUT_PATH=%~dp0\..\..\target\image + +REM Determine the library name based on the .dll argument. ~nP returns the filename +REM without quotes, i.e., "path\myLibrary.dll" returns myLibrary +set LIB_NAME= +for %%P in (%*) do ( + echo %%P | findstr /C:"\.dll" 1>nul + if !errorlevel!==0 ( + set LIB_NAME=%%~nP + ) +) + +REM Do a simple forward for any calls that are used to compile individual C files +IF "%LIB_NAME%"=="" ( + cmd /c cl %* + exit /b +) + +REM Setup log path and log file +set LOG_PATH=%OUTPUT_PATH%\logs +set LOG_FILE=%LOG_PATH%\compiler_commands.txt +if not exist %LOG_PATH% mkdir %LOG_PATH% + +echo Working directory: %CD% > %LOG_FILE% +echo Output path: %OUTPUT_PATH% >> %LOG_FILE% +echo Library name: %LIB_NAME% >> %LOG_FILE% + +echo ===================================================== >> %LOG_FILE% +echo SHARED LIBRARY >> %LOG_FILE% +echo ===================================================== >> %LOG_FILE% +REM Modify the arguments if needed +set CL_ARGS=%* +echo cl.exe %CL_ARGS% >> %LOG_FILE% +cmd /c cl.exe %CL_ARGS% + +echo ===================================================== >> %LOG_FILE% +echo STATIC LIBRARY >> %LOG_FILE% +echo ===================================================== >> %LOG_FILE% +REM To create a static library on Windows we need to call lib.exe input.obj /OUT:output.lib +REM We don't want to overwrite the .lib needed to compile against the .dll, so +REM we append "_s" to indicate that it is a static library. +if not exist %OUTPUT_PATH% mkdir %OUTPUT_PATH% +set LIB_ARGS=%LIB_NAME%.obj /OUT:%OUTPUT_PATH%\%LIB_NAME%_s.lib +echo lib.exe %LIB_ARGS% >> %LOG_FILE% +cmd /c lib.exe %LIB_ARGS% From c0585ce507e5b9a66d2ca9d327ee179adb4d7370 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Tue, 25 Feb 2025 17:02:48 +0100 Subject: [PATCH 125/167] windows build --- .../{static-compiler-windows.sh => static-compiler-windows.bat} | 0 libxtracfg/java/build.gradle | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename libxtracfg/c/native-image/{static-compiler-windows.sh => static-compiler-windows.bat} (100%) diff --git a/libxtracfg/c/native-image/static-compiler-windows.sh b/libxtracfg/c/native-image/static-compiler-windows.bat similarity index 100% rename from libxtracfg/c/native-image/static-compiler-windows.sh rename to libxtracfg/c/native-image/static-compiler-windows.bat diff --git a/libxtracfg/java/build.gradle b/libxtracfg/java/build.gradle index 07ec196..6b6c35f 100644 --- a/libxtracfg/java/build.gradle +++ b/libxtracfg/java/build.gradle @@ -56,7 +56,7 @@ graalvmNative { if (project.hasProperty('LIB')) { imageName = "libxtracfgjni" sharedLibrary = true - buildArgs("--native-compiler-path=${project.projectDir}/../c/native-image/static-compiler-${targetos}.sh") + buildArgs("--native-compiler-path=${project.projectDir}/../c/native-image/static-compiler-${targetos}.${targetos == 'windows' ? 'bat' : 'sh'}") buildArgs('--native-compiler-options=-fPIC') //buildArgs('-march=native') buildArgs('-O2') //TODO -O3 image is 50% larger than -O2, test -Os with JDK 23 From 805f42c8fcb0ba123e80de6dacae163bc497c541 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Tue, 25 Feb 2025 17:14:25 +0100 Subject: [PATCH 126/167] windows build --- libxtracfg/java/build.gradle | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libxtracfg/java/build.gradle b/libxtracfg/java/build.gradle index 6b6c35f..a6ae410 100644 --- a/libxtracfg/java/build.gradle +++ b/libxtracfg/java/build.gradle @@ -57,7 +57,9 @@ graalvmNative { imageName = "libxtracfgjni" sharedLibrary = true buildArgs("--native-compiler-path=${project.projectDir}/../c/native-image/static-compiler-${targetos}.${targetos == 'windows' ? 'bat' : 'sh'}") - buildArgs('--native-compiler-options=-fPIC') + if (targetos != 'windows') { + buildArgs('--native-compiler-options=-fPIC') + } //buildArgs('-march=native') buildArgs('-O2') //TODO -O3 image is 50% larger than -O2, test -Os with JDK 23 //buildArgs('--pgo') see https://www.graalvm.org/latest/reference-manual/native-image/optimizations-and-performance/PGO/ From 60626150e955121c66fd6d514feb36ca42169677 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Tue, 25 Feb 2025 17:46:55 +0100 Subject: [PATCH 127/167] adjust to json schema validator upgrade --- .../de/ii/xtraplatform/cli/Validation.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/Validation.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/Validation.java index 6934c3a..2247f40 100644 --- a/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/Validation.java +++ b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/Validation.java @@ -12,6 +12,8 @@ import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; +import shadow.com.networknt.schema.JsonNodePath; +import shadow.com.networknt.schema.PathType; import shadow.com.networknt.schema.ValidationMessage; import shadow.com.networknt.schema.ValidatorTypeCode; @@ -90,7 +92,8 @@ public void validate(LdproxyCfg ldproxyCfg, FileInfo fileInfo) { msg.getMessage().startsWith("$." + fileInfo.subProperty.get() + ".") ? msg.getMessage().replace(fileInfo.subProperty.get() + ".", "") : msg.getMessage().startsWith("$." + fileInfo.subProperty.get() + "[") - ? msg.getMessage().replaceFirst(fileInfo.subProperty.get() + "\\[[0-9]+\\]\\.", "") + ? msg.getMessage() + .replaceFirst(fileInfo.subProperty.get() + "\\[[0-9]+\\]\\.", "") : msg.getMessage(); msg = copyWith(msg, newMessage); @@ -107,10 +110,10 @@ private static ValidationMessage copyWith(ValidationMessage msg, String newMessa return new ValidationMessage.Builder() .type(msg.getType()) .code(msg.getCode()) - .path(msg.getPath()) + .instanceLocation(msg.getInstanceLocation()) .format(new MessageFormat("")) - .customMessage(newMessage) - .schemaPath(msg.getSchemaPath()) + .message(newMessage) + .schemaLocation(msg.getSchemaLocation()) .build(); } @@ -241,7 +244,10 @@ protected String getMessage(ValidationMessage vm) { return String.format( "%s is unknown for type %s", vm.getMessage().substring(0, vm.getMessage().indexOf(":") + 1), - vm.getSchemaPath().replace("#/$defs/", "").replace("/additionalProperties", "")); + vm.getSchemaLocation() + .toString() + .replace("#/$defs/", "") + .replace("/additionalProperties", "")); } return vm.getMessage(); @@ -260,7 +266,7 @@ private static boolean isRedundant(ValidationMessage vm) { static ValidationMessage redundant(String path) { return new ValidationMessage.Builder() .code(REDUNDANT) - .path(path) + .instanceLocation(new JsonNodePath(PathType.JSON_PATH).append(path)) .format(new MessageFormat("$.{0}: is redundant and can be removed")) .build(); } From d68e62f6ccd00c77637c43bf304099e2edf47530 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Tue, 25 Feb 2025 18:33:42 +0100 Subject: [PATCH 128/167] adjust to json schema validator upgrade --- .../de/ii/xtraplatform/cli/CfgValidation.java | 15 ++++++++++----- .../java/de/ii/xtraplatform/cli/Migration.java | 4 +++- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/CfgValidation.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/CfgValidation.java index 53dcf06..07626a2 100644 --- a/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/CfgValidation.java +++ b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/CfgValidation.java @@ -8,6 +8,8 @@ import java.nio.file.Path; import java.text.MessageFormat; import java.util.*; +import shadow.com.networknt.schema.JsonNodePath; +import shadow.com.networknt.schema.PathType; import shadow.com.networknt.schema.ValidationMessage; import shadow.com.networknt.schema.ValidatorTypeCode; @@ -64,8 +66,8 @@ public void validate(LdproxyCfg ldproxyCfg, Path yml) { Map proj = (Map) original.get("proj"); if (proj.containsKey("location") - && proj.get("location") instanceof String - && !((String) proj.get("location")).isBlank()) { + && proj.get("location") instanceof String + && !((String) proj.get("location")).isBlank()) { addMessage(deprecated("proj.location")); } } @@ -85,7 +87,10 @@ protected String getMessage(ValidationMessage vm) { return String.format( "%s is unknown for type %s", vm.getMessage().substring(0, vm.getMessage().indexOf(":") + 1), - vm.getSchemaPath().replace("#/$defs/", "").replace("/additionalProperties", "")); + vm.getSchemaLocation() + .toString() + .replace("#/$defs/", "") + .replace("/additionalProperties", "")); } return vm.getMessage(); @@ -104,7 +109,7 @@ private static boolean isRedundant(ValidationMessage vm) { static ValidationMessage redundant(String path) { return new ValidationMessage.Builder() .code(REDUNDANT) - .path(path) + .instanceLocation(new JsonNodePath(PathType.JSON_PATH).append(path)) .format(new MessageFormat("$.{0}: is redundant and can be removed")) .build(); } @@ -112,7 +117,7 @@ static ValidationMessage redundant(String path) { static ValidationMessage deprecated(String path) { return new ValidationMessage.Builder() .code(DeprecatedKeyword.KEYWORD) - .path(path) + .instanceLocation(new JsonNodePath(PathType.JSON_PATH).append(path)) .format(new MessageFormat("$.{0}: is deprecated and should be upgraded")) .build(); } diff --git a/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/Migration.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/Migration.java index 1bbb522..e1c4581 100644 --- a/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/Migration.java +++ b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/Migration.java @@ -4,6 +4,8 @@ import java.nio.file.Path; import java.text.MessageFormat; import java.util.Objects; +import shadow.com.networknt.schema.JsonNodePath; +import shadow.com.networknt.schema.PathType; import shadow.com.networknt.schema.ValidationMessage; public class Migration extends Messages { @@ -43,7 +45,7 @@ private static boolean isMigration(ValidationMessage vm) { static ValidationMessage migration(String path, String message) { return new ValidationMessage.Builder() .code(MIGRATION) - .path(path) + .instanceLocation(new JsonNodePath(PathType.JSON_PATH).append(path)) .arguments(message) .format(new MessageFormat("{0}: {1}")) .build(); From 5be6cfcf9ac94331e7823d2797c297204bfda60e Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Wed, 26 Feb 2025 07:34:57 +0100 Subject: [PATCH 129/167] fix arm build --- .github/workflows/xtracfg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 456f2c6..8df7da7 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -39,7 +39,7 @@ jobs: # xtracfg/*.gradle* # xtracfg/**/gradle-wrapper.properties - name: zlib - if: ${{ matrix.os.platform == 'linux-amd64' }} + if: ${{ matrix.os.type == 'linux' }} working-directory: /tmp env: ZLIB_VERSION: 1.2.11 From 1d4777b594a6242c4ee7df2a6beb79af4862291b Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Wed, 26 Feb 2025 07:38:41 +0100 Subject: [PATCH 130/167] temp disable windows --- .github/workflows/xtracfg.yml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 8df7da7..d934b2b 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -17,9 +17,9 @@ jobs: - runner: macos-14 type: macos platform: darwin-arm64 - - runner: windows-2022 - type: windows - platform: windows-amd64 + #- runner: windows-2022 + # type: windows + # platform: windows-amd64 steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 @@ -57,6 +57,7 @@ jobs: - name: log1 run: | ls -l ./libxtracfg/c/build + # TODO: windows - name: c working-directory: ./libxtracfg/c run: | @@ -106,9 +107,9 @@ jobs: - runner: macos-14 type: macos platform: darwin-arm64 - - runner: windows-2022 - type: windows - platform: windows-amd64 + #- runner: windows-2022 + # type: windows + # platform: windows-amd64 defaults: run: working-directory: ./xtracfg From d3efc01eca5eb832df2bae2a4dcf47d44434e82a Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Tue, 4 Mar 2025 16:38:10 +0100 Subject: [PATCH 131/167] pass location to websocket --- .../xtracfg-transport-websocket/src/index.ts | 21 ++++++++++++------- libxtracfg/js/xtracfg/src/index.ts | 1 + 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/libxtracfg/js/xtracfg-transport-websocket/src/index.ts b/libxtracfg/js/xtracfg-transport-websocket/src/index.ts index 91aa75d..b1b85cb 100644 --- a/libxtracfg/js/xtracfg-transport-websocket/src/index.ts +++ b/libxtracfg/js/xtracfg-transport-websocket/src/index.ts @@ -14,12 +14,15 @@ const broadcast = (response: Response) => { allListeners.flat().forEach((listener) => listener(response)); }; -export const transport: TransportCreator = ({ debug }: TransportOptions) => { +export const transport: TransportCreator = ({ + specific, + debug, +}: TransportOptions) => { return async (): Promise => { const listeners: Listener[] = []; allListeners.push(listeners); - const socket = getSocket(debug); + const socket = getSocket(specific.location || self.location, debug); socket.then((s) => { s?.addEventListener("message", (event) => { @@ -50,10 +53,15 @@ export const transport: TransportCreator = ({ debug }: TransportOptions) => { export default transport; +type ProtocolHost = { protocol: string; host: string }; + const mutex = new Mutex(); let _socket: WebSocket; -const getSocket = async (dev?: boolean): Promise => { +const getSocket = async ( + location: ProtocolHost, + dev?: boolean +): Promise => { const release = await mutex.acquire(); if (_socket && _socket.readyState === _socket.OPEN) { @@ -71,11 +79,8 @@ const getSocket = async (dev?: boolean): Promise => { console.log("CONNECTING to websocket", "ws://localhost:8081/sock"); _socket = new WebSocket("ws://localhost:8081/sock"); } else { - //console.log("CONNECTING to websocket", `ws://${self.location.host}/proxy/8081/`); - const protocol = self.location.protocol === "https:" ? "wss" : "ws"; - _socket = new WebSocket( - `${protocol}://${self.location.host}/proxy/8081/` - ); + const protocol = location.protocol === "https:" ? "wss" : "ws"; + _socket = new WebSocket(`${protocol}://${location.host}/proxy/8081/`); } } diff --git a/libxtracfg/js/xtracfg/src/index.ts b/libxtracfg/js/xtracfg/src/index.ts index 0e8c350..af5eaf8 100644 --- a/libxtracfg/js/xtracfg/src/index.ts +++ b/libxtracfg/js/xtracfg/src/index.ts @@ -41,6 +41,7 @@ export type TransportCreator = ( export type TransportConnector = () => Promise; export type TransportOptions = { + specific?: any; debug?: boolean; }; From 0651f181243b153236441f8239f67b96e83f41d3 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Tue, 4 Mar 2025 17:16:26 +0100 Subject: [PATCH 132/167] pass location to websocket --- libxtracfg/js/xtracfg-transport-websocket/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libxtracfg/js/xtracfg-transport-websocket/src/index.ts b/libxtracfg/js/xtracfg-transport-websocket/src/index.ts index b1b85cb..d046556 100644 --- a/libxtracfg/js/xtracfg-transport-websocket/src/index.ts +++ b/libxtracfg/js/xtracfg-transport-websocket/src/index.ts @@ -22,7 +22,7 @@ export const transport: TransportCreator = ({ const listeners: Listener[] = []; allListeners.push(listeners); - const socket = getSocket(specific.location || self.location, debug); + const socket = getSocket(specific?.location || self.location, debug); socket.then((s) => { s?.addEventListener("message", (event) => { From 9dfa9a78d451cf28b4a3ec3dc5d75870b0a281a5 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Mon, 10 Mar 2025 10:42:26 +0100 Subject: [PATCH 133/167] fix validation --- .../de/ii/xtraplatform/cli/CfgValidation.java | 5 +++-- .../de/ii/xtraplatform/cli/Validation.java | 20 ++++++++++++++----- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/CfgValidation.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/CfgValidation.java index 07626a2..283b680 100644 --- a/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/CfgValidation.java +++ b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/CfgValidation.java @@ -85,8 +85,9 @@ protected boolean isWarning(ValidationMessage vm) { protected String getMessage(ValidationMessage vm) { if (isUnknown(vm)) { return String.format( - "%s is unknown for type %s", - vm.getMessage().substring(0, vm.getMessage().indexOf(":") + 1), + "%s.%s is unknown for type %s", + vm.getInstanceLocation(), + vm.getProperty(), vm.getSchemaLocation() .toString() .replace("#/$defs/", "") diff --git a/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/Validation.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/Validation.java index 2247f40..91b4c45 100644 --- a/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/Validation.java +++ b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/Validation.java @@ -185,7 +185,8 @@ public void validateRedundant(Map original, Map getMessages().stream() .flatMap( vm -> { - String path = vm.getMessage().substring(2, vm.getMessage().indexOf(":")); + String prefix = vm.getInstanceLocation().toString() + "."; + String path = prefix.substring(2) + vm.getProperty(); // allow single values instead of list like yaml parser return Stream.of(path, path.replaceAll("\\[0\\]", "")); }) @@ -242,8 +243,9 @@ protected boolean isWarning(ValidationMessage vm) { protected String getMessage(ValidationMessage vm) { if (isUnknown(vm)) { return String.format( - "%s is unknown for type %s", - vm.getMessage().substring(0, vm.getMessage().indexOf(":") + 1), + "%s.%s is unknown for type %s", + vm.getInstanceLocation(), + vm.getProperty(), vm.getSchemaLocation() .toString() .replace("#/$defs/", "") @@ -264,10 +266,18 @@ private static boolean isRedundant(ValidationMessage vm) { private static final String REDUNDANT = "redundant"; static ValidationMessage redundant(String path) { + JsonNodePath nodePath = new JsonNodePath(PathType.LEGACY); + String[] parts = path.split("\\."); + for (int i = 0; i < parts.length - 1; i++) { + nodePath = nodePath.append(parts[i]); + } + return new ValidationMessage.Builder() .code(REDUNDANT) - .instanceLocation(new JsonNodePath(PathType.JSON_PATH).append(path)) - .format(new MessageFormat("$.{0}: is redundant and can be removed")) + .instanceLocation(nodePath) + .property(parts[parts.length - 1]) + .arguments(parts[parts.length - 1]) + .format(new MessageFormat("{0}.{1}: is redundant and can be removed")) .build(); } } From a2720a21a335d1dfbcf548cdc07d891846b41acf Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Tue, 11 Mar 2025 12:39:28 +0100 Subject: [PATCH 134/167] fix validation --- .../main/resources/META-INF/native-image/resource-config.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libxtracfg/java/src/main/resources/META-INF/native-image/resource-config.json b/libxtracfg/java/src/main/resources/META-INF/native-image/resource-config.json index 01324e4..ae103d0 100644 --- a/libxtracfg/java/src/main/resources/META-INF/native-image/resource-config.json +++ b/libxtracfg/java/src/main/resources/META-INF/native-image/resource-config.json @@ -27,6 +27,9 @@ }, { "pattern":"shadow/com/sun/xml/xsom/impl/parser/.*\\.properties$" + }, + { + "pattern":"\\Qsimplelogger.properties\\E" } ]}, "bundles":[{ From 3b074860f68ea5d2b49e79a14d565b8ca6b19399 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Fri, 14 Mar 2025 13:53:25 +0100 Subject: [PATCH 135/167] fix linux build --- libxtracfg/c/include/libxtracfg.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libxtracfg/c/include/libxtracfg.h b/libxtracfg/c/include/libxtracfg.h index bbaa54f..5ba0c94 100644 --- a/libxtracfg/c/include/libxtracfg.h +++ b/libxtracfg/c/include/libxtracfg.h @@ -5,6 +5,9 @@ extern "C" { #endif typedef void (*progress_callback) (const char* msg); + JNIEXPORT void JNICALL Java_de_ii_xtraplatform_cli_Cli_00024NativeProgress_update + (JNIEnv *env2, jobject obj, jstring update); + int xtracfg_init(); void xtracfg_cleanup(); From 303f29136febc10730b589ca19df1397a6ac1ed3 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Fri, 14 Mar 2025 14:45:40 +0100 Subject: [PATCH 136/167] fix linux build --- libxtracfg/c/build.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libxtracfg/c/build.sh b/libxtracfg/c/build.sh index a568cf5..e004639 100755 --- a/libxtracfg/c/build.sh +++ b/libxtracfg/c/build.sh @@ -35,7 +35,7 @@ echo "test" # static if [ "$PLATFORM" = "darwin" ]; then -clang -I./ -L./ -Wl,-framework,CoreServices -ldl -lpthread -Wl,-framework,Foundation -o test ../test/main.c ./libxtracfg.a +clang -I./ -I$JAVA_HOME/include -I$JAVA_HOME/include/${PLATFORM} -L./ -Wl,-framework,CoreServices -ldl -lpthread -Wl,-framework,Foundation -o test ../test/main.c ./libxtracfg.a else -clang -I./ -L./ -ldl -lpthread -o test ../test/main.c ./libxtracfg.a +clang -I./ -I$JAVA_HOME/include -I$JAVA_HOME/include/${PLATFORM} -L./ -ldl -lpthread -o test ../test/main.c ./libxtracfg.a fi From e26e7dd8b84b06d93444a82a2ae18f941ff991a1 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Fri, 14 Mar 2025 15:03:19 +0100 Subject: [PATCH 137/167] fix linux build --- libxtracfg/c/include/libxtracfg.h | 1 + libxtracfg/c/wrapper/libxtracfg.c | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/libxtracfg/c/include/libxtracfg.h b/libxtracfg/c/include/libxtracfg.h index 5ba0c94..f24d58c 100644 --- a/libxtracfg/c/include/libxtracfg.h +++ b/libxtracfg/c/include/libxtracfg.h @@ -1,3 +1,4 @@ +#include #ifdef __cplusplus extern "C" { diff --git a/libxtracfg/c/wrapper/libxtracfg.c b/libxtracfg/c/wrapper/libxtracfg.c index 13329d3..e590714 100644 --- a/libxtracfg/c/wrapper/libxtracfg.c +++ b/libxtracfg/c/wrapper/libxtracfg.c @@ -1,7 +1,6 @@ #include #include #include -#include #include "../include/libxtracfg.h" JavaVM *jvm = NULL; From 840314e951286ffdac7d468ee2ecef89c6b9262f Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Fri, 14 Mar 2025 16:33:12 +0100 Subject: [PATCH 138/167] fix linux build --- libxtracfg/js/xtracfg-native-binding/binding.gyp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libxtracfg/js/xtracfg-native-binding/binding.gyp b/libxtracfg/js/xtracfg-native-binding/binding.gyp index 6041b03..8447e0c 100644 --- a/libxtracfg/js/xtracfg-native-binding/binding.gyp +++ b/libxtracfg/js/xtracfg-native-binding/binding.gyp @@ -1,10 +1,14 @@ { + 'variables': { + 'PLATFORM': " Date: Sat, 15 Mar 2025 09:13:02 +0100 Subject: [PATCH 139/167] fix linux build --- libxtracfg/c/include/libxtracfg.h | 7 +++++-- libxtracfg/java/build.gradle | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/libxtracfg/c/include/libxtracfg.h b/libxtracfg/c/include/libxtracfg.h index f24d58c..6cb82ae 100644 --- a/libxtracfg/c/include/libxtracfg.h +++ b/libxtracfg/c/include/libxtracfg.h @@ -1,13 +1,15 @@ #include +#ifndef _Included_libxtracfg +#define _Included_libxtracfg #ifdef __cplusplus extern "C" { - #endif + typedef void (*progress_callback) (const char* msg); JNIEXPORT void JNICALL Java_de_ii_xtraplatform_cli_Cli_00024NativeProgress_update - (JNIEnv *env2, jobject obj, jstring update); + (JNIEnv *, jobject, jstring); int xtracfg_init(); @@ -20,3 +22,4 @@ extern "C" { #ifdef __cplusplus } #endif +#endif diff --git a/libxtracfg/java/build.gradle b/libxtracfg/java/build.gradle index a6ae410..d22c9f4 100644 --- a/libxtracfg/java/build.gradle +++ b/libxtracfg/java/build.gradle @@ -61,7 +61,7 @@ graalvmNative { buildArgs('--native-compiler-options=-fPIC') } //buildArgs('-march=native') - buildArgs('-O2') //TODO -O3 image is 50% larger than -O2, test -Os with JDK 23 + buildArgs('-O3') //TODO -O3 image is 50% larger than -O2, test -Os with JDK 23 //buildArgs('--pgo') see https://www.graalvm.org/latest/reference-manual/native-image/optimizations-and-performance/PGO/ } else { From 49f77f9f032c529979237d58eca8656e5c8892c5 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sat, 15 Mar 2025 09:56:28 +0100 Subject: [PATCH 140/167] fix linux build --- libxtracfg/c/wrapper/libxtracfg.c | 7 +++++++ libxtracfg/java/build.gradle | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/libxtracfg/c/wrapper/libxtracfg.c b/libxtracfg/c/wrapper/libxtracfg.c index e590714..0ff36df 100644 --- a/libxtracfg/c/wrapper/libxtracfg.c +++ b/libxtracfg/c/wrapper/libxtracfg.c @@ -17,6 +17,10 @@ JNIEXPORT void JNICALL Java_de_ii_xtraplatform_cli_Cli_00024NativeProgress_updat } } +static JNINativeMethod methods[] = { + {"Java_de_ii_xtraplatform_cli_Cli_00024NativeProgress_update", "(Ljava/lang/String;)V", (void*) &Java_de_ii_xtraplatform_cli_Cli_00024NativeProgress_update }, +}; + int xtracfg_init() { JavaVMInitArgs vm_args; JavaVMOption options[0]; @@ -32,6 +36,9 @@ int xtracfg_init() { return 1; } + jclass cls = (*env)->FindClass(env, "de/ii/xtraplatform/cli/Cli$NativeProgress"); + (*env)->RegisterNatives(env, cls, methods, sizeof(methods)/sizeof(methods[0])); + return 0; } diff --git a/libxtracfg/java/build.gradle b/libxtracfg/java/build.gradle index d22c9f4..a6ae410 100644 --- a/libxtracfg/java/build.gradle +++ b/libxtracfg/java/build.gradle @@ -61,7 +61,7 @@ graalvmNative { buildArgs('--native-compiler-options=-fPIC') } //buildArgs('-march=native') - buildArgs('-O3') //TODO -O3 image is 50% larger than -O2, test -Os with JDK 23 + buildArgs('-O2') //TODO -O3 image is 50% larger than -O2, test -Os with JDK 23 //buildArgs('--pgo') see https://www.graalvm.org/latest/reference-manual/native-image/optimizations-and-performance/PGO/ } else { From 7d53d16ce4bba7bc7e75b4e7083b481f4ba92a72 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sat, 15 Mar 2025 10:14:23 +0100 Subject: [PATCH 141/167] fix linux build --- libxtracfg/c/include/libxtracfg.h | 5 ----- libxtracfg/c/wrapper/libxtracfg.c | 15 ++++++++------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/libxtracfg/c/include/libxtracfg.h b/libxtracfg/c/include/libxtracfg.h index 6cb82ae..b86635e 100644 --- a/libxtracfg/c/include/libxtracfg.h +++ b/libxtracfg/c/include/libxtracfg.h @@ -1,5 +1,3 @@ -#include - #ifndef _Included_libxtracfg #define _Included_libxtracfg #ifdef __cplusplus @@ -8,9 +6,6 @@ extern "C" { typedef void (*progress_callback) (const char* msg); - JNIEXPORT void JNICALL Java_de_ii_xtraplatform_cli_Cli_00024NativeProgress_update - (JNIEnv *, jobject, jstring); - int xtracfg_init(); void xtracfg_cleanup(); diff --git a/libxtracfg/c/wrapper/libxtracfg.c b/libxtracfg/c/wrapper/libxtracfg.c index 0ff36df..2e6e749 100644 --- a/libxtracfg/c/wrapper/libxtracfg.c +++ b/libxtracfg/c/wrapper/libxtracfg.c @@ -1,6 +1,7 @@ #include #include #include +#include #include "../include/libxtracfg.h" JavaVM *jvm = NULL; @@ -8,17 +9,17 @@ JNIEnv *env = NULL; progress_callback progress_cb = NULL; // called from java with progress, pass to callback -JNIEXPORT void JNICALL Java_de_ii_xtraplatform_cli_Cli_00024NativeProgress_update - (JNIEnv *env2, jobject obj, jstring update) { - if (progress_cb != NULL) { - const char* msg = (*env)->GetStringUTFChars(env, update, NULL); +JNIEXPORT void JNICALL progress_update (JNIEnv *env2, jobject obj, jstring update) { + if (progress_cb != NULL) { + const char* msg = (*env)->GetStringUTFChars(env, update, NULL); - progress_cb(msg); - } + progress_cb(msg); } +} static JNINativeMethod methods[] = { - {"Java_de_ii_xtraplatform_cli_Cli_00024NativeProgress_update", "(Ljava/lang/String;)V", (void*) &Java_de_ii_xtraplatform_cli_Cli_00024NativeProgress_update }, + {"Java_de_ii_xtraplatform_cli_Cli_00024NativeProgress_update", "(Ljava/lang/String;)V", (void*) &progress_update }, + {"Java_de_ii_xtraplatform_cli_Cli_00024NativeProgress_update__Ljava_lang_String_2", "(Ljava/lang/String;)V", (void*) &progress_update }, }; int xtracfg_init() { From 0fbbd1378ef738d1c552757f588267a65ca7ce96 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sat, 15 Mar 2025 12:40:44 +0100 Subject: [PATCH 142/167] fix linux build --- libxtracfg/java/build.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/libxtracfg/java/build.gradle b/libxtracfg/java/build.gradle index a6ae410..9e52f14 100644 --- a/libxtracfg/java/build.gradle +++ b/libxtracfg/java/build.gradle @@ -64,6 +64,7 @@ graalvmNative { buildArgs('-O2') //TODO -O3 image is 50% larger than -O2, test -Os with JDK 23 //buildArgs('--pgo') see https://www.graalvm.org/latest/reference-manual/native-image/optimizations-and-performance/PGO/ + buildArgs("--initialize-at-run-time=de.ii.xtraplatform.cli") } else { imageName = "xtracfg" // for statically linking xtracfg From 5c64a2040d59a27f183dfb9a780a671ce6c32541 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sat, 15 Mar 2025 13:01:18 +0100 Subject: [PATCH 143/167] fix linux build --- .../resources/META-INF/native-image/jni-config.json | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/libxtracfg/java/src/main/resources/META-INF/native-image/jni-config.json b/libxtracfg/java/src/main/resources/META-INF/native-image/jni-config.json index 9a38494..b0c9ff9 100644 --- a/libxtracfg/java/src/main/resources/META-INF/native-image/jni-config.json +++ b/libxtracfg/java/src/main/resources/META-INF/native-image/jni-config.json @@ -1,6 +1,10 @@ [ -{ - "name":"de.ii.xtraplatform.cli.XtraCfg", - "methods":[{"name":"execute","parameterTypes":["java.lang.String"]}] -} + { + "name":"de.ii.xtraplatform.cli.XtraCfg", + "methods":[{"name":"execute","parameterTypes":["java.lang.String"]}] + }, + { + "name":"de.ii.xtraplatform.cli.Cli$NativeProgress", + "methods":[{"name":"update","parameterTypes":["java.lang.String"]}] + } ] \ No newline at end of file From 2a80c2f1db56a4a0ee475d266fb3386eaf888564 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Mon, 17 Mar 2025 09:00:14 +0100 Subject: [PATCH 144/167] fix linux build --- libxtracfg/java/build.gradle | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libxtracfg/java/build.gradle b/libxtracfg/java/build.gradle index 9e52f14..f6255c6 100644 --- a/libxtracfg/java/build.gradle +++ b/libxtracfg/java/build.gradle @@ -65,6 +65,8 @@ graalvmNative { //buildArgs('--pgo') see https://www.graalvm.org/latest/reference-manual/native-image/optimizations-and-performance/PGO/ buildArgs("--initialize-at-run-time=de.ii.xtraplatform.cli") + // for statically linking xtracfg + buildArgs('--features=de.ii.xtraplatform.cli.NativeFeature') } else { imageName = "xtracfg" // for statically linking xtracfg From e5bfdc980d49dfa8375c3f6bb157dcaab31ec6c8 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Mon, 17 Mar 2025 09:18:48 +0100 Subject: [PATCH 145/167] fix linux build --- libxtracfg/c/wrapper/libxtracfg.c | 19 ++++++------------- libxtracfg/java/build.gradle | 2 +- .../main/java/de/ii/xtraplatform/cli/Cli.java | 2 +- .../java/de/ii/xtraplatform/cli/XtraCfg.java | 4 ++-- 4 files changed, 10 insertions(+), 17 deletions(-) diff --git a/libxtracfg/c/wrapper/libxtracfg.c b/libxtracfg/c/wrapper/libxtracfg.c index 2e6e749..13329d3 100644 --- a/libxtracfg/c/wrapper/libxtracfg.c +++ b/libxtracfg/c/wrapper/libxtracfg.c @@ -9,18 +9,14 @@ JNIEnv *env = NULL; progress_callback progress_cb = NULL; // called from java with progress, pass to callback -JNIEXPORT void JNICALL progress_update (JNIEnv *env2, jobject obj, jstring update) { - if (progress_cb != NULL) { - const char* msg = (*env)->GetStringUTFChars(env, update, NULL); +JNIEXPORT void JNICALL Java_de_ii_xtraplatform_cli_Cli_00024NativeProgress_update + (JNIEnv *env2, jobject obj, jstring update) { + if (progress_cb != NULL) { + const char* msg = (*env)->GetStringUTFChars(env, update, NULL); - progress_cb(msg); + progress_cb(msg); + } } -} - -static JNINativeMethod methods[] = { - {"Java_de_ii_xtraplatform_cli_Cli_00024NativeProgress_update", "(Ljava/lang/String;)V", (void*) &progress_update }, - {"Java_de_ii_xtraplatform_cli_Cli_00024NativeProgress_update__Ljava_lang_String_2", "(Ljava/lang/String;)V", (void*) &progress_update }, -}; int xtracfg_init() { JavaVMInitArgs vm_args; @@ -37,9 +33,6 @@ int xtracfg_init() { return 1; } - jclass cls = (*env)->FindClass(env, "de/ii/xtraplatform/cli/Cli$NativeProgress"); - (*env)->RegisterNatives(env, cls, methods, sizeof(methods)/sizeof(methods[0])); - return 0; } diff --git a/libxtracfg/java/build.gradle b/libxtracfg/java/build.gradle index f6255c6..5b82d41 100644 --- a/libxtracfg/java/build.gradle +++ b/libxtracfg/java/build.gradle @@ -64,7 +64,7 @@ graalvmNative { buildArgs('-O2') //TODO -O3 image is 50% larger than -O2, test -Os with JDK 23 //buildArgs('--pgo') see https://www.graalvm.org/latest/reference-manual/native-image/optimizations-and-performance/PGO/ - buildArgs("--initialize-at-run-time=de.ii.xtraplatform.cli") + //buildArgs("--initialize-at-run-time=de.ii.xtraplatform.cli") // for statically linking xtracfg buildArgs('--features=de.ii.xtraplatform.cli.NativeFeature') } else { diff --git a/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/Cli.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/Cli.java index ac24b18..3e1e1f8 100644 --- a/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/Cli.java +++ b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/Cli.java @@ -2,7 +2,7 @@ public class Cli { - public static native void execute(CommandHandler commandHandler, Progress progress); + //public static native void execute(CommandHandler commandHandler, Progress progress); static class NativeProgress implements Progress { @Override diff --git a/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/XtraCfg.java b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/XtraCfg.java index c784a58..bc58f56 100644 --- a/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/XtraCfg.java +++ b/libxtracfg/java/src/main/java/de/ii/xtraplatform/cli/XtraCfg.java @@ -2,7 +2,7 @@ public class XtraCfg { - public static void main(String[] args) { + /*public static void main(String[] args) { try { CommandHandler commandHandler = new CommandHandler(); Cli.NativeProgress progress = new Cli.NativeProgress(); @@ -12,7 +12,7 @@ public static void main(String[] args) { System.out.println("ERROR " + e.getMessage()); e.printStackTrace(); } - } + }*/ public static String execute(String command) { try { From a71ce4c2e896bf7d1861c3b7637cd480b7a234d9 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Mon, 17 Mar 2025 09:32:49 +0100 Subject: [PATCH 146/167] fix linux build --- libxtracfg/java/build.gradle | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libxtracfg/java/build.gradle b/libxtracfg/java/build.gradle index 5b82d41..a6d414c 100644 --- a/libxtracfg/java/build.gradle +++ b/libxtracfg/java/build.gradle @@ -1,5 +1,6 @@ plugins { - id 'application' + //id 'application' + id 'java-library' id 'org.graalvm.buildtools.native' version '0.10.3' id "com.google.osdetector" version "1.7.3" id "org.gretty" version "4.1.5" apply false @@ -34,9 +35,9 @@ dependencies { compileOnly group: 'org.graalvm.nativeimage', name: 'svm', version: '24.1.0' } -application { +/*application { mainClass = 'de.ii.xtraplatform.cli.XtraCfg' -} +}*/ configurations.all { resolutionStrategy.cacheChangingModulesFor 0, 'minutes' From bfc6a995a29b10763b771fcb8351be5ac0685e70 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Mon, 17 Mar 2025 09:45:15 +0100 Subject: [PATCH 147/167] fix linux build --- .github/workflows/xtracfg.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index d934b2b..8c7ba44 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -2,6 +2,9 @@ name: xtracfg on: [push] +env: + CI: true + jobs: build_libraries: runs-on: ${{ matrix.os.runner }} From aab3dae4d0ba13a84070fc800fa7e817126632ee Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Mon, 17 Mar 2025 09:48:37 +0100 Subject: [PATCH 148/167] fix linux build --- .github/workflows/xtracfg.yml | 3 --- libxtracfg/java/build.gradle | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 8c7ba44..d934b2b 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -2,9 +2,6 @@ name: xtracfg on: [push] -env: - CI: true - jobs: build_libraries: runs-on: ${{ matrix.os.runner }} diff --git a/libxtracfg/java/build.gradle b/libxtracfg/java/build.gradle index a6d414c..1ed8c1a 100644 --- a/libxtracfg/java/build.gradle +++ b/libxtracfg/java/build.gradle @@ -122,6 +122,6 @@ if (project.hasProperty('LIB')) { tasks.nativeCompile.finalizedBy tasks.nativeSync } -if (!project.hasProperty('CI')) { +if (!isCi) { apply from: 'dev.gradle' } From 5f00cee2c7efb4bd2aa83b473bfe2bfa7f81c231 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Mon, 17 Mar 2025 12:31:15 +0100 Subject: [PATCH 149/167] fix linux build --- libxtracfg/java/dev.gradle | 7 ++++++- libxtracfg/js/xtracfg-native-binding/binding.gyp | 6 +----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/libxtracfg/java/dev.gradle b/libxtracfg/java/dev.gradle index b932563..0633665 100644 --- a/libxtracfg/java/dev.gradle +++ b/libxtracfg/java/dev.gradle @@ -1,3 +1,4 @@ +apply plugin: 'application' apply plugin: 'org.gretty' // start with ./gradlew appRun or ./gradlew appRunDebug @@ -24,4 +25,8 @@ dependencies { implementation 'jakarta.websocket:jakarta.websocket-client-api:2.2.0' } -tasks.run.mainClass = 'de.ii.xtraplatform.cli.dev.XtraCfgDev' \ No newline at end of file + +application { + mainClass = 'de.ii.xtraplatform.cli.dev.XtraCfgDev' +} +//tasks.run.mainClass = 'de.ii.xtraplatform.cli.dev.XtraCfgDev' \ No newline at end of file diff --git a/libxtracfg/js/xtracfg-native-binding/binding.gyp b/libxtracfg/js/xtracfg-native-binding/binding.gyp index 8447e0c..6041b03 100644 --- a/libxtracfg/js/xtracfg-native-binding/binding.gyp +++ b/libxtracfg/js/xtracfg-native-binding/binding.gyp @@ -1,14 +1,10 @@ { - 'variables': { - 'PLATFORM': " Date: Mon, 17 Mar 2025 12:42:26 +0100 Subject: [PATCH 150/167] fix linux build --- libxtracfg/java/build.gradle | 5 ----- .../src/main/resources/META-INF/native-image/jni-config.json | 4 ---- 2 files changed, 9 deletions(-) diff --git a/libxtracfg/java/build.gradle b/libxtracfg/java/build.gradle index 1ed8c1a..453c8a5 100644 --- a/libxtracfg/java/build.gradle +++ b/libxtracfg/java/build.gradle @@ -1,5 +1,4 @@ plugins { - //id 'application' id 'java-library' id 'org.graalvm.buildtools.native' version '0.10.3' id "com.google.osdetector" version "1.7.3" @@ -35,10 +34,6 @@ dependencies { compileOnly group: 'org.graalvm.nativeimage', name: 'svm', version: '24.1.0' } -/*application { - mainClass = 'de.ii.xtraplatform.cli.XtraCfg' -}*/ - configurations.all { resolutionStrategy.cacheChangingModulesFor 0, 'minutes' } diff --git a/libxtracfg/java/src/main/resources/META-INF/native-image/jni-config.json b/libxtracfg/java/src/main/resources/META-INF/native-image/jni-config.json index b0c9ff9..00f873b 100644 --- a/libxtracfg/java/src/main/resources/META-INF/native-image/jni-config.json +++ b/libxtracfg/java/src/main/resources/META-INF/native-image/jni-config.json @@ -1,8 +1,4 @@ [ - { - "name":"de.ii.xtraplatform.cli.XtraCfg", - "methods":[{"name":"execute","parameterTypes":["java.lang.String"]}] - }, { "name":"de.ii.xtraplatform.cli.Cli$NativeProgress", "methods":[{"name":"update","parameterTypes":["java.lang.String"]}] From 3c53c00542d11d02de9b9d7b1ea3c72025adb927 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Mon, 17 Mar 2025 12:52:39 +0100 Subject: [PATCH 151/167] fix linux build --- .../src/main/resources/META-INF/native-image/jni-config.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libxtracfg/java/src/main/resources/META-INF/native-image/jni-config.json b/libxtracfg/java/src/main/resources/META-INF/native-image/jni-config.json index 00f873b..b0c9ff9 100644 --- a/libxtracfg/java/src/main/resources/META-INF/native-image/jni-config.json +++ b/libxtracfg/java/src/main/resources/META-INF/native-image/jni-config.json @@ -1,4 +1,8 @@ [ + { + "name":"de.ii.xtraplatform.cli.XtraCfg", + "methods":[{"name":"execute","parameterTypes":["java.lang.String"]}] + }, { "name":"de.ii.xtraplatform.cli.Cli$NativeProgress", "methods":[{"name":"update","parameterTypes":["java.lang.String"]}] From 5f19f5b566a61906e7e183f77fcfadc751bde2a3 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Mon, 17 Mar 2025 13:01:26 +0100 Subject: [PATCH 152/167] fix linux build --- libxtracfg/java/build.gradle | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/libxtracfg/java/build.gradle b/libxtracfg/java/build.gradle index 453c8a5..8124c4c 100644 --- a/libxtracfg/java/build.gradle +++ b/libxtracfg/java/build.gradle @@ -60,14 +60,8 @@ graalvmNative { buildArgs('-O2') //TODO -O3 image is 50% larger than -O2, test -Os with JDK 23 //buildArgs('--pgo') see https://www.graalvm.org/latest/reference-manual/native-image/optimizations-and-performance/PGO/ - //buildArgs("--initialize-at-run-time=de.ii.xtraplatform.cli") // for statically linking xtracfg buildArgs('--features=de.ii.xtraplatform.cli.NativeFeature') - } else { - imageName = "xtracfg" - // for statically linking xtracfg - buildArgs('--features=de.ii.xtraplatform.cli.NativeFeature') - buildArgs("-H:CLibraryPath=${project.projectDir}/dist") } //buildArgs("--module-path", "${buildDir}/install/ldproxy/lib") @@ -107,16 +101,14 @@ tasks.register('nativeSync', Sync) { into '../c/build' } +tasks.nativeCompile.finalizedBy tasks.nativeSync + tasks.register('os') { doLast { println targetos + "-" + targetarch } } -if (project.hasProperty('LIB')) { - tasks.nativeCompile.finalizedBy tasks.nativeSync -} - if (!isCi) { apply from: 'dev.gradle' } From 80825fefde24fe41fa9c0fbc579a2f6e0167be73 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Mon, 17 Mar 2025 13:15:29 +0100 Subject: [PATCH 153/167] fix linux build --- libxtracfg/c/build.sh | 2 +- libxtracfg/java/build.gradle | 35 ++++++++++++++--------------------- 2 files changed, 15 insertions(+), 22 deletions(-) diff --git a/libxtracfg/c/build.sh b/libxtracfg/c/build.sh index e004639..daa66e5 100755 --- a/libxtracfg/c/build.sh +++ b/libxtracfg/c/build.sh @@ -35,7 +35,7 @@ echo "test" # static if [ "$PLATFORM" = "darwin" ]; then -clang -I./ -I$JAVA_HOME/include -I$JAVA_HOME/include/${PLATFORM} -L./ -Wl,-framework,CoreServices -ldl -lpthread -Wl,-framework,Foundation -o test ../test/main.c ./libxtracfg.a +clang -I./ -L./ -Wl,-framework,CoreServices -ldl -lpthread -Wl,-framework,Foundation -o test ../test/main.c ./libxtracfg.a else clang -I./ -I$JAVA_HOME/include -I$JAVA_HOME/include/${PLATFORM} -L./ -ldl -lpthread -o test ../test/main.c ./libxtracfg.a fi diff --git a/libxtracfg/java/build.gradle b/libxtracfg/java/build.gradle index 8124c4c..43808ab 100644 --- a/libxtracfg/java/build.gradle +++ b/libxtracfg/java/build.gradle @@ -49,20 +49,21 @@ graalvmNative { richOutput = true //requiredVersion = '22.3' - if (project.hasProperty('LIB')) { - imageName = "libxtracfgjni" - sharedLibrary = true - buildArgs("--native-compiler-path=${project.projectDir}/../c/native-image/static-compiler-${targetos}.${targetos == 'windows' ? 'bat' : 'sh'}") - if (targetos != 'windows') { - buildArgs('--native-compiler-options=-fPIC') - } - //buildArgs('-march=native') - buildArgs('-O2') //TODO -O3 image is 50% larger than -O2, test -Os with JDK 23 - //buildArgs('--pgo') see https://www.graalvm.org/latest/reference-manual/native-image/optimizations-and-performance/PGO/ - - // for statically linking xtracfg - buildArgs('--features=de.ii.xtraplatform.cli.NativeFeature') + imageName = "libxtracfgjni" + sharedLibrary = true + buildArgs("--native-compiler-path=${project.projectDir}/../c/native-image/static-compiler-${targetos}.${targetos == 'windows' ? 'bat' : 'sh'}") + if (targetos != 'windows') { + buildArgs('--native-compiler-options=-fPIC') } + if (targetos == 'darwin') { + buildArgs('--native-compiler-options=-Wl,-framework,Security') + } + //buildArgs('-march=native') + buildArgs('-O2') //TODO -O3 image is 50% larger than -O2, test -Os with JDK 23 + //buildArgs('--pgo') see https://www.graalvm.org/latest/reference-manual/native-image/optimizations-and-performance/PGO/ + + // for statically linking xtracfg + buildArgs('--features=de.ii.xtraplatform.cli.NativeFeature') //buildArgs("--module-path", "${buildDir}/install/ldproxy/lib") //buildArgs("--module", application.mainModule.get()) @@ -77,18 +78,10 @@ graalvmNative { //buildArgs('-H:-UseServiceLoaderFeature') //resources.autodetect() - if (!project.hasProperty('LIB') && targetos == 'linux') { - buildArgs('-H:+StaticExecutableWithDynamicLibC') - } - if (targetos == 'darwin') { - buildArgs('--native-compiler-options=-Wl,-framework,Security') - } - // for jackson??? //buildArgs('-H:+PrintClassInitialization') //buildArgs("--allow-incomplete-classpath") - buildArgs("--add-exports=org.graalvm.nativeimage.builder/com.oracle.svm.core.jdk=ALL-UNNAMED") buildArgs("--add-exports=org.graalvm.nativeimage.builder/com.oracle.svm.hosted=ALL-UNNAMED") buildArgs("--add-exports=org.graalvm.nativeimage.builder/com.oracle.svm.hosted.c=ALL-UNNAMED") From cf4ed12773f5083b0139210eb16647b646b07763 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Mon, 17 Mar 2025 13:24:39 +0100 Subject: [PATCH 154/167] fix linux build --- libxtracfg/c/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libxtracfg/c/build.sh b/libxtracfg/c/build.sh index daa66e5..a568cf5 100755 --- a/libxtracfg/c/build.sh +++ b/libxtracfg/c/build.sh @@ -37,5 +37,5 @@ echo "test" if [ "$PLATFORM" = "darwin" ]; then clang -I./ -L./ -Wl,-framework,CoreServices -ldl -lpthread -Wl,-framework,Foundation -o test ../test/main.c ./libxtracfg.a else -clang -I./ -I$JAVA_HOME/include -I$JAVA_HOME/include/${PLATFORM} -L./ -ldl -lpthread -o test ../test/main.c ./libxtracfg.a +clang -I./ -L./ -ldl -lpthread -o test ../test/main.c ./libxtracfg.a fi From e41913a3f6adc433f8f9a44b049a4bd84612adf5 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sat, 22 Mar 2025 16:33:54 +0100 Subject: [PATCH 155/167] upgrade ldproxy-cfg --- libxtracfg/java/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libxtracfg/java/build.gradle b/libxtracfg/java/build.gradle index 43808ab..8e47b30 100644 --- a/libxtracfg/java/build.gradle +++ b/libxtracfg/java/build.gradle @@ -27,7 +27,7 @@ repositories { } dependencies { - implementation group: 'de.interactive_instruments', name: 'ldproxy-cfg', version: '4.3.0-SNAPSHOT' + implementation group: 'de.interactive_instruments', name: 'ldproxy-cfg', version: '4.3.0' implementation group: 'org.slf4j', name: isCi ? 'slf4j-nop' : 'slf4j-simple', version: '2.0.16' // 24.x is for JDK 21 From 0090b2d5742b7677d9cec13aa4b3d91d27ccd933 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sat, 22 Mar 2025 17:12:01 +0100 Subject: [PATCH 156/167] release builds --- .github/workflows/xtracfg.yml | 41 ++++++++++++++++--- .github/workflows/xtractl.yml | 24 +++++++++-- .../js/xtracfg-native-binding/package.json | 2 +- .../js/xtracfg-transport-native/package.json | 2 +- .../xtracfg-transport-websocket/package.json | 2 +- libxtracfg/js/xtracfg/package.json | 2 +- 6 files changed, 61 insertions(+), 12 deletions(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index d934b2b..6fa65d7 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -177,7 +177,8 @@ jobs: - name: log1 run: | ls -lR ./xtracfg-native-binding/prebuilds - - name: publish + - name: publish-branch + if: ${{ github.ref_type == 'branch' }} env: DIST_TAG: ${{ github.ref_name == 'main' && 'next' || github.ref_name }} NPM_TOKEN: ${{ secrets.npm_rw_token }} @@ -187,6 +188,17 @@ jobs: npm ci --ignore-scripts npm run build npm run publish -- --canary preminor --preid ${DIST_TAG} --dist-tag ${DIST_TAG} + - name: publish-tag + if: ${{ github.ref_type == 'tag' }} + env: + DIST_TAG: ${{ github.ref_name == 'main' && 'next' || github.ref_name }} + NPM_TOKEN: ${{ secrets.npm_rw_token }} + run: | + set -x + #npm run bump -- prerelease --build-metadata ${DIST_TAG} --preid ${DIST_TAG} + npm ci --ignore-scripts + npm run build + npm run publish -- from-package - name: log2 run: | ls -lR ./**/build @@ -219,6 +231,11 @@ jobs: with: value: ${{ github.sha }} length_from_start: 7 + - uses: bhowell2/github-substring-action@1.0.2 + id: short-tag + with: + value: ${{ github.ref_name }} + index_of_str: "v" - name: login uses: docker/login-action@v3 with: @@ -227,8 +244,8 @@ jobs: password: ${{ secrets.ghcr_rw_token }} - name: buildx uses: docker/setup-buildx-action@v3 - - name: push - if: ${{ github.ref_name == 'main' }} + - name: publish-main + if: ${{ github.ref_type == 'branch' && github.ref_name == 'main' }} uses: docker/build-push-action@v6 with: context: . @@ -241,8 +258,8 @@ jobs: platforms: | linux/amd64 linux/arm64 - - name: push-branch - if: ${{ github.ref_name != 'main' }} + - name: publish-branch + if: ${{ github.ref_type == 'branch' && github.ref_name != 'main' }} uses: docker/build-push-action@v6 with: context: . @@ -255,5 +272,19 @@ jobs: platforms: | linux/amd64 linux/arm64 + - name: publish-tag + if: ${{ github.ref_type == 'tag' && startsWith(github.ref_name, 'v') }} + uses: docker/build-push-action@v6 + with: + context: . + file: ./common/Dockerfile + push: true + pull: true + tags: | + ghcr.io/ldproxy/xtracfg:${{ steps.short-tag.outputs.substring }} + ghcr.io/ldproxy/xtracfg:latest + platforms: | + linux/amd64 + linux/arm64 # TODO: validate binaries and docker images diff --git a/.github/workflows/xtractl.yml b/.github/workflows/xtractl.yml index 1565bc0..fa2c3cb 100644 --- a/.github/workflows/xtractl.yml +++ b/.github/workflows/xtractl.yml @@ -1,6 +1,6 @@ name: xtractl -on: [] +on: [push] jobs: build: @@ -57,6 +57,11 @@ jobs: with: value: ${{ github.sha }} length_from_start: 7 + - uses: bhowell2/github-substring-action@1.0.2 + id: short-tag + with: + value: ${{ github.ref_name }} + index_of_str: "v" - name: login uses: docker/login-action@v3 with: @@ -66,7 +71,7 @@ jobs: - name: buildx uses: docker/setup-buildx-action@v3 - name: push - if: ${{ github.ref_name == 'main' }} + if: ${{ github.ref_type == 'branch' && github.ref_name == 'main' }} uses: docker/build-push-action@v6 with: context: . @@ -79,7 +84,7 @@ jobs: linux/amd64 linux/arm64 - name: push-branch - if: ${{ github.ref_name != 'main' }} + if: ${{ github.ref_type == 'branch' && github.ref_name != 'main' }} uses: docker/build-push-action@v6 with: context: . @@ -91,3 +96,16 @@ jobs: platforms: | linux/amd64 linux/arm64 + - name: tag + if: ${{ github.ref_type == 'tag' && startsWith(github.ref_name, 'v') }} + uses: docker/build-push-action@v6 + with: + context: . + push: true + pull: true + tags: | + ghcr.io/ldproxy/xtractl:${{ steps.short-tag.outputs.substring }} + ghcr.io/ldproxy/xtractl:latest + platforms: | + linux/amd64 + linux/arm64 diff --git a/libxtracfg/js/xtracfg-native-binding/package.json b/libxtracfg/js/xtracfg-native-binding/package.json index db09f30..dd1bc2c 100644 --- a/libxtracfg/js/xtracfg-native-binding/package.json +++ b/libxtracfg/js/xtracfg-native-binding/package.json @@ -1,7 +1,7 @@ { "name": "@xtracfg/native", "description": "", - "version": "4.1.0", + "version": "4.2.0", "author": "", "license": "MIT", "type": "commonjs", diff --git a/libxtracfg/js/xtracfg-transport-native/package.json b/libxtracfg/js/xtracfg-transport-native/package.json index abd9482..5f8f433 100644 --- a/libxtracfg/js/xtracfg-transport-native/package.json +++ b/libxtracfg/js/xtracfg-transport-native/package.json @@ -1,7 +1,7 @@ { "name": "@xtracfg/transport-native", "description": "", - "version": "4.1.0", + "version": "4.2.0", "author": "", "license": "MIT", "type": "module", diff --git a/libxtracfg/js/xtracfg-transport-websocket/package.json b/libxtracfg/js/xtracfg-transport-websocket/package.json index d7ab8d4..b9585cb 100644 --- a/libxtracfg/js/xtracfg-transport-websocket/package.json +++ b/libxtracfg/js/xtracfg-transport-websocket/package.json @@ -1,7 +1,7 @@ { "name": "@xtracfg/transport-websocket", "description": "", - "version": "4.1.0", + "version": "4.2.0", "author": "", "license": "MIT", "type": "module", diff --git a/libxtracfg/js/xtracfg/package.json b/libxtracfg/js/xtracfg/package.json index dfdd5be..cf570d5 100644 --- a/libxtracfg/js/xtracfg/package.json +++ b/libxtracfg/js/xtracfg/package.json @@ -1,7 +1,7 @@ { "name": "@xtracfg/core", "description": "", - "version": "4.1.0", + "version": "4.2.0", "author": "", "license": "MIT", "type": "module", From 873d9569c255223a240fa606872d6b56dd91490b Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sat, 22 Mar 2025 17:21:14 +0100 Subject: [PATCH 157/167] release builds --- .github/workflows/xtracfg.yml | 1 + .github/workflows/xtractl.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 6fa65d7..ae21aa6 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -232,6 +232,7 @@ jobs: value: ${{ github.sha }} length_from_start: 7 - uses: bhowell2/github-substring-action@1.0.2 + if: ${{ github.ref_type == 'tag' && startsWith(github.ref_name, 'v') }} id: short-tag with: value: ${{ github.ref_name }} diff --git a/.github/workflows/xtractl.yml b/.github/workflows/xtractl.yml index fa2c3cb..30e11dc 100644 --- a/.github/workflows/xtractl.yml +++ b/.github/workflows/xtractl.yml @@ -58,6 +58,7 @@ jobs: value: ${{ github.sha }} length_from_start: 7 - uses: bhowell2/github-substring-action@1.0.2 + if: ${{ github.ref_type == 'tag' && startsWith(github.ref_name, 'v') }} id: short-tag with: value: ${{ github.ref_name }} From 46e3acf72b457cb455ff04fdf7f37fc9e0d8c323 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sun, 23 Mar 2025 15:56:17 +0100 Subject: [PATCH 158/167] release builds --- .github/workflows/xtracfg.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index ae21aa6..d148eec 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -69,9 +69,9 @@ jobs: - name: js working-directory: ./libxtracfg/js/xtracfg-native-binding run: | - npm ci - npm run prebuildify - npm run test + npm --loglevel verbose ci --ignore-scripts + npm --loglevel verbose run prebuildify + npm --loglevel verbose run test - name: log3 run: | ls -lR ./libxtracfg/js/xtracfg-native-binding/prebuilds @@ -191,11 +191,9 @@ jobs: - name: publish-tag if: ${{ github.ref_type == 'tag' }} env: - DIST_TAG: ${{ github.ref_name == 'main' && 'next' || github.ref_name }} NPM_TOKEN: ${{ secrets.npm_rw_token }} run: | set -x - #npm run bump -- prerelease --build-metadata ${DIST_TAG} --preid ${DIST_TAG} npm ci --ignore-scripts npm run build npm run publish -- from-package From 772cdf376ddeef278251301d460d1fa1505248b9 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sun, 23 Mar 2025 16:21:32 +0100 Subject: [PATCH 159/167] release build --- .github/workflows/xtracfg.yml | 2 +- .github/workflows/xtractl.yml | 19 +++++++++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index d148eec..fb0b148 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -69,7 +69,7 @@ jobs: - name: js working-directory: ./libxtracfg/js/xtracfg-native-binding run: | - npm --loglevel verbose ci --ignore-scripts + npm --loglevel verbose ci --workspaces=false npm --loglevel verbose run prebuildify npm --loglevel verbose run test - name: log3 diff --git a/.github/workflows/xtractl.yml b/.github/workflows/xtractl.yml index 30e11dc..a28a3b5 100644 --- a/.github/workflows/xtractl.yml +++ b/.github/workflows/xtractl.yml @@ -40,6 +40,11 @@ jobs: name: dist path: ./xtractl/dist retention-days: 1 + - uses: actions/upload-artifact@v4 + with: + name: common + path: ./xtractl/Dockerfile + retention-days: 1 docker: runs-on: ubuntu-latest @@ -48,7 +53,10 @@ jobs: - name: load uses: actions/download-artifact@v4 with: - name: dist + pattern: "{common,dist}" + - name: chmod + run: | + chmod +x ./dist/*/xtractl - name: log1 run: | ls -lR @@ -75,7 +83,8 @@ jobs: if: ${{ github.ref_type == 'branch' && github.ref_name == 'main' }} uses: docker/build-push-action@v6 with: - context: . + context: ./dist + file: ./common/Dockerfile push: true pull: true tags: | @@ -88,7 +97,8 @@ jobs: if: ${{ github.ref_type == 'branch' && github.ref_name != 'main' }} uses: docker/build-push-action@v6 with: - context: . + context: ./dist + file: ./common/Dockerfile push: true pull: true tags: | @@ -101,7 +111,8 @@ jobs: if: ${{ github.ref_type == 'tag' && startsWith(github.ref_name, 'v') }} uses: docker/build-push-action@v6 with: - context: . + context: ./dist + file: ./common/Dockerfile push: true pull: true tags: | From 959895e53ac48cc38ea917491d0fd7d8351fda4a Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sun, 23 Mar 2025 16:44:37 +0100 Subject: [PATCH 160/167] release build --- .github/workflows/xtractl.yml | 26 +- .../xtracfg-native-binding/package-lock.json | 332 +++++++++++++++++- 2 files changed, 336 insertions(+), 22 deletions(-) diff --git a/.github/workflows/xtractl.yml b/.github/workflows/xtractl.yml index a28a3b5..7a01da5 100644 --- a/.github/workflows/xtractl.yml +++ b/.github/workflows/xtractl.yml @@ -40,11 +40,19 @@ jobs: name: dist path: ./xtractl/dist retention-days: 1 - - uses: actions/upload-artifact@v4 - with: - name: common - path: ./xtractl/Dockerfile - retention-days: 1 + - name: release + #if: ${{ github.ref_type == 'tag' && startsWith(github.ref_name, 'v') }} + working-directory: ./xtractl/dist + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + chmod +x ./linux-amd64/xtractl + chmod +x ./linux-arm64/xtractl + tar -czvf xtractl_${{ github.ref_name }}_linux_amd64.tar.gz -C ./linux-amd64 xtractl + tar -czvf xtractl_${{ github.ref_name }}_linux_arm64.tar.gz -C ./linux-arm64 xtractl + gh release create ${{ github.ref_name }} --title ${{ github.ref_name }} --draft + gh release upload ${{ github.ref_name }} xtractl_${{ github.ref_name }}_linux_amd64.tar.gz + gh release upload ${{ github.ref_name }} xtractl_${{ github.ref_name }}_linux_arm64.tar.gz docker: runs-on: ubuntu-latest @@ -53,7 +61,7 @@ jobs: - name: load uses: actions/download-artifact@v4 with: - pattern: "{common,dist}" + name: dist - name: chmod run: | chmod +x ./dist/*/xtractl @@ -84,7 +92,7 @@ jobs: uses: docker/build-push-action@v6 with: context: ./dist - file: ./common/Dockerfile + file: ./dist/Dockerfile push: true pull: true tags: | @@ -98,7 +106,7 @@ jobs: uses: docker/build-push-action@v6 with: context: ./dist - file: ./common/Dockerfile + file: ./dist/Dockerfile push: true pull: true tags: | @@ -112,7 +120,7 @@ jobs: uses: docker/build-push-action@v6 with: context: ./dist - file: ./common/Dockerfile + file: ./dist/Dockerfile push: true pull: true tags: | diff --git a/libxtracfg/js/xtracfg-native-binding/package-lock.json b/libxtracfg/js/xtracfg-native-binding/package-lock.json index dcc383d..e8986e1 100644 --- a/libxtracfg/js/xtracfg-native-binding/package-lock.json +++ b/libxtracfg/js/xtracfg-native-binding/package-lock.json @@ -1,32 +1,162 @@ { - "name": "xtracfg-native-binding", - "version": "4.1.0", + "name": "@xtracfg/native", + "version": "4.2.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "xtracfg-native-binding", + "name": "@xtracfg/native", + "version": "4.2.0", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "node-addon-api": "^8.2.1", + "node-gyp-build": "^4.8.2" + }, + "devDependencies": { + "prebuildify": "^6.0.1" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/bl": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "license": "MIT", "dependencies": { - "node-addon-api": "^8.2.1" + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true, + "license": "ISC" + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, "license": "MIT", "dependencies": { - "file-uri-to-path": "1.0.0" + "once": "^1.4.0" } }, - "node_modules/file-uri-to-path": { + "node_modules/fs-constants": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true, + "license": "MIT" + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true, "license": "MIT" }, + "node_modules/node-abi": { + "version": "3.74.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.74.0.tgz", + "integrity": "sha512-c5XK0MjkGBrQPGYG24GBADZud0NCbznxNx0ZkS+ebUTrmV1qTDxPxSL8zEAPURXSbLRWVexxmP4986BziahL5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/node-addon-api": { "version": "8.2.1", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.2.1.tgz", @@ -35,6 +165,182 @@ "engines": { "node": "^18 || ^20 || >= 21" } + }, + "node_modules/node-gyp-build": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", + "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/npm-run-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz", + "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/prebuildify": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/prebuildify/-/prebuildify-6.0.1.tgz", + "integrity": "sha512-8Y2oOOateom/s8dNBsGIcnm6AxPmLH4/nanQzL5lQMU+sC0CMhzARZHizwr36pUPLdvBnOkCNQzxg4djuFSgIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5", + "mkdirp-classic": "^0.5.3", + "node-abi": "^3.3.0", + "npm-run-path": "^3.1.0", + "pump": "^3.0.0", + "tar-fs": "^2.1.0" + }, + "bin": { + "prebuildify": "bin.js" + } + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/tar-fs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.2.tgz", + "integrity": "sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==", + "dev": true, + "license": "MIT", + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" } } -} \ No newline at end of file +} From 7e1834ce22f68e01ceff2943bb753360ca7863cd Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sun, 23 Mar 2025 17:13:19 +0100 Subject: [PATCH 161/167] release build --- .github/workflows/xtractl.yml | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/.github/workflows/xtractl.yml b/.github/workflows/xtractl.yml index 7a01da5..b17fc09 100644 --- a/.github/workflows/xtractl.yml +++ b/.github/workflows/xtractl.yml @@ -5,32 +5,38 @@ on: [push] jobs: build: runs-on: ubuntu-latest - container: - image: docker://ghcr.io/ldproxy/golang-jdk:1.2 - credentials: - username: ${{ github.actor }} - password: ${{ secrets.ghcr_ro_token }} steps: - name: clone uses: actions/checkout@v4 + - uses: actions/setup-go@v5 + with: + go-version: "1.23.2" + cache-dependency-path: xtracfg/go.sum + - uses: bhowell2/github-substring-action@1.0.2 + id: short-sha + with: + value: ${{ github.sha }} + length_from_start: 7 - name: build working-directory: ./xtractl env: - CI_COMMIT_BRANCH: ${{ github.ref_name }} - CI_COMMIT_SHA: ${{ github.sha }} - CI_COMMIT_TAG: ${{ github.ref_type == 'tag' && github.ref_name || '' }} + CMD_GIT_BRANCH: github.com/interactive-instruments/xtraplatform-cli/xtractl/cmd.gitBranch=${{ github.ref_name }} + CMD_GIT_SHA: github.com/interactive-instruments/xtraplatform-cli/xtractl/cmd.gitSha=${{ steps.short-sha.outputs.substring }} + CMD_GIT_TAG: github.com/interactive-instruments/xtraplatform-cli/xtractl/cmd.gitTag=${{ github.ref_type == 'tag' && github.ref_name || '' }} run: | - git config --global --add safe.directory $GITHUB_WORKSPACE - CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o dist/linux-amd64/xtractl -ldflags="-s -w -X github.com/interactive-instruments/xtraplatform-cli/xtractl/cmd.gitTag=${CI_COMMIT_TAG} -X github.com/interactive-instruments/xtraplatform-cli/xtractl/cmd.gitSha=${CI_COMMIT_SHA} -X github.com/interactive-instruments/xtraplatform-cli/xtractl/cmd.gitBranch=${CI_COMMIT_BRANCH}" - CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -o dist/linux-arm64/xtractl -ldflags="-s -w -X github.com/interactive-instruments/xtraplatform-cli/xtractl/cmd.gitTag=${CI_COMMIT_TAG} -X github.com/interactive-instruments/xtraplatform-cli/xtractl/cmd.gitSha=${CI_COMMIT_SHA} -X github.com/interactive-instruments/xtraplatform-cli/xtractl/cmd.gitBranch=${CI_COMMIT_BRANCH}" + #git config --global --add safe.directory $GITHUB_WORKSPACE + CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o dist/linux-amd64/xtractl -ldflags="-s -w -X ${CMD_GIT_TAG} -X ${CMD_GIT_SHA} -X ${CMD_GIT_BRANCH}" + CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -o dist/linux-arm64/xtractl -ldflags="-s -w -X ${CMD_GIT_TAG} -X ${CMD_GIT_SHA} -X ${CMD_GIT_BRANCH}" cp Dockerfile dist/ - name: log1 run: | ls -lR ./xtractl/dist - - name: upx - uses: docker://backplane/upx:latest + - uses: mmatheson/ghaction-upx@v1.0.2 with: - args: upx --best xtractl/dist/linux-amd64/xtractl xtractl/dist/linux-arm64/xtractl + version: v4.2.4 + files: | + ./xtractl/dist/*/xtractl + args: --best --force-macos - name: log2 run: | ls -lR ./xtractl/dist From bef286be84bca4891bed1e857a1eed53b6da4b64 Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sun, 23 Mar 2025 17:26:21 +0100 Subject: [PATCH 162/167] release build --- .github/workflows/xtractl.yml | 5 ++++- libxtracfg/js/xtracfg-native-binding/binding.gyp | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/xtractl.yml b/.github/workflows/xtractl.yml index b17fc09..cfafccf 100644 --- a/.github/workflows/xtractl.yml +++ b/.github/workflows/xtractl.yml @@ -68,9 +68,12 @@ jobs: uses: actions/download-artifact@v4 with: name: dist + - name: log0 + run: | + ls -lR - name: chmod run: | - chmod +x ./dist/*/xtractl + chmod +x ./dist/**/xtractl - name: log1 run: | ls -lR diff --git a/libxtracfg/js/xtracfg-native-binding/binding.gyp b/libxtracfg/js/xtracfg-native-binding/binding.gyp index 6041b03..d16e3c3 100644 --- a/libxtracfg/js/xtracfg-native-binding/binding.gyp +++ b/libxtracfg/js/xtracfg-native-binding/binding.gyp @@ -3,8 +3,8 @@ { 'target_name': 'xtracfg-native', 'sources': [ 'src/xtracfg_lib.cc' ], - 'libraries': [ '<(local_prefix)/../c/build/libxtracfg.a' ], - 'include_dirs': [" Date: Sun, 23 Mar 2025 17:42:42 +0100 Subject: [PATCH 163/167] release build --- .github/workflows/xtracfg.yml | 2 +- .github/workflows/xtractl.yml | 8 +------- libxtracfg/js/xtracfg-native-binding/binding.gyp | 4 ++-- 3 files changed, 4 insertions(+), 10 deletions(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index fb0b148..d53d823 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -69,7 +69,7 @@ jobs: - name: js working-directory: ./libxtracfg/js/xtracfg-native-binding run: | - npm --loglevel verbose ci --workspaces=false + npm --loglevel verbose ci --workspace=xtracfg-native-binding npm --loglevel verbose run prebuildify npm --loglevel verbose run test - name: log3 diff --git a/.github/workflows/xtractl.yml b/.github/workflows/xtractl.yml index cfafccf..f657b1d 100644 --- a/.github/workflows/xtractl.yml +++ b/.github/workflows/xtractl.yml @@ -73,7 +73,7 @@ jobs: ls -lR - name: chmod run: | - chmod +x ./dist/**/xtractl + chmod +x ./*/xtractl - name: log1 run: | ls -lR @@ -100,8 +100,6 @@ jobs: if: ${{ github.ref_type == 'branch' && github.ref_name == 'main' }} uses: docker/build-push-action@v6 with: - context: ./dist - file: ./dist/Dockerfile push: true pull: true tags: | @@ -114,8 +112,6 @@ jobs: if: ${{ github.ref_type == 'branch' && github.ref_name != 'main' }} uses: docker/build-push-action@v6 with: - context: ./dist - file: ./dist/Dockerfile push: true pull: true tags: | @@ -128,8 +124,6 @@ jobs: if: ${{ github.ref_type == 'tag' && startsWith(github.ref_name, 'v') }} uses: docker/build-push-action@v6 with: - context: ./dist - file: ./dist/Dockerfile push: true pull: true tags: | diff --git a/libxtracfg/js/xtracfg-native-binding/binding.gyp b/libxtracfg/js/xtracfg-native-binding/binding.gyp index d16e3c3..6041b03 100644 --- a/libxtracfg/js/xtracfg-native-binding/binding.gyp +++ b/libxtracfg/js/xtracfg-native-binding/binding.gyp @@ -3,8 +3,8 @@ { 'target_name': 'xtracfg-native', 'sources': [ 'src/xtracfg_lib.cc' ], - 'libraries': [ '<(local_prefix)/../../c/build/libxtracfg.a' ], - 'include_dirs': [" Date: Sun, 23 Mar 2025 17:51:50 +0100 Subject: [PATCH 164/167] release build --- .github/workflows/xtracfg.yml | 2 +- libxtracfg/js/package-lock.json | 14 +++++++------- .../js/xtracfg-transport-native/package.json | 4 ++-- .../js/xtracfg-transport-websocket/package.json | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index d53d823..2e95f93 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -69,7 +69,7 @@ jobs: - name: js working-directory: ./libxtracfg/js/xtracfg-native-binding run: | - npm --loglevel verbose ci --workspace=xtracfg-native-binding + npm --loglevel verbose ci npm --loglevel verbose run prebuildify npm --loglevel verbose run test - name: log3 diff --git a/libxtracfg/js/package-lock.json b/libxtracfg/js/package-lock.json index fefb763..922cd8e 100644 --- a/libxtracfg/js/package-lock.json +++ b/libxtracfg/js/package-lock.json @@ -9588,7 +9588,7 @@ }, "xtracfg": { "name": "@xtracfg/core", - "version": "4.1.0", + "version": "4.2.0", "license": "MIT", "dependencies": { "async-mutex": "^0.5.0", @@ -9606,7 +9606,7 @@ }, "xtracfg-native-binding": { "name": "@xtracfg/native", - "version": "4.1.0", + "version": "4.2.0", "hasInstallScript": true, "license": "MIT", "dependencies": { @@ -9619,11 +9619,11 @@ }, "xtracfg-transport-native": { "name": "@xtracfg/transport-native", - "version": "4.1.0", + "version": "4.2.0", "license": "MIT", "dependencies": { - "@xtracfg/core": "4.1.0", - "@xtracfg/native": "4.1.0" + "@xtracfg/core": "4.2.0", + "@xtracfg/native": "4.2.0" }, "devDependencies": { "@tsconfig/node20": "^20.1.4", @@ -9637,10 +9637,10 @@ }, "xtracfg-transport-websocket": { "name": "@xtracfg/transport-websocket", - "version": "4.1.0", + "version": "4.2.0", "license": "MIT", "dependencies": { - "@xtracfg/core": "4.1.0", + "@xtracfg/core": "4.2.0", "async-mutex": "^0.5.0", "isomorphic-ws": "^5.0.0", "ws": "^8.18.0" diff --git a/libxtracfg/js/xtracfg-transport-native/package.json b/libxtracfg/js/xtracfg-transport-native/package.json index 5f8f433..42358f8 100644 --- a/libxtracfg/js/xtracfg-transport-native/package.json +++ b/libxtracfg/js/xtracfg-transport-native/package.json @@ -13,8 +13,8 @@ "test": "tsx ./test/test.ts" }, "dependencies": { - "@xtracfg/core": "4.1.0", - "@xtracfg/native": "4.1.0" + "@xtracfg/core": "4.2.0", + "@xtracfg/native": "4.2.0" }, "devDependencies": { "@tsconfig/node20": "^20.1.4", diff --git a/libxtracfg/js/xtracfg-transport-websocket/package.json b/libxtracfg/js/xtracfg-transport-websocket/package.json index b9585cb..4cdaccb 100644 --- a/libxtracfg/js/xtracfg-transport-websocket/package.json +++ b/libxtracfg/js/xtracfg-transport-websocket/package.json @@ -14,7 +14,7 @@ "test": "tsx ./test/test.ts" }, "dependencies": { - "@xtracfg/core": "4.1.0", + "@xtracfg/core": "4.2.0", "async-mutex": "^0.5.0", "isomorphic-ws": "^5.0.0", "ws": "^8.18.0" From a0a18f6d3d089983c5caa73e8095b6d96503b98e Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sun, 23 Mar 2025 18:07:19 +0100 Subject: [PATCH 165/167] release build --- .github/workflows/xtracfg.yml | 11 +++++++++++ .github/workflows/xtractl.yml | 11 ++++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 2e95f93..243ba5f 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -224,6 +224,17 @@ jobs: - name: log2 run: | ls -lR + - name: release-github + #if: ${{ github.ref_type == 'tag' && startsWith(github.ref_name, 'v') }} + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + tar -czvf xtracfg_${{ github.ref_name }}_linux_amd64.tar.gz -C ./xtracfg-linux-amd64 xtracfg + tar -czvf xtracfg_${{ github.ref_name }}_linux_arm64.tar.gz -C ./xtracfg-linux-arm64 xtracfg + tar -czvf xtracfg_${{ github.ref_name }}_macos_arm64.tar.gz -C ./xtracfg-darwin-arm64 xtracfg + gh release upload ${{ github.ref_name }} xtracfg_${{ github.ref_name }}_linux_amd64.tar.gz + gh release upload ${{ github.ref_name }} xtracfg_${{ github.ref_name }}_linux_arm64.tar.gz + gh release upload ${{ github.ref_name }} xtracfg_${{ github.ref_name }}_macos_arm64.tar.gz - uses: bhowell2/github-substring-action@1.0.2 id: short-sha with: diff --git a/.github/workflows/xtractl.yml b/.github/workflows/xtractl.yml index f657b1d..2e5ce70 100644 --- a/.github/workflows/xtractl.yml +++ b/.github/workflows/xtractl.yml @@ -27,6 +27,7 @@ jobs: #git config --global --add safe.directory $GITHUB_WORKSPACE CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o dist/linux-amd64/xtractl -ldflags="-s -w -X ${CMD_GIT_TAG} -X ${CMD_GIT_SHA} -X ${CMD_GIT_BRANCH}" CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -o dist/linux-arm64/xtractl -ldflags="-s -w -X ${CMD_GIT_TAG} -X ${CMD_GIT_SHA} -X ${CMD_GIT_BRANCH}" + CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -o dist/darwin-arm64/xtractl -ldflags="-s -w -X ${CMD_GIT_TAG} -X ${CMD_GIT_SHA} -X ${CMD_GIT_BRANCH}" cp Dockerfile dist/ - name: log1 run: | @@ -46,19 +47,20 @@ jobs: name: dist path: ./xtractl/dist retention-days: 1 - - name: release + - name: release-github #if: ${{ github.ref_type == 'tag' && startsWith(github.ref_name, 'v') }} working-directory: ./xtractl/dist env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - chmod +x ./linux-amd64/xtractl - chmod +x ./linux-arm64/xtractl + chmod +x ./*/xtractl tar -czvf xtractl_${{ github.ref_name }}_linux_amd64.tar.gz -C ./linux-amd64 xtractl tar -czvf xtractl_${{ github.ref_name }}_linux_arm64.tar.gz -C ./linux-arm64 xtractl + tar -czvf xtractl_${{ github.ref_name }}_macos_arm64.tar.gz -C ./darwin-arm64 xtractl gh release create ${{ github.ref_name }} --title ${{ github.ref_name }} --draft gh release upload ${{ github.ref_name }} xtractl_${{ github.ref_name }}_linux_amd64.tar.gz gh release upload ${{ github.ref_name }} xtractl_${{ github.ref_name }}_linux_arm64.tar.gz + gh release upload ${{ github.ref_name }} xtractl_${{ github.ref_name }}_macos_arm64.tar.gz docker: runs-on: ubuntu-latest @@ -100,6 +102,7 @@ jobs: if: ${{ github.ref_type == 'branch' && github.ref_name == 'main' }} uses: docker/build-push-action@v6 with: + context: . push: true pull: true tags: | @@ -112,6 +115,7 @@ jobs: if: ${{ github.ref_type == 'branch' && github.ref_name != 'main' }} uses: docker/build-push-action@v6 with: + context: . push: true pull: true tags: | @@ -124,6 +128,7 @@ jobs: if: ${{ github.ref_type == 'tag' && startsWith(github.ref_name, 'v') }} uses: docker/build-push-action@v6 with: + context: . push: true pull: true tags: | From 36f0697048288afac0a95be963834ad27e49518e Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sun, 23 Mar 2025 18:23:36 +0100 Subject: [PATCH 166/167] release build --- .github/workflows/xtracfg.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 243ba5f..96f18e4 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -232,9 +232,9 @@ jobs: tar -czvf xtracfg_${{ github.ref_name }}_linux_amd64.tar.gz -C ./xtracfg-linux-amd64 xtracfg tar -czvf xtracfg_${{ github.ref_name }}_linux_arm64.tar.gz -C ./xtracfg-linux-arm64 xtracfg tar -czvf xtracfg_${{ github.ref_name }}_macos_arm64.tar.gz -C ./xtracfg-darwin-arm64 xtracfg - gh release upload ${{ github.ref_name }} xtracfg_${{ github.ref_name }}_linux_amd64.tar.gz - gh release upload ${{ github.ref_name }} xtracfg_${{ github.ref_name }}_linux_arm64.tar.gz - gh release upload ${{ github.ref_name }} xtracfg_${{ github.ref_name }}_macos_arm64.tar.gz + gh release upload ${{ github.ref_name }} xtracfg_${{ github.ref_name }}_linux_amd64.tar.gz --repo ldproxy/xtraplatform-cli + gh release upload ${{ github.ref_name }} xtracfg_${{ github.ref_name }}_linux_arm64.tar.gz --repo ldproxy/xtraplatform-cli + gh release upload ${{ github.ref_name }} xtracfg_${{ github.ref_name }}_macos_arm64.tar.gz --repo ldproxy/xtraplatform-cli - uses: bhowell2/github-substring-action@1.0.2 id: short-sha with: From b7f4f95fb25c36490307177649b225dd077de04a Mon Sep 17 00:00:00 2001 From: Andreas Zahnen Date: Sun, 23 Mar 2025 18:41:27 +0100 Subject: [PATCH 167/167] release build --- .github/workflows/xtracfg.yml | 2 +- .github/workflows/xtractl.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/xtracfg.yml b/.github/workflows/xtracfg.yml index 96f18e4..6e112a6 100644 --- a/.github/workflows/xtracfg.yml +++ b/.github/workflows/xtracfg.yml @@ -225,7 +225,7 @@ jobs: run: | ls -lR - name: release-github - #if: ${{ github.ref_type == 'tag' && startsWith(github.ref_name, 'v') }} + if: ${{ github.ref_type == 'tag' && startsWith(github.ref_name, 'v') }} env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | diff --git a/.github/workflows/xtractl.yml b/.github/workflows/xtractl.yml index 2e5ce70..7fcc3c8 100644 --- a/.github/workflows/xtractl.yml +++ b/.github/workflows/xtractl.yml @@ -48,7 +48,7 @@ jobs: path: ./xtractl/dist retention-days: 1 - name: release-github - #if: ${{ github.ref_type == 'tag' && startsWith(github.ref_name, 'v') }} + if: ${{ github.ref_type == 'tag' && startsWith(github.ref_name, 'v') }} working-directory: ./xtractl/dist env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}