{"ref":"artifact:sap-samples-ui5-typescript-helloworld","page":"/artifacts/sap-samples-ui5-typescript-helloworld","json":"/artifacts/sap-samples-ui5-typescript-helloworld.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"sap-samples-ui5-typescript-helloworld","name":"SAP-samples/ui5-typescript-helloworld","artifact_type":"sample","ecosystem":"ui5","use_as":"starting-point","domain":"developer-experience","origin_ring":"sap-official","description":{"one_line":"A small UI5 application with a step-by-step guide to how its TypeScript setup is built from scratch, from the tsconfig and ui5-tooling-transpile wiring through to testing.","short":"Small UI5 app with a guide to its TypeScript setup from scratch","what_it_solves":"The accompanying step-by-step.md walks through assembling the TypeScript setup piece by piece: the @openui5/types type definitions, the tsconfig.json that references them, and ui5-tooling-transpile compiling TypeScript to JavaScript while converting ES6 modules and classes to the classic sap.ui.define and Control.extend syntax with babel-plugin-transform-modules-ui5. Testing is covered too, with OPA pages written as classes extending Opa5 rather than the Given/When/Then objects used in JavaScript. It stops at understanding the setup: for a working starting point rather than an explanation, the README points instead to the Easy-UI5 \"ts-app\" generator."},"links":{"repo":"https://github.com/SAP-samples/ui5-typescript-helloworld"},"identity":{"license":"Apache-2.0"},"source_available":true,"demonstrates":["capability:ui5-typescript"],"maintainers":["actor:sap-samples"],"drafted_with_ai":true,"provenance":{"discovered_via":[{"source":"source:curator"}],"first_seen":"2026-09-13"},"contributors":["actor:akudev","actor:flovogt","actor:petermuessig","actor:vobu"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"good","evidence":"6 contributors, org-owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-09, 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":"Test and Checks green, 2026-06-30"}],"practice":[{"label":"Tests","tier":"good","evidence":"8 test files"},{"label":"Docs","tier":"good","evidence":"README 10 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":79,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-25","npm":"not published under this name","stars":79,"forks":17,"open_issues":5,"archived":false,"pushed_at":"2026-09-14","license_spdx":"Apache-2.0","org_owned":true,"default_branch":"main","created_at":"2021-06-03T18:50:17Z","open_prs":4,"tree_truncated":false,"test_files":8,"workflows":3,"other_ci":false,"readme_bytes":10510,"docs_files":0,"changelog":false,"license_file":true,"dts_files":0,"first_commit":"2021-06-03","last_commit":"2026-06-30","commits":39,"contributors":6,"ci_status":"success","ci_run_at":"2026-06-30","ci_workflow":"Test and Checks","ci_event":"push","readme_path":"README.md","readme_sha":"7494330bf19fd5b282bf1ac9c972cce455a92f57","repo_read":"2026-10-25"},"edges":{"maintainers":[{"ref":"actor:sap-samples","name":"SAP Samples","json":"/actors/sap-samples.json"}],"contributors":[{"ref":"actor:akudev","name":"Andreas Kunz","json":"/actors/akudev.json"},{"ref":"actor:flovogt","name":"Florian Vogt","json":"/actors/flovogt.json"},{"ref":"actor:petermuessig","name":"Peter Muessig","json":"/actors/petermuessig.json"},{"ref":"actor:vobu","name":"Volker Buzek","json":"/actors/vobu.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}