Skip to content

abapify/adt-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

483 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

abapify — ADT CLI Monorepo

CI

TypeScript monorepo providing a CLI and supporting libraries for SAP ABAP Development Tools (ADT) REST APIs.

Packages

CLI

Package version Description
adt-cli version Command-line interface — adt binary

Core Libraries

Package version Description
adt-client version Contract-driven HTTP client for ADT REST APIs
adt-contracts version Typed ADT REST API contract definitions
adt-schemas version SAP ADT XML schemas generated from XSD
adk version ABAP Development Kit — object construction and serialization
adt-auth version Authentication: Basic, SLC, OAuth, browser SSO
adt-config version Config loader for adt.config.ts / .json

CLI Plugins

Package version Description
adt-atc version ABAP Test Cockpit — runs ATC, outputs SARIF / GitLab Code Quality
adt-export version Export plugin — deploy local files to SAP
adt-plugin version Plugin interface contract
adt-plugin-abapgit version abapGit serialization format plugin

Authentication Adapters

Package version Description
browser-auth version Shared browser SSO logic
adt-playwright version Playwright SSO authentication plugin
adt-puppeteer version Puppeteer SSO authentication plugin

Foundation Libraries

Package version Description
speci version Arrow-function REST contract specification
ts-xsd version XSD parser, builder, and TypeScript type inference
adt-codegen version Hook-based code generation toolkit
asjson-parser version ABAP asJSON canonical format parser
logger version Shared logger interface

Architecture

adt-cli  (Commander.js CLI, plugin loader)
  │
  ├── adt-client  (HTTP client, auth interceptor)
  │     ├── adt-contracts  (speci endpoint definitions)
  │     └── adt-schemas    (XSD-derived TypeScript types)
  │
  ├── adk  (ABAP object construction: parse ADT XML → domain objects)
  │
  ├── adt-auth  (session management: basic / SLC / OAuth / browser SSO)
  │     ├── adt-playwright  (Playwright browser adapter)
  │     └── adt-puppeteer   (Puppeteer browser adapter)
  │
  └── plugins  (opt-in command extensions)
        ├── adt-atc          (ATC runs → SARIF / GitLab Code Quality)
        ├── adt-export       (file system → SAP deploy)
        └── adt-plugin-abapgit  (abapGit format serialization)

Type flow: SAP XSD definitions → ts-xsd generates schema literals → adt-schemas exports them → adt-contracts wraps them in speci endpoint descriptors → adt-client executes with full type inference.

Development Setup

Requirements: Node.js 18+, npm (not pnpm or yarn)

git clone https://github.com/abapify/adt-cli.git
cd adt-cli

npm install

# Build all packages
npx nx build

# Run all tests
npx nx test

# Type check
npx nx typecheck

Common Commands

# Build a specific package
npx nx build adt-cli

# Test a specific package
npx nx test adt-cli

# Lint everything
npx nx lint

# Watch mode for a package
npx nx test adt-cli --watch

Repository Structure

adt-cli/
├── packages/
│   ├── adt-cli/            # Main CLI binary
│   ├── adt-client/         # HTTP client
│   ├── adt-contracts/      # REST API contracts
│   ├── adt-schemas/        # SAP ADT XSD schemas
│   ├── adk/                # ABAP object modeling
│   ├── adt-auth/           # Authentication
│   ├── adt-config/         # Config loader
│   ├── adt-atc/            # ATC plugin
│   ├── adt-export/         # Export plugin
│   ├── adt-plugin/         # Plugin interface
│   ├── adt-plugin-abapgit/ # abapGit plugin
│   ├── browser-auth/       # Browser SSO core
│   ├── adt-playwright/     # Playwright adapter
│   ├── adt-puppeteer/      # Puppeteer adapter
│   ├── speci/              # Contract spec
│   ├── ts-xsd/             # XSD tools
│   ├── adt-codegen/        # Code generation
│   ├── asjson-parser/      # asJSON parser
│   └── logger/             # Shared logger
├── docs/                   # Architecture docs and specs
├── samples/                # Example projects
└── tmp/                    # Local temp files (gitignored)

Code Standards

  • TypeScript strict mode throughout
  • ESM modules ("type": "module" in all packages)
  • Async/await over callbacks
  • Native Node.js APIs preferred over external dependencies
  • tsdown for building (outputs .mjs + .d.mts)
  • Vitest for testing

Contributing

git checkout -b feat/my-change
# make changes
npx nx build adt-cli && npx nx test adt-cli
git push origin feat/my-change
# open pull request

See AGENTS.md for conventions used by AI coding agents.

License

MIT

About

ABAP-relevant JS packages

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages