{"_id":"@abapify/adt-rfc","_rev":"6-a9133fd0233b034bc23cebd7b32f6420","name":"@abapify/adt-rfc","dist-tags":{"latest":"0.4.1"},"versions":{"0.0.0":{"name":"@abapify/adt-rfc","version":"0.0.0","_id":"@abapify/adt-rfc@0.0.0","maintainers":[{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"}],"dist":{"shasum":"0fa9c159e37f1ce2830f657ee5cc9a728e2bda13","tarball":"https://registry.npmjs.org/@abapify/adt-rfc/-/adt-rfc-0.0.0.tgz","fileCount":2,"integrity":"sha512-We7SvMPOhmdNm2jNiuan0twCQj3Kgt9MiYJ0Tv6ASJP9h7TWwzf8fQHJdOxygebDlpU0rCRRadLNLMMtGf8pUQ==","signatures":[{"sig":"MEUCIH/rh2TwXXdTLfP3qyQg4liEJHc//lFNmktw4bhf4CsmAiEA9ImSyUNbJ+adgrzlLXiCGCEgOdHZB4dPgFYk9Fex2YQ=","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-rfc_0.0.0_1776719517983_0.6629318606622061","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@abapify/adt-rfc","version":"0.3.4","keywords":["sap","rfc","soap","abap","startrfc"],"author":{"name":"Booking.com"},"license":"MIT","_id":"@abapify/adt-rfc@0.3.4","maintainers":[{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"}],"homepage":"https://github.com/abapify/adt-cli/tree/main/packages/adt-rfc#readme","bugs":{"url":"https://github.com/abapify/adt-cli/issues"},"dist":{"shasum":"331f1699fef2feee44404a18f5de8d427843f3b2","tarball":"https://registry.npmjs.org/@abapify/adt-rfc/-/adt-rfc-0.3.4.tgz","fileCount":2,"integrity":"sha512-pT/MM5ggZzsm3plK7ISvVhleZVxxbwuoophc0d/b6vfG8pyZbvr1ZIYggTmioCDboBzEf47WiJd3ZrkutkZQ3w==","signatures":[{"sig":"MEYCIQCBEuN1KhwLRxZMsluYZ5VLvBvXFjboZoaZIz60HF6XYwIhAOM62Ic4I1qAHVzbOWWcntK5gCzO+aCcBTxizLa4BeJ5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abapify%2fadt-rfc@0.3.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3334},"type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"gitHead":"6a630228129c616054aad8dfafe17c42f389986e","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0ef1cde9-0f51-47f2-b91c-59b857f6bf55"}},"repository":{"url":"git+https://github.com/abapify/adt-cli.git","type":"git","directory":"packages/adt-rfc"},"_npmVersion":"11.12.1","description":"SAP RFC transport for @abapify — SOAP-over-HTTP RFC implementation (/sap/bc/soap/rfc)","directories":{},"_nodeVersion":"24.14.1","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adt-rfc_0.3.4_1776722402774_0.6441147431774699","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@abapify/adt-rfc","version":"0.3.5","keywords":["sap","rfc","soap","abap","startrfc"],"author":{"name":"Booking.com"},"license":"MIT","_id":"@abapify/adt-rfc@0.3.5","maintainers":[{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"}],"homepage":"https://github.com/abapify/adt-cli/tree/main/packages/adt-rfc#readme","bugs":{"url":"https://github.com/abapify/adt-cli/issues"},"dist":{"shasum":"d31ba05c33e8418c61057b3804537853622f4d88","tarball":"https://registry.npmjs.org/@abapify/adt-rfc/-/adt-rfc-0.3.5.tgz","fileCount":2,"integrity":"sha512-4wZyxf1t+1n615Au5s2VoK/Wuz1padLR8KHa6sLHnJezRwZn3xGRup30RhdJxCIPphfUd/a5EFpdRe7IPjfi7A==","signatures":[{"sig":"MEYCIQCtqRVALDQeMPH3sLy7161xXXuRGokhiGcYG73SbK6INQIhAIHd5LIizRYMgPBMPrBI5SREuFsFyzFy9EOrta8PfjiL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abapify%2fadt-rfc@0.3.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3334},"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:0ef1cde9-0f51-47f2-b91c-59b857f6bf55"}},"repository":{"url":"git+https://github.com/abapify/adt-cli.git","type":"git","directory":"packages/adt-rfc"},"_npmVersion":"11.12.1","description":"SAP RFC transport for @abapify — SOAP-over-HTTP RFC implementation (/sap/bc/soap/rfc)","directories":{},"_nodeVersion":"24.14.1","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adt-rfc_0.3.5_1776723645161_0.3414706293184482","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"@abapify/adt-rfc","version":"0.3.6","keywords":["sap","rfc","soap","abap","startrfc"],"author":{"name":"Booking.com"},"license":"MIT","_id":"@abapify/adt-rfc@0.3.6","maintainers":[{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"}],"homepage":"https://github.com/abapify/adt-cli/tree/main/packages/adt-rfc#readme","bugs":{"url":"https://github.com/abapify/adt-cli/issues"},"dist":{"shasum":"40fed0cdaa8e450fda6283bf63a0f9568e1232a2","tarball":"https://registry.npmjs.org/@abapify/adt-rfc/-/adt-rfc-0.3.6.tgz","fileCount":2,"integrity":"sha512-ZCgkX06w0A3ZOtzCHKCI9fpPF9rY9VhmSEKXpXgF51Hv47Et1fftCUETZK/S8Bc/BKhk4um/3HzJmzeSLv0Jaw==","signatures":[{"sig":"MEQCIFPi5fswkct47jsVTJ60/chHs4ScSz18rNhsa7P2UuWlAiAs7R92B7qmSj5MQ0yiCRtet80V/xRAr9gGgTQXuGWazQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abapify%2fadt-rfc@0.3.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3334},"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:0ef1cde9-0f51-47f2-b91c-59b857f6bf55"}},"repository":{"url":"git+https://github.com/abapify/adt-cli.git","type":"git","directory":"packages/adt-rfc"},"_npmVersion":"11.11.0","description":"SAP RFC transport for @abapify — SOAP-over-HTTP RFC implementation (/sap/bc/soap/rfc)","directories":{},"_nodeVersion":"24.14.1","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adt-rfc_0.3.6_1776744792195_0.18209411919552143","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@abapify/adt-rfc","version":"0.4.0","keywords":["sap","rfc","soap","abap","startrfc"],"author":{"name":"Booking.com"},"license":"MIT","_id":"@abapify/adt-rfc@0.4.0","maintainers":[{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"}],"homepage":"https://github.com/abapify/adt-cli/tree/main/packages/adt-rfc#readme","bugs":{"url":"https://github.com/abapify/adt-cli/issues"},"dist":{"shasum":"d76259c8d633b9e2ce225313559b3c69e3f122c7","tarball":"https://registry.npmjs.org/@abapify/adt-rfc/-/adt-rfc-0.4.0.tgz","fileCount":2,"integrity":"sha512-Q54ArUbrhRwiQby5SiZ9Zgc5+wouaASXZwydYgUJBbt7CIvkvszsFJLh5Al1nuOYm5qV6Kl5YwuY7W//sHdEHw==","signatures":[{"sig":"MEQCIGGYWzkLqF5gqKM4oKm71dnJlgXvDNl7e896s+1WB+RGAiBzZrCIZoDYYOrD3XWaiNNcWf/zL4CGepUotj3Z+pvlnA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abapify%2fadt-rfc@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3334},"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:0ef1cde9-0f51-47f2-b91c-59b857f6bf55"}},"repository":{"url":"git+https://github.com/abapify/adt-cli.git","type":"git","directory":"packages/adt-rfc"},"_npmVersion":"11.13.0","description":"SAP RFC transport for @abapify — SOAP-over-HTTP RFC implementation (/sap/bc/soap/rfc)","directories":{},"_nodeVersion":"24.16.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/adt-rfc_0.4.0_1780072630300_0.23275359134242857","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@abapify/adt-rfc","publishConfig":{"access":"public"},"version":"0.4.1","description":"SAP RFC transport for @abapify — SOAP-over-HTTP RFC implementation (/sap/bc/soap/rfc)","type":"module","types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./package.json":"./package.json"},"dependencies":{},"keywords":["sap","rfc","soap","abap","startrfc"],"author":{"name":"Booking.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/abapify/adt-cli.git","directory":"packages/adt-rfc"},"homepage":"https://github.com/abapify/adt-cli/tree/main/packages/adt-rfc#readme","bugs":{"url":"https://github.com/abapify/adt-cli/issues"},"gitHead":"9d3b996a5c760a8db67e28c4df3c30098bd29e4a","_id":"@abapify/adt-rfc@0.4.1","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-Sc+Mf+ZOlJnQhdJ9Rwy2DR/qNgHsuRpYwPl9vw6PzJ6wHv64k9x21twQggr1YknuIOr3toZRUCLED+jQf6jxfg==","shasum":"4673148a03dede7677757713496d19ef8d08d483","tarball":"https://registry.npmjs.org/@abapify/adt-rfc/-/adt-rfc-0.4.1.tgz","fileCount":6,"unpackedSize":41608,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abapify%2fadt-rfc@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDzpdb2e+W9ocqyhSpM+Ff0V3irgp3h5XCuxBA0+U//dwIgBG3dYXJnlSRqf8OTJvGagjow7NjS/9U4XWHOvDWXbT4="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0ef1cde9-0f51-47f2-b91c-59b857f6bf55"}},"directories":{},"maintainers":[{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/adt-rfc_0.4.1_1780074904592_0.8474552969329989"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-20T21:11:57.870Z","modified":"2026-05-29T17:15:05.018Z","0.0.0":"2026-04-20T21:11:58.120Z","0.3.4":"2026-04-20T22:00:02.878Z","0.3.5":"2026-04-20T22:20:45.294Z","0.3.6":"2026-04-21T04:13:12.325Z","0.4.0":"2026-05-29T16:37:10.457Z","0.4.1":"2026-05-29T17:15:04.735Z"},"bugs":{"url":"https://github.com/abapify/adt-cli/issues"},"author":{"name":"Booking.com"},"license":"MIT","homepage":"https://github.com/abapify/adt-cli/tree/main/packages/adt-rfc#readme","keywords":["sap","rfc","soap","abap","startrfc"],"repository":{"type":"git","url":"git+https://github.com/abapify/adt-cli.git","directory":"packages/adt-rfc"},"description":"SAP RFC transport for @abapify — SOAP-over-HTTP RFC implementation (/sap/bc/soap/rfc)","maintainers":[{"name":"theplenkov-npm","email":"petr.plenkov@gmail.com"}],"readme":"# @abapify/adt-rfc\n\nSOAP-over-HTTP RFC transport for SAP systems. Calls classic RFC function modules (BAPIs, STFC_CONNECTION, TH_USER_LIST, custom FMs, etc.) without requiring the native `libsapnwrfc` SDK — by tunnelling the call through SAP's built-in `/sap/bc/soap/rfc` endpoint.\n\n> This package lives **outside** the `/sap/bc/adt/*` URL space. RFC is a separate transport layer from ADT — that's why it's a separate package, not a schema/contract under `@abapify/adt-client`.\n\n## Install\n\n```bash\nbun add @abapify/adt-rfc\n```\n\n## Usage\n\n```ts\nimport { createAdtClient } from '@abapify/adt-client';\nimport { createRfcClient } from '@abapify/adt-rfc';\n\nconst adt = createAdtClient({\n  baseUrl: 'https://my.sap.example.com',\n  username: 'DEVELOPER',\n  password: '…',\n  client: '100',\n});\n\nconst rfc = createRfcClient({\n  fetch: (url, opts) => adt.fetch(url, opts),\n  client: '100',\n});\n\nconst resp = await rfc.call('STFC_CONNECTION', { REQUTEXT: 'hello' });\nconsole.log(resp.ECHOTEXT); // → \"hello\"\nconsole.log(resp.RESPTEXT); // → \"SAP R/3 Rel. 7.55 Sysid: TRL …\"\n```\n\n## Parameter types\n\nParameters and responses are modelled as loose JSON trees:\n\n| RFC type  | TypeScript representation             |\n| --------- | ------------------------------------- |\n| Scalar    | `string \\| number \\| boolean \\| null` |\n| Structure | `{ FIELD1: …, FIELD2: … }`            |\n| Table     | `[{ FIELD: … }, { FIELD: … }]`        |\n\nTables are serialised as SAP's `<TABLE_NAME><item>…</item><item>…</item></TABLE_NAME>` convention on the wire.\n\n## Errors\n\n- **`RfcSoapFault`** — the server returned a `soap:Fault`. Exposes `faultcode`, `faultstring`, and the raw response body.\n- **`RfcTransportUnavailable`** — the `/sap/bc/soap/rfc` endpoint returned 401/403/404/501. Some SAP systems disable SOAP-RFC; catch this to downgrade gracefully.\n\n## Limitations\n\n- **SOAP-RFC only.** Native `libsapnwrfc` binding (via `node-rfc`) is deliberately out of scope — track `@abapify/adt-plugin-rfc-native` for that future path.\n- **Type encoding.** SAP's SOAP-RFC wrapper does not round-trip every RFC data type perfectly. Binary fields come back as base64-looking strings; dates/times come back as SAP internal strings (`YYYYMMDD`, `HHMMSS`). Callers convert.\n- **Authentication.** Reuses the ADT client's session/CSRF/cookie state — no separate auth plumbing.\n\n## See also\n\n- Spec: `docs/roadmap/epics/e13-startrfc.md`\n- Reference implementation: `tmp/sapcli-ref/sapcli/sap/rfc/`\n","readmeFilename":"README.md"}