{"_id":"@aligent/aws-wrappers","_rev":"13-96696e7aff31f76141e508f59759a129","name":"@aligent/aws-wrappers","dist-tags":{"latest":"0.5.4"},"versions":{"0.0.1":{"name":"@aligent/aws-wrappers","version":"0.0.1","author":{"name":"Aligent"},"license":"MIT","_id":"@aligent/aws-wrappers@0.0.1","maintainers":[{"name":"jarrod.swift","email":"jarrod.swift@aligent.com.au"},{"name":"aligent-bot","email":"devops+npm@aligent.com.au"},{"name":"tom.thorogood","email":"tom.thorogood@aligent.com.au"}],"homepage":"https://github.com/aligent/microservice-development-utilities#readme","bugs":{"url":"https://github.com/aligent/microservice-development-utilities/issues"},"dist":{"shasum":"7d58dc4fdb1de2a663d9bfe6f8d119923edfcf76","tarball":"https://registry.npmjs.org/@aligent/aws-wrappers/-/aws-wrappers-0.0.1.tgz","fileCount":32,"integrity":"sha512-XEK5HiHGUW+PNdMfO9stq6V6agkz20GRQk7A7qQPx1FPlH7uKKrv5+rgYVzr40W3/6kXwKY0RI1h8XNepwYQIA==","signatures":[{"sig":"MEUCIQDuTafcuXkD2PdYoW/jYm5ylY2Xl3z+2mn0kDJUayuawAIgcsXQq1INFVokG3OzXqOV03/SUwnsV9HBC0z5kUp6LWM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":138496},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"099c985013065753a786ac29efeeb0999aef06a7","typings":"./src/index.d.ts","_npmUser":{"name":"aligent-bot","email":"devops+npm@aligent.com.au"},"repository":{"url":"git+https://github.com/aligent/microservice-development-utilities.git","type":"git","directory":"packages/aws-wrappers"},"_npmVersion":"11.11.0","description":"Opinionated AWS SDK wrappers with Powertools logging and X-Ray tracing","directories":{},"_nodeVersion":"24.14.1","dependencies":{"aws-xray-sdk-core":"^3.12.0","@aws-sdk/client-s3":"^3.1045.0","@aws-sdk/client-sfn":"^3.1045.0","@aws-sdk/client-sns":"^3.1045.0","@aws-sdk/client-sqs":"^3.1045.0","@aws-sdk/client-ssm":"^3.1045.0","@aws-sdk/lib-dynamodb":"^3.1045.0","@aws-sdk/client-dynamodb":"^3.1045.0","@aws-lambda-powertools/logger":"^2.33.0","@aws-sdk/s3-request-presigner":"^3.1045.0","@aws-sdk/client-secrets-manager":"^3.1045.0"},"_hasShrinkwrap":false,"devDependencies":{"aws-sdk-client-mock":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/aws-wrappers_0.0.1_1779683603279_0.07954072359349817","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@aligent/aws-wrappers","version":"0.1.0","author":{"name":"Aligent"},"license":"MIT","_id":"@aligent/aws-wrappers@0.1.0","maintainers":[{"name":"jarrod.swift","email":"jarrod.swift@aligent.com.au"},{"name":"aligent-bot","email":"devops+npm@aligent.com.au"},{"name":"tom.thorogood","email":"tom.thorogood@aligent.com.au"}],"homepage":"https://github.com/aligent/microservice-development-utilities#readme","bugs":{"url":"https://github.com/aligent/microservice-development-utilities/issues"},"dist":{"shasum":"0e5758a7dd708c88cc0aad1b4bcac60e82f1f260","tarball":"https://registry.npmjs.org/@aligent/aws-wrappers/-/aws-wrappers-0.1.0.tgz","fileCount":32,"integrity":"sha512-66RpG471S4U01FPKEpMONB36yAY1w41O3wycqayaD3EprA1emNwHohh6fcb49B4iw/zDoLCtk63S9jyVJz/pZQ==","signatures":[{"sig":"MEUCIG/fM7hXw52ZixUVwUNOWa1sO7pC3F4mdSxH7vZ1qh4OAiEAuPWy2uel/iW0XwLqTV6xtovYQYHoHlgBnsXEyzy+Xx8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aligent%2faws-wrappers@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":139208},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"61a855ba086745634f708bb3f3bd7dd7cf490e94","typings":"./src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0f1fea71-912a-47e7-b7dd-4d250e4adf3c"}},"repository":{"url":"git+https://github.com/aligent/microservice-development-utilities.git","type":"git","directory":"packages/aws-wrappers"},"_npmVersion":"11.11.0","description":"Opinionated AWS SDK wrappers with Powertools logging and X-Ray tracing","directories":{},"_nodeVersion":"24.14.1","dependencies":{"aws-xray-sdk-core":"^3.12.0","@aws-sdk/client-s3":"^3.1045.0","@aws-sdk/client-sfn":"^3.1045.0","@aws-sdk/client-sns":"^3.1045.0","@aws-sdk/client-sqs":"^3.1045.0","@aws-sdk/client-ssm":"^3.1045.0","@aws-sdk/lib-dynamodb":"^3.1045.0","@aws-sdk/client-dynamodb":"^3.1045.0","@aws-lambda-powertools/logger":"^2.33.0","@aws-sdk/s3-request-presigner":"^3.1045.0","@aws-sdk/client-secrets-manager":"^3.1045.0"},"_hasShrinkwrap":false,"devDependencies":{"aws-sdk-client-mock":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/aws-wrappers_0.1.0_1779760748010_0.9638217300710921","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@aligent/aws-wrappers","version":"0.1.1","author":{"name":"Aligent"},"license":"MIT","_id":"@aligent/aws-wrappers@0.1.1","maintainers":[{"name":"jarrod.swift","email":"jarrod.swift@aligent.com.au"},{"name":"aligent-bot","email":"devops+npm@aligent.com.au"},{"name":"tom.thorogood","email":"tom.thorogood@aligent.com.au"}],"homepage":"https://github.com/aligent/microservice-development-utilities#readme","bugs":{"url":"https://github.com/aligent/microservice-development-utilities/issues"},"dist":{"shasum":"1431d0b67cf60df21dbb72e1e8e8c5a69dd5ac9b","tarball":"https://registry.npmjs.org/@aligent/aws-wrappers/-/aws-wrappers-0.1.1.tgz","fileCount":36,"integrity":"sha512-zTkUj7JklLeEZoHG+BwUGCYeJNKGUjUq3rfM3df354jja9ie0gpfex3P3NFABLRBOMOcHnAdiwc8R9UdAaLOWQ==","signatures":[{"sig":"MEUCIFURb0a2zp6zRMNPD1+FsM9MFsaOFadwaMNm6r8M9MUTAiEAjD3gXzY4T2H8jeB1+QjQ6Qi8ORz2Ao5McNcbWa4RMFM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aligent%2faws-wrappers@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":278482},"main":"./cjs/index.cjs","types":"./cjs/src/index.d.ts","module":"./esm/index.mjs","exports":{".":{"import":{"types":"./esm/src/index.d.ts","default":"./esm/index.mjs"},"require":{"types":"./cjs/src/index.d.ts","default":"./cjs/index.cjs"}},"./package.json":"./package.json"},"gitHead":"c94af2561e6cf8e679adae327b625e9f8c56b84d","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0f1fea71-912a-47e7-b7dd-4d250e4adf3c"}},"repository":{"url":"git+https://github.com/aligent/microservice-development-utilities.git","type":"git","directory":"packages/aws-wrappers"},"_npmVersion":"11.11.0","description":"Opinionated AWS SDK wrappers with Powertools logging and X-Ray tracing","directories":{},"_nodeVersion":"24.14.1","dependencies":{"aws-xray-sdk-core":"^3.12.0","@aws-sdk/client-s3":"^3.1045.0","@aws-sdk/client-sfn":"^3.1045.0","@aws-sdk/client-sns":"^3.1045.0","@aws-sdk/client-sqs":"^3.1045.0","@aws-sdk/client-ssm":"^3.1045.0","@aws-sdk/lib-dynamodb":"^3.1045.0","@aws-sdk/client-dynamodb":"^3.1045.0","@aws-lambda-powertools/logger":"^2.33.0","@aws-sdk/s3-request-presigner":"^3.1045.0","@aws-sdk/client-secrets-manager":"^3.1045.0"},"_hasShrinkwrap":false,"devDependencies":{"aws-sdk-client-mock":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/aws-wrappers_0.1.1_1780020272466_0.7765841277277368","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@aligent/aws-wrappers","version":"0.1.2","author":{"name":"Aligent"},"license":"MIT","_id":"@aligent/aws-wrappers@0.1.2","maintainers":[{"name":"jarrod.swift","email":"jarrod.swift@aligent.com.au"},{"name":"aligent-bot","email":"devops+npm@aligent.com.au"},{"name":"tom.thorogood","email":"tom.thorogood@aligent.com.au"}],"homepage":"https://github.com/aligent/microservice-development-utilities#readme","bugs":{"url":"https://github.com/aligent/microservice-development-utilities/issues"},"dist":{"shasum":"cdad73df3d54a5e41f1d9afcbd3b2e9898715e01","tarball":"https://registry.npmjs.org/@aligent/aws-wrappers/-/aws-wrappers-0.1.2.tgz","fileCount":36,"integrity":"sha512-O+799braI1RFe/sWHiLW5sx92lV1kyme/rHkJM5/Y6NrkrZPZhAI4+lDV8vwYDPt70A5FLRk6FQh4d2AnkeX4g==","signatures":[{"sig":"MEUCIFqiIDoaGlIJKEGpSE6Pu0JBU+eqxr0dvpKsuTG016XcAiEA49Drs5J6G2xTxQDVK4M8p0onoHW4wZcSweR4niPnTyc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aligent%2faws-wrappers@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":278482},"main":"./cjs/index.cjs","types":"./cjs/src/index.d.ts","module":"./esm/index.mjs","exports":{".":{"import":{"types":"./esm/src/index.d.ts","default":"./esm/index.mjs"},"require":{"types":"./cjs/src/index.d.ts","default":"./cjs/index.cjs"}},"./package.json":"./package.json"},"gitHead":"4f53e0b79b0a864a6476ac539302e96eeaf03fc1","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0f1fea71-912a-47e7-b7dd-4d250e4adf3c"}},"repository":{"url":"git+https://github.com/aligent/microservice-development-utilities.git","type":"git","directory":"packages/aws-wrappers"},"_npmVersion":"11.11.0","description":"Opinionated AWS SDK wrappers with Powertools logging and X-Ray tracing","directories":{},"_nodeVersion":"24.14.1","dependencies":{"aws-xray-sdk-core":"^3.12.0","@aws-sdk/client-s3":"^3.1068.0","@aws-sdk/client-sfn":"^3.1068.0","@aws-sdk/client-sns":"^3.1068.0","@aws-sdk/client-sqs":"^3.1068.0","@aws-sdk/client-ssm":"^3.1068.0","@aws-sdk/lib-dynamodb":"^3.1068.0","@aws-sdk/client-dynamodb":"^3.1068.0","@aws-lambda-powertools/logger":"^2.33.1","@aws-sdk/s3-request-presigner":"^3.1068.0","@aws-sdk/client-secrets-manager":"^3.1068.0"},"_hasShrinkwrap":false,"devDependencies":{"aws-sdk-client-mock":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/aws-wrappers_0.1.2_1782094320573_0.8948185810344647","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@aligent/aws-wrappers","version":"0.2.0","author":{"name":"Aligent"},"license":"MIT","_id":"@aligent/aws-wrappers@0.2.0","maintainers":[{"name":"jarrod.swift","email":"jarrod.swift@aligent.com.au"},{"name":"aligent-bot","email":"devops+npm@aligent.com.au"},{"name":"tom.thorogood","email":"tom.thorogood@aligent.com.au"}],"homepage":"https://github.com/aligent/microservice-development-utilities#readme","bugs":{"url":"https://github.com/aligent/microservice-development-utilities/issues"},"dist":{"shasum":"28582b7796f28d4b3321383a1808cd8d572074fc","tarball":"https://registry.npmjs.org/@aligent/aws-wrappers/-/aws-wrappers-0.2.0.tgz","fileCount":39,"integrity":"sha512-QjTJrKF1RK/Khfq4HI8ztVNhIFFf+pTAjx8NREnxaR33+J08gmNZg4KKztUHtuhooY2poFCnLkE4C7qMhPBVDg==","signatures":[{"sig":"MEYCIQCv/HuLvYf5qU0Jt+F9j2P0dkISOrlIGk8qGJ1mpGGpgAIhAJrxW1msyZdaibf7u1Iu/VjEOsQjaDkyqv6c5P+opKuZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aligent%2faws-wrappers@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":329205},"main":"./cjs/index.cjs","types":"./cjs/src/index.d.ts","module":"./esm/index.mjs","exports":{".":{"import":{"types":"./esm/src/index.d.ts","default":"./esm/index.mjs"},"require":{"types":"./cjs/src/index.d.ts","default":"./cjs/index.cjs"}},"./package.json":"./package.json"},"gitHead":"69157a41ca2853053d9fb86f1d8ae4503e4f7928","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0f1fea71-912a-47e7-b7dd-4d250e4adf3c"}},"repository":{"url":"git+https://github.com/aligent/microservice-development-utilities.git","type":"git","directory":"packages/aws-wrappers"},"_npmVersion":"11.11.0","description":"Opinionated AWS SDK wrappers with Powertools logging and X-Ray tracing","directories":{},"_nodeVersion":"24.14.1","dependencies":{"aws-xray-sdk-core":"^3.12.0","@aws-sdk/client-s3":"^3.1068.0","@aws-sdk/client-sfn":"^3.1068.0","@aws-sdk/client-sns":"^3.1068.0","@aws-sdk/client-sqs":"^3.1068.0","@aws-sdk/client-ssm":"^3.1068.0","@aws-sdk/lib-dynamodb":"^3.1068.0","@aws-sdk/client-dynamodb":"^3.1068.0","@aws-sdk/client-scheduler":"^3.1077.0","@aws-lambda-powertools/logger":"^2.33.1","@aws-sdk/s3-request-presigner":"^3.1068.0","@aws-sdk/client-secrets-manager":"^3.1068.0"},"_hasShrinkwrap":false,"devDependencies":{"aws-sdk-client-mock":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/aws-wrappers_0.2.0_1783057649071_0.4916030476228572","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@aligent/aws-wrappers","version":"0.3.0","author":{"name":"Aligent"},"license":"MIT","_id":"@aligent/aws-wrappers@0.3.0","maintainers":[{"name":"jarrod.swift","email":"jarrod.swift@aligent.com.au"},{"name":"aligent-bot","email":"devops+npm@aligent.com.au"},{"name":"tom.thorogood","email":"tom.thorogood@aligent.com.au"}],"homepage":"https://github.com/aligent/microservice-development-utilities#readme","bugs":{"url":"https://github.com/aligent/microservice-development-utilities/issues"},"dist":{"shasum":"031d4010726a5bb1f2e30f8fe6c12a34586351c9","tarball":"https://registry.npmjs.org/@aligent/aws-wrappers/-/aws-wrappers-0.3.0.tgz","fileCount":39,"integrity":"sha512-4eydvkQejAiqUO9607Q44V92o26uG7ykSohhw4DLc8YUCn2ZOHtVaUjEsRyuXUYECVjwkfdgjI77R6lpo5q0jw==","signatures":[{"sig":"MEUCIQDMNtuO9oqSXi0hyqPaHsc8Lg5QIc4/EuNFvoA+TnG0GAIgMb6hWYHlpfHiEibKkzOkZdVx5d530kmMpU62aY4FGsg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aligent%2faws-wrappers@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":337541},"main":"./cjs/index.cjs","types":"./cjs/src/index.d.ts","module":"./esm/index.mjs","exports":{".":{"import":{"types":"./esm/src/index.d.ts","default":"./esm/index.mjs"},"require":{"types":"./cjs/src/index.d.ts","default":"./cjs/index.cjs"}},"./package.json":"./package.json"},"gitHead":"2eefe3092c15db0db48d36c66354d12f2be2dadd","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0f1fea71-912a-47e7-b7dd-4d250e4adf3c"}},"repository":{"url":"git+https://github.com/aligent/microservice-development-utilities.git","type":"git","directory":"packages/aws-wrappers"},"_npmVersion":"11.11.0","description":"Opinionated AWS SDK wrappers with Powertools logging and X-Ray tracing","directories":{},"_nodeVersion":"24.14.1","dependencies":{"aws-xray-sdk-core":"^3.12.0","@aws-sdk/client-s3":"^3.1068.0","@aws-sdk/client-sfn":"^3.1068.0","@aws-sdk/client-sns":"^3.1068.0","@aws-sdk/client-sqs":"^3.1068.0","@aws-sdk/client-ssm":"^3.1068.0","@aws-sdk/lib-dynamodb":"^3.1068.0","@aws-sdk/client-dynamodb":"^3.1068.0","@aws-sdk/client-scheduler":"^3.1077.0","@aws-lambda-powertools/logger":"^2.33.1","@aws-sdk/s3-request-presigner":"^3.1068.0","@aws-sdk/client-secrets-manager":"^3.1068.0"},"_hasShrinkwrap":false,"devDependencies":{"aws-sdk-client-mock":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/aws-wrappers_0.3.0_1785839165505_0.7261217913118678","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@aligent/aws-wrappers","version":"0.4.0","author":{"name":"Aligent"},"license":"MIT","_id":"@aligent/aws-wrappers@0.4.0","maintainers":[{"name":"jarrod.swift","email":"jarrod.swift@aligent.com.au"},{"name":"aligent-bot","email":"devops+npm@aligent.com.au"},{"name":"tom.thorogood","email":"tom.thorogood@aligent.com.au"}],"homepage":"https://github.com/aligent/microservice-development-utilities#readme","bugs":{"url":"https://github.com/aligent/microservice-development-utilities/issues"},"dist":{"shasum":"5ffc9a29e764fd3fdd0c33813165e756387f5232","tarball":"https://registry.npmjs.org/@aligent/aws-wrappers/-/aws-wrappers-0.4.0.tgz","fileCount":39,"integrity":"sha512-JvOs3eHZrd1BnwMSHXnWG03r7BYEmw4rKE+3PqIXEdbBbP3gzq5VhNqr5tmEwSlLP+Rnw8KBgEMurF+5/cfM2A==","signatures":[{"sig":"MEUCIQCjNm2GYVPeEBc86FZQMoahzip2qhghy4a/aV+g8wjG2gIgEyZoIcKxd/m9VOPtDkP7QvhLCXEMNINLucK0BC26cec=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aligent%2faws-wrappers@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":260652},"main":"./cjs/index.cjs","types":"./cjs/src/index.d.ts","module":"./esm/index.mjs","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./esm/src/index.d.ts","default":"./esm/index.mjs"},"require":{"types":"./cjs/src/index.d.ts","default":"./cjs/index.cjs"}},"./package.json":"./package.json"},"gitHead":"210335258bf1e496e69bc10e865ddc49e6279699","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0f1fea71-912a-47e7-b7dd-4d250e4adf3c"}},"repository":{"url":"git+https://github.com/aligent/microservice-development-utilities.git","type":"git","directory":"packages/aws-wrappers"},"_npmVersion":"11.11.0","description":"Opinionated AWS SDK wrappers with Powertools logging and X-Ray tracing","directories":{},"_nodeVersion":"24.14.1","dependencies":{"aws-xray-sdk-core":"^3.12.0","@aws-sdk/client-s3":"^3.1068.0","@aws-sdk/client-sfn":"^3.1068.0","@aws-sdk/client-sns":"^3.1068.0","@aws-sdk/client-sqs":"^3.1068.0","@aws-sdk/client-ssm":"^3.1068.0","@aws-sdk/lib-dynamodb":"^3.1068.0","@aws-sdk/client-dynamodb":"^3.1068.0","@aws-sdk/client-scheduler":"^3.1077.0","@aws-lambda-powertools/logger":"^2.33.1","@aws-sdk/s3-request-presigner":"^3.1068.0","@aws-sdk/client-secrets-manager":"^3.1068.0"},"_hasShrinkwrap":false,"devDependencies":{"aws-sdk-client-mock":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/aws-wrappers_0.4.0_1786586709095_0.5448854453165111","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@aligent/aws-wrappers","version":"0.4.1","author":{"name":"Aligent"},"license":"MIT","_id":"@aligent/aws-wrappers@0.4.1","maintainers":[{"name":"jarrod.swift","email":"jarrod.swift@aligent.com.au"},{"name":"aligent-bot","email":"devops+npm@aligent.com.au"},{"name":"tom.thorogood","email":"tom.thorogood@aligent.com.au"}],"homepage":"https://github.com/aligent/microservice-development-utilities#readme","bugs":{"url":"https://github.com/aligent/microservice-development-utilities/issues"},"dist":{"shasum":"193c45af81ab8f6c1cf842691c1ae3936c6a5158","tarball":"https://registry.npmjs.org/@aligent/aws-wrappers/-/aws-wrappers-0.4.1.tgz","fileCount":39,"integrity":"sha512-xqOG57sLbLbQF8YEDCpkIAa3UN3pOaQLYN8evnx0yaVTyArRgxrlZO+baEWXpIbpBuaoeoO8cbSd2kGaUmcG4A==","signatures":[{"sig":"MEUCIQDXFbiGJxOuot247Iobw0dHRkaisMb52CikqTebS2WxMQIgVJt1lp2tmKJqksFBn7zI71fDElvvENdS02CxESFMqOg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aligent%2faws-wrappers@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":260652},"main":"./cjs/index.cjs","types":"./cjs/src/index.d.ts","module":"./esm/index.mjs","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./esm/src/index.d.ts","default":"./esm/index.mjs"},"require":{"types":"./cjs/src/index.d.ts","default":"./cjs/index.cjs"}},"./package.json":"./package.json"},"gitHead":"3860e26dc8e334564280b82de4b1089851885046","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0f1fea71-912a-47e7-b7dd-4d250e4adf3c"}},"repository":{"url":"git+https://github.com/aligent/microservice-development-utilities.git","type":"git","directory":"packages/aws-wrappers"},"_npmVersion":"11.11.0","description":"Opinionated AWS SDK wrappers with Powertools logging and X-Ray tracing","directories":{},"_nodeVersion":"24.14.1","dependencies":{"aws-xray-sdk-core":"^3.12.0","@aws-sdk/client-s3":"^3.1068.0","@aws-sdk/client-sfn":"^3.1068.0","@aws-sdk/client-sns":"^3.1068.0","@aws-sdk/client-sqs":"^3.1068.0","@aws-sdk/client-ssm":"^3.1068.0","@aws-sdk/lib-dynamodb":"^3.1068.0","@aws-sdk/client-dynamodb":"^3.1068.0","@aws-sdk/client-scheduler":"^3.1077.0","@aws-lambda-powertools/logger":"^2.33.1","@aws-sdk/s3-request-presigner":"^3.1068.0","@aws-sdk/client-secrets-manager":"^3.1068.0"},"_hasShrinkwrap":false,"devDependencies":{"aws-sdk-client-mock":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/aws-wrappers_0.4.1_1787199920887_0.3419643324716992","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@aligent/aws-wrappers","version":"0.5.0","author":{"name":"Aligent"},"license":"MIT","_id":"@aligent/aws-wrappers@0.5.0","maintainers":[{"name":"jarrod.swift","email":"jarrod.swift@aligent.com.au"},{"name":"aligent-bot","email":"devops+npm@aligent.com.au"},{"name":"tom.thorogood","email":"tom.thorogood@aligent.com.au"}],"homepage":"https://github.com/aligent/microservice-development-utilities#readme","bugs":{"url":"https://github.com/aligent/microservice-development-utilities/issues"},"dist":{"shasum":"a8ad3d41d07ab053f83ce225d99479504c30008a","tarball":"https://registry.npmjs.org/@aligent/aws-wrappers/-/aws-wrappers-0.5.0.tgz","fileCount":48,"integrity":"sha512-gmm/ddTPPeislrwi3wBNPywaxwHnynkU1Mza+GDrO191YhD9rQMtWMvp7QEA0AgaXWbGijAx0I3GJ4gclLepgw==","signatures":[{"sig":"MEYCIQCG6trbLrMLcz8svh/88D5r4iFgB6Fd7Ia2fIDNMIk5qAIhAMWNyc74DKe7nNRP0dIhu552OwP2ITExeApNBwAGrhGT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aligent%2faws-wrappers@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":281394},"main":"./cjs/index.cjs","types":"./cjs/src/index.d.ts","module":"./esm/index.mjs","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./esm/src/index.d.ts","default":"./esm/index.mjs"},"require":{"types":"./cjs/src/index.d.ts","default":"./cjs/index.cjs"}},"./testing":{"import":{"types":"./esm/src/testing/testing.d.ts","default":"./esm/testing.mjs"},"require":{"types":"./cjs/src/testing/testing.d.ts","default":"./cjs/testing.cjs"}},"./package.json":"./package.json"},"gitHead":"12392981323381975cdaffeb0a828cecd4846ce0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0f1fea71-912a-47e7-b7dd-4d250e4adf3c"}},"repository":{"url":"git+https://github.com/aligent/microservice-development-utilities.git","type":"git","directory":"packages/aws-wrappers"},"_npmVersion":"11.11.0","description":"Opinionated AWS SDK wrappers with Powertools logging and X-Ray tracing","directories":{},"_nodeVersion":"24.14.1","dependencies":{"aws-xray-sdk-core":"^3.12.0","@aws-sdk/client-s3":"^3.1068.0","@aws-sdk/client-sfn":"^3.1068.0","@aws-sdk/client-sns":"^3.1068.0","@aws-sdk/client-sqs":"^3.1068.0","@aws-sdk/client-ssm":"^3.1068.0","@aws-sdk/lib-dynamodb":"^3.1068.0","@aws-sdk/client-dynamodb":"^3.1068.0","@aws-sdk/client-scheduler":"^3.1077.0","@aws-lambda-powertools/logger":"^2.33.1","@aws-sdk/s3-request-presigner":"^3.1068.0","@aws-sdk/client-secrets-manager":"^3.1068.0"},"_hasShrinkwrap":false,"devDependencies":{"aws-sdk-client-mock":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/aws-wrappers_0.5.0_1787809397593_0.7164746918624461","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@aligent/aws-wrappers","version":"0.5.1","author":{"name":"Aligent"},"license":"MIT","_id":"@aligent/aws-wrappers@0.5.1","maintainers":[{"name":"jarrod.swift","email":"jarrod.swift@aligent.com.au"},{"name":"aligent-bot","email":"devops+npm@aligent.com.au"},{"name":"tom.thorogood","email":"tom.thorogood@aligent.com.au"}],"homepage":"https://github.com/aligent/microservice-development-utilities#readme","bugs":{"url":"https://github.com/aligent/microservice-development-utilities/issues"},"dist":{"shasum":"0fcbecf2574a05b782aa6b6ed7cd8f998402719b","tarball":"https://registry.npmjs.org/@aligent/aws-wrappers/-/aws-wrappers-0.5.1.tgz","fileCount":48,"integrity":"sha512-dnttdUUiS/GrQdKFPWPUv7DodRVZ8zX8xHCVhBohVlXzg4DtFH03UcorIlB/XM5plxTFH/2FLi8wixwwg5KXnQ==","signatures":[{"sig":"MEUCICH4yXjfH8pHFtWkwMiyspUus1ZFEewqKOhO6BmJhRq3AiEA+Hkf55Xpnn2xcrhDE1cPe18aOfQBiBW4gg9JwGu0P/c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aligent%2faws-wrappers@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":287006},"main":"./cjs/index.cjs","types":"./cjs/src/index.d.ts","module":"./esm/index.mjs","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./esm/src/index.d.ts","default":"./esm/index.mjs"},"require":{"types":"./cjs/src/index.d.ts","default":"./cjs/index.cjs"}},"./testing":{"import":{"types":"./esm/src/testing/testing.d.ts","default":"./esm/testing.mjs"},"require":{"types":"./cjs/src/testing/testing.d.ts","default":"./cjs/testing.cjs"}},"./package.json":"./package.json"},"gitHead":"71eddc43546914f2f8321d80003a486b30acef40","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0f1fea71-912a-47e7-b7dd-4d250e4adf3c"}},"repository":{"url":"git+https://github.com/aligent/microservice-development-utilities.git","type":"git","directory":"packages/aws-wrappers"},"_npmVersion":"11.11.0","description":"Opinionated AWS SDK wrappers with Powertools logging and X-Ray tracing","directories":{},"_nodeVersion":"24.14.1","dependencies":{"aws-xray-sdk-core":"^3.12.0","@aws-sdk/client-s3":"^3.1068.0","@aws-sdk/client-sfn":"^3.1068.0","@aws-sdk/client-sns":"^3.1068.0","@aws-sdk/client-sqs":"^3.1068.0","@aws-sdk/client-ssm":"^3.1068.0","@aws-sdk/lib-dynamodb":"^3.1068.0","@aws-sdk/client-dynamodb":"^3.1068.0","@aws-sdk/client-scheduler":"^3.1077.0","@aws-lambda-powertools/logger":"^2.33.1","@aws-sdk/s3-request-presigner":"^3.1068.0","@aws-sdk/client-secrets-manager":"^3.1068.0"},"_hasShrinkwrap":false,"devDependencies":{"aws-sdk-client-mock":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/aws-wrappers_0.5.1_1787874837179_0.8343375234141819","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@aligent/aws-wrappers","version":"0.5.2","author":{"name":"Aligent"},"license":"MIT","_id":"@aligent/aws-wrappers@0.5.2","maintainers":[{"name":"jarrod.swift","email":"jarrod.swift@aligent.com.au"},{"name":"aligent-bot","email":"devops+npm@aligent.com.au"},{"name":"tom.thorogood","email":"tom.thorogood@aligent.com.au"}],"homepage":"https://github.com/aligent/microservice-development-utilities#readme","bugs":{"url":"https://github.com/aligent/microservice-development-utilities/issues"},"dist":{"shasum":"6179576609868e4d597bbcf881063622141bec0e","tarball":"https://registry.npmjs.org/@aligent/aws-wrappers/-/aws-wrappers-0.5.2.tgz","fileCount":72,"integrity":"sha512-9Yp7xmtMgcQYqcx0bEJQv7BaC19iLY26QzPvsHMXxEj0MSDUvdueXC8cvsiF3rpvWQT707sKYevuNxRKBH/I5A==","signatures":[{"sig":"MEYCIQCsrxUYx2LgaW4HMSYfyccEzRBIuZ+KUZSwr1ZBbHOi3QIhAMDj7a0260ZJucUnKrxwxOh3MxNsRzbiD4dqd1oB5wG9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aligent%2faws-wrappers@0.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":313559},"main":"./cjs/index.cjs","types":"./cjs/src/index.d.ts","module":"./esm/index.mjs","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./esm/src/index.d.ts","default":"./esm/index.mjs"},"require":{"types":"./cjs/src/index.d.ts","default":"./cjs/index.cjs"}},"./testing":{"import":{"types":"./esm/src/testing/testing.d.ts","default":"./esm/testing.mjs"},"require":{"types":"./cjs/src/testing/testing.d.ts","default":"./cjs/testing.cjs"}},"./package.json":"./package.json"},"gitHead":"135acf0c1f1e51c4f6b4a4998b87709ae0a7ab50","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0f1fea71-912a-47e7-b7dd-4d250e4adf3c"}},"repository":{"url":"git+https://github.com/aligent/microservice-development-utilities.git","type":"git","directory":"packages/aws-wrappers"},"_npmVersion":"11.11.0","description":"Opinionated AWS SDK wrappers with Powertools logging and X-Ray tracing","directories":{},"_nodeVersion":"24.14.1","dependencies":{"aws-xray-sdk-core":"^3.12.0","@aws-sdk/client-s3":"^3.1068.0","@aws-sdk/client-sfn":"^3.1068.0","@aws-sdk/client-sns":"^3.1068.0","@aws-sdk/client-sqs":"^3.1068.0","@aws-sdk/client-ssm":"^3.1068.0","@aws-sdk/lib-dynamodb":"^3.1068.0","@aws-sdk/client-dynamodb":"^3.1068.0","@aws-sdk/client-scheduler":"^3.1077.0","@aws-lambda-powertools/logger":"^2.33.1","@aws-sdk/s3-request-presigner":"^3.1068.0","@aws-sdk/client-secrets-manager":"^3.1068.0"},"_hasShrinkwrap":false,"devDependencies":{"aws-sdk-client-mock":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/aws-wrappers_0.5.2_1788911437802_0.4733496791528755","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"@aligent/aws-wrappers","version":"0.5.3","author":{"name":"Aligent"},"license":"MIT","_id":"@aligent/aws-wrappers@0.5.3","maintainers":[{"name":"jarrod.swift","email":"jarrod.swift@aligent.com.au"},{"name":"aligent-bot","email":"devops+npm@aligent.com.au"},{"name":"tom.thorogood","email":"tom.thorogood@aligent.com.au"}],"homepage":"https://github.com/aligent/microservice-development-utilities#readme","bugs":{"url":"https://github.com/aligent/microservice-development-utilities/issues"},"dist":{"shasum":"a2e5a143e9a198d69f124923a0937839bea9f5a6","tarball":"https://registry.npmjs.org/@aligent/aws-wrappers/-/aws-wrappers-0.5.3.tgz","fileCount":72,"integrity":"sha512-o+91TBWRtPS+n+WUI0EKvDZ8v/7D/cYZvr3nW4hTm6JuWv/L74Gje+S18gEoS5A3s7yauy5NWVqkQfQDz0NdMQ==","signatures":[{"sig":"MEQCIFGiijazW/nP9lGhGLFIVGW8cVl27TmhDSv7Dcfca711AiBex4nIffZRIUWWQyaKlr40Xp8YSvNFGT2JboPHbXYLKg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aligent%2faws-wrappers@0.5.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":313559},"main":"./cjs/index.cjs","types":"./cjs/src/index.d.ts","module":"./esm/index.mjs","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./esm/src/index.d.ts","default":"./esm/index.mjs"},"require":{"types":"./cjs/src/index.d.ts","default":"./cjs/index.cjs"}},"./testing":{"import":{"types":"./esm/src/testing/testing.d.ts","default":"./esm/testing.mjs"},"require":{"types":"./cjs/src/testing/testing.d.ts","default":"./cjs/testing.cjs"}},"./package.json":"./package.json"},"gitHead":"44bb30cc1539630279decb30de984100804057f9","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0f1fea71-912a-47e7-b7dd-4d250e4adf3c"}},"repository":{"url":"git+https://github.com/aligent/microservice-development-utilities.git","type":"git","directory":"packages/aws-wrappers"},"_npmVersion":"11.11.0","description":"Opinionated AWS SDK wrappers with Powertools logging and X-Ray tracing","directories":{},"_nodeVersion":"24.14.1","dependencies":{"aws-xray-sdk-core":"^3.12.0","@aws-sdk/client-s3":"^3.1127.0","@aws-sdk/client-sfn":"^3.1127.0","@aws-sdk/client-sns":"^3.1127.0","@aws-sdk/client-sqs":"^3.1127.0","@aws-sdk/client-ssm":"^3.1127.0","@aws-sdk/lib-dynamodb":"^3.1127.0","@aws-sdk/client-dynamodb":"^3.1127.0","@aws-sdk/client-scheduler":"^3.1127.0","@aws-lambda-powertools/logger":"^2.33.1","@aws-sdk/s3-request-presigner":"^3.1127.0","@aws-sdk/client-secrets-manager":"^3.1127.0"},"_hasShrinkwrap":false,"devDependencies":{"aws-sdk-client-mock":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/aws-wrappers_0.5.3_1788998606576_0.5416328662763066","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"_id":"@aligent/aws-wrappers@0.5.4","bugs":{"url":"https://github.com/aligent/microservice-development-utilities/issues"},"dist":{"shasum":"8b560f9b7d28e776c4e32f0ba76c19569bcfbf76","tarball":"https://registry.npmjs.org/@aligent/aws-wrappers/-/aws-wrappers-0.5.4.tgz","fileCount":72,"integrity":"sha512-dsh9Jp4Iw9NQEdHXA+FJHe74CppBqLemN9J/DPBkw9WtH3amCImWPk/+Su+XEiLeLxPTI1k8xKcKKz0U99ZTPQ==","signatures":[{"sig":"MEUCIQC1WRo5iq4lFknKtAcFEmUz0J/dCJc2Bp/ZUKkI5uWdwAIgDXrXru/IyyNi6iiggqcpCGyBUVSr/t1iBnXnpgWqd4M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIH0owMs1GjBa0yxHBFyZBCQjpaMfwn9sgwc79FZ8Zc3yAiEApDA0VpSA/VxXxcqOmci6bEKHMq5B3GJkGjISAmPLmWQ="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aligent%2faws-wrappers@0.5.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":313559},"main":"./cjs/index.cjs","name":"@aligent/aws-wrappers","types":"./cjs/src/index.d.ts","author":{"name":"Aligent"},"module":"./esm/index.mjs","engines":{"node":">=18"},"exports":{".":{"import":{"types":"./esm/src/index.d.ts","default":"./esm/index.mjs"},"require":{"types":"./cjs/src/index.d.ts","default":"./cjs/index.cjs"}},"./testing":{"import":{"types":"./esm/src/testing/testing.d.ts","default":"./esm/testing.mjs"},"require":{"types":"./cjs/src/testing/testing.d.ts","default":"./cjs/testing.cjs"}},"./package.json":"./package.json"},"gitHead":"208162b51bc413ae3185eb1c132d9faf5fac8079","license":"MIT","version":"0.5.4","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0f1fea71-912a-47e7-b7dd-4d250e4adf3c"}},"homepage":"https://github.com/aligent/microservice-development-utilities#readme","repository":{"url":"git+https://github.com/aligent/microservice-development-utilities.git","type":"git","directory":"packages/aws-wrappers"},"_npmVersion":"11.11.0","description":"Opinionated AWS SDK wrappers with Powertools logging and X-Ray tracing","directories":{},"maintainers":[{"name":"jarrod.swift","email":"jarrod.swift@aligent.com.au"},{"name":"aligent-bot","email":"devops+npm@aligent.com.au"},{"name":"tom.thorogood","email":"tom.thorogood@aligent.com.au"}],"_nodeVersion":"24.14.1","dependencies":{"aws-xray-sdk-core":"^3.12.0","@aws-sdk/client-s3":"^3.1127.0","@aws-sdk/client-sfn":"^3.1127.0","@aws-sdk/client-sns":"^3.1127.0","@aws-sdk/client-sqs":"^3.1127.0","@aws-sdk/client-ssm":"^3.1127.0","@aws-sdk/lib-dynamodb":"^3.1127.0","@aws-sdk/client-dynamodb":"^3.1127.0","@aws-sdk/client-scheduler":"^3.1127.0","@aws-lambda-powertools/logger":"^2.33.1","@aws-sdk/s3-request-presigner":"^3.1127.0","@aws-sdk/client-secrets-manager":"^3.1127.0"},"_hasShrinkwrap":false,"devDependencies":{"aws-sdk-client-mock":"^4.1.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/aws-wrappers_0.5.4_1790211360914_0.7863616716396196"}}},"time":{"created":"2026-05-25T04:33:23.194Z","modified":"2026-09-24T00:56:01.383Z","0.0.1":"2026-05-25T04:33:23.444Z","0.1.0":"2026-05-26T01:59:08.147Z","0.1.1":"2026-05-29T02:04:32.653Z","0.1.2":"2026-06-22T02:12:00.724Z","0.2.0":"2026-07-03T05:47:29.203Z","0.3.0":"2026-08-04T10:26:05.662Z","0.4.0":"2026-08-13T02:05:09.279Z","0.4.1":"2026-08-20T04:25:21.097Z","0.5.0":"2026-08-27T05:43:17.735Z","0.5.1":"2026-08-27T23:53:57.316Z","0.5.2":"2026-09-08T23:50:37.937Z","0.5.3":"2026-09-10T00:03:26.713Z","0.5.4":"2026-09-24T00:56:01.019Z"},"bugs":{"url":"https://github.com/aligent/microservice-development-utilities/issues"},"author":{"name":"Aligent"},"license":"MIT","homepage":"https://github.com/aligent/microservice-development-utilities#readme","repository":{"url":"git+https://github.com/aligent/microservice-development-utilities.git","type":"git","directory":"packages/aws-wrappers"},"description":"Opinionated AWS SDK wrappers with Powertools logging and X-Ray tracing","maintainers":[{"name":"jarrod.swift","email":"jarrod.swift@aligent.com.au"},{"name":"aligent-bot","email":"devops+npm@aligent.com.au"},{"name":"tom.thorogood","email":"tom.thorogood@aligent.com.au"}],"readme":"# @aligent/aws-wrappers\n\nOpinionated AWS SDK wrappers with Powertools logging and X-Ray tracing baked in. Each `*Service` class instantiates and instruments its underlying SDK client by default and emits a structured `logger.info` line on every operation, so consumers get a consistent, observable starting point without rewriting the same boilerplate per service.\n\n## Installation\n\n```sh\nnpm install @aligent/aws-wrappers\n```\n\nRequires **Node 18 or later**. The package is compiled to ES2022 and ships native `class` declarations, so older runtimes fail at import time with a syntax error rather than degrading gracefully.\n\n## Conventions\n\nEvery wrapper takes the same optional constructor options:\n\n```ts\nnew XService({ logger?, client? })\n```\n\n- `logger` — a Powertools `Logger`. Defaults to `new Logger()`, which picks up `POWERTOOLS_SERVICE_NAME` from the environment (recommended) and otherwise falls back to Powertools' own default.\n- `client` — a pre-configured SDK client. When omitted, the wrapper instantiates the SDK client itself and wraps it with `captureAWSv3Client` for X-Ray tracing. When supplied, the wrapper passes it through unchanged — the caller is responsible for X-Ray instrumentation.\n\n### Log redaction\n\nEvery wrapper emits one `logger.info` line per SDK call with a per-method safe-field allowlist (omitting payloads, secret material, and PII recipient identifiers). Set `POWERTOOLS_LOG_LEVEL` to either `DEBUG` or `TRACE` to unlock the full SDK input in those log lines — useful for local development and incident triage. Both levels unlock because Powertools orders `TRACE` as more verbose than `DEBUG`; every level from `INFO` upwards redacts. See `packages/aws-wrappers/CLAUDE.md` for the per-method allowlists currently in force.\n\n### X-Ray outside Lambda\n\nX-Ray's middleware throws by default when no active segment exists, which is the case for CLI scripts and local development. Set the environment variable to silence the noise:\n\n```sh\nAWS_XRAY_CONTEXT_MISSING=IGNORE_ERROR\n```\n\n## S3\n\n```ts\nimport { S3Service } from '@aligent/aws-wrappers';\n\nconst s3 = new S3Service();\n\nawait s3.putObject({ Bucket: 'my-bucket', Key: 'file.txt', Body: 'hello' });\n\nawait s3.putJsonObject({ Bucket: 'my-bucket', Key: 'data.json', Body: { foo: 'bar' } });\nconst data = await s3.getJsonObject<MyType>({ Bucket: 'my-bucket', Key: 'data.json' });\n\n// getObject returns the raw GetObjectCommandOutput when you need metadata\n// (LastModified, ContentLength, …) alongside the body.\nconst raw = await s3.getObject({ Bucket: 'my-bucket', Key: 'file.txt' });\nconst body = await s3.getObjectBody({ Bucket: 'my-bucket', Key: 'file.txt' });\n\nconst { LastModified } = await s3.headObject({ Bucket: 'my-bucket', Key: 'file.txt' });\n\nconst keys = await s3.listObjects('my-bucket', 'prefix/');\nconst items = await s3.getAllObjects<MyType>('my-bucket', 'prefix/');\n\nawait s3.copyObject({ Bucket: 'dest', Key: 'dest-key', CopySource: 'src/src-key' });\n\n// Presigned URLs for direct browser-side download / upload.\n// expiresIn defaults to 3600 seconds.\nconst downloadUrl = await s3.getPresignedUrl({\n    Bucket: 'my-bucket',\n    Key: 'file.txt',\n    action: 'get',\n});\nconst uploadUrl = await s3.getPresignedUrl({\n    Bucket: 'my-bucket',\n    Key: 'file.txt',\n    action: 'put',\n    expiresIn: 600,\n});\n\nawait s3.deleteObject({ Bucket: 'my-bucket', Key: 'file.txt' });\nawait s3.deleteObjects('my-bucket', ['key1', 'key2']); // auto-chunked to 1000 keys per request\nawait s3.emptyBucket('my-bucket');                     // unversioned buckets only — see below\n```\n\nInput shapes are intentionally tight (`Bucket`, `Key`, `Body` and similar). Callers needing SDK-specific options like server-side encryption or tagging should use `S3Client` directly.\n\n`emptyBucket` streams the listing page-by-page and delegates each page to `deleteObjects`, so peak memory stays bounded by one page regardless of bucket size. It empties **unversioned buckets only**: it paginates `ListObjectsV2`, which reports current object versions and never noncurrent versions or delete markers. Against a versioned bucket the call succeeds and the bucket then *looks* empty to `ListObjectsV2` — but the deletes only added delete markers, so every object version is still stored. You will still be billed for that storage, and `DeleteBucket` will fail with `BucketNotEmpty`. Emptying a versioned bucket needs `ListObjectVersions` plus per-version deletes — use `S3Client` directly.\n\n## DynamoDB\n\n```ts\nimport { DynamoDBService } from '@aligent/aws-wrappers';\n\nconst ddb = new DynamoDBService();\n\n// Backed by DynamoDBDocumentClient — items are plain TS objects in both directions.\nawait ddb.putItem({ TableName: 'my-table', Item: { pk: 'abc', value: 42 } });\n\n// Key-bearing methods take two generics: <K, R> for the key shape and the\n// return / Attributes shape. Both default to Record<string, unknown> so callers\n// can omit one or both when they don't care.\ntype MyKey = { pk: string };\ntype MyItem = { pk: string; value: number };\n\nconst item = await ddb.getItem<MyKey, MyItem>({\n    TableName: 'my-table',\n    Key: { pk: 'abc' },\n});\n\nconst { Items } = await ddb.query<MyItem>({\n    TableName: 'my-table',\n    KeyConditionExpression: 'pk = :pk',\n    ExpressionAttributeValues: { ':pk': 'abc' },\n});\n\n// scan returns the same shape as query — full output with Items typed as T[].\nconst { Items: all } = await ddb.scan<{ pk: string }>({ TableName: 'my-table' });\n\n// updateItem / deleteItem mirror getItem's <K, R> generics.\nconst { Attributes } = await ddb.updateItem<MyKey, { value: number }>({\n    TableName: 'my-table',\n    Key: { pk: 'abc' },\n    UpdateExpression: 'SET #v = :v',\n    ExpressionAttributeNames: { '#v': 'value' },\n    ExpressionAttributeValues: { ':v': 99 },\n    ReturnValues: 'ALL_NEW',\n});\n\nawait ddb.deleteItem({ TableName: 'my-table', Key: { pk: 'abc' } });\n\n// batchWrite retries UnprocessedItems with jittered exponential backoff\n// (5 attempts, 200ms base) and throws if any remain after the final attempt.\nawait ddb.batchWrite({\n    RequestItems: {\n        'my-table': [{ PutRequest: { Item: { pk: 'abc' } } }],\n    },\n});\n\n// paginateItems / paginateScan yield each item — use for potentially unbounded result sets.\nfor await (const item of ddb.paginateItems<{ pk: string }>({\n    TableName: 'my-table',\n    KeyConditionExpression: 'pk = :pk',\n    ExpressionAttributeValues: { ':pk': 'abc' },\n})) {\n    console.log(item.pk);\n}\n\nfor await (const item of ddb.paginateScan<{ pk: string }>({ TableName: 'my-table' })) {\n    console.log(item.pk);\n}\n\n// `Limit` is a PAGE SIZE, not a total cap — this walks the whole result set\n// in pages of 10, it does not stop after 10 items. `break` to bound the read.\nconst firstTen: Array<{ pk: string }> = [];\nfor await (const item of ddb.paginateItems<{ pk: string }>({\n    TableName: 'my-table',\n    KeyConditionExpression: 'pk = :pk',\n    ExpressionAttributeValues: { ':pk': 'abc' },\n    Limit: 10,\n})) {\n    firstTen.push(item);\n    if (firstTen.length === 10) break; // stops immediately — no further requests\n}\n```\n\n`Limit` on `paginateItems` / `paginateScan` is applied by DynamoDB per request, and both methods walk every page until `LastEvaluatedKey` is exhausted. Passing `Limit: 10` therefore yields *every* matching item in pages of 10, not the first 10. Because both return an `AsyncGenerator`, `break` calls its `return()`, which unwinds the pagination and issues no further requests — that is how you bound the number of items. `Limit` is still the right knob for tuning per-request consumed capacity and page memory; it just doesn't stop the walk.\n\n`batchGet` is **not** generic — its `Responses` field is a multi-table record whose item shapes can differ per table, so no single generic can soundly describe it. Callers should narrow the result type at the call site. Like `batchWrite`, it retries non-empty `UnprocessedKeys` with jittered exponential backoff (5 attempts, 200ms base), merging `Responses` across attempts and throwing if keys remain unprocessed after the final attempt.\n\n## Secrets Manager\n\n```ts\nimport { SecretsManagerService } from '@aligent/aws-wrappers';\n\nconst secrets = new SecretsManagerService();\n\nconst raw = await secrets.getSecret('my-secret-name');\nconst config = await secrets.getJsonSecret<MySecretShape>('my-secret-name');\n```\n\n`getSecret` throws when the response has no `SecretString` (e.g. a binary-only secret). `getJsonSecret` additionally throws if the secret value is not valid JSON. `VersionId` / `VersionStage` aren't exposed — use `SecretsManagerClient` directly if you need version pinning.\n\n```ts\n// Write operations. Prefer IaC (CDK / Terraform) for secret lifecycle;\n// reserve these for rotation flows or dynamically-issued credentials.\nawait secrets.createSecret({ Name: 'my-secret', SecretString: 'shh' });\nawait secrets.updateSecret({ SecretId: 'my-secret', Description: 'updated' });\nawait secrets.putSecretValue({ SecretId: 'my-secret', SecretString: 'new-shh' });\nawait secrets.deleteSecret({ SecretId: 'my-secret', RecoveryWindowInDays: 7 });\n```\n\n## Step Functions\n\n```ts\nimport { StepFunctionsService } from '@aligent/aws-wrappers';\n\nconst sfn = new StepFunctionsService();\n\n// Auto-paginated — returns every execution across all pages.\nconst executions = await sfn.listExecutions({\n    stateMachineArn: 'arn:aws:states:us-east-1:0:stateMachine:my-sfn',\n    statusFilter: 'RUNNING',\n});\n\nconst { executionArn } = await sfn.startExecution({\n    stateMachineArn: 'arn:aws:states:us-east-1:0:stateMachine:my-sfn',\n    input: JSON.stringify({ foo: 'bar' }),\n});\n\nconst description = await sfn.describeExecution({ executionArn });\n\nawait sfn.stopExecution({ executionArn });\n```\n\n## EventBridge Scheduler\n\n```ts\nimport { SchedulerService } from '@aligent/aws-wrappers';\n\nconst scheduler = new SchedulerService();\n\n// FlexibleTimeWindow is required — pass { Mode: 'OFF' } for a fixed-time\n// schedule. The wrapper bakes in no default.\nawait scheduler.createSchedule({\n    Name: 'nightly-sync',\n    GroupName: 'default',\n    ScheduleExpression: 'rate(1 day)',\n    FlexibleTimeWindow: { Mode: 'OFF' },\n    Target: {\n        Arn: 'arn:aws:lambda:us-east-1:0:function:my-fn',\n        RoleArn: 'arn:aws:iam::0:role/scheduler-invoke',\n        Input: JSON.stringify({ job: 'sync' }),\n    },\n});\n\nconst schedule = await scheduler.getSchedule({ Name: 'nightly-sync' });\n\n// UpdateSchedule is a FULL REPLACEMENT, not a patch. Any omitted field is\n// reset to its default, so resend the complete configuration and override\n// only what changes. GetSchedule types every field as optional, so the\n// required fields (Name, ScheduleExpression, FlexibleTimeWindow, Target) must\n// be re-asserted after the spread.\nawait scheduler.updateSchedule({\n    ...schedule,\n    Name: 'nightly-sync',\n    ScheduleExpression: 'rate(12 hours)', // the change\n    FlexibleTimeWindow: schedule.FlexibleTimeWindow ?? { Mode: 'OFF' },\n    Target: schedule.Target ?? {\n        Arn: 'arn:aws:lambda:us-east-1:0:function:my-fn',\n        RoleArn: 'arn:aws:iam::0:role/scheduler-invoke',\n    },\n});\n\n// Auto-paginated — returns every summary across all pages.\nconst schedules = await scheduler.listSchedules({ GroupName: 'default' });\n\nawait scheduler.deleteSchedule({ Name: 'nightly-sync' });\n```\n\n`Target.Input` is the payload handed to the target and is omitted from INFO logs (it routinely carries PII). See [Log redaction](#log-redaction) for how to unlock it.\n\n```ts\n// Schedule groups. Groups have no update operation — only create, get,\n// delete, and list. Deleting a group deletes every schedule it contains.\nawait scheduler.createScheduleGroup({ Name: 'integrations' });\nconst group = await scheduler.getScheduleGroup({ Name: 'integrations' });\nconst groups = await scheduler.listScheduleGroups();\nawait scheduler.deleteScheduleGroup({ Name: 'integrations' });\n```\n\n## SSM Parameter Store\n\n```ts\nimport { SSMService } from '@aligent/aws-wrappers';\n\nconst ssm = new SSMService();\n\nconst apiKey = await ssm.getParameter('/myapp/api-key');\n\n// Supply an alias-to-path map — the result is keyed by the aliases so the\n// SSM path is only mentioned at the call site. Auto-chunks past 10 aliases\n// (the SDK's per-request cap on GetParameters).\nconst { host, port } = await ssm.getParameters({\n    host: '/myapp/host',\n    port: '/myapp/port',\n});\n\n// Auto-paginated, returns full Parameter[] (includes Version, LastModifiedDate).\n// Recursive defaults to true.\nconst params = await ssm.getParametersByPath('/myapp/');\nconst shallow = await ssm.getParametersByPath('/myapp/', { recursive: false });\n```\n\nAll read operations enable `WithDecryption` automatically — there's no opt-out. Callers needing plaintext should use `SSMClient` directly.\n\n```ts\n// Write operations. Prefer IaC (CDK / Terraform) for parameter lifecycle;\n// reserve these for values that genuinely mutate at runtime.\nawait ssm.putParameter({\n    Name: '/myapp/feature-flag',\n    Value: 'enabled',\n    Type: 'String',\n    Overwrite: true,\n});\n\nawait ssm.deleteParameter('/myapp/feature-flag');\n```\n\n## SQS\n\n```ts\nimport { SQSService } from '@aligent/aws-wrappers';\n\nconst sqs = new SQSService();\n\nawait sqs.sendMessage({ QueueUrl, MessageBody: 'hello' });\n\n// Returns Message[] — empty array when nothing's available.\nconst messages = await sqs.receiveMessages({ QueueUrl, WaitTimeSeconds: 20 });\n\nfor (const message of messages) {\n    if (message.ReceiptHandle) {\n        await sqs.deleteMessage({ QueueUrl, ReceiptHandle: message.ReceiptHandle });\n    }\n}\n\n// Batch methods auto-chunk Entries to the SQS-enforced 10-entry limit.\nawait sqs.sendMessageBatch({ QueueUrl, Entries: bigEntryList });\nawait sqs.deleteMessageBatch({ QueueUrl, Entries: receiptEntries });\n```\n\n`receiveMessages` does **not** auto-delete — visibility-timeout semantics are the caller's responsibility.\n\n```ts\n// Opt-in truncation for oversized payloads. Defaults to off (SDK throws on\n// oversize). Useful for fire-and-forget flows where dropped detail beats a\n// thrown error.\nconst sqs = new SQSService({ truncate: true });            // per-instance default\nawait sqs.sendMessage({ QueueUrl, MessageBody: huge });\nawait sqs.sendMessage({ QueueUrl, MessageBody: huge }, { truncate: false }); // per-call override\n```\n\n## SNS\n\n```ts\nimport { SNSService } from '@aligent/aws-wrappers';\n\nconst sns = new SNSService();\n\nawait sns.publish({ TopicArn, Message: 'hello' });\n\n// publishBatch auto-chunks PublishBatchRequestEntries to the SNS-enforced 10-entry limit.\nawait sns.publishBatch({ TopicArn, PublishBatchRequestEntries: bigEntryList });\n\n// Opt-in truncation — same shape as SQS. Truncates Message (256 KB byte-safe)\n// and Subject (100 chars codepoint-safe) when enabled.\nconst truncSns = new SNSService({ truncate: true });\nawait truncSns.publish({ TopicArn, Message: huge, Subject: long });\nawait truncSns.publish({ TopicArn, Message: huge }, { truncate: false });\n```\n\n## Testing\n\nWhen you unit-test code that takes a wrapper as a dependency, you usually want to assert that *your* code called the right method with the right arguments — not to exercise the wrapper's chunking, pagination or JSON round-tripping, which this package already covers with its own tests against a mocked SDK client.\n\n`createMockService` builds a stand-in for a service class from an object of method overrides. It ships from the `@aligent/aws-wrappers/testing` subpath — it is deliberately not exported from the package root, so test scaffolding can never be reached from the module your Lambda bundles.\n\n```ts\n// report-handler.ts\nimport type { S3Service } from '@aligent/aws-wrappers';\n\nexport async function reportHandler({ s3 }: { s3: S3Service }) {\n    const report = await s3.getJsonObject<{ total: number }>({\n        Bucket: 'reports',\n        Key: 'daily.json',\n    });\n\n    return { statusCode: 200, body: `Total: ${report?.total ?? 0}` };\n}\n```\n\n```ts\n// report-handler.test.ts\nimport { S3Service } from '@aligent/aws-wrappers';\nimport { createMockService } from '@aligent/aws-wrappers/testing';\nimport { expect, it, vi } from 'vitest';\nimport { reportHandler } from './report-handler.js';\n\nit('reads the daily report from S3', async () => {\n    const getJsonObject = vi.fn().mockResolvedValue({ total: 42 });\n    const s3 = createMockService(S3Service, { getJsonObject });\n\n    const result = await reportHandler({ s3 });\n\n    expect(getJsonObject).toHaveBeenCalledWith({ Bucket: 'reports', Key: 'daily.json' });\n    expect(result.body).toBe('Total: 42');\n});\n```\n\n- **No cast at the call site.** The returned value is accepted wherever the real class is expected.\n- **Override keys are type-checked** against the class's public surface, so a misspelled key is a compile error rather than a green test that exercised nothing. For a non-generic method you can type the spy — `vi.fn<SQSService['sendMessage']>()` — to have its shape checked against the real method too.\n- **Only mock what the code under test calls.** Accessing any other method of the class throws `S3Service.headObject was accessed but not mocked`, naming both the service and the method, instead of failing later as `is not a function`.\n- **Bring your own spies.** The helper imports no test framework — `vi.fn()`, `jest.fn()` or a hand-rolled closure all work, and overridden keys keep your spy's type, so `s3.getJsonObject.mock.calls` typechecks through the returned object.\n\n### Overriding a generic method\n\nSeveral methods are generic in their return type — `S3Service.getJsonObject` / `putJsonObject` / `getAllObjects`, `DynamoDBService.putItem` / `query` / `scan`, `SecretsManagerService.getJsonSecret` and `SSMService.getParameters`. An override has to satisfy the generic signature, so a plain non-generic function is rejected:\n\n```ts\n// Error: '{ total: number }' is not assignable to 'T'\nconst getJsonObject = async () => ({ total: 42 });\n```\n\nAn untyped `vi.fn()` is the easy path and is what the example above uses — `Mock`'s call signature is loose enough to satisfy the constraint. Otherwise make the override generic:\n\n```ts\nconst getJsonObject = async <T>() => ({ total: 42 }) as T;\n```\n\nNote that the typed-spy form does **not** work here: `vi.fn<S3Service['getJsonObject']>()` produces a `Mock` that erases the type parameter and is no longer assignable to the generic signature. Reach for a typed spy on non-generic methods only.\n\nThe helper is generic over any class, so it works for all eight wrappers and for your own service classes too.\n\n## Build / test\n\n```sh\nyarn build       # affected only\nyarn test\nyarn lint\n```\n","readmeFilename":"README.md"}