{"_id":"@abapify/adt-contracts","_rev":"5-3df7d1fbb30cc6acdc5f11d831ee1236","name":"@abapify/adt-contracts","dist-tags":{"latest":"0.4.1"},"versions":{"0.0.0":{"name":"@abapify/adt-contracts","version":"0.0.0","_id":"@abapify/adt-contracts@0.0.0","maintainers":[{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"}],"dist":{"shasum":"edd600daf1bb79a5c6db47864cff4323b9bedb54","tarball":"https://registry.npmjs.org/@abapify/adt-contracts/-/adt-contracts-0.0.0.tgz","fileCount":2,"integrity":"sha512-Z+pNizlyDPPoZYz0uZuYg3ifcBpXUxoCeMm70JNVBZGh+X1ZwGb4L7tgDEJBjcf9LTPWekQbi53whEq7lEQzbg==","signatures":[{"sig":"MEYCIQD99SlcfydrTHBkDWJTD9Cl4uaGYKyOVySc0WWXBgwOmgIhAIKd+9lC6NC/Yt0OtdqQ+KLcWt/iplHwxrwotuKjb+aY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":234},"_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-contracts_0.0.0_1776719459459_0.017634917684752116","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@abapify/adt-contracts","version":"0.3.5","license":"MIT","_id":"@abapify/adt-contracts@0.3.5","maintainers":[{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"}],"homepage":"https://github.com/abapify/adt-cli/tree/main/packages/adt-contracts#readme","bugs":{"url":"https://github.com/abapify/adt-cli/issues"},"dist":{"shasum":"61d732b3eff3da972a1245e0f4624ea4b8fcc87f","tarball":"https://registry.npmjs.org/@abapify/adt-contracts/-/adt-contracts-0.3.5.tgz","fileCount":2,"integrity":"sha512-9TFGNpeX/GEQPL7iJCbqL8CJlUa8PYIfsfFJ4gYjb7LDhQm++Zhy3H8TlMb0SCGgHsu6QyEqKf1hesiLHC3n+g==","signatures":[{"sig":"MEYCIQDwNzRU55WlKK10Xq5ExPSez67Ww1bTaREvCj2DHwMlMwIhAPBzeH2+uE+LLYBN4urUf3iKqWJUAEldhHr0KpYawuzV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abapify%2fadt-contracts@0.3.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5446},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./base":"./dist/base.mjs","./schemas":"./dist/schemas.mjs","./package.json":"./package.json"},"gitHead":"185666fe6ccb304e7b08529eb376ec2493131a7a","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:48525053-d80d-43ad-a7cc-88cd6b2703f5"}},"repository":{"url":"git+https://github.com/abapify/adt-cli.git","type":"git","directory":"packages/adt-contracts"},"_npmVersion":"11.12.1","description":"SAP ADT REST API contracts using speci + ts-xsd","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@abapify/speci":"0.3.5","@abapify/adt-schemas":"0.3.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@abapify/adt-fixtures":"0.3.5"},"_npmOperationalInternal":{"tmp":"tmp/adt-contracts_0.3.5_1776723650344_0.19197996778045434","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"@abapify/adt-contracts","version":"0.3.6","license":"MIT","_id":"@abapify/adt-contracts@0.3.6","maintainers":[{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"}],"homepage":"https://github.com/abapify/adt-cli/tree/main/packages/adt-contracts#readme","bugs":{"url":"https://github.com/abapify/adt-cli/issues"},"dist":{"shasum":"c3615f48ce2a922e598d2a20cdfe611811f9e22c","tarball":"https://registry.npmjs.org/@abapify/adt-contracts/-/adt-contracts-0.3.6.tgz","fileCount":2,"integrity":"sha512-AemjtyyuzFj8FaS9XdTgY1bsZRW8nnkO9y7WYyd8s+PkNMvyQUHoBVygNxaRELNZvY1OV0fi0c/Z+XEAp9eO/g==","signatures":[{"sig":"MEUCIQDCKykmQoPgQai87ecWq1nKaXZtPPMXS15xTHk4PQvEDwIgWIl1LSkAQGArgiTLDN6uAmhqnzGPsKXOD2dv/tKzMuo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abapify%2fadt-contracts@0.3.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5446},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./base":"./dist/base.mjs","./schemas":"./dist/schemas.mjs","./package.json":"./package.json"},"gitHead":"489b2b4ad7c2ea972f323d4c356997ac5962ba9e","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:48525053-d80d-43ad-a7cc-88cd6b2703f5"}},"repository":{"url":"git+https://github.com/abapify/adt-cli.git","type":"git","directory":"packages/adt-contracts"},"_npmVersion":"11.11.0","description":"SAP ADT REST API contracts using speci + ts-xsd","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@abapify/speci":"0.3.6","@abapify/adt-schemas":"0.3.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@abapify/adt-fixtures":"0.3.6"},"_npmOperationalInternal":{"tmp":"tmp/adt-contracts_0.3.6_1776744796844_0.4153292058082192","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@abapify/adt-contracts","version":"0.4.0","license":"MIT","_id":"@abapify/adt-contracts@0.4.0","maintainers":[{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"}],"homepage":"https://github.com/abapify/adt-cli/tree/main/packages/adt-contracts#readme","bugs":{"url":"https://github.com/abapify/adt-cli/issues"},"dist":{"shasum":"4dd83a7a99d89cfb660b4508f3416777c4afbbff","tarball":"https://registry.npmjs.org/@abapify/adt-contracts/-/adt-contracts-0.4.0.tgz","fileCount":2,"integrity":"sha512-loXoMGHFbAACPa1U9pOAnuaZwJmxy8I/nAZ0WPTchf+FM3q041QDxIC39fr2HIiE0cyBg75khmsjLzLt81Pa5A==","signatures":[{"sig":"MEYCIQCusXLe1v9BNGZghUJu3AWuqmM1MANSGyiRAtKgCblDDQIhAMmiz5rI9lUweSkcX6OQ65TZJctM9Fr92yUUxlhKO4wS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abapify%2fadt-contracts@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5446},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./base":"./dist/base.mjs","./schemas":"./dist/schemas.mjs","./package.json":"./package.json"},"gitHead":"81dc9eea47fe419e41d246f0ec212fa78570a489","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:48525053-d80d-43ad-a7cc-88cd6b2703f5"}},"repository":{"url":"git+https://github.com/abapify/adt-cli.git","type":"git","directory":"packages/adt-contracts"},"_npmVersion":"11.13.0","description":"SAP ADT REST API contracts using speci + ts-xsd","directories":{},"_nodeVersion":"24.16.0","dependencies":{"@abapify/speci":"0.4.0","@abapify/adt-schemas":"0.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@abapify/adt-fixtures":"0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/adt-contracts_0.4.0_1780072637575_0.6644093058923652","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@abapify/adt-contracts","version":"0.4.1","description":"SAP ADT REST API contracts using speci + ts-xsd","license":"MIT","publishConfig":{"access":"public"},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./base":"./dist/base.mjs","./schemas":"./dist/schemas.mjs","./package.json":"./package.json"},"dependencies":{"@abapify/speci":"0.4.1","@abapify/adt-schemas":"0.4.1"},"devDependencies":{"@abapify/adt-fixtures":"0.4.1"},"repository":{"type":"git","url":"git+https://github.com/abapify/adt-cli.git","directory":"packages/adt-contracts"},"homepage":"https://github.com/abapify/adt-cli/tree/main/packages/adt-contracts#readme","bugs":{"url":"https://github.com/abapify/adt-cli/issues"},"gitHead":"9d3b996a5c760a8db67e28c4df3c30098bd29e4a","_id":"@abapify/adt-contracts@0.4.1","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-663fNZPkE76qKPXWPHgINreIXL4Luw90Pfnr5exHH3gXU2xTXI8etXJGjmULCnW0zmcZFP+u1FQIg3bc/sYjMA==","shasum":"06df847de92fd673c0d7d747437de9e1b247dc3c","tarball":"https://registry.npmjs.org/@abapify/adt-contracts/-/adt-contracts-0.4.1.tgz","fileCount":15,"unpackedSize":1289308,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abapify%2fadt-contracts@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCsjlNfTVZmXRZQNLyLlwzWKBF7SNBfs5iOSs9nZbvIiwIhAPU1EVb6PwtRGMGxu5aqO7ykO5epxH12XAFn8O7Kjm9G"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:48525053-d80d-43ad-a7cc-88cd6b2703f5"}},"directories":{},"maintainers":[{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/adt-contracts_0.4.1_1780074919878_0.1518784406865834"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-20T21:10:59.353Z","modified":"2026-05-29T17:15:20.345Z","0.0.0":"2026-04-20T21:10:59.599Z","0.3.5":"2026-04-20T22:20:50.515Z","0.3.6":"2026-04-21T04:13:16.978Z","0.4.0":"2026-05-29T16:37:17.745Z","0.4.1":"2026-05-29T17:15:20.039Z"},"bugs":{"url":"https://github.com/abapify/adt-cli/issues"},"license":"MIT","homepage":"https://github.com/abapify/adt-cli/tree/main/packages/adt-contracts#readme","repository":{"type":"git","url":"git+https://github.com/abapify/adt-cli.git","directory":"packages/adt-contracts"},"description":"SAP ADT REST API contracts using speci + ts-xsd","maintainers":[{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"}],"readme":"# @abapify/adt-contracts\n\n[![version](https://img.shields.io/github/package-json/v/abapify/adt-cli?filename=packages/adt-contracts/package.json)](https://github.com/abapify/adt-cli/pkgs/npm/%40abapify%2Fadt-contracts)\n\n**SAP ADT REST API contracts** — typed endpoint definitions using `speci` + `ts-xsd` schemas.\n\nPart of the [abapify monorepo](../../README.md).\n\n## What is it?\n\nThis package is the **contract layer** between `adt-client` and `adt-schemas`. It provides declarative REST API contracts for SAP ADT (ABAP Development Tools) endpoints.\n\n```\n┌─────────────────────────────────────────────────────────────────┐\n│                      adt-client                               │\n│              (HTTP Client + Request Execution)                   │\n└─────────────────────────────────────────────────────────────────┘\n                              │\n                              ▼\n┌─────────────────────────────────────────────────────────────────┐\n│                      adt-contracts (this package)                │\n│         (REST API Contracts using speci + ts-xsd)                │\n└─────────────────────────────────────────────────────────────────┘\n                              │\n                              ▼\n┌─────────────────────────────────────────────────────────────────┐\n│                     adt-schemas                              │\n│        (TypeScript schemas from SAP XSD definitions)             │\n└─────────────────────────────────────────────────────────────────┘\n```\n\nContracts are pure data structures that define:\n\n- **Endpoint URLs** - REST paths\n- **HTTP methods** - GET, POST, PUT, DELETE\n- **Request/Response schemas** - Using `ts-xsd` generated from SAP XSD definitions\n- **Content-Types** - SAP vendor-specific media types\n\n## Installation\n\n```bash\nbun add adt-contracts\n```\n\n## Usage\n\n### With speci client\n\n```typescript\nimport { adtContract } from 'adt-contracts';\nimport { createClient } from 'speci/rest';\n\nconst client = createClient(adtContract, {\n  baseUrl: 'https://sap-server.example.com/sap/bc/adt',\n  adapter: myAdapter,\n});\n\n// Full type inference from XSD schemas!\nconst transport = await client.cts.getTransportRequests();\nconst classInfo = await client.oo.getClass('ZCL_MY_CLASS');\n```\n\n### Individual contracts\n\n```typescript\nimport { ctsContract, atcContract, ooContract } from 'adt-contracts';\n\n// Use specific contracts\nconst cts = createClient(ctsContract, config);\nconst atc = createClient(atcContract, config);\n```\n\n## Available Contracts\n\n| Contract       | Description                           |\n| -------------- | ------------------------------------- |\n| `coreContract` | Core ADT object operations            |\n| `ctsContract`  | Change and Transport System           |\n| `atcContract`  | ABAP Test Cockpit                     |\n| `ooContract`   | Object-Oriented (classes, interfaces) |\n\n## Architecture\n\n```\nadt-contracts (this package)\n    ├── speci contracts (endpoint definitions)\n    └── adt-schemas (ts-xsd schemas)\n            └── ts-xsd (XSD → TypeScript)\n```\n\n**Contracts are pure data** - no HTTP client, no business logic. Use with any `speci`-compatible adapter.\n\n## Adding New Contracts\n\n1. Ensure schema exists in `adt-schemas`\n2. Create contract file in `src/adt/<feature>/index.ts`\n3. Define endpoints using `adtHttp.get/post/put/delete`\n4. Export from `src/adt/index.ts`\n\n```typescript\nimport { adtHttp } from '../../base';\nimport { mySchema } from 'adt-schemas';\n\nexport const myContract = {\n  getResource: (id: string) =>\n    adtHttp.get(`/my/endpoint/${id}`, {\n      responses: { 200: mySchema },\n      headers: { Accept: 'application/vnd.sap.adt.my.v1+xml' },\n    }),\n};\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}