PersonSAP

Peter Muessig

GitHub@petermuessiglast push

Capabilities24

Provides 4
Build and dev-server toolingUI5Build and dev-server toolingcapabilityServing an app locally and building it for deployment — proxying a backend, transpiling, bundling, and shaping the result for whatever will host it.GeneratorsCAPUI5GeneratorscapabilityGetting from nothing to a project that runs, and from a project that runs to one that has the piece you just decided you need. Two different moments: the first is a one-time decision about layout, the second recurs for the life of the project.Integrated frontend dev serverCAPUI5Integrated frontend dev servercapabilityServing a frontend and its backend services together during development, so they can be reached through one local origin. Serving prebuilt files and integrating a frontend toolchain that assembles resources on demand are different requirements.UI5 testingUI5UI5 testingcapabilityProving a UI still works — unit tests over controllers and formatters, integration tests that drive real controls, and end-to-end runs against a served app.
Demonstrates 6
Build and dev-server toolingUI5Build and dev-server toolingcapabilityServing an app locally and building it for deployment — proxying a backend, transpiling, bundling, and shaping the result for whatever will host it.Integrated frontend dev serverCAPUI5Integrated frontend dev servercapabilityServing a frontend and its backend services together during development, so they can be reached through one local origin. Serving prebuilt files and integrating a frontend toolchain that assembles resources on demand are different requirements.Local developmentCAPLocal developmentcapabilityRunning the whole stack on a laptop against real bindings — the service, the UI and the routing in front of it — without deploying to see a change.TypeScript supportUI5TypeScript supportcapabilityWriting apps and libraries in TypeScript — the type definitions, the module syntax the loader expects, and the build step that gets from one to the other.UI5 testingUI5UI5 testingcapabilityProving a UI still works — unit tests over controllers and formatters, integration tests that drive real controls, and end-to-end runs against a served app.Web Components interopUI5Web Components interopcapabilityUsing standards-based custom elements inside an app, and the question of which control set an app should be built from at all, two concerns that are often answered as one.
Contributes to 17
AccessibilityUI5AccessibilitycapabilityMaking a UI usable with a screen reader, with a keyboard alone and without seeing the layout: accessible names on controls, a heading order, landmarks, focus handling and announcements. Target size for a finger is [touch operation](capability:ui5-touch-uis).Agent access to your codeCAPUI5Agent access to your codecapabilityLetting a coding agent read the project or the system you actually have, reach its model, its objects and its checks, and act on it. In file-based environments that works out of the box; complex systems need dedicated access capabilities. Whatever the environment, the agent also needs project- and framework-specific context, so it understands the thing in front of it rather than guessing from what it remembers of its training data. The transport is incidental: an MCP server, a language server or a CLI answer the same question, and what differs between them is how much of the real thing the agent can see. Distinct from [MCP servers](capability:mcp-servers), which is a protocol adapter on your own running service, and from [agent guidance](capability:agent-guidance), which is knowledge handed over as files rather than read from the thing itself.Agent guidanceCAPUI5Agent guidancecapabilityPackaged knowledge you hand a coding agent so it gets a framework right unprompted — skills, rule files, instruction packs. Distinct from agent tooling, which is about building agentic features into your application, and from [agent access to your code](capability:agent-code-access), where the agent reads the real project instead of being handed a file about it.AttachmentsCAPUI5AttachmentscapabilityStoring a file somebody uploaded next to the record it belongs to, and getting it back out — where the bytes actually live, who may read them, and what the UI shows while they are being scanned.Custom controls and librariesUI5Custom controls and librariescapabilityExtending the set of controls an app is built from: a control of its own, a wrapper around a third-party widget, or an icon font registered with the framework, packaged so another app can reuse it. Distinct from [Web Components interop](capability:ui5-web-components), which brings in standard custom elements, and from [generators](capability:generators), which scaffold a control project rather than being one.Data bindingUI5Data bindingcapabilityKeeping a control and a model in step in both directions, including the formatting, type conversion and validation that sit between the two.DocumentationCAPUI5DocumentationcapabilityFinding the answer in what has already been written, and writing it where it has not — first-party documentation made searchable by something other than a person scrolling it, including by an agent, and a document of custom code produced from the code itself.Editor supportCAPUI5Editor supportcapabilityWorking in source code with the editor helping rather than treating it as text — completion, go-to-definition, inline errors, refactoring and preview.Fiori annotationsCAPUI5Fiori annotationscapabilityDescribing a service so a Fiori client can render it without hand-written UI code — titles, value helps, hierarchies and visibility expressed as model annotations rather than screen logic.Key-user adaptationUI5Key-user adaptationcapabilityChanging a delivered app without modifying it — moving, hiding and adding elements as a layered set of changes that survive an upgrade.LintingCAPUI5LintingcapabilityCatching in the editor what would otherwise be caught at deploy time, or not at all — problems in source code and models and in the project's configuration, found by rules rather than by review.LLM integrationCAPUI5LLM integrationcapabilityCalling a language model from application code with the tenant, destination and credential handling already solved instead using an SDK call with a hand-rolled key.LoggingCAPUI5LoggingcapabilitySeeing what a running service did, in a form something can read afterwards — levels, a formatter that suits a laptop and one that suits a log service.Routing and navigationUI5Routing and navigationcapabilityTurning a URL hash into a view, and a view change back into a URL — so a deep link, a browser back button and a refresh all land where the user expects in a single-page app.TelemetryCAPTelemetrycapabilitySeeing what a running service did — traces across handlers and database calls, metrics, and correlation that survives an async boundary.ThemingUI5ThemingcapabilityApplying a consistent visual identity across every control, including the parameters an app may read and the custom themes an organisation may build.Touch operationUI5Touch operationcapabilityOperating an app with a finger, a stylus or a gloved hand on a tablet, kiosk or shop-floor terminal: targets large enough to hit, and input that does not assume a hardware keyboard. Distinct from responsive layout, which is about the width of the screen rather than what touches it.

