From d1b804a885b5d574f3d38e5c823eca66c4f834bb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Feb 2026 10:12:45 +0100 Subject: [PATCH 01/24] Bump nanoid (#2088) Bumps [nanoid](https://github.com/ai/nanoid) from 3.3.4 to 3.3.10. - [Release notes](https://github.com/ai/nanoid/releases) - [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md) - [Commits](https://github.com/ai/nanoid/compare/3.3.4...3.3.10) --- updated-dependencies: - dependency-name: nanoid dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../loanbroker-js/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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..b1681c4bda 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 @@ -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" From 401145aa8f223582730882c836e89b57a3283489 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Feb 2026 10:13:18 +0100 Subject: [PATCH 02/24] Bump braces (#2089) Bumps [braces](https://github.com/micromatch/braces) from 3.0.2 to 3.0.3. - [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md) - [Commits](https://github.com/micromatch/braces/compare/3.0.2...3.0.3) --- updated-dependencies: - dependency-name: braces dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../loanbroker-js/yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) 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 b1681c4bda..2c5689d5e0 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 @@ -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" From a3dbc05d6790e019015f658afc9636721bb0ccb2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Feb 2026 10:13:52 +0100 Subject: [PATCH 03/24] Bump json5 (#2087) Bumps [json5](https://github.com/json5/json5) from 1.0.1 to 1.0.2. - [Release notes](https://github.com/json5/json5/releases) - [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md) - [Commits](https://github.com/json5/json5/compare/v1.0.1...v1.0.2) --- updated-dependencies: - dependency-name: json5 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../loanbroker-js/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 2c5689d5e0..0db5450667 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 @@ -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" From 0043698b0c8a4163e613ffcfb3f81579402daa82 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Feb 2026 10:14:24 +0100 Subject: [PATCH 04/24] Bump socket.io-parser (#2090) Bumps [socket.io-parser](https://github.com/Automattic/socket.io-parser) from 4.2.1 to 4.2.4. - [Release notes](https://github.com/Automattic/socket.io-parser/releases) - [Changelog](https://github.com/socketio/socket.io-parser/blob/4.2.4/CHANGELOG.md) - [Commits](https://github.com/Automattic/socket.io-parser/compare/4.2.1...4.2.4) --- updated-dependencies: - dependency-name: socket.io-parser dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../loanbroker-js/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 0db5450667..9d28e7c99d 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 @@ -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" From 22dc53e75f0e3d96a0072ad73450d4a0266591d1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Feb 2026 10:16:26 +0100 Subject: [PATCH 05/24] Bump js-yaml (#2140) Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1. - [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1) --- updated-dependencies: - dependency-name: js-yaml dependency-version: 4.1.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../credit-bureau/package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) 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..a98057f007 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 @@ -1696,9 +1696,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" }, @@ -4413,9 +4413,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" } From e77561042646dbf3a99828b143be2ae76b9cc439 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Feb 2026 10:16:45 +0100 Subject: [PATCH 06/24] Bump actions/checkout from 3 to 6 (#2141) Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 6. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/issues.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/issues.yml b/.github/workflows/issues.yml index 12a88a29ff..3524d679eb 100644 --- a/.github/workflows/issues.yml +++ b/.github/workflows/issues.yml @@ -7,7 +7,7 @@ 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 env: From 1fc32e18e4c7660f056bff6d95d737a21ba436c3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Feb 2026 10:17:06 +0100 Subject: [PATCH 07/24] Bump zulip/github-actions-zulip (#2143) Bumps [zulip/github-actions-zulip](https://github.com/zulip/github-actions-zulip) from e71e15b429b0e79cc7b63e4e3dad0146443fab6f to d49c9ccdadd884e5b0caf7d4d3955d2bfe510273. - [Release notes](https://github.com/zulip/github-actions-zulip/releases) - [Changelog](https://github.com/zulip/github-actions-zulip/blob/main/CHANGELOG.md) - [Commits](https://github.com/zulip/github-actions-zulip/compare/e71e15b429b0e79cc7b63e4e3dad0146443fab6f...d49c9ccdadd884e5b0caf7d4d3955d2bfe510273) --- updated-dependencies: - dependency-name: zulip/github-actions-zulip dependency-version: d49c9ccdadd884e5b0caf7d4d3955d2bfe510273 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/issues.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/issues.yml b/.github/workflows/issues.yml index 3524d679eb..02e3f5d05f 100644 --- a/.github/workflows/issues.yml +++ b/.github/workflows/issues.yml @@ -9,7 +9,7 @@ jobs: steps: - 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: From 84c31373a15f70f5d1405b105eddee04e53e3185 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Feb 2026 10:17:36 +0100 Subject: [PATCH 08/24] Bump form-data (#2144) Bumps [form-data](https://github.com/form-data/form-data) from 2.5.1 to 2.5.5. - [Release notes](https://github.com/form-data/form-data/releases) - [Changelog](https://github.com/form-data/form-data/blob/master/CHANGELOG.md) - [Commits](https://github.com/form-data/form-data/compare/v2.5.1...v2.5.5) --- updated-dependencies: - dependency-name: form-data dependency-version: 2.5.5 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../banks/package-lock.json | 321 +++++++++++++++--- 1 file changed, 265 insertions(+), 56 deletions(-) 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..2f767f8c96 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", @@ -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": { @@ -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": { From 3ddc5628b2c71e20cf005b0ae88e66cbacfa2862 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Feb 2026 10:20:10 +0100 Subject: [PATCH 09/24] Bump js-yaml (#2145) Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1. - [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1) --- updated-dependencies: - dependency-name: js-yaml dependency-version: 4.1.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../banks/package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) 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 2f767f8c96..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 @@ -1361,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" }, @@ -3382,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" } From a53ad6f05679a113113b788d0c74025c066d3f67 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Feb 2026 10:20:30 +0100 Subject: [PATCH 10/24] Bump js-yaml (#2151) Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1. - [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1) --- updated-dependencies: - dependency-name: js-yaml dependency-version: 4.1.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../loanbroker-js/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 9d28e7c99d..0b88a2e783 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 @@ -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" From 67fb4d672e92b3b6facb2a39add24e68369993e2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Feb 2026 10:21:39 +0100 Subject: [PATCH 11/24] Bump form-data (#2150) Bumps [form-data](https://github.com/form-data/form-data) from 2.5.1 to 2.5.5. - [Release notes](https://github.com/form-data/form-data/releases) - [Changelog](https://github.com/form-data/form-data/blob/master/CHANGELOG.md) - [Commits](https://github.com/form-data/form-data/compare/v2.5.1...v2.5.5) --- updated-dependencies: - dependency-name: form-data dependency-version: 2.5.5 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../credit-bureau/package-lock.json | 321 +++++++++++++++--- 1 file changed, 265 insertions(+), 56 deletions(-) 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 a98057f007..dcff3a0634 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 @@ -427,6 +427,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/camelcase": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", @@ -793,6 +805,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 +868,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 +909,31 @@ "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==", + "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", @@ -1047,13 +1113,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" @@ -1097,23 +1166,48 @@ } }, "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/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 +1267,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", @@ -1234,9 +1339,9 @@ } }, "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 +1350,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,6 +1372,17 @@ "node": ">=8" } }, + "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", @@ -1826,6 +1942,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", @@ -1848,19 +1972,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" @@ -3464,6 +3588,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" + } + }, "camelcase": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", @@ -3739,6 +3872,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 +3926,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 +3960,25 @@ } } }, + "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", @@ -3962,13 +4134,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": { @@ -3996,18 +4171,34 @@ "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==" }, "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 +4242,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", @@ -4100,16 +4296,16 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "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,6 +4314,14 @@ "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", "dev": true }, + "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": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-1.2.0.tgz", @@ -4522,6 +4726,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", @@ -4535,16 +4744,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" } }, "mimic-response": { From 4ae748ecfa912056cb37a3cdd10ee18b2f011385 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Feb 2026 10:23:21 +0100 Subject: [PATCH 12/24] Bump axios (#2166) Bumps [axios](https://github.com/axios/axios) from 1.12.0 to 1.13.5. - [Release notes](https://github.com/axios/axios/releases) - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) - [Commits](https://github.com/axios/axios/compare/v1.12.0...v1.13.5) --- updated-dependencies: - dependency-name: axios dependency-version: 1.13.5 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../loanbroker-js/package.json | 2 +- .../loanbroker-js/yarn.lock | 28 +++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) 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 0b88a2e783..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: @@ -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" From bb5164a9553231725d8aa024018a81afbc080dc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Han=C3=A1k?= Date: Wed, 18 Feb 2026 12:26:33 +0100 Subject: [PATCH 13/24] NO_ISSUE: Fix outdated pull request template (#2176) --- .github/pull_request_template.md | 87 ++------------------------------ 1 file changed, 3 insertions(+), 84 deletions(-) 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. -
From bdb4721fa5b047845700876cdd1ad26902801ea2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Han=C3=A1k?= Date: Wed, 18 Feb 2026 12:27:00 +0100 Subject: [PATCH 14/24] NO_ISSUE: Update .asf.yaml for examples (#2175) --- .asf.yaml | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) 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 From 22bef10b960ae38ea034d5dc4d003df94e249f14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Mu=C3=B1oz?= Date: Wed, 18 Feb 2026 12:50:44 +0100 Subject: [PATCH 15/24] Delegate in kogito-bom for testcontainers version (#2173) --- .../src/test/resources/application.properties | 21 +++++++++++++++++++ .../src/test/resources/application.properties | 21 +++++++++++++++++++ .../pom.xml | 6 ++++++ .../src/test/resources/application.properties | 5 ++++- .../src/test/resources/application.properties | 21 +++++++++++++++++++ .../src/test/resources/application.properties | 21 +++++++++++++++++++ .../pom.xml | 6 ++++++ .../src/test/resources/application.properties | 3 ++- .../pom.xml | 6 ++++++ .../src/test/resources/application.properties | 3 ++- .../src/test/resources/application.properties | 21 +++++++++++++++++++ .../pom.xml | 6 ++++++ .../src/test/resources/application.properties | 21 +++++++++++++++++++ .../src/test/resources/application.properties | 21 +++++++++++++++++++ .../src/test/resources/application.properties | 21 +++++++++++++++++++ .../src/test/resources/application.properties | 3 ++- .../pom.xml | 3 ++- .../subscription-flow/pom.xml | 5 +++++ .../src/test/resources/application.properties | 21 +++++++++++++++++++ .../src/test/resources/application.properties | 21 +++++++++++++++++++ .../acme-financial-service/pom.xml | 6 ++++++ .../pom.xml | 10 +++------ .../src/test/resources/application.properties | 4 +++- .../src/test/resources/application.properties | 21 +++++++++++++++++++ .../pom.xml | 1 + .../query-answer-service/pom.xml | 5 +++++ .../src/test/resources/application.properties | 21 +++++++++++++++++++ .../query-service/pom.xml | 5 +++++ .../src/test/resources/application.properties | 3 ++- .../src/test/resources/application.properties | 21 +++++++++++++++++++ .../src/test/resources/application.properties | 1 + .../src/test/resources/application.properties | 21 +++++++++++++++++++ .../src/test/resources/application.properties | 21 +++++++++++++++++++ .../src/test/resources/application.properties | 21 +++++++++++++++++++ .../src/test/resources/application.properties | 21 +++++++++++++++++++ .../src/test/resources/application.properties | 21 +++++++++++++++++++ .../src/test/resources/application.properties | 21 +++++++++++++++++++ .../src/test/resources/application.properties | 21 +++++++++++++++++++ 38 files changed, 487 insertions(+), 14 deletions(-) create mode 100644 kogito-quarkus-examples/rules-quarkus-helloworld/src/test/resources/application.properties create mode 100644 serverless-workflow-examples/serverless-workflow-callback-events-over-http-quarkus/callback-workflow/src/test/resources/application.properties create mode 100644 serverless-workflow-examples/serverless-workflow-compensation-quarkus/src/test/resources/application.properties create mode 100644 serverless-workflow-examples/serverless-workflow-consuming-events-over-http-quarkus/src/test/resources/application.properties create mode 100644 serverless-workflow-examples/serverless-workflow-error-quarkus/src/test/resources/application.properties create mode 100644 serverless-workflow-examples/serverless-workflow-functions-events-quarkus/src/test/resources/application.properties create mode 100644 serverless-workflow-examples/serverless-workflow-greeting-quarkus/src/test/resources/application.properties create mode 100644 serverless-workflow-examples/serverless-workflow-hello-world/src/test/resources/application.properties create mode 100644 serverless-workflow-examples/serverless-workflow-newsletter-subscription/subscription-flow/src/test/resources/application.properties create mode 100644 serverless-workflow-examples/serverless-workflow-newsletter-subscription/subscription-service/src/test/resources/application.properties create mode 100644 serverless-workflow-examples/serverless-workflow-parallel-execution/src/test/resources/application.properties create mode 100644 serverless-workflow-examples/serverless-workflow-qas-service-showcase/query-answer-service/src/test/resources/application.properties create mode 100644 serverless-workflow-examples/serverless-workflow-saga-quarkus/src/test/resources/application.properties create mode 100644 serverless-workflow-examples/serverless-workflow-stock-profit/stock-profit/src/test/resources/application.properties create mode 100644 serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow-full/src/test/resources/application.properties create mode 100644 serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow-function/src/test/resources/application.properties create mode 100644 serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow-spec/src/test/resources/application.properties create mode 100644 serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow/src/test/resources/application.properties create mode 100644 serverless-workflow-examples/serverless-workflow-temperature-conversion/subtraction-service/src/test/resources/application.properties create mode 100644 serverless-workflow-examples/serverless-workflow-testing-with-rest-assured/src/test/resources/application.properties 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/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..119340cb88 100644 --- a/serverless-workflow-examples/serverless-workflow-callback-quarkus/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-callback-quarkus/pom.xml @@ -47,6 +47,7 @@ 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-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/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..9ce4ff6be2 100644 --- a/serverless-workflow-examples/serverless-workflow-correlation-quarkus-mongodb/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-correlation-quarkus-mongodb/pom.xml @@ -47,6 +47,7 @@ 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..b5934c5af4 100644 --- a/serverless-workflow-examples/serverless-workflow-correlation-quarkus/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-correlation-quarkus/pom.xml @@ -47,6 +47,7 @@ 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-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..021ac112d3 100644 --- a/serverless-workflow-examples/serverless-workflow-events-quarkus/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-events-quarkus/pom.xml @@ -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-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-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-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/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-newsletter-subscription/pom.xml b/serverless-workflow-examples/serverless-workflow-newsletter-subscription/pom.xml index 88ef470e36..3b442fb63a 100644 --- a/serverless-workflow-examples/serverless-workflow-newsletter-subscription/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-newsletter-subscription/pom.xml @@ -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..d828b9c492 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 @@ -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-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-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/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-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..b33b9c76b6 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 @@ -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..1309de80d6 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 @@ -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/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/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/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/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/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/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/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/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/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 From 18ab7645e58e543f192c1b4d6f10938cdfc5f5fe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Feb 2026 13:54:53 +0100 Subject: [PATCH 16/24] Bump qs (#2168) Bumps [qs](https://github.com/ljharb/qs) from 6.10.1 to 6.14.2. - [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md) - [Commits](https://github.com/ljharb/qs/compare/v6.10.1...v6.14.2) --- updated-dependencies: - dependency-name: qs dependency-version: 6.14.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../credit-bureau/package-lock.json | 168 +++++++++++++++--- 1 file changed, 142 insertions(+), 26 deletions(-) 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 dcff3a0634..278cb5b1b7 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 @@ -439,6 +439,21 @@ "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", @@ -2136,9 +2151,12 @@ } }, "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" } @@ -2391,11 +2409,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" @@ -2650,13 +2668,68 @@ "integrity": "sha512-edRH8mBKEWNVIVMKejNnuJxleqYE/ZSdcT8/Nem9/mmosx12pctd80s2Oy00KNZzrogMZS5mauK2/ymL1bvlvg==" }, "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" @@ -3597,6 +3670,15 @@ "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", @@ -4863,9 +4945,9 @@ "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", @@ -5054,11 +5136,11 @@ } }, "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": { @@ -5240,13 +5322,47 @@ "integrity": "sha512-edRH8mBKEWNVIVMKejNnuJxleqYE/ZSdcT8/Nem9/mmosx12pctd80s2Oy00KNZzrogMZS5mauK2/ymL1bvlvg==" }, "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": { From 9f99e297cd6305f18ab76f53f2fcc91c9dba5a4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Mu=C3=B1oz?= Date: Wed, 18 Feb 2026 15:37:26 +0100 Subject: [PATCH 17/24] Fix OpenTelemetry tests by setting otel.metrics.exporter to none (#2171) --- .../src/main/resources/application.properties | 1 + 1 file changed, 1 insertion(+) 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 From 7d0239e0d19ab4b62bfcb91d92e186f1a19daf63 Mon Sep 17 00:00:00 2001 From: Gabriele Cardosi Date: Thu, 19 Feb 2026 14:58:59 +0100 Subject: [PATCH 18/24] [incubator-kie-issues#1839] Implement GRADLE examples - Springboot (#2163) * Removing unnecessary phases from model generation executions * [incubator-kie-issues#1918] Working gradle-springboot-examples * [incubator-kie-issues#1918] Working gradle-quarkus-examples * [incubator-kie-issues#1918] Working gradle-quarkus-examples tests * [incubator-kie-issues#1918] Fixing docs for springboot-gradle example * [incubator-kie-issues#1918] Fixing docs; test/build for quarkus still not working * [incubator-kie-issues#1918] Fixed test/build for quarkus inside drools/incubator-kie-issues#1918 * [incubator-kie-issues#1839] MInor fixes * [incubator-kie-issues#1839] Introducing profiles * [incubator-kie-issues#1839] Remove unused plugin resolution for quarkus gradle project * [incubator-kie-issues#1839] Include gradle examples in CI build * [incubator-kie-issues#1839] Include snapshots repository. Verified locally with twin PR on drools repository. * [incubator-kie-issues#1839] Disable dev services from quarkus gradle example * [incubator-kie-issues#1839] Removed quarkus examples --------- Co-authored-by: Yeser Amer Co-authored-by: Gabriele-Cardosi --- .ci/jenkins/dsl/jobs.groovy | 7 + .github/workflows/pr-kogito-examples.yml | 5 +- gradle-examples/README.md | 122 ++++ .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43705 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + gradle-examples/gradlew | 251 ++++++++ gradle-examples/gradlew.bat | 94 +++ .../kogito-springboot-gradle-examples/pom.xml | 22 + .../README.md | 378 +++++++++++++ .../build.gradle | 92 +++ .../gradle.properties | 6 + .../pom.xml | 93 +++ .../settings.gradle | 40 ++ .../org/kie/kogito/traffic/DriverService.java | 46 ++ .../java/org/kie/kogito/traffic/Fine.java | 47 ++ .../kie/kogito/traffic/KogitoApplication.java | 31 + .../org/kie/kogito/traffic/Violation.java | 93 +++ .../LicenseValidatedService.java | 50 ++ .../traffic/licensevalidated/Validated.java | 56 ++ .../traffic/licensevalidation/Driver.java | 131 +++++ .../LicenseValidationService.java | 50 ++ .../resources/LicenseValidatedService.drl | 32 ++ .../resources/LicenseValidationService.drl | 39 ++ .../src/main/resources/TrafficViolation.dmn | 307 ++++++++++ .../src/main/resources/application.properties | 23 + .../src/main/resources/traffic-rules-dmn.bpmn | 534 ++++++++++++++++++ .../kie/kogito/traffic/TrafficProcessIT.java | 82 +++ .../kogito/traffic/TrafficValidationIT.java | 83 +++ .../kogito/traffic/TrafficViolationIT.java | 68 +++ gradle-examples/pom.xml | 20 + pom.xml | 1 + 31 files changed, 2809 insertions(+), 1 deletion(-) create mode 100644 gradle-examples/README.md create mode 100644 gradle-examples/gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle-examples/gradle/wrapper/gradle-wrapper.properties create mode 100755 gradle-examples/gradlew create mode 100644 gradle-examples/gradlew.bat create mode 100644 gradle-examples/kogito-springboot-gradle-examples/pom.xml create mode 100644 gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/README.md create mode 100644 gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/build.gradle create mode 100644 gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/gradle.properties create mode 100644 gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/pom.xml create mode 100644 gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/settings.gradle create mode 100644 gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/DriverService.java create mode 100644 gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/Fine.java create mode 100644 gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/KogitoApplication.java create mode 100644 gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/Violation.java create mode 100644 gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/licensevalidated/LicenseValidatedService.java create mode 100644 gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/licensevalidated/Validated.java create mode 100644 gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/licensevalidation/Driver.java create mode 100644 gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/java/org/kie/kogito/traffic/licensevalidation/LicenseValidationService.java create mode 100644 gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/resources/LicenseValidatedService.drl create mode 100644 gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/resources/LicenseValidationService.drl create mode 100644 gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/resources/TrafficViolation.dmn create mode 100644 gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/resources/application.properties create mode 100644 gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/main/resources/traffic-rules-dmn.bpmn create mode 100644 gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/test/java/org/kie/kogito/traffic/TrafficProcessIT.java create mode 100644 gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/test/java/org/kie/kogito/traffic/TrafficValidationIT.java create mode 100644 gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/src/test/java/org/kie/kogito/traffic/TrafficViolationIT.java create mode 100644 gradle-examples/pom.xml 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/workflows/pr-kogito-examples.yml b/.github/workflows/pr-kogito-examples.yml index 72754997f7..97f7d11df7 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-java-examples, kogito-quarkus-examples, kogito-springboot-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,6 +37,9 @@ 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 }}) diff --git a/gradle-examples/README.md b/gradle-examples/README.md new file mode 100644 index 0000000000..e4edfab9d1 --- /dev/null +++ b/gradle-examples/README.md @@ -0,0 +1,122 @@ + + +# Kogito Gradle Plugin Examples + +This modules contains 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 0000000000000000000000000000000000000000..9bbc975c742b298b441bfb90dbc124400a3751b9 GIT binary patch literal 43705 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 DHx0+F literal 0 HcmV?d00001 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-springboot-gradle-examples/pom.xml b/gradle-examples/kogito-springboot-gradle-examples/pom.xml new file mode 100644 index 0000000000..5fc9272751 --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/pom.xml @@ -0,0 +1,22 @@ + + + 4.0.0 + + org.kie.kogito.examples + gradle-examples + 999-SNAPSHOT + + pom + + kogito-springboot-gradle-examples + + Springboot Gradle Examples + Kogito Springboot Examples built with Gradle + + 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/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..6196691222 --- /dev/null +++ b/gradle-examples/kogito-springboot-gradle-examples/process-decisions-rules-springboot-gradle/gradle.properties @@ -0,0 +1,6 @@ +#Gradle properties +springBootVersion=3.4.11 +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..7955e48570 --- /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 :: Process :: Decisions :: Rules :: Spring Boot :: Gradle + 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..f0b020447d --- /dev/null +++ b/gradle-examples/pom.xml @@ -0,0 +1,20 @@ + + + 4.0.0 + + org.kie.kogito.examples + kogito-examples + 999-SNAPSHOT + + gradle-examples + pom + + Gradle Examples + Kogito Examples built with Gradle + + kogito-springboot-gradle-examples + + + \ No newline at end of file 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 From c233c45f3274aea5d257e3c55a08df11f93bb84b Mon Sep 17 00:00:00 2001 From: Jijo Thomas K <34750480+jeejz@users.noreply.github.com> Date: Fri, 20 Feb 2026 03:41:23 +0530 Subject: [PATCH 19/24] [incubator-kie-issues-2204] Quarkus upgrade 3.27.2 and Spring Boot to 3.5.10 (#2162) * Upgrade Quarkus to 3.27.2 Upgrade Quarkus platform and plugin from version 3.20.3 to 3.27.2 across all Kogito and Serverless Workflow examples. Additionally, upgrade Apache Camel Quarkus from 3.20.2 to 3.27.2 in the loanbroker-showcase module. Remove deprecated -AlegacyConfigRoot=true compiler arguments from serverless-workflow-custom-rpc and serverless-workflow-custom-rpc-deployment modules, as this flag is no longer supported in Quarkus 3.27.2. * changes for fixing native tests * removed the dependencies for persistence * Jenkins run native * temp fix for triggering ci pipeline with native * set the native container mode as true in native build * worked on review comments - removed the unwanted comments. and readme update GraalVM version to 21.0.2 * comments removed * update readme for graalvm 21.0.2 --------- Co-authored-by: Nithin R Krishnan * removed the workflow added to run native test in github ci --------- Co-authored-by: jijo.thomas.k Co-authored-by: Nithin R Krishnan Co-authored-by: Nithin R Krishnan --- .../decisiontable-quarkus-example/README.md | 2 +- .../decisiontable-quarkus-example/pom.xml | 4 +- .../dmn-15-quarkus-example/pom.xml | 4 +- .../dmn-drools-quarkus-metrics/pom.xml | 4 +- .../dmn-event-driven-quarkus/pom.xml | 4 +- .../dmn-incubation-api-quarkus/pom.xml | 4 +- .../dmn-knative-quickstart-quarkus/pom.xml | 4 +- .../dmn-listener-dtable/pom.xml | 4 +- .../dmn-listener-quarkus/pom.xml | 4 +- .../pom.xml | 4 +- .../dmn-pmml-quarkus-example/pom.xml | 4 +- .../dmn-quarkus-example/pom.xml | 4 +- .../dmn-quarkus-consumer-example/pom.xml | 4 +- .../example/NativeTrafficViolationIT.java | 2 +- .../example/TrafficViolationTest.java | 26 +--------- .../example/TrafficViolationTestBase.java | 50 +++++++++++++++++++ .../dmn-resource-jar-quarkus-example/pom.xml | 4 +- .../dmn-tracing-quarkus/pom.xml | 4 +- .../flexible-process-quarkus/pom.xml | 4 +- .../kogito-travel-agency/basic/pom.xml | 4 +- .../kogito-travel-agency/extended/pom.xml | 4 +- .../extended/travels/pom.xml | 4 +- .../extended/visas/pom.xml | 4 +- .../kogito-travel-agency/pom.xml | 4 +- .../onboarding-example/payroll/pom.xml | 4 +- .../onboarding-example/pom.xml | 4 +- .../pmml-event-driven-quarkus/pom.xml | 4 +- .../pmml-incubation-api-quarkus/pom.xml | 4 +- .../pmml-quarkus-example/pom.xml | 4 +- .../pom.xml | 4 +- .../process-business-rules-quarkus/pom.xml | 4 +- .../process-decisions-quarkus/pom.xml | 4 +- .../process-decisions-rest-quarkus/pom.xml | 4 +- .../process-decisions-rules-quarkus/pom.xml | 4 +- .../process-error-handling/pom.xml | 4 +- .../process-incubation-api-quarkus/pom.xml | 4 +- .../pom.xml | 4 +- .../pom.xml | 4 +- .../process-kafka-avro-multi-quarkus/pom.xml | 4 +- .../process-kafka-multi-quarkus/pom.xml | 4 +- .../process-kafka-persistence-quarkus/pom.xml | 4 +- .../process-kafka-quickstart-quarkus/pom.xml | 4 +- .../pom.xml | 4 +- .../pom.xml | 4 +- .../process-monitoring-quarkus/pom.xml | 4 +- .../process-outbox-mongodb-quarkus/pom.xml | 4 +- .../process-performance-client/pom.xml | 4 +- .../process-performance-quarkus/pom.xml | 4 +- .../pom.xml | 4 +- .../process-quarkus-example/pom.xml | 4 +- .../process-rest-service-call-quarkus/pom.xml | 4 +- .../pom.xml | 4 +- .../process-rest-workitem-quarkus/pom.xml | 4 +- .../process-saga-quarkus/pom.xml | 4 +- .../process-scripts-quarkus/pom.xml | 4 +- .../process-service-calls-quarkus/pom.xml | 4 +- .../process-timer-quarkus/pom.xml | 4 +- .../pom.xml | 4 +- .../process-usertasks-quarkus/pom.xml | 4 +- .../process-usertasks-timer-quarkus/pom.xml | 4 +- .../pom.xml | 4 +- .../pom.xml | 4 +- .../pom.xml | 4 +- .../rules-incubation-api-quarkus/pom.xml | 4 +- .../rules-legacy-quarkus-example/README.md | 2 +- .../rules-legacy-quarkus-example/pom.xml | 4 +- .../README.md | 2 +- .../pom.xml | 4 +- .../rules-quarkus-helloworld/pom.xml | 4 +- .../ruleunit-event-driven-quarkus/pom.xml | 4 +- .../ruleunit-quarkus-example/pom.xml | 5 +- .../pom.xml | 4 +- .../pom.xml | 4 +- .../callback-event-service/pom.xml | 4 +- .../callback-workflow/pom.xml | 4 +- .../pom.xml | 4 +- .../serverless-workflow-camel-routes/pom.xml | 6 +-- .../pom.xml | 4 +- .../pom.xml | 4 +- .../pom.xml | 4 +- .../pom.xml | 4 +- .../custom-function-knative-service/pom.xml | 4 +- .../workflow/pom.xml | 4 +- .../serverless-workflow-custom-type/pom.xml | 4 +- .../pom.xml | 3 -- .../serverless-workflow-custom-rpc/pom.xml | 3 -- .../pom.xml | 4 +- .../pom.xml | 4 +- .../serverless-workflow-dmn-quarkus/pom.xml | 4 +- .../serverless-workflow-error-quarkus/pom.xml | 4 +- .../pom.xml | 4 +- .../pom.xml | 4 +- .../pom.xml | 2 +- .../pom.xml | 4 +- .../pom.xml | 4 +- .../pom.xml | 4 +- .../sw-funqy-services/pom.xml | 4 +- .../sw-funqy-workflow/pom.xml | 4 +- .../pom.xml | 4 +- .../pom.xml | 4 +- .../serverless-workflow-hello-world/pom.xml | 4 +- .../pom.xml | 6 +-- .../pom.xml | 4 +- .../acme-financial-service/pom.xml | 4 +- .../currency-exchange-workflow/pom.xml | 4 +- .../pom.xml | 4 +- .../pom.xml | 4 +- .../pom.xml | 4 +- .../query-answer-service/pom.xml | 4 +- .../query-service/pom.xml | 4 +- .../serverless-workflow-saga-quarkus/pom.xml | 4 +- .../pom.xml | 4 +- .../serverless-workflow-stock-profit/pom.xml | 4 +- .../conversion-workflow-full/pom.xml | 4 +- .../conversion-workflow-function/pom.xml | 4 +- .../conversion-workflow-spec/pom.xml | 4 +- .../conversion-workflow/pom.xml | 4 +- .../multiplication-service/pom.xml | 4 +- .../subtraction-service/pom.xml | 4 +- .../pom.xml | 4 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- 123 files changed, 284 insertions(+), 263 deletions(-) create mode 100644 kogito-quarkus-examples/dmn-resource-jar-quarkus-example/dmn-quarkus-consumer-example/src/test/java/org/kie/kogito/dmn/consumer/example/TrafficViolationTestBase.java 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/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/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-quarkus/pom.xml b/serverless-workflow-examples/serverless-workflow-callback-quarkus/pom.xml index 119340cb88..8431ac077a 100644 --- a/serverless-workflow-examples/serverless-workflow-callback-quarkus/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-callback-quarkus/pom.xml @@ -37,10 +37,10 @@ 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 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-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-correlation-quarkus-mongodb/pom.xml b/serverless-workflow-examples/serverless-workflow-correlation-quarkus-mongodb/pom.xml index 9ce4ff6be2..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,10 +37,10 @@ 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 diff --git a/serverless-workflow-examples/serverless-workflow-correlation-quarkus/pom.xml b/serverless-workflow-examples/serverless-workflow-correlation-quarkus/pom.xml index b5934c5af4..a4afd0cc96 100644 --- a/serverless-workflow-examples/serverless-workflow-correlation-quarkus/pom.xml +++ b/serverless-workflow-examples/serverless-workflow-correlation-quarkus/pom.xml @@ -37,10 +37,10 @@ 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 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-events-quarkus/pom.xml b/serverless-workflow-examples/serverless-workflow-events-quarkus/pom.xml index 021ac112d3..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 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-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-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-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 3b442fb63a..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 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 d828b9c492..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 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-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-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-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/query-answer-service/pom.xml b/serverless-workflow-examples/serverless-workflow-qas-service-showcase/query-answer-service/pom.xml index b33b9c76b6..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 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 1309de80d6..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 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-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-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-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-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-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/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/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-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-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 From acdcec96d8a1e6a459f4067f36b6f0dd24ba1875 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Feb 2026 08:24:15 +0100 Subject: [PATCH 20/24] Bump ajv and faas-js-runtime (#2178) Bumps [ajv](https://github.com/ajv-validator/ajv) to 8.18.0 and updates ancestor dependency [faas-js-runtime](https://github.com/nodeshift/faas-js-runtime). These dependencies need to be updated together. Updates `ajv` from 6.12.6 to 8.18.0 - [Release notes](https://github.com/ajv-validator/ajv/releases) - [Commits](https://github.com/ajv-validator/ajv/compare/v6.12.6...v8.18.0) Updates `faas-js-runtime` from 0.9.0 to 0.9.7 - [Release notes](https://github.com/nodeshift/faas-js-runtime/releases) - [Changelog](https://github.com/nodeshift/faas-js-runtime/blob/main/CHANGELOG.md) - [Commits](https://github.com/nodeshift/faas-js-runtime/compare/v0.9.0...v0.9.7) --- updated-dependencies: - dependency-name: ajv dependency-version: 8.18.0 dependency-type: indirect - dependency-name: faas-js-runtime dependency-version: 0.9.7 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../credit-bureau/package-lock.json | 1741 +++++++---------- .../credit-bureau/package.json | 2 +- 2 files changed, 719 insertions(+), 1024 deletions(-) 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 278cb5b1b7..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": "^6.12.6" + "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": { + "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", @@ -470,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" @@ -526,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", @@ -559,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" }, @@ -582,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" }, @@ -613,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": { @@ -650,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" } @@ -669,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", @@ -688,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", @@ -757,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", @@ -792,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" } @@ -939,6 +852,7 @@ "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", @@ -981,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", @@ -1010,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" } @@ -1095,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", @@ -1131,6 +1073,7 @@ "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.8", @@ -1188,6 +1131,14 @@ "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.3.0", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", @@ -1332,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", @@ -1349,6 +1295,7 @@ "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" } @@ -1398,52 +1345,12 @@ "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", - "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==", - "dependencies": { - "hdr-histogram-js": "^1.0.0" - } - }, "node_modules/http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", "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", @@ -1603,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" @@ -1724,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" @@ -1843,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", @@ -1870,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" } @@ -1917,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", @@ -1952,11 +1833,6 @@ "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", @@ -1990,6 +1866,7 @@ "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" } @@ -1998,6 +1875,7 @@ "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.52.0" }, @@ -2029,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", @@ -2142,14 +2022,6 @@ "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.13.4", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", @@ -2202,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": { @@ -2220,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" } }, @@ -2261,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", @@ -2294,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", @@ -2324,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" }, @@ -2388,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", @@ -2422,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", @@ -2479,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", @@ -2519,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", @@ -2564,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", @@ -2609,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" }, @@ -2657,15 +2529,10 @@ "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.1.0", @@ -2742,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": { @@ -2808,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", @@ -2905,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" }, @@ -2941,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": { @@ -2954,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", @@ -2991,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", @@ -3084,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", @@ -3105,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" } }, @@ -3131,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", @@ -3337,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", @@ -3380,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": { @@ -3433,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" } @@ -3456,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", @@ -3469,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": { @@ -3535,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", @@ -3547,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", @@ -3689,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" @@ -3722,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", @@ -3747,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" } @@ -3767,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", @@ -3820,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", @@ -3836,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", @@ -3852,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", @@ -3906,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", @@ -3934,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", @@ -4054,6 +3835,7 @@ "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", @@ -4084,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", @@ -4110,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" } @@ -4186,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", @@ -4219,6 +4006,7 @@ "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.8", @@ -4257,6 +4045,11 @@ "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.3.0", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", @@ -4362,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", @@ -4375,7 +4163,8 @@ "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.1.0", @@ -4404,50 +4193,12 @@ "function-bind": "^1.1.2" } }, - "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==", - "requires": { - "hdr-histogram-js": "^1.0.0" - } - }, "http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", "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", @@ -4556,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": { @@ -4629,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": { @@ -4712,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", @@ -4736,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" } @@ -4778,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", @@ -4803,11 +4536,6 @@ } } }, - "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", @@ -4828,12 +4556,14 @@ "mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true }, "mime-types": { "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, "requires": { "mime-db": "1.52.0" } @@ -4856,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", @@ -4939,11 +4671,6 @@ "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.13.4", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", @@ -4975,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", @@ -4990,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" } }, @@ -5024,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", @@ -5048,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", @@ -5072,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" } @@ -5121,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", @@ -5143,11 +4873,6 @@ "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", @@ -5182,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", @@ -5210,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", @@ -5249,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", @@ -5311,15 +5044,10 @@ } } }, - "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.1.0", @@ -5372,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", @@ -5423,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", @@ -5510,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" } @@ -5540,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": { @@ -5553,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", @@ -5578,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", @@ -5650,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", @@ -5668,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" } }, @@ -5691,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", @@ -5850,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", From ca10e571bb00079808625c2d313c9a8f62a2657c Mon Sep 17 00:00:00 2001 From: Gabriele Cardosi Date: Fri, 20 Feb 2026 14:30:25 +0100 Subject: [PATCH 21/24] [incubator-kie-issues#2257] Implement GRADLE examples - Quarkus (#2177) * Removing unnecessary phases from model generation executions * [incubator-kie-issues#1918] Working gradle-springboot-examples * [incubator-kie-issues#1918] Working gradle-quarkus-examples * [incubator-kie-issues#1918] Working gradle-quarkus-examples tests * [incubator-kie-issues#1918] Fixing docs for springboot-gradle example * [incubator-kie-issues#1918] Fixing docs; test/build for quarkus still not working * [incubator-kie-issues#1918] Fixed test/build for quarkus inside drools/incubator-kie-issues#1918 * [incubator-kie-issues#1839] MInor fixes * [incubator-kie-issues#1839] Introducing profiles * [incubator-kie-issues#1839] Remove unused plugin resolution for quarkus gradle project * [incubator-kie-issues#1839] Include gradle examples in CI build * [incubator-kie-issues#1839] Include snapshots repository. Verified locally with twin PR on drools repository. * [incubator-kie-issues#1839] Disable dev services from quarkus gradle example --------- Co-authored-by: Yeser Amer Co-authored-by: Gabriele-Cardosi --- gradle-examples/README.md | 2 +- .../kogito-quarkus-gradle-examples/pom.xml | 22 + .../README.md | 343 +++++++++++ .../build.gradle | 77 +++ .../gradle.properties | 10 + .../pom.xml | 92 +++ .../profile-dev.gradle | 22 + .../profile-prod.gradle | 22 + .../settings.gradle | 17 + .../traffic/NativeTrafficProcessIT.java | 25 + .../org/kie/kogito/traffic/DriverService.java | 46 ++ .../java/org/kie/kogito/traffic/Fine.java | 46 ++ .../org/kie/kogito/traffic/Violation.java | 92 +++ .../LicenseValidatedService.java | 49 ++ .../traffic/licensevalidated/Validated.java | 55 ++ .../traffic/licensevalidation/Driver.java | 131 +++++ .../LicenseValidationService.java | 49 ++ .../resources/LicenseValidatedService.drl | 32 ++ .../resources/LicenseValidationService.drl | 39 ++ .../src/main/resources/TrafficViolation.dmn | 288 ++++++++++ .../src/main/resources/application.properties | 27 + .../src/main/resources/traffic-rules-dmn.bpmn | 534 ++++++++++++++++++ .../kogito/traffic/TrafficProcessTest.java | 72 +++ gradle-examples/pom.xml | 1 + 24 files changed, 2092 insertions(+), 1 deletion(-) create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/pom.xml create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/README.md create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/build.gradle create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/gradle.properties create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/pom.xml create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/profile-dev.gradle create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/profile-prod.gradle create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/settings.gradle create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/integrationTest/java/org/kie/kogito/traffic/NativeTrafficProcessIT.java create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/java/org/kie/kogito/traffic/DriverService.java create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/java/org/kie/kogito/traffic/Fine.java create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/java/org/kie/kogito/traffic/Violation.java create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/java/org/kie/kogito/traffic/licensevalidated/LicenseValidatedService.java create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/java/org/kie/kogito/traffic/licensevalidated/Validated.java create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/java/org/kie/kogito/traffic/licensevalidation/Driver.java create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/java/org/kie/kogito/traffic/licensevalidation/LicenseValidationService.java create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/resources/LicenseValidatedService.drl create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/resources/LicenseValidationService.drl create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/resources/TrafficViolation.dmn create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/resources/application.properties create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/main/resources/traffic-rules-dmn.bpmn create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/src/test/java/org/kie/kogito/traffic/TrafficProcessTest.java diff --git a/gradle-examples/README.md b/gradle-examples/README.md index e4edfab9d1..e0c8e94400 100644 --- a/gradle-examples/README.md +++ b/gradle-examples/README.md @@ -19,7 +19,7 @@ # Kogito Gradle Plugin Examples -This modules contains springboot kogito examples built with gradle. +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. 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..a5a0d29d77 --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/pom.xml @@ -0,0 +1,22 @@ + + + 4.0.0 + + org.kie.kogito.examples + gradle-examples + 999-SNAPSHOT + + pom + + + kogito-quarkus-gradle-examples + + Quarkus Gradle Examples + Kogito Quarkus Examples built with Gradle + + 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/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..3e4089e938 --- /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 :: Process :: Decisions :: Rules :: Quarkus :: Gradle + 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..f73c78f793 --- /dev/null +++ b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/settings.gradle @@ -0,0 +1,17 @@ +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/pom.xml b/gradle-examples/pom.xml index f0b020447d..eeae234042 100644 --- a/gradle-examples/pom.xml +++ b/gradle-examples/pom.xml @@ -15,6 +15,7 @@ Kogito Examples built with Gradle kogito-springboot-gradle-examples + kogito-quarkus-gradle-examples \ No newline at end of file From a08be60903ffeee83001d593b8734c67038a5543 Mon Sep 17 00:00:00 2001 From: Gabriele Cardosi Date: Mon, 23 Feb 2026 15:48:21 +0100 Subject: [PATCH 22/24] [incubator-kie-issues#2259] Dumping dependency trees to different file (#2179) * [no_issue_dependency_trees] Dumping dependency trees to different file * [no_issue_dependency_trees] Fix usage of variable in dependency tree name * [no_issue_dependency_trees] Fix artifact name * [no_issue_dependency_trees] Apply PR suggestion --------- Co-authored-by: Gabriele-Cardosi --- .github/workflows/pr-kogito-examples.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/pr-kogito-examples.yml b/.github/workflows/pr-kogito-examples.yml index 97f7d11df7..7694897c81 100644 --- a/.github/workflows/pr-kogito-examples.yml +++ b/.github/workflows/pr-kogito-examples.yml @@ -43,6 +43,8 @@ jobs: 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: apache/incubator-kie-kogito-pipelines/.ci/actions/ubuntu-disk-space@main @@ -69,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 From 2e83928b2ea0586164fe4da7ccd07d35bea3385c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Mu=C3=B1oz?= Date: Mon, 23 Feb 2026 22:54:27 +0100 Subject: [PATCH 23/24] Fix OpenTelemetry tests in CI by setting metrics exporter to none (#2180) --- .../examples/sw/opentelemetry/jaeger/JaegerTestResource.java | 3 +++ 1 file changed, 3 insertions(+) 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); From 26d1bfefe76b8a517e3506910a09fe4fae412eb5 Mon Sep 17 00:00:00 2001 From: Gabriele Cardosi Date: Tue, 3 Mar 2026 14:46:40 +0100 Subject: [PATCH 24/24] [incubator-kie-issues#2262] Create dmn +scesim + gradle example (#2183) * [incubator-kie-issues#2262] Create dmn +scesim + gradle example * [incubator-kie-issues#2262] Create dmn +scesim + gradle example * [incubator-kie-issues#2262] Updated springboot version for gradle examples --------- Co-authored-by: Gabriele-Cardosi --- .../dmn-quarkus-gradle/README.md | 264 ++++++ .../dmn-quarkus-gradle/build.gradle | 71 ++ .../dmn-quarkus-gradle/gradle.properties | 10 + .../dmn-quarkus-gradle/pom.xml | 93 +++ .../dmn-quarkus-gradle/settings.gradle | 37 + .../example/NativeTrafficViolationIT.java | 27 + .../example/CustomDoCompileFEELProfile.java | 25 + .../AllowedValuesChecksInsideCollection.dmn | 77 ++ .../src/main/resources/Traffic Violation.dmn | 230 ++++++ .../src/main/resources/application.properties | 24 + .../quarkus/example/AllowedValuesTest.java | 71 ++ .../quarkus/example/TrafficViolationTest.java | 52 ++ .../TestScenarioJunitActivatorTest.java | 31 + .../resources/TrafficViolationTest.scesim | 766 ++++++++++++++++++ .../src/test/resources/application.properties | 21 + .../kogito-quarkus-gradle-examples/pom.xml | 3 +- .../pom.xml | 2 +- .../settings.gradle | 20 + .../dmn-springboot-gradle/README.md | 264 ++++++ .../dmn-springboot-gradle/build.gradle | 92 +++ .../dmn-springboot-gradle/gradle.properties | 6 + .../dmn-springboot-gradle/pom.xml | 93 +++ .../dmn-springboot-gradle/settings.gradle | 40 + .../example/CustomDoCompileFEELProfile.java | 25 + .../example/KogitoSpringbootApplication.java | 30 + .../AllowedValuesChecksInsideCollection.dmn | 77 ++ .../src/main/resources/Traffic Violation.dmn | 230 ++++++ .../src/main/resources/application.properties | 24 + .../src/main/resources/logback.xml | 34 + .../springboot/example/AllowedValuesTest.java | 84 ++ .../example/TrafficViolationTest.java | 65 ++ .../TestScenarioJunitActivatorTest.java | 31 + .../resources/TrafficViolationTest.scesim | 766 ++++++++++++++++++ .../kogito-springboot-gradle-examples/pom.xml | 3 +- .../gradle.properties | 2 +- .../pom.xml | 2 +- gradle-examples/pom.xml | 2 +- 37 files changed, 3688 insertions(+), 6 deletions(-) create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/README.md create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/build.gradle create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/gradle.properties create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/pom.xml create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/settings.gradle create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/integrationTest/java/org/kie/kogito/dmn/quarkus/example/NativeTrafficViolationIT.java create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/main/java/org/kie/kogito/dmn/quarkus/example/CustomDoCompileFEELProfile.java create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/main/resources/AllowedValuesChecksInsideCollection.dmn create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/main/resources/Traffic Violation.dmn create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/main/resources/application.properties create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/test/java/org/kie/kogito/dmn/quarkus/example/AllowedValuesTest.java create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/test/java/org/kie/kogito/dmn/quarkus/example/TrafficViolationTest.java create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/test/java/testscenario/TestScenarioJunitActivatorTest.java create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/test/resources/TrafficViolationTest.scesim create mode 100644 gradle-examples/kogito-quarkus-gradle-examples/dmn-quarkus-gradle/src/test/resources/application.properties create mode 100644 gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/README.md create mode 100644 gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/build.gradle create mode 100644 gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/gradle.properties create mode 100644 gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/pom.xml create mode 100644 gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/settings.gradle create mode 100644 gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/main/java/org/kie/kogito/dmn/springboot/example/CustomDoCompileFEELProfile.java create mode 100644 gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/main/java/org/kie/kogito/dmn/springboot/example/KogitoSpringbootApplication.java create mode 100644 gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/main/resources/AllowedValuesChecksInsideCollection.dmn create mode 100644 gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/main/resources/Traffic Violation.dmn create mode 100644 gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/main/resources/application.properties create mode 100644 gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/main/resources/logback.xml create mode 100644 gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/test/java/org/kie/kogito/dmn/springboot/example/AllowedValuesTest.java create mode 100644 gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/test/java/org/kie/kogito/dmn/springboot/example/TrafficViolationTest.java create mode 100644 gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/test/java/testscenario/TestScenarioJunitActivatorTest.java create mode 100644 gradle-examples/kogito-springboot-gradle-examples/dmn-springboot-gradle/src/test/resources/TrafficViolationTest.scesim 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 index a5a0d29d77..e6e4f4f10e 100644 --- a/gradle-examples/kogito-quarkus-gradle-examples/pom.xml +++ b/gradle-examples/kogito-quarkus-gradle-examples/pom.xml @@ -13,10 +13,11 @@ kogito-quarkus-gradle-examples - 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/pom.xml b/gradle-examples/kogito-quarkus-gradle-examples/process-decisions-rules-quarkus-gradle/pom.xml index 3e4089e938..709fd99994 100644 --- 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 @@ -10,7 +10,7 @@ process-decisions-rules-quarkus-gradle - Kogito Example :: Process :: Decisions :: Rules :: Quarkus :: Gradle + Kogito Example :: Gradle :: Quarkus :: Process - Decisions - Rules Process with DRL, DMN and DRL integration - Quarkus - Gradle 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 index f73c78f793..bdcafc594d 100644 --- 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 @@ -1,3 +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. + * + */ + pluginManagement { repositories { mavenLocal() 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 index 5fc9272751..1e1d07411b 100644 --- a/gradle-examples/kogito-springboot-gradle-examples/pom.xml +++ b/gradle-examples/kogito-springboot-gradle-examples/pom.xml @@ -12,10 +12,11 @@ kogito-springboot-gradle-examples - Springboot Gradle Examples + Kogito Example :: Gradle :: Spring Boot Kogito Springboot Examples built with Gradle process-decisions-rules-springboot-gradle + dmn-springboot-gradle 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 index 6196691222..a6acc20250 100644 --- 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 @@ -1,5 +1,5 @@ #Gradle properties -springBootVersion=3.4.11 +springBootVersion=3.5.10 springBootDependencyManagementVersion=1.1.5 taskTreeVersion=4.0.1 junitVersion=5.12.1 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 index 7955e48570..75fbfe89fa 100644 --- 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 @@ -10,7 +10,7 @@ process-decisions-rules-springboot-gradle - Kogito Example :: Process :: Decisions :: Rules :: Spring Boot :: Gradle + Kogito Example :: Gradle :: Spring Boot :: Process - Decisions - Rules Process with DRL, DMN and DRL integration - Spring Boot - Gradle diff --git a/gradle-examples/pom.xml b/gradle-examples/pom.xml index eeae234042..fd690b467d 100644 --- a/gradle-examples/pom.xml +++ b/gradle-examples/pom.xml @@ -11,7 +11,7 @@ gradle-examples pom - Gradle Examples + Kogito Example :: Gradle Kogito Examples built with Gradle kogito-springboot-gradle-examples