{"_id":"@mcp-abap-adt/core","_rev":"137-bcd3fd4b197aea797393a56dcd89704e","name":"@mcp-abap-adt/core","dist-tags":{"latest":"15.0.0"},"versions":{"1.4.1":{"name":"@mcp-abap-adt/core","version":"1.4.1","keywords":["abap","sap","adt","mcp","model-context-protocol"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@1.4.1","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","adt-lock-object":"bin/lock-object.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js","adt-manage-locks":"bin/manage-locks.js","adt-unlock-object":"bin/unlock-object.js","adt-unlock-objects":"bin/unlock-test-objects.js","adt-manage-sessions":"bin/manage-sessions.js"},"dist":{"shasum":"eb6cbc9291194d11a9142d1009aefb6c877d0079","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-1.4.1.tgz","fileCount":1695,"integrity":"sha512-OIAtcLfX/ID1hvhfgJfuit8Qq3LmhnSw/phj4fD+JpgX+11TIbA6qWIpm430MuKIHTBYna05O2+eI1szwt2iHg==","signatures":[{"sig":"MEYCIQDe1H251tJbfV1QMWgmf2+CM8CR8Qo+G8HyMNNYuElcXgIhALi3LDRBDhBFvsDptmIUTxxc67VpJlxiHMGXHS2i9eQY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8116184},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"fddd29d5cf1fd4b3ce2c11b4b5a96509ffe3beb2","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.6.2","description":"Embedded ABAP ADT MCP server tailored for the Cloud LLM Hub stack","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zod":"^4.2.1","pino":"^10.1.0","axios":"^1.11.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.3","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^0.2.9","@mcp-abap-adt/interfaces":"^0.2.15","@mcp-abap-adt/adt-clients":"^0.3.13","@mcp-abap-adt/auth-broker":"^0.2.14","@mcp-abap-adt/auth-stores":"^0.2.10","@modelcontextprotocol/sdk":"^1.25.1","@mcp-abap-adt/auth-providers":"^0.2.10","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.5","jest":"^30.2.0","open":"^11.0.0","pino":"^10.1.0","yaml":"^2.8.1","dotenv":"^17.2.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.2","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.0.3","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.3.10","@types/js-yaml":"^4.0.9","@modelcontextprotocol/inspector":"^0.18.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.4.1_1767031923972_0.20703586643480953","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"@mcp-abap-adt/core","version":"1.4.2","keywords":["abap","sap","adt","mcp","model-context-protocol"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@1.4.2","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","adt-lock-object":"bin/lock-object.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js","adt-manage-locks":"bin/manage-locks.js","adt-unlock-object":"bin/unlock-object.js","adt-unlock-objects":"bin/unlock-test-objects.js","adt-manage-sessions":"bin/manage-sessions.js"},"dist":{"shasum":"f8ec541ad5e0fcf4667576530ac1ca62b75c30f6","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-1.4.2.tgz","fileCount":1695,"integrity":"sha512-ba/YuxqeclfVss3Q8SFi7M/0ERWmNvrSdpFnpZF+pIiS5TzN+KeZR/euzNZoit16HW8bIiHX9wNCmvrBZbf84g==","signatures":[{"sig":"MEUCIC8kALXSlgVQ6rAwlhsRsShWuexkiFSCuA/97qnjYcSoAiEA+8EovZ1ElOF+n/yMnqSFWqb5de2jR5e0/pH/K50Yx4o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8116319},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"20c9aa518d0484de154f8a7275fdfa95b3705020","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.6.2","description":"Embedded ABAP ADT MCP server tailored for the Cloud LLM Hub stack","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zod":"^4.2.1","pino":"^10.1.0","axios":"^1.11.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.3","@mcp-abap-adt/core":"^1.4.1","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^0.2.9","@mcp-abap-adt/interfaces":"^0.2.15","@mcp-abap-adt/adt-clients":"^0.3.13","@mcp-abap-adt/auth-broker":"^0.2.14","@mcp-abap-adt/auth-stores":"^0.2.10","@modelcontextprotocol/sdk":"^1.25.1","@mcp-abap-adt/auth-providers":"^0.2.10","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.5","jest":"^30.2.0","open":"^11.0.0","pino":"^10.1.0","yaml":"^2.8.1","dotenv":"^17.2.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.2","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.0.3","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.3.10","@types/js-yaml":"^4.0.9","@modelcontextprotocol/inspector":"^0.18.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.4.2_1767032914816_0.032857877960119186","host":"s3://npm-registry-packages-npm-production"}},"1.4.3":{"name":"@mcp-abap-adt/core","version":"1.4.3","keywords":["abap","sap","adt","mcp","model-context-protocol"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@1.4.3","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","adt-lock-object":"bin/lock-object.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js","adt-manage-locks":"bin/manage-locks.js","adt-unlock-object":"bin/unlock-object.js","adt-unlock-objects":"bin/unlock-test-objects.js","adt-manage-sessions":"bin/manage-sessions.js"},"dist":{"shasum":"b0f1cef233f51cc66d830aff5a93e84c4a9d8534","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-1.4.3.tgz","fileCount":1695,"integrity":"sha512-xq5DBksa5O6iE8JcFIWTlgvik6SWKeDZilxhACF+CsKUkkFYcM6Dt6cQfouK7/tUDv3kk9U2/4LpxNbmnA3Gug==","signatures":[{"sig":"MEQCIBtPaQGJWlWDOxOeTcjDcoWev/ndKi351XjjP1xU4AP4AiB7WIOsxHDq+Np5cwP1JW2LKiul1atKZ57tyZOi+gnxpw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8121362},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"877bbc5486528130cb89b8d79b537f36ab7e344d","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.6.2","description":"Embedded ABAP ADT MCP server tailored for the Cloud LLM Hub stack","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zod":"^4.2.1","pino":"^10.1.0","axios":"^1.11.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.3","@mcp-abap-adt/core":"^1.4.1","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^0.2.9","@mcp-abap-adt/interfaces":"^0.2.15","@mcp-abap-adt/adt-clients":"^0.3.13","@mcp-abap-adt/auth-broker":"^0.2.14","@mcp-abap-adt/auth-stores":"^0.2.10","@modelcontextprotocol/sdk":"^1.25.1","@mcp-abap-adt/auth-providers":"^0.2.10","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.5","jest":"^30.2.0","open":"^11.0.0","pino":"^10.1.0","yaml":"^2.8.1","dotenv":"^17.2.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.2","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.0.3","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.3.10","@types/js-yaml":"^4.0.9","@modelcontextprotocol/inspector":"^0.18.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.4.3_1767033856248_0.9612566648727001","host":"s3://npm-registry-packages-npm-production"}},"1.4.4":{"name":"@mcp-abap-adt/core","version":"1.4.4","keywords":["abap","sap","adt","mcp","model-context-protocol"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@1.4.4","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","adt-lock-object":"bin/lock-object.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js","adt-manage-locks":"bin/manage-locks.js","adt-unlock-object":"bin/unlock-object.js","adt-unlock-objects":"bin/unlock-test-objects.js","adt-manage-sessions":"bin/manage-sessions.js"},"dist":{"shasum":"5a24e02654860e02ed1aa065862554fab6d5018b","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-1.4.4.tgz","fileCount":1695,"integrity":"sha512-xkAlTlPKjmp/j2PPQTUpm4OcKH14Se3O1Gt+buF8f+ApYTvgC9RZLIx49k+eT0bP1MfoxU5aX6NFPtVs11T8Zg==","signatures":[{"sig":"MEQCIDm2muw1K0ZmLtKv40CD6pOwr7ev12ZMIDyRBQaojNi4AiBeNz+TmoJw7Kyg5RD0bjervZlefGYYc2W51rTX0y0EMA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8122092},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"3e2ae12015d52d3788f02c08ee9fc29ee6c3dd15","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.6.2","description":"Embedded ABAP ADT MCP server tailored for the Cloud LLM Hub stack","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zod":"^4.2.1","pino":"^10.1.0","axios":"^1.11.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.3","@mcp-abap-adt/core":"^1.4.1","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^0.2.9","@mcp-abap-adt/interfaces":"^0.2.15","@mcp-abap-adt/adt-clients":"^0.3.13","@mcp-abap-adt/auth-broker":"^0.2.14","@mcp-abap-adt/auth-stores":"^0.2.10","@modelcontextprotocol/sdk":"^1.25.1","@mcp-abap-adt/auth-providers":"^0.2.10","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.5","jest":"^30.2.0","open":"^11.0.0","pino":"^10.1.0","yaml":"^2.8.1","dotenv":"^17.2.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.2","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.0.3","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.3.10","@types/js-yaml":"^4.0.9","@modelcontextprotocol/inspector":"^0.18.0"},"_npmOperationalInternal":{"tmp":"tmp/core_1.4.4_1767074851348_0.9589318509712488","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@mcp-abap-adt/core","version":"2.0.0","keywords":["abap","sap","adt","mcp","model-context-protocol"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@2.0.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","adt-lock-object":"bin/lock-object.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js","adt-manage-locks":"bin/manage-locks.js","adt-unlock-object":"bin/unlock-object.js","adt-unlock-objects":"bin/unlock-test-objects.js","adt-manage-sessions":"bin/manage-sessions.js"},"dist":{"shasum":"41acc7af998a99117a7a96a5b72fd8dcf522820e","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-2.0.0.tgz","fileCount":1699,"integrity":"sha512-2JcBpw7PsWwjXpzE52cT55JQ+qBH51acYjr9O80sqX6lKiR76ASXhljsb+vgZrYstWcObUxgaS3gSaNP/4HOCA==","signatures":[{"sig":"MEYCIQCFnsZbGsOIfBXNmZOL02nUgMbr1vtpmgn4xDrjp8OdVwIhAOYgbbRvcKVUQkJdEz9TsLIGtfjnXYxfx8PvGzentTCw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8126081},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"1aacd76c552c2713850509b3f33ded65c22a9387","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.6.2","description":"Embedded ABAP ADT MCP server tailored for the Cloud LLM Hub stack","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zod":"^4.2.1","pino":"^10.1.0","axios":"^1.11.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.3","@mcp-abap-adt/core":"^1.4.1","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^0.2.9","@mcp-abap-adt/interfaces":"^0.2.15","@mcp-abap-adt/adt-clients":"^0.3.13","@mcp-abap-adt/auth-broker":"^0.2.14","@mcp-abap-adt/auth-stores":"^0.2.10","@modelcontextprotocol/sdk":"^1.25.1","@mcp-abap-adt/auth-providers":"^0.2.10","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.5","jest":"^30.2.0","open":"^11.0.0","pino":"^10.1.0","yaml":"^2.8.1","dotenv":"^17.2.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.2","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.0.3","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.3.10","@types/js-yaml":"^4.0.9","@modelcontextprotocol/inspector":"^0.18.0"},"_npmOperationalInternal":{"tmp":"tmp/core_2.0.0_1767080125938_0.7647061339387546","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@mcp-abap-adt/core","version":"2.0.1","keywords":["abap","sap","adt","mcp","model-context-protocol"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@2.0.1","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","adt-lock-object":"bin/lock-object.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js","adt-manage-locks":"bin/manage-locks.js","adt-unlock-object":"bin/unlock-object.js","adt-unlock-objects":"bin/unlock-test-objects.js","adt-manage-sessions":"bin/manage-sessions.js"},"dist":{"shasum":"d15f9522c54f1b78736b20da295ba3212871c7f1","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-2.0.1.tgz","fileCount":1699,"integrity":"sha512-uhx2MEOjVSSiGjy+B/5YRQFLsT4Jq7fill4lLDCSLvMvzgdtgUki0Yu5fvWQ8wYhMv+eLlbVWOtvMArE3NFzMA==","signatures":[{"sig":"MEYCIQCATVmH02CQEdjDBOf8M4tkSkirYbPvsQsXjfB4cHe0QAIhALOwp2ddWifDmoz5vEC9RkMuWY9+Wp6/DkssjC1AbKaU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8126601},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"3d444bfc85a2cc03f3badbbc3c3bfd10ebadf481","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.6.2","description":"Embedded ABAP ADT MCP server tailored for the Cloud LLM Hub stack","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zod":"^4.2.1","pino":"^10.1.0","axios":"^1.11.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.3","@mcp-abap-adt/core":"^1.4.1","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^0.2.9","@mcp-abap-adt/interfaces":"^0.2.15","@mcp-abap-adt/adt-clients":"^0.3.13","@mcp-abap-adt/auth-broker":"^0.2.14","@mcp-abap-adt/auth-stores":"^0.2.10","@modelcontextprotocol/sdk":"^1.25.1","@mcp-abap-adt/auth-providers":"^0.2.10","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.5","jest":"^30.2.0","open":"^11.0.0","pino":"^10.1.0","yaml":"^2.8.1","dotenv":"^17.2.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.2","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.0.3","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.3.10","@types/js-yaml":"^4.0.9","@modelcontextprotocol/inspector":"^0.18.0"},"_npmOperationalInternal":{"tmp":"tmp/core_2.0.1_1767081582105_0.773376259510288","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@mcp-abap-adt/core","version":"2.0.2","keywords":["abap","sap","adt","mcp","model-context-protocol"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@2.0.2","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","adt-lock-object":"bin/lock-object.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js","adt-manage-locks":"bin/manage-locks.js","adt-unlock-object":"bin/unlock-object.js","adt-unlock-objects":"bin/unlock-test-objects.js","adt-manage-sessions":"bin/manage-sessions.js"},"dist":{"shasum":"afdabd0e29813b6ee6a445a5340babe60b895d45","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-2.0.2.tgz","fileCount":1699,"integrity":"sha512-gr5nD7luACPnWFxFzPbm4RLIKaXGVGV5C0xWhaD79EQnuCK3Hag+9Rs05skN84OBUoAZceGtxAOL6lu5TBR5tw==","signatures":[{"sig":"MEUCIQDCdaoqYvXT1yeuvvNkkJ6umJAEqH0yMZSAh2yao2SeGQIgYi+w1fNX9IMx+O+vAtOPIaJ35+5wv5GQxmg5+3qbueo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8126428},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"b7e767d23c543bf66396c040c866afc8699ba3d5","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.6.2","description":"Embedded ABAP ADT MCP server tailored for the Cloud LLM Hub stack","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zod":"^4.2.1","pino":"^10.1.0","axios":"^1.11.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.3","@mcp-abap-adt/core":"^1.4.1","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^0.2.9","@mcp-abap-adt/interfaces":"^0.2.15","@mcp-abap-adt/adt-clients":"^0.3.13","@mcp-abap-adt/auth-broker":"^0.2.14","@mcp-abap-adt/auth-stores":"^0.2.10","@modelcontextprotocol/sdk":"^1.25.1","@mcp-abap-adt/auth-providers":"^0.2.10","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.5","jest":"^30.2.0","open":"^11.0.0","pino":"^10.1.0","yaml":"^2.8.1","dotenv":"^17.2.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.2","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.0.3","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.3.10","@types/js-yaml":"^4.0.9","@modelcontextprotocol/inspector":"^0.18.0"},"_npmOperationalInternal":{"tmp":"tmp/core_2.0.2_1767106761350_0.3959970732995117","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@mcp-abap-adt/core","version":"2.1.0","keywords":["abap","sap","adt","mcp","model-context-protocol"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@2.1.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","adt-lock-object":"bin/lock-object.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js","adt-manage-locks":"bin/manage-locks.js","adt-unlock-object":"bin/unlock-object.js","adt-unlock-objects":"bin/unlock-test-objects.js","adt-manage-sessions":"bin/manage-sessions.js"},"dist":{"shasum":"5fdfb694731813a4637947d5a3696454f54a3945","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-2.1.0.tgz","fileCount":1699,"integrity":"sha512-aA5ZWEoH12jqedVK/cfSprZLkvebS2USG5YjQ07MnRaavQb7uaiFTOLV0dvZYpAIiWhSIg+m+tiZWbiXOz2Uug==","signatures":[{"sig":"MEUCIQDJgRg3qtHYoWyoonsFZIJkkKdGxNfdHtbWD6PrTor5bAIgSUqNaopNcnqqZB3r93ZIKiJgzwx3xuE9dABufVPkccw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8127029},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"7200201210610bc9960ce729db4b6dd4a25bc328","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.6.2","description":"Embedded ABAP ADT MCP server tailored for the Cloud LLM Hub stack","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zod":"^4.2.1","pino":"^10.1.0","axios":"^1.11.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.3","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^0.2.9","@mcp-abap-adt/interfaces":"^0.2.15","@mcp-abap-adt/adt-clients":"^0.3.13","@mcp-abap-adt/auth-broker":"^0.2.17","@mcp-abap-adt/auth-stores":"^0.2.10","@modelcontextprotocol/sdk":"^1.25.1","@mcp-abap-adt/auth-providers":"^0.2.10","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.5","jest":"^30.2.0","open":"^11.0.0","pino":"^10.1.0","yaml":"^2.8.1","dotenv":"^17.2.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.2","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.0.3","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.3.10","@types/js-yaml":"^4.0.9","@modelcontextprotocol/inspector":"^0.18.0"},"_npmOperationalInternal":{"tmp":"tmp/core_2.1.0_1767176212029_0.5806386521583806","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"@mcp-abap-adt/core","version":"2.1.1","keywords":["abap","sap","adt","mcp","model-context-protocol"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@2.1.1","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","adt-lock-object":"bin/lock-object.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js","adt-manage-locks":"bin/manage-locks.js","adt-unlock-object":"bin/unlock-object.js","adt-unlock-objects":"bin/unlock-test-objects.js","adt-manage-sessions":"bin/manage-sessions.js"},"dist":{"shasum":"76e034bf2bd81483ea3adc9f266e9d26d8f898ea","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-2.1.1.tgz","fileCount":1699,"integrity":"sha512-YXLqX67bfHA0Qycb6IPhalsb3dXQyAVOfi6yrtut8nbsBGcIQRsA63J7JCEyEE3Sj7Hqbop7jcPlsTMJ4WN+TQ==","signatures":[{"sig":"MEYCIQDsmgrRUMlq7UKkd1yDURgrbTZO7z1OZCn/u7YuFAPwWgIhAI0iTBB0MshcNmGFwoL1vosqJTN3RG2wJo9hW19sxLZO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8127245},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"7e9d3b379c55926f9c22770c70bddd9e1e560a05","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.6.2","description":"Embedded ABAP ADT MCP server tailored for the Cloud LLM Hub stack","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zod":"^4.2.1","pino":"^10.1.0","axios":"^1.11.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.3","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^0.2.9","@mcp-abap-adt/interfaces":"^0.2.15","@mcp-abap-adt/adt-clients":"^0.3.13","@mcp-abap-adt/auth-broker":"^0.3.0","@mcp-abap-adt/auth-stores":"^0.3.0","@modelcontextprotocol/sdk":"^1.25.1","@mcp-abap-adt/auth-providers":"^0.2.10","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.5","jest":"^30.2.0","open":"^11.0.0","pino":"^10.1.0","yaml":"^2.8.1","dotenv":"^17.2.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.2","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.0.3","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.3.10","@types/js-yaml":"^4.0.9","@modelcontextprotocol/inspector":"^0.18.0"},"_npmOperationalInternal":{"tmp":"tmp/core_2.1.1_1767195030744_0.8203312912975989","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"name":"@mcp-abap-adt/core","version":"2.1.2","keywords":["abap","sap","adt","mcp","model-context-protocol"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@2.1.2","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","adt-lock-object":"bin/lock-object.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"7204d5d5fbda26238ad4667c6eef89b1733aafbb","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-2.1.2.tgz","fileCount":1288,"integrity":"sha512-QYVoKxdLM8ET301TrTCBaq2v6evjKhLSnEsANyfjLkayH6Vw27ODljJKoKQLgk8pn8LAAdRib6xZeLdGh1rKxQ==","signatures":[{"sig":"MEUCIE4LJNr8peQRAxmApKhzPU+5p6UgRntM7q7P1GJP5bAHAiEAyidAVXqvrjIApGEPrkr9ekeJ+LW5LDJ/CE8aFFdzObs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6264133},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.6.4","description":"Embedded ABAP ADT MCP server tailored for the Cloud LLM Hub stack","directories":{},"_nodeVersion":"22.15.0","dependencies":{"zod":"^4.2.1","pino":"^10.1.0","axios":"^1.11.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.3","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^0.2.9","@mcp-abap-adt/interfaces":"^0.2.15","@mcp-abap-adt/adt-clients":"^0.3.13","@mcp-abap-adt/auth-broker":"^0.3.0","@mcp-abap-adt/auth-stores":"^0.3.0","@modelcontextprotocol/sdk":"^1.25.1","@mcp-abap-adt/auth-providers":"^0.2.10","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.5","jest":"^30.2.0","open":"^11.0.0","pino":"^10.1.0","yaml":"^2.8.1","dotenv":"^17.2.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.2","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.0.3","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.3.10","@types/js-yaml":"^4.0.9","@modelcontextprotocol/inspector":"^0.18.0"},"_npmOperationalInternal":{"tmp":"tmp/core_2.1.2_1767344250868_0.5247771053615142","host":"s3://npm-registry-packages-npm-production"}},"2.1.3":{"name":"@mcp-abap-adt/core","version":"2.1.3","keywords":["abap","sap","adt","mcp","model-context-protocol"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@2.1.3","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"1f801c3a89b9377f0b291222391feb84c512ea30","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-2.1.3.tgz","fileCount":1253,"integrity":"sha512-8PMe8fCZ0L5mEa5kdcsXgnom9R1M4hPGLsXKGYAsX682Y/N/b9oPrkE2MA04Oem3Z9wYWt7PoA4OuSWGX2Oztw==","signatures":[{"sig":"MEUCIGlKoI7y4YTy6pCC6AM4/mXoUTY/Mgsc/AIoyqhTc/s7AiEA4jKRRleXXrpL3UETTsukcDeqWxYhnxA/E6UNZONZcHc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6065382},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.6.4","description":"Embedded ABAP ADT MCP server tailored for the Cloud LLM Hub stack","directories":{},"_nodeVersion":"22.15.0","dependencies":{"zod":"^4.2.1","pino":"^10.1.0","axios":"^1.11.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.3","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^0.2.9","@mcp-abap-adt/interfaces":"^0.2.15","@mcp-abap-adt/adt-clients":"^0.3.13","@mcp-abap-adt/auth-broker":"^0.3.0","@mcp-abap-adt/auth-stores":"^0.3.0","@modelcontextprotocol/sdk":"^1.25.1","@mcp-abap-adt/auth-providers":"^0.2.10","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.5","jest":"^30.2.0","open":"^11.0.0","pino":"^10.1.0","yaml":"^2.8.1","dotenv":"^17.2.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.2","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.0.3","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.3.10","@types/js-yaml":"^4.0.9","@modelcontextprotocol/inspector":"^0.18.0"},"_npmOperationalInternal":{"tmp":"tmp/core_2.1.3_1767348581568_0.4626974450862844","host":"s3://npm-registry-packages-npm-production"}},"2.1.4":{"name":"@mcp-abap-adt/core","version":"2.1.4","keywords":["abap","sap","adt","mcp","model-context-protocol"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@2.1.4","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"320b7ee35529e7a10a487dbf1e7e09b835e9caf1","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-2.1.4.tgz","fileCount":1660,"integrity":"sha512-AaiSsqlJ2go+tOg7Lfcfb+Zx3cFkTfo8t6CHNVI2S4dmkmc2MYazd334xI9tV+Q2Z+9rKZ5yFFwTuKcod28Hww==","signatures":[{"sig":"MEQCIDtj0WB/h8dWIAhjSWCcaFq83M2AIHsRPg8l5/0dsMosAiAR9gHgwmeDopMv6igwrSnQdeQOOJnytysY5PXS12ZTDw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7885459},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"d01592e0d8fc720dd0f83cc40a471926fdfa4435","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.6.2","description":"Embedded ABAP ADT MCP server tailored for the Cloud LLM Hub stack","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zod":"^4.2.1","pino":"^10.1.0","axios":"^1.11.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.3","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^0.2.9","@mcp-abap-adt/interfaces":"^0.2.15","@mcp-abap-adt/adt-clients":"^0.3.13","@mcp-abap-adt/auth-broker":"^0.3.0","@mcp-abap-adt/auth-stores":"^0.3.0","@modelcontextprotocol/sdk":"^1.25.1","@mcp-abap-adt/auth-providers":"^0.2.10","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.5","jest":"^30.2.0","open":"^11.0.0","pino":"^10.1.0","yaml":"^2.8.1","dotenv":"^17.2.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.2","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.0.3","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.3.10","@types/js-yaml":"^4.0.9","@modelcontextprotocol/inspector":"^0.18.0"},"_npmOperationalInternal":{"tmp":"tmp/core_2.1.4_1768986130697_0.6251686163004477","host":"s3://npm-registry-packages-npm-production"}},"2.1.6":{"name":"@mcp-abap-adt/core","version":"2.1.6","keywords":["abap","sap","adt","mcp","model-context-protocol"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@2.1.6","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"143e8788c8d22142dca39601d6db1a1ac822408e","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-2.1.6.tgz","fileCount":1660,"integrity":"sha512-tCcp/eBRgS/iW43yRGr9+TP5hTJrlnwdNSs9ZLaKcIo1jONrZv5d66yPRF/rkTQ4v4HHyljYOuyJZ7vNG7bxxQ==","signatures":[{"sig":"MEUCIHTqb3OMRPpfoWDLd8GEgTa1ofrQIhCityl7kwxC4WruAiEAzdyAGqoJrFYCad0CgroRou7BPzzBBrREM2zjZPtackQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7898689},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"31fc8cbb3c8174934baf6425a24da05197b7b70c","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.6.2","description":"Embedded ABAP ADT MCP server tailored for the Cloud LLM Hub stack","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zod":"^4.2.1","pino":"^10.1.0","axios":"^1.11.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.3","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^0.2.9","@mcp-abap-adt/interfaces":"^0.2.15","@mcp-abap-adt/adt-clients":"^0.3.13","@mcp-abap-adt/auth-broker":"^0.3.0","@mcp-abap-adt/auth-stores":"^0.3.0","@modelcontextprotocol/sdk":"^1.25.1","@mcp-abap-adt/auth-providers":"^0.2.10","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.5","jest":"^30.2.0","open":"^11.0.0","pino":"^10.1.0","yaml":"^2.8.1","dotenv":"^17.2.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.2","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.0.3","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.3.10","@types/js-yaml":"^4.0.9","@modelcontextprotocol/inspector":"^0.18.0"},"_npmOperationalInternal":{"tmp":"tmp/core_2.1.6_1769693432602_0.6141015548261421","host":"s3://npm-registry-packages-npm-production"}},"2.1.7":{"name":"@mcp-abap-adt/core","version":"2.1.7","keywords":["abap","sap","adt","mcp","model-context-protocol"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@2.1.7","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"69ab718a21dc79a96897a6df3363d577674d0235","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-2.1.7.tgz","fileCount":1660,"integrity":"sha512-I2C+sc/8jQ6dBoZQUdcZ46W1pNt1/kW6IExiBHffz8/KFlg6eVYHa3wehDCTh4vRa6n0RdWz6V3hx3SqvI9Zvg==","signatures":[{"sig":"MEUCIQDLMAZqlgaCxX0BP2D8hOJJcSAnLMJmjJeovASm/javsQIgURGpxNmqpIgGbuGytGF6tRnnqUxa3JvpJSVNsLIHNLU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7899222},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"b963148b9d34dcb59e944056f87264352b9c544d","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.6.2","description":"Embedded ABAP ADT MCP server tailored for the Cloud LLM Hub stack","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zod":"^4.2.1","pino":"^10.1.0","axios":"^1.11.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.3","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^0.2.9","@mcp-abap-adt/interfaces":"^0.2.15","@mcp-abap-adt/adt-clients":"^0.3.13","@mcp-abap-adt/auth-broker":"^0.3.0","@mcp-abap-adt/auth-stores":"^0.3.0","@modelcontextprotocol/sdk":"^1.25.1","@mcp-abap-adt/auth-providers":"^0.2.10","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.5","jest":"^30.2.0","open":"^11.0.0","pino":"^10.1.0","yaml":"^2.8.1","dotenv":"^17.2.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.2","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.0.3","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.3.10","@types/js-yaml":"^4.0.9","@modelcontextprotocol/inspector":"^0.18.0"},"_npmOperationalInternal":{"tmp":"tmp/core_2.1.7_1769696648194_0.18025191629302872","host":"s3://npm-registry-packages-npm-production"}},"2.1.8":{"name":"@mcp-abap-adt/core","version":"2.1.8","keywords":["abap","sap","adt","mcp","model-context-protocol"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@2.1.8","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"5ac64ee3e829f8efb0196140f432408bdce12bb5","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-2.1.8.tgz","fileCount":1664,"integrity":"sha512-kC6+3yVCVGRHWMBlYNEUHUHDg3+TcT83iT5QL/RScK07qYreY23ENOYIQRi448lsx2r3GJs7lXFa6FHrn69NtA==","signatures":[{"sig":"MEQCIFKffhm2wOalAErNH+9YOTi23kulJFuFIDSyPlA8X5YeAiBoC2o+KyB9Yz6SKOanm/FTUHtD9moo6odL0TEtHW+JLg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7904641},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"53ea2ae6e73b96028cb34df65e6ff058ce124532","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.6.2","description":"Embedded ABAP ADT MCP server tailored for the Cloud LLM Hub stack","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.5","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.5","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^0.2.9","@mcp-abap-adt/interfaces":"^0.2.15","@mcp-abap-adt/adt-clients":"^0.3.13","@mcp-abap-adt/auth-broker":"^0.3.6","@mcp-abap-adt/auth-stores":"^0.3.0","@modelcontextprotocol/sdk":"^1.26.0","@mcp-abap-adt/auth-providers":"^0.2.10","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.2.4","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.2.2","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.3.14","@types/js-yaml":"^4.0.9","@modelcontextprotocol/inspector":"^0.19.0"},"_npmOperationalInternal":{"tmp":"tmp/core_2.1.8_1770634370849_0.7613701480060924","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@mcp-abap-adt/core","version":"2.2.0","keywords":["abap","sap","adt","mcp","model-context-protocol"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@2.2.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js","mcp-abap-adt-configure":"bin/mcp-abap-adt-configure.js"},"dist":{"shasum":"ce407302ba195bafb580996cc6b4f23446af3a8e","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-2.2.0.tgz","fileCount":1667,"integrity":"sha512-3FLsMuR53FI8zOIHOl9jNRAl4pI+C14nvMPzqJq7OHgfWS9xtTJQt79gGnBIR3gMTXu+RZ51k+orsxgNaVTOkg==","signatures":[{"sig":"MEQCIFZXSV3v2vQ/PB0lRdik9kmocwUpabbS6rbeDz5jQqtAAiA13zcaVjLp2S4DX89aOZFACKfJyRkAQ8c4idnhM7k3xg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7922245},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"08d9f4fd09516f6132f33dcadc7c7cf7d41d361e","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.6.2","description":"Embedded ABAP ADT MCP server tailored for the Cloud LLM Hub stack","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.5","xml-js":"^1.6.11","js-yaml":"^4.1.1","@iarna/toml":"^2.2.5","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.5","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^0.2.9","@mcp-abap-adt/interfaces":"^0.2.15","@mcp-abap-adt/adt-clients":"^0.3.13","@mcp-abap-adt/auth-broker":"^0.3.6","@mcp-abap-adt/auth-stores":"^0.3.0","@modelcontextprotocol/sdk":"^1.26.0","@mcp-abap-adt/auth-providers":"^0.2.10","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.2.4","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.2.2","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.3.14","@types/js-yaml":"^4.0.9","@modelcontextprotocol/inspector":"^0.19.0"},"_npmOperationalInternal":{"tmp":"tmp/core_2.2.0_1770653407840_0.7960648681931652","host":"s3://npm-registry-packages-npm-production"}},"2.2.2":{"name":"@mcp-abap-adt/core","version":"2.2.2","keywords":["abap","sap","adt","mcp","model-context-protocol"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@2.2.2","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"320c9f4e4c41b1c8d49328bdd306b9bb93aee19e","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-2.2.2.tgz","fileCount":1665,"integrity":"sha512-icLZocuLSIJUkl9IXCBKRXzVuLLOwKNGpwOsLCNVlyb/O6kmR5oa+w+L/upcHFVxMrvIgQ67zArtTsiit9kZcQ==","signatures":[{"sig":"MEQCID3Sv+qBM3KS9IpC85cY+ajpVYJdBM4M++9upFchME4AAiAqeWc3jfTGMWEVtPekUeppDPGaU8cZGFjSLTKexKF03g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7907965},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"3b0a2ba5f7f559159326bc93d3cc8cf7bf72c9dc","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.6.2","description":"Embedded ABAP ADT MCP server tailored for the Cloud LLM Hub stack","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.5","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.5","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^0.2.9","@mcp-abap-adt/interfaces":"^0.2.15","@mcp-abap-adt/adt-clients":"^0.3.13","@mcp-abap-adt/auth-broker":"^0.3.6","@mcp-abap-adt/auth-stores":"^0.3.0","@modelcontextprotocol/sdk":"^1.26.0","@mcp-abap-adt/auth-providers":"^0.2.10","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.2.4","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.2.2","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.3.14","@types/js-yaml":"^4.0.9","@modelcontextprotocol/inspector":"^0.19.0"},"_npmOperationalInternal":{"tmp":"tmp/core_2.2.2_1770710378204_0.438578304756736","host":"s3://npm-registry-packages-npm-production"}},"2.2.3":{"name":"@mcp-abap-adt/core","version":"2.2.3","keywords":["abap","sap","adt","mcp","model-context-protocol"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@2.2.3","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"ff0c14bb05521248d37aee153d2b032b13eff1d3","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-2.2.3.tgz","fileCount":1668,"integrity":"sha512-/OWnfvRr0Y9V5EdWIsWEuqXqeOSAg56JCxcSWJlvYDquH9vLF5/CZyCW/srnLMm8aBhBTZaXla3cFY6QrlHeDw==","signatures":[{"sig":"MEQCIFX2iMQQHIxwtZ9ZA1c4/6FEeRN5r5gXLo3L37xU4adnAiArgkMrrSLI10ktNZZuBBP8moSzBvMQwhJ90ncI29XAAg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7919556},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"488a3a03018a36c48a7affa2dcf56d86ca8fd806","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.6.2","description":"Embedded ABAP ADT MCP server tailored for the Cloud LLM Hub stack","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.5","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.5","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^0.2.9","@mcp-abap-adt/interfaces":"^0.2.15","@mcp-abap-adt/adt-clients":"^0.3.13","@mcp-abap-adt/auth-broker":"^0.3.6","@mcp-abap-adt/auth-stores":"^0.3.0","@modelcontextprotocol/sdk":"^1.26.0","@mcp-abap-adt/auth-providers":"^0.2.10","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.2.4","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.2.2","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.3.14","@types/js-yaml":"^4.0.9","@modelcontextprotocol/inspector":"^0.19.0"},"_npmOperationalInternal":{"tmp":"tmp/core_2.2.3_1770728569845_0.8791539718667665","host":"s3://npm-registry-packages-npm-production"}},"2.2.4":{"name":"@mcp-abap-adt/core","version":"2.2.4","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@2.2.4","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"84ab4528d76d001cce253f62d83c5238386c1eb7","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-2.2.4.tgz","fileCount":1253,"integrity":"sha512-drGrY86DvFNCHw+D6nr5vwCtxoKADQAZio/nczjZXdI4AR9iQYEwqxmeQv5K6WeYjlrh2D6A7NHantarY4/nNg==","signatures":[{"sig":"MEQCIDsP05/kBaWkUyiH9Emp6Rn211Itqya8t/R8/cxP55+rAiB3i+GnSQlq9kUgQDb+wf7urUEEDEz7RYbxYVE9nz/Oew==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6082030},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"e9b8c06cdc36a8b0814435d091ffa6f7d5e5f6a1","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.6.2","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.5","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.5","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^0.2.9","@mcp-abap-adt/interfaces":"^0.2.15","@mcp-abap-adt/adt-clients":"^0.3.13","@mcp-abap-adt/auth-broker":"^0.3.6","@mcp-abap-adt/auth-stores":"^0.3.0","@modelcontextprotocol/sdk":"^1.26.0","@mcp-abap-adt/auth-providers":"^0.2.10","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.2.4","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.2.2","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.3.14","@types/js-yaml":"^4.0.9","@modelcontextprotocol/inspector":"^0.19.0"},"_npmOperationalInternal":{"tmp":"tmp/core_2.2.4_1770812597780_0.6367895583958809","host":"s3://npm-registry-packages-npm-production"}},"2.2.5":{"name":"@mcp-abap-adt/core","version":"2.2.5","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@2.2.5","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"72f77fdbb1937bba222489060e88b51344c2935c","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-2.2.5.tgz","fileCount":1253,"integrity":"sha512-wNRoiSVS1wVsnpa9pdCMMJl/HgKvCWUF6TglFaW+6u+Au9N0AUiOWXjvjChYssmoaz+0lBopUniYHJvkjvkYKg==","signatures":[{"sig":"MEUCIBZl0Ekrt+GCeZ505E/f6p8mltIyZsLbn18QokMqVkpJAiEA4wcaocw7KH6KfPDVVrv6WBqbX7XalYzwfKK8woh5Exo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6109147},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"4616a79651796bfc0f33e6f2df6052bd87fbe76f","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.6.2","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.5","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.5","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^0.2.9","@mcp-abap-adt/interfaces":"^0.2.15","@mcp-abap-adt/adt-clients":"^0.3.13","@mcp-abap-adt/auth-broker":"^0.3.6","@mcp-abap-adt/auth-stores":"^0.3.0","@modelcontextprotocol/sdk":"^1.26.0","@mcp-abap-adt/auth-providers":"^0.2.10","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.2.4","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.2.2","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.3.14","@types/js-yaml":"^4.0.9","@modelcontextprotocol/inspector":"^0.19.0"},"_npmOperationalInternal":{"tmp":"tmp/core_2.2.5_1770819074540_0.25995779378778994","host":"s3://npm-registry-packages-npm-production"}},"2.2.6":{"name":"@mcp-abap-adt/core","version":"2.2.6","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@2.2.6","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"a18b0cf5bc930b21fb7742600d1e11e44497cae9","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-2.2.6.tgz","fileCount":1260,"integrity":"sha512-51tAc2UcNayH7iVjbYny1MgYRwlVPBYM3QY7Zv/rC+Z/lYy0CVa2tC0/3IIilrsiSRnwLYrU48VtIN98yg2AdQ==","signatures":[{"sig":"MEUCIQCEk3LcK1Ui+rrWpboI+DnkXj28VbPfn+49ZqFSSu0rvwIgakiHegZRGcRUCNV2+qb/ORm2yfnKDVoEATGM1gfk+wc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6340010},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"95bac55a6fdb454cf0b3ff466f931840493cba63","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.9.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.5","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.5","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^0.2.9","@mcp-abap-adt/interfaces":"^0.2.15","@mcp-abap-adt/adt-clients":"^0.3.13","@mcp-abap-adt/auth-broker":"^0.3.6","@mcp-abap-adt/auth-stores":"^0.3.0","@modelcontextprotocol/sdk":"^1.26.0","@mcp-abap-adt/auth-providers":"^0.2.10","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.2.4","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.2.2","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.3.14","@types/js-yaml":"^4.0.9","@modelcontextprotocol/inspector":"^0.19.0"},"_npmOperationalInternal":{"tmp":"tmp/core_2.2.6_1770905117328_0.3769147416014411","host":"s3://npm-registry-packages-npm-production"}},"2.2.7":{"name":"@mcp-abap-adt/core","version":"2.2.7","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@2.2.7","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"fcd3fd3757912e6b369aa8b86b20639f59217bc4","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-2.2.7.tgz","fileCount":1260,"integrity":"sha512-Klnsh1uxjUiFYmQzyWsUSG4UfyN9DkQ629mvUo8CK6MbnqpubnKUS72pZHiUu0jTC6ENgWKKKjR1R4jnb0C8rw==","signatures":[{"sig":"MEQCIE4x6l6E2Bgt/UxCq48blhz2s+HJUSEi6TyHvvgXaDIhAiBMiZ0VXCH+LjVor84y6Jvsubafb2+7WEPGOaiOez4wAA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6340597},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"beaa7961bae4278851b521a0893a66dc9da4f744","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.9.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.5","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.5","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^0.2.9","@mcp-abap-adt/interfaces":"^0.2.15","@mcp-abap-adt/adt-clients":"^0.3.13","@mcp-abap-adt/auth-broker":"^0.3.6","@mcp-abap-adt/auth-stores":"^0.3.0","@modelcontextprotocol/sdk":"^1.26.0","@mcp-abap-adt/auth-providers":"^0.2.10","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.2.4","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.2.2","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.3.14","@types/js-yaml":"^4.0.9","@modelcontextprotocol/inspector":"^0.19.0"},"_npmOperationalInternal":{"tmp":"tmp/core_2.2.7_1770906028096_0.5632053580981038","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@mcp-abap-adt/core","version":"2.3.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@2.3.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"8f4ffb43e6de9622dc372280cb1895405684f49e","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-2.3.0.tgz","fileCount":1260,"integrity":"sha512-P+vaTS0w4gaSsFKeGqqNLrLa/8Kx1+JcIyFqSlK6UuI0OCPj5pDGJ5cPWkXCBE9cuu2c/qgxQZtAS1pETqnoCw==","signatures":[{"sig":"MEQCICvP60fsUjaJjd0Upcj6YToqKtkO1UnmD/C+3GvcSheIAiBByhe5Qp9if4g1rCjuDXp7iwxCAISrBCs4poGc4ZHiRg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6350968},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"1f62a3f52d0b8b6e05d87369ad2934d86951928a","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.9.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.5","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.5","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^0.2.9","@mcp-abap-adt/interfaces":"^0.2.15","@mcp-abap-adt/adt-clients":"^0.3.13","@mcp-abap-adt/auth-broker":"^0.3.6","@mcp-abap-adt/auth-stores":"^0.3.0","@modelcontextprotocol/sdk":"^1.26.0","@mcp-abap-adt/auth-providers":"^0.2.10","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.2.4","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.2.2","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.3.14","@types/js-yaml":"^4.0.9","@modelcontextprotocol/inspector":"^0.19.0"},"_npmOperationalInternal":{"tmp":"tmp/core_2.3.0_1770988062910_0.636014162937343","host":"s3://npm-registry-packages-npm-production"}},"2.3.1":{"name":"@mcp-abap-adt/core","version":"2.3.1","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@2.3.1","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"46306e87efdd71c9645f12890973ddbf5a152eb3","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-2.3.1.tgz","fileCount":1260,"integrity":"sha512-QJGL+9Z576fFu5JUkSpKN/4kFLhaCnptgFcbcpuc3suE4BXuTQaewOTOOXUSHF5dDMXofE/zH5f3pIR19wwvYg==","signatures":[{"sig":"MEQCIHOgyFss63HZFsEn4TuNYKfoI97i7QezNCtjJFLVU2ITAiB9c6ZYyAzpNSnagZZsNuFLXqdbXQlyChpdKXV/4JmF1g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6353715},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"82060fda06fe5944595e3a44c494c9eeb02e36f5","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.9.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.5","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.5","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^0.2.9","@mcp-abap-adt/interfaces":"^0.2.15","@mcp-abap-adt/adt-clients":"^0.3.13","@mcp-abap-adt/auth-broker":"^0.3.6","@mcp-abap-adt/auth-stores":"^0.3.0","@modelcontextprotocol/sdk":"^1.26.0","@mcp-abap-adt/auth-providers":"^0.2.10","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.2.4","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.2.2","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.3.14","@types/js-yaml":"^4.0.9","@modelcontextprotocol/inspector":"^0.19.0"},"_npmOperationalInternal":{"tmp":"tmp/core_2.3.1_1770993582541_0.5568889450713688","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"@mcp-abap-adt/core","version":"2.4.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@2.4.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"fa53df828824534de3e60af71a92126033a6ca7f","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-2.4.0.tgz","fileCount":1289,"integrity":"sha512-oxOdhziDC6/QlMkRpIj/d7d99/Z0IjlHjKaiomvoncUw8jBzMe/189oU9yOM8srHe3yWKBQ/vzuTbXYXpSP6hQ==","signatures":[{"sig":"MEUCIQCs4BheQzfqwZJzFdBzKnyRMqip6fHD68VEBgq+FAFG/QIgXK+tQ+e3HMfWMlkzi2ZbM0T6efrKpUROdkHRGrkzyWI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6436774},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"ade7bf4f2f213e1b8ead5fb2f5fd5d3ded5d6c80","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.9.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.5","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.5","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.1.0","@mcp-abap-adt/interfaces":"^2.5.0","@mcp-abap-adt/adt-clients":"^0.3.16","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.2","@modelcontextprotocol/sdk":"^1.26.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.2.4","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.2.2","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.3.14","@types/js-yaml":"^4.0.9","@modelcontextprotocol/inspector":"^0.19.0"},"_npmOperationalInternal":{"tmp":"tmp/core_2.4.0_1771184492499_0.4347164950369491","host":"s3://npm-registry-packages-npm-production"}},"2.4.1":{"name":"@mcp-abap-adt/core","version":"2.4.1","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@2.4.1","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"7432059e0319f10ee6639e48878c47433e2a0269","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-2.4.1.tgz","fileCount":1289,"integrity":"sha512-Sx+6uSto01Pfetez4+onTLsBWQmkOF2kn9M9BhpV+wX2pUPJQVZczRst+Q3+AhsWrQN0L1zEl8//fkp0UknsmQ==","signatures":[{"sig":"MEUCIQCvGTbJWH5mK+UFyo+yiWXxnk82iZ01Fu/yopw95/biYAIgDMr7QexqGwhXau/U8XMLPvYNiCO2aFFq+6vXYn17dfM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6438546},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"bdffb074b1b5fe6017514c5eeb1ff3f59018b7f4","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.9.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.5","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.5","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.1.0","@mcp-abap-adt/interfaces":"^2.5.0","@mcp-abap-adt/adt-clients":"^0.3.16","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.2","@modelcontextprotocol/sdk":"^1.26.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.2.4","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.2.2","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.3.14","@types/js-yaml":"^4.0.9","@modelcontextprotocol/inspector":"^0.19.0"},"_npmOperationalInternal":{"tmp":"tmp/core_2.4.1_1771339858199_0.7158532577205323","host":"s3://npm-registry-packages-npm-production"}},"2.4.2":{"name":"@mcp-abap-adt/core","version":"2.4.2","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@2.4.2","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"acddf913c1bb04fdaa55b0e4c995623a5928d6a1","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-2.4.2.tgz","fileCount":1345,"integrity":"sha512-GHoUr1f/mnBQCiM86VVKMF9be28tBvr+HNvu2k03zo4t3lmBM0BTLX48Z/HGLVP5AnUdeBhk+48+qds1DHetWQ==","signatures":[{"sig":"MEYCIQCqw11JgXRyt/gLz22Dh4HfUifVLItjEgniE53rjFxV9wIhAP8UZSKqeL35FckAbLaCLHwsGuwGlpj/QlGXxkHUmpo/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6560344},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"c99fd8759fad8185c522e15471ab4d7245a47300","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.5","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.6","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.1.0","@mcp-abap-adt/interfaces":"^2.6.0","@mcp-abap-adt/adt-clients":"^0.3.22","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.2","@modelcontextprotocol/sdk":"^1.27.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.3.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.3.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.4.2","@types/js-yaml":"^4.0.9","@modelcontextprotocol/inspector":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/core_2.4.2_1771597382272_0.8418455860458998","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"@mcp-abap-adt/core","version":"2.5.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@2.5.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"d67989cfac838e7927e1099d380aba69e46ea25e","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-2.5.0.tgz","fileCount":1459,"integrity":"sha512-s/QwhhARsbBinBEz/Kzgoi/Udh2VIrqTZ7OFCT+V/75jdp30YPIu4XYYL0t96LB+EIh+Ctjtc/qNGSEcBPqqhQ==","signatures":[{"sig":"MEYCIQCRJ7AxLyeY/blO3796GF4bqjjSso33GvSsbr3TtNQHpgIhAM36StsNkQ9V/eKRXjaK/2w3kdOxP/VWumOpqapWMLid","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6819339},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"f553ce6b6f320c0a4795c76b61969173662e606c","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.5","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.6","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.1.0","@mcp-abap-adt/interfaces":"^2.6.0","@mcp-abap-adt/adt-clients":"^0.3.22","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.2","@modelcontextprotocol/sdk":"^1.27.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.3.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.3.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.4.2","@types/js-yaml":"^4.0.9","@modelcontextprotocol/inspector":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/core_2.5.0_1771658929056_0.5852490089784854","host":"s3://npm-registry-packages-npm-production"}},"2.5.1":{"name":"@mcp-abap-adt/core","version":"2.5.1","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@2.5.1","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"252822a6d2957b83862d3ab4e2678bd863dfead5","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-2.5.1.tgz","fileCount":1459,"integrity":"sha512-ojPo+KEyykn/NPm1jeYl74b+n6PygO1bAacYc2btDCbesjuOHYh4GlwdRP4p0l3GzaSJ1c5eAWW/iafymlcOwA==","signatures":[{"sig":"MEYCIQCI8IKSNbqWVqZMwiFZGTQDpnG3XLaf4x3tp2uRYlRpeAIhAMntMO6LmWYSLQTnybB1PdZgFe4ZkKeLkp/hhUvkeq8n","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6909905},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"ee41937417c787bf26980e301e9fdcb05e8aa7a1","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.5","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.6","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.1.0","@mcp-abap-adt/interfaces":"^2.6.0","@mcp-abap-adt/adt-clients":"^0.3.22","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.2","@modelcontextprotocol/sdk":"^1.27.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.3.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.3.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.4.2","@types/js-yaml":"^4.0.9","@modelcontextprotocol/inspector":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/core_2.5.1_1771676480998_0.485015218837086","host":"s3://npm-registry-packages-npm-production"}},"2.5.2":{"name":"@mcp-abap-adt/core","version":"2.5.2","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@2.5.2","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"f7b53219e7c518c409f2d8c574c96353f581480b","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-2.5.2.tgz","fileCount":1711,"integrity":"sha512-Gw+WAwofAwu0JYH+i3QJZrTyV3+NcuF9nnm6jCTNX1rhM0izNdLY8fl6M7XlFoSmqko8dYi1GD1zbrUfTfWmPQ==","signatures":[{"sig":"MEUCIQDB+hda1hZDO1usur9ydEW/7JXkjYJFo4YYj3eEneY0fwIgRU+E1lstqXSX468EifyrLGVWyXcYxoZcQlsiXuDpego=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7881704},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"2bd07691a8ea910f5b0d1721c4d15351159728f7","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"_nodeVersion":"22.15.0","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.5","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.6","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.1.0","@mcp-abap-adt/interfaces":"^2.6.0","@mcp-abap-adt/adt-clients":"^0.3.22","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.2","@modelcontextprotocol/sdk":"^1.27.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.3.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.3.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.4.2","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.2.1","@modelcontextprotocol/inspector":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/core_2.5.2_1771874189335_0.03685405004058895","host":"s3://npm-registry-packages-npm-production"}},"2.6.1":{"name":"@mcp-abap-adt/core","version":"2.6.1","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@2.6.1","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"a9914376b987b6a62fc0e2b6df75594c71605143","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-2.6.1.tgz","fileCount":1467,"integrity":"sha512-9HW7rnvVHO3IoeeniSTrNjLtlwqJuZrY1HFn1jYRDkf31YBb+IzsaHqXXLWOsE28OMl16MAArWbOuIjvqf3kAw==","signatures":[{"sig":"MEUCIQCp/EoxTJ3Qf6kEfo1OAGrlsXi6NONNKosm1DAyuXVWqAIgXI9lDxXjvmXejQWCxFujqEDgVocISrrMBW0koiiwLgE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6938276},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"c7637f3fbba9cf3f8cc886a80794e6570619061c","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.5","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.6","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.1.0","@mcp-abap-adt/interfaces":"^2.6.0","@mcp-abap-adt/adt-clients":"^1.2.2","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.2","@modelcontextprotocol/sdk":"^1.27.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.3.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.3.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.4.2","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.2.1","@modelcontextprotocol/inspector":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/core_2.6.1_1772212230600_0.35489222979443213","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"name":"@mcp-abap-adt/core","version":"2.7.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@2.7.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"d0848e0f81ae4b0a4acf6d4414e7d2460a26d5e7","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-2.7.0.tgz","fileCount":1471,"integrity":"sha512-zC/xt7qYrUWbAqyIuS6XjP5rXhmRiWOyspYMKKGzwYfIWmMiqTqCMVtB73xWE+w4skt9+QaJ3riYV14jTM/SSw==","signatures":[{"sig":"MEUCIQCuF1gYNtqdYB1BxnUehjlXY5tdNaYGzlV8CqSttV6IywIgC2fwS/cTtYp/nwuERYYhe2vOc7V80oPksnic+Y950qM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6943938},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"199ecb3d9911e6b345843a9677272cace9fc2ca6","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.5","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.6","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.1.0","@mcp-abap-adt/interfaces":"^2.6.0","@mcp-abap-adt/adt-clients":"^2.2.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.2","@modelcontextprotocol/sdk":"^1.27.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.3.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.3.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.4.2","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.2.1","@modelcontextprotocol/inspector":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/core_2.7.0_1772356776350_0.15464535157057013","host":"s3://npm-registry-packages-npm-production"}},"2.7.1":{"name":"@mcp-abap-adt/core","version":"2.7.1","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@2.7.1","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"94be543b16d4f3bee4572cad39ad167b927e444f","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-2.7.1.tgz","fileCount":1471,"integrity":"sha512-c10EkiMmOMIC1/mM1ARafxP0iZsRJlu/VyH892JCM1gaxgwdFv/b+JSGZQl52KkD3x+T+qyxGfqj+sPDPOmDcg==","signatures":[{"sig":"MEUCIQD/gqv5ckenRXLf/0OdFyr0Zuwp2/7uKQt+1K3u7DuLLAIgePBzHZeDv1RunJGuvkoGmQgJx4hfjVVrzGN8PYM3SAI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6944474},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"a888f99a7da4060bd287493719621e2b0bf97cb2","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.5","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.6","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.1.0","@mcp-abap-adt/interfaces":"^2.6.0","@mcp-abap-adt/adt-clients":"^2.2.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.2","@modelcontextprotocol/sdk":"^1.27.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.3.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.3.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.4.2","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.2.1","@modelcontextprotocol/inspector":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/core_2.7.1_1772359951089_0.9407281212878265","host":"s3://npm-registry-packages-npm-production"}},"2.7.2":{"name":"@mcp-abap-adt/core","version":"2.7.2","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@2.7.2","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"ed159dc0a31be7cb460bbfd840ef140ac63778f8","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-2.7.2.tgz","fileCount":1471,"integrity":"sha512-wzuPCj8egPWzt1Yrn1QGzxKl/lni1onfKE6Oc7n+ZsOYVGITjpY1lkavvWlZavME7GgY5g51gLGqHyvPjSeNWw==","signatures":[{"sig":"MEQCIFAehwhJFRbPAQ73gTl1EpCvL4UfKTLqjipHxNue1rddAiB57JvnnGy6DgQxkBnCCXEIt5p31ONF9IOb20Ml0colYw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6947057},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"a2b3675d2c32bfadb4cf3c83d1b308d14f58ad05","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.5","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.6","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.1.0","@mcp-abap-adt/interfaces":"^2.6.0","@mcp-abap-adt/adt-clients":"^2.2.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.2","@modelcontextprotocol/sdk":"^1.27.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.3.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.3.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.4.2","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.2.1","@modelcontextprotocol/inspector":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/core_2.7.2_1772525366611_0.48359797355268186","host":"s3://npm-registry-packages-npm-production"}},"2.7.3":{"name":"@mcp-abap-adt/core","version":"2.7.3","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@2.7.3","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"6d7c59210a61c6040feb3045560675d5d206bd1e","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-2.7.3.tgz","fileCount":1471,"integrity":"sha512-u7Pm8DcEHeZiDM0el+WAAU9rjYZrMFaB5Xt9Xl8238Ttutu0d+XpJI5PTL9JlIgVRUz/D8Sp7rXwK//ZZ1vGFA==","signatures":[{"sig":"MEUCIQDbZfKAfQ0aT8q9a0LhrPiD1WoXWYl7wvjLN8XrYhrYpQIgKphsiEMilnOo82KFCMlzPJrMRQN9ROI2sA63J/v1vGk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6947351},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"0ce7b4031e7ed6d143d808e00938738b96822443","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.5","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.6","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.1.0","@mcp-abap-adt/interfaces":"^2.6.0","@mcp-abap-adt/adt-clients":"^2.2.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.2","@modelcontextprotocol/sdk":"^1.27.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.3.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.3.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.4.2","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.2.1","@modelcontextprotocol/inspector":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/core_2.7.3_1772525719049_0.7584206557874698","host":"s3://npm-registry-packages-npm-production"}},"2.7.4":{"name":"@mcp-abap-adt/core","version":"2.7.4","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@2.7.4","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"f38406d50ad232c5f8612ab11b5c36ab322fba4a","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-2.7.4.tgz","fileCount":1471,"integrity":"sha512-/zt/Q05xpQGwXW1flceqBOA9K1fvhEhb31wrXLV3Yl9Od7SCVZo65sQT93XYGqOmQuNUCSgIyaXE8fctFTB+oA==","signatures":[{"sig":"MEUCIQC6vT9PZWuWWj2J+twwJ2OFlYjQ9EH7A2lfNWKfCmX0qQIgVm4ObismUpI2b3q4vH3JVnhWRY1AlVKLTmUBNh/z0ZY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6951356},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"212bac621e5c42adcefe03091f801b8ee0a73d2d","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.5","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.6","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.1.0","@mcp-abap-adt/interfaces":"^2.6.0","@mcp-abap-adt/adt-clients":"^2.2.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.2","@modelcontextprotocol/sdk":"^1.27.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.3.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.3.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.4.2","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.2.1","@modelcontextprotocol/inspector":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/core_2.7.4_1772529264800_0.6157205304686066","host":"s3://npm-registry-packages-npm-production"}},"2.7.5":{"name":"@mcp-abap-adt/core","version":"2.7.5","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@2.7.5","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"68d03a583c59e0833be85290af5c4f77d8e240e6","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-2.7.5.tgz","fileCount":1471,"integrity":"sha512-6aZza21xZ0OTdLjcG6Q5vgWTNPce7IRyAorvVXfRmhqH+ms6OeSBqlyCqIj/oA0/K91YSuHWWmXoA29DEZf+SQ==","signatures":[{"sig":"MEQCIHae9cuExQ/riyBm7OIiEiaNghHFa7Ptmi94bbzdyzIaAiAK4Qroh7SAZjcODn2JJKdxKooWvLuaHXS7CWDQ/QiP4A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6951495},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"f44f661f832574a2643faaf3d8b6202f9cdad97e","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.5","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.6","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.1.0","@mcp-abap-adt/interfaces":"^2.6.0","@mcp-abap-adt/adt-clients":"^2.2.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.2","@modelcontextprotocol/sdk":"^1.27.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.3.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.3.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.4.2","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.2.1","@modelcontextprotocol/inspector":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/core_2.7.5_1772531064889_0.327400650587619","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@mcp-abap-adt/core","version":"3.0.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@3.0.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"51102ec168d995c16baba85dfafaeddf896f895a","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-3.0.0.tgz","fileCount":1471,"integrity":"sha512-dR8CtNMZSIgXz5TE+bxZ1Cu1E2wTHIHInVgijGNiF3KZv58XbULXem5qKQeOK0874vh8mPqnyV1DdWWQRzj8Ag==","signatures":[{"sig":"MEUCIQCYel4uePkf0TU59psWa0PYycVc/7DVDYnQEwGRsUH27AIgGBm7pzs5hC3uzTRZXyAx/kcn5mi+YlLV2RAj1JZiYxc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6876412},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"9ef584360b6c1eb0f57f7d1c0b7e8a7a221dbb2e","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.5","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.6","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.1.0","@mcp-abap-adt/interfaces":"^2.6.0","@mcp-abap-adt/adt-clients":"^2.2.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.2","@modelcontextprotocol/sdk":"^1.27.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.3.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.3.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.4.2","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.2.1","@modelcontextprotocol/inspector":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/core_3.0.0_1772601675154_0.8979080906205608","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"@mcp-abap-adt/core","version":"3.1.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@3.1.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"a487b4ea1911e99500c78002c344284e8831b5a0","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-3.1.0.tgz","fileCount":1471,"integrity":"sha512-sbR+c4YwR5cYK+AvPPkGPZzySm9652BBYoK+nFzyHTTLBUJtbjHdB2tuto4hdeUZZKMHtpFbOMdREz1g+d2QNQ==","signatures":[{"sig":"MEUCIF3O3xDIGwC310RgN+f9CRI8UPbiXB4OrEPpboqOLnslAiEAx0f9+FzONhexUQtVHAVRr2ftOLZE/PqpufEAxLsggb0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6881507},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"97f29b72d9a130c319b5ac57166e98590a45b971","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.5","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.6","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.1.0","@mcp-abap-adt/interfaces":"^2.6.0","@mcp-abap-adt/adt-clients":"^2.2.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.2","@modelcontextprotocol/sdk":"^1.27.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.3.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.3.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.4.2","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.2.1","@modelcontextprotocol/inspector":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/core_3.1.0_1772632972450_0.8256127834760818","host":"s3://npm-registry-packages-npm-production"}},"3.2.1":{"name":"@mcp-abap-adt/core","version":"3.2.1","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@3.2.1","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"cad333dbd57f5d0917a55c31e92ff528f75d574a","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-3.2.1.tgz","fileCount":1471,"integrity":"sha512-2ZTKenamG9gSRyFTJgTw1zHbQDXPW/8iRYMbx52vkM84J2i6rnMtEY4B4Z+2caRxdGCcQqlqZcXUa1DlXJJ5Rw==","signatures":[{"sig":"MEUCIAEYDO9KKAIY9BsCvD177C7CTdhnBvBt+PMHpvtTdACvAiEAyolGixEm7E2U/dH9+dv72fD+Gyawp3dSQcxMstxk4gk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6884930},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"13b0daeaa6412add65e161a3cb5a2b1efd05d2c7","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPattern=integration.*LowHandlers --passWithNoTests","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPattern=integration.*HighHandlers --passWithNoTests","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPattern=integration --passWithNoTests","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.5","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.3.6","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.1.0","@mcp-abap-adt/interfaces":"^2.6.0","@mcp-abap-adt/adt-clients":"^2.2.2","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.2","@modelcontextprotocol/sdk":"^1.27.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.3.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.3.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.6","@biomejs/biome":"^2.4.2","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.2.1","@modelcontextprotocol/inspector":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/core_3.2.1_1772806145203_0.13968397459868243","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"@mcp-abap-adt/core","version":"4.0.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@4.0.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"8a04f9e954288e8e5977416159398fc9181326cc","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-4.0.0.tgz","fileCount":1474,"integrity":"sha512-4AauHbp3Hzvmj7tb7FN3uu3lVdlz2kVZcLeDpmo3qN7nyKRfMNULyeBulE9g/LEZqRSvuVYz6swBFc+kFE3U8w==","signatures":[{"sig":"MEQCIF8ypWMK0oEMZx563HUHdBQUCAaTjd6HyL/6tC4/MIEhAiA8eyFLLbCBn9HPBWux5c9r6a89XBGTm6GxodD0QMdnDQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6953611},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"54198eab3b6f5339ce178c5aed884b9f8a170a46","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.6","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.4.2","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^3.1.0","@mcp-abap-adt/adt-clients":"^3.10.2","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.2","@modelcontextprotocol/sdk":"^1.27.1","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.3.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.3.5","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.6","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.0","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"node-rfc":"^3.3.1"},"_npmOperationalInternal":{"tmp":"tmp/core_4.0.0_1773387076968_0.6140812590870293","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"name":"@mcp-abap-adt/core","version":"4.1.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@4.1.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"64833553b8cfef823b179432ad11f0fc57ad176b","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-4.1.0.tgz","fileCount":1474,"integrity":"sha512-w4i+18bDCeZHcUzHl2GmDfasR+/eaGioMHdZiclOMwSAMzAJIV8zdXu2TIheE5J7Lcj7UWSC85pzTLy7PrXe0w==","signatures":[{"sig":"MEUCIBx5eW5tbjZzqEOostFjoYzpQKkFEHTtc16XLxkFLvMOAiEA+6JtwUF3U7TvAtBppEca9n8E0f/uJV0xSiNuMLMA2jg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6958968},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"9a5ade167a6b478a0dcedf39e2dac2c3b6fbd4d1","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.6","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.4.2","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^3.1.0","@mcp-abap-adt/adt-clients":"^3.10.2","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.2","@modelcontextprotocol/sdk":"^1.27.1","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.3.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.3.5","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.6","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.0","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"node-rfc":"^3.3.1"},"_npmOperationalInternal":{"tmp":"tmp/core_4.1.0_1773417181883_0.2812752805943699","host":"s3://npm-registry-packages-npm-production"}},"4.1.1":{"name":"@mcp-abap-adt/core","version":"4.1.1","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@4.1.1","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"584ec4ee2112f57b5fead1fd61b18203185766fe","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-4.1.1.tgz","fileCount":1474,"integrity":"sha512-gB3u3Qb7V5jSm6U/wxmTQDetVP4A1O5CyqQh4mUdk4sTCL6B6E/FQtqWsbligkGp/+MiDXpavMTi6ZsHgUdXeA==","signatures":[{"sig":"MEUCIQCbGyifFMQwlAQEAsN8pd7+7y6oRqJxlSiNxHx178QEEQIgRq4WBE//uCW9B8D4k+eLy+n8rlJABpom6tnqNsechs4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6959137},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"88c96d83f91ba56e3f160f492a32fd3b877d71e3","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.6","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.4.2","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^3.1.0","@mcp-abap-adt/adt-clients":"^3.10.2","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.2","@modelcontextprotocol/sdk":"^1.27.1","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.3.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.3.5","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.6","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.0","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"node-rfc":"^3.3.1"},"_npmOperationalInternal":{"tmp":"tmp/core_4.1.1_1773421315050_0.7142733155434566","host":"s3://npm-registry-packages-npm-production"}},"4.2.0":{"name":"@mcp-abap-adt/core","version":"4.2.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@4.2.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"ad7bbdf594c1bd572b8c91a31ae24711f437c1fa","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-4.2.0.tgz","fileCount":1539,"integrity":"sha512-QWsMekQ5m6cEQOQuY6yo1wnLPedLsShVzmtd+dQFEa7tv3WFTT3QLZ1tD6R+x0qgzV3APeYWe91NBi4/24EHoA==","signatures":[{"sig":"MEQCIBUaKSuO2anvrzKh85nYTmu6mFlT+c2OlyAtLfDnlQFaAiBRvCHV3xQSWbRrVrHxJ7flZ0RH+fkgIwpisdOIxaxKYw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7113014},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"07bcb63da63259afa52877bd5969011923b8f4b1","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.6","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.4.2","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^3.1.0","@mcp-abap-adt/adt-clients":"^3.10.2","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.27.1","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.3.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.3.5","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.6","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.0","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"node-rfc":"^3.3.1"},"_npmOperationalInternal":{"tmp":"tmp/core_4.2.0_1773529497488_0.28811611038718876","host":"s3://npm-registry-packages-npm-production"}},"4.2.1":{"name":"@mcp-abap-adt/core","version":"4.2.1","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@4.2.1","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"c4fd2ce2a6ad16d36bde8434121373ad468e8754","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-4.2.1.tgz","fileCount":1539,"integrity":"sha512-Kq4BnGdKVaFE956NHWJz2q9VZBJplmKGhQL+pVusXJ6FA5HBVNOTDGOXoL2NFnhgac4it2Ylsz50jLIKkXu2vg==","signatures":[{"sig":"MEUCIQDjP+Pz86XNOW+1vMBvgYBU2koLPc+B7p7naFBkODSfjgIgUUPtO2HSi2Rmcs69ue8MWsSeAMpwx3r6ggw09ob6koA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7113127},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"4e2a31f8a09decde705d0664cbb4da93b738d10c","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.6","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.4.2","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^3.1.0","@mcp-abap-adt/adt-clients":"^3.10.2","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.27.1","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.3.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.3.5","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.6","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.0","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"node-rfc":"^3.3.1"},"_npmOperationalInternal":{"tmp":"tmp/core_4.2.1_1773530226767_0.05574217242431634","host":"s3://npm-registry-packages-npm-production"}},"4.3.0":{"name":"@mcp-abap-adt/core","version":"4.3.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@4.3.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"e84faee21b3b1622b12e063c5b46781bc0cfcac9","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-4.3.0.tgz","fileCount":1539,"integrity":"sha512-J3iAZgx0ppmEVlj4cVLfNjF4ND882IBdHlId5wIBTlZ557N92cpU54CXmm6ofYBww4pIw5/Bs5uEHR+0YHRApA==","signatures":[{"sig":"MEUCIQC/yYA+i+3KAuxUkKYEGh93LL+aAocnLBY2AFOrYF5JowIgXpCIkrpW0mGEySckkpAMqYS39woWbM5ZmG++RYuemdU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7114746},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"0c4ae64de9b3287c0eb2db3e6f779250377a8793","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.6","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.4.2","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^3.1.0","@mcp-abap-adt/adt-clients":"^3.10.2","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.27.1","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.3.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.3.5","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.6","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.0","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"node-rfc":"^3.3.1"},"_npmOperationalInternal":{"tmp":"tmp/core_4.3.0_1773948181631_0.511073872123736","host":"s3://npm-registry-packages-npm-production"}},"4.3.1":{"name":"@mcp-abap-adt/core","version":"4.3.1","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@4.3.1","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"d3586b3f532bb2f3dda89266eb0ecfe275c00cfa","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-4.3.1.tgz","fileCount":1539,"integrity":"sha512-sGvCFmplO+CV73KEvnsM+DjwP75xWcZpFs0Latn6z9bOoWqS5EDjrnmO/m6KKzePGVQ3k7ZwUxjh9LSa/m/Jqg==","signatures":[{"sig":"MEQCIGQSh2Jc2J35gRa5O6aE/qmBBS3wkMZqqbojzD0E2Fe1AiBRFnXK6fesAs986IRVDTcE9UfGGwpIB7TWumYEzPLQDw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7116522},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"94d85880d979e7174679c430fdf5b0fa3bb4da44","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.6","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.4.2","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^3.1.0","@mcp-abap-adt/adt-clients":"^3.10.2","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.27.1","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.3.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.3.5","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.6","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.0","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"node-rfc":"^3.3.1"},"_npmOperationalInternal":{"tmp":"tmp/core_4.3.1_1773952473551_0.38499295013134494","host":"s3://npm-registry-packages-npm-production"}},"4.3.2":{"name":"@mcp-abap-adt/core","version":"4.3.2","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@4.3.2","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"41ce67220a5a63d8c1f1941ce733572d32027308","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-4.3.2.tgz","fileCount":1539,"integrity":"sha512-p5UFEeUjsEv2fr4oxob4fqIq5ywY7KLQxQf4Ap7pizT+WNjwcgY4+mYN3YykdZMLYtoEct+SsgbpXNGyqRT9Jw==","signatures":[{"sig":"MEUCIDXAcYFXDixW3Wygx+j5YyWk3set1UTAHMPK9jtozWwqAiEA8qbdK84YAsaTgnXartZazZwAK0XPoEyktUAPDjvuOKc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7117497},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"77f1db331196dd45e388a7d0202262df5d0f0bcb","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.6","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.4.2","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^3.1.0","@mcp-abap-adt/adt-clients":"^3.10.2","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.27.1","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.3.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.3.5","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.6","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.0","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"node-rfc":"^3.3.1"},"_npmOperationalInternal":{"tmp":"tmp/core_4.3.2_1773954767518_0.3950612562942959","host":"s3://npm-registry-packages-npm-production"}},"4.4.0":{"name":"@mcp-abap-adt/core","version":"4.4.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@4.4.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"42d2c16af76745f33c2ce227d1c297d8d63a28f1","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-4.4.0.tgz","fileCount":1539,"integrity":"sha512-jYfxIEMto/D2O55txxRz3PuleHAoik5ES/1FR13YwD68xHeNuB7bc+c57ZILzT+Fh7w84y9dkrA7NfPMDTC6oA==","signatures":[{"sig":"MEYCIQDVEFw4036no72BXcNk6O9f10MEIeBJ0n+GsNLp4kQwagIhANZ73kHmo0wkQ9Jr3dcvkSo244TmU3rL0vrFa+umoYUk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7121251},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"b30ff86c24cba4e0c7776367c09c14e42ad95287","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.6","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.4.2","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^3.1.0","@mcp-abap-adt/adt-clients":"^3.10.2","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.27.1","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.3.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.3.5","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.6","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.0","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"node-rfc":"^3.3.1"},"_npmOperationalInternal":{"tmp":"tmp/core_4.4.0_1774167731309_0.014563110607346275","host":"s3://npm-registry-packages-npm-production"}},"4.4.1":{"name":"@mcp-abap-adt/core","version":"4.4.1","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@4.4.1","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"d731f122acfc6ed3430e477d66a2342ea29f9418","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-4.4.1.tgz","fileCount":1539,"integrity":"sha512-oF7rcDgXsdxyzuhMdCu3xItptLKv13mC228g3wDMJRwTQRkoC0Gi43faCK4PHCH+DuV8kAHKm5mJ9q6pquULdA==","signatures":[{"sig":"MEUCICs94ewzSTKEAiNJhh4DpvmUxaHByUc84vJFKwxkGsGTAiEAl4dKy7mYlvvKegwACsBoYslQrNTzaUdVhGBSUhKNDEM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7121506},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"17c62721785dd7b18f52bea64b00b2ddb423d9bb","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.6","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.4.2","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^3.1.0","@mcp-abap-adt/adt-clients":"^3.10.2","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.27.1","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.3.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.3.5","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.6","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.0","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"node-rfc":"^3.3.1"},"_npmOperationalInternal":{"tmp":"tmp/core_4.4.1_1774507349462_0.4695524906047923","host":"s3://npm-registry-packages-npm-production"}},"4.4.2":{"name":"@mcp-abap-adt/core","version":"4.4.2","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@4.4.2","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"b89f5b983f7503d250cde6acdc05482d5af28f57","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-4.4.2.tgz","fileCount":1540,"integrity":"sha512-gWYUqChPSPTSnJYjwXkfUBs/ZESM0FN3bryK4NLKOk5Mj4xCtiVw6XJFvr4CCJFyyYvx8sylDi13VwREwmRyig==","signatures":[{"sig":"MEQCIEkNWyUrGUSv7rT0zSTNkB7frBx9EL4HWZjuAWDuwPjnAiAvuYijzN+r878K/H241HfB/aNPAiv0e6EM/SWfDS1vOg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7122480},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"3a9a6dd040623d7c2a95835a4e1be7e1e0fc9b64","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.6","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.4.2","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^3.1.0","@mcp-abap-adt/adt-clients":"^3.10.2","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.27.1","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.3.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.3.5","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.6","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.0","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"node-rfc":"^3.3.1"},"_npmOperationalInternal":{"tmp":"tmp/core_4.4.2_1774517358804_0.37405326312448106","host":"s3://npm-registry-packages-npm-production"}},"4.5.0":{"name":"@mcp-abap-adt/core","version":"4.5.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@4.5.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"88c66e2cd07af8484ea392360ced14ddc24bfa45","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-4.5.0.tgz","fileCount":1540,"integrity":"sha512-qOWrfrOYl/wTdZSe9Meyd+4RP4LeZWxFdbouxq0ou6eUr5kjjkuwbM2/gk3aTpRke0X0zLFJgG13S2b2zgT34Q==","signatures":[{"sig":"MEYCIQCiUjMGTlflK4/zHzKYxXiFDjQBHjFW7Qp4PvcPI3JqigIhAJneJpSfEdgtB1gx4guOfojf1jRoB/BtA0QHvcDM9wKL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7122842},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"7e53958b2d785663ef8a90eb3f25eae4cc920e18","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.6","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.4.2","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^3.1.0","@mcp-abap-adt/adt-clients":"^3.10.2","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.27.1","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.3.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.3.5","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.6","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.0","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"node-rfc":"^3.3.1"},"_npmOperationalInternal":{"tmp":"tmp/core_4.5.0_1774529177926_0.5489753356410274","host":"s3://npm-registry-packages-npm-production"}},"4.5.1":{"name":"@mcp-abap-adt/core","version":"4.5.1","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@4.5.1","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"1a08f18d42b0170f58f85e021946626f7e65c621","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-4.5.1.tgz","fileCount":1540,"integrity":"sha512-BoHn3xM7fH773stNhdhqZYZVXtZa6+B6RiY7V2FyIlO1ap0wKztIoPTV2cxJEC965WMsDc6otcSH25u/kJYwjw==","signatures":[{"sig":"MEUCIHO3JcRHnf/5xPFkGEPKXNGg151hjrJxc8LcHg2mACqEAiEA16NxkcIT5YYRpBYDK6ls4lfIYu9SEJZjXBvE3hnY8Ww=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7122934},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"2f97a4b2e8e2a836aa6d81d15f2219504340a0f6","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.6","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.4.2","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^3.1.0","@mcp-abap-adt/adt-clients":"^3.10.2","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.27.1","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","dotenv":"^17.3.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.3.5","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.6","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.0","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"node-rfc":"^3.3.1"},"_npmOperationalInternal":{"tmp":"tmp/core_4.5.1_1774537532587_0.7436169147893383","host":"s3://npm-registry-packages-npm-production"}},"4.5.2":{"name":"@mcp-abap-adt/core","version":"4.5.2","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@4.5.2","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"65207662cb11bc5d1b79e96cf99dc1baf4aaa807","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-4.5.2.tgz","fileCount":1540,"integrity":"sha512-Ifr23bXoLlEEvZgOfPAh7/P9X/d/T1H0X0uvMBrlVwqRqN4v1nGn/cLvvOxGT3Xtmmcn0VKhteGlE80UekfcwA==","signatures":[{"sig":"MEYCIQC/+3p2hlPqE5iZ8YlZoaZFabI8Cwj9D2gbqUeiQZcWZwIhAOGr7+/UY+l5ULSZxX6tpldwKNzoHKJ+FZddR6qKISnF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7123248},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"73a12627af98df00051e0500552f50adb936ed5c","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.6","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.4.2","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^3.1.0","@mcp-abap-adt/adt-clients":"^3.10.2","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.27.1","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.3.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.3.5","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.6","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.0","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"node-rfc":"^3.3.1"},"_npmOperationalInternal":{"tmp":"tmp/core_4.5.2_1774593581888_0.696371109950437","host":"s3://npm-registry-packages-npm-production"}},"4.6.0":{"name":"@mcp-abap-adt/core","version":"4.6.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@4.6.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"490ab7ee13a5ab716a3db0523c8aef919e28b0e4","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-4.6.0.tgz","fileCount":1545,"integrity":"sha512-/v56t2qZUejtYz1ByB6vWW303RxNVAVR56M3bM9yJYAqAO40f3sLeaILhm6fzkZoQ5Xps7MNe/Sam+n7TyBidw==","signatures":[{"sig":"MEUCIDeRUtFlzb/wLUW0XfQTtS02tAjlXAvv6VtGJHoZygTjAiEAjChnHJgmQPmSooZqQMuD4t4b7b3KKO80sjR2UVInhUg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7157264},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"54f1b3f9c583e0ff0588c4a2487940342c8d1210","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.6","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.4.2","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^3.1.0","@mcp-abap-adt/adt-clients":"^3.10.2","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.27.1","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.3.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.3.5","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.6","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.0","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"node-rfc":"^3.3.1"},"_npmOperationalInternal":{"tmp":"tmp/core_4.6.0_1774959498902_0.8554130226526426","host":"s3://npm-registry-packages-npm-production"}},"4.7.0":{"name":"@mcp-abap-adt/core","version":"4.7.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@4.7.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"38d503351287923e720f7cb5cde8d52bd2bf2bfa","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-4.7.0.tgz","fileCount":1546,"integrity":"sha512-mA06JPDkjHYVd4ct2oIFX8Dfx918j1p9sbxTeeZsSWDMnvAYk387FD6s/hFiROLmjbEUkfDzDz6Wip6h+3/vTw==","signatures":[{"sig":"MEYCIQC3hK3HtRKi2c9tp+FNxnG5x2Eza/LB/ex9D8aUzVZILgIhAOQ9T6axxlqZnXYieegU/Tf4KBXC4lkd6Dbw4Z/UBNtd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7183400},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"4b7a5da3e96dc07a02e1ee92dc5aa938b4675b50","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.6","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.4.2","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^3.1.0","@mcp-abap-adt/adt-clients":"^3.10.2","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.27.1","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.3.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.3.5","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.6","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.0","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_4.7.0_1775046642057_0.07091555911552017","host":"s3://npm-registry-packages-npm-production"}},"4.7.1":{"name":"@mcp-abap-adt/core","version":"4.7.1","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@4.7.1","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"7288af8423d965c89b0f3a98b23e252d0ed032eb","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-4.7.1.tgz","fileCount":1546,"integrity":"sha512-+XI5LwGSmQfEYBNXcpebx0X5yaRDf2I7T6nwGdtxWVpgmyHt2e4XOrQF4jmVmVqtvi8ZgBBLy9RQT2QvaAD2mw==","signatures":[{"sig":"MEUCIQCP55ub4s4Xuzc1cCCto9i4EO9TLfYiOPaAY5cWtI1SygIgCFhMuuTzwRNuNwOqjASOXs5ZDrFcz9n1ZK8Pljujefo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7183490},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"2ec921f5f5c2ce09e19fa9f45c8e460ec86e5981","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.6","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.4.2","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^3.1.0","@mcp-abap-adt/adt-clients":"^3.10.2","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.27.1","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.3.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.3.5","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.6","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.0","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_4.7.1_1775046860115_0.4698586696487528","host":"s3://npm-registry-packages-npm-production"}},"4.8.1":{"name":"@mcp-abap-adt/core","version":"4.8.1","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@4.8.1","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"033ba01030cf8ee5239d80080bd4c4c504c1a6cc","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-4.8.1.tgz","fileCount":1546,"integrity":"sha512-kTa/SA+xsZaWmidyZz+TCEiGqqaGvHA3IixP1hIMZOyM1ARAn0NQvirRxc+oNX5H1YSRn+9Fh0quMPLgRpaYog==","signatures":[{"sig":"MEYCIQDREZlXt+goY8cEXVYrfUUuFDFLSBtrUe5jiVrG4znVOwIhAKC4ezY0spf6SzDL82vDoKOcutLicP7G4tOtPiledlxy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7196541},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"7391962fe72ab885192c1c7b70fd1b3e4f24d455","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.13.6","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.4.2","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^3.1.0","@mcp-abap-adt/adt-clients":"^3.14.1","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.27.1","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.2.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.3.1","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.2.0","typescript":"^5.9.2","@types/jest":"^30.0.0","@types/node":"^25.3.5","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.6","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.0","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_4.8.1_1775160044007_0.5193547150287274","host":"s3://npm-registry-packages-npm-production"}},"4.8.2":{"name":"@mcp-abap-adt/core","version":"4.8.2","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@4.8.2","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"476213acf7bd70e98e4c2ddd94e973112f398e1e","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-4.8.2.tgz","fileCount":2963,"integrity":"sha512-NLwa+/Y950C/6SLAHARHrL9+2DFHTxvoV2gyOa8eUTBC7VGShUa3PAeY545FWybZKuBs54iAL6OLEQ6Ol93VvQ==","signatures":[{"sig":"MEYCIQCoDA0RWtFPoGv0ZXDIK+anjxGZmsMguXI6lN2us1bUFAIhAM7I9G8wZhHb8KR/clBJfW8hK9Oezu6ZT03vLAo1oBlg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11426118},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"b4369eac87066a8a5d64ddec8b864d7a63591d37","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^5.0.0","@mcp-abap-adt/adt-clients":"^3.14.2","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_4.8.2_1775311837421_0.5633030278852365","host":"s3://npm-registry-packages-npm-production"}},"4.8.3":{"name":"@mcp-abap-adt/core","version":"4.8.3","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@4.8.3","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"58bbb58aacfca61ed249c660162f0a8f1a9cd191","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-4.8.3.tgz","fileCount":2963,"integrity":"sha512-UbcbnKFsUJljh4kA8qpGFP2NPQe1xZ7r8uzCSUiy4OjL5T3nH1XDt0A8UXaT0sV4lCAFBaAeWXdtQmiCvRRz9A==","signatures":[{"sig":"MEUCIBJlRXbkmEg8qYUWztN2cWB6Gqk7vTlk1SJZYCzzGhMuAiEAr5NRpJlfgbtq4/d5I5pty632p+IsBy2kE+oySHmqYGc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11423116},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"e4fb6e0fd060506ddebcfa2e140ad78979ccf9bc","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^5.0.0","@mcp-abap-adt/adt-clients":"^3.14.4","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_4.8.3_1775372888487_0.007549661306377908","host":"s3://npm-registry-packages-npm-production"}},"4.8.4":{"name":"@mcp-abap-adt/core","version":"4.8.4","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@4.8.4","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"204ef060055324ad99ab4165e68b11b78782de49","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-4.8.4.tgz","fileCount":2963,"integrity":"sha512-U3gtuigKpJHlY3+sLm5E5VFf2VHAFUtnun14XWANv/QGxzyiv3FwTFu9VJ5MX5yxfss+yB2y/OSS/DGLrYNFFA==","signatures":[{"sig":"MEUCIHRsMb1svbmRAu4BuwJ09oUgisEv0kv3nDpU3O3iPcK6AiEAonTA/N8zbeFZO+XQwYLZhzNyf2WinXtY1Kb0ZNjMinw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11423318},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"b2761e12d7c8c612ab41e5f8bf7245f7b7ca8a65","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^5.0.0","@mcp-abap-adt/adt-clients":"^3.14.4","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_4.8.4_1775398700794_0.875149987115948","host":"s3://npm-registry-packages-npm-production"}},"4.8.5":{"name":"@mcp-abap-adt/core","version":"4.8.5","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@4.8.5","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"c8a1e4244cc76b77c43a736ec7588deb1139d407","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-4.8.5.tgz","fileCount":2963,"integrity":"sha512-DCZZDGWbVos0Ovu08fJPTKjFi5UlknFGZB2DVMv2NIkYH7aaxLOaaDjGM/4Ui3psiTBFOqhT9JUzJfmLYZ9UnA==","signatures":[{"sig":"MEQCIFeTe9fk/Sfb845W4j7ERxS2ghaoteyghLFTSuZiVrjvAiAv/VwNy6/KbrfiyLiFY/kIjxuMfu1pl0nWQIxJM9Alww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11426295},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"2e16b2868f496a202e02f3dc28313dcfacc83b82","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^5.0.0","@mcp-abap-adt/adt-clients":"^3.14.5","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_4.8.5_1775405727416_0.23069463545270996","host":"s3://npm-registry-packages-npm-production"}},"4.8.6":{"name":"@mcp-abap-adt/core","version":"4.8.6","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@4.8.6","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"22909ed1732519cbefeef44d8ac61ba6d6c70beb","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-4.8.6.tgz","fileCount":2963,"integrity":"sha512-Z8mc/Yh/vDykRCqBS435Qj5uMR7sb8FgjnBliCZbvwJrx/mBmqn7tcDw7eG1PoRs1eL75MKUk3y5Zo+c4GkDjQ==","signatures":[{"sig":"MEQCICrbxxQvUKl0aKjLZV6c+tAvW1MAL5Rhx/PM5jxnRarEAiAQZg97S+0KLi0xgNVWNiqBru9r7lxa6y8O6huxKp5NNA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11431185},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"27e63533d8bb2e7cd6cb062c146c9fc0ca8ce9b5","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^5.0.0","@mcp-abap-adt/adt-clients":"^3.14.5","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_4.8.6_1775417074932_0.8188892922490074","host":"s3://npm-registry-packages-npm-production"}},"4.8.7":{"name":"@mcp-abap-adt/core","version":"4.8.7","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@4.8.7","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"61080437d904e5d4bbd4661a077e03bfbc99e609","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-4.8.7.tgz","fileCount":2963,"integrity":"sha512-SoRJ21lUeAWharkgsK3tdIxVwAGTf/7REHFPncKEgTydo0GT4pFO+Gq5B15/FLqaPdQ1TJf1oiTBSf1E5VCqPg==","signatures":[{"sig":"MEQCIAXbSjjXLlR08Jv8iCVwru1AlzooWb4fwCD5r886deUbAiAJHlO0dCZuwBSimUabRejfDjhYNRxrNb/iihWjB8YByg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11432353},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"eaef58754852439a73590e9f7071f51275aa3eaa","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^5.0.0","@mcp-abap-adt/adt-clients":"^3.14.5","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_4.8.7_1775425455347_0.02294191132055312","host":"s3://npm-registry-packages-npm-production"}},"4.8.8":{"name":"@mcp-abap-adt/core","version":"4.8.8","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@4.8.8","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"3f5d836640d8611e517c393160100dfa603cdab0","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-4.8.8.tgz","fileCount":2963,"integrity":"sha512-P0eIWzQS2KfoFfGNaKZuX/XL4Y4Aoz7NlKT0SvBdijFkYvKq5mAkdy12cIy9tFCgWMZhM1soKxmYBuNvLSxR2w==","signatures":[{"sig":"MEQCIA56phspXFRm3O6G3lg+8sOkPyvQQeDL3b0ZLOsmSIDbAiBK5D+asBxXXGUybiaYsSB+M4FhHiuCraiTL6Uz51dgCw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11432233},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"04d03ed8fd83a1069065fd5c978cadb7fc97066e","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^5.0.0","@mcp-abap-adt/adt-clients":"^3.14.5","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_4.8.8_1775507980079_0.3127728583593097","host":"s3://npm-registry-packages-npm-production"}},"4.8.9":{"name":"@mcp-abap-adt/core","version":"4.8.9","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@4.8.9","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"3805491e14da9e0922075873e7c41eefd97616a1","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-4.8.9.tgz","fileCount":2963,"integrity":"sha512-9YN/g/ZBTDtOw8hu0DjEmHtnhaaUN29nYcETgAQCAw2sBVOWiB7wKpBdXBgFGhoOyGsieUDLF9BypPk3ZhqgsQ==","signatures":[{"sig":"MEYCIQCvww1l+zD0WoDbBt3mH5/jtvmUn7F8Y7HLRcoIdZmbpQIhAKzkP54bwube4iOI0V2Z4PValV0ccp2LGCirB+LZDoYW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11432279},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"8a22669b389cff82b1888758095bb5b2d3167fa4","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^5.0.0","@mcp-abap-adt/adt-clients":"^3.14.5","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_4.8.9_1775547437726_0.8665824875860695","host":"s3://npm-registry-packages-npm-production"}},"4.9.0":{"name":"@mcp-abap-adt/core","version":"4.9.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@4.9.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"5d284abf30f966f3b045313293753ea6f92c60ab","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-4.9.0.tgz","fileCount":2963,"integrity":"sha512-9pxXQEhkcXzGm2DziKEgfVDQjLweTkdtVVEQ8lbCJmOZHy9fcW9V6oidAeQ9QwAuxLTBpJ70aB1QqlJ1ps/iwg==","signatures":[{"sig":"MEUCIQCxOk5Lphf3A46gGkKSF06aaVvgCKSVvmAi772HctumLwIgOHr7Yf6abyqy0PyeYvXzb7vIgRRnEUX1VFdeRNTkrCU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11435725},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"783e596702c19f8719862fe58e03182f39c1b018","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^5.0.0","@mcp-abap-adt/adt-clients":"^3.14.5","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_4.9.0_1775652038978_0.4107600596665324","host":"s3://npm-registry-packages-npm-production"}},"5.0.0":{"name":"@mcp-abap-adt/core","version":"5.0.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@5.0.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"a7a5716cf11cd40c41f4010f644651d182d9ed85","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-5.0.0.tgz","fileCount":2988,"integrity":"sha512-gwtsk/cw5UgQzJxxrYiA1qYeXY0rQWVTBJXP0UjAIUy8AQPsT4JYO7EdY1psqXFLjIpY6n+vhiYQ/PRuuYFBNg==","signatures":[{"sig":"MEUCIQD0HGB0VDh8IWJP1SrwUisrvU22h3BNTJJg9qDs1hq5bgIgeI2ZntPTHcDNV8gdq0Vv2BL0pVsi6dQXJxVj4+MX2ZM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11522158},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"6f32ef8514d33ebdd3491019d696d9dfd6b3faf5","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^5.0.0","@mcp-abap-adt/adt-clients":"^4.0.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_5.0.0_1775928486902_0.5125297661191859","host":"s3://npm-registry-packages-npm-production"}},"5.0.1":{"name":"@mcp-abap-adt/core","version":"5.0.1","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@5.0.1","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"f68e5c46fd197ee56d145b1f2a81a6251693f661","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-5.0.1.tgz","fileCount":2988,"integrity":"sha512-fCNxvqM03dE+G7P1/O8vFN4i9KY6wot+obAdw/dXYGvBld8+KoJFK6T8/xkgzThs9AS9RlVcXaxm1wXU1MAPzQ==","signatures":[{"sig":"MEUCIB4Dq5OZ3KDiWGZYbQ4nj+gUDLtXutzw+twVcOpqTncwAiEA9nU3aJigxHwJ3s/fQd+mFma23VVehGt7eKED71tCwOc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11509233},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"be56df134007be3ce11fcfcfc5b3f6134c5b9a40","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^5.0.0","@mcp-abap-adt/adt-clients":"^4.0.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_5.0.1_1775941966176_0.23313046967695317","host":"s3://npm-registry-packages-npm-production"}},"5.0.2":{"name":"@mcp-abap-adt/core","version":"5.0.2","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@5.0.2","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"0f856596beea8b98b129368edd76673fc8113876","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-5.0.2.tgz","fileCount":2988,"integrity":"sha512-jvrnQofLJf57Slj+t/BiUzWrSfyLJw0pCA7MO9owjHGK/JLjRWdegeo6tRfZoLuMxkI8Jm/au74aeMY5zGAWVw==","signatures":[{"sig":"MEUCIQDtsCzuppSqIR2NjWWgHJo6TlwTsjNXgE6ek6TvskrRuwIgI7sNn1YfQFrFcg6aHTciLVgxbyc+UCFmCRcr3YmM1C0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11512007},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"980c13860783fe941cedd3a89188104a36afc4bd","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^5.0.0","@mcp-abap-adt/adt-clients":"^4.0.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_5.0.2_1775989734129_0.2690502930729608","host":"s3://npm-registry-packages-npm-production"}},"5.0.3":{"name":"@mcp-abap-adt/core","version":"5.0.3","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@5.0.3","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"c23a5ab634d1177a752131362ff3995b360e416c","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-5.0.3.tgz","fileCount":2988,"integrity":"sha512-AW+4b5qIY/QRU8rDzgJW7QbVaw76XakZhUOWfKk93Blf5IUupSR5N0FCCNlf2rWCefvQdPr3dRRZdSgzwIDmbw==","signatures":[{"sig":"MEUCIGHNdFhD9wjckKMS5l9KOZf1v59F++j7iCGAiHFf2OtKAiEAtLWT2WQEgyp3Q3f1++omDrSRLouBGEV+QepvesOBhYk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11512145},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"ad2aa635751248da216c178204a39d74794b9449","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^5.0.0","@mcp-abap-adt/adt-clients":"^4.0.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_5.0.3_1776010418705_0.557883228387063","host":"s3://npm-registry-packages-npm-production"}},"5.0.4":{"name":"@mcp-abap-adt/core","version":"5.0.4","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@5.0.4","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"4032fbcac00901d73287b30e15f744dabd0adb27","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-5.0.4.tgz","fileCount":2988,"integrity":"sha512-hXCmzqOClBS0FHzNlPu0FU6J+AjaEEmPthieGgaTbAYB6rO0CIIKmVrmu08HhXMX0xM8MgSX9tNIkGhmfqcJHA==","signatures":[{"sig":"MEYCIQDrGOoa+hK3pVAowj2rDeK+WMawfxEWgQ5tXDHIuKqlNwIhAIOtW/3w5zECQ/ulZTxY8pce3yZJzAdEOTg4v3b6i04J","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11513544},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"95e9d4c3836d56c54674c4c62b29c3d07d61224b","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^5.0.0","@mcp-abap-adt/adt-clients":"^4.0.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_5.0.4_1776033887063_0.9626359642304405","host":"s3://npm-registry-packages-npm-production"}},"5.0.5":{"name":"@mcp-abap-adt/core","version":"5.0.5","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@5.0.5","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"c361cf2a88928671be36f8d6090e2c12376b76bf","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-5.0.5.tgz","fileCount":2988,"integrity":"sha512-e1dzk6wem8DwS2o//E41zuF8ISld6tgPF/gMd54aWWhPO0MtOM+tp2Mm1Wl/wxEgrNoktTEXeHJaj7RGXc43hg==","signatures":[{"sig":"MEYCIQCeeTfDhj5IjTDSQxe7n2HTNZzC9aBeGPxfufU40tGsAgIhAL9KL2uZf1jLMF6AQZwQMyLmXW7zR9HA0ilTiRufEOpy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11514346},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"5a87a5a167b0b4d6353b4f06231883dc738f7d48","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^5.0.0","@mcp-abap-adt/adt-clients":"^4.0.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_5.0.5_1776063974500_0.2958396176111937","host":"s3://npm-registry-packages-npm-production"}},"5.0.6":{"name":"@mcp-abap-adt/core","version":"5.0.6","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@5.0.6","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"ae0518028f364f54a9ffedca70a717999851fd48","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-5.0.6.tgz","fileCount":2988,"integrity":"sha512-eH4crQ1o7eZqspKPcv2uvXP5LjzJ6Hp3Ds2XnO3F8Biky/U95o081/EwkuxHfmcdYjTjZmIdkRgM7rRqJWpbtA==","signatures":[{"sig":"MEUCIQDzHBwhQEXz2s/xKSwVBoYkQ2E1E6BOdBYacaMNlFfy/QIgQmW/mV5QrQHnuwERk2EsKv9cXZF37Kv2JJpoWz4lQP0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11514147},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"7e1f5ccfc33d1d1e1c24248cabe7d255a54eebac","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^5.0.0","@mcp-abap-adt/adt-clients":"^4.0.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_5.0.6_1776065853988_0.330482264758317","host":"s3://npm-registry-packages-npm-production"}},"5.0.7":{"name":"@mcp-abap-adt/core","version":"5.0.7","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@5.0.7","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"a2d201b3c7c2fccfad968de23bea653021d9e93c","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-5.0.7.tgz","fileCount":2988,"integrity":"sha512-WTNtTA93THZLm+XiujrpQHDQjMopKFoe63rgNLCIGsdf+2mAQc5+5pqmRTZ4iRFC9QwzVJyR6nlbB5uG7/LFbQ==","signatures":[{"sig":"MEUCIQDpsiLaqJDVuSnQluWm/QrwnvTBR9STt+lIXhxEJ6yYiwIgD6R0zUUnH3Yx46Dl724qqOfF1IJ67XANBcf8hATcUwg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11521268},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"7487bd101cc105eb2f793ff36d17bfcace2c6c61","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^5.0.0","@mcp-abap-adt/adt-clients":"^4.0.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_5.0.7_1776067893466_0.5261051577929907","host":"s3://npm-registry-packages-npm-production"}},"5.0.8":{"name":"@mcp-abap-adt/core","version":"5.0.8","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@5.0.8","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"e1997dfbceb10465fbdc7df13b2dccfad3353408","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-5.0.8.tgz","fileCount":2992,"integrity":"sha512-OeShNjTDpK8VX6kyJOatZg/3rY6gcPq4D8hofVKo5uapDqGB7m50XZtHTN1yC0XiUse9jmuokmjHD1gFvwuHRQ==","signatures":[{"sig":"MEUCIHi49421+oIiIDzxOwKriyLYYN15E5ytjI1Z+NAJ3v2fAiEA36VTX5QwbGmM4E6nVtPGWaBc5oK2dSaJzHsKfcnLGlM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11536903},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"c358481f8ab0505404c214d9313e898681cb2274","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^5.0.0","@mcp-abap-adt/adt-clients":"^4.0.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_5.0.8_1776069001211_0.3700140282309776","host":"s3://npm-registry-packages-npm-production"}},"5.0.10":{"name":"@mcp-abap-adt/core","version":"5.0.10","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@5.0.10","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"5639c6fcc16afa434ce496c97b1d41afc8ba9f7f","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-5.0.10.tgz","fileCount":2992,"integrity":"sha512-1nr1/BrnDZRb50TK17+VJzuDoRtmng1eRgZY+zLkCeonBA0rD+Rm5GvDCsjv9MmwwWxpNZtweBT/alXCz6DzKA==","signatures":[{"sig":"MEQCICCS45Lc3vKCsqQlK+DEtAlDfHDZS/oyLdVMRBiaKpiVAiBkGuphuU2KBbZISSpTYaP10gR+ZMFOHp+kYiUtlzEpYg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11535921},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"227f5b569327a8cf3ff681fcd66d7d5ca77434c5","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.5.0","@mcp-abap-adt/interfaces":"^5.0.0","@mcp-abap-adt/adt-clients":"^4.0.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_5.0.10_1776076609515_0.5625712061271355","host":"s3://npm-registry-packages-npm-production"}},"5.0.11":{"name":"@mcp-abap-adt/core","version":"5.0.11","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@5.0.11","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"a992b6c8789afc92eca72a178269959e322250ae","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-5.0.11.tgz","fileCount":2992,"integrity":"sha512-J0SA7tfHrO5fI+5DRFktUM5Ev4uWQXQ7vVrCiM/4y6J7XrPjiyOq8hD/wmhPymcXhrlC5GjlpN+PoGGpUOQoAA==","signatures":[{"sig":"MEUCIQCfoiobvFRmj63NJb0uYajZEkS/Ckh9fkRkOs0obE+w5QIgEbO0vMf9WnYWzBcB+MfI7mdZ3BlzeVh8g+sTvq6EXvY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11536115},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"99b1d102b0e5040c90963924b99a1291af31c226","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.6.1","@mcp-abap-adt/interfaces":"^6.1.0","@mcp-abap-adt/adt-clients":"^4.0.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_5.0.11_1776082051469_0.9751328287879921","host":"s3://npm-registry-packages-npm-production"}},"5.1.0":{"name":"@mcp-abap-adt/core","version":"5.1.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@5.1.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"967325ec4357e292ef6b86c9cd2f0db9d50b9ad8","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-5.1.0.tgz","fileCount":3050,"integrity":"sha512-wDLLYqEPZEHAPDJbO3LlRodOAK7BHhaMVMzj+KmniVsUQngv01mlKJOMJasBd3i7afIBtyc7ZtV5tzgBSrcgFw==","signatures":[{"sig":"MEYCIQDRVBprygITHE1ZKCLNslbb6XoV3IX+kMayngmJQiJwOgIhAMBRiO/pRk67Ks0leHt/3Iqbc8EI0YwhKmKj3yQnmIhh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11678698},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"dcc958dcc46e78128a302b81e025c5144f4a46a5","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.6.1","@mcp-abap-adt/interfaces":"^6.1.0","@mcp-abap-adt/adt-clients":"^4.0.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_5.1.0_1776096944968_0.4349222330652718","host":"s3://npm-registry-packages-npm-production"}},"5.1.1":{"name":"@mcp-abap-adt/core","version":"5.1.1","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@5.1.1","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"5c096849b88074564056010fefe11b0ebedf6fe1","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-5.1.1.tgz","fileCount":3050,"integrity":"sha512-yADOcKaM/4ECbJtKm/Gf1leqJ95nkesyPrG0zwDH1yhHxQrL7uDz/98mC3yY8pfzE9irZ5WPo1S8v4Ldo4EgAA==","signatures":[{"sig":"MEUCIQCF1LS9V474jH5s5OY8Xcb6mmE5bTMEss6dkMMquJ4gHAIgEjhdz2VlQjDFBwtHkIzVwyq78Ex4c8sYz+odKQ0+dE8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11680172},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"1b39a248ab9f942538ed5fc399c5ff84124f56b5","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.6.1","@mcp-abap-adt/interfaces":"^6.1.0","@mcp-abap-adt/adt-clients":"^4.0.5","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_5.1.1_1776107429184_0.4057702736260351","host":"s3://npm-registry-packages-npm-production"}},"5.2.0":{"name":"@mcp-abap-adt/core","version":"5.2.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@5.2.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"361ab4df6bec06aa0ed5aeeb4be208743eac9752","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-5.2.0.tgz","fileCount":3058,"integrity":"sha512-63TSbfEMQUwuwtbrrexmvRhklLM+YSuV8QLnVe+Dsc8h75o5bZY4ra3Nov/9m53km/Hq5LWWMJplbR0L0Ig76g==","signatures":[{"sig":"MEQCIEts0Mz9t+SjyCbHBAudeSFYs9y7WbvIfAY/hXTLvfa+AiASTFNB9OiblwuVrIWrGgoGW3vkHtMU1z+0/tB82vhkdQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11709733},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"51781d39bb15d7fb27f264fa5ca5635a0e81fa32","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.6.1","@mcp-abap-adt/interfaces":"^7.0.0","@mcp-abap-adt/adt-clients":"^5.0.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_5.2.0_1776234973631_0.9869012715421255","host":"s3://npm-registry-packages-npm-production"}},"6.0.0":{"name":"@mcp-abap-adt/core","version":"6.0.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@6.0.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"d38d8a3b549d27dcf32d71004f5471705c73042f","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-6.0.0.tgz","fileCount":3058,"integrity":"sha512-Vi19Mulb9eFIZkd8zmkU/vYL+/+ppsI2E6CctaGdN5qQOtnXNr28Hn0/N7Y7bJp1zAdbc+yaG+8Pc3Y7izd4Aw==","signatures":[{"sig":"MEUCIQDf3IZQvrhPFGcq6umODt8gftRxcTCFsMDCn8d/0bd4eAIgF9dZI+xEIOPEDbmZeKOUkVs4LiC+dlQP8du/Q2QMjN4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11700994},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"c2b800635e6ee4a2e3c7a95a24307a7e255ba937","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.6.1","@mcp-abap-adt/interfaces":"^7.0.0","@mcp-abap-adt/adt-clients":"^5.0.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_6.0.0_1776320553048_0.46761322355548995","host":"s3://npm-registry-packages-npm-production"}},"6.1.0":{"name":"@mcp-abap-adt/core","version":"6.1.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@6.1.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"59b3d2c1c53696c023b466c9c44ad969aa6878f4","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-6.1.0.tgz","fileCount":3058,"integrity":"sha512-70RYM1OqAleP5QoNf2ontyAHMsiV9aEUksmc7bMlOZUc65hX2hsjn8wC6pf4cmKmKuxPxpXEHi4q1JYTaO5rdA==","signatures":[{"sig":"MEUCIDgqHPB97NERBRQB1qebREF5GE988x6HXJPPSFKTIzvpAiEA/jzlqNlz+VtY2BNyiawnWLj5nDNs1LH+byyf3GOIIZQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11700921},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"9969ee7e9fc9f3ea86f98a5311a465237b3cb8a8","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.6.1","@mcp-abap-adt/interfaces":"^7.0.0","@mcp-abap-adt/adt-clients":"^5.0.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_6.1.0_1776347450641_0.8162140084425076","host":"s3://npm-registry-packages-npm-production"}},"6.2.0":{"name":"@mcp-abap-adt/core","version":"6.2.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@6.2.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"8612211cd2c28efb5acd9e7f7f5842c28fc19c8b","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-6.2.0.tgz","fileCount":3058,"integrity":"sha512-waRWk2Z2wJydOZEGr1EHPOdIJRIOOIbzESTgo4MH3UCJ/+KgHVnLNLMI3eN6DxL/pHZt2MzChPv08EiXBoznBA==","signatures":[{"sig":"MEQCICEhB6lfvjsZ0n8BUVdMM4+LQZYBQJY+z9Xqx+dCCDShAiBpZPsLUtSRePzO4lsOyTuqOmoNxpcz3Z945mp2/rJxCg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11700921},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"de1dfffe4d5eee115d18fb0567e1a2ee514225e2","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.8.0","@mcp-abap-adt/interfaces":"^7.0.0","@mcp-abap-adt/adt-clients":"^5.1.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_6.2.0_1776362710631_0.46322741506687115","host":"s3://npm-registry-packages-npm-production"}},"6.2.1":{"name":"@mcp-abap-adt/core","version":"6.2.1","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@6.2.1","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"2f2e99c7220688669e495d62425a5993c44fc816","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-6.2.1.tgz","fileCount":3058,"integrity":"sha512-OGINyZrHPOEhuDDzXoQcTaAWL2RjIY7YpruBUunD9/I86VgFh83f8UBt4F3Cj9spjYqGrNM8RYWyeTIB8zcN8Q==","signatures":[{"sig":"MEQCIB0nMjeJHz661cl9vNt0LU+vkYGvUSHp+vi3t1liyAIbAiBIUTU9reG0FAehylsKGxbEhI9Gw+4UQ3VU3IA6VqP0zg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11702012},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"515577a0442e501096b891bf2bce92274d2906d8","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.8.0","@mcp-abap-adt/interfaces":"^7.0.0","@mcp-abap-adt/adt-clients":"^5.1.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_6.2.1_1776410702986_0.05729142666175724","host":"s3://npm-registry-packages-npm-production"}},"6.2.2":{"name":"@mcp-abap-adt/core","version":"6.2.2","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@6.2.2","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"effe0454dd8c3d95b51923af997400e18a6f9460","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-6.2.2.tgz","fileCount":3058,"integrity":"sha512-zi1VO4Yf5kX31k/ZyfRhCP+4AgxVUJaPbcmRrOs31wDQhGhSLNgeve56AX50gLS7nSbceGHTPcf76CA8C1XXgw==","signatures":[{"sig":"MEUCIF4xALCgSDtF0Wq351fdLMI+HLpmezg4KxlBo8wapAJoAiEA8NAWVFU3hNfAbaMU9Y6I4pI9VorRtOEsOwP4ohW/ErA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11702229},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"f24a001b12168e411da2769fd7c2af5a7aed7d80","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.10.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.6.1","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.8.0","@mcp-abap-adt/interfaces":"^7.0.0","@mcp-abap-adt/adt-clients":"^5.1.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_6.2.2_1776438090295_0.5086027773342787","host":"s3://npm-registry-packages-npm-production"}},"6.3.0":{"name":"@mcp-abap-adt/core","version":"6.3.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@6.3.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"2469262692473d72f3b5e3c355c2e80fe470e3e4","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-6.3.0.tgz","fileCount":3059,"integrity":"sha512-i4Ev4fNf3CKgD7ic+KqXSVx1EX6Z/GnxJ/rvQZfS9P6fFJqfyucIJK97/8q/tiuNVEOGWAqm9xoA2uR7PLRJhQ==","signatures":[{"sig":"MEUCICe4Z6fyaF9XbwqrdHGTugu619GiGVfXmAxf2JKeS/hPAiEA4wYSHp7Ce73KCBqgntAWxzJrnTu9G3A3jy71an85XQg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11740011},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"535ab8120313e417b375e5205715399d9d0245ea","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.8.0","@mcp-abap-adt/interfaces":"^7.0.0","@mcp-abap-adt/adt-clients":"^5.1.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_6.3.0_1776458093957_0.3740756124735243","host":"s3://npm-registry-packages-npm-production"}},"6.3.1":{"name":"@mcp-abap-adt/core","version":"6.3.1","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@6.3.1","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"17a049d8bf2003eef7398b98cd357e4a395fd554","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-6.3.1.tgz","fileCount":3059,"integrity":"sha512-NgWEXZErFyoCzotFHM0k4rjMMT+QVpJq/1yHjShdQ1rxv4/uxtAAIwnM63WV4wJdIdvzYgoBtqV7jyqjjGeFaA==","signatures":[{"sig":"MEUCIB7yCKELAcdJ7/oYXpuyogny+eaQ039xvtPZru+2JbVDAiEAnI5QRhMFFg2PZcH9kydF+V/o7mo76jqY80Tr2/yD+Bg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11740178},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"bbbf5b08262840c78784b95c340b8eb83e5eb784","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.8.0","@mcp-abap-adt/interfaces":"^7.0.0","@mcp-abap-adt/adt-clients":"^5.2.1","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_6.3.1_1776599008426_0.7662970065562846","host":"s3://npm-registry-packages-npm-production"}},"6.4.0":{"name":"@mcp-abap-adt/core","version":"6.4.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@6.4.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"2e46159fc5cd160add8e3b354f318e50a182b11d","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-6.4.0.tgz","fileCount":3059,"integrity":"sha512-ZggCd4FCymWJU3m6sbmcw+nriJNlibOmowPU70iRAJn6ow/q52imgyz++GLveEi6PElXtStlwOyRSFLbCDAHJQ==","signatures":[{"sig":"MEUCIQDvFaupAmczu9HAMenkNoB+h+4cPxP8SSt6w4UqlWn4AwIgENT2bqCF7ym3vsIMmYwJ68Py38Mh420TOnoVYlCeIRY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11743432},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"c726f70cbe423745be599cd292ddf302399ccc34","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.8.0","@mcp-abap-adt/interfaces":"^7.0.0","@mcp-abap-adt/adt-clients":"^5.2.1","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_6.4.0_1776698481056_0.36437514197106347","host":"s3://npm-registry-packages-npm-production"}},"6.4.1":{"name":"@mcp-abap-adt/core","version":"6.4.1","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@6.4.1","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"ec0d958606c4aa1a50401b57fc67a5c3e3c10f59","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-6.4.1.tgz","fileCount":3052,"integrity":"sha512-+WAIznw/4UluDCrhl/19nVNHjKer8FNY/q3plknaz4pH6CInz7bDoJplkkOfnSQLAgHAA6WgcV2j/rTUkpIElA==","signatures":[{"sig":"MEYCIQCDq5tIG8JsFTJ+ZnUWEDiyNe6jmQs4MrlZKBCcsEjZZwIhAMlapxi9/8stP8rhGY0fbsPh0d1SoMsAunj4O+QeM6qv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11563063},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"efe8ee7248fafb118fc3b1bb63142fbd24d3dcdf","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.8.0","@mcp-abap-adt/interfaces":"^7.0.0","@mcp-abap-adt/adt-clients":"^5.2.1","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_6.4.1_1776782560577_0.8069073340350397","host":"s3://npm-registry-packages-npm-production"}},"6.5.0":{"name":"@mcp-abap-adt/core","version":"6.5.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@6.5.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"8f8633a28b9b2cbb6f446455e0c6ec067350fe20","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-6.5.0.tgz","fileCount":3076,"integrity":"sha512-ktaVlqNSGR0i4I989wJTgmCIwE0mSVTjbuOXQFbLIQm4C9CIjd2mtpKQyiXLll8FvFwliXr44aLyZFtruQTF9A==","signatures":[{"sig":"MEQCIBgRwb/oy32lCbREzm0L+xIIah+gFF5KOZFX8h2QqOf0AiAnFwHbeXuGj0SGJE9GftXSWxGRIriHc9A5v2TGOUCpmQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11603199},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"6040e1a762a1e23f9fccf9b0e3f2049f6f11d81d","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.8.0","@mcp-abap-adt/interfaces":"^7.0.0","@mcp-abap-adt/adt-clients":"^5.2.1","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_6.5.0_1777029061336_0.6385800929746288","host":"s3://npm-registry-packages-npm-production"}},"6.5.1":{"name":"@mcp-abap-adt/core","version":"6.5.1","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@6.5.1","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"ab4c59cd69ef89ce033e3db13c2c0b216e852112","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-6.5.1.tgz","fileCount":3076,"integrity":"sha512-BYtpcE5/x7S4P/Ya6U5GgLNEd6DMzx/zXb53oVANK/4kyuh61efyGd4XM6lMIkaSCWF3V4U6vjAP5xOvO+GBLg==","signatures":[{"sig":"MEUCIG0bNuu88tB9q+iOn6kZOhti53q1NET3sAnDa8i/hy/TAiEA+LuLHyD2xBYc53PRPtBQVxKLWNDF3Qfog3cnd1TJwiY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11603891},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"295149ef36e498421e5b0d88f4ebb7068e6de175","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.8.0","@mcp-abap-adt/interfaces":"^7.0.0","@mcp-abap-adt/adt-clients":"^5.2.1","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_6.5.1_1777035195505_0.8101834128314642","host":"s3://npm-registry-packages-npm-production"}},"6.7.0":{"name":"@mcp-abap-adt/core","version":"6.7.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@6.7.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"61ed5b456f7e1cbfc8ed1ee53f15fddb0ae06749","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-6.7.0.tgz","fileCount":3104,"integrity":"sha512-pjkbxfv+IydiuFiAU6rw7LAcMmKdyaZ3T9UDvX9l8mUnkRW75g/NeocwAgcDJhuxo+Nkmen2bBAComyPcFywlQ==","signatures":[{"sig":"MEUCIFlniYJ601RzUwpcnHUm0ijwOL1tFBoJEgq0aU0B89rPAiEA/VwrLQ9RA/R2vyoYVf5Zaj+wmZ6MEyxI7UDrAdj2s3Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11700384},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"aa2101b918a2de123be297a9f0f6b3e1ad7f4acb","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.8.1","@mcp-abap-adt/interfaces":"^7.0.0","@mcp-abap-adt/adt-clients":"^5.4.2","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_6.7.0_1778789961222_0.7567278784518681","host":"s3://npm-registry-packages-npm-production"}},"6.8.0":{"name":"@mcp-abap-adt/core","version":"6.8.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@6.8.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"856bab0287d4e360beb238d5bd5056855840ad77","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-6.8.0.tgz","fileCount":3108,"integrity":"sha512-XGoFCicQz9QvyC145OX168558R50N72rQ+lGZR3HGtzOdO5ynlywUbBiUhEYh71eLjoLiUEhCiVk0ex6N8ZOdQ==","signatures":[{"sig":"MEQCIEOv5j/k234Tif4TGkivGYcOnVzBVWwR7rzwM2wlIzN5AiA/OmB95yMb76vf1GdAoCDQAFk9hdjfFMiyNP+P8NqnXA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11709734},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"449fd64b621b4ae282ecf2a5c044640fe1239b79","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.8.1","@mcp-abap-adt/interfaces":"^7.0.0","@mcp-abap-adt/adt-clients":"^5.4.2","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_6.8.0_1778875649826_0.6630158463117508","host":"s3://npm-registry-packages-npm-production"}},"6.9.0":{"name":"@mcp-abap-adt/core","version":"6.9.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@6.9.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"56ce58bc1837fe02d2c234b8ab59c15d8ebf1109","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-6.9.0.tgz","fileCount":3119,"integrity":"sha512-fBzqUyuYnWqgHX5UEhD+gTRW6yDkcwatAfa8ue1D6nvbq4iheiZIrrUdNcZWLNRLvuuyvEjQTg8cNIlY/ZdZcA==","signatures":[{"sig":"MEUCIBstayYa52f2haFRn3OCnLFtjm9w5wu7d1C3rbQynYtOAiEAwZtWdbnABGCC4a09Az78gVQ1n03vzlxKNoIKjoZDpoI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11772662},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"5d91f717f8bd2d0f484c997097ba8b43089b0111","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.9.0","@mcp-abap-adt/interfaces":"^7.2.0","@mcp-abap-adt/adt-clients":"^5.4.2","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_6.9.0_1779572978414_0.22434995823108905","host":"s3://npm-registry-packages-npm-production"}},"6.9.1":{"name":"@mcp-abap-adt/core","version":"6.9.1","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@6.9.1","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"514cd503367954274975a7d1f7cc66f0cb26199e","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-6.9.1.tgz","fileCount":3117,"integrity":"sha512-EAyZDvNTLX19hvdKAytprACf4ZRKYXKVt7JR1w0O3Gkk9aBdz/ORJNQlgusIC4G3w0s0bwWY/c+PSOo2PiQiYQ==","signatures":[{"sig":"MEUCIQCayMsCULJTqkEA09PfmP5kto33NbLp97xVfSLNVG4t1gIgXlGja48Ie9ahJkv4m/oG48ngTgsAQoNqM1h+Ls2uaEI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11729267},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"d07f12466430d6ab15bc8e3c149edd3c3bafb5cb","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.9.1","@mcp-abap-adt/interfaces":"^7.2.0","@mcp-abap-adt/adt-clients":"^5.4.2","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_6.9.1_1779602203530_0.1610201540039864","host":"s3://npm-registry-packages-npm-production"}},"6.9.2":{"name":"@mcp-abap-adt/core","version":"6.9.2","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@6.9.2","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"7e2a01dbb0c756e62c01004db56d8fbfe13d0dca","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-6.9.2.tgz","fileCount":3117,"integrity":"sha512-J+n0aqbiZMsqYTCttCtQ/eIp1BDk6U2OjBwF7tRPmrVy3UiWdU70G5qyTWrr5XQ6NnWrN6J3qky6M8efUDta6g==","signatures":[{"sig":"MEUCIF9y1dt1AebmjdtdfJQcDUqXoAvXYMHtx3KzlY69Q9IJAiEA7GodPDmceOUowMPpFUZIXpfU7yTfWO6qPzoFzEDCWlA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11729675},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"7f01969fa3613079e9869b34cd64cfd95bc509a4","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.9.1","@mcp-abap-adt/interfaces":"^7.2.0","@mcp-abap-adt/adt-clients":"^5.4.2","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_6.9.2_1779603377637_0.9105393765057999","host":"s3://npm-registry-packages-npm-production"}},"6.10.0":{"name":"@mcp-abap-adt/core","version":"6.10.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@6.10.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"0a433695fceb037bf7ddc12b4a461b485d09c12e","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-6.10.0.tgz","fileCount":3117,"integrity":"sha512-IcHZf2OImCmbWFNmKlqTtvMFwAyddWCGeZWWYG7cOwEWsyqSH8AD4J2cjnt8/RHIxhli4TPeVmHigzJYLqghzA==","signatures":[{"sig":"MEUCIDtzOnL1RMF55xfdKKCbHHqShNf+zIvtpqkqRKzovacsAiEAsiXZN8GDG7YGd+EPcTfxSt7nCGx+R1yD9wiu4UlFWnE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11734820},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"c931a5d65316f6aeb04f4a69d91d2d837cf28c9d","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.9.1","@mcp-abap-adt/interfaces":"^7.2.0","@mcp-abap-adt/adt-clients":"^5.4.2","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_6.10.0_1779644827527_0.1216577644548289","host":"s3://npm-registry-packages-npm-production"}},"6.11.0":{"name":"@mcp-abap-adt/core","version":"6.11.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@6.11.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"17ac22642e20756fd70fa653fdfbec47b36442cb","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-6.11.0.tgz","fileCount":3117,"integrity":"sha512-N1CjLk3im1bfeXP3gAidovVQ1NiTirLg3+8oVUsT6Z2fQQWaNbyrxmDCU7yFqvOD2AMZSLh0fOqknwmggTDd2Q==","signatures":[{"sig":"MEQCIBFhxvrLg/dNugsIVEfWwp+JyH+BaNyHppeaTW9wpws0AiAOq3OuI81B7Z3W2guZRNWNDo6g/JFg7dPnST5JRZ7ZxA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11770104},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"6c4331601cce46c9a6e593a84911fdb4e896da7e","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.9.1","@mcp-abap-adt/interfaces":"^7.2.0","@mcp-abap-adt/adt-clients":"^5.4.2","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_6.11.0_1779996686206_0.24588465292968875","host":"s3://npm-registry-packages-npm-production"}},"6.11.1":{"name":"@mcp-abap-adt/core","version":"6.11.1","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@6.11.1","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"cede26bfa50c67c3978317ee1cc7cb1b6d05c9fa","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-6.11.1.tgz","fileCount":3117,"integrity":"sha512-DiUqM4oZe/Kl59xhGQAIDQ1nD+AE0mt9pVQQazMeJnlrNAImCQ3P7f5ChqYtojZKO4Pq2kLERHInaVNyJaKE/w==","signatures":[{"sig":"MEUCIQCKKmHhBjvGaD7iqW7URA/Amme6wYNhAVdxG8Gq9hhC5gIgKUmKGqG9zZqGDwiqbLP28inxxs6/wZZOL0d0FqiI8H0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11772521},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"3d1d282ccf8b6490d5e893e0889dc3daf4486b05","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.9.1","@mcp-abap-adt/interfaces":"^7.2.0","@mcp-abap-adt/adt-clients":"^5.4.2","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_6.11.1_1780003749929_0.2529033256908886","host":"s3://npm-registry-packages-npm-production"}},"6.11.2":{"name":"@mcp-abap-adt/core","version":"6.11.2","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@6.11.2","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"0295dccbaae4f58ac42f05f0d979342f82d85a87","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-6.11.2.tgz","fileCount":3117,"integrity":"sha512-SBczf9dqdihdaUqkt5xMyBkcT89kpB07PwzPxuj/92qSyog9xhd7bETn4u1b/r3RHE3DLZqEXwm/qDElNhh7Fw==","signatures":[{"sig":"MEUCIFL7cdAdVgSBQgAfHcP28MpQg3V4Yk86GPNF3ozPNyvUAiEAhyb0oHG28ps+nD0ImCj982NSsXv6hcG2iRE4nhQcPN0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11774625},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"f936121c2c2a091f8e5c76402f460ecd8e583125","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.9.1","@mcp-abap-adt/interfaces":"^7.2.0","@mcp-abap-adt/adt-clients":"^5.4.2","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_6.11.2_1780070406832_0.786947623642734","host":"s3://npm-registry-packages-npm-production"}},"6.11.3":{"name":"@mcp-abap-adt/core","version":"6.11.3","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@6.11.3","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"2b1e4147604871a1d551afa804319265fd04aa8d","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-6.11.3.tgz","fileCount":3117,"integrity":"sha512-8FurOlRSrq6/+YNV2UNtFLePQ4y3Vkif2DXdpO/O70I6bGyiPijV0tll6gJaBN3KCdjWLkYviSX1sj/Rl4mI1Q==","signatures":[{"sig":"MEUCICMopS8yds9eXWz6oFMfwrZwH2E3zHaGWSqPLJFieGjMAiEAmL/I6pmi6q7vYVRBcpoC7RoU+himn+FymB1eb1RKmI4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11774315},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"c44cf6c203260f8bd6cfef7b909096d8c027f7c5","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.9.1","@mcp-abap-adt/interfaces":"^7.2.0","@mcp-abap-adt/adt-clients":"^5.4.2","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_6.11.3_1780144782935_0.30178871269441565","host":"s3://npm-registry-packages-npm-production"}},"7.0.0":{"name":"@mcp-abap-adt/core","version":"7.0.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@7.0.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"91faef320139dd593f84de7288428c57fb1a6ae8","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-7.0.0.tgz","fileCount":3117,"integrity":"sha512-4pHFb1hbQ8Erk44hfMaMRB+Pa6+ruDyS33vu/nPYnopN6HBCl9JoSRa7upf6I9KbsHWTRVK0ALQBrzYPEsqm7A==","signatures":[{"sig":"MEUCIBFlvntGxpnSxx+o3fz3TpEaQlzIx05xRg9x+gx8k4R1AiEAl1081cCBTeJGYlmbKtL13tpmPp7nEkKPkoJzk+xLgjI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11775580},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"afee9af81de4c2aacf2635035688a65e15452602","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.9.1","@mcp-abap-adt/interfaces":"^7.2.0","@mcp-abap-adt/adt-clients":"^5.4.2","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_7.0.0_1780162202213_0.3953278703971046","host":"s3://npm-registry-packages-npm-production"}},"7.0.1":{"name":"@mcp-abap-adt/core","version":"7.0.1","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@7.0.1","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"138e3f65aa44dad69afa2d3b292fcd6b0c57515a","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-7.0.1.tgz","fileCount":3117,"integrity":"sha512-UrfgpCUfLSZWZ6+3Baan/CiS+J+T2nbD0FC1wKJCPR2WWNQ7Q/fDfNFukf43iPg3gQI3JIM2dQhbHBQiHDaSWw==","signatures":[{"sig":"MEUCIDWHSHbB2BAYBQguzH6DF04F+ruumMU86ftzpK5ToV+lAiEAlvNFUuoydcSPL+LU5pTfDXlS3kpl1CaEiLlq+2Qohk4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11776180},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"a304a25afb226ddb360edfd0c2ce8e074a825c97","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.9.1","@mcp-abap-adt/interfaces":"^7.2.0","@mcp-abap-adt/adt-clients":"^5.4.4","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_7.0.1_1781202090970_0.0898700941403614","host":"s3://npm-registry-packages-npm-production"}},"7.0.2":{"name":"@mcp-abap-adt/core","version":"7.0.2","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@7.0.2","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"2f6bdcecda4c7de52c227b5478ba7d85d51a671a","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-7.0.2.tgz","fileCount":3117,"integrity":"sha512-heDFuIxi3jar117gyGG2qhzFMHvsSEfE2o4FxaDgICMIjM2cAvppT2+wiR3tSO9HRYckCNzz/UARCv7foNUv6g==","signatures":[{"sig":"MEQCIFbWKXhT6VZtGZANshDdcYcqYRjvijcn9NINAPtC/HBqAiBLvmbMFzfAVFAaP8AK2B1AivOBCkubYYpxQdLYksw1nA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11777887},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"03ec60a17f01adeeb338834013554c9cde0bdf0f","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.9.1","@mcp-abap-adt/interfaces":"^7.2.0","@mcp-abap-adt/adt-clients":"^5.5.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_7.0.2_1781301387717_0.9812406818716548","host":"s3://npm-registry-packages-npm-production"}},"7.0.3":{"name":"@mcp-abap-adt/core","version":"7.0.3","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@7.0.3","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"93ba4c07f884071d4d263b1ec05343a43245969d","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-7.0.3.tgz","fileCount":3117,"integrity":"sha512-RTl72kiYm+vWZBdgVPf+hmCf7+Pp8yXO8eghu0q2lLtKCmotxHbZEZQT0NX6fVEROaSXhpM1cQ/sXv8zkrOnYg==","signatures":[{"sig":"MEUCIHptURB9LqatGo/V1TV8Rf6FiQlB1HbcjCweggvLywrpAiEAqpYV1jRL6geKALUVn4ovOSclr9fvuQbu2lx2NER+YV4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11778594},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"5e434531dd57244bc2164952bca32a3ced32ef39","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.9.1","@mcp-abap-adt/interfaces":"^7.2.0","@mcp-abap-adt/adt-clients":"^5.6.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_7.0.3_1781364974914_0.5697451939681457","host":"s3://npm-registry-packages-npm-production"}},"7.1.0":{"name":"@mcp-abap-adt/core","version":"7.1.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@7.1.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"bc5384a35dc44c62cb6e8c3b4ce72baadaaffc56","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-7.1.0.tgz","fileCount":3145,"integrity":"sha512-qWEK5as6BOqgETbLQhY26+aVutuJUsDt3k/66cLM8+NEzaSFxYWRy0h+uXrZOOew3EDaDpjANfrO84keTFgQAg==","signatures":[{"sig":"MEUCIQCM29vWqTfdu/C6UKCbWZCXj52+x9eTruooBvGSgszgZgIgXhcLiOL11usPlSL+vnAFk2godqZg1/b5PfTDRwOat5Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11853503},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"248c851dc36f4d74d069c6ed689c0f9cbe0a66f9","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.9.1","@mcp-abap-adt/interfaces":"^7.2.0","@mcp-abap-adt/adt-clients":"^5.8.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_7.1.0_1781852642004_0.306045883360311","host":"s3://npm-registry-packages-npm-production"}},"7.1.1":{"name":"@mcp-abap-adt/core","version":"7.1.1","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@7.1.1","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js","mcp-abap-adt-v2":"bin/mcp-abap-adt-v2.js"},"dist":{"shasum":"e36e3749fb2277dddc08f0ff68de86030a76b782","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-7.1.1.tgz","fileCount":3145,"integrity":"sha512-S24M1YIklOzz/9X9DagUo0G2wNs1XqihDLjEpHlnYrW6O5im2/7d+xwP55zjsEEEF91U8ZGV5hlWIF20kmdKuA==","signatures":[{"sig":"MEYCIQDlu+/l2bnXUcfVVDG2BCHYj4z4NnTXG/oUUo2vxj+S4AIhALH2wY51wL98iXIB5QrZ8DVkUEyl52nyye437Qw9M45Q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11855481},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"864e769efc2ae10b1f73200d588adad4ef0fd492","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.9.1","@mcp-abap-adt/interfaces":"^7.2.0","@mcp-abap-adt/adt-clients":"^5.8.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_7.1.1_1781856987074_0.48304045746272717","host":"s3://npm-registry-packages-npm-production"}},"7.1.3":{"name":"@mcp-abap-adt/core","version":"7.1.3","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@7.1.3","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js"},"dist":{"shasum":"82710a2af0833776f9c24de5feefb7dea53d0b8c","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-7.1.3.tgz","fileCount":3145,"integrity":"sha512-8QcoOsXAyQLnxQyhX/jUQJLGMVpmGeBh51coZ4pHOA5GHW2t7JU0/Qu9x+6E/jrtqaXE1nHTxewOZMCRd0VZnA==","signatures":[{"sig":"MEUCIQDNetww5WAmeZZf5MTy2lBn07NlLlcVj+8ey9Mtn9hGDQIgA8vvs8hgiRk8skjAB+Nwyip/Z+nKYfTZHSbYMWLeJG4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11877468},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"02afe1a892bb6fe6748605bc80f61bd36d8e8621","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","polygon:backup":"adt-backup backup --package ZMCP_SHR_PKG --env-path trial.env --output tests/fixtures/polygon.backup.yaml","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.9.1","@mcp-abap-adt/interfaces":"^7.2.0","@mcp-abap-adt/adt-clients":"^5.8.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_7.1.3_1781982241738_0.005961506152799112","host":"s3://npm-registry-packages-npm-production"}},"7.2.0":{"name":"@mcp-abap-adt/core","version":"7.2.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@7.2.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js"},"dist":{"shasum":"b9b4b026ba53ca070e24fa8da5ad5fda835c2541","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-7.2.0.tgz","fileCount":3149,"integrity":"sha512-4dNOEbQrbFNCL+/px2ShRo8lwujw5NeatfIVtu/BzrfgnkWH6ZQlWfzsAykzrw1EOT3UEeiqI3gW9fUy80uKIA==","signatures":[{"sig":"MEUCIB1NOWu+2usuKT35L/Ieco/zfCii8ZNgIuVcKiBADM0OAiEA+ltAOGZe22dgMa0LSZhP6G/AWVd1kuOMmlqo4t5csgA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11899428},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"d1688c940813552d0868f4ad890cf05d733b55df","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","polygon:backup":"adt-backup backup --package ZMCP_SHR_PKG --env-path trial.env --output tests/fixtures/polygon.backup.yaml","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.9.1","@mcp-abap-adt/interfaces":"^7.2.0","@mcp-abap-adt/adt-clients":"^5.8.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_7.2.0_1782136183354_0.9662621825491684","host":"s3://npm-registry-packages-npm-production"}},"7.2.1":{"name":"@mcp-abap-adt/core","version":"7.2.1","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@7.2.1","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js"},"dist":{"shasum":"c3aeb0a555bdebdf5f3d2ad5d96f53c9585eb2d2","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-7.2.1.tgz","fileCount":3149,"integrity":"sha512-qiAz37II7aGfV7Qf4z0jiQyBIlhiRAD+faLgDv/1/HvFrs9tg/ILBwOFJbhDMPSIMRjv9sfOyTcjvPG2H1oXWA==","signatures":[{"sig":"MEUCIA4yTa98z9lwBbqjHuVHsULoce0ihbO4E/pydmXp8ZChAiEAn45Fy0mQmsW0eu6Pca5dzUZnhqq1j6jjqvB+6gAakyU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11900775},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"f57f16591f7d0be752f885745305aee72f1fa4d4","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","polygon:backup":"adt-backup backup --package ZMCP_SHR_PKG --env-path trial.env --output tests/fixtures/polygon.backup.yaml","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.9.1","@mcp-abap-adt/interfaces":"^7.2.0","@mcp-abap-adt/adt-clients":"^5.8.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_7.2.1_1782166833404_0.8025538295096126","host":"s3://npm-registry-packages-npm-production"}},"8.0.0":{"name":"@mcp-abap-adt/core","version":"8.0.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@8.0.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js"},"dist":{"shasum":"6d4f6133e3c6b9d7eb030e68bb2a70a785db312e","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-8.0.0.tgz","fileCount":3205,"integrity":"sha512-l4rlIvitK4pNeoRDMjqhcCeSa4L7wO8g86INjZ+cJEn9NpoQ51vmh2Ruiiz8g+Ytmy71uIwaoV5eDGxPD13xjg==","signatures":[{"sig":"MEUCIA3df1GGvM0DSfsAyhMjCM+LrWyXTlf60tOeuApeT0uJAiEA+RqpsgZgW+rf5+sSAKoH7A2FNuMnRlMP/19+ojqarq8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12061131},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"d73d6e51ef13bce2f453e64e475e25565a541813","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","polygon:backup":"adt-backup backup --package ZMCP_SHR_PKG --env-path trial.env --output tests/fixtures/polygon.backup.yaml","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.9.1","@mcp-abap-adt/interfaces":"^7.2.0","@mcp-abap-adt/adt-clients":"^6.0.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_8.0.0_1782438249227_0.8773607797678746","host":"s3://npm-registry-packages-npm-production"}},"8.1.0":{"name":"@mcp-abap-adt/core","version":"8.1.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@8.1.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js"},"dist":{"shasum":"505e50e732cf708c863f4a9f8f1dcfcacd9a5f1f","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-8.1.0.tgz","fileCount":3209,"integrity":"sha512-8WC/9SM4O4h8NdfSwiopi1EIhufmzoyC6ave8WaLjVJEL4g3R7MS0MFBMz9xK95YbmsxJl2EEkRjinkyxLsPsQ==","signatures":[{"sig":"MEYCIQCrGdPCEy77Y2AETbknU1pxWbZC9l8PBsQBQYJ6Y2raZgIhAN8UQHMeH3MHeDaNuhDnK7ZOKsR3w6kjAY6DD5jMLTJj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12131394},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"0d13f1ae0bc71735a523c89b3eec26cc31c16f3d","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","polygon:backup":"adt-backup backup --package ZMCP_SHR_PKG --env-path trial.env --output tests/fixtures/polygon.backup.yaml","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.9.1","@mcp-abap-adt/interfaces":"^7.2.0","@mcp-abap-adt/adt-clients":"^6.1.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_8.1.0_1782546257562_0.4419704903135482","host":"s3://npm-registry-packages-npm-production"}},"8.1.1":{"name":"@mcp-abap-adt/core","version":"8.1.1","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@8.1.1","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js"},"dist":{"shasum":"510a1eb22484ce689a92131c6119f9b757d5e616","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-8.1.1.tgz","fileCount":3209,"integrity":"sha512-nz2lFANA6HsIWabrxkwmW/a2gDSBX9o+1ud7Ml4nKCd57gZsap9ue0NXwkMLHH+EmYjnGGAqFs3l6xr4x9NaSw==","signatures":[{"sig":"MEYCIQDqQb6sjno92idr5O3X4kuhH9SUbT+vhVV/8ddXhMHzrwIhAKkyR1ptMoAgDKjUUBNlvMBHDn71OZPdUvAtsTiKm5Pf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12134643},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"a667a97bfc5858c5fe28258b7709b54e7fcf0f33","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","polygon:backup":"adt-backup backup --package ZMCP_SHR_PKG --env-path trial.env --output tests/fixtures/polygon.backup.yaml","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.9.1","@mcp-abap-adt/interfaces":"^7.2.0","@mcp-abap-adt/adt-clients":"^6.1.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_8.1.1_1782591331599_0.028490453891858447","host":"s3://npm-registry-packages-npm-production"}},"8.2.0":{"name":"@mcp-abap-adt/core","version":"8.2.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@8.2.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js"},"dist":{"shasum":"cef06b7c86a374c4f93302965324b74ec10ba53d","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-8.2.0.tgz","fileCount":3221,"integrity":"sha512-cdWH4w6K2uOAMu1mA7bkZ2NKSA1bPSbn6sAssiCy5E98U1tKXQgW/uJ3lQXGapdWnzNOOuetkufVqCe2p12nDQ==","signatures":[{"sig":"MEQCIB8I6BaHb8m5w0tS7meBUbel2fYvxYzJ63aoP2kl1Z2JAiB16O/yTiv7RKrEBrK6eThfChVs6prGpl32EP7PfvwpoA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12171777},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"5619166774035bd3e6565d47acd6a7f4fec573c0","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","polygon:backup":"adt-backup backup --package ZMCP_SHR_PKG --env-path trial.env --output tests/fixtures/polygon.backup.yaml","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.9.1","@mcp-abap-adt/interfaces":"^9.0.0","@mcp-abap-adt/adt-clients":"^7.0.1","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_8.2.0_1782666059091_0.13898345254025113","host":"s3://npm-registry-packages-npm-production"}},"8.3.0":{"name":"@mcp-abap-adt/core","version":"8.3.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@8.3.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js"},"dist":{"shasum":"d43e5bb9de50ceb2ed79cd1b9028e21cc56dc463","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-8.3.0.tgz","fileCount":3225,"integrity":"sha512-9NCUruM4VrVqv0C1SNFcbUQrRbmG9DMCww4boHwJMrUv1e4PwMpnTobE4n9RNr9zgnEEzTC6T2vSPNWAFvwIkA==","signatures":[{"sig":"MEUCICdtjZKuCFqtk6UxCVx09RNwdmhh8zcplRakGthYXZ3IAiEA2FrgP5Rh4k2X66z45DpQvoh9/fgPFmManVPtL4puWaY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12230175},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"716daa4cfd1a19c70a0d02321a605ef306994679","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","polygon:backup":"adt-backup backup --package ZMCP_SHR_PKG --env-path trial.env --output tests/fixtures/polygon.backup.yaml","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.9.1","@mcp-abap-adt/interfaces":"^9.0.0","@mcp-abap-adt/adt-clients":"^7.1.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_8.3.0_1782681007329_0.04558730882071682","host":"s3://npm-registry-packages-npm-production"}},"8.4.0":{"name":"@mcp-abap-adt/core","version":"8.4.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@8.4.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js"},"dist":{"shasum":"55fee8842520ae472d345622964d47c284f61ac2","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-8.4.0.tgz","fileCount":3229,"integrity":"sha512-pB0X+VExz921Woor7VOaCiDLc13Zor9NUh/AcpfMXPHAJIiezQpJdm8KBnl8Zbjle5vbkfEOiRTpNhZcnjj+9g==","signatures":[{"sig":"MEUCIQCyv48Se/W+7IYx77izHUUBs8BF6uygyXk07WHEZvIiJAIgUy41caExb3x1TJpmY+B4ZbPozHq/mrYPXdiTKHm2hzg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12273628},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"786ac3393879d0a5c20780f001d7f7defcd0cb64","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","polygon:backup":"adt-backup backup --package ZMCP_SHR_PKG --env-path trial.env --output tests/fixtures/polygon.backup.yaml","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","diff":"^5.2.2","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.9.1","@mcp-abap-adt/interfaces":"^9.0.0","@mcp-abap-adt/adt-clients":"^7.1.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/diff":"^5.2.3","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_8.4.0_1782725565570_0.7156882984295927","host":"s3://npm-registry-packages-npm-production"}},"8.5.0":{"name":"@mcp-abap-adt/core","version":"8.5.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@8.5.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js"},"dist":{"shasum":"10437a8bd1ff7488205cafb7f661233691f7d99f","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-8.5.0.tgz","fileCount":3229,"integrity":"sha512-zqzz3rS0NXH/Eqp4Pv9X17qwccigE48d1pFiYCaP6DM6B7SvlJG1P/CzpOlTMmWYrLsWRRwk/ISUPIhUWJpAtA==","signatures":[{"sig":"MEUCIQCYYGzDQIR4YcV/Sf8K+4EbdYZTCHntGxj0qsCVgcH+qwIgb4uPvQkXCwHyLnoYmRYxr1//nhq0AaBuFg14jIdu404=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12277665},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"fa5c4f5c29fa599e9a39990c5799dcfc3f7548ba","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","polygon:backup":"adt-backup backup --package ZMCP_SHR_PKG --env-path trial.env --output tests/fixtures/polygon.backup.yaml","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","diff":"^5.2.2","pino":"^10.1.0","axios":"^1.14.0","xml-js":"^1.6.11","js-yaml":"^4.1.1","pino-pretty":"^13.1.3","fast-xml-parser":"^5.5.10","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.9.1","@mcp-abap-adt/interfaces":"^9.1.0","@mcp-abap-adt/adt-clients":"^7.2.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/diff":"^5.2.3","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_8.5.0_1782832525997_0.49844342094027794","host":"s3://npm-registry-packages-npm-production"}},"8.5.1":{"name":"@mcp-abap-adt/core","version":"8.5.1","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@8.5.1","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js"},"dist":{"shasum":"3b43efeb9e24239ecd5d19d51397938d04e94ef5","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-8.5.1.tgz","fileCount":3229,"integrity":"sha512-P/T2WqS62sCQJor3D7yDD4amCSHp0cDET9VG8SQtv8p+tm/byvgYrvX8B5DC+g4EW2XutX/FxdznGZNvFlCzJg==","signatures":[{"sig":"MEQCIFZQuGm+1LS00cHL6qYzA0+t+wfmrMb2gDX6FQ2MxByIAiB6Q1dj7CWUaVVmvnSxruMxMxZXQxNU4qtEw9y7P4rplw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12279305},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"4e54775874006e31c27cc51c7f66612dd0316190","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","polygon:backup":"adt-backup backup --package ZMCP_SHR_PKG --env-path trial.env --output tests/fixtures/polygon.backup.yaml","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"overrides":{"qs":"^6.15.3","ws":"^8.21.0","hono":"^4.12.27","fast-uri":"^3.1.3","form-data":"^4.0.6","ip-address":"^10.2.0","@hono/node-server":"^1.19.14"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","diff":"^5.2.2","pino":"^10.1.0","axios":"^1.18.1","xml-js":"^1.6.11","js-yaml":"^4.3.0","pino-pretty":"^13.1.3","fast-xml-parser":"^5.9.3","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.9.1","@mcp-abap-adt/interfaces":"^9.1.0","@mcp-abap-adt/adt-clients":"^7.2.1","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","yaml":"^2.8.1","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/diff":"^5.2.3","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_8.5.1_1782912173783_0.36003685850362954","host":"s3://npm-registry-packages-npm-production"}},"8.6.0":{"name":"@mcp-abap-adt/core","version":"8.6.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@8.6.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js"},"dist":{"shasum":"c091513dcf453530c5cb891edcc40c31b6a604ff","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-8.6.0.tgz","fileCount":3269,"integrity":"sha512-K1zI6+fej8U+k+k9V73f1/SfIBFyOn4fthAePc4KYJaSnkx37/WwRtifzqWDRA81hzB/9WoFRUMPfMkam33qDg==","signatures":[{"sig":"MEQCICorKqRhFrAXq/KmGKW7MZtTnydh8UqpDK+nmLZmIk1rAiA58tT5i9QnYImIehwQhtXuaPDeln/pIVwDjvN8PYp59g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12374999},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"6a7482964a8edd9493ef376fea264ac7605fc26a","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","polygon:backup":"adt-backup backup --package ZMCP_SHR_PKG --env-path trial.env --output tests/fixtures/polygon.backup.yaml","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","diff":"^5.2.2","pino":"^10.1.0","axios":"^1.18.1","xml-js":"^1.6.11","js-yaml":"^4.3.0","pino-pretty":"^13.1.3","fast-xml-parser":"^5.9.3","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.9.1","@mcp-abap-adt/interfaces":"^9.2.0","@mcp-abap-adt/adt-clients":"^7.3.1","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/diff":"^5.2.3","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_8.6.0_1783241753125_0.062422697059032695","host":"s3://npm-registry-packages-npm-production"}},"8.6.1":{"name":"@mcp-abap-adt/core","version":"8.6.1","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@8.6.1","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js"},"dist":{"shasum":"cf8fa44c6d031b5f31e8d704fbbded2b7c4cbc51","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-8.6.1.tgz","fileCount":3269,"integrity":"sha512-j4RY4P/9ZAl1JY+kcEZl5QhB4qIxxvF6Vcbvgf8wx2PTHrMfrmJi+qEczyxy+oYfJJR7wJHG0xLguHBgz6qEwA==","signatures":[{"sig":"MEQCIHL2PaXqOGLBCxqD9r4HUYTZGpsUkqPaPabX7VkeqWwLAiB9dPMOfQQ4Rfce/3o+KAVMPJS6TVvwV3AhR2qqVQy3jw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12375903},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"6c88e6b068d663a58a03bbde01f99ec7f9365f0f","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","polygon:backup":"adt-backup backup --package ZMCP_SHR_PKG --env-path trial.env --output tests/fixtures/polygon.backup.yaml","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","diff":"^5.2.2","pino":"^10.1.0","axios":"^1.18.1","xml-js":"^1.6.11","js-yaml":"^4.3.0","pino-pretty":"^13.1.3","fast-xml-parser":"^5.9.3","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.9.1","@mcp-abap-adt/interfaces":"^9.2.0","@mcp-abap-adt/adt-clients":"^7.3.1","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/diff":"^5.2.3","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_8.6.1_1783261527631_0.9549689849652441","host":"s3://npm-registry-packages-npm-production"}},"8.7.0":{"name":"@mcp-abap-adt/core","version":"8.7.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@8.7.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js"},"dist":{"shasum":"5b003d3cffc1caa7806a4c48f9c71eb913dd5ac9","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-8.7.0.tgz","fileCount":3273,"integrity":"sha512-CAV4ayp2DGUGgV7LF+l+rF+mzlBBhnQeNshVJpE+T5+GJVrkBDvrsYq3NLxLx1gQQ8ThnXdsyYSHhqhu4vDc8Q==","signatures":[{"sig":"MEYCIQDQaMqZWk4Avlaub/uYRfhFOHgglJgT3pf60hhptqy11wIhAM4bEvZMN0ud8uKG1Z8/EAKoHLFIu4FUWMzzxQBPFefs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12383480},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"beb2b476a6a7664a81cf6f0c50470bfc18dc7c10","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","polygon:backup":"adt-backup backup --package ZMCP_SHR_PKG --env-path trial.env --output tests/fixtures/polygon.backup.yaml","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","diff":"^5.2.2","pino":"^10.1.0","axios":"^1.18.1","xml-js":"^1.6.11","js-yaml":"^4.3.0","pino-pretty":"^13.1.3","fast-xml-parser":"^5.9.3","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.10.0","@mcp-abap-adt/interfaces":"^9.2.0","@mcp-abap-adt/adt-clients":"^7.3.1","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/diff":"^5.2.3","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_8.7.0_1784160744522_0.10885464253604815","host":"s3://npm-registry-packages-npm-production"}},"8.8.0":{"name":"@mcp-abap-adt/core","version":"8.8.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@8.8.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js"},"dist":{"shasum":"96f3952468169e5f7d3915a00c26cbba9dba9dbc","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-8.8.0.tgz","fileCount":3273,"integrity":"sha512-a8728ROffwo8LcYPhPQ1YLX3jQd2vC8Urf8XIADWKQeSAMtyk7fh9UdsP3pA1cSWF5PQYzcyKnk0T8D9/Zt0Zg==","signatures":[{"sig":"MEYCIQC+90ARGQAxaXxsB2H5Oxctsn/xV8Pwqk5jJbC2v1RIzQIhAJQ0b6aS4Id/LzMCM3HLwG/k03QVk3+At6ydbZRij/Ec","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12385533},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"f2d74df85ce8ffee0c02ffb104aedcc5ac418fe5","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","polygon:backup":"adt-backup backup --package ZMCP_SHR_PKG --env-path trial.env --output tests/fixtures/polygon.backup.yaml","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.12.1","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","diff":"^5.2.2","pino":"^10.1.0","axios":"^1.18.1","xml-js":"^1.6.11","js-yaml":"^4.3.0","pino-pretty":"^13.1.3","fast-xml-parser":"^5.9.3","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.10.0","@mcp-abap-adt/interfaces":"^9.2.0","@mcp-abap-adt/adt-clients":"^7.4.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/diff":"^5.2.3","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_8.8.0_1784166955451_0.2984579551588902","host":"s3://npm-registry-packages-npm-production"}},"8.8.1":{"name":"@mcp-abap-adt/core","version":"8.8.1","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@8.8.1","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js"},"dist":{"shasum":"7180a599733896b13f015632a6e375e0aa2cca5e","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-8.8.1.tgz","fileCount":3273,"integrity":"sha512-bXH7xHZ1Ixiui5Am1OhW3XdJjg/+UPxwfALE/7wRHUUmCEEOveUo1I/EJSn/iiIAgZZj5zioBItYenw6RxrEhQ==","signatures":[{"sig":"MEUCIAHDRIkYkSECIuiB2tBhSO0YsEEYOAEgobo+k7dVMYPBAiEA4tLiI9veGUEfXghe8glsf5km2kjBGRD9v6HTGKhz7Cc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12386183},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"032c9e7d17842bcf6c2da6e01e5dde36ff6b8dd0","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","polygon:backup":"adt-backup backup --package ZMCP_SHR_PKG --env-path trial.env --output tests/fixtures/polygon.backup.yaml","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.18.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","diff":"^5.2.2","pino":"^10.1.0","axios":"^1.18.1","xml-js":"^1.6.11","js-yaml":"^4.3.0","pino-pretty":"^13.1.3","fast-xml-parser":"^5.9.3","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.10.0","@mcp-abap-adt/interfaces":"^9.2.0","@mcp-abap-adt/adt-clients":"^7.4.2","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/diff":"^5.2.3","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_8.8.1_1784220798242_0.791380027669536","host":"s3://npm-registry-packages-npm-production"}},"8.10.0":{"name":"@mcp-abap-adt/core","version":"8.10.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@8.10.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js"},"dist":{"shasum":"e1e74bc0863d37347ef2dad9a3f0695ea587f5d7","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-8.10.0.tgz","fileCount":3273,"integrity":"sha512-nknAzGaYUfSTfdobozo9Yah80c1AJUXAtWK7jv566jDo91oF9OloHhfk/BQpYOaPxo26alaolhNGaJ+CU+zlaA==","signatures":[{"sig":"MEYCIQCs+9yJjxpPWIvzxcVOqGwWKbwkoXLkmOPV6l/HsnKZeQIhALf28DMckd0KUEwV4c7BfKbB/WjwxvFAVH2+0ro/jAZ4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12388525},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"313c363f358ffcee0003de2a5de3fdc707ebf5b2","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","polygon:backup":"adt-backup backup --package ZMCP_SHR_PKG --env-path trial.env --output tests/fixtures/polygon.backup.yaml","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.18.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","diff":"^5.2.2","pino":"^10.1.0","axios":"^1.18.1","xml-js":"^1.6.11","js-yaml":"^4.3.0","pino-pretty":"^13.1.3","fast-xml-parser":"^5.9.3","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.10.0","@mcp-abap-adt/interfaces":"^11.2.0","@mcp-abap-adt/adt-clients":"^7.6.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/diff":"^5.2.3","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_8.10.0_1784646214939_0.10280117409009559","host":"s3://npm-registry-packages-npm-production"}},"8.11.0":{"name":"@mcp-abap-adt/core","version":"8.11.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@8.11.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js"},"dist":{"shasum":"af4af974c72fcac14279b1cef5a4d5facf0f7210","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-8.11.0.tgz","fileCount":3273,"integrity":"sha512-sRaA2MLGGMEgvt9vNwOaAoNK5E37pYoxp5s3/bWj5bDZmeR11/7cJwZb7wAIlxNzxgM2UqMiBcI6BRf8jK087Q==","signatures":[{"sig":"MEUCIQDVRhMt/MBJxmi9iUSBsTjBE2HNxfJ+cdG8mTzrDqMgPAIgXimRWTeZVhCnOLs3Vz93mSAi1N3m6uI3uF0hpmZQNvE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12379151},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"83fd4c8ab247c68e9ad390eccd11285064a655c8","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","polygon:backup":"adt-backup backup --package ZMCP_SHR_PKG --env-path trial.env --output tests/fixtures/polygon.backup.yaml","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.18.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","diff":"^5.2.2","pino":"^10.1.0","axios":"^1.18.1","xml-js":"^1.6.11","js-yaml":"^4.3.0","pino-pretty":"^13.1.3","fast-xml-parser":"^5.9.3","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.10.0","@mcp-abap-adt/interfaces":"^11.2.0","@mcp-abap-adt/adt-clients":"^7.6.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/diff":"^5.2.3","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_8.11.0_1784708516104_0.79323478985585","host":"s3://npm-registry-packages-npm-production"}},"8.12.1":{"name":"@mcp-abap-adt/core","version":"8.12.1","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@8.12.1","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js"},"dist":{"shasum":"23b49602be70326c5051d2a98dfcf12991caef46","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-8.12.1.tgz","fileCount":3273,"integrity":"sha512-SMPEbQmO2xlJkzVmufjEixKV5dI+TPqDk87nH0yoYx6/3LiooMJPzv84G9cI1L4I2KzTa0dko58dZR6DiqRzEQ==","signatures":[{"sig":"MEUCIQDv8Y79Hii3hmPXfemNMT6sUgzfH2nljCjMUcZFTlMZygIgZeNr/h+7nsGusdpigZFmxWwQrVu0mb+9+4pppCEdgPo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12363623},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"f85bffcb7dc27c09eda6d31d21bfa78fdd2a25e1","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","polygon:backup":"adt-backup backup --package ZMCP_SHR_PKG --env-path trial.env --output tests/fixtures/polygon.backup.yaml","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"overrides":{"@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.18.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","diff":"^5.2.2","pino":"^10.1.0","axios":"^1.18.1","xml-js":"^1.6.11","js-yaml":"^4.3.0","pino-pretty":"^13.1.3","fast-xml-parser":"^5.9.3","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.10.0","@mcp-abap-adt/interfaces":"^11.3.0","@mcp-abap-adt/adt-clients":"^8.0.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/diff":"^5.2.3","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_8.12.1_1784741723455_0.37915708846744534","host":"s3://npm-registry-packages-npm-production"}},"8.13.0":{"name":"@mcp-abap-adt/core","version":"8.13.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"MIT","_id":"@mcp-abap-adt/core@8.13.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js"},"dist":{"shasum":"3446b4180ff022e0e6868d305775eba802fa8353","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-8.13.0.tgz","fileCount":3277,"integrity":"sha512-piwjGaUhpRMUD79A7h061CDlTT0hbQkk0NL6uB59lK9xzFKkjrxx8+WLi73ECPn7o+8OISkbAVLoXxASIrSfTg==","signatures":[{"sig":"MEUCIDXyuAnW+4m+6Tktpx5qHvcFXcKc0PhIRloQpoSY9xoMAiEApoO0MhtHK/1fAfTqcaUHexTE7IwKm0JopRugWakHTzY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12359044},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"transform":{"^.+\\.ts$":["ts-jest",{"tsconfig":"tsconfig.test.json"}]},"maxWorkers":1,"globalSetup":"<rootDir>/src/__tests__/integration/globalSetup.ts","testTimeout":600000,"testEnvironment":"node","moduleNameMapper":{"^(\\.{1,2}/.*)\\.js$":"$1"},"collectCoverageFrom":["src/**/*.ts","!src/**/*.test.ts","!src/**/__tests__/**","!src/**/index.ts"],"moduleFileExtensions":["ts","js","json"],"testPathIgnorePatterns":["__tests__/admin/","__tests__/integration/"]},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./utils":{"types":"./dist/lib/utils.d.ts","import":"./dist/lib/utils.js","require":"./dist/lib/utils.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.js"},"./handlers":{"types":"./dist/lib/handlers/index.d.ts","import":"./dist/lib/handlers/index.js","require":"./dist/lib/handlers/index.js"}},"gitHead":"2ff97f7c347df438bf65e4cabfc8668672718896","mcpName":"io.github.fr0ster/mcp-abap-adt","private":false,"scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","auth":"npx sap-abap-auth auth","lint":"npx biome check --write src","test":"jest --passWithNoTests","build":"npx biome check --write --diagnostic-level=error src && npx tsc -p tsconfig.json","clean":"make clean","start":"node ./bin/mcp-abap-adt.js","chrono":"./tools/version-stats.sh","format":"npx biome format --write src","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","package":"npm pack","prepare":"husky","dev:http":"npm run build && node ./tools/dev-http-v2.js","test:low":"jest --testPathPatterns='integration.*Low' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","test:high":"jest --testPathPatterns='integration.*High' --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","test:init":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';if(fs.existsSync(s)){console.log(s+' already exists, skipping (use test:reinit to overwrite)')}else{fs.copyFileSync(t,s);console.log('Created '+s+' — edit lines marked CHANGE')}\"","build:fast":"npx tsc -p tsconfig.json","docs:tools":"node ./tools/generate-tools-docs.js","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","test:check":"npx tsc --noEmit -p tsconfig.test.json","check-todos":"node tools/check-todos.js","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","test:reinit":"node -e \"const fs=require('fs'),s='tests/test-config.yaml',t=s+'.template';fs.copyFileSync(t,s);console.log('Recreated '+s+' from template')\"","docker:build":"cd docker && docker-compose build","shared:check":"jest --testPathPatterns='admin/shared-deps/check' --testPathIgnorePatterns='[]' --passWithNoTests","shared:setup":"jest --testPathPatterns='admin/shared-deps/setup' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","package:build":"npm run build && npm pack","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","polygon:backup":"adt-backup backup --package ZMCP_SHR_PKG --env-path trial.env --output tests/fixtures/polygon.backup.yaml","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","shared:teardown":"jest --testPathPatterns='admin/shared-deps/teardown' --testPathIgnorePatterns='[]' --runInBand --passWithNoTests","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","test:integration":"jest --testPathPatterns=integration --testPathIgnorePatterns='__tests__/admin/' --runInBand --passWithNoTests --forceExit","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"overrides":{"@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.18.0","description":"SAP ABAP ADT MCP server with full CRUD for on-prem and ABAP Cloud (BTP), plus JWT/XSUAA and service-key destination auth","directories":{},"lint-staged":{"src/**/*.{ts,js}":["biome check --write"]},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","diff":"^5.2.2","pino":"^10.1.0","axios":"^1.18.1","xml-js":"^1.6.11","js-yaml":"^4.3.0","pino-pretty":"^13.1.3","fast-xml-parser":"^5.9.3","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/connection":"^1.10.0","@mcp-abap-adt/interfaces":"^11.3.0","@mcp-abap-adt/adt-clients":"^8.0.0","@mcp-abap-adt/auth-broker":"^1.0.5","@mcp-abap-adt/auth-stores":"^1.0.4","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/auth-providers":"^1.0.5","@mcp-abap-adt/header-validator":"^0.1.8"},"typesVersions":{"*":{"utils":["dist/lib/utils.d.ts"],"server":["dist/server/index.d.ts"],"handlers":["dist/lib/handlers/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","cors":"^2.8.6","jest":"^30.3.0","open":"^11.0.0","pino":"^10.3.0","husky":"^9.1.7","dotenv":"^17.4.0","express":"^5.1.0","ts-jest":"^29.2.0","commander":"^14.0.3","jest-util":"^30.3.0","typescript":"^6.0.2","@types/diff":"^5.2.3","@types/jest":"^30.0.0","@types/node":"^25.5.2","lint-staged":"^16.4.0","pino-pretty":"^13.1.3","serve-handler":"^6.1.7","@biomejs/biome":"^2.4.10","@types/js-yaml":"^4.0.9","express-rate-limit":"^8.3.2","@modelcontextprotocol/inspector":"^0.21.1"},"optionalDependencies":{"@mcp-abap-adt/sap-rfc-lite":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/core_8.13.0_1784916963590_0.6172550211880945","host":"s3://npm-registry-packages-npm-production"}},"10.0.1":{"name":"@mcp-abap-adt/core","version":"10.0.1","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"AGPL-3.0-only","_id":"@mcp-abap-adt/core@10.0.1","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js"},"dist":{"shasum":"1953ba76664dc245ac55f1a9a66202d923e3c312","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-10.0.1.tgz","fileCount":36,"integrity":"sha512-AIKjkJfoYUG0pl+SGPMz1tD32SVWt8KWbPhQ8PvLfHu6MDCPXrDb76SyFW9+3NIT556QEHDqy9TyTHDoUYEBDw==","signatures":[{"sig":"MEQCIAmoUDzZ8sj0qLcYd6Qna//BMDLxAptMM4bCWfxBvc0JAiAC0ezakalYSZwT95rHGCewCvAfwwgaDt4ioO3sHzJ9rQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCt/XYTGmdUe5DZTH9M/N5+iSAcVl/klU196++ZOPU4mQIhAMLiwJo7VbJOcFL/yFmEMl3BONhqLXA3CrDKuweSfuFF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":141381},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"testEnvironment":"node"},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./launcher":{"types":"./dist/launcher.d.ts","import":"./dist/launcher.js","require":"./dist/launcher.js"}},"gitHead":"5f68238901aeabe0f229ab116fad28b3e98dbbb1","scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","test":"jest --passWithNoTests","build":"npx tsc -p tsconfig.json","start":"node ./bin/mcp-abap-adt.js","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","dev:http":"npm run build && node ./tools/dev-http-v2.js","prebuild":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.19.0","description":"Standalone MCP server for SAP ABAP ADT: stdio, SSE and streamable HTTP transports.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"dotenv":"^17.4.0","express":"^5.1.0","@mcp-abap-adt/lib":"^10.0.0","@mcp-abap-adt/logger":"^0.1.4","@mcp-abap-adt/interfaces":"^13.1.0","@mcp-abap-adt/auth-broker":"^1.0.8","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"launcher":["dist/launcher.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"jest":"*","ts-jest":"*","typescript":"*","@types/jest":"*","@types/node":"*","@types/express":"*"},"_npmOperationalInternal":{"tmp":"tmp/core_10.0.1_1789113975638_0.7897715276001791","host":"s3://npm-registry-packages-npm-production"}},"13.0.0":{"name":"@mcp-abap-adt/core","version":"13.0.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"AGPL-3.0-only","_id":"@mcp-abap-adt/core@13.0.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js"},"dist":{"shasum":"f3c163a291d95059639871aa979e9adabeb5bae5","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-13.0.0.tgz","fileCount":36,"integrity":"sha512-7QmWHfEzYzUnMV+LNoJFCYORC6gG6OMRLglKtTY8CDm0Se0BNh322KVsaSHUFeLyBnQzkjkpQH7xhwfPc/bn1g==","signatures":[{"sig":"MEQCIHTUp9VAWzIqL97IwlXPK9utLFFahKHuUQI9RaBmP0VNAiBaTVnzvc40sLe/nCaPGJEzIhO0HI+opJj4okPWjY2suw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEh+Zzb6xXIfNVamdyi/sJMbUg4K88QjWFluMr5tw2PLAiEA2/u/lqeWvMBiZNg/i9jfc+4PUeAAsP8wOz5HISht9mg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":141392},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"testEnvironment":"node"},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./launcher":{"types":"./dist/launcher.d.ts","import":"./dist/launcher.js","require":"./dist/launcher.js"}},"gitHead":"dd9b1f7fe6b468b8c3e82cd55d01f60f387028ea","scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","test":"jest --passWithNoTests","build":"npx tsc -p tsconfig.json","start":"node ./bin/mcp-abap-adt.js","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","dev:http":"npm run build && node ./tools/dev-http-v2.js","prebuild":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.19.0","description":"Standalone MCP server for SAP ABAP ADT: stdio, SSE and streamable HTTP transports.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"dotenv":"^18.0.3","express":"^5.1.0","@mcp-abap-adt/lib":"^13.0.0","@mcp-abap-adt/logger":"^0.4.0","@mcp-abap-adt/auth-broker":"^3.0.0","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/interfaces-utils":"^1.1.0"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"launcher":["dist/launcher.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"jest":"*","ts-jest":"*","typescript":"*","@types/jest":"*","@types/node":"*","@types/express":"*"},"_npmOperationalInternal":{"tmp":"tmp/core_13.0.0_1790556124685_0.07017798424814403","host":"s3://npm-registry-packages-npm-production"}},"13.0.2":{"name":"@mcp-abap-adt/core","version":"13.0.2","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"AGPL-3.0-only","_id":"@mcp-abap-adt/core@13.0.2","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js"},"dist":{"shasum":"b654d4033f3a1854ed43d9bf067137e434be663f","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-13.0.2.tgz","fileCount":36,"integrity":"sha512-9omhIT5s+ePzNZ/YA5YXugkssu038kSZAlfZxb87uJrRJJXgfJFiOPwKCo65vt7nObDovLWuq51SApNSwp6syg==","signatures":[{"sig":"MEUCIAMyMWJrKZYVDY8XJZ6jq5Wh28cOdU3guZ8Aox4DJ4UGAiEAiW3CG6CHeWGoPtHAuKIIm1WfrIjirq5sBc5cETbZvvQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICU+b7I+sgKYksDGkZzQEeIcQjrunJzE1uuFDbzCGfb4AiBkhYhhZ/uo77qq9GC4voj39AqlcYQenLT8PZO3GIgGgA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142500},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"testEnvironment":"node"},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./launcher":{"types":"./dist/launcher.d.ts","import":"./dist/launcher.js","require":"./dist/launcher.js"}},"gitHead":"e9735ebf8b4d5b70cef31df7f1bbfc2efb78798b","scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","test":"jest --passWithNoTests","build":"npx tsc -p tsconfig.json","start":"node ./bin/mcp-abap-adt.js","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","dev:http":"npm run build && node ./tools/dev-http-v2.js","prebuild":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.19.0","description":"Standalone MCP server for SAP ABAP ADT: stdio, SSE and streamable HTTP transports.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"dotenv":"^18.0.3","express":"^5.1.0","@mcp-abap-adt/lib":"^13.0.2","@mcp-abap-adt/logger":"^0.4.0","@mcp-abap-adt/auth-broker":"^3.0.0","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/interfaces-utils":"^1.1.0"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"launcher":["dist/launcher.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"jest":"*","ts-jest":"*","typescript":"*","@types/jest":"*","@types/node":"*","@types/express":"*"},"_npmOperationalInternal":{"tmp":"tmp/core_13.0.2_1790578002398_0.4955196104719126","host":"s3://npm-registry-packages-npm-production"}},"13.1.0":{"name":"@mcp-abap-adt/core","version":"13.1.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"AGPL-3.0-only","_id":"@mcp-abap-adt/core@13.1.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js"},"dist":{"shasum":"e274909e491baf3dd19ef094726ce8947f05b11c","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-13.1.0.tgz","fileCount":36,"integrity":"sha512-uNa94uU83njofRffZgdHvIGCOSuwhwYKssO+zl3F2vOGA521SeOJjpkYVx4aM6VpIyPyz1os3jg2LMfHIQMngQ==","signatures":[{"sig":"MEQCIHW42ktPT3MOkQb2tLMC830BlXV+GflwjbAiSucDTnNfAiAgwwvUTC2d964vIVTpsbSG81NDs55va+//KYNT5wxnTw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAxmkKMA/FXSFBd0wzmS+UFSeAofQOHGkzvFJA5gtJvoAiAtfd2H6w6Kxx5/F3pZgXEcAWBvtU5NWZVUQltDr/i32w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142500},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"testEnvironment":"node"},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./launcher":{"types":"./dist/launcher.d.ts","import":"./dist/launcher.js","require":"./dist/launcher.js"}},"gitHead":"2288b747a43b539518628b56c1a030d99ec737ca","scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","test":"jest --passWithNoTests","build":"npx tsc -p tsconfig.json","start":"node ./bin/mcp-abap-adt.js","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","dev:http":"npm run build && node ./tools/dev-http-v2.js","prebuild":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.19.0","description":"Standalone MCP server for SAP ABAP ADT: stdio, SSE and streamable HTTP transports.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"dotenv":"^18.0.3","express":"^5.1.0","@mcp-abap-adt/lib":"^13.1.0","@mcp-abap-adt/logger":"^0.4.0","@mcp-abap-adt/auth-broker":"^3.0.0","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/interfaces-utils":"^1.1.0"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"launcher":["dist/launcher.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"jest":"*","ts-jest":"*","typescript":"*","@types/jest":"*","@types/node":"*","@types/express":"*"},"_npmOperationalInternal":{"tmp":"tmp/core_13.1.0_1790598693467_0.35579220231711317","host":"s3://npm-registry-packages-npm-production"}},"14.0.0":{"name":"@mcp-abap-adt/core","version":"14.0.0","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"AGPL-3.0-only","_id":"@mcp-abap-adt/core@14.0.0","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js"},"dist":{"shasum":"dfdc3617ce412525eb597027f4f28ce99dec33c4","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-14.0.0.tgz","fileCount":36,"integrity":"sha512-nKJAs//jD+c6D9H+EvHDgz2ah/ohF8ZBhbeA9ZmsKNxutRaidNo/WRbccJ263WL78pFq1G6WgBt6B30ZnTVikQ==","signatures":[{"sig":"MEUCICm2WRGIQeX71fPTNH6gHjMnQRu4yLSyc6d30S1eXuKrAiEA04KU2eJnuFhkBg/xfVJSTD68couObDW/9rgrLepBuXQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCzhCG5bpwrxZIS5iFVUxTSjhQPL3XvWUs7xsNaurEtXAIgSWe5SZUxd6RxHMphojtH0GTDJTRq5A6UKna/MxF9zB4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":145114},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"testEnvironment":"node"},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./launcher":{"types":"./dist/launcher.d.ts","import":"./dist/launcher.js","require":"./dist/launcher.js"}},"gitHead":"844dc7d0b2b843b9c66d4b53d1ecdf89903b6cfa","scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","test":"jest --passWithNoTests","build":"npx tsc -p tsconfig.json","start":"node ./bin/mcp-abap-adt.js","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","dev:http":"npm run build && node ./tools/dev-http-v2.js","prebuild":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.19.0","description":"Standalone MCP server for SAP ABAP ADT: stdio, SSE and streamable HTTP transports.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"dotenv":"^18.0.3","express":"^5.1.0","@mcp-abap-adt/lib":"^14.0.0","@mcp-abap-adt/logger":"^0.4.0","@mcp-abap-adt/auth-broker":"^3.0.0","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/interfaces-utils":"^1.1.0"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"launcher":["dist/launcher.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"jest":"*","ts-jest":"*","typescript":"*","@types/jest":"*","@types/node":"*","@types/express":"*"},"_npmOperationalInternal":{"tmp":"tmp/core_14.0.0_1790609283621_0.22640320379186063","host":"s3://npm-registry-packages-npm-production"}},"14.0.1":{"name":"@mcp-abap-adt/core","version":"14.0.1","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"AGPL-3.0-only","_id":"@mcp-abap-adt/core@14.0.1","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js"},"dist":{"shasum":"2182c1f75edf2091eb5feb7cd660e678934990c6","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-14.0.1.tgz","fileCount":36,"integrity":"sha512-kfZgmZDkiJ2ebwhINHpWLVJFp0cTFAd6K9BkmbBsi+Y2zSN8BE5vd68m/4NVMjJjVKwz8iLUOc4OkMtSUXIQow==","signatures":[{"sig":"MEUCIAzlyXZTH2ts3QfRDf6V2v2fUXFJZlElgkS8K6oJuw8kAiEA21DgcrZ6TMPL8n6RmY1bKpOuISDmaYjqy9fVQamX4SA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIG4p1iatS4Jlquyr+RWwSn90go6fqkQtei0OKKxZ+2apAiEAphJWEaavVLCuLdxOe977ZTteRwFbZzX+LhURSowbAIk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":145678},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"testEnvironment":"node"},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./launcher":{"types":"./dist/launcher.d.ts","import":"./dist/launcher.js","require":"./dist/launcher.js"}},"gitHead":"2e53695e7ac4c8208a9a2c9b2595dc0e3ba7c2a8","scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","test":"jest --passWithNoTests","build":"npx tsc -p tsconfig.json","start":"node ./bin/mcp-abap-adt.js","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","dev:http":"npm run build && node ./tools/dev-http-v2.js","prebuild":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.19.0","description":"Standalone MCP server for SAP ABAP ADT: stdio, SSE and streamable HTTP transports.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"dotenv":"^18.0.3","express":"^5.1.0","@mcp-abap-adt/lib":"^14.0.1","@mcp-abap-adt/logger":"^0.4.0","@mcp-abap-adt/auth-broker":"^3.0.0","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/interfaces-utils":"^1.1.0"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"launcher":["dist/launcher.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"jest":"*","ts-jest":"*","typescript":"*","@types/jest":"*","@types/node":"*","@types/express":"*"},"_npmOperationalInternal":{"tmp":"tmp/core_14.0.1_1790615675417_0.10184876286384181","host":"s3://npm-registry-packages-npm-production"}},"14.1.1":{"name":"@mcp-abap-adt/core","version":"14.1.1","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"AGPL-3.0-only","_id":"@mcp-abap-adt/core@14.1.1","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js"},"dist":{"shasum":"5a77dfe9eb7529827eba09061092abe908f79bc1","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-14.1.1.tgz","fileCount":36,"integrity":"sha512-GJkkuVolWVo2fnPiQQB6SGj/H/QOMVaIdPxf9yaZr/bAM6KiqOqsYJbfLTdZmAdnJxZWjJpZxr2JPuoBgWlRbQ==","signatures":[{"sig":"MEQCIHwbtpYjYUP7q0fzsg4u962sD0XuZFxhYi6cIGN6ANwkAiAIhDdc/nmTyYcH1eXv3VJaCII5F0zbErqP0P7lWhG0Tg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBrT3l8Tju5Oa4ZJZs5RUCVBFD1qpcWsM7Pec6JY4LY/AiAm44mOR9nY1a+MAFGdBEsGDRjLW4oHuioAkiptqINVnQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":145691},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"testEnvironment":"node"},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./launcher":{"types":"./dist/launcher.d.ts","import":"./dist/launcher.js","require":"./dist/launcher.js"}},"gitHead":"35821134c015a6b61b4a2485a69550db4d7f37cd","scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","test":"jest --passWithNoTests","build":"npx tsc -p tsconfig.json","start":"node ./bin/mcp-abap-adt.js","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","dev:http":"npm run build && node ./tools/dev-http-v2.js","prebuild":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.19.0","description":"Standalone MCP server for SAP ABAP ADT: stdio, SSE and streamable HTTP transports.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"dotenv":"^18.0.3","express":"^5.1.0","@mcp-abap-adt/lib":"^14.1.1","@mcp-abap-adt/logger":"^0.4.0","@mcp-abap-adt/auth-broker":"^3.0.0","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/interfaces-utils":"^1.1.0"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"launcher":["dist/launcher.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"jest":"*","ts-jest":"*","typescript":"*","@types/jest":"*","@types/node":"*","@types/express":"*"},"_npmOperationalInternal":{"tmp":"tmp/core_14.1.1_1790681548873_0.6044308948326897","host":"s3://npm-registry-packages-npm-production"}},"14.1.2":{"name":"@mcp-abap-adt/core","version":"14.1.2","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"AGPL-3.0-only","_id":"@mcp-abap-adt/core@14.1.2","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js"},"dist":{"shasum":"dc4967d17bce1b2a1014da0cdd41add7414c8dd1","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-14.1.2.tgz","fileCount":36,"integrity":"sha512-vCPmoNuGqr7Plzhd02EYuDXdY2p7s95Zd9a6fYlDjtgbALnU6E2rocae59UVgRGUbB5eaJr4tWZzv5XJLEnp1w==","signatures":[{"sig":"MEUCIBBMFYiYRGjx0gjPL6/JwNxMvTMS0C98zmE75JyOUG3kAiEA+JMqN2rt3apgPpZlZPVuag3MXS3e9e3jztl4VwZhdAU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD+CKzEK+d194/I3jykQMrYy7dzgR3YCKKX7im4L9YA1AIhAPVpANuW11y9lNl5/8mAL43UlqxnZs0CMGXN8D3asDLl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":145691},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"testEnvironment":"node"},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./launcher":{"types":"./dist/launcher.d.ts","import":"./dist/launcher.js","require":"./dist/launcher.js"}},"gitHead":"d93ba90964bf978543b7adc8170af2940e02be14","scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","test":"jest --passWithNoTests","build":"npx tsc -p tsconfig.json","start":"node ./bin/mcp-abap-adt.js","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","dev:http":"npm run build && node ./tools/dev-http-v2.js","prebuild":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.19.0","description":"Standalone MCP server for SAP ABAP ADT: stdio, SSE and streamable HTTP transports.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"dotenv":"^18.0.3","express":"^5.1.0","@mcp-abap-adt/lib":"^14.1.2","@mcp-abap-adt/logger":"^0.4.0","@mcp-abap-adt/auth-broker":"^3.0.0","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/interfaces-utils":"^1.1.0"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"launcher":["dist/launcher.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"jest":"*","ts-jest":"*","typescript":"*","@types/jest":"*","@types/node":"*","@types/express":"*"},"_npmOperationalInternal":{"tmp":"tmp/core_14.1.2_1790732484678_0.18744427776227313","host":"s3://npm-registry-packages-npm-production"}},"15.0.0":{"_id":"@mcp-abap-adt/core@15.0.0","bin":{"mcp-abap-adt":"bin/mcp-abap-adt.js"},"bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"dist":{"shasum":"233a1d9c4dec92e166a115e2d1deb43e1e534061","tarball":"https://registry.npmjs.org/@mcp-abap-adt/core/-/core-15.0.0.tgz","fileCount":36,"integrity":"sha512-EHhFR5mQgZz4ZlUCR/8oY/wHAxdoU9opRvUML2CY6I39LEjyp+Fayb49VpamZsUbsbSUX9PHvgUsbRChy3zIpg==","signatures":[{"sig":"MEYCIQDjE1W1o3dDAwYXEjBGONYnOaJsd5bCvo1K7suiR1dqeQIhANUzFj5nefoBhrYi4kNDMVZn9RMA3VmC4amfUZDgSaVW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDTK+t78PY1VHjgsjNjFsAUXJuRschiWj4NNWwFHV92BwIhAKbj+zbfGIOkMJUmt0BJGqBm6WQNHsHgfimCh28r/gnm"}],"unpackedSize":145691},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/__tests__/**/*.test.ts"],"testEnvironment":"node"},"main":"dist/index.js","name":"@mcp-abap-adt/core","types":"dist/index.d.ts","author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"engines":{"npm":">=9.0.0","node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./launcher":{"types":"./dist/launcher.d.ts","import":"./dist/launcher.js","require":"./dist/launcher.js"}},"gitHead":"ec208a87dc7080c58bd10dfad6d836061360a7fe","license":"AGPL-3.0-only","scripts":{"dev":"npm run build && npx @modelcontextprotocol/inspector node ./dist/server/launcher.js --transport=stdio","test":"jest --passWithNoTests","build":"npx tsc -p tsconfig.json","start":"node ./bin/mcp-abap-adt.js","dev:sse":"npm run build && node ./tools/dev-sse-v2.js","dev:http":"npm run build && node ./tools/dev-http-v2.js","prebuild":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"","docker:up":"cd docker && docker-compose up -d","start:sse":"node ./bin/mcp-abap-adt.js --transport=sse","kill-ports":"lsof -ti:3000,3001,4000,4001,5000,6274,6277 | xargs -r kill -9 2>/dev/null || true","lint:check":"npx biome check src","start:http":"node ./bin/mcp-abap-adt.js --transport=http","docker:down":"cd docker && docker-compose down","docker:logs":"cd docker && docker-compose logs -f","docker:pack":"npm pack && mkdir -p docker/packages && mv *.tgz docker/packages/","docker:build":"cd docker && docker-compose build","docker:rebuild":"npm run docker:down && npm run docker:build && npm run docker:up","prepublishOnly":"npm run build","smoke:mcp:crud":"node ./tools/mcp-crud-smoke.js","smoke:mcp:matrix":"node ./tools/mcp-crud-matrix.js","docker:up:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml up -d","docker:down:package":"cd docker && docker-compose -f docker-compose.package.yml down","docker:logs:package":"cd docker && docker-compose -f docker-compose.package.yml logs -f","docker:build:package":"npm run docker:pack && cd docker && docker-compose -f docker-compose.package.yml build","docker:up:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml up -d","docker:down:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml down","docker:logs:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml logs -f","docker:rebuild:package":"npm run docker:down:package && npm run docker:build:package && npm run docker:up:package","docker:build:headerless":"cd docker && docker-compose -f docker-compose.headerless.yml build","docker:rebuild:headerless":"npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"},"version":"15.0.0","_npmUser":{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"},"homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"_npmVersion":"11.19.0","description":"Standalone MCP server for SAP ABAP ADT: stdio, SSE and streamable HTTP transports.","directories":{},"maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"_nodeVersion":"26.7.0","dependencies":{"dotenv":"^18.0.3","express":"^5.1.0","@mcp-abap-adt/lib":"^15.0.0","@mcp-abap-adt/logger":"^0.4.0","@mcp-abap-adt/auth-broker":"^3.0.0","@modelcontextprotocol/sdk":"^1.29.0","@mcp-abap-adt/interfaces-utils":"^1.1.0"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"launcher":["dist/launcher.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"jest":"*","ts-jest":"*","typescript":"*","@types/jest":"*","@types/node":"*","@types/express":"*"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/core_15.0.0_1790781558036_0.8732104296254335"}}},"time":{"created":"2025-12-29T18:12:03.883Z","modified":"2026-09-30T15:19:18.310Z","1.4.1":"2025-12-29T18:12:04.219Z","1.4.2":"2025-12-29T18:28:35.071Z","1.4.3":"2025-12-29T18:44:16.455Z","1.4.4":"2025-12-30T06:07:31.611Z","2.0.0":"2025-12-30T07:35:26.223Z","2.0.1":"2025-12-30T07:59:42.364Z","2.0.2":"2025-12-30T14:59:21.587Z","2.1.0":"2025-12-31T10:16:52.292Z","2.1.1":"2025-12-31T15:30:30.971Z","2.1.2":"2026-01-02T08:57:31.108Z","2.1.3":"2026-01-02T10:09:41.751Z","2.1.4":"2026-01-21T09:02:10.910Z","2.1.6":"2026-01-29T13:30:32.885Z","2.1.7":"2026-01-29T14:24:08.437Z","2.1.8":"2026-02-09T10:52:51.049Z","2.2.0":"2026-02-09T16:10:08.117Z","2.2.2":"2026-02-10T07:59:38.436Z","2.2.3":"2026-02-10T13:02:50.110Z","2.2.4":"2026-02-11T12:23:17.992Z","2.2.5":"2026-02-11T14:11:14.783Z","2.2.6":"2026-02-12T14:05:17.661Z","2.2.7":"2026-02-12T14:20:28.344Z","2.3.0":"2026-02-13T13:07:43.129Z","2.3.1":"2026-02-13T14:39:42.853Z","2.4.0":"2026-02-15T19:41:32.717Z","2.4.1":"2026-02-17T14:50:58.371Z","2.4.2":"2026-02-20T14:23:02.554Z","2.5.0":"2026-02-21T07:28:49.317Z","2.5.1":"2026-02-21T12:21:21.259Z","2.5.2":"2026-02-23T19:16:29.605Z","2.6.1":"2026-02-27T17:10:30.860Z","2.7.0":"2026-03-01T09:19:36.628Z","2.7.1":"2026-03-01T10:12:31.344Z","2.7.2":"2026-03-03T08:09:26.917Z","2.7.3":"2026-03-03T08:15:19.306Z","2.7.4":"2026-03-03T09:14:25.067Z","2.7.5":"2026-03-03T09:44:25.167Z","3.0.0":"2026-03-04T05:21:15.438Z","3.1.0":"2026-03-04T14:02:52.734Z","3.2.1":"2026-03-06T14:09:05.446Z","4.0.0":"2026-03-13T07:31:17.196Z","4.1.0":"2026-03-13T15:53:02.154Z","4.1.1":"2026-03-13T17:01:55.335Z","4.2.0":"2026-03-14T23:04:57.665Z","4.2.1":"2026-03-14T23:17:06.996Z","4.3.0":"2026-03-19T19:23:01.822Z","4.3.1":"2026-03-19T20:34:33.782Z","4.3.2":"2026-03-19T21:12:47.747Z","4.4.0":"2026-03-22T08:22:11.564Z","4.4.1":"2026-03-26T06:42:29.687Z","4.4.2":"2026-03-26T09:29:18.999Z","4.5.0":"2026-03-26T12:46:18.232Z","4.5.1":"2026-03-26T15:05:32.875Z","4.5.2":"2026-03-27T06:39:42.125Z","4.6.0":"2026-03-31T12:18:19.124Z","4.7.0":"2026-04-01T12:30:42.288Z","4.7.1":"2026-04-01T12:34:20.320Z","4.8.1":"2026-04-02T20:00:44.232Z","4.8.2":"2026-04-04T14:10:37.667Z","4.8.3":"2026-04-05T07:08:08.861Z","4.8.4":"2026-04-05T14:18:21.090Z","4.8.5":"2026-04-05T16:15:27.683Z","4.8.6":"2026-04-05T19:24:35.148Z","4.8.7":"2026-04-05T21:44:15.641Z","4.8.8":"2026-04-06T20:39:40.272Z","4.8.9":"2026-04-07T07:37:17.958Z","4.9.0":"2026-04-08T12:40:39.277Z","5.0.0":"2026-04-11T17:28:07.144Z","5.0.1":"2026-04-11T21:12:46.391Z","5.0.2":"2026-04-12T10:28:54.332Z","5.0.3":"2026-04-12T16:13:38.919Z","5.0.4":"2026-04-12T22:44:47.357Z","5.0.5":"2026-04-13T07:06:14.788Z","5.0.6":"2026-04-13T07:37:34.227Z","5.0.7":"2026-04-13T08:11:33.769Z","5.0.8":"2026-04-13T08:30:01.488Z","5.0.10":"2026-04-13T10:36:49.733Z","5.0.11":"2026-04-13T12:07:31.681Z","5.1.0":"2026-04-13T16:15:45.251Z","5.1.1":"2026-04-13T19:10:29.451Z","5.2.0":"2026-04-15T06:36:13.897Z","6.0.0":"2026-04-16T06:22:33.385Z","6.1.0":"2026-04-16T13:50:50.927Z","6.2.0":"2026-04-16T18:05:10.895Z","6.2.1":"2026-04-17T07:25:03.318Z","6.2.2":"2026-04-17T15:01:30.565Z","6.3.0":"2026-04-17T20:34:54.244Z","6.3.1":"2026-04-19T11:43:28.733Z","6.4.0":"2026-04-20T15:21:21.431Z","6.4.1":"2026-04-21T14:42:40.780Z","6.5.0":"2026-04-24T11:11:01.527Z","6.5.1":"2026-04-24T12:53:15.738Z","6.7.0":"2026-05-14T20:19:21.539Z","6.8.0":"2026-05-15T20:07:30.076Z","6.9.0":"2026-05-23T21:49:38.595Z","6.9.1":"2026-05-24T05:56:43.801Z","6.9.2":"2026-05-24T06:16:17.882Z","6.10.0":"2026-05-24T17:47:07.719Z","6.11.0":"2026-05-28T19:31:26.454Z","6.11.1":"2026-05-28T21:29:10.094Z","6.11.2":"2026-05-29T16:00:07.068Z","6.11.3":"2026-05-30T12:39:43.233Z","7.0.0":"2026-05-30T17:30:02.520Z","7.0.1":"2026-06-11T18:21:31.207Z","7.0.2":"2026-06-12T21:56:28.038Z","7.0.3":"2026-06-13T15:36:15.154Z","7.1.0":"2026-06-19T07:04:02.207Z","7.1.1":"2026-06-19T08:16:27.314Z","7.1.3":"2026-06-20T19:04:02.028Z","7.2.0":"2026-06-22T13:49:43.573Z","7.2.1":"2026-06-22T22:20:33.579Z","8.0.0":"2026-06-26T01:44:09.433Z","8.1.0":"2026-06-27T07:44:17.760Z","8.1.1":"2026-06-27T20:15:31.807Z","8.2.0":"2026-06-28T17:00:59.294Z","8.3.0":"2026-06-28T21:10:07.573Z","8.4.0":"2026-06-29T09:32:45.799Z","8.5.0":"2026-06-30T15:15:26.261Z","8.5.1":"2026-07-01T13:22:54.019Z","8.6.0":"2026-07-05T08:55:53.295Z","8.6.1":"2026-07-05T14:25:27.886Z","8.7.0":"2026-07-16T00:12:24.760Z","8.8.0":"2026-07-16T01:55:55.678Z","8.8.1":"2026-07-16T16:53:18.412Z","8.10.0":"2026-07-21T15:03:35.115Z","8.11.0":"2026-07-22T08:21:56.341Z","8.12.1":"2026-07-22T17:35:23.627Z","8.13.0":"2026-07-24T18:16:03.789Z","10.0.1":"2026-09-11T08:06:15.719Z","13.0.0":"2026-09-28T00:42:04.782Z","13.0.2":"2026-09-28T06:46:42.483Z","13.1.0":"2026-09-28T12:31:33.553Z","14.0.0":"2026-09-28T15:28:03.706Z","14.0.1":"2026-09-28T17:14:35.533Z","14.1.1":"2026-09-29T11:32:28.972Z","14.1.2":"2026-09-30T01:41:24.760Z","15.0.0":"2026-09-30T15:19:18.116Z"},"bugs":{"url":"https://github.com/fr0ster/mcp-abap-adt/issues"},"author":{"name":"Oleksii Kyslytsia","email":"oleksij.kyslytsja@gmail.com"},"license":"AGPL-3.0-only","homepage":"https://github.com/fr0ster/mcp-abap-adt#readme","keywords":["abap","sap","adt","mcp","model-context-protocol","mcp-server","abap-cloud","sap-btp","xsuaa","jwt-auth","service-key","crud"],"repository":{"url":"git+https://github.com/fr0ster/mcp-abap-adt.git","type":"git"},"description":"Standalone MCP server for SAP ABAP ADT: stdio, SSE and streamable HTTP transports.","maintainers":[{"name":"fr0ster","email":"oleksij.kyslytsja@gmail.com"}],"readme":"# @mcp-abap-adt/core\n\nThe standalone MCP server for SAP ABAP ADT: stdio, SSE and streamable HTTP\ntransports, the launcher, TLS, the DNS-rebinding guard and the `mcp-abap-adt`\nCLI.\n\n```bash\nnpm install -g @mcp-abap-adt/core\nmcp-abap-adt                    # stdio (default)\nmcp-abap-adt --transport=http\n```\n\nThe tools themselves are not here. They live in\n[`@mcp-abap-adt/lib`](https://www.npmjs.com/package/@mcp-abap-adt/lib), which\nthis package depends on.\n\n## Licence\n\n**AGPL-3.0-only.** See [`LICENSE`](LICENSE).\n\nRunning it on your own data carries no conditions. Distributing it, or offering\na modified version to users over a network, means passing on the same freedoms\nunder section 13 — including the source.\n\n**If you are embedding ADT tools in your own application, you do not want this\npackage.** Install `@mcp-abap-adt/lib` instead: same handlers, same embeddable\nserver, Apache-2.0, and no transport to drag AGPL into your dependency tree.\nThat separation is the reason these are two packages.\n\nFull documentation lives in the [repository root](../README.md).\n","readmeFilename":"README.md"}