Entries80

Group by80 of 80 entries
EntrySignals
Maintains4
cds-plugin-ui5v0.17.4
Functional boundary

UI5 CLI middlewares running inside the CDS server

generator-ui5-ts-app-fcl
none

Generator for a TypeScript UI5 FlexibleColumnLayout app on OData

karma-ui5-transpilev3.6.4
none

Karma preprocessor transpiling UI5 sources via ui5-tooling-transpile

ui5-middleware-capv3.3.6
none

UI5 CLI middleware running a CDS server inside the UI5 dev server

Maintains: samples, sketches and references10
approuterv0.0.1-security
none

Showcase for dev-approuter in front of two UI5 apps

cds-bookshop
none

CAP bookshop showing UI5 development with cds-plugin-ui5

ui5-app
none

UI5 app carrying 18 UI5 CLI extensions in one configuration

ui5-bookshop-viewer
none

UI5 app consuming the cds-bookshop server via ui5-middleware-cap

ui5-lib
none

Sample setup for developing a UI5 library

ui5-module
none

Custom UI5 control packaged as an npm package

ui5-tsapp
none

TypeScript UI5 app consuming custom UI5 CLI extensions together

ui5-tsapp-webc
none

TypeScript UI5 app consuming @ui5/webcomponents

ui5-tslib
none

TypeScript UI5 library with build, linting and Karma tests

ui5-tsmodule
none

TypeScript UI5 module consumed through ui5-tooling-modules

Contributes to66
@openui5/sap.ui.corev1.153.0
none

Framework core: module loader, MVC runtime, binding, routing, theming

@sap-ux/cds-annotation-parserv1.1.1
none

Parser for annotations in CDS source

@sap-ux/cds-odata-annotation-converterv1.1.1
none

Converter from CDS annotations to their OData form

@sap-ux/eslint-plugin-fiori-toolsv10.17.3
none

ESLint rules for projects the Fiori tools generators produce

@sap-ux/fiori-annotation-apiv1.1.4
none

Programmatic API for reading and writing project annotations

@sap-ux/fiori-docs-embeddingsv1.2.8
none

Fiori documentation indexed as embeddings

@sap-ux/fiori-generator-sharedv1.2.23
none

Shared functions and types of the Fiori generators

@sap-ux/fiori-mcp-serverv1.15.15
none

MCP server for creating and editing Fiori applications

@sap-ux/telemetryv2.0.12
none

Library for sending usage telemetry data

@sap-ux/ui5-application-writerv2.1.6
none

Writer of the base structure of a UI5 project from Node code

@ui5-community/jsx-runtimev0.1.5
Functional boundary

Plugin-based JSX runtime for UI5 views written as .tsx

@ui5-community/jsx-runtime-helloworld
Functional boundary

