diff --git a/.asf.yaml b/.asf.yaml index 40a66c4cea..5424b71445 100644 --- a/.asf.yaml +++ b/.asf.yaml @@ -1,3 +1,42 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + github: + description: Apache KIE Examples repository with showcases on how to use Kogito, Drools, SonataFlow + homepage: https://kie.apache.org + labels: + - apache + - java + - example + - getting-started + - workflow + - workflow-engine + - spring-boot + - quarkus + - kogito + - knative + - cloud-native + - cloudevents + - kubernetes + - hacktoberfest + - drools + - bpmn + - dmn + - pmml + - optaplanner features: issues: true diff --git a/.ci/jenkins/dsl/jobs.groovy b/.ci/jenkins/dsl/jobs.groovy index 78895e6f71..c04c215cff 100644 --- a/.ci/jenkins/dsl/jobs.groovy +++ b/.ci/jenkins/dsl/jobs.groovy @@ -77,6 +77,13 @@ Map getMultijobPRConfig(JenkinsFolder jobFolder) { env : [ KOGITO_EXAMPLES_SUBFOLDER_POM: 'serverless-workflow-examples/', ] + ], + [ + id: 'kogito-gradle-examples', + primary: true, + env : [ + KOGITO_EXAMPLES_SUBFOLDER_POM: 'gradle-examples/', + ] ] ] ] diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index e3ac70c34d..ec58363d8f 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -2,91 +2,10 @@ Many thanks for submitting your Pull Request :heart:! Please make sure that your PR meets the following requirements: -**WARNING! Please make sure you are opening your PR against `main` branch!** - - [ ] You have read the [contributors guide](https://github.com/apache/incubator-kie-kogito-runtimes#contributing-to-kogito) -- [ ] Pull Request title is properly formatted: `KOGITO-XYZ Subject` -- [ ] Pull Request title contains the target branch if not targeting main: `[0.9.x] KOGITO-XYZ Subject` -- [ ] Pull Request contains link to the JIRA issue +- [ ] Pull Request title is properly formatted: `ISSUE-XYZ: ` +- [ ] Pull Request title contains the target branch if not targeting main: `[10.0.x] ISSUE-XYZ ` +- [ ] Pull Request contains link to the GitHub issue - [ ] Pull Request contains link to any dependent or related Pull Request - [ ] Pull Request contains description of the issue - [ ] Pull Request does not include fixes for issues other than the main ticket - -
- -How to replicate CI configuration locally? - - -Build Chain tool does "simple" maven build(s), the builds are just Maven commands, but because the repositories relates and depends on each other and any change in API or class method could affect several of those repositories there is a need to use [build-chain tool](https://github.com/kiegroup/github-action-build-chain) to handle cross repository builds and be sure that we always use latest version of the code for each repository. - -[build-chain tool](https://github.com/kiegroup/github-action-build-chain) is a build tool which can be used on command line locally or in Github Actions workflow(s), in case you need to change multiple repositories and send multiple dependent pull requests related with a change you can easily reproduce the same build by executing it on Github hosted environment or locally in your development environment. See [local execution](https://github.com/kiegroup/github-action-build-chain#local-execution) details to get more information about it. -
- -
- -How to retest this PR or trigger a specific build: - - -- for pull request checks - Please add comment: Jenkins retest this - -- for a specific pull request check - Please add comment: Jenkins (re)run [kogito-examples] tests - -- for quarkus branch checks - Run checks against Quarkus current used branch - Please add comment: Jenkins run quarkus-branch - -- for a quarkus branch specific check - Run checks against Quarkus current used branch - Please add comment: Jenkins (re)run [kogito-examples] quarkus-branch - -- for quarkus main checks - Run checks against Quarkus main branch - Please add comment: Jenkins run quarkus-main - -- for a specific quarkus main check - Run checks against Quarkus main branch - Please add comment: Jenkins (re)run [kogito-examples] quarkus-main - -- for quarkus lts checks - Run checks against Quarkus lts branch - Please add comment: Jenkins run quarkus-lts - -- for a specific quarkus lts check - Run checks against Quarkus lts branch - Please add comment: Jenkins (re)run [kogito-examples] quarkus-lts - -- for native checks - Run native checks - Please add comment: Jenkins run native - -- for a specific native check - Run native checks - Please add comment: Jenkins (re)run [kogito-examples] native - -- for native lts checks - Run native checks against quarkus lts branch - Please add comment: Jenkins run native-lts - -- for a specific native lts check - Run native checks against quarkus lts branch - Please add comment: Jenkins (re)run [kogito-examples] native-lts - -
- -
- -How to backport a pull request to a different branch? - - -In order to automatically create a **backporting pull request** please add one or more labels having the following format `backport-`, where `` is the name of the branch where the pull request must be backported to (e.g., `backport-7.67.x` to backport the original PR to the `7.67.x` branch). - -> **NOTE**: **backporting** is an action aiming to move a change (usually a commit) from a branch (usually the main one) to another one, which is generally referring to a still maintained release branch. Keeping it simple: it is about to move a specific change or a set of them from one branch to another. - -Once the original pull request is successfully merged, the automated action will create one backporting pull request per each label (with the previous format) that has been added. - -If something goes wrong, the author will be notified and at this point a manual backporting is needed. - -> **NOTE**: this automated backporting is triggered whenever a pull request on `main` branch is labeled or closed, but both conditions must be satisfied to get the new PR created. -
diff --git a/.github/workflows/issues.yml b/.github/workflows/issues.yml index 12a88a29ff..02e3f5d05f 100644 --- a/.github/workflows/issues.yml +++ b/.github/workflows/issues.yml @@ -7,9 +7,9 @@ jobs: message: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v6 - name: Send a stream message - uses: zulip/github-actions-zulip/send-message@e71e15b429b0e79cc7b63e4e3dad0146443fab6f + uses: zulip/github-actions-zulip/send-message@d49c9ccdadd884e5b0caf7d4d3955d2bfe510273 env: CONTENT: "I have detected a new issue on ${{ github.event.repo.name }}.\nLink: ${{ github.event.issue.html_url }}\nThis is an automatically relayed message. Don't reply to me directly.\n-- Issue description:\n${{ github.event.issue.body }}" with: diff --git a/.github/workflows/pr-kogito-examples.yml b/.github/workflows/pr-kogito-examples.yml index 75684350c2..a72aeb8da9 100644 --- a/.github/workflows/pr-kogito-examples.yml +++ b/.github/workflows/pr-kogito-examples.yml @@ -20,7 +20,7 @@ jobs: timeout-minutes: 180 strategy: matrix: - job_name: [ kogito-quarkus-examples, serverless-workflow-examples ] + job_name: [ kogito-java-examples, kogito-quarkus-examples, kogito-springboot-examples, serverless-workflow-examples, kogito-gradle-examples ] os: [ubuntu-latest] java-version: [17] maven-version: ['3.9.11'] @@ -37,9 +37,14 @@ jobs: - job_name: serverless-workflow-examples repository: incubator-kie-kogito-examples env_KOGITO_EXAMPLES_SUBFOLDER_POM: serverless-workflow-examples/ + - job_name: kogito-gradle-examples + repository: incubator-kie-kogito-examples + env_KOGITO_EXAMPLES_SUBFOLDER_POM: gradle-examples/ fail-fast: false runs-on: ${{ matrix.os }} name: ${{ matrix.job_name }} (${{ matrix.os }} / Java-${{ matrix.java-version }} / Maven-${{ matrix.maven-version }}) + env: + DEPENDENCY_TREE_FILE: 'mvn_dependency_tree_${{ matrix.job_name }}_${{ matrix.os }}.txt' steps: - name: Clean Disk Space uses: kiegroup/kie-ci/.ci/actions/ubuntu-disk-space@main @@ -66,3 +71,9 @@ jobs: if: ${{ always() }} with: report_paths: '**/*-reports/TEST-*.xml' + - name: Upload Dependency Trees + uses: actions/upload-artifact@v4 + if: ${{ always() }} + with: + name: dependency-trees-logs_${{ matrix.job_name }}_${{ matrix.os }} + path: '**/${{ env.DEPENDENCY_TREE_FILE }}' \ No newline at end of file diff --git a/gradle-examples/README.md b/gradle-examples/README.md new file mode 100644 index 0000000000..e0c8e94400 --- /dev/null +++ b/gradle-examples/README.md @@ -0,0 +1,122 @@ + + +# Kogito Gradle Plugin Examples + +This modules contains quarkus and springboot kogito examples built with gradle. +This module, and its children, also contains pom.xml files so that they can be built and tested inside maven-based CI. + +To avoid duplication of the same folder, all the concrete examples uses the same gradle executables [gradlew](./gradlew) or [gradlew.bat](./gradlew.bat) and relates to the same [gradle-wrapper](./gradle) directory. + +## CI Integration +This module, and its children, also contains pom.xml files so that they can be built and tested inside maven-based CI. + +Maven compilation is disabled, in the actual examples, with this snippet in the pom.xml + +```xml + + + org.apache.maven.plugins + maven-compiler-plugin + + + **/*.java + + + **/*.java + + + +``` + +while the next one is used to fire gradle test tasks from maven (featuring the "exec-maven-plugin"): + +```xml + + + org.codehaus.mojo + exec-maven-plugin + + + gradle + test + + ${gradle.executable} + + clean + test + + + + exec + + + + +``` + +The maven-clean-plugin is also configured to include the gradle-specific `build` directory: + +```xml + + maven-clean-plugin + + + + ${project.basedir}/build + + + + +``` + +The executed gradle script (`gradlew` vs `gradlew.bat`) is selected at execution time depending on the underlying OS; by default is `gradlew`, but the following snippet adapt it on Windows systems: + +```xml + + WINDOWS + + + windows + + + + ${project.parent.parent.basedir}/gradlew.bat + + + ``` + + + +## GRADLE Profiles +GRADLE does not offer the concept of profile out of the box, as MAVEN. +TO achieve that, the steps to follow are described [here](https://docs.gradle.org/current/userguide/migrating_from_maven.html#migmvn:profiles_and_properties) + +1. inside GRADLE, we'll call them `buildProfile` +2. create a `build.gradle` file with all common settings +3. for each `buildProfile`, create a `profile-${buildProfile}.gradle` file, containing only the profile-specific settings +4. add the following snippet in the `build.gradle`, to load the `buildProfile` specific building script +```groovy +if (!hasProperty('buildProfile')) ext.buildProfile = 'prod' +apply from: "profile-${buildProfile}.gradle" +``` +(here, we are assuming that, by default, the buildProfile will be `prod`) + + + diff --git a/gradle-examples/gradle/wrapper/gradle-wrapper.jar b/gradle-examples/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000..9bbc975c74 Binary files /dev/null and b/gradle-examples/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle-examples/gradle/wrapper/gradle-wrapper.properties b/gradle-examples/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000000..23449a2b54 --- /dev/null +++ b/gradle-examples/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradle-examples/gradlew b/gradle-examples/gradlew new file mode 100755 index 0000000000..faf93008b7 --- /dev/null +++ b/gradle-examples/gradlew @@ -0,0 +1,251 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradle-examples/gradlew.bat b/gradle-examples/gradlew.bat new file mode 100644 index 0000000000..9d21a21834 --- /dev/null +++ b/gradle-examples/gradlew.bat @@ -0,0 +1,94 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/README.md b/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/README.md new file mode 100644 index 0000000000..88d9de41f2 --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/README.md @@ -0,0 +1,264 @@ +# DMN + Spring Boot example + +## Description + +A simple DMN service to evaluate a traffic violation and a model with input constraints. + +The org.kie.dmn.runtime.typecheck=true property is used to enable type and value check. + +## Installing and Running + +### Prerequisites + +You will need: + - Java 11+ installed + - Environment variable JAVA_HOME set accordingly + +## Build and run + +### Prerequisites + +You will need: +- Java 17+ installed +- Environment variable JAVA_HOME set accordingly + +### Compile and Run in Local Dev Mode + +```sh +../../gradlew clean bootRun +``` + +or on windows + +```sh +..\..\gradlew.bat clean bootRun +``` + +### Package and Run in JVM mode +```sh +../../gradlew clean bootJar +java -jar build/libs/process-decisions-rules-springboot-gradle.jar +``` + +or on windows + +```sh +..\..\gradlew.bat clean jar +java -jar build\libs\process-decisions-rules-springboot-gradle.jar +``` + +## HOT-RELOAD +That module feature the "org.springframework.boot:spring-boot-devtools" plugin to enable hot reload on source change (additional dependency): + +```kts + developmentOnly 'org.springframework.boot:spring-boot-devtools' +``` + +To achieve that: +1. in one terminal, issue the command that will listen for code change and, eventually, rebuilt the application on-demand +```sh +../../gradlew clean compileSecondaryJava --continuous --parallel +``` +or on windows + +```sh +..\..\gradlew.bat clean compileSecondaryJava --continuous --parallel +``` + + +2. inside another terminal, issue the command that actually start the application +```sh +../../gradlew bootRun +``` + +or on windows + +```sh +..\..\gradlew.bat bootRun +``` + +Whenever a source is modified, the code will be rebuilt and the application re-loaded with the modifications. + +## Test DMN Model using Maven + +Validate the functionality of DMN models before deploying them into a production environment by defining test scenarios in Test Scenario Editor. + +To define test scenarios you need to create a .scesim file inside your project and link it to the DMN model you want to be tested. Run all Test Scenarios, executing: + +```sh +mvn clean test +``` +See results in surefire test report `target/surefire-reports` + +## OpenAPI (Swagger) documentation +[Specification at swagger.io](https://swagger.io/docs/specification/about/) + +The [Swagger](http://localhost:8080/swagger-ui/index.html) page shows all the available endpoints, and it could be used to test them. +You can take a look at the [OpenAPI definition](http://localhost:8080/v3/api-docs) - automatically generated and included in this service - to determine all available operations exposed by this service. For easy readability you can visualize the OpenAPI definition file using a UI tool like for example available [Swagger Editor](https://editor.swagger.io). + + +## Example Usage + +Once the service is up and running, you can use the following example to interact with the service. + +### POST /Traffic Violation + +Returns penalty information from the given inputs -- driver and violation: +Given inputs: + +```json +{ + "Driver":{ "Points":2 }, + "Violation":{ + "Type":"speed", + "Actual Speed":120, + "Speed Limit":100 + } +} +``` + +Curl command (using the JSON object above): + +```sh +curl -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{"Driver":{"Points":2},"Violation":{"Type":"speed","Actual Speed":120,"Speed Limit":100}}' http://localhost:8080/Traffic%20Violation +``` + +As response, penalty information is returned. + +Example response: +```json +{ + "Violation":{ + "Type":"speed", + "Speed Limit":100, + "Actual Speed":120 + }, + "Driver":{ + "Points":2 + }, + "Fine":{ + "Points":3, + "Amount":500 + }, + "Should the driver be suspended?":"No" +} +``` + +### POST /AllowedValuesChecksInsideCollection + +Valid interests for the model are: Golf, Computer, Hockey, Jogging + +Given valid input: + +```json +{ + "p1": { + "Name": "Joe", + "Interests": [ + "Golf" + ] + } +} +``` + +Curl command (using the JSON object above): + +```sh +curl -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{"p1": {"Name":"Joe","Interests":["Golf"]}}' http://localhost:8080/AllowedValuesChecksInsideCollection +``` + +As response, interests information is returned. + +Example response: +```json +{ + "p1": { + "Interests": [ + "Golf" + ], + "Name": "Joe" + }, + "MyDecision": "The Person Joe likes 1 thing(s)." +} +``` + +With invalid value + +```json +{ + "p1": { + "Name": "Joe", + "Interests": [ + "Dancing" + ] + } +} +``` + +Curl command (using the JSON object above): + +```sh +curl -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{"p1": {"Name":"Joe","Interests":["Dancing"]}}' http://localhost:8080/AllowedValuesChecksInsideCollection +``` + +As response, error information is returned. + +Example response: +```json +{ + "namespace": "http://www.trisotech.com/definitions/_238bd96d-47cd-4746-831b-504f3e77b442", + "modelName": "AllowedValuesChecksInsideCollection", + "dmnContext": { + "p1": { + "Interests": [ + "Dancing" + ], + "Name": "Joe" + } + }, + "messages": [ + { + "severity": "ERROR", + "message": "Error while evaluating node 'MyDecision' for dependency 'p1': the dependency value '{Interests=[Dancing], Name=Joe}' is not allowed by the declared type (DMNType{ http://www.trisotech.com/definitions/_238bd96d-47cd-4746-831b-504f3e77b442 : Person })", + "messageType": "ERROR_EVAL_NODE", + "sourceId": "_27453770-68e3-48da-8605-d33a653c09ef", + "level": "ERROR" + } + ], + "decisionResults": [ + { + "decisionId": "_ed3b9794-9306-4b6a-b4f9-5486be3c5515", + "decisionName": "MyDecision", + "result": null, + "messages": [ + { + "severity": "ERROR", + "message": "Error while evaluating node 'MyDecision' for dependency 'p1': the dependency value '{Interests=[Dancing], Name=Joe}' is not allowed by the declared type (DMNType{ http://www.trisotech.com/definitions/_238bd96d-47cd-4746-831b-504f3e77b442 : Person })", + "messageType": "ERROR_EVAL_NODE", + "sourceId": "_27453770-68e3-48da-8605-d33a653c09ef", + "level": "ERROR" + } + ], + "evaluationStatus": "SKIPPED" + } + ] +} +``` + +## Developer notes + +In order to have the DMN generated resources properly scanned by Spring Boot, please ensure the DMN model namespaces + is included in the String application configuration. + +The generated classes must be included in the annotation definitions of the main `Application` class: + +``` +@SpringBootApplication(scanBasePackages={"org.kie.kogito.**", "org.kie.kogito.app.**", "http*"}) +public class KogitoSpringbootApplication { + + public static void main(String[] args) { + SpringApplication.run(KogitoSpringbootApplication.class, args); + } +} +``` + diff --git a/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/build.gradle b/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/build.gradle new file mode 100644 index 0000000000..6a87603633 --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/build.gradle @@ -0,0 +1,71 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ + +plugins { + id 'java' + id 'io.quarkus' + + // Inspection purpose + id "com.dorongold.task-tree" version "${taskTreeVersion}" +} + +repositories { + mavenCentral() + mavenLocal() + maven { + url = uri("https://repo.maven.apache.org/maven2/") + } + maven { + url = uri("https://repository.apache.org/snapshots/") + } +} + +group 'org.kie.kogito.examples' +version '999-SNAPSHOT' + +dependencies { + implementation enforcedPlatform("${quarkusPlatformGroupId}:${quarkusPlatformArtifactId}:${quarkusPlatformVersion}") + implementation 'io.quarkus:quarkus-arc' + implementation 'io.quarkus:quarkus-resteasy' + implementation 'io.quarkus:quarkus-resteasy-jackson' + implementation 'io.quarkus:quarkus-smallrye-openapi' + + implementation platform("org.kie.kogito:kogito-bom:${kogitoVersion}") + + implementation 'org.kie.kogito:jbpm-flow' + implementation 'org.drools:drools-quarkus-decisions' + testImplementation("org.junit.jupiter:junit-jupiter:${junitVersion}") + testImplementation 'io.quarkus:quarkus-junit5' + testImplementation("io.rest-assured:rest-assured") + testImplementation("org.kie.kogito:kogito-scenario-simulation") +} + +test { + systemProperty "java.util.logging.manager", "org.jboss.logmanager.LogManager" +} + +compileJava { + options.encoding = 'UTF-8' + options.compilerArgs << '-parameters' +} + +compileTestJava { + options.encoding = 'UTF-8' +} \ No newline at end of file diff --git a/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/gradle.properties b/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/gradle.properties new file mode 100644 index 0000000000..6a66660583 --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/gradle.properties @@ -0,0 +1,10 @@ +#Gradle properties +## 3.27.1 needed to support gradle 9.2 +quarkusPluginId=io.quarkus +quarkusPluginVersion=3.27.1 +quarkusPlatformGroupId=io.quarkus.platform +quarkusPlatformArtifactId=quarkus-bom +quarkusPlatformVersion=3.27.1 +taskTreeVersion=4.0.1 +junitVersion=5.12.1 +kogitoVersion=999-SNAPSHOT \ No newline at end of file diff --git a/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/pom.xml b/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/pom.xml new file mode 100644 index 0000000000..59d46a950a --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/pom.xml @@ -0,0 +1,93 @@ + + + 4.0.0 + + org.kie.kogito.examples + kogito-quarkus-gradle-examples + 999-SNAPSHOT + + + dmn-quarkus-gradle + Kogito Example :: Gradle :: Quarkus :: Decisions - Scesim + Decision with SCESIM integration- Quarkus - Gradle + + + dmn.quarkus.gradle + 17 + ${project.parent.parent.basedir}/gradlew + + + + + org.kie.kogito + kogito-gradle-plugin + ${project.version} + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + **/*.java + + + **/*.java + + + + + + org.codehaus.mojo + exec-maven-plugin + + + gradle + test + + ${gradle.executable} + + clean + test + + + + exec + + + + + + + maven-clean-plugin + + + + ${project.basedir}/build + + + + + + + + + + WINDOWS + + + windows + + + + ${project.parent.parent.basedir}/gradlew.bat + + + + \ No newline at end of file diff --git a/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/settings.gradle b/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/settings.gradle new file mode 100644 index 0000000000..266b1513c0 --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/settings.gradle @@ -0,0 +1,37 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ + +pluginManagement { + repositories { + mavenLocal() + mavenCentral() + maven { + url = uri("target/dependencies") + } + maven { + url = uri("https://plugins.gradle.org/m2/") + } + } + + plugins { + id "${quarkusPluginId}" version "${quarkusPluginVersion}" + } +} +rootProject.name = "dmn-quarkus-gradle" \ No newline at end of file diff --git a/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/integrationTest/java/org/kie/kogito/dmn/quarkus/example/NativeTrafficViolationIT.java b/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/integrationTest/java/org/kie/kogito/dmn/quarkus/example/NativeTrafficViolationIT.java new file mode 100644 index 0000000000..b43c7dca80 --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/integrationTest/java/org/kie/kogito/dmn/quarkus/example/NativeTrafficViolationIT.java @@ -0,0 +1,27 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.kie.kogito.dmn.quarkus.example; + +import io.quarkus.test.junit.QuarkusIntegrationTest; + +@QuarkusIntegrationTest +public class NativeTrafficViolationIT extends TrafficViolationTest { + + // Execute the same tests but in native mode. +} \ No newline at end of file diff --git a/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/main/java/org/kie/kogito/dmn/quarkus/example/CustomDoCompileFEELProfile.java b/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/main/java/org/kie/kogito/dmn/quarkus/example/CustomDoCompileFEELProfile.java new file mode 100644 index 0000000000..65b89720e3 --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/main/java/org/kie/kogito/dmn/quarkus/example/CustomDoCompileFEELProfile.java @@ -0,0 +1,25 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.kie.kogito.dmn.quarkus.example; + +import org.kie.dmn.feel.parser.feel11.profiles.DoCompileFEELProfile; + +public class CustomDoCompileFEELProfile extends DoCompileFEELProfile { + +} \ No newline at end of file diff --git a/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/main/resources/AllowedValuesChecksInsideCollection.dmn b/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/main/resources/AllowedValuesChecksInsideCollection.dmn new file mode 100644 index 0000000000..ade557ea79 --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/main/resources/AllowedValuesChecksInsideCollection.dmn @@ -0,0 +1,77 @@ + + + + + + + string + + + tInterests + + + + string + + + tInterest + + "Golf","Computer","Hockey","Jogging" + + + + + + + + + "The Person " + p1.Name + " likes " + string(count( p1.Interests )) + " thing(s)." + + + + + + \ No newline at end of file diff --git a/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/main/resources/Traffic Violation.dmn b/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/main/resources/Traffic Violation.dmn new file mode 100644 index 0000000000..109d4689e1 --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/main/resources/Traffic Violation.dmn @@ -0,0 +1,230 @@ + + + + + + string + + + number + + + string + + + string + + + number + + + + + string + + + date + + + string + + "speed", "parking", "driving under the influence" + + + + number + + + number + + + + + number + + + number + + + + + + + + + + + + + + Violation.Type + + + + + Violation.Actual Speed - Violation.Speed Limit + + + + + + + "speed" + + + [10..30) + + + 500 + + + 3 + + + + + "speed" + + + >= 30 + + + 1000 + + + 7 + + + + + "parking" + + + - + + + 100 + + + 1 + + + + + "driving under the influence" + + + - + + + 1000 + + + 5 + + + + + + + + + Should the driver be suspended due to points on his license? + "Yes", "No" + + + + + + + + + + + + Driver.Points + Fine.Points + + + + + if Total Points >= 20 then "Yes" else "No" + + + + + + + + + + 50.0 + 254.0 + 329.0 + 119.0 + 100.0 + 186.0 + + + 50.0 + 100.0 + 398.0 + + + 398.0 + + + 398.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/main/resources/application.properties b/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/main/resources/application.properties new file mode 100644 index 0000000000..de90380384 --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/main/resources/application.properties @@ -0,0 +1,24 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +# Packaging + +quarkus.swagger-ui.always-include=true + +org.kie.dmn.runtime.typecheck=true diff --git a/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/test/java/org/kie/kogito/dmn/quarkus/example/AllowedValuesTest.java b/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/test/java/org/kie/kogito/dmn/quarkus/example/AllowedValuesTest.java new file mode 100644 index 0000000000..80dd1992a1 --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/test/java/org/kie/kogito/dmn/quarkus/example/AllowedValuesTest.java @@ -0,0 +1,71 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.kie.kogito.dmn.quarkus.example; + +import org.junit.jupiter.api.Test; + +import io.quarkus.test.junit.QuarkusTest; +import io.restassured.http.ContentType; + +import static io.restassured.RestAssured.given; +import static org.hamcrest.CoreMatchers.containsString; +import static org.hamcrest.Matchers.is; + +@QuarkusTest +public class AllowedValuesTest { + + @Test + public void testAllowedValuesWithValidValue() { + given() + .body("{\n" + + " \"p1\": {\n" + + " \"Name\": \"Joe\",\n" + + " \"Interests\": [\n" + + " \"Golf\"\n" + + " ]\n" + + " }\n" + + "}") + .contentType(ContentType.JSON) + .when() + .post("/AllowedValuesChecksInsideCollection") + .then() + .statusCode(200) + .body("'MyDecision'", is("The Person Joe likes 1 thing(s).")); + } + + @Test + public void testAllowedValuesWithInvalidValue() { + given() + .body("{\n" + + " \"p1\": {\n" + + " \"Name\": \"Joe\",\n" + + " \"Interests\": [\n" + + " \"Dancing\"\n" + + " ]\n" + + " }\n" + + "}") + .contentType(ContentType.JSON) + .when() + .post("/AllowedValuesChecksInsideCollection") + .then() + .statusCode(500) + .body("messages[0].message", containsString( + "Error while evaluating node 'MyDecision' for dependency 'p1': the dependency value '{Interests=[Dancing], Name=Joe}' is not allowed by the declared type (DMNType{ http://www.trisotech.com/definitions/_238bd96d-47cd-4746-831b-504f3e77b442 : Person })")); + } +} diff --git a/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/test/java/org/kie/kogito/dmn/quarkus/example/TrafficViolationTest.java b/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/test/java/org/kie/kogito/dmn/quarkus/example/TrafficViolationTest.java new file mode 100644 index 0000000000..3c42782c77 --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/test/java/org/kie/kogito/dmn/quarkus/example/TrafficViolationTest.java @@ -0,0 +1,52 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.kie.kogito.dmn.quarkus.example; + +import org.junit.jupiter.api.Test; + +import io.quarkus.test.junit.QuarkusTest; +import io.restassured.http.ContentType; + +import static io.restassured.RestAssured.given; +import static org.hamcrest.Matchers.is; + +@QuarkusTest +public class TrafficViolationTest { + + @Test + public void testEvaluateTrafficViolation() { + given() + .body("{\n" + + " \"Driver\": {\n" + + " \"Points\": 2\n" + + " },\n" + + " \"Violation\": {\n" + + " \"Type\": \"speed\",\n" + + " \"Actual Speed\": 120,\n" + + " \"Speed Limit\": 100\n" + + " }\n" + + "}") + .contentType(ContentType.JSON) + .when() + .post("/Traffic Violation") + .then() + .statusCode(200) + .body("'Should the driver be suspended?'", is("No")); + } +} diff --git a/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/test/java/testscenario/TestScenarioJunitActivatorTest.java b/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/test/java/testscenario/TestScenarioJunitActivatorTest.java new file mode 100644 index 0000000000..538d8b1003 --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/test/java/testscenario/TestScenarioJunitActivatorTest.java @@ -0,0 +1,31 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package testscenario; + +import org.drools.scenariosimulation.backend.runner.TestScenarioActivator; + +/** + * TestScenarioJunitActivator is a custom JUnit runner that enables the execution of Test Scenario files (*.scesim). + * This activator class, when executed, will load all scesim files available in the project and run them. + * Each row of the scenario will generate a test JUnit result. + */ +@TestScenarioActivator +public class TestScenarioJunitActivatorTest { + +} \ No newline at end of file diff --git a/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/test/resources/TrafficViolationTest.scesim b/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/test/resources/TrafficViolationTest.scesim new file mode 100644 index 0000000000..3a9a5d98f5 --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/test/resources/TrafficViolationTest.scesim @@ -0,0 +1,766 @@ + + + + + + + + + Index + OTHER + + + # + java.lang.Integer + + java.lang.Integer + # + 70 + NOT_EXPRESSION + + + + + Description + OTHER + + + Scenario description + java.lang.String + + java.lang.String + Scenario description + 300 + NOT_EXPRESSION + + + + + Driver + + + Points + + + + 1|5 + GIVEN + + + Driver + Driver + + number + Driver + Points + + 114 + NOT_EXPRESSION + + + + + Violation + + + Type + + + + 1|8 + GIVEN + + + Violation + Violation + + Type + Violation + Type + + 114 + NOT_EXPRESSION + + + + + Violation + + + Speed Limit + + + + 1|9 + GIVEN + + + Violation + Violation + + number + Violation + Speed Limit + + 114 + NOT_EXPRESSION + + + + + Violation + + + Actual Speed + + + + 1|10 + GIVEN + + + Violation + Violation + + number + Violation + Actual Speed + + 114 + NOT_EXPRESSION + + + + + Fine + + + Amount + + + + 1|11 + EXPECT + + + Fine + Fine + + number + Fine + Amount + + 114 + NOT_EXPRESSION + + + + + Fine + + + Points + + + + 1|12 + EXPECT + + + Fine + Fine + + number + Fine + Points + + 114 + NOT_EXPRESSION + + + + + Should the driver be suspended? + + + + 1|13 + EXPECT + + + Should the driver be suspended? + Should the driver be suspended? + + string + Should the driver be suspended? + value + + 114 + NOT_EXPRESSION + + + + + + + + + Scenario description + java.lang.String + + + Description + OTHER + + Above speed limit: 10km/h and 30 km/h + + + + Driver + Driver + + + 1|5 + GIVEN + + 10 + + + + Violation + Violation + + + 1|8 + GIVEN + + "speed" + + + + Violation + Violation + + + 1|9 + GIVEN + + 100 + + + + Violation + Violation + + + 1|10 + GIVEN + + 120 + + + + Fine + Fine + + + 1|11 + EXPECT + + 500 + + + + Fine + Fine + + + 1|12 + EXPECT + + 3 + + + + Should the driver be suspended? + Should the driver be suspended? + + + 1|13 + EXPECT + + "No" + + + + # + java.lang.Integer + + + Index + OTHER + + 1 + + + + + + + + Scenario description + java.lang.String + + + Description + OTHER + + Above speed limit: more than 30 km/h + + + + Driver + Driver + + + 1|5 + GIVEN + + 10 + + + + Violation + Violation + + + 1|8 + GIVEN + + "speed" + + + + Violation + Violation + + + 1|9 + GIVEN + + 100 + + + + Violation + Violation + + + 1|10 + GIVEN + + 150 + + + + Fine + Fine + + + 1|11 + EXPECT + + 1000 + + + + Fine + Fine + + + 1|12 + EXPECT + + 7 + + + + Should the driver be suspended? + Should the driver be suspended? + + + 1|13 + EXPECT + + "No" + + + + # + java.lang.Integer + + + Index + OTHER + + 2 + + + + + + + + Scenario description + java.lang.String + + + Description + OTHER + + Parking violation + + + + Driver + Driver + + + 1|5 + GIVEN + + 10 + + + + Violation + Violation + + + 1|8 + GIVEN + + "parking" + + + + Violation + Violation + + + 1|9 + GIVEN + + + + + Violation + Violation + + + 1|10 + GIVEN + + + + + Fine + Fine + + + 1|11 + EXPECT + + 100 + + + + Fine + Fine + + + 1|12 + EXPECT + + 1 + + + + Should the driver be suspended? + Should the driver be suspended? + + + 1|13 + EXPECT + + "No" + + + + # + java.lang.Integer + + + Index + OTHER + + 3 + + + + + + + + Scenario description + java.lang.String + + + Description + OTHER + + DUI violation + + + + Driver + Driver + + + 1|5 + GIVEN + + 10 + + + + Violation + Violation + + + 1|8 + GIVEN + + "driving under the influence" + + + + Violation + Violation + + + 1|9 + GIVEN + + + + + Violation + Violation + + + 1|10 + GIVEN + + + + + Fine + Fine + + + 1|11 + EXPECT + + 1000 + + + + Fine + Fine + + + 1|12 + EXPECT + + 5 + + + + Should the driver be suspended? + Should the driver be suspended? + + + 1|13 + EXPECT + + "No" + + + + # + java.lang.Integer + + + Index + OTHER + + 4 + + + + + + + + Scenario description + java.lang.String + + + Description + OTHER + + Driver suspended + + + + Driver + Driver + + + 1|5 + GIVEN + + 15 + + + + Violation + Violation + + + 1|8 + GIVEN + + "speed" + + + + Violation + Violation + + + 1|9 + GIVEN + + 100 + + + + Violation + Violation + + + 1|10 + GIVEN + + 140 + + + + Fine + Fine + + + 1|11 + EXPECT + + 1000 + + + + Fine + Fine + + + 1|12 + EXPECT + + 7 + + + + Should the driver be suspended? + Should the driver be suspended? + + + 1|13 + EXPECT + + "Yes" + + + + # + java.lang.Integer + + + Index + OTHER + + 5 + + + + + + + + + + + + 1|1 + GIVEN + + + Empty + java.lang.Void + + java.lang.Void + INSTANCE 1 + PROPERTY 1 + 114 + NOT_EXPRESSION + + + + + + + + + Empty + java.lang.Void + + + 1|1 + GIVEN + + + + + + + + ../../main/resources/Traffic Violation.dmn + DMN + https://github.com/kiegroup/drools/kie-dmn/_A4BCA8B8-CF08-433F-93B2-A2598F19ECFF + Traffic Violation + false + false + + + + + \ No newline at end of file diff --git a/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/test/resources/application.properties b/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/test/resources/application.properties new file mode 100644 index 0000000000..a047ea13ba --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/test/resources/application.properties @@ -0,0 +1,21 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +# Quarkus +quarkus.http.test-port=0 \ No newline at end of file diff --git a/gradle-examples/kogito-quarkus-gradle-examples/pom.xml b/gradle-examples/kogito-quarkus-gradle-examples/pom.xml new file mode 100644 index 0000000000..e6e4f4f10e --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/pom.xml @@ -0,0 +1,23 @@ + + + 4.0.0 + + org.kie.kogito.examples + gradle-examples + 999-SNAPSHOT + + pom + + + kogito-quarkus-gradle-examples + + Kogito Example :: Gradle :: Quarkus + Kogito Quarkus Examples built with Gradle + + process-decisions-rules-quarkus-gradle + dmn-quarkus-gradle + + + \ No newline at end of file diff --git a/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/README.md b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/README.md new file mode 100644 index 0000000000..b41d4a666b --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/README.md @@ -0,0 +1,343 @@ + + +# Process with Decisions Integration through Business Rule Task - Gradle build + +This module represent a kogito spring-boot application containing rules, decisions, and processes models, managed by GRADLE. + +## Description + +This is an example project that shows the usage of decisions within processes. Decisions can be expressed in different domains or assets, such as DMN and DRL. +The focus here is to show how to integrate decisions in an embedded way using Business Rule Task where they must be deployed together with the process, in the same application. All assets(bpmn, dmn, drl) must be under the [resources](src/main/resources/). + +This example covers the following items: + +* DMN to define a decision service +* DRL to define rules decision service +* How to integrate the process with decisions using Business Rule Task + +### The Traffic Process example: + +It is based on the traffic violation evaluation process, where it is required to fetch Driver information, and based on this, it is first performed the license validation to check if the driver has a valid license (using a RuleUnit in a DRL) after the license validation it is then executed the violation evaluation defined as a DMN decision and following, it is checked in the process if the output contains information whether the driver was suspended or not, completing the process. + +#### Process using Business Rule Task + +![Traffic Process](docs/images/traffic-rules-dmn.png) + +This is a declarative approach, it does not require to have any extra implementation, the interaction with decisions is executed out-of-the-box by the engine. The information needed to execute the decision evaluation should be set in the Data Assignments in the Business Rule Task. + +The BPMN file where this process is declared is [traffic-rules-dmn.bpmn](src/main/resources/traffic-rules-dmn.bpmn). + +--- + +* #### Process Properties + + +These are the properties defined for the process, the most important one in this section to pay attention is the ID because it is used in the REST endpoint generation referring to the path to interact with this process. + +* #### Proces Variables + +The variables used in the process itself, but the focus in this example are the classes that are used to define the POJOs to interact the process with decisions, that are the [Violation](src/main/java/org/kie/kogito/traffic/Violation.java), [Driver](src/main/java/org/kie/kogito/traffic/Driver.java), [Fine](src/main/java/org/kie/kogito/traffic/Fine.java). + + + +**Mapping data from Process to/from DMN** + +It is important to mention DMN for instance can define the Data Type in its structure, but we can align all attributes names in a Java class that is used as process variables, in case the attribute names contain spaces or are not following java conventions we can use [Jackson](https://github.com/FasterXML/jackson) annotations to make the process variable POJOs aligned with DMN data types, for instance in the [Violation](src/main/java/org/kie/kogito/traffic/Violation.java) class, where it is mapped the `speedLimit` attribute as `Speed Limit` using `@JsonProperty` annotation, in this case, this attribute from the process variable with Violation can be seamlessly integrated Violation Data Type defined in DMN. + +**Violation Data Type in DMN** + + + + +* #### Get Driver Task + +Fetch for driver information, in this implementation it is just mocking a result, that simply fill with an expired license date in case the `driverId` is an odd number and with a valid date in case of an even number. In a real use case, it could be performing an external call to a service or a database to get this information. + +The service task implementation is done in the [DriverService](src/main/java/org/kie/kogito/traffic/DriverService.java) class. + +In the data assignment the input is the `driverId` and output is the `driver` variable, filled with all driver information. + +* #### License Validation Task (DRL) + +Represents the task to do the call to the DRL service. + + + +The properties to be set are mainly the `Rule Language`that should be set as `DRL` and the `Rule Flow Group` with `unit:` + `[the FQCN of the Rule Unit Data class]`, in this case [org.kie.kogito.traffic.LicenseValidationService](src/main/java/org/kie/kogito/traffic/LicenseValidationService.java). + + + +The input and output mapping for this task is just the driver variable that is filled with license validation information. + +![License Validation Data](docs/images/license-validation-dmn-businessrule-data.png) + + +* #### Traffic Violation Task (DMN) +Similar to the License Validation Task, but it represents the task to do the call to the DMN service. + + + +The properties to be set are mainly the `Rule Language`that should be set as `DMN` and the `Namespace` and `DMN Model Name` must be set with the values defined in in the DMN, in this case [TrafficViolation.dmn](src/main/resources/TrafficViolation.dmn). + + + +The input for this task is the `Driver` and `Violation` variables, and the outputs are the `Suspended` and `Fine`. + +![Traffic Violation Data](docs/images/traffic-violation-dmn-businessrule-data.png) + + +* #### Suspended Task +Just an example task where it could be performed any action based on the condition in which the driver is suspended. In the current implementation, it is just logging the information in the console. + + +* #### Not Suspended Task +Just an example task where it could be performed any action based on the condition in which the driver is **not** suspended. In the current implementation, it is just logging the information in the console. + +## Decisions + +### License Validation - Rule Unit + +This decision consistis in rules which are evaluated to check if a driver's license is expired or not according to the expiration date and thus populating the result in the information in the driver variable. + +The DRL file where this Rule Unit is declared is [LicenseValidationService.drl](src/main/resources/LicenseValidationService.drl) and the the Java class that contains the Rule Unit Data is [LicenseValidationService](src/main/java/org/kie/kogito/traffic/LicenseValidationService.java). + +### Traffic Violation - DMN + +This decision consists in a DMN that basically checks if a driver is suspended or not according to the violation and current driver points in its license. + +![Traffic Violation - DMN](docs/images/traffic-violation-dmn.png) + +The DMN file where this decision is declared is [TrafficViolation.dmn](src/main/resources/TrafficViolation.dmn) + + + +## Build and run + +### Prerequisites + +You will need: +- Java 17+ installed +- Environment variable JAVA_HOME set accordingly + +### Compile and Run in Local Dev Mode + +```sh +../../../gradlew clean quarkusDev +``` + +or on windows + +```sh +..\..\..\gradlew.bat clean quarkusDev +``` + +!!!! TO BE FIXED +**_### Package and Run in JVM mode +```sh +../../../gradlew clean jar +java -jar target/process-decisions-springboot.jar +``` + +or on windows + +```sh +..\..\..\gradlew.bat clean jar +java -jar target\process-decisions-springboot.jar +```_** +!!!! TO BE FIXED !!!! + +## OpenAPI (Swagger) documentation + +[Specification at swagger.io](https://swagger.io/docs/specification/about/) + +You can take a look at the [OpenAPI definition](http://localhost:8080/q/openapi) - automatically generated and included in this service - to determine all available operations exposed by this service. For easy readability you can visualize the OpenAPI definition file using a UI tool like for example available [Swagger UI](https://editor.swagger.io). + +In addition, various clients to interact with this service can be easily generated using this OpenAPI definition. + + +## Example Usage + +Once the service is up and running we can invoke the REST endpoints and examine the logic. + +### Submit a request + +To make use of this application it is as simple as putting a sending request to `http://localhost:8080/traffic` with appropriate contents. See the following cases: + +You can play with different attributes. +The `driver-id` format is `{days}-{points}`. Days value > 0 will originate a `driver` with valid license. In this case, the evaluation will proceed taking in account the given points. +Days value = 0 will originate a `driver` with invalid license. In this case, the evaluation will stop after first node and will return a `null` validation. + + +#### Valid License and not suspended Driver + +Given data: + +```json +{ + "driverId": "12-345", + "violation":{ + "Type":"speed", + "Speed Limit": 100, + "Actual Speed":140 + } +} +``` + +Submit the JSON object from above: + +```sh +curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{"driverId": "12-345","violation":{"Type":"speed","Speed Limit": 100,"Actual Speed":140}}' http://localhost:8080/traffic +``` + +After the Curl command you should see a similar console log + +```json +{ + "id": "06ecbbb0-4972-431d-9b37-355d83bb1092", + "driverId": "12-345", + "driver": { + "licenseExpiration": "2021-08-13T17:59:08.589+00:00", + "validLicense": true, + "Name": "Arthur", + "State": "SP", + "City": "Campinas", + "Points": 13, + "Age": 30 + }, + "validated": { + "ValidLicense": true, + "Suspended": "no" + }, + "fine": { + "Amount": 1000.0, + "Points": 7 + }, + "violation": { + "Code": null, + "Date": null, + "Type": "speed", + "Speed Limit": 100, + "Actual Speed": 140 + } +} +``` + + +#### Valid License and suspended Driver + +Given data: + +```json +{ + "driverId": "12-15", + "violation":{ + "Type":"speed", + "Speed Limit": 100, + "Actual Speed":110 + } +} +``` + +Submit the JSON object from above: + +```sh +curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{"driverId": "12-15","violation":{"Type":"speed","Speed Limit": 100,"Actual Speed":110}}' http://localhost:8080/traffic +``` + + +After the Curl command, you should see a similar console log + +```json +{ + "id": "887d8f39-93ec-43cc-96e5-df8e9bb199f8", + "driverId": "12-15", + "driver": { + "licenseExpiration": "2021-08-12T17:59:37.703+00:00", + "validLicense": false, + "Name": "Arthur", + "State": "SP", + "City": "Campinas", + "Points": 13, + "Age": 30 + }, + "validated": { + "Suspended": "yes", + "ValidLicense": false + }, + "fine": null, + "violation": { + "Code": null, + "Date": null, + "Type": "speed", + "Speed Limit": 100, + "Actual Speed": 110 + } +} +``` + +#### Expired Valid License + +Given data: + +```json +{ + "driverId": "0-150", + "violation":{ + "Type":"speed", + "Speed Limit": 100, + "Actual Speed":110 + } +} +``` + +Submit the JSON object from above: + +```sh +curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{"driverId": "0-150","violation":{"Type":"speed","Speed Limit": 100,"Actual Speed":110}}' http://localhost:8080/traffic +``` + + +After the Curl command, you should see a similar console log + +```json +{ + "id": "887d8f39-93ec-43cc-96e5-df8e9bb199f8", + "driverId": "0-150", + "driver": { + "licenseExpiration": "2021-08-12T17:59:37.703+00:00", + "validLicense": false, + "Name": "Arthur", + "State": "SP", + "City": "Campinas", + "Points": 13, + "Age": 30 + }, + "validated": null, + "fine": null, + "violation": { + "Code": null, + "Date": null, + "Type": "speed", + "Speed Limit": 100, + "Actual Speed": 110 + } +} +``` +In this case the driver license is expired when the DRL is evaluated because the DriverService generated an expired date for the driver's license thus DMN is not evaluated, so the `validLicense` is `false`, `suspended` and `fine` are `null`. \ No newline at end of file diff --git a/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/build.gradle b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/build.gradle new file mode 100644 index 0000000000..c4792ce661 --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/build.gradle @@ -0,0 +1,77 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ + +plugins { + id 'java' + id 'io.quarkus' + + // Inspection purpose + id "com.dorongold.task-tree" version "${taskTreeVersion}" +} + +repositories { + mavenCentral() + mavenLocal() + maven { + url = uri("https://repo.maven.apache.org/maven2/") + } + maven { + url = uri("https://repository.apache.org/snapshots/") + } +} + +group 'org.kie.kogito.examples' +version '999-SNAPSHOT' + +dependencies { + implementation enforcedPlatform("${quarkusPlatformGroupId}:${quarkusPlatformArtifactId}:${quarkusPlatformVersion}") + implementation 'io.quarkus:quarkus-arc' + implementation 'io.quarkus:quarkus-resteasy' + implementation 'io.quarkus:quarkus-resteasy-jackson' + implementation 'io.quarkus:quarkus-smallrye-openapi' + + implementation platform("org.kie.kogito:kogito-bom:${kogitoVersion}") + + implementation 'org.jbpm:jbpm-with-drools-quarkus' + implementation 'org.kie.kogito:process-workitems' + implementation 'org.kie.kogito:jbpm-flow' + implementation 'org.kie.kogito:jbpm-bpmn2' + implementation 'org.drools:drools-quarkus-decisions' + testImplementation("org.junit.jupiter:junit-jupiter:${junitVersion}") + testImplementation 'io.quarkus:quarkus-junit5' + testImplementation("io.rest-assured:rest-assured") +} + +if (!hasProperty('buildProfile')) ext.buildProfile = 'prod' + +apply from: "profile-${buildProfile}.gradle" + +test { + systemProperty "java.util.logging.manager", "org.jboss.logmanager.LogManager" +} + +compileJava { + options.encoding = 'UTF-8' + options.compilerArgs << '-parameters' +} + +compileTestJava { + options.encoding = 'UTF-8' +} \ No newline at end of file diff --git a/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/gradle.properties b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/gradle.properties new file mode 100644 index 0000000000..6a66660583 --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/gradle.properties @@ -0,0 +1,10 @@ +#Gradle properties +## 3.27.1 needed to support gradle 9.2 +quarkusPluginId=io.quarkus +quarkusPluginVersion=3.27.1 +quarkusPlatformGroupId=io.quarkus.platform +quarkusPlatformArtifactId=quarkus-bom +quarkusPlatformVersion=3.27.1 +taskTreeVersion=4.0.1 +junitVersion=5.12.1 +kogitoVersion=999-SNAPSHOT \ No newline at end of file diff --git a/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/pom.xml b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/pom.xml new file mode 100644 index 0000000000..709fd99994 --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/pom.xml @@ -0,0 +1,92 @@ + + + 4.0.0 + + org.kie.kogito.examples + kogito-quarkus-gradle-examples + 999-SNAPSHOT + + + process-decisions-rules-quarkus-gradle + Kogito Example :: Gradle :: Quarkus :: Process - Decisions - Rules + Process with DRL, DMN and DRL integration - Quarkus - Gradle + + + process.decisions.rules.quarkus.gradle + 17 + ${project.parent.parent.basedir}/gradlew + + + + + org.kie.kogito + kogito-gradle-plugin + ${project.version} + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + **/*.java + + + **/*.java + + + + + + org.codehaus.mojo + exec-maven-plugin + + + gradle + test + + ${gradle.executable} + + clean + quarkusIntTest + + + + exec + + + + + + maven-clean-plugin + + + + ${project.basedir}/build + + + + + + + + + + WINDOWS + + + windows + + + + ${project.parent.parent.basedir}/gradlew.bat + + + + \ No newline at end of file diff --git a/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/profile-dev.gradle b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/profile-dev.gradle new file mode 100644 index 0000000000..3e86895efc --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/profile-dev.gradle @@ -0,0 +1,22 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ +dependencies { + implementation 'io.quarkus:quarkus-jdbc-h2' +} \ No newline at end of file diff --git a/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/profile-prod.gradle b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/profile-prod.gradle new file mode 100644 index 0000000000..76e96d227e --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/profile-prod.gradle @@ -0,0 +1,22 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ +dependencies { + implementation 'io.quarkus:quarkus-jdbc-postgresql' +} \ No newline at end of file diff --git a/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/settings.gradle b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/settings.gradle new file mode 100644 index 0000000000..bdcafc594d --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/settings.gradle @@ -0,0 +1,37 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ + +pluginManagement { + repositories { + mavenLocal() + mavenCentral() + maven { + url = uri("target/dependencies") + } + maven { + url = uri("https://plugins.gradle.org/m2/") + } + } + + plugins { + id "${quarkusPluginId}" version "${quarkusPluginVersion}" + } +} +rootProject.name = "process-decisions-rules-quarkus-gradle" \ No newline at end of file diff --git a/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/integrationTest/java/org/kie/kogito/traffic/NativeTrafficProcessIT.java b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/integrationTest/java/org/kie/kogito/traffic/NativeTrafficProcessIT.java new file mode 100644 index 0000000000..55fe9c00e1 --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/integrationTest/java/org/kie/kogito/traffic/NativeTrafficProcessIT.java @@ -0,0 +1,25 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.kie.kogito.traffic; + +import io.quarkus.test.junit.QuarkusIntegrationTest; + +@QuarkusIntegrationTest +public class NativeTrafficProcessIT extends TrafficProcessTest { +} diff --git a/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/java/org/kie/kogito/traffic/DriverService.java b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/java/org/kie/kogito/traffic/DriverService.java new file mode 100644 index 0000000000..78a9328f0e --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/java/org/kie/kogito/traffic/DriverService.java @@ -0,0 +1,46 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.kie.kogito.traffic; + +import java.time.ZonedDateTime; +import java.util.Date; + +import org.kie.kogito.traffic.licensevalidation.Driver; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import jakarta.enterprise.context.ApplicationScoped; + +@ApplicationScoped +public class DriverService { + + private static Logger LOGGER = LoggerFactory.getLogger(DriverService.class); + + public Driver getDriver(String driverId) { + LOGGER.info("Get Driver Information for id = {}", driverId); + //Could call an external service, database, etc. + + //Mocking driver details + String[] parts = driverId.split("-"); + long days = Long.parseLong(parts[0]); + int points = Integer.parseInt(parts[1]); + Date licenseExpiration = new Date(ZonedDateTime.now().plusDays(days).toInstant().toEpochMilli()); + return new Driver(driverId, "Arthur", "SP", "Campinas", points, 30, licenseExpiration); + } +} diff --git a/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/java/org/kie/kogito/traffic/Fine.java b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/java/org/kie/kogito/traffic/Fine.java new file mode 100644 index 0000000000..928562fb5f --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/java/org/kie/kogito/traffic/Fine.java @@ -0,0 +1,46 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.kie.kogito.traffic; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class Fine { + + @JsonProperty("Amount") + private Double amount; + + @JsonProperty("Points") + private Integer points; + + public Double getAmount() { + return amount; + } + + public void setAmount(Double amount) { + this.amount = amount; + } + + public Integer getPoints() { + return points; + } + + public void setPoints(Integer points) { + this.points = points; + } +} diff --git a/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/java/org/kie/kogito/traffic/Violation.java b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/java/org/kie/kogito/traffic/Violation.java new file mode 100644 index 0000000000..170dd2dda0 --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/java/org/kie/kogito/traffic/Violation.java @@ -0,0 +1,92 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.kie.kogito.traffic; + +import java.math.BigDecimal; +import java.util.Date; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class Violation { + + @JsonProperty("Code") + private String code; + + @JsonProperty("Date") + private Date date; + + @JsonProperty("Type") + private String type; + + @JsonProperty("Speed Limit") + private BigDecimal speedLimit; + + @JsonProperty("Actual Speed") + private BigDecimal actualSpeed; + + public Violation() { + } + + public Violation(String type, BigDecimal speedLimit, BigDecimal actualSpeed) { + this.type = type; + this.speedLimit = speedLimit; + this.actualSpeed = actualSpeed; + this.date = new Date(); + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public Date getDate() { + return date; + } + + public void setDate(Date date) { + this.date = date; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public BigDecimal getSpeedLimit() { + return speedLimit; + } + + public void setSpeedLimit(BigDecimal speedLimit) { + this.speedLimit = speedLimit; + } + + public BigDecimal getActualSpeed() { + return actualSpeed; + } + + public void setActualSpeed(BigDecimal actualSpeed) { + this.actualSpeed = actualSpeed; + } +} diff --git a/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/java/org/kie/kogito/traffic/licensevalidated/LicenseValidatedService.java b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/java/org/kie/kogito/traffic/licensevalidated/LicenseValidatedService.java new file mode 100644 index 0000000000..374e5efa23 --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/java/org/kie/kogito/traffic/licensevalidated/LicenseValidatedService.java @@ -0,0 +1,49 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.kie.kogito.traffic.licensevalidated; + +import java.util.Date; + +import org.drools.ruleunits.api.DataSource; +import org.drools.ruleunits.api.RuleUnitData; +import org.drools.ruleunits.api.SingletonStore; + +public class LicenseValidatedService implements RuleUnitData { + private SingletonStore validated; + + public LicenseValidatedService() { + this(DataSource.createSingleton()); + } + + public LicenseValidatedService(SingletonStore validated) { + this.validated = validated; + } + + public void setValidated(SingletonStore validated) { + this.validated = validated; + } + + public SingletonStore getValidated() { + return validated; + } + + public Date getCurrentTime() { + return new Date(); + } +} diff --git a/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/java/org/kie/kogito/traffic/licensevalidated/Validated.java b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/java/org/kie/kogito/traffic/licensevalidated/Validated.java new file mode 100644 index 0000000000..a24f9189e0 --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/java/org/kie/kogito/traffic/licensevalidated/Validated.java @@ -0,0 +1,55 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.kie.kogito.traffic.licensevalidated; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; + +@JsonIgnoreProperties(ignoreUnknown = true) +public class Validated { + + @JsonProperty("Suspended") + private String suspended; + + @JsonProperty("ValidLicense") + private Boolean validLicense = Boolean.FALSE; + + public Validated() { + } + + public Validated(String suspended) { + this.suspended = suspended; + } + + public String getSuspended() { + return suspended; + } + + public Boolean isValidLicense() { + return validLicense; + } + + public Boolean getValidLicense() { + return validLicense; + } + + public void setValidLicense(Boolean validLicense) { + this.validLicense = validLicense; + } +} diff --git a/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/java/org/kie/kogito/traffic/licensevalidation/Driver.java b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/java/org/kie/kogito/traffic/licensevalidation/Driver.java new file mode 100644 index 0000000000..cfe7d07937 --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/java/org/kie/kogito/traffic/licensevalidation/Driver.java @@ -0,0 +1,131 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.kie.kogito.traffic.licensevalidation; + +import java.util.Date; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; + +@JsonIgnoreProperties(ignoreUnknown = true) +public class Driver { + + private String id; + + @JsonProperty("Name") + private String name; + + @JsonProperty("State") + private String state; + + @JsonProperty("City") + private String city; + + @JsonProperty("Points") + private Integer points; + + @JsonProperty("Age") + private Integer age; + + private Date licenseExpiration; + + @JsonProperty("ValidLicense") + private Boolean validLicense = Boolean.FALSE; + + public Driver() { + } + + public Driver(String id, String name, String state, String city, Integer points, Integer age, Date licenseExpiration) { + this.id = id; + this.name = name; + this.state = state; + this.city = city; + this.points = points; + this.age = age; + this.licenseExpiration = licenseExpiration; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public Integer getPoints() { + return points; + } + + public void setPoints(Integer points) { + this.points = points; + } + + public Integer getAge() { + return age; + } + + public void setAge(Integer age) { + this.age = age; + } + + public Date getLicenseExpiration() { + return licenseExpiration; + } + + public void setLicenseExpiration(Date licenseExpiration) { + this.licenseExpiration = licenseExpiration; + } + + public Boolean isValidLicense() { + return validLicense; + } + + public Boolean getValidLicense() { + return validLicense; + } + + public void setValidLicense(Boolean validLicense) { + this.validLicense = validLicense; + } +} diff --git a/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/java/org/kie/kogito/traffic/licensevalidation/LicenseValidationService.java b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/java/org/kie/kogito/traffic/licensevalidation/LicenseValidationService.java new file mode 100644 index 0000000000..278b5fb470 --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/java/org/kie/kogito/traffic/licensevalidation/LicenseValidationService.java @@ -0,0 +1,49 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.kie.kogito.traffic.licensevalidation; + +import java.util.Date; + +import org.drools.ruleunits.api.DataSource; +import org.drools.ruleunits.api.RuleUnitData; +import org.drools.ruleunits.api.SingletonStore; + +public class LicenseValidationService implements RuleUnitData { + private SingletonStore driver; + + public LicenseValidationService() { + this(DataSource.createSingleton()); + } + + public LicenseValidationService(SingletonStore driver) { + this.driver = driver; + } + + public void setDriver(SingletonStore driver) { + this.driver = driver; + } + + public SingletonStore getDriver() { + return driver; + } + + public Date getCurrentTime() { + return new Date(); + } +} diff --git a/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/resources/LicenseValidatedService.drl b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/resources/LicenseValidatedService.drl new file mode 100644 index 0000000000..3130e73050 --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/resources/LicenseValidatedService.drl @@ -0,0 +1,32 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.kie.kogito.traffic.licensevalidated + +unit LicenseValidatedService + +rule "Is validated license validated" +when + $validated: /validated[suspended.equalsIgnoreCase("no")] +then + $validated.setValidLicense(true); +end + +query "validated" + $validated : /validated +end \ No newline at end of file diff --git a/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/resources/LicenseValidationService.drl b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/resources/LicenseValidationService.drl new file mode 100644 index 0000000000..da7439087d --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/resources/LicenseValidationService.drl @@ -0,0 +1,39 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.kie.kogito.traffic.licensevalidation + +unit LicenseValidationService + +rule "Is driver license valid" +when + $driver: /driver[licenseExpiration.after(currentTime)] +then + $driver.setValidLicense(true); +end + +rule "Is driver license expired" +when + $driver: /driver[licenseExpiration.before(currentTime)] +then + $driver.setValidLicense(false); +end + +query "validation" + $driver : /driver +end \ No newline at end of file diff --git a/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/resources/TrafficViolation.dmn b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/resources/TrafficViolation.dmn new file mode 100644 index 0000000000..daac1062af --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/resources/TrafficViolation.dmn @@ -0,0 +1,288 @@ + + + + + + string + + + number + + + string + + + string + + + number + + + + + string + + + date + + + string + + "speed", "parking", "driving under the influence" + + + + number + + + number + + + + + number + + + number + + + + + string + + + boolean + + + + + + + + + + + + + + + + Violation.Type + + + + + Violation.Actual Speed - Violation.Speed Limit + + + + + + + + "speed" + + + [10..30) + + + 500 + + + 3 + + + + + + + + "speed" + + + >= 30 + + + 1000 + + + 7 + + + + + + + + "parking" + + + - + + + 100 + + + 1 + + + + + + + + "driving under the influence" + + + - + + + 1000 + + + 5 + + + + + + + + + + + + + + + + + + + + + + + + Driver.Points + + + + + + + + < 20 + + + "yes" + + + false + + + + + + + + = 20 + + + "no" + + + true + + + + + + + + > 20 + + + "no" + + + true + + + + + + + + + + + + + 50 + 254 + 329 + 119 + 100 + 186 + + + 50 + 329 + 100 + 119 + 186 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/resources/application.properties b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/resources/application.properties new file mode 100644 index 0000000000..4953f90962 --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/resources/application.properties @@ -0,0 +1,27 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +# Packaging +# quarkus.package.jar.type=fast-jar + +quarkus.swagger-ui.always-include=true + +kogito.generate.rest.decisions=true +kogito.generate.rest.processes=true +quarkus.devservices.enabled=false \ No newline at end of file diff --git a/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/resources/traffic-rules-dmn.bpmn b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/resources/traffic-rules-dmn.bpmn new file mode 100644 index 0000000000..1ddb14979f --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/resources/traffic-rules-dmn.bpmn @@ -0,0 +1,534 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _BB963FF4-CF17-4CA0-A727-9AFC2BE17C29 + _E7EF578E-3735-42D9-BF0C-8CCBF398D41C + + + + + _3F719C8E-DA3F-46F8-B8F2-5F04DB132E9C_validatedInputX + + + _3F719C8E-DA3F-46F8-B8F2-5F04DB132E9C_validatedOutputX + + + + validated + _3F719C8E-DA3F-46F8-B8F2-5F04DB132E9C_validatedInputX + + + _3F719C8E-DA3F-46F8-B8F2-5F04DB132E9C_validatedOutputX + validated + + + + _044AA388-325A-45DE-B783-4F48421B788B + + + + + + + + _D3E2F4B7-7739-452F-8D55-0C4F169D4A44 + _D2252EFF-5EC4-4D61-B797-653F71652627 + _044AA388-325A-45DE-B783-4F48421B788B + + + + + + + + _A19108FE-08A2-4E80-B7A8-0254C49209A6 + _D3E2F4B7-7739-452F-8D55-0C4F169D4A44 + + + + + _95EFED1F-73F8-47E7-9604-A81EFE5DE8F5_driverInputX + + + _95EFED1F-73F8-47E7-9604-A81EFE5DE8F5_driverOutputX + + + + driver + _95EFED1F-73F8-47E7-9604-A81EFE5DE8F5_driverInputX + + + _95EFED1F-73F8-47E7-9604-A81EFE5DE8F5_driverOutputX + driver + + + + + + + + + _2C2FFD79-4241-4F9E-A486-2482F817595E + _A19108FE-08A2-4E80-B7A8-0254C49209A6 + + + + + _93FFD317-476E-4624-84EF-994617572560_driverIdInputX + + + _93FFD317-476E-4624-84EF-994617572560_responseOutputX + + + + driverId + _93FFD317-476E-4624-84EF-994617572560_driverIdInputX + + + _93FFD317-476E-4624-84EF-994617572560_responseOutputX + driver + + + + _1287C97D-3568-458A-A907-0123A64A93BE + + + + + + + + _249EB7E9-5847-47C9-8B4D-8BEFED257600 + _1287C97D-3568-458A-A907-0123A64A93BE + System.out.println("Driver is suspended!"); + + + + + + + + _E7EF578E-3735-42D9-BF0C-8CCBF398D41C + _19CC68B6-D2DC-4E39-99E5-CE5B30C5FEE6 + _249EB7E9-5847-47C9-8B4D-8BEFED257600 + + + _521A00FC-6A79-44ED-8485-45DB97A621F2 + + + + + + + + _19CC68B6-D2DC-4E39-99E5-CE5B30C5FEE6 + _521A00FC-6A79-44ED-8485-45DB97A621F2 + System.out.println("Driver is NOT suspended!"); + + + + + + + + _D2252EFF-5EC4-4D61-B797-653F71652627 + _BB963FF4-CF17-4CA0-A727-9AFC2BE17C29 + + + + + + + + + _B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_namespaceInputX + _B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_modelInputX + _B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_ViolationInputX + _B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_DriverInputX + + + _B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_ValidatedOutputX + _B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_FineOutputX + + + + _B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_namespaceInputX + + + + + + + _B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_modelInputX + + + + + + + violation + _B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_ViolationInputX + + + driver + _B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_DriverInputX + + + _B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_ValidatedOutputX + validated + + + _B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_FineOutputX + fine + + + + _2C2FFD79-4241-4F9E-A486-2482F817595E + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _FcMNgJTYEDuJVMby5BR7SQ + _FcMNgJTYEDuJVMby5BR7SQ + + \ No newline at end of file diff --git a/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/test/java/org/kie/kogito/traffic/TrafficProcessTest.java b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/test/java/org/kie/kogito/traffic/TrafficProcessTest.java new file mode 100644 index 0000000000..a5eeb330aa --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/test/java/org/kie/kogito/traffic/TrafficProcessTest.java @@ -0,0 +1,72 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.kie.kogito.traffic; + +import java.math.BigDecimal; +import java.util.HashMap; +import java.util.Map; + +import org.junit.jupiter.api.Test; + +import io.quarkus.test.junit.QuarkusTest; +import io.restassured.http.ContentType; +import io.restassured.response.ValidatableResponse; + +import static io.restassured.RestAssured.given; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.nullValue; + +@QuarkusTest +public class TrafficProcessTest { + + public static final BigDecimal SPEED_LIMIT = new BigDecimal(100); + + @Test + public void getOpenAPI() { + ValidatableResponse body = given().when().get("/q/openapi").then().statusCode(200); + System.out.println(body.extract().asString()); + } + + @Test + public void testTrafficViolationEmbeddedDecisionOnQuarkus() { + testTrafficProcess("traffic", "12-345", 120d, "no", true, true); + testTrafficProcess("traffic", "12-15", 140d, "yes", true, false); + testTrafficProcess("traffic", "0-150", 140d, null, false, false); + } + + private void testTrafficProcess(String processId, String driverId, Double speed, String suspended, boolean validLicense, boolean validatedLicense) { + Map request = new HashMap<>(); + request.put("driverId", driverId); + request.put("violation", new Violation("speed", SPEED_LIMIT, new BigDecimal(speed))); + ValidatableResponse body = given() + .body(request) + .contentType(ContentType.JSON) + .when() + .post("/" + processId) + .then() + .statusCode(201) + .body("driver.ValidLicense", is(validLicense)); + if (suspended != null) { + body.body("validated.ValidLicense", is(validatedLicense)) + .body("validated.Suspended", is(suspended)); + } else { + body.body("validated", nullValue()); + } + } +} diff --git a/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/README.md b/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/README.md new file mode 100644 index 0000000000..88d9de41f2 --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/README.md @@ -0,0 +1,264 @@ +# DMN + Spring Boot example + +## Description + +A simple DMN service to evaluate a traffic violation and a model with input constraints. + +The org.kie.dmn.runtime.typecheck=true property is used to enable type and value check. + +## Installing and Running + +### Prerequisites + +You will need: + - Java 11+ installed + - Environment variable JAVA_HOME set accordingly + +## Build and run + +### Prerequisites + +You will need: +- Java 17+ installed +- Environment variable JAVA_HOME set accordingly + +### Compile and Run in Local Dev Mode + +```sh +../../gradlew clean bootRun +``` + +or on windows + +```sh +..\..\gradlew.bat clean bootRun +``` + +### Package and Run in JVM mode +```sh +../../gradlew clean bootJar +java -jar build/libs/process-decisions-rules-springboot-gradle.jar +``` + +or on windows + +```sh +..\..\gradlew.bat clean jar +java -jar build\libs\process-decisions-rules-springboot-gradle.jar +``` + +## HOT-RELOAD +That module feature the "org.springframework.boot:spring-boot-devtools" plugin to enable hot reload on source change (additional dependency): + +```kts + developmentOnly 'org.springframework.boot:spring-boot-devtools' +``` + +To achieve that: +1. in one terminal, issue the command that will listen for code change and, eventually, rebuilt the application on-demand +```sh +../../gradlew clean compileSecondaryJava --continuous --parallel +``` +or on windows + +```sh +..\..\gradlew.bat clean compileSecondaryJava --continuous --parallel +``` + + +2. inside another terminal, issue the command that actually start the application +```sh +../../gradlew bootRun +``` + +or on windows + +```sh +..\..\gradlew.bat bootRun +``` + +Whenever a source is modified, the code will be rebuilt and the application re-loaded with the modifications. + +## Test DMN Model using Maven + +Validate the functionality of DMN models before deploying them into a production environment by defining test scenarios in Test Scenario Editor. + +To define test scenarios you need to create a .scesim file inside your project and link it to the DMN model you want to be tested. Run all Test Scenarios, executing: + +```sh +mvn clean test +``` +See results in surefire test report `target/surefire-reports` + +## OpenAPI (Swagger) documentation +[Specification at swagger.io](https://swagger.io/docs/specification/about/) + +The [Swagger](http://localhost:8080/swagger-ui/index.html) page shows all the available endpoints, and it could be used to test them. +You can take a look at the [OpenAPI definition](http://localhost:8080/v3/api-docs) - automatically generated and included in this service - to determine all available operations exposed by this service. For easy readability you can visualize the OpenAPI definition file using a UI tool like for example available [Swagger Editor](https://editor.swagger.io). + + +## Example Usage + +Once the service is up and running, you can use the following example to interact with the service. + +### POST /Traffic Violation + +Returns penalty information from the given inputs -- driver and violation: +Given inputs: + +```json +{ + "Driver":{ "Points":2 }, + "Violation":{ + "Type":"speed", + "Actual Speed":120, + "Speed Limit":100 + } +} +``` + +Curl command (using the JSON object above): + +```sh +curl -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{"Driver":{"Points":2},"Violation":{"Type":"speed","Actual Speed":120,"Speed Limit":100}}' http://localhost:8080/Traffic%20Violation +``` + +As response, penalty information is returned. + +Example response: +```json +{ + "Violation":{ + "Type":"speed", + "Speed Limit":100, + "Actual Speed":120 + }, + "Driver":{ + "Points":2 + }, + "Fine":{ + "Points":3, + "Amount":500 + }, + "Should the driver be suspended?":"No" +} +``` + +### POST /AllowedValuesChecksInsideCollection + +Valid interests for the model are: Golf, Computer, Hockey, Jogging + +Given valid input: + +```json +{ + "p1": { + "Name": "Joe", + "Interests": [ + "Golf" + ] + } +} +``` + +Curl command (using the JSON object above): + +```sh +curl -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{"p1": {"Name":"Joe","Interests":["Golf"]}}' http://localhost:8080/AllowedValuesChecksInsideCollection +``` + +As response, interests information is returned. + +Example response: +```json +{ + "p1": { + "Interests": [ + "Golf" + ], + "Name": "Joe" + }, + "MyDecision": "The Person Joe likes 1 thing(s)." +} +``` + +With invalid value + +```json +{ + "p1": { + "Name": "Joe", + "Interests": [ + "Dancing" + ] + } +} +``` + +Curl command (using the JSON object above): + +```sh +curl -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{"p1": {"Name":"Joe","Interests":["Dancing"]}}' http://localhost:8080/AllowedValuesChecksInsideCollection +``` + +As response, error information is returned. + +Example response: +```json +{ + "namespace": "http://www.trisotech.com/definitions/_238bd96d-47cd-4746-831b-504f3e77b442", + "modelName": "AllowedValuesChecksInsideCollection", + "dmnContext": { + "p1": { + "Interests": [ + "Dancing" + ], + "Name": "Joe" + } + }, + "messages": [ + { + "severity": "ERROR", + "message": "Error while evaluating node 'MyDecision' for dependency 'p1': the dependency value '{Interests=[Dancing], Name=Joe}' is not allowed by the declared type (DMNType{ http://www.trisotech.com/definitions/_238bd96d-47cd-4746-831b-504f3e77b442 : Person })", + "messageType": "ERROR_EVAL_NODE", + "sourceId": "_27453770-68e3-48da-8605-d33a653c09ef", + "level": "ERROR" + } + ], + "decisionResults": [ + { + "decisionId": "_ed3b9794-9306-4b6a-b4f9-5486be3c5515", + "decisionName": "MyDecision", + "result": null, + "messages": [ + { + "severity": "ERROR", + "message": "Error while evaluating node 'MyDecision' for dependency 'p1': the dependency value '{Interests=[Dancing], Name=Joe}' is not allowed by the declared type (DMNType{ http://www.trisotech.com/definitions/_238bd96d-47cd-4746-831b-504f3e77b442 : Person })", + "messageType": "ERROR_EVAL_NODE", + "sourceId": "_27453770-68e3-48da-8605-d33a653c09ef", + "level": "ERROR" + } + ], + "evaluationStatus": "SKIPPED" + } + ] +} +``` + +## Developer notes + +In order to have the DMN generated resources properly scanned by Spring Boot, please ensure the DMN model namespaces + is included in the String application configuration. + +The generated classes must be included in the annotation definitions of the main `Application` class: + +``` +@SpringBootApplication(scanBasePackages={"org.kie.kogito.**", "org.kie.kogito.app.**", "http*"}) +public class KogitoSpringbootApplication { + + public static void main(String[] args) { + SpringApplication.run(KogitoSpringbootApplication.class, args); + } +} +``` + diff --git a/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/build.gradle b/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/build.gradle new file mode 100644 index 0000000000..cd95ab317f --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/build.gradle @@ -0,0 +1,92 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ + +plugins { + id 'java' + id("org.kie.kogito.gradle") version "${kogitoVersion}" + id "org.springframework.boot" version "${springBootVersion}" + id("io.spring.dependency-management") version "${springBootDependencyManagementVersion}" + + // Inspection purpose + id "com.dorongold.task-tree" version "${taskTreeVersion}" +} + +repositories { + mavenCentral() + mavenLocal() +} + +dependencies { + implementation platform("org.kie.kogito:kogito-spring-boot-bom:${kogitoVersion}") + implementation("org.springframework.boot:spring-boot-starter-web") + implementation("org.drools:drools-decisions-spring-boot-starter") + testImplementation("org.junit.jupiter:junit-jupiter:${junitVersion}") + testImplementation("org.springframework.boot:spring-boot-starter-test") + testImplementation("io.rest-assured:rest-assured") + testImplementation("org.kie.kogito:kogito-scenario-simulation") + developmentOnly 'org.springframework.boot:spring-boot-devtools' +} + +group 'org.kie.kogito.examples' +version '999-SNAPSHOT' + +generateModelConfig { + jsonSchemaVersion = "DRAFT_2019_09" +} + +compileJava { + options.encoding = 'UTF-8' + options.compilerArgs << '-parameters' +} + +compileTestJava { + options.encoding = 'UTF-8' +} + +springBoot { + mainClass = 'org.kie.kogito.dmn.springboot.example.KogitoSpringbootApplication' +} + + +tasks.named("resolveMainClassName") { + dependsOn(tasks.named("compileSecondaryJava")) +} + +tasks.named("bootRun") { + dependsOn(tasks.named("compileSecondaryJava")) +} + +tasks.named("bootJar") { + dependsOn(tasks.named("compileSecondaryJava")) +} + +tasks.named("jar") { + dependsOn(tasks.named("compileSecondaryJava")) + from(tasks.named("compileSecondaryJava").get()) +} + +tasks.named("compileTestJava") { + dependsOn(tasks.named("compileSecondaryJava")) +} + +test { + dependsOn(tasks.named("compileSecondaryJava")) + useJUnitPlatform() +} \ No newline at end of file diff --git a/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/gradle.properties b/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/gradle.properties new file mode 100644 index 0000000000..a6acc20250 --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/gradle.properties @@ -0,0 +1,6 @@ +#Gradle properties +springBootVersion=3.5.10 +springBootDependencyManagementVersion=1.1.5 +taskTreeVersion=4.0.1 +junitVersion=5.12.1 +kogitoVersion=999-SNAPSHOT \ No newline at end of file diff --git a/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/pom.xml b/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/pom.xml new file mode 100644 index 0000000000..b19194ec20 --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/pom.xml @@ -0,0 +1,93 @@ + + + 4.0.0 + + org.kie.kogito.examples + kogito-springboot-gradle-examples + 999-SNAPSHOT + + + dmn-springboot-gradle + Kogito Example :: Gradle :: Spring Boot :: Decisions - Scesim + Decision with SCESIM integration- Spring Boot - Gradle + + + dmn.springboot.gradle + 17 + ${project.parent.parent.basedir}/gradlew + + + + + org.kie.kogito + kogito-gradle-plugin + ${project.version} + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + **/*.java + + + **/*.java + + + + + + org.codehaus.mojo + exec-maven-plugin + + + gradle + test + + ${gradle.executable} + + clean + test + + + + exec + + + + + + + maven-clean-plugin + + + + ${project.basedir}/build + + + + + + + + + + WINDOWS + + + windows + + + + ${project.parent.parent.basedir}/gradlew.bat + + + + \ No newline at end of file diff --git a/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/settings.gradle b/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/settings.gradle new file mode 100644 index 0000000000..417b11bed5 --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/settings.gradle @@ -0,0 +1,40 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ + +pluginManagement { + repositories { + mavenLocal() + mavenCentral() + maven { + url = uri("target/dependencies") + } + maven { + url = uri("https://plugins.gradle.org/m2/") + } + } + resolutionStrategy { + eachPlugin { + if (requested.id.namespace == "org.kie.kogito") { + useModule("org.kie.kogito:kogito-gradle-plugin:${requested.version}") + } + } + } +} +rootProject.name = "dmn-springboot-gradle" \ No newline at end of file diff --git a/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/main/java/org/kie/kogito/dmn/springboot/example/CustomDoCompileFEELProfile.java b/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/main/java/org/kie/kogito/dmn/springboot/example/CustomDoCompileFEELProfile.java new file mode 100644 index 0000000000..15fd12c683 --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/main/java/org/kie/kogito/dmn/springboot/example/CustomDoCompileFEELProfile.java @@ -0,0 +1,25 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.kie.kogito.dmn.springboot.example; + +import org.kie.dmn.feel.parser.feel11.profiles.DoCompileFEELProfile; + +public class CustomDoCompileFEELProfile extends DoCompileFEELProfile { + +} \ No newline at end of file diff --git a/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/main/java/org/kie/kogito/dmn/springboot/example/KogitoSpringbootApplication.java b/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/main/java/org/kie/kogito/dmn/springboot/example/KogitoSpringbootApplication.java new file mode 100644 index 0000000000..0ae0f6a443 --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/main/java/org/kie/kogito/dmn/springboot/example/KogitoSpringbootApplication.java @@ -0,0 +1,30 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.kie.kogito.dmn.springboot.example; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication(scanBasePackages = { "org.kie.kogito.dmn.**", "org.kie.kogito.app.**", "http**" }) +public class KogitoSpringbootApplication { + + public static void main(String[] args) { + SpringApplication.run(KogitoSpringbootApplication.class, args); + } +} diff --git a/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/main/resources/AllowedValuesChecksInsideCollection.dmn b/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/main/resources/AllowedValuesChecksInsideCollection.dmn new file mode 100644 index 0000000000..ade557ea79 --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/main/resources/AllowedValuesChecksInsideCollection.dmn @@ -0,0 +1,77 @@ + + + + + + + string + + + tInterests + + + + string + + + tInterest + + "Golf","Computer","Hockey","Jogging" + + + + + + + + + "The Person " + p1.Name + " likes " + string(count( p1.Interests )) + " thing(s)." + + + + + + \ No newline at end of file diff --git a/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/main/resources/Traffic Violation.dmn b/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/main/resources/Traffic Violation.dmn new file mode 100644 index 0000000000..109d4689e1 --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/main/resources/Traffic Violation.dmn @@ -0,0 +1,230 @@ + + + + + + string + + + number + + + string + + + string + + + number + + + + + string + + + date + + + string + + "speed", "parking", "driving under the influence" + + + + number + + + number + + + + + number + + + number + + + + + + + + + + + + + + Violation.Type + + + + + Violation.Actual Speed - Violation.Speed Limit + + + + + + + "speed" + + + [10..30) + + + 500 + + + 3 + + + + + "speed" + + + >= 30 + + + 1000 + + + 7 + + + + + "parking" + + + - + + + 100 + + + 1 + + + + + "driving under the influence" + + + - + + + 1000 + + + 5 + + + + + + + + + Should the driver be suspended due to points on his license? + "Yes", "No" + + + + + + + + + + + + Driver.Points + Fine.Points + + + + + if Total Points >= 20 then "Yes" else "No" + + + + + + + + + + 50.0 + 254.0 + 329.0 + 119.0 + 100.0 + 186.0 + + + 50.0 + 100.0 + 398.0 + + + 398.0 + + + 398.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/main/resources/application.properties b/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/main/resources/application.properties new file mode 100644 index 0000000000..a3205e4e75 --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/main/resources/application.properties @@ -0,0 +1,24 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +# Packaging + +server.address=0.0.0.0 + +org.kie.dmn.runtime.typecheck=true \ No newline at end of file diff --git a/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/main/resources/logback.xml b/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/main/resources/logback.xml new file mode 100644 index 0000000000..10014ab3ef --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/main/resources/logback.xml @@ -0,0 +1,34 @@ + + + + + + + %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n + + + + + + + + \ No newline at end of file diff --git a/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/test/java/org/kie/kogito/dmn/springboot/example/AllowedValuesTest.java b/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/test/java/org/kie/kogito/dmn/springboot/example/AllowedValuesTest.java new file mode 100644 index 0000000000..26f5d4189f --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/test/java/org/kie/kogito/dmn/springboot/example/AllowedValuesTest.java @@ -0,0 +1,84 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.kie.kogito.dmn.springboot.example; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.web.server.LocalServerPort; +import org.springframework.test.annotation.DirtiesContext; + +import io.restassured.RestAssured; +import io.restassured.http.ContentType; + +import static io.restassured.RestAssured.given; +import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.is; + +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = KogitoSpringbootApplication.class) +@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD) +public class AllowedValuesTest { + + @LocalServerPort + private int port; + + @BeforeEach + public void setUp() { + RestAssured.port = port; + } + + @Test + public void testAllowedValuesWithValidValue() { + given() + .body("{\n" + + " \"p1\": {\n" + + " \"Name\": \"Joe\",\n" + + " \"Interests\": [\n" + + " \"Golf\"\n" + + " ]\n" + + " }\n" + + "}") + .contentType(ContentType.JSON) + .when() + .post("/AllowedValuesChecksInsideCollection") + .then() + .statusCode(200) + .body("'MyDecision'", is("The Person Joe likes 1 thing(s).")); + } + + @Test + public void testAllowedValuesWithInvalidValue() { + given() + .body("{\n" + + " \"p1\": {\n" + + " \"Name\": \"Joe\",\n" + + " \"Interests\": [\n" + + " \"Dancing\"\n" + + " ]\n" + + " }\n" + + "}") + .contentType(ContentType.JSON) + .when() + .post("/AllowedValuesChecksInsideCollection") + .then() + .statusCode(500) + .body("messages[0].message", containsString( + "Error while evaluating node 'MyDecision' for dependency 'p1': the dependency value '{Interests=[Dancing], Name=Joe}' is not allowed by the declared type (DMNType{ http://www.trisotech.com/definitions/_238bd96d-47cd-4746-831b-504f3e77b442 : Person })")); + } +} diff --git a/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/test/java/org/kie/kogito/dmn/springboot/example/TrafficViolationTest.java b/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/test/java/org/kie/kogito/dmn/springboot/example/TrafficViolationTest.java new file mode 100644 index 0000000000..dc5fa8801c --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/test/java/org/kie/kogito/dmn/springboot/example/TrafficViolationTest.java @@ -0,0 +1,65 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.kie.kogito.dmn.springboot.example; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.web.server.LocalServerPort; +import org.springframework.test.annotation.DirtiesContext; + +import io.restassured.RestAssured; +import io.restassured.http.ContentType; + +import static io.restassured.RestAssured.given; +import static org.hamcrest.Matchers.is; + +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = KogitoSpringbootApplication.class) +@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD) +public class TrafficViolationTest { + + @LocalServerPort + private int port; + + @BeforeEach + public void setUp() { + RestAssured.port = port; + } + + @Test + public void testEvaluateTrafficViolation() { + given() + .body("{\n" + + " \"Driver\": {\n" + + " \"Points\": 2\n" + + " },\n" + + " \"Violation\": {\n" + + " \"Type\": \"speed\",\n" + + " \"Actual Speed\": 120,\n" + + " \"Speed Limit\": 100\n" + + " }\n" + + "}") + .contentType(ContentType.JSON) + .when() + .post("/Traffic Violation") + .then() + .statusCode(200) + .body("'Should the driver be suspended?'", is("No")); + } +} diff --git a/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/test/java/testscenario/TestScenarioJunitActivatorTest.java b/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/test/java/testscenario/TestScenarioJunitActivatorTest.java new file mode 100644 index 0000000000..538d8b1003 --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/test/java/testscenario/TestScenarioJunitActivatorTest.java @@ -0,0 +1,31 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package testscenario; + +import org.drools.scenariosimulation.backend.runner.TestScenarioActivator; + +/** + * TestScenarioJunitActivator is a custom JUnit runner that enables the execution of Test Scenario files (*.scesim). + * This activator class, when executed, will load all scesim files available in the project and run them. + * Each row of the scenario will generate a test JUnit result. + */ +@TestScenarioActivator +public class TestScenarioJunitActivatorTest { + +} \ No newline at end of file diff --git a/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/test/resources/TrafficViolationTest.scesim b/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/test/resources/TrafficViolationTest.scesim new file mode 100644 index 0000000000..3a9a5d98f5 --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/test/resources/TrafficViolationTest.scesim @@ -0,0 +1,766 @@ + + + + + + + + + Index + OTHER + + + # + java.lang.Integer + + java.lang.Integer + # + 70 + NOT_EXPRESSION + + + + + Description + OTHER + + + Scenario description + java.lang.String + + java.lang.String + Scenario description + 300 + NOT_EXPRESSION + + + + + Driver + + + Points + + + + 1|5 + GIVEN + + + Driver + Driver + + number + Driver + Points + + 114 + NOT_EXPRESSION + + + + + Violation + + + Type + + + + 1|8 + GIVEN + + + Violation + Violation + + Type + Violation + Type + + 114 + NOT_EXPRESSION + + + + + Violation + + + Speed Limit + + + + 1|9 + GIVEN + + + Violation + Violation + + number + Violation + Speed Limit + + 114 + NOT_EXPRESSION + + + + + Violation + + + Actual Speed + + + + 1|10 + GIVEN + + + Violation + Violation + + number + Violation + Actual Speed + + 114 + NOT_EXPRESSION + + + + + Fine + + + Amount + + + + 1|11 + EXPECT + + + Fine + Fine + + number + Fine + Amount + + 114 + NOT_EXPRESSION + + + + + Fine + + + Points + + + + 1|12 + EXPECT + + + Fine + Fine + + number + Fine + Points + + 114 + NOT_EXPRESSION + + + + + Should the driver be suspended? + + + + 1|13 + EXPECT + + + Should the driver be suspended? + Should the driver be suspended? + + string + Should the driver be suspended? + value + + 114 + NOT_EXPRESSION + + + + + + + + + Scenario description + java.lang.String + + + Description + OTHER + + Above speed limit: 10km/h and 30 km/h + + + + Driver + Driver + + + 1|5 + GIVEN + + 10 + + + + Violation + Violation + + + 1|8 + GIVEN + + "speed" + + + + Violation + Violation + + + 1|9 + GIVEN + + 100 + + + + Violation + Violation + + + 1|10 + GIVEN + + 120 + + + + Fine + Fine + + + 1|11 + EXPECT + + 500 + + + + Fine + Fine + + + 1|12 + EXPECT + + 3 + + + + Should the driver be suspended? + Should the driver be suspended? + + + 1|13 + EXPECT + + "No" + + + + # + java.lang.Integer + + + Index + OTHER + + 1 + + + + + + + + Scenario description + java.lang.String + + + Description + OTHER + + Above speed limit: more than 30 km/h + + + + Driver + Driver + + + 1|5 + GIVEN + + 10 + + + + Violation + Violation + + + 1|8 + GIVEN + + "speed" + + + + Violation + Violation + + + 1|9 + GIVEN + + 100 + + + + Violation + Violation + + + 1|10 + GIVEN + + 150 + + + + Fine + Fine + + + 1|11 + EXPECT + + 1000 + + + + Fine + Fine + + + 1|12 + EXPECT + + 7 + + + + Should the driver be suspended? + Should the driver be suspended? + + + 1|13 + EXPECT + + "No" + + + + # + java.lang.Integer + + + Index + OTHER + + 2 + + + + + + + + Scenario description + java.lang.String + + + Description + OTHER + + Parking violation + + + + Driver + Driver + + + 1|5 + GIVEN + + 10 + + + + Violation + Violation + + + 1|8 + GIVEN + + "parking" + + + + Violation + Violation + + + 1|9 + GIVEN + + + + + Violation + Violation + + + 1|10 + GIVEN + + + + + Fine + Fine + + + 1|11 + EXPECT + + 100 + + + + Fine + Fine + + + 1|12 + EXPECT + + 1 + + + + Should the driver be suspended? + Should the driver be suspended? + + + 1|13 + EXPECT + + "No" + + + + # + java.lang.Integer + + + Index + OTHER + + 3 + + + + + + + + Scenario description + java.lang.String + + + Description + OTHER + + DUI violation + + + + Driver + Driver + + + 1|5 + GIVEN + + 10 + + + + Violation + Violation + + + 1|8 + GIVEN + + "driving under the influence" + + + + Violation + Violation + + + 1|9 + GIVEN + + + + + Violation + Violation + + + 1|10 + GIVEN + + + + + Fine + Fine + + + 1|11 + EXPECT + + 1000 + + + + Fine + Fine + + + 1|12 + EXPECT + + 5 + + + + Should the driver be suspended? + Should the driver be suspended? + + + 1|13 + EXPECT + + "No" + + + + # + java.lang.Integer + + + Index + OTHER + + 4 + + + + + + + + Scenario description + java.lang.String + + + Description + OTHER + + Driver suspended + + + + Driver + Driver + + + 1|5 + GIVEN + + 15 + + + + Violation + Violation + + + 1|8 + GIVEN + + "speed" + + + + Violation + Violation + + + 1|9 + GIVEN + + 100 + + + + Violation + Violation + + + 1|10 + GIVEN + + 140 + + + + Fine + Fine + + + 1|11 + EXPECT + + 1000 + + + + Fine + Fine + + + 1|12 + EXPECT + + 7 + + + + Should the driver be suspended? + Should the driver be suspended? + + + 1|13 + EXPECT + + "Yes" + + + + # + java.lang.Integer + + + Index + OTHER + + 5 + + + + + + + + + + + + 1|1 + GIVEN + + + Empty + java.lang.Void + + java.lang.Void + INSTANCE 1 + PROPERTY 1 + 114 + NOT_EXPRESSION + + + + + + + + + Empty + java.lang.Void + + + 1|1 + GIVEN + + + + + + + + ../../main/resources/Traffic Violation.dmn + DMN + https://github.com/kiegroup/drools/kie-dmn/_A4BCA8B8-CF08-433F-93B2-A2598F19ECFF + Traffic Violation + false + false + + + + + \ No newline at end of file diff --git a/gradle-examples/kogito-springboot-gradle-examples/pom.xml b/gradle-examples/kogito-springboot-gradle-examples/pom.xml new file mode 100644 index 0000000000..1e1d07411b --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/pom.xml @@ -0,0 +1,23 @@ + + + 4.0.0 + + org.kie.kogito.examples + gradle-examples + 999-SNAPSHOT + + pom + + kogito-springboot-gradle-examples + + Kogito Example :: Gradle :: Spring Boot + Kogito Springboot Examples built with Gradle + + process-decisions-rules-springboot-gradle + dmn-springboot-gradle + + + + \ No newline at end of file diff --git a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/README.md b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/README.md new file mode 100644 index 0000000000..7752ed4629 --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/README.md @@ -0,0 +1,378 @@ + + +# Process with Decisions Integration through Business Rule Task - Gradle build + +This module represent a kogito spring-boot application containing rules, decisions, and processes models, managed by GRADLE. + +## Description + +This is an example project that shows the usage of decisions within processes. Decisions can be expressed in different domains or assets, such as DMN and DRL. +The focus here is to show how to integrate decisions in an embedded way using Business Rule Task where they must be deployed together with the process, in the same application. All assets(bpmn, dmn, drl) must be under the [resources](src/main/resources/). + +This example covers the following items: + +* DMN to define a decision service +* DRL to define rules decision service +* How to integrate the process with decisions using Business Rule Task + +### The Traffic Process example: + +It is based on the traffic violation evaluation process, where it is required to fetch Driver information, and based on this, it is first performed the license validation to check if the driver has a valid license (using a RuleUnit in a DRL) after the license validation it is then executed the violation evaluation defined as a DMN decision and following, it is checked in the process if the output contains information whether the driver was suspended or not, completing the process. + +#### Process using Business Rule Task + +![Traffic Process](docs/images/traffic-rules-dmn.png) + +This is a declarative approach, it does not require to have any extra implementation, the interaction with decisions is executed out-of-the-box by the engine. The information needed to execute the decision evaluation should be set in the Data Assignments in the Business Rule Task. + +The BPMN file where this process is declared is [traffic-rules-dmn.bpmn](src/main/resources/traffic-rules-dmn.bpmn). + +--- + +* #### Process Properties + + +These are the properties defined for the process, the most important one in this section to pay attention is the ID because it is used in the REST endpoint generation referring to the path to interact with this process. + +* #### Proces Variables + +The variables used in the process itself, but the focus in this example are the classes that are used to define the POJOs to interact the process with decisions, that are the [Violation](src/main/java/org/kie/kogito/traffic/Violation.java), [Driver](src/main/java/org/kie/kogito/traffic/Driver.java), [Fine](src/main/java/org/kie/kogito/traffic/Fine.java). + + + +**Mapping data from Process to/from DMN** + +It is important to mention DMN for instance can define the Data Type in its structure, but we can align all attributes names in a Java class that is used as process variables, in case the attribute names contain spaces or are not following java conventions we can use [Jackson](https://github.com/FasterXML/jackson) annotations to make the process variable POJOs aligned with DMN data types, for instance in the [Violation](src/main/java/org/kie/kogito/traffic/Violation.java) class, where it is mapped the `speedLimit` attribute as `Speed Limit` using `@JsonProperty` annotation, in this case, this attribute from the process variable with Violation can be seamlessly integrated Violation Data Type defined in DMN. + +**Violation Data Type in DMN** + + + + +* #### Get Driver Task + +Fetch for driver information, in this implementation it is just mocking a result, that simply fill with an expired license date in case the `driverId` is an odd number and with a valid date in case of an even number. In a real use case, it could be performing an external call to a service or a database to get this information. + +The service task implementation is done in the [DriverService](src/main/java/org/kie/kogito/traffic/DriverService.java) class. + +In the data assignment the input is the `driverId` and output is the `driver` variable, filled with all driver information. + +* #### License Validation Task (DRL) + +Represents the task to do the call to the DRL service. + + + +The properties to be set are mainly the `Rule Language`that should be set as `DRL` and the `Rule Flow Group` with `unit:` + `[the FQCN of the Rule Unit Data class]`, in this case [org.kie.kogito.traffic.LicenseValidationService](src/main/java/org/kie/kogito/traffic/LicenseValidationService.java). + + + +The input and output mapping for this task is just the driver variable that is filled with license validation information. + +![License Validation Data](docs/images/license-validation-dmn-businessrule-data.png) + + +* #### Traffic Violation Task (DMN) +Similar to the License Validation Task, but it represents the task to do the call to the DMN service. + + + +The properties to be set are mainly the `Rule Language`that should be set as `DMN` and the `Namespace` and `DMN Model Name` must be set with the values defined in in the DMN, in this case [TrafficViolation.dmn](src/main/resources/TrafficViolation.dmn). + + + +The input for this task is the `Driver` and `Violation` variables, and the outputs are the `Suspended` and `Fine`. + +![Traffic Violation Data](docs/images/traffic-violation-dmn-businessrule-data.png) + + +* #### Suspended Task +Just an example task where it could be performed any action based on the condition in which the driver is suspended. In the current implementation, it is just logging the information in the console. + + +* #### Not Suspended Task +Just an example task where it could be performed any action based on the condition in which the driver is **not** suspended. In the current implementation, it is just logging the information in the console. + +## Decisions + +### License Validation - Rule Unit + +This decision consistis in rules which are evaluated to check if a driver's license is expired or not according to the expiration date and thus populating the result in the information in the driver variable. + +The DRL file where this Rule Unit is declared is [LicenseValidationService.drl](src/main/resources/LicenseValidationService.drl) and the the Java class that contains the Rule Unit Data is [LicenseValidationService](src/main/java/org/kie/kogito/traffic/LicenseValidationService.java). + +### Traffic Violation - DMN + +This decision consists in a DMN that basically checks if a driver is suspended or not according to the violation and current driver points in its license. + +![Traffic Violation - DMN](docs/images/traffic-violation-dmn.png) + +The DMN file where this decision is declared is [TrafficViolation.dmn](src/main/resources/TrafficViolation.dmn) + + + +## Build and run + +### Prerequisites + +You will need: +- Java 17+ installed +- Environment variable JAVA_HOME set accordingly + +### Compile and Run in Local Dev Mode + +```sh +../../gradlew clean bootRun +``` + +or on windows + +```sh +..\..\gradlew.bat clean bootRun +``` + +### Package and Run in JVM mode +```sh +../../gradlew clean bootJar +java -jar build/libs/process-decisions-rules-springboot-gradle.jar +``` + +or on windows + +```sh +..\..\gradlew.bat clean jar +java -jar build\libs\process-decisions-rules-springboot-gradle.jar +``` + +## HOT-RELOAD +That module feature the "org.springframework.boot:spring-boot-devtools" plugin to enable hot reload on source change (additional dependency): + +```kts + developmentOnly 'org.springframework.boot:spring-boot-devtools' +``` + +To achieve that: +1. in one terminal, issue the command that will listen for code change and, eventually, rebuilt the application on-demand +```sh +../../gradlew clean compileSecondaryJava --continuous --parallel +``` +or on windows + +```sh +..\..\gradlew.bat clean compileSecondaryJava --continuous --parallel +``` + + +2. inside another terminal, issue the command that actually start the application +```sh +../../gradlew bootRun +``` + +or on windows + +```sh +..\..\gradlew.bat bootRun +``` + +Whenever a source is modified, the code will be rebuilt and the application re-loaded with the modifications. + + +## OpenAPI (Swagger) documentation + +[Specification at swagger.io](https://swagger.io/docs/specification/about/) + +You can take a look at the [OpenAPI definition](http://localhost:8080/v3/api-docs) - automatically generated and included in this service - to determine all available operations exposed by this service. For easy readability you can visualize the OpenAPI definition file using a UI tool like for example available [Swagger UI](https://editor.swagger.io). + +In addition, various clients to interact with this service can be easily generated using this OpenAPI definition. + + +## Example Usage + +Once the service is up and running we can invoke the REST endpoints and examine the logic. + +### Submit a request + +To make use of this application it is as simple as putting a sending request to `http://localhost:8080/traffic` with appropriate contents. See the following cases: + +You can play with different attributes. +The `driver-id` format is `{days}-{points}`. Days value > 0 will originate a `driver` with valid license. In this case, the evaluation will proceed taking in account the given points. +Days value = 0 will originate a `driver` with invalid license. In this case, the evaluation will stop after first node and will return a `null` validation. + + +#### Valid License and not suspended Driver + +Given data: + +```json +{ + "driverId": "12-345", + "violation":{ + "Type":"speed", + "Speed Limit": 100, + "Actual Speed":140 + } +} +``` + +Submit the JSON object from above: + +```sh +curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{"driverId": "12-345","violation":{"Type":"speed","Speed Limit": 100,"Actual Speed":140}}' http://localhost:8080/traffic +``` + +After the Curl command you should see a similar console log + +```json +{ + "id": "06ecbbb0-4972-431d-9b37-355d83bb1092", + "driverId": "12-345", + "driver": { + "licenseExpiration": "2021-08-13T17:59:08.589+00:00", + "validLicense": true, + "Name": "Arthur", + "State": "SP", + "City": "Campinas", + "Points": 13, + "Age": 30 + }, + "validated": { + "ValidLicense": true, + "Suspended": "no" + }, + "fine": { + "Amount": 1000.0, + "Points": 7 + }, + "violation": { + "Code": null, + "Date": null, + "Type": "speed", + "Speed Limit": 100, + "Actual Speed": 140 + } +} +``` + + +#### Valid License and suspended Driver + +Given data: + +```json +{ + "driverId": "12-15", + "violation":{ + "Type":"speed", + "Speed Limit": 100, + "Actual Speed":110 + } +} +``` + +Submit the JSON object from above: + +```sh +curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{"driverId": "12-15","violation":{"Type":"speed","Speed Limit": 100,"Actual Speed":110}}' http://localhost:8080/traffic +``` + + +After the Curl command, you should see a similar console log + +```json +{ + "id": "887d8f39-93ec-43cc-96e5-df8e9bb199f8", + "driverId": "12-15", + "driver": { + "licenseExpiration": "2021-08-12T17:59:37.703+00:00", + "validLicense": false, + "Name": "Arthur", + "State": "SP", + "City": "Campinas", + "Points": 13, + "Age": 30 + }, + "validated": { + "Suspended": "yes", + "ValidLicense": false + }, + "fine": null, + "violation": { + "Code": null, + "Date": null, + "Type": "speed", + "Speed Limit": 100, + "Actual Speed": 110 + } +} +``` + +#### Expired Valid License + +Given data: + +```json +{ + "driverId": "0-150", + "violation":{ + "Type":"speed", + "Speed Limit": 100, + "Actual Speed":110 + } +} +``` + +Submit the JSON object from above: + +```sh +curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{"driverId": "0-150","violation":{"Type":"speed","Speed Limit": 100,"Actual Speed":110}}' http://localhost:8080/traffic +``` + + +After the Curl command, you should see a similar console log + +```json +{ + "id": "887d8f39-93ec-43cc-96e5-df8e9bb199f8", + "driverId": "0-150", + "driver": { + "licenseExpiration": "2021-08-12T17:59:37.703+00:00", + "validLicense": false, + "Name": "Arthur", + "State": "SP", + "City": "Campinas", + "Points": 13, + "Age": 30 + }, + "validated": null, + "fine": null, + "violation": { + "Code": null, + "Date": null, + "Type": "speed", + "Speed Limit": 100, + "Actual Speed": 110 + } +} +``` +In this case the driver license is expired when the DRL is evaluated because the DriverService generated an expired date for the driver's license thus DMN is not evaluated, so the `validLicense` is `false`, `suspended` and `fine` are `null`. + + + + diff --git a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/build.gradle b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/build.gradle new file mode 100644 index 0000000000..3d17fe9a0e --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/build.gradle @@ -0,0 +1,92 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ + +plugins { + id 'java' + id("org.kie.kogito.gradle") version "${kogitoVersion}" + id "org.springframework.boot" version "${springBootVersion}" + id("io.spring.dependency-management") version "${springBootDependencyManagementVersion}" + + // Inspection purpose + id "com.dorongold.task-tree" version "${taskTreeVersion}" +} + +repositories { + mavenCentral() + mavenLocal() +} + +dependencies { + implementation platform("org.kie.kogito:kogito-spring-boot-bom:${kogitoVersion}") + implementation("org.springframework.boot:spring-boot-starter-web") + implementation("org.jbpm:jbpm-spring-boot-starter") + implementation("org.drools:drools-decisions-spring-boot-starter") + testImplementation("org.junit.jupiter:junit-jupiter:${junitVersion}") + testImplementation("org.springframework.boot:spring-boot-starter-test") + testImplementation("io.rest-assured:rest-assured") + developmentOnly 'org.springframework.boot:spring-boot-devtools' +} + +group 'org.kie.kogito.examples' +version '999-SNAPSHOT' + +generateModelConfig { + jsonSchemaVersion = "DRAFT_2019_09" +} + +compileJava { + options.encoding = 'UTF-8' + options.compilerArgs << '-parameters' +} + +compileTestJava { + options.encoding = 'UTF-8' +} + +springBoot { + mainClass = 'org.kie.kogito.traffic.KogitoApplication' +} + + +tasks.named("resolveMainClassName") { + dependsOn(tasks.named("compileSecondaryJava")) +} + +tasks.named("bootRun") { + dependsOn(tasks.named("compileSecondaryJava")) +} + +tasks.named("bootJar") { + dependsOn(tasks.named("compileSecondaryJava")) +} + +tasks.named("jar") { + dependsOn(tasks.named("compileSecondaryJava")) + from(tasks.named("compileSecondaryJava").get()) +} + +tasks.named("compileTestJava") { + dependsOn(tasks.named("compileSecondaryJava")) +} + +test { + dependsOn(tasks.named("compileSecondaryJava")) + useJUnitPlatform() +} \ No newline at end of file diff --git a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/gradle.properties b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/gradle.properties new file mode 100644 index 0000000000..a6acc20250 --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/gradle.properties @@ -0,0 +1,6 @@ +#Gradle properties +springBootVersion=3.5.10 +springBootDependencyManagementVersion=1.1.5 +taskTreeVersion=4.0.1 +junitVersion=5.12.1 +kogitoVersion=999-SNAPSHOT \ No newline at end of file diff --git a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/pom.xml b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/pom.xml new file mode 100644 index 0000000000..75fbfe89fa --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/pom.xml @@ -0,0 +1,93 @@ + + + 4.0.0 + + org.kie.kogito.examples + kogito-springboot-gradle-examples + 999-SNAPSHOT + + + process-decisions-rules-springboot-gradle + Kogito Example :: Gradle :: Spring Boot :: Process - Decisions - Rules + Process with DRL, DMN and DRL integration - Spring Boot - Gradle + + + process.decisions.rules.springboot.gradle + 17 + ${project.parent.parent.basedir}/gradlew + + + + + org.kie.kogito + kogito-gradle-plugin + ${project.version} + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + **/*.java + + + **/*.java + + + + + + org.codehaus.mojo + exec-maven-plugin + + + gradle + test + + ${gradle.executable} + + clean + test + + + + exec + + + + + + + maven-clean-plugin + + + + ${project.basedir}/build + + + + + + + + + + WINDOWS + + + windows + + + + ${project.parent.parent.basedir}/gradlew.bat + + + + \ No newline at end of file diff --git a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/settings.gradle b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/settings.gradle new file mode 100644 index 0000000000..f20761f5ae --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/settings.gradle @@ -0,0 +1,40 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ + +pluginManagement { + repositories { + mavenLocal() + mavenCentral() + maven { + url = uri("target/dependencies") + } + maven { + url = uri("https://plugins.gradle.org/m2/") + } + } + resolutionStrategy { + eachPlugin { + if (requested.id.namespace == "org.kie.kogito") { + useModule("org.kie.kogito:kogito-gradle-plugin:${requested.version}") + } + } + } +} +rootProject.name = "process-decisions-rules-springboot-gradle" \ No newline at end of file diff --git a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/DriverService.java b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/DriverService.java new file mode 100644 index 0000000000..ded5844df1 --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/DriverService.java @@ -0,0 +1,46 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ +package org.kie.kogito.traffic; + +import java.time.ZonedDateTime; +import java.util.Date; + +import org.kie.kogito.traffic.licensevalidation.Driver; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; + +@Service +public class DriverService { + + private static Logger LOGGER = LoggerFactory.getLogger(DriverService.class); + + public Driver getDriver(String driverId) { + LOGGER.info("Get Driver Information for id = {}", driverId); + //Could call an external service, database, etc. + + //Mocking driver details + String[] parts = driverId.split("-"); + long days = Long.parseLong(parts[0]); + int points = Integer.parseInt(parts[1]); + Date licenseExpiration = new Date(ZonedDateTime.now().plusDays(days).toInstant().toEpochMilli()); + return new Driver(driverId, "Arthur", "SP", "Campinas", points, 30, licenseExpiration); + } +} diff --git a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/Fine.java b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/Fine.java new file mode 100644 index 0000000000..830aa484c7 --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/Fine.java @@ -0,0 +1,47 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ +package org.kie.kogito.traffic; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class Fine { + + @JsonProperty("Amount") + private Double amount; + + @JsonProperty("Points") + private Integer points; + + public Double getAmount() { + return amount; + } + + public void setAmount(Double amount) { + this.amount = amount; + } + + public Integer getPoints() { + return points; + } + + public void setPoints(Integer points) { + this.points = points; + } +} diff --git a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/KogitoApplication.java b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/KogitoApplication.java new file mode 100644 index 0000000000..deb467c93b --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/KogitoApplication.java @@ -0,0 +1,31 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ +package org.kie.kogito.traffic; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication(scanBasePackages = { "org.kie.kogito.**", "com.example.**", "http**" }) +public class KogitoApplication { + + public static void main(String[] args) { + SpringApplication.run(KogitoApplication.class, args); + } +} diff --git a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/Violation.java b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/Violation.java new file mode 100644 index 0000000000..4cfb1aaab1 --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/Violation.java @@ -0,0 +1,93 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ +package org.kie.kogito.traffic; + +import java.math.BigDecimal; +import java.util.Date; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class Violation { + + @JsonProperty("Code") + private String code; + + @JsonProperty("Date") + private Date date; + + @JsonProperty("Type") + private String type; + + @JsonProperty("Speed Limit") + private BigDecimal speedLimit; + + @JsonProperty("Actual Speed") + private BigDecimal actualSpeed; + + public Violation() { + } + + public Violation(String type, BigDecimal speedLimit, BigDecimal actualSpeed) { + this.type = type; + this.speedLimit = speedLimit; + this.actualSpeed = actualSpeed; + this.date = new Date(); + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public Date getDate() { + return date; + } + + public void setDate(Date date) { + this.date = date; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public BigDecimal getSpeedLimit() { + return speedLimit; + } + + public void setSpeedLimit(BigDecimal speedLimit) { + this.speedLimit = speedLimit; + } + + public BigDecimal getActualSpeed() { + return actualSpeed; + } + + public void setActualSpeed(BigDecimal actualSpeed) { + this.actualSpeed = actualSpeed; + } +} diff --git a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/licensevalidated/LicenseValidatedService.java b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/licensevalidated/LicenseValidatedService.java new file mode 100644 index 0000000000..5555b1a021 --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/licensevalidated/LicenseValidatedService.java @@ -0,0 +1,50 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ +package org.kie.kogito.traffic.licensevalidated; + +import java.util.Date; + +import org.drools.ruleunits.api.DataSource; +import org.drools.ruleunits.api.RuleUnitData; +import org.drools.ruleunits.api.SingletonStore; + +public class LicenseValidatedService implements RuleUnitData { + private SingletonStore validated; + + public LicenseValidatedService() { + this(DataSource.createSingleton()); + } + + public LicenseValidatedService(SingletonStore validated) { + this.validated = validated; + } + + public void setValidated(SingletonStore validated) { + this.validated = validated; + } + + public SingletonStore getValidated() { + return validated; + } + + public Date getCurrentTime() { + return new Date(); + } +} diff --git a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/licensevalidated/Validated.java b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/licensevalidated/Validated.java new file mode 100644 index 0000000000..e8fdf445e1 --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/licensevalidated/Validated.java @@ -0,0 +1,56 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ +package org.kie.kogito.traffic.licensevalidated; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; + +@JsonIgnoreProperties(ignoreUnknown = true) +public class Validated { + + @JsonProperty("Suspended") + private String suspended; + + @JsonProperty("ValidLicense") + private Boolean validLicense = Boolean.FALSE; + + public Validated() { + } + + public Validated(String suspended) { + this.suspended = suspended; + } + + public String getSuspended() { + return suspended; + } + + public Boolean isValidLicense() { + return validLicense; + } + + public Boolean getValidLicense() { + return validLicense; + } + + public void setValidLicense(Boolean validLicense) { + this.validLicense = validLicense; + } +} diff --git a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/licensevalidation/Driver.java b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/licensevalidation/Driver.java new file mode 100644 index 0000000000..cfe7d07937 --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/licensevalidation/Driver.java @@ -0,0 +1,131 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.kie.kogito.traffic.licensevalidation; + +import java.util.Date; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; + +@JsonIgnoreProperties(ignoreUnknown = true) +public class Driver { + + private String id; + + @JsonProperty("Name") + private String name; + + @JsonProperty("State") + private String state; + + @JsonProperty("City") + private String city; + + @JsonProperty("Points") + private Integer points; + + @JsonProperty("Age") + private Integer age; + + private Date licenseExpiration; + + @JsonProperty("ValidLicense") + private Boolean validLicense = Boolean.FALSE; + + public Driver() { + } + + public Driver(String id, String name, String state, String city, Integer points, Integer age, Date licenseExpiration) { + this.id = id; + this.name = name; + this.state = state; + this.city = city; + this.points = points; + this.age = age; + this.licenseExpiration = licenseExpiration; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public Integer getPoints() { + return points; + } + + public void setPoints(Integer points) { + this.points = points; + } + + public Integer getAge() { + return age; + } + + public void setAge(Integer age) { + this.age = age; + } + + public Date getLicenseExpiration() { + return licenseExpiration; + } + + public void setLicenseExpiration(Date licenseExpiration) { + this.licenseExpiration = licenseExpiration; + } + + public Boolean isValidLicense() { + return validLicense; + } + + public Boolean getValidLicense() { + return validLicense; + } + + public void setValidLicense(Boolean validLicense) { + this.validLicense = validLicense; + } +} diff --git a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/licensevalidation/LicenseValidationService.java b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/licensevalidation/LicenseValidationService.java new file mode 100644 index 0000000000..082455e68b --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/licensevalidation/LicenseValidationService.java @@ -0,0 +1,50 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ +package org.kie.kogito.traffic.licensevalidation; + +import java.util.Date; + +import org.drools.ruleunits.api.DataSource; +import org.drools.ruleunits.api.RuleUnitData; +import org.drools.ruleunits.api.SingletonStore; + +public class LicenseValidationService implements RuleUnitData { + private SingletonStore driver; + + public LicenseValidationService() { + this(DataSource.createSingleton()); + } + + public LicenseValidationService(SingletonStore driver) { + this.driver = driver; + } + + public void setDriver(SingletonStore driver) { + this.driver = driver; + } + + public SingletonStore getDriver() { + return driver; + } + + public Date getCurrentTime() { + return new Date(); + } +} diff --git a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/resources/LicenseValidatedService.drl b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/resources/LicenseValidatedService.drl new file mode 100644 index 0000000000..f3b50665c7 --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/resources/LicenseValidatedService.drl @@ -0,0 +1,32 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.kie.kogito.traffic.licensevalidated + +unit LicenseValidatedService + +rule "Is validated license validated" +when + $validated: /validated[suspended.equalsIgnoreCase("no")] +then + $validated.setValidLicense(true); +end + +query "validate" + $validated : /validated +end \ No newline at end of file diff --git a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/resources/LicenseValidationService.drl b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/resources/LicenseValidationService.drl new file mode 100644 index 0000000000..da7439087d --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/resources/LicenseValidationService.drl @@ -0,0 +1,39 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.kie.kogito.traffic.licensevalidation + +unit LicenseValidationService + +rule "Is driver license valid" +when + $driver: /driver[licenseExpiration.after(currentTime)] +then + $driver.setValidLicense(true); +end + +rule "Is driver license expired" +when + $driver: /driver[licenseExpiration.before(currentTime)] +then + $driver.setValidLicense(false); +end + +query "validation" + $driver : /driver +end \ No newline at end of file diff --git a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/resources/TrafficViolation.dmn b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/resources/TrafficViolation.dmn new file mode 100644 index 0000000000..f94043a891 --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/resources/TrafficViolation.dmn @@ -0,0 +1,307 @@ + + + + + + + string + + + number + + + string + + + string + + + number + + + + + string + + + date + + + string + + "speed", "parking", "driving under the influence" + + + + number + + + number + + + + + number + + + number + + + + + string + + + boolean + + + + + + + + + + + + + + + + Violation.Type + + + + + Violation.Actual Speed - Violation.Speed Limit + + + + + + + + "speed" + + + [10..30) + + + 500 + + + 3 + + + + + + + + "speed" + + + >= 30 + + + 1000 + + + 7 + + + + + + + + "parking" + + + - + + + 100 + + + 1 + + + + + + + + "driving under the influence" + + + - + + + 1000 + + + 5 + + + + + + + + + + + + + + + + + + + + + + + + Driver.Points + + + + + + + + < 20 + + + "yes" + + + false + + + + + + + + = 20 + + + "no" + + + true + + + + + + + + > 20 + + + "no" + + + true + + + + + + + + + + + + + 50 + 254 + 329 + 119 + 100 + 186 + + + 50 + 329 + 100 + 119 + 186 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/resources/application.properties b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/resources/application.properties new file mode 100644 index 0000000000..c8d01d3a56 --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/resources/application.properties @@ -0,0 +1,23 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# +# + +server.address=0.0.0.0 +kogito.generate.rest.decisions=true +kogito.generate.rest.processes=true \ No newline at end of file diff --git a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/resources/traffic-rules-dmn.bpmn b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/resources/traffic-rules-dmn.bpmn new file mode 100644 index 0000000000..1ddb14979f --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/resources/traffic-rules-dmn.bpmn @@ -0,0 +1,534 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _BB963FF4-CF17-4CA0-A727-9AFC2BE17C29 + _E7EF578E-3735-42D9-BF0C-8CCBF398D41C + + + + + _3F719C8E-DA3F-46F8-B8F2-5F04DB132E9C_validatedInputX + + + _3F719C8E-DA3F-46F8-B8F2-5F04DB132E9C_validatedOutputX + + + + validated + _3F719C8E-DA3F-46F8-B8F2-5F04DB132E9C_validatedInputX + + + _3F719C8E-DA3F-46F8-B8F2-5F04DB132E9C_validatedOutputX + validated + + + + _044AA388-325A-45DE-B783-4F48421B788B + + + + + + + + _D3E2F4B7-7739-452F-8D55-0C4F169D4A44 + _D2252EFF-5EC4-4D61-B797-653F71652627 + _044AA388-325A-45DE-B783-4F48421B788B + + + + + + + + _A19108FE-08A2-4E80-B7A8-0254C49209A6 + _D3E2F4B7-7739-452F-8D55-0C4F169D4A44 + + + + + _95EFED1F-73F8-47E7-9604-A81EFE5DE8F5_driverInputX + + + _95EFED1F-73F8-47E7-9604-A81EFE5DE8F5_driverOutputX + + + + driver + _95EFED1F-73F8-47E7-9604-A81EFE5DE8F5_driverInputX + + + _95EFED1F-73F8-47E7-9604-A81EFE5DE8F5_driverOutputX + driver + + + + + + + + + _2C2FFD79-4241-4F9E-A486-2482F817595E + _A19108FE-08A2-4E80-B7A8-0254C49209A6 + + + + + _93FFD317-476E-4624-84EF-994617572560_driverIdInputX + + + _93FFD317-476E-4624-84EF-994617572560_responseOutputX + + + + driverId + _93FFD317-476E-4624-84EF-994617572560_driverIdInputX + + + _93FFD317-476E-4624-84EF-994617572560_responseOutputX + driver + + + + _1287C97D-3568-458A-A907-0123A64A93BE + + + + + + + + _249EB7E9-5847-47C9-8B4D-8BEFED257600 + _1287C97D-3568-458A-A907-0123A64A93BE + System.out.println("Driver is suspended!"); + + + + + + + + _E7EF578E-3735-42D9-BF0C-8CCBF398D41C + _19CC68B6-D2DC-4E39-99E5-CE5B30C5FEE6 + _249EB7E9-5847-47C9-8B4D-8BEFED257600 + + + _521A00FC-6A79-44ED-8485-45DB97A621F2 + + + + + + + + _19CC68B6-D2DC-4E39-99E5-CE5B30C5FEE6 + _521A00FC-6A79-44ED-8485-45DB97A621F2 + System.out.println("Driver is NOT suspended!"); + + + + + + + + _D2252EFF-5EC4-4D61-B797-653F71652627 + _BB963FF4-CF17-4CA0-A727-9AFC2BE17C29 + + + + + + + + + _B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_namespaceInputX + _B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_modelInputX + _B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_ViolationInputX + _B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_DriverInputX + + + _B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_ValidatedOutputX + _B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_FineOutputX + + + + _B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_namespaceInputX + + + + + + + _B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_modelInputX + + + + + + + violation + _B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_ViolationInputX + + + driver + _B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_DriverInputX + + + _B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_ValidatedOutputX + validated + + + _B076DF7E-91A5-47C7-B3FC-2C2EC06E5941_FineOutputX + fine + + + + _2C2FFD79-4241-4F9E-A486-2482F817595E + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _FcMNgJTYEDuJVMby5BR7SQ + _FcMNgJTYEDuJVMby5BR7SQ + + \ No newline at end of file diff --git a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/test/java/org/kie/kogito/traffic/TrafficProcessIT.java b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/test/java/org/kie/kogito/traffic/TrafficProcessIT.java new file mode 100644 index 0000000000..3deb409258 --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/test/java/org/kie/kogito/traffic/TrafficProcessIT.java @@ -0,0 +1,82 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ +package org.kie.kogito.traffic; + +import java.math.BigDecimal; +import java.util.HashMap; +import java.util.Map; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.web.server.LocalServerPort; + +import io.restassured.RestAssured; +import io.restassured.http.ContentType; +import io.restassured.response.ValidatableResponse; + +import static io.restassured.RestAssured.given; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.nullValue; + +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = KogitoApplication.class) +public class TrafficProcessIT { + + public static final BigDecimal SPEED_LIMIT = new BigDecimal(100); + + static { + RestAssured.enableLoggingOfRequestAndResponseIfValidationFails(); + } + + @LocalServerPort + int randomServerPort; + + @BeforeEach + void setup() { + RestAssured.port = randomServerPort; + } + + @Test + void testTrafficViolationEmbeddedDecisionOnSpringBoot() { + testTrafficProcess("traffic", "12-345", 120d, "no", true, true); + testTrafficProcess("traffic", "12-15", 140d, "yes", true, false); + testTrafficProcess("traffic", "0-150", 140d, null, false, false); + } + + private void testTrafficProcess(String processId, String driverId, Double speed, String suspended, boolean validLicense, boolean validatedLicense) { + Map request = new HashMap<>(); + request.put("driverId", driverId); + request.put("violation", new Violation("speed", SPEED_LIMIT, new BigDecimal(speed))); + ValidatableResponse body = given() + .body(request) + .contentType(ContentType.JSON) + .when() + .post("/" + processId) + .then() + .statusCode(201) + .body("driver.ValidLicense", is(validLicense)); + if (suspended != null) { + body.body("validated.ValidLicense", is(validatedLicense)) + .body("validated.Suspended", is(suspended)); + } else { + body.body("validated", nullValue()); + } + } +} diff --git a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/test/java/org/kie/kogito/traffic/TrafficValidationIT.java b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/test/java/org/kie/kogito/traffic/TrafficValidationIT.java new file mode 100644 index 0000000000..65d2c79fdd --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/test/java/org/kie/kogito/traffic/TrafficValidationIT.java @@ -0,0 +1,83 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ +package org.kie.kogito.traffic; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.kie.kogito.traffic.licensevalidated.Validated; +import org.kie.kogito.traffic.licensevalidation.Driver; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.web.server.LocalServerPort; + +import io.restassured.RestAssured; +import io.restassured.http.ContentType; + +import static io.restassured.RestAssured.given; +import static org.hamcrest.Matchers.is; + +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = KogitoApplication.class) +class TrafficValidationIT { + + static { + RestAssured.enableLoggingOfRequestAndResponseIfValidationFails(); + } + + @LocalServerPort + int randomServerPort; + + @BeforeEach + void setup() { + RestAssured.port = randomServerPort; + } + + @Test + void testTrafficValidationOnSpringBoot() { + Map request = new HashMap<>(); + request.put("driver", new Driver("12-345", "Arthur", "SP", "Campinas", 2, 30, new Date())); + request.put("currentTime", new Date()); + given() + .body(request) + .contentType(ContentType.JSON) + .when() + .post("/validation") + .then() + .statusCode(200) + .body("ValidLicense[0]", is(false)); + } + + @Test + void testTrafficValidateOnSpringBoot() { + Map request = new HashMap<>(); + request.put("validated", new Validated("no")); + request.put("currentTime", new Date()); + given() + .body(request) + .contentType(ContentType.JSON) + .when() + .post("/validate") + .then() + .statusCode(200) + .body("ValidLicense[0]", is(true)); + } +} diff --git a/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/test/java/org/kie/kogito/traffic/TrafficViolationIT.java b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/test/java/org/kie/kogito/traffic/TrafficViolationIT.java new file mode 100644 index 0000000000..bab22036cb --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/test/java/org/kie/kogito/traffic/TrafficViolationIT.java @@ -0,0 +1,68 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ +package org.kie.kogito.traffic; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.web.server.LocalServerPort; + +import io.restassured.RestAssured; +import io.restassured.http.ContentType; + +import static io.restassured.RestAssured.given; +import static org.hamcrest.Matchers.is; + +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = KogitoApplication.class) +class TrafficViolationIT { + + static { + RestAssured.enableLoggingOfRequestAndResponseIfValidationFails(); + } + + @LocalServerPort + int randomServerPort; + + @BeforeEach + void setup() { + RestAssured.port = randomServerPort; + } + + @Test + void testTrafficViolationEmbeddedDecisionOnSpringBoot() { + given() + .body("{\n" + + " \"Driver\": {\n" + + " \"Points\": 2\n" + + " },\n" + + " \"Violation\": {\n" + + " \"Type\": \"speed\",\n" + + " \"Actual Speed\": 120,\n" + + " \"Speed Limit\": 100\n" + + " }\n" + + "}") + .contentType(ContentType.JSON) + .when() + .post("/Traffic Violation") + .then() + .statusCode(200) + .body("Validated.Suspended", is("yes")); + } +} diff --git a/gradle-examples/pom.xml b/gradle-examples/pom.xml new file mode 100644 index 0000000000..fd690b467d --- /dev/null +++ b/gradle-examples/pom.xml @@ -0,0 +1,21 @@ + + + 4.0.0 + + org.kie.kogito.examples + kogito-examples + 999-SNAPSHOT + + gradle-examples + pom + + Kogito Example :: Gradle + Kogito Examples built with Gradle + + kogito-springboot-gradle-examples + kogito-quarkus-gradle-examples + + + \ No newline at end of file diff --git a/kogito-quarkus-examples/decisiontable-quarkus-example/README.md b/kogito-quarkus-examples/decisiontable-quarkus-example/README.md index cca4265afd..7f8f014bf9 100644 --- a/kogito-quarkus-examples/decisiontable-quarkus-example/README.md +++ b/kogito-quarkus-examples/decisiontable-quarkus-example/README.md @@ -20,7 +20,7 @@ You will need: - Maven 3.9.11+ installed When using native image compilation, you will also need: - - [GraalVM 19.3.1](https://github.com/graalvm/graalvm-ce-builds/releases/tag/vm-19.3.1) installed + - [GraalVM 21.0.2](https://github.com/graalvm/graalvm-ce-builds/releases/tag/vm-21.0.2) installed - Environment variable GRAALVM_HOME set accordingly - Note that GraalVM native image compilation typically requires other packages (glibc-devel, zlib-devel and gcc) to be installed too. You also need 'native-image' installed in GraalVM (using 'gu install native-image'). Please refer to [GraalVM installation documentation](https://www.graalvm.org/docs/reference-manual/aot-compilation/#prerequisites) for more details. diff --git a/kogito-quarkus-examples/decisiontable-quarkus-example/pom.xml b/kogito-quarkus-examples/decisiontable-quarkus-example/pom.xml index 0a6becaaa6..d1e3b11e5d 100644 --- a/kogito-quarkus-examples/decisiontable-quarkus-example/pom.xml +++ b/kogito-quarkus-examples/decisiontable-quarkus-example/pom.xml @@ -30,10 +30,10 @@ decisiontable-quarkus-example Kogito Example :: Decision Table - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/dmn-15-quarkus-example/pom.xml b/kogito-quarkus-examples/dmn-15-quarkus-example/pom.xml index 319ceb6d1a..4d6d1d4b73 100644 --- a/kogito-quarkus-examples/dmn-15-quarkus-example/pom.xml +++ b/kogito-quarkus-examples/dmn-15-quarkus-example/pom.xml @@ -12,10 +12,10 @@ dmn-15-quarkus-example Kogito Example :: DMN :: 1.5 Features - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/dmn-drools-quarkus-metrics/pom.xml b/kogito-quarkus-examples/dmn-drools-quarkus-metrics/pom.xml index e3cedb169a..90bfdb603a 100755 --- a/kogito-quarkus-examples/dmn-drools-quarkus-metrics/pom.xml +++ b/kogito-quarkus-examples/dmn-drools-quarkus-metrics/pom.xml @@ -30,10 +30,10 @@ dmn-drools-quarkus-metrics Kogito Example :: DMN Metrics Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/dmn-event-driven-quarkus/pom.xml b/kogito-quarkus-examples/dmn-event-driven-quarkus/pom.xml index 404169bbf9..23ca28b84c 100644 --- a/kogito-quarkus-examples/dmn-event-driven-quarkus/pom.xml +++ b/kogito-quarkus-examples/dmn-event-driven-quarkus/pom.xml @@ -32,10 +32,10 @@ dmn-event-driven-quarkus Kogito Example :: DMN Event-Driven :: Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/dmn-incubation-api-quarkus/pom.xml b/kogito-quarkus-examples/dmn-incubation-api-quarkus/pom.xml index a3d0828378..79f261a073 100644 --- a/kogito-quarkus-examples/dmn-incubation-api-quarkus/pom.xml +++ b/kogito-quarkus-examples/dmn-incubation-api-quarkus/pom.xml @@ -30,10 +30,10 @@ dmn-incubation-api-quarkus Kogito Example :: DMN Incubation API With Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/dmn-knative-quickstart-quarkus/pom.xml b/kogito-quarkus-examples/dmn-knative-quickstart-quarkus/pom.xml index 1c5b6fa040..3ad6f5d933 100644 --- a/kogito-quarkus-examples/dmn-knative-quickstart-quarkus/pom.xml +++ b/kogito-quarkus-examples/dmn-knative-quickstart-quarkus/pom.xml @@ -34,10 +34,10 @@ 3.13.0 - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/dmn-listener-dtable/pom.xml b/kogito-quarkus-examples/dmn-listener-dtable/pom.xml index cc13b3b579..5920a5bdae 100644 --- a/kogito-quarkus-examples/dmn-listener-dtable/pom.xml +++ b/kogito-quarkus-examples/dmn-listener-dtable/pom.xml @@ -30,10 +30,10 @@ dmn-listener-dtable Kogito Example :: DMN Decision Table listener - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/dmn-listener-quarkus/pom.xml b/kogito-quarkus-examples/dmn-listener-quarkus/pom.xml index 3dab111d8a..898953e278 100644 --- a/kogito-quarkus-examples/dmn-listener-quarkus/pom.xml +++ b/kogito-quarkus-examples/dmn-listener-quarkus/pom.xml @@ -30,10 +30,10 @@ dmn-listener-quarkus Kogito Example :: DMN with listeners - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/dmn-multiple-models-quarkus-example/pom.xml b/kogito-quarkus-examples/dmn-multiple-models-quarkus-example/pom.xml index 23ed59d155..2ea325220a 100644 --- a/kogito-quarkus-examples/dmn-multiple-models-quarkus-example/pom.xml +++ b/kogito-quarkus-examples/dmn-multiple-models-quarkus-example/pom.xml @@ -30,10 +30,10 @@ dmn-multiple-models-quarkus-example Kogito Example :: DMN :: Multiple Models - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/dmn-pmml-quarkus-example/pom.xml b/kogito-quarkus-examples/dmn-pmml-quarkus-example/pom.xml index 2d762c6bc1..72c0206b9c 100644 --- a/kogito-quarkus-examples/dmn-pmml-quarkus-example/pom.xml +++ b/kogito-quarkus-examples/dmn-pmml-quarkus-example/pom.xml @@ -30,10 +30,10 @@ dmn-pmml-quarkus-example Kogito Example :: DMN :: PMML - QUARKUS - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/dmn-quarkus-example/pom.xml b/kogito-quarkus-examples/dmn-quarkus-example/pom.xml index 46d1808bc9..5bc9b523c8 100644 --- a/kogito-quarkus-examples/dmn-quarkus-example/pom.xml +++ b/kogito-quarkus-examples/dmn-quarkus-example/pom.xml @@ -30,10 +30,10 @@ dmn-quarkus-example Kogito Example :: DMN - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/dmn-resource-jar-quarkus-example/dmn-quarkus-consumer-example/pom.xml b/kogito-quarkus-examples/dmn-resource-jar-quarkus-example/dmn-quarkus-consumer-example/pom.xml index cd2cf19069..40357af6f7 100644 --- a/kogito-quarkus-examples/dmn-resource-jar-quarkus-example/dmn-quarkus-consumer-example/pom.xml +++ b/kogito-quarkus-examples/dmn-resource-jar-quarkus-example/dmn-quarkus-consumer-example/pom.xml @@ -12,10 +12,10 @@ dmn-quarkus-consumer-example - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/dmn-resource-jar-quarkus-example/dmn-quarkus-consumer-example/src/test/java/org/kie/kogito/dmn/consumer/example/NativeTrafficViolationIT.java b/kogito-quarkus-examples/dmn-resource-jar-quarkus-example/dmn-quarkus-consumer-example/src/test/java/org/kie/kogito/dmn/consumer/example/NativeTrafficViolationIT.java index 1d1a4103cc..adc47a6c4b 100644 --- a/kogito-quarkus-examples/dmn-resource-jar-quarkus-example/dmn-quarkus-consumer-example/src/test/java/org/kie/kogito/dmn/consumer/example/NativeTrafficViolationIT.java +++ b/kogito-quarkus-examples/dmn-resource-jar-quarkus-example/dmn-quarkus-consumer-example/src/test/java/org/kie/kogito/dmn/consumer/example/NativeTrafficViolationIT.java @@ -21,7 +21,7 @@ import io.quarkus.test.junit.QuarkusIntegrationTest; @QuarkusIntegrationTest -public class NativeTrafficViolationIT extends TrafficViolationTest { +public class NativeTrafficViolationIT extends TrafficViolationTestBase { // Execute the same tests but in native mode. } \ No newline at end of file diff --git a/kogito-quarkus-examples/dmn-resource-jar-quarkus-example/dmn-quarkus-consumer-example/src/test/java/org/kie/kogito/dmn/consumer/example/TrafficViolationTest.java b/kogito-quarkus-examples/dmn-resource-jar-quarkus-example/dmn-quarkus-consumer-example/src/test/java/org/kie/kogito/dmn/consumer/example/TrafficViolationTest.java index 34be5f4a8c..89156b4a62 100644 --- a/kogito-quarkus-examples/dmn-resource-jar-quarkus-example/dmn-quarkus-consumer-example/src/test/java/org/kie/kogito/dmn/consumer/example/TrafficViolationTest.java +++ b/kogito-quarkus-examples/dmn-resource-jar-quarkus-example/dmn-quarkus-consumer-example/src/test/java/org/kie/kogito/dmn/consumer/example/TrafficViolationTest.java @@ -25,39 +25,15 @@ import org.kie.kogito.dmn.consumer.example.customprofiles.CustomDMNProfile; import io.quarkus.test.junit.QuarkusTest; -import io.restassured.http.ContentType; -import static io.restassured.RestAssured.given; import static org.assertj.core.api.Assertions.assertThat; -import static org.hamcrest.Matchers.is; @QuarkusTest -public class TrafficViolationTest { +public class TrafficViolationTest extends TrafficViolationTestBase { @jakarta.inject.Inject DecisionModels decisionModels; - @Test - public void testEvaluateTrafficViolation() { - given() - .body("{\n" + - " \"Driver\": {\n" + - " \"Points\": 2\n" + - " },\n" + - " \"Violation\": {\n" + - " \"Type\": \"speed\",\n" + - " \"Actual Speed\": 120,\n" + - " \"Speed Limit\": 100\n" + - " }\n" + - "}") - .contentType(ContentType.JSON) - .when() - .post("/Traffic Violation") - .then() - .statusCode(200) - .body("'Should the driver be suspended?'", is("No")); - } - @Test void testCustomDMNProfile() { assertThat(decisionModels).isNotNull(); diff --git a/kogito-quarkus-examples/dmn-resource-jar-quarkus-example/dmn-quarkus-consumer-example/src/test/java/org/kie/kogito/dmn/consumer/example/TrafficViolationTestBase.java b/kogito-quarkus-examples/dmn-resource-jar-quarkus-example/dmn-quarkus-consumer-example/src/test/java/org/kie/kogito/dmn/consumer/example/TrafficViolationTestBase.java new file mode 100644 index 0000000000..167f0ae831 --- /dev/null +++ b/kogito-quarkus-examples/dmn-resource-jar-quarkus-example/dmn-quarkus-consumer-example/src/test/java/org/kie/kogito/dmn/consumer/example/TrafficViolationTestBase.java @@ -0,0 +1,50 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.kie.kogito.dmn.consumer.example; + +import org.junit.jupiter.api.Test; + +import io.restassured.http.ContentType; + +import static io.restassured.RestAssured.given; +import static org.hamcrest.Matchers.is; + +public abstract class TrafficViolationTestBase { + + @Test + public void testEvaluateTrafficViolation() { + given() + .body("{\n" + + " \"Driver\": {\n" + + " \"Points\": 2\n" + + " },\n" + + " \"Violation\": {\n" + + " \"Type\": \"speed\",\n" + + " \"Actual Speed\": 120,\n" + + " \"Speed Limit\": 100\n" + + " }\n" + + "}") + .contentType(ContentType.JSON) + .when() + .post("/Traffic Violation") + .then() + .statusCode(200) + .body("'Should the driver be suspended?'", is("No")); + } +} diff --git a/kogito-quarkus-examples/dmn-resource-jar-quarkus-example/pom.xml b/kogito-quarkus-examples/dmn-resource-jar-quarkus-example/pom.xml index 1d90b1b0e5..f4f564a626 100644 --- a/kogito-quarkus-examples/dmn-resource-jar-quarkus-example/pom.xml +++ b/kogito-quarkus-examples/dmn-resource-jar-quarkus-example/pom.xml @@ -31,10 +31,10 @@ Kogito Example :: DMN :: Resource jar providing model - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/dmn-tracing-quarkus/pom.xml b/kogito-quarkus-examples/dmn-tracing-quarkus/pom.xml index 87856aad1c..262f1a3462 100644 --- a/kogito-quarkus-examples/dmn-tracing-quarkus/pom.xml +++ b/kogito-quarkus-examples/dmn-tracing-quarkus/pom.xml @@ -30,10 +30,10 @@ dmn-tracing-quarkus Kogito Example :: DMN Tracing - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/flexible-process-quarkus/pom.xml b/kogito-quarkus-examples/flexible-process-quarkus/pom.xml index 41cbd8e45a..e4d395b79f 100644 --- a/kogito-quarkus-examples/flexible-process-quarkus/pom.xml +++ b/kogito-quarkus-examples/flexible-process-quarkus/pom.xml @@ -30,10 +30,10 @@ flexible-process-quarkus Kogito Example :: Flexible Process - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/kogito-travel-agency/basic/pom.xml b/kogito-quarkus-examples/kogito-travel-agency/basic/pom.xml index 5edbc76a33..176bf8b63d 100644 --- a/kogito-quarkus-examples/kogito-travel-agency/basic/pom.xml +++ b/kogito-quarkus-examples/kogito-travel-agency/basic/pom.xml @@ -32,10 +32,10 @@ UTF-8 UTF-8 - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/kogito-travel-agency/extended/pom.xml b/kogito-quarkus-examples/kogito-travel-agency/extended/pom.xml index 6c2cc97f31..3b566bf84b 100644 --- a/kogito-quarkus-examples/kogito-travel-agency/extended/pom.xml +++ b/kogito-quarkus-examples/kogito-travel-agency/extended/pom.xml @@ -35,10 +35,10 @@ visas - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 diff --git a/kogito-quarkus-examples/kogito-travel-agency/extended/travels/pom.xml b/kogito-quarkus-examples/kogito-travel-agency/extended/travels/pom.xml index 413c81cf7f..0bcedfaffc 100644 --- a/kogito-quarkus-examples/kogito-travel-agency/extended/travels/pom.xml +++ b/kogito-quarkus-examples/kogito-travel-agency/extended/travels/pom.xml @@ -30,10 +30,10 @@ travels Kogito Example :: Travel Agency :: Travels - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/kogito-travel-agency/extended/visas/pom.xml b/kogito-quarkus-examples/kogito-travel-agency/extended/visas/pom.xml index b3de401779..be6c1201a7 100644 --- a/kogito-quarkus-examples/kogito-travel-agency/extended/visas/pom.xml +++ b/kogito-quarkus-examples/kogito-travel-agency/extended/visas/pom.xml @@ -30,10 +30,10 @@ visas Kogito Example :: Travel Agency :: Visas - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/kogito-travel-agency/pom.xml b/kogito-quarkus-examples/kogito-travel-agency/pom.xml index a55760fefa..0114f72aba 100644 --- a/kogito-quarkus-examples/kogito-travel-agency/pom.xml +++ b/kogito-quarkus-examples/kogito-travel-agency/pom.xml @@ -35,10 +35,10 @@ extended - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 diff --git a/kogito-quarkus-examples/onboarding-example/payroll/pom.xml b/kogito-quarkus-examples/onboarding-example/payroll/pom.xml index 96a785048b..112a3abd39 100644 --- a/kogito-quarkus-examples/onboarding-example/payroll/pom.xml +++ b/kogito-quarkus-examples/onboarding-example/payroll/pom.xml @@ -31,10 +31,10 @@ Kogito Example :: Onboarding Example :: Payroll with DMN Payroll related decisions for onboarding - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 diff --git a/kogito-quarkus-examples/onboarding-example/pom.xml b/kogito-quarkus-examples/onboarding-example/pom.xml index 137cc0c66d..5c5c2325e8 100644 --- a/kogito-quarkus-examples/onboarding-example/pom.xml +++ b/kogito-quarkus-examples/onboarding-example/pom.xml @@ -37,10 +37,10 @@ onboarding-quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/pmml-event-driven-quarkus/pom.xml b/kogito-quarkus-examples/pmml-event-driven-quarkus/pom.xml index a603acef16..92439f8fab 100644 --- a/kogito-quarkus-examples/pmml-event-driven-quarkus/pom.xml +++ b/kogito-quarkus-examples/pmml-event-driven-quarkus/pom.xml @@ -30,10 +30,10 @@ pmml-event-driven-quarkus Kogito Example :: PMML Event-Driven - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/pmml-incubation-api-quarkus/pom.xml b/kogito-quarkus-examples/pmml-incubation-api-quarkus/pom.xml index 34f7c9dee1..841f3fc4d3 100644 --- a/kogito-quarkus-examples/pmml-incubation-api-quarkus/pom.xml +++ b/kogito-quarkus-examples/pmml-incubation-api-quarkus/pom.xml @@ -30,10 +30,10 @@ pmml-incubation-api-quarkus Kogito Example :: PMML Incubation API With Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/pmml-quarkus-example/pom.xml b/kogito-quarkus-examples/pmml-quarkus-example/pom.xml index 4158a7485b..e83d17be76 100644 --- a/kogito-quarkus-examples/pmml-quarkus-example/pom.xml +++ b/kogito-quarkus-examples/pmml-quarkus-example/pom.xml @@ -30,10 +30,10 @@ pmml-quarkus-example Kogito Example :: PMML - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/process-business-calendar-quarkus-example/pom.xml b/kogito-quarkus-examples/process-business-calendar-quarkus-example/pom.xml index 238368ac88..fa52fbdd2b 100644 --- a/kogito-quarkus-examples/process-business-calendar-quarkus-example/pom.xml +++ b/kogito-quarkus-examples/process-business-calendar-quarkus-example/pom.xml @@ -34,10 +34,10 @@ Kogito Example :: Process Business Calendar - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/process-business-rules-quarkus/pom.xml b/kogito-quarkus-examples/process-business-rules-quarkus/pom.xml index f1f60cd223..07e41fb901 100644 --- a/kogito-quarkus-examples/process-business-rules-quarkus/pom.xml +++ b/kogito-quarkus-examples/process-business-rules-quarkus/pom.xml @@ -31,10 +31,10 @@ Kogito Example :: Process Business Rules Quarkus Kogito business rules invocation - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/process-decisions-quarkus/pom.xml b/kogito-quarkus-examples/process-decisions-quarkus/pom.xml index 986f078a6b..84e5fa2169 100644 --- a/kogito-quarkus-examples/process-decisions-quarkus/pom.xml +++ b/kogito-quarkus-examples/process-decisions-quarkus/pom.xml @@ -31,10 +31,10 @@ Kogito Example :: Process :: Decisions :: Quarkus Process with DMN and DRL integration - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/process-decisions-rest-quarkus/pom.xml b/kogito-quarkus-examples/process-decisions-rest-quarkus/pom.xml index bc37bd9087..fed421040d 100644 --- a/kogito-quarkus-examples/process-decisions-rest-quarkus/pom.xml +++ b/kogito-quarkus-examples/process-decisions-rest-quarkus/pom.xml @@ -32,10 +32,10 @@ Process with DMN and DRL integration through REST - Quarkus 8080 - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/process-decisions-rules-quarkus/pom.xml b/kogito-quarkus-examples/process-decisions-rules-quarkus/pom.xml index 383130f724..20d9b32997 100644 --- a/kogito-quarkus-examples/process-decisions-rules-quarkus/pom.xml +++ b/kogito-quarkus-examples/process-decisions-rules-quarkus/pom.xml @@ -31,10 +31,10 @@ Kogito Example :: Process :: Decisions :: Rules :: Quarkus Process with DRL, DMN and DRL integration - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/process-error-handling/pom.xml b/kogito-quarkus-examples/process-error-handling/pom.xml index 3e661861fe..c9aaa9c58b 100644 --- a/kogito-quarkus-examples/process-error-handling/pom.xml +++ b/kogito-quarkus-examples/process-error-handling/pom.xml @@ -30,10 +30,10 @@ Kogito Example :: Process Scripts With Quarkus Kogito scripts invocation - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/process-incubation-api-quarkus/pom.xml b/kogito-quarkus-examples/process-incubation-api-quarkus/pom.xml index f8d11b5bdc..f46e5eeaa6 100644 --- a/kogito-quarkus-examples/process-incubation-api-quarkus/pom.xml +++ b/kogito-quarkus-examples/process-incubation-api-quarkus/pom.xml @@ -30,10 +30,10 @@ process-incubation-api-quarkus Kogito Example :: Process Incubation API With Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/process-infinispan-persistence-quarkus/pom.xml b/kogito-quarkus-examples/process-infinispan-persistence-quarkus/pom.xml index ee587138df..0f484dbbe5 100644 --- a/kogito-quarkus-examples/process-infinispan-persistence-quarkus/pom.xml +++ b/kogito-quarkus-examples/process-infinispan-persistence-quarkus/pom.xml @@ -31,10 +31,10 @@ Kogito Example :: Process Infinispan Persistence Quarkus Process with Infinispan persistence - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/process-instance-migration-quarkus/pom.xml b/kogito-quarkus-examples/process-instance-migration-quarkus/pom.xml index 62adb0caeb..2c84187bd0 100644 --- a/kogito-quarkus-examples/process-instance-migration-quarkus/pom.xml +++ b/kogito-quarkus-examples/process-instance-migration-quarkus/pom.xml @@ -31,10 +31,10 @@ Kogito Example :: Process Instance Migration Quarkus Process Instance Migration example - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom kogito-apps-bom diff --git a/kogito-quarkus-examples/process-kafka-avro-multi-quarkus/pom.xml b/kogito-quarkus-examples/process-kafka-avro-multi-quarkus/pom.xml index b3766facf2..b5804599e7 100644 --- a/kogito-quarkus-examples/process-kafka-avro-multi-quarkus/pom.xml +++ b/kogito-quarkus-examples/process-kafka-avro-multi-quarkus/pom.xml @@ -31,10 +31,10 @@ Kogito Example :: Process with Kafka and Quarkus, multiple channels, avro serialization Kogito with Kafka - Quarkus, using one channel per message name - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/process-kafka-multi-quarkus/pom.xml b/kogito-quarkus-examples/process-kafka-multi-quarkus/pom.xml index b54a158ec9..b1ebee2a51 100644 --- a/kogito-quarkus-examples/process-kafka-multi-quarkus/pom.xml +++ b/kogito-quarkus-examples/process-kafka-multi-quarkus/pom.xml @@ -31,10 +31,10 @@ Kogito Example :: Process with Kafka and Quarkus, multiple channels Kogito with Kafka - Quarkus, using one channel per message name - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/process-kafka-persistence-quarkus/pom.xml b/kogito-quarkus-examples/process-kafka-persistence-quarkus/pom.xml index 3024ee72d2..f02f4366d5 100644 --- a/kogito-quarkus-examples/process-kafka-persistence-quarkus/pom.xml +++ b/kogito-quarkus-examples/process-kafka-persistence-quarkus/pom.xml @@ -33,10 +33,10 @@ Kogito Example :: Process Kafka Persistence Quarkus Process with Kafka persistence - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/process-kafka-quickstart-quarkus/pom.xml b/kogito-quarkus-examples/process-kafka-quickstart-quarkus/pom.xml index 16b00159de..7efdabd026 100644 --- a/kogito-quarkus-examples/process-kafka-quickstart-quarkus/pom.xml +++ b/kogito-quarkus-examples/process-kafka-quickstart-quarkus/pom.xml @@ -31,10 +31,10 @@ Kogito Example :: Process with Kafka and Quarkus Kogito with Kafka - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/process-knative-quickstart-quarkus/pom.xml b/kogito-quarkus-examples/process-knative-quickstart-quarkus/pom.xml index 249ab7cef5..3e5e7efb10 100644 --- a/kogito-quarkus-examples/process-knative-quickstart-quarkus/pom.xml +++ b/kogito-quarkus-examples/process-knative-quickstart-quarkus/pom.xml @@ -32,10 +32,10 @@ Kogito with Knative Eventing - Quarkus 3.13.0 - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/process-mongodb-persistence-quarkus/pom.xml b/kogito-quarkus-examples/process-mongodb-persistence-quarkus/pom.xml index fe0aa93ba9..ab0a48cf12 100644 --- a/kogito-quarkus-examples/process-mongodb-persistence-quarkus/pom.xml +++ b/kogito-quarkus-examples/process-mongodb-persistence-quarkus/pom.xml @@ -31,10 +31,10 @@ Kogito Example :: Process MongoDB Persistence Quarkus Process with MongoDB persistence - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/process-monitoring-quarkus/pom.xml b/kogito-quarkus-examples/process-monitoring-quarkus/pom.xml index d7ac447f55..1e5c918d90 100755 --- a/kogito-quarkus-examples/process-monitoring-quarkus/pom.xml +++ b/kogito-quarkus-examples/process-monitoring-quarkus/pom.xml @@ -31,10 +31,10 @@ Kogito Example :: Process Monitoring :: Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/process-outbox-mongodb-quarkus/pom.xml b/kogito-quarkus-examples/process-outbox-mongodb-quarkus/pom.xml index 1f9310256d..c3ab9937b0 100644 --- a/kogito-quarkus-examples/process-outbox-mongodb-quarkus/pom.xml +++ b/kogito-quarkus-examples/process-outbox-mongodb-quarkus/pom.xml @@ -35,10 +35,10 @@ 1.7 - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/process-performance-client/pom.xml b/kogito-quarkus-examples/process-performance-client/pom.xml index 76bef2b0d9..4fe6ac52ef 100755 --- a/kogito-quarkus-examples/process-performance-client/pom.xml +++ b/kogito-quarkus-examples/process-performance-client/pom.xml @@ -33,10 +33,10 @@ Kogito Example :: Client Performance test Client Performance test - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/process-performance-quarkus/pom.xml b/kogito-quarkus-examples/process-performance-quarkus/pom.xml index 60382d4847..06b054eb60 100755 --- a/kogito-quarkus-examples/process-performance-quarkus/pom.xml +++ b/kogito-quarkus-examples/process-performance-quarkus/pom.xml @@ -33,10 +33,10 @@ Kogito Example :: Quarkus Performance test Quarkus Performance test - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/process-postgresql-persistence-quarkus/pom.xml b/kogito-quarkus-examples/process-postgresql-persistence-quarkus/pom.xml index 0c76e70cab..440374d800 100644 --- a/kogito-quarkus-examples/process-postgresql-persistence-quarkus/pom.xml +++ b/kogito-quarkus-examples/process-postgresql-persistence-quarkus/pom.xml @@ -36,10 +36,10 @@ Kogito Example :: Process PostgreSQL Persistence Quarkus Process with PostgreSQL persistence - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/process-quarkus-example/pom.xml b/kogito-quarkus-examples/process-quarkus-example/pom.xml index 9ed481739d..5af7d1854c 100755 --- a/kogito-quarkus-examples/process-quarkus-example/pom.xml +++ b/kogito-quarkus-examples/process-quarkus-example/pom.xml @@ -31,10 +31,10 @@ Kogito Example :: Process and Quarkus Order management service - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/process-rest-service-call-quarkus/pom.xml b/kogito-quarkus-examples/process-rest-service-call-quarkus/pom.xml index 12de07c214..e3ce82d356 100644 --- a/kogito-quarkus-examples/process-rest-service-call-quarkus/pom.xml +++ b/kogito-quarkus-examples/process-rest-service-call-quarkus/pom.xml @@ -31,10 +31,10 @@ Kogito Example :: Process Service Rest Cal with Quarkus Kogito service invocation using REST - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/process-rest-workitem-multi-quarkus/pom.xml b/kogito-quarkus-examples/process-rest-workitem-multi-quarkus/pom.xml index 2bb0c5f064..e63d694d55 100644 --- a/kogito-quarkus-examples/process-rest-workitem-multi-quarkus/pom.xml +++ b/kogito-quarkus-examples/process-rest-workitem-multi-quarkus/pom.xml @@ -31,10 +31,10 @@ Kogito Example :: Process Rest :: Quarkus Invoking multiple Rest WS using RestWorkItemHandler - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/process-rest-workitem-quarkus/pom.xml b/kogito-quarkus-examples/process-rest-workitem-quarkus/pom.xml index 5e15a5616c..16c3dcf8bb 100644 --- a/kogito-quarkus-examples/process-rest-workitem-quarkus/pom.xml +++ b/kogito-quarkus-examples/process-rest-workitem-quarkus/pom.xml @@ -31,10 +31,10 @@ Kogito Example :: Process Service Rest WorkItem call with Quarkus Kogito service invocation using REST work item and Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/process-saga-quarkus/pom.xml b/kogito-quarkus-examples/process-saga-quarkus/pom.xml index 5bd833d207..cb2ec39157 100644 --- a/kogito-quarkus-examples/process-saga-quarkus/pom.xml +++ b/kogito-quarkus-examples/process-saga-quarkus/pom.xml @@ -33,10 +33,10 @@ How to implement Saga with a BPMN Process using Compensations - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/process-scripts-quarkus/pom.xml b/kogito-quarkus-examples/process-scripts-quarkus/pom.xml index 13d62ac1c9..1056f1cbba 100644 --- a/kogito-quarkus-examples/process-scripts-quarkus/pom.xml +++ b/kogito-quarkus-examples/process-scripts-quarkus/pom.xml @@ -31,10 +31,10 @@ Kogito Example :: Process Scripts With Quarkus Kogito scripts invocation - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/process-service-calls-quarkus/pom.xml b/kogito-quarkus-examples/process-service-calls-quarkus/pom.xml index 6881d08493..1b5fa622ea 100644 --- a/kogito-quarkus-examples/process-service-calls-quarkus/pom.xml +++ b/kogito-quarkus-examples/process-service-calls-quarkus/pom.xml @@ -31,10 +31,10 @@ Kogito Example :: Process Service Calls with Quarkus Kogito service invocation - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/process-timer-quarkus/pom.xml b/kogito-quarkus-examples/process-timer-quarkus/pom.xml index 7ca74e1411..4aa122a0ff 100644 --- a/kogito-quarkus-examples/process-timer-quarkus/pom.xml +++ b/kogito-quarkus-examples/process-timer-quarkus/pom.xml @@ -31,10 +31,10 @@ Kogito Example :: Process Timer with Quarkus Kogito with timers - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/process-usertasks-custom-lifecycle-quarkus/pom.xml b/kogito-quarkus-examples/process-usertasks-custom-lifecycle-quarkus/pom.xml index d1ff25e8c4..471c64460d 100644 --- a/kogito-quarkus-examples/process-usertasks-custom-lifecycle-quarkus/pom.xml +++ b/kogito-quarkus-examples/process-usertasks-custom-lifecycle-quarkus/pom.xml @@ -33,10 +33,10 @@ Kogito Example :: Process Usertasks With Custom Lifecycle Kogito user tasks orchestration with custom life cycle - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/process-usertasks-quarkus/pom.xml b/kogito-quarkus-examples/process-usertasks-quarkus/pom.xml index 1e95945f1b..5f9b256422 100644 --- a/kogito-quarkus-examples/process-usertasks-quarkus/pom.xml +++ b/kogito-quarkus-examples/process-usertasks-quarkus/pom.xml @@ -31,10 +31,10 @@ Kogito Example :: Process with Usertasks Quarkus Kogito user tasks orchestration - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/process-usertasks-timer-quarkus/pom.xml b/kogito-quarkus-examples/process-usertasks-timer-quarkus/pom.xml index c3a737e1ea..75d0e2fe92 100644 --- a/kogito-quarkus-examples/process-usertasks-timer-quarkus/pom.xml +++ b/kogito-quarkus-examples/process-usertasks-timer-quarkus/pom.xml @@ -30,10 +30,10 @@ process-usertasks-timer-quarkus Kogito Example :: Process UserTasks with Timer Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/process-usertasks-with-security-oidc-quarkus/pom.xml b/kogito-quarkus-examples/process-usertasks-with-security-oidc-quarkus/pom.xml index b28f23a83e..a78caf7650 100644 --- a/kogito-quarkus-examples/process-usertasks-with-security-oidc-quarkus/pom.xml +++ b/kogito-quarkus-examples/process-usertasks-with-security-oidc-quarkus/pom.xml @@ -31,10 +31,10 @@ Kogito Example :: Process Usertasks With Security OIDC Keycloak Quarkus Kogito user tasks orchestration with security enabled on REST api - open id connect adapter(keycloak) - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/process-usertasks-with-security-quarkus/pom.xml b/kogito-quarkus-examples/process-usertasks-with-security-quarkus/pom.xml index 548074834a..1b502c1c12 100644 --- a/kogito-quarkus-examples/process-usertasks-with-security-quarkus/pom.xml +++ b/kogito-quarkus-examples/process-usertasks-with-security-quarkus/pom.xml @@ -31,10 +31,10 @@ Kogito Example :: Process Usertasks With Security Quarkus Kogito user tasks orchestration with security enabled on REST api - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/process-usertasks-ws-humantask-lifecycle-quarkus/pom.xml b/kogito-quarkus-examples/process-usertasks-ws-humantask-lifecycle-quarkus/pom.xml index ec3c9ac455..14d64e8644 100644 --- a/kogito-quarkus-examples/process-usertasks-ws-humantask-lifecycle-quarkus/pom.xml +++ b/kogito-quarkus-examples/process-usertasks-ws-humantask-lifecycle-quarkus/pom.xml @@ -34,10 +34,10 @@ Kogito user tasks orchestration with Web Service HumanTask life cycle - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom kogito-apps-bom diff --git a/kogito-quarkus-examples/rules-incubation-api-quarkus/pom.xml b/kogito-quarkus-examples/rules-incubation-api-quarkus/pom.xml index 15709aa763..e045b33c7e 100644 --- a/kogito-quarkus-examples/rules-incubation-api-quarkus/pom.xml +++ b/kogito-quarkus-examples/rules-incubation-api-quarkus/pom.xml @@ -30,10 +30,10 @@ rules-incubation-api-quarkus Kogito Example :: Rules Incubation API With Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/rules-legacy-quarkus-example/README.md b/kogito-quarkus-examples/rules-legacy-quarkus-example/README.md index f9ecb38683..89a40419b3 100644 --- a/kogito-quarkus-examples/rules-legacy-quarkus-example/README.md +++ b/kogito-quarkus-examples/rules-legacy-quarkus-example/README.md @@ -16,7 +16,7 @@ You will need: - Maven 3.9.11+ installed When using native image compilation, you will also need: - - [GraalVM 21.1.0](https://github.com/graalvm/graalvm-ce-builds/releases/tag/vm-21.1.0) installed + - [GraalVM 21.0.2](https://github.com/graalvm/graalvm-ce-builds/releases/tag/vm-21.0.2) installed - Environment variable GRAALVM_HOME set accordingly - Note that GraalVM native image compilation typically requires other packages (glibc-devel, zlib-devel and gcc) to be installed too. You also need 'native-image' installed in GraalVM (using 'gu install native-image'). Please refer to [GraalVM installation documentation](https://www.graalvm.org/docs/reference-manual/aot-compilation/#prerequisites) for more details. diff --git a/kogito-quarkus-examples/rules-legacy-quarkus-example/pom.xml b/kogito-quarkus-examples/rules-legacy-quarkus-example/pom.xml index d4e7211274..d139039866 100644 --- a/kogito-quarkus-examples/rules-legacy-quarkus-example/pom.xml +++ b/kogito-quarkus-examples/rules-legacy-quarkus-example/pom.xml @@ -30,10 +30,10 @@ rules-legacy-quarkus-example Kogito Example :: Rules Legacy API - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/rules-legacy-scesim-quarkus-example/README.md b/kogito-quarkus-examples/rules-legacy-scesim-quarkus-example/README.md index 7d2bc02ef8..915205f13f 100644 --- a/kogito-quarkus-examples/rules-legacy-scesim-quarkus-example/README.md +++ b/kogito-quarkus-examples/rules-legacy-scesim-quarkus-example/README.md @@ -34,7 +34,7 @@ You will need: - Maven 3.9.11+ installed When using native image compilation, you will also need: - - [GraalVM 21.1.0](https://github.com/graalvm/graalvm-ce-builds/releases/tag/vm-21.1.0) installed + - [GraalVM 21.0.2](https://github.com/graalvm/graalvm-ce-builds/releases/tag/vm-21.0.2) installed - Environment variable GRAALVM_HOME set accordingly - Note that GraalVM native image compilation typically requires other packages (glibc-devel, zlib-devel and gcc) to be installed too. You also need 'native-image' installed in GraalVM (using 'gu install native-image'). Please refer to [GraalVM installation documentation](https://www.graalvm.org/docs/reference-manual/aot-compilation/#prerequisites) for more details. diff --git a/kogito-quarkus-examples/rules-legacy-scesim-quarkus-example/pom.xml b/kogito-quarkus-examples/rules-legacy-scesim-quarkus-example/pom.xml index 883bdd193d..73783ea378 100644 --- a/kogito-quarkus-examples/rules-legacy-scesim-quarkus-example/pom.xml +++ b/kogito-quarkus-examples/rules-legacy-scesim-quarkus-example/pom.xml @@ -30,10 +30,10 @@ rules-legacy-scesim-quarkus-example Kogito Example :: Rules Legacy API HELLO - Quarkus :: Test Scenario - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/rules-quarkus-helloworld/pom.xml b/kogito-quarkus-examples/rules-quarkus-helloworld/pom.xml index 0ad6896759..d5b3d794a2 100755 --- a/kogito-quarkus-examples/rules-quarkus-helloworld/pom.xml +++ b/kogito-quarkus-examples/rules-quarkus-helloworld/pom.xml @@ -30,10 +30,10 @@ rules-quarkus-helloworld Kogito Example :: Rules HelloWorld - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/rules-quarkus-helloworld/src/test/resources/application.properties b/kogito-quarkus-examples/rules-quarkus-helloworld/src/test/resources/application.properties new file mode 100644 index 0000000000..fc9dae63e0 --- /dev/null +++ b/kogito-quarkus-examples/rules-quarkus-helloworld/src/test/resources/application.properties @@ -0,0 +1,21 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +# Quarkus +quarkus.devservices.enabled=false diff --git a/kogito-quarkus-examples/ruleunit-event-driven-quarkus/pom.xml b/kogito-quarkus-examples/ruleunit-event-driven-quarkus/pom.xml index 377e0bdb5d..d28ae45b45 100644 --- a/kogito-quarkus-examples/ruleunit-event-driven-quarkus/pom.xml +++ b/kogito-quarkus-examples/ruleunit-event-driven-quarkus/pom.xml @@ -32,10 +32,10 @@ ruleunit-event-driven-quarkus Kogito Example :: Rule Unit Event-Driven :: Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/ruleunit-quarkus-example/pom.xml b/kogito-quarkus-examples/ruleunit-quarkus-example/pom.xml index 70208a24c0..0c39b9b9a3 100644 --- a/kogito-quarkus-examples/ruleunit-quarkus-example/pom.xml +++ b/kogito-quarkus-examples/ruleunit-quarkus-example/pom.xml @@ -29,11 +29,12 @@ ruleunit-quarkus-example Kogito Example :: RuleUnit - Quarkus + - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/kogito-quarkus-examples/trusty-tracing-quarkus-devservices/pom.xml b/kogito-quarkus-examples/trusty-tracing-quarkus-devservices/pom.xml index 9cd6994c43..1f26e817dc 100644 --- a/kogito-quarkus-examples/trusty-tracing-quarkus-devservices/pom.xml +++ b/kogito-quarkus-examples/trusty-tracing-quarkus-devservices/pom.xml @@ -30,10 +30,10 @@ trusty-tracing-quarkus-devservices Kogito Example :: Trusty Tracing - Quarkus DevServices - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/pom.xml b/pom.xml index fba27c9a93..e253acb938 100755 --- a/pom.xml +++ b/pom.xml @@ -141,6 +141,7 @@ kogito-quarkus-examples kogito-springboot-examples serverless-workflow-examples + gradle-examples diff --git a/serverless-workflow-examples/serverless-workflow-annotations-description/pom.xml b/serverless-workflow-examples/serverless-workflow-annotations-description/pom.xml index 1f65987cfc..8cc538c07b 100644 --- a/serverless-workflow-examples/serverless-workflow-annotations-description/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-annotations-description/pom.xml @@ -38,10 +38,10 @@ Kogito Example :: Serverless Workflow Annotations and Description:: Quarkus Kogito Serverless Workflow Example - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 3.27.7 org.kie.kogito kogito-bom diff --git a/serverless-workflow-examples/serverless-workflow-callback-events-over-http-quarkus/callback-event-service/pom.xml b/serverless-workflow-examples/serverless-workflow-callback-events-over-http-quarkus/callback-event-service/pom.xml index 21c3ce1604..9f1cd9685d 100644 --- a/serverless-workflow-examples/serverless-workflow-callback-events-over-http-quarkus/callback-event-service/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-callback-events-over-http-quarkus/callback-event-service/pom.xml @@ -32,10 +32,10 @@ callback-event-service Kogito Example :: Serverless Workflow CallBack Over HTTP Quarkus :: Callback Event Service - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/serverless-workflow-examples/serverless-workflow-callback-events-over-http-quarkus/callback-workflow/pom.xml b/serverless-workflow-examples/serverless-workflow-callback-events-over-http-quarkus/callback-workflow/pom.xml index f0ab532ef3..0c7fd7ee24 100644 --- a/serverless-workflow-examples/serverless-workflow-callback-events-over-http-quarkus/callback-workflow/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-callback-events-over-http-quarkus/callback-workflow/pom.xml @@ -33,10 +33,10 @@ Kogito Example :: Serverless Workflow CallBack Over HTTP Quarkus :: Service Kogito Serverless Workflow Callback Example Over HTTP - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/serverless-workflow-examples/serverless-workflow-callback-events-over-http-quarkus/callback-workflow/src/test/resources/application.properties b/serverless-workflow-examples/serverless-workflow-callback-events-over-http-quarkus/callback-workflow/src/test/resources/application.properties new file mode 100644 index 0000000000..fc9dae63e0 --- /dev/null +++ b/serverless-workflow-examples/serverless-workflow-callback-events-over-http-quarkus/callback-workflow/src/test/resources/application.properties @@ -0,0 +1,21 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +# Quarkus +quarkus.devservices.enabled=false diff --git a/serverless-workflow-examples/serverless-workflow-callback-quarkus/pom.xml b/serverless-workflow-examples/serverless-workflow-callback-quarkus/pom.xml index fd2dcdbd3e..8431ac077a 100644 --- a/serverless-workflow-examples/serverless-workflow-callback-quarkus/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-callback-quarkus/pom.xml @@ -37,16 +37,17 @@ Kogito Example :: Serverless Workflow Callback :: Quarkus Kogito Serverless Workflow Callback Example - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT 3.13.0 17 3.3.1 + 2.0.3 @@ -65,6 +66,11 @@ pom import + + org.testcontainers + testcontainers + ${version.org.testcontainers} + diff --git a/serverless-workflow-examples/serverless-workflow-callback-quarkus/src/test/resources/application.properties b/serverless-workflow-examples/serverless-workflow-callback-quarkus/src/test/resources/application.properties index f88d69af54..406a9dd249 100644 --- a/serverless-workflow-examples/serverless-workflow-callback-quarkus/src/test/resources/application.properties +++ b/serverless-workflow-examples/serverless-workflow-callback-quarkus/src/test/resources/application.properties @@ -18,8 +18,11 @@ # quarkus.kogito.devservices.enabled=false +quarkus.keycloak.devservices.enabled=false kie.flyway.enabled=true quarkus.datasource.db-kind=postgresql +kogito.events.transaction.enabled=false -quarkus.kafka.devservices.image-name=${container.image.kafka} \ No newline at end of file + +quarkus.kafka.devservices.image-name=${container.image.kafka} diff --git a/serverless-workflow-examples/serverless-workflow-camel-routes/pom.xml b/serverless-workflow-examples/serverless-workflow-camel-routes/pom.xml index d48d137255..9695dd9a81 100644 --- a/serverless-workflow-examples/serverless-workflow-camel-routes/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-camel-routes/pom.xml @@ -39,10 +39,10 @@ Kogito Serverless Workflow Camel Routes Example - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT @@ -52,7 +52,7 @@ 3.5.4 - 3.15.1 + 3.27.2 diff --git a/serverless-workflow-examples/serverless-workflow-compensation-quarkus/pom.xml b/serverless-workflow-examples/serverless-workflow-compensation-quarkus/pom.xml index 83bce54537..b0e2767721 100644 --- a/serverless-workflow-examples/serverless-workflow-compensation-quarkus/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-compensation-quarkus/pom.xml @@ -37,10 +37,10 @@ Kogito Example :: Serverless Workflow Compensation :: Quarkus Kogito Serverless Workflow Error Compensation - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/serverless-workflow-examples/serverless-workflow-compensation-quarkus/src/test/resources/application.properties b/serverless-workflow-examples/serverless-workflow-compensation-quarkus/src/test/resources/application.properties new file mode 100644 index 0000000000..fc9dae63e0 --- /dev/null +++ b/serverless-workflow-examples/serverless-workflow-compensation-quarkus/src/test/resources/application.properties @@ -0,0 +1,21 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +# Quarkus +quarkus.devservices.enabled=false diff --git a/serverless-workflow-examples/serverless-workflow-consuming-events-over-http-quarkus/pom.xml b/serverless-workflow-examples/serverless-workflow-consuming-events-over-http-quarkus/pom.xml index cf396ddc5a..119f5c3b59 100644 --- a/serverless-workflow-examples/serverless-workflow-consuming-events-over-http-quarkus/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-consuming-events-over-http-quarkus/pom.xml @@ -39,10 +39,10 @@ Kogito Example :: Serverless Workflow Consuming Events Over HTTP :: Quarkus Kogito Serverless Workflow Consuming Events Over HTTP - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/serverless-workflow-examples/serverless-workflow-consuming-events-over-http-quarkus/src/test/resources/application.properties b/serverless-workflow-examples/serverless-workflow-consuming-events-over-http-quarkus/src/test/resources/application.properties new file mode 100644 index 0000000000..fc9dae63e0 --- /dev/null +++ b/serverless-workflow-examples/serverless-workflow-consuming-events-over-http-quarkus/src/test/resources/application.properties @@ -0,0 +1,21 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +# Quarkus +quarkus.devservices.enabled=false diff --git a/serverless-workflow-examples/serverless-workflow-correlation-quarkus-mongodb/pom.xml b/serverless-workflow-examples/serverless-workflow-correlation-quarkus-mongodb/pom.xml index b35eade4b8..e6d38624c8 100644 --- a/serverless-workflow-examples/serverless-workflow-correlation-quarkus-mongodb/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-correlation-quarkus-mongodb/pom.xml @@ -37,16 +37,17 @@ Kogito Example :: Serverless Workflow Correlation :: Quarkus :: MongoDB Kogito Serverless Workflow Correlation Example - Quarkus - MongoDB - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT 3.13.0 17 3.3.1 + 2.0.3 @@ -65,6 +66,11 @@ pom import + + org.testcontainers + testcontainers + ${version.org.testcontainers} + diff --git a/serverless-workflow-examples/serverless-workflow-correlation-quarkus-mongodb/src/test/resources/application.properties b/serverless-workflow-examples/serverless-workflow-correlation-quarkus-mongodb/src/test/resources/application.properties index f4a7c5c71b..a0cde6ecbe 100644 --- a/serverless-workflow-examples/serverless-workflow-correlation-quarkus-mongodb/src/test/resources/application.properties +++ b/serverless-workflow-examples/serverless-workflow-correlation-quarkus-mongodb/src/test/resources/application.properties @@ -19,8 +19,9 @@ # Quarkus quarkus.http.test-port=0 +quarkus.keycloak.devservices.enabled=false # Temporary fix for test to pass due to issue in Quarkus classloading resolver quarkus.class-loading.parent-first-artifacts=org.testcontainers:testcontainers -quarkus.kafka.devservices.image-name=${container.image.kafka} \ No newline at end of file +quarkus.kafka.devservices.image-name=${container.image.kafka} diff --git a/serverless-workflow-examples/serverless-workflow-correlation-quarkus/pom.xml b/serverless-workflow-examples/serverless-workflow-correlation-quarkus/pom.xml index 470fe1f0a6..a4afd0cc96 100644 --- a/serverless-workflow-examples/serverless-workflow-correlation-quarkus/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-correlation-quarkus/pom.xml @@ -37,16 +37,17 @@ Kogito Example :: Serverless Workflow Correlation :: Quarkus Kogito Serverless Workflow Correlation Example - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT 3.13.0 17 3.3.1 + 2.0.3 @@ -65,6 +66,11 @@ pom import + + org.testcontainers + testcontainers + ${version.org.testcontainers} + diff --git a/serverless-workflow-examples/serverless-workflow-correlation-quarkus/src/test/resources/application.properties b/serverless-workflow-examples/serverless-workflow-correlation-quarkus/src/test/resources/application.properties index f4a7c5c71b..c0fe30d54c 100644 --- a/serverless-workflow-examples/serverless-workflow-correlation-quarkus/src/test/resources/application.properties +++ b/serverless-workflow-examples/serverless-workflow-correlation-quarkus/src/test/resources/application.properties @@ -23,4 +23,5 @@ quarkus.http.test-port=0 # Temporary fix for test to pass due to issue in Quarkus classloading resolver quarkus.class-loading.parent-first-artifacts=org.testcontainers:testcontainers -quarkus.kafka.devservices.image-name=${container.image.kafka} \ No newline at end of file +quarkus.kafka.devservices.image-name=${container.image.kafka} +quarkus.keycloak.devservices.enabled=false diff --git a/serverless-workflow-examples/serverless-workflow-custom-function-knative/custom-function-knative-service/pom.xml b/serverless-workflow-examples/serverless-workflow-custom-function-knative/custom-function-knative-service/pom.xml index b57227e858..9decc5ebc9 100644 --- a/serverless-workflow-examples/serverless-workflow-custom-function-knative/custom-function-knative-service/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-custom-function-knative/custom-function-knative-service/pom.xml @@ -32,10 +32,10 @@ custom-function-knative-service Kogito Example :: Serverless Workflow Custom Function Knative :: Service - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/serverless-workflow-examples/serverless-workflow-custom-function-knative/workflow/pom.xml b/serverless-workflow-examples/serverless-workflow-custom-function-knative/workflow/pom.xml index 9c158e85d5..916e9f3492 100644 --- a/serverless-workflow-examples/serverless-workflow-custom-function-knative/workflow/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-custom-function-knative/workflow/pom.xml @@ -33,10 +33,10 @@ Kogito Example :: Serverless Workflow Custom Function Knative :: Workflow Kogito Serverless Workflow Custom Function Knative - Workflow - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/serverless-workflow-examples/serverless-workflow-custom-type/pom.xml b/serverless-workflow-examples/serverless-workflow-custom-type/pom.xml index c38a004c76..ec02d449a6 100644 --- a/serverless-workflow-examples/serverless-workflow-custom-type/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-custom-type/pom.xml @@ -38,10 +38,10 @@ 3.13.0 - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/serverless-workflow-examples/serverless-workflow-custom-type/serverless-workflow-custom-rpc-deployment/pom.xml b/serverless-workflow-examples/serverless-workflow-custom-type/serverless-workflow-custom-rpc-deployment/pom.xml index f5cb6b3090..e76fac5082 100644 --- a/serverless-workflow-examples/serverless-workflow-custom-type/serverless-workflow-custom-rpc-deployment/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-custom-type/serverless-workflow-custom-rpc-deployment/pom.xml @@ -59,9 +59,6 @@ ${quarkus.platform.version} - - -AlegacyConfigRoot=true - diff --git a/serverless-workflow-examples/serverless-workflow-custom-type/serverless-workflow-custom-rpc/pom.xml b/serverless-workflow-examples/serverless-workflow-custom-type/serverless-workflow-custom-rpc/pom.xml index 1da8b5e75e..4b46ec33bf 100644 --- a/serverless-workflow-examples/serverless-workflow-custom-type/serverless-workflow-custom-rpc/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-custom-type/serverless-workflow-custom-rpc/pom.xml @@ -73,9 +73,6 @@ ${quarkus.platform.version} - - -AlegacyConfigRoot=true - diff --git a/serverless-workflow-examples/serverless-workflow-data-index-persistence-addon-quarkus/pom.xml b/serverless-workflow-examples/serverless-workflow-data-index-persistence-addon-quarkus/pom.xml index 9e58d773d9..c17adfd719 100644 --- a/serverless-workflow-examples/serverless-workflow-data-index-persistence-addon-quarkus/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-data-index-persistence-addon-quarkus/pom.xml @@ -17,10 +17,10 @@ Kogito Example :: Serverless Workflow Data Index persistence addon :: Quarkus Kogito Serverless Workflow Data Index persistence addon Example - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/serverless-workflow-examples/serverless-workflow-data-index-quarkus/pom.xml b/serverless-workflow-examples/serverless-workflow-data-index-quarkus/pom.xml index 806e37ad8a..fe155011ca 100644 --- a/serverless-workflow-examples/serverless-workflow-data-index-quarkus/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-data-index-quarkus/pom.xml @@ -37,10 +37,10 @@ Kogito Example :: Serverless Workflow Data Index :: Quarkus Kogito Serverless Workflow Data Index Example - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/serverless-workflow-examples/serverless-workflow-dmn-quarkus/pom.xml b/serverless-workflow-examples/serverless-workflow-dmn-quarkus/pom.xml index 4e2968dc41..90fb6c2116 100644 --- a/serverless-workflow-examples/serverless-workflow-dmn-quarkus/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-dmn-quarkus/pom.xml @@ -37,10 +37,10 @@ Kogito Example :: Serverless Workflow :: DMN:: Quarkus Kogito Serverless Workflow DMN Example - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/serverless-workflow-examples/serverless-workflow-error-quarkus/pom.xml b/serverless-workflow-examples/serverless-workflow-error-quarkus/pom.xml index a13eb4631b..6c180cc2c3 100644 --- a/serverless-workflow-examples/serverless-workflow-error-quarkus/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-error-quarkus/pom.xml @@ -37,10 +37,10 @@ Kogito Example :: Serverless Workflow Error :: Quarkus Kogito Serverless Workflow Error Example - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/serverless-workflow-examples/serverless-workflow-error-quarkus/src/test/resources/application.properties b/serverless-workflow-examples/serverless-workflow-error-quarkus/src/test/resources/application.properties new file mode 100644 index 0000000000..fc9dae63e0 --- /dev/null +++ b/serverless-workflow-examples/serverless-workflow-error-quarkus/src/test/resources/application.properties @@ -0,0 +1,21 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +# Quarkus +quarkus.devservices.enabled=false diff --git a/serverless-workflow-examples/serverless-workflow-events-quarkus/pom.xml b/serverless-workflow-examples/serverless-workflow-events-quarkus/pom.xml index be8e25fdbe..a5b7d79338 100644 --- a/serverless-workflow-examples/serverless-workflow-events-quarkus/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-events-quarkus/pom.xml @@ -37,10 +37,10 @@ Kogito Example :: Serverless Workflow Events :: Quarkus Kogito Serverless Workflow Example - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT @@ -48,6 +48,7 @@ 17 3.3.1 999-SNAPSHOT + 2.0.3 @@ -66,6 +67,11 @@ pom import + + org.testcontainers + testcontainers + ${version.org.testcontainers} + diff --git a/serverless-workflow-examples/serverless-workflow-expression-quarkus/pom.xml b/serverless-workflow-examples/serverless-workflow-expression-quarkus/pom.xml index 40e5da2880..e35a4f0945 100644 --- a/serverless-workflow-examples/serverless-workflow-expression-quarkus/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-expression-quarkus/pom.xml @@ -37,10 +37,10 @@ Kogito Example :: Serverless Workflow Expression :: Quarkus Kogito Serverless Workflow Expression Example - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/serverless-workflow-examples/serverless-workflow-fault-tolerance/pom.xml b/serverless-workflow-examples/serverless-workflow-fault-tolerance/pom.xml index 9c1872bf45..be95f2131a 100644 --- a/serverless-workflow-examples/serverless-workflow-fault-tolerance/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-fault-tolerance/pom.xml @@ -42,7 +42,7 @@ UTF-8 quarkus-bom io.quarkus.platform - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/serverless-workflow-examples/serverless-workflow-foreach-quarkus/pom.xml b/serverless-workflow-examples/serverless-workflow-foreach-quarkus/pom.xml index f00f030755..629cdd779f 100644 --- a/serverless-workflow-examples/serverless-workflow-foreach-quarkus/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-foreach-quarkus/pom.xml @@ -37,10 +37,10 @@ Kogito Example :: Serverless Workflow For Each :: Quarkus Kogito Serverless Workflow For Each Example - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/serverless-workflow-examples/serverless-workflow-functions-events-quarkus/pom.xml b/serverless-workflow-examples/serverless-workflow-functions-events-quarkus/pom.xml index 96506fa20f..4d5b63d7df 100644 --- a/serverless-workflow-examples/serverless-workflow-functions-events-quarkus/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-functions-events-quarkus/pom.xml @@ -39,10 +39,10 @@ 8080 - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/serverless-workflow-examples/serverless-workflow-functions-events-quarkus/src/test/resources/application.properties b/serverless-workflow-examples/serverless-workflow-functions-events-quarkus/src/test/resources/application.properties new file mode 100644 index 0000000000..fc9dae63e0 --- /dev/null +++ b/serverless-workflow-examples/serverless-workflow-functions-events-quarkus/src/test/resources/application.properties @@ -0,0 +1,21 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +# Quarkus +quarkus.devservices.enabled=false diff --git a/serverless-workflow-examples/serverless-workflow-functions-quarkus/pom.xml b/serverless-workflow-examples/serverless-workflow-functions-quarkus/pom.xml index cd1794018d..7d84f42940 100644 --- a/serverless-workflow-examples/serverless-workflow-functions-quarkus/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-functions-quarkus/pom.xml @@ -39,10 +39,10 @@ 8080 - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/serverless-workflow-examples/serverless-workflow-funqy/sw-funqy-services/pom.xml b/serverless-workflow-examples/serverless-workflow-funqy/sw-funqy-services/pom.xml index 6d625637a6..07ba5a1864 100644 --- a/serverless-workflow-examples/serverless-workflow-funqy/sw-funqy-services/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-funqy/sw-funqy-services/pom.xml @@ -31,10 +31,10 @@ Kogito Example :: Serverless Workflow :: Funqy :: Services Kogito Serverless Workflow Funqy Services - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 3.13.0 17 3.3.1 diff --git a/serverless-workflow-examples/serverless-workflow-funqy/sw-funqy-workflow/pom.xml b/serverless-workflow-examples/serverless-workflow-funqy/sw-funqy-workflow/pom.xml index ec163e02a1..79ee5bb9ff 100644 --- a/serverless-workflow-examples/serverless-workflow-funqy/sw-funqy-workflow/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-funqy/sw-funqy-workflow/pom.xml @@ -31,10 +31,10 @@ Kogito Example :: Serverless Workflow :: Funqy :: Workflow Kogito Serverless Workflow Funqy Workflow - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/serverless-workflow-examples/serverless-workflow-greeting-quarkus/pom.xml b/serverless-workflow-examples/serverless-workflow-greeting-quarkus/pom.xml index 77b56dc76a..bfa5ce04d8 100644 --- a/serverless-workflow-examples/serverless-workflow-greeting-quarkus/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-greeting-quarkus/pom.xml @@ -37,10 +37,10 @@ Kogito Example :: Serverless Workflow Greeting :: Quarkus Kogito Serverless Workflow Example - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/serverless-workflow-examples/serverless-workflow-greeting-quarkus/src/test/resources/application.properties b/serverless-workflow-examples/serverless-workflow-greeting-quarkus/src/test/resources/application.properties new file mode 100644 index 0000000000..fc9dae63e0 --- /dev/null +++ b/serverless-workflow-examples/serverless-workflow-greeting-quarkus/src/test/resources/application.properties @@ -0,0 +1,21 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +# Quarkus +quarkus.devservices.enabled=false diff --git a/serverless-workflow-examples/serverless-workflow-greeting-rpc-quarkus/serverless-workflow-greeting-client-rpc-quarkus/pom.xml b/serverless-workflow-examples/serverless-workflow-greeting-rpc-quarkus/serverless-workflow-greeting-client-rpc-quarkus/pom.xml index bc5be98424..6ecd4403b9 100644 --- a/serverless-workflow-examples/serverless-workflow-greeting-rpc-quarkus/serverless-workflow-greeting-client-rpc-quarkus/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-greeting-rpc-quarkus/serverless-workflow-greeting-client-rpc-quarkus/pom.xml @@ -31,10 +31,10 @@ Kogito Example :: Serverless Workflow Greeting :: gRPC Client :: Quarkus Kogito Serverless Workflow Example that test a simple gRPC service - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/serverless-workflow-examples/serverless-workflow-hello-world/pom.xml b/serverless-workflow-examples/serverless-workflow-hello-world/pom.xml index 3347122424..95aeef88b6 100644 --- a/serverless-workflow-examples/serverless-workflow-hello-world/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-hello-world/pom.xml @@ -39,10 +39,10 @@ Kogito Serverless Workflow Example - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/serverless-workflow-examples/serverless-workflow-hello-world/src/test/resources/application.properties b/serverless-workflow-examples/serverless-workflow-hello-world/src/test/resources/application.properties new file mode 100644 index 0000000000..fc9dae63e0 --- /dev/null +++ b/serverless-workflow-examples/serverless-workflow-hello-world/src/test/resources/application.properties @@ -0,0 +1,21 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +# Quarkus +quarkus.devservices.enabled=false diff --git a/serverless-workflow-examples/serverless-workflow-loanbroker-showcase/banks/package-lock.json b/serverless-workflow-examples/serverless-workflow-loanbroker-showcase/banks/package-lock.json index daf903c748..5ef9d34f10 100644 --- a/serverless-workflow-examples/serverless-workflow-loanbroker-showcase/banks/package-lock.json +++ b/serverless-workflow-examples/serverless-workflow-loanbroker-showcase/banks/package-lock.json @@ -246,6 +246,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -497,6 +509,19 @@ "ignored": "bin/ignored" } }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-abstract": { "version": "1.20.2", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.2.tgz", @@ -533,6 +558,47 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", @@ -703,13 +769,16 @@ "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" }, "node_modules/form-data": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", - "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.5.tgz", + "integrity": "sha512-jqdObeR2rxZZbPSGL+3VckHMYtu+f9//KXBsVny6JSX/pa38Fy+bGjuG8eW/H6USNQWhLi8Num++cU2yOCNz4A==", "dependencies": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.35", + "safe-buffer": "^5.2.1" }, "engines": { "node": ">= 0.12" @@ -753,9 +822,12 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/function.prototype.name": { "version": "1.1.5", @@ -783,18 +855,40 @@ } }, "node_modules/get-intrinsic": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", - "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/get-symbol-description": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", @@ -842,6 +936,17 @@ "node": ">= 6" } }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -886,9 +991,9 @@ } }, "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "engines": { "node": ">= 0.4" }, @@ -897,11 +1002,11 @@ } }, "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dependencies": { - "has-symbols": "^1.0.2" + "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -910,6 +1015,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/hdr-histogram-js": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-1.2.0.tgz", @@ -1245,9 +1361,9 @@ "dev": true }, "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==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dependencies": { "argparse": "^2.0.1" }, @@ -1315,6 +1431,14 @@ "resolved": "https://registry.npmjs.org/manage-path/-/manage-path-2.0.0.tgz", "integrity": "sha1-9M+EV7km7u4qg7FzUBQUvHbrlZc=" }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -1337,19 +1461,19 @@ } }, "node_modules/mime-db": { - "version": "1.47.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", - "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==", + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { - "version": "2.1.30", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz", - "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==", + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dependencies": { - "mime-db": "1.47.0" + "mime-db": "1.52.0" }, "engines": { "node": ">= 0.6" @@ -2443,6 +2567,15 @@ "get-intrinsic": "^1.0.2" } }, + "call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "requires": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + } + }, "chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -2625,6 +2758,16 @@ "minimatch": "^3.0.4" } }, + "dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "requires": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + } + }, "es-abstract": { "version": "1.20.2", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.2.tgz", @@ -2655,6 +2798,35 @@ "unbox-primitive": "^1.0.2" } }, + "es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==" + }, + "es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" + }, + "es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "requires": { + "es-errors": "^1.3.0" + } + }, + "es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "requires": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + } + }, "es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", @@ -2804,13 +2976,16 @@ "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" }, "form-data": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", - "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.5.tgz", + "integrity": "sha512-jqdObeR2rxZZbPSGL+3VckHMYtu+f9//KXBsVny6JSX/pa38Fy+bGjuG8eW/H6USNQWhLi8Num++cU2yOCNz4A==", "requires": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.35", + "safe-buffer": "^5.2.1" } }, "formidable": { @@ -2838,9 +3013,9 @@ "optional": true }, "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" }, "function.prototype.name": { "version": "1.1.5", @@ -2859,13 +3034,29 @@ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==" }, "get-intrinsic": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", - "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + } + }, + "get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "requires": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" } }, "get-symbol-description": { @@ -2900,6 +3091,11 @@ "is-glob": "^4.0.1" } }, + "gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==" + }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -2932,16 +3128,24 @@ } }, "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==" }, "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "requires": { - "has-symbols": "^1.0.2" + "has-symbols": "^1.0.3" + } + }, + "hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "requires": { + "function-bind": "^1.1.2" } }, "hdr-histogram-js": { @@ -3178,9 +3382,9 @@ "dev": true }, "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "requires": { "argparse": "^2.0.1" } @@ -3240,6 +3444,11 @@ "resolved": "https://registry.npmjs.org/manage-path/-/manage-path-2.0.0.tgz", "integrity": "sha1-9M+EV7km7u4qg7FzUBQUvHbrlZc=" }, + "math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==" + }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -3253,16 +3462,16 @@ "dev": true }, "mime-db": { - "version": "1.47.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", - "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==" + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" }, "mime-types": { - "version": "2.1.30", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz", - "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==", + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "requires": { - "mime-db": "1.47.0" + "mime-db": "1.52.0" } }, "minimatch": { diff --git a/serverless-workflow-examples/serverless-workflow-loanbroker-showcase/credit-bureau/package-lock.json b/serverless-workflow-examples/serverless-workflow-loanbroker-showcase/credit-bureau/package-lock.json index 6e0f2b15fe..6f8a6065d4 100644 --- a/serverless-workflow-examples/serverless-workflow-loanbroker-showcase/credit-bureau/package-lock.json +++ b/serverless-workflow-examples/serverless-workflow-loanbroker-showcase/credit-bureau/package-lock.json @@ -9,7 +9,7 @@ "version": "0.1.0", "license": "Apache-2.0", "dependencies": { - "faas-js-runtime": "^0.9.0" + "faas-js-runtime": "^0.9.7" }, "devDependencies": { "nodemon": "^2.0.4", @@ -18,13 +18,46 @@ } }, "node_modules/@fastify/ajv-compiler": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@fastify/ajv-compiler/-/ajv-compiler-1.1.0.tgz", - "integrity": "sha512-gvCOUNpXsWrIQ3A4aXCLIdblL0tDq42BG/2Xw7oxbil9h11uow10ztS2GuFazNBfjbrsZ5nl+nPl5jDSjj5TSg==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@fastify/ajv-compiler/-/ajv-compiler-3.6.0.tgz", + "integrity": "sha512-LwdXQJjmMD+GwLOkP7TVC68qa+pSSogeWWmznRJ/coyTcfe9qA05AHFSe1eZFwK6q+xVRpChnvFUkf1iYaSZsQ==", + "dependencies": { + "ajv": "^8.11.0", + "ajv-formats": "^2.1.1", + "fast-uri": "^2.0.0" + } + }, + "node_modules/@fastify/ajv-compiler/node_modules/fast-uri": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-2.4.0.tgz", + "integrity": "sha512-ypuAmmMKInk5q7XcepxlnUWDLWv4GFtaJqAzWKqn62IpQ3pejtr5dTVbt3vwqVaMKmkNR55sTT+CqUKIaT21BA==" + }, + "node_modules/@fastify/error": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@fastify/error/-/error-3.4.1.tgz", + "integrity": "sha512-wWSvph+29GR783IhmvdwWnN4bUxTD01Vm5Xad4i7i1VuAOItLvbPAb69sb0IQ2N57yprvhNIwAP5B6xfKTmjmQ==" + }, + "node_modules/@fastify/fast-json-stringify-compiler": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@fastify/fast-json-stringify-compiler/-/fast-json-stringify-compiler-4.3.0.tgz", + "integrity": "sha512-aZAXGYo6m22Fk1zZzEUKBvut/CIIQe/BapEORnxiD5Qr0kPHqqI69NtEMCme74h+at72sPhbkb4ZrLd1W3KRLA==", + "dependencies": { + "fast-json-stringify": "^5.7.0" + } + }, + "node_modules/@fastify/merge-json-schemas": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@fastify/merge-json-schemas/-/merge-json-schemas-0.1.1.tgz", + "integrity": "sha512-fERDVz7topgNjtXsJTTW1JKLy0rhuLRcquYqNR9rF7OcVpCa2OVW49ZPDIhaRRCaUuvVxI+N416xUoF76HNSXA==", "dependencies": { - "ajv": "^6.12.6" + "fast-deep-equal": "^3.1.3" } }, + "node_modules/@pinojs/redact": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@pinojs/redact/-/redact-0.4.0.tgz", + "integrity": "sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==" + }, "node_modules/@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -58,20 +91,36 @@ "integrity": "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==" }, "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "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/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, "node_modules/ansi-align": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", @@ -125,18 +174,11 @@ "node": ">=8" } }, - "node_modules/ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", - "engines": { - "node": ">=4" - } - }, "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, "dependencies": { "color-convert": "^2.0.1" }, @@ -160,11 +202,6 @@ "node": ">= 8" } }, - "node_modules/archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" - }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -173,7 +210,8 @@ "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true }, "node_modules/atomic-sleep": { "version": "1.0.0", @@ -183,47 +221,6 @@ "node": ">=8.0.0" } }, - "node_modules/autocannon": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/autocannon/-/autocannon-4.6.0.tgz", - "integrity": "sha512-pWHEBJh9bkQeDXYj1NL2BBYeXTaLkbRiy3NZ7vNR1bq7vWxHP8R+iCmDyBCtuh2PMJiWlGlikXa1p0LUUY3Tdw==", - "dependencies": { - "chalk": "^3.0.0", - "cli-table3": "^0.5.1", - "clone": "^2.1.2", - "color-support": "^1.1.1", - "cross-argv": "^1.0.0", - "form-data": "^2.5.1", - "has-async-hooks": "^1.0.0", - "hdr-histogram-js": "^1.1.4", - "hdr-histogram-percentiles-obj": "^2.0.0", - "http-parser-js": "^0.5.2", - "hyperid": "^2.0.3", - "manage-path": "^2.0.0", - "minimist": "^1.2.0", - "on-net-listen": "^1.1.1", - "pretty-bytes": "^5.3.0", - "progress": "^2.0.3", - "reinterval": "^1.1.0", - "retimer": "^2.0.0", - "timestring": "^6.0.0" - }, - "bin": { - "autocannon": "autocannon.js" - } - }, - "node_modules/autocannon/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/available-typed-arrays": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz", @@ -236,14 +233,12 @@ } }, "node_modules/avvio": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/avvio/-/avvio-7.2.2.tgz", - "integrity": "sha512-XW2CMCmZaCmCCsIaJaLKxAzPwF37fXi1KGxNOvedOpeisLdmxZnblGc3hpHWYnlP+KOUxZsazh43WXNHgXpbqw==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/avvio/-/avvio-8.4.0.tgz", + "integrity": "sha512-CDSwaxINFy59iNwhYnkvALBwZiTydGkOecZyPkqBpABYR1KqGEsET0VOOYDwtleZSUIdeY36DC2bSZ24CO1igA==", "dependencies": { - "archy": "^1.0.0", - "debug": "^4.0.0", - "fastq": "^1.6.1", - "queue-microtask": "^1.1.2" + "@fastify/error": "^3.3.0", + "fastq": "^1.17.1" } }, "node_modules/balanced-match": { @@ -252,25 +247,6 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "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==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -281,9 +257,9 @@ } }, "node_modules/bintrees": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz", - "integrity": "sha1-DmVcm5wkNeqraL9AJyJtK1WjRSQ=" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.2.tgz", + "integrity": "sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw==" }, "node_modules/boxen": { "version": "5.1.2", @@ -427,6 +403,33 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/camelcase": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", @@ -443,6 +446,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -499,29 +503,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cli-table3": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", - "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", - "dependencies": { - "object-assign": "^4.1.0", - "string-width": "^2.1.1" - }, - "engines": { - "node": ">=6" - }, - "optionalDependencies": { - "colors": "^1.1.2" - } - }, - "node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "engines": { - "node": ">=0.8" - } - }, "node_modules/clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", @@ -532,19 +513,21 @@ } }, "node_modules/cloudevents": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/cloudevents/-/cloudevents-5.3.2.tgz", - "integrity": "sha512-ZjEFjx0BJnio8SED1TzD7GHA118zCk04Mz6aDMMii+4/ZvX5LPgn1D4lT5Jj7HodCbdeRS6dX88unH06Qc3mkA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/cloudevents/-/cloudevents-6.0.3.tgz", + "integrity": "sha512-ADEHAv2KShH/cDIy2GP+npFz3R6Fu/UCsUO/j4kYA9VqN4yhGdF+Zg6wmjeq6qlUvlaKdrVBwgZuH/w57IsyGQ==", "dependencies": { - "ajv": "~6.12.3", + "ajv": "^8.11.0", + "ajv-formats": "^2.1.1", "util": "^0.12.4", - "uuid": "~8.3.0" + "uuid": "^8.3.2" } }, "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, "dependencies": { "color-name": "~1.1.4" }, @@ -555,29 +538,14 @@ "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/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==", - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "optional": true, - "engines": { - "node": ">=0.1.90" - } + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "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, "dependencies": { "delayed-stream": "~1.0.0" }, @@ -586,11 +554,11 @@ } }, "node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", "engines": { - "node": ">= 12" + "node": "^12.20.0 || >=14" } }, "node_modules/component-emitter": { @@ -623,9 +591,9 @@ } }, "node_modules/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", "engines": { "node": ">= 0.6" } @@ -642,11 +610,6 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, - "node_modules/cross-argv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cross-argv/-/cross-argv-1.0.0.tgz", - "integrity": "sha512-uAVe/bgNHlPdP1VE4Sk08u9pAJ7o1x/tVQtX77T5zlhYhuwOWtVkPBEtHdvF5cq48VzeCG5i1zN4dQc8pwLYrw==" - }, "node_modules/crypto-random-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", @@ -661,22 +624,6 @@ "resolved": "https://registry.npmjs.org/death/-/death-1.1.0.tgz", "integrity": "sha1-AaqcQB7dknUFFEcLgmY5DGbGcxg=" }, - "node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/decompress-response": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", @@ -730,14 +677,6 @@ "node": ">=4.0.0" } }, - "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", @@ -765,6 +704,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true, "engines": { "node": ">=0.4.0" } @@ -793,6 +733,19 @@ "ignored": "bin/ignored" } }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", @@ -843,6 +796,22 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-get-iterator": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", @@ -868,6 +837,32 @@ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "dev": true }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", @@ -900,25 +895,32 @@ "dev": true }, "node_modules/faas-js-runtime": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/faas-js-runtime/-/faas-js-runtime-0.9.0.tgz", - "integrity": "sha512-/FAwj/pJW6w9X8esC+B1nojiIN1OeH0RKCozx/fqbjc2SgkmsK10cF79HtpHellaPdUs2oJ8PB4v0RH2aSwTCQ==", + "version": "0.9.7", + "resolved": "https://registry.npmjs.org/faas-js-runtime/-/faas-js-runtime-0.9.7.tgz", + "integrity": "sha512-uHfA+t5/Z+NDIRevCIE/lM9/U+wvyTzaGp81bOwyGKEaHG9j83BkkCrOHxJVlOC5rF95VPD3v0r7PB+ROAFoHw==", "dependencies": { - "chalk": "^4.1.2", - "cloudevents": "^5.3.1", - "commander": "^8.1.0", + "cloudevents": "^6.0.3", + "commander": "^9.4.0", "death": "^1.1.0", - "fastify": "^3.20.1", + "fastify": "^4.9.2", "js-yaml": "^4.1.0", "node-os-utils": "^1.3.5", - "overload-protection": "^1.2.0", - "prom-client": "^14.0.0", - "qs": "^6.10.1" + "overload-protection": "^1.2.3", + "prom-client": "^14.1.0", + "qs": "^6.11.0" }, "bin": { "faas-js-runtime": "bin/cli.js" + }, + "engines": { + "node": "^18 || ^16 || ^14" } }, + "node_modules/fast-content-type-parse": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-1.1.0.tgz", + "integrity": "sha512-fBHHqSTFLVnR61C+gltJuE5GkVQMV0S2nqUO8TJ+5Z3qAKG8vAx4FKai1s5jq/inV1+sREynIWSuQ6HgoSXpDQ==" + }, "node_modules/fast-decode-uri-component": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", @@ -929,74 +931,101 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, "node_modules/fast-json-stringify": { - "version": "2.7.12", - "resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-2.7.12.tgz", - "integrity": "sha512-4hjwZDPmgj/ZUKXhEWovGPciE/5mWtAIQQxN+2VBDFun7DRTk2oOItbu9ZZp6kqj+eZ/u7z+dgBgM74cfGRnBQ==", + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-5.16.1.tgz", + "integrity": "sha512-KAdnLvy1yu/XrRtP+LJnxbBGrhN+xXu+gt3EUvZhYGKCr3lFHq/7UFJHHFgmJKoqlh6B40bZLEv7w46B0mqn1g==", + "dependencies": { + "@fastify/merge-json-schemas": "^0.1.0", + "ajv": "^8.10.0", + "ajv-formats": "^3.0.1", + "fast-deep-equal": "^3.1.3", + "fast-uri": "^2.1.0", + "json-schema-ref-resolver": "^1.0.1", + "rfdc": "^1.2.0" + } + }, + "node_modules/fast-json-stringify/node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", "dependencies": { - "ajv": "^6.11.0", - "deepmerge": "^4.2.2", - "rfdc": "^1.2.0", - "string-similarity": "^4.0.1" + "ajv": "^8.0.0" }, - "engines": { - "node": ">= 10.0.0" + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } } }, - "node_modules/fast-redact": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.0.2.tgz", - "integrity": "sha512-YN+CYfCVRVMUZOUPeinHNKgytM1wPI/C/UCLEi56EsY2dwwvI00kIJHJoI7pMVqGoMew8SMZ2SSfHKHULHXDsg==", - "engines": { - "node": ">=6" + "node_modules/fast-json-stringify/node_modules/fast-uri": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-2.4.0.tgz", + "integrity": "sha512-ypuAmmMKInk5q7XcepxlnUWDLWv4GFtaJqAzWKqn62IpQ3pejtr5dTVbt3vwqVaMKmkNR55sTT+CqUKIaT21BA==" + }, + "node_modules/fast-querystring": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.1.2.tgz", + "integrity": "sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==", + "dependencies": { + "fast-decode-uri-component": "^1.0.1" } }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ] }, "node_modules/fastify": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/fastify/-/fastify-3.24.1.tgz", - "integrity": "sha512-ZL0V6u37d65tAY8lMwVMFtFvnEeJcG80QBNSdChqCm4i4x+is/38OU14gzJuRXhpenTL+pTJzNcu5Kn1ouzM3Q==", - "dependencies": { - "@fastify/ajv-compiler": "^1.0.0", - "abstract-logging": "^2.0.0", - "avvio": "^7.1.2", - "fast-json-stringify": "^2.5.2", - "fastify-error": "^0.3.0", - "fastify-warning": "^0.2.0", - "find-my-way": "^4.1.0", - "flatstr": "^1.0.12", - "light-my-request": "^4.2.0", - "pino": "^6.13.0", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/fastify/-/fastify-4.29.1.tgz", + "integrity": "sha512-m2kMNHIG92tSNWv+Z3UeTR9AWLLuo7KctC7mlFPtMEVrfjIhmQhkQnT9v15qA/BfVq3vvj134Y0jl9SBje3jXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "dependencies": { + "@fastify/ajv-compiler": "^3.5.0", + "@fastify/error": "^3.4.0", + "@fastify/fast-json-stringify-compiler": "^4.3.0", + "abstract-logging": "^2.0.1", + "avvio": "^8.3.0", + "fast-content-type-parse": "^1.1.0", + "fast-json-stringify": "^5.8.0", + "find-my-way": "^8.0.0", + "light-my-request": "^5.11.0", + "pino": "^9.0.0", + "process-warning": "^3.0.0", "proxy-addr": "^2.0.7", - "rfdc": "^1.1.4", - "secure-json-parse": "^2.0.0", - "semver": "^7.3.2", - "tiny-lru": "^7.0.0" + "rfdc": "^1.3.0", + "secure-json-parse": "^2.7.0", + "semver": "^7.5.4", + "toad-cache": "^3.3.0" } }, - "node_modules/fastify-error": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/fastify-error/-/fastify-error-0.3.1.tgz", - "integrity": "sha512-oCfpcsDndgnDVgiI7bwFKAun2dO+4h84vBlkWsWnz/OUK9Reff5UFoFl241xTiLeHWX/vU9zkDVXqYUxjOwHcQ==" - }, - "node_modules/fastify-warning": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/fastify-warning/-/fastify-warning-0.2.0.tgz", - "integrity": "sha512-s1EQguBw/9qtc1p/WTY4eq9WMRIACkj+HTcOIK1in4MV5aFaQC9ZCIt0dJ7pr5bIf4lPpHvAtP2ywpTNgs7hqw==" - }, "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", "dependencies": { "reusify": "^1.0.4" } @@ -1014,24 +1043,18 @@ } }, "node_modules/find-my-way": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-4.4.0.tgz", - "integrity": "sha512-hpntHvK0iOHp3pqWRRUEzioar4tp8euBD8DkPG3VauOriZLgwGZLTNp6yZSrdctJ8RCDS7zhZSR2V+yOaBbNow==", + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-8.2.2.tgz", + "integrity": "sha512-Dobi7gcTEq8yszimcfp/R7+owiT4WncAJ7VTTgFH1jYJ5GaG1FbhjwDG820hptN0QDFvzVY3RfCzdInvGPGzjA==", "dependencies": { - "fast-decode-uri-component": "^1.0.1", "fast-deep-equal": "^3.1.3", - "safe-regex2": "^2.0.0", - "semver-store": "^0.3.0" + "fast-querystring": "^1.0.0", + "safe-regex2": "^3.1.0" }, "engines": { - "node": ">=10" + "node": ">=14" } }, - "node_modules/flatstr": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz", - "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" - }, "node_modules/for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", @@ -1047,13 +1070,17 @@ "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" }, "node_modules/form-data": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", - "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.5.tgz", + "integrity": "sha512-jqdObeR2rxZZbPSGL+3VckHMYtu+f9//KXBsVny6JSX/pa38Fy+bGjuG8eW/H6USNQWhLi8Num++cU2yOCNz4A==", + "dev": true, "dependencies": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.35", + "safe-buffer": "^5.2.1" }, "engines": { "node": ">= 0.12" @@ -1097,23 +1124,56 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generator-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", + "engines": { + "node": ">= 0.4" + } }, "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", @@ -1173,6 +1233,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/got": { "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", @@ -1212,11 +1283,6 @@ "node": ">= 0.4.0" } }, - "node_modules/has-async-hooks": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-async-hooks/-/has-async-hooks-1.0.0.tgz", - "integrity": "sha512-YF0VPGjkxr7AyyQQNykX8zK4PvtEDsUJAPqwu06UFz1lb6EvI53sPh5H1kWxg8NXI5LsfRCZ8uX9NkYDZBb/mw==" - }, "node_modules/has-bigints": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", @@ -1229,14 +1295,15 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } }, "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "engines": { "node": ">= 0.4" }, @@ -1245,11 +1312,11 @@ } }, "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dependencies": { - "has-symbols": "^1.0.2" + "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -1267,21 +1334,15 @@ "node": ">=8" } }, - "node_modules/hdr-histogram-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-1.2.0.tgz", - "integrity": "sha512-h0YToJ3ewqsaZ3nFTTa6dLOD7sqx+EgdC4+OcJ9Ou7zZDlT0sXSPHHr3cyenQsPqqbVHGn/oFY6zjfEKXGvzmQ==", - "dependencies": { - "base64-js": "^1.2.0", - "pako": "^1.0.3" - } - }, - "node_modules/hdr-histogram-percentiles-obj": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-2.0.1.tgz", - "integrity": "sha512-QBvbTxPlGwHj36IRF16XLoYEbUv5YEyO385kiS0IS3831fcSTNXTR785VtFFZ2ahY733z0ky8Jv4d6In+Ss+wQ==", + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dependencies": { - "hdr-histogram-js": "^1.0.0" + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/http-cache-semantics": { @@ -1290,29 +1351,6 @@ "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", "dev": true }, - "node_modules/http-parser-js": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz", - "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==" - }, - "node_modules/hyperid": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hyperid/-/hyperid-2.1.0.tgz", - "integrity": "sha512-cSakhxbUsaIuqjfvvcUuvl/Fl342J65xgLLYrYxSSr9qmJ/EJK+S8crS6mIlQd/a7i+Pe4D0MgSrtZPLze+aCw==", - "dependencies": { - "uuid": "^3.4.0", - "uuid-parse": "^1.1.0" - } - }, - "node_modules/hyperid/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, "node_modules/ignore-by-default": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", @@ -1472,20 +1510,16 @@ "node": ">=0.10.0" } }, - "node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "engines": { - "node": ">=4" - } - }, "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.4", + "generator-function": "^2.0.0", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -1593,12 +1627,14 @@ } }, "node_modules/is-regex": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", - "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", "dependencies": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.2" + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -1696,9 +1732,9 @@ "dev": true }, "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==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dependencies": { "argparse": "^2.0.1" }, @@ -1712,10 +1748,18 @@ "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", "dev": true }, + "node_modules/json-schema-ref-resolver": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-schema-ref-resolver/-/json-schema-ref-resolver-1.0.1.tgz", + "integrity": "sha512-EJAj1pgHc1hxF6vo2Z3s69fMjO1INq6eGHXZ8Z6wCQeldCuwxGK9Sxf4/cScGn3FZubCVUehfWtcDM/PLteCQw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + } + }, "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, "node_modules/keyv": { "version": "3.1.0", @@ -1739,40 +1783,19 @@ } }, "node_modules/light-my-request": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/light-my-request/-/light-my-request-4.7.0.tgz", - "integrity": "sha512-LTa8YZp3K2AUpqUnwwKajoIHcsKOBnzwJNQSrk7unziPwo6CjOYjyO0F9wfkxFvP+nBsCGe3eMPnedVgIIgdAw==", + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/light-my-request/-/light-my-request-5.14.0.tgz", + "integrity": "sha512-aORPWntbpH5esaYpGOOmri0OHDOe3wC5M2MQxZ9dvMLZm6DnaAn0kJlcbU9hwsQgLzmZyReKwFwwPkR+nHu5kA==", "dependencies": { - "ajv": "^8.1.0", - "cookie": "^0.4.0", - "fastify-warning": "^0.2.0", + "cookie": "^0.7.0", + "process-warning": "^3.0.0", "set-cookie-parser": "^2.4.1" } }, - "node_modules/light-my-request/node_modules/ajv": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", - "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/light-my-request/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==" - }, "node_modules/loopbench": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/loopbench/-/loopbench-1.2.0.tgz", - "integrity": "sha1-dgG3P1cJfHP0JqBev3gat+pJF/8=", + "integrity": "sha512-ft2PmuZnDw+DJQfT5mpEWudEBRzlpImh7mU7OcPGmefsKlW8Ck0U6nrCCdcwYF+z9zc0SVBzGZA1F1gUfHZuJw==", "dependencies": { "xtend": "^4.0.1" } @@ -1786,17 +1809,6 @@ "node": ">=0.10.0" } }, - "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==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -1821,10 +1833,13 @@ "semver": "bin/semver.js" } }, - "node_modules/manage-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/manage-path/-/manage-path-2.0.0.tgz", - "integrity": "sha1-9M+EV7km7u4qg7FzUBQUvHbrlZc=" + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "engines": { + "node": ">= 0.4" + } }, "node_modules/methods": { "version": "1.1.2", @@ -1848,19 +1863,21 @@ } }, "node_modules/mime-db": { - "version": "1.47.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", - "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==", + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { - "version": "2.1.30", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz", - "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==", + "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, "dependencies": { - "mime-db": "1.47.0" + "mime-db": "1.52.0" }, "engines": { "node": ">= 0.6" @@ -1890,12 +1907,14 @@ "node_modules/minimist": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true }, "node_modules/node-os-utils": { "version": "1.3.5", @@ -2003,18 +2022,13 @@ "node": ">=8" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object-inspect": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", - "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -2060,12 +2074,12 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/on-net-listen": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/on-net-listen/-/on-net-listen-1.1.2.tgz", - "integrity": "sha512-y1HRYy8s/RlcBvDUwKXSmkODMdx4KSuIvloCnQYJ2LdBBC1asY4HtfhXwe3UWknLakATZDnbzht2Ijw3M1EqFg==", + "node_modules/on-exit-leak-free": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz", + "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==", "engines": { - "node": ">=9.4.0 || ^8.9.4" + "node": ">=14.0.0" } }, "node_modules/once": { @@ -2078,11 +2092,10 @@ } }, "node_modules/overload-protection": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/overload-protection/-/overload-protection-1.2.1.tgz", - "integrity": "sha512-aIOgq7XgldkBL9cp5jkA/mfNAuik0NZvVaBlpJhST+fepq3wYAmoQRpJjfG6AY5wwToGoUPs6ePPwffh1q4n+A==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/overload-protection/-/overload-protection-1.2.3.tgz", + "integrity": "sha512-b7XZbmhujnqNoK0Z6NPzA/nhfQnE08ZTHSzzjTMwegb5N9oBAAApx3f9u2R/f3VGaACTQj6QJnGUfX1oFttqfg==", "dependencies": { - "autocannon": "^4.4.1", "loopbench": "^1.2.0" } }, @@ -2119,11 +2132,6 @@ "semver": "bin/semver.js" } }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -2152,26 +2160,53 @@ } }, "node_modules/pino": { - "version": "6.13.3", - "resolved": "https://registry.npmjs.org/pino/-/pino-6.13.3.tgz", - "integrity": "sha512-tJy6qVgkh9MwNgqX1/oYi3ehfl2Y9H0uHyEEMsBe74KinESIjdMrMQDWpcZPpPicg3VV35d/GLQZmo4QgU2Xkg==", - "dependencies": { - "fast-redact": "^3.0.0", - "fast-safe-stringify": "^2.0.8", - "fastify-warning": "^0.2.0", - "flatstr": "^1.0.12", - "pino-std-serializers": "^3.1.0", + "version": "9.14.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-9.14.0.tgz", + "integrity": "sha512-8OEwKp5juEvb/MjpIc4hjqfgCNysrS94RIOMXYvpYCdm/jglrKEiAYmiumbmGhCvs+IcInsphYDFwqrjr7398w==", + "dependencies": { + "@pinojs/redact": "^0.4.0", + "atomic-sleep": "^1.0.0", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^2.0.0", + "pino-std-serializers": "^7.0.0", + "process-warning": "^5.0.0", "quick-format-unescaped": "^4.0.3", - "sonic-boom": "^1.0.2" + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^4.0.1", + "thread-stream": "^3.0.0" }, "bin": { "pino": "bin.js" } }, + "node_modules/pino-abstract-transport": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz", + "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==", + "dependencies": { + "split2": "^4.0.0" + } + }, "node_modules/pino-std-serializers": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz", - "integrity": "sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==" + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.1.0.tgz", + "integrity": "sha512-BndPH67/JxGExRgiX1dX0w1FvZck5Wa4aal9198SrRhZjH3GxKQUKIBnYJTdj2HDN3UQAS06HlfcSbQj2OHmaw==" + }, + "node_modules/pino/node_modules/process-warning": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-5.0.0.tgz", + "integrity": "sha512-a39t9ApHNx2L4+HBnQKqxxHNs1r7KF+Intd8Q/g1bUh6q0WIp9voPXJ/x0j+ZL45KF1pJd9+q2jLIRMfvEshkA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ] }, "node_modules/prepend-http": { "version": "2.0.0", @@ -2182,35 +2217,21 @@ "node": ">=4" } }, - "node_modules/pretty-bytes": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "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 }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "engines": { - "node": ">=0.4.0" - } + "node_modules/process-warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-3.0.0.tgz", + "integrity": "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==" }, "node_modules/prom-client": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-14.0.1.tgz", - "integrity": "sha512-HxTArb6fkOntQHoRGvv4qd/BkorjliiuO2uSWC2KC17MUTKYttWdDoXX/vxOhQdkoECEM9BBH0pj2l8G8kev6w==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-14.2.0.tgz", + "integrity": "sha512-sF308EhTenb/pDRPakm+WgiN+VdM/T1RaHj1x+MvAuT8UiQP8JmOEbxVqtkbfR4LrvOg5n7ic01kRBDGXjYikA==", "dependencies": { "tdigest": "^0.1.1" }, @@ -2246,14 +2267,6 @@ "once": "^1.3.1" } }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "engines": { - "node": ">=6" - } - }, "node_modules/pupa": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", @@ -2267,11 +2280,11 @@ } }, "node_modules/qs": { - "version": "6.10.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz", - "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.0.tgz", + "integrity": "sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==", "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.1.0" }, "engines": { "node": ">=0.6" @@ -2280,25 +2293,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "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==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/quick-format-unescaped": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", @@ -2337,6 +2331,14 @@ "node": ">=8.10.0" } }, + "node_modules/real-require": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", + "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==", + "engines": { + "node": ">= 12.13.0" + } + }, "node_modules/regexp.prototype.flags": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", @@ -2377,11 +2379,6 @@ "node": ">=8" } }, - "node_modules/reinterval": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reinterval/-/reinterval-1.1.0.tgz", - "integrity": "sha1-M2Hs+jymwYKDOA3Qu5VG85D17Oc=" - }, "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", @@ -2422,36 +2419,32 @@ } }, "node_modules/ret": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.2.2.tgz", - "integrity": "sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.4.3.tgz", + "integrity": "sha512-0f4Memo5QP7WQyUEAYUO3esD/XjOc3Zjjg5CPsAq1p8sIu0XPeMbHJemKA0BO7tV0X7+A0FoEpbmHXWxPyD3wQ==", "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/retimer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/retimer/-/retimer-2.0.0.tgz", - "integrity": "sha512-KLXY85WkEq2V2bKex/LOO1ViXVn2KGYe4PYysAdYdjmraYIUsVkXu8O4am+8+5UbaaGl1qho4aqAAPHNQ4GSbg==" - }, "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" } }, "node_modules/rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==" }, "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", @@ -2467,26 +2460,47 @@ } ] }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safe-regex2": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/safe-regex2/-/safe-regex2-2.0.0.tgz", - "integrity": "sha512-PaUSFsUaNNuKwkBijoAPHAK6/eM6VirvyPWlZ7BAQy4D+hCvh4B6lIG+nPdhbFfIbP+gTGBcrdsOaUs0F+ZBOQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/safe-regex2/-/safe-regex2-3.1.0.tgz", + "integrity": "sha512-RAAZAGbap2kBfbVhvmnTFv73NWLMvDGOITFYTZBAaY8eR+Ir4ef7Up/e7amo+y1+AH+3PtLkrt9mvcTsG9LXug==", "dependencies": { - "ret": "~0.2.0" + "ret": "~0.4.0" + } + }, + "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==", + "engines": { + "node": ">=10" } }, "node_modules/secure-json-parse": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.4.0.tgz", - "integrity": "sha512-Q5Z/97nbON5t/L/sH6mY2EacfjVGwrCcSi5D3btRO2GZ8pf1K1UN7Z9H5J57hjVU2Qzxr1xO+FmBhOvEkzCMmg==" + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz", + "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==" }, "node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "bin": { "semver": "bin/semver.js" }, @@ -2515,24 +2529,74 @@ "semver": "bin/semver.js" } }, - "node_modules/semver-store": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/semver-store/-/semver-store-0.3.0.tgz", - "integrity": "sha512-TcZvGMMy9vodEFSse30lWinkj+JgOBvPn8wRItpQRSayhc+4ssDs335uklkfvQQJgL/WvmHLVj4Ycv2s7QCQMg==" - }, "node_modules/set-cookie-parser": { - "version": "2.4.8", - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.4.8.tgz", - "integrity": "sha512-edRH8mBKEWNVIVMKejNnuJxleqYE/ZSdcT8/Nem9/mmosx12pctd80s2Oy00KNZzrogMZS5mauK2/ymL1bvlvg==" + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz", + "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==" }, "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2545,29 +2609,19 @@ "dev": true }, "node_modules/sonic-boom": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz", - "integrity": "sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.1.tgz", + "integrity": "sha512-w6AxtubXa2wTXAUsZMMWERrsIRAdrK0Sc+FUytWvYAhBJLyuI4llrMIC1DtlNSdI99EI86KZum2MMq3EAZlF9Q==", "dependencies": { - "atomic-sleep": "^1.0.0", - "flatstr": "^1.0.12" + "atomic-sleep": "^1.0.0" } }, - "node_modules/string-similarity": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/string-similarity/-/string-similarity-4.0.4.tgz", - "integrity": "sha512-/q/8Q4Bl4ZKAPjj8WerIBJWALKkaPRfrvhfF8k/B23i4nzrlRj2/go1m90In7nG/3XDSbOo0+pu6RvCTM9RGMQ==" - }, - "node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", "engines": { - "node": ">=4" + "node": ">= 10.x" } }, "node_modules/string.prototype.trim": { @@ -2611,17 +2665,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", @@ -2708,6 +2751,7 @@ "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, "dependencies": { "has-flag": "^4.0.0" }, @@ -2744,11 +2788,19 @@ } }, "node_modules/tdigest": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.1.tgz", - "integrity": "sha1-Ljyyw56kSeVdHmzZEReszKRYgCE=", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.2.tgz", + "integrity": "sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==", + "dependencies": { + "bintrees": "1.0.2" + } + }, + "node_modules/thread-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz", + "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==", "dependencies": { - "bintrees": "1.0.1" + "real-require": "^0.2.0" } }, "node_modules/through": { @@ -2757,22 +2809,6 @@ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, - "node_modules/timestring": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/timestring/-/timestring-6.0.0.tgz", - "integrity": "sha512-wMctrWD2HZZLuIlchlkE2dfXJh7J2KDI9Dwl+2abPYg0mswQHfOAyQW3jJg1pY5VfttSINZuKcXoB3FGypVklA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/tiny-lru": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/tiny-lru/-/tiny-lru-7.0.6.tgz", - "integrity": "sha512-zNYO0Kvgn5rXzWpL0y3RS09sMK67eGaQj9805jlK9G6pSadfriTczzLHFXa/xcW4mIRfmlB9HyQ/+SgL0V1uow==", - "engines": { - "node": ">=6" - } - }, "node_modules/to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", @@ -2794,6 +2830,14 @@ "node": ">=8.0" } }, + "node_modules/toad-cache": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/toad-cache/-/toad-cache-3.7.0.tgz", + "integrity": "sha512-/m8M+2BJUpoJdgAHoG+baCwBT+tf2VraSfkBgl0Y00qIWt41DJ8R5B8nsEw0I58YwF5IZH6z24/2TobDKnqSWw==", + "engines": { + "node": ">=12" + } + }, "node_modules/touch": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", @@ -2887,14 +2931,6 @@ "url": "https://github.com/yeoman/update-notifier?sponsor=1" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, "node_modules/url-parse-lax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", @@ -2908,15 +2944,14 @@ } }, "node_modules/util": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", - "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", "dependencies": { "inherits": "^2.0.3", "is-arguments": "^1.0.4", "is-generator-function": "^1.0.7", "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", "which-typed-array": "^1.1.2" } }, @@ -2934,11 +2969,6 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/uuid-parse": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uuid-parse/-/uuid-parse-1.1.0.tgz", - "integrity": "sha512-OdmXxA8rDsQ7YpNVbKSJkNzTw2I+S5WsbMDnCtIWSQaosNAcWtFuI/YK1TjzUI6nbkgiqEyh8gWngfcv8Asd9A==" - }, "node_modules/which-boxed-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", @@ -3140,22 +3170,52 @@ "engines": { "node": ">=0.4" } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } }, "dependencies": { "@fastify/ajv-compiler": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@fastify/ajv-compiler/-/ajv-compiler-1.1.0.tgz", - "integrity": "sha512-gvCOUNpXsWrIQ3A4aXCLIdblL0tDq42BG/2Xw7oxbil9h11uow10ztS2GuFazNBfjbrsZ5nl+nPl5jDSjj5TSg==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@fastify/ajv-compiler/-/ajv-compiler-3.6.0.tgz", + "integrity": "sha512-LwdXQJjmMD+GwLOkP7TVC68qa+pSSogeWWmznRJ/coyTcfe9qA05AHFSe1eZFwK6q+xVRpChnvFUkf1iYaSZsQ==", + "requires": { + "ajv": "^8.11.0", + "ajv-formats": "^2.1.1", + "fast-uri": "^2.0.0" + }, + "dependencies": { + "fast-uri": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-2.4.0.tgz", + "integrity": "sha512-ypuAmmMKInk5q7XcepxlnUWDLWv4GFtaJqAzWKqn62IpQ3pejtr5dTVbt3vwqVaMKmkNR55sTT+CqUKIaT21BA==" + } + } + }, + "@fastify/error": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@fastify/error/-/error-3.4.1.tgz", + "integrity": "sha512-wWSvph+29GR783IhmvdwWnN4bUxTD01Vm5Xad4i7i1VuAOItLvbPAb69sb0IQ2N57yprvhNIwAP5B6xfKTmjmQ==" + }, + "@fastify/fast-json-stringify-compiler": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@fastify/fast-json-stringify-compiler/-/fast-json-stringify-compiler-4.3.0.tgz", + "integrity": "sha512-aZAXGYo6m22Fk1zZzEUKBvut/CIIQe/BapEORnxiD5Qr0kPHqqI69NtEMCme74h+at72sPhbkb4ZrLd1W3KRLA==", + "requires": { + "fast-json-stringify": "^5.7.0" + } + }, + "@fastify/merge-json-schemas": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@fastify/merge-json-schemas/-/merge-json-schemas-0.1.1.tgz", + "integrity": "sha512-fERDVz7topgNjtXsJTTW1JKLy0rhuLRcquYqNR9rF7OcVpCa2OVW49ZPDIhaRRCaUuvVxI+N416xUoF76HNSXA==", "requires": { - "ajv": "^6.12.6" + "fast-deep-equal": "^3.1.3" } }, + "@pinojs/redact": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@pinojs/redact/-/redact-0.4.0.tgz", + "integrity": "sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==" + }, "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -3183,14 +3243,22 @@ "integrity": "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==" }, "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "requires": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + } + }, + "ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "ajv": "^8.0.0" } }, "ansi-align": { @@ -3236,15 +3304,11 @@ } } }, - "ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==" - }, "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, "requires": { "color-convert": "^2.0.1" } @@ -3259,11 +3323,6 @@ "picomatch": "^2.0.4" } }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" - }, "argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -3272,64 +3331,26 @@ "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true }, "atomic-sleep": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==" }, - "autocannon": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/autocannon/-/autocannon-4.6.0.tgz", - "integrity": "sha512-pWHEBJh9bkQeDXYj1NL2BBYeXTaLkbRiy3NZ7vNR1bq7vWxHP8R+iCmDyBCtuh2PMJiWlGlikXa1p0LUUY3Tdw==", - "requires": { - "chalk": "^3.0.0", - "cli-table3": "^0.5.1", - "clone": "^2.1.2", - "color-support": "^1.1.1", - "cross-argv": "^1.0.0", - "form-data": "^2.5.1", - "has-async-hooks": "^1.0.0", - "hdr-histogram-js": "^1.1.4", - "hdr-histogram-percentiles-obj": "^2.0.0", - "http-parser-js": "^0.5.2", - "hyperid": "^2.0.3", - "manage-path": "^2.0.0", - "minimist": "^1.2.0", - "on-net-listen": "^1.1.1", - "pretty-bytes": "^5.3.0", - "progress": "^2.0.3", - "reinterval": "^1.1.0", - "retimer": "^2.0.0", - "timestring": "^6.0.0" - }, - "dependencies": { - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, "available-typed-arrays": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz", "integrity": "sha512-SA5mXJWrId1TaQjfxUYghbqQ/hYioKmLJvPJyDuYRtXXenFNMjj4hSSt1Cf1xsuXSXrtxrVC5Ot4eU6cOtBDdA==" }, "avvio": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/avvio/-/avvio-7.2.2.tgz", - "integrity": "sha512-XW2CMCmZaCmCCsIaJaLKxAzPwF37fXi1KGxNOvedOpeisLdmxZnblGc3hpHWYnlP+KOUxZsazh43WXNHgXpbqw==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/avvio/-/avvio-8.4.0.tgz", + "integrity": "sha512-CDSwaxINFy59iNwhYnkvALBwZiTydGkOecZyPkqBpABYR1KqGEsET0VOOYDwtleZSUIdeY36DC2bSZ24CO1igA==", "requires": { - "archy": "^1.0.0", - "debug": "^4.0.0", - "fastq": "^1.6.1", - "queue-microtask": "^1.1.2" + "@fastify/error": "^3.3.0", + "fastq": "^1.17.1" } }, "balanced-match": { @@ -3338,11 +3359,6 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -3350,9 +3366,9 @@ "dev": true }, "bintrees": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz", - "integrity": "sha1-DmVcm5wkNeqraL9AJyJtK1WjRSQ=" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.2.tgz", + "integrity": "sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw==" }, "boxen": { "version": "5.1.2", @@ -3464,6 +3480,24 @@ "get-intrinsic": "^1.0.2" } }, + "call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "requires": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + } + }, + "call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "requires": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + } + }, "camelcase": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", @@ -3474,6 +3508,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3507,21 +3542,6 @@ "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", "dev": true }, - "cli-table3": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", - "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", - "requires": { - "colors": "^1.1.2", - "object-assign": "^4.1.0", - "string-width": "^2.1.1" - } - }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" - }, "clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", @@ -3532,19 +3552,21 @@ } }, "cloudevents": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/cloudevents/-/cloudevents-5.3.2.tgz", - "integrity": "sha512-ZjEFjx0BJnio8SED1TzD7GHA118zCk04Mz6aDMMii+4/ZvX5LPgn1D4lT5Jj7HodCbdeRS6dX88unH06Qc3mkA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/cloudevents/-/cloudevents-6.0.3.tgz", + "integrity": "sha512-ADEHAv2KShH/cDIy2GP+npFz3R6Fu/UCsUO/j4kYA9VqN4yhGdF+Zg6wmjeq6qlUvlaKdrVBwgZuH/w57IsyGQ==", "requires": { - "ajv": "~6.12.3", + "ajv": "^8.11.0", + "ajv-formats": "^2.1.1", "util": "^0.12.4", - "uuid": "~8.3.0" + "uuid": "^8.3.2" } }, "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, "requires": { "color-name": "~1.1.4" } @@ -3552,31 +3574,22 @@ "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==" - }, - "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==" - }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "optional": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "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, "requires": { "delayed-stream": "~1.0.0" } }, "commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==" }, "component-emitter": { "version": "1.3.0", @@ -3605,9 +3618,9 @@ } }, "cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==" }, "cookiejar": { "version": "2.1.2", @@ -3621,11 +3634,6 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, - "cross-argv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cross-argv/-/cross-argv-1.0.0.tgz", - "integrity": "sha512-uAVe/bgNHlPdP1VE4Sk08u9pAJ7o1x/tVQtX77T5zlhYhuwOWtVkPBEtHdvF5cq48VzeCG5i1zN4dQc8pwLYrw==" - }, "crypto-random-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", @@ -3637,14 +3645,6 @@ "resolved": "https://registry.npmjs.org/death/-/death-1.1.0.tgz", "integrity": "sha1-AaqcQB7dknUFFEcLgmY5DGbGcxg=" }, - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, "decompress-response": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", @@ -3691,11 +3691,6 @@ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" - }, "defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", @@ -3719,7 +3714,8 @@ "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true }, "dot-prop": { "version": "5.3.0", @@ -3739,6 +3735,16 @@ "minimatch": "^3.0.4" } }, + "dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "requires": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + } + }, "duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", @@ -3783,6 +3789,16 @@ "unbox-primitive": "^1.0.0" } }, + "es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==" + }, + "es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" + }, "es-get-iterator": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", @@ -3807,6 +3823,26 @@ } } }, + "es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "requires": { + "es-errors": "^1.3.0" + } + }, + "es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + } + }, "es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", @@ -3830,22 +3866,26 @@ "dev": true }, "faas-js-runtime": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/faas-js-runtime/-/faas-js-runtime-0.9.0.tgz", - "integrity": "sha512-/FAwj/pJW6w9X8esC+B1nojiIN1OeH0RKCozx/fqbjc2SgkmsK10cF79HtpHellaPdUs2oJ8PB4v0RH2aSwTCQ==", + "version": "0.9.7", + "resolved": "https://registry.npmjs.org/faas-js-runtime/-/faas-js-runtime-0.9.7.tgz", + "integrity": "sha512-uHfA+t5/Z+NDIRevCIE/lM9/U+wvyTzaGp81bOwyGKEaHG9j83BkkCrOHxJVlOC5rF95VPD3v0r7PB+ROAFoHw==", "requires": { - "chalk": "^4.1.2", - "cloudevents": "^5.3.1", - "commander": "^8.1.0", + "cloudevents": "^6.0.3", + "commander": "^9.4.0", "death": "^1.1.0", - "fastify": "^3.20.1", + "fastify": "^4.9.2", "js-yaml": "^4.1.0", "node-os-utils": "^1.3.5", - "overload-protection": "^1.2.0", - "prom-client": "^14.0.0", - "qs": "^6.10.1" + "overload-protection": "^1.2.3", + "prom-client": "^14.1.0", + "qs": "^6.11.0" } }, + "fast-content-type-parse": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-1.1.0.tgz", + "integrity": "sha512-fBHHqSTFLVnR61C+gltJuE5GkVQMV0S2nqUO8TJ+5Z3qAKG8vAx4FKai1s5jq/inV1+sREynIWSuQ6HgoSXpDQ==" + }, "fast-decode-uri-component": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", @@ -3856,68 +3896,75 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, "fast-json-stringify": { - "version": "2.7.12", - "resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-2.7.12.tgz", - "integrity": "sha512-4hjwZDPmgj/ZUKXhEWovGPciE/5mWtAIQQxN+2VBDFun7DRTk2oOItbu9ZZp6kqj+eZ/u7z+dgBgM74cfGRnBQ==", + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-5.16.1.tgz", + "integrity": "sha512-KAdnLvy1yu/XrRtP+LJnxbBGrhN+xXu+gt3EUvZhYGKCr3lFHq/7UFJHHFgmJKoqlh6B40bZLEv7w46B0mqn1g==", "requires": { - "ajv": "^6.11.0", - "deepmerge": "^4.2.2", - "rfdc": "^1.2.0", - "string-similarity": "^4.0.1" + "@fastify/merge-json-schemas": "^0.1.0", + "ajv": "^8.10.0", + "ajv-formats": "^3.0.1", + "fast-deep-equal": "^3.1.3", + "fast-uri": "^2.1.0", + "json-schema-ref-resolver": "^1.0.1", + "rfdc": "^1.2.0" + }, + "dependencies": { + "ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "requires": { + "ajv": "^8.0.0" + } + }, + "fast-uri": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-2.4.0.tgz", + "integrity": "sha512-ypuAmmMKInk5q7XcepxlnUWDLWv4GFtaJqAzWKqn62IpQ3pejtr5dTVbt3vwqVaMKmkNR55sTT+CqUKIaT21BA==" + } } }, - "fast-redact": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.0.2.tgz", - "integrity": "sha512-YN+CYfCVRVMUZOUPeinHNKgytM1wPI/C/UCLEi56EsY2dwwvI00kIJHJoI7pMVqGoMew8SMZ2SSfHKHULHXDsg==" + "fast-querystring": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.1.2.tgz", + "integrity": "sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==", + "requires": { + "fast-decode-uri-component": "^1.0.1" + } }, - "fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + "fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==" }, "fastify": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/fastify/-/fastify-3.24.1.tgz", - "integrity": "sha512-ZL0V6u37d65tAY8lMwVMFtFvnEeJcG80QBNSdChqCm4i4x+is/38OU14gzJuRXhpenTL+pTJzNcu5Kn1ouzM3Q==", - "requires": { - "@fastify/ajv-compiler": "^1.0.0", - "abstract-logging": "^2.0.0", - "avvio": "^7.1.2", - "fast-json-stringify": "^2.5.2", - "fastify-error": "^0.3.0", - "fastify-warning": "^0.2.0", - "find-my-way": "^4.1.0", - "flatstr": "^1.0.12", - "light-my-request": "^4.2.0", - "pino": "^6.13.0", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/fastify/-/fastify-4.29.1.tgz", + "integrity": "sha512-m2kMNHIG92tSNWv+Z3UeTR9AWLLuo7KctC7mlFPtMEVrfjIhmQhkQnT9v15qA/BfVq3vvj134Y0jl9SBje3jXQ==", + "requires": { + "@fastify/ajv-compiler": "^3.5.0", + "@fastify/error": "^3.4.0", + "@fastify/fast-json-stringify-compiler": "^4.3.0", + "abstract-logging": "^2.0.1", + "avvio": "^8.3.0", + "fast-content-type-parse": "^1.1.0", + "fast-json-stringify": "^5.8.0", + "find-my-way": "^8.0.0", + "light-my-request": "^5.11.0", + "pino": "^9.0.0", + "process-warning": "^3.0.0", "proxy-addr": "^2.0.7", - "rfdc": "^1.1.4", - "secure-json-parse": "^2.0.0", - "semver": "^7.3.2", - "tiny-lru": "^7.0.0" + "rfdc": "^1.3.0", + "secure-json-parse": "^2.7.0", + "semver": "^7.5.4", + "toad-cache": "^3.3.0" } }, - "fastify-error": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/fastify-error/-/fastify-error-0.3.1.tgz", - "integrity": "sha512-oCfpcsDndgnDVgiI7bwFKAun2dO+4h84vBlkWsWnz/OUK9Reff5UFoFl241xTiLeHWX/vU9zkDVXqYUxjOwHcQ==" - }, - "fastify-warning": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/fastify-warning/-/fastify-warning-0.2.0.tgz", - "integrity": "sha512-s1EQguBw/9qtc1p/WTY4eq9WMRIACkj+HTcOIK1in4MV5aFaQC9ZCIt0dJ7pr5bIf4lPpHvAtP2ywpTNgs7hqw==" - }, "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", "requires": { "reusify": "^1.0.4" } @@ -3932,21 +3979,15 @@ } }, "find-my-way": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-4.4.0.tgz", - "integrity": "sha512-hpntHvK0iOHp3pqWRRUEzioar4tp8euBD8DkPG3VauOriZLgwGZLTNp6yZSrdctJ8RCDS7zhZSR2V+yOaBbNow==", + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-8.2.2.tgz", + "integrity": "sha512-Dobi7gcTEq8yszimcfp/R7+owiT4WncAJ7VTTgFH1jYJ5GaG1FbhjwDG820hptN0QDFvzVY3RfCzdInvGPGzjA==", "requires": { - "fast-decode-uri-component": "^1.0.1", "fast-deep-equal": "^3.1.3", - "safe-regex2": "^2.0.0", - "semver-store": "^0.3.0" + "fast-querystring": "^1.0.0", + "safe-regex2": "^3.1.0" } }, - "flatstr": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz", - "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" - }, "for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", @@ -3962,13 +4003,17 @@ "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" }, "form-data": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", - "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.5.tgz", + "integrity": "sha512-jqdObeR2rxZZbPSGL+3VckHMYtu+f9//KXBsVny6JSX/pa38Fy+bGjuG8eW/H6USNQWhLi8Num++cU2yOCNz4A==", + "dev": true, "requires": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.35", + "safe-buffer": "^5.2.1" } }, "formidable": { @@ -3996,18 +4041,39 @@ "optional": true }, "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + }, + "generator-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==" }, "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + } + }, + "get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "requires": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" } }, "get-stream": { @@ -4051,6 +4117,11 @@ "ini": "2.0.0" } }, + "gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==" + }, "got": { "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", @@ -4084,11 +4155,6 @@ "function-bind": "^1.1.1" } }, - "has-async-hooks": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-async-hooks/-/has-async-hooks-1.0.0.tgz", - "integrity": "sha512-YF0VPGjkxr7AyyQQNykX8zK4PvtEDsUJAPqwu06UFz1lb6EvI53sPh5H1kWxg8NXI5LsfRCZ8uX9NkYDZBb/mw==" - }, "has-bigints": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", @@ -4097,19 +4163,20 @@ "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==" }, "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "requires": { - "has-symbols": "^1.0.2" + "has-symbols": "^1.0.3" } }, "has-yarn": { @@ -4118,21 +4185,12 @@ "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", "dev": true }, - "hdr-histogram-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-1.2.0.tgz", - "integrity": "sha512-h0YToJ3ewqsaZ3nFTTa6dLOD7sqx+EgdC4+OcJ9Ou7zZDlT0sXSPHHr3cyenQsPqqbVHGn/oFY6zjfEKXGvzmQ==", - "requires": { - "base64-js": "^1.2.0", - "pako": "^1.0.3" - } - }, - "hdr-histogram-percentiles-obj": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-2.0.1.tgz", - "integrity": "sha512-QBvbTxPlGwHj36IRF16XLoYEbUv5YEyO385kiS0IS3831fcSTNXTR785VtFFZ2ahY733z0ky8Jv4d6In+Ss+wQ==", + "hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "requires": { - "hdr-histogram-js": "^1.0.0" + "function-bind": "^1.1.2" } }, "http-cache-semantics": { @@ -4141,27 +4199,6 @@ "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", "dev": true }, - "http-parser-js": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz", - "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==" - }, - "hyperid": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hyperid/-/hyperid-2.1.0.tgz", - "integrity": "sha512-cSakhxbUsaIuqjfvvcUuvl/Fl342J65xgLLYrYxSSr9qmJ/EJK+S8crS6mIlQd/a7i+Pe4D0MgSrtZPLze+aCw==", - "requires": { - "uuid": "^3.4.0", - "uuid-parse": "^1.1.0" - }, - "dependencies": { - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - } - } - }, "ignore-by-default": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", @@ -4270,17 +4307,16 @@ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, "is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", "requires": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.4", + "generator-function": "^2.0.0", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" } }, "is-glob": { @@ -4343,12 +4379,14 @@ "dev": true }, "is-regex": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", - "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", "requires": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.2" + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" } }, "is-set": { @@ -4413,9 +4451,9 @@ "dev": true }, "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "requires": { "argparse": "^2.0.1" } @@ -4426,10 +4464,18 @@ "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", "dev": true }, + "json-schema-ref-resolver": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-schema-ref-resolver/-/json-schema-ref-resolver-1.0.1.tgz", + "integrity": "sha512-EJAj1pgHc1hxF6vo2Z3s69fMjO1INq6eGHXZ8Z6wCQeldCuwxGK9Sxf4/cScGn3FZubCVUehfWtcDM/PLteCQw==", + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, "keyv": { "version": "3.1.0", @@ -4450,38 +4496,19 @@ } }, "light-my-request": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/light-my-request/-/light-my-request-4.7.0.tgz", - "integrity": "sha512-LTa8YZp3K2AUpqUnwwKajoIHcsKOBnzwJNQSrk7unziPwo6CjOYjyO0F9wfkxFvP+nBsCGe3eMPnedVgIIgdAw==", + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/light-my-request/-/light-my-request-5.14.0.tgz", + "integrity": "sha512-aORPWntbpH5esaYpGOOmri0OHDOe3wC5M2MQxZ9dvMLZm6DnaAn0kJlcbU9hwsQgLzmZyReKwFwwPkR+nHu5kA==", "requires": { - "ajv": "^8.1.0", - "cookie": "^0.4.0", - "fastify-warning": "^0.2.0", + "cookie": "^0.7.0", + "process-warning": "^3.0.0", "set-cookie-parser": "^2.4.1" - }, - "dependencies": { - "ajv": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", - "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "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==" - } } }, "loopbench": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/loopbench/-/loopbench-1.2.0.tgz", - "integrity": "sha1-dgG3P1cJfHP0JqBev3gat+pJF/8=", + "integrity": "sha512-ft2PmuZnDw+DJQfT5mpEWudEBRzlpImh7mU7OcPGmefsKlW8Ck0U6nrCCdcwYF+z9zc0SVBzGZA1F1gUfHZuJw==", "requires": { "xtend": "^4.0.1" } @@ -4492,14 +4519,6 @@ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", "dev": true }, - "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==", - "requires": { - "yallist": "^4.0.0" - } - }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -4517,10 +4536,10 @@ } } }, - "manage-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/manage-path/-/manage-path-2.0.0.tgz", - "integrity": "sha1-9M+EV7km7u4qg7FzUBQUvHbrlZc=" + "math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==" }, "methods": { "version": "1.1.2", @@ -4535,16 +4554,18 @@ "dev": true }, "mime-db": { - "version": "1.47.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", - "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==" + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true }, "mime-types": { - "version": "2.1.30", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz", - "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==", + "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, "requires": { - "mime-db": "1.47.0" + "mime-db": "1.52.0" } }, "mimic-response": { @@ -4565,12 +4586,14 @@ "minimist": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true }, "node-os-utils": { "version": "1.3.5", @@ -4648,15 +4671,10 @@ "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", "dev": true }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, "object-inspect": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", - "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==" + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==" }, "object-is": { "version": "1.1.5", @@ -4684,10 +4702,10 @@ "object-keys": "^1.1.1" } }, - "on-net-listen": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/on-net-listen/-/on-net-listen-1.1.2.tgz", - "integrity": "sha512-y1HRYy8s/RlcBvDUwKXSmkODMdx4KSuIvloCnQYJ2LdBBC1asY4HtfhXwe3UWknLakATZDnbzht2Ijw3M1EqFg==" + "on-exit-leak-free": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz", + "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==" }, "once": { "version": "1.4.0", @@ -4699,11 +4717,10 @@ } }, "overload-protection": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/overload-protection/-/overload-protection-1.2.1.tgz", - "integrity": "sha512-aIOgq7XgldkBL9cp5jkA/mfNAuik0NZvVaBlpJhST+fepq3wYAmoQRpJjfG6AY5wwToGoUPs6ePPwffh1q4n+A==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/overload-protection/-/overload-protection-1.2.3.tgz", + "integrity": "sha512-b7XZbmhujnqNoK0Z6NPzA/nhfQnE08ZTHSzzjTMwegb5N9oBAAApx3f9u2R/f3VGaACTQj6QJnGUfX1oFttqfg==", "requires": { - "autocannon": "^4.4.1", "loopbench": "^1.2.0" } }, @@ -4733,11 +4750,6 @@ } } }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -4757,23 +4769,42 @@ "dev": true }, "pino": { - "version": "6.13.3", - "resolved": "https://registry.npmjs.org/pino/-/pino-6.13.3.tgz", - "integrity": "sha512-tJy6qVgkh9MwNgqX1/oYi3ehfl2Y9H0uHyEEMsBe74KinESIjdMrMQDWpcZPpPicg3VV35d/GLQZmo4QgU2Xkg==", - "requires": { - "fast-redact": "^3.0.0", - "fast-safe-stringify": "^2.0.8", - "fastify-warning": "^0.2.0", - "flatstr": "^1.0.12", - "pino-std-serializers": "^3.1.0", + "version": "9.14.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-9.14.0.tgz", + "integrity": "sha512-8OEwKp5juEvb/MjpIc4hjqfgCNysrS94RIOMXYvpYCdm/jglrKEiAYmiumbmGhCvs+IcInsphYDFwqrjr7398w==", + "requires": { + "@pinojs/redact": "^0.4.0", + "atomic-sleep": "^1.0.0", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^2.0.0", + "pino-std-serializers": "^7.0.0", + "process-warning": "^5.0.0", "quick-format-unescaped": "^4.0.3", - "sonic-boom": "^1.0.2" + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^4.0.1", + "thread-stream": "^3.0.0" + }, + "dependencies": { + "process-warning": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-5.0.0.tgz", + "integrity": "sha512-a39t9ApHNx2L4+HBnQKqxxHNs1r7KF+Intd8Q/g1bUh6q0WIp9voPXJ/x0j+ZL45KF1pJd9+q2jLIRMfvEshkA==" + } + } + }, + "pino-abstract-transport": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz", + "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==", + "requires": { + "split2": "^4.0.0" } }, "pino-std-serializers": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz", - "integrity": "sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==" + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.1.0.tgz", + "integrity": "sha512-BndPH67/JxGExRgiX1dX0w1FvZck5Wa4aal9198SrRhZjH3GxKQUKIBnYJTdj2HDN3UQAS06HlfcSbQj2OHmaw==" }, "prepend-http": { "version": "2.0.0", @@ -4781,26 +4812,21 @@ "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", "dev": true }, - "pretty-bytes": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==" - }, "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 }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" + "process-warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-3.0.0.tgz", + "integrity": "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==" }, "prom-client": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-14.0.1.tgz", - "integrity": "sha512-HxTArb6fkOntQHoRGvv4qd/BkorjliiuO2uSWC2KC17MUTKYttWdDoXX/vxOhQdkoECEM9BBH0pj2l8G8kev6w==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-14.2.0.tgz", + "integrity": "sha512-sF308EhTenb/pDRPakm+WgiN+VdM/T1RaHj1x+MvAuT8UiQP8JmOEbxVqtkbfR4LrvOg5n7ic01kRBDGXjYikA==", "requires": { "tdigest": "^0.1.1" } @@ -4830,11 +4856,6 @@ "once": "^1.3.1" } }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, "pupa": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", @@ -4845,18 +4866,13 @@ } }, "qs": { - "version": "6.10.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz", - "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.0.tgz", + "integrity": "sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==", "requires": { - "side-channel": "^1.0.4" + "side-channel": "^1.1.0" } }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" - }, "quick-format-unescaped": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", @@ -4891,6 +4907,11 @@ "picomatch": "^2.2.1" } }, + "real-require": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", + "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==" + }, "regexp.prototype.flags": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", @@ -4919,11 +4940,6 @@ "rc": "^1.2.8" } }, - "reinterval": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reinterval/-/reinterval-1.1.0.tgz", - "integrity": "sha1-M2Hs+jymwYKDOA3Qu5VG85D17Oc=" - }, "require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", @@ -4958,50 +4974,58 @@ } }, "ret": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.2.2.tgz", - "integrity": "sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==" - }, - "retimer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/retimer/-/retimer-2.0.0.tgz", - "integrity": "sha512-KLXY85WkEq2V2bKex/LOO1ViXVn2KGYe4PYysAdYdjmraYIUsVkXu8O4am+8+5UbaaGl1qho4aqAAPHNQ4GSbg==" + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.4.3.tgz", + "integrity": "sha512-0f4Memo5QP7WQyUEAYUO3esD/XjOc3Zjjg5CPsAq1p8sIu0XPeMbHJemKA0BO7tV0X7+A0FoEpbmHXWxPyD3wQ==" }, "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==" }, "rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==" }, "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==" + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "requires": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + } }, "safe-regex2": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/safe-regex2/-/safe-regex2-2.0.0.tgz", - "integrity": "sha512-PaUSFsUaNNuKwkBijoAPHAK6/eM6VirvyPWlZ7BAQy4D+hCvh4B6lIG+nPdhbFfIbP+gTGBcrdsOaUs0F+ZBOQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/safe-regex2/-/safe-regex2-3.1.0.tgz", + "integrity": "sha512-RAAZAGbap2kBfbVhvmnTFv73NWLMvDGOITFYTZBAaY8eR+Ir4ef7Up/e7amo+y1+AH+3PtLkrt9mvcTsG9LXug==", "requires": { - "ret": "~0.2.0" + "ret": "~0.4.0" } }, + "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==" + }, "secure-json-parse": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.4.0.tgz", - "integrity": "sha512-Q5Z/97nbON5t/L/sH6mY2EacfjVGwrCcSi5D3btRO2GZ8pf1K1UN7Z9H5J57hjVU2Qzxr1xO+FmBhOvEkzCMmg==" + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz", + "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==" }, "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==" }, "semver-diff": { "version": "3.1.1", @@ -5020,24 +5044,53 @@ } } }, - "semver-store": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/semver-store/-/semver-store-0.3.0.tgz", - "integrity": "sha512-TcZvGMMy9vodEFSse30lWinkj+JgOBvPn8wRItpQRSayhc+4ssDs335uklkfvQQJgL/WvmHLVj4Ycv2s7QCQMg==" - }, "set-cookie-parser": { - "version": "2.4.8", - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.4.8.tgz", - "integrity": "sha512-edRH8mBKEWNVIVMKejNnuJxleqYE/ZSdcT8/Nem9/mmosx12pctd80s2Oy00KNZzrogMZS5mauK2/ymL1bvlvg==" + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz", + "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==" }, "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + } + }, + "side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "requires": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + } + }, + "side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "requires": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + } + }, + "side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "requires": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" } }, "signal-exit": { @@ -5047,27 +5100,17 @@ "dev": true }, "sonic-boom": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz", - "integrity": "sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.1.tgz", + "integrity": "sha512-w6AxtubXa2wTXAUsZMMWERrsIRAdrK0Sc+FUytWvYAhBJLyuI4llrMIC1DtlNSdI99EI86KZum2MMq3EAZlF9Q==", "requires": { - "atomic-sleep": "^1.0.0", - "flatstr": "^1.0.12" + "atomic-sleep": "^1.0.0" } }, - "string-similarity": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/string-similarity/-/string-similarity-4.0.4.tgz", - "integrity": "sha512-/q/8Q4Bl4ZKAPjj8WerIBJWALKkaPRfrvhfF8k/B23i4nzrlRj2/go1m90In7nG/3XDSbOo0+pu6RvCTM9RGMQ==" - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } + "split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==" }, "string.prototype.trim": { "version": "1.2.4", @@ -5098,14 +5141,6 @@ "define-properties": "^1.1.3" } }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - }, "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", @@ -5185,6 +5220,7 @@ "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, "requires": { "has-flag": "^4.0.0" } @@ -5215,11 +5251,19 @@ } }, "tdigest": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.1.tgz", - "integrity": "sha1-Ljyyw56kSeVdHmzZEReszKRYgCE=", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.2.tgz", + "integrity": "sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==", + "requires": { + "bintrees": "1.0.2" + } + }, + "thread-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz", + "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==", "requires": { - "bintrees": "1.0.1" + "real-require": "^0.2.0" } }, "through": { @@ -5228,16 +5272,6 @@ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, - "timestring": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/timestring/-/timestring-6.0.0.tgz", - "integrity": "sha512-wMctrWD2HZZLuIlchlkE2dfXJh7J2KDI9Dwl+2abPYg0mswQHfOAyQW3jJg1pY5VfttSINZuKcXoB3FGypVklA==" - }, - "tiny-lru": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/tiny-lru/-/tiny-lru-7.0.6.tgz", - "integrity": "sha512-zNYO0Kvgn5rXzWpL0y3RS09sMK67eGaQj9805jlK9G6pSadfriTczzLHFXa/xcW4mIRfmlB9HyQ/+SgL0V1uow==" - }, "to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", @@ -5253,6 +5287,11 @@ "is-number": "^7.0.0" } }, + "toad-cache": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/toad-cache/-/toad-cache-3.7.0.tgz", + "integrity": "sha512-/m8M+2BJUpoJdgAHoG+baCwBT+tf2VraSfkBgl0Y00qIWt41DJ8R5B8nsEw0I58YwF5IZH6z24/2TobDKnqSWw==" + }, "touch": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", @@ -5325,14 +5364,6 @@ "xdg-basedir": "^4.0.0" } }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { - "punycode": "^2.1.0" - } - }, "url-parse-lax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", @@ -5343,15 +5374,14 @@ } }, "util": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", - "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", "requires": { "inherits": "^2.0.3", "is-arguments": "^1.0.4", "is-generator-function": "^1.0.7", "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", "which-typed-array": "^1.1.2" } }, @@ -5366,11 +5396,6 @@ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" }, - "uuid-parse": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uuid-parse/-/uuid-parse-1.1.0.tgz", - "integrity": "sha512-OdmXxA8rDsQ7YpNVbKSJkNzTw2I+S5WsbMDnCtIWSQaosNAcWtFuI/YK1TjzUI6nbkgiqEyh8gWngfcv8Asd9A==" - }, "which-boxed-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", @@ -5525,11 +5550,6 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } } } diff --git a/serverless-workflow-examples/serverless-workflow-loanbroker-showcase/credit-bureau/package.json b/serverless-workflow-examples/serverless-workflow-loanbroker-showcase/credit-bureau/package.json index 2806b7a4ce..42037024e2 100644 --- a/serverless-workflow-examples/serverless-workflow-loanbroker-showcase/credit-bureau/package.json +++ b/serverless-workflow-examples/serverless-workflow-loanbroker-showcase/credit-bureau/package.json @@ -12,7 +12,7 @@ "author": "", "license": "Apache-2.0", "dependencies": { - "faas-js-runtime": "^0.9.0" + "faas-js-runtime": "^0.9.7" }, "devDependencies": { "nodemon": "^2.0.4", diff --git a/serverless-workflow-examples/serverless-workflow-loanbroker-showcase/loanbroker-flow/src/test/resources/application.properties b/serverless-workflow-examples/serverless-workflow-loanbroker-showcase/loanbroker-flow/src/test/resources/application.properties index e8953f6fe6..66ceecaa69 100644 --- a/serverless-workflow-examples/serverless-workflow-loanbroker-showcase/loanbroker-flow/src/test/resources/application.properties +++ b/serverless-workflow-examples/serverless-workflow-loanbroker-showcase/loanbroker-flow/src/test/resources/application.properties @@ -18,9 +18,10 @@ # quarkus.http.test-port=0 +quarkus.devservices.enabled=false # Act as a placeholder to avoid triggering Kubernetes Service Discovery during test runs # The actual URLs are set by the Quarkus Test Runner kogito.service.url=http://localhost:${quarkus.http.port} quarkus.rest-client.credit_bureau_yaml.url=http://localhost:8181 -quarkus.rest-client.aggregator_yaml.url=http://localhost:8282 \ No newline at end of file +quarkus.rest-client.aggregator_yaml.url=http://localhost:8282 diff --git a/serverless-workflow-examples/serverless-workflow-loanbroker-showcase/loanbroker-js/package.json b/serverless-workflow-examples/serverless-workflow-loanbroker-showcase/loanbroker-js/package.json index eca2d9d8d7..9ad75a75c8 100644 --- a/serverless-workflow-examples/serverless-workflow-loanbroker-showcase/loanbroker-js/package.json +++ b/serverless-workflow-examples/serverless-workflow-loanbroker-showcase/loanbroker-js/package.json @@ -9,7 +9,7 @@ "lint": "next lint" }, "dependencies": { - "axios": "^1.12.0", + "axios": "^1.13.5", "bootstrap": "^5.2.0", "bootstrap-icons": "^1.9.1", "cloudevents": "^6.0.2", diff --git a/serverless-workflow-examples/serverless-workflow-loanbroker-showcase/loanbroker-js/yarn.lock b/serverless-workflow-examples/serverless-workflow-loanbroker-showcase/loanbroker-js/yarn.lock index 579d5215d4..5348592ab2 100644 --- a/serverless-workflow-examples/serverless-workflow-loanbroker-showcase/loanbroker-js/yarn.lock +++ b/serverless-workflow-examples/serverless-workflow-loanbroker-showcase/loanbroker-js/yarn.lock @@ -377,13 +377,13 @@ axe-core@^4.4.3: resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.3.tgz#11c74d23d5013c0fa5d183796729bc3482bd2f6f" integrity sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w== -axios@^1.12.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.12.0.tgz#11248459be05a5ee493485628fa0e4323d0abfc3" - integrity sha512-oXTDccv8PcfjZmPGlWsPSwtOJCZ/b6W5jAMCNcfwJbCzDckwG0jrYJFaWH1yvivfCXjVzV/SPDEhMB3Q+DSurg== +axios@^1.13.5: + version "1.13.5" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.13.5.tgz#5e464688fa127e11a660a2c49441c009f6567a43" + integrity sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q== dependencies: - follow-redirects "^1.15.6" - form-data "^4.0.4" + follow-redirects "^1.15.11" + form-data "^4.0.5" proxy-from-env "^1.1.0" axobject-query@^2.2.0: @@ -420,11 +420,11 @@ brace-expansion@^1.1.7: concat-map "0.0.1" braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: - fill-range "^7.0.1" + fill-range "^7.1.1" call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: version "1.0.2" @@ -952,10 +952,10 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: to-regex-range "^5.0.1" @@ -980,10 +980,10 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== -follow-redirects@^1.15.6: - version "1.15.9" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1" - integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ== +follow-redirects@^1.15.11: + version "1.15.11" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.11.tgz#777d73d72a92f8ec4d2e410eb47352a56b8e8340" + integrity sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ== for-each@^0.3.3: version "0.3.3" @@ -992,10 +992,10 @@ for-each@^0.3.3: dependencies: is-callable "^1.1.3" -form-data@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.4.tgz#784cdcce0669a9d68e94d11ac4eea98088edd2c4" - integrity sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow== +form-data@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.5.tgz#b49e48858045ff4cbf6b03e1805cebcad3679053" + integrity sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" @@ -1419,9 +1419,9 @@ isexe@^2.0.0: integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + version "4.1.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b" + integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA== dependencies: argparse "^2.0.1" @@ -1441,9 +1441,9 @@ json-stable-stringify-without-jsonify@^1.0.1: integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== dependencies: minimist "^1.2.0" @@ -1569,9 +1569,9 @@ ms@^2.1.1: integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== nanoid@^3.3.4: - version "3.3.4" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" - integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== + version "3.3.10" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.10.tgz#7bc882237698ef787d5cbba109e3b0168ba6e7b1" + integrity sha512-vSJJTG+t/dIKAUhUDw/dLdZ9s//5OxcHqLaDWWrW4Cdq7o6tdLIczUkMXt2MBNmk6sJRZBZRXVixs7URY1CmIg== natural-compare@^1.4.0: version "1.4.0" @@ -1957,9 +1957,9 @@ socket.io-client@^4.5.2: socket.io-parser "~4.2.0" socket.io-parser@~4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.1.tgz#01c96efa11ded938dcb21cbe590c26af5eff65e5" - integrity sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g== + version "4.2.4" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.4.tgz#c806966cf7270601e47469ddeec30fbdfda44c83" + integrity sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew== dependencies: "@socket.io/component-emitter" "~3.1.0" debug "~4.3.1" diff --git a/serverless-workflow-examples/serverless-workflow-loanbroker-showcase/pom.xml b/serverless-workflow-examples/serverless-workflow-loanbroker-showcase/pom.xml index c3ca9bc4d3..ccc399a338 100644 --- a/serverless-workflow-examples/serverless-workflow-loanbroker-showcase/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-loanbroker-showcase/pom.xml @@ -39,10 +39,10 @@ serverless-workflow-loanbroker-showcase pom - 3.20.3 + 3.27.2 io.quarkus quarkus-bom - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT @@ -55,7 +55,7 @@ 2.5.0 - 3.20.2 + 3.27.2 3.3.1 3.13.0 diff --git a/serverless-workflow-examples/serverless-workflow-newsletter-subscription/pom.xml b/serverless-workflow-examples/serverless-workflow-newsletter-subscription/pom.xml index 88ef470e36..46409b34c9 100644 --- a/serverless-workflow-examples/serverless-workflow-newsletter-subscription/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-newsletter-subscription/pom.xml @@ -39,10 +39,10 @@ serverless-workflow-newsletter-subscription pom - 3.20.3 + 3.27.2 io.quarkus quarkus-bom - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT @@ -52,6 +52,7 @@ 3.13.0 17 ${version.surefire.plugin} + 2.0.3 @@ -59,4 +60,4 @@ subscription-flow - \ No newline at end of file + diff --git a/serverless-workflow-examples/serverless-workflow-newsletter-subscription/subscription-flow/pom.xml b/serverless-workflow-examples/serverless-workflow-newsletter-subscription/subscription-flow/pom.xml index 2e665e2a91..291c721bc6 100644 --- a/serverless-workflow-examples/serverless-workflow-newsletter-subscription/subscription-flow/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-newsletter-subscription/subscription-flow/pom.xml @@ -54,6 +54,11 @@ pom import + + org.testcontainers + testcontainers + ${version.org.testcontainers} + diff --git a/serverless-workflow-examples/serverless-workflow-newsletter-subscription/subscription-flow/src/test/resources/application.properties b/serverless-workflow-examples/serverless-workflow-newsletter-subscription/subscription-flow/src/test/resources/application.properties new file mode 100644 index 0000000000..529be79be0 --- /dev/null +++ b/serverless-workflow-examples/serverless-workflow-newsletter-subscription/subscription-flow/src/test/resources/application.properties @@ -0,0 +1,21 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +# Quarkus +quarkus.keycloak.devservices.enabled=false diff --git a/serverless-workflow-examples/serverless-workflow-newsletter-subscription/subscription-service/src/test/resources/application.properties b/serverless-workflow-examples/serverless-workflow-newsletter-subscription/subscription-service/src/test/resources/application.properties new file mode 100644 index 0000000000..fc9dae63e0 --- /dev/null +++ b/serverless-workflow-examples/serverless-workflow-newsletter-subscription/subscription-service/src/test/resources/application.properties @@ -0,0 +1,21 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +# Quarkus +quarkus.devservices.enabled=false diff --git a/serverless-workflow-examples/serverless-workflow-oauth2-orchestration-quarkus/acme-financial-service/pom.xml b/serverless-workflow-examples/serverless-workflow-oauth2-orchestration-quarkus/acme-financial-service/pom.xml index d8d111264a..02047df8a9 100644 --- a/serverless-workflow-examples/serverless-workflow-oauth2-orchestration-quarkus/acme-financial-service/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-oauth2-orchestration-quarkus/acme-financial-service/pom.xml @@ -30,10 +30,10 @@ acme-financial-service Kogito Example :: Serverless Workflow Oauth2 Orchestration Example :: ACME Financial Service - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT @@ -41,6 +41,7 @@ 17 3.5.2 3.22.0 + 2.0.3 @@ -58,6 +59,11 @@ pom import + + org.testcontainers + testcontainers + ${version.org.testcontainers} + diff --git a/serverless-workflow-examples/serverless-workflow-oauth2-orchestration-quarkus/currency-exchange-workflow/pom.xml b/serverless-workflow-examples/serverless-workflow-oauth2-orchestration-quarkus/currency-exchange-workflow/pom.xml index 2aba9ce8a2..d6a65d8a49 100644 --- a/serverless-workflow-examples/serverless-workflow-oauth2-orchestration-quarkus/currency-exchange-workflow/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-oauth2-orchestration-quarkus/currency-exchange-workflow/pom.xml @@ -32,10 +32,10 @@ Kogito Example :: Serverless Workflow Oauth2 Orchestration Example :: Currency Exchange - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/serverless-workflow-examples/serverless-workflow-opentelemetry-jaeger-quarkus/pom.xml b/serverless-workflow-examples/serverless-workflow-opentelemetry-jaeger-quarkus/pom.xml index 41e3a3dddd..b17a4a7d91 100644 --- a/serverless-workflow-examples/serverless-workflow-opentelemetry-jaeger-quarkus/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-opentelemetry-jaeger-quarkus/pom.xml @@ -50,8 +50,8 @@ 3.13.0 3.3.1 ${version.surefire.plugin} - 1.19.7 4.12.0 + 2.0.3 @@ -62,7 +62,6 @@ pom import - ${kogito.bom.group-id} ${kogito.bom.artifact-id} @@ -70,13 +69,10 @@ pom import - org.testcontainers - testcontainers-bom - ${testcontainers.version} - pom - import + testcontainers + ${version.org.testcontainers} diff --git a/serverless-workflow-examples/serverless-workflow-opentelemetry-jaeger-quarkus/src/main/resources/application.properties b/serverless-workflow-examples/serverless-workflow-opentelemetry-jaeger-quarkus/src/main/resources/application.properties index a7bc4a4122..8d1667c1f8 100644 --- a/serverless-workflow-examples/serverless-workflow-opentelemetry-jaeger-quarkus/src/main/resources/application.properties +++ b/serverless-workflow-examples/serverless-workflow-opentelemetry-jaeger-quarkus/src/main/resources/application.properties @@ -38,6 +38,7 @@ quarkus.native.native-image-xmx=8g quarkus.application.name=sw-opentelemetry-jaeger-example quarkus.otel.enabled=true +quarkus.otel.metrics.exporter=none # Give Jaeger a stable service name to query quarkus.otel.service.name=sw-opentelemetry-jaeger-example diff --git a/serverless-workflow-examples/serverless-workflow-opentelemetry-jaeger-quarkus/src/test/java/org/kie/kogito/examples/sw/opentelemetry/jaeger/JaegerTestResource.java b/serverless-workflow-examples/serverless-workflow-opentelemetry-jaeger-quarkus/src/test/java/org/kie/kogito/examples/sw/opentelemetry/jaeger/JaegerTestResource.java index a283bd71a1..35206a1500 100644 --- a/serverless-workflow-examples/serverless-workflow-opentelemetry-jaeger-quarkus/src/test/java/org/kie/kogito/examples/sw/opentelemetry/jaeger/JaegerTestResource.java +++ b/serverless-workflow-examples/serverless-workflow-opentelemetry-jaeger-quarkus/src/test/java/org/kie/kogito/examples/sw/opentelemetry/jaeger/JaegerTestResource.java @@ -86,6 +86,9 @@ public Map start() { cfg.put("quarkus.otel.exporter.otlp.traces.endpoint", otlpGrpcEndpoint); cfg.put("quarkus.otel.exporter.otlp.traces.protocol", "grpc"); + // OpenTelemetry SDK autoconfigure + cfg.put("otel.metrics.exporter", "none"); + // Optional: make Jaeger query base URL available to the tests cfg.put("test.jaeger.query.base-url", jaegerQueryBaseUrl); diff --git a/serverless-workflow-examples/serverless-workflow-order-processing/pom.xml b/serverless-workflow-examples/serverless-workflow-order-processing/pom.xml index 71c5465bf3..29314a16b1 100644 --- a/serverless-workflow-examples/serverless-workflow-order-processing/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-order-processing/pom.xml @@ -38,10 +38,10 @@ Kogito Example :: Serverless Workflow Order Processing - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/serverless-workflow-examples/serverless-workflow-order-processing/src/test/resources/application.properties b/serverless-workflow-examples/serverless-workflow-order-processing/src/test/resources/application.properties index 5359088fd6..f6212d43af 100644 --- a/serverless-workflow-examples/serverless-workflow-order-processing/src/test/resources/application.properties +++ b/serverless-workflow-examples/serverless-workflow-order-processing/src/test/resources/application.properties @@ -19,4 +19,6 @@ quarkus.log.level=INFO -mp.messaging.outgoing.kogito_outgoing_stream.url=http://0.0.0.0:8181 \ No newline at end of file +mp.messaging.outgoing.kogito_outgoing_stream.url=http://0.0.0.0:8181 + +quarkus.devservices.enabled=false \ No newline at end of file diff --git a/serverless-workflow-examples/serverless-workflow-parallel-execution/pom.xml b/serverless-workflow-examples/serverless-workflow-parallel-execution/pom.xml index f24e59b7fa..d438028ef6 100644 --- a/serverless-workflow-examples/serverless-workflow-parallel-execution/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-parallel-execution/pom.xml @@ -39,10 +39,10 @@ Kogito Serverless Workflow Example - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/serverless-workflow-examples/serverless-workflow-parallel-execution/src/test/resources/application.properties b/serverless-workflow-examples/serverless-workflow-parallel-execution/src/test/resources/application.properties new file mode 100644 index 0000000000..fc9dae63e0 --- /dev/null +++ b/serverless-workflow-examples/serverless-workflow-parallel-execution/src/test/resources/application.properties @@ -0,0 +1,21 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +# Quarkus +quarkus.devservices.enabled=false diff --git a/serverless-workflow-examples/serverless-workflow-python-quarkus/pom.xml b/serverless-workflow-examples/serverless-workflow-python-quarkus/pom.xml index 742cfd912c..7a495d1051 100644 --- a/serverless-workflow-examples/serverless-workflow-python-quarkus/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-python-quarkus/pom.xml @@ -37,10 +37,10 @@ Kogito Example :: Serverless Workflow Python :: Quarkus Kogito Serverless Workflow Python Example - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/serverless-workflow-examples/serverless-workflow-qas-service-showcase/pom.xml b/serverless-workflow-examples/serverless-workflow-qas-service-showcase/pom.xml index 4b53233761..55d80b7553 100644 --- a/serverless-workflow-examples/serverless-workflow-qas-service-showcase/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-qas-service-showcase/pom.xml @@ -49,6 +49,7 @@ 3.13.0 17 ${version.surefire.plugin} + 2.0.3 diff --git a/serverless-workflow-examples/serverless-workflow-qas-service-showcase/query-answer-service/pom.xml b/serverless-workflow-examples/serverless-workflow-qas-service-showcase/query-answer-service/pom.xml index f783a7272f..5535412862 100644 --- a/serverless-workflow-examples/serverless-workflow-qas-service-showcase/query-answer-service/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-qas-service-showcase/query-answer-service/pom.xml @@ -31,10 +31,10 @@ query-answer-service Kogito Example :: Serverless Workflow Query and Answer :: Workflow Service - 3.20.3 + 3.27.2 io.quarkus quarkus-bom - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT @@ -56,6 +56,11 @@ pom import + + org.testcontainers + testcontainers + ${version.org.testcontainers} + diff --git a/serverless-workflow-examples/serverless-workflow-qas-service-showcase/query-answer-service/src/test/resources/application.properties b/serverless-workflow-examples/serverless-workflow-qas-service-showcase/query-answer-service/src/test/resources/application.properties new file mode 100644 index 0000000000..529be79be0 --- /dev/null +++ b/serverless-workflow-examples/serverless-workflow-qas-service-showcase/query-answer-service/src/test/resources/application.properties @@ -0,0 +1,21 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +# Quarkus +quarkus.keycloak.devservices.enabled=false diff --git a/serverless-workflow-examples/serverless-workflow-qas-service-showcase/query-service/pom.xml b/serverless-workflow-examples/serverless-workflow-qas-service-showcase/query-service/pom.xml index 1166644468..8e83f60618 100644 --- a/serverless-workflow-examples/serverless-workflow-qas-service-showcase/query-service/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-qas-service-showcase/query-service/pom.xml @@ -31,10 +31,10 @@ query-service Kogito Example :: Serverless Workflow Query and Answer :: Query Service - 3.20.3 + 3.27.2 io.quarkus quarkus-bom - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT @@ -57,6 +57,11 @@ pom import + + org.testcontainers + testcontainers + ${version.org.testcontainers} + diff --git a/serverless-workflow-examples/serverless-workflow-qas-service-showcase/query-service/src/test/resources/application.properties b/serverless-workflow-examples/serverless-workflow-qas-service-showcase/query-service/src/test/resources/application.properties index d0b6aa7199..e7321a34e4 100644 --- a/serverless-workflow-examples/serverless-workflow-qas-service-showcase/query-service/src/test/resources/application.properties +++ b/serverless-workflow-examples/serverless-workflow-qas-service-showcase/query-service/src/test/resources/application.properties @@ -17,4 +17,5 @@ # under the License. # -quarkus.kafka.devservices.image-name=${container.image.kafka} \ No newline at end of file +quarkus.kafka.devservices.image-name=${container.image.kafka} +quarkus.keycloak.devservices.enabled=false diff --git a/serverless-workflow-examples/serverless-workflow-saga-quarkus/pom.xml b/serverless-workflow-examples/serverless-workflow-saga-quarkus/pom.xml index 3af5322cd1..81983daa7d 100644 --- a/serverless-workflow-examples/serverless-workflow-saga-quarkus/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-saga-quarkus/pom.xml @@ -37,10 +37,10 @@ How to implement Saga with a Serverless Workflow - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/serverless-workflow-examples/serverless-workflow-saga-quarkus/src/test/resources/application.properties b/serverless-workflow-examples/serverless-workflow-saga-quarkus/src/test/resources/application.properties new file mode 100644 index 0000000000..fc9dae63e0 --- /dev/null +++ b/serverless-workflow-examples/serverless-workflow-saga-quarkus/src/test/resources/application.properties @@ -0,0 +1,21 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +# Quarkus +quarkus.devservices.enabled=false diff --git a/serverless-workflow-examples/serverless-workflow-service-calls-quarkus/pom.xml b/serverless-workflow-examples/serverless-workflow-service-calls-quarkus/pom.xml index 960adf08a6..2e96bd8f8f 100644 --- a/serverless-workflow-examples/serverless-workflow-service-calls-quarkus/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-service-calls-quarkus/pom.xml @@ -37,10 +37,10 @@ Kogito Example :: Serverless Workflow Service Calls :: Quarkus Kogito Serverless Workflow Example - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/serverless-workflow-examples/serverless-workflow-service-calls-quarkus/src/test/resources/application.properties b/serverless-workflow-examples/serverless-workflow-service-calls-quarkus/src/test/resources/application.properties index 0f6880fb66..10e4472a1d 100644 --- a/serverless-workflow-examples/serverless-workflow-service-calls-quarkus/src/test/resources/application.properties +++ b/serverless-workflow-examples/serverless-workflow-service-calls-quarkus/src/test/resources/application.properties @@ -19,3 +19,4 @@ # Quarkus quarkus.http.test-port=0 +quarkus.devservices.enabled=false diff --git a/serverless-workflow-examples/serverless-workflow-stock-profit/pom.xml b/serverless-workflow-examples/serverless-workflow-stock-profit/pom.xml index a99b15f7d7..f56f27c5ab 100644 --- a/serverless-workflow-examples/serverless-workflow-stock-profit/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-stock-profit/pom.xml @@ -42,10 +42,10 @@ fake-stock-service - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/serverless-workflow-examples/serverless-workflow-stock-profit/stock-profit/src/test/resources/application.properties b/serverless-workflow-examples/serverless-workflow-stock-profit/stock-profit/src/test/resources/application.properties new file mode 100644 index 0000000000..fc9dae63e0 --- /dev/null +++ b/serverless-workflow-examples/serverless-workflow-stock-profit/stock-profit/src/test/resources/application.properties @@ -0,0 +1,21 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +# Quarkus +quarkus.devservices.enabled=false diff --git a/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow-full/pom.xml b/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow-full/pom.xml index 91e773a774..7b3db114ec 100644 --- a/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow-full/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow-full/pom.xml @@ -30,10 +30,10 @@ conversion-workflow-full Kogito Example :: Serverless Workflow Temperature Conversion :: Conversion Full Service - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow-full/src/test/resources/application.properties b/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow-full/src/test/resources/application.properties new file mode 100644 index 0000000000..fc9dae63e0 --- /dev/null +++ b/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow-full/src/test/resources/application.properties @@ -0,0 +1,21 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +# Quarkus +quarkus.devservices.enabled=false diff --git a/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow-function/pom.xml b/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow-function/pom.xml index 4d3b520c92..4b05f5f6a8 100644 --- a/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow-function/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow-function/pom.xml @@ -30,10 +30,10 @@ conversion-workflow-function Kogito Example :: Serverless Workflow Temperature Conversion :: Conversion Function Service - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow-function/src/test/resources/application.properties b/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow-function/src/test/resources/application.properties new file mode 100644 index 0000000000..fc9dae63e0 --- /dev/null +++ b/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow-function/src/test/resources/application.properties @@ -0,0 +1,21 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +# Quarkus +quarkus.devservices.enabled=false diff --git a/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow-spec/pom.xml b/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow-spec/pom.xml index 9827d1df6c..48a4dad7c1 100644 --- a/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow-spec/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow-spec/pom.xml @@ -30,10 +30,10 @@ conversion-workflow-spec Kogito Example :: Serverless Workflow Temperature Conversion :: Conversion Spec Service - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow-spec/src/test/resources/application.properties b/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow-spec/src/test/resources/application.properties new file mode 100644 index 0000000000..fc9dae63e0 --- /dev/null +++ b/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow-spec/src/test/resources/application.properties @@ -0,0 +1,21 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +# Quarkus +quarkus.devservices.enabled=false diff --git a/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow/pom.xml b/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow/pom.xml index 263b08c075..aaff2ccb28 100644 --- a/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow/pom.xml @@ -30,10 +30,10 @@ conversion-workflow Kogito Example :: Serverless Workflow Temperature Conversion :: Conversion Service - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow/src/test/resources/application.properties b/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow/src/test/resources/application.properties new file mode 100644 index 0000000000..fc9dae63e0 --- /dev/null +++ b/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow/src/test/resources/application.properties @@ -0,0 +1,21 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +# Quarkus +quarkus.devservices.enabled=false diff --git a/serverless-workflow-examples/serverless-workflow-temperature-conversion/multiplication-service/pom.xml b/serverless-workflow-examples/serverless-workflow-temperature-conversion/multiplication-service/pom.xml index f1ab2765cd..e3a3801548 100644 --- a/serverless-workflow-examples/serverless-workflow-temperature-conversion/multiplication-service/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-temperature-conversion/multiplication-service/pom.xml @@ -30,10 +30,10 @@ multiplication-service Kogito Example :: Serverless Workflow Temperature Conversion :: Multiplication Service - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 3.13.0 17 3.3.1 diff --git a/serverless-workflow-examples/serverless-workflow-temperature-conversion/subtraction-service/pom.xml b/serverless-workflow-examples/serverless-workflow-temperature-conversion/subtraction-service/pom.xml index 3427445c92..609ef2decf 100644 --- a/serverless-workflow-examples/serverless-workflow-temperature-conversion/subtraction-service/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-temperature-conversion/subtraction-service/pom.xml @@ -30,10 +30,10 @@ subtraction-service Kogito Example :: Serverless Workflow Temperature Conversion :: Subtraction Service - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 3.13.0 17 3.3.1 diff --git a/serverless-workflow-examples/serverless-workflow-temperature-conversion/subtraction-service/src/test/resources/application.properties b/serverless-workflow-examples/serverless-workflow-temperature-conversion/subtraction-service/src/test/resources/application.properties new file mode 100644 index 0000000000..fc9dae63e0 --- /dev/null +++ b/serverless-workflow-examples/serverless-workflow-temperature-conversion/subtraction-service/src/test/resources/application.properties @@ -0,0 +1,21 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +# Quarkus +quarkus.devservices.enabled=false diff --git a/serverless-workflow-examples/serverless-workflow-testing-with-rest-assured/pom.xml b/serverless-workflow-examples/serverless-workflow-testing-with-rest-assured/pom.xml index ad5d070926..e44197fa1d 100644 --- a/serverless-workflow-examples/serverless-workflow-testing-with-rest-assured/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-testing-with-rest-assured/pom.xml @@ -38,10 +38,10 @@ Kogito Example :: Serverless Workflow Testing with REST Assured :: Quarkus Kogito Serverless Workflow Example - Quarkus - 3.20.3 + 3.27.2 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/serverless-workflow-examples/serverless-workflow-testing-with-rest-assured/src/test/resources/application.properties b/serverless-workflow-examples/serverless-workflow-testing-with-rest-assured/src/test/resources/application.properties new file mode 100644 index 0000000000..fc9dae63e0 --- /dev/null +++ b/serverless-workflow-examples/serverless-workflow-testing-with-rest-assured/src/test/resources/application.properties @@ -0,0 +1,21 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +# Quarkus +quarkus.devservices.enabled=false diff --git a/serverless-workflow-examples/serverless-workflow-timeouts-showcase-embedded/pom.xml b/serverless-workflow-examples/serverless-workflow-timeouts-showcase-embedded/pom.xml index a0b619f5f6..130299bde2 100644 --- a/serverless-workflow-examples/serverless-workflow-timeouts-showcase-embedded/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-timeouts-showcase-embedded/pom.xml @@ -40,7 +40,7 @@ UTF-8 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/serverless-workflow-examples/serverless-workflow-timeouts-showcase-extended/pom.xml b/serverless-workflow-examples/serverless-workflow-timeouts-showcase-extended/pom.xml index b1a4067e07..6045b02752 100644 --- a/serverless-workflow-examples/serverless-workflow-timeouts-showcase-extended/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-timeouts-showcase-extended/pom.xml @@ -40,7 +40,7 @@ UTF-8 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT diff --git a/serverless-workflow-examples/serverless-workflow-timeouts-showcase-operator-devprofile/pom.xml b/serverless-workflow-examples/serverless-workflow-timeouts-showcase-operator-devprofile/pom.xml index 8637e1475f..55bf991cc2 100644 --- a/serverless-workflow-examples/serverless-workflow-timeouts-showcase-operator-devprofile/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-timeouts-showcase-operator-devprofile/pom.xml @@ -40,7 +40,7 @@ UTF-8 quarkus-bom io.quarkus - 3.20.3 + 3.27.2 org.kie.kogito kogito-bom 999-SNAPSHOT