{"ref":"artifact:ui5-middleware-code-coverage","page":"/artifacts/ui5-middleware-code-coverage","json":"/artifacts/ui5-middleware-code-coverage.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"ui5-middleware-code-coverage","name":"@ui5/middleware-code-coverage","artifact_type":"build-tool","ecosystem":"ui5","domain":"developer-experience","origin_ring":"sap-official","description":{"one_line":"UI5 CLI server middleware that instruments a project's JavaScript files with Istanbul as the dev server sends them, and generates the coverage report from the records the OpenUI5 QUnit tests send back.","short":"UI5 CLI middleware for Istanbul code coverage","what_it_solves":"Client-side code coverage needs the source instrumented before the browser runs the tests. This middleware intercepts every `.js` file before it is sent to the client and instruments it on the fly with Istanbul, creating a source map as it does. A test page swaps the QUnit coverage module `qunit-coverage.js` for `qunit-coverage-istanbul.js`, a file of the `sap.ui.core` library that collects the coverage records while the tests run and sends them to the middleware, which generates the report. Its options set the report type (`html` by default) and directory (`./tmp/coverage-reports`), the `watermarks` thresholds, `excludePatterns` and the instrumenter's settings. It is entered under `server/customMiddleware` in `ui5.yaml`, needs [@ui5/cli](artifact:sap-ui5-cli) v3 and is meant for UI5 1.113 and above; [@ui5/sample-app](artifact:ui5-sample-app) lists it as a development dependency."},"links":{"npm":"https://www.npmjs.com/package/@ui5/middleware-code-coverage","repo":"https://github.com/UI5/cli-extensions/tree/main/packages/middleware-code-coverage"},"identity":{"license":"Apache-2.0"},"source_available":true,"compat":{"runtimes":["node"]},"type_properties":{"distribution":{"value":["npm"],"sources":[{"url":"https://github.com/UI5/cli-extensions/tree/main/packages/middleware-code-coverage","title":"UI5/cli-extensions — middleware-code-coverage README, Install","checked":"2026-10-19","quote":"npm install @ui5/middleware-code-coverage --save-dev"}]}},"provides":[{"capability":"capability:ui5-testing","what_it_does":"Adds client-side coverage to the QUnit tests of a UI5 project: the middleware instruments the served `.js` files with Istanbul, the test page loads `qunit-coverage-istanbul.js` in place of `qunit-coverage.js`, and the middleware turns the records the tests send into a report.","sources":[{"url":"https://github.com/UI5/cli-extensions/tree/main/packages/middleware-code-coverage","title":"UI5/cli-extensions — middleware-code-coverage README, opening","checked":"2026-10-19","quote":"This makes it easy to enable client-side coverage determination."},{"url":"https://github.com/UI5/cli-extensions/tree/main/packages/middleware-code-coverage","title":"UI5/cli-extensions — middleware-code-coverage README, OpenUI5 QUnit Integration","checked":"2026-10-19","quote":"Change the qunit coverage module `qunit-coverage.js` to `qunit-coverage-istanbul.js` in your test html files"},{"url":"https://github.com/UI5/cli-extensions/tree/main/packages/middleware-code-coverage","title":"UI5/cli-extensions — middleware-code-coverage README, How It Works","checked":"2026-10-19","quote":"After the tests are executed, `qunit-coverage-istanbul.js` sends this data to the middleware,"}]},{"capability":"capability:ui5-build-tooling","what_it_does":"A custom server middleware for the UI5 CLI's dev server: it adds an HTTP endpoint and instruments every `.js` file on its way to the client.","sources":[{"url":"https://github.com/UI5/cli-extensions/tree/main/packages/middleware-code-coverage","title":"UI5/cli-extensions — middleware-code-coverage README, How It Works","checked":"2026-10-19","quote":"The middleware adds an HTTP endpoint to the development server."},{"url":"https://github.com/UI5/cli-extensions/tree/main/packages/middleware-code-coverage","title":"UI5/cli-extensions — middleware-code-coverage README, How It Works","checked":"2026-10-19","quote":"The custom middleware intercepts every `.js`-file before it is sent to the client."}]}],"requires":[{"ref":"artifact:sap-ui5-cli","requirement":"required","for":"The dev server it plugs into as a custom server middleware; the README names UI5 CLI v3 as the minimum.","sources":[{"url":"https://github.com/UI5/cli-extensions/tree/main/packages/middleware-code-coverage","title":"UI5/cli-extensions — middleware-code-coverage README, Requirements","checked":"2026-10-19","quote":"This middleware requires UI5 CLI v3 and is meant for UI5 1.113 and above."}]}],"maintainers":["actor:ui5"],"drafted_with_ai":true,"provenance":{"discovered_via":[{"source":"source:curator"}],"first_seen":"2026-10-19"},"contributors":["actor:codeworrior","actor:d3xter666","actor:devtomtom","actor:flovogt","actor:matz3","actor:maxreichmann","actor:openui5bot","actor:randombyte","actor:werwolf2303"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"good","evidence":"2 months since release"},{"label":"Continuity","tier":"good","evidence":"12 contributors, 2 publishers, org-owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-10, not archived"}],"compatibility":[{"label":"Declared for","tier":"unknown","evidence":"no UI5 release lines in the atlas"},{"label":"Survived majors","tier":"unknown","evidence":"no UI5 release lines in the atlas"},{"label":"Maintainer's CI","tier":"good","evidence":"REUSE green, 2026-10-25"}],"practice":[{"label":"Tests","tier":"good","evidence":"19 test files, npm test"},{"label":"Docs","tier":"good","evidence":"docs/ with 2 pages, README 9 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":9628,"unit":"installs/week"},{"value":9,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-25","latest_version":"2.0.4","majors":{"1":{"version":"1.0.0","date":"2023-03-22"},"2":{"version":"2.0.0","date":"2024-07-25"}},"license":"Apache-2.0","first_release":"2023-03-22","last_release":"2026-08-18","releases":11,"cadence_days":90,"maintainers":2,"repository":"git+ssh://git@github.com/UI5/cli-extensions.git","repository_directory":"packages/middleware-code-coverage","peer_cds":null,"dependencies":8,"node_engine":"^20.11.0 || >=22.0.0","test_script":true,"types":false,"downloads_weekly":9628,"downloads_monthly":67166,"stars":9,"forks":2,"open_issues":4,"archived":false,"pushed_at":"2026-10-25","license_spdx":"Apache-2.0","org_owned":true,"default_branch":"main","created_at":"2022-12-13T11:42:51Z","open_prs":3,"tree_truncated":false,"test_files":19,"workflows":6,"other_ci":false,"readme_bytes":9357,"docs_files":2,"changelog":false,"license_file":true,"dts_files":0,"first_commit":"2022-12-29","last_commit":"2026-10-25","commits":275,"contributors":12,"ci_status":"success","ci_run_at":"2026-10-25","ci_workflow":"REUSE","ci_event":"push","readme_path":"packages/middleware-code-coverage/README.md","readme_sha":"b278d1e954efe8020a4c25d26aa4912e8f1fbf82","months_since_release":2,"dormant":false,"repo_read":"2026-10-25"},"release_notes":{"license":"Apache-2.0","quotable":true,"source":{"kind":"npm","path":"CHANGELOG.md","version":"2.0.4","url":"https://github.com/UI5/cli-extensions/blob/main/packages/middleware-code-coverage/CHANGELOG.md"},"format":"conventional","releases":[{"version":"2.0.4","date":"2026-08-18","date_source":"heading","heading":"2.0.4 (2026-08-18)","url":"https://github.com/UI5/cli-extensions/blob/main/packages/middleware-code-coverage/CHANGELOG.md#204-2026-08-18","sections":[{"kind":"fix","heading":"Bug Fixes","items":1},{"kind":"dependencies","heading":"Dependencies","items":2}],"hash":"ae4d1e4ceaca4cdd"},{"version":"2.0.3","date":"2026-01-28","date_source":"heading","heading":"2.0.3 (2026-01-28)","url":"https://github.com/UI5/cli-extensions/blob/main/packages/middleware-code-coverage/CHANGELOG.md#203-2026-01-28","sections":[{"kind":"fix","heading":"Bug Fixes","items":1},{"kind":"dependencies","heading":"Dependencies","items":2}],"hash":"f18117a026593489"},{"version":"2.0.2","date":"2025-10-20","date_source":"heading","heading":"2.0.2 (2025-10-20)","url":"https://github.com/UI5/cli-extensions/blob/main/packages/middleware-code-coverage/CHANGELOG.md#202-2025-10-20","sections":[{"kind":"dependencies","heading":"Dependencies","items":4}],"hash":"d5e7a18fba44b740"},{"version":"2.0.1","date":"2024-09-20","date_source":"heading","heading":"2.0.1 (2024-09-20)","url":"https://github.com/UI5/cli-extensions/blob/main/packages/middleware-code-coverage/CHANGELOG.md#201-2024-09-20","sections":[{"kind":"dependencies","heading":"Dependencies","items":3}],"hash":"686a65b4fbdfb5e0"},{"version":"2.0.0","date":"2024-07-25","date_source":"heading","heading":"2.0.0 (2024-07-25)","url":"https://github.com/UI5/cli-extensions/blob/main/packages/middleware-code-coverage/CHANGELOG.md#200-2024-07-25","sections":[{"kind":"breaking","heading":"⚠ BREAKING CHANGES","items":1},{"kind":"feature","heading":"Features","items":1},{"kind":"dependencies","heading":"Dependencies","items":2}],"hash":"3d5e05a4791b25f1"},{"version":"1.1.1","date":"2023-11-24","date_source":"heading","heading":"1.1.1 (2023-11-24)","url":"https://github.com/UI5/cli-extensions/blob/main/packages/middleware-code-coverage/CHANGELOG.md#111-2023-11-24","sections":[{"kind":"fix","heading":"Bug Fixes","items":1},{"kind":"dependencies","heading":"Dependencies","items":2}],"hash":"53facfc96690ffcc"},{"version":"1.1.0","date":"2023-09-19","date_source":"heading","heading":"1.1.0 (2023-09-19)","url":"https://github.com/UI5/cli-extensions/blob/main/packages/middleware-code-coverage/CHANGELOG.md#110-2023-09-19","sections":[{"kind":"feature","heading":"Features","items":1},{"kind":"dependencies","heading":"Dependencies","items":4}],"hash":"d43036885c64648f"},{"version":"1.0.3","date":"2023-04-18","date_source":"heading","heading":"1.0.3 (2023-04-18)","url":"https://github.com/UI5/cli-extensions/blob/main/packages/middleware-code-coverage/CHANGELOG.md#103-2023-04-18","sections":[{"kind":"fix","heading":"Bug Fixes","items":1}],"hash":"c6df50fa3f3f46b1"},{"version":"1.0.2","date":"2023-04-14","date_source":"heading","heading":"1.0.2 (2023-04-14)","url":"https://github.com/UI5/cli-extensions/blob/main/packages/middleware-code-coverage/CHANGELOG.md#102-2023-04-14","sections":[{"kind":"fix","heading":"Bug Fixes","items":1}],"hash":"cd9d8d61b05a1719"},{"version":"1.0.1","date":"2023-03-28","date_source":"heading","heading":"1.0.1 (2023-03-28)","url":"https://github.com/UI5/cli-extensions/blob/main/packages/middleware-code-coverage/CHANGELOG.md#101-2023-03-28","sections":[{"kind":"fix","heading":"Bug Fixes","items":1}],"hash":"960629b7e327fe03"},{"version":"1.0.0","date":"2023-03-22","date_source":"heading","heading":"1.0.0 (2023-03-22)","url":"https://github.com/UI5/cli-extensions/blob/main/packages/middleware-code-coverage/CHANGELOG.md#100-2023-03-22","sections":[{"kind":"feature","heading":"Features","items":1}],"hash":"14ec82b386384fbd"}],"versions":[{"version":"2.0.4","date":"2026-08-18"},{"version":"2.0.3","date":"2026-01-28"},{"version":"2.0.2","date":"2025-10-30"},{"version":"2.0.1","date":"2024-09-20"},{"version":"2.0.0","date":"2024-07-25"},{"version":"1.1.1","date":"2023-11-24"},{"version":"1.1.0","date":"2023-09-19"},{"version":"1.0.3","date":"2023-04-18"},{"version":"1.0.2","date":"2023-04-14"},{"version":"1.0.1","date":"2023-03-28"},{"version":"1.0.0","date":"2023-03-22"}],"crawled_at":"2026-10-25"},"edges":{"maintainers":[{"ref":"actor:ui5","name":"UI5","json":"/actors/ui5.json"}],"contributors":[{"ref":"actor:flovogt","name":"Florian Vogt","json":"/actors/flovogt.json"},{"ref":"actor:codeworrior","name":"Frank Weigel","json":"/actors/codeworrior.json"},{"ref":"actor:werwolf2303","name":"Gianluca Beil","json":"/actors/werwolf2303.json"},{"ref":"actor:matz3","name":"Matthias Oßwald","json":"/actors/matz3.json"},{"ref":"actor:maxreichmann","name":"Max Reichmann","json":"/actors/maxreichmann.json"},{"ref":"actor:randombyte","name":"Merlin Beutlberger","json":"/actors/randombyte.json"},{"ref":"actor:openui5bot","name":"OpenUI5 Bot","json":"/actors/openui5bot.json"},{"ref":"actor:devtomtom","name":"Tommy Vinh","json":"/actors/devtomtom.json"},{"ref":"actor:d3xter666","name":"Yavor Ivanov","json":"/actors/d3xter666.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}