{"_id":"@abapify/adt-tui","_rev":"5-663bc4520117d54fdc6f33847d7f8f7c","name":"@abapify/adt-tui","dist-tags":{"latest":"0.4.1"},"versions":{"0.0.0":{"name":"@abapify/adt-tui","version":"0.0.0","_id":"@abapify/adt-tui@0.0.0","maintainers":[{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"}],"dist":{"shasum":"f44601c314fbc8ec726b2362a393a14dd01a65a4","tarball":"https://registry.npmjs.org/@abapify/adt-tui/-/adt-tui-0.0.0.tgz","fileCount":2,"integrity":"sha512-Ru3S2Ebb4TsGz3iBww7oLhsyCx4HjP5jNNKPwIVgGvSkJPPbtiHOTR+jPkYkk6fab/7l0vgp51gZsVmmVkyNvw==","signatures":[{"sig":"MEYCIQCF/7EjkoMEVQ5mH4AE6BF33skLhM2eUesoJ/qV359PvwIhAIb0L2lRpz5CnnJJROwsnYkr6yi2cDxFCX8ASghm6blP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":222},"_npmUser":{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"},"_npmVersion":"11.12.1","description":"Placeholder — real package is published via CI/CD (trusted publishing).","directories":{},"_nodeVersion":"24.10.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adt-tui_0.0.0_1776719569925_0.33318292488277423","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@abapify/adt-tui","version":"0.3.5","license":"MIT","_id":"@abapify/adt-tui@0.3.5","maintainers":[{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"}],"homepage":"https://github.com/abapify/adt-cli/tree/main/packages/adt-tui#readme","bugs":{"url":"https://github.com/abapify/adt-cli/issues"},"dist":{"shasum":"27d416816bc72e0adfef3545ce0cc853f11afa03","tarball":"https://registry.npmjs.org/@abapify/adt-tui/-/adt-tui-0.3.5.tgz","fileCount":1,"integrity":"sha512-AwnzRPKGvqh2TMwBKNzs9sujV9LxTDGgczVysnj3LIMT4YV/9kVwDuXojqZo6YU56kdBr+odfsYF0ugbNi33Jw==","signatures":[{"sig":"MEYCIQCGH7pMhdzdls2AnHOjNpHOBB5xQR5DKNnzKBJaVHK/GgIhAJopRu8hzxBRq3Jd/iwgGdwx9QaOwFS0yO7FnoBy9rhc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abapify%2fadt-tui@0.3.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1043},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"185666fe6ccb304e7b08529eb376ec2493131a7a","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ee525bf3-0810-403c-82d4-2dc57f81c727"}},"repository":{"url":"git+https://github.com/abapify/adt-cli.git","type":"git","directory":"packages/adt-tui"},"_npmVersion":"11.12.1","description":"Terminal UI components for ADT - page-based navigation with Ink","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ink":"5.1.0","react":"18.3.1","ink-spinner":"^5.0.0","ink-text-input":"^6.0.0","fast-xml-parser":"^5.3.1","ink-select-input":"^6.0.0","@abapify/adt-contracts":"0.3.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/react":"18.3.0"},"peerDependencies":{"@abapify/adt-client":"0.3.5"},"_npmOperationalInternal":{"tmp":"tmp/adt-tui_0.3.5_1776723659937_0.4745812259892639","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"@abapify/adt-tui","version":"0.3.6","license":"MIT","_id":"@abapify/adt-tui@0.3.6","maintainers":[{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"}],"homepage":"https://github.com/abapify/adt-cli/tree/main/packages/adt-tui#readme","bugs":{"url":"https://github.com/abapify/adt-cli/issues"},"dist":{"shasum":"7168572b1d4b927c73099b769d5b7462a92861ec","tarball":"https://registry.npmjs.org/@abapify/adt-tui/-/adt-tui-0.3.6.tgz","fileCount":2,"integrity":"sha512-cMOe+iAvogtHktJ4uf5DHIrAYPx2InToJG7NZ1UTOnH948ojerp/0uUotsk42pyPYm+PMjUDh00g7I9CDZKjlw==","signatures":[{"sig":"MEYCIQDskL26OJAp5nD2T0mT+2/k9DFTr7QyHSDAHeU4x/DLfAIhAM32xcx7NP4HK+tSpuBv7v98F38HVBJ6V8mkQiSK3RSg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abapify%2fadt-tui@0.3.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3106},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"489b2b4ad7c2ea972f323d4c356997ac5962ba9e","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ee525bf3-0810-403c-82d4-2dc57f81c727"}},"repository":{"url":"git+https://github.com/abapify/adt-cli.git","type":"git","directory":"packages/adt-tui"},"_npmVersion":"11.11.0","description":"Terminal UI components for ADT - page-based navigation with Ink","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ink":"5.1.0","react":"18.3.1","ink-spinner":"^5.0.0","ink-text-input":"^6.0.0","fast-xml-parser":"^5.3.1","ink-select-input":"^6.0.0","@abapify/adt-contracts":"0.3.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/react":"18.3.0"},"peerDependencies":{"@abapify/adt-client":"0.3.6"},"_npmOperationalInternal":{"tmp":"tmp/adt-tui_0.3.6_1776744806205_0.6216524462356079","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@abapify/adt-tui","version":"0.4.0","license":"MIT","_id":"@abapify/adt-tui@0.4.0","maintainers":[{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"}],"homepage":"https://github.com/abapify/adt-cli/tree/main/packages/adt-tui#readme","bugs":{"url":"https://github.com/abapify/adt-cli/issues"},"dist":{"shasum":"08ee661302b856646309b8905dd2fc6ee57f1c15","tarball":"https://registry.npmjs.org/@abapify/adt-tui/-/adt-tui-0.4.0.tgz","fileCount":2,"integrity":"sha512-0DHyy2BT09cz12gKJ5U+WTgNx7NDBdHC7Jcjx6ijVzaqbhjBMhrrzz/I0AdjE1w9k1eJavkccKKMGFaJijAcDg==","signatures":[{"sig":"MEUCIGUay55b7YtuL5UroJHnwDZdkPg2xWQgAy5zvO2rgRDDAiEArFBQTkQxB1ADRNw/3x6UjO/pa28VTPJVcz6OTuYbw8s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abapify%2fadt-tui@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3106},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"81dc9eea47fe419e41d246f0ec212fa78570a489","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ee525bf3-0810-403c-82d4-2dc57f81c727"}},"repository":{"url":"git+https://github.com/abapify/adt-cli.git","type":"git","directory":"packages/adt-tui"},"_npmVersion":"11.13.0","description":"Terminal UI components for ADT - page-based navigation with Ink","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"5.1.0","react":"18.3.1","ink-spinner":"^5.0.0","ink-text-input":"^6.0.0","fast-xml-parser":"^5.3.1","ink-select-input":"^6.0.0","@abapify/adt-contracts":"0.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/react":"18.3.0"},"peerDependencies":{"@abapify/adt-client":"0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/adt-tui_0.4.0_1780072651081_0.5957116210029836","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@abapify/adt-tui","version":"0.4.1","description":"Terminal UI components for ADT - page-based navigation with Ink","license":"MIT","publishConfig":{"access":"public"},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"dependencies":{"@abapify/adt-contracts":"0.4.1","fast-xml-parser":"^5.3.1","ink":"5.1.0","ink-select-input":"^6.0.0","ink-spinner":"^5.0.0","ink-text-input":"^6.0.0","react":"18.3.1"},"devDependencies":{"@types/react":"18.3.0"},"peerDependencies":{"@abapify/adt-client":"0.4.1"},"repository":{"type":"git","url":"git+https://github.com/abapify/adt-cli.git","directory":"packages/adt-tui"},"homepage":"https://github.com/abapify/adt-cli/tree/main/packages/adt-tui#readme","bugs":{"url":"https://github.com/abapify/adt-cli/issues"},"gitHead":"9d3b996a5c760a8db67e28c4df3c30098bd29e4a","_id":"@abapify/adt-tui@0.4.1","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-xWuS90+k8QxhSnMWtrJAFTuWsAshMV3bvhNtoOlKo/x0tysZlSgcpaBNS79+5SMjZQJ53VXxy/JSHA1xGFN/Yw==","shasum":"a6192cc36bbff69829e482ad2910dd78ef00469d","tarball":"https://registry.npmjs.org/@abapify/adt-tui/-/adt-tui-0.4.1.tgz","fileCount":6,"unpackedSize":76666,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abapify%2fadt-tui@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHm/fmR0Jx6fQezL2/Vg59PBP7F0tku/71rP0Qu2PdOKAiAW0sWJgkK+OWuBpLmXKzMgPjwFhqeLCr0KdVVaPzfRCA=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ee525bf3-0810-403c-82d4-2dc57f81c727"}},"directories":{},"maintainers":[{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/adt-tui_0.4.1_1780074945306_0.6751664553318317"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-20T21:12:49.859Z","modified":"2026-05-29T17:15:45.812Z","0.0.0":"2026-04-20T21:12:50.063Z","0.3.5":"2026-04-20T22:21:00.071Z","0.3.6":"2026-04-21T04:13:26.346Z","0.4.0":"2026-05-29T16:37:31.204Z","0.4.1":"2026-05-29T17:15:45.500Z"},"bugs":{"url":"https://github.com/abapify/adt-cli/issues"},"license":"MIT","homepage":"https://github.com/abapify/adt-cli/tree/main/packages/adt-tui#readme","repository":{"type":"git","url":"git+https://github.com/abapify/adt-cli.git","directory":"packages/adt-tui"},"description":"Terminal UI components for ADT - page-based navigation with Ink","maintainers":[{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"}],"readme":"# @abapify/adt-tui\n\nTerminal UI primitives for ADT, built on [Ink](https://github.com/vadimdemedes/ink)\nand React. Provides a small page-based navigation framework — a `Navigator`,\na `PageRenderer`, a hypermedia link parser, and a generic page — that other\npackages and CLI commands use to build interactive ADT explorers in the\nterminal.\n\n[![npm](https://img.shields.io/npm/v/%40abapify%2Fadt-tui.svg)](https://www.npmjs.com/package/@abapify/adt-tui)\n\n## Install\n\n```bash\nnpm i @abapify/adt-tui\n# or\nbun add @abapify/adt-tui\n```\n\n`@abapify/adt-client` is a peer dependency and must be installed by the host.\n\n## Usage\n\nBoot the TUI from a CLI command, passing in an initial fetch function\n(typically backed by the ADT client) and a start URI:\n\n```ts\nimport { run } from '@abapify/adt-tui';\n\nawait run({\n  fetch: (uri) => client.request(uri),\n  startUrl: '/sap/bc/adt/repository/nodestructure',\n});\n```\n\nOr compose the primitives directly inside your own Ink app:\n\n```tsx\nimport { App, Navigator, NavigationProvider } from '@abapify/adt-tui';\nimport { render } from 'ink';\n\nrender(\n  <NavigationProvider>\n    <App fetch={fetchFn} startUrl=\"/sap/bc/adt/discovery\" />\n  </NavigationProvider>,\n);\n```\n\nCustom pages implement the `PageComponent` contract and return a\n`PageResult` describing which link to follow next; the framework takes\ncare of history, rendering, and back-navigation.\n\n## Role in the monorepo\n\n- Ink-based TUI primitives layer: it owns `Navigator`, `PageRenderer`,\n  the navigation context, the hypermedia response parser, and the shared\n  page/route types.\n- Consumed by interactive `adt-cli` commands and experiments; it deliberately\n  contains no ADT-specific business logic beyond link parsing, so commands\n  bring their own pages.\n- Depends on `@abapify/adt-contracts` for response typing and keeps\n  `@abapify/adt-client` as a peer dependency to avoid duplicating the\n  client in host applications.\n\n## Related\n\n- [abapify/adt-cli monorepo](https://github.com/abapify/adt-cli)\n- [Full docs](https://adt-cli.netlify.app)\n\n## License\n\nMIT\n","readmeFilename":"README.md"}