Scaffolded UI5 TypeScript app consuming the JSX runtime

@ui5-community/jsx-runtime-showcase
Functional boundary

Showcase and documentation app of @ui5-community/jsx-runtime

@ui5/cliv4.0.71
none

UI5 Tooling command line for project setup, dev server and build

@ui5/sample-app
none

OpenUI5 sample app set up with the UI5 CLI

@ui5/tooling-webcv0.3.1
Archived

Deprecated UI5 Tooling extensions for UI5 Web Components wrappers

@ui5/webcomponentsv2.28.1
Functional boundary

SAP's UI elements as standard custom elements

babel-preset-transform-ui5v7.10.0
none

Babel transformer from modern ES or TypeScript to UI5 module syntax

create-easy-ui5v1.1.1
none

npm-init wrapper for the Easy-UI5 Yeoman generator

dev-approuterv0.7.2
none

Dev-time wrapper for the SAP Application Router

generator-easy-ui5v3.11.0
none

Yeoman meta-generator for scaffolding UI5 projects

generator-ui5-addv1.0.2
Quiet

Yeoman generator for UI5 tooling-extension projects

generator-ui5-appv1.0.8
none

Easy-UI5 generator scaffolding a new UI5 application

generator-ui5-libraryv1.0.10
none

Easy-UI5 generator scaffolding a new UI5 library

generator-ui5-library-webc
Quiet

Yeoman generator for UI5 libraries wrapping UI5 Web Components

generator-ui5-project
Functional boundary

Yeoman generator for UI5 projects holding several applications

generator-ui5-ts-app
none

Easy-UI5 generator scaffolding a TypeScript UI5 application

generator-ui5-ts-library
none

Easy-UI5 generator scaffolding a TypeScript UI5 library

generator-ui5-wdi5
Quiet

Yeoman generator scaffolding wdi5 test configuration into a UI5 app

hacking-away-sampleapp
none

UI5con 2022 demo of an end-to-end TypeScript UI5 setup with CAP

SAP-samples/cap-sflight
none

Travel-booking reference app on CAP Node.js and Java backends

SAP-samples/ui5-cap-event-app
none

Event registration app showing OData V4 draft with UI5 and CAP

SAP-samples/ui5-typescript-control-library
none

UI5 control library written in TypeScript with full tooling setup

SAP-samples/ui5-typescript-helloworld
none

Small UI5 app with a guide to its TypeScript setup from scratch

SAP-samples/ui5-typescript-tutorial
none

Tutorial on TypeScript for UI5 apps via a weather-lookup app

UI5 Web Components agent skills
Functional boundary

Two agent skills for accessibility and styling of web components

ui5-cc-chartv0.1.2
none

UI5 custom control wrapping Chart.js for line charts

ui5-middleware-approuterv3.10.0
none

UI5 CLI middleware proxying the dev server through @sap/approuter

ui5-middleware-hmrv0.1.0
none

Experimental UI5 middleware for hot module replacement

ui5-middleware-iasyncv3.0.0-alpha.10
none

UI5 middleware syncing interactions across browsers over websocket

ui5-middleware-indexv3.1.4
none

UI5 middleware serving a chosen welcome page at the root path

ui5-middleware-livereloadv3.4.0
none

Live reload middleware for the UI5 dev server

ui5-middleware-oneloginv3.9.1
none

UI5 middleware logging in with Playwright and reusing the session

ui5-middleware-serveframeworkv3.8.2
none

UI5 middleware serving a locally built UI5 framework

ui5-middleware-servestaticv3.5.1
none

UI5 middleware serving static resources from a path or npm package

ui5-middleware-simpleproxyv3.9.0
none

Dev-server middleware proxying requests to a backend system

ui5-middleware-ui5v3.5.2
none

UI5 middleware including one UI5 application in another

ui5-middleware-webjarsv3.1.4
none

UI5 middleware serving static resources from JAR files (WebJars)

ui5-middleware-websocketv3.2.2
none

WebSocket support for Express-based dev servers such as UI5's

ui5-space-webcomponent-library
none

UI5 library wrapping a UI5 Web Components package, step by step

ui5-space-webcomponent-package
none

Step-by-step UI5 Web Components package in TypeScript

ui5-task-cachebusterv3.4.0
none

UI5 builder task cachebusting standalone UI5 applications

ui5-task-copyrightv3.6.0
none

UI5 builder task appending copyright headers to source files

