{"_id":"@sap/ams","_rev":"29-c0d41bd3de6487c54bafc515535c93e3","name":"@sap/ams","dist-tags":{"latest":"3.10.0"},"versions":{"1.13.1":{"name":"@sap/ams","version":"1.13.1","author":"","license":"SAP DEVELOPER LICENSE AGREEMENT","_id":"@sap/ams@1.13.1","maintainers":[{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"}],"dist":{"shasum":"08f93f206df3af39ffe23d6101b990ead4c184e3","tarball":"https://registry.npmjs.org/@sap/ams/-/ams-1.13.1.tgz","fileCount":51,"integrity":"sha512-oIQ1J/liK3KFM5i1STAfsQJHgzOuiljLkIWqEGbwFYIl/W7432JS4l53Uedzy9/lfDyC5SFqcv3dMHXIXfArMQ==","signatures":[{"sig":"MEUCIBHwVIuMM1WuaAf/NviNszC/D2+SispMtIbDBUjW6mZ9AiEA+zrNl7DbVr1Vamxd8/WwCferMFBYVKdTzk086DUCqXc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":140201},"main":"index.js","_from":"file:ams-1.13.1.tgz","config":{"dcl_target":"dcl-target"},"engines":{"node":">=14"},"scripts":{"lint":"npx eslint","test":"jest || npm run stop-opa && rm -rf $npm_package_config_dcl_target","pretest":"npm run compile-dcl && npm run start-opa && sleep 1","posttest":"npm run stop-opa && rm -rf $npm_package_config_dcl_target","stop-opa":"stop-opa","start-opa":"start-opa -r $npm_package_config_dcl_target -u test/integration/dcl-resources/data.json -n test","compile-dcl":"compile-dcl -d test/integration/dcl-resources -r $npm_package_config_dcl_target","compile-dcn":"compile-dcn -d test/integration/dcl-resources -r $npm_package_config_dcl_target","restart-opa":"npm run stop-opa && npm run start-opa","compile-and-restart":"npm run compile-dcl && npm run restart-opa"},"_npmUser":{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"},"_resolved":"/home/jenkins/agent/workspace/npmjs-build/ams-1.13.1.tgz","_integrity":"sha512-oIQ1J/liK3KFM5i1STAfsQJHgzOuiljLkIWqEGbwFYIl/W7432JS4l53Uedzy9/lfDyC5SFqcv3dMHXIXfArMQ==","_npmVersion":"10.1.0","description":"AMS client library for node.js","directories":{"lib":"lib"},"_nodeVersion":"20.7.0","dependencies":{"axios":"^1.4.0","moment":"^2.29.4","winston":"^3.10.0","compressing":"^1.9.0","json-to-pretty-yaml":"^1.2.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.3.6","jest":"^29.6.2","eslint":"8.49.0","rewire":"^7.0.0","@sap/ams-dev":"^0.7.0","@sap/audit-logging":"5.7.1"},"_npmOperationalInternal":{"tmp":"tmp/ams_1.13.1_1695307740625_0.9155246930966701","host":"s3://npm-registry-packages"}},"1.14.0":{"name":"@sap/ams","version":"1.14.0","author":"","license":"SAP DEVELOPER LICENSE AGREEMENT","_id":"@sap/ams@1.14.0","maintainers":[{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"}],"dist":{"shasum":"7ccd68e4af827095644a445bf433e402ad20ab6a","tarball":"https://registry.npmjs.org/@sap/ams/-/ams-1.14.0.tgz","fileCount":53,"integrity":"sha512-CdGUHZh0WEjpLYrVQcFf+PQwB/GDkpfzhhp1lhKjDxCZ/xsvmdFWoQVosHfXCMlhM4dvleph5psUvjWf3vdGjQ==","signatures":[{"sig":"MEUCIBv8TB4v2xDqiphoavsK16n/CHRsOM7K8R5a0zWDUREKAiEAzwnra4QTUxXKVSty4Mk6qTSjIL5BeJLUnqaXvMQsTGo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":148975},"main":"index.js","_from":"file:ams-1.14.0.tgz","config":{"dcl_target":"dcl-target"},"engines":{"node":">=14"},"scripts":{"lint":"npx eslint","test":"jest || (npm run stop-opa && rm -rf $npm_package_config_dcl_target)","pretest":"npm run compile-dcl && npm run start-opa && sleep 1","posttest":"npm run stop-opa && rm -rf $npm_package_config_dcl_target","stop-opa":"stop-opa","start-opa":"start-opa -r $npm_package_config_dcl_target -u test/integration/dcl-resources/data.json -n test","compile-dcl":"compile-dcl -d test/integration/dcl-resources -r $npm_package_config_dcl_target","compile-dcn":"compile-dcn -d test/integration/dcl-resources -r $npm_package_config_dcl_target","restart-opa":"npm run stop-opa && npm run start-opa","compile-and-restart":"npm run compile-dcl && npm run restart-opa"},"_npmUser":{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"},"_resolved":"/home/jenkins/agent/workspace/npmjs-build/ams-1.14.0.tgz","_integrity":"sha512-CdGUHZh0WEjpLYrVQcFf+PQwB/GDkpfzhhp1lhKjDxCZ/xsvmdFWoQVosHfXCMlhM4dvleph5psUvjWf3vdGjQ==","_npmVersion":"10.2.4","description":"AMS client library for node.js","directories":{"lib":"lib"},"_nodeVersion":"21.4.0","dependencies":{"axios":"^1.4.0","moment":"^2.29.4","winston":"^3.10.0","compressing":"^1.9.0","json-to-pretty-yaml":"^1.2.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.3.6","jest":"^29.6.2","uuid":"^9.0.1","eslint":"8.56.0","rewire":"^7.0.0","@sap/ams-dev":"^0.7.2","@sap/audit-logging":"5.8.2"},"peerDependencies":{"@sap/cds":"^7.5.0"},"peerDependenciesMeta":{"@sap/cds":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ams_1.14.0_1703153557994_0.3119766376828852","host":"s3://npm-registry-packages"}},"1.14.1":{"name":"@sap/ams","version":"1.14.1","author":"","license":"SAP DEVELOPER LICENSE AGREEMENT","_id":"@sap/ams@1.14.1","maintainers":[{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"}],"dist":{"shasum":"21664e347ec316c852a22441266b8612e12fcd8d","tarball":"https://registry.npmjs.org/@sap/ams/-/ams-1.14.1.tgz","fileCount":53,"integrity":"sha512-E5fjKbMCId2w0WQsWfJsXnQQSvEM0w3/C/DuMUq6sB1D3vvPM6TdAhCLMfckfUqX3E9NHcMtaDurZb8rMUKn9g==","signatures":[{"sig":"MEQCIHppUTBWbC0fFJrpY9eEGf2ZF5rWSChsjjgfUha8nVWzAiASDeArUADiEN2CaK7sP6hVHzeKC+vcZF0SO8rsmb9xfg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":149980},"main":"index.js","_from":"file:ams-1.14.1.tgz","config":{"dcl_target":"dcl-target"},"engines":{"node":">=14"},"scripts":{"lint":"npx eslint","test":"jest || (npm run stop-opa && rm -rf $npm_package_config_dcl_target)","pretest":"npm run compile-dcl && npm run start-opa && sleep 1","posttest":"npm run stop-opa && rm -rf $npm_package_config_dcl_target","stop-opa":"stop-opa","start-opa":"start-opa -r $npm_package_config_dcl_target -u test/integration/dcl-resources/data.json -n test","compile-dcl":"compile-dcl -d test/integration/dcl-resources -r $npm_package_config_dcl_target","compile-dcn":"compile-dcn -d test/integration/dcl-resources -r $npm_package_config_dcl_target","restart-opa":"npm run stop-opa && npm run start-opa","compile-and-restart":"npm run compile-dcl && npm run restart-opa"},"_npmUser":{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"},"_resolved":"/home/jenkins/agent/workspace/npmjs-build/ams-1.14.1.tgz","_integrity":"sha512-E5fjKbMCId2w0WQsWfJsXnQQSvEM0w3/C/DuMUq6sB1D3vvPM6TdAhCLMfckfUqX3E9NHcMtaDurZb8rMUKn9g==","_npmVersion":"10.2.4","description":"AMS client library for node.js","directories":{"lib":"lib"},"_nodeVersion":"21.6.0","dependencies":{"axios":"^1.6.5","moment":"^2.30.0","winston":"^3.10.0","compressing":"^1.9.0","json-to-pretty-yaml":"^1.2.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^5.0.0","jest":"^29.6.2","uuid":"^9.0.1","eslint":"8.56.0","rewire":"^7.0.0","@sap/ams-dev":"^0.8.0","@sap/audit-logging":"5.8.3"},"peerDependencies":{"@sap/cds":"^7.5.0"},"peerDependenciesMeta":{"@sap/cds":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ams_1.14.1_1706023385249_0.13793074378827375","host":"s3://npm-registry-packages"}},"1.14.2":{"name":"@sap/ams","version":"1.14.2","author":"","license":"SAP DEVELOPER LICENSE AGREEMENT","_id":"@sap/ams@1.14.2","maintainers":[{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"}],"dist":{"shasum":"be744830fb2de55319b0971dce56a50eb1955590","tarball":"https://registry.npmjs.org/@sap/ams/-/ams-1.14.2.tgz","fileCount":51,"integrity":"sha512-hLty1OfUDB1O2Y3uGy+dufXShm6nJIlHWEliYrtq8TY2QRh2M4zwVC9qXLcPlxYxnG7sf+fX0juvFmqRnnwyQw==","signatures":[{"sig":"MEUCIQCEwYNc1qDi7nS57GYzFOiXWI0eG1fqhMtjE7MD4gjMAAIgIuYQ/Z5UVyYfqhEv0HOvJ/oTlHNy/q3VYr/3Y0GC9qw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":145533},"main":"index.js","_from":"file:ams-1.14.2.tgz","config":{"dcl_target":"dcl-target"},"engines":{"node":">=18"},"scripts":{"lint":"npx eslint","test":"jest || (npm run stop-opa && rm -rf $npm_package_config_dcl_target)","pretest":"npm run compile-dcl && npm run start-opa && sleep 1","posttest":"npm run stop-opa && rm -rf $npm_package_config_dcl_target","stop-opa":"stop-opa","start-opa":"start-opa -r $npm_package_config_dcl_target -u test/integration/dcl-resources/data.json -n test","compile-dcl":"compile-dcl -d test/integration/dcl-resources -r $npm_package_config_dcl_target","compile-dcn":"compile-dcn -d test/integration/dcl-resources -r $npm_package_config_dcl_target","restart-opa":"npm run stop-opa && npm run start-opa","compile-and-restart":"npm run compile-dcl && npm run restart-opa"},"_npmUser":{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"},"_resolved":"/home/jenkins/agent/workspace/npmjs-build/ams-1.14.2.tgz","_integrity":"sha512-hLty1OfUDB1O2Y3uGy+dufXShm6nJIlHWEliYrtq8TY2QRh2M4zwVC9qXLcPlxYxnG7sf+fX0juvFmqRnnwyQw==","_npmVersion":"10.2.4","description":"AMS client library for node.js","directories":{"lib":"lib"},"_nodeVersion":"21.6.0","dependencies":{"axios":"^1.6.5","moment":"^2.30.0","winston":"^3.10.0","compressing":"^1.9.0","json-to-pretty-yaml":"^1.2.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^5.0.0","jest":"^29.6.2","uuid":"^9.0.1","eslint":"^8.56.0","rewire":"^7.0.0","@sap/ams-dev":"^0.8.2","@sap/audit-logging":"^5.8.4"},"peerDependencies":{"@sap/cds":"^7.5.0"},"peerDependenciesMeta":{"@sap/cds":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ams_1.14.2_1706630996697_0.009710309196763856","host":"s3://npm-registry-packages"}},"1.15.0":{"name":"@sap/ams","version":"1.15.0","author":"","license":"SAP DEVELOPER LICENSE AGREEMENT","_id":"@sap/ams@1.15.0","maintainers":[{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"}],"cds":{"requires":{"kinds":{"AmsEventService":{"impl":"@sap/ams/lib/cap/AmsEventService"}}}},"dist":{"shasum":"aed6dbf26d291e1b11926cb4deb057969b3e09c4","tarball":"https://registry.npmjs.org/@sap/ams/-/ams-1.15.0.tgz","fileCount":51,"integrity":"sha512-ieClgKEGxoe3aZ9Q29Cm49+TdY5K4Xi1UmHQG/I6GpfATPKw5SU6Vbn7HeqNlAlmi8eH/dPP3RXbM+ZodlbxJA==","signatures":[{"sig":"MEUCIQCnGKolxSWlDBQBCaNiA9Ag3a5jWjYgN2sfHs5USRPiDAIgRO3tygc7V19bC5lYnFIniPXVqG5hkCYcrhzTI88zo7A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":144952},"main":"index.js","_from":"file:ams-1.15.0.tgz","config":{"dcl_target":"dcl-target"},"engines":{"node":">=18"},"scripts":{"lint":"npx eslint","test":"jest","pretest":"npm run compile-dcl && npm run start-opa && sleep 1","posttest":"npm run stop-opa && rm -rf $npm_package_config_dcl_target","stop-opa":"stop-opa","start-opa":"start-opa -r $npm_package_config_dcl_target -u test/integration/dcl-resources/data.json -n test","compile-dcl":"compile-dcl -d test/integration/dcl-resources -r $npm_package_config_dcl_target","compile-dcn":"compile-dcn -d test/integration/dcl-resources -r $npm_package_config_dcl_target","restart-opa":"npm run stop-opa && npm run start-opa","compile-and-restart":"npm run compile-dcl && npm run restart-opa"},"_npmUser":{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"},"_resolved":"/home/jenkins/agent/workspace/npmjs-build/ams-1.15.0.tgz","_integrity":"sha512-ieClgKEGxoe3aZ9Q29Cm49+TdY5K4Xi1UmHQG/I6GpfATPKw5SU6Vbn7HeqNlAlmi8eH/dPP3RXbM+ZodlbxJA==","_npmVersion":"10.2.4","description":"AMS client library for node.js","directories":{"lib":"lib"},"_nodeVersion":"21.6.1","dependencies":{"axios":"^1.6.5","moment":"^2.30.0","winston":"^3.10.0","compressing":"^1.9.0","json-to-pretty-yaml":"^1.2.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^5.0.0","jest":"^29.6.2","uuid":"^9.0.1","eslint":"^8.56.0","rewire":"^7.0.0","@sap/ams-dev":"^0.8.2","@sap/audit-logging":"^5.8.4"},"peerDependencies":{"@sap/cds":"^7.5.0"},"peerDependenciesMeta":{"@sap/cds":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ams_1.15.0_1708096392067_0.06880652321162728","host":"s3://npm-registry-packages"}},"1.15.1":{"name":"@sap/ams","version":"1.15.1","author":"","license":"SAP DEVELOPER LICENSE AGREEMENT","_id":"@sap/ams@1.15.1","maintainers":[{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"}],"cds":{"requires":{"kinds":{"AmsEventService":{"impl":"@sap/ams/lib/cap/AmsEventService"}}}},"dist":{"shasum":"0567578c9e9a087ce0aa390e909198987d0bd125","tarball":"https://registry.npmjs.org/@sap/ams/-/ams-1.15.1.tgz","fileCount":51,"integrity":"sha512-wN9liiyiHa+m1BPg+hCHOL65JM/lBWni1GqrWJFJ+QzoQYzv/SK5dUJ48quTkLgheroTg1iVs29om4Ou1QYFCQ==","signatures":[{"sig":"MEUCIFvoVaomjWuyjp10ccKQZbeiOESdPjlWYnV2T8tHxVkpAiEAriVMPS01Q7AGw6Qq8MBJ1lMqy02lHGTrIua7ljJlpss=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":145186},"main":"index.js","_from":"file:ams-1.15.1.tgz","config":{"dcl_target":"dcl-target"},"engines":{"node":">=18"},"scripts":{"lint":"npx eslint","test":"jest","pretest":"npm run compile-dcl && npm run start-opa && sleep 1","posttest":"npm run stop-opa && rm -rf $npm_package_config_dcl_target","stop-opa":"stop-opa","start-opa":"start-opa -r $npm_package_config_dcl_target -u test/integration/dcl-resources/data.json -n test","compile-dcl":"compile-dcl -d test/integration/dcl-resources -r $npm_package_config_dcl_target","compile-dcn":"compile-dcn -d test/integration/dcl-resources -r $npm_package_config_dcl_target","restart-opa":"npm run stop-opa && npm run start-opa","compile-and-restart":"npm run compile-dcl && npm run restart-opa"},"_npmUser":{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"},"_resolved":"/home/jenkins/agent/workspace/npmjs-build/ams-1.15.1.tgz","_integrity":"sha512-wN9liiyiHa+m1BPg+hCHOL65JM/lBWni1GqrWJFJ+QzoQYzv/SK5dUJ48quTkLgheroTg1iVs29om4Ou1QYFCQ==","_npmVersion":"10.2.4","description":"AMS client library for node.js","directories":{"lib":"lib"},"_nodeVersion":"21.6.2","dependencies":{"axios":"^1.6.5","moment":"^2.30.0","winston":"^3.10.0","compressing":"^1.9.0","json-to-pretty-yaml":"^1.2.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^5.0.0","jest":"^29.6.2","uuid":"^9.0.1","eslint":"^8.56.0","rewire":"^7.0.0","@sap/ams-dev":"^0.8.2","@sap/audit-logging":"^6.0.0"},"peerDependencies":{"@sap/cds":"^7.5.0"},"peerDependenciesMeta":{"@sap/cds":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ams_1.15.1_1709653324503_0.7859065758166361","host":"s3://npm-registry-packages"}},"1.16.0":{"name":"@sap/ams","version":"1.16.0","author":"","license":"SAP DEVELOPER LICENSE AGREEMENT","_id":"@sap/ams@1.16.0","maintainers":[{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"}],"cds":{"requires":{"kinds":{"AmsEventService":{"impl":"@sap/ams/lib/cap/AmsEventService"}}}},"dist":{"shasum":"a007f69cea467eb6a2eb8bbb8b19f4b2def019f4","tarball":"https://registry.npmjs.org/@sap/ams/-/ams-1.16.0.tgz","fileCount":53,"integrity":"sha512-PVSDTh5OBaPUWJkxzDXyrjCe3sQP/a4/6SIZAtE5GfIq2LrdXZHmjA7F/tm0ebER8gbiw1xTOpT9YJGI+Gt/bw==","signatures":[{"sig":"MEYCIQDsZK/6+clJo54p5dn4pxh8jSWMgiD+s83DZzRRBqM46AIhAOz7j9IKnrQ8rHu2FFAhQL+jO6AAOg3zsfUiuCoW+sme","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":147540},"main":"index.js","_from":"file:ams-1.16.0.tgz","config":{"dcl_target":"dcl-target"},"engines":{"node":">=18"},"scripts":{"lint":"npx eslint","test":"jest","pretest":"npm run compile-dcl && npm run start-opa && sleep 1","posttest":"npm run stop-opa && rm -rf $npm_package_config_dcl_target","stop-opa":"stop-opa","start-opa":"start-opa -r $npm_package_config_dcl_target -u test/integration/dcl-resources/data.json -n test","compile-dcl":"compile-dcl -d test/integration/dcl-resources -r $npm_package_config_dcl_target","compile-dcn":"compile-dcn -d test/integration/dcl-resources -r $npm_package_config_dcl_target","restart-opa":"npm run stop-opa && npm run start-opa","compile-and-restart":"npm run compile-dcl && npm run restart-opa"},"_npmUser":{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"},"_resolved":"/home/jenkins/agent/workspace/npmjs-build/ams-1.16.0.tgz","_integrity":"sha512-PVSDTh5OBaPUWJkxzDXyrjCe3sQP/a4/6SIZAtE5GfIq2LrdXZHmjA7F/tm0ebER8gbiw1xTOpT9YJGI+Gt/bw==","_npmVersion":"10.7.0","description":"AMS client library for node.js","directories":{"lib":"lib"},"_nodeVersion":"22.2.0","dependencies":{"axios":"^1.6.5","moment":"^2.30.0","winston":"^3.10.0","jwt-decode":"^4.0.0","compressing":"^1.9.0","json-to-pretty-yaml":"^1.2.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^5.0.0","jest":"^29.6.2","uuid":"^9.0.1","eslint":"^8.56.0","rewire":"^7.0.0","@sap/ams-dev":"^0.8.2","@sap/audit-logging":"^6.0.0"},"peerDependencies":{"@sap/cds":"^7.5.0"},"peerDependenciesMeta":{"@sap/cds":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ams_1.16.0_1715943500503_0.5048109506436693","host":"s3://npm-registry-packages"}},"1.17.0":{"name":"@sap/ams","version":"1.17.0","author":"","license":"SAP DEVELOPER LICENSE AGREEMENT","_id":"@sap/ams@1.17.0","maintainers":[{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"}],"cds":{"requires":{"kinds":{"AmsEventService":{"impl":"@sap/ams/lib/cap/AmsEventService"}}}},"dist":{"shasum":"c9eb44483685e19a630f7a4c73d6390cdb97d832","tarball":"https://registry.npmjs.org/@sap/ams/-/ams-1.17.0.tgz","fileCount":106,"integrity":"sha512-Zz5PYJ5r06bRrTuyo36k3W9ld2pTYRefFkU02i6xJJN22ViA5EsYe/0Y9qixAXHEtUjlMDBlYbUZBC9vhq5dPg==","signatures":[{"sig":"MEYCIQCguVvnNVIT9LMIMgTNaoURJEt5uPNgqthqUd9Bo75ROQIhANl27CDkrW5o5EtouzFj0+XRXMJ4HG7vU8+Iw4Lhbifu","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":297369},"main":"index.js","_from":"file:ams-1.17.0.tgz","config":{"dcl_target":"dcl-target"},"engines":{"node":">=18"},"scripts":{"jest":"AMS_DCN_ROOT=$npm_package_config_dcl_target jest","lint":"npx eslint","test":"npm run jest","prepare":"npm i --prefix src/xcode/dcn-engine && npm run build --prefix src/xcode/dcn-engine","pretest":"npm run prepare && npm run compile-dcl","posttest":"rm -rf $npm_package_config_dcl_target","compile-dcl":"npx compile-dcl -d test/integration/dcl-resources -o $npm_package_config_dcl_target && cp test/integration/dcl-resources/data.json $npm_package_config_dcl_target/data.json"},"_npmUser":{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"},"_resolved":"/home/jenkins/agent/workspace/npmjs-build/ams-1.17.0.tgz","_integrity":"sha512-Zz5PYJ5r06bRrTuyo36k3W9ld2pTYRefFkU02i6xJJN22ViA5EsYe/0Y9qixAXHEtUjlMDBlYbUZBC9vhq5dPg==","_npmVersion":"10.8.3","description":"AMS client library for node.js","directories":{"lib":"lib"},"_nodeVersion":"22.9.0","dependencies":{"axios":"^1.6.5","moment":"^2.30.0","winston":"^3.10.0","@sap/xsenv":"^5.2.0","jwt-decode":"^4.0.0","compressing":"^1.9.0","json-to-pretty-yaml":"^1.2.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^5.0.0","jest":"^29.6.2","uuid":"^10.0.0","eslint":"^8.56.0","rewire":"^7.0.0","@sap/cds":"^8.1.0","@sap/ams-dev":"^1","@sap/audit-logging":"^6.0.0"},"peerDependencies":{"@sap/cds":">=7.5"},"peerDependenciesMeta":{"@sap/cds":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ams_1.17.0_1728458043678_0.7729257397778686","host":"s3://npm-registry-packages"}},"1.18.0":{"name":"@sap/ams","version":"1.18.0","author":"","license":"SAP DEVELOPER LICENSE AGREEMENT","_id":"@sap/ams@1.18.0","maintainers":[{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"}],"cds":{"requires":{"auth":{"ams":{"dclRoot":"gen/srv/ams/dcl","customDclRoot":"ams/dcl","policyDeployerRoot":"gen/policies"},"[java]":{"ams":{"dclRoot":"srv/src/main/resources/ams","customDclRoot":"srv/src/main/resources/ams","policyDeployerRoot":"srv/src/gen/policies"}}},"kinds":{"AmsEventService":{"impl":"@sap/ams/lib/cap/AmsEventService"}}}},"dist":{"shasum":"be666baa4122769a0abf80f4e94feeaca89a8d32","tarball":"https://registry.npmjs.org/@sap/ams/-/ams-1.18.0.tgz","fileCount":106,"integrity":"sha512-365WsuZcqlxnHTtgi96ATGC3GlNlLIDwOZ8xhE9utuYXoeUmIuE2cX0zlL+xcefpm/qCiU11jfuleJO/JnwIoA==","signatures":[{"sig":"MEUCIQD1oERgpD3el2HJczyBhms/Goao8pXlze+SMgeMzzVYSQIgHWmyCwkWTqLpZwixI/sGNW/rb84lgQ/SEzWIban23Tw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":298403},"main":"index.js","_from":"file:ams-1.18.0.tgz","config":{"dcl_target":"dcl-target"},"engines":{"node":">=18"},"scripts":{"jest":"AMS_DCN_ROOT=$npm_package_config_dcl_target jest","lint":"npx eslint","test":"npm run jest","prepare":"npm i --prefix src/xcode/dcn-engine && npm run build --prefix src/xcode/dcn-engine","pretest":"npm run prepare && npm run compile-dcl","posttest":"rm -rf $npm_package_config_dcl_target","compile-dcl":"npx compile-dcl -d test/integration/dcl-resources -o $npm_package_config_dcl_target && cp test/integration/dcl-resources/data.json $npm_package_config_dcl_target/data.json"},"_npmUser":{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"},"_resolved":"/home/jenkins/agent/workspace/npmjs-build/ams-1.18.0.tgz","_integrity":"sha512-365WsuZcqlxnHTtgi96ATGC3GlNlLIDwOZ8xhE9utuYXoeUmIuE2cX0zlL+xcefpm/qCiU11jfuleJO/JnwIoA==","_npmVersion":"10.8.3","description":"AMS client library for node.js","directories":{"lib":"lib"},"_nodeVersion":"22.9.0","dependencies":{"axios":"^1.6.5","moment":"^2.30.0","winston":"^3.10.0","@sap/xsenv":"^5.2.0","jwt-decode":"^4.0.0","compressing":"^1.9.0","json-to-pretty-yaml":"^1.2.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^5.0.0","jest":"^29.6.2","uuid":"^10.0.0","eslint":"^9.2.0","rewire":"^7.0.0","globals":"^15.2.0","@sap/cds":"^8.1.0","@eslint/js":"^9.2.0","@sap/ams-dev":"^1","@sap/audit-logging":"^6.0.0","eslint-plugin-unused-imports":"^4.1.3"},"peerDependencies":{"@sap/cds":">=7.5"},"peerDependenciesMeta":{"@sap/cds":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ams_1.18.0_1728918193097_0.40458240788127253","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"@sap/ams","version":"2.0.0","author":"","license":"SAP DEVELOPER LICENSE AGREEMENT","_id":"@sap/ams@2.0.0","maintainers":[{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"}],"bin":{"deploy-dcl":"lib/bin/deployDcl.js"},"cds":{"requires":{"auth":{"ams":{"cache":{"TTL":900000,"limit":10000,"enabled":true,"[development]":{"enabled":false}},"[java]":{"dclRoot":"srv/src/main/resources/ams","dcnRoot":"srv/src/gen/ams/dcn","policyDeployerRoot":"srv/src/gen/policies"},"dclRoot":"ams/dcl","dcnRoot":"gen/ams/dcn","generateDcl":true}}}},"dist":{"shasum":"62165e7a1ba7b7b066b36f286ef72650fd47247c","tarball":"https://registry.npmjs.org/@sap/ams/-/ams-2.0.0.tgz","fileCount":116,"integrity":"sha512-4/bx+OYciMErsC8Lh3RSfWmGQb9IKszHb8TjW0vnGtjXLtxvnWGgXAkV6aRfrNXEH9dEwLuEvku0DATd//jDWw==","signatures":[{"sig":"MEUCIH7gwZPwYVEoQdjBnn+71UO1uoxfrxF4UKwGhYzK9ygUAiEAtlv42b46GW1dbVdjZg4QvA8L+FJyYLyRs8Lrgrg471M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":738936},"main":"index.js","_from":"file:ams-2.0.0.tgz","config":{"dcl_target":"dcl-target"},"engines":{"node":">=18"},"scripts":{"jest":"AMS_DCN_ROOT=$npm_package_config_dcl_target jest","lint":"npx eslint .","test":"npm run jest","capjest":"npm --workspace=cap-bookshop-ams-sample run test -- -- --silent","captest":"npm run capjest","prepare":"npm run buildDcnEngine && npm run buildDCLParser","pretest":"npm run prepare && npm run compile-dcl && npm run installCapPlugin","posttest":"rm -rf $npm_package_config_dcl_target","precaptest":"npm run prepare && npm run installCapPlugin","compile-dcl":"npx compile-dcl -d test/integration/dcl-resources -o $npm_package_config_dcl_target && cp test/integration/dcl-resources/data.json $npm_package_config_dcl_target/data.json","buildDCLParser":"npm i --prefix src/dclparser && npm run build --prefix src/dclparser","buildDcnEngine":"npm i --prefix src/xcode/dcn-engine && npm run build --prefix src/xcode/dcn-engine","installCapPlugin":"npm --workspace=cap-bookshop-ams-sample install @sap/ams"},"_npmUser":{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"},"_resolved":"/home/jenkins/agent/workspace/npmjs-build/ams-2.0.0.tgz","_integrity":"sha512-4/bx+OYciMErsC8Lh3RSfWmGQb9IKszHb8TjW0vnGtjXLtxvnWGgXAkV6aRfrNXEH9dEwLuEvku0DATd//jDWw==","workspaces":[".","src/xcode/cap-sample"],"_npmVersion":"10.9.2","description":"AMS client library for node.js","directories":{"lib":"lib"},"_nodeVersion":"23.4.0","dependencies":{"axios":"^1.6.5","yargs":"^17.7.2","winston":"^3.10.0","@sap/xsenv":"^5.2.0","compressing":"^1.9.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.2","nock":"^13.5.6","uuid":"^11.0.0","eslint":"^9.2.0","globals":"^15.2.0","@eslint/js":"^9.2.0","@types/node":"^22.10.1","@sap/ams-dev":"^2.0.0","@types/yargs":"^17.0.33","@cap-js/cds-types":"^0.6.5","@sap/audit-logging":"^6.0.0","eslint-plugin-unused-imports":"^4.1.3"},"peerDependencies":{"@sap/cds":">=7.5"},"peerDependenciesMeta":{"@sap/cds":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ams_2.0.0_1734104553547_0.209695696744586","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"@sap/ams","version":"2.1.1","author":"","license":"SAP DEVELOPER LICENSE AGREEMENT","_id":"@sap/ams@2.1.1","maintainers":[{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"}],"bin":{"deploy-dcl":"lib/bin/deployDcl.js"},"cds":{"requires":{"auth":{"ams":{"cache":{"TTL":900000,"limit":10000,"enabled":true,"[development]":{"enabled":false}},"[java]":{"dclRoot":"srv/src/main/resources/ams","dcnRoot":"srv/src/gen/ams/dcn","policyDeployerRoot":"srv/src/gen/policies"},"dclRoot":"ams/dcl","dcnRoot":"gen/ams/dcn","generateDcl":true,"dclGenerationPackage":"cap"}}}},"dist":{"shasum":"30943554f258d51a0bfd7900db5abfdc9034e784","tarball":"https://registry.npmjs.org/@sap/ams/-/ams-2.1.1.tgz","fileCount":117,"integrity":"sha512-v988tKh65gTzBRF7b3nAlTEfFfb0hRab6+5MP1Xfnzmxbyy3tv3dOtAtDY19rhM/ZAOyJhf88IhIoF6G01jLIA==","signatures":[{"sig":"MEUCIQCRUGgvFi++PlWFa2h3Xvs2+qs41OW5f6mYHp3TdP66+AIgGeQDygayf0HFSnROTAx0L/1ieXh5n1Sb8VhR+J+NYE4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":740176},"main":"index.js","_from":"file:ams-2.1.1.tgz","config":{"dcl_target":"dcl-target"},"engines":{"node":">=18"},"scripts":{"jest":"AMS_DCN_ROOT=$npm_package_config_dcl_target jest","lint":"npx eslint .","test":"npm run jest","capjest":"npm --workspace=cap-bookshop-ams-sample run test -- -- --silent","captest":"npm run capjest","prepare":"npm run buildDcnEngine && npm run buildDCLParser","pretest":"npm run prepare && npm run compile-dcl && npm run installCapPlugin","posttest":"rm -rf $npm_package_config_dcl_target","precaptest":"npm run prepare && npm run installCapPlugin","compile-dcl":"npx compile-dcl -d test/integration/dcl-resources -o $npm_package_config_dcl_target && cp test/integration/dcl-resources/data.json $npm_package_config_dcl_target/data.json","buildDCLParser":"npm i --prefix src/dclparser && npm run build --prefix src/dclparser","buildDcnEngine":"npm i --prefix src/xcode/dcn-engine && npm run build --prefix src/xcode/dcn-engine","installCapPlugin":"npm --workspace=cap-bookshop-ams-sample install @sap/ams"},"_npmUser":{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"},"_resolved":"/home/jenkins/agent/workspace/npmjs-build/ams-2.1.1.tgz","_integrity":"sha512-v988tKh65gTzBRF7b3nAlTEfFfb0hRab6+5MP1Xfnzmxbyy3tv3dOtAtDY19rhM/ZAOyJhf88IhIoF6G01jLIA==","workspaces":[".","src/xcode/cap-sample"],"_npmVersion":"10.9.2","description":"AMS client library for node.js","directories":{"lib":"lib"},"_nodeVersion":"23.6.0","dependencies":{"axios":"^1.6.5","yargs":"^17.7.2","winston":"^3.10.0","@sap/xsenv":"^5.2.0","compressing":"^1.9.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.2","nock":"^13.5.6","uuid":"^11.0.0","eslint":"^9.2.0","globals":"^15.2.0","@eslint/js":"^9.2.0","@types/node":"^22.10.1","@sap/ams-dev":"^2.0.0","@types/yargs":"^17.0.33","@cap-js/cds-types":"^0.8.0","@sap/audit-logging":"^6.0.0","eslint-plugin-unused-imports":"^4.1.3"},"peerDependencies":{"@sap/cds":">=7.5"},"peerDependenciesMeta":{"@sap/cds":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ams_2.1.1_1736411810227_0.22101184804148755","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@sap/ams","version":"2.2.0","author":"","license":"SAP DEVELOPER LICENSE AGREEMENT","_id":"@sap/ams@2.2.0","maintainers":[{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"}],"bin":{"deploy-dcl":"lib/bin/deployDcl.js"},"cds":{"requires":{"auth":{"ams":{"cache":{"TTL":900000,"limit":10000,"enabled":true,"[development]":{"enabled":false}},"[java]":{"dclRoot":"srv/src/main/resources/ams","dcnRoot":"srv/src/gen/ams/dcn","policyDeployerRoot":"srv/src/gen/policies"},"dclRoot":"ams/dcl","dcnRoot":"gen/ams/dcn","generateDcl":true,"dclGenerationPackage":"cap"}}}},"dist":{"shasum":"5649eade779b453066207f207ec79fca1ffe4295","tarball":"https://registry.npmjs.org/@sap/ams/-/ams-2.2.0.tgz","fileCount":117,"integrity":"sha512-+iwrbBfJsgLnUOBCV7VwEdiVPu+TgvyTrzb4kQVu4fSnh5JQxew9gXIDAOF08zH3zJydmhcrJrlWzsXV8AlZrQ==","signatures":[{"sig":"MEUCIA2VTEGg0zIvSDcv92cypmQIJMn/8oFOnfj4wo9OKKEMAiEA4XR7SUZr746igjt0+A4Iau+VmSgZ64QH07/0YjHuUTg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":741635},"main":"index.js","_from":"file:ams-2.2.0.tgz","config":{"dcl_target":"dcl-target"},"engines":{"node":">=18"},"scripts":{"jest":"AMS_DCN_ROOT=$npm_package_config_dcl_target jest","lint":"npx eslint .","test":"npm run jest","capjest":"npm --workspace=cap-bookshop-ams-sample run test -- -- --silent","captest":"npm run capjest","prepare":"npm run buildDcnEngine && npm run buildDCLParser","pretest":"npm run prepare && npm run compile-dcl && npm run installCapPlugin","posttest":"rm -rf $npm_package_config_dcl_target","precaptest":"npm run prepare && npm run installCapPlugin","compile-dcl":"npx compile-dcl -d test/integration/dcl-resources -o $npm_package_config_dcl_target && cp test/integration/dcl-resources/data.json $npm_package_config_dcl_target/data.json","buildDCLParser":"npm i --prefix src/dclparser && npm run build --prefix src/dclparser","buildDcnEngine":"npm i --prefix src/xcode/dcn-engine && npm run build --prefix src/xcode/dcn-engine","installCapPlugin":"npm --workspace=cap-bookshop-ams-sample install @sap/ams"},"_npmUser":{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"},"_resolved":"/home/jenkins/agent/workspace/npmjs-build/ams-2.2.0.tgz","_integrity":"sha512-+iwrbBfJsgLnUOBCV7VwEdiVPu+TgvyTrzb4kQVu4fSnh5JQxew9gXIDAOF08zH3zJydmhcrJrlWzsXV8AlZrQ==","workspaces":[".","src/xcode/cap-sample"],"_npmVersion":"10.9.2","description":"AMS client library for node.js","directories":{"lib":"lib"},"_nodeVersion":"23.7.0","dependencies":{"axios":"^1.6.5","yargs":"^17.7.2","winston":"^3.10.0","@sap/xsenv":"^5.2.0","compressing":"^1.9.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.2","nock":"^13.5.6","uuid":"^11.0.0","eslint":"^9.2.0","globals":"^15.2.0","@eslint/js":"^9.2.0","@types/node":"^22.10.1","@sap/ams-dev":"^2.0.0","@types/yargs":"^17.0.33","@cap-js/cds-types":"^0.9.0","@sap/audit-logging":"^6.0.0","eslint-plugin-unused-imports":"^4.1.3"},"peerDependencies":{"@sap/cds":">=7.5"},"peerDependenciesMeta":{"@sap/cds":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ams_2.2.0_1739541201250_0.6483823031879401","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@sap/ams","version":"2.3.0","author":"","license":"SAP DEVELOPER LICENSE AGREEMENT","_id":"@sap/ams@2.3.0","maintainers":[{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"}],"bin":{"deploy-dcl":"lib/bin/deployDcl.js"},"cds":{"requires":{"auth":{"ams":{"cache":{"TTL":900000,"limit":10000,"enabled":true,"[development]":{"enabled":false}},"[java]":{"dclRoot":"srv/src/main/resources/ams","dcnRoot":"srv/src/gen/ams/dcn","policyDeployerRoot":"srv/src/gen/policies"},"dclRoot":"ams/dcl","dcnRoot":"gen/ams/dcn","generateDcl":true,"dclGenerationPackage":"cap"}}}},"dist":{"shasum":"bfac27d276f0bd74189cee90d9dceb645381ef4a","tarball":"https://registry.npmjs.org/@sap/ams/-/ams-2.3.0.tgz","fileCount":119,"integrity":"sha512-fb0L8AvhyTrUYAFCt5lHwgEHfxG4EIA5gdV59Ndv4yElHFDA5HW+rD3FAdLgpQYalvVfNMPwj/cUrXV/y/QHqA==","signatures":[{"sig":"MEUCIQCSWHQTV4/6W9/wpill2rBRg6I7sQ+VFY+yVGi/FgSMKAIgWUWUS92d4xGFKbS1gom3BQSto052TBw2mOo7vLFBNRk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":746657},"main":"index.js","_from":"file:ams-2.3.0.tgz","config":{"dcl_target":"dcl-target"},"engines":{"node":">=18"},"scripts":{"jest":"AMS_DCN_ROOT=$npm_package_config_dcl_target jest","lint":"npx eslint .","test":"npm run jest","capjest":"npx jest -c jestCapIntegration.config.js","captest":"npm run capjest && npm run capSampleJest","prepare":"npm run buildDcnEngine && npm run buildDclParser","pretest":"npm run compile-dcl","posttest":"rm -rf $npm_package_config_dcl_target","precaptest":"[ ! -d 'src/xcode/cap-sample/.git' ] && git submodule add -b master ../ams-cap-sample-nodejs.git src/xcode/cap-sample; npm run installCapPlugin","compile-dcl":"npx compile-dcl -d test/integration/dcl-resources -o $npm_package_config_dcl_target && cp test/integration/dcl-resources/data.json $npm_package_config_dcl_target/data.json","postcaptest":"(git submodule deinit -f src/xcode/cap-sample || true) && (git rm -f src/xcode/cap-sample || true) && (rm -rf .git/modules/src/xcode/cap-sample || true) && (git config -f .gitmodules --remove-section submodule.src/xcode/cap-sample || true) && (rm -rf src/xcode/cap-sample || true)","capSampleJest":"npm --workspace=cap-bookshop-ams-sample run test -- -- --silent","buildDclParser":"npm i --prefix src/dclparser && npm run build --prefix src/dclparser","buildDcnEngine":"npm i --prefix src/xcode/dcn-engine && npm run build --prefix src/xcode/dcn-engine","installCapPlugin":"npm --workspace=cap-bookshop-ams-sample install @sap/ams"," --- Build ---------------------------------------------------------------------------------- ":""," --- CAP tests ------------------------------------------------------------------------------ ":""," --- linting -------------------------------------------------------------------------------- ":""," --- unit tests ----------------------------------------------------------------------------- ":""},"_npmUser":{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"},"_resolved":"/home/jenkins/agent/workspace/npmjs-build/ams-2.3.0.tgz","_integrity":"sha512-fb0L8AvhyTrUYAFCt5lHwgEHfxG4EIA5gdV59Ndv4yElHFDA5HW+rD3FAdLgpQYalvVfNMPwj/cUrXV/y/QHqA==","workspaces":[".","src/xcode/cap-sample"],"_npmVersion":"10.9.2","description":"AMS client library for node.js","directories":{"lib":"lib"},"_nodeVersion":"23.9.0","dependencies":{"axios":"^1.6.5","yargs":"^17.7.2","winston":"^3.10.0","@sap/xsenv":"^5.2.0","compressing":"^1.9.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.2","nock":"^14.0.0","uuid":"^11.0.0","eslint":"^9.2.0","globals":"^16.0.0","@eslint/js":"^9.2.0","@types/node":"^22.10.1","@sap/ams-dev":"^2.0.0","@types/yargs":"^17.0.33","@cap-js/cds-types":"^0.9.0","@sap/audit-logging":"^6.0.0","eslint-plugin-unused-imports":"^4.1.3"},"peerDependencies":{"@sap/cds":">=7.5"},"peerDependenciesMeta":{"@sap/cds":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ams_2.3.0_1740734889571_0.8625662756296393","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"@sap/ams","version":"2.4.0","author":"","license":"SAP DEVELOPER LICENSE AGREEMENT","_id":"@sap/ams@2.4.0","maintainers":[{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"}],"bin":{"deploy-dcl":"lib/bin/deployDcl.js"},"cds":{"requires":{"auth":{"ams":{"cache":{"TTL":900000,"limit":10000,"enabled":true,"[development]":{"enabled":false}},"[java]":{"dclRoot":"srv/src/main/resources/ams","dcnRoot":"srv/src/gen/ams/dcn","policyDeployerRoot":"srv/src/gen/policies"},"dclRoot":"ams/dcl","dcnRoot":"gen/ams/dcn","generateDcl":true,"dclGenerationPackage":"cap"}}}},"dist":{"shasum":"fefbb0aee38d0cbf61c4d774fa9905aeffab11e5","tarball":"https://registry.npmjs.org/@sap/ams/-/ams-2.4.0.tgz","fileCount":120,"integrity":"sha512-N501PO0OwzGiOE37Sh72XvuZeSduaIKCJCF3+DVP8lEE8z7UoAk8bblbCEL0eiSDZZK6VQ5pWVUX3t8qWFSDAw==","signatures":[{"sig":"MEYCIQCfY/dDTYqFoa/+Khd2WKZxEE7etoNlK80Wx8EFFKj9UwIhAMySe1N19Ht0K8MGWlXYj0TXkjir+2FZ8S50aAOL7c+N","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":767709},"main":"index.js","_from":"file:ams-2.4.0.tgz","config":{"dcl_target":"dcl-target"},"engines":{"node":">=18"},"scripts":{"jest":"AMS_DCN_ROOT=$npm_package_config_dcl_target jest","lint":"npx eslint .","test":"npm run jest","prepare":"npm run buildDcnEngine && npm run buildDclParser","pretest":"npm run compile-dcl","posttest":"rm -rf $npm_package_config_dcl_target","capCliJest":"npx jest -c test/cap/cli/jestCapCli.config.js","sampleTest":"npm run capSampleJest && npm run capCliJest","compile-dcl":"npx compile-dcl -d test/integration/dcl-resources -o $npm_package_config_dcl_target && cp test/integration/dcl-resources/data.json $npm_package_config_dcl_target/data.json","capSampleJest":"npm --workspace=ams-cap-nodejs-bookshop run test -- -- --silent","presampleTest":"[ ! -d 'samples/.git' ] && git clone https://github.com/SAP-samples/ams-samples-node.git samples; npm run installToCapSample","buildDclParser":"npm i --prefix src/dclparser && npm run build --prefix src/dclparser","buildDcnEngine":"npm i --prefix src/xcode/dcn-engine && npm run build --prefix src/xcode/dcn-engine","postsampleTest":"rm -rf samples","capIntegrationJest":"npm --workspace=cap-ams-test run test -- -- --silent","capIntegrationTest":"npm run capIntegrationJest","installToCapSample":"npm --workspace=ams-cap-nodejs-bookshop uninstall @sap/ams && npm --workspace=ams-cap-nodejs-bookshop install @sap/ams","precapIntegrationTest":"[ ! -d 'test/cap/cap-ams-test/.git' ] && git clone git@github.wdf.sap.corp:CPSecurity/cap-ams-test.git test/cap/cap-ams-test; (npm --workspace=cap-ams-test uninstall @sap/ams && npm --workspace=cap-ams-test install @sap/ams)","postcapIntegrationTest":"rm -rf test/cap/cap-ams-test"," --- CAP integration tests --------------------------------------------------------------- ":""," --- Build ---------------------------------------------------------------------------------- ":""," --- linting -------------------------------------------------------------------------------- ":""," --- sample integration tests --------------------------------------------------------------- ":""," --- unit tests ----------------------------------------------------------------------------- ":""},"_npmUser":{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"},"_resolved":"/home/jenkins/agent/workspace/npmjs-build/ams-2.4.0.tgz","_integrity":"sha512-N501PO0OwzGiOE37Sh72XvuZeSduaIKCJCF3+DVP8lEE8z7UoAk8bblbCEL0eiSDZZK6VQ5pWVUX3t8qWFSDAw==","workspaces":[".","test/cap/cap-ams-test/node.js","samples/ams-cap-nodejs-bookshop"],"_npmVersion":"10.9.2","description":"AMS client library for node.js","directories":{"lib":"lib"},"_nodeVersion":"23.10.0","dependencies":{"axios":"^1.6.5","yargs":"^17.7.2","winston":"^3.10.0","@sap/xsenv":"^5.2.0","compressing":"^1.9.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.2","nock":"^14.0.0","uuid":"^11.0.0","eslint":"^9.2.0","globals":"^16.0.0","@eslint/js":"^9.2.0","@types/node":"^22.10.1","@sap/ams-dev":"^2.0.0","@types/yargs":"^17.0.33","@cap-js/cds-types":"^0.9.0","@sap/audit-logging":"^6.0.0","eslint-plugin-unused-imports":"^4.1.3"},"peerDependencies":{"@sap/cds":">=7.5"},"peerDependenciesMeta":{"@sap/cds":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ams_2.4.0_1742467872218_0.830667703785221","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@sap/ams","version":"3.0.0","author":"","license":"SAP DEVELOPER LICENSE AGREEMENT","_id":"@sap/ams@3.0.0","maintainers":[{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"}],"bin":{"deploy-dcl":"src/bin/deployDcl.js"},"cds":{"requires":{"auth":{"ams":{"cache":{"TTL":900000,"limit":10000,"enabled":true,"[development]":{"enabled":false}},"[java]":{"dclRoot":"srv/src/main/resources/ams","dcnRoot":"srv/src/gen/ams/dcn","policyDeployerRoot":"srv/src/gen/policies"},"dclRoot":"ams/dcl","dcnRoot":"gen/ams/dcn","generateDcl":true,"dclGenerationPackage":"cap"}}}},"dist":{"shasum":"df6a07d49a0cf963006413cfaf6b97ae6c05a71f","tarball":"https://registry.npmjs.org/@sap/ams/-/ams-3.0.0.tgz","fileCount":116,"integrity":"sha512-Z+gJM3zxOCcJLC1Wa46DFdNxPKVb2sGWR4uTwM5Is7WYUjA9nTwUSy0xShEjTKKtC8DNHljdlyqMjKOj4SB0Rg==","signatures":[{"sig":"MEQCIGy1tq9s/GYiyWQ99dtp8b95vhBvmSVmpukPPgK6qmm6AiBG2llhBrlIWAUtQ5rXJ5gceXh/6zhsfXo7HlcUhYIBWA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":780186},"main":"src/index.js","_from":"file:ams-3.0.0.tgz","config":{"dcl_target":"dcl-target"},"engines":{"node":">=20"},"scripts":{"jest":"AMS_DCN_ROOT=$npm_package_config_dcl_target jest","lint":"npx eslint .","test":"npm run jest","prepare":"npm run buildDcnEngine && npm run buildDclParser","pretest":"npm run compile-dcl","posttest":"rm -rf $npm_package_config_dcl_target","testTypes":"npm run generateTypes && ([ -d 'test/ts/node_modules' ] || npm --prefix test/ts --no-package-lock i .) && npm --prefix test/ts run test","capCliJest":"npx jest -c test/cap/cli/jestCapCli.config.js","sampleTest":"npm run capSampleJest && npm run capCliJest","compile-dcl":"npx compile-dcl -d test/dcl -o $npm_package_config_dcl_target","expressJest":"npm --workspace=ams-nodejs-sample run test","expressTest":"npm run expressJest","capSampleJest":"npm --workspace=ams-cap-nodejs-bookshop run test -- -- --silent","generateTypes":"rm -rf types && tsc -p tsTypeGenerationConfig.json","presampleTest":"[ ! -d 'samples/.git' ] && git clone -b sap_ams_3.0.0 https://github.com/SAP-samples/ams-samples-node.git samples; npm run installToCapSample","buildDclParser":"npm i --prefix src/dclparser && npm run build --prefix src/dclparser","buildDcnEngine":"npm i --prefix src/xcode/dcn-engine && npm run build --prefix src/xcode/dcn-engine","postsampleTest":"rm -rf samples","preexpressTest":"[ ! -d 'express-sample/.git' ] && git clone -b v2 git@github.wdf.sap.corp:CPSecurity/ams-samples-node.git express-sample; npm run installToExpressSample","postexpressTest":"rm -rf express-sample","capIntegrationJest":"npm --workspace=cap-ams-test run test -- -- --silent","capIntegrationTest":"npm run capIntegrationJest","installToCapSample":"npm --workspace=ams-cap-nodejs-bookshop uninstall @sap/ams && npm --workspace=ams-cap-nodejs-bookshop install @sap/ams","precapIntegrationTest":"[ ! -d 'cap-ams-test/.git' ] && git clone git@github.wdf.sap.corp:CPSecurity/cap-ams-test.git cap-ams-test; (npm --workspace=cap-ams-test uninstall @sap/ams && npm --workspace=cap-ams-test install @sap/ams)","installToExpressSample":"npm --workspace=ams-nodejs-sample uninstall @sap/ams && npm --workspace=ams-nodejs-sample install @sap/ams","postcapIntegrationTest":"rm -rf cap-ams-test"," --- Express sample tests ----------------------------------------------------------- ":""," --- CAP integration tests --------------------------------------------------------------- ":""," --- Build ---------------------------------------------------------------------------------- ":""," --- linting -------------------------------------------------------------------------------- ":""," --- sample integration tests --------------------------------------------------------------- ":""," --- unit tests ----------------------------------------------------------------------------- ":""},"typings":"./types/index.d.ts","_npmUser":{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"},"_resolved":"/home/jenkins/agent/workspace/npmjs-build/ams-3.0.0.tgz","_integrity":"sha512-Z+gJM3zxOCcJLC1Wa46DFdNxPKVb2sGWR4uTwM5Is7WYUjA9nTwUSy0xShEjTKKtC8DNHljdlyqMjKOj4SB0Rg==","workspaces":[".","cap-ams-test/node.js","samples/ams-cap-nodejs-bookshop","express-sample"],"_npmVersion":"10.9.2","description":"AMS client library for node.js","directories":{"src":"src"},"_nodeVersion":"23.11.0","dependencies":{"axios":"^1.6.5","yargs":"^17.7.2","winston":"^3.10.0","@sap/xsenv":"^5.2.0","compressing":"^1.9.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.2","nock":"^14.0.0","uuid":"^11.0.0","eslint":"^9.2.0","globals":"^16.0.0","@eslint/js":"^9.2.0","@sap/xssec":"^4.5.0","typescript":"^5.8.2","@types/node":"^22.10.1","@sap/ams-dev":"^2.1.1","@types/yargs":"^17.0.33","@cap-js/cds-types":"^0.10.0","@sap/audit-logging":"^6.0.0","eslint-plugin-unused-imports":"^4.1.3"},"peerDependencies":{"@sap/cds":">=7.5","@sap/xssec":"^4.6.0"},"peerDependenciesMeta":{"@sap/cds":{"optional":true},"@sap/xssec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ams_3.0.0_1744632481483_0.32894064845466997","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"@sap/ams","version":"3.1.0","author":"","license":"SAP DEVELOPER LICENSE AGREEMENT","_id":"@sap/ams@3.1.0","maintainers":[{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"}],"bin":{"deploy-dcl":"src/bin/deployDcl.js"},"cds":{"requires":{"auth":{"ams":{"cache":{"TTL":900000,"limit":10000,"enabled":true,"[development]":{"enabled":false}},"[java]":{"dclRoot":"srv/src/main/resources/ams","dcnRoot":"srv/src/gen/ams/dcn","policyDeployerRoot":"srv/src/gen/policies"},"dclRoot":"ams/dcl","dcnRoot":"gen/ams/dcn","generateDcl":true,"dclGenerationPackage":"cap"}}}},"dist":{"shasum":"c81490b7b751e67996df291cf4523232f1336fe8","tarball":"https://registry.npmjs.org/@sap/ams/-/ams-3.1.0.tgz","fileCount":116,"integrity":"sha512-n5xvMIkKre9e3tcwmXxazrLK54W1lrueUr8m0BF0CFwqVP/BPW9ifQvGDjED1oIKISRdWOaWgGq/GAzWnQ8kdg==","signatures":[{"sig":"MEQCIHdNBnCX0i+23ltV4xTSgqgAltpGtvqAgOye1exJi5S+AiBiP7XE1USwMxGf8uJoQJLAnFP4D05+YGUUa7SJXTF34Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":783790},"main":"src/index.js","_from":"file:ams-3.1.0.tgz","config":{"dcl_target":"dcl-target"},"engines":{"node":">=20"},"scripts":{"jest":"AMS_DCN_ROOT=$npm_package_config_dcl_target jest","lint":"npx eslint .","test":"npm run jest","prepare":"npm run buildDcnEngine && npm run buildDclParser","pretest":"npm run compile-dcl","posttest":"rm -rf $npm_package_config_dcl_target","testTypes":"npm run generateTypes && ([ -d 'test/ts/node_modules' ] || npm --prefix test/ts --no-package-lock i .) && npm --prefix test/ts run test","capCliJest":"npx jest -c test/cap/cli/jestCapCli.config.js","sampleTest":"npm run expressSampleJest && npm run capSampleJest && npm run capCliJest","compile-dcl":"npx compile-dcl -d test/dcl -o $npm_package_config_dcl_target","capSampleJest":"npm --workspace=ams-cap-nodejs-bookshop run test -- -- --silent","generateTypes":"rm -rf types && tsc -p tsTypeGenerationConfig.json","presampleTest":"[ ! -d 'samples/.git' ] && git clone https://github.com/SAP-samples/ams-samples-node.git samples; npm run installToCapSample && npm run installToExpressSample","buildDclParser":"npm i --prefix src/dclparser && npm run build --prefix src/dclparser","buildDcnEngine":"npm i --prefix src/xcode/dcn-engine && npm run build --prefix src/xcode/dcn-engine","postsampleTest":"rm -rf samples","expressSampleJest":"npm --workspace=ams-express-shopping run test -- -- --silent","capIntegrationJest":"npm --workspace=cap-ams-test run test -- -- --silent","capIntegrationTest":"npm run capIntegrationJest","installToCapSample":"npm --workspace=ams-cap-nodejs-bookshop uninstall @sap/ams && npm --workspace=ams-cap-nodejs-bookshop install @sap/ams","precapIntegrationTest":"[ ! -d 'cap-ams-test/.git' ] && git clone git@github.wdf.sap.corp:CPSecurity/cap-ams-test.git cap-ams-test; (npm --workspace=cap-ams-test uninstall @sap/ams && npm --workspace=cap-ams-test install @sap/ams)","installToExpressSample":"npm --workspace=ams-express-shopping uninstall @sap/ams && npm --workspace=ams-express-shopping install @sap/ams","postcapIntegrationTest":"rm -rf cap-ams-test"," --- CAP integration tests --------------------------------------------------------------- ":""," --- Build ---------------------------------------------------------------------------------- ":""," --- linting -------------------------------------------------------------------------------- ":""," --- sample integration tests --------------------------------------------------------------- ":""," --- unit tests ----------------------------------------------------------------------------- ":""},"typings":"./types/index.d.ts","_npmUser":{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"},"_resolved":"/home/jenkins/agent/workspace/npmjs-build/ams-3.1.0.tgz","_integrity":"sha512-n5xvMIkKre9e3tcwmXxazrLK54W1lrueUr8m0BF0CFwqVP/BPW9ifQvGDjED1oIKISRdWOaWgGq/GAzWnQ8kdg==","workspaces":[".","cap-ams-test/node.js","samples/ams-cap-nodejs-bookshop","samples/ams-express-shopping"],"_npmVersion":"11.3.0","description":"AMS client library for node.js","directories":{"src":"src"},"_nodeVersion":"24.0.1","dependencies":{"axios":"^1.6.5","yargs":"^17.7.2","winston":"^3.10.0","@sap/xsenv":"^5.2.0","compressing":"^1.9.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.2","nock":"^14.0.0","uuid":"^11.0.0","eslint":"^9.2.0","globals":"^16.0.0","@eslint/js":"^9.2.0","@sap/xssec":"^4.5.0","typescript":"^5.8.2","@types/node":"^20.17.30","@sap/ams-dev":"^2.1.1","@types/yargs":"^17.0.33","@types/express":"^5.0.1","@cap-js/cds-types":"^0.10.0","@sap/audit-logging":"^6.0.0","eslint-plugin-unused-imports":"^4.1.3"},"peerDependencies":{"@sap/cds":">=7.5","@sap/xssec":"^4.6.0"},"peerDependenciesMeta":{"@sap/cds":{"optional":true},"@sap/xssec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ams_3.1.0_1747149961754_0.06461946655601625","host":"s3://npm-registry-packages-npm-production"}},"3.1.1":{"name":"@sap/ams","version":"3.1.1","author":"","license":"SAP DEVELOPER LICENSE AGREEMENT","_id":"@sap/ams@3.1.1","maintainers":[{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"}],"bin":{"deploy-dcl":"src/bin/deployDcl.js"},"cds":{"requires":{"auth":{"ams":{"cache":{"TTL":900000,"limit":10000,"enabled":true,"[development]":{"enabled":false}},"[java]":{"dclRoot":"srv/src/main/resources/ams","dcnRoot":"srv/src/gen/ams/dcn","policyDeployerRoot":"srv/src/gen/policies"},"dclRoot":"ams/dcl","dcnRoot":"gen/ams/dcn","generateDcl":true,"dclGenerationPackage":"cap"}}}},"dist":{"shasum":"c9d226920876d800b19fc689eaeaaba2e5fd6d29","tarball":"https://registry.npmjs.org/@sap/ams/-/ams-3.1.1.tgz","fileCount":214,"integrity":"sha512-E1cCUP92svMB5uzw/GUb8PUixmKIdTuA2MGcIFuKS7VZl5jVCTr3v3wIkZVZ6QxwUyBbg+OG1U11pRkkNwrJDQ==","signatures":[{"sig":"MEQCIDQrlQ1RP8gcv9jWzt2kEcc4SIkeCEtcb/a2ZvKU+BHXAiAtzKML0g/4EMRrnLKGanTl8biTp1L5YzmnkkOfRakH+A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":871458},"main":"src/index.js","_from":"file:ams-3.1.1.tgz","config":{"dcl_target":"dcl-target"},"engines":{"node":">=20"},"scripts":{"jest":"AMS_DCN_ROOT=$npm_package_config_dcl_target jest","lint":"npx eslint .","test":"npm run jest","prepare":"npm run buildDcnEngine && npm run buildDclParser","pretest":"npm run compile-dcl","posttest":"rm -rf $npm_package_config_dcl_target","testTypes":"npm run generateTypes && ([ -d 'test/ts/node_modules' ] || npm --prefix test/ts --no-package-lock i .) && npm --prefix test/ts run test","capCliJest":"npx jest -c test/cap/cli/jestCapCli.config.js","sampleTest":"npm run expressSampleJest && npm run capSampleJest && npm run capCliJest","compile-dcl":"npx compile-dcl -d test/dcl -o $npm_package_config_dcl_target","capSampleJest":"npm --workspace=ams-cap-nodejs-bookshop run test -- -- --silent","generateTypes":"rm -rf types && tsc -p tsTypeGenerationConfig.json","presampleTest":"[ ! -d 'samples/.git' ] && git clone https://github.com/SAP-samples/ams-samples-node.git samples; npm run installToCapSample && npm run installToExpressSample","buildDclParser":"npm i --prefix src/dclparser && npm run build --prefix src/dclparser","buildDcnEngine":"npm i --prefix src/xcode/dcn-engine && npm run build --prefix src/xcode/dcn-engine","postsampleTest":"rm -rf samples","expressSampleJest":"npm --workspace=ams-express-shopping run test -- -- --silent","capIntegrationJest":"npm --workspace=cap-ams-test run test -- -- --silent","capIntegrationTest":"npm run capIntegrationJest","installToCapSample":"npm --workspace=ams-cap-nodejs-bookshop uninstall @sap/ams && npm --workspace=ams-cap-nodejs-bookshop install @sap/ams","precapIntegrationTest":"[ ! -d 'cap-ams-test/.git' ] && git clone git@github.wdf.sap.corp:CPSecurity/cap-ams-test.git cap-ams-test; (npm --workspace=cap-ams-test uninstall @sap/ams && npm --workspace=cap-ams-test install @sap/ams)","installToExpressSample":"npm --workspace=ams-express-shopping uninstall @sap/ams && npm --workspace=ams-express-shopping install @sap/ams","postcapIntegrationTest":"rm -rf cap-ams-test"," --- CAP integration tests --------------------------------------------------------------- ":""," --- Build ---------------------------------------------------------------------------------- ":""," --- linting -------------------------------------------------------------------------------- ":""," --- sample integration tests --------------------------------------------------------------- ":""," --- unit tests ----------------------------------------------------------------------------- ":""},"typings":"./types/index.d.ts","_npmUser":{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"},"_resolved":"/home/jenkins/agent/workspace/npmjs-build/ams-3.1.1.tgz","_integrity":"sha512-E1cCUP92svMB5uzw/GUb8PUixmKIdTuA2MGcIFuKS7VZl5jVCTr3v3wIkZVZ6QxwUyBbg+OG1U11pRkkNwrJDQ==","workspaces":[".","cap-ams-test/node.js","samples/ams-cap-nodejs-bookshop","samples/ams-express-shopping"],"_npmVersion":"11.3.0","description":"AMS client library for node.js","directories":{"src":"src"},"_nodeVersion":"24.0.2","dependencies":{"axios":"^1.6.5","yargs":"^17.7.2","winston":"^3.10.0","@sap/xsenv":"^5.2.0","compressing":"^1.9.0","@types/express":"^4"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.2","nock":"^14.0.0","uuid":"^11.0.0","eslint":"^9.2.0","globals":"^16.0.0","@eslint/js":"^9.2.0","@sap/xssec":"^4.5.0","typescript":"^5.8.2","@types/node":"^20.17.30","@sap/ams-dev":"^2.1.1","@types/yargs":"^17.0.33","@cap-js/cds-types":"^0.10.0","@sap/audit-logging":"^6.0.0","eslint-plugin-unused-imports":"^4.1.3"},"peerDependencies":{"@sap/cds":">=7.5","@sap/xssec":"^4.6.0"},"peerDependenciesMeta":{"@sap/cds":{"optional":true},"@sap/xssec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ams_3.1.1_1747394733311_0.09000061436827389","host":"s3://npm-registry-packages-npm-production"}},"3.1.2":{"name":"@sap/ams","version":"3.1.2","author":"","license":"SAP DEVELOPER LICENSE AGREEMENT","_id":"@sap/ams@3.1.2","maintainers":[{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"}],"bin":{"deploy-dcl":"src/bin/deployDcl.js"},"cds":{"requires":{"auth":{"ams":{"cache":{"TTL":900000,"limit":10000,"enabled":true,"[development]":{"enabled":false}},"[java]":{"dclRoot":"srv/src/main/resources/ams","dcnRoot":"srv/src/gen/ams/dcn","policyDeployerRoot":"srv/src/gen/policies"},"dclRoot":"ams/dcl","dcnRoot":"gen/ams/dcn","generateDcl":true,"dclGenerationPackage":"cap"}}}},"dist":{"shasum":"1251a631159f5777e5bc081f8f36a2592cd4835d","tarball":"https://registry.npmjs.org/@sap/ams/-/ams-3.1.2.tgz","fileCount":214,"integrity":"sha512-SVnK2Fdvjr+Vekt7Pl4nDGjikV3+2BNx+lxmv6uzDi2TDaABlN+Lktpe2fmbXvLFdoTZ5doAQbb+PipvZxI7UA==","signatures":[{"sig":"MEQCIEJ4Eeo0zDrFYD7ddbHJrt2GX8zHmss+LiOJ1G8s4pQJAiAuk6Gm05EL/BrTw3u127x1qtbXqCO61RYoeaZnWLNCzA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":873540},"main":"src/index.js","_from":"file:ams-3.1.2.tgz","config":{"dcl_target":"dcl-target"},"engines":{"node":">=20"},"scripts":{"jest":"AMS_DCN_ROOT=$npm_package_config_dcl_target jest","lint":"npx eslint .","test":"npm run jest","prepare":"npm run buildDcnEngine && npm run buildDclParser","pretest":"npm run compile-dcl","posttest":"rm -rf $npm_package_config_dcl_target","testTypes":"npm run generateTypes && ([ -d 'test/ts/node_modules' ] || npm --prefix test/ts --no-package-lock i .) && npm --prefix test/ts run test","capCliJest":"npx jest -c test/cap/cli/jestCapCli.config.js","sampleTest":"npm run expressSampleJest && npm run capSampleJest && npm run capCliJest","compile-dcl":"npx compile-dcl -d test/dcl -o $npm_package_config_dcl_target","capSampleJest":"npm --workspace=ams-cap-nodejs-bookshop run test -- -- --silent","generateTypes":"rm -rf types && tsc -p tsTypeGenerationConfig.json","presampleTest":"[ ! -d 'samples/.git' ] && git clone https://github.com/SAP-samples/ams-samples-node.git samples; npm run installToCapSample && npm run installToExpressSample","buildDclParser":"npm i --prefix src/dclparser && npm run build --prefix src/dclparser","buildDcnEngine":"npm i --prefix src/xcode/dcn-engine && npm run build --prefix src/xcode/dcn-engine","postsampleTest":"rm -rf samples","expressSampleJest":"npm --workspace=ams-express-shopping run test -- -- --silent","capIntegrationJest":"npm --workspace=cap-ams-test run test -- -- --silent","capIntegrationTest":"npm run capIntegrationJest","installToCapSample":"npm --workspace=ams-cap-nodejs-bookshop uninstall @sap/ams && npm --workspace=ams-cap-nodejs-bookshop install @sap/ams","precapIntegrationTest":"[ ! -d 'cap-ams-test/.git' ] && git clone git@github.wdf.sap.corp:CPSecurity/cap-ams-test.git cap-ams-test; (npm --workspace=cap-ams-test uninstall @sap/ams && npm --workspace=cap-ams-test install @sap/ams)","installToExpressSample":"npm --workspace=ams-express-shopping uninstall @sap/ams && npm --workspace=ams-express-shopping install @sap/ams","postcapIntegrationTest":"rm -rf cap-ams-test"," --- CAP integration tests --------------------------------------------------------------- ":""," --- Build ---------------------------------------------------------------------------------- ":""," --- linting -------------------------------------------------------------------------------- ":""," --- sample integration tests --------------------------------------------------------------- ":""," --- unit tests ----------------------------------------------------------------------------- ":""},"typings":"./types/index.d.ts","_npmUser":{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"},"_resolved":"/home/jenkins/agent/workspace/npmjs-build/ams-3.1.2.tgz","_integrity":"sha512-SVnK2Fdvjr+Vekt7Pl4nDGjikV3+2BNx+lxmv6uzDi2TDaABlN+Lktpe2fmbXvLFdoTZ5doAQbb+PipvZxI7UA==","workspaces":[".","cap-ams-test/node.js","samples/ams-cap-nodejs-bookshop","samples/ams-express-shopping"],"_npmVersion":"11.3.0","description":"AMS client library for node.js","directories":{"src":"src"},"_nodeVersion":"24.0.2","dependencies":{"axios":"^1.6.5","yargs":"^17.7.2","winston":"^3.10.0","@sap/xsenv":"^5.2.0","compressing":"^1.9.0","@types/express":"^4"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.2","nock":"^14.0.0","uuid":"^11.0.0","eslint":"^9.2.0","globals":"^16.0.0","@eslint/js":"^9.2.0","@sap/xssec":"^4.5.0","typescript":"^5.8.2","@types/node":"^20.17.30","@sap/ams-dev":"^2.1.1","@types/yargs":"^17.0.33","@cap-js/cds-types":"^0.10.0","@sap/audit-logging":"^6.0.0","eslint-plugin-unused-imports":"^4.1.3"},"peerDependencies":{"@sap/cds":">=7.5","@sap/xssec":"^4.6.0"},"peerDependenciesMeta":{"@sap/cds":{"optional":true},"@sap/xssec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ams_3.1.2_1748001785957_0.8570693100198907","host":"s3://npm-registry-packages-npm-production"}},"3.1.3":{"name":"@sap/ams","version":"3.1.3","author":"","license":"SAP DEVELOPER LICENSE AGREEMENT","_id":"@sap/ams@3.1.3","maintainers":[{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"}],"bin":{"deploy-dcl":"src/bin/deployDcl.js"},"cds":{"requires":{"auth":{"ams":{"cache":{"TTL":900000,"limit":10000,"enabled":true,"[development]":{"enabled":false}},"[java]":{"dclRoot":"srv/src/main/resources/ams","dcnRoot":"srv/src/gen/ams/dcn","policyDeployerRoot":"srv/src/gen/policies"},"dclRoot":"ams/dcl","dcnRoot":"gen/ams/dcn","generateDcl":true,"dclGenerationPackage":"cap"}}}},"dist":{"shasum":"dec1f11f3121a0aa413a50452cee12b3625b262a","tarball":"https://registry.npmjs.org/@sap/ams/-/ams-3.1.3.tgz","fileCount":214,"integrity":"sha512-5CRLFVmMmjlilmUH+jbFUelrBw+OIpZ0Cy/VRX5txOI/Jzoq89MNwwiGhgia/BjULKtmP+4Y8Rk7JqgJlvfwrQ==","signatures":[{"sig":"MEUCIQDrkSfCEYdmIDgY0NRIeeMAs7coEgwGrNeV9Q6Mjj12ZgIgbtIb4NwNJqfPWd2mC7n/as74+94dqWl3FRBMtmbJsNE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":877656},"main":"src/index.js","_from":"file:ams-3.1.3.tgz","config":{"dcl_target":"dcl-target"},"engines":{"node":">=20"},"scripts":{"jest":"AMS_DCN_ROOT=$npm_package_config_dcl_target jest","lint":"npx eslint .","test":"npm run jest","prepare":"npm run buildDcnEngine && npm run buildDclParser","pretest":"npm run compile-dcl","posttest":"rm -rf $npm_package_config_dcl_target","testTypes":"npm run generateTypes && ([ -d 'test/ts/node_modules' ] || npm --prefix test/ts --no-package-lock i .) && npm --prefix test/ts run test","capCliJest":"npx jest -c test/cap/cli/jestCapCli.config.js","sampleTest":"npm run expressSampleJest && npm run capSampleJest && npm run capCliJest","compile-dcl":"npx compile-dcl -d test/dcl -o $npm_package_config_dcl_target","capSampleJest":"npm --workspace=ams-cap-nodejs-bookshop run test -- -- --silent","generateTypes":"rm -rf types && tsc -p tsTypeGenerationConfig.json","presampleTest":"[ ! -d 'samples/.git' ] && git clone https://github.com/SAP-samples/ams-samples-node.git samples; npm run installToCapSample && npm run installToExpressSample","buildDclParser":"npm i --prefix src/dclparser && npm run build --prefix src/dclparser","buildDcnEngine":"npm i --prefix src/xcode/dcn-engine && npm run build --prefix src/xcode/dcn-engine","postsampleTest":"rm -rf samples","expressSampleJest":"npm --workspace=ams-express-shopping run test -- -- --silent","capIntegrationJest":"npm --workspace=cap-ams-test run test -- -- --silent","capIntegrationTest":"npm run capIntegrationJest","installToCapSample":"npm --workspace=ams-cap-nodejs-bookshop uninstall @sap/ams && npm --workspace=ams-cap-nodejs-bookshop install @sap/ams","precapIntegrationTest":"[ ! -d 'cap-ams-test/.git' ] && git clone git@github.wdf.sap.corp:CPSecurity/cap-ams-test.git cap-ams-test; (npm --workspace=cap-ams-test uninstall @sap/ams && npm --workspace=cap-ams-test install @sap/ams)","installToExpressSample":"npm --workspace=ams-express-shopping uninstall @sap/ams && npm --workspace=ams-express-shopping install @sap/ams","postcapIntegrationTest":"rm -rf cap-ams-test"," --- CAP integration tests --------------------------------------------------------------- ":""," --- Build ---------------------------------------------------------------------------------- ":""," --- linting -------------------------------------------------------------------------------- ":""," --- sample integration tests --------------------------------------------------------------- ":""," --- unit tests ----------------------------------------------------------------------------- ":""},"typings":"./types/index.d.ts","_npmUser":{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"},"_resolved":"/home/jenkins/agent/workspace/npmjs-build/ams-3.1.3.tgz","_integrity":"sha512-5CRLFVmMmjlilmUH+jbFUelrBw+OIpZ0Cy/VRX5txOI/Jzoq89MNwwiGhgia/BjULKtmP+4Y8Rk7JqgJlvfwrQ==","workspaces":[".","cap-ams-test/node.js","samples/ams-cap-nodejs-bookshop","samples/ams-express-shopping"],"_npmVersion":"11.3.0","description":"AMS client library for node.js","directories":{"src":"src"},"_nodeVersion":"24.2.0","dependencies":{"axios":"^1.6.5","yargs":"^17.7.2","winston":"^3.10.0","@sap/xsenv":"^5.2.0","compressing":"^1.9.0","@types/express":"^4"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.2","nock":"^14.0.0","uuid":"^11.0.0","eslint":"^9.2.0","globals":"^16.0.0","@eslint/js":"^9.2.0","@sap/xssec":"^4.5.0","typescript":"^5.8.2","@types/node":"^20.17.30","@sap/ams-dev":"^2.1.1","@types/yargs":"^17.0.33","@cap-js/cds-types":"^0.11.0","@sap/audit-logging":"^6.0.0","eslint-plugin-unused-imports":"^4.1.3"},"peerDependencies":{"@sap/cds":">=7.5","@sap/xssec":"^4.6.0"},"peerDependenciesMeta":{"@sap/cds":{"optional":true},"@sap/xssec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ams_3.1.3_1749738137675_0.6102348575344889","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"@sap/ams","version":"3.2.0","author":"","license":"SAP DEVELOPER LICENSE AGREEMENT","_id":"@sap/ams@3.2.0","maintainers":[{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"}],"bin":{"deploy-dcl":"src/bin/deployDcl.js"},"cds":{"requires":{"auth":{"ams":{"cache":{"TTL":900000,"limit":10000,"enabled":true,"[development]":{"enabled":false}},"[java]":{"dclRoot":"srv/src/main/resources/ams","dcnRoot":"srv/src/gen/ams/dcn","policyDeployerRoot":"srv/src/gen/policies"},"dclRoot":"ams/dcl","dcnRoot":"gen/ams/dcn","generateDcl":true,"dclGenerationPackage":"cap"}}}},"dist":{"shasum":"5414132e26be466207ec29d95993255f35e2c4fa","tarball":"https://registry.npmjs.org/@sap/ams/-/ams-3.2.0.tgz","fileCount":223,"integrity":"sha512-iyPWFlIEEm7FbhuboDPUIYqlqvs8odOTglIOMGoml9FEdoXaZWZqvZniqZp3wi5hPWUAd388V6R8ogRcIWwbsg==","signatures":[{"sig":"MEYCIQDWPrt7JqiGn6ezjA33RAhGssy/p9JOPKZBO7T6Anm+wwIhAMKRlUR2b39rV36ETfexCQfVz5LLew0MOAtFXum1mvqQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":896867},"main":"src/index.js","_from":"file:ams-3.2.0.tgz","config":{"dcl_target":"test/dcn"},"engines":{"node":">=20"},"scripts":{"jest":"AMS_DCN_ROOT=$npm_package_config_dcl_target jest","lint":"npx eslint .","test":"npm run jest","prepack":"npm run generateTypes","prepare":"npm run buildDcnEngine && npm run buildDclParser","pretest":"npm run compileDcl","posttest":"rm -rf $npm_package_config_dcl_target","testTypes":"npm run generateTypes && ([ -d 'test/ts/node_modules' ] || npm --prefix test/ts --no-package-lock i .) && npm --prefix test/ts run test","compileDcl":"npx compile-dcl -d test/dcl -o $npm_package_config_dcl_target","generateTypes":"rm -rf types && tsc -p tsTypeGenerationConfig.json","testDcnEngine":"npm --prefix src/xcode/dcn-engine run test","buildDclParser":"npm i --prefix src/dclparser && npm run build --prefix src/dclparser","buildDcnEngine":"npm i --prefix src/xcode/dcn-engine && npm run build --prefix src/xcode/dcn-engine"," --- tests ----------------------------------------------------------------------------- ":""," --- Build ---------------------------------------------------------------------------------- ":""},"typings":"./types/index.d.ts","_npmUser":{"name":"sap_extncrepos","actor":{"name":"sap_extncrepos","type":"user","email":"mob.extrepo.stores@sap.com"},"email":"mob.extrepo.stores@sap.com"},"_resolved":"/home/jenkins/agent/workspace/npmjs-build/ams-3.2.0.tgz","_integrity":"sha512-iyPWFlIEEm7FbhuboDPUIYqlqvs8odOTglIOMGoml9FEdoXaZWZqvZniqZp3wi5hPWUAd388V6R8ogRcIWwbsg==","_npmVersion":"11.4.2","description":"AMS client library for node.js","directories":{"src":"src"},"_nodeVersion":"24.3.0","dependencies":{"axios":"^1.6.5","debug":"^4.4.1","yargs":"^17.7.2","winston":"^3.10.0","@sap/xsenv":"^5.2.0","compressing":"^1.9.0","@types/express":"^4"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.0","nock":"^14.0.0","uuid":"^11.0.0","eslint":"^9.2.0","globals":"^16.0.0","@eslint/js":"^9.2.0","@sap/xssec":"^4.5.0","typescript":"^5.8.2","@types/jest":"^30.0.0","@types/node":"^20.17.30","@sap/ams-dev":"^2.1.1","@types/yargs":"^17.0.33","@cap-js/cds-types":"^0.12.0","@sap/audit-logging":"^6.0.0","eslint-plugin-unused-imports":"^4.1.3"},"peerDependencies":{"@sap/cds":">=7.5","@sap/xssec":"^4.6.0"},"peerDependenciesMeta":{"@sap/cds":{"optional":true},"@sap/xssec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ams_3.2.0_1751296880441_0.3974239980958698","host":"s3://npm-registry-packages-npm-production"}},"3.3.0":{"name":"@sap/ams","version":"3.3.0","author":"","license":"SAP DEVELOPER LICENSE AGREEMENT","_id":"@sap/ams@3.3.0","maintainers":[{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"}],"bin":{"deploy-dcl":"src/bin/deployDcl.js"},"cds":{"requires":{"auth":{"ams":{"cache":{"TTL":900000,"limit":10000,"enabled":true,"[development]":{"enabled":false}},"[java]":{"dclRoot":"srv/src/main/resources/ams","dcnRoot":"srv/src/gen/ams/dcn","policyDeployerRoot":"srv/src/gen/policies"},"dclRoot":"ams/dcl","dcnRoot":"gen/ams/dcn","generateDcl":true,"dclGenerationPackage":"cap"}}}},"dist":{"shasum":"eb5400a3397f823bdadcd37706cfca33a95f0d66","tarball":"https://registry.npmjs.org/@sap/ams/-/ams-3.3.0.tgz","fileCount":223,"integrity":"sha512-Y1+RXDH1TLyFjo2DK7vDAVapPe6besum6MeXsP4LI5H0kB8bQ62sH45jfQfPuQZBydr5Uz7kDwhYyzS8oSDj+Q==","signatures":[{"sig":"MEQCIFMbj/VvRZU7+ymj5Z20YgPJXNU1HGMBmbjgROjljP6uAiA1bsd0YTLrE0DoNfwWvECxWB/RFQloVIkvF5R4BV+L+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":902500},"main":"src/index.js","_from":"file:ams-3.3.0.tgz","config":{"dcl_target":"test/dcn"},"engines":{"node":">=20"},"scripts":{"jest":"AMS_DCN_ROOT=$npm_package_config_dcl_target jest","lint":"npx eslint .","test":"npm run jest","prepack":"npm run generateTypes","prepare":"npm run buildDcnEngine && npm run buildDclParser","pretest":"npm run compileDcl","posttest":"rm -rf $npm_package_config_dcl_target","testTypes":"npm run generateTypes && ([ -d 'test/ts/node_modules' ] || npm --prefix test/ts --no-package-lock i .) && npm --prefix test/ts run test","compileDcl":"npx compile-dcl -d test/dcl -o $npm_package_config_dcl_target","generateTypes":"rm -rf types && tsc -p tsTypeGenerationConfig.json","testDcnEngine":"npm --prefix src/xcode/dcn-engine run test","buildDclParser":"npm i --prefix src/dclparser && npm run build --prefix src/dclparser","buildDcnEngine":"npm i --prefix src/xcode/dcn-engine && npm run build --prefix src/xcode/dcn-engine"," --- tests ----------------------------------------------------------------------------- ":""," --- Build ---------------------------------------------------------------------------------- ":""},"typings":"./types/index.d.ts","_npmUser":{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"},"_resolved":"/home/jenkins/agent/workspace/npmjs-build/ams-3.3.0.tgz","_integrity":"sha512-Y1+RXDH1TLyFjo2DK7vDAVapPe6besum6MeXsP4LI5H0kB8bQ62sH45jfQfPuQZBydr5Uz7kDwhYyzS8oSDj+Q==","_npmVersion":"11.4.2","description":"AMS client library for node.js","directories":{"src":"src"},"_nodeVersion":"24.4.1","dependencies":{"axios":"^1.6.5","debug":"^4.4.1","yargs":"^17.7.2","winston":"^3.10.0","@sap/xsenv":"^5.2.0","compressing":"^1.9.0","@types/express":"^4"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.0","nock":"^14.0.0","uuid":"^11.0.0","eslint":"^9.2.0","globals":"^16.0.0","@eslint/js":"^9.2.0","@sap/xssec":"^4.5.0","typescript":"^5.8.2","@types/jest":"^30.0.0","@types/node":"^20.17.30","@sap/ams-dev":"^2.1.1","@types/yargs":"^17.0.33","@cap-js/cds-types":"^0.13.0","@sap/audit-logging":"^6.0.0","eslint-plugin-unused-imports":"^4.1.3"},"peerDependencies":{"@sap/cds":">=7.5","@sap/xssec":"^4.6.0"},"peerDependenciesMeta":{"@sap/cds":{"optional":true},"@sap/xssec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ams_3.3.0_1753278761695_0.8580621575261573","host":"s3://npm-registry-packages-npm-production"}},"3.4.0":{"name":"@sap/ams","version":"3.4.0","author":"","license":"SAP DEVELOPER LICENSE AGREEMENT","_id":"@sap/ams@3.4.0","maintainers":[{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"}],"bin":{"deploy-dcl":"src/bin/deployDcl.js"},"cds":{"requires":{"auth":{"ams":{"[java]":{"dclRoot":"srv/src/main/resources/ams","dcnRoot":"srv/src/gen/ams/dcn","policyDeployerRoot":"srv/src/gen/policies"},"dclRoot":"ams/dcl","dcnRoot":"gen/ams/dcn","generateDcl":true,"dclGenerationPackage":"cap","generatePoliciesDeployer":"auto"}}}},"dist":{"shasum":"ca20047fecd3b1e3dd0f48234a8c0d0a2cfacc35","tarball":"https://registry.npmjs.org/@sap/ams/-/ams-3.4.0.tgz","fileCount":223,"integrity":"sha512-5cqVlkT5jrEn/a5HlXzMWU5NXqOuCAoljc/DEKj5fOB8RbgeqtyT5WiEx22B6fe+h0f9R0xW7xTnC6z6D6avVg==","signatures":[{"sig":"MEUCIDzSI8/BzF5gz5+Ababe99tsdB2YE7/YIAOOlsjmC0PWAiEA+wmxYvaS6MYpTG0AtRfI657zt3yyfNO50lK55M0YRS0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":905775},"main":"src/index.js","_from":"file:ams-3.4.0.tgz","config":{"dcl_target":"test/dcn"},"engines":{"node":">=20"},"scripts":{"jest":"AMS_DCN_ROOT=$npm_package_config_dcl_target jest","lint":"npx eslint .","test":"npm run jest","prepack":"npm run generateTypes","prepare":"npm run buildDcnEngine && npm run buildDclParser","pretest":"npm run compileDcl","posttest":"rm -rf $npm_package_config_dcl_target","testTypes":"npm run generateTypes && ([ -d 'test/ts/node_modules' ] || npm --prefix test/ts --no-package-lock i .) && npm --prefix test/ts run test","compileDcl":"npx compile-dcl -d test/dcl -o $npm_package_config_dcl_target","generateTypes":"rm -rf types && tsc -p tsTypeGenerationConfig.json","testDcnEngine":"npm --prefix src/xcode/dcn-engine run test","buildDclParser":"npm i --prefix src/dclparser && npm run build --prefix src/dclparser","buildDcnEngine":"npm i --prefix src/xcode/dcn-engine && npm run build --prefix src/xcode/dcn-engine"," --- tests ----------------------------------------------------------------------------- ":""," --- Build ---------------------------------------------------------------------------------- ":""},"typings":"./types/index.d.ts","_npmUser":{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"},"_resolved":"/home/jenkins/agent/workspace/npmjs-build/ams-3.4.0.tgz","_integrity":"sha512-5cqVlkT5jrEn/a5HlXzMWU5NXqOuCAoljc/DEKj5fOB8RbgeqtyT5WiEx22B6fe+h0f9R0xW7xTnC6z6D6avVg==","_npmVersion":"11.6.0","description":"AMS client library for node.js","directories":{"src":"src"},"_nodeVersion":"24.9.0","dependencies":{"axios":"^1.6.5","debug":"^4.4.1","yargs":"^17.7.2","@sap/xsenv":"^6.0.0","compressing":"^2.0.0","@types/express":"^4"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.0","nock":"^14.0.0","eslint":"^9.2.0","globals":"^16.0.0","@eslint/js":"^9.2.0","@sap/xssec":"^4.5.0","typescript":"^5.8.2","@types/jest":"^30.0.0","@types/node":"^20.17.30","@sap/ams-dev":"^2.1.1","@types/yargs":"^17.0.33","@cap-js/cds-types":"^0.15.0","eslint-plugin-unused-imports":"^4.1.3"},"peerDependencies":{"@sap/cds":">=7.5","@sap/xssec":"^4.6.0"},"peerDependenciesMeta":{"@sap/cds":{"optional":true},"@sap/xssec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ams_3.4.0_1759321829736_0.5067813632381672","host":"s3://npm-registry-packages-npm-production"}},"3.5.0":{"name":"@sap/ams","version":"3.5.0","author":"","license":"SAP DEVELOPER LICENSE AGREEMENT","_id":"@sap/ams@3.5.0","maintainers":[{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"}],"bin":{"deploy-dcl":"src/bin/deployDcl.js"},"cds":{"requires":{"auth":{"ams":{"[java]":{"dclRoot":"srv/src/main/resources/ams","dcnRoot":"srv/src/gen/ams/dcn","policyDeployerRoot":"srv/src/gen/policies"},"dclRoot":"ams/dcl","dcnRoot":"gen/ams/dcn","generateDcl":true,"dclGenerationPackage":"cap","generatePoliciesDeployer":"auto"}}}},"dist":{"shasum":"aa3a447632cd7937e616598bd77efbc719eb7a34","tarball":"https://registry.npmjs.org/@sap/ams/-/ams-3.5.0.tgz","fileCount":229,"integrity":"sha512-s+dQtaL3LWcJve2+5z8y86EK7eslo35aYlYctaV2q5GSdn3JeSLgsOcUrfFW/sa6sVef8xkQNhfYWe5RYegSOQ==","signatures":[{"sig":"MEUCIGXEGPrfziKHPNK2ce/pCmTnAJG0DCK6/TSPdtEoevUXAiEA3pTi4joWVuY8oq1v/Mq2AsDE4gexCImVTj39/gMgzsw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":909798},"main":"src/index.js","_from":"file:ams-3.5.0.tgz","config":{"dcl_target":"test/dcn"},"engines":{"node":">=20"},"scripts":{"jest":"AMS_DCN_ROOT=$npm_package_config_dcl_target jest","lint":"npx eslint .","test":"npm run jest","prepack":"npm run generateTypes","prepare":"npm run buildDcnEngine && npm run buildDclParser","pretest":"npm run compileDcl","posttest":"rm -rf $npm_package_config_dcl_target","testTypes":"npm run generateTypes && ([ -d 'test/ts/node_modules' ] || npm --prefix test/ts --no-package-lock i .) && npm --prefix test/ts run test","compileDcl":"npx compile-dcl -d test/dcl -o $npm_package_config_dcl_target","generateTypes":"rm -rf types && tsc -p tsTypeGenerationConfig.json","testDcnEngine":"npm --prefix src/xcode/dcn-engine run test","buildDclParser":"npm i --prefix src/dclparser && npm run build --prefix src/dclparser","buildDcnEngine":"npm i --prefix src/xcode/dcn-engine && npm run build --prefix src/xcode/dcn-engine"," --- tests ----------------------------------------------------------------------------- ":""," --- Build ---------------------------------------------------------------------------------- ":""},"typings":"./types/index.d.ts","_npmUser":{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"},"_resolved":"/home/jenkins/agent/workspace/npmjs-build/ams-3.5.0.tgz","_integrity":"sha512-s+dQtaL3LWcJve2+5z8y86EK7eslo35aYlYctaV2q5GSdn3JeSLgsOcUrfFW/sa6sVef8xkQNhfYWe5RYegSOQ==","_npmVersion":"11.6.2","description":"AMS client library for node.js","directories":{"src":"src"},"_nodeVersion":"25.1.0","dependencies":{"axios":"^1.6.5","debug":"^4.4.1","yargs":"^17.7.2","@sap/xsenv":"^6.0.0","compressing":"^2.0.0","@types/express":"^4"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.0","nock":"^14.0.0","eslint":"^9.2.0","globals":"^16.0.0","@eslint/js":"^9.2.0","@sap/xssec":"^4.5.0","typescript":"^5.8.2","@types/jest":"^30.0.0","@types/node":"^20.17.30","@sap/ams-dev":"^2.1.1","@types/yargs":"^17.0.33","@cap-js/cds-types":"^0.15.0","eslint-plugin-unused-imports":"^4.1.3"},"peerDependencies":{"@sap/cds":">=7.5","@sap/xssec":"^4.6.0"},"peerDependenciesMeta":{"@sap/cds":{"optional":true},"@sap/xssec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ams_3.5.0_1762331208877_0.9828376561227434","host":"s3://npm-registry-packages-npm-production"}},"3.5.1":{"name":"@sap/ams","version":"3.5.1","author":"","license":"SAP DEVELOPER LICENSE AGREEMENT","_id":"@sap/ams@3.5.1","maintainers":[{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"}],"bin":{"deploy-dcl":"src/bin/deployDcl.js"},"cds":{"requires":{"auth":{"ams":{"[java]":{"dclRoot":"srv/src/main/resources/ams","dcnRoot":"srv/src/gen/ams/dcn","policyDeployerRoot":"srv/src/gen/policies"},"dclRoot":"ams/dcl","dcnRoot":"gen/ams/dcn","generateDcl":true,"dclGenerationPackage":"cap","generatePoliciesDeployer":"auto"}}}},"dist":{"shasum":"28721a839724bcb0bd1c833932933412c0a4d67b","tarball":"https://registry.npmjs.org/@sap/ams/-/ams-3.5.1.tgz","fileCount":229,"integrity":"sha512-3zJPD+zSQWpDk8oaxV75Erb/PxUbRj/onB0CVPwa2Cl2ufqSljvL9Hcm7gHtAmI5BUUdfEoLU+Jitw1rHUkfoA==","signatures":[{"sig":"MEYCIQC+UvALO60+7fADnsxiO72MyD1ip6Mwj1cCng4xfpyfQwIhALrtHwLnOevEfg/0MjOMpuCWszS/QJLXUQeNK+URa1Ob","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":913526},"main":"src/index.js","_from":"file:ams-3.5.1.tgz","config":{"dcl_target":"test/dcn"},"engines":{"node":">=20"},"scripts":{"jest":"AMS_DCN_ROOT=$npm_package_config_dcl_target jest","lint":"npx eslint .","test":"npm run jest","prepack":"npm run generateTypes","prepare":"npm run buildDcnEngine && npm run buildDclParser","pretest":"npm run compileDcl","posttest":"rm -rf $npm_package_config_dcl_target","testTypes":"npm run generateTypes && ([ -d 'test/ts/node_modules' ] || npm --prefix test/ts --no-package-lock i .) && npm --prefix test/ts run test","compileDcl":"npx compile-dcl -d test/dcl -o $npm_package_config_dcl_target","generateTypes":"rm -rf types && tsc -p tsTypeGenerationConfig.json","testDcnEngine":"npm --prefix src/xcode/dcn-engine run test","buildDclParser":"npm i --prefix src/dclparser && npm run build --prefix src/dclparser","buildDcnEngine":"npm i --prefix src/xcode/dcn-engine && npm run build --prefix src/xcode/dcn-engine"," --- tests ----------------------------------------------------------------------------- ":""," --- Build ---------------------------------------------------------------------------------- ":""},"typings":"./types/index.d.ts","_npmUser":{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"},"_resolved":"/home/jenkins/agent/workspace/npmjs-build/ams-3.5.1.tgz","_integrity":"sha512-3zJPD+zSQWpDk8oaxV75Erb/PxUbRj/onB0CVPwa2Cl2ufqSljvL9Hcm7gHtAmI5BUUdfEoLU+Jitw1rHUkfoA==","_npmVersion":"11.9.0","description":"AMS client library for node.js","directories":{"src":"src"},"_nodeVersion":"25.6.1","dependencies":{"uuid":"^11.1.0","axios":"^1.6.5","debug":"^4.4.1","yargs":"^17.7.2","@sap/xsenv":"^6.0.0","compressing":"^2.0.0","@types/express":"^4"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.0","nock":"^14.0.0","eslint":"^9.2.0","globals":"^17.0.0","@eslint/js":"^9.2.0","@sap/xssec":"^4.5.0","typescript":"^5.8.2","@types/jest":"^30.0.0","@types/node":"^20.17.30","@sap/ams-dev":"^2.1.1","@types/yargs":"^17.0.33","@cap-js/cds-types":"^0.16.0","eslint-plugin-unused-imports":"^4.1.3"},"peerDependencies":{"@sap/cds":">=7.5","@sap/xssec":"^4.6.0"},"peerDependenciesMeta":{"@sap/cds":{"optional":true},"@sap/xssec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ams_3.5.1_1771516656332_0.8515118009561857","host":"s3://npm-registry-packages-npm-production"}},"3.6.0":{"name":"@sap/ams","version":"3.6.0","author":"","license":"SAP DEVELOPER LICENSE AGREEMENT","_id":"@sap/ams@3.6.0","maintainers":[{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"}],"bin":{"deploy-dcl":"src/bin/deployDcl.js"},"cds":{"requires":{"auth":{"ams":{"[java]":{"dclRoot":"srv/src/main/resources/ams","dcnRoot":"srv/src/gen/ams/dcn","policyDeployerRoot":"srv/src/gen/policies"},"dclRoot":"ams/dcl","dcnRoot":"gen/ams/dcn","generateDcl":true,"dclGenerationPackage":"cap","generatePoliciesDeployer":"auto"}}}},"dist":{"shasum":"aca08087894211c7d0bd170c05a712231c50b8d9","tarball":"https://registry.npmjs.org/@sap/ams/-/ams-3.6.0.tgz","fileCount":229,"integrity":"sha512-5HG2zcCy8DkpWy4R07gNGRU67hTK3wKEmKu6pW7QHwKETBxYtn80NAFE3Z+2OHa2n+df/CIO+0rMZDmDbe2n0g==","signatures":[{"sig":"MEUCIBG9rPONxGUdbOXcZ9m35eHkcP4qrSspKBrQ9qCk/+nxAiEA31X9usuLPVxcvxIgHqI4PPUd5aReYhY8EXd6avUGGpA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":919274},"main":"src/index.js","_from":"file:ams-3.6.0.tgz","config":{"dcl_target":"test/dcn"},"engines":{"node":">=20"},"scripts":{"jest":"AMS_DCN_ROOT=$npm_package_config_dcl_target jest","lint":"npx eslint .","test":"npm run jest","prepack":"npm run generateTypes","prepare":"npm run buildDcnEngine && npm run buildDclParser","pretest":"npm run compileDcl","posttest":"rm -rf $npm_package_config_dcl_target","testTypes":"npm run generateTypes && ([ -d 'test/ts/node_modules' ] || npm --prefix test/ts --no-package-lock i .) && npm --prefix test/ts run test","compileDcl":"npx compile-dcl -d test/dcl -o $npm_package_config_dcl_target","generateTypes":"rm -rf types && tsc -p tsTypeGenerationConfig.json","testDcnEngine":"npm --prefix src/xcode/dcn-engine run test","buildDclParser":"npm i --prefix src/dclparser && npm run build --prefix src/dclparser","buildDcnEngine":"npm i --prefix src/xcode/dcn-engine && npm run build --prefix src/xcode/dcn-engine"," --- tests ----------------------------------------------------------------------------- ":""," --- Build ---------------------------------------------------------------------------------- ":""},"typings":"./types/index.d.ts","_npmUser":{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"},"_resolved":"/home/jenkins/agent/workspace/npmjs-build/ams-3.6.0.tgz","_integrity":"sha512-5HG2zcCy8DkpWy4R07gNGRU67hTK3wKEmKu6pW7QHwKETBxYtn80NAFE3Z+2OHa2n+df/CIO+0rMZDmDbe2n0g==","_npmVersion":"11.12.1","description":"AMS client library for node.js","directories":{"src":"src"},"_nodeVersion":"25.9.0","dependencies":{"uuid":"^11.1.0","axios":"^1.6.5","debug":"^4.4.1","yargs":"^17.7.2","@sap/xsenv":"^6.0.0","compressing":"^2.0.0","@types/express":"^4"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.0","nock":"^14.0.0","eslint":"^9.2.0","globals":"^17.0.0","@eslint/js":"^9.2.0","@sap/xssec":"^4.5.0","typescript":"^6.0.0","@types/jest":"^30.0.0","@types/node":"^20.17.30","@sap/ams-dev":"^2.1.1","@types/yargs":"^17.0.33","@cap-js/cds-types":"^0.16.0","eslint-plugin-unused-imports":"^4.1.3"},"peerDependencies":{"@sap/cds":">=7.5","@sap/xssec":"^4.6.0"},"peerDependenciesMeta":{"@sap/cds":{"optional":true},"@sap/xssec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ams_3.6.0_1776079815679_0.30103910304788806","host":"s3://npm-registry-packages-npm-production"}},"3.7.0":{"name":"@sap/ams","version":"3.7.0","author":"","license":"SAP DEVELOPER LICENSE AGREEMENT","_id":"@sap/ams@3.7.0","maintainers":[{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"}],"bin":{"deploy-dcl":"src/bin/deployDcl.js"},"cds":{"requires":{"auth":{"ams":{"[java]":{"dclRoot":"srv/src/main/resources/ams","dcnRoot":"srv/src/gen/ams/dcn","policyDeployerRoot":"srv/src/gen/policies"},"dclRoot":"ams/dcl","dcnRoot":"gen/ams/dcn","generateDcl":true,"dclGenerationPackage":"cap","generatePoliciesDeployer":"auto"}}}},"dist":{"shasum":"9347bb4ade2eb3d4e89ca6840eed4adf7a7acea8","tarball":"https://registry.npmjs.org/@sap/ams/-/ams-3.7.0.tgz","fileCount":229,"integrity":"sha512-v0E0MZChZSGVjwE+vPoU0qvbjER5yIXs3QbnwH4HCi2xNYYomZQMek6/96VaDqbV/xMn1I3DnyNY0BY3gDPb3A==","signatures":[{"sig":"MEYCIQDyY+kawGqCAHD3nG6KtIj1znRhAljyby8yMoJAZI2wbQIhAJYbBXq+tGLc/nIdj97c01ya/VypmHEGs8ysdrqMzDju","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":926737},"main":"src/index.js","_from":"file:ams-3.7.0.tgz","config":{"dcl_target":"test/dcn"},"engines":{"node":">=20"},"scripts":{"jest":"AMS_DCN_ROOT=$npm_package_config_dcl_target jest","lint":"npx eslint .","test":"npm run jest","prepack":"npm run generateTypes","prepare":"npm run buildDcnEngine && npm run buildDclParser","pretest":"npm run compileDcl","posttest":"rm -rf $npm_package_config_dcl_target","testTypes":"npm run generateTypes && ([ -d 'test/ts/node_modules' ] || npm --prefix test/ts --no-package-lock i .) && npm --prefix test/ts run test","compileDcl":"npx compile-dcl -d test/dcl -o $npm_package_config_dcl_target","generateTypes":"rm -rf types && tsc -p tsTypeGenerationConfig.json","testDcnEngine":"npm --prefix src/xcode/dcn-engine run test","buildDclParser":"npm i --prefix src/dclparser && npm run build --prefix src/dclparser","buildDcnEngine":"npm i --prefix src/xcode/dcn-engine && npm run build --prefix src/xcode/dcn-engine"," --- tests ----------------------------------------------------------------------------- ":""," --- Build ---------------------------------------------------------------------------------- ":""},"typings":"./types/index.d.ts","_npmUser":{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"},"_resolved":"/home/jenkins/agent/workspace/npmjs-build/ams-3.7.0.tgz","_integrity":"sha512-v0E0MZChZSGVjwE+vPoU0qvbjER5yIXs3QbnwH4HCi2xNYYomZQMek6/96VaDqbV/xMn1I3DnyNY0BY3gDPb3A==","_npmVersion":"11.13.0","description":"AMS client library for node.js","directories":{"src":"src"},"_nodeVersion":"26.1.0","dependencies":{"uuid":"^11.1.0","axios":"^1.6.5","debug":"^4.4.1","yargs":"^17.7.2","@sap/xsenv":"^6.0.0","compressing":"^2.0.0","@types/express":"^4"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","eslint":"^9.2.0","globals":"^17.5.0","@eslint/js":"^9.2.0","@sap/xssec":"^4.5.0","typescript":"^6.0.0","@types/jest":"^30.0.0","@types/node":"^20.19.39","@sap/ams-dev":"^2.1.1","@types/yargs":"^17.0.33","@cap-js/cds-types":"^0.16.0","eslint-plugin-unused-imports":"^4.1.3"},"peerDependencies":{"@sap/cds":">=7.5","@sap/xssec":"^4.6.0"},"peerDependenciesMeta":{"@sap/cds":{"optional":true},"@sap/xssec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ams_3.7.0_1778671646571_0.13524391355421583","host":"s3://npm-registry-packages-npm-production"}},"3.8.0":{"name":"@sap/ams","version":"3.8.0","author":"","license":"SAP DEVELOPER LICENSE AGREEMENT","_id":"@sap/ams@3.8.0","maintainers":[{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"}],"bin":{"deploy-dcl":"src/bin/deployDcl.js"},"cds":{"requires":{"auth":{"ams":{"[java]":{"dclRoot":"srv/src/main/resources/ams","dcnRoot":"srv/src/gen/ams/dcn","policyDeployerRoot":"srv/src/gen/policies"},"dclRoot":"ams/dcl","dcnRoot":"gen/ams/dcn","generateDcl":true,"dclGenerationPackage":"cap","generatePoliciesDeployer":"auto"}}}},"dist":{"shasum":"d0e55bc848bb7b2e49869fb1b08db90b3a2b953d","tarball":"https://registry.npmjs.org/@sap/ams/-/ams-3.8.0.tgz","fileCount":229,"integrity":"sha512-NMj8o6SlovZRfvxSJjsNCAHrNsQtZfIwXwi5vIbQfSfPdXYKhirmjSeZ8LZ8yckbujUGA5QX4iWjoHFjEykzSw==","signatures":[{"sig":"MEQCIF+owpnCUmuw4v/ONsOHCRtScJhVylHsgOoHu91Jw5gmAiAGVPe1AwhPKkPjVtQpsm6cHAiuk9FFfQlXcOXBiVFH+Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":931610},"main":"src/index.js","_from":"file:ams-3.8.0.tgz","config":{"dcl_target":"test/dcn"},"engines":{"node":">=20"},"scripts":{"jest":"AMS_DCN_ROOT=$npm_package_config_dcl_target jest","lint":"npx eslint .","test":"npm run jest","prepack":"npm run generateTypes","prepare":"npm run buildDcnEngine && npm run buildDclParser","pretest":"npm run compileDcl","posttest":"rm -rf $npm_package_config_dcl_target","testTypes":"npm run generateTypes && ([ -d 'test/ts/node_modules' ] || npm --prefix test/ts --no-package-lock i .) && npm --prefix test/ts run test","compileDcl":"npx compile-dcl -d test/dcl -o $npm_package_config_dcl_target","generateTypes":"rm -rf types && tsc -p tsTypeGenerationConfig.json","testDcnEngine":"npm --prefix src/xcode/dcn-engine run test","buildDclParser":"npm i --prefix src/dclparser && npm run build --prefix src/dclparser","buildDcnEngine":"npm i --prefix src/xcode/dcn-engine && npm run build --prefix src/xcode/dcn-engine"," --- tests ----------------------------------------------------------------------------- ":""," --- Build ---------------------------------------------------------------------------------- ":""},"typings":"./types/index.d.ts","_npmUser":{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"},"_resolved":"/home/jenkins/agent/workspace/npmjs-build/ams-3.8.0.tgz","_integrity":"sha512-NMj8o6SlovZRfvxSJjsNCAHrNsQtZfIwXwi5vIbQfSfPdXYKhirmjSeZ8LZ8yckbujUGA5QX4iWjoHFjEykzSw==","_npmVersion":"11.17.0","description":"AMS client library for node.js","directories":{"src":"src"},"_nodeVersion":"26.5.0","dependencies":{"uuid":"^11.1.0","axios":"^1.6.5","debug":"^4.4.1","yargs":"^17.7.2","@sap/xsenv":"^6.0.0","compressing":"^2.0.0","@types/express":"^4"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","nock":"^14.0.16","eslint":"^9.2.0","globals":"^17.5.0","@eslint/js":"^9.2.0","@sap/xssec":"^4.5.0","typescript":"^6.0.0","@types/jest":"^30.0.0","@types/node":"^20.19.40","@sap/ams-dev":"^3.0.2","@types/yargs":"^17.0.33","@cap-js/cds-types":"^0.18.0","eslint-plugin-unused-imports":"^4.1.3"},"peerDependencies":{"@sap/cds":">=7.5","@sap/xssec":"^4.6.0"},"peerDependenciesMeta":{"@sap/cds":{"optional":true},"@sap/xssec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ams_3.8.0_1785154287388_0.46935653381557474","host":"s3://npm-registry-packages-npm-production"}},"3.9.0":{"name":"@sap/ams","version":"3.9.0","author":"","license":"SAP DEVELOPER LICENSE AGREEMENT","_id":"@sap/ams@3.9.0","maintainers":[{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"}],"bin":{"deploy-dcl":"src/bin/deployDcl.js"},"cds":{"requires":{"auth":{"ams":{"[java]":{"dclRoot":"srv/src/main/resources/ams","dcnRoot":"srv/src/gen/ams/dcn","policyDeployerRoot":"srv/src/gen/policies"},"dclRoot":"ams/dcl","dcnRoot":"gen/ams/dcn","generateDcl":true,"dclGenerationPackage":"cap","generatePoliciesDeployer":"auto"}}}},"dist":{"shasum":"0458348ea51ba13cf7feca06848167b13cd26aa7","tarball":"https://registry.npmjs.org/@sap/ams/-/ams-3.9.0.tgz","fileCount":229,"integrity":"sha512-bzpCznCwLhxa3f5sWMca1g1kqffTw9csrXKAJWd9VkaciVr/Uo4dXueD/PKB2MzxoxnNfkvBOJ4EBQXA98aSwA==","signatures":[{"sig":"MEUCIQCIvusp7Oi7MPw4ZF57gH8jkp4o2R2s6vYQAmBUrLp9KAIgbuexRQZh0a+BpsbPAsLI65sL+xMZefLgJBgf3JPPzKY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":932682},"main":"src/index.js","_from":"file:ams-3.9.0.tgz","config":{"dcl_target":"test/dcn"},"engines":{"node":">=20"},"scripts":{"jest":"AMS_DCN_ROOT=$npm_package_config_dcl_target jest","lint":"npx eslint .","test":"npm run jest","prepack":"npm run generateTypes","prepare":"npm run buildDcnEngine && npm run buildDclParser","pretest":"npm run compileDcl","posttest":"rm -rf $npm_package_config_dcl_target","testTypes":"npm run generateTypes && ([ -d 'test/ts/node_modules' ] || npm --prefix test/ts --no-package-lock i .) && npm --prefix test/ts run test","compileDcl":"npx compile-dcl -d test/dcl -o $npm_package_config_dcl_target","generateTypes":"rm -rf types && tsc -p tsTypeGenerationConfig.json","testDcnEngine":"npm --prefix src/xcode/dcn-engine run test","buildDclParser":"npm i --prefix src/dclparser && npm run build --prefix src/dclparser","buildDcnEngine":"npm i --prefix src/xcode/dcn-engine && npm run build --prefix src/xcode/dcn-engine"," --- tests ----------------------------------------------------------------------------- ":""," --- Build ---------------------------------------------------------------------------------- ":""},"typings":"./types/index.d.ts","_npmUser":{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"},"_resolved":"/home/jenkins/agent/workspace/npmjs-build/ams-3.9.0.tgz","_integrity":"sha512-bzpCznCwLhxa3f5sWMca1g1kqffTw9csrXKAJWd9VkaciVr/Uo4dXueD/PKB2MzxoxnNfkvBOJ4EBQXA98aSwA==","_npmVersion":"11.19.0","description":"AMS client library for node.js","directories":{"src":"src"},"_nodeVersion":"26.7.0","dependencies":{"uuid":"^11.1.0","axios":"^1.6.5","debug":"^4.4.1","yargs":"^17.7.2","@sap/xsenv":"^6.0.0","compressing":"^2.0.0","@types/express":"^4"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","nock":"^14.0.16","eslint":"^9.2.0","globals":"^17.5.0","@eslint/js":"^9.2.0","@sap/xssec":"^4.5.0","typescript":"^6.0.0","@types/jest":"^30.0.0","@types/node":"^20.19.40","@sap/ams-dev":"^3.0.2","@types/yargs":"^17.0.33","@cap-js/cds-types":"^0.18.0","eslint-plugin-unused-imports":"^4.1.3"},"peerDependencies":{"@sap/cds":">=7.5","@sap/xssec":"^4.6.0"},"peerDependenciesMeta":{"@sap/cds":{"optional":true},"@sap/xssec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ams_3.9.0_1786360741842_0.12855199463331957","host":"s3://npm-registry-packages-npm-production"}},"3.10.0":{"_id":"@sap/ams@3.10.0","bin":{"deploy-dcl":"src/bin/deployDcl.js"},"cds":{"requires":{"auth":{"ams":{"[java]":{"dclRoot":"srv/src/main/resources/ams","dcnRoot":"srv/src/gen/ams/dcn","policyDeployerRoot":"srv/src/gen/policies"},"dclRoot":"ams/dcl","dcnRoot":"gen/ams/dcn","generateDcl":true,"dclGenerationPackage":"cap","generatePoliciesDeployer":"auto"}}}},"dist":{"shasum":"247dcbd6a4d1c84ea9b66a1ab43fc984c4e4f985","tarball":"https://registry.npmjs.org/@sap/ams/-/ams-3.10.0.tgz","fileCount":229,"integrity":"sha512-COcdGbMDRynb2f6DFzcwCtMwvgOyCsZiDDmG8f0a3N+3KSUyb9SRBEiEhGJL5WUbnenJUuF6XA2MeC6mP54WlA==","signatures":[{"sig":"MEUCIE2TfGjw/YX8D+Wyq9n/gUMWXYV0NM/l3onPoGhyJVp5AiEAxFTCr5MrxzNlJHBzV9HyzwLpkZfR+pcoz7EuJIQ0Xxw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC/q4vAjtRZgl5zZJuppVXzNXMF49gB2opBl6fZsbG8OQIhAJBCbKLWBcdL7rvFr0PwRNRZw5swmP/oyeocatkD5nEF"}],"unpackedSize":937098},"main":"src/index.js","name":"@sap/ams","_from":"file:ams-3.10.0.tgz","author":"","config":{"dcl_target":"test/dcn"},"engines":{"node":">=20"},"license":"SAP DEVELOPER LICENSE AGREEMENT","scripts":{"jest":"AMS_DCN_ROOT=$npm_package_config_dcl_target jest","lint":"npx eslint .","test":"npm run jest","prepack":"npm run generateTypes","prepare":"npm run buildDcnEngine && npm run buildDclParser","pretest":"npm run compileDcl","posttest":"rm -rf $npm_package_config_dcl_target","testTypes":"npm run generateTypes && ([ -d 'test/ts/node_modules' ] || npm --prefix test/ts --no-package-lock i .) && npm --prefix test/ts run test","compileDcl":"npx compile-dcl -d test/dcl -o $npm_package_config_dcl_target","generateTypes":"rm -rf types && tsc -p tsTypeGenerationConfig.json","test:coverage":"npm run jest -- --coverage","testDcnEngine":"npm --prefix src/xcode/dcn-engine run test","buildDclParser":"npm i --prefix src/dclparser && npm run build --prefix src/dclparser","buildDcnEngine":"npm i --prefix src/xcode/dcn-engine && npm run build --prefix src/xcode/dcn-engine"," --- tests ----------------------------------------------------------------------------- ":""," --- Build ---------------------------------------------------------------------------------- ":""},"typings":"./types/index.d.ts","version":"3.10.0","_npmUser":{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"},"_resolved":"/home/jenkins/agent/workspace/npmjs-build/ams-3.10.0.tgz","_integrity":"sha512-COcdGbMDRynb2f6DFzcwCtMwvgOyCsZiDDmG8f0a3N+3KSUyb9SRBEiEhGJL5WUbnenJUuF6XA2MeC6mP54WlA==","_npmVersion":"11.19.1","description":"AMS client library for node.js","directories":{"src":"src"},"maintainers":[{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"}],"_nodeVersion":"26.10.0","dependencies":{"uuid":"^11.1.0","axios":"^1.6.5","debug":"^4.4.1","yargs":"^17.7.2","@sap/xsenv":"^6.0.0","compressing":"^2.0.0","@types/express":"^4"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","nock":"^14.0.16","eslint":"^9.2.0","globals":"^17.5.0","@eslint/js":"^9.2.0","@sap/xssec":"^4.5.0","typescript":"^6.0.0","@types/jest":"^30.0.0","@types/node":"^20.19.40","@sap/ams-dev":"^3.0.2","@types/yargs":"^17.0.33","@cap-js/cds-types":"^0.20.0","eslint-plugin-unused-imports":"^4.1.3"},"peerDependencies":{"@sap/cds":">=7.5","@sap/xssec":"^4.6.0"},"peerDependenciesMeta":{"@sap/cds":{"optional":true},"@sap/xssec":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ams_3.10.0_1790852533500_0.4620087020077335"}}},"time":{"created":"2023-09-21T14:49:00.509Z","modified":"2026-10-01T11:02:13.763Z","1.13.1":"2023-09-21T14:49:00.848Z","1.14.0":"2023-12-21T10:12:38.147Z","1.14.1":"2024-01-23T15:23:05.438Z","1.14.2":"2024-01-30T16:09:56.879Z","1.15.0":"2024-02-16T15:13:12.308Z","1.15.1":"2024-03-05T15:42:04.684Z","1.16.0":"2024-05-17T10:58:20.663Z","1.17.0":"2024-10-09T07:14:03.935Z","1.18.0":"2024-10-14T15:03:13.458Z","2.0.0":"2024-12-13T15:42:34.055Z","2.1.1":"2025-01-09T08:36:50.406Z","2.2.0":"2025-02-14T13:53:21.535Z","2.3.0":"2025-02-28T09:28:09.849Z","2.4.0":"2025-03-20T10:51:12.421Z","3.0.0":"2025-04-14T12:08:01.708Z","3.1.0":"2025-05-13T15:26:02.003Z","3.1.1":"2025-05-16T11:25:33.521Z","3.1.2":"2025-05-23T12:03:06.207Z","3.1.3":"2025-06-12T14:22:17.902Z","3.2.0":"2025-06-30T15:21:20.634Z","3.3.0":"2025-07-23T13:52:41.876Z","3.4.0":"2025-10-01T12:30:29.995Z","3.5.0":"2025-11-05T08:26:49.089Z","3.5.1":"2026-02-19T15:57:36.479Z","3.6.0":"2026-04-13T11:30:15.908Z","3.7.0":"2026-05-13T11:27:26.727Z","3.8.0":"2026-07-27T12:11:27.572Z","3.9.0":"2026-08-10T11:19:02.023Z","3.10.0":"2026-10-01T11:02:13.598Z"},"license":"SAP DEVELOPER LICENSE AGREEMENT","description":"AMS client library for node.js","maintainers":[{"name":"sap_extncrepos","email":"mob.extrepo.stores@sap.com"}],"readme":"<!-- This is the README for npmjs -->\n\n# @sap/ams\n\nThis is the Node.Js runtime library used to perform [authorization checks](https://help.sap.com/docs/identity-authentication/identity-authentication/configuring-authorization-policies?locale=en-US) in applications which authenticate users via the [SAP Cloud Identity Services](https://help.sap.com/docs/identity-authentication?locale=en-US).\n\nThe module [@sap/ams-dev](https://www.npmjs.com/package/@sap/ams-dev) provides the corresponding tooling support during application development.\n\nAs ADC (Authorization Decision Controller) an in-process engine based on DCN (Data Control Notation) files is used in versions >= 1.17.0. Follow the migration guide in the CHANGELOG of @sap/ams-dev for version 1.0.0 to update your local test setup from OPA to DCN Engine. When using newer versions, the OPA buildpack on CF can be removed once a [policy deployer application](#dcl-deployer-application) has been configured for the upload of the base policies.\n\n## Table of Contents\n\n- [Installation](#installation)\n  - [Maintenance](#maintenance)\n- [Version 3](#version-3)\n  - [Breaking Changes](#breaking-changes)\n- [Usage](#usage)\n  - [Set-up](#set-up)\n  - [Authorization checks](#authorization-checks)\n  - [Handling Decisions](#handling-decisions)\n  - [AmsMiddleware](#amsmiddleware)\n  - [Technical communication](#technical-communication)\n  - [Testing](#testing)\n  - [Events/Logging](#eventslogging)\n  - [Samples](#samples)\n- [API](#api)\n  - [AuthorizationManagementService](#authorizationmanagementservice)\n  - [AuthProvider](#authprovider-interface)\n    - [IdentityServiceAuthProvider](#identityserviceauthprovider)\n    - [HybridAuthProvider](#hybridauthprovider)\n    - [CdsXssecAuthProvider](#cdsxssecauthprovider)\n  - [Authorizations](#authorizations)\n  - [Decision](#decision)\n  - [Events](#events)\n- [CAP integration](#cap-integration)\n  - [cds add ams](#cds-add-ams)\n  - [Features](#features)\n    - [Role-based authorization](#role-based-authorization)\n    - [Instance-based authorization](#instance-based-authorization)\n    - [Validation](#validation)\n    - [Base Policy Generation](#base-policy-generation)\n    - [Base Policy Upload](#base-policy-upload)\n    - [Testing policies](#testing-policies)\n    - [Mocked user testing](#mocked-user-testing)\n    - [Hybrid testing](#hybrid-testing)\n  - [Configuration](#configuration)\n    - [Plugin Runtime](#plugin-runtime)\n  - [Technical communication](#technical-communication-1)\n  - [Logging](#logging)\n- [Deploy DCL](#deploy-dcl)\n  - [DCL Deployer Application](#dcl-deployer-application)\n  - [Building the DCL Deployer Application](#building-the-dcl-deployer-application)\n  - [Deploying the DCL Deployer Application](#deploying-the-dcl-deployer-application)\n  - [deploy-dcl script](#deploy-dcl-script)\n- [Resources](#resources)\n  - [Getting Support](#getting-support)\n  - [Open Source Legal Notices](#open-source-legal-notices)\n\n\n## Installation\nVia public [npmjs](https://www.npmjs.com/) repository:\n\n```sh\nnpm install @sap/ams\n```\n\n### Maintenance\nKeep the version of this dependency up-to-date since it's a **crucial part of your application's security**, for example by regularly running:\n\n```bash\nnpm update @sap/ams # or: npm update\n```\nThis is especially important when you deploy your application with a `package-lock.json` that locks the version that gets installed to a fixed version, until the next `npm update`.\n\nWhen in doubt, check which version of the module is installed via \n\n```bash\nnpm list @sap/ams\n```\nThis will print a dependency tree that shows which versions of the module are installed, including transitive dependencies.\n\n\n\n## Version 3\nVersion 3 drastically changes the core API. Instead of checking privileges on a `PolicyDecisionPoint` with an `Attributes` object, an `AuthProvider` prepares an `Authorizations` object for the same purpose. This separates *what* to check from *how* to check it. The necessary configuration for advanced authorization scenarios, such as principal propagation or non-standard authorization strategies, are configured once during application start. As a result, the authorization checks themselves remain straight-forward in version 3, with a focus on the application domain.\n\nNew features:\n\n- Out-of-the-box support for technical communication scenarios via SAP Cloud Identity Services\n- Flexible configuration and extensibility for non-standard authorization strategies, for example when authenticating both via XSUAA and SAP Cloud Identity Services tokens\n- Exports Typescript Types for a better development experience\n- Improved events that allow correlating authorization checks with requests for logging and auditing\n- Support for SAP Cloud Identity Services credentials with certificates changing at runtime, for example when using ZTIS or mounted Kyma service bindings\n\n### Breaking Changes\nCAP Node.js Applications should **not** need to make changes when updating to version 3.\n\nFor Non-CAP Node.js applications, please refer to the [migration guide](./doc/V2_V3_Migration_Guide.md).\n\n\n\n## Usage\nThe following snippets give an example for the usage of the core API of the library.\n\n### Set-up\n```js\nconst { AuthorizationManagementService, IdentityServiceAuthProvider, AmsError } = require(\"@sap/ams\");\n\nlet ams;\nif (process.env.NODE_ENV === 'test') {\n  // For local tests, init AMS with a locally compiled policy bundle and mocked policy assignments\n  ams = AuthorizationManagementService.fromLocalDcn(\"./test/dcn\", { // your compile target directory of the @sap/ams-dev compile-dcl script\n    assignments: \"./test/mockPolicyAssignments.json\" // a file path of your choice or an in-memory structure\n  });\n} else {\n  // For production, init AMS with the cloud policy and assignment bundle from the AMS server\n  const identityService = ... // your @sap/xssec 4 IdentityService instance used for authentication\n  ams = AuthorizationManagementService.fromIdentityService(identityService);\n}\n\n// Use the standard IdentityServiceAuthProvider or if necessary, write your own AuthProvider implementation instead\nconst authProvider = new IdentityServiceAuthProvider(ams)\n    .withApiMapper(mapTechnicalUserApi, TECHNICAL_USER_FLOW)                // Optional: to authorize technical user tokens\n    .withApiMapper(mapPrincipalPropagationApi, PRINCIPAL_PROPAGATION_FLOW); // Optional: to authorize principal propagation tokens\n\n// Recommendation: Register a middleware behind the authentication middleware that allows authorization checks via the req object\nconst amsMw = authProvider.getMiddleware(); // IdentityServiceAuthProvider provides a pre-configured instance of AmsMiddleware\napp.use(/^\\/(?!health).*/i, authenticate, amsMw.authorize());\n\n// You can identity Errors from @sap/ams via instanceof, for example in the express error handler:\napp.use((err, req, res, next) => {\n    if(err instance of AmsError) {\n      // Error from @sap/ams library\n      LOG.error(\"Error while authorizing user: \", err);\n    } else {\n      ... // other Error\n    }\n\n    return res.sendStatus(500);\n});\n\n// Make sure the readiness check of the application returns false before the following Promise resolves as AMS has not yet loaded the policy bundle required for authorization checks.\nconst AMS_STARTUP_TIMEOUT = process.env.AMS_STARTUP_TIMEOUT || 30; // maximum wait time in seconds\nawait ams.whenReady(AMS_STARTUP_TIMEOUT);\n```\n\n### Authorization checks\nAuthorization checks are performed on `Authorization` objects created by implementations of the `AuthProvider` interface. Typically, authorizations are based on a security context that is created from a valid token during authentication. For instance, `IdentityServiceAuthProvider` expects an instance of `IdentityServiceSecurityContext`.\n\n```js\nconst securityContext = await createSecurityContext(identityService, { req }); // @sap/xssec 4 authentication\nconst authorizations = await authProvider.getAuthorizations(securityContext);\n```\n\nIf the `AmsMiddleware#authorize()` handler is registered, it streamlines this process for all requests by placing an `Authorization` instance on the `req` object under the `AMS_AUTHORIZATIONS` symbol exported by `@sap/ams`.\n\n```js\nconst { AMS_AUTHORIZATIONS } = require(\"@sap/ams\");\n\nfunction createOrder(req, res) {\n  const authorizations = req[AMS_AUTHORIZATIONS];\n}\n```\n\n### Handling Decisions\nAn authorization check will return a `Decision` object. A decision can be in one of three states:\n\n- *granted*: the checked privilege is unconditionally granted\n- *denied*: the checked privilege is unconditionally denied\n- *conditional*: the checked privilege might be granted but there are outstanding conditions whose attributes have not been grounded to values in the attribute input.\n\nIt provides the following methods to distinguish between these cases:\n\n```js\nlet decision;\n\n// context-free privilege-check\ndecision = authorizations.checkPrivilege('delete', 'orders')\nif(!decision.isGranted()) {\n    return res.sendStatus(403);\n}  \n\n// contextual privilege check for a single entity\ndecision = authorizations.checkPrivilege('create', 'orders', { \"$app.product.category\" : \"accessory\" });\nif(!decision.isGranted()) {\n  return res.sendStatus(403);\n}\n\n// contextual privilege check for many entities\ndecision = authorizations.checkPrivilege('read', 'orders');\nif(decision.isDenied()) {\n  return res.sendStatus(403);\n} else if (decision.isGranted()) {\n  // definitive GRANT without outstanding WHERE condition\n  return res.json(db.readAllOrders());\n} else {\n  // instance-based GRANT with outstanding WHERE condition\n  const filter = decision.visitDCN(convertCall, convertValue); // convert condition to a filter for the DB layer\n  return res.json(db.readOrders(filter));\n}\n```\n\n### AmsMiddleware\nBesides [`authorize()`](#authorization-checks), the `AmsMiddleware` provides additional handlers to define early privilege (pre-)checks on the endpoint layer:\n\n```js\n// returns 403 when no definitive (= no outstanding WHERE condition) GRANT delete ON orders is assigned to user\napp.delete('/orders/:id', amsMw.checkPrivilege('delete', 'orders'), deleteOrder);\n\n// returns 403 when no GRANT read ON orders is assigned to user. A potential WHERE condition for the GRANT is acceptable which needs to be evaluated in the service handler.\napp.get('/orders', amsMw.precheckPrivilege('read', 'orders'), getOrders);\n\n// returns 403 when no definitive GRANT read ON products or no (definitive or conditional) GRANT create ON orders is assigned to user\napp.post('/orders', amsMw.checkPrivilege('read', 'products'), amsMw.precheckPrivilege('create', 'orders'), createOrder);\n```\n\nThe benefits of defining privilege checks on the endpoint level are:\n  - concise syntax\n  - provides central overview of required privileges for different parts of the application\n  - prevents accidental information leaks, for example by returning 404 instead of 403 while preparing the actual authorization check in the service handler\n\n### Technical communication\nTechnical communication via SAP Cloud Identity Services is supported out-of-the-box by the [IdentityServiceAuthProvider](#identityserviceauthprovider).\n\n### Testing\nFor CAP applications, see [here](#testing-policies).\n\nTo test your application locally, without real SAP Cloud Identity Services tokens and AMS server, we recommend mocking an `@sap/xssec` SecurityContext during authentication that contains the relevant information. Then, the `IdentityServiceAuthProvider` will execute the same way it does in production, resulting in realistic authorization behavior of the application.\n\nThe DCL package called `local` has a special semantic. It is meant for DCL files with policies that are only relevant for testing but not for production. Its policies are ignored during the base policy upload, even if they are contained during the upload. You can use it to test runtime policies that build on top of your base policies without deploying them.\n\nFollow the `@sap/ams-dev` [documentation](https://www.npmjs.com/package/@sap/ams-dev?activeTab=readme#DCL-compilation) to set up your application for testing.\n\n### Events/Logging\nConsumer applications can listen to events of the `AuthorizationManagementService` instance to log authorization checks and/or create audit log events:\n\n```js\nams.on(\"authorizationCheck\", event => {\n  if(event.type === \"checkPrivilege\") {\n    if (event.decision.isGranted()) {\n      console.log(`Privilege '${event.action} ${event.resource}' for ${event.context.token.scimId} was granted based on input`, event.input);\n    }\n  } else if (event.type === \"getPotentialPrivileges\") {\n    ...\n  }\n});\n```\n\n### Samples\nThe [ams-samples-node](https://github.com/SAP-samples/ams-samples-node) repository contains samples that demonstrate the usage of this library.\n- [ams-cap-nodejs-bookshop](https://github.com/SAP-samples/ams-samples-node/tree/main/ams-cap-nodejs-bookshop) - CAP Node.js application\n- [ams-nodejs-sample](https://github.com/SAP-samples/ams-samples-node/tree/main/ams-nodejs-sample) - Express based Node.js application\n\n## API\n\n### AuthorizationManagementService\n\n#### Construction\n- **`fromIdentityService(identityService, config?): AuthorizationManagementService`**  \n  Creates an instance using the DCN and policy assignments fetched with SAP Cloud Identity Services credentials.  \n  - `identityService` (object): SAP Cloud Identity Services object with **certificate-based** credentials.  \n\n- **`fromLocalDcn(dcnRoot, config?): AuthorizationManagementService`**  \n  Creates an instance using locally compiled DCL files for testing.  \n  - `dcnRoot` (string): Root directory of the DCN bundle.  \n  - `config` (object, optional):  \n    - `watch` (boolean, default: `false`): Watch for file changes.  \n    - `assignments` (string | PolicyAssignments, optional): Path to JSON file or `PolicyAssignments` object.  \n    - `debounceDelay` (number, default: `1000`): Debounce delay in ms.  \n    - `start` (boolean, default: `true`): Control whether to immediately start downloading the AMS bundle.\n\nIf an instance has been constructed with `config.start=false`, the loading of the AMS bundle must be started manually. This is useful when ZTIS is used and the credentials do not yet contain a certificate when the instance is created:\n\n```js\nconst ams = AuthorizationManagementService.fromIdentityService(identityService, { start: false });\n// fill credentials with certificate asynchronously from ZTIS\ngetCertificateFromZTIS().then((cert, key) => {\n  identityService.setCertificateAndKey(cert, key);\n  ams.start();\n});\n```\n\n#### Readiness Checks\n- **`whenReady(timeoutSeconds = 0): Promise<void>`**  \n  Returns a Promise that resolves once the instance is ready for authorization checks. If it has not received policies and assignments after the specified timeout interval, the Promise is rejected.  \n  - `timeoutSeconds` (number): Max wait time in seconds.  \n\n- **`isReady(): boolean`**  \n  Checks if the instance is ready for authorization checks.  \n\n---\n\n### AuthProvider \\<\\<interface\\>\\>\nThis is a generic interface. Its implementations define *how* to construct instances of `Authorizations` and from which application context.\n\n- **`C`**: The generic type of the context object.\n\n#### Methods\n- **`getAuthorizations(context: C): Promise<Authorizations>`**  \n  - `context` (`C`): The context object from which authorizations are derived.  \n\n#### Implementations\n- **[`AuthorizationManagementService`](#authorizationmanagementservice)**: Implements `AuthProvider<PolicySet>`.\n- `XssecAuthProvider`: Abstract base class implementing `AuthProvider<SecurityContext>` for authorization with an `@sap/xssec` SecurityContext.\n  - **[`IdentityServiceAuthProvider`](#identityserviceauthprovider)**: Implements `AuthProvider<IdentityServiceSecurityContext>` for authorization of SAP Cloud Identity Services tokens.\n      - **[`HybridAuthProvider`](#hybridauthprovider)**: Implements `AuthProvider<IdentityServiceSecurityContext | XsuaaSecurityContext>` for authorization of SAP Cloud Identity Services tokens or XSUAA tokens.\n- `CdsAuthProvider`: Abstract base class implementing `AuthProvider<CdsContext>` for authorization with a cds context in CAP applications.\n  - **[`CdsXssecAuthProvider`](#cdsxssecauthprovider)** Extends `CdsAuthProvider` for cds contexts with an `@sap/xssec` SecurityContext in `cdsContext.http.req.authInfo`.\n    - **`CdsMockedAuthProvider`**: Extends `CdsXssecAuthProvider` by mocking an `@sap/xssec` SecurityContext for `auth.kind = mocked` users.\n\n### IdentityServiceAuthProvider\n\n- Implements `AuthProvider<IdentityServiceSecurityContext>`.\n\n#### Methods\n- **`constructor(ams: AuthorizationManagementService): IdentityServiceAuthProvider`**  \n\n- **`withApiMapper(mapApi: ApiMapper, flow?: TechnicalUserFlow): IdentityServiceAuthProvider`**  \n  Defines an API mapper for mapping consumed SAP Cloud Identity Services APIs to policies.  \n  - `mapApi` ((api : string, securityContext : IdentityServiceSecurityContext) =>  string | string[] | undefined): A function that maps a consumed API to no (undefined), one (string) or multiple (string[]) fully-qualified policy name(s).\n  - `flow` (TECHNICAL_USER_FLOW | PRINCIPAL_PROPAGATION_FLOW, optional): A technical user flow exported by `@sap/ams` for which to apply the mapper. If omitted, applies it for both flows.  \n\n- **`withServicePlanMapper(servicePlanMapper: ServicePlanMapper): IdentityServiceAuthProvider`**  \n  Defines a service plan mapper for BTP reuse service for mapping BTP service plans of consumers to policies.  \n  - `servicePlanMapper` ((plan : string, securityContext : IdentityServiceSecurityContext) =>  string | string[] | undefined): A function that maps a service plan to no (undefined), one (string) or multiple (string[]) fully-qualified policy name(s).\n\n- **`getAuthorizations(securityContext: IdentityServiceSecurityContext): Promise<Authorizations>`**  \n  Returns the results of getUserAuthorizations or getTechnicalAuthorizations depending on the token. If both are available, returns the logical intersection (principal propagation).\n\n- **`getUserAuthorizations(securityContext: IdentityServiceSecurityContext): Promise<Authorizations | null>`**  \n  Extracts authorizations for a user based on assigned policies.  \n\n- **`getTechnicalAuthorizations(securityContext: IdentityServiceSecurityContext): Promise<Authorizations | null>`**  \n  Extracts authorizations for technical communication scenarios based on the provided API or service plan mappers.  \n\n- **`getInput(securityContext: IdentityServiceSecurityContext): AttributeInput`**  \n  Returns default input for $env.$user attributes used in all authorization checks.  \n\n- **`supportsSecurityContext(securityContext: SecurityContext): boolean`**  \n  Checks if the given security context is supported, for example to skip authorization or early exits.  \n\n### `HybridAuthProvider`\n\n- Implements `AuthProvider<IdentityServiceSecurityContext | XsuaaSecurityContext>` by extending `IdentityServiceAuthProvider`.\n\n#### Methods:\n- `constructor(ams: AMS, scopeToPolicyMapper: (ScopeMapper)`\n  - `mapScope` ((scope: string, securityContext: XsuaaSecurityContext) => string | string[] | undefined): A function that maps a consumed API to no (undefined), one (string) or multiple (string[]) fully-qualified policy name(s).\n- `getAuthorizations(securityContext: IdentityServiceSecurityContext | XsuaaSecurityContext): Promise<Authorizations>`\n  - For `XsuaaSecurityContext`: Maps token scopes to policies and identifies the tenant using the `zid` field.\n  - For `IdentityServiceSecurityContext`: Delegates to the base class implementation.\n\n---\n\n### CdsXssecAuthProvider\n\n- Implements `CdsAuthProvider<CdsContext>` for CdsContexts with an `@sap/xssec` SecurityContext in `cdsContext.http.req.authInfo`.\n\n#### Public Properties\n- **`xssecAuthProvider`** The `XssecAuthProvider` implementation used to build `Authorizations` from the `SecurityContext`. Can be customized or replaced with a custom implementation.\n\n#### Methods\n- **`getAuthorizations(cdsContext: CdsContext): Promise<Authorizations>`**  \nRetrieves the SecurityContext from `cdsContext.http.req.authInfo` and uses `xssecAuthProvider` to build [Authorizations](#authorizations) from it.\n\n- **`getCdsInput(cdsContext: CdsContext, definition: @sap/cds.linked.LinkedDefinitions, event: string): AttributeInput`**  \n  Returns default input for AMS attributes used in all authorization checks. By default, returns the input provided by `xssecAuthProvider` but can be overwritten with an implementation that returns custom input when authorizing requests for the given cds event on the given cds model definition. \n\n- **`supportsCdsContext(cdsContext: CdsContext): boolean`**  \n  Checks if the given cds context is supported to be handled by this implementation, for example to skip authorization or early exits.  \n\n### Authorizations\n\nAn abstract representation of authorizations determined by the strategy of the [AuthProvider](#authproviderc) from which it was constructed.\n\n#### Methods\n\n- **`constructor(ams: AuthorizationManagementService, policySet: PolicySet, context: any): Authorizations`**  \n\n- **`checkPrivilege(action: string, resource: string, input?: AttributeInput): Decision`**  \n  Checks if the action is allowed on the resource.  \n  - `input` (AttributeInput, optional): A flat input object that grounds fully-qualified attribute names to values, for example { \"$app.product.category\" : \"accessory\" }.\n  Attributes that are not grounded in the input are considered *unknown* and may result in a conditional Decision.\n\n- **`getPotentialResources(): Set<string>`**  \n  Collects all resources for which at least one action is potentially granted, ignoring conditions.  \n\n- **`getPotentialActions(resource: string): Set<string>`**  \n  Collects all actions that are potentially granted for a given resource, ignoring conditions.  \n\n- **`getPotentialPrivileges(): Array<{action: string, resource: string}>`**  \n  Collects all action/resource combinations that are potentially granted, ignoring conditions.  \n\n- **`withDefaultInput(input: AttributeInput): Authorizations`**  \n  Sets default input used for all authorization checks.  \n  - `input` (AttributeInput, optional): A flat input object that grounds fully-qualified attribute names to values, for example { \"$env.$user.origin\" : \"EU\" }\n\n- **`limitedTo(other: Authorizations): Authorizations`**  \n  Limits the authorizations of this instance to the authorizations of another instance. Subsequent authorization checks on this instance will use the logical intersection of its authorizations and those of the other Authorization instances.\n\n---\n\n### Decision\n\nRepresents the result of an authorization check. A decision can be in one of three states: *granted*, *denied*, or *conditional*.\n\n#### Methods\n\n- **`isGranted(): boolean`**  \n  Returns true if the authorization check resulted in a definitive GRANT with no outstanding conditions.\n\n- **`isDenied(): boolean`**  \n  Returns true if the authorization check resulted in a definitive DENY with no outstanding conditions.\n\n- **`<T,V>visit(visitCall: CallVisitor, visitValue: ValueVisitor) : T`**\n  This method can be used to visit the condition tree bottom-up. The visitor calls `visitValue` whenever it encounters a value (attribute reference or literal) or `visitCall` when it encounters a function call in the condition, for example a call to the \"EQ\" function to compare two arguments for equality.\n    - `visitCall` ((call : string, args : (DcnReference|DcnValue|V)[]) => T): A function that visits the given call and its arguments, for example to transform `(\"EQ\", args)` => `\"args[0] = args[1]\"`. The call names are the constants from `DclConstants.operators`.\n    - `transformValue` ((value : DcnReference|DcnValue) => DcnReference|DcnValue|V): A function that visits the given attribute reference or literal, for example to translate AMS references to database field names.\n    - {{ref:string}} `DcnReference`\n    - {number|string|boolean|number[]|string[]|boolean[]} `DcnValue` \n\n- **`filterUnknown(unknowns: string[]): Decision`**  \n  Returns a new `Decision` instance that is the result of keeping only the fully-qualified attributes as *unknown*, evaluating the remaining attributes as *unset*.\n\n- **`apply(flatInput: { [attributeName: string]: DcnValue }): Decision`**  \n  **EXPERIMENTAL**: If you plan to use this method in production, please open a ServiceNow ticket on component `BC-CP-CF-SEC-LIB`.\n  Uses the data provided in `flatInput` to create a new Decision. Simple example on a decision `d` that represents `a = 3` and `b = 4`:\n  ```javascript\n  d.apply({ a: 3 }) // returns a Decision that represents b=4\n  d.apply({ a: 3, b: 4 }) // returns a Decision that represents true\n  d.apply({ a: 1 }) // returns a Decision that represents false\n  d.apply({ a:3 }).apply({ b: 4 }) // returns a Decision that represents true\n  ```\n   \n### Events\n\nInstances of `AuthorizationManagementService` emit the following events to which consumers can subscribe via the `on(eventName: string, function(event: AmsEvent) : void)` method.\n\n- **`authorizationCheck`**: Emitted during various authorization operations by the methods of [Authorizations](#authorizations). The event object contains the following properties based on the type of operation:\n  - **`type`**: The type of the event. Possible values are:\n    - `\"checkPrivilege\"`: Emitted during a privilege check. Additional payload:\n      - **`action`**: The action being checked.\n      - **`resource`**: The resource being checked.\n      - **`input`**: The input used for the authorization check.\n      - **`decision`**: The decision of the authorization check.\n    - `\"getPotentialActions\"`: Emitted when collecting potential actions for a resource. Additional payload:\n      - **`resource`**: The resource for which actions are being collected.\n      - **`potentialActions`**: The set of actions that are potentially granted for the given resource.\n    - `\"getPotentialResources\"`: Emitted when collecting potential resources. Additional payload:\n      - **`potentialResources`**: The set of resources for which at least one action is potentially granted.\n    - `\"getPotentialPrivileges\"`: Emitted when collecting potential privileges. Additional payload:\n      - **`potentialPrivileges`**: The list of potentially granted privileges, each containing:\n        - **`action`**: The action.\n        - **`resource`**: The resource.\n  - **`authorizations`**: The `Authorizations` instance that triggered the event.\n  - **`context`**: The context of the event from which the `Authorizations` instance was created.\n\n- **`error`**: Emitted when an error occurs in a background operation. The event object contains the following properties:\n  - **`type`**: The type of the event. Possible values are:\n    - `\"bundleRefreshError\"`: Emitted when the BundleLoader fails to refresh the current policies and assignments bundle, for example due to a failed request to the AMS server. This event is not emitted when the initial loading fails. Use the `whenReady` method instead to check for the initial readiness of AMS.\n  - **`error`**: The `AmsError` instance that describes the error.\n\n\n\n## CAP integration\n\nAMS can be used for authorization in CAP applications to provide both role and instance-based authorization management at runtime.\nThe integration is based on the standard cds annotations for authorization via roles and optional ams-specific annotations for instance-based authorization filters. \n\nFor production, AMS is meant to be used with SAP Cloud Identity Services as authentication solution but mocked authentication can be used to test authorization without the need for SAP Cloud Identity Services tokens. This is useful when the application is started locally or to execute automated tests.\n\nWhen deployed, the application's authorization policies are managed in your application using the administration console of SAP Cloud Identity Services. During development, policies can be edited in the IDE and assigned to mocked users via the `cds env` configuration of non-production profiles.\n\nThe plugin runtime has the following expectations on the project environment. If your projects differs from this, for example due to a custom auth middleware, you can customize the plugin via [cds env configuration](#configuration) and the [plugin runtime configuration](#plugin-runtime).\n\n| **Default**                                     | **Value**                                                                       | **Customize**\n|------------------------------------------       | ------------------------------------------------------------------------------- | -----------------\n| SAP Cloud Identity Services credentials location| `cds.env.requires.auth.credentials`                                             | [Provide credentials manually](#custom-sap-cloud-identity-services-credential-location)\n| amsPluginRuntime.authProvider.xssecAuthProvider | Defaults to `IdentityServiceAuthProvider`                                       | [Replace default XssecAuthProvider](#custom-xssecauthprovider)\n| @sap/xssec SecurityContext location             | `IdentityServiceSecurityContext` expected under `cds.context.http.req.authInfo` | [Replace default CdsAuthProvider](#custom-cdsauthprovider)\n| amsPluginRuntime.authProvider                   | Defaults to `CdsXssecAuthProvider`                                              | [Replace default CdsAuthProvider](#custom-cdsauthprovider)\n\n### cds add ams\nThe `cds add ams` command configures the application for AMS.\n\nIt installs both the AMS runtime plugin for cds (@sap/ams) and the AMS development plugin for cds (@sap/ams-dev):\n\n```shell\nnpm i @sap/ams\nnpm i --save-dev @sap/ams-dev\n```\n\nAdditionally, it configures the application's deployment artefacts (`mta`, `helm`, `cf-manifest`) for AMS, for example by adding configuration for the [ams policy deployer application](#base-policy-upload).\n\n### Features\n#### Role-based authorization\nAMS can be used to assign roles from the cds authorization model to users via authorization policies. For example, the following policy would grant the `Admin` role when assigned to a user:\n\n```SQL\nPOLICY Admin {\n  ASSIGN ROLE Admin;\n}\n```\n\nThe AMS plugin implements a middleware that computes the roles of SAP Cloud Identity Services users before each request by overriding the [`user.is`](https://cap.cloud.sap/docs/node.js/authentication#user-is) function.\n\n#### Instance-based authorization\nPolicies that assign roles can be extended with attribute filters for instance-based authorization. This allows administrators to create custom policies at runtime for fine-grained control. This is most useful to give customer administrators in multi-tenant applications fine-grained control over their user's rights.\n\nVia `@ams.attributes` annotations, the AMS attributes are mapped to elements (or association paths) in the cds model. Whenever requests access cds resources with those elements, the result is filtered based on the attribute conditions computed by AMS. The conditions are based on the `WHERE` condition behind role assignments in policies.\n\n`ams.attributes` annotations are supported on *aspects*, *entities* and *actions/functions bound to a single entity* as those are the [cds resources that support *where* conditions](https://cap.cloud.sap/docs/guides/security/authorization#supported-combinations-with-cds-resources).\n\nExample annotations\n```js\naspect media {\n    price: Integer;\n    genre: Association to Genres;\n}\n\nannotate media with @ams.attributes: {\n    price: (price),\n    genre: (genre.name)\n};\n\n@restrict: [{ grant:['READ'], to: ['Reader'] }]\nentity Books : media {\n  // ...\n}\n```\n\nExample schema.dcl\n```sql\nSCHEMA {\n  genre: String,\n  price: Number\n}\n```\n\nExample basePolicies.dcl\n```sql\nPOLICY \"Reader\" {\n    ASSIGN ROLE \"Reader\" WHERE genre IS NOT RESTRICTED AND price IS NOT RESTRICTED;\n}\n```\n\nExample admin policy (created at runtime via the administration console of SAP Cloud Identity Services)\n```sql\nPOLICY JuniorReader {\n    USE \"Reader\" RESTRICT genre IN ('Fantasy', 'Fairy Tale'), price < 20;\n}\n```\n\n#### Validation\nThe AMS plugin [@sap/ams](https://www.npmjs.com/package/@sap/ams) adds a [custom build task](https://cap.cloud.sap/docs/guides/deployment/custom-builds#custom-build-plugins) for *ams*.\n\nIt validates `@ams.attributes` annotations for syntactic correctness and type coherence during `cds build`, and whenever a model is loaded if the application was started via `cds serve`, `cds watch` or `cds.test`. This gives early feedback about the correctness of the annotations during development:\n\n- validates that `@ams.attributes` annotations map AMS attributes syntactically correct to cds elements via expression syntax.\n- if a manually written/adjusted `schema.dcl` is used, validates that all AMS attributes mapped via `@ams.attributes` annotations exist and have a type that fits each cds element to which they are mapped.\n- if a generated `schema.dcl` is used, validates that the inferred type of each AMS attribute is coherent across all `@ams.attributes` mappings in which it is mapped to a cds element.\n\n#### Base Policy Generation\nUnless disabled, the AMS build task generates base policies for roles that occur in the `@requires` and `@restrict` annotations of the cds model.\n\nExample annotation\n```js\n@restrict: [{ grant:['READ'], to: ['Reader', 'Inquisitor'] }]\nentity Books as projection on my.Books { *,\n```\n\nExample `basePolicies.dcl`\n```sql\nPOLICY \"Reader\" {\n  ASSIGN ROLE \"Reader\";\n}\n\nPOLICY \"Inquisitor\" {\n  ASSIGN ROLE \"Inquisitor\";\n}\n```\n\nIt also generates a `schema.dcl` that defines AMS attributes with inferred types based on `@ams.attributes` annotation for [instance-based authorization](#instance-based-authorization).\n\n:information_source: Policy generation also occurs during `cds serve`, `cds watch` and `cds.test` to react to changes of cds annotations.\n\nDCL Files that have been modified manually will not be overridden during generation to allow manual changes of the schema and base policies. To force re-generation of a generated DCL file, delete it prior to the next DCL generation.\n\n#### Base Policy Upload\nDuring `cds build`, a policy deployer application will be generated in `<cds.build.target>/policies`:\n\n[*Node.js default*] `gen/policies`\\\n[*Java default*] `srv/src/gen/policies`\n\nIt requires a certificate-based binding to the Identity service and must be deployed together with the application to upload the base policies to the AMS.\nFor `helm` chart deployments, it can be built via `containerize` as a Node.js image and deployed with the `content-deployment` helm template.\n\n#### Testing policies\nThe DCL package called `local` has a special semantic. It is meant for DCL files with policies that are only relevant for testing but not for production. Its policies are ignored during the base policy upload, even if they are contained during the upload.\n\nFor example, you can create fictitious admin policies inside this package to test whether extensions of base policies work as expected.\n\n`@sap/ams-dev` automatically compiles DCL files to the `DCN` format which is required for local policy evaluations. This happens when the application is started via `cds start`, `cds watch` or via `cds.test`, so that the application should be able to do authorization checks via AMS even during development without deploying the policies first to the SAP Cloud Identity Services.\n\n#### Mocked user testing\nFor testing and development purposes, policies can be assigned to mocked users via the `cds env` configuration of non-production profiles:\n\n```json\n{\n    \"requires\": {\n        \"auth\": {\n            \"[development]\": {\n                \"kind\": \"mocked\",\n                \"users\": {\n                    \"carol\": {\n                        \"policies\": [\n                            \"cap.Reader\"\n                        ]\n                    },\n                    \"dave\": {\n                        \"policies\": [\n                            \"cap.Admin\",\n                            \"cap.Reader\"\n                        ]\n```\n\nIt is important to assign policies via their fully-qualified name which includes the DCL package (`cap` in this example).\n\nOf course, you can still assign roles via the `roles` array directly to mocked users.\nAssigning policies instead of roles is mostly useful for testing instance-based authorization via AMS as the attribute filters only apply to roles assigned via AMS policies.\n\n#### Hybrid testing\nIf [autoDeployDcl](#configuration) is enabled when bound to an `ias` instance for authentication, for example during [Hybrid testing](https://cap.cloud.sap/docs/advanced/hybrid-testing), the AMS plugin uploads the base policies to the AMS server instead of compiling them to `DCN`. From there, they will be downloaded into the DCN engine shortly after that via polling and subsequently used for authorization checks.\n\n**Be very careful though with `autoDeployDcl` and do not enable it when bound against a productive system or it will override the deployed base policies with the current development state!**\n\nAn application bound to an `ias` instance for authentication will always download its policy bundle from the corresponding AMS instance. This means, hybrid testing can be used to run an application locally with the policies from an AMS instance (including admin policies created at runtime) without overriding them. Downloading policies in hybrid mode does not require `autoDeployDcl` to be enabled.\n\n### Configuration\nThe AMS plugins are configured inside the `requires.auth.ams` property of the [cds env](https://cap.cloud.sap/docs/node.js/cds-env#project-settings).\\\nIt supports the following properties with the following [`default`]:\n\n- **generateDcl** *true/false* [`true`]: unless set to `false`, generates `basePolicies.dcl` and `schema.dcl` from the cds model (see [Base Policy Generaiton](#base-policy-generation))\n- **dclRoot** *string* [`ams/dcl`]: the root DCL folder (containing the `schema.dcl`) which is used for generating DCL, compiling DCL to DCN during development, uploading DCL etc.\n- **dclGenerationPackage** *string* [`cap`]: name of the DCL package to which basePolicies.dcl is generated\n- **dcnRoot** *string* [`gen/dcn` / `srv/src/gen/ams/dcn` (Java)]:  folder for DCL to DCN compilation results during development (see [Testing Policies](#testing-policies))\n- **policyDeployerRoot** *string* [`gen/policies` / `srv/src/gen/policies` (Java)]:  folder of the ams policy deployer application created during `cds build` (see [Base Policy Upload](#base-policy-upload))\n- **authPushDcl** *true/false* [`false`]:  if enabled, uploads the base policies to the AMS server (see [Hybrid testing](#hybrid-testing)\n\nAll AMS properties also work lowercased (for example `generatedcl`) and this casing has priority of the camelCase (for example `generateDcl`) version of properties. This means, all [cds env sources](https://cap.cloud.sap/docs/node.js/cds-env#sources-for-cds-env) including case-insensitive ones are supported such as setting properties via environment variables (`CDS_REQUIRES_AUTH_AMS_GENERATEDCL`) which gets mapped to lowercased versions of the property. \n\n#### Plugin Runtime\nIt is possible to replace the following defaults in the runtime of the plugin to configure it for non-standard project environments.\n\n##### Custom SAP Cloud Identity Services credential location\n\nIf the SAP Cloud Identity Services credentials are not available under the default location (`cds.env.requires.auth.credentials`), you need to manually provide them:\n\nserver.js\n```js\nconst { amsCapPluginRuntime } = require(\"@sap/ams\");\n\namsCapPluginRuntime.credentials = { ... } // manually provide the SAP Cloud Identity Services credentials from service binding\n```\n\n##### Custom XssecAuthProvider\n\nIt is possible to override the `XssecAuthProvider` implementation used by the default `CdsAuthProvider` internally to a different implementation.\nFor example, the following snippet shows how it can be replaced in projects that authenticate both via SAP Cloud Identity Services and XSUAA.\n\nserver.js\n```js\nconst { amsCapPluginRuntime, HybridAuthProvider } = require(\"@sap/ams\");\n\nconst mapScope = (scope, securityContext) => scope; // your custom scope to policy mapper\namsCapPluginRuntime.authProvider.xssecAuthProvider = new HybridAuthProvider(amsCapPluginRuntime.ams, mapScope) // authorization for both SAP Cloud Identity Services and XSUAA tokens\n```\n\n##### Custom CdsAuthProvider\n\nserver.js\n```js\nconst { amsCapPluginRuntime } = require(\"@sap/ams\");\n\namsCapPluginRuntime.authProvider = new MyCustomCdsAuthProvider(); // your custom CdsAuthProvider implementation if you do not authorize based on @sap/xssec SecurityContexts\n```\n\n#### Technical communication\nBy default, the plugin runtime uses an [IdentityServiceAuthProvider](#identityserviceauthprovider) which supports technical communication via SAP Cloud Identity Services out-of-the-box.\nYou can access it as follows in the default plugin runtime to configure which policies to use for technical communication scenarios:\n\n```js\nconst { amsCapPluginRuntime, TECHNICAL_USER_FLOW, PRINCIPAL_PROPAGATION_FLOW } = require(\"@sap/ams\");\nconst { mapTechnicalUserApi, mapPrincipalPropagationApi } = require('../ams/apis.js'); // your custom API mappers\n\nconst identityServiceAuthProvider = amsCapPluginRuntime.authProvider.xssecAuthProvider;\nidentityServiceAuthProvider\n  .withApiMapper(mapTechnicalUserApi, TECHNICAL_USER_FLOW)\n  .withApiMapper(mapPrincipalPropagationApi, PRINCIPAL_PROPAGATION_FLOW);\n```\n\n### Logging\nThe AMS CAP plugins log to namespace `ams` in CAP. To see [debug logs](https://cap.cloud.sap/docs/node.js/cds-log#debug-env-variable) during development, turn it on for this namespace, for example via\n\n```shell\nDEBUG=ams cds watch\n```\n\n\n\n## Deploy DCL\n\nThe DCL bundle is typically deployed together with the application to ensure the application's authorization checks are always done with the most current set of policies.\n\n### DCL Deployer Application\nThe recommended way to deploy DCL, is by deploying a minimal Node.js\\* application along with your application that contains the DCL bundle and has a service binding to the target SAP Cloud Identity Services instance.\n\nThis module provides a ready-to-use [package.json](./ams-dcl-content-deployer/package.json) for such an application:\n\n```js \n{\n  \"name\": \"ams-dcl-content-deployer\",\n  \"version\": \"2.0.0\",\n  \"dependencies\": {\n    \"@sap/ams\": \"^2\"\n  },\n  \"engines\": {\n    \"node\": \">=18\"\n  },\n  \"scripts\": {\n    \"start\": \"npx --package=@sap/ams deploy-dcl\"\n  }\n}\n```\n\nIt expects to find the DCL bundle in a folder called `dcl` next to the package.json. As you can see, the application's start script simply calls the [deploy-dcl](#deploy-dcl-1) script of this module. Afterwards, it exits with exit code 0 (*success*) or 1 (*error*).\n\n\\* *A Node.js installation is not required during development, so this method also works nicely for applications written in other languages such as Java.*\n\n#### Building the DCL Deployer Application\n1. Create a new folder for the Deployer application with the ready-to-use [package.json](./ams-dcl-content-deployer/package.json).\n2. Extend your build script to copy your DCL root folder to the `dcl` folder of your Deployer application\n\n#### Deploying the DCL Deployer Application\nIt depends on the target platform and deployment method how best to deploy the DCL Deployer Application alongside your application.\nBelow is a list of templates for the most common scenarios.\n\nMake sure to always bind the DCL deployer to the Identity service instance with a **certificate-based** service binding because this is required by the AMS server for authentication.\n\n\n<details><summary>MTA</summary>\n\n\\\nThe following entry defines a module that registers and executes a CF task to deploy the DCL bundle and shuts down on success to free resources.\n\nmta.yaml\n```yaml\nmodules:\n  - name: {{appName}}-ams-policies-deployer\n      type: javascript.nodejs\n      path: {{dclDeployerAppFolder}}\n      parameters:\n        buildpack: nodejs_buildpack\n        no-route: true\n        no-start: true\n        tasks:\n          - name: deploy-dcl\n            command: npm start\n            memory: 512M\n      requires:\n        - name: {{identityServiceInstanceName}}\n          parameters:\n            config:\n              credential-type: X509_GENERATED\n              app-identifier: policy-deployer\n```\n</details>\n\n\n\n<details><summary>CF Manifest</summary>\n\n\\\nUnlike MTAs, CF manifests do not support the execution of CF tasks and CF considers applications as crashed, even when their process exits with status code 0. For this reason, the deployer application needs to idle and be manually stopped after the DCL deployment. It will report about success or failure in its logs.\n\nmanifest.yml\n```yaml\napplications:\n  - name: {{appName}}-ams-policies-deployer\n    path: {{dclDeployerAppFolder}}\n    no-route: true\n    health-check-type: none\n    memory: 256M\n    instances: 1\n    buildpack: nodejs_buildpack\n    command: (npm start && echo \"This application may now be stopped to free resources.\" || echo \"AMS policy deployment unsuccessful.\") && sleep infinity\n    services:\n      - name: {{identityServiceInstanceName}}\n        parameters:\n          credential-type: X509_GENERATED\n          app-identifier: policy-deployer\n```\n</details>\n\n\n\n<details><summary>Unified Runtime Helm Charts</summary>\nBuild and deploy an image from your Application deployer and replace {{YourAmsDclDeployerImage}} below with its URL.\n\n\\\nCharts.yaml\n```yml\ndependencies:\n    # ...\n\n  - name: content-deployment\n    alias: ams-policies-deployer\n    version: \">0.0.0\"\n```\n\nvalues.yaml\n```yml\n# ...\n\nams-policies-deployer:\n    image:\n        repository: {{YourAmsDclDeployerImage}}\n    bindings:\n        identity:\n            serviceInstanceName: {{identityServiceInstanceName}}\n            parameters:\n                credential-type: X509_GENERATED\n                app-identifier: policy-deployer\n```\n</details>\n\n\n\n<details><summary>Kubernetes Job</summary>\nBuild and deploy an image from your Application deployer and replace {{YourAmsDclDeployerImage}} below with its URL.\n\n\\\nams-dcl-deployer.yml\n```yml\napiVersion: batch/v1\nkind: Job\nmetadata:\n  name: {{appName}}-ams-policies-deployer\nspec:\n  completions: 1\n  parallelism: 1\n  ttlSecondsAfterFinished: 1209600\n  template:\n    spec:\n      imagePullSecrets:\n        - name: {{imagePullSecret}}\n      containers:\n      - image: {{YourAmsDclDeployerImage}}\n        name: ams-policies-deployer\n        env:\n        - name: SERVICE_BINDING_ROOT\n          value: /bindings\n        securityContext:\n          allowPrivilegeEscalation: false\n          capabilities:\n            drop:\n            - ALL\n          privileged: false\n          runAsNonRoot: true\n          readOnlyRootFilesystem: false\n        volumeMounts:        \n        - mountPath: /bindings/identity/\n          name: identity-binding\n          readOnly: true\n      restartPolicy: OnFailure\n      volumes:      \n      - name: identity-binding\n        secret:\n          secretName: {{certBasedIdentityBinding}}\n```\n</details>\n\n### deploy-dcl script\n\nThe script pushes a DCL bundle (including schema.dcl, DCL root package and all subpackages) to the Identity service instance from the environment (see `deploy-dcl --help`):\n\n```\nUsage: deploy-dcl -d [DCL_ROOT_DIR] -c [CREDENTIALS_FILE] -n [DEPLOYER_APP_NAME]\n\nOptions:\n      --help         Show help                                         [boolean]\n      --version      Show version number                               [boolean]\n  -d, --dcl          [optional] path to the directory that contains the DCL root\n                     package. If a path is provided via environment variable\n                     AMS_DCL_ROOT, it overrides this option.\n                                                       [string] [default: \"dcl\"]\n  -c, --credentials  [optional] path to a JSON file containing the credentials\n                     object of an Identity service binding. If omitted, will try\n                     to find and use an Identity service binding from the\n                     process environment.                               [string]\n  -n, --name         [optional] a descriptive name of this deployer application\n                     to trace back the currently deployed DCL bundle on the AMS\n                     server to its source when DCL is deployed from more than\n                     one source. If a name is provided directly via environment\n                     variable AMS_APP_NAME or indirectly as application_name via\n                     VCAP_APPLICATION on Cloud Foundry or the pod name on K8s,\n                     it overrides this option.\n                                   [string] [default: \"@sap/ams:deploy-dcl\"]\n\nExamples:\n  deploy-dcl                                Pushes the DCL content in ./dcl\n                                            (including schema.dcl, DCL root\n                                            package and all subpackages) to the\n                                            identity service instance from the\n                                            environment.\n  deploy-dcl -d src/dcl -c config/ias.json  Pushes the DCL content from\n  -n bookshop-dcl-deployer                  ./src/dcl using the SAP Cloud Identity Services\n                                            credentials in ./config/ias.json.\n                                            The deployer app name for this\n                                            upload will be set to\n                                            \"bookshop-dcl-deployer\" to be able\n                                            to trace back the upload source to\n                                            this deployer.\n```\n\n\n\n## Resources\n\n### Getting Support\n\nAs registered SAP customers, report your issue in creating a ticket for component **BC-CP-CF-SEC-LIB** on the [SAP Support Portal][SAPOSS]\nSee also [Getting Support][SAP_GS] in the SAP BTP documentation.\n\nNote that consulting can **not** be offered via the support channels unless it is part of a customer's service plan.\n\n### Open Source Legal Notices\n\n[SAP Cloud Identity 1.0][SSCI10]\n\n[SAPOSS]: https://support.sap.com/en/index.html\n[SAP_GS]: https://help.sap.com/docs/btp/sap-business-technology-platform/btp-getting-support\n[SSCI10]: https://support.sap.com/content/dam/launchpad/en_us/osln/osln/67837800100900008826_20170821125934.pdf","readmeFilename":"README.md"}