From 515c03429756ce8391755a998ab5b29d30146355 Mon Sep 17 00:00:00 2001 From: maesi Date: Wed, 18 Feb 2026 23:21:50 +0100 Subject: [PATCH 01/35] fix(release): fix NPM release buidl --- .github/workflows/release.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3b3e78081..99bd77458 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -138,6 +138,7 @@ jobs: node-version: 23 registry-url: 'https://registry.npmjs.org' - run: npm install + working-directory: ./webui - name: Install taskfile run: sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b ~/.local/bin - name: Publish From 17d4601bf5b91f0b1e4010f71a2553c70c7f1c6a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Feb 2026 07:43:39 +0000 Subject: [PATCH 02/35] build(deps): bump github.com/blevesearch/bleve_index_api Bumps [github.com/blevesearch/bleve_index_api](https://github.com/blevesearch/bleve_index_api) from 1.3.1 to 1.3.2. - [Commits](https://github.com/blevesearch/bleve_index_api/compare/v1.3.1...v1.3.2) --- updated-dependencies: - dependency-name: github.com/blevesearch/bleve_index_api dependency-version: 1.3.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 962b84143..1a088553c 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.25.5 require ( github.com/Masterminds/sprig v2.22.0+incompatible github.com/blevesearch/bleve/v2 v2.5.7 - github.com/blevesearch/bleve_index_api v1.3.1 + github.com/blevesearch/bleve_index_api v1.3.2 github.com/bradleyfalzon/ghinstallation/v2 v2.17.0 github.com/brianvoe/gofakeit/v6 v6.28.0 github.com/dop251/goja v0.0.0-20250309171923-bcd7cc6bf64c diff --git a/go.sum b/go.sum index 6a4a75f21..d8d3241d5 100644 --- a/go.sum +++ b/go.sum @@ -24,8 +24,8 @@ github.com/bits-and-blooms/bitset v1.22.0 h1:Tquv9S8+SGaS3EhyA+up3FXzmkhxPGjQQCk github.com/bits-and-blooms/bitset v1.22.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= github.com/blevesearch/bleve/v2 v2.5.7 h1:2d9YrL5zrX5EBBW++GOaEKjE+NPWeZGaX77IM26m1Z8= github.com/blevesearch/bleve/v2 v2.5.7/go.mod h1:yj0NlS7ocGC4VOSAedqDDMktdh2935v2CSWOCDMHdSA= -github.com/blevesearch/bleve_index_api v1.3.1 h1:LdH3CQgBbIZ5UI/5Pykz87e0jfeQtVnrdZ2WUBrHHwU= -github.com/blevesearch/bleve_index_api v1.3.1/go.mod h1:xvd48t5XMeeioWQ5/jZvgLrV98flT2rdvEJ3l/ki4Ko= +github.com/blevesearch/bleve_index_api v1.3.2 h1:y4VLXBF7nQR01CvF+QzmCJKMpVPCLp1CJ5FsRSZXzRE= +github.com/blevesearch/bleve_index_api v1.3.2/go.mod h1:xvd48t5XMeeioWQ5/jZvgLrV98flT2rdvEJ3l/ki4Ko= github.com/blevesearch/geo v0.2.4 h1:ECIGQhw+QALCZaDcogRTNSJYQXRtC8/m8IKiA706cqk= github.com/blevesearch/geo v0.2.4/go.mod h1:K56Q33AzXt2YExVHGObtmRSFYZKYGv0JEN5mdacJJR8= github.com/blevesearch/go-faiss v1.0.26 h1:4dRLolFgjPyjkaXwff4NfbZFdE/dfywbzDqporeQvXI= From e5a82910e68b402477d49510acf8129aee930950 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Feb 2026 07:44:37 +0000 Subject: [PATCH 03/35] build(deps): bump @types/mokapi from 0.29.1 to 0.34.0 in /webui Bumps [@types/mokapi](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mokapi) from 0.29.1 to 0.34.0. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mokapi) --- updated-dependencies: - dependency-name: "@types/mokapi" dependency-version: 0.34.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- webui/package-lock.json | 8 ++++---- webui/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/webui/package-lock.json b/webui/package-lock.json index aa7fdc2e8..3e1e1e5f5 100644 --- a/webui/package-lock.json +++ b/webui/package-lock.json @@ -11,7 +11,7 @@ "@popperjs/core": "^2.11.6", "@ssthouse/vue3-tree-chart": "^0.3.0", "@types/bootstrap": "^5.2.10", - "@types/mokapi": "^0.29.1", + "@types/mokapi": "^0.34.0", "@types/nodemailer": "^7.0.9", "@types/whatwg-mimetype": "^3.0.2", "ace-builds": "^1.43.5", @@ -1368,9 +1368,9 @@ "license": "MIT" }, "node_modules/@types/mokapi": { - "version": "0.29.1", - "resolved": "https://registry.npmjs.org/@types/mokapi/-/mokapi-0.29.1.tgz", - "integrity": "sha512-Ozcf/eO6QDc3VnEKEDRa2S9POT3eis97kYZUqKSsnVN9IYyb/j3jbmDbWsjzeU/pYegwcNfSqGwFmUc+/1n0qg==", + "version": "0.34.0", + "resolved": "https://registry.npmjs.org/@types/mokapi/-/mokapi-0.34.0.tgz", + "integrity": "sha512-AtSfdd/aZDhIaKYdtyq5v05JuJijQhMVVu1XuIosnkCtkRerK1JIm/k6ibnJy6Taxez+ztSLgYdEd1ij05YORQ==", "license": "MIT" }, "node_modules/@types/node": { diff --git a/webui/package.json b/webui/package.json index bcc620d7c..ab47648c0 100644 --- a/webui/package.json +++ b/webui/package.json @@ -20,7 +20,7 @@ "@popperjs/core": "^2.11.6", "@ssthouse/vue3-tree-chart": "^0.3.0", "@types/bootstrap": "^5.2.10", - "@types/mokapi": "^0.29.1", + "@types/mokapi": "^0.34.0", "@types/nodemailer": "^7.0.9", "@types/whatwg-mimetype": "^3.0.2", "ace-builds": "^1.43.5", From c8327e26e74ef6ccaa5e79470e0679c261450814 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Feb 2026 07:53:43 +0000 Subject: [PATCH 04/35] build(deps): bump @types/nodemailer from 7.0.9 to 7.0.10 in /webui Bumps [@types/nodemailer](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/nodemailer) from 7.0.9 to 7.0.10. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/nodemailer) --- updated-dependencies: - dependency-name: "@types/nodemailer" dependency-version: 7.0.10 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- webui/package-lock.json | 8 ++++---- webui/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/webui/package-lock.json b/webui/package-lock.json index 3e1e1e5f5..ab917fe44 100644 --- a/webui/package-lock.json +++ b/webui/package-lock.json @@ -12,7 +12,7 @@ "@ssthouse/vue3-tree-chart": "^0.3.0", "@types/bootstrap": "^5.2.10", "@types/mokapi": "^0.34.0", - "@types/nodemailer": "^7.0.9", + "@types/nodemailer": "^7.0.10", "@types/whatwg-mimetype": "^3.0.2", "ace-builds": "^1.43.5", "bootstrap": "^5.3.8", @@ -1383,9 +1383,9 @@ } }, "node_modules/@types/nodemailer": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/nodemailer/-/nodemailer-7.0.9.tgz", - "integrity": "sha512-vI8oF1M+8JvQhsId0Pc38BdUP2evenIIys7c7p+9OZXSPOH5c1dyINP1jT8xQ2xPuBUXmIC87s+91IZMDjH8Ow==", + "version": "7.0.10", + "resolved": "https://registry.npmjs.org/@types/nodemailer/-/nodemailer-7.0.10.tgz", + "integrity": "sha512-tP+9WggTFN22Zxh0XFyst7239H0qwiRCogsk7v9aQS79sYAJY+WEbTHbNYcxUMaalHKmsNpxmoTe35hBEMMd6g==", "license": "MIT", "dependencies": { "@types/node": "*" diff --git a/webui/package.json b/webui/package.json index ab47648c0..aae931262 100644 --- a/webui/package.json +++ b/webui/package.json @@ -21,7 +21,7 @@ "@ssthouse/vue3-tree-chart": "^0.3.0", "@types/bootstrap": "^5.2.10", "@types/mokapi": "^0.34.0", - "@types/nodemailer": "^7.0.9", + "@types/nodemailer": "^7.0.10", "@types/whatwg-mimetype": "^3.0.2", "ace-builds": "^1.43.5", "bootstrap": "^5.3.8", From 7d0e3a5367483fcd074e2e97d5b7502f0dc74673 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Feb 2026 08:03:29 +0000 Subject: [PATCH 05/35] build(deps-dev): bump @vue/eslint-config-typescript in /webui Bumps [@vue/eslint-config-typescript](https://github.com/vuejs/eslint-config-typescript) from 14.6.0 to 14.7.0. - [Release notes](https://github.com/vuejs/eslint-config-typescript/releases) - [Commits](https://github.com/vuejs/eslint-config-typescript/compare/v14.6.0...v14.7.0) --- updated-dependencies: - dependency-name: "@vue/eslint-config-typescript" dependency-version: 14.7.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- webui/package-lock.json | 172 ++++++++++++++++++++-------------------- webui/package.json | 2 +- 2 files changed, 87 insertions(+), 87 deletions(-) diff --git a/webui/package-lock.json b/webui/package-lock.json index ab917fe44..a45db5051 100644 --- a/webui/package-lock.json +++ b/webui/package-lock.json @@ -46,7 +46,7 @@ "@types/node": "^25.2.3", "@vitejs/plugin-vue": "^6.0.4", "@vue/eslint-config-prettier": "^10.2.0", - "@vue/eslint-config-typescript": "^14.6.0", + "@vue/eslint-config-typescript": "^14.7.0", "@vue/tsconfig": "^0.8.1", "eslint": "^9.39.2", "eslint-plugin-vue": "^10.6.2", @@ -1398,17 +1398,17 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.53.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.53.1.tgz", - "integrity": "sha512-cFYYFZ+oQFi6hUnBTbLRXfTJiaQtYE3t4O692agbBl+2Zy+eqSKWtPjhPXJu1G7j4RLjKgeJPDdq3EqOwmX5Ag==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.56.0.tgz", + "integrity": "sha512-lRyPDLzNCuae71A3t9NEINBiTn7swyOhvUj3MyUOxb8x6g6vPEFoOU+ZRmGMusNC3X3YMhqMIX7i8ShqhT74Pw==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.53.1", - "@typescript-eslint/type-utils": "8.53.1", - "@typescript-eslint/utils": "8.53.1", - "@typescript-eslint/visitor-keys": "8.53.1", + "@typescript-eslint/scope-manager": "8.56.0", + "@typescript-eslint/type-utils": "8.56.0", + "@typescript-eslint/utils": "8.56.0", + "@typescript-eslint/visitor-keys": "8.56.0", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.4.0" @@ -1421,8 +1421,8 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.53.1", - "eslint": "^8.57.0 || ^9.0.0", + "@typescript-eslint/parser": "^8.56.0", + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.0.0" } }, @@ -1437,16 +1437,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.53.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.53.1.tgz", - "integrity": "sha512-nm3cvFN9SqZGXjmw5bZ6cGmvJSyJPn0wU9gHAZZHDnZl2wF9PhHv78Xf06E0MaNk4zLVHL8hb2/c32XvyJOLQg==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.56.0.tgz", + "integrity": "sha512-IgSWvLobTDOjnaxAfDTIHaECbkNlAlKv2j5SjpB2v7QHKv1FIfjwMy8FsDbVfDX/KjmCmYICcw7uGaXLhtsLNg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.53.1", - "@typescript-eslint/types": "8.53.1", - "@typescript-eslint/typescript-estree": "8.53.1", - "@typescript-eslint/visitor-keys": "8.53.1", + "@typescript-eslint/scope-manager": "8.56.0", + "@typescript-eslint/types": "8.56.0", + "@typescript-eslint/typescript-estree": "8.56.0", + "@typescript-eslint/visitor-keys": "8.56.0", "debug": "^4.4.3" }, "engines": { @@ -1457,19 +1457,19 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.53.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.53.1.tgz", - "integrity": "sha512-WYC4FB5Ra0xidsmlPb+1SsnaSKPmS3gsjIARwbEkHkoWloQmuzcfypljaJcR78uyLA1h8sHdWWPHSLDI+MtNog==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.56.0.tgz", + "integrity": "sha512-M3rnyL1vIQOMeWxTWIW096/TtVP+8W3p/XnaFflhmcFp+U4zlxUxWj4XwNs6HbDeTtN4yun0GNTTDBw/SvufKg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.53.1", - "@typescript-eslint/types": "^8.53.1", + "@typescript-eslint/tsconfig-utils": "^8.56.0", + "@typescript-eslint/types": "^8.56.0", "debug": "^4.4.3" }, "engines": { @@ -1484,14 +1484,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.53.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.53.1.tgz", - "integrity": "sha512-Lu23yw1uJMFY8cUeq7JlrizAgeQvWugNQzJp8C3x8Eo5Jw5Q2ykMdiiTB9vBVOOUBysMzmRRmUfwFrZuI2C4SQ==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.56.0.tgz", + "integrity": "sha512-7UiO/XwMHquH+ZzfVCfUNkIXlp/yQjjnlYUyYz7pfvlK3/EyyN6BK+emDmGNyQLBtLGaYrTAI6KOw8tFucWL2w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.53.1", - "@typescript-eslint/visitor-keys": "8.53.1" + "@typescript-eslint/types": "8.56.0", + "@typescript-eslint/visitor-keys": "8.56.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1502,9 +1502,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.53.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.53.1.tgz", - "integrity": "sha512-qfvLXS6F6b1y43pnf0pPbXJ+YoXIC7HKg0UGZ27uMIemKMKA6XH2DTxsEDdpdN29D+vHV07x/pnlPNVLhdhWiA==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.56.0.tgz", + "integrity": "sha512-bSJoIIt4o3lKXD3xmDh9chZcjCz5Lk8xS7Rxn+6l5/pKrDpkCwtQNQQwZ2qRPk7TkUYhrq3WPIHXOXlbXP0itg==", "dev": true, "license": "MIT", "engines": { @@ -1519,15 +1519,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.53.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.53.1.tgz", - "integrity": "sha512-MOrdtNvyhy0rHyv0ENzub1d4wQYKb2NmIqG7qEqPWFW7Mpy2jzFC3pQ2yKDvirZB7jypm5uGjF2Qqs6OIqu47w==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.56.0.tgz", + "integrity": "sha512-qX2L3HWOU2nuDs6GzglBeuFXviDODreS58tLY/BALPC7iu3Fa+J7EOTwnX9PdNBxUI7Uh0ntP0YWGnxCkXzmfA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.53.1", - "@typescript-eslint/typescript-estree": "8.53.1", - "@typescript-eslint/utils": "8.53.1", + "@typescript-eslint/types": "8.56.0", + "@typescript-eslint/typescript-estree": "8.56.0", + "@typescript-eslint/utils": "8.56.0", "debug": "^4.4.3", "ts-api-utils": "^2.4.0" }, @@ -1539,14 +1539,14 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/types": { - "version": "8.53.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.53.1.tgz", - "integrity": "sha512-jr/swrr2aRmUAUjW5/zQHbMaui//vQlsZcJKijZf3M26bnmLj8LyZUpj8/Rd6uzaek06OWsqdofN/Thenm5O8A==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.56.0.tgz", + "integrity": "sha512-DBsLPs3GsWhX5HylbP9HNG15U0bnwut55Lx12bHB9MpXxQ+R5GC8MwQe+N1UFXxAeQDvEsEDY6ZYwX03K7Z6HQ==", "dev": true, "license": "MIT", "engines": { @@ -1558,16 +1558,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.53.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.53.1.tgz", - "integrity": "sha512-RGlVipGhQAG4GxV1s34O91cxQ/vWiHJTDHbXRr0li2q/BGg3RR/7NM8QDWgkEgrwQYCvmJV9ichIwyoKCQ+DTg==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.56.0.tgz", + "integrity": "sha512-ex1nTUMWrseMltXUHmR2GAQ4d+WjkZCT4f+4bVsps8QEdh0vlBsaCokKTPlnqBFqqGaxilDNJG7b8dolW2m43Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.53.1", - "@typescript-eslint/tsconfig-utils": "8.53.1", - "@typescript-eslint/types": "8.53.1", - "@typescript-eslint/visitor-keys": "8.53.1", + "@typescript-eslint/project-service": "8.56.0", + "@typescript-eslint/tsconfig-utils": "8.56.0", + "@typescript-eslint/types": "8.56.0", + "@typescript-eslint/visitor-keys": "8.56.0", "debug": "^4.4.3", "minimatch": "^9.0.5", "semver": "^7.7.3", @@ -1586,16 +1586,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.53.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.53.1.tgz", - "integrity": "sha512-c4bMvGVWW4hv6JmDUEG7fSYlWOl3II2I4ylt0NM+seinYQlZMQIaKaXIIVJWt9Ofh6whrpM+EdDQXKXjNovvrg==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.56.0.tgz", + "integrity": "sha512-RZ3Qsmi2nFGsS+n+kjLAYDPVlrzf7UhTffrDIKr+h2yzAlYP/y5ZulU0yeDEPItos2Ph46JAL5P/On3pe7kDIQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.53.1", - "@typescript-eslint/types": "8.53.1", - "@typescript-eslint/typescript-estree": "8.53.1" + "@typescript-eslint/scope-manager": "8.56.0", + "@typescript-eslint/types": "8.56.0", + "@typescript-eslint/typescript-estree": "8.56.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1605,19 +1605,19 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.53.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.53.1.tgz", - "integrity": "sha512-oy+wV7xDKFPRyNggmXuZQSBzvoLnpmJs+GhzRhPjrxl2b/jIlyjVokzm47CZCDUdXKr2zd7ZLodPfOBpOPyPlg==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.56.0.tgz", + "integrity": "sha512-q+SL+b+05Ud6LbEE35qe4A99P+htKTKVbyiNEe45eCbJFyh/HVK9QXwlrbz+Q4L8SOW4roxSVwXYj4DMBT7Ieg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.53.1", - "eslint-visitor-keys": "^4.2.1" + "@typescript-eslint/types": "8.56.0", + "eslint-visitor-keys": "^5.0.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1628,13 +1628,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", - "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.0.tgz", + "integrity": "sha512-A0XeIi7CXU7nPlfHS9loMYEKxUaONu/hTEzHTGba9Huu94Cq1hPivf+DE5erJozZOky0LfvXAyrV/tcswpLI0Q==", "dev": true, "license": "Apache-2.0", "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { "url": "https://opencollective.com/eslint" @@ -1812,22 +1812,22 @@ } }, "node_modules/@vue/eslint-config-typescript": { - "version": "14.6.0", - "resolved": "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-14.6.0.tgz", - "integrity": "sha512-UpiRY/7go4Yps4mYCjkvlIbVWmn9YvPGQDxTAlcKLphyaD77LjIu3plH4Y9zNT0GB4f3K5tMmhhtRhPOgrQ/bQ==", + "version": "14.7.0", + "resolved": "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-14.7.0.tgz", + "integrity": "sha512-iegbMINVc+seZ/QxtzWiOBozctrHiF2WvGedruu2EbLujg9VuU0FQiNcN2z1ycuaoKKpF4m2qzB5HDEMKbxtIg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/utils": "^8.35.1", + "@typescript-eslint/utils": "^8.56.0", "fast-glob": "^3.3.3", - "typescript-eslint": "^8.35.1", - "vue-eslint-parser": "^10.2.0" + "typescript-eslint": "^8.56.0", + "vue-eslint-parser": "^10.4.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "peerDependencies": { - "eslint": "^9.10.0", + "eslint": "^9.10.0 || ^10.0.0", "eslint-plugin-vue": "^9.28.0 || ^10.0.0", "typescript": ">=4.8.4" }, @@ -7068,16 +7068,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.53.1", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.53.1.tgz", - "integrity": "sha512-gB+EVQfP5RDElh9ittfXlhZJdjSU4jUSTyE2+ia8CYyNvet4ElfaLlAIqDvQV9JPknKx0jQH1racTYe/4LaLSg==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.56.0.tgz", + "integrity": "sha512-c7toRLrotJ9oixgdW7liukZpsnq5CZ7PuKztubGYlNppuTqhIoWfhgHo/7EU0v06gS2l/x0i2NEFK1qMIf0rIg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.53.1", - "@typescript-eslint/parser": "8.53.1", - "@typescript-eslint/typescript-estree": "8.53.1", - "@typescript-eslint/utils": "8.53.1" + "@typescript-eslint/eslint-plugin": "8.56.0", + "@typescript-eslint/parser": "8.56.0", + "@typescript-eslint/typescript-estree": "8.56.0", + "@typescript-eslint/utils": "8.56.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -7087,7 +7087,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.0.0" } }, @@ -7390,16 +7390,16 @@ } }, "node_modules/vue-eslint-parser": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-10.2.0.tgz", - "integrity": "sha512-CydUvFOQKD928UzZhTp4pr2vWz1L+H99t7Pkln2QSPdvmURT0MoC4wUccfCnuEaihNsu9aYYyk+bep8rlfkUXw==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-10.4.0.tgz", + "integrity": "sha512-Vxi9pJdbN3ZnVGLODVtZ7y4Y2kzAAE2Cm0CZ3ZDRvydVYxZ6VrnBhLikBsRS+dpwj4Jv4UCv21PTEwF5rQ9WXg==", "dev": true, "license": "MIT", "dependencies": { "debug": "^4.4.0", - "eslint-scope": "^8.2.0", - "eslint-visitor-keys": "^4.2.0", - "espree": "^10.3.0", + "eslint-scope": "^8.2.0 || ^9.0.0", + "eslint-visitor-keys": "^4.2.0 || ^5.0.0", + "espree": "^10.3.0 || ^11.0.0", "esquery": "^1.6.0", "semver": "^7.6.3" }, @@ -7410,7 +7410,7 @@ "url": "https://github.com/sponsors/mysticatea" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0" } }, "node_modules/vue-eslint-parser/node_modules/eslint-visitor-keys": { diff --git a/webui/package.json b/webui/package.json index aae931262..38459ada0 100644 --- a/webui/package.json +++ b/webui/package.json @@ -55,7 +55,7 @@ "@types/node": "^25.2.3", "@vitejs/plugin-vue": "^6.0.4", "@vue/eslint-config-prettier": "^10.2.0", - "@vue/eslint-config-typescript": "^14.6.0", + "@vue/eslint-config-typescript": "^14.7.0", "@vue/tsconfig": "^0.8.1", "eslint": "^9.39.2", "eslint-plugin-vue": "^10.6.2", From 1b3ac5057f8dfb935fb99890c53446fe43d78652 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Feb 2026 08:12:41 +0000 Subject: [PATCH 06/35] build(deps-dev): bump @rushstack/eslint-patch in /webui Bumps [@rushstack/eslint-patch](https://github.com/microsoft/rushstack/tree/HEAD/eslint/eslint-patch) from 1.15.0 to 1.16.1. - [Changelog](https://github.com/microsoft/rushstack/blob/main/eslint/eslint-patch/CHANGELOG.md) - [Commits](https://github.com/microsoft/rushstack/commits/@rushstack/eslint-patch_v1.16.1/eslint/eslint-patch) --- updated-dependencies: - dependency-name: "@rushstack/eslint-patch" dependency-version: 1.16.1 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- webui/package-lock.json | 8 ++++---- webui/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/webui/package-lock.json b/webui/package-lock.json index a45db5051..f78ffd67d 100644 --- a/webui/package-lock.json +++ b/webui/package-lock.json @@ -40,7 +40,7 @@ }, "devDependencies": { "@playwright/test": "^1.58.2", - "@rushstack/eslint-patch": "^1.15.0", + "@rushstack/eslint-patch": "^1.16.1", "@types/js-yaml": "^4.0.9", "@types/markdown-it-container": "^4.0.0", "@types/node": "^25.2.3", @@ -1270,9 +1270,9 @@ ] }, "node_modules/@rushstack/eslint-patch": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.15.0.tgz", - "integrity": "sha512-ojSshQPKwVvSMR8yT2L/QtUkV5SXi/IfDiJ4/8d6UbTPjiHVmxZzUAzGD8Tzks1b9+qQkZa0isUOvYObedITaw==", + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.16.1.tgz", + "integrity": "sha512-TvZbIpeKqGQQ7X0zSCvPH9riMSFQFSggnfBjFZ1mEoILW+UuXCKwOoPcgjMwiUtRqFZ8jWhPJc4um14vC6I4ag==", "dev": true, "license": "MIT" }, diff --git a/webui/package.json b/webui/package.json index 38459ada0..661e7e17a 100644 --- a/webui/package.json +++ b/webui/package.json @@ -49,7 +49,7 @@ }, "devDependencies": { "@playwright/test": "^1.58.2", - "@rushstack/eslint-patch": "^1.15.0", + "@rushstack/eslint-patch": "^1.16.1", "@types/js-yaml": "^4.0.9", "@types/markdown-it-container": "^4.0.0", "@types/node": "^25.2.3", From 53c03a44fe207d58de789f2181fcab6f3509d8df Mon Sep 17 00:00:00 2001 From: maesi Date: Sun, 22 Feb 2026 22:03:04 +0100 Subject: [PATCH 07/35] fix(webui): fix grid layout --- webui/src/assets/main.css | 1 + 1 file changed, 1 insertion(+) diff --git a/webui/src/assets/main.css b/webui/src/assets/main.css index d2f013553..b87e10bbc 100644 --- a/webui/src/assets/main.css +++ b/webui/src/assets/main.css @@ -29,6 +29,7 @@ body { #app { display: grid; grid-template-columns: auto; + grid-template-rows: 64px auto; grid-template-areas: "hd" "main" From a2edf29d3e246db86270dcfdf193bc62a379bf8c Mon Sep 17 00:00:00 2001 From: maesi Date: Sun, 22 Feb 2026 22:23:40 +0100 Subject: [PATCH 08/35] doc: add kafka example for get-started tutorial --- .gitignore | 1 + examples/kafka/get-started/Dockerfile | 5 ++ .../get-started/Kafka.GetStarted/Consumer.cs | 27 ++++++++++ .../get-started/Kafka.GetStarted/Producer.cs | 29 +++++++++++ .../get-started/Kafka.GetStarted/Program.cs | 30 +++++++++++ examples/kafka/get-started/kafka.yaml | 51 +++++++++++++++++++ 6 files changed, 143 insertions(+) create mode 100644 examples/kafka/get-started/Dockerfile create mode 100644 examples/kafka/get-started/Kafka.GetStarted/Consumer.cs create mode 100644 examples/kafka/get-started/Kafka.GetStarted/Producer.cs create mode 100644 examples/kafka/get-started/Kafka.GetStarted/Program.cs create mode 100644 examples/kafka/get-started/kafka.yaml diff --git a/.gitignore b/.gitignore index 79316fd7f..d6660b5f6 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,7 @@ data/* dist/ bin/* +obj/ node_modules diff --git a/examples/kafka/get-started/Dockerfile b/examples/kafka/get-started/Dockerfile new file mode 100644 index 000000000..5fcbb8a67 --- /dev/null +++ b/examples/kafka/get-started/Dockerfile @@ -0,0 +1,5 @@ +FROM mokapi/mokapi:latest + +COPY ./kafka.yaml /demo/ + +CMD ["--Providers.File.Directory=/demo"] diff --git a/examples/kafka/get-started/Kafka.GetStarted/Consumer.cs b/examples/kafka/get-started/Kafka.GetStarted/Consumer.cs new file mode 100644 index 000000000..00db6db2f --- /dev/null +++ b/examples/kafka/get-started/Kafka.GetStarted/Consumer.cs @@ -0,0 +1,27 @@ +using System; +using System.Threading; +using Confluent.Kafka; + +public class Consumer +{ + public static void Run() + { + var config = new ConsumerConfig + { + BootstrapServers = "localhost:9092", + GroupId = "foo", + AutoOffsetReset = AutoOffsetReset.Earliest + }; + + using var consumer = new ConsumerBuilder(config).Build(); + consumer.Subscribe("users"); + + CancellationTokenSource cts = new CancellationTokenSource(); + + while (true) + { + var result = consumer.Consume(cts.Token); + Console.WriteLine($"Consumed message '{result.Message.Value}' offset: {result.TopicPartitionOffset.Offset} partition: {result.TopicPartition.Partition}"); + } + } +} diff --git a/examples/kafka/get-started/Kafka.GetStarted/Producer.cs b/examples/kafka/get-started/Kafka.GetStarted/Producer.cs new file mode 100644 index 000000000..3bfc2c762 --- /dev/null +++ b/examples/kafka/get-started/Kafka.GetStarted/Producer.cs @@ -0,0 +1,29 @@ +using System; +using System.Text.Json; +using System.Threading.Tasks; +using Confluent.Kafka; + +public class Producer +{ + public static async Task Run() + { + var config = new ProducerConfig { BootstrapServers = "localhost:9092" }; + + using var producer = new ProducerBuilder(config).Build(); + var topic = new TopicPartition("users", new Partition(1)); + + var serializeOptions = new JsonSerializerOptions + { + PropertyNamingPolicy = JsonNamingPolicy.CamelCase, + }; + + var result = await producer.ProduceAsync(topic, new Message { + Key = "alice", + Value = JsonSerializer.Serialize(new { + Id = "dd5742d1-82ad-4d42-8960-cb21bd02f3e7", + Name = "Alice", + Email = "alice@foo.bar", + }, serializeOptions), + }); + } +} diff --git a/examples/kafka/get-started/Kafka.GetStarted/Program.cs b/examples/kafka/get-started/Kafka.GetStarted/Program.cs new file mode 100644 index 000000000..bb906b71d --- /dev/null +++ b/examples/kafka/get-started/Kafka.GetStarted/Program.cs @@ -0,0 +1,30 @@ +using System; + +if (args.Length == 0) +{ + PrintUsage(); + return; +} + +switch (args[0].ToLowerInvariant()) +{ + case "producer": + await Producer.Run(); + break; + + case "consumer": + Consumer.Run(); + break; + + default: + Console.WriteLine($"Unknown command: {args[0]}"); + PrintUsage(); + break; +} + +static void PrintUsage() +{ + Console.WriteLine("Usage:"); + Console.WriteLine(" dotnet run producer"); + Console.WriteLine(" dotnet run consumer"); +} diff --git a/examples/kafka/get-started/kafka.yaml b/examples/kafka/get-started/kafka.yaml new file mode 100644 index 000000000..fcc8a4637 --- /dev/null +++ b/examples/kafka/get-started/kafka.yaml @@ -0,0 +1,51 @@ +asyncapi: '2.0.0' +info: + title: Kafka Cluster + description: A kafka test cluster + version: '1.0' + contact: + name: Mokapi + url: https://mokapi.io + email: mokapi@mokapi.io +servers: + broker: + url: 127.0.0.1:9092 + protocol: kafka +channels: + users: + subscribe: + message: + $ref: '#/components/messages/user' + publish: + message: + $ref: '#/components/messages/user' + bindings: + kafka: + partitions: 2 + +components: + messages: + user: + contentType: application/json + payload: + $ref: '#/components/schemas/user' + bindings: + kafka: + key: + type: string + + schemas: + user: + type: object + properties: + id: + type: string + format: uuid + name: + type: string + email: + type: string + required: + - id + - name + - email From 192af2a812985c8e285a4d7e69fce811f6f15908 Mon Sep 17 00:00:00 2001 From: maesi Date: Sun, 22 Feb 2026 22:26:03 +0100 Subject: [PATCH 09/35] doc: add kafka example for get-started tutorial --- .gitignore | 1 + .../Kafka.GetStarted/Kafka.GetStarted.csproj | 14 ++++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 examples/kafka/get-started/Kafka.GetStarted/Kafka.GetStarted.csproj diff --git a/.gitignore b/.gitignore index d6660b5f6..0c8b28c1d 100644 --- a/.gitignore +++ b/.gitignore @@ -18,6 +18,7 @@ data/* dist/ bin/* obj/ +Debug/ node_modules diff --git a/examples/kafka/get-started/Kafka.GetStarted/Kafka.GetStarted.csproj b/examples/kafka/get-started/Kafka.GetStarted/Kafka.GetStarted.csproj new file mode 100644 index 000000000..e616ff77b --- /dev/null +++ b/examples/kafka/get-started/Kafka.GetStarted/Kafka.GetStarted.csproj @@ -0,0 +1,14 @@ +ο»Ώ + + + Exe + net10.0 + enable + enable + + + + + + + From bd56662f5e6d76531ec8a0a256063aaa67568086 Mon Sep 17 00:00:00 2001 From: maesi Date: Sun, 22 Feb 2026 22:28:22 +0100 Subject: [PATCH 10/35] feat(webui): add support for image caption fix(webui): fix tag style in documentations fix(webui): remove debug console output --- webui/src/components/docs/Examples.vue | 1 - webui/src/composables/markdown-box.ts | 2 -- webui/src/composables/markdown-image.ts | 34 +++++++++++++++++++++++++ webui/src/composables/markdown-title.ts | 2 +- webui/src/composables/markdown.ts | 5 +++- webui/src/views/DocsView.vue | 11 ++++++++ 6 files changed, 50 insertions(+), 5 deletions(-) create mode 100644 webui/src/composables/markdown-image.ts diff --git a/webui/src/components/docs/Examples.vue b/webui/src/components/docs/Examples.vue index 7aa2d387a..3aba923b0 100644 --- a/webui/src/components/docs/Examples.vue +++ b/webui/src/components/docs/Examples.vue @@ -80,7 +80,6 @@ const filtered = computed(() => { } const filtered = [] - console.log(type.value) for (const item of items.value) { if ((type.value === 'all' || type.value === item.tag) && (tech.value === 'all' || tech.value === item.meta.tech || (tech.value === 'core' && !item.meta.tech))) { filtered.push(item) diff --git a/webui/src/composables/markdown-box.ts b/webui/src/composables/markdown-box.ts index f83c896c4..f33e3c148 100644 --- a/webui/src/composables/markdown-box.ts +++ b/webui/src/composables/markdown-box.ts @@ -133,7 +133,6 @@ export function MarkdownItBox(md: MarkdownIt, opts: Options) { ` } } -console.log('alert', alert) return alert } @@ -146,7 +145,6 @@ console.log('alert', alert) const m = /^(\s*)/.exec(line) if (m && m[1]) { const n = m[1].length / 4; - console.log('n', n, 'level', level) if (n > level) { result += '
    • ' level = n diff --git a/webui/src/composables/markdown-image.ts b/webui/src/composables/markdown-image.ts new file mode 100644 index 000000000..d686d3363 --- /dev/null +++ b/webui/src/composables/markdown-image.ts @@ -0,0 +1,34 @@ +import type MarkdownIt from "markdown-it" +import type Token from "markdown-it/lib/token" + +export function imageCaption(md: MarkdownIt) { + + md.renderer.rules.image = function (tokens: Token[], idx, options, env, self) { + const token = tokens[idx] + const alt = token.content + + console.log(token) + + let img = ' + ${img} +
      ${md.utils.escapeHtml(title)}
      + ` + } +} \ No newline at end of file diff --git a/webui/src/composables/markdown-title.ts b/webui/src/composables/markdown-title.ts index ba0e2159d..a62522eac 100644 --- a/webui/src/composables/markdown-title.ts +++ b/webui/src/composables/markdown-title.ts @@ -20,7 +20,7 @@ export function MarkdownItTitle(meta: DocMeta): (md: MarkdownIt, opts: Options) if (meta.tags) { html += `
      ` for (const tag of meta.tags) { - html += `${md.utils.escapeHtml(tag)}` + html += `${md.utils.escapeHtml(tag)}` } html += `
      ` } diff --git a/webui/src/composables/markdown.ts b/webui/src/composables/markdown.ts index 213160973..3cc2c049e 100644 --- a/webui/src/composables/markdown.ts +++ b/webui/src/composables/markdown.ts @@ -9,6 +9,7 @@ import yaml from 'js-yaml' import { MarkdownItBlockquote } from './markdown-blockquote'; import { MarkdownItTabContent } from './markdown-tab-content'; import { MarkdownItTitle } from './markdown-title'; +import { imageCaption } from './markdown-image'; const images = import.meta.glob('/src/assets/docs/**/*.png', {as: 'url', eager: true}) const metadataRegex = /^---([\s\S]*?)---/; @@ -19,7 +20,6 @@ export function useMarkdown(content: string | undefined): {content: string | und } try { const metadata = parseMetadata(content) - content = replaceImageUrls(content).replace(metadataRegex, '') content = content.replaceAll(/__APP_VERSION__/g, APP_VERSION) @@ -34,10 +34,13 @@ export function useMarkdown(content: string | undefined): {content: string | und .use(MarkdownItLinks) .use(MarkdownItCarousel(metadata)) .use(MarkdownItCard(metadata)) + .use(imageCaption) .set({html: true}) .render(content) } + content = replaceImageUrls(content).replace(metadataRegex, '') + return {content, metadata} } catch (e) { console.error('invalid markdown: '+e) diff --git a/webui/src/views/DocsView.vue b/webui/src/views/DocsView.vue index 57108f795..5d53c08a5 100644 --- a/webui/src/views/DocsView.vue +++ b/webui/src/views/DocsView.vue @@ -292,6 +292,17 @@ ol.breadcrumb { margin-bottom: 1.5rem; } +.content .image-with-caption img { + margin-bottom: 0; +} + +.content .image-with-caption .image-caption { + padding: 12px 16px; + text-align: center; + font-size: 0.95rem;; + color: var(--color-text-light); +} + table { color:var(--color-text); text-align: start; From 30de68056bc6b5f8f121967d086b85a842d01bb2 Mon Sep 17 00:00:00 2001 From: maesi Date: Sun, 22 Feb 2026 22:29:06 +0100 Subject: [PATCH 11/35] doc: add OpenAPI tag --- docs/resources/tutorials/simple-http-api.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/resources/tutorials/simple-http-api.md b/docs/resources/tutorials/simple-http-api.md index 60013531e..3775767cb 100644 --- a/docs/resources/tutorials/simple-http-api.md +++ b/docs/resources/tutorials/simple-http-api.md @@ -4,6 +4,7 @@ description: Learn how to mock a REST API using an OpenAPI specification with Mo subtitle: Learn how to mock a REST API using an OpenAPI specification with Mokapi. This tutorial covers basic setup, configuration, and Docker deployment. icon: bi-globe tech: http +tags: [HTTP, OpenAPI] cards: items: - title: Dynamic Responses From d5f9f742bcbbb728cceaa02c5d7ea3f611ead13e Mon Sep 17 00:00:00 2001 From: maesi Date: Sun, 22 Feb 2026 22:48:55 +0100 Subject: [PATCH 12/35] doc: update documentation for get-started kafka fix(webui): parse metadata from markdown files --- docs/resources/tutorials/simple-http-api.md | 2 +- docs/resources/tutorials/simple-kafka-api.md | 134 ++++++++++++++---- .../tutorials/simple-kafka-example.png | Bin 193597 -> 137032 bytes webui/src/composables/markdown.ts | 3 +- 4 files changed, 112 insertions(+), 27 deletions(-) diff --git a/docs/resources/tutorials/simple-http-api.md b/docs/resources/tutorials/simple-http-api.md index 3775767cb..b78b53cc2 100644 --- a/docs/resources/tutorials/simple-http-api.md +++ b/docs/resources/tutorials/simple-http-api.md @@ -16,8 +16,8 @@ cards: - title: CI/CD Integration href: /resources/blogs/end-to-end-testing-with-mocked-apis description: Run Mokapi in GitHub Actions for automated testing workflows - --- + # Get started with REST API In this tutorial, you will: diff --git a/docs/resources/tutorials/simple-kafka-api.md b/docs/resources/tutorials/simple-kafka-api.md index bb29c9d95..9b35f585d 100644 --- a/docs/resources/tutorials/simple-kafka-api.md +++ b/docs/resources/tutorials/simple-kafka-api.md @@ -1,19 +1,47 @@ --- title: Get started with Kafka description: Learn how to mock a Kafka Topic and verify that your producer generates valid messages according your AsyncAPI specification. +subtitle: Learn how to mock a Kafka topic using AsyncAPI specifications with Mokapi. Validate producer messages and test consumers without requiring a live Kafka cluster. +tags: [Kafka, AsyncAPI] icon: bi-lightning tech: kafka +cards: + items: + - title: Testing Kafka Workflows with Playwright and Mokapi + href: /resources/blogs/testing-kafka-workflows-playwright + description: Simulating real message flows end-to-end with Node.js, Kafka topics, and browser-driven tests. --- # Get started with Kafka -This tutorial provides a step-by-step guide to mocking a Kafka topic using Mokapi -and verifying that a producer generates valid messages based on an AsyncAPI specification. -This approach enables the simulation of Kafka environments without requiring a live Kafka cluster. +This tutorial provides a step-by-step guide to mocking a Kafka topic using Mokapi and verifying +that a producer generates valid messages based on an AsyncAPI specification. This approach enables +simulation of Kafka environments without requiring a live Kafka cluster. + +In this tutorial, you will: +- Create an AsyncAPI specification defining a Kafka topic with schema validation +- Configure and run Mokapi as a mock Kafka broker in Docker +- Write a .NET producer that sends messages to the mocked topic +- Verify message validation and monitoring using the Mokapi dashboard +- Create a .NET consumer to read messages from the mocked topic + +``` box=tree title="Project Structure" +πŸ“„ kafka.yaml +πŸ“„ Dockerfile +πŸ“ Kafka.GetStarted (optional) + πŸ“„ Consumer.cs + πŸ“„ Kafka.GetStarted.csproj + πŸ“„ Producer.cs + πŸ“„ Program.cs +``` -## Create AsyncAPI file +``` box=info +You can find the [full working example](https://github.com/marle3003/mokapi/tree/main/examples/kafka/get-started) in the examples. +``` -Let's start by creating a file named `kafka.yml` with the following content. +## Create AsyncAPI file + +Create a file named `kafka.yaml` that defines a Kafka topic with message validation: ```yaml asyncapi: '2.0.0' @@ -69,17 +97,21 @@ components: - email ``` -This creates a Kafka topic `users` with two partitions. The content type of the message's payload -is `application/json` and the object must have the properties `id`, `name` and `email`. +### Specification Breakdown +- **Topic:** Creates a `users` topic with 2 partitions +- **Content Type:** Messages must be JSON (`application/json`) +- **Schema:** Each message must have `id` (UUID), `name` (string), and `email` (string) +- **Validation:** All three fields are required; missing fields will cause validation errors +- **Key Type:** Message keys must be strings -``` box=info -When Mokapi receives an invalid message it will return the error `CORRUPT_MESSAGE`and logs an -error, for instance `kafka: invalid message received for topic users: missing required field name...` +``` box=info title="Message Validation" +When Mokapi receives an invalid message, it will return the error CORRUPT_MESSAGE and log an error message +like: kafka: invalid message received for topic users: missing required field name... ``` -## Create a Dockerfile +## Create a Dockerfile -Next create a `Dockerfile` to configure Mokapi to use the AsyncAPI specification file +Create a `Dockerfile` to configure Mokapi with the AsyncAPI specification: ```dockerfile FROM mokapi/mokapi:latest @@ -89,17 +121,33 @@ COPY ./kafka.yaml /demo/ CMD ["--Providers.File.Directory=/demo"] ``` -## Start Mokapi +### Dockerfile Breakdown +- **Base Image:** Uses the official Mokapi Docker image +- **Copy Specification:** Copies the AsyncAPI specification into the container +- **Configuration:** Instructs Mokapi to load specifications from the `/demo` directory -Now we can start our container and verify in Mokapi's Dashboard (http://localhost:8080) our mocked Kafka topic +## Start Mokapi + +Build and run the Docker container, exposing the Kafka broker and dashboard ports: ``` docker run -p 9092:9092 -p 8080:8080 --rm -it $(docker build -q .) ``` -## Create a Kafka Producer +This command: +- **Builds** the Docker image from your Dockerfile +- **Exposes port 9092** for the Kafka broker protocol +- **Exposes port 8080** for the Mokapi dashboard +- **Runs interactively** with automatic cleanup when stopped + +``` box=result title="Mokapi is Running" +Open your browser and navigate to the Mokapi Dashboard at http://localhost:8080 to see your mocked Kafka +topic. You can verify the topic configuration, view messages, and monitor producer/consumer activity. +``` -You can now produce messages to the mocked Kafka topic. Below is an example using C#. +## Create a Kafka Producer + +Now you can produce messages to the mocked Kafka topic. Below is an example using C# with the Confluent.Kafka library: ```csharp public class Producer @@ -128,21 +176,40 @@ public class Producer } ``` -## Verifying Messages with Mokapi +### Producer Code Breakdown + +- **Connection:** Connects to the Mokapi broker at `localhost:9092` +- **Topic & Partition:** Targets the `users` topic, partition 1 +- **Message Key:** Uses `"alice"` as the message key (required by the AsyncAPI spec) +- **Message Value:** Serializes a JSON object with `id`, `name`, and `email` fields +- **JSON Format:** Uses camelCase naming to match the AsyncAPI schema + +``` box=info title="Schema Validation" +Mokapi validates every message against the AsyncAPI schema. If you send a message missing the name field or +with an invalid UUID format for id, Mokapi will reject it with a CORRUPT_MESSAGE error. +``` + +## Verifying Messages with Mokapi -Mokapi provides a dashboard to monitor and verify messages sent to the mocked Kafka topics. +Mokapi provides a comprehensive dashboard to monitor and verify messages sent to mocked Kafka topics. -1.

      Access the Mokapi Dashboard:
      Open your browser and navigate to http://localhost:8080/dashboard. +### Dashboard Verification Steps -2.

      Navigate to the Kafka Section:
      In the dashboard, select the Kafka section to view the topics and messages. +1. **Access the Mokapi Dashboard:** Open your browser and navigate to `http://localhost:8080/dashboard` +2. **Navigate to the Kafka Section:** In the dashboard, select the Kafka section to view configured topics and their messages +3. **Verify the Message:** Locate the `users` topic and verify that the message sent by your producer appears as expected. Mokapi displays the message key, value, partition, offset, and validation status -3.

      Verify the Message:
      Locate the users topic and verify that the message sent by your producer appears as expected. Mokapi will validate the message against the AsyncAPI specification. +![Mokapi Kafka Dashboard](/docs/resources/tutorials/simple-kafka-example.png "Mokapi Kafka Dashboard displaying validated messages in the users topic") -Mokapi Kafka Dashboard +The dashboard shows: +- **Message Content:** Full JSON payload with schema validation status +- **Partition & Offset:** Where the message was stored in the topic +- **Validation Errors:** Any schema mismatches or missing required fields +- **Timestamp:** When the message was received by Mokapi -## Create a Kafka Consumer +## Create a Kafka Consumer -Now we can use a .NET Consumer to consume our first sent message. +Now create a .NET consumer to read messages from the mocked Kafka topic: ```csharp public class Consumer @@ -168,4 +235,21 @@ public class Consumer } } } -``` \ No newline at end of file +``` + +### Consumer Code Breakdown +- **Connection:** Connects to the Mokapi broker at `localhost:9092` +- **Consumer Group:** Joins consumer group `"foo"` +- **Offset Reset:** Starts reading from the earliest available +- **Subscribe:** Subscribes to the `users` topic +- **Consume Loop:** Continuously polls for new messages and prints them to the console + +``` box=result title="Expected Console Output" +Consumed message '{"id":"dd5742d1-82ad-4d42-8960-cb21bd02f3e7","name":"Alice","email":"alice@foo.bar"}' offset: 0 partition: 1 +``` + +## Next Steps + +Now that you have a working Kafka mock with producer and consumer, explore these advanced topics: + +{{ card-grid key="cards" }} \ No newline at end of file diff --git a/docs/resources/tutorials/simple-kafka-example.png b/docs/resources/tutorials/simple-kafka-example.png index fbc8fed8fb9c3a695b1d57e052cd6caa7775bf48..1d993c68cdfe5b3f5911318cbd2a8688429ca6cd 100644 GIT binary patch literal 137032 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Ν@0ljA@C#_`!xreNqm;y%# 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�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

      ;t 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 Date: Mon, 23 Feb 2026 09:39:47 +0100 Subject: [PATCH 13/35] feat(webui): enable responsive tables in documentations --- webui/src/composables/markdown-table.ts | 17 +++++++++++++++++ webui/src/composables/markdown.ts | 2 ++ 2 files changed, 19 insertions(+) create mode 100644 webui/src/composables/markdown-table.ts diff --git a/webui/src/composables/markdown-table.ts b/webui/src/composables/markdown-table.ts new file mode 100644 index 000000000..55a6a5264 --- /dev/null +++ b/webui/src/composables/markdown-table.ts @@ -0,0 +1,17 @@ +import type MarkdownIt from "markdown-it" + +export function MarkdownItTable(md: MarkdownIt) { + + // Override table_open + md.renderer.rules.table_open = function (tokens, idx, options, env, self) { + return ( + '

      \n' + + '\n' + ) + } + + // Override table_close + md.renderer.rules.table_close = function (tokens, idx, options, env, self) { + return '
      \n
      \n' + } +}; \ No newline at end of file diff --git a/webui/src/composables/markdown.ts b/webui/src/composables/markdown.ts index 213160973..472273f85 100644 --- a/webui/src/composables/markdown.ts +++ b/webui/src/composables/markdown.ts @@ -9,6 +9,7 @@ import yaml from 'js-yaml' import { MarkdownItBlockquote } from './markdown-blockquote'; import { MarkdownItTabContent } from './markdown-tab-content'; import { MarkdownItTitle } from './markdown-title'; +import { MarkdownItTable } from './markdown-table'; const images = import.meta.glob('/src/assets/docs/**/*.png', {as: 'url', eager: true}) const metadataRegex = /^---([\s\S]*?)---/; @@ -32,6 +33,7 @@ export function useMarkdown(content: string | undefined): {content: string | und .use(MarkdownItTabContent) .use(MarkdownItBox) .use(MarkdownItLinks) + .use(MarkdownItTable) .use(MarkdownItCarousel(metadata)) .use(MarkdownItCard(metadata)) .set({html: true}) From 039de727cba802579146e72e14f337e65200f801 Mon Sep 17 00:00:00 2001 From: marle3003 Date: Mon, 23 Feb 2026 14:59:54 +0100 Subject: [PATCH 14/35] feat(javascript): allow providing a function to set whether handler should be tracked or not --- .../mokapi/eventhandler/eventargs.md | 90 ++++++++- .../blogs/end-to-end-testing-mocked-apis.md | 4 +- js/mokapi/on.go | 34 +++- js/mokapi/on_test.go | 93 +++++++++ npm/types/index.d.ts | 176 +++++++++++++++--- 5 files changed, 350 insertions(+), 47 deletions(-) diff --git a/docs/javascript-api/mokapi/eventhandler/eventargs.md b/docs/javascript-api/mokapi/eventhandler/eventargs.md index 447b6c321..804b91d33 100644 --- a/docs/javascript-api/mokapi/eventhandler/eventargs.md +++ b/docs/javascript-api/mokapi/eventhandler/eventargs.md @@ -8,12 +8,34 @@ description: EventArgs is an object used to configure event handlers registered [`on`](/docs/javascript-api/mokapi/on.md) function when registering an event handler. It allows controlling how and when an event handler is executed. -| Name | Type | Description | -|----------|---------|--------------------------------------------------------------------------------------------------------| -| tags | object | Adds or overrides existing tags that are used in dashboard | -| priority | integer | Defines the execution priority of the event handler. Handlers with a higher value are executed first. | - -If no priority is specified, the default priority is `0`. +
      + + + + + + + + + + + + + + + + + + + + + + + + + +
      NameTypeDescription
      tagsobjectAdds or overrides existing tags that are used in dashboard.
      trackboolean |
      (params) => boolean
      Controls whether this event handler is tracked in the dashboard.
      priorityintegerDefines the execution priority of the event handler. Handlers with a higher value are executed first. If no priority is specified, the default priority is 0.
      +
      ## Example: Adding custom tags @@ -29,6 +51,62 @@ export default function() { } ``` +## Example: Controlling whether an event handler is tracked in the dashboard + +The track field controls whether executions of an event handler appear in the dashboard. + +It supports two modes: +- true / false β€” always track or never track +- a function β€” decide dynamically per request + +### Static tracking + +```javascript +on('http', handler, { track: true }) +``` + +### Dynamic tracking (function) + +```javascript +on('http', handler, { + track: (request, response) => request.key !== '/health' +}) +``` + +### Full example: Delay simulation with tracking + +```javascript +import { on, sleep } from 'mokapi' + +export default () => { + let delay = undefined + + on('http', (request, response) => { + if (request.key === '/simulations/delay') { + switch (request.method) { + case 'PUT': + delay = request.query.duration; + break; + case 'DELETE': + delay = undefined; + break; + } + } + }, { track: true }) + on('http', (request, response) => { + if (!delay) { + sleep(delay); + } + }, { track: () => delay !== undefined } ) +} +``` + +#### Explanation +- The first handler exposes a control endpoint to configure the delay. + - track: true ensures all configuration changes are visible in the dashboard. +- The second handler applies the delay to incoming requests. + - Tracking is enabled only while a delay is active, keeping the dashboard clean when no simulation is running. + ## Example: Controlling execution order with priority When multiple handlers are registered for the same event, the priority diff --git a/docs/resources/blogs/end-to-end-testing-mocked-apis.md b/docs/resources/blogs/end-to-end-testing-mocked-apis.md index 9d5b6b993..4aefbf375 100644 --- a/docs/resources/blogs/end-to-end-testing-mocked-apis.md +++ b/docs/resources/blogs/end-to-end-testing-mocked-apis.md @@ -139,12 +139,12 @@ export default () => { break; } } - }) + }, { track: true }) on('http', (request, response) => { if (!delay) { sleep(delay); } - }, { track: true } ) + }, { track: () => delay !== undefined } ) } ``` diff --git a/js/mokapi/on.go b/js/mokapi/on.go index 2fb2407ce..7eeee3728 100644 --- a/js/mokapi/on.go +++ b/js/mokapi/on.go @@ -15,7 +15,7 @@ import ( type onArgs struct { tags map[string]string - track bool + track func(args ...goja.Value) (bool, error) isTrackSet bool priority int } @@ -32,13 +32,14 @@ func (m *Module) On(event string, do goja.Value, vArgs goja.Value) { return false, err } + var params []goja.Value + for _, v := range ctx.Args { + params = append(params, ArgToJs(v, m.vm)) + } + var r goja.Value r, err = m.loop.RunAsync(func(vm *goja.Runtime) (goja.Value, error) { call, _ := goja.AssertFunction(do) - var params []goja.Value - for _, v := range ctx.Args { - params = append(params, ArgToJs(v, m.vm)) - } v, err := call(goja.Undefined(), params...) if err != nil { return nil, err @@ -55,7 +56,7 @@ func (m *Module) On(event string, do goja.Value, vArgs goja.Value) { } if eventArgs.isTrackSet { - return eventArgs.track, nil + return eventArgs.track(params...) } newHashes, err := getHashes(ctx.Args...) @@ -96,11 +97,26 @@ func getOnArgs(vm *goja.Runtime, args goja.Value) (onArgs, error) { if goja.IsUndefined(v) || goja.IsNull(v) { continue } - if v.ExportType().Kind() != reflect.Bool { + if v.ExportType().Kind() == reflect.Bool { + result.isTrackSet = true + result.track = func(args ...goja.Value) (bool, error) { + return v.ToBoolean(), nil + } + } else if f, ok := goja.AssertFunction(v); ok { + result.isTrackSet = true + result.track = func(args ...goja.Value) (bool, error) { + r, err := f(goja.Undefined(), args...) + if err != nil { + return true, fmt.Errorf("failed to call track function: %v", err) + } + if r.ExportType().Kind() == reflect.Bool { + return r.ToBoolean(), nil + } + return true, fmt.Errorf("unexpected return type for track: %v", util.JsType(r.Export())) + } + } else { return onArgs{}, fmt.Errorf("unexpected type for track: %v", util.JsType(v.Export())) } - result.track = v.ToBoolean() - result.isTrackSet = true case "priority": v := params.Get(k) if goja.IsUndefined(v) || goja.IsNull(v) { diff --git a/js/mokapi/on_test.go b/js/mokapi/on_test.go index c61560a61..67719a382 100644 --- a/js/mokapi/on_test.go +++ b/js/mokapi/on_test.go @@ -138,6 +138,99 @@ func TestModule_On(t *testing.T) { r.Equal(t, false, b) }, }, + { + name: "dynamic track", + test: func(t *testing.T, vm *goja.Runtime, host *enginetest.Host) { + var handler common.EventHandler + host.OnFunc = func(evt string, do common.EventHandler, args common.EventArgs) { + handler = do + } + + _, err := vm.RunString(` + const m = require('mokapi') + let nextTrack = true + m.on('http', (param) => { param['foo'] = false }, + { + track: () => { + const track = nextTrack + nextTrack = false + return track + } + } + ) + `) + r.NoError(t, err) + + // first call + b, err := handler(&common.EventContext{Args: []any{map[string]bool{"foo": true}}}) + r.NoError(t, err) + r.True(t, b) + + // second call + b, err = handler(&common.EventContext{Args: []any{map[string]bool{"foo": true}}}) + r.NoError(t, err) + r.False(t, b) + }, + }, + { + name: "dynamic track using parameters", + test: func(t *testing.T, vm *goja.Runtime, host *enginetest.Host) { + var handler common.EventHandler + host.OnFunc = func(evt string, do common.EventHandler, args common.EventArgs) { + handler = do + } + + _, err := vm.RunString(` + const m = require('mokapi') + let nextTrack = true + m.on('http', (param) => { param['foo'] = !param['foo'] }, + { + track: (param) => { + return param['foo'] + } + } + ) + `) + r.NoError(t, err) + + // first call + b, err := handler(&common.EventContext{Args: []any{map[string]bool{"foo": false}}}) + r.NoError(t, err) + r.True(t, b) + + // second call + b, err = handler(&common.EventContext{Args: []any{map[string]bool{"foo": true}}}) + r.NoError(t, err) + r.False(t, b) + }, + }, + { + name: "dynamic track returning wrong type", + test: func(t *testing.T, vm *goja.Runtime, host *enginetest.Host) { + var handler common.EventHandler + host.OnFunc = func(evt string, do common.EventHandler, args common.EventArgs) { + handler = do + } + + _, err := vm.RunString(` + const m = require('mokapi') + let nextTrack = true + m.on('http', (param) => { param['foo'] = !param['foo'] }, + { + track: (param) => { + return 123 + } + } + ) + `) + r.NoError(t, err) + + // first call + b, err := handler(&common.EventContext{Args: []any{map[string]bool{"foo": false}}}) + r.EqualError(t, err, "unexpected return type for track: Integer") + r.True(t, b) + }, + }, { name: "event handler throws error", test: func(t *testing.T, vm *goja.Runtime, host *enginetest.Host) { diff --git a/npm/types/index.d.ts b/npm/types/index.d.ts index bcbff1719..a0dc7912d 100644 --- a/npm/types/index.d.ts +++ b/npm/types/index.d.ts @@ -1,6 +1,12 @@ /** * Mokapi JavaScript API - * https://mokapi.io/docs/welcome + * + * This module exposes the core scripting API for Mokapi. + * It allows you to intercept and manipulate protocol events (HTTP, Kafka, LDAP, SMTP), + * schedule jobs, generate mock data, and share state between scripts. + * + * Documentation: + * https://mokapi.io/docs/javascript-api/overview */ import "./faker"; @@ -14,10 +20,14 @@ import "./file" /** * Attaches an event handler for the given event. + * + * Event handlers are executed in priority order whenever the event occurs. + * Multiple handlers can be registered for the same event. + * * https://mokapi.io/docs/javascript-api/mokapi/on - * @param event Event type such as http - * @param handler An EventHandler to execute when the event is triggered - * @param args EventArgs object contains additional event arguments. + * @param event Event type such as `http`, `kafka`, `ldap`, or `smtp` + * @param handler Function executed when the event is triggered + * @param args Optional event configuration such as priority, tracking, or tags * @example * export default function() { * on('http', function(request, response) { @@ -30,7 +40,7 @@ import "./file" * }) * } */ -export function on(event: T, handler: EventHandler[T], args?: EventArgs): void; +export function on(event: T, handler: EventHandler[T], args?: TypedEventArgs[T]): void; /** * Schedules a new periodic job with interval. @@ -110,16 +120,18 @@ export interface EventHandler { } /** - * HttpEventHandler is a function that is executed when an HTTP event is triggered. + * HttpEventHandler is invoked for every incoming HTTP request. + * + * Handlers may modify the response object to influence the outgoing response. + * The return value is ignored. + * * https://mokapi.io/docs/javascript-api/mokapi/eventhandler/httpeventhandler * @example * export default function() { * on('http', function(request, response) { * if (request.operationId === 'time') { * response.body = date() - * return true * } - * return false * }) * } */ @@ -189,20 +201,28 @@ export interface HttpResponse { data: any; /** - * Rebuilds the entire HTTP response using the OpenAPI response definition for the given status code and content type - * @example - * import { on } from 'mokapi' + * Rebuilds the entire HTTP response using the OpenAPI response definition. + * + * This resets the status code, headers, and response body/data + * based on the OpenAPI specification. + * + * - If `statusCode` is omitted, the OpenAPI `default` response is used. + * - If `contentType` is omitted, the first defined content type for the + * selected status code is used. + * + * Use this when switching to a different response (e.g. error handling) + * while keeping the response schema valid. + * + * @throws Error if the status code or content type is not defined in the OpenAPI spec * - * export default function() { - * on('http', (request, response) => { - * if (request.path.petId === 10) { - * // Switch to a different OpenAPI response. - * response.rebuild(404, 'application/json') - * response.data.message = 'Pet not found' - * } - * }) - * } - * */ + * @example + * on('http', (request, response) => { + * if (request.path.petId === 10) { + * response.rebuild(404) + * response.data.message = 'Pet not found' + * } + * }) + */ rebuild: (statusCode?: number, contentType?: string) => void; } @@ -465,6 +485,55 @@ export interface EventArgs { */ tags?: { [key: string]: string }; + /** + * Defines the execution order of the event handler. + * + * Event handlers are executed in descending priority order. + * Handlers with the same priority are executed in registration order. + * + * Handlers with higher priority values run first. + * Handlers with lower priority values run later. + * + * Use negative priorities (e.g. -1) to run a handler after + * the response has been fully populated by other handlers, + * such as for logging or recording purposes. + */ + priority?: number; +} + +/** + * TypedEventArgs provides strongly typed argument objects + * for each supported event type. + * + * It is mainly used internally to map event names + * (e.g. `http`, `kafka`) to their corresponding argument types. + */ +export interface TypedEventArgs { + /** + * Arguments for HTTP event handlers. + */ + http: HttpEventArgs; + /** + * Arguments for Kafka event handlers. + */ + kafka: KafkaEventArgs; + /** + * Arguments for LDAP event handlers. + */ + ldap: LdapEventArgs; + /** + * Arguments for SMTP event handlers. + */ + smtp: SmtpEventArgs; +} + +/** + * Configuration options for HTTP event handlers. + * + * These arguments control execution behavior such as + * priority, tagging, and dashboard tracking. + */ +export interface HttpEventArgs extends EventArgs { /** * Controls whether this event handler is tracked in the dashboard. * @@ -473,19 +542,61 @@ export interface EventArgs { * - undefined: Mokapi determines tracking automatically based on * whether the response object was modified by the handler */ - track?: boolean; + track?: boolean | ((request: HttpRequest, response: HttpResponse) => boolean); +} +/** + * Configuration options for Kafka event handlers. + * + * These arguments control execution behavior such as + * priority, tagging, and dashboard tracking. + */ +export interface KafkaEventArgs extends EventArgs { /** - * Defines the execution order of the event handler. + * Controls whether this event handler is tracked in the dashboard. * - * Handlers with higher priority values run first. - * Handlers with lower priority values run later. + * - true: always track this handler + * - false: never track this handler + * - undefined: Mokapi determines tracking automatically based on + * whether the message was modified or acknowledged by the handler + */ + track?: boolean | ((message: KafkaEventMessage) => boolean); +} + +/** + * Configuration options for LDAP event handlers. + * + * These arguments control execution behavior such as + * priority, tagging, and dashboard tracking. + */ +export interface LdapEventArgs extends EventArgs { + /** + * Controls whether this event handler is tracked in the dashboard. * - * Use negative priorities (e.g. -1) to run a handler after - * the response has been fully populated by other handlers, - * such as for logging or recording purposes. + * - true: always track this handler + * - false: never track this handler + * - undefined: Mokapi determines tracking automatically based on + * whether the response object was modified by the handler */ - priority?: number; + track?: boolean | ((request: LdapSearchRequest, response: LdapSearchResponse) => boolean); +} + +/** + * Configuration options for SMTP event handlers. + * + * These arguments control execution behavior such as + * priority, tagging, and dashboard tracking. + */ +export interface SmtpEventArgs extends EventArgs { + /** + * Controls whether this event handler is tracked in the dashboard. + * + * - true: always track this handler + * - false: never track this handler + * - undefined: Mokapi determines tracking automatically based on + * whether the message was processed or modified by the handler + */ + track?: boolean | ((record: SmtpEventMessage) => boolean); } /** @@ -500,6 +611,10 @@ export interface EventArgs { */ export type ScheduledEventHandler = () => void | Promise; +/** +* Configuration options for scheduled event handlers +* created via `every` or `cron`. +*/ export interface ScheduledEventArgs { /** * Adds or overrides existing tags used in dashboard @@ -663,7 +778,8 @@ export interface SharedMemory { * The `mokapi.shared` object provides a way to persist and share * data between multiple scripts running in the same Mokapi instance. * - * Values are stored in memory and shared across all scripts. + * Values are stored in memory and shared across all scripts + * within the same Mokapi process. * This allows you to coordinate state, cache data, or simulate * application-level variables without using global variables. * All values are persisted for the lifetime of the Mokapi process. From 0ca99202d58296128d23ae390e01917491324343 Mon Sep 17 00:00:00 2001 From: marle3003 Date: Mon, 23 Feb 2026 15:25:34 +0100 Subject: [PATCH 15/35] feat(javascript): use default value if parameter is not present in HTTP request --- providers/openapi/parameter_cookie.go | 12 +++-- providers/openapi/parameter_cookie_test.go | 19 ++++++- providers/openapi/parameter_header.go | 3 ++ providers/openapi/parameter_header_test.go | 17 ++++++ providers/openapi/parameter_http_test.go | 3 +- providers/openapi/parameter_query.go | 36 +++++++++---- providers/openapi/parameter_query_test.go | 61 ++++++++++++++++++++++ 7 files changed, 134 insertions(+), 17 deletions(-) diff --git a/providers/openapi/parameter_cookie.go b/providers/openapi/parameter_cookie.go index f56a04e7f..bae6609d0 100644 --- a/providers/openapi/parameter_cookie.go +++ b/providers/openapi/parameter_cookie.go @@ -1,7 +1,6 @@ package openapi import ( - "errors" "fmt" "mokapi/providers/openapi/schema" "net/http" @@ -10,11 +9,14 @@ import ( func parseCookie(param *Parameter, r *http.Request) (*RequestParameterValue, error) { cookie, err := r.Cookie(param.Name) - if err != nil || (len(cookie.Value) == 0 && param.Required) { - if errors.Is(err, http.ErrNoCookie) && !param.Required { - return nil, nil + if err != nil || len(cookie.Value) == 0 { + if param.Required { + return nil, fmt.Errorf("parameter is required") } - return nil, fmt.Errorf("parameter is required") + if param.Schema != nil && param.Schema.Default != nil { + return &RequestParameterValue{Value: param.Schema.Default}, nil + } + return nil, nil } rp := &RequestParameterValue{Raw: &(cookie.Value), Value: cookie.Value} diff --git a/providers/openapi/parameter_cookie_test.go b/providers/openapi/parameter_cookie_test.go index 2f670023d..fa8439a8d 100644 --- a/providers/openapi/parameter_cookie_test.go +++ b/providers/openapi/parameter_cookie_test.go @@ -1,12 +1,13 @@ package openapi_test import ( - "github.com/stretchr/testify/require" "mokapi/providers/openapi" "mokapi/providers/openapi/schema/schematest" "net/http" "net/http/httptest" "testing" + + "github.com/stretchr/testify/require" ) func TestFromRequest_Cookie(t *testing.T) { @@ -112,6 +113,22 @@ func TestFromRequest_Cookie(t *testing.T) { require.EqualError(t, err, "parse cookie parameter 'debug' failed: parameter is required") }, }, + { + name: "cookie with default", + params: openapi.Parameters{{Value: &openapi.Parameter{ + Type: openapi.ParameterCookie, + Name: "debug", + Schema: schematest.New("integer", schematest.WithDefault(10)), + }}}, + request: func() *http.Request { + r := httptest.NewRequest(http.MethodGet, "https://foo.bar", nil) + return r + }, + test: func(t *testing.T, result *openapi.RequestParameters, err error) { + require.NoError(t, err) + require.Equal(t, 10, result.Cookie["debug"].Value) + }, + }, { name: "invalid value", params: openapi.Parameters{{Value: &openapi.Parameter{ diff --git a/providers/openapi/parameter_header.go b/providers/openapi/parameter_header.go index c5ab2d7e1..2f27b824e 100644 --- a/providers/openapi/parameter_header.go +++ b/providers/openapi/parameter_header.go @@ -14,6 +14,9 @@ func parseHeader(param *Parameter, r *http.Request) (*RequestParameterValue, err if param.Required { return nil, fmt.Errorf("parameter is required") } + if param.Schema != nil && param.Schema.Default != nil { + return &RequestParameterValue{Value: param.Schema.Default}, nil + } return nil, nil } diff --git a/providers/openapi/parameter_header_test.go b/providers/openapi/parameter_header_test.go index 2d978bc4b..9ea06ed0c 100644 --- a/providers/openapi/parameter_header_test.go +++ b/providers/openapi/parameter_header_test.go @@ -73,6 +73,23 @@ func TestFromRequest_Header(t *testing.T) { require.Equal(t, "1", *cookie.Raw) }, }, + { + name: "with default", + params: openapi.Parameters{{Value: &openapi.Parameter{ + Type: openapi.ParameterHeader, + Name: "debug", + Required: false, + Schema: schematest.New("integer", schematest.WithDefault(10)), + }}}, + request: func() *http.Request { + r := httptest.NewRequest(http.MethodGet, "https://foo.bar", nil) + return r + }, + test: func(t *testing.T, result *openapi.RequestParameters, err error) { + require.NoError(t, err) + require.Equal(t, 10, result.Header["debug"].Value) + }, + }, { name: "not required header and not sent", params: openapi.Parameters{{Value: &openapi.Parameter{ diff --git a/providers/openapi/parameter_http_test.go b/providers/openapi/parameter_http_test.go index b2140e341..1beec12b4 100644 --- a/providers/openapi/parameter_http_test.go +++ b/providers/openapi/parameter_http_test.go @@ -1,11 +1,12 @@ package openapi import ( - "github.com/stretchr/testify/require" "mokapi/providers/openapi/schema/schematest" "net/http" "net/url" "testing" + + "github.com/stretchr/testify/require" ) func TestParseParam(t *testing.T) { diff --git a/providers/openapi/parameter_query.go b/providers/openapi/parameter_query.go index 4baa56fb3..41aec7182 100644 --- a/providers/openapi/parameter_query.go +++ b/providers/openapi/parameter_query.go @@ -27,7 +27,11 @@ func parseQuery(param *Parameter, u *url.URL) (*RequestParameterValue, error) { if param.Required { return nil, fmt.Errorf("parameter is required") } - return &RequestParameterValue{}, err + v := &RequestParameterValue{} + if param.Schema != nil && param.Schema.Default != nil { + v.Value = param.Schema.Default + } + return v, err } raw := u.Query().Get(param.Name) rp := &RequestParameterValue{Raw: &raw} @@ -46,15 +50,21 @@ func parseQuery(param *Parameter, u *url.URL) (*RequestParameterValue, error) { func parseQueryObject(param *Parameter, u *url.URL) (string, interface{}, error) { if param.Style == "form" && param.IsExplode() { raw := u.RawQuery - if len(raw) == 0 && param.Required { - return "", nil, fmt.Errorf("parameter is required") + if len(raw) == 0 { + if param.Required { + return "", nil, fmt.Errorf("parameter is required") + } + return "", param.Schema.Default, nil } i, err := parseExplodeObject(param, raw, "&", url.QueryUnescape) return raw, i, err } else if param.Style == "form" { raw := u.Query().Get(param.Name) - if len(raw) == 0 && param.Required { - return "", nil, fmt.Errorf("parameter is required") + if len(raw) == 0 { + if param.Required { + return "", nil, fmt.Errorf("parameter is required") + } + return "", param.Schema.Default, nil } i, err := parseUnExplodeObject(param, raw, ",") return raw, i, err @@ -78,8 +88,11 @@ func parseQueryObject(param *Parameter, u *url.URL) (string, interface{}, error) obj[name] = v } } - if len(raw.String()) == 0 && param.Required { - return "", nil, fmt.Errorf("parameter is required") + if len(raw.String()) == 0 { + if param.Required { + return "", nil, fmt.Errorf("parameter is required") + } + return "", param.Schema.Default, nil } return raw.String(), obj, nil @@ -106,8 +119,11 @@ func parseQueryArray(p *Parameter, u *url.URL) (*string, any, error) { values = strings.Split(raw, ",") } } - + i, err := parseArray(p, values) + return &raw, i, err + } + if p.Schema != nil && p.Schema.Default != nil { + return nil, p.Schema.Default, nil } - i, err := parseArray(p, values) - return &raw, i, err + return &raw, nil, nil } diff --git a/providers/openapi/parameter_query_test.go b/providers/openapi/parameter_query_test.go index d8781b712..36d9bbaac 100644 --- a/providers/openapi/parameter_query_test.go +++ b/providers/openapi/parameter_query_test.go @@ -93,6 +93,27 @@ func TestParseQuery(t *testing.T) { require.EqualError(t, err, "parse query parameter 'id' failed: parameter is required") }, }, + { + name: "no query parameter with default", + params: openapi.Parameters{ + {Value: &openapi.Parameter{ + Name: "id", + Type: openapi.ParameterQuery, + Schema: schematest.New("integer", schematest.WithDefault(10)), + Style: "form", + Explode: explode(false), + }}, + }, + request: func() *http.Request { + return httptest.NewRequest(http.MethodGet, "https://foo.bar", nil) + }, + test: func(t *testing.T, result *openapi.RequestParameters, err error) { + require.NoError(t, err) + require.Len(t, result.Query, 1) + require.Equal(t, 10, result.Query["id"].Value) + require.Nil(t, result.Query["id"].Raw) + }, + }, { name: "integer array as form and explode", params: openapi.Parameters{ @@ -208,6 +229,25 @@ func TestParseQuery(t *testing.T) { require.Equal(t, []interface{}{int64(3), int64(4), int64(5)}, result.Query["id"].Value) }, }, + { + name: "array with default", + params: openapi.Parameters{ + {Value: &openapi.Parameter{ + Name: "id", + Type: openapi.ParameterQuery, + Schema: schematest.New("array", schematest.WithDefault([]any{1, 2, 3})), + Style: "pipeDelimited", + Explode: explode(false), + }}, + }, + request: func() *http.Request { + return httptest.NewRequest(http.MethodGet, "https://foo.bar", nil) + }, + test: func(t *testing.T, result *openapi.RequestParameters, err error) { + require.NoError(t, err) + require.Equal(t, []any{1, 2, 3}, result.Query["id"].Value) + }, + }, { name: "object explode", params: openapi.Parameters{ @@ -447,6 +487,27 @@ func TestParseQuery(t *testing.T) { require.EqualError(t, err, "parse query parameter 'id' failed: parameter is required") }, }, + { + name: "object with default", + params: openapi.Parameters{ + {Value: &openapi.Parameter{ + Name: "id", + Type: openapi.ParameterQuery, + Schema: schematest.New("object", + schematest.WithProperty("role", schematest.New("string")), + schematest.WithProperty("firstName", schematest.New("string")), + schematest.WithDefault(map[string]any{"role": "admin", "firstName": "Alex"}), + ), + Style: "form", + }}, + }, + request: func() *http.Request { + return httptest.NewRequest(http.MethodGet, "https://foo.bar", nil) + }, + test: func(t *testing.T, result *openapi.RequestParameters, err error) { + require.Equal(t, map[string]any{"role": "admin", "firstName": "Alex"}, result.Query["id"].Value) + }, + }, { name: "boolean value true", params: openapi.Parameters{ From 239fecd2db4ee00766c6c0ec9c0a9b7e272a5ccf Mon Sep 17 00:00:00 2001 From: marle3003 Date: Mon, 23 Feb 2026 15:53:54 +0100 Subject: [PATCH 16/35] fix(swagger): add missing parameter attribute to conversion default, maxLength, minLength, enum, multipleOf --- providers/swagger/config.go | 4 ++-- providers/swagger/convert.go | 5 +++++ providers/swagger/convert_test.go | 20 ++++++++++++++++++++ 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/providers/swagger/config.go b/providers/swagger/config.go index 050e0a590..4d244078c 100644 --- a/providers/swagger/config.go +++ b/providers/swagger/config.go @@ -95,9 +95,9 @@ type Parameter struct { MultipleOf *float64 `yaml:"multipleOf,omitempty" json:"multipleOf,omitempty"` Minimum *float64 `yaml:"minimum,omitempty" json:"minimum,omitempty"` Maximum *float64 `yaml:"maximum,omitempty" json:"maximum,omitempty"` - MaxLength *uint64 `yaml:"maxLength,omitempty" json:"maxLength,omitempty"` + MaxLength *int `yaml:"maxLength,omitempty" json:"maxLength,omitempty"` MaxItems *int `yaml:"maxItems,omitempty" json:"maxItems,omitempty"` - MinLength int64 `yaml:"minLength,omitempty" json:"minLength,omitempty"` + MinLength *int `yaml:"minLength,omitempty" json:"minLength,omitempty"` MinItems int `yaml:"minItems,omitempty" json:"minItems,omitempty"` Default interface{} `yaml:"default,omitempty" json:"default,omitempty"` } diff --git a/providers/swagger/convert.go b/providers/swagger/convert.go index ab9c3dc99..2a9aef143 100644 --- a/providers/swagger/convert.go +++ b/providers/swagger/convert.go @@ -278,13 +278,18 @@ func convertParameter(p *Parameter) *openapi.ParameterRef { Format: p.Format, Pattern: p.Pattern, Items: p.Items, + Default: p.Default, Minimum: p.Minimum, Maximum: p.Maximum, ExclusiveMinimum: jsonSchema.NewUnionTypeB[float64, bool](p.ExclusiveMin), ExclusiveMaximum: jsonSchema.NewUnionTypeB[float64, bool](p.ExclusiveMin), + MaxLength: p.MaxLength, + MinLength: p.MinLength, UniqueItems: p.UniqueItems, MinItems: &p.MinItems, MaxItems: p.MaxItems, + Enum: p.Enum, + MultipleOf: p.MultipleOf, }, Required: p.Required, Deprecated: p.Deprecated, diff --git a/providers/swagger/convert_test.go b/providers/swagger/convert_test.go index c16e15354..eb35b839a 100644 --- a/providers/swagger/convert_test.go +++ b/providers/swagger/convert_test.go @@ -325,6 +325,26 @@ func TestConvert(t *testing.T) { require.Equal(t, "header", get.Parameters[0].Value.Type.String()) }, }, + { + name: "operation parameter type", + config: `{"swagger": "2.0","paths": {"/foo": {"get": {"parameters": [{"in":"header","name":"id","type":"string"}]}}}}`, + test: func(t *testing.T, config *openapi.Config) { + require.Contains(t, config.Paths, "/foo") + get := config.Paths["/foo"].Value.Get + require.Equal(t, "header", get.Parameters[0].Value.Type.String()) + require.Equal(t, "string", get.Parameters[0].Value.Schema.Type.String()) + }, + }, + { + name: "operation parameter default value", + config: `{"swagger": "2.0","paths": {"/foo": {"get": {"parameters": [{"in":"header","name":"id","default":10}]}}}}`, + test: func(t *testing.T, config *openapi.Config) { + require.Contains(t, config.Paths, "/foo") + get := config.Paths["/foo"].Value.Get + require.Equal(t, "header", get.Parameters[0].Value.Type.String()) + require.Equal(t, float64(10), get.Parameters[0].Value.Schema.Default) + }, + }, { name: "operation default response", config: `{"swagger": "2.0", "paths": {"/foo": {"get": {"responses": { "default": { "description": "default" } }}}}}`, From b5b433af2733c513d46c88048baa065d223dd37a Mon Sep 17 00:00:00 2001 From: marle3003 Date: Mon, 23 Feb 2026 17:52:10 +0100 Subject: [PATCH 17/35] feat(webui): improve displaying HTTP event request parameters --- .../dashboard/http/HttpEventParameters.vue | 46 ++++++++++++++----- .../src/components/dashboard/http/Request.vue | 18 +++++++- 2 files changed, 52 insertions(+), 12 deletions(-) diff --git a/webui/src/components/dashboard/http/HttpEventParameters.vue b/webui/src/components/dashboard/http/HttpEventParameters.vue index ecfd29a86..867bdaf48 100644 --- a/webui/src/components/dashboard/http/HttpEventParameters.vue +++ b/webui/src/components/dashboard/http/HttpEventParameters.vue @@ -1,10 +1,16 @@