ui5-task-flatten-libraryv3.1.4
none

UI5 builder task flattening library output for SAP NetWeaver

ui5-task-i18ncheckv3.3.1
none

UI5 builder task checking XML views for missing i18n texts

ui5-task-minify-xmlv3.2.0
none

UI5 builder task minifying XML views and fragments

ui5-task-pwa-enablerv3.4.1
none

UI5 builder task turning a UI5 app into a progressive web app

ui5-task-transpilev0.5.1
none

UI5 Tooling task transpiling TypeScript and ES modules

ui5-task-zipperv3.7.0
none

Build task packaging the UI5 build result as a zip archive

ui5-tooling-lessv3.2.5
none

UI5 CLI extension compiling Less files into CSS

ui5-tooling-modulesv3.41.2
none

UI5 tooling extensions loading npm packages as UI5 modules

ui5-tooling-stringreplacev3.6.2
none

UI5 CLI extension for string replacement during the build

ui5-tooling-transpilev3.13.1
none

UI5 CLI extension transpiling code during the UI5 build

ui5-ts-modules-showcase
none

Showcase of consuming npm libraries from a TypeScript UI5 app

ui5-webcomponents-bundle
none

Custom UI5 Web Components bundle loaded with one script tag

vscode-ui5-language-assistantv0.0.1-security
none

VS Code extension for SAPUI5 and OpenUI5 XML views and manifest

Writing and topics1

Piece, what it offersStill applies
UI5 Views, Reimagined: Type-Safe TSX for a Modern Dev Experience
YouTube — SAP Developers playlists, Peter Muessig
nothing recorded

Details

