{"_id":"@ckreidl/katana-client","_rev":"7-25788d1e65883f98b42412ebac3cd676","name":"@ckreidl/katana-client","dist-tags":{"latest":"1.2.1"},"versions":{"0.1.0":{"name":"@ckreidl/katana-client","version":"0.1.0","keywords":["katana","mrp","api","client","manufacturing"],"license":"MIT","_id":"@ckreidl/katana-client@0.1.0","maintainers":[{"name":"chriskreidl","email":"chris.kreidl@protonmail.ch"}],"homepage":"https://github.com/chris-kreidl/katanatools#readme","bugs":{"url":"https://github.com/chris-kreidl/katanatools/issues"},"dist":{"shasum":"bbde83477e0d2522c828778ca6b11c2cc33f19b6","tarball":"https://registry.npmjs.org/@ckreidl/katana-client/-/katana-client-0.1.0.tgz","fileCount":25,"integrity":"sha512-A8KzIs0olf+l2IPr/03VFi8wvlgdQ7Q9uvAolefM/sEa0Qudc5ilXoQHvTdkvxp6FdWRf8W89sYIXd5QZyJsjw==","signatures":[{"sig":"MEUCIQD16ApX25q2CC0g6luPBbc0IxU5hEetVXX6biAqGr3cmAIgIS6RIwCEafKSHRImmc3rCbmw4X+yT25qt8xu8lal/IE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":353370},"type":"module","exports":{".":"./src/index.ts"},"scripts":{"fmt":"oxfmt","lint":"oxlint","test":"vitest run","build":"rolldown -c && tsc -p tsconfig.build.json","fmt:check":"oxfmt --check","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"chriskreidl","email":"chris.kreidl@protonmail.ch"},"repository":{"url":"git+https://github.com/chris-kreidl/katanatools.git","type":"git","directory":"packages/katana-client"},"_npmVersion":"11.6.0","description":"TypeScript client for the Katana MRP API","directories":{},"_nodeVersion":"24.8.0","dependencies":{"zod":"^4.3.6","ofetch":"^1.5.1","p-throttle":"^6.1.0"},"publishConfig":{"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}}},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.0","rolldown":"^1.0.0-rc.0"},"peerDependencies":{"typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/katana-client_0.1.0_1773449431344_0.6473189548132254","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@ckreidl/katana-client","version":"0.2.0","keywords":["api","client","katana","manufacturing","mrp"],"license":"MIT","_id":"@ckreidl/katana-client@0.2.0","maintainers":[{"name":"chriskreidl","email":"chris.kreidl@protonmail.ch"}],"homepage":"https://github.com/chris-kreidl/katanatools#readme","bugs":{"url":"https://github.com/chris-kreidl/katanatools/issues"},"dist":{"shasum":"e6a689d267de4a01938b6edd6e17024352fda84b","tarball":"https://registry.npmjs.org/@ckreidl/katana-client/-/katana-client-0.2.0.tgz","fileCount":27,"integrity":"sha512-ZAWTkEf1528G82XZRgd5KI/YiQVc7jkG2YihZvhP7haSJoQX6IKRWh2f/qzzwUlsO/jQqVX3udX6hU4GE4vcog==","signatures":[{"sig":"MEUCIFf8sDKBtNpns740bZpS3Rqu6pBrvlCRGIa368lrmeS4AiEArhLKt1iTuKJdQea8r7T+DASZY9BkEZ+iJT35BvQZ06E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ckreidl%2fkatana-client@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":362088},"type":"module","_from":"file:ckreidl-katana-client-0.2.0.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"fmt":"oxfmt","lint":"oxlint","test":"vitest run","build":"rolldown -c && tsc -p tsconfig.build.json","fmt:check":"oxfmt --check","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:29c6156a-7616-4707-a90e-9658efba0f2b"}},"_resolved":"/tmp/3ef457e73d66da6131627acccb7ff987/ckreidl-katana-client-0.2.0.tgz","_integrity":"sha512-ZAWTkEf1528G82XZRgd5KI/YiQVc7jkG2YihZvhP7haSJoQX6IKRWh2f/qzzwUlsO/jQqVX3udX6hU4GE4vcog==","repository":{"url":"git+https://github.com/chris-kreidl/katanatools.git","type":"git","directory":"packages/katana-client"},"_npmVersion":"11.9.0","description":"TypeScript client for the Katana MRP API","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^4.3.6","ofetch":"^1.5.1","p-throttle":"^6.1.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.0","rolldown":"^1.0.0-rc.0"},"peerDependencies":{"typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/katana-client_0.2.0_1773455243816_0.9543796428339957","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@ckreidl/katana-client","version":"0.3.0","keywords":["api","client","katana","manufacturing","mrp"],"license":"MIT","_id":"@ckreidl/katana-client@0.3.0","maintainers":[{"name":"chriskreidl","email":"chris.kreidl@protonmail.ch"}],"homepage":"https://github.com/chris-kreidl/katanatools#readme","bugs":{"url":"https://github.com/chris-kreidl/katanatools/issues"},"dist":{"shasum":"c68b4c539ce8c4a00fca46ac12c74239dafc8a8d","tarball":"https://registry.npmjs.org/@ckreidl/katana-client/-/katana-client-0.3.0.tgz","fileCount":23,"integrity":"sha512-toznI/AGqj1rapBCDCJc7sGAlfBdU/bvOvJ6wCXQ08iG23RhGZfjz/wkQc43TyXHsL8rWD4ip+3tj8TOprvLxQ==","signatures":[{"sig":"MEUCIQDL8juKyn430nKZyeZVN9pHu47VkoCPhg5QSYtVu30G5wIgA9b7N+HbodP7qLg19eduS/LzX10oddjU7m1jFUrXgfY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ckreidl%2fkatana-client@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":371287},"type":"module","_from":"file:ckreidl-katana-client-0.3.0.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"fmt":"oxfmt","lint":"oxlint","test":"vitest run","build":"rolldown -c && tsc -p tsconfig.build.json","fmt:check":"oxfmt --check","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:29c6156a-7616-4707-a90e-9658efba0f2b"}},"_resolved":"/tmp/5309ed8a4758556b5e9e19fa2c7a56af/ckreidl-katana-client-0.3.0.tgz","_integrity":"sha512-toznI/AGqj1rapBCDCJc7sGAlfBdU/bvOvJ6wCXQ08iG23RhGZfjz/wkQc43TyXHsL8rWD4ip+3tj8TOprvLxQ==","repository":{"url":"git+https://github.com/chris-kreidl/katanatools.git","type":"git","directory":"packages/katana-client"},"_npmVersion":"11.9.0","description":"TypeScript client for the Katana MRP API","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^4.3.6","ofetch":"^1.5.1","p-throttle":"^8.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.0","rolldown":"^1.0.0-rc.0"},"peerDependencies":{"typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/katana-client_0.3.0_1773596736742_0.2903773794580764","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@ckreidl/katana-client","version":"1.0.0","keywords":["api","client","katana","manufacturing","mrp"],"license":"MIT","_id":"@ckreidl/katana-client@1.0.0","maintainers":[{"name":"chriskreidl","email":"chris.kreidl@protonmail.ch"}],"homepage":"https://github.com/chris-kreidl/katanatools#readme","bugs":{"url":"https://github.com/chris-kreidl/katanatools/issues"},"dist":{"shasum":"ba2f71f135888b96d5d9f9c023ab357e903705a0","tarball":"https://registry.npmjs.org/@ckreidl/katana-client/-/katana-client-1.0.0.tgz","fileCount":37,"integrity":"sha512-v2N8gzf1c/0z+cEMC/7EEV+zD93HDLJodq8hGl+rPdE/z7yS7czaq44503S45ZNLPNng5t0oGzdF1H4upqQYvw==","signatures":[{"sig":"MEQCICiFBHBvdp2iSRIz4gVCFzZBhapVJ8e5RBm8L+UAdmuQAiAWmXvwOLgvo7fhN3B8EhDkqqmKAQE9YlNteghlQaZcrA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ckreidl%2fkatana-client@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":403595},"type":"module","_from":"file:ckreidl-katana-client-1.0.0.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"fmt":"oxfmt","lint":"oxlint","test":"vitest run","build":"rolldown -c && tsc -p tsconfig.build.json","fmt:check":"oxfmt --check","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:29c6156a-7616-4707-a90e-9658efba0f2b"}},"_resolved":"/tmp/e6f139d06718235700c67cc335c7a136/ckreidl-katana-client-1.0.0.tgz","_integrity":"sha512-v2N8gzf1c/0z+cEMC/7EEV+zD93HDLJodq8hGl+rPdE/z7yS7czaq44503S45ZNLPNng5t0oGzdF1H4upqQYvw==","repository":{"url":"git+https://github.com/chris-kreidl/katanatools.git","type":"git","directory":"packages/katana-client"},"_npmVersion":"11.9.0","description":"TypeScript client for the Katana MRP API","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^4.3.6","ofetch":"^1.5.1","p-throttle":"^8.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.0","rolldown":"^1.0.0-rc.0"},"peerDependencies":{"typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/katana-client_1.0.0_1773706987401_0.8726519882102723","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@ckreidl/katana-client","version":"1.1.0","keywords":["api","client","katana","manufacturing","mrp"],"license":"MIT","_id":"@ckreidl/katana-client@1.1.0","maintainers":[{"name":"chriskreidl","email":"chris.kreidl@protonmail.ch"}],"homepage":"https://github.com/chris-kreidl/katanatools#readme","bugs":{"url":"https://github.com/chris-kreidl/katanatools/issues"},"dist":{"shasum":"1363cae79d08567b062cb44f52823cedbe0165ff","tarball":"https://registry.npmjs.org/@ckreidl/katana-client/-/katana-client-1.1.0.tgz","fileCount":47,"integrity":"sha512-ZTrPLSqCZtE2aVxmq5J/1SWMQvEV2tKN7Xqk/7Xofj3W6CBAyKljWnHoGVhTmWCEenSljAj0HsOWwkmaK4aVeQ==","signatures":[{"sig":"MEUCICV40K4jLL3YyU24Bg8Lmmm261CF3uqzCtb9tPwQdzKwAiEA2h5nkf0ibWVZukzpt6/CNnOjUSsHt4AJ4xhqo9rkipA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ckreidl%2fkatana-client@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":466821},"type":"module","_from":"file:ckreidl-katana-client-1.1.0.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"fmt":"oxfmt","lint":"oxlint","test":"vitest run","build":"rolldown -c && tsc -p tsconfig.build.json","fmt:check":"oxfmt --check","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:29c6156a-7616-4707-a90e-9658efba0f2b"}},"_resolved":"/tmp/635c0b1972af36c2ef6bf600d41fd762/ckreidl-katana-client-1.1.0.tgz","_integrity":"sha512-ZTrPLSqCZtE2aVxmq5J/1SWMQvEV2tKN7Xqk/7Xofj3W6CBAyKljWnHoGVhTmWCEenSljAj0HsOWwkmaK4aVeQ==","repository":{"url":"git+https://github.com/chris-kreidl/katanatools.git","type":"git","directory":"packages/katana-client"},"_npmVersion":"11.9.0","description":"TypeScript client for the Katana MRP API","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^4.3.6","ofetch":"^1.5.1","p-throttle":"^8.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.0","rolldown":"^1.0.0-rc.0"},"peerDependencies":{"typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/katana-client_1.1.0_1774042248265_0.8213537855782342","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@ckreidl/katana-client","version":"1.2.0","keywords":["api","client","katana","manufacturing","mrp"],"license":"MIT","_id":"@ckreidl/katana-client@1.2.0","maintainers":[{"name":"chriskreidl","email":"chris.kreidl@protonmail.ch"}],"homepage":"https://github.com/chris-kreidl/katanatools#readme","bugs":{"url":"https://github.com/chris-kreidl/katanatools/issues"},"dist":{"shasum":"63080e3704b085a7acaecbd3016c75712e739265","tarball":"https://registry.npmjs.org/@ckreidl/katana-client/-/katana-client-1.2.0.tgz","fileCount":5,"integrity":"sha512-O4I4qxQ4rmaq14IYzL9ckSKgnZn51XzHXd53rD+VX0/DzQjhTPMSx+8FLWYMGS5Z6kBGUG8C3w+wpT88RyuvQw==","signatures":[{"sig":"MEUCIGhBmLrbsO7OUXBq/+9zTAp+3nEGPkyLE9rxVbdNKVgSAiEAkAgQrCeC3Xo7XZLyD87GoRkLAjOka9hCMqwpIYEj5TE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ckreidl%2fkatana-client@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":135481},"type":"module","_from":"file:ckreidl-katana-client-1.2.0.tgz","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs"}},"scripts":{"pack":"vp pack"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:29c6156a-7616-4707-a90e-9658efba0f2b"}},"_resolved":"/tmp/89780aebb70185d1e6e642f738d50e08/ckreidl-katana-client-1.2.0.tgz","_integrity":"sha512-O4I4qxQ4rmaq14IYzL9ckSKgnZn51XzHXd53rD+VX0/DzQjhTPMSx+8FLWYMGS5Z6kBGUG8C3w+wpT88RyuvQw==","repository":{"url":"git+https://github.com/chris-kreidl/katanatools.git","type":"git","directory":"packages/katana-client"},"_npmVersion":"11.9.0","description":"TypeScript client for the Katana MRP API","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^4.3.6","ofetch":"^1.5.1","p-throttle":"^8.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"npm:@voidzero-dev/vite-plus-test@latest","vite-plus":"latest"},"peerDependencies":{"typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/katana-client_1.2.0_1774134487898_0.3430073888020091","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@ckreidl/katana-client","version":"1.2.1","description":"TypeScript client for the Katana MRP API","keywords":["api","client","katana","manufacturing","mrp"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/chris-kreidl/katanatools.git","directory":"packages/katana-client"},"type":"module","exports":{".":{"import":"./dist/index.mjs","types":"./dist/index.d.mts"}},"dependencies":{"ofetch":"^1.5.1","p-throttle":"^8.0.0","zod":"^4.3.6"},"devDependencies":{"vite-plus":"latest","vitest":"npm:@voidzero-dev/vite-plus-test@latest"},"peerDependencies":{"typescript":"^5.9.3"},"scripts":{"pack":"vp pack"},"_id":"@ckreidl/katana-client@1.2.1","bugs":{"url":"https://github.com/chris-kreidl/katanatools/issues"},"homepage":"https://github.com/chris-kreidl/katanatools#readme","_integrity":"sha512-yUomvPTsioGh6DKb9ZLxwccqiEkY0YZ92yoM0pBfRQaNRuiDnfK1dMurt73s2cvkrHdgUTPVTV7tSTIzeRWw7g==","_resolved":"/tmp/9cd90d52cacb6d290e43092d3010ebc2/ckreidl-katana-client-1.2.1.tgz","_from":"file:ckreidl-katana-client-1.2.1.tgz","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-yUomvPTsioGh6DKb9ZLxwccqiEkY0YZ92yoM0pBfRQaNRuiDnfK1dMurt73s2cvkrHdgUTPVTV7tSTIzeRWw7g==","shasum":"d091e2c3ee2b5176e53114890a0d6f39e5e25ccb","tarball":"https://registry.npmjs.org/@ckreidl/katana-client/-/katana-client-1.2.1.tgz","fileCount":5,"unpackedSize":135754,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ckreidl%2fkatana-client@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFHWoSKrfstf67cMWH+tDN9c0IPBBYzVsW3u2OYpcdfdAiEAr4AVJo8Cm0wgu6pnL45Hb0hfWeNbwfSYl9L4ZGn96u8="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:29c6156a-7616-4707-a90e-9658efba0f2b"}},"directories":{},"maintainers":[{"name":"chriskreidl","email":"chris.kreidl@protonmail.ch"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/katana-client_1.2.1_1774299171707_0.3442620583008644"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-14T00:50:31.287Z","modified":"2026-03-23T20:52:52.122Z","0.1.0":"2026-03-14T00:50:31.499Z","0.2.0":"2026-03-14T02:27:23.980Z","0.3.0":"2026-03-15T17:45:36.903Z","1.0.0":"2026-03-17T00:23:07.570Z","1.1.0":"2026-03-20T21:30:48.449Z","1.2.0":"2026-03-21T23:08:08.040Z","1.2.1":"2026-03-23T20:52:51.839Z"},"bugs":{"url":"https://github.com/chris-kreidl/katanatools/issues"},"license":"MIT","homepage":"https://github.com/chris-kreidl/katanatools#readme","keywords":["api","client","katana","manufacturing","mrp"],"repository":{"type":"git","url":"git+https://github.com/chris-kreidl/katanatools.git","directory":"packages/katana-client"},"description":"TypeScript client for the Katana MRP API","maintainers":[{"name":"chriskreidl","email":"chris.kreidl@protonmail.ch"}],"readme":"# katana-client\n\nTypeScript client for the [Katana MRP](https://katanamrp.com) REST API.\n\n## Install\n\n```sh\nnpm install @ckreidl/katana-client\n```\n\n## Usage\n\n```ts\nimport { KatanaClient } from \"@ckreidl/katana-client\";\n\n// Both options are optional — apiKey falls back to KATANA_API_KEY env var,\n// and requestsPerSecond defaults to 1 (or KATANA_REQUESTS_PER_SECOND env var).\nconst client = new KatanaClient({\n  apiKey: \"your-api-key\",\n  requestsPerSecond: 5,\n});\n\n// List products\nconst products = await client.products.list({ name: \"Widget\" });\n\n// Get a single product\nconst product = await client.products.get({ id: 1 });\n\n// Create a product\nconst created = await client.products.create({ name: \"Widget\", uom: \"pcs\" });\n\n// Update a product\nconst updated = await client.products.update({ id: 1, name: \"Updated Widget\" });\n\n// Paginate through all results\nfor await (const page of client.paginate(client.products.list, {})) {\n  console.log(page);\n}\n```\n\n## Typed `extend` Parameter\n\nSeveral Katana endpoints accept an `extend` query parameter that includes related resources in the response. This client provides overloaded method signatures so TypeScript narrows the return type when you specify `extend`:\n\n```ts\n// Without extend — supplier is optional, requires null checks\nconst product = await client.products.get({ id: 1 });\nproduct.supplier?.name; // string | undefined\n\n// With extend — supplier is guaranteed present\nconst extended = await client.products.get({ id: 1, extend: [\"supplier\"] });\nextended.supplier.name; // string | undefined (field exists, but name is optional)\n```\n\nSupported `extend` values by resource:\n\n| Resource         | Extend Value          | Field Added           |\n| ---------------- | --------------------- | --------------------- |\n| Products         | `supplier`            | `supplier`            |\n| Materials        | `supplier`            | `supplier`            |\n| Variants         | `product_or_material` | `product_or_material` |\n| Inventory        | `variant`, `location` | `variant`, `location` |\n| Sales Order Rows | `variant`             | `variant`             |\n| Purchase Orders  | `supplier`            | `supplier`            |\n\n> **Note:** These response fields are not documented in the Katana OpenAPI spec. See [SPEC_GAPS.md](./SPEC_GAPS.md) for details.\n\n## Configuration\n\n| Option              | Environment Variable         | Description               | Default |\n| ------------------- | ---------------------------- | ------------------------- | ------- |\n| `apiKey`            | `KATANA_API_KEY`             | API bearer token          | —       |\n| `requestsPerSecond` | `KATANA_REQUESTS_PER_SECOND` | Rate limit (requests/sec) | `1`     |\n\nConstructor options take precedence over environment variables.\n\n## License\n\n[MIT](../../LICENSE)\n","readmeFilename":"README.md"}