History18
  • karma-ui5-transpilelifecycle → deprecatedThe README's own notice, which the description already paraphrased, was not recorded as the maker's dated statement. It is quoted here and shown as plain text: the maintainer's claim, not a reading and not a tier.
  • karma-ui5-transpileprovides[capability:ui5-testing] → two quoted sources and the coverage_report propertyThe edge cited the README without a sentence. Coverage is the reason this preprocessor exists for a TypeScript project, and it is the comparison the capability now declares; the README states it in its own words.
  • karma-ui5-transpiledescription.what_it_solves → The same sentence, with why karma-ui5 is needed.The README calls the karma-ui5 plugin obligatory and says the configuration is read from it, which is what makes it a prerequisite rather than a companion.
  • cds-plugin-ui5description.what_it_solves → A CDS server serves the files under `app/`. A UI5 CLI project is not a folder of files ready to serve: its framework resources are resolved and its middlewares configured by `ui5.yaml`, and until something runs that chain the project needs a server of its own. This plugin runs it inside the CDS server, for a project in `app/`, in the folder `cds.env.folders.app` names, or added as a dependency of the CDS server. Each project is mounted under a path derived from the `metadata/name` of its `ui5.yaml`, overridable in the `ui5.yaml` itself, in the CDS server's `package.json` or through `CDS_PLUGIN_UI5_MODULES`. In a project it is one development dependency and an existing `ui5.yaml`, on [@sap/cds](artifact:sap-cds) 6.8.2 or higher.The paragraph claimed live transpiling, which the README does not mention, and said nothing about the two facts a reader needs: where a project has to sit and what it has to be. Rewritten from the README's own sentences. capire's plugin list is where the transpiling claim comes from, and it is quoted on the capability instead of asserted here.
  • cds-plugin-ui5provides → capability:ui5-dev-server, with what_it_does, sources and two facet valuesThe edge was a bare ref, so the page said the plugin answered the capability and nothing about how. The README supplies both facet answers and the mount-path behaviour.
  • cds-plugin-ui5compat.cds_range → >=6.8.2The README states the floor: "The plugin requires [`@sap/cds`](https://www.npmjs.com/package/@sap/cds) `>=6.8.2`."
  • cds-plugin-ui5flavors → nodeThe README's opening sentence says it is a cds-plugin for the node runtime, so the flavor is stated rather than derived from the artifact type.
  • cds-plugin-ui5identity.license, source_available → Apache-2.0, trueRead from the package's own README licence section, as its siblings in the same repository already record.
  • ui5-middleware-capdescription.what_it_solves → A UI5 CLI project's dev server serves the app, and the CAP services it calls run in a second process started and stopped on its own. This middleware calls `cds serve` and embeds the express middlewares it returns into the UI5 dev server, so one command answers both: it is entered under `server/customMiddleware` in `ui5.yaml`, where `mountPath` sets the url the CDS server answers on and `moduleId` names the npm package the CDS server is loaded from. Its default options are `with-mocks` and `in-memory?`, which start in-process mock services for required services that have no external binding and add a transient in-memory database bootstrapped on each restart. It is the counterpart of [cds-plugin-ui5](artifact:ui5-community-cds-plugin-ui5), which embeds the other way round, the UI5 CLI middlewares inside the CDS server; the repository's own comparison of the six tools that connect a UI5 app to a backend lists both, and separates them on which of the two embeds the CAP server. In a project it is one development dependency of the UI5 project, on [@ui5/cli](artifact:sap-ui5-cli) 3 or higher.The old paragraph said the registry description was the only documentation published and that no README states how it is configured. The package does publish one, with Prerequisites, Usage and a Configuration options section: "- `options`: `<object>` (default: `{ "with-mocks": true, "in-memory?": true }` )", alongside `moduleId` and `mountPath`. Rewritten from that README, and the counterpart named, since the two tools embed in opposite directions.
  • ui5-middleware-capdescription.one_line → UI5 CLI middleware that runs a CDS server inside the UI5 dev server, mounted at a path the UI5 project configures.Nothing in the documentation says the dev server is driven by a backend; the README and the docs site both say a CDS server is embedded inside the dev server, and the `mountPath` option is where it answers: "`ui5-middleware-cap` improves the development experience for the [SAP Cloud Application Programming Model (CAP)](https://cap.cloud.sap/docs/about/) by embedding a CDS server inside the UI5 dev server."
  • ui5-middleware-capprovides → capability:ui5-build-tooling, with what_it_does and the README's own sentences on the middleware, mountPath and moduleIdThe edge rested on the npm one-liner alone, so the page said the middleware embeds the CDS middlewares and nothing about where the server answers or where it is loaded from. Both are stated in the README's Configuration options section.
  • ui5-middleware-capalternative_to → artifact:ui5-community-cds-plugin-ui5The maintainers publish the two as members of one set and compare them in one table. The repository README: "Six tools in this repo can connect a UI5 app to a backend (`cds-plugin-ui5`, `ui5-middleware-cap`, `ui5-middleware-approuter`, `@sap/approuter`, `dev-approuter`, `ui5-middleware-simpleproxy`)." The comparison in docs/backend-connectivity.md is what separates this pair: "| Embeds CAP server | ❌ | ✅ | (✅)¹ | ❌ | ✅ | (✅)¹ |", the first two columns being cds-plugin-ui5 and ui5-middleware-cap. The inverse edge is derived, so cds-plugin-ui5 shows it without being edited.
  • ui5-middleware-capcompat → runtimes node, cds_range >=6.8.1The package manifest declares the floors, "@sap/cds": ">=6.8.1" and "@ui5/cli": ">=3" in peerDependencies, and the README's opening sentence puts it at "the node runtime of the SAP Cloud Application Programming Model (CAP)". On the UI5 door runtimes is how the tool runs and is never read as a flavor.
  • ui5-middleware-caprequires → artifact:sap-cds, artifact:sap-ui5-cliBoth are stated by the README rather than read off a dependency list: it calls `cds serve` internally to build the middleware functions, and "All releases of this UI5 CLI extension using the major version `3` require UI5 CLI V3." The peerDependencies ranges are quoted beside each edge.
  • ui5-middleware-capidentity.author, maintainers → Peter Muessig, actor:petermuessig and actor:ui5-communityThe package manifest names the author, "author": "Peter Muessig". The entry recorded him as a contributor only, which is the weaker claim; cds-plugin-ui5 in the same repository already carries both.
  • cds-plugin-ui5contributors → actor:petermuessigTwo actor files carried the same GitHub login. peter-m-ssig was keyed on a slugified display name — the umlaut in "Peter Müssig" drops out of the slug, so it looked nothing like the crawled petermuessig and nobody spotted the double. Merged onto the login, which is the identity the crawl matches on.
  • cds-plugin-ui5origin_ring → community-orgui5-community is the UI5 ecosystem's community org, the counterpart of cap-js-community. It was absent from the owner table because that table only knew CAP, so this fell through to independent. Found by probing UI5.
  • First entry seenDiscovered via Added by hand, npm registry, capire · plugins.
For your agent