From 860beed5e0c458b389fab19af57a3ad8052a4a7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20Crevon?= Date: Tue, 8 Oct 2024 12:34:37 +0200 Subject: [PATCH] aws version 0.13.0 (#143) --- lib/aws/0.13.0/aws.js | 3 +++ lib/aws/0.13.0/aws.js.LICENSE.txt | 1 + lib/aws/0.13.0/aws.js.map | 1 + lib/aws/0.13.0/event-bridge.js | 3 +++ lib/aws/0.13.0/event-bridge.js.LICENSE.txt | 1 + lib/aws/0.13.0/event-bridge.js.map | 1 + lib/aws/0.13.0/index.js | 3 +++ lib/aws/0.13.0/index.js.LICENSE.txt | 1 + lib/aws/0.13.0/index.js.map | 1 + lib/aws/0.13.0/kinesis.js | 3 +++ lib/aws/0.13.0/kinesis.js.LICENSE.txt | 1 + lib/aws/0.13.0/kinesis.js.map | 1 + lib/aws/0.13.0/kms.js | 3 +++ lib/aws/0.13.0/kms.js.LICENSE.txt | 1 + lib/aws/0.13.0/kms.js.map | 1 + lib/aws/0.13.0/lambda.js | 3 +++ lib/aws/0.13.0/lambda.js.LICENSE.txt | 1 + lib/aws/0.13.0/lambda.js.map | 1 + lib/aws/0.13.0/s3.js | 3 +++ lib/aws/0.13.0/s3.js.LICENSE.txt | 1 + lib/aws/0.13.0/s3.js.map | 1 + lib/aws/0.13.0/secrets-manager.js | 3 +++ lib/aws/0.13.0/secrets-manager.js.LICENSE.txt | 1 + lib/aws/0.13.0/secrets-manager.js.map | 1 + lib/aws/0.13.0/signature.js | 2 ++ lib/aws/0.13.0/signature.js.map | 1 + lib/aws/0.13.0/sqs.js | 3 +++ lib/aws/0.13.0/sqs.js.LICENSE.txt | 1 + lib/aws/0.13.0/sqs.js.map | 1 + lib/aws/0.13.0/ssm.js | 3 +++ lib/aws/0.13.0/ssm.js.LICENSE.txt | 1 + lib/aws/0.13.0/ssm.js.map | 1 + lib/index.html | 2 +- supported.json | 3 ++- 34 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 lib/aws/0.13.0/aws.js create mode 100644 lib/aws/0.13.0/aws.js.LICENSE.txt create mode 100644 lib/aws/0.13.0/aws.js.map create mode 100644 lib/aws/0.13.0/event-bridge.js create mode 100644 lib/aws/0.13.0/event-bridge.js.LICENSE.txt create mode 100644 lib/aws/0.13.0/event-bridge.js.map create mode 100644 lib/aws/0.13.0/index.js create mode 100644 lib/aws/0.13.0/index.js.LICENSE.txt create mode 100644 lib/aws/0.13.0/index.js.map create mode 100644 lib/aws/0.13.0/kinesis.js create mode 100644 lib/aws/0.13.0/kinesis.js.LICENSE.txt create mode 100644 lib/aws/0.13.0/kinesis.js.map create mode 100644 lib/aws/0.13.0/kms.js create mode 100644 lib/aws/0.13.0/kms.js.LICENSE.txt create mode 100644 lib/aws/0.13.0/kms.js.map create mode 100644 lib/aws/0.13.0/lambda.js create mode 100644 lib/aws/0.13.0/lambda.js.LICENSE.txt create mode 100644 lib/aws/0.13.0/lambda.js.map create mode 100644 lib/aws/0.13.0/s3.js create mode 100644 lib/aws/0.13.0/s3.js.LICENSE.txt create mode 100644 lib/aws/0.13.0/s3.js.map create mode 100644 lib/aws/0.13.0/secrets-manager.js create mode 100644 lib/aws/0.13.0/secrets-manager.js.LICENSE.txt create mode 100644 lib/aws/0.13.0/secrets-manager.js.map create mode 100644 lib/aws/0.13.0/signature.js create mode 100644 lib/aws/0.13.0/signature.js.map create mode 100644 lib/aws/0.13.0/sqs.js create mode 100644 lib/aws/0.13.0/sqs.js.LICENSE.txt create mode 100644 lib/aws/0.13.0/sqs.js.map create mode 100644 lib/aws/0.13.0/ssm.js create mode 100644 lib/aws/0.13.0/ssm.js.LICENSE.txt create mode 100644 lib/aws/0.13.0/ssm.js.map diff --git a/lib/aws/0.13.0/aws.js b/lib/aws/0.13.0/aws.js new file mode 100644 index 0000000..ae5ad56 --- /dev/null +++ b/lib/aws/0.13.0/aws.js @@ -0,0 +1,3 @@ +/*! For license information please see aws.js.LICENSE.txt */ +(()=>{"use strict";var t={2:(t,e,r)=>{r.d(e,{R:()=>s});var n=r(556),o=r(539);function i(t){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}function a(t,e){for(var r=0;r=200&&r<300&&""==i&&0===n)return!1;switch(n){case o.rN.GenericError:case o.rN.NonTCPNetworkError:case o.rN.InvalidURL:case o.rN.HTTPRequestTimeout:throw new o.$g(n);case o.yk.GenericDNSError:case o.yk.NoIPFound:case o.yk.BlacklistedIP:case o.yk.BlacklistedHostname:throw new o.M8(n);case o.op.GenericTCPError:case o.op.BrokenPipeOnWrite:case o.op.UnknownTCPError:case o.op.GeneralTCPDialError:case o.op.DialTimeoutError:case o.op.DialConnectionRefused:case o.op.DialUnknownError:case o.op.ResetByPeer:throw new o.km(n);case o.cK.GeneralTLSError:case o.cK.UnknownAuthority:case o.cK.CertificateHostnameMismatch:throw new o.ML(n);case o.F9.GenericHTTP2Error:case o.F9.GeneralHTTP2GoAwayError:throw new o.v1(n)}return!0}}],e&&a(t.prototype,e),r&&a(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}()},811:(t,e,r)=>{r.d(e,{g:()=>d,r:()=>v});var n=r(556);function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}function i(t,e,r){return e=s(e),function(t,e){if(e&&("object"==o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,c()?Reflect.construct(e,r||[],s(t).constructor):e.apply(t,r))}function a(t){var e="function"==typeof Map?new Map:void 0;return a=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf("[native code]")}catch(e){return"function"==typeof t}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,r)}function r(){return function(t,e,r){if(c())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,e);var o=new(t.bind.apply(t,n));return r&&u(o,r.prototype),o}(t,arguments,s(this).constructor)}return r.prototype=Object.create(t.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),u(r,t)},a(t)}function c(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(c=function(){return!!t})()}function u(t,e){return u=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},u(t,e)}function s(t){return s=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},s(t)}function l(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function f(t,e){for(var r=0;r128)throw new v("invalid AWS access key ID; reason: size should be between 16 and 128 characters, got ".concat(e.accessKeyId.length));if(!e.secretAccessKey||""===e.secretAccessKey)throw new v("invalid AWS secret access key; reason: expected a non empty string, got `".concat(e.secretAccessKey,"`"));this.region=e.region,this.accessKeyId=e.accessKeyId,this.secretAccessKey=e.secretAccessKey,void 0!==e.sessionToken&&(this.sessionToken=e.sessionToken),void 0!==e.endpoint&&("string"==typeof e.endpoint?this.endpoint=new n.y(e.endpoint):this.endpoint=e.endpoint)}return h(t,null,[{key:"fromEnvironment",value:function(e){return new t({region:__ENV.AWS_REGION,accessKeyId:__ENV.AWS_ACCESS_KEY_ID,secretAccessKey:__ENV.AWS_SECRET_ACCESS_KEY,sessionToken:__ENV.AWS_SESSION_TOKEN,endpoint:null==e?void 0:e.endpoint})}}])}(),v=function(t){function e(t){return l(this,e),i(this,e,[t])}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&u(t,e)}(e,t),h(e)}(a(Error))},464:(t,e,r)=>{r.d(e,{Kq:()=>o,Qt:()=>u,Qz:()=>w,SN:()=>g,Uv:()=>O,V1:()=>p,VQ:()=>b,Zs:()=>i,_e:()=>E,b2:()=>l,fk:()=>y,he:()=>a,iK:()=>s,ot:()=>f,pj:()=>v,sY:()=>h,ud:()=>d,wN:()=>n,z8:()=>S,zG:()=>c,zX:()=>m});var n="X-Amz-Algorithm",o="X-Amz-Credential",i="X-Amz-Date",a="X-Amz-Expires",c="X-Amz-Signature",u="X-Amz-SignedHeaders",s="X-Amz-Security-Token",l="x-amz-content-sha256",f=i.toLowerCase(),h=c.toLowerCase(),p="X-Amz-Target".toLowerCase(),y=s.toLowerCase(),d="authorization",v=[d,f,"date"],m="host",g={authorization:!0,"cache-control":!0,connection:!0,expect:!0,from:!0,"keep-alive":!0,"max-forwards":!0,pragma:!0,referer:!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0,"user-agent":!0,"x-amzn-trace-id":!0},b="aws4_request",w="AWS4-HMAC-SHA256",O=604800,E="e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",S="UNSIGNED-PAYLOAD"},556:(t,e,r)=>{function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)}function o(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,c=[],u=!0,s=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(c.push(n.value),c.length!==e);u=!0);}catch(t){s=!0,o=t}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(s)throw o}}return c}}(t,e)||function(t,e){if(t){if("string"==typeof t)return i(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?i(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);rs});var s=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),c(this,"_protocol",void 0),c(this,"_hostname",void 0),c(this,"_port",void 0);var r=!e.startsWith("http://")&&!e.startsWith("https://")?"".concat(t.DEFAULT_PROTOCOL,"://").concat(e):e,n=r.match(/^https?:/),i=o(r.replace(/^https?:\/\//,"").split("/"),1)[0];this._protocol=n?n[0].slice(0,-1):t.DEFAULT_PROTOCOL,this._hostname=i.split(":")[0],this._port=i.split(":")[1]?parseInt(i.split(":")[1]):void 0}return e=t,(r=[{key:"copy",value:function(){return new t(this.href)}},{key:"host",get:function(){return this._port?"".concat(this._hostname,":").concat(this._port):this._hostname},set:function(t){var e=o(t.split(":"),2),r=e[0],n=e[1];this._hostname=r,this._port=n?parseInt(n):void 0}},{key:"hostname",get:function(){return this._hostname},set:function(t){this._hostname=t}},{key:"href",get:function(){return"".concat(this.protocol,"://").concat(this.host)},set:function(e){var r=e.match(/^https?:/),n=o(e.replace(/^https?:\/\//,"").split("/"),1)[0];this._protocol=r?r[0].slice(0,-1):t.DEFAULT_PROTOCOL,this._hostname=n.split(":")[0],this._port=n.split(":")[1]?parseInt(n.split(":")[1]):void 0}},{key:"port",get:function(){return this._port},set:function(t){this._port=t}},{key:"protocol",get:function(){return this._protocol},set:function(t){this._protocol=t}}])&&a(e.prototype,r),n&&a(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,r,n}();c(s,"DEFAULT_PROTOCOL","https")},539:(t,e,r)=>{r.d(e,{$g:()=>b,Dr:()=>g,F9:()=>k,M8:()=>w,ML:()=>E,cK:()=>_,cv:()=>m,km:()=>O,op:()=>x,rN:()=>j,v1:()=>S,yk:()=>P});var n,o=r(95);function i(t){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function c(t,e){for(var r=0;r{function n(t,e){t=t.toLowerCase();for(var r=0,n=Object.keys(e);rn})},639:(t,e,r)=>{r.d(e,{B:()=>S,s:()=>j});var n=r(275),o=r.n(n),i=r(464),a=r(539),c=r(21),u=r(680);function s(t){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},s(t)}function l(t,e,r){return e=h(e),function(t,e){if(e&&("object"==s(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,f()?Reflect.construct(e,r||[],h(t).constructor):e.apply(t,r))}function f(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(f=function(){return!!t})()}function h(t){return h=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},h(t)}function p(t,e){return p=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},p(t,e)}function y(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return d(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?d(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){c=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(c)throw i}}}}function d(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r1&&void 0!==arguments[1]?arguments[1]:{},r=m(m({},{signingDate:new Date,unsignableHeaders:new Set,signableHeaders:new Set}),e),n=x(r.signingDate),o=n.longDate,a=n.shortDate,u=r.signingService||this.service,s=r.signingRegion||this.region,l="".concat(a,"/").concat(s,"/").concat(u,"/").concat(i.VQ);t.headers[i.zX]||(t.headers[i.zX]=t.endpoint.hostname);for(var f=0,h=Object.keys(t.headers);f-1&&delete t.headers[p]}t.headers[i.ot]=o,this.credentials.sessionToken&&(t.headers[i.fk]=this.credentials.sessionToken),ArrayBuffer.isView(t.body)&&(t.body=t.body.buffer),t.body||(t.body="");var y=this.computePayloadHash(t);!(0,c.o)(i.b2,t.headers)&&this.applyChecksum&&(t.headers[i.b2]=y);var d=this.computeCanonicalHeaders(t,r.unsignableHeaders,r.signableHeaders),v=this.calculateSignature(o,l,this.deriveSigningKey(this.credentials,u,s,a),this.createCanonicalRequest(t,d,y));t.headers[i.ud]="".concat(i.Qz," ")+"Credential=".concat(this.credentials.accessKeyId,"/").concat(l,", ")+"SignedHeaders=".concat(Object.keys(d).sort().join(";"),", ")+"Signature=".concat(v);var g=t.endpoint.href;return t.path&&(g.endsWith("/")||t.path.startsWith("/")||(g+="/"),g+=t.path),t.query&&(g+="?".concat(this.serializeQueryParameters(t.query))),m({url:g},t)}},{key:"presign",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=e.signingDate,n=void 0===r?new Date:r,o=e.expiresIn,a=void 0===o?3600:o,c=e.unsignableHeaders,u=e.unhoistableHeaders,s=e.signableHeaders,l=e.signingRegion,f=e.signingService,h=x(n),p=h.longDate,y=h.shortDate,d=l||this.region,v=f||this.service;if(a>i.Uv)throw new j("Signature version 4 presigned URLs can't be valid for more than 7 days");var g="".concat(y,"/").concat(d,"/").concat(v,"/").concat(i.VQ),b=this.moveHeadersToQuery(t,{unhoistableHeaders:u});b.headers[i.zX]||(b.headers[i.zX]=t.endpoint.hostname),this.credentials.sessionToken&&(b.query[i.iK]=this.credentials.sessionToken),b.query[i.wN]=i.Qz,b.query[i.Kq]="".concat(this.credentials.accessKeyId,"/").concat(g),b.query[i.Zs]=p,b.query[i.he]=a.toString(10);var w=this.computeCanonicalHeaders(b,c,s);b.query[i.Qt]=Object.keys(w).sort().join(";");var O=this.deriveSigningKey(this.credentials,v,d,y),E=this.computePayloadHash(t),S=this.createCanonicalRequest(b,w,E);b.query[i.zG]=this.calculateSignature(p,g,O,S);var P,_=t.endpoint.href;b.path&&(_=null!==(P=_)&&void 0!==P&&P.endsWith("/")?_:_+"/",_+=b.path);return b.query&&(_+="?".concat(this.serializeQueryParameters(b.query))),m({url:_},b)}},{key:"createCanonicalRequest",value:function(t,e,r){var n=Object.keys(e).sort(),o=n.map((function(t){return"".concat(t,":").concat(e[t])})).join("\n"),i=n.join(";");return"".concat(t.method,"\n")+"".concat(this.computeCanonicalURI(t),"\n")+"".concat(this.computeCanonicalQuerystring(t),"\n")+"".concat(o,"\n\n")+"".concat(i,"\n")+"".concat(r)}},{key:"createStringToSign",value:function(t,e,r){var n=o().sha256(r,"hex");return"".concat(i.Qz,"\n")+"".concat(t,"\n")+"".concat(e,"\n")+"".concat(n)}},{key:"calculateSignature",value:function(t,e,r,n){var i=this.createStringToSign(t,e,n);return o().hmac("sha256",r,i,"hex")}},{key:"deriveSigningKey",value:function(t,e,r,n){var i=t.secretAccessKey,a=o().hmac("sha256","AWS4"+i,n,"binary"),c=o().hmac("sha256",a,r,"binary"),u=o().hmac("sha256",c,e,"binary");return o().hmac("sha256",u,"aws4_request","binary")}},{key:"computeCanonicalURI",value:function(t){var e=t.path;if(this.uriEscapePath){var r,n=[],o=y(e.split("/"));try{for(o.s();!(r=o.n()).done;){var i=r.value;0!==(null==i?void 0:i.length)&&("."!==i&&(".."===i?n.pop():n.push(i)))}}catch(t){o.e(t)}finally{o.f()}var a=null!=e&&e.startsWith("/")?"/":"",c=n.join("/"),u=n.length>0&&null!=e&&e.endsWith("/")?"/":"",s="".concat(a).concat(c).concat(u);return encodeURIComponent(s).replace(/%2F/g,"/")}return e}},{key:"computeCanonicalQuerystring",value:function(t){var e,r=t.query,n=void 0===r?{}:r,o=[],a={},c=function(t){if(t.toLowerCase()===i.sY)return 1;o.push(t);var e=n[t];"string"==typeof e?a[t]="".concat(P(t),"=").concat(P(e)):Array.isArray(e)&&(a[t]=e.slice(0).sort().reduce((function(e,r){return e.concat(["".concat(P(t),"=").concat(P(r))])}),[]).join("&"))},u=y(Object.keys(n).sort());try{for(u.s();!(e=u.n()).done;){c(e.value)}}catch(t){u.e(t)}finally{u.f()}return o.map((function(t){return a[t]})).filter((function(t){return t})).join("&")}},{key:"computeCanonicalHeaders",value:function(t,e,r){var n,o=t.headers,a={},c=y(Object.keys(o).sort());try{for(c.s();!(n=c.n()).done;){var u=n.value;if(null!=o[u]){var s=u.toLowerCase();(s in i.SN||null!=e&&e.has(s))&&(!r||r&&!r.has(s))||"string"==typeof o[u]&&(a[s]=o[u]=o[u].trim().replace(/\s+/g," "))}}}catch(t){c.e(t)}finally{c.f()}return a}},{key:"computePayloadHash",value:function(t){var e=t.headers,r=t.body;return e[i.b2]?e[i.b2]:null==r?i._e:"string"==typeof r||(0,u.m)(r)?o().sha256(r,"hex").toLowerCase():ArrayBuffer.isView(r)?o().sha256(r.buffer,"hex").toLowerCase():i.z8}},{key:"moveHeadersToQuery",value:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=JSON.parse(JSON.stringify(t)),n=r.headers,o=r.query,i=void 0===o?{}:o,a=0,c=Object.keys(n);a{function n(t){return"function"==typeof ArrayBuffer&&(t instanceof ArrayBuffer||"[object ArrayBuffer]"===Object.prototype.toString.call(t))}r.d(e,{m:()=>n})},340:(t,e,r)=>{r.d(e,{LambdaClient:()=>k,LambdaInvocationError:()=>T});r(811);var n=r(539),o=r(639),i=r(570),a=r.n(i);const c=require("k6/encoding");var u=r.n(c),s=r(2),l=r(464);function f(t){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},f(t)}function h(t){var e="function"==typeof Map?new Map:void 0;return h=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf("[native code]")}catch(e){return"function"==typeof t}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,r)}function r(){return function(t,e,r){if(O())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,e);var o=new(t.bind.apply(t,n));return r&&P(o,r.prototype),o}(t,arguments,S(this).constructor)}return r.prototype=Object.create(t.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),P(r,t)},h(t)}function p(){p=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var i=e&&e.prototype instanceof b?e:b,a=Object.create(i.prototype),c=new R(n||[]);return o(a,"_invoke",{value:k(t,r,c)}),a}function h(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var y="suspendedStart",d="suspendedYield",v="executing",m="completed",g={};function b(){}function w(){}function O(){}var E={};s(E,a,(function(){return this}));var S=Object.getPrototypeOf,j=S&&S(S(C([])));j&&j!==r&&n.call(j,a)&&(E=j);var P=O.prototype=b.prototype=Object.create(E);function x(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function _(t,e){function r(o,i,a,c){var u=h(t[o],t,i);if("throw"!==u.type){var s=u.arg,l=s.value;return l&&"object"==f(l)&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(l).then((function(t){s.value=t,a(s)}),(function(t){return r("throw",t,a,c)}))}c(u.arg)}var i;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return i=i?i.then(o,o):o()}})}function k(e,r,n){var o=y;return function(i,a){if(o===v)throw Error("Generator is already running");if(o===m){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=T(c,n);if(u){if(u===g)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===y)throw o=m,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=v;var s=h(e,r,n);if("normal"===s.type){if(o=n.done?m:d,s.arg===g)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(o=m,n.method="throw",n.arg=s.arg)}}}function T(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,T(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),g;var i=h(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,g;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,g):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,g)}function L(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function N(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function R(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(L,this),this.reset(!0)}function C(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function r(){for(;++o=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),s=n.call(a,"finallyLoc");if(u&&s){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),N(r),g}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;N(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:C(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),g}},e}function y(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function d(t){for(var e=1;e2&&void 0!==m[2]?m[2]:{}).invocationType||"RequestResponse",c=d(d({},this.commonHeaders),{},x(x(x({},l.V1,"AWSLambda.".concat(i)),"X-Amz-Invocation-Type",i),"X-Amz-Log-Type",n.logType||"None")),n.clientContext&&(c["X-Amz-Client-Context"]=n.clientContext),n.qualifier&&(o.Qualifier=n.qualifier),s=this.signature.sign({method:this.method,endpoint:this.endpoint,path:"/2015-03-31/functions/".concat(e,"/invocations"),query:o,headers:c,body:r||""},{}),t.next=9,a().asyncRequest(this.method,s.url,s.body,d(d({},this.baseRequestParams),{},{headers:s.headers}));case 9:if(f=t.sent,this.handleError(f),h=f.headers["X-Amz-Log-Result"],y={executedVersion:f.headers["X-Amz-Executed-Version"],logResult:h?u().b64decode(h,"std","s"):void 0,statusCode:f.status,payload:f.body},!(v=f.headers["X-Amz-Function-Error"])){t.next=18;break}throw new T(v,y);case 18:return t.abrupt("return",y);case 19:case"end":return t.stop()}}),t,this)})),i=function(){var t=this,e=arguments;return new Promise((function(n,o){var i=r.apply(t,e);function a(t){v(i,n,o,a,c,"next",t)}function c(t){v(i,n,o,a,c,"throw",t)}a(void 0)}))},function(t,e){return i.apply(this,arguments)})},{key:"handleError",value:function(t,r){var i,a,c,u,s;if(!(i=e,a="handleError",c=this,s=E(S(1&(u=3)?i.prototype:i),a,c),2&u?function(t){return s.apply(c,t)}:s)([t,r]))return!1;var l=n.cv.parse(t);switch(l.code){case"AuthorizationHeaderMalformed":case"InvalidSignatureException":throw new o.s(l.message,l.code);default:throw l}return!0}}]);var r,i}(s.R),T=function(t){function e(t,r){var n;return m(this,e),x(n=w(this,e,["".concat(t,": ").concat(r.payload)]),"response",void 0),n.response=r,n}return j(e,t),b(e)}(h(Error))},535:(t,e,r)=>{r.d(e,{SQSClient:()=>k});r(811);var n=r(539),o=r(639),i=r(2),a=r(570),c=r.n(a),u=r(464);function s(t){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},s(t)}function l(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,c=[],u=!0,s=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(c.push(n.value),c.length!==e);u=!0);}catch(t){s=!0,o=t}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(s)throw o}}return c}}(t,e)||function(t,e){if(t){if("string"==typeof t)return f(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?f(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),s=n.call(a,"finallyLoc");if(u&&s){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),N(r),g}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;N(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:C(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),g}},e}function p(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function y(t){for(var e=1;e2&&void 0!==c[2]?c[2]:{},o=y({QueueUrl:e},this._combineQueueMessageBodyAndOptions(r,n)),t.next=5,this._sendRequest("SendMessage",o);case 5:return i=t.sent,a=i.json(),t.abrupt("return",new T(a.MessageId,a.MD5OfMessageBody));case 8:case"end":return t.stop()}}),t,this)}))),function(t,e){return a.apply(this,arguments)})},{key:"sendMessageBatch",value:(i=v(h().mark((function t(e,r){var n,o,i,a,c,u,s,l=this;return h().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n="SendMessageBatch",o=r.map((function(t){var e=l._combineQueueMessageBodyAndOptions(t.messageBody,t.messageOptions);return e=y(y({},e),{},{Id:t.messageId})})),i={QueueUrl:e,Entries:o},t.next=5,this._sendRequest(n,i);case 5:return a=t.sent,c=a.json(),u=c.Successful||[],s=c.Failed||[],t.abrupt("return",{successful:u.map((function(t){return new T(t.MessageId,t.MD5OfMessageBody)})),failed:s.map((function(t){return new L(t.Message,t.Code,n)}))});case 10:case"end":return t.stop()}}),t,this)}))),function(t,e){return i.apply(this,arguments)})},{key:"listQueues",value:(n=v(h().mark((function t(){var e,r,n,o,i=arguments;return h().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r={},void 0!==(null==(e=i.length>0&&void 0!==i[0]?i[0]:{})?void 0:e.maxResults)&&(r=y(y({},r),{},{MaxResults:e.maxResults})),void 0!==(null==e?void 0:e.nextToken)&&(r=y(y({},r),{},{NextToken:e.nextToken})),void 0!==(null==e?void 0:e.queueNamePrefix)&&(r=y(y({},r),{},{QueueNamePrefix:e.queueNamePrefix})),t.next=8,this._sendRequest("ListQueues",r);case 8:return n=t.sent,o=n.json(),t.abrupt("return",{urls:o.QueueUrls,nextToken:null==o?void 0:o.NextToken});case 11:case"end":return t.stop()}}),t,this)}))),function(){return n.apply(this,arguments)})},{key:"_combineQueueMessageBodyAndOptions",value:function(t,e){var r={MessageBody:t};if(void 0===e)return r;if(void 0!==e.messageDeduplicationId&&(r=y(y({},r),{},{MessageDeduplicationId:e.messageDeduplicationId})),void 0!==e.messageGroupId&&(r=y(y({},r),{},{MessageGroupId:e.messageGroupId})),void 0!==e.messageAttributes){for(var n={},o=0,i=Object.entries(e.messageAttributes);o{t.exports=require("k6/crypto")},95:t=>{t.exports=require("k6/html")},570:t=>{t.exports=require("k6/http")}},e={};function r(n){var o=e[n];if(void 0!==o)return o.exports;var i=e[n]={exports:{}};return t[n](i,i.exports,r),i.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};r.r(n),r.d(n,{AMZ_CONTENT_SHA256_HEADER:()=>c.b2,AWSConfig:()=>a.g,AWSError:()=>o.cv,DNSError:()=>o.M8,Endpoint:()=>A.y,EventBridgeClient:()=>qe,GeneralError:()=>o.$g,HTTP2Error:()=>o.v1,InvalidAWSConfigError:()=>a.r,InvalidSignatureError:()=>i.s,KMSClient:()=>k,KMSDataKey:()=>L,KMSServiceError:()=>N,KinesisClient:()=>fe,LambdaClient:()=>He.LambdaClient,LambdaInvocationError:()=>He.LambdaInvocationError,NetworkError:()=>o.Dr,S3Bucket:()=>tt,S3Client:()=>Z,S3Object:()=>et,S3ServiceError:()=>ot,SQSClient:()=>Jt.SQSClient,Secret:()=>jt,SecretsManagerClient:()=>St,SecretsManagerServiceError:()=>Pt,SignatureV4:()=>i.B,SystemsManagerClient:()=>Ut,SystemsManagerParameter:()=>zt,SystemsManagerServiceError:()=>Ft,TCPError:()=>o.km,TLSError:()=>o.ML,UNSIGNED_PAYLOAD:()=>c.z8});var o=r(539),i=r(639),a=r(811),c=r(464),u=r(570),s=r.n(u),l=r(2);function f(t){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},f(t)}function h(){h=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var i=e&&e.prototype instanceof b?e:b,a=Object.create(i.prototype),c=new R(n||[]);return o(a,"_invoke",{value:k(t,r,c)}),a}function p(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var y="suspendedStart",d="suspendedYield",v="executing",m="completed",g={};function b(){}function w(){}function O(){}var E={};s(E,a,(function(){return this}));var S=Object.getPrototypeOf,j=S&&S(S(C([])));j&&j!==r&&n.call(j,a)&&(E=j);var P=O.prototype=b.prototype=Object.create(E);function x(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function _(t,e){function r(o,i,a,c){var u=p(t[o],t,i);if("throw"!==u.type){var s=u.arg,l=s.value;return l&&"object"==f(l)&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(l).then((function(t){s.value=t,a(s)}),(function(t){return r("throw",t,a,c)}))}c(u.arg)}var i;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return i=i?i.then(o,o):o()}})}function k(e,r,n){var o=y;return function(i,a){if(o===v)throw Error("Generator is already running");if(o===m){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=T(c,n);if(u){if(u===g)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===y)throw o=m,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=v;var s=p(e,r,n);if("normal"===s.type){if(o=n.done?m:d,s.arg===g)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(o=m,n.method="throw",n.arg=s.arg)}}}function T(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,T(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),g;var i=p(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,g;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,g):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,g)}function L(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function N(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function R(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(L,this),this.reset(!0)}function C(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function r(){for(;++o=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),s=n.call(a,"finallyLoc");if(u&&s){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),N(r),g}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;N(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:C(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),g}},e}function p(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function y(t){for(var e=1;e1&&void 0!==i[1]?i[1]:C.Size256,n=this.signature.sign({method:this.method,endpoint:this.endpoint,path:"/",headers:y(y({},this.commonHeaders),{},x({},c.V1,"TrentService.GenerateDataKey")),body:JSON.stringify({KeyId:e,NumberOfBytes:r})},{}),t.next=4,s().asyncRequest(this.method,n.url,n.body,y(y({},this.baseRequestParams),{},{headers:n.headers}));case 4:return o=t.sent,this.handleError(o,R.GenerateDataKey),t.abrupt("return",L.fromJSON(o.json()));case 7:case"end":return t.stop()}}),t,this)}))),function(t){return r.apply(this,arguments)})},{key:"handleError",value:function(t,r){var n,o,a,c,u;if(!(n=e,o="handleError",a=this,u=E(S(1&(c=3)?n.prototype:n),o,a),2&c?function(t){return u.apply(a,t)}:u)([t,r]))return!1;var s=t.error_code,l=t.json();if(s>=1400&&s<=1499){var f=l.Message||l.message||l.__type;if("InvalidSignatureException"===l.__type)throw new i.s(f,l.__type);throw new N(f,l.__type,r)}if(1500===s)throw new N("An error occured on the server side","InternalServiceError",r);return!0}}]);var r,n}(l.R),T=function(){function t(e,r){m(this,t),x(this,"keyArn",void 0),x(this,"keyId",void 0),this.keyArn=e,this.keyId=r}return b(t,null,[{key:"fromJSON",value:function(e){return new t(e.KeyArn,e.KeyId)}}])}(),L=function(){function t(e,r,n){m(this,t),x(this,"id",void 0),x(this,"ciphertextBlob",void 0),x(this,"plaintext",void 0),this.ciphertextBlob=e,this.id=r,this.plaintext=n}return b(t,null,[{key:"fromJSON",value:function(e){return new t(e.CiphertextBlob,e.KeyId,e.Plaintext)}}])}(),N=function(t){function e(t,r,n){var o;return m(this,e),x(o=w(this,e,[t,r]),"operation",void 0),o.name="KMSServiceError",o.operation=n,o}return j(e,t),b(e)}(o.cv),R=function(t){return t.GenerateDataKey="GenerateDataKey",t.ListKeys="ListKeys",t}(R||{}),C=function(t){return t[t.Size256=32]="Size256",t[t.Size512=64]="Size512",t}(C||{}),A=r(556),D=r(95);function I(t){return I="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},I(t)}function G(){G=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var i=e&&e.prototype instanceof m?e:m,a=Object.create(i.prototype),c=new L(n||[]);return o(a,"_invoke",{value:x(t,r,c)}),a}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var h="suspendedStart",p="suspendedYield",y="executing",d="completed",v={};function m(){}function g(){}function b(){}var w={};s(w,a,(function(){return this}));var O=Object.getPrototypeOf,E=O&&O(O(N([])));E&&E!==r&&n.call(E,a)&&(w=E);var S=b.prototype=m.prototype=Object.create(w);function j(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function P(t,e){function r(o,i,a,c){var u=f(t[o],t,i);if("throw"!==u.type){var s=u.arg,l=s.value;return l&&"object"==I(l)&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(l).then((function(t){s.value=t,a(s)}),(function(t){return r("throw",t,a,c)}))}c(u.arg)}var i;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return i=i?i.then(o,o):o()}})}function x(e,r,n){var o=h;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===d){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=_(c,n);if(u){if(u===v)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===h)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var s=f(e,r,n);if("normal"===s.type){if(o=n.done?d:p,s.arg===v)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(o=d,n.method="throw",n.arg=s.arg)}}}function _(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,_(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var i=f(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,v;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,v):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function T(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function N(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function r(){for(;++o=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),s=n.call(a,"finallyLoc");if(u&&s){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),T(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;T(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:N(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),v}},e}function q(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function M(t){for(var e=1;e2&&void 0!==u[2]?u[2]:{},i=this.signature.sign({method:"GET",endpoint:this.endpoint,path:encodeURI("/".concat(e,"/").concat(r)),headers:M({},o)},{}),a="text","Accept"in o&&void 0!==o.Accept&&"application/octet-stream"===o.Accept&&(a="binary"),t.next=7,s().asyncRequest("GET",i.url,null,M(M({},this.baseRequestParams),{},{headers:i.headers,responseType:a}));case 7:return c=t.sent,this.handleError(c,"GetObject"),t.abrupt("return",new et(r,Date.parse(c.headers["Last-Modified"]),c.headers.ETag,parseInt(c.headers["Content-Length"]),null!==(n=c.headers["X-Amz-Storage-Class"])&&void 0!==n?n:"STANDARD",c.body));case 10:case"end":return t.stop()}}),t,this)}))),function(t,e){return h.apply(this,arguments)})},{key:"putObject",value:(f=H(G().mark((function t(e,r,n,o){var i,a;return G().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=this.signature.sign({method:"PUT",endpoint:this.endpoint,path:encodeURI("/".concat(e,"/").concat(r)),headers:M(M(M(M(M({Host:this.endpoint.host},(null==o?void 0:o.contentDisposition)&&{"Content-Disposition":o.contentDisposition}),(null==o?void 0:o.contentEncoding)&&{"Content-Encoding":o.contentEncoding}),(null==o?void 0:o.contentLength)&&{"Content-Length":o.contentLength}),(null==o?void 0:o.contentMD5)&&{"Content-MD5":o.contentMD5}),(null==o?void 0:o.contentType)&&{"Content-Type":o.contentType}),body:n},{}),t.next=4,s().asyncRequest("PUT",i.url,i.body,M(M({},this.baseRequestParams),{},{headers:i.headers}));case 4:a=t.sent,this.handleError(a,"PutObject");case 6:case"end":return t.stop()}}),t,this)}))),function(t,e,r,n){return f.apply(this,arguments)})},{key:"deleteObject",value:(l=H(G().mark((function t(e,r){var n,o,i;return G().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n="DELETE",o=this.signature.sign({method:n,endpoint:this.endpoint,path:encodeURI("/".concat(e,"/").concat(r)),headers:{}},{}),t.next=4,s().asyncRequest(n,o.url,o.body||null,M(M({},this.baseRequestParams),{},{headers:o.headers}));case 4:i=t.sent,this.handleError(i,"DeleteObject");case 6:case"end":return t.stop()}}),t,this)}))),function(t,e){return l.apply(this,arguments)})},{key:"copyObject",value:(u=H(G().mark((function t(e,r,n,o){var i,a,c;return G().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return(i=this.endpoint.copy()).hostname="".concat(n,".").concat(this.endpoint.hostname),a=this.signature.sign({method:"PUT",endpoint:i,path:encodeURI("/".concat(o)),headers:{"x-amz-copy-source":"".concat(e,"/").concat(r)}},{}),t.next=6,s().asyncRequest("PUT",a.url,a.body||null,M(M({},this.baseRequestParams),{},{headers:a.headers}));case 6:c=t.sent,this.handleError(c,"CopyObject");case 8:case"end":return t.stop()}}),t,this)}))),function(t,e,r,n){return u.apply(this,arguments)})},{key:"createMultipartUpload",value:(c=H(G().mark((function t(e,r){var n,o,i,a;return G().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n="POST",(o=this.endpoint.copy()).hostname="".concat(e,".").concat(this.endpoint.hostname),i=this.signature.sign({method:n,endpoint:o,path:encodeURI("/".concat(r)),headers:{},query:{uploads:""}},{}),t.next=6,s().asyncRequest(n,i.url,i.body||null,M(M({},this.baseRequestParams),{},{headers:i.headers}));case 6:return a=t.sent,this.handleError(a,"CreateMultipartUpload"),t.abrupt("return",new rt(r,(0,D.parseHTML)(a.body).find("UploadId").text()));case 9:case"end":return t.stop()}}),t,this)}))),function(t,e){return c.apply(this,arguments)})},{key:"uploadPart",value:(a=H(G().mark((function t(e,r,n,o,i){var a,c,u;return G().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return(a=this.endpoint.copy()).hostname="".concat(e,".").concat(this.endpoint.hostname),c=this.signature.sign({method:"PUT",endpoint:a,path:encodeURI("/".concat(r)),headers:{},body:i,query:{partNumber:"".concat(o),uploadId:"".concat(n)}},{}),t.next=6,s().asyncRequest("PUT",c.url,c.body||null,M(M({},this.baseRequestParams),{},{headers:c.headers}));case 6:return u=t.sent,this.handleError(u,"UploadPart"),t.abrupt("return",new nt(o,u.headers.Etag));case 9:case"end":return t.stop()}}),t,this)}))),function(t,e,r,n,o){return a.apply(this,arguments)})},{key:"completeMultipartUpload",value:(n=H(G().mark((function t(e,r,n,o){var i,a,c,u,l;return G().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i="POST",a="".concat(o.map((function(t){return"".concat(t.partNumber,"").concat(t.eTag,"")})).join(""),""),(c=this.endpoint.copy()).hostname="".concat(e,".").concat(this.endpoint.hostname),u=this.signature.sign({method:i,endpoint:c,path:encodeURI("/".concat(r)),headers:{},body:a,query:{uploadId:"".concat(n)}},{}),t.next=7,s().asyncRequest(i,u.url,u.body||null,M(M({},this.baseRequestParams),{},{headers:u.headers}));case 7:l=t.sent,this.handleError(l,"CompleteMultipartUpload");case 9:case"end":return t.stop()}}),t,this)}))),function(t,e,r,o){return n.apply(this,arguments)})},{key:"abortMultipartUpload",value:(r=H(G().mark((function t(e,r,n){var o,i,a,c;return G().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return o="DELETE",(i=this.endpoint.copy()).hostname="".concat(e,".").concat(this.endpoint.hostname),a=this.signature.sign({method:o,endpoint:i,path:encodeURI("/".concat(r)),headers:{},query:{uploadId:"".concat(n)}},{}),t.next=6,s().asyncRequest(o,a.url,a.body||null,M(M({},this.baseRequestParams),{},{headers:a.headers}));case 6:c=t.sent,this.handleError(c,"AbortMultipartUpload");case 8:case"end":return t.stop()}}),t,this)}))),function(t,e,n){return r.apply(this,arguments)})},{key:"handleError",value:function(t,r){var n,a,c,u,s;if(!(n=e,a="handleError",c=this,s=J(W(1&(u=3)?n.prototype:n),a,c),2&u?function(t){return s.apply(c,t)}:s)([t]))return!1;var l=t.error;if(301==t.status||l&&l.startsWith("301"))throw new ot("Resource not found","ResourceNotFound",r);var f=o.cv.parseXML(t.body);if("AuthorizationHeaderMalformed"===f.code)throw new i.s(f.message,f.code);throw new ot(f.message,f.code||"unknown",r)}}]);var r,n,a,c,u,l,f,h,p,y}(l.R),tt=z((function t(e,r){B(this,t),Y(this,"name",void 0),Y(this,"creationDate",void 0),this.name=e,this.creationDate=r})),et=z((function t(e,r,n,o,i,a){B(this,t),Y(this,"key",void 0),Y(this,"lastModified",void 0),Y(this,"etag",void 0),Y(this,"size",void 0),Y(this,"storageClass",void 0),Y(this,"data",void 0),this.key=e,this.lastModified=r,this.etag=n,this.size=o,this.storageClass=i,this.data=a})),rt=z((function t(e,r){B(this,t),Y(this,"key",void 0),Y(this,"uploadId",void 0),this.key=e,this.uploadId=r})),nt=z((function t(e,r){B(this,t),Y(this,"partNumber",void 0),Y(this,"eTag",void 0),this.partNumber=e,this.eTag=r})),ot=function(t){function e(t,r,n){var o;return B(this,e),Y(o=F(this,e,[t,r]),"operation",void 0),o.name="S3ServiceError",o.operation=n,o}return Q(e,t),z(e)}(o.cv);const it=require("https://jslib.k6.io/k6-utils/1.4.0/index.js");function at(t){return at="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},at(t)}function ct(){ct=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var i=e&&e.prototype instanceof m?e:m,a=Object.create(i.prototype),c=new L(n||[]);return o(a,"_invoke",{value:x(t,r,c)}),a}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var h="suspendedStart",p="suspendedYield",y="executing",d="completed",v={};function m(){}function g(){}function b(){}var w={};s(w,a,(function(){return this}));var O=Object.getPrototypeOf,E=O&&O(O(N([])));E&&E!==r&&n.call(E,a)&&(w=E);var S=b.prototype=m.prototype=Object.create(w);function j(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function P(t,e){function r(o,i,a,c){var u=f(t[o],t,i);if("throw"!==u.type){var s=u.arg,l=s.value;return l&&"object"==at(l)&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(l).then((function(t){s.value=t,a(s)}),(function(t){return r("throw",t,a,c)}))}c(u.arg)}var i;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return i=i?i.then(o,o):o()}})}function x(e,r,n){var o=h;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===d){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=_(c,n);if(u){if(u===v)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===h)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var s=f(e,r,n);if("normal"===s.type){if(o=n.done?d:p,s.arg===v)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(o=d,n.method="throw",n.arg=s.arg)}}}function _(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,_(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var i=f(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,v;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,v):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function T(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function N(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function r(){for(;++o=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),s=n.call(a,"finallyLoc");if(u&&s){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),T(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;T(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:N(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),v}},e}function ut(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function st(t){for(var e=1;e=1400&&s<=1499){var f=l.Message||l.message||l.__type;if("InvalidSignatureException"===l.__type)throw new i.s(f,l.__type);throw new Pt(f,l.__type,r)}if(1500===s)throw new Pt("An error occured on the server side","InternalServiceError",r);return!0}}]);var r,n,o,a,u}(l.R),jt=function(){function t(e,r,n,o,i,a){var c=arguments.length>6&&void 0!==arguments[6]?arguments[6]:[];ht(this,t),Ot(this,"name",void 0),Ot(this,"arn",void 0),Ot(this,"secret",void 0),Ot(this,"createdDate",void 0),Ot(this,"lastAccessedDate",void 0),Ot(this,"lastChangedDate",void 0),Ot(this,"tags",void 0),this.name=e,this.arn=r,this.secret=n,this.createdDate=o,this.lastAccessedDate=i,this.lastChangedDate=a,this.tags=c}return yt(t,null,[{key:"fromJSON",value:function(e){return new t(e.Name,e.ARN,e.SecretString,e.CreatedDate,e.LastAccessedDate,e.LastChangedDate,e.Tags)}}])}(),Pt=function(t){function e(t,r,n){var o;return ht(this,e),Ot(o=dt(this,e,[t,r]),"operation",void 0),o.name="SecretsManagerServiceError",o.operation=n,o}return bt(e,t),yt(e)}(o.cv),xt=function(t){return t.ListSecrets="ListSecrets",t.GetSecretValue="GetSecretValue",t.CreateSecret="CreateSecret",t.PutSecretValue="PutSecretValue",t.DeleteSecret="DeleteSecret",t}(xt||{});function _t(t){return _t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_t(t)}function kt(){kt=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var i=e&&e.prototype instanceof m?e:m,a=Object.create(i.prototype),c=new L(n||[]);return o(a,"_invoke",{value:x(t,r,c)}),a}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var h="suspendedStart",p="suspendedYield",y="executing",d="completed",v={};function m(){}function g(){}function b(){}var w={};s(w,a,(function(){return this}));var O=Object.getPrototypeOf,E=O&&O(O(N([])));E&&E!==r&&n.call(E,a)&&(w=E);var S=b.prototype=m.prototype=Object.create(w);function j(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function P(t,e){function r(o,i,a,c){var u=f(t[o],t,i);if("throw"!==u.type){var s=u.arg,l=s.value;return l&&"object"==_t(l)&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(l).then((function(t){s.value=t,a(s)}),(function(t){return r("throw",t,a,c)}))}c(u.arg)}var i;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return i=i?i.then(o,o):o()}})}function x(e,r,n){var o=h;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===d){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=_(c,n);if(u){if(u===v)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===h)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var s=f(e,r,n);if("normal"===s.type){if(o=n.done?d:p,s.arg===v)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(o=d,n.method="throw",n.arg=s.arg)}}}function _(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,_(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var i=f(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,v;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,v):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function T(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function N(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function r(){for(;++o=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),s=n.call(a,"finallyLoc");if(u&&s){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),T(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;T(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:N(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),v}},e}function Tt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Lt(t){for(var e=1;e1&&void 0!==i[1]&&i[1],n=this.signature.sign({method:this.method,endpoint:this.endpoint,path:"/",headers:Lt(Lt({},this.commonHeaders),{},Ht({},c.V1,"AmazonSSM.GetParameter")),body:JSON.stringify({Name:e,WithDecryption:r})},{}),t.next=4,s().asyncRequest(this.method,n.url,n.body,Lt(Lt({},this.baseRequestParams),{},{headers:n.headers}));case 4:return o=t.sent,this.handleError(o,Vt.GetParameter),t.abrupt("return",zt.fromJSON(o.json()));case 7:case"end":return t.stop()}}),t,this)})),n=function(){var t=this,e=arguments;return new Promise((function(n,o){var i=r.apply(t,e);function a(t){Nt(i,n,o,a,c,"next",t)}function c(t){Nt(i,n,o,a,c,"throw",t)}a(void 0)}))},function(t){return n.apply(this,arguments)})},{key:"handleError",value:function(t,r){var n,o,a,c,u;if(!(n=e,o="handleError",a=this,u=Gt(qt(1&(c=3)?n.prototype:n),o,a),2&c?function(t){return u.apply(a,t)}:u)([t,r]))return!1;var s=t.error_code,l=t.json();if(s>=1400&&s<=1499){var f=l.Message||l.message||l.__type;if("InvalidSignatureException"===l.__type)throw new i.s(f,l.__type);throw new Ft(f,l.__type,r)}if(1500===s)throw new Ft("An error occured on the server side","InternalServiceError",r);return!0}}]);var r,n}(l.R),zt=function(){function t(e,r,n,o,i,a,c,u,s){Rt(this,t),Ht(this,"arn",void 0),Ht(this,"dataType",void 0),Ht(this,"lastModifiedDate",void 0),Ht(this,"name",void 0),Ht(this,"selector",void 0),Ht(this,"sourceResult",void 0),Ht(this,"type",void 0),Ht(this,"value",void 0),Ht(this,"version",void 0),this.arn=e,this.dataType=r,this.lastModifiedDate=n,this.name=o,this.selector=i,this.sourceResult=a,this.type=c,this.value=u,this.version=s}return At(t,null,[{key:"fromJSON",value:function(e){var r=e.Parameter;return new t(r.ARN,r.DataType,r.LastModifiedDate,r.Name,r.Selector,r.SourceResult,r.Type,r.Value,r.Version)}}])}(),Ft=function(t){function e(t,r,n){var o;return Rt(this,e),Ht(o=Dt(this,e,[t,r]),"operation",void 0),o.name="SystemsManagerServiceError",o.operation=n,o}return Mt(e,t),At(e)}(o.cv),Vt=function(t){return t.GetParameter="GetParameter",t}(Vt||{}),Jt=r(535);function Wt(t){return Wt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Wt(t)}function Qt(){Qt=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var i=e&&e.prototype instanceof m?e:m,a=Object.create(i.prototype),c=new L(n||[]);return o(a,"_invoke",{value:x(t,r,c)}),a}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var h="suspendedStart",p="suspendedYield",y="executing",d="completed",v={};function m(){}function g(){}function b(){}var w={};s(w,a,(function(){return this}));var O=Object.getPrototypeOf,E=O&&O(O(N([])));E&&E!==r&&n.call(E,a)&&(w=E);var S=b.prototype=m.prototype=Object.create(w);function j(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function P(t,e){function r(o,i,a,c){var u=f(t[o],t,i);if("throw"!==u.type){var s=u.arg,l=s.value;return l&&"object"==Wt(l)&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(l).then((function(t){s.value=t,a(s)}),(function(t){return r("throw",t,a,c)}))}c(u.arg)}var i;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return i=i?i.then(o,o):o()}})}function x(e,r,n){var o=h;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===d){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=_(c,n);if(u){if(u===v)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===h)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var s=f(e,r,n);if("normal"===s.type){if(o=n.done?d:p,s.arg===v)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(o=d,n.method="throw",n.arg=s.arg)}}}function _(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,_(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var i=f(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,v;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,v):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function T(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function N(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function r(){for(;++o=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),s=n.call(a,"finallyLoc");if(u&&s){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),T(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;T(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:N(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),v}},e}function Xt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Yt(t){for(var e=1;e1&&void 0!==o[1]?o[1]:{}).shardCount&&{ShardCount:r.shardCount}),r.streamModeDetails&&{StreamMode:r.streamModeDetails.streamMode}),t.next=4,this._send_request("CreateStream",n);case 4:case"end":return t.stop()}}),t,this)}))),function(t){return h.apply(this,arguments)})},{key:"deleteStream",value:(f=Zt(Qt().mark((function t(e){var r,n,o=arguments;return Qt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=Yt(Yt({StreamName:e},(r=o.length>1&&void 0!==o[1]?o[1]:{}).streamARN&&{StreamARN:r.streamARN}),r.enforceConsumerDeletion&&{EnforceConsumerDeletion:r.enforceConsumerDeletion}),t.next=4,this._send_request("DeleteStream",n);case 4:case"end":return t.stop()}}),t,this)}))),function(t){return f.apply(this,arguments)})},{key:"listStreams",value:(l=Zt(Qt().mark((function t(){var e,r,n,o=arguments;return Qt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=Yt(Yt(Yt({},(e=o.length>0&&void 0!==o[0]?o[0]:{}).exclusiveStartStreamName&&{ExclusiveStartStreamName:e.exclusiveStartStreamName}),e.limit&&{Limit:e.limit}),e.nextToken&&{NextToken:e.nextToken}),t.next=4,this._send_request("ListStreams",r);case 4:return n=t.sent,t.abrupt("return",pe.fromJson(null==n?void 0:n.json()));case 6:case"end":return t.stop()}}),t,this)}))),function(){return l.apply(this,arguments)})},{key:"putRecords",value:(u=Zt(Qt().mark((function t(e){var r,n,o,i=arguments;return Qt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if((r=i.length>1&&void 0!==i[1]?i[1]:{}).streamName||r.streamARN){t.next=3;break}throw new Error("Either streamName or streamARN must be provided");case 3:return n=Yt(Yt({Records:e},r.streamName&&{StreamName:r.streamName}),r.streamARN&&{StreamARN:r.streamARN}),t.next=6,this._send_request("PutRecords",n);case 6:return o=t.sent,t.abrupt("return",de.fromJson(null==o?void 0:o.json()));case 8:case"end":return t.stop()}}),t,this)}))),function(t){return u.apply(this,arguments)})},{key:"getRecords",value:(a=Zt(Qt().mark((function t(e){var r,n,o,i=arguments;return Qt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=Yt(Yt({ShardIterator:e},(r=i.length>1&&void 0!==i[1]?i[1]:{}).limit&&{Limit:r.limit}),r.streamARN&&{StreamARN:r.streamARN}),t.next=4,this._send_request("GetRecords",n);case 4:return o=t.sent,t.abrupt("return",me.fromJson(null==o?void 0:o.json()));case 6:case"end":return t.stop()}}),t,this)}))),function(t){return a.apply(this,arguments)})},{key:"listShards",value:(o=Zt(Qt().mark((function t(e){var r,n,o,i=arguments;return Qt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=Yt(Yt({StreamName:e},(r=i.length>1&&void 0!==i[1]?i[1]:{}).nextToken&&{NextToken:r.nextToken}),r.maxResults&&{MaxResults:r.maxResults}),t.next=4,this._send_request("ListShards",n);case 4:return o=t.sent,t.abrupt("return",be.fromJson(null==o?void 0:o.json()));case 6:case"end":return t.stop()}}),t,this)}))),function(t){return o.apply(this,arguments)})},{key:"getShardIterator",value:(n=Zt(Qt().mark((function t(e,r,n){var o,i,a,c=arguments;return Qt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=Yt(Yt({StreamName:e,ShardId:r,ShardIteratorType:n},(o=c.length>3&&void 0!==c[3]?c[3]:{}).startingSequenceNumber&&{StartingSequenceNumber:o.startingSequenceNumber}),o.timestamp&&{Timestamp:o.timestamp}),t.next=4,this._send_request("GetShardIterator",i);case 4:return a=t.sent,t.abrupt("return",Oe.fromJson(null==a?void 0:a.json()));case 6:case"end":return t.stop()}}),t,this)}))),function(t,e,r){return n.apply(this,arguments)})},{key:"_send_request",value:(r=Zt(Qt().mark((function t(e,r){var n,o;return Qt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=this.signature.sign({method:"POST",endpoint:this.endpoint,path:"/",headers:Yt(Yt({},this.commonHeaders),{},se({},c.V1,"".concat(this.serviceVersion,".").concat(e))),body:JSON.stringify(r)},{}),t.next=3,s().asyncRequest("POST",n.url,n.body,Yt(Yt({},this.baseRequestParams),{},{headers:n.headers}));case 3:return o=t.sent,this.handleError(o,e),t.abrupt("return",o);case 6:case"end":return t.stop()}}),t,this)}))),function(t,e){return r.apply(this,arguments)})},{key:"handleError",value:function(t,r){var n,o,a,c,u;if(!(n=e,o="handleError",a=this,u=ie(ae(1&(c=3)?n.prototype:n),o,a),2&c?function(t){return u.apply(a,t)}:u)([t,r]))return!1;var s=t.error_code,l=t.json();if(s>=1400&&s<=1499){var f=l.Message||l.message||l.__type;if("InvalidSignatureException"===l.__type)throw new i.s(f,l.__type);throw new he(f,l.__type,r||"Unknown")}if(1500===s)throw new he("An error occured on the server side","InternalServiceError",r||"Unknown");return!0}}]);var r,n,o,a,u,l,f,h}(l.R),he=function(t){function e(t,r,n){var o;return te(this,e),se(o=ne(this,e,[t,r]),"operation",void 0),o.name="KinesisServiceError",o.operation=n,o}return ce(e,t),re(e)}(o.cv),pe=function(){function t(e,r,n,o){te(this,t),se(this,"hasMoreStreams",void 0),se(this,"nextToken",void 0),se(this,"streamNames",void 0),se(this,"streamSummaries",void 0),this.hasMoreStreams=e,this.nextToken=r,this.streamNames=n,this.streamSummaries=o}return re(t,null,[{key:"fromJson",value:function(e){var r=e.HasMoreStreams,n=void 0!==r&&r,o=e.NextToken,i=void 0===o?"":o,a=e.StreamNames,c=void 0===a?[]:a,u=e.StreamSummaries,s=void 0===u?[]:u;return new t(n,i,c,null==s?void 0:s.map(ye.fromJson))}}])}(),ye=function(){function t(e,r,n,o,i){te(this,t),se(this,"streamARN",void 0),se(this,"streamCreationTimestamp",void 0),se(this,"streamModeDetails",void 0),se(this,"streamName",void 0),se(this,"streamStatus",void 0),this.streamARN=e,this.streamCreationTimestamp=r,this.streamModeDetails=n,this.streamName=o,this.streamStatus=i}return re(t,null,[{key:"fromJson",value:function(e){var r=e.StreamARN,n=void 0===r?"":r,o=e.StreamCreationTimestamp,i=void 0===o?0:o,a=e.StreamModeDetails,c=void 0===a?{}:a,u=e.StreamName,s=void 0===u?"":u,l=e.StreamStatus;return new t(n,i,c,s,void 0===l?"":l)}}])}(),de=function(){function t(e,r,n){te(this,t),se(this,"encryptionType",void 0),se(this,"failedRecordCount",void 0),se(this,"records",void 0),this.encryptionType=e,this.failedRecordCount=r,this.records=n}return re(t,null,[{key:"fromJson",value:function(e){var r=e.EncryptionType,n=void 0===r?"NONE":r,o=e.FailedRecordCount,i=void 0===o?0:o,a=e.Records;return new t(n,i,(void 0===a?[]:a).map(ve.fromJson))}}])}(),ve=function(){function t(e,r){te(this,t),se(this,"sequenceNumber",void 0),se(this,"shardId",void 0),this.sequenceNumber=e,this.shardId=r}return re(t,null,[{key:"fromJson",value:function(e){return new t(e.SequenceNumber,e.ShardId)}}])}(),me=function(){function t(e,r,n){te(this,t),se(this,"nextShardIterator",void 0),se(this,"records",void 0),se(this,"millisBehindLatest",void 0),this.nextShardIterator=e,this.records=r,this.millisBehindLatest=n}return re(t,null,[{key:"fromJson",value:function(e){var r=e.NextShardIterator,n=void 0===r?"":r,o=e.Records,i=void 0===o?[]:o,a=e.MillisBehindLatest,c=void 0===a?0:a;return new t(n,i.map(ge.fromJson),c)}}])}(),ge=function(){function t(e,r,n){te(this,t),se(this,"data",void 0),se(this,"partitionKey",void 0),se(this,"sequenceNumber",void 0),this.data=e,this.partitionKey=r,this.sequenceNumber=n}return re(t,null,[{key:"fromJson",value:function(e){return new t(e.Data,e.PartitionKey,e.SequenceNumber)}}])}(),be=function(){function t(e,r){te(this,t),se(this,"shards",void 0),se(this,"nextToken",void 0),this.shards=e,this.nextToken=r}return re(t,null,[{key:"fromJson",value:function(e){var r=e.Shards,n=void 0===r?[]:r,o=e.NextToken;return new t(n.map(we.fromJson),o)}}])}(),we=function(){function t(e,r,n,o,i){te(this,t),se(this,"id",void 0),se(this,"parentShardId",void 0),se(this,"adjacentParentShardId",void 0),se(this,"hashKeyRange",void 0),se(this,"sequenceNumberRange",void 0),this.id=e,this.parentShardId=o,this.adjacentParentShardId=i,this.hashKeyRange=r,this.sequenceNumberRange=n}return re(t,null,[{key:"fromJson",value:function(e){return new t(e.ShardId,e.HashKeyRange,e.SequenceNumberRange,e.ParentShardId,e.AdjacentParentShardId)}}])}(),Oe=function(){function t(e){te(this,t),se(this,"shardIterator",void 0),this.shardIterator=e}return re(t,null,[{key:"fromJson",value:function(e){return new t(e.ShardIterator)}}])}();function Ee(t){return Ee="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ee(t)}function Se(){Se=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var i=e&&e.prototype instanceof m?e:m,a=Object.create(i.prototype),c=new L(n||[]);return o(a,"_invoke",{value:x(t,r,c)}),a}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var h="suspendedStart",p="suspendedYield",y="executing",d="completed",v={};function m(){}function g(){}function b(){}var w={};s(w,a,(function(){return this}));var O=Object.getPrototypeOf,E=O&&O(O(N([])));E&&E!==r&&n.call(E,a)&&(w=E);var S=b.prototype=m.prototype=Object.create(w);function j(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function P(t,e){function r(o,i,a,c){var u=f(t[o],t,i);if("throw"!==u.type){var s=u.arg,l=s.value;return l&&"object"==Ee(l)&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(l).then((function(t){s.value=t,a(s)}),(function(t){return r("throw",t,a,c)}))}c(u.arg)}var i;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return i=i?i.then(o,o):o()}})}function x(e,r,n){var o=h;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===d){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=_(c,n);if(u){if(u===v)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===h)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var s=f(e,r,n);if("normal"===s.type){if(o=n.done?d:p,s.arg===v)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(o=d,n.method="throw",n.arg=s.arg)}}}function _(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,_(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var i=f(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,v;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,v):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function T(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function N(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function r(){for(;++o=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),s=n.call(a,"finallyLoc");if(u&&s){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),T(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;T(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:N(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),v}},e}function je(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Pe(t){for(var e=1;e=1400&&s<=1499){var f=l.Message||l.message||l.__type;if("InvalidSignatureException"===l.__type)throw new i.s(f,l.__type);throw new Ke(f,l.__type,r)}if(1500===s)throw new Ke("An error occured on the server side","InternalServiceError",r);return!0}}]);var r,n}(l.R),Me=function(t){return t.PutEvents="PutEvents",t}(Me||{}),Ke=function(t){function e(t,r,n){var o;return _e(this,e),Ie(o=Le(this,e,[t,r]),"operation",void 0),o.name="EventBridgeServiceError",o.operation=n,o}return Ae(e,t),Te(e)}(o.cv),He=r(340),Be=exports;for(var Ue in n)Be[Ue]=n[Ue];n.__esModule&&Object.defineProperty(Be,"__esModule",{value:!0})})(); +//# sourceMappingURL=aws.js.map \ No newline at end of file diff --git a/lib/aws/0.13.0/aws.js.LICENSE.txt b/lib/aws/0.13.0/aws.js.LICENSE.txt new file mode 100644 index 0000000..ae386fb --- /dev/null +++ b/lib/aws/0.13.0/aws.js.LICENSE.txt @@ -0,0 +1 @@ +/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ diff --git a/lib/aws/0.13.0/aws.js.map b/lib/aws/0.13.0/aws.js.map new file mode 100644 index 0000000..0e9a91d --- /dev/null +++ b/lib/aws/0.13.0/aws.js.map @@ -0,0 +1 @@ +{"version":3,"file":"aws.js","mappings":"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","sources":["webpack://k6-jslib-aws/./src/internal/client.ts","webpack://k6-jslib-aws/./src/internal/config.ts","webpack://k6-jslib-aws/./src/internal/constants.ts","webpack://k6-jslib-aws/./src/internal/endpoint.ts","webpack://k6-jslib-aws/./src/internal/error.ts","webpack://k6-jslib-aws/./src/internal/http.ts","webpack://k6-jslib-aws/./src/internal/signature.ts","webpack://k6-jslib-aws/./src/internal/utils.ts","webpack://k6-jslib-aws/external commonjs \"k6/encoding\"","webpack://k6-jslib-aws/./src/internal/lambda.ts","webpack://k6-jslib-aws/./src/internal/sqs.ts","webpack://k6-jslib-aws/external commonjs \"k6/crypto\"","webpack://k6-jslib-aws/external commonjs \"k6/html\"","webpack://k6-jslib-aws/external commonjs \"k6/http\"","webpack://k6-jslib-aws/webpack/bootstrap","webpack://k6-jslib-aws/webpack/runtime/compat get default export","webpack://k6-jslib-aws/webpack/runtime/define property getters","webpack://k6-jslib-aws/webpack/runtime/hasOwnProperty shorthand","webpack://k6-jslib-aws/webpack/runtime/make namespace object","webpack://k6-jslib-aws/./src/internal/kms.ts","webpack://k6-jslib-aws/./src/internal/s3.ts","webpack://k6-jslib-aws/external commonjs \"https://jslib.k6.io/k6-utils/1.4.0/index.js\"","webpack://k6-jslib-aws/./src/internal/secrets-manager.ts","webpack://k6-jslib-aws/./src/internal/ssm.ts","webpack://k6-jslib-aws/./src/internal/kinesis.ts","webpack://k6-jslib-aws/./src/internal/event-bridge.ts"],"sourcesContent":["import { RefinedResponse, ResponseType, Params } from 'k6/http'\n\nimport { AWSConfig } from './config'\nimport { Endpoint } from './endpoint'\nimport { HTTPHeaders } from './http'\nimport {\n GeneralErrorKind,\n DNSErrorKind,\n TCPErrorKind,\n TLSErrorKind,\n HTTP2ErrorKind,\n GeneralError,\n DNSError,\n TCPError,\n TLSError,\n HTTP2Error,\n} from './error'\n\n/**\n * Class allowing to build requests targeting AWS APIs\n *\n * This class is meant to be used as a base class for specific\n * services clients. See S3Client or SecretsManagerClient for\n * usage examples.\n */\nexport class AWSClient {\n readonly awsConfig: AWSConfig\n readonly serviceName: string\n\n // Because jslib-aws is mostly used as a way to setup or feed k6 tests, and\n // we want the jslib-aws to be able to disregard k6's discardResponseBodies: meaning\n // that for instance, even when setting discardResponseBodies to true in the k6 options, using\n // s3.getObject still receives the underlying response body and returns data to the user.\n //\n // To achieve this, we set the responseType to 'text' in the baseRequestParams, as it\n // will lead the http module to ignore the discardResponseBodies option.\n //\n // AWS Client classes can override this value if they want to receive the response body\n // as a different type ('binary' for instance, e.g. S3Client.getObject).\n //\n // See #45: https://github.com/grafana/k6-jslib-aws/issues/45\n readonly baseRequestParams: Params = {\n responseType: 'text',\n }\n\n private _endpoint?: Endpoint\n\n /**\n * @param {AWSConfig} awsConfig - configuration attributes to use when interacting with AWS' APIs\n * @param {string} serviceName - name of the service to target.\n * @param {URIEncodingConfig} URIencodingConfig - configures how requests URIs should be encoded.\n */\n constructor(awsConfig: AWSConfig, serviceName: string) {\n this.awsConfig = awsConfig\n this.serviceName = serviceName\n\n // If an endpoint is provided in the config, set it\n // to ensure the default endpoint is not used.\n if (awsConfig.endpoint != undefined) {\n this._endpoint = awsConfig.endpoint\n }\n }\n\n /**\n * Represents the endpoint URL of the AWS service.\n *\n * If no custom endpoint is set, a default endpoint will be constructed\n * using the service name and region provided in the AWS config.\n *\n * @type {Endpoint}\n * @public\n */\n public get endpoint() {\n if (this._endpoint == undefined) {\n this._endpoint = new Endpoint(\n `https://${this.serviceName}.${this.awsConfig.region}.amazonaws.com`\n )\n }\n return this._endpoint\n }\n\n /**\n * Updates the endpoint URL of the AWS service.\n *\n * This can be used to override the default AWS service endpoint or set a custom endpoint.\n *\n * @param {Endpoint} endpoint - The new endpoint to set for the AWS service.\n * @public\n */\n public set endpoint(endpoint: Endpoint) {\n this._endpoint = endpoint\n }\n\n /**\n * Handles the k6 http response potential errors produced when making a\n * request to an AWS service.\n *\n * Importantly, this method only handles errors that emerge from the k6 http client itself, and\n * won't handle AWS specific errors. To handle AWS specific errors, client classes are\n * expected to implement their own error handling logic by overriding this method.\n *\n * @param response {RefinedResponse} the response received by the k6 http client\n * @param operation {string | undefined } the name of the operation that was attempted when the error occurred\n * @param {boolean} returns true if an error was handled, false otherwise\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n protected handleError(response: RefinedResponse, operation?: string): boolean {\n const status: number = response.status\n const errorCode: number = response.error_code\n const errorMessage: string = response.error\n\n // We consider codes 200-299 as success.\n //\n // We do not consider 3xx as success as some services such as S3 can use\n // 301 to indicate a bucket not found\n if (status >= 200 && status < 300 && errorMessage == '' && errorCode === 0) {\n return false\n }\n\n switch (errorCode) {\n case GeneralErrorKind.GenericError:\n case GeneralErrorKind.NonTCPNetworkError:\n case GeneralErrorKind.InvalidURL:\n case GeneralErrorKind.HTTPRequestTimeout:\n throw new GeneralError(errorCode);\n case DNSErrorKind.GenericDNSError:\n case DNSErrorKind.NoIPFound:\n case DNSErrorKind.BlacklistedIP:\n case DNSErrorKind.BlacklistedHostname:\n throw new DNSError(errorCode);\n case TCPErrorKind.GenericTCPError:\n case TCPErrorKind.BrokenPipeOnWrite:\n case TCPErrorKind.UnknownTCPError:\n case TCPErrorKind.GeneralTCPDialError:\n case TCPErrorKind.DialTimeoutError:\n case TCPErrorKind.DialConnectionRefused:\n case TCPErrorKind.DialUnknownError:\n case TCPErrorKind.ResetByPeer:\n throw new TCPError(errorCode);\n case TLSErrorKind.GeneralTLSError:\n case TLSErrorKind.UnknownAuthority:\n case TLSErrorKind.CertificateHostnameMismatch:\n throw new TLSError(errorCode);\n case HTTP2ErrorKind.GenericHTTP2Error:\n case HTTP2ErrorKind.GeneralHTTP2GoAwayError:\n throw new HTTP2Error(errorCode);\n }\n\n return true\n }\n}\n\n/**\n * Type alias representing the result of an AWSClient.buildRequest call\n */\nexport interface AWSRequest {\n readonly url: string\n readonly headers: HTTPHeaders\n}\n","import { HTTPScheme } from './http'\nimport { Endpoint } from './endpoint'\n\n/** Class holding an AWS connection information */\nexport class AWSConfig {\n /**\n * The AWS region to connect to, as listed: https://docs.aws.amazon.com/general/latest/gr/rande.html\n *\n * @type {string}\n */\n region: string\n\n /**\n * Your user's AWS access key id credential.\n *\n * @type {string}\n */\n accessKeyId: string\n\n /**\n * Your user's AWS secret access key credential.\n *\n * @type {string}\n */\n secretAccessKey: string\n\n /**\n * Your user's AWS session token credential.\n *\n * @type {string}\n */\n sessionToken?: string\n\n /**\n * The AWS hostname to connect to.\n *\n * @type {string} ['amazonaws.com']\n */\n endpoint?: Endpoint\n\n /**\n * fromEnvironment creates an AWSConfig from the environment variables.\n *\n * It expects to find the following compulsory environment variables:\n * * AWS_REGION\n * * AWS_ACCESS_KEY_ID\n * * AWS_SECRET_ACCESS_KEY\n *\n * If set, the following optional environment variables are also used:\n * * AWS_SESSION_TOKEN\n *\n * Finally, the options parameter allows to explicitly set the scheme and endpoint\n * to use when connecting to AWS.\n *\n * @param options {AWSConnectionOptions}\n * @returns\n */\n static fromEnvironment(options?: AWSConnectionOptions): AWSConfig {\n const region = __ENV.AWS_REGION\n const accessKeyId = __ENV.AWS_ACCESS_KEY_ID\n const secretAccessKey = __ENV.AWS_SECRET_ACCESS_KEY\n const sessionToken: string | undefined = __ENV.AWS_SESSION_TOKEN\n const endpoint: Endpoint | string | undefined = options?.endpoint\n\n return new AWSConfig({\n region,\n accessKeyId,\n secretAccessKey,\n sessionToken,\n endpoint: endpoint,\n })\n }\n\n /**\n * Create an AWSConfig.\n *\n * @param {AWSConfigOptions} options - configuration attributes to use when interacting with AWS' APIs\n * @throws {InvalidArgumentException}\n */\n constructor(options: AWSConfigOptions) {\n if (!options.region || options.region === '') {\n throw new InvalidAWSConfigError(\n `invalid AWS region; reason: expected a valid AWS region name (e.g. \"us-east-1\"), got \\`${options.region}\\``\n )\n }\n\n if (!options.accessKeyId || options.accessKeyId === '') {\n throw new InvalidAWSConfigError(\n `invalid AWS access key ID; reason: expected a non empty string, got \\`${options.accessKeyId}\\``\n )\n }\n\n if (options.accessKeyId.length < 16 || options.accessKeyId.length > 128) {\n throw new InvalidAWSConfigError(\n `invalid AWS access key ID; reason: size should be between 16 and 128 characters, got ${options.accessKeyId.length}`\n )\n }\n\n if (!options.secretAccessKey || options.secretAccessKey === '') {\n throw new InvalidAWSConfigError(\n `invalid AWS secret access key; reason: expected a non empty string, got \\`${options.secretAccessKey}\\``\n )\n }\n\n this.region = options.region\n this.accessKeyId = options.accessKeyId\n this.secretAccessKey = options.secretAccessKey\n\n if (options.sessionToken !== undefined) {\n this.sessionToken = options.sessionToken\n }\n\n if (options.endpoint !== undefined) {\n if (typeof options.endpoint === 'string') {\n this.endpoint = new Endpoint(options.endpoint)\n } else {\n this.endpoint = options.endpoint\n }\n }\n }\n}\n\n/**\n * Interface representing AWSConfig options\n */\nexport interface AWSConfigOptions extends AWSConnectionOptions {\n /**\n * The AWS region to connect to, as listed: https://docs.aws.amazon.com/general/latest/gr/rande.html\n *\n * @type {string}\n */\n region: string\n\n /**\n * Your user's AWS access key id credential.\n *\n * @type {string}\n */\n accessKeyId: string\n\n /**\n * Your user's AWS secret access key credential.\n *\n * @type {string}\n */\n secretAccessKey: string\n\n /**\n * Your user's AWS session token credential.\n *\n * @type {string}\n */\n sessionToken?: string\n}\n\n/**\n * Interface representing AWS connection options\n */\nexport interface AWSConnectionOptions {\n /**\n * The HTTP scheme to use when connecting to AWS.\n *\n * @type {HTTPScheme}\n */\n scheme?: HTTPScheme\n\n /**\n * The AWS hostname to connect to.\n *\n * @type {string}\n */\n endpoint?: Endpoint | string\n}\n\n/** Class representing an invalid AWS configuration */\nexport class InvalidAWSConfigError extends Error {\n constructor(message: string) {\n super(message)\n }\n}\n","/**\n * Standard Amazon AWS query parameter names\n */\nexport const AMZ_ALGORITHM_QUERY_PARAM = 'X-Amz-Algorithm'\nexport const AMZ_CREDENTIAL_QUERY_PARAM = 'X-Amz-Credential'\nexport const AMZ_DATE_QUERY_PARAM = 'X-Amz-Date'\nexport const AMZ_EXPIRES_QUERY_PARAM = 'X-Amz-Expires'\nexport const AMZ_SIGNATURE_QUERY_PARAM = 'X-Amz-Signature'\nexport const AMZ_SIGNED_HEADERS_QUERY_PARAM = 'X-Amz-SignedHeaders'\nexport const AMZ_TARGET_QUERY_PARAM = 'X-Amz-Target'\nexport const AMZ_TOKEN_QUERY_PARAM = 'X-Amz-Security-Token'\n\n/**\n * Standard Amazon AWS header names\n */\nexport const AMZ_CONTENT_SHA256_HEADER = 'x-amz-content-sha256'\nexport const AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase()\nexport const AMZ_SIGNATURE_HEADER = AMZ_SIGNATURE_QUERY_PARAM.toLowerCase()\nexport const AMZ_TARGET_HEADER = AMZ_TARGET_QUERY_PARAM.toLowerCase()\nexport const AMZ_TOKEN_HEADER = AMZ_TOKEN_QUERY_PARAM.toLowerCase()\n\n/**\n * Common HTTP headers we rely on in the signing process\n */\nexport const AUTHORIZATION_HEADER = 'authorization'\nexport const DATE_HEADER = 'date'\n\n/**\n * Lists the headers that are generated as part of the signature process.\n */\nexport const GENERATED_HEADERS = [AUTHORIZATION_HEADER, AMZ_DATE_HEADER, DATE_HEADER]\nexport const HOST_HEADER = 'host'\n\n/**\n * Lists the headers that should never be included in the\n * request signature signature process.\n */\nexport const ALWAYS_UNSIGNABLE_HEADERS = {\n authorization: true,\n 'cache-control': true,\n connection: true,\n expect: true,\n from: true,\n 'keep-alive': true,\n 'max-forwards': true,\n pragma: true,\n referer: true,\n te: true,\n trailer: true,\n 'transfer-encoding': true,\n upgrade: true,\n 'user-agent': true,\n 'x-amzn-trace-id': true,\n}\n\n/**\n * Signature specific constants included in the signing process\n */\nexport const KEY_TYPE_IDENTIFIER = 'aws4_request'\nexport const SIGNING_ALGORITHM_IDENTIFIER = 'AWS4-HMAC-SHA256'\n\n/**\n * Maximum time to live of a signed request in seconds: 7 days.\n */\nexport const MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7\n\n/**\n * SHA256 hash of an empty string (so we don't waste cycles recomputing it)\n */\nexport const EMPTY_SHA256 = 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'\n\n/**\n * SHA256 hash of the unsigned payload constant (so we don't waste cycles recomputing it)\n */\nexport const UNSIGNED_PAYLOAD_SHA256 =\n '5a41b0751e4537c6ff868564ab44a4d4ecceec2ec5b1c5f74d97422968e04237'\n\nexport const UNSIGNED_PAYLOAD = 'UNSIGNED-PAYLOAD'\n","/**\n * Represents an AWS service endpoint, providing utilities for parsing and handling URL details.\n */\nexport class Endpoint {\n private _protocol: string\n private _hostname: string\n private _port?: number\n\n // Default protocol, this can be globally changed as per application requirements\n private static readonly DEFAULT_PROTOCOL = 'https' // Set this as per AWS.config\n\n /**\n // * Constructs a new Endpoint instance.\n *\n * @param {string} endpoint - The URL to construct an endpoint from. If the URL omits a protocol, the default protocol will be used.\n */\n constructor(endpoint: string) {\n const isDefaultProtocol =\n !endpoint.startsWith('http://') && !endpoint.startsWith('https://')\n const completeUrl = isDefaultProtocol\n ? `${Endpoint.DEFAULT_PROTOCOL}://${endpoint}`\n : endpoint\n\n const protocolMatch = completeUrl.match(/^https?:/)\n const hostAndPath = completeUrl.replace(/^https?:\\/\\//, '')\n const [hostnameWithPort] = hostAndPath.split('/')\n\n this._protocol = protocolMatch ? protocolMatch[0].slice(0, -1) : Endpoint.DEFAULT_PROTOCOL\n this._hostname = hostnameWithPort.split(':')[0]\n this._port = hostnameWithPort.split(':')[1]\n ? parseInt(hostnameWithPort.split(':')[1])\n : undefined\n }\n\n /**\n * Creates a new Endpoint instance that is a copy of the current one.\n *\n * @returns {Endpoint} The copied Endpoint.\n */\n public copy(): Endpoint {\n return new Endpoint(this.href)\n }\n\n /**\n * Gets the host portion of the endpoint including the port.\n *\n * @returns {string} The host portion of the endpoint including the port.\n */\n public get host(): string {\n return this._port ? `${this._hostname}:${this._port}` : this._hostname\n }\n\n /**\n * Sets the host portion of the endpoint including the port.\n *\n * @param {string} value - The value to set for the host.\n */\n public set host(value: string) {\n const [hostname, port] = value.split(':')\n this._hostname = hostname\n this._port = port ? parseInt(port) : undefined\n }\n\n /**\n * Gets the host portion of the endpoint without the port.\n *\n * @returns {string} The host portion of the endpoint.\n */\n public get hostname(): string {\n return this._hostname\n }\n\n /**\n * Sets the host portion of the endpoint without the port.\n *\n * @param {string} value - The value to set for the hostname.\n */\n public set hostname(value: string) {\n this._hostname = value\n }\n\n /**\n * Gets the full URL of the endpoint.\n *\n * @returns {string} The full URL of the endpoint.\n */\n public get href(): string {\n return `${this.protocol}://${this.host}`\n }\n\n /**\n * Sets the full URL of the endpoint.\n *\n * @param {string} value - The value to set for the full URL.\n */\n public set href(value: string) {\n const protocolMatch = value.match(/^https?:/)\n const withoutProtocol = value.replace(/^https?:\\/\\//, '')\n const [hostnameWithPort] = withoutProtocol.split('/')\n\n this._protocol = protocolMatch ? protocolMatch[0].slice(0, -1) : Endpoint.DEFAULT_PROTOCOL // remove the trailing colon\n this._hostname = hostnameWithPort.split(':')[0]\n this._port = hostnameWithPort.split(':')[1]\n ? parseInt(hostnameWithPort.split(':')[1])\n : undefined\n }\n\n /**\n * Gets the port of the endpoint.\n *\n * @returns {number|undefined} The port of the endpoint.\n */\n public get port(): number | undefined {\n return this._port\n }\n\n /**\n * Sets the port of the endpoint.\n *\n * @param {number|undefined} value - The value to set for the port.\n */\n public set port(value: number | undefined) {\n this._port = value\n }\n\n /**\n * Gets the protocol (http or https) of the endpoint URL.\n *\n * @returns {string} The protocol of the endpoint URL.\n */\n public get protocol(): string {\n return this._protocol\n }\n\n /**\n * Sets the protocol (http or https) of the endpoint URL.\n *\n * @param {string} value - The value to set for the protocol.\n */\n public set protocol(value: string) {\n this._protocol = value\n }\n}\n","import { JSONObject } from './json'\nimport { parseHTML } from 'k6/html'\nimport { Response } from 'k6/http'\n\n/**\n * Base class to derive errors from\n *\n * Inspired from AWS official error types, as\n * described in:\n * * https://aws.amazon.com/blogs/developer/service-error-handling-modular-aws-sdk-js/\n * * https://github.com/aws/aws-sdk-js/blob/master/lib/error.d.ts\n */\nexport class AWSError extends Error {\n /**\n * Error code issued by the service (if any)\n */\n code?: string\n\n /**\n * Create an AWSError\n *\n * @param {string} message - A longer human readable error message.\n * @param {string?} code - A unique short code representing the error that was emitted\n */\n constructor(message: string, code?: string) {\n super(message)\n this.name = 'AWSError'\n this.code = code\n }\n\n /**\n * Parse an AWSError from an XML document\n *\n * @param {string} xmlDocument - Serialized XML document to parse the error from\n * @returns {AWSError} - The parsed AWSError object\n */\n static parseXML(xmlDocument: string): AWSError {\n const doc = parseHTML(xmlDocument)\n return new AWSError(doc.find('Message').text(), doc.find('Code').text())\n }\n\n /**\n * Parse an AWSError from a Response object\n *\n * @param {Response} response - The Response object to parse the error from\n * @returns {AWSError} - The parsed AWSError object\n */\n static parse(response: Response): AWSError {\n if (response.headers['Content-Type'] === 'application/json') {\n const error = (response.json() as JSONObject) || {}\n const message =\n error.Message ||\n error.message ||\n error.__type ||\n 'An error occurred on the server side'\n const code = response.headers['X-Amzn-Errortype'] || error.__type\n return new AWSError(message as string, code as string)\n } else {\n return AWSError.parseXML(response.body as string)\n }\n }\n}\n\n/**\n * Base class for network errors as produced by k6.\n *\n * Based on the network error handling in k6, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n *\n * @typeparam N - The name of the network error\n * @typeparam K - The kind of the network error\n */\nexport class NetworkError extends Error {\n code: K\n name: N\n\n /**\n * Create a NetworkError\n *\n * @param {N} name - The name of the network error\n * @param {K} code - The kind of the network error\n */\n constructor(name: N, code: K) {\n super(ErrorMessages[code] || 'An unknown error occurred')\n this.name = name\n this.code = code\n }\n}\n\n/**\n * Represents a general network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class GeneralError extends NetworkError<'GeneralError', GeneralErrorKind> {\n /**\n * Create a GeneralError\n *\n * @param {GeneralErrorKind} code - The kind of the general error\n */\n constructor(code: GeneralErrorKind) {\n super('GeneralError', code)\n }\n}\n\n/**\n * Represents a DNS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class DNSError extends NetworkError<'DNSError', DNSErrorKind> {\n /**\n * Create a DNSError\n *\n * @param {DNSErrorKind} code - The kind of the DNS error\n */\n constructor(code: DNSErrorKind) {\n super('DNSError', code)\n }\n}\n\n/**\n * Represents a TCP-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class TCPError extends NetworkError<'TCPError', TCPErrorKind> {\n /**\n * Create a TCPError\n *\n * @param {TCPErrorKind} code - The kind of the TCP error\n */\n constructor(code: TCPErrorKind) {\n super('TCPError', code)\n }\n}\n\n/**\n * Represents a TLS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class TLSError extends NetworkError<'TLSError', TLSErrorKind> {\n /**\n * Create a TLSError\n *\n * @param {TLSErrorKind} code - The kind of the TLS error\n */\n constructor(code: TLSErrorKind) {\n super('TLSError', code)\n }\n}\n\n/**\n * Represents an HTTP/2-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class HTTP2Error extends NetworkError<'HTTP2Error', HTTP2ErrorKind> {\n /**\n * Create an HTTP2Error\n *\n * @param {HTTP2ErrorKind} code - The kind of the HTTP/2 error\n */\n constructor(code: HTTP2ErrorKind) {\n super('HTTP2Error', code)\n }\n}\n\n/**\n * Represents the name of a network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\ntype NetworkErrorName = 'GeneralError' | 'DNSError' | 'TCPError' | 'TLSError' | 'HTTP2Error'\n\n/**\n * Represents the kind of a network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\ntype ErrorKind = GeneralErrorKind | DNSErrorKind | TCPErrorKind | TLSErrorKind | HTTP2ErrorKind\n\n/**\n * Represents the kind of a general network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum GeneralErrorKind {\n GenericError = 1000,\n NonTCPNetworkError = 1010,\n InvalidURL = 1020,\n HTTPRequestTimeout = 1050,\n}\n\n/**\n * Represents the kind of a DNS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum DNSErrorKind {\n GenericDNSError = 1100,\n NoIPFound = 1101,\n BlacklistedIP = 1110,\n BlacklistedHostname = 1111,\n}\n\n/**\n * Represents the kind of a TCP-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum TCPErrorKind {\n GenericTCPError = 1200,\n BrokenPipeOnWrite = 1201,\n UnknownTCPError = 1202,\n GeneralTCPDialError = 1210,\n DialTimeoutError = 1211,\n DialConnectionRefused = 1212,\n DialUnknownError = 1213,\n ResetByPeer = 1220,\n}\n\n/**\n * Represents the kind of a TLS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum TLSErrorKind {\n GeneralTLSError = 1300,\n UnknownAuthority = 1310,\n CertificateHostnameMismatch = 1311,\n}\n\n/**\n * Represents the kind of an HTTP/2-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum HTTP2ErrorKind {\n GenericHTTP2Error = 1600,\n GeneralHTTP2GoAwayError = 1610,\n}\n\n/**\n * Error messages for each kind of network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nconst ErrorMessages: { [key in ErrorKind]: string } = {\n [GeneralErrorKind.GenericError]: 'A generic error that isn’t any of the ones listed below',\n [GeneralErrorKind.NonTCPNetworkError]:\n 'A non-TCP network error - this is a placeholder and there is no error currently known to trigger it',\n [GeneralErrorKind.InvalidURL]: 'An invalid URL was specified',\n [GeneralErrorKind.HTTPRequestTimeout]: 'The HTTP request has timed out',\n [DNSErrorKind.GenericDNSError]: 'A generic DNS error that isn’t any of the ones listed below',\n [DNSErrorKind.NoIPFound]: 'No IP for the provided host was found',\n [DNSErrorKind.BlacklistedIP]:\n 'Blacklisted IP was resolved or a connection to such was tried to be established',\n [DNSErrorKind.BlacklistedHostname]: 'Blacklisted hostname using The Block Hostnames option',\n [TCPErrorKind.GenericTCPError]: 'A generic TCP error that isn’t any of the ones listed below',\n [TCPErrorKind.BrokenPipeOnWrite]:\n 'A “broken pipe” on write - the other side has likely closed the connection',\n [TCPErrorKind.UnknownTCPError]:\n 'An unknown TCP error - We got an error that we don’t recognize but it is from the operating system and has errno set on it. The message in error includes the operation(write,read) and the errno, the OS, and the original message of the error',\n [TCPErrorKind.GeneralTCPDialError]: 'General TCP dial error',\n [TCPErrorKind.DialTimeoutError]: 'Dial timeout error - the timeout for the dial was reached',\n [TCPErrorKind.DialConnectionRefused]:\n 'Dial connection refused - the connection was refused by the other party on dial',\n [TCPErrorKind.DialUnknownError]: 'Dial unknown error',\n [TCPErrorKind.ResetByPeer]:\n 'Reset by peer - the connection was reset by the other party, most likely a server',\n [TLSErrorKind.GeneralTLSError]: 'General TLS error',\n [TLSErrorKind.UnknownAuthority]: 'Unknown authority - the certificate issuer is unknown',\n [TLSErrorKind.CertificateHostnameMismatch]: 'The certificate doesn’t match the hostname',\n [HTTP2ErrorKind.GenericHTTP2Error]:\n 'A generic HTTP/2 error that isn’t any of the ones listed below',\n [HTTP2ErrorKind.GeneralHTTP2GoAwayError]: 'A general HTTP/2 GoAway error',\n}\n","import { Endpoint } from './endpoint'\n\n/**\n * Type representing HTTP schemes\n */\nexport type HTTPScheme = 'http' | 'https'\n\n/**\n * Type representing HTTP Methods\n *\n */\nexport type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'DELETE'\n\n/**\n * Type alias representing HTTP Headers\n */\nexport type HTTPHeaders = { [key: string]: string }\n\n/**\n * HTTPHeaderBag is a type alias representing HTTP Headers\n */\nexport type HTTPHeaderBag = Record\n\nexport function hasHeader(soughtHeader: string, headers: HTTPHeaderBag): boolean {\n soughtHeader = soughtHeader.toLowerCase()\n\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * QueryParameterBag is a type alias representing HTTP Query Parameters\n */\nexport type QueryParameterBag = Record>\n\n/**\n * HTTPRequest represents an HTTP request\n */\nexport interface HTTPRequest {\n /**\n * The HTTP method to use\n */\n method: HTTPMethod\n\n /**\n * Represents an AWS service endpoint, providing utilities for parsing and handling URL details.\n */\n endpoint: Endpoint\n\n /**\n * The path to the resource\n */\n path: string\n\n /**\n * The query parameters to include in the request\n */\n query?: QueryParameterBag\n\n /**\n * The headers to include in the request\n */\n headers: HTTPHeaderBag\n\n /**\n * The body of the request\n */\n body?: string | ArrayBuffer | null\n}\n\n/**\n * SignedHTTPRequest represents an HTTP request that has been signed\n * with an AWS signature. It is a superset of HTTPRequest adding\n * the following fields:\n * - url: the fully qualified URL of the request that can be used in a k6 http.request.\n */\nexport interface SignedHTTPRequest extends HTTPRequest {\n url: string\n}\n","import crypto from 'k6/crypto'\n\nimport * as constants from './constants'\nimport { AWSError } from './error'\nimport { hasHeader, HTTPHeaderBag, HTTPRequest, QueryParameterBag, SignedHTTPRequest } from './http'\nimport { isArrayBuffer } from './utils'\n\n/**\n * SignatureV4 can be used to sign HTTP requests and presign URLs using the AWS Signature\n * Version 4 signing process.\n *\n * It offers two signing methods:\n * - sign: signs the request headers and payload\n * - presign: returns a presigned (authorization information contained in the query string) URL\n *\n * @see https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html\n */\nexport class SignatureV4 {\n /**\n * The name of the service to sign for.\n */\n private readonly service: string\n\n /**\n * The name of the region to sign for.\n */\n private readonly region: string\n\n /**\n * The credentials with which the request should be signed.\n */\n private readonly credentials: Credentials\n\n /**\n * Whether to uri-escape the request URI path as part of computing the\n * canonical request string. This is required for every AWS service, except\n * Amazon S3, as of late 2017.\n *\n * @default [true]\n */\n private readonly uriEscapePath: boolean\n\n /**\n * Whether to calculate a checksum of the request body and include it as\n * either a request header (when signing) or as a query string parameter\n * (when presigning). This is required for AWS Glacier and Amazon S3 and optional for\n * every other AWS service as of late 2017.\n *\n * @default [true]\n */\n private readonly applyChecksum: boolean\n\n // TODO: uriEscapePath and applyChecksum should not be present in the constructor\n constructor({\n service,\n region,\n credentials,\n uriEscapePath,\n applyChecksum,\n }: SignatureV4Options) {\n this.service = service\n this.region = region\n this.credentials = credentials\n this.uriEscapePath = typeof uriEscapePath === 'boolean' ? uriEscapePath : true\n this.applyChecksum = typeof applyChecksum === 'boolean' ? applyChecksum : true\n }\n\n /**\n * Includes AWS v4 signing information to the provided HTTP request.\n *\n * This method adds an Authorization header to the request, containing\n * the signature and other signing information. It also returns a preformatted\n * URL that can be used to make the k6 http request.\n *\n * This method mutates the request object.\n *\n * @param request {HTTPRequest} The request to sign.\n * @param options {Partial} Options for signing the request.\n * @returns {SignedHTTPRequest} The signed request.\n */\n sign(request: HTTPRequest, options: Partial = {}): SignedHTTPRequest {\n // Set default values for options which are not provided by the user.\n const defaultOptions = {\n signingDate: new Date(),\n unsignableHeaders: new Set(),\n signableHeaders: new Set(),\n }\n\n // Merge default options with the ones maybe provided by the user.\n const finalOptions = { ...defaultOptions, ...options }\n\n const { longDate, shortDate }: DateInfo = formatDate(finalOptions.signingDate)\n const service = finalOptions.signingService || this.service\n const region = finalOptions.signingRegion || this.region\n const scope = `${shortDate}/${region}/${service}/${constants.KEY_TYPE_IDENTIFIER}`\n\n // Required by the specification:\n // \"For HTTP/1.1 requests, you must include the host header at a minimum.\n // Standard headers like content-type are optional.\n // For HTTP/2 requests, you must include the :authority header instead of\n // the host header. Different services might require other headers.\"\n if (!request.headers[constants.HOST_HEADER]) {\n request.headers[constants.HOST_HEADER] = request.endpoint.hostname\n }\n\n // Filter out headers that will be generated and managed by the signing process.\n // If the user provide any of those as part of the HTTPRequest's headers, they\n // will be ignored.\n for (const headerName of Object.keys(request.headers)) {\n if (constants.GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) {\n delete request.headers[headerName]\n }\n }\n\n request.headers[constants.AMZ_DATE_HEADER] = longDate\n if (this.credentials.sessionToken) {\n request.headers[constants.AMZ_TOKEN_HEADER] = this.credentials.sessionToken\n }\n\n // If the request body is a typed array, we need to convert it to a buffer\n // so that we can calculate the checksum.\n if (ArrayBuffer.isView(request.body)) {\n request.body = request.body.buffer\n }\n\n // Ensure we avoid passing undefined to the crypto hash function.\n if (!request.body) {\n request.body = ''\n }\n\n const payloadHash = this.computePayloadHash(request)\n if (\n !hasHeader(constants.AMZ_CONTENT_SHA256_HEADER, request.headers) &&\n this.applyChecksum\n ) {\n request.headers[constants.AMZ_CONTENT_SHA256_HEADER] = payloadHash\n }\n\n const canonicalHeaders = this.computeCanonicalHeaders(\n request,\n finalOptions.unsignableHeaders,\n finalOptions.signableHeaders\n )\n const signature = this.calculateSignature(\n longDate,\n scope,\n this.deriveSigningKey(this.credentials, service, region, shortDate),\n this.createCanonicalRequest(request, canonicalHeaders, payloadHash)\n )\n\n /**\n * Step 4 of the signing process: add the signature to the HTTP request's headers.\n *\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html\n */\n request.headers[constants.AUTHORIZATION_HEADER] =\n `${constants.SIGNING_ALGORITHM_IDENTIFIER} ` +\n `Credential=${this.credentials.accessKeyId}/${scope}, ` +\n `SignedHeaders=${Object.keys(canonicalHeaders).sort().join(';')}, ` +\n `Signature=${signature}`\n\n // If a request path was provided, add it to the URL\n let url = request.endpoint.href\n if (request.path) {\n // Ensure the URI and the request path are properly concatenated\n // by adding a trailing slash to the URI if it's missing.\n if (!url.endsWith('/') && !request.path.startsWith('/')) {\n url += '/'\n }\n\n // Append the path to the URL\n url += request.path\n }\n\n // If a request query string was provided, add it to the URL\n if (request.query) {\n // We exclude the signature from the query string\n url += `?${this.serializeQueryParameters(request.query)}`\n }\n\n return {\n url: url,\n ...request,\n }\n }\n\n /**\n * Produces a presigned URL with AWS v4 signature information for the provided HTTP request.\n *\n * A presigned URL is a URL that contains the authorization information\n * (signature and other signing information) in the query string. This method\n * returns a preformatted URL that can be used to make the k6 http request.\n *\n * @param originalRequest - The original request to presign.\n * @param options - Options controlling the signing of the request.\n * @returns A signed request, including the presigned URL.\n */\n presign(originalRequest: HTTPRequest, options: PresignOptions = {}): SignedHTTPRequest {\n const {\n signingDate = new Date(),\n expiresIn = 3600,\n unsignableHeaders,\n unhoistableHeaders,\n signableHeaders,\n signingRegion,\n signingService,\n } = options\n const { longDate, shortDate }: DateInfo = formatDate(signingDate)\n const region = signingRegion || this.region\n const service = signingService || this.service\n\n if (expiresIn > constants.MAX_PRESIGNED_TTL) {\n throw new InvalidSignatureError(\n \"Signature version 4 presigned URLs can't be valid for more than 7 days\"\n )\n }\n\n const scope = `${shortDate}/${region}/${service}/${constants.KEY_TYPE_IDENTIFIER}`\n const request = this.moveHeadersToQuery(originalRequest, { unhoistableHeaders })\n\n // Required by the specification:\n // \"For HTTP/1.1 requests, you must include the host header at a minimum.\n // Standard headers like content-type are optional.\n // For HTTP/2 requests, you must include the :authority header instead of\n // the host header. Different services might require other headers.\"\n if (!request.headers[constants.HOST_HEADER]) {\n request.headers[constants.HOST_HEADER] = originalRequest.endpoint.hostname\n }\n\n // If the user provided a session token, include it in the signed url query string.\n if (this.credentials.sessionToken) {\n request.query[constants.AMZ_TOKEN_QUERY_PARAM] = this.credentials.sessionToken\n }\n // Add base signing query parameters to the request, as described in the documentation\n // @see https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html\n request.query[constants.AMZ_ALGORITHM_QUERY_PARAM] = constants.SIGNING_ALGORITHM_IDENTIFIER\n request.query[\n constants.AMZ_CREDENTIAL_QUERY_PARAM\n ] = `${this.credentials.accessKeyId}/${scope}`\n request.query[constants.AMZ_DATE_QUERY_PARAM] = longDate\n request.query[constants.AMZ_EXPIRES_QUERY_PARAM] = expiresIn.toString(10)\n\n const canonicalHeaders = this.computeCanonicalHeaders(\n request,\n unsignableHeaders,\n signableHeaders\n )\n request.query[constants.AMZ_SIGNED_HEADERS_QUERY_PARAM] = Object.keys(canonicalHeaders)\n .sort()\n .join(';')\n\n const signingKey = this.deriveSigningKey(this.credentials, service, region, shortDate)\n\n // Computing the payload from the original request. This is required\n // in the event the user attempts to produce a presigned URL for s3,\n // which requires the payload hash to be 'UNSIGNED-PAYLOAD'.\n //\n // To that effect, users need to set the 'x-amz-content-sha256' header,\n // and mark it as unhoistable and unsignable. When setup this way,\n // the computePayloadHash method will then return the string 'UNSIGNED-PAYLOAD'.\n const payloadHash = this.computePayloadHash(originalRequest)\n const canonicalRequest = this.createCanonicalRequest(request, canonicalHeaders, payloadHash)\n\n request.query[constants.AMZ_SIGNATURE_QUERY_PARAM] = this.calculateSignature(\n longDate,\n scope,\n signingKey,\n canonicalRequest\n )\n\n // If a request path was provided, add it to the URL\n let url = originalRequest.endpoint.href\n if (request.path) {\n // Ensure there is a trailing slash at the end of the URL\n // so that appending the path does not result in a malformed URL.\n url = url?.endsWith('/') ? url : url + '/'\n\n // Append the path to the URL\n url += request.path\n }\n\n // If a request query string was provided, add it to the URL\n if (request.query) {\n url += `?${this.serializeQueryParameters(request.query)}`\n }\n\n return { url: url, ...request }\n }\n\n /**\n * Create a string including information from your request\n * in a AWS signature v4 standardized (canonical) format.\n *\n * Step 1 of the signing process: create the canonical request string.\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html\n *\n * @param request {HTTPRequest} The request to sign.\n * @param canonicalHeaders {HTTPHeaderBag} The request's canonical headers.\n * @param payloadHash {string} The hexadecimally encoded request's payload hash .\n * @returns {string} The canonical request string.\n */\n private createCanonicalRequest(\n request: HTTPRequest,\n canonicalHeaders: HTTPHeaderBag,\n payloadHash: string\n ): string {\n const sortedHeaders = Object.keys(canonicalHeaders).sort()\n const sortedCanonicalHeaders = sortedHeaders\n .map((name) => `${name}:${canonicalHeaders[name]}`)\n .join('\\n')\n const signedHeaders = sortedHeaders.join(';')\n\n return (\n `${request.method}\\n` +\n `${this.computeCanonicalURI(request)}\\n` +\n `${this.computeCanonicalQuerystring(request)}\\n` +\n `${sortedCanonicalHeaders}\\n\\n` +\n `${signedHeaders}\\n` +\n `${payloadHash}`\n )\n }\n\n /**\n * Create the \"string to sign\" part of the signature Version 4 protocol.\n *\n * The \"string to sign\" includes meta information about your request and\n * about the canonical request that you created with `createCanonicalRequest`.\n * It is used hand in hand with the signing key to create the request signature.\n * Step 2 of the signing process: create the string to sign.\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-create-string-to-sign.html\n *\n * @param longDate {string} The request's date in iso 8601 format.\n * @param credentialScope {string} The request's credential scope.\n * @param canonicalRequest {string} The request's canonical request.\n * @returns {string} The \"string to sign\".\n */\n private createStringToSign(\n longDate: string,\n credentialScope: string,\n canonicalRequest: string\n ): string {\n const hashedCanonicalRequest = crypto.sha256(canonicalRequest, 'hex')\n\n return (\n `${constants.SIGNING_ALGORITHM_IDENTIFIER}\\n` +\n `${longDate}\\n` +\n `${credentialScope}\\n` +\n `${hashedCanonicalRequest}`\n )\n }\n\n /**\n * Calculte the signature for AWS signature version 4.\n *\n * Step 3 of the signing process: create the signature.\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-calculate-signature.html\n *\n * @param longDate {string} The request's date in iso 8601 format.\n * @param credentialScope {string} The request's credential scope.\n * @param signingKey {string} the signing key as computed by the deriveSigningKey method.\n * @param canonicalRequest {string} The request's canonical request.\n * @returns {string} The signature.\n */\n private calculateSignature(\n longDate: string,\n credentialScope: string,\n signingKey: Uint8Array,\n canonicalRequest: string\n ): string {\n const stringToSign = this.createStringToSign(longDate, credentialScope, canonicalRequest)\n return crypto.hmac('sha256', signingKey, stringToSign, 'hex')\n }\n\n /**\n * Derives the signing key for authenticating requests signed with\n * the Signature version 4 authentication protocol.\n *\n * deriveSigningKey produces a signing key by creating a series of\n * hash-based message authentication codes (HMACs) represented in\n * a binary format.\n *\n * The derived signing key is specific to the date it's made at, as well as\n * the service and region it targets.\n *\n * @param credentials {AWSCredentials} The credentials to use for signing.\n * @param service {string} The service the request is targeted at.\n * @param region {string} The region the request is targeted at.\n * @param shortDate {string} The request's date in YYYYMMDD format.\n * @returns {Uint8Array} The derived signing key.\n */\n private deriveSigningKey(\n credentials: Credentials,\n service: string,\n region: string,\n shortDate: string\n ): Uint8Array {\n const kSecret: string = credentials.secretAccessKey\n /**\n * crypto.hmac returns a value of type `bytes`, which is an alias for\n * number[]. However, the secret argument to hmac needs to either be\n * a `string` or ArrayBuffer. The only way to get around this is to\n * cast the return value of hmac to any, thus, we disable the no-explicit-any\n * ESLint rule for this function.\n */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const kDate: any = crypto.hmac('sha256', 'AWS4' + kSecret, shortDate, 'binary')\n const kRegion: any = crypto.hmac('sha256', kDate, region, 'binary')\n const kService: any = crypto.hmac('sha256', kRegion, service, 'binary')\n const kSigning: any = crypto.hmac('sha256', kService, 'aws4_request', 'binary')\n /* eslint-enable @typescript-eslint/no-explicit-any */\n\n return kSigning\n }\n\n /**\n * Create a string that includes information from your request\n * in a AWS signature v4 standardized (canonical) format.\n *\n * @param param0 {HTTPRequest} The request to sign.\n * @returns {string} The canonical URI.\n */\n private computeCanonicalURI({ path }: HTTPRequest): string {\n if (this.uriEscapePath) {\n // Non-S3 services, we normalize the path and then double URI encode it.\n // Ref: \"Remove Dot Segments\" https://datatracker.ietf.org/doc/html/rfc3986#section-5.2.4\n const normalizedURISegments = []\n\n for (const URISegment of path.split('/')) {\n if (URISegment?.length === 0) {\n continue\n }\n\n if (URISegment === '.') {\n continue\n }\n\n if (URISegment === '..') {\n normalizedURISegments.pop()\n } else {\n normalizedURISegments.push(URISegment)\n }\n }\n\n // Normalize the URI\n const leading = path?.startsWith('/') ? '/' : ''\n const URI = normalizedURISegments.join('/')\n const trailing = normalizedURISegments.length > 0 && path?.endsWith('/') ? '/' : ''\n const normalizedURI = `${leading}${URI}${trailing}`\n\n const doubleEncoded = encodeURIComponent(normalizedURI)\n\n return doubleEncoded.replace(/%2F/g, '/')\n }\n\n // For S3, we shouldn't normalize the path. For example, object name\n // my-object//example//photo.user should not be normalized to\n // my-object/example/photo.user\n return path\n }\n\n /**\n * Serializes the request's query parameters into their canonical\n * string version. If the request does not include a query parameters,\n * returns an empty string.\n *\n * @param param0 {HTTPRequest} The request containing the query parameters.\n * @returns {string} The canonical query string.\n */\n private computeCanonicalQuerystring({ query = {} }: HTTPRequest): string {\n const keys: Array = []\n const serialized: Record = {}\n\n for (const key of Object.keys(query).sort()) {\n if (key.toLowerCase() === constants.AMZ_SIGNATURE_HEADER) {\n continue\n }\n\n keys.push(key)\n const value = query[key]\n\n if (typeof value === 'string') {\n serialized[key] = `${escapeURI(key)}=${escapeURI(value)}`\n } else if (Array.isArray(value)) {\n serialized[key] = value\n .slice(0)\n .sort()\n .reduce(\n (encoded: Array, value: string) =>\n encoded.concat([`${escapeURI(key)}=${escapeURI(value)}`]),\n []\n )\n .join('&')\n }\n }\n\n return keys\n .map((key) => serialized[key])\n .filter((serialized) => serialized)\n .join('&')\n }\n\n /**\n * Create the canonical form of the request's headers.\n * Canonical headers consist of all the HTTP headers you\n * are including with the signed request.\n *\n * @param param0 {HTTPRequest} The request to compute the canonical headers of.\n * @param unsignableHeaders {Set} The headers that should not be signed.\n * @param signableHeaders {Set} The headers that should be signed.\n * @returns {string} The canonical headers.\n */\n private computeCanonicalHeaders(\n { headers }: HTTPRequest,\n unsignableHeaders?: Set,\n signableHeaders?: Set\n ): HTTPHeaderBag {\n const canonicalHeaders: HTTPHeaderBag = {}\n\n for (const headerName of Object.keys(headers).sort()) {\n if (headers[headerName] == undefined) {\n continue\n }\n\n const canonicalHeaderName = headerName.toLowerCase()\n if (\n canonicalHeaderName in constants.ALWAYS_UNSIGNABLE_HEADERS ||\n unsignableHeaders?.has(canonicalHeaderName)\n ) {\n if (\n !signableHeaders ||\n (signableHeaders && !signableHeaders.has(canonicalHeaderName))\n ) {\n continue\n }\n }\n\n if (typeof headers[headerName] === 'string') {\n canonicalHeaders[canonicalHeaderName] = headers[headerName] = headers[headerName]\n .trim()\n .replace(/\\s+/g, ' ')\n }\n }\n\n return canonicalHeaders\n }\n\n /**\n * Computes the SHA256 cryptographic hash of the request's body.\n *\n * If the headers contain the 'X-Amz-Content-Sha256' header, then\n * the value of that header is returned instead. This proves useful\n * when, for example, presiging a URL for S3, as the payload hash\n * must always be equal to 'UNSIGNED-PAYLOAD'.\n *\n * @param param0 {HTTPRequest} The request to compute the payload hash of.\n * @returns {string} The hex encoded SHA256 payload hash, or the value of the 'X-Amz-Content-Sha256' header.\n */\n private computePayloadHash({ headers, body }: HTTPRequest): string {\n // for (const headerName of Object.keys(headers)) {\n // // If the header is present, return its value.\n // // So that we let the 'UNSIGNED-PAYLOAD' value pass through.\n // if (headerName.toLowerCase() === constants.AMZ_CONTENT_SHA256_HEADER) {\n // return headers[headerName]\n // }\n // }\n\n if (headers[constants.AMZ_CONTENT_SHA256_HEADER]) {\n return headers[constants.AMZ_CONTENT_SHA256_HEADER]\n }\n\n if (body == undefined) {\n return constants.EMPTY_SHA256\n }\n\n if (typeof body === 'string' || isArrayBuffer(body)) {\n return crypto.sha256(body, 'hex').toLowerCase()\n }\n\n if (ArrayBuffer.isView(body)) {\n // If the request body is a typed array, we need to convert it to a buffer\n // so that we can calculate the checksum.\n return crypto.sha256((body as DataView).buffer, 'hex').toLowerCase()\n }\n\n return constants.UNSIGNED_PAYLOAD\n }\n\n /**\n * Moves a request's headers to its query parameters.\n *\n * The operation will ignore any amazon standard headers, prefixed\n * with 'X-Amz-'. It will also ignore any headers specified as unhoistable\n * by the options.\n *\n * The operation will delete the headers from the request.\n *\n * @param request {HTTPRequest} The request to move the headers from.\n * @param options\n * @returns {HTTPRequest} The request with the headers moved to the query parameters.\n */\n private moveHeadersToQuery(\n request: HTTPRequest,\n options: { unhoistableHeaders?: Set } = {}\n ): HTTPRequest & { query: QueryParameterBag } {\n const requestCopy = JSON.parse(JSON.stringify(request))\n const { headers, query = {} as QueryParameterBag } = requestCopy\n\n for (const name of Object.keys(headers)) {\n const lowerCaseName = name.toLowerCase()\n if (\n lowerCaseName.slice(0, 6) === 'x-amz-' &&\n !options.unhoistableHeaders?.has(lowerCaseName)\n ) {\n query[name] = headers[name]\n delete headers[name]\n }\n }\n\n return {\n ...requestCopy,\n headers,\n query,\n }\n }\n\n /**\n * Serializes a HTTPRequest's query parameter bag into a string.\n *\n * @param query {QueryParameterBag} The query parameters to serialize.\n * @param ignoreKeys {Set} The keys to ignore.\n * @returns {string} The serialized, and ready to use in a URL, query parameters.\n */\n private serializeQueryParameters(query: QueryParameterBag, ignoreKeys?: string[]): string {\n const keys: Array = []\n const serialized: Record = {}\n\n for (const key of Object.keys(query).sort()) {\n if (ignoreKeys?.includes(key.toLowerCase())) {\n continue\n }\n\n keys.push(key)\n const value = query[key]\n\n if (typeof value === 'string') {\n serialized[key] = `${escapeURI(key)}=${escapeURI(value)}`\n } else if (Array.isArray(value)) {\n serialized[key] = value\n .slice(0)\n .sort()\n .reduce(\n (encoded: Array, value: string) =>\n encoded.concat([`${escapeURI(key)}=${escapeURI(value)}`]),\n []\n )\n .join('&')\n }\n }\n\n return keys\n .map((key) => serialized[key])\n .filter((serialized) => serialized)\n .join('&')\n }\n}\n\n/**\n * Error indicating an Invalid signature has been sent to AWS services\n *\n * Inspired from AWS official error types, as\n * described in:\n * * https://aws.amazon.com/blogs/developer/service-error-handling-modular-aws-sdk-js/\n * * https://github.com/aws/aws-sdk-js/blob/master/lib/error.d.ts\n */\nexport class InvalidSignatureError extends AWSError {\n /**\n * Constructs an InvalidSignatureError\n *\n * @param {string} message - human readable error message\n */\n constructor(message: string, code?: string) {\n super(message, code)\n this.name = 'InvalidSignatureError'\n }\n}\n\nexport interface SignatureV4Options {\n /**\n * The name of the service to sign for.\n */\n service: string\n\n /**\n * The name of the region to sign for.\n */\n region: string\n\n /**\n * The credentials with which the request should be signed.\n */\n credentials: Credentials\n\n /**\n * Whether to uri-escape the request URI path as part of computing the\n * canonical request string. This is required for every AWS service, except\n * Amazon S3, as of late 2017.\n *\n * @default [true]\n */\n uriEscapePath?: boolean\n\n /**\n * Whether to calculate a checksum of the request body and include it as\n * either a request header (when signing) or as a query string parameter\n * (when presigning). This is required for AWS Glacier and Amazon S3 and optional for\n * every other AWS service as of late 2017.\n *\n * @default [true]\n */\n applyChecksum?: boolean\n}\n\nexport interface SignOptions {\n /**\n * The date and time to be used as signature metadata. This value should be\n * a Date object, a unix (epoch) timestamp, or a string that can be\n * understood by the JavaScript `Date` constructor.If not supplied, the\n * value returned by `new Date()` will be used.\n */\n signingDate?: Date\n\n /**\n * The service signing name. It will override the service name of the signer\n * in current invocation\n */\n signingService?: string\n\n /**\n * The region name to sign the request. It will override the signing region of the\n * signer in current invocation\n */\n signingRegion?: string\n}\n\nexport interface RequestSigningOptions extends SignOptions {\n /**\n * A set of strings whose members represents headers that cannot be signed.\n * All headers in the provided request will have their names converted to\n * lower case and then checked for existence in the unsignableHeaders set.\n */\n unsignableHeaders?: Set\n\n /**\n * A set of strings whose members represents headers that should be signed.\n * Any values passed here will override those provided via unsignableHeaders,\n * allowing them to be signed.\n *\n * All headers in the provided request will have their names converted to\n * lower case before signing.\n */\n signableHeaders?: Set\n}\n\nexport interface PresignOptions extends RequestSigningOptions {\n /**\n * The number of seconds before the presigned URL expires\n */\n expiresIn?: number\n\n /**\n * A set of strings whose representing headers that should not be hoisted\n * to presigned request's query string. If not supplied, the presigner\n * moves all the AWS-specific headers (starting with `x-amz-`) to the request\n * query string. If supplied, these headers remain in the presigned request's\n * header.\n * All headers in the provided request will have their names converted to\n * lower case and then checked for existence in the unhoistableHeaders set.\n */\n unhoistableHeaders?: Set\n}\n\nexport interface Credentials {\n /**\n * AWS access key ID\n */\n readonly accessKeyId: string\n\n /**\n * AWS secret access key\n */\n readonly secretAccessKey: string\n\n /**\n * A security or session token to use with these credentials. Usually\n * present for temporary credentials.\n */\n readonly sessionToken?: string\n}\n\nexport interface DateInfo {\n /**\n * ISO8601 formatted date string\n */\n longDate: string\n\n /**\n * String in the format YYYYMMDD\n */\n shortDate: string\n}\n\n/**\n * Escapes a URI following the AWS signature v4 escaping rules.\n *\n * @param URI {string} The URI to escape.\n * @returns {string} The escaped URI.\n */\nfunction escapeURI(URI: string): string {\n const hexEncode = (c: string): string => {\n return `%${c.charCodeAt(0).toString(16).toUpperCase()}`\n }\n\n return encodeURIComponent(URI).replace(/[!'()*]/g, hexEncode)\n}\n\n/**\n * formatDate formats a Date object into a ISO8601 formatted date string\n * and a string in the format YYYYMMDD.\n *\n * @param date {Date} The date to format.\n * @returns {DateInfo} The formatted date.\n */\nfunction formatDate(date: Date): DateInfo {\n const longDate = iso8601(date).replace(/[-:]/g, '')\n return {\n longDate,\n shortDate: longDate.slice(0, 8),\n }\n}\n\n/**\n * Formats a time into an ISO 8601 string.\n *\n * @see https://en.wikipedia.org/wiki/ISO_8601\n *\n * @param time {number | string | Date} The time to format.\n * @returns {string} The ISO 8601 formatted time.\n */\nfunction iso8601(time: number | string | Date): string {\n return toDate(time)\n .toISOString()\n .replace(/\\.\\d{3}Z$/, 'Z')\n}\n\n/**\n * Converts a time value into a Date object.\n *\n * @param time {number | string | Date} The time to convert.\n * @returns {Date} The resulting Date object.\n */\nfunction toDate(time: number | string | Date): Date {\n if (typeof time === 'number') {\n return new Date(time * 1000)\n }\n\n if (typeof time === 'string') {\n if (Number(time)) {\n return new Date(Number(time) * 1000)\n }\n\n return new Date(time)\n }\n\n return time\n}\n","/**\n *\n * @param value\n * @returns\n */\nexport function isArrayBuffer(value: unknown): value is ArrayBuffer {\n return (\n typeof ArrayBuffer === 'function' &&\n (value instanceof ArrayBuffer ||\n Object.prototype.toString.call(value) === '[object ArrayBuffer]')\n )\n}\n\nexport function toFormUrlEncoded(form: Record): string {\n return Object.keys(form)\n .reduce((params, key) => {\n const value = form[key]\n if (value !== undefined && value !== null) {\n params.push(`${encodeURIComponent(key)}=${encodeURIComponent(value)}`)\n }\n return params\n }, [] as string[])\n .join('&')\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"k6/encoding\");","import http, { RefinedResponse, ResponseType } from 'k6/http'\nimport encoding from 'k6/encoding'\n\nimport { AWSClient } from './client'\nimport { AWSConfig } from './config'\nimport { AWSError } from './error'\nimport { InvalidSignatureError, SignatureV4 } from './signature'\nimport { AMZ_TARGET_HEADER } from './constants'\nimport { HTTPHeaders, HTTPMethod, QueryParameterBag } from './http'\n\n/**\n * Class allowing to interact with Amazon AWS's Lambda service\n */\nexport class LambdaClient extends AWSClient {\n private readonly signature: SignatureV4\n private readonly commonHeaders: HTTPHeaders\n private readonly method: HTTPMethod\n\n constructor(awsConfig: AWSConfig) {\n super(awsConfig, 'lambda')\n\n this.signature = new SignatureV4({\n service: this.serviceName,\n region: this.awsConfig.region,\n credentials: {\n accessKeyId: this.awsConfig.accessKeyId,\n secretAccessKey: this.awsConfig.secretAccessKey,\n sessionToken: this.awsConfig.sessionToken,\n },\n uriEscapePath: true,\n applyChecksum: false,\n })\n\n this.method = 'POST'\n this.commonHeaders = {\n 'Content-Type': 'application/x-amz-json-1.1',\n }\n }\n\n /**\n * Invoke an AWS Lambda function\n *\n * @param {string} name - The name of the function\n * @param {string} payload - The payload to send to function\n * @param {InvocationOptions} options - Additional options to customize invocation\n *\n * @throws {LambdaInvocationError}\n */\n async invoke(\n name: string,\n payload: string,\n options: InvocationOptions = {}\n ): Promise {\n const query: QueryParameterBag = {}\n const invocationType = options.invocationType || 'RequestResponse'\n const headers = {\n ...this.commonHeaders,\n [AMZ_TARGET_HEADER]: `AWSLambda.${invocationType}`,\n 'X-Amz-Invocation-Type': invocationType,\n 'X-Amz-Log-Type': options.logType || 'None',\n }\n if (options.clientContext) {\n headers['X-Amz-Client-Context'] = options.clientContext\n }\n if (options.qualifier) {\n query['Qualifier'] = options.qualifier\n }\n\n const signedRequest = this.signature.sign(\n {\n method: this.method,\n endpoint: this.endpoint,\n path: `/2015-03-31/functions/${name}/invocations`,\n query,\n headers,\n body: payload || '',\n },\n {}\n )\n\n const res = await http.asyncRequest(this.method, signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res)\n\n const logResult = res.headers['X-Amz-Log-Result']\n const response = {\n executedVersion: res.headers['X-Amz-Executed-Version'],\n logResult: logResult ? encoding.b64decode(logResult, 'std', 's') : undefined,\n statusCode: res.status,\n payload: res.body as string,\n }\n\n const functionError = res.headers['X-Amz-Function-Error']\n if (functionError) {\n throw new LambdaInvocationError(functionError, response)\n } else {\n return response\n }\n }\n\n\n protected handleError(response: RefinedResponse, operation?: string): boolean {\n const errored = super.handleError(response, operation);\n if (!errored) {\n return false;\n }\n\n const awsError = AWSError.parse(response)\n switch (awsError.code) {\n case 'AuthorizationHeaderMalformed':\n case 'InvalidSignatureException':\n throw new InvalidSignatureError(awsError.message, awsError.code)\n default:\n throw awsError\n }\n\n return true\n }\n}\n\nexport class LambdaInvocationError extends Error {\n response: InvocationResponse\n\n constructor(message: string, response: InvocationResponse) {\n super(`${message}: ${response.payload}`)\n this.response = response\n }\n}\n\ninterface InvocationOptions {\n /**\n * Defines whether the function is invoked synchronously or asynchronously.\n * - `RequestResponse` (default): Invoke the function synchronously.\n * - `Event`: Invoke the function asynchronously.\n * - `DryRun`: Validate parameter values and verify that the user or role has permission to invoke the function.\n */\n invocationType?: 'RequestResponse' | 'Event' | 'DryRun'\n /**\n * Set to `Tail` to include the execution log in the response. Applies to synchronously invoked functions only.\n */\n logType?: 'None' | 'Tail'\n /**\n * Up to 3,583 bytes of base64-encoded data about the invoking client to pass to the function in the context object.\n */\n clientContext?: string\n /**\n * Specify a version or alias to invoke a published version of the function.\n */\n qualifier?: string\n}\n\ninterface InvocationResponse {\n statusCode: number\n executedVersion?: string\n logResult?: string\n payload?: string\n}\n","import { AWSClient } from './client'\nimport { AWSConfig } from './config'\nimport { InvalidSignatureError, SignatureV4 } from './signature'\nimport { HTTPHeaders } from './http'\nimport http, { RefinedResponse, ResponseType } from 'k6/http'\nimport { AWSError } from './error'\nimport { AMZ_TARGET_HEADER } from './constants'\nimport { JSONObject } from './json'\n\nexport class SQSClient extends AWSClient {\n private readonly signature: SignatureV4\n private readonly commonHeaders: HTTPHeaders\n\n private readonly serviceVersion: string\n\n constructor(awsConfig: AWSConfig) {\n super(awsConfig, 'sqs')\n\n this.serviceVersion = 'AmazonSQS'\n\n this.signature = new SignatureV4({\n service: this.serviceName,\n region: this.awsConfig.region,\n credentials: {\n accessKeyId: this.awsConfig.accessKeyId,\n secretAccessKey: this.awsConfig.secretAccessKey,\n sessionToken: this.awsConfig.sessionToken,\n },\n uriEscapePath: true,\n applyChecksum: true,\n })\n\n this.commonHeaders = {\n 'Content-Type': 'application/x-amz-json-1.0',\n }\n }\n\n /**\n * Delivers a message to the specified queue.\n *\n * @param {string} queueUrl - The URL of the Amazon SQS queue to which a message is sent. Queue URLs and names are case-sensitive.\n * @param {string} messageBody - The message to send. The minimum size is one character. The maximum size is 256 KB.\n * @param {Object} options - Options for the request\n * @param {string} [options.messageDeduplicationId] - The message deduplication id.\n * @param {string} [options.messageGroupId] - The message group ID for FIFO queues\n * @returns {MessageResponse} - The message that was sent.\n */\n async sendMessage(\n queueUrl: string,\n messageBody: string,\n options: SendMessageOptions = {}\n ): Promise {\n const action = 'SendMessage'\n\n const body = {\n QueueUrl: queueUrl,\n ...this._combineQueueMessageBodyAndOptions(messageBody, options),\n }\n\n const res = await this._sendRequest(action, body)\n\n const parsed = res.json() as JSONObject\n return new MessageResponse(\n parsed['MessageId'] as string,\n parsed['MD5OfMessageBody'] as string\n )\n }\n\n /**\n * Delivers up to ten messages to the specified queue.\n *\n * @param {string} queueUrl - The URL of the Amazon SQS queue to which a message is sent. Queue URLs and names are case-sensitive.\n * @param {SendMessageBatchEntry[]} entries - A list of up to ten messages to send.\n * @returns {MessageBatchResponse} - The messages that were sent.\n */\n async sendMessageBatch(\n queueUrl: string,\n entries: SendMessageBatchEntry[]\n ): Promise {\n const action = 'SendMessageBatch'\n\n const requestMessageEntries = entries.map((entry) => {\n let requestMessageEntry = this._combineQueueMessageBodyAndOptions(\n entry.messageBody,\n entry.messageOptions\n )\n requestMessageEntry = { ...requestMessageEntry, Id: entry.messageId }\n return requestMessageEntry\n })\n\n const body = { QueueUrl: queueUrl, Entries: requestMessageEntries }\n\n const res = await this._sendRequest(action, body)\n\n const parsed = res.json() as JSONObject\n const successful: JSONObject[] = (parsed['Successful'] as JSONObject[]) || []\n const failed: JSONObject[] = (parsed['Failed'] as JSONObject[]) || []\n\n return {\n successful: successful.map(\n (entry) =>\n new MessageResponse(\n entry['MessageId'] as string,\n entry['MD5OfMessageBody'] as string\n )\n ),\n failed: failed.map(\n (entry) =>\n new SQSServiceError(entry['Message'] as string, entry['Code'] as string, action)\n ),\n }\n }\n\n /**\n * Returns a list of your queues in the current region.\n *\n * @param {ListQueuesRequestParameters} [parameters={}] request parameters\n * @param {number} [ListQueuesRequestParameters.maxResults] Maximum number of results to include in the response. Value range is 1 to 1000. You must set maxResults to receive a value for nextToken in the response.\n * @param {string} [ListQueuesRequestParameters.nextToken] Pagination token to request the next set of results.\n * @param {string} [ListQueuesRequestParameters.queueNamePrefix] A string to use for filtering the list results. Only those queues whose name begins with the specified string are returned.\n * @returns {Object}\n * @returns {string[]} Object.queueUrls - A list of queue URLs, up to 1000 entries.\n * @returns {string} [Object.nextToken] - In the future, you can use NextToken to request the next set of results.\n */\n async listQueues(parameters: ListQueuesRequestParameters = {}): Promise {\n const action = 'ListQueues'\n\n let body: object = {}\n\n if (typeof parameters?.maxResults !== 'undefined') {\n body = { ...body, MaxResults: parameters.maxResults }\n }\n\n if (typeof parameters?.nextToken !== 'undefined') {\n body = { ...body, NextToken: parameters.nextToken }\n }\n\n if (typeof parameters?.queueNamePrefix !== 'undefined') {\n body = { ...body, QueueNamePrefix: parameters.queueNamePrefix }\n }\n\n const res = await this._sendRequest(action, body)\n\n const parsed = res.json() as JSONObject\n return {\n urls: parsed['QueueUrls'] as string[],\n nextToken: parsed?.NextToken as string,\n }\n }\n\n private _combineQueueMessageBodyAndOptions(\n messageBody: string,\n options?: SendMessageOptions\n ): object {\n let body: object = { MessageBody: messageBody }\n\n if (options === undefined) {\n return body\n }\n\n if (typeof options.messageDeduplicationId !== 'undefined') {\n body = { ...body, MessageDeduplicationId: options.messageDeduplicationId }\n }\n\n if (typeof options.messageGroupId !== 'undefined') {\n body = { ...body, MessageGroupId: options.messageGroupId }\n }\n\n if (typeof options.messageAttributes !== 'undefined') {\n const messageAttributes: Record> = {}\n\n for (const [name, attribute] of Object.entries(options.messageAttributes)) {\n const valueParameterSuffix =\n attribute.type === 'Binary' ? 'BinaryValue' : 'StringValue'\n messageAttributes[name] = {\n DataType: attribute.type,\n }\n messageAttributes[name][valueParameterSuffix] = attribute.value\n }\n\n body = { ...body, MessageAttributes: messageAttributes }\n }\n\n if (typeof options.delaySeconds !== 'undefined') {\n body = { ...body, DelaySeconds: options.delaySeconds }\n }\n\n return body\n }\n\n private async _sendRequest(\n action: SQSOperation,\n body: object\n ): Promise> {\n const signedRequest = this.signature.sign(\n {\n method: 'POST',\n endpoint: this.endpoint,\n path: '/',\n headers: {\n ...this.commonHeaders,\n [AMZ_TARGET_HEADER]: `${this.serviceVersion}.${action}`,\n },\n body: JSON.stringify(body),\n },\n {}\n )\n\n const res = await http.asyncRequest('POST', signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n\n this._handleError(action, res)\n return res\n }\n\n private _handleError(\n operation: SQSOperation,\n response: RefinedResponse\n ) {\n const errorCode: number = response.error_code\n\n if (errorCode === 0) {\n return\n }\n\n const error = response.json() as JSONObject\n\n const errorMessage: string =\n (error.Message as string) || (error.message as string) || (error.__type as string)\n\n switch (error.__type) {\n case 'InvalidSignatureException':\n throw new InvalidSignatureError(errorMessage, error.__type)\n default:\n throw new SQSServiceError(errorMessage, error.__type as string, operation)\n }\n\n return true\n }\n\n protected handleError(\n response: RefinedResponse,\n operation?: string\n ): boolean {\n const errored = super.handleError(response)\n if (!errored) {\n return false\n }\n\n const errorCode: number = response.error_code\n\n if (errorCode === 0) {\n return false\n }\n\n const error = response.json() as JSONObject\n\n const errorMessage: string =\n (error.Message as string) || (error.message as string) || (error.__type as string)\n\n switch (error.__type) {\n case 'InvalidSignatureException':\n throw new InvalidSignatureError(errorMessage, error.__type)\n default:\n throw new SQSServiceError(\n errorMessage,\n error.__type as string,\n operation as SQSOperation\n )\n }\n }\n}\n\n/**\n * An Amazon SQS message.\n */\nexport class MessageResponse {\n /**\n * A unique identifier for the message.\n * A MessageIdis considered unique across all AWS accounts for an extended period of time.\n */\n id: string\n\n /**\n * An MD5 digest of the non-URL-encoded message body string.\n */\n bodyMD5: string\n\n /**\n * Instantiates a new Message object.\n *\n * @param id\n * @param md5Ofbody\n */\n constructor(id: string, bodyMD5: string) {\n this.id = id\n this.bodyMD5 = bodyMD5\n }\n}\n\n/**\n * An Amazon SQS message Batch Response.\n */\nexport class MessageBatchResponse {\n /**\n * A list of successful messages.\n */\n successful: MessageResponse[]\n\n /**\n * A list of failed messages.\n */\n failed: SQSServiceError[]\n\n /**\n * Instantiates a new MessageBatchResponse object.\n *\n * @param successful\n * @param failed\n */\n constructor(successful: MessageResponse[], failed: SQSServiceError[]) {\n this.successful = successful\n this.failed = failed\n }\n}\n\n/**\n * SQSServiceError indicates an error occurred while interacting with the SQS API.\n */\nexport class SQSServiceError extends AWSError {\n operation: SQSOperation\n\n constructor(message: string, code: string, operation: SQSOperation) {\n super(message, code)\n this.name = 'SQSServiceError'\n this.operation = operation\n }\n}\n\n/**\n * SQSOperation describes possible SQS operations.\n */\ntype SQSOperation = 'ListQueues' | 'SendMessage' | 'SendMessageBatch'\n\nexport interface SendMessageOptions {\n /**\n * The message deduplication ID for FIFO queues\n */\n messageDeduplicationId?: string\n\n /**\n * The message group ID for FIFO queues\n */\n messageGroupId?: string\n\n /**\n * The message attributes\n */\n messageAttributes?: {\n [name: string]: { type: 'String' | 'Number' | 'Binary'; value: string }\n }\n\n /**\n * The length of time, in seconds, for which to delay a specific message.\n */\n delaySeconds?: number\n}\n\nexport interface SendMessageBatchEntry {\n messageId: string\n messageBody: string\n messageOptions?: SendMessageOptions\n}\n\nexport interface ListQueuesRequestParameters {\n /**\n * Maximum number of results to include in the response. Value range is 1 to 1000.\n */\n maxResults?: number\n /**\n * Pagination token to request the next set of results.\n */\n nextToken?: string\n /**\n * A string to use for filtering the list results. Only those queues whose name begins with the specified string are returned.\n * Queue URLs and names are case-sensitive.\n */\n queueNamePrefix?: string\n}\n\nexport interface ListQueuesResponse {\n /**\n * A list of queue URLs, up to 1,000 entries, or the value of MaxResults you sent in the request.\n */\n urls: string[]\n /**\n * Pagination token to include in the next request.\n */\n nextToken?: string\n}\n","module.exports = require(\"k6/crypto\");","module.exports = require(\"k6/html\");","module.exports = require(\"k6/http\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { JSONArray, JSONObject } from 'k6'\nimport http, { RefinedResponse, ResponseType } from 'k6/http'\n\nimport { AWSClient } from './client'\nimport { AWSConfig } from './config'\nimport { AMZ_TARGET_HEADER } from './constants'\nimport { AWSError } from './error'\nimport { HTTPHeaders, HTTPMethod } from './http'\nimport { InvalidSignatureError, SignatureV4 } from './signature'\n\n/**\n * Class allowing to interact with Amazon AWS's KMS service\n */\nexport class KMSClient extends AWSClient {\n private readonly signature: SignatureV4\n private readonly method: HTTPMethod\n private readonly commonHeaders: HTTPHeaders\n\n /**\n * Create a KMSClient\n * @param {AWSConfig} awsConfig - configuration attributes to use when interacting with AWS' APIs\n */\n constructor(awsConfig: AWSConfig) {\n super(awsConfig, 'kms')\n\n this.signature = new SignatureV4({\n service: this.serviceName,\n region: awsConfig.region,\n credentials: {\n accessKeyId: awsConfig.accessKeyId,\n secretAccessKey: awsConfig.secretAccessKey,\n sessionToken: awsConfig.sessionToken,\n },\n uriEscapePath: true,\n applyChecksum: false,\n })\n\n // All interactions with the KMS service\n // are made via the GET or POST method.\n this.method = 'POST'\n\n this.commonHeaders = {\n 'Content-Type': 'application/x-amz-json-1.1',\n }\n }\n\n /**\n * Gets a list of all the KMS keys in the caller's AWS\n * account and region.\n *\n * @returns an array of all the available keys\n */\n async listKeys(): Promise> {\n const signedRequest = this.signature.sign(\n {\n method: this.method,\n endpoint: this.endpoint,\n path: '/',\n headers: {\n ...this.commonHeaders,\n // For some reason, the base target is not kms...\n [AMZ_TARGET_HEADER]: `TrentService.ListKeys`,\n },\n body: JSON.stringify({}),\n },\n {}\n )\n\n const res = await http.asyncRequest(this.method, signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, KMSOperation.ListKeys)\n\n const json: JSONArray = res.json('Keys') as JSONArray\n return json.map((k) => KMSKey.fromJSON(k as JSONObject))\n }\n\n /**\n * GenerateDataKey returns a unique symmetric data key for use outside of AWS KMS.\n *\n * This operation returns a plaintext copy of the data key and a copy that is encrypted under a symmetric encryption KMS key that you specify.\n * The bytes in the plaintext key are random; they are not related to the caller or the KMS key.\n * You can use the plaintext key to encrypt your data outside of AWS KMS and store the encrypted data key with the encrypted data.\n *\n * To generate a data key, specify the symmetric encryption KMS key that will be used to encrypt the data key.\n * You cannot use an asymmetric KMS key to encrypt data keys.\n *\n * Used to generate data key with the KMS key defined\n * @param {string} id - Specifies the symmetric encryption KMS key that encrypts the data key. Use its key ID, key ARN, alias name, or alias ARN.\n * @param {KMKeySize} size - Specifies the length of the data key in bytes. For example, use the value 64 to generate a 512-bit data key (64 bytes is 512 bits). Default is 32, and generates a 256-bit data key.\n * @throws {KMSServiceError}\n * @throws {InvalidSignatureError}\n * @returns {KMSDataKey} - The generated data key.\n */\n async generateDataKey(\n id: string,\n size: KMSKeySize = KMSKeySize.Size256\n ): Promise {\n const signedRequest = this.signature.sign(\n {\n method: this.method,\n endpoint: this.endpoint,\n path: '/',\n headers: {\n ...this.commonHeaders,\n // For some reason, the base target is not kms...\n [AMZ_TARGET_HEADER]: `TrentService.GenerateDataKey`,\n },\n body: JSON.stringify({ KeyId: id, NumberOfBytes: size }),\n },\n {}\n )\n\n const res = await http.asyncRequest(this.method, signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, KMSOperation.GenerateDataKey)\n\n return KMSDataKey.fromJSON(res.json() as JSONObject)\n }\n\n protected handleError(response: RefinedResponse, operation?: string): boolean {\n const errored = super.handleError(response, operation);\n if (!errored) {\n return false\n }\n\n const errorCode = response.error_code\n const error = response.json() as JSONObject\n if (errorCode >= 1400 && errorCode <= 1499) {\n // In the event of certain errors, the message is not set.\n // Also, note the inconsistency in casing...\n const errorMessage: string =\n (error.Message as string) || (error.message as string) || (error.__type as string)\n\n // Handle specifically the case of an invalid signature\n if (error.__type === 'InvalidSignatureException') {\n throw new InvalidSignatureError(errorMessage, error.__type)\n }\n\n // Otherwise throw a standard service error\n throw new KMSServiceError(errorMessage, error.__type as string, operation as KMSOperation)\n }\n\n if (errorCode === 1500) {\n throw new KMSServiceError(\n 'An error occured on the server side',\n 'InternalServiceError',\n operation as KMSOperation\n )\n }\n\n return true\n }\n}\n\n/**\n * Class representing a KMS key\n */\nexport class KMSKey {\n /**\n * ARN of the key\n */\n keyArn: string\n\n /**\n * Unique identifier of the key\n */\n keyId: string\n\n constructor(keyArn: string, KeyId: string) {\n this.keyArn = keyArn\n this.keyId = KeyId\n }\n\n static fromJSON(json: JSONObject) {\n return new KMSKey(json.KeyArn as string, json.KeyId as string)\n }\n}\n\n/**\n * Class representing a data key\n */\nexport class KMSDataKey {\n /**\n * The Amazon Resource Name (key ARN) of the KMS key that encrypted the data key.\n */\n id: string\n\n /**\n * The (base64-encoded) encrypted copy of the data key.\n */\n ciphertextBlob: string\n\n /**\n * The plaintext data key.\n * Use this data key to encrypt your data outside of KMS. Then, remove it from memory as soon as possible.\n */\n plaintext: string\n\n constructor(CiphertextBlob: string, KeyId: string, Plaintext: string) {\n this.ciphertextBlob = CiphertextBlob\n this.id = KeyId\n this.plaintext = Plaintext\n }\n\n static fromJSON(json: JSONObject) {\n return new KMSDataKey(\n json.CiphertextBlob as string,\n json.KeyId as string,\n json.Plaintext as string\n )\n }\n}\n\nexport class KMSServiceError extends AWSError {\n operation: KMSOperation\n\n /**\n * Constructs a KMSServiceError\n *\n * @param {string} message - human readable error message\n * @param {string} code - A unique short code representing the error that was emitted\n * @param {string} operation - Name of the failed Operation\n */\n constructor(message: string, code: string, operation: KMSOperation) {\n super(message, code)\n this.name = 'KMSServiceError'\n this.operation = operation\n }\n}\n\n/**\n * KMSOperation defines all currently implemented KMS Service operations.\n */\nenum KMSOperation {\n GenerateDataKey = 'GenerateDataKey',\n ListKeys = 'ListKeys',\n}\n\n/**\n * KMSKeyLength describes possible key lenght values for KMS API data key operations.\n */\nenum KMSKeySize {\n Size256 = 32,\n Size512 = 64,\n}\n","import { parseHTML } from 'k6/html'\nimport http, { RefinedResponse, ResponseType } from 'k6/http'\n\nimport { AWSClient } from './client'\nimport { AWSConfig } from './config'\nimport { AWSError } from './error'\nimport { SignedHTTPRequest } from './http'\nimport { InvalidSignatureError, SignatureV4 } from './signature'\n\n/** Class allowing to interact with Amazon AWS's S3 service */\nexport class S3Client extends AWSClient {\n private readonly signature: SignatureV4\n\n /**\n * Create a S3Client\n *\n * @param {AWSConfig} awsConfig - configuration attributes to use when interacting with AWS' APIs\n */\n constructor(awsConfig: AWSConfig) {\n super(awsConfig, 's3')\n\n this.signature = new SignatureV4({\n service: this.serviceName,\n region: this.awsConfig.region,\n credentials: {\n accessKeyId: this.awsConfig.accessKeyId,\n secretAccessKey: this.awsConfig.secretAccessKey,\n sessionToken: this.awsConfig.sessionToken,\n },\n\n // S3 requires the URI path to be escaped\n uriEscapePath: false,\n\n // Signing S3 requests requires the payload to be hashed\n // and the checksum to be included in the request headers.\n applyChecksum: true,\n })\n }\n\n /**\n * Returns a list of all buckets owned by the authenticated sender of the request.\n * To use this operation, you must have the s3:ListAllMyBuckets permission.\n *\n * @return {Array.} buckets - An array of objects describing S3 buckets\n * with the following fields: name, and creationDate.\n * @throws {S3ServiceError}\n * @throws {InvalidSignatureError}\n */\n async listBuckets(): Promise> {\n const method = 'GET'\n\n const signedRequest: SignedHTTPRequest = this.signature.sign(\n {\n method: 'GET',\n endpoint: this.endpoint,\n path: '/',\n headers: {},\n },\n {}\n )\n\n const res = await http.asyncRequest(method, signedRequest.url, signedRequest.body || null, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, 'ListBuckets')\n\n const buckets: Array = []\n\n const doc = parseHTML(res.body as string)\n\n doc.find('Buckets')\n .children()\n .each((_, bucketDefinition) => {\n const bucket = {}\n\n bucketDefinition.children().forEach((child) => {\n switch (child.nodeName()) {\n case 'name':\n Object.assign(bucket, { name: child.textContent() })\n break\n case 'creationdate':\n Object.assign(bucket, {\n creationDate: Date.parse(child.textContent()),\n })\n }\n })\n\n buckets.push(bucket as S3Bucket)\n })\n\n return buckets\n }\n\n /**\n * Returns some or all (up to 1,000) of the objects in a bucket.\n *\n * @param {string} bucketName - Bucket name to list.\n * @param {string?} prefix='' - Limits the response to keys that begin with the specified prefix.\n * @return {Array.} - returns an array of objects describing S3 objects\n * with the following fields: key, lastModified, etag, size and storageClass.\n * @throws {S3ServiceError}\n * @throws {InvalidSignatureError}\n */\n async listObjects(bucketName: string, prefix?: string): Promise> {\n const method = 'GET'\n\n const signedRequest: SignedHTTPRequest = this.signature.sign(\n {\n method: method,\n endpoint: this.endpoint,\n path: encodeURI(`/${bucketName}/`),\n query: {\n 'list-type': '2',\n prefix: prefix || '',\n },\n headers: {},\n },\n {}\n )\n\n const res = await http.asyncRequest(method, signedRequest.url, signedRequest.body || null, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, 'ListObjectsV2')\n\n const objects: Array = []\n\n // Extract the objects definition from\n // the XML response\n parseHTML(res.body as string)\n .find('Contents')\n .each((_, objectDefinition) => {\n const obj = {}\n\n objectDefinition.children().forEach((child) => {\n switch (child.nodeName()) {\n case 'key':\n Object.assign(obj, { key: child.textContent() })\n break\n case 'lastmodified':\n Object.assign(obj, { lastModified: Date.parse(child.textContent()) })\n break\n case 'etag':\n Object.assign(obj, { etag: child.textContent() })\n break\n case 'size':\n Object.assign(obj, { size: parseInt(child.textContent()) })\n break\n case 'storageclass':\n Object.assign(obj, { storageClass: child.textContent() })\n }\n })\n\n objects.push(obj as S3Object)\n })\n\n return objects\n }\n /**\n * Retrieves an Object from Amazon S3.\n *\n * To use getObject, you must have `READ` access to the object.\n *\n * @param {string} bucketName - The bucket name containing the object.\n * @param {string} objectKey - Key of the object to get.\n * @return {S3Object} - returns the content of the fetched S3 Object.\n * @throws {S3ServiceError}\n * @throws {InvalidSignatureError}\n */\n async getObject(\n bucketName: string,\n objectKey: string,\n additionalHeaders: object = {}\n ): Promise {\n // Prepare request\n const method = 'GET'\n\n const signedRequest = this.signature.sign(\n {\n method: method,\n endpoint: this.endpoint,\n path: encodeURI(`/${bucketName}/${objectKey}`),\n headers: {\n ...additionalHeaders,\n },\n },\n {}\n )\n\n // If the Accept header is set to 'application/octet-stream', we want to\n // return the response as binary data.\n let responseType: ResponseType = 'text'\n if (\n 'Accept' in additionalHeaders &&\n additionalHeaders['Accept'] !== undefined &&\n additionalHeaders['Accept'] === 'application/octet-stream'\n ) {\n responseType = 'binary'\n }\n\n const res = await http.asyncRequest(method, signedRequest.url, null, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n responseType: responseType as ResponseType,\n })\n this.handleError(res, 'GetObject')\n\n return new S3Object(\n objectKey,\n Date.parse(res.headers['Last-Modified']),\n res.headers['ETag'],\n parseInt(res.headers['Content-Length']),\n\n // The X-Amz-Storage-Class header is only set if the storage class is\n // not the default 'STANDARD' one.\n (res.headers['X-Amz-Storage-Class'] ?? 'STANDARD') as StorageClass,\n\n res.body\n )\n }\n /**\n * Adds an object to a bucket.\n *\n * You must have WRITE permissions on a bucket to add an object to it.\n *\n * @param {string} bucketName - The bucket name containing the object.\n * @param {string} objectKey - Key of the object to put.\n * @param {string | ArrayBuffer} data - the content of the S3 Object to upload.\n * @throws {S3ServiceError}\n * @throws {InvalidSignatureError}\n */\n async putObject(\n bucketName: string,\n objectKey: string,\n data: string | ArrayBuffer,\n params?: PutObjectParams\n ): Promise {\n // Prepare request\n const method = 'PUT'\n\n const signedRequest = this.signature.sign(\n {\n method: method,\n endpoint: this.endpoint,\n path: encodeURI(`/${bucketName}/${objectKey}`),\n headers: {\n Host: this.endpoint.host,\n ...(params?.contentDisposition && {\n 'Content-Disposition': params.contentDisposition,\n }),\n ...(params?.contentEncoding && { 'Content-Encoding': params.contentEncoding }),\n ...(params?.contentLength && { 'Content-Length': params.contentLength }),\n ...(params?.contentMD5 && { 'Content-MD5': params.contentMD5 }),\n ...(params?.contentType && { 'Content-Type': params.contentType }),\n },\n body: data,\n },\n {}\n )\n\n const res = await http.asyncRequest(method, signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, 'PutObject')\n }\n\n /**\n * Removes the null version (if there is one) of an object and inserts a delete marker,\n * which becomes the latest version of the object.\n *\n * @param {string} bucketName - The bucket name containing the object.\n * @param {string} objectKey - Key of the object to delete.\n * @throws {S3ServiceError}\n * @throws {InvalidSignatureError}\n */\n async deleteObject(bucketName: string, objectKey: string): Promise {\n // Prepare request\n const method = 'DELETE'\n\n const signedRequest = this.signature.sign(\n {\n method: method,\n endpoint: this.endpoint,\n path: encodeURI(`/${bucketName}/${objectKey}`),\n headers: {},\n },\n {}\n )\n\n const res = await http.asyncRequest(method, signedRequest.url, signedRequest.body || null, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, 'DeleteObject')\n }\n\n /**\n * Copies an object from one bucket to another\n *\n * @param {string} sourceBucket - The source bucket name containing the object.\n * @param {string} sourceKey - Key of the source object to copy.\n * @param {string} destinationBucket - The destination bucket name containing the object.\n * @param {string} destinationKey - Key of the destination object.\n * @throws {S3ServiceError}\n * @throws {InvalidSignatureError}\n */\n async copyObject(\n sourceBucket: string,\n sourceKey: string,\n destinationBucket: string,\n destinationKey: string\n ): Promise {\n const method = 'PUT'\n\n const bucketEndpoint = this.endpoint.copy()\n bucketEndpoint.hostname = `${destinationBucket}.${this.endpoint.hostname}`\n\n const signedRequest = this.signature.sign(\n {\n method: method,\n endpoint: bucketEndpoint,\n path: encodeURI(`/${destinationKey}`),\n headers: {\n 'x-amz-copy-source': `${sourceBucket}/${sourceKey}`,\n },\n },\n {}\n )\n\n const res = await http.asyncRequest(method, signedRequest.url, signedRequest.body || null, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n\n this.handleError(res, 'CopyObject')\n }\n\n /**\n * Creates a new multipart upload for a given objectKey.\n * The uploadId returned can be used to upload parts to the object.\n *\n * @param {string} bucketName - The bucket name containing the object.\n * @param {string} objectKey - Key of the object to upload.\n * @return {S3MultipartUpload} - returns the uploadId of the newly created multipart upload.\n * @throws {S3ServiceError}\n * @throws {InvalidSignatureError}\n */\n async createMultipartUpload(bucketName: string, objectKey: string): Promise {\n const method = 'POST'\n\n const bucketEndpoint = this.endpoint.copy()\n bucketEndpoint.hostname = `${bucketName}.${this.endpoint.hostname}`\n\n const signedRequest = this.signature.sign(\n {\n method: method,\n endpoint: bucketEndpoint,\n path: encodeURI(`/${objectKey}`),\n headers: {},\n query: { uploads: '' },\n },\n {}\n )\n\n const res = await http.asyncRequest(method, signedRequest.url, signedRequest.body || null, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, 'CreateMultipartUpload')\n\n return new S3MultipartUpload(\n objectKey,\n parseHTML(res.body as string)\n .find('UploadId')\n .text()\n )\n }\n\n /**\n * Uploads a part in a multipart upload.\n * @param {string} bucketName - The bucket name containing the object.\n * @param {string} objectKey - Key of the object to upload.\n * @param {string} uploadId - The uploadId of the multipart upload.\n * @param {number} partNumber - The part number of the part to upload.\n * @param {string | ArrayBuffer} data - The content of the part to upload.\n * @return {S3Part} - returns the ETag of the uploaded part.\n * @throws {S3ServiceError}\n */\n async uploadPart(\n bucketName: string,\n objectKey: string,\n uploadId: string,\n partNumber: number,\n data: string | ArrayBuffer\n ): Promise {\n const method = 'PUT'\n\n const bucketEndpoint = this.endpoint.copy()\n bucketEndpoint.hostname = `${bucketName}.${this.endpoint.hostname}`\n\n const signedRequest = this.signature.sign(\n {\n method: method,\n endpoint: bucketEndpoint,\n path: encodeURI(`/${objectKey}`),\n headers: {},\n body: data,\n query: {\n partNumber: `${partNumber}`,\n uploadId: `${uploadId}`,\n },\n },\n {}\n )\n\n const res = await http.asyncRequest(method, signedRequest.url, signedRequest.body || null, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, 'UploadPart')\n\n return new S3Part(partNumber, res.headers['Etag'])\n }\n\n /**\n * Completes a multipart upload by assembling previously uploaded parts.\n *\n * @param {string} bucketName - The bucket name containing the object.\n * @param {string} objectKey - Key of the object to delete.\n * @param {string} uploadId - The uploadId of the multipart upload to complete.\n * @param {S3Part[]} parts - The parts to assemble.\n * @throws {S3ServiceError}\n * @throws {InvalidSignatureError}\n */\n async completeMultipartUpload(\n bucketName: string,\n objectKey: string,\n uploadId: string,\n parts: S3Part[]\n ) {\n // Prepare request\n const method = 'POST'\n const body = `${parts\n .map(\n (part) =>\n `${part.partNumber}${part.eTag}`\n )\n .join('')}`\n\n const bucketEndpoint = this.endpoint.copy()\n bucketEndpoint.hostname = `${bucketName}.${this.endpoint.hostname}`\n\n const signedRequest = this.signature.sign(\n {\n method: method,\n endpoint: bucketEndpoint,\n path: encodeURI(`/${objectKey}`),\n headers: {},\n body: body,\n query: {\n uploadId: `${uploadId}`,\n },\n },\n {}\n )\n\n const res = await http.asyncRequest(method, signedRequest.url, signedRequest.body || null, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, 'CompleteMultipartUpload')\n }\n\n /**\n * Aborts a multipart upload.\n *\n * @param {string} bucketName - The bucket name containing the object.\n * @param {string} objectKey - Key of the object to delete.\n * @param {string} uploadId - The uploadId of the multipart upload to abort.\n * @throws {S3ServiceError}\n * @throws {InvalidSignatureError}\n */\n async abortMultipartUpload(bucketName: string, objectKey: string, uploadId: string) {\n const method = 'DELETE'\n\n const bucketEndpoint = this.endpoint.copy()\n bucketEndpoint.hostname = `${bucketName}.${this.endpoint.hostname}`\n\n const signedRequest = this.signature.sign(\n {\n method: method,\n endpoint: bucketEndpoint,\n path: encodeURI(`/${objectKey}`),\n headers: {},\n query: {\n uploadId: `${uploadId}`,\n },\n },\n {}\n )\n\n const res = await http.asyncRequest(method, signedRequest.url, signedRequest.body || null, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, 'AbortMultipartUpload')\n }\n\n handleError(response: RefinedResponse, operation?: string): boolean {\n // As we are overriding the AWSClient method: call the parent class handleError method\n const errored = super.handleError(response);\n if (!errored) {\n return false;\n }\n\n // A 301 response is returned when the bucket is not found.\n // Generally meaning that either the bucket name is wrong or the\n // region is wrong.\n //\n // See: https://github.com/grafana/k6/issues/2474\n // See: https://github.com/golang/go/issues/49281\n const errorMessage: string = response.error\n if (response.status == 301 || (errorMessage && errorMessage.startsWith('301'))) {\n throw new S3ServiceError('Resource not found', 'ResourceNotFound', operation as S3Operation)\n }\n\n const awsError = AWSError.parseXML(response.body as string)\n switch (awsError.code) {\n case 'AuthorizationHeaderMalformed':\n throw new InvalidSignatureError(awsError.message, awsError.code)\n default:\n throw new S3ServiceError(awsError.message, awsError.code || 'unknown', operation as S3Operation)\n }\n }\n}\n\n/** Class representing a S3 Bucket */\nexport class S3Bucket {\n name: string\n creationDate: Date\n\n /**\n * Create an S3 Bucket\n *\n * @param {string} name - S3 bucket's name\n * @param {Date} creationDate - S3 bucket's creation date\n */\n constructor(name: string, creationDate: Date) {\n this.name = name\n this.creationDate = creationDate\n }\n}\n\n/** Class representing an S3 Object */\nexport class S3Object {\n key: string\n lastModified: number\n etag: string\n size: number\n storageClass: StorageClass\n data?: string | ArrayBuffer | null\n\n /**\n * Create an S3 Object\n *\n * @param {string} key - S3 object's key\n * @param {Date} lastModified - S3 object last modification date\n * @param {string} etag - S3 object's etag\n * @param {number} size - S3 object's size\n * @param {StorageClass} storageClass - S3 object's storage class\n * @param {string | ArrayBuffer | null} data=null - S3 Object's data\n */\n constructor(\n key: string,\n lastModified: number,\n etag: string,\n size: number,\n storageClass: StorageClass,\n data?: string | ArrayBuffer | null\n ) {\n this.key = key\n this.lastModified = lastModified\n this.etag = etag\n this.size = size\n this.storageClass = storageClass\n this.data = data\n }\n}\n\n/** Class representing a S3 Multipart Upload */\nexport class S3MultipartUpload {\n key: string\n uploadId: string\n\n /**\n * Create an S3 Multipart Upload\n * @param {string} key - S3 object's key\n * @param {string} uploadId - S3 multipart upload id\n */\n\n constructor(key: string, uploadId: string) {\n this.key = key\n this.uploadId = uploadId\n }\n}\n\n/** Class representing a S3 Part */\nexport class S3Part {\n partNumber: number\n eTag: string\n\n /**\n * Create an S3 Part\n * @param {number} partNumber - Part number\n * @param {string} eTag - Part's etag\n */\n\n constructor(partNumber: number, eTag: string) {\n this.partNumber = partNumber\n this.eTag = eTag\n }\n}\n\n/**\n * Error indicating a S3 operation failed\n *\n * Inspired from AWS official error types, as\n * described in:\n * * https://aws.amazon.com/blogs/developer/service-error-handling-modular-aws-sdk-js/\n * * https://github.com/aws/aws-sdk-js/blob/master/lib/error.d.ts\n */\nexport class S3ServiceError extends AWSError {\n operation: string\n\n /**\n * Constructs a S3ServiceError\n *\n * @param {string} message - human readable error message\n * @param {string} code - A unique short code representing the error that was emitted\n * @param {string} operation - Name of the failed Operation\n */\n constructor(message: string, code: string, operation: string) {\n super(message, code)\n this.name = 'S3ServiceError'\n this.operation = operation\n }\n}\n\n/**\n * S3Operation describes possible values for S3 API operations,\n * as defined by AWS APIs.\n */\ntype S3Operation =\n | 'ListBuckets'\n | 'ListObjectsV2'\n | 'GetObject'\n | 'PutObject'\n | 'DeleteObject'\n | 'CopyObject'\n | 'CreateMultipartUpload'\n | 'CompleteMultipartUpload'\n | 'UploadPart'\n | 'AbortMultipartUpload'\n\n/**\n * Describes the class of storage used to store a S3 object.\n */\ntype StorageClass =\n | 'STANDARD'\n | 'REDUCED_REDUNDANCY'\n | 'GLACIER'\n | 'STANDARD_IA'\n | 'INTELLIGENT_TIERING'\n | 'DEEP_ARCHIVE'\n | 'OUTPOSTS'\n | 'GLACIER_IR'\n | undefined\n\n/**\n * PutObjectParams describes the parameters that can be passed to the PutObject operation.\n */\nexport interface PutObjectParams {\n /**\n * Specifies presentational information for the object.\n *\n * For more information, see https://www.rfc-editor.org/rfc/rfc6266#section-4.\n */\n contentDisposition?: string\n\n /**\n * Specifies what content encodings have been applied to the object and thus\n * what decoding mechanisms must be applied to obtain the media-type referenced\n * by the ContentType option.\n *\n * For more information, see https://www.rfc-editor.org/rfc/rfc9110.html#field.content-encoding.\n */\n contentEncoding?: string\n\n /**\n * Size of the body in bytes. This parameter is useful when the size of the body cannot be\n * determined automatically.\n *\n * For more information, see https://www.rfc-editor.org/rfc/rfc9110.html#name-content-length.\n */\n contentLength?: string\n\n /**\n * The base64-encoded 128-bit MD5 digest of the message (without the headers) according to RFC 1864.\n * This header can be used as a message integrity check to verify that the data is the same data that\n * was originally sent.\n *\n * Although it is optional, we recommend using the Content-MD5 mechanism as an end-to-end integrity\n * check.\n */\n contentMD5?: string\n\n /**\n * A standard MIME type describing the format of the contents.\n *\n * For more information, see https://www.rfc-editor.org/rfc/rfc9110.html#name-content-type.\n */\n contentType?: string\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"https://jslib.k6.io/k6-utils/1.4.0/index.js\");","import { JSONArray, JSONObject } from 'k6'\nimport http, { RefinedResponse, ResponseType } from 'k6/http'\nimport { uuidv4 } from 'https://jslib.k6.io/k6-utils/1.4.0/index.js'\n\nimport { AWSClient } from './client'\nimport { AWSConfig } from './config'\nimport { AMZ_TARGET_HEADER } from './constants'\nimport { AWSError } from './error'\nimport { HTTPHeaders, HTTPMethod } from './http'\nimport { InvalidSignatureError, SignatureV4 } from './signature'\n\n/**\n * Class allowing to interact with Amazon AWS's SecretsManager service\n */\nexport class SecretsManagerClient extends AWSClient {\n private readonly signature: SignatureV4\n private readonly method: HTTPMethod\n private readonly commonHeaders: HTTPHeaders\n\n /**\n * Create a SecretsManagerClient\n * @param {AWSConfig} awsConfig - configuration attributes to use when interacting with AWS' APIs\n */\n constructor(awsConfig: AWSConfig) {\n super(awsConfig, 'secretsmanager')\n\n this.signature = new SignatureV4({\n service: this.serviceName,\n region: this.awsConfig.region,\n credentials: {\n accessKeyId: this.awsConfig.accessKeyId,\n secretAccessKey: this.awsConfig.secretAccessKey,\n sessionToken: this.awsConfig.sessionToken,\n },\n uriEscapePath: true,\n applyChecksum: false,\n })\n\n // All interactions with the Secrets Manager service\n // are made via the GET or POST method.\n this.method = 'POST'\n this.commonHeaders = {\n 'Content-Type': 'application/x-amz-json-1.1',\n }\n }\n\n /**\n * Returns a list of all secrets owned by the authenticated sender of the request.\n * To use this operation, you must have the secretsmanager:ListSecrets permission.\n *\n * @return {Array.} secrets - An array of objects describing Secret Manager's secrets\n * @throws {SecretsManagerServiceError}\n * @throws {InvalidSignatureError}\n */\n async listSecrets(): Promise> {\n const signedRequest = this.signature.sign(\n {\n method: this.method,\n endpoint: this.endpoint,\n path: '/',\n headers: {\n ...this.commonHeaders,\n [AMZ_TARGET_HEADER]: `${this.serviceName}.ListSecrets`,\n },\n body: JSON.stringify({}),\n },\n {}\n )\n\n const res = await http.asyncRequest(this.method, signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, SecretsManagerOperation.ListSecrets)\n const json: JSONArray = res.json('SecretList') as JSONArray\n\n return json.map((s) => Secret.fromJSON(s as JSONObject))\n }\n\n /**\n * Retrieves a secret from Amazon Sercets Manager\n *\n * @param {string} id - The ARN or name of the secret to retrieve.\n * @returns {Secret} - returns the content of the fetched Secret object.\n * @throws {SecretsManagerServiceError}\n * @throws {InvalidSignatureError}\n */\n async getSecret(id: string): Promise {\n const signedRequest = this.signature.sign(\n {\n method: this.method,\n endpoint: this.endpoint,\n path: '/',\n headers: {\n ...this.commonHeaders,\n [AMZ_TARGET_HEADER]: `${this.serviceName}.GetSecretValue`,\n },\n body: JSON.stringify({ SecretId: id }),\n },\n {}\n )\n\n const res = await http.asyncRequest(this.method, signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n\n this.handleError(res, SecretsManagerOperation.GetSecretValue)\n\n return Secret.fromJSON(res.json() as JSONObject)\n }\n\n /**\n * Creates a new secret\n *\n * Note that this method only supports string-based values at the moment.\n *\n * @param {string} name - The name of the new secret.\n * The secret name can contain ASCII letters, numbers, and the following characters: /_+=.@\n * @param {string} secret - The text data to encrypt and store in this new version of the secret.\n * @param {string} description - The description of the secret.\n * @param {string} versionID=null - Version of the secret. This value helps ensure idempotency.\n * As a default, if no versionID is provided, one will be created for you using the UUID v4\n * algorithm.\n * @param {Array.} tags=[] - A list of tags to attach to the secret. Each tag is a key and\n * value pair of strings in a JSON text string. Note that tag key names are case sensitive.\n * @returns {Secret} - returns the created secret\n * @throws {SecretsManagerServiceError}\n * @throws {InvalidSignatureError}\n */\n async createSecret(\n name: string,\n secret: string,\n description: string,\n versionID?: string,\n tags?: Array\n ): Promise {\n versionID = versionID ?? uuidv4(true)\n\n const signedRequest = this.signature.sign(\n {\n method: this.method,\n endpoint: this.endpoint,\n path: '/',\n headers: {\n ...this.commonHeaders,\n [AMZ_TARGET_HEADER]: `${this.serviceName}.CreateSecret`,\n },\n body: JSON.stringify({\n Name: name,\n Description: description,\n SecretString: secret,\n ClientRequestToken: versionID,\n Tags: tags,\n }),\n },\n {}\n )\n\n // Ensure to include the desired 'Action' in the X-Amz-Target\n // header field, as documented by the AWS API docs.\n // headers['X-Amz-Target'] = `${this.serviceName}.CreateSecret`\n\n const res = await http.asyncRequest(this.method, signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, SecretsManagerOperation.CreateSecret)\n\n return Secret.fromJSON(res.json() as JSONObject)\n }\n /**\n * Update a secret's value.\n *\n * Note that this method only support string-based values at the moment.\n *\n * @param {string} id - The ARN or name of the secret to update.\n * @param {string} secret - The text data to encrypt and store in this new version of the secret.\n * @param {} versionID=null - A unique identifier for the new version of the secret. This value helps ensure idempotency.\n * As a default, if no versionID is provided, one will be created for you using the UUID v4\n * @throws {SecretsManagerServiceError}\n * @throws {InvalidSignatureError}\n */\n async putSecretValue(id: string, secret: string, versionID?: string): Promise {\n versionID = versionID ?? uuidv4(true)\n\n const signedRequest = this.signature.sign(\n {\n method: this.method,\n endpoint: this.endpoint,\n path: '/',\n headers: {\n ...this.commonHeaders,\n [AMZ_TARGET_HEADER]: `${this.serviceName}.PutSecretValue`,\n },\n body: JSON.stringify({\n SecretId: id,\n SecretString: secret,\n ClientRequestToken: versionID,\n }),\n },\n {}\n )\n\n const res = await http.asyncRequest(this.method, signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, SecretsManagerOperation.PutSecretValue)\n\n return Secret.fromJSON(res.json() as JSONObject)\n }\n\n /**\n * Deletes a secret and all of its versions.\n *\n * You can specify a recovery window during which you can restore the secret.\n * The minimum recovery window is 7 days. The default recovery window is 30 days.\n *\n * @param {string} secretID - The ARN or name of the secret to delete.\n * @param {number} recoveryWindow - The number of days from 7 to 30 that Secrets Manager\n * waits before permanently deleting the secret.\n * @throws {SecretsManagerServiceError}\n * @throws {InvalidSignatureError}\n */\n async deleteSecret(\n id: string,\n { recoveryWindow = 30, noRecovery = false }: { recoveryWindow: number; noRecovery: boolean }\n ): Promise {\n const payload: { [key: string]: string | boolean | number } = {\n SecretId: id,\n }\n\n // noRecovery and recoveryWindow are exclusive parameters\n if (noRecovery === true) {\n payload['ForceDeleteWithoutRecovery'] = true\n } else {\n payload['RecoveryWindowInDays'] = recoveryWindow\n }\n\n const signedRequest = this.signature.sign(\n {\n method: this.method,\n endpoint: this.endpoint,\n path: '/',\n headers: {\n ...this.commonHeaders,\n [AMZ_TARGET_HEADER]: `${this.serviceName}.DeleteSecret`,\n },\n body: JSON.stringify(payload),\n },\n {}\n )\n\n const res = await http.asyncRequest(this.method, signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, SecretsManagerOperation.DeleteSecret)\n }\n\n\n protected handleError(response: RefinedResponse, operation?: string): boolean {\n const errored = super.handleError(response, operation)\n if (!errored) {\n return false\n }\n\n const errorCode = response.error_code\n const error = response.json() as JSONObject\n if (errorCode >= 1400 && errorCode <= 1499) {\n // In the event of certain errors, the message is not set.\n // Also, note the inconsistency in casing...\n const errorMessage: string =\n (error.Message as string) || (error.message as string) || (error.__type as string)\n\n // Handle specifically the case of an invalid signature\n if (error.__type === 'InvalidSignatureException') {\n throw new InvalidSignatureError(errorMessage, error.__type)\n }\n\n // Otherwise throw a standard service error\n throw new SecretsManagerServiceError(errorMessage, error.__type as string, operation as SecretsManagerOperation)\n }\n\n if (errorCode === 1500) {\n throw new SecretsManagerServiceError(\n 'An error occured on the server side',\n 'InternalServiceError',\n operation as SecretsManagerOperation\n )\n }\n\n return true\n }\n}\n\n// TODO: create a Tags type\n\n/**\n * Class representing a Secret Manager's secret\n */\nexport class Secret {\n name: string\n arn: string\n secret: string\n createdDate: number\n lastAccessedDate: number\n lastChangedDate: number\n tags: Array<{ [key: string]: string }>\n\n /**\n * Constructs a Secret Manager's Secret\n *\n * @param {string} name - The friendly name of the secret.\n * @param {string} arn - The ARN of the secret.\n * @param {number} createdDate - The date and time that this version of the secret was created.\n * @param {number} lastAccessedDate - The last date that this secret was accessed. This value is\n * truncated to midnight of the date and therefore shows only the date, not the time.\n * @param {number} lastChangedDate - The last date and time that this secret was modified in any way.\n * @param {Array.} tags - The list of user-defined tags associated with the secret.\n */\n constructor(\n name: string,\n arn: string,\n secretString: string,\n createdDate: number,\n lastAccessedDate: number,\n lastChangedDate: number,\n tags: Array<{ [key: string]: string }> = []\n ) {\n this.name = name\n this.arn = arn\n this.secret = secretString\n this.createdDate = createdDate\n this.lastAccessedDate = lastAccessedDate\n this.lastChangedDate = lastChangedDate\n this.tags = tags\n }\n\n /**\n * Parses and constructs a Secret Manager's Secret from the content\n * of a JSON response returned by the AWS service\n *\n * @param {Object} json - JSON object as returned and parsed from\n * the AWS service's API call.\n * @returns {Secret}\n */\n static fromJSON(json: JSONObject) {\n return new Secret(\n json.Name as string,\n json.ARN as string,\n json.SecretString as string,\n json.CreatedDate as number,\n json.LastAccessedDate as number,\n json.LastChangedDate as number,\n json.Tags as Array<{ [key: string]: string }>\n )\n }\n}\n\nexport class SecretsManagerServiceError extends AWSError {\n operation: SecretsManagerOperation\n\n /**\n * Constructs a SecretsManagerServiceError\n *\n * @param {string} message - human readable error message\n * @param {string} code - A unique short code representing the error that was emitted\n * @param {string} operation - Name of the failed Operation\n */\n constructor(message: string, code: string, operation: SecretsManagerOperation) {\n super(message, code)\n this.name = 'SecretsManagerServiceError'\n this.operation = operation\n }\n}\n\n/**\n * SecretsManagerOperation defines all currently implemented Secrets Manager Service operations.\n */\nenum SecretsManagerOperation {\n ListSecrets = 'ListSecrets',\n GetSecretValue = 'GetSecretValue',\n CreateSecret = 'CreateSecret',\n PutSecretValue = 'PutSecretValue',\n DeleteSecret = 'DeleteSecret',\n}\n","import { JSONObject } from 'k6'\nimport http, { RefinedResponse, ResponseType } from 'k6/http'\n\nimport { AWSClient } from './client'\nimport { AWSConfig } from './config'\nimport { AMZ_TARGET_HEADER } from './constants'\nimport { AWSError } from './error'\nimport { HTTPHeaders, HTTPMethod } from './http'\nimport { InvalidSignatureError, SignatureV4 } from './signature'\n\n/**\n * Class allowing to interact with Amazon AWS's Systems Manager service\n */\nexport class SystemsManagerClient extends AWSClient {\n private readonly signature: SignatureV4\n private readonly method: HTTPMethod\n private readonly commonHeaders: HTTPHeaders\n\n /**\n * Create a SystemsManagerClient\n * @param {AWSConfig} awsConfig - configuration attributes to use when interacting with AWS' APIs\n */\n constructor(awsConfig: AWSConfig) {\n super(awsConfig, 'ssm')\n\n // All interactions with the Systems Manager service\n // are made via the POST method.\n this.method = 'POST'\n this.commonHeaders = {\n 'Content-Type': 'application/x-amz-json-1.1',\n }\n\n this.signature = new SignatureV4({\n service: this.serviceName,\n region: awsConfig.region,\n credentials: {\n accessKeyId: awsConfig.accessKeyId,\n secretAccessKey: awsConfig.secretAccessKey,\n sessionToken: awsConfig.sessionToken,\n },\n uriEscapePath: true,\n applyChecksum: false,\n })\n }\n\n /**\n * Retrieves a parameter from Amazon Systems Manager\n *\n * @param {string} name - The ARN or name of the parameter to retrieve.\n * @param {boolean} withDecryption - whether returned secure string parameters should be decrypted.\n * @returns {SystemsManagerParameter} - returns the fetched Parameter object.\n * @throws {SystemsManagerServiceError}\n * @throws {InvalidSignatureError}\n */\n async getParameter(\n name: string,\n withDecryption: boolean = false\n ): Promise {\n const signedRequest = this.signature.sign(\n {\n method: this.method,\n endpoint: this.endpoint,\n path: '/',\n headers: {\n ...this.commonHeaders,\n [AMZ_TARGET_HEADER]: `AmazonSSM.GetParameter`,\n },\n body: JSON.stringify({ Name: name, WithDecryption: withDecryption }),\n },\n {}\n )\n\n const res = await http.asyncRequest(this.method, signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, SystemsManagerOperation.GetParameter)\n\n return SystemsManagerParameter.fromJSON(res.json() as JSONObject)\n }\n\n protected handleError(response: RefinedResponse, operation?: string): boolean {\n const errored = super.handleError(response, operation);\n if (!errored) {\n return false\n }\n\n const errorCode = response.error_code\n const error = response.json() as JSONObject\n if (errorCode >= 1400 && errorCode <= 1499) {\n // In the event of certain errors, the message is not set.\n // Also, note the inconsistency in casing...\n const errorMessage: string =\n (error.Message as string) || (error.message as string) || (error.__type as string)\n\n // Handle specifically the case of an invalid signature\n if (error.__type === 'InvalidSignatureException') {\n throw new InvalidSignatureError(errorMessage, error.__type)\n }\n\n // Otherwise throw a standard service error\n throw new SystemsManagerServiceError(errorMessage, error.__type as string, operation as SystemsManagerOperation)\n }\n\n if (errorCode === 1500) {\n throw new SystemsManagerServiceError(\n 'An error occured on the server side',\n 'InternalServiceError',\n operation as SystemsManagerOperation\n )\n }\n\n return true\n }\n}\n\n/**\n * Class representing a Systems Manager's Parameter\n */\nexport class SystemsManagerParameter {\n /**\n * The Amazon Resource Name (ARN) of the parameter.\n */\n arn: string\n\n /**\n * The data type of the parameter, such as text or aws:ec2:image.\n * The default is text.\n */\n dataType: string\n\n /**\n * Date the parameter was last changed or updated and the parameter version was created.\n */\n lastModifiedDate: number\n\n /**\n * The friendly name of the parameter.\n */\n name: string\n\n /**\n * Either the version number or the label used to retrieve the parameter value. Specify selectors by using one of the following formats:\n * parameter_name:version\n * parameter_name:label\n */\n selector: string\n\n /**\n * plies to parameters that reference information in other AWS services. SourceResult is the raw result or response from the source.\n */\n sourceResult: string\n\n /**\n * The type of parameter. Valid values include the following: String, StringList, and SecureString.\n */\n type: string\n\n /**\n * The parameter value.\n */\n value: string\n\n /**\n * The parameter version.\n */\n version: number\n\n /**\n * Constructs a Systems Manager's Parameter\n *\n * @param {string} arn - The Amazon Resource Name (ARN) of the parameter.\n * @param {string} dataType - The data type of the parameter, such as text or aws:ec2:image. The default is text.\n * @param {number} lastModifiedDate - Date the parameter was last changed or updated and the parameter version was created.\n * @param {string} name - The friendly name of the parameter.\n * @param {string} selector - Either the version number or the label used to retrieve the parameter value. Specify selectors by using one of the following formats:\n * parameter_name:version\n * parameter_name:label\n * @param {string} sourceResult - Applies to parameters that reference information in other AWS services. SourceResult is the raw result or response from the source.\n * @param {string} type - The type of parameter. Valid values include the following: String, StringList, and SecureString.\n * @param {string} value - The parameter value.\n * @param {number} version - The parameter version.\n */\n constructor(\n arn: string,\n dataType: string,\n lastModifiedDate: number,\n name: string,\n selector: string,\n sourceResult: string,\n type: string,\n value: string,\n version: number\n ) {\n this.arn = arn\n this.dataType = dataType\n this.lastModifiedDate = lastModifiedDate\n this.name = name\n this.selector = selector\n this.sourceResult = sourceResult\n this.type = type\n this.value = value\n this.version = version\n }\n\n /**\n * Parses and constructs a Systems Manager's Parameter from the content\n * of a JSON response returned by the AWS service\n *\n * @param {Object} json - JSON object as returned and parsed from\n * the AWS service's API call.\n * @returns {SystemsManagerParameter}\n */\n static fromJSON(json: JSONObject): SystemsManagerParameter {\n const parameter = json.Parameter as JSONObject\n\n return new SystemsManagerParameter(\n parameter.ARN as string,\n parameter.DataType as string,\n parameter.LastModifiedDate as number,\n parameter.Name as string,\n parameter.Selector as string,\n parameter.SourceResult as string,\n parameter.Type as string,\n parameter.Value as string,\n parameter.Version as number\n )\n }\n}\n\nexport class SystemsManagerServiceError extends AWSError {\n operation: SystemsManagerOperation\n\n /**\n * Constructs a SystemsManagerServiceError\n *\n * @param {string} message - human readable error message\n * @param {string} code - A unique short code representing the error that was emitted\n * @param {SystemsManagerOperation} operation - Name of the failed Operation\n */\n constructor(message: string, code: string, operation: SystemsManagerOperation) {\n super(message, code)\n this.name = 'SystemsManagerServiceError'\n this.operation = operation\n }\n}\n\n/**\n * SystemsManagerOperation defines all currently implemented Systems Manager operations.\n */\nenum SystemsManagerOperation {\n GetParameter = 'GetParameter',\n}\n","import http, { RefinedResponse, ResponseType } from 'k6/http'\n\nimport { AWSClient } from './client'\n\nimport { AWSConfig } from './config'\nimport { AMZ_TARGET_HEADER } from './constants'\nimport { AWSError } from './error'\nimport { JSONObject } from './json'\nimport { HTTPHeaders } from './http'\nimport { InvalidSignatureError, SignatureV4 } from './signature'\n\n/**\nThis API is based on\nhttps://docs.aws.amazon.com/kinesis/latest/APIReference/API_Operations.html\n*/\n\n/**\n * Allows interacting with the Kinesis API.\n */\nexport class KinesisClient extends AWSClient {\n private readonly signature: SignatureV4\n private readonly commonHeaders: HTTPHeaders\n private readonly serviceVersion: string\n\n /**\n * A constructor function that creates a new instance of the Kinesis class.\n * @param {AWSConfig} awsConfig - AWSConfig - This is the configuration object that is passed to\n * the constructor.\n * @returns A Proxy object.\n */\n constructor(awsConfig: AWSConfig) {\n super(awsConfig, 'kinesis')\n\n this.serviceVersion = 'Kinesis_20131202'\n\n this.signature = new SignatureV4({\n service: this.serviceName,\n region: this.awsConfig.region,\n credentials: {\n accessKeyId: this.awsConfig.accessKeyId,\n secretAccessKey: this.awsConfig.secretAccessKey,\n sessionToken: this.awsConfig.sessionToken,\n },\n uriEscapePath: false,\n applyChecksum: true,\n })\n\n this.commonHeaders = {\n 'Content-Type': 'application/x-amz-json-1.1',\n }\n }\n\n /**\n * Creates a new Kinesis stream with the specified name and options.\n *\n * @param {string} streamName - The name of the stream to create.\n * @param {{\n * shardCount?: number;\n * streamModeDetails?: {\n * streamMode: StreamMode;\n * };\n * }} [options={}] - An optional object containing configuration options for the stream.\n * @param {number} [options.shardCount] - The number of shards for the stream. If not provided, the default value will be used.\n * @param {{streamMode: StreamMode}} [options.streamModeDetails] - An optional object containing the stream mode details.\n * @param {StreamMode} [options.streamModeDetails.streamMode] - The mode of the stream. If not provided, the default mode will be used.\n *\n * @throws {Error} Throws an error if the stream creation request fails.\n * @returns {void}\n */\n async createStream(\n streamName: string,\n options: { shardCount?: number; streamModeDetails?: { streamMode: StreamMode } } = {}\n ): Promise {\n const body = {\n StreamName: streamName,\n ...(options.shardCount && { ShardCount: options.shardCount }),\n ...(options.streamModeDetails && { StreamMode: options.streamModeDetails.streamMode }),\n }\n\n await this._send_request('CreateStream', body)\n }\n\n /**\n * Deletes a Kinesis stream with the specified parameters.\n *\n * @param {string} streamName - The name of the stream to delete.\n * @param {{\n * streamARN?: string;\n * enforceConsumerDeletion?: boolean;\n * }} [parameters={}] - An optional object containing configuration options for the stream deletion.\n * @param {string} [parameters.streamARN] - The Amazon Resource Name (ARN) of the stream. If not provided, the ARN will be derived from the stream name.\n * @param {boolean} [parameters.enforceConsumerDeletion] - Whether to enforce the deletion of all registered consumers before deleting the stream. Defaults to false.\n *\n * @throws {Error} Throws an error if the stream deletion request fails.\n * @returns {void}\n */\n async deleteStream(\n streamName: string,\n parameters: { streamARN?: string; enforceConsumerDeletion?: boolean } = {}\n ): Promise {\n const body = {\n StreamName: streamName,\n ...(parameters.streamARN && { StreamARN: parameters.streamARN }),\n ...(parameters.enforceConsumerDeletion && {\n EnforceConsumerDeletion: parameters.enforceConsumerDeletion,\n }),\n }\n\n await this._send_request('DeleteStream', body)\n }\n\n /**\n * Returns a list of Kinesis streams with the specified parameters.\n *\n * @param {{\n * exclusiveStartStreamName?: string;\n * limit?: number;\n * nextToken?: string;\n * }} [parameters={}] - An optional object containing configuration options for listing the streams.\n * @param {string} [parameters.exclusiveStartStreamName] - The name of the stream to start listing from. If not provided, the listing starts from the beginning.\n * @param {number} [parameters.limit] - The maximum number of streams to list. If not provided, the default value will be used.\n * @param {string} [parameters.nextToken] - A token to paginate the list of streams. If not provided, the first page will be returned.\n *\n * @throws {Error} Throws an error if the list streams request fails.\n * @returns {Partial} A partial of the ListStreamsResponse class.\n */\n async listStreams(\n parameters: {\n exclusiveStartStreamName?: string\n limit?: number\n nextToken?: string\n } = {}\n ): Promise {\n const body = {\n ...(parameters.exclusiveStartStreamName && {\n ExclusiveStartStreamName: parameters.exclusiveStartStreamName,\n }),\n ...(parameters.limit && { Limit: parameters.limit }),\n ...(parameters.nextToken && { NextToken: parameters.nextToken }),\n }\n\n const res = await this._send_request('ListStreams', body)\n return ListStreamsResponse.fromJson(res?.json() as JSONObject)\n }\n\n /**\n * Sends multiple records to a Kinesis stream in a single request.\n *\n * @param {string} streamName - The name of the stream to put records into.\n * @param {PutRecordsRequestEntry[]} records - An array of records to put into the stream.\n *\n * @throws {Error} Throws an error if the put records request fails.\n * @returns {Partial} A partial of the PutRecordsResponse class.\n */\n async putRecords(\n records: PutRecordsRequestEntry[],\n parameters: { streamName?: string; streamARN?: string } = {}\n ): Promise {\n if (!parameters.streamName && !parameters.streamARN) {\n throw new Error('Either streamName or streamARN must be provided')\n }\n\n const body = {\n Records: records,\n ...(parameters.streamName && { StreamName: parameters.streamName }),\n ...(parameters.streamARN && { StreamARN: parameters.streamARN }),\n }\n\n const res = await this._send_request('PutRecords', body)\n return PutRecordsResponse.fromJson(res?.json() as JSONObject)\n }\n\n /**\n * Retrieves records from a Kinesis stream.\n *\n * @param {string} shardIterator - The shard iterator to start retrieving records from.\n * @param {number} [limit] - The maximum number of records to return. If not provided, the default value will be used.\n *\n * @throws {Error} Throws an error if the get records request fails.\n * @returns {Partial} A partial of the GetRecordsResponse class.\n */\n async getRecords(\n shardIterator: string,\n parameters: { limit?: number; streamARN?: string } = {}\n ): Promise {\n const body = {\n ShardIterator: shardIterator,\n ...(parameters.limit && { Limit: parameters.limit }),\n ...(parameters.streamARN && { StreamARN: parameters.streamARN }),\n }\n\n const res = await this._send_request('GetRecords', body)\n return GetRecordsResponse.fromJson(res?.json() as JSONObject)\n }\n\n /**\n * Lists the shards in a Kinesis stream.\n *\n * @param {string} streamName - The name of the stream to list shards from.\n * @param {{\n * nextToken?: string;\n * maxResults?: number;\n * }} [parameters={}] - An optional object containing configuration options for listing shards.\n * @param {string} [parameters.nextToken] - A token to specify where to start paginating the shard list. If not provided, the first page will be returned.\n * @param {number} [parameters.maxResults] - The maximum number of shards to return. If not provided, the default value will be used.\n *\n * @throws {Error} Throws an error if the list shards request fails.\n * @returns {ListShardsResponse} A ListShardsResponse class instance.\n */\n async listShards(\n streamName: string,\n parameters: { nextToken?: string; maxResults?: number } = {}\n ): Promise {\n const body = {\n StreamName: streamName,\n ...(parameters.nextToken && { NextToken: parameters.nextToken }),\n ...(parameters.maxResults && {\n MaxResults: parameters.maxResults,\n }),\n }\n\n const res = await this._send_request('ListShards', body)\n return ListShardsResponse.fromJson(res?.json() as JSONObject)\n }\n\n /**\n * Retrieves a shard iterator for the specified shard in a Kinesis stream.\n *\n * @param {string} streamName - The name of the stream.\n * @param {string} shardId - The shard ID for which to get the iterator.\n * @param {string} shardIteratorType - The shard iterator type. One of 'AT_SEQUENCE_NUMBER', 'AFTER_SEQUENCE_NUMBER', 'TRIM_HORIZON', 'LATEST', or 'AT_TIMESTAMP'.\n * @param {{\n * startingSequenceNumber?: string;\n * timestamp?: number;\n * }} [parameters={}] - An optional object containing configuration options for the shard iterator.\n * @param {string} [parameters.startingSequenceNumber] - The sequence number to start with when using 'AT_SEQUENCE_NUMBER' or 'AFTER_SEQUENCE_NUMBER' iterator types.\n * @param {number} [parameters.timestamp] - The timestamp to start with when using the 'AT_TIMESTAMP' iterator type.\n *\n * @throws {Error} Throws an error if the get shard iterator request fails.\n * @returns {string} The next position in the shard from which to start sequentially reading data records. If set to null, the shard has been closed and the requested iterator does not return any more data.\n */\n async getShardIterator(\n streamName: string,\n shardId: string,\n shardIteratorType: ShardIteratorKind,\n parameters: { startingSequenceNumber?: string; timestamp?: number } = {}\n ): Promise {\n const body = {\n StreamName: streamName,\n ShardId: shardId,\n ShardIteratorType: shardIteratorType,\n ...(parameters.startingSequenceNumber && {\n StartingSequenceNumber: parameters.startingSequenceNumber,\n }),\n ...(parameters.timestamp && { Timestamp: parameters.timestamp }),\n }\n\n const res = await this._send_request('GetShardIterator', body)\n return GetShardIteratorResponse.fromJson(res?.json() as JSONObject)\n }\n\n private async _send_request(\n action: string,\n body: unknown\n ): Promise> {\n const signedRequest = this.signature.sign(\n {\n method: 'POST',\n endpoint: this.endpoint,\n path: '/',\n headers: {\n ...this.commonHeaders,\n [AMZ_TARGET_HEADER]: `${this.serviceVersion}.${action}`,\n },\n body: JSON.stringify(body),\n },\n {}\n )\n\n const res = await http.asyncRequest('POST', signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n\n this.handleError(res, action)\n return res\n }\n\n\n protected handleError(response: RefinedResponse, operation?: string): boolean {\n const errored = super.handleError(response, operation);\n if (!errored) {\n return false\n }\n\n const errorCode = response.error_code\n const error = response.json() as JSONObject\n if (errorCode >= 1400 && errorCode <= 1499) {\n // In the event of certain errors, the message is not set.\n // Also, note the inconsistency in casing...\n const errorMessage: string =\n (error.Message as string) || (error.message as string) || (error.__type as string)\n\n // Handle specifically the case of an invalid signature\n if (error.__type === 'InvalidSignatureException') {\n throw new InvalidSignatureError(errorMessage, error.__type)\n }\n\n // Otherwise throw a standard service error\n throw new KinesisServiceError(errorMessage, error.__type as string, operation || 'Unknown')\n }\n\n if (errorCode === 1500) {\n throw new KinesisServiceError(\n 'An error occured on the server side',\n 'InternalServiceError',\n operation || 'Unknown'\n )\n }\n\n return true\n }\n}\n\n/* `KinesisServiceError` is a subclass of `AWSError` that adds an `operation` property */\nexport class KinesisServiceError extends AWSError {\n operation: string\n\n /**\n * Constructs a KinesisServiceError\n *\n * @param {string} message - human readable error message\n * @param {string} code - A unique short code representing the error that was emitted\n * @param {string} operation - Name of the failed Operation\n */\n constructor(message: string, code: string, operation: string) {\n super(message, code)\n this.name = 'KinesisServiceError'\n this.operation = operation\n }\n}\n\n/**\n * Describes the options for a Kinesis stream.\n */\ntype StreamMode = 'PROVISIONED' | 'ON_DEMAND'\n\n/**\n * Determines how the shard iterator is used to start reading data records from the shard.\n */\nexport type ShardIteratorKind =\n | 'AT_SEQUENCE_NUMBER'\n | 'AFTER_SEQUENCE_NUMBER'\n | 'TRIM_HORIZON'\n | 'LATEST'\n | 'AT_TIMESTAMP'\n\n/**\n * Describes the status of a Kinesis data stream.\n */\nexport type StreamStatus = 'CREATING' | 'DELETING' | 'ACTIVE' | 'UPDATING'\n\nexport type StreamModeDetails = {\n /**\n * Specifies the capacity mode to which you want to set your data stream.\n */\n SteamMode: 'PROVISIONED' | 'ON_DEMAND'\n}\n\nexport class ListStreamsResponse {\n /**\n * Indicates whether there are more streams available to list.\n */\n hasMoreStreams: boolean\n\n /**\n * The token that identifies which batch of results you can retrieve.\n */\n nextToken?: string\n\n /**\n * The names of the streams that are associated with the AWS account making the ListStreams request.\n */\n streamNames: string[]\n\n /**\n * A list of StreamSummary objects.\n */\n streamSummaries: StreamSummary[]\n\n constructor(\n HasMoreStreams: boolean,\n NextToken: string,\n StreamNames: string[],\n StreamSummaries: StreamSummary[]\n ) {\n this.hasMoreStreams = HasMoreStreams\n this.nextToken = NextToken\n this.streamNames = StreamNames\n this.streamSummaries = StreamSummaries\n }\n\n static fromJson(result: JSONObject): ListStreamsResponse {\n const {\n HasMoreStreams = false,\n NextToken = '',\n StreamNames = [],\n StreamSummaries = [],\n } = result\n\n return new ListStreamsResponse(\n HasMoreStreams as boolean,\n NextToken as string,\n StreamNames as string[],\n (StreamSummaries as JSONObject[])?.map(StreamSummary.fromJson) as StreamSummary[]\n )\n }\n}\n\n/**\n * Summarizes a Stream\n */\nexport class StreamSummary {\n /**\n * The Amazon Resource Name (ARN) for the stream.\n */\n streamARN: string\n\n /**\n * The time at which the stream was created.\n */\n streamCreationTimestamp: number\n\n /**\n * Specify the capacity mode to which you want to set your data stream.\n */\n streamModeDetails: StreamModeDetails\n\n /**\n * The name of the stream.\n */\n streamName: string\n\n /**\n * The current status of the stream being described.\n */\n streamStatus: StreamStatus\n\n constructor(\n StreamARN: string,\n StreamCreationTimestamp: number,\n StreamMode: StreamModeDetails,\n StreamName: string,\n StreamStatus: StreamStatus\n ) {\n this.streamARN = StreamARN\n this.streamCreationTimestamp = StreamCreationTimestamp\n this.streamModeDetails = StreamMode\n this.streamName = StreamName\n this.streamStatus = StreamStatus\n }\n\n static fromJson(summary: JSONObject): StreamSummary {\n const {\n StreamARN = '',\n StreamCreationTimestamp = 0,\n StreamModeDetails = {},\n StreamName = '',\n StreamStatus = '',\n } = summary\n\n return new StreamSummary(\n StreamARN as string,\n StreamCreationTimestamp as number,\n StreamModeDetails as StreamModeDetails,\n StreamName as string,\n StreamStatus as StreamStatus\n )\n }\n}\n\n/**\n * Represents the output for PutRecords.\n */\nexport interface PutRecordsRequestEntry {\n /**\n * The data blob to put into the record, which is base64-encoded when the blob is serialized.\n */\n Data: string | ArrayBuffer\n\n /**\n * Determines which share in the stream the data record is assigned to.\n */\n PartitionKey: string\n}\n\n// Response class for PutRecords API\nexport class PutRecordsResponse {\n /**\n * The encryption type used on the records. This parameter can be one of the following values:\n * - NONE: Do not encrypt the records.\n * - KMS: Use server-side encryption on the records using a customer-managed AWS KMS key.\n */\n encryptionType: EncryptionType\n\n /**\n * The number of unsuccessfully processed records in a PutRecords request.\n */\n failedRecordCount: number\n\n /**\n * An array of successfully and unsuccessfully processed record results.\n */\n records: PutRecordsResultEntry[]\n\n constructor(\n encryptionType: 'NONE' | 'KMS',\n failedRecordCount: number,\n records: PutRecordsResultEntry[]\n ) {\n this.encryptionType = encryptionType\n this.failedRecordCount = failedRecordCount\n this.records = records\n }\n\n static fromJson(json: JSONObject): PutRecordsResponse {\n const { EncryptionType = 'NONE', FailedRecordCount = 0, Records = [] } = json\n const records = (Records as JSONObject[]).map(PutRecordsResultEntry.fromJson)\n\n return new PutRecordsResponse(\n EncryptionType as EncryptionType,\n FailedRecordCount as number,\n records\n )\n }\n}\n\ntype EncryptionType = 'NONE' | 'KMS'\n\n/**\n * Represents the result of an individual record from a PutRecords request.\n */\nexport class PutRecordsResultEntry {\n /**\n * The sequence number for an individual record result.\n */\n sequenceNumber: string\n\n /**\n * The shard ID for an individual record result.\n */\n shardId: string\n\n constructor(sequenceNumber: string, shardId: string) {\n this.sequenceNumber = sequenceNumber\n this.shardId = shardId\n }\n\n static fromJson(json: JSONObject): PutRecordsResultEntry {\n return new PutRecordsResultEntry(json.SequenceNumber as string, json.ShardId as string)\n }\n}\n\n/**\n * Represents the response format of the GetRecords operation.\n */\nexport class GetRecordsResponse {\n /**\n * The next position in the shard from which to start sequentially reading data records.\n */\n nextShardIterator: string\n\n /**\n * The data records retrieved from the shard.\n */\n records: Record[]\n\n /**\n * The number of milliseconds the GetRecords response is from the\n * tip of the stream, indicating how far behind current time the\n * consumer is.\n *\n * A value of zero indicates that record processing is caught\n * up, and there are no new records to process at this moment.\n */\n millisBehindLatest: number\n\n constructor(nextShardIterator: string, records: Record[], millisBehindLatest: number) {\n this.nextShardIterator = nextShardIterator\n this.records = records\n this.millisBehindLatest = millisBehindLatest\n }\n\n static fromJson(json: JSONObject): GetRecordsResponse {\n const { NextShardIterator = '', Records = [], MillisBehindLatest = 0 } = json\n const records = (Records as JSONObject[]).map(Record.fromJson)\n\n return new GetRecordsResponse(\n NextShardIterator as string,\n records as Record[],\n MillisBehindLatest as number\n )\n }\n}\n\n/**\n * The unit of data of the Kinesis data stream, which is composed of a sequence\n * number, a partition key, and a data blob.\n */\nclass Record {\n /**\n * The data blob.\n */\n data: string | ArrayBuffer\n\n /**\n * Identifies which shard in the stream the data record is assigned to.\n */\n partitionKey: string\n\n /**\n * The unique identifier of the record in the stream.\n */\n sequenceNumber: string\n\n constructor(data: string | ArrayBuffer, partitionKey: string, sequenceNumber: string) {\n this.data = data\n this.partitionKey = partitionKey\n this.sequenceNumber = sequenceNumber\n }\n\n static fromJson(json: JSONObject): Record {\n return new Record(\n json.Data as string | ArrayBuffer,\n json.PartitionKey as string,\n json.SequenceNumber as string\n )\n }\n}\n\n// Response class for ListShards API\nexport class ListShardsResponse {\n /**\n * An array of JSON objects.\n *\n * Each object represents one shard and specifies the IDs of the shard, the\n * shard's parent, and the shard that's adjacent to the shard's parent.\n */\n shards: Shard[]\n\n /**\n * When the number of shards in the data stream is greater than the\n * default value for the MaxResults parameter, or if you explicitly specify\n * a value for MaxResults that is less than the number of shards in the data\n * stream, the response includes a pagination token named NextToken.\n */\n nextToken?: string\n\n constructor(shards: Shard[], nextToken?: string) {\n this.shards = shards\n this.nextToken = nextToken\n }\n\n static fromJson(json: JSONObject): ListShardsResponse {\n const { Shards = [], NextToken } = json\n const shards = (Shards as JSONObject[]).map(Shard.fromJson)\n\n return new ListShardsResponse(shards, NextToken as string | undefined)\n }\n}\n\n/**\n * A uniquely identified group of data records in a Kinesis data stream.\n */\nexport class Shard {\n /**\n * The unique identifier of the shard within the stream.\n */\n id: string\n\n /**\n * The shard ID of the shard's parent.\n */\n parentShardId?: string\n\n /**\n * The shard ID of the shard adjacent to the shard's parent.\n */\n adjacentParentShardId?: string\n\n /**\n * The range of possible hash key values for the shard, which is a set of ordered contiguous positive integers.\n */\n hashKeyRange: HashKeyRange\n\n sequenceNumberRange: SequenceNumberRange\n\n constructor(\n id: string,\n hashKeyRange: HashKeyRange,\n sequenceNumberRange: SequenceNumberRange,\n parentShardId?: string,\n adjacentParentShardId?: string\n ) {\n this.id = id\n this.parentShardId = parentShardId\n this.adjacentParentShardId = adjacentParentShardId\n this.hashKeyRange = hashKeyRange\n this.sequenceNumberRange = sequenceNumberRange\n }\n\n static fromJson(json: JSONObject): Shard {\n return new Shard(\n json.ShardId as string,\n json.HashKeyRange as unknown as HashKeyRange,\n json.SequenceNumberRange as unknown as SequenceNumberRange,\n json.ParentShardId as string | undefined,\n json.AdjacentParentShardId as string | undefined\n )\n }\n}\n\n/**\n * Describes the range of possible hash key values for the shard, which is\n * a set of ordered contiguous positive integers.\n */\nexport interface HashKeyRange {\n /**\n * The starting hash key of the hash key range.\n */\n startingHashKey: string\n\n /**\n * The ending hash key of the hash key range.\n */\n endingHashKey: string\n}\n\n/**\n * The range of possible sequence numbers for the shard.\n */\nexport interface SequenceNumberRange {\n /**\n * The ending sequence number for the range.\n *\n * Shards that are in the OPEN state have an ending sequence number of null.\n */\n endingSequenceNumber?: string\n\n /**\n * The starting sequence number for the range.\n */\n startingSequenceNumber: string\n}\n\n/**\n * Describes a shard iterator response.\n */\nclass GetShardIteratorResponse {\n /**\n * The position in the shard from which to start reading data records sequentially.\n */\n shardIterator: string\n\n constructor(shardIterator: string) {\n this.shardIterator = shardIterator\n }\n\n static fromJson(json: JSONObject): GetShardIteratorResponse {\n return new GetShardIteratorResponse(json.ShardIterator as string)\n }\n}\n","import http, { RefinedResponse, ResponseType } from 'k6/http'\n\nimport { AWSClient } from './client'\nimport { AWSConfig } from './config'\nimport { AWSError } from './error'\nimport { JSONObject } from './json'\nimport { InvalidSignatureError, SignatureV4 } from './signature'\nimport { AMZ_TARGET_HEADER } from './constants'\nimport { HTTPHeaders, HTTPMethod } from './http'\n\n/**\n * Class allowing to interact with Amazon AWS's Event Bridge service\n */\nexport class EventBridgeClient extends AWSClient {\n private readonly signature: SignatureV4\n private readonly method: HTTPMethod\n private readonly commonHeaders: HTTPHeaders\n\n constructor(awsConfig: AWSConfig) {\n super(awsConfig, 'events')\n\n this.signature = new SignatureV4({\n service: this.serviceName,\n region: this.awsConfig.region,\n credentials: {\n accessKeyId: this.awsConfig.accessKeyId,\n secretAccessKey: this.awsConfig.secretAccessKey,\n sessionToken: this.awsConfig.sessionToken,\n },\n uriEscapePath: true,\n applyChecksum: false,\n })\n\n this.method = 'POST'\n this.commonHeaders = {\n 'Content-Type': 'application/x-amz-json-1.1',\n }\n }\n\n /**\n * Sends custom events to Amazon EventBridge so that they can be matched to rules.\n *\n * @param {PutEventsInput} input - The input for the PutEvents operation.\n * @throws {EventBridgeServiceError}\n * @throws {InvalidSignatureError}\n */\n async putEvents(input: PutEventsInput) {\n const parsedEvent = {\n ...input,\n Entries: input.Entries.map((entry) => ({\n ...entry,\n Detail: JSON.stringify(entry.Detail),\n })),\n }\n\n const signedRequest = this.signature.sign(\n {\n method: this.method,\n endpoint: this.endpoint,\n path: '/',\n headers: {\n ...this.commonHeaders,\n [AMZ_TARGET_HEADER]: `AWSEvents.PutEvents`,\n },\n body: JSON.stringify(parsedEvent),\n },\n {}\n )\n\n const res = await http.asyncRequest(this.method, signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, EventBridgeOperation.PutEvents)\n }\n\n\n protected handleError(response: RefinedResponse, operation?: string): boolean {\n const errored = super.handleError(response, operation);\n if (!errored) {\n return false\n }\n\n const errorCode = response.error_code\n const error = response.json() as JSONObject\n if (errorCode >= 1400 && errorCode <= 1499) {\n // In the event of certain errors, the message is not set.\n // Also, note the inconsistency in casing...\n const errorMessage: string =\n (error.Message as string) || (error.message as string) || (error.__type as string)\n\n // Handle specifically the case of an invalid signature\n if (error.__type === 'InvalidSignatureException') {\n throw new InvalidSignatureError(errorMessage, error.__type)\n }\n\n // Otherwise throw a standard service error\n throw new EventBridgeServiceError(errorMessage, error.__type as string, operation as EventBridgeOperation)\n }\n\n if (errorCode === 1500) {\n throw new EventBridgeServiceError(\n 'An error occured on the server side',\n 'InternalServiceError',\n operation as EventBridgeOperation\n )\n }\n\n return true\n }\n}\n\nenum EventBridgeOperation {\n PutEvents = 'PutEvents',\n}\n\n/**\n * Represents an event to be submitted.\n *\n * @typedef {Object} PutEventEntry\n *\n * @property {string} Detail - A valid serialized JSON object. There is no other schema imposed. The JSON object may contain fields and nested sub-objects.\n * @property {string} DetailType - Free-form string, with a maximum of 128 characters, used to decide what fields to expect in the event detail.\n * @property {string} EventBusName - The name or ARN of the event bus to receive the event. Only the rules that are associated with this event bus are used to match the event. If you omit this, the default event bus is used.\n * @property {string[]} Resources - AWS resources, identified by Amazon Resource Name (ARN), which the event primarily concerns. Any number, including zero, may be present.\n * @property {string} Source - The source of the event.\n */\ninterface PutEventEntry {\n Source: string\n Detail: JSONObject\n DetailType: string\n EventBusName?: string\n Resources?: [string]\n}\n\n/**\n * Represents the input for a put events operation.\n *\n * @typedef {Object} PutEventsInput\n *\n * @property {string} [EndpointId] - The optional URL subdomain of the endpoint.\n * @property {PutEventEntry[]} Entries - An array of entries that defines an event in your system.\n */\ninterface PutEventsInput {\n EndpointId?: string\n Entries: PutEventEntry[]\n}\n\nexport class EventBridgeServiceError extends AWSError {\n operation: EventBridgeOperation\n\n /**\n * Constructs a EventBridgeServiceError\n *\n * @param {string} message - human readable error message\n * @param {string} code - A unique short code representing the error that was emitted\n * @param {string} operation - Name of the failed Operation\n */\n constructor(message: string, code: string, operation: EventBridgeOperation) {\n super(message, code)\n this.name = 'EventBridgeServiceError'\n this.operation = operation\n }\n}\n"],"names":["AWSClient","awsConfig","serviceName","_classCallCheck","_defineProperty","responseType","this","undefined","endpoint","_endpoint","key","get","Endpoint","concat","region","set","value","response","operation","status","errorCode","error_code","errorMessage","error","GeneralErrorKind","GenericError","NonTCPNetworkError","InvalidURL","HTTPRequestTimeout","GeneralError","DNSErrorKind","GenericDNSError","NoIPFound","BlacklistedIP","BlacklistedHostname","DNSError","TCPErrorKind","GenericTCPError","BrokenPipeOnWrite","UnknownTCPError","GeneralTCPDialError","DialTimeoutError","DialConnectionRefused","DialUnknownError","ResetByPeer","TCPError","TLSErrorKind","GeneralTLSError","UnknownAuthority","CertificateHostnameMismatch","TLSError","HTTP2ErrorKind","GenericHTTP2Error","GeneralHTTP2GoAwayError","HTTP2Error","AWSConfig","options","InvalidAWSConfigError","accessKeyId","length","secretAccessKey","sessionToken","_createClass","__ENV","AWS_REGION","AWS_ACCESS_KEY_ID","AWS_SECRET_ACCESS_KEY","AWS_SESSION_TOKEN","_Error","message","_callSuper","_inherits","_wrapNativeSuper","Error","AMZ_ALGORITHM_QUERY_PARAM","AMZ_CREDENTIAL_QUERY_PARAM","AMZ_DATE_QUERY_PARAM","AMZ_EXPIRES_QUERY_PARAM","AMZ_SIGNATURE_QUERY_PARAM","AMZ_SIGNED_HEADERS_QUERY_PARAM","AMZ_TOKEN_QUERY_PARAM","AMZ_CONTENT_SHA256_HEADER","AMZ_DATE_HEADER","toLowerCase","AMZ_SIGNATURE_HEADER","AMZ_TARGET_HEADER","AMZ_TOKEN_HEADER","AUTHORIZATION_HEADER","GENERATED_HEADERS","HOST_HEADER","ALWAYS_UNSIGNABLE_HEADERS","authorization","connection","expect","from","pragma","referer","te","trailer","upgrade","KEY_TYPE_IDENTIFIER","SIGNING_ALGORITHM_IDENTIFIER","MAX_PRESIGNED_TTL","EMPTY_SHA256","UNSIGNED_PAYLOAD","completeUrl","startsWith","DEFAULT_PROTOCOL","protocolMatch","match","hostnameWithPort","_slicedToArray","replace","split","_protocol","slice","_hostname","_port","parseInt","href","_value$split2","hostname","port","protocol","host","AWSError","code","_this","name","xmlDocument","doc","parseHTML","find","text","headers","json","Message","__type","parseXML","body","NetworkError","_Error2","_this2","ErrorMessages","_NetworkError2","_NetworkError3","_NetworkError4","_NetworkError5","_NetworkError6","_ErrorMessages","hasHeader","soughtHeader","_i","_Object$keys","Object","keys","SignatureV4","_ref","service","credentials","uriEscapePath","applyChecksum","request","arguments","finalOptions","_objectSpread","signingDate","Date","unsignableHeaders","Set","signableHeaders","_formatDate","formatDate","longDate","shortDate","signingService","signingRegion","scope","constants","headerName","indexOf","ArrayBuffer","isView","buffer","payloadHash","computePayloadHash","canonicalHeaders","computeCanonicalHeaders","signature","calculateSignature","deriveSigningKey","createCanonicalRequest","sort","join","url","path","endsWith","query","serializeQueryParameters","originalRequest","_options$signingDate","_options$expiresIn","expiresIn","unhoistableHeaders","_formatDate2","InvalidSignatureError","moveHeadersToQuery","toString","signingKey","canonicalRequest","_url","sortedHeaders","sortedCanonicalHeaders","map","signedHeaders","method","computeCanonicalURI","computeCanonicalQuerystring","credentialScope","hashedCanonicalRequest","crypto","stringToSign","createStringToSign","kSecret","kDate","kRegion","kService","_ref2","_step","normalizedURISegments","_iterator","_createForOfIteratorHelper","s","n","done","URISegment","pop","push","err","e","f","leading","URI","trailing","normalizedURI","encodeURIComponent","_ref3","_step2","_ref3$query","serialized","_loop","escapeURI","Array","isArray","reduce","encoded","_iterator2","filter","_ref4","_step3","_iterator3","canonicalHeaderName","has","trim","_ref5","isArrayBuffer","requestCopy","JSON","parse","stringify","_requestCopy$query","_i2","_Object$keys2","_options$unhoistableH","lowerCaseName","ignoreKeys","_step4","_loop2","includes","_iterator4","_AWSError","c","charCodeAt","toUpperCase","date","time","Number","toDate","toISOString","prototype","call","require","_regeneratorRuntime","t","r","hasOwnProperty","o","defineProperty","i","Symbol","a","iterator","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","h","l","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","reverse","prev","charAt","stop","rval","handle","complete","finish","delegateYield","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptor","apply","getOwnPropertyDescriptors","defineProperties","asyncGeneratorStep","_defineProperties","_toPropertyKey","_getPrototypeOf","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","Boolean","valueOf","_get","bind","_superPropBase","_setPrototypeOf","toPrimitive","String","_toPrimitive","LambdaClient","_AWSClient","commonHeaders","_callee","payload","invocationType","signedRequest","res","logResult","functionError","_args","_context","logType","clientContext","qualifier","sign","http","baseRequestParams","handleError","executedVersion","encoding","statusCode","LambdaInvocationError","_next","_throw","_x","_x2","awsError","_asyncToGenerator","SQSClient","serviceVersion","_sendMessage","queueUrl","messageBody","parsed","QueueUrl","_combineQueueMessageBodyAndOptions","_sendRequest","MessageResponse","_sendMessageBatch","_callee2","entries","action","requestMessageEntries","successful","failed","_context2","entry","requestMessageEntry","messageOptions","Id","messageId","Entries","SQSServiceError","_x3","_x4","_listQueues","_callee3","parameters","_args3","_context3","maxResults","MaxResults","nextToken","NextToken","queueNamePrefix","QueueNamePrefix","urls","MessageBody","messageDeduplicationId","MessageDeduplicationId","messageGroupId","MessageGroupId","messageAttributes","_Object$entries","_Object$entries$_i","attribute","valueParameterSuffix","DataType","MessageAttributes","delaySeconds","DelaySeconds","_sendRequest2","_callee4","_context4","_handleError","_x5","_x6","id","bodyMD5","_this3","module","exports","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","definition","obj","prop","KMSClient","_listKeys","KMSOperation","ListKeys","k","KMSKey","fromJSON","_generateDataKey","size","_args2","KMSKeySize","Size256","KeyId","NumberOfBytes","GenerateDataKey","KMSDataKey","KMSServiceError","keyArn","keyId","KeyArn","CiphertextBlob","Plaintext","ciphertextBlob","plaintext","S3Client","_listBuckets","buckets","children","each","_","bucketDefinition","bucket","child","nodeName","assign","textContent","creationDate","_listObjects","bucketName","prefix","objects","encodeURI","objectDefinition","lastModified","etag","storageClass","_getObject","objectKey","_res$headers$XAmzSt","additionalHeaders","S3Object","_putObject","data","params","Host","contentDisposition","contentEncoding","contentLength","contentMD5","contentType","_x7","_x8","_deleteObject","_callee5","_context5","_x9","_x10","_copyObject","_callee6","sourceBucket","sourceKey","destinationBucket","destinationKey","bucketEndpoint","_context6","copy","_x11","_x12","_x13","_x14","_createMultipartUpload","_callee7","_context7","uploads","S3MultipartUpload","_x15","_x16","_uploadPart","_callee8","uploadId","partNumber","_context8","S3Part","_x17","_x18","_x19","_x20","_x21","_completeMultipartUpload","_callee9","parts","_context9","part","eTag","_x22","_x23","_x24","_x25","_abortMultipartUpload","_callee10","_context10","_x26","_x27","_x28","S3ServiceError","S3Bucket","SecretsManagerClient","_listSecrets","SecretsManagerOperation","ListSecrets","Secret","_getSecret","SecretId","GetSecretValue","_createSecret","secret","description","versionID","tags","_versionID","uuidv4","Name","Description","SecretString","ClientRequestToken","Tags","CreateSecret","_putSecretValue","_versionID2","PutSecretValue","_deleteSecret","_ref$recoveryWindow","recoveryWindow","_ref$noRecovery","noRecovery","DeleteSecret","SecretsManagerServiceError","arn","secretString","createdDate","lastAccessedDate","lastChangedDate","ARN","CreatedDate","LastAccessedDate","LastChangedDate","SystemsManagerClient","withDecryption","WithDecryption","SystemsManagerOperation","GetParameter","SystemsManagerParameter","_getParameter","SystemsManagerServiceError","dataType","lastModifiedDate","selector","sourceResult","version","parameter","Parameter","LastModifiedDate","Selector","SourceResult","Type","Value","Version","KinesisClient","_createStream","streamName","StreamName","shardCount","ShardCount","streamModeDetails","StreamMode","streamMode","_send_request","_deleteStream","streamARN","StreamARN","enforceConsumerDeletion","EnforceConsumerDeletion","_listStreams","exclusiveStartStreamName","ExclusiveStartStreamName","limit","Limit","ListStreamsResponse","fromJson","_putRecords","records","_args4","Records","PutRecordsResponse","_getRecords","shardIterator","_args5","ShardIterator","GetRecordsResponse","_listShards","_args6","ListShardsResponse","_getShardIterator","shardId","shardIteratorType","_args7","ShardId","ShardIteratorType","startingSequenceNumber","StartingSequenceNumber","timestamp","Timestamp","GetShardIteratorResponse","_send_request2","KinesisServiceError","HasMoreStreams","StreamNames","StreamSummaries","hasMoreStreams","streamNames","streamSummaries","result","_result$HasMoreStream","_result$NextToken","_result$StreamNames","_result$StreamSummari","StreamSummary","StreamCreationTimestamp","StreamStatus","streamCreationTimestamp","streamStatus","summary","_summary$StreamARN","_summary$StreamCreati","_summary$StreamModeDe","StreamModeDetails","_summary$StreamName","_summary$StreamStatus","encryptionType","failedRecordCount","_json$EncryptionType","EncryptionType","_json$FailedRecordCou","FailedRecordCount","_json$Records","PutRecordsResultEntry","sequenceNumber","SequenceNumber","nextShardIterator","millisBehindLatest","_json$NextShardIterat","NextShardIterator","_json$Records2","_json$MillisBehindLat","MillisBehindLatest","Record","partitionKey","Data","PartitionKey","shards","_json$Shards","Shards","Shard","hashKeyRange","sequenceNumberRange","parentShardId","adjacentParentShardId","HashKeyRange","SequenceNumberRange","ParentShardId","AdjacentParentShardId","EventBridgeClient","input","parsedEvent","Detail","EventBridgeOperation","PutEvents","_putEvents","EventBridgeServiceError"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/aws/0.13.0/event-bridge.js b/lib/aws/0.13.0/event-bridge.js new file mode 100644 index 0000000..1e08728 --- /dev/null +++ b/lib/aws/0.13.0/event-bridge.js @@ -0,0 +1,3 @@ +/*! For license information please see event-bridge.js.LICENSE.txt */ +(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function n(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,c=[],u=!0,s=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(c.push(n.value),c.length!==t);u=!0);}catch(e){s=!0,o=e}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(s)throw o}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return o(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?o(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rw,AWSError:()=>R,DNSError:()=>B,EventBridgeClient:()=>$e,EventBridgeServiceError:()=>et,GeneralError:()=>G,HTTP2Error:()=>K,InvalidAWSConfigError:()=>O,InvalidSignatureError:()=>xe,NetworkError:()=>H,TCPError:()=>U,TLSError:()=>q});var u=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),a(this,"_protocol",void 0),a(this,"_hostname",void 0),a(this,"_port",void 0);var r=!t.startsWith("http://")&&!t.startsWith("https://")?"".concat(e.DEFAULT_PROTOCOL,"://").concat(t):t,o=r.match(/^https?:/),i=n(r.replace(/^https?:\/\//,"").split("/"),1)[0];this._protocol=o?o[0].slice(0,-1):e.DEFAULT_PROTOCOL,this._hostname=i.split(":")[0],this._port=i.split(":")[1]?parseInt(i.split(":")[1]):void 0}return t=e,(r=[{key:"copy",value:function(){return new e(this.href)}},{key:"host",get:function(){return this._port?"".concat(this._hostname,":").concat(this._port):this._hostname},set:function(e){var t=n(e.split(":"),2),r=t[0],o=t[1];this._hostname=r,this._port=o?parseInt(o):void 0}},{key:"hostname",get:function(){return this._hostname},set:function(e){this._hostname=e}},{key:"href",get:function(){return"".concat(this.protocol,"://").concat(this.host)},set:function(t){var r=t.match(/^https?:/),o=n(t.replace(/^https?:\/\//,"").split("/"),1)[0];this._protocol=r?r[0].slice(0,-1):e.DEFAULT_PROTOCOL,this._hostname=o.split(":")[0],this._port=o.split(":")[1]?parseInt(o.split(":")[1]):void 0}},{key:"port",get:function(){return this._port},set:function(e){this._port=e}},{key:"protocol",get:function(){return this._protocol},set:function(e){this._protocol=e}}])&&i(t.prototype,r),o&&i(t,o),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,r,o}();function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function l(e,t,r){return t=h(t),function(e,t){if(t&&("object"==s(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,p()?Reflect.construct(t,r||[],h(e).constructor):t.apply(e,r))}function f(e){var t="function"==typeof Map?new Map:void 0;return f=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return function(e,t,r){if(p())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,t);var o=new(e.bind.apply(e,n));return r&&y(o,r.prototype),o}(e,arguments,h(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),y(r,e)},f(e)}function p(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(p=function(){return!!e})()}function y(e,t){return y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},y(e,t)}function h(e){return h=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},h(e)}function d(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function v(e,t){for(var r=0;r128)throw new O("invalid AWS access key ID; reason: size should be between 16 and 128 characters, got ".concat(t.accessKeyId.length));if(!t.secretAccessKey||""===t.secretAccessKey)throw new O("invalid AWS secret access key; reason: expected a non empty string, got `".concat(t.secretAccessKey,"`"));this.region=t.region,this.accessKeyId=t.accessKeyId,this.secretAccessKey=t.secretAccessKey,void 0!==t.sessionToken&&(this.sessionToken=t.sessionToken),void 0!==t.endpoint&&("string"==typeof t.endpoint?this.endpoint=new u(t.endpoint):this.endpoint=t.endpoint)}return b(e,null,[{key:"fromEnvironment",value:function(t){return new e({region:__ENV.AWS_REGION,accessKeyId:__ENV.AWS_ACCESS_KEY_ID,secretAccessKey:__ENV.AWS_SECRET_ACCESS_KEY,sessionToken:__ENV.AWS_SESSION_TOKEN,endpoint:null==t?void 0:t.endpoint})}}])}(),O=function(e){function t(e){return d(this,t),l(this,t,[e])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&y(e,t)}(t,e),b(t)}(f(Error));const P=require("k6/html");var E;function S(e){return S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},S(e)}function j(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function T(e,t){for(var r=0;r=200&&r<300&&""==o&&0===n)return!1;switch(n){case W.GenericError:case W.NonTCPNetworkError:case W.InvalidURL:case W.HTTPRequestTimeout:throw new G(n);case M.GenericDNSError:case M.NoIPFound:case M.BlacklistedIP:case M.BlacklistedHostname:throw new B(n);case z.GenericTCPError:case z.BrokenPipeOnWrite:case z.UnknownTCPError:case z.GeneralTCPDialError:case z.DialTimeoutError:case z.DialConnectionRefused:case z.DialUnknownError:case z.ResetByPeer:throw new U(n);case F.GeneralTLSError:case F.UnknownAuthority:case F.CertificateHostnameMismatch:throw new q(n);case X.GenericHTTP2Error:case X.GeneralHTTP2GoAwayError:throw new K(n)}return!0}}])&&$(e.prototype,t),r&&$(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();const re=require("k6/crypto");var ne=e.n(re),oe="X-Amz-Date",ie="X-Amz-Signature",ae="X-Amz-Security-Token",ce="x-amz-content-sha256",ue=oe.toLowerCase(),se=ie.toLowerCase(),le="X-Amz-Target".toLowerCase(),fe=ae.toLowerCase(),pe="authorization",ye=[pe,ue,"date"],he="host",de={authorization:!0,"cache-control":!0,connection:!0,expect:!0,from:!0,"keep-alive":!0,"max-forwards":!0,pragma:!0,referer:!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0,"user-agent":!0,"x-amzn-trace-id":!0},ve="aws4_request",be="AWS4-HMAC-SHA256";function me(e){return me="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},me(e)}function ge(e,t,r){return t=Oe(t),function(e,t){if(t&&("object"==me(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,we()?Reflect.construct(t,r||[],Oe(e).constructor):t.apply(e,r))}function we(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(we=function(){return!!e})()}function Oe(e){return Oe=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Oe(e)}function Pe(e,t){return Pe=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Pe(e,t)}function Ee(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return Se(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Se(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){c=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(c)throw i}}}}function Se(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r1&&void 0!==arguments[1]?arguments[1]:{},r=Te(Te({},{signingDate:new Date,unsignableHeaders:new Set,signableHeaders:new Set}),t),n=Ne(r.signingDate),o=n.longDate,i=n.shortDate,a=r.signingService||this.service,c=r.signingRegion||this.region,u="".concat(i,"/").concat(c,"/").concat(a,"/").concat(ve);e.headers[he]||(e.headers[he]=e.endpoint.hostname);for(var s=0,l=Object.keys(e.headers);s-1&&delete e.headers[f]}e.headers[ue]=o,this.credentials.sessionToken&&(e.headers[fe]=this.credentials.sessionToken),ArrayBuffer.isView(e.body)&&(e.body=e.body.buffer),e.body||(e.body="");var p=this.computePayloadHash(e);!function(e,t){e=e.toLowerCase();for(var r=0,n=Object.keys(t);r1&&void 0!==arguments[1]?arguments[1]:{},r=t.signingDate,n=void 0===r?new Date:r,o=t.expiresIn,i=void 0===o?3600:o,a=t.unsignableHeaders,c=t.unhoistableHeaders,u=t.signableHeaders,s=t.signingRegion,l=t.signingService,f=Ne(n),p=f.longDate,y=f.shortDate,h=s||this.region,d=l||this.service;if(i>604800)throw new xe("Signature version 4 presigned URLs can't be valid for more than 7 days");var v="".concat(y,"/").concat(h,"/").concat(d,"/").concat(ve),b=this.moveHeadersToQuery(e,{unhoistableHeaders:c});b.headers[he]||(b.headers[he]=e.endpoint.hostname),this.credentials.sessionToken&&(b.query[ae]=this.credentials.sessionToken),b.query["X-Amz-Algorithm"]=be,b.query["X-Amz-Credential"]="".concat(this.credentials.accessKeyId,"/").concat(v),b.query[oe]=p,b.query["X-Amz-Expires"]=i.toString(10);var m=this.computeCanonicalHeaders(b,a,u);b.query["X-Amz-SignedHeaders"]=Object.keys(m).sort().join(";");var g=this.deriveSigningKey(this.credentials,d,h,y),w=this.computePayloadHash(e),O=this.createCanonicalRequest(b,m,w);b.query[ie]=this.calculateSignature(p,v,g,O);var P,E=e.endpoint.href;b.path&&(E=null!==(P=E)&&void 0!==P&&P.endsWith("/")?E:E+"/",E+=b.path);return b.query&&(E+="?".concat(this.serializeQueryParameters(b.query))),Te({url:E},b)}},{key:"createCanonicalRequest",value:function(e,t,r){var n=Object.keys(t).sort(),o=n.map((function(e){return"".concat(e,":").concat(t[e])})).join("\n"),i=n.join(";");return"".concat(e.method,"\n")+"".concat(this.computeCanonicalURI(e),"\n")+"".concat(this.computeCanonicalQuerystring(e),"\n")+"".concat(o,"\n\n")+"".concat(i,"\n")+"".concat(r)}},{key:"createStringToSign",value:function(e,t,r){var n=ne().sha256(r,"hex");return"".concat(be,"\n")+"".concat(e,"\n")+"".concat(t,"\n")+"".concat(n)}},{key:"calculateSignature",value:function(e,t,r,n){var o=this.createStringToSign(e,t,n);return ne().hmac("sha256",r,o,"hex")}},{key:"deriveSigningKey",value:function(e,t,r,n){var o=e.secretAccessKey,i=ne().hmac("sha256","AWS4"+o,n,"binary"),a=ne().hmac("sha256",i,r,"binary"),c=ne().hmac("sha256",a,t,"binary");return ne().hmac("sha256",c,"aws4_request","binary")}},{key:"computeCanonicalURI",value:function(e){var t=e.path;if(this.uriEscapePath){var r,n=[],o=Ee(t.split("/"));try{for(o.s();!(r=o.n()).done;){var i=r.value;0!==(null==i?void 0:i.length)&&("."!==i&&(".."===i?n.pop():n.push(i)))}}catch(e){o.e(e)}finally{o.f()}var a=null!=t&&t.startsWith("/")?"/":"",c=n.join("/"),u=n.length>0&&null!=t&&t.endsWith("/")?"/":"",s="".concat(a).concat(c).concat(u);return encodeURIComponent(s).replace(/%2F/g,"/")}return t}},{key:"computeCanonicalQuerystring",value:function(e){var t,r=e.query,n=void 0===r?{}:r,o=[],i={},a=function(e){if(e.toLowerCase()===se)return 1;o.push(e);var t=n[e];"string"==typeof t?i[e]="".concat(Ie(e),"=").concat(Ie(t)):Array.isArray(t)&&(i[e]=t.slice(0).sort().reduce((function(t,r){return t.concat(["".concat(Ie(e),"=").concat(Ie(r))])}),[]).join("&"))},c=Ee(Object.keys(n).sort());try{for(c.s();!(t=c.n()).done;){a(t.value)}}catch(e){c.e(e)}finally{c.f()}return o.map((function(e){return i[e]})).filter((function(e){return e})).join("&")}},{key:"computeCanonicalHeaders",value:function(e,t,r){var n,o=e.headers,i={},a=Ee(Object.keys(o).sort());try{for(a.s();!(n=a.n()).done;){var c=n.value;if(null!=o[c]){var u=c.toLowerCase();(u in de||null!=t&&t.has(u))&&(!r||r&&!r.has(u))||"string"==typeof o[c]&&(i[u]=o[c]=o[c].trim().replace(/\s+/g," "))}}}catch(e){a.e(e)}finally{a.f()}return i}},{key:"computePayloadHash",value:function(e){var t,r=e.headers,n=e.body;return r[ce]?r[ce]:null==n?"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855":"string"==typeof n||(t=n,"function"==typeof ArrayBuffer&&(t instanceof ArrayBuffer||"[object ArrayBuffer]"===Object.prototype.toString.call(t)))?ne().sha256(n,"hex").toLowerCase():ArrayBuffer.isView(n)?ne().sha256(n.buffer,"hex").toLowerCase():"UNSIGNED-PAYLOAD"}},{key:"moveHeadersToQuery",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=JSON.parse(JSON.stringify(e)),n=r.headers,o=r.query,i=void 0===o?{}:o,a=0,c=Object.keys(n);a=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),s=n.call(a,"finallyLoc");if(u&&s){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),C(r),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;C(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:L(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),v}},t}function Ge(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Be(e){for(var t=1;t=1400&&u<=1499){var l=s.Message||s.message||s.__type;if("InvalidSignatureException"===s.__type)throw new xe(l,s.__type);throw new et(l,s.__type,r)}if(1500===u)throw new et("An error occured on the server side","InternalServiceError",r);return!0}}]);var r,n}(te),Ze=function(e){return e.PutEvents="PutEvents",e}(Ze||{}),et=function(e){function t(e,r,n){var o;return qe(this,t),Ye(o=Me(this,t,[e,r]),"operation",void 0),o.name="EventBridgeServiceError",o.operation=n,o}return Qe(t,e),We(t)}(R),tt=exports;for(var rt in t)tt[rt]=t[rt];t.__esModule&&Object.defineProperty(tt,"__esModule",{value:!0})})(); +//# sourceMappingURL=event-bridge.js.map \ No newline at end of file diff --git a/lib/aws/0.13.0/event-bridge.js.LICENSE.txt b/lib/aws/0.13.0/event-bridge.js.LICENSE.txt new file mode 100644 index 0000000..ae386fb --- /dev/null +++ b/lib/aws/0.13.0/event-bridge.js.LICENSE.txt @@ -0,0 +1 @@ +/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ diff --git a/lib/aws/0.13.0/event-bridge.js.map b/lib/aws/0.13.0/event-bridge.js.map new file mode 100644 index 0000000..c3198e3 --- /dev/null +++ b/lib/aws/0.13.0/event-bridge.js.map @@ -0,0 +1 @@ +{"version":3,"file":"event-bridge.js","mappings":"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","sources":["webpack://k6-jslib-aws/webpack/bootstrap","webpack://k6-jslib-aws/webpack/runtime/compat get default export","webpack://k6-jslib-aws/webpack/runtime/define property getters","webpack://k6-jslib-aws/webpack/runtime/hasOwnProperty shorthand","webpack://k6-jslib-aws/webpack/runtime/make namespace object","webpack://k6-jslib-aws/./src/internal/endpoint.ts","webpack://k6-jslib-aws/./src/internal/config.ts","webpack://k6-jslib-aws/external commonjs \"k6/html\"","webpack://k6-jslib-aws/./src/internal/error.ts","webpack://k6-jslib-aws/external commonjs \"k6/http\"","webpack://k6-jslib-aws/./src/internal/client.ts","webpack://k6-jslib-aws/external commonjs \"k6/crypto\"","webpack://k6-jslib-aws/./src/internal/constants.ts","webpack://k6-jslib-aws/./src/internal/signature.ts","webpack://k6-jslib-aws/./src/internal/http.ts","webpack://k6-jslib-aws/./src/internal/utils.ts","webpack://k6-jslib-aws/./src/internal/event-bridge.ts"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * Represents an AWS service endpoint, providing utilities for parsing and handling URL details.\n */\nexport class Endpoint {\n private _protocol: string\n private _hostname: string\n private _port?: number\n\n // Default protocol, this can be globally changed as per application requirements\n private static readonly DEFAULT_PROTOCOL = 'https' // Set this as per AWS.config\n\n /**\n // * Constructs a new Endpoint instance.\n *\n * @param {string} endpoint - The URL to construct an endpoint from. If the URL omits a protocol, the default protocol will be used.\n */\n constructor(endpoint: string) {\n const isDefaultProtocol =\n !endpoint.startsWith('http://') && !endpoint.startsWith('https://')\n const completeUrl = isDefaultProtocol\n ? `${Endpoint.DEFAULT_PROTOCOL}://${endpoint}`\n : endpoint\n\n const protocolMatch = completeUrl.match(/^https?:/)\n const hostAndPath = completeUrl.replace(/^https?:\\/\\//, '')\n const [hostnameWithPort] = hostAndPath.split('/')\n\n this._protocol = protocolMatch ? protocolMatch[0].slice(0, -1) : Endpoint.DEFAULT_PROTOCOL\n this._hostname = hostnameWithPort.split(':')[0]\n this._port = hostnameWithPort.split(':')[1]\n ? parseInt(hostnameWithPort.split(':')[1])\n : undefined\n }\n\n /**\n * Creates a new Endpoint instance that is a copy of the current one.\n *\n * @returns {Endpoint} The copied Endpoint.\n */\n public copy(): Endpoint {\n return new Endpoint(this.href)\n }\n\n /**\n * Gets the host portion of the endpoint including the port.\n *\n * @returns {string} The host portion of the endpoint including the port.\n */\n public get host(): string {\n return this._port ? `${this._hostname}:${this._port}` : this._hostname\n }\n\n /**\n * Sets the host portion of the endpoint including the port.\n *\n * @param {string} value - The value to set for the host.\n */\n public set host(value: string) {\n const [hostname, port] = value.split(':')\n this._hostname = hostname\n this._port = port ? parseInt(port) : undefined\n }\n\n /**\n * Gets the host portion of the endpoint without the port.\n *\n * @returns {string} The host portion of the endpoint.\n */\n public get hostname(): string {\n return this._hostname\n }\n\n /**\n * Sets the host portion of the endpoint without the port.\n *\n * @param {string} value - The value to set for the hostname.\n */\n public set hostname(value: string) {\n this._hostname = value\n }\n\n /**\n * Gets the full URL of the endpoint.\n *\n * @returns {string} The full URL of the endpoint.\n */\n public get href(): string {\n return `${this.protocol}://${this.host}`\n }\n\n /**\n * Sets the full URL of the endpoint.\n *\n * @param {string} value - The value to set for the full URL.\n */\n public set href(value: string) {\n const protocolMatch = value.match(/^https?:/)\n const withoutProtocol = value.replace(/^https?:\\/\\//, '')\n const [hostnameWithPort] = withoutProtocol.split('/')\n\n this._protocol = protocolMatch ? protocolMatch[0].slice(0, -1) : Endpoint.DEFAULT_PROTOCOL // remove the trailing colon\n this._hostname = hostnameWithPort.split(':')[0]\n this._port = hostnameWithPort.split(':')[1]\n ? parseInt(hostnameWithPort.split(':')[1])\n : undefined\n }\n\n /**\n * Gets the port of the endpoint.\n *\n * @returns {number|undefined} The port of the endpoint.\n */\n public get port(): number | undefined {\n return this._port\n }\n\n /**\n * Sets the port of the endpoint.\n *\n * @param {number|undefined} value - The value to set for the port.\n */\n public set port(value: number | undefined) {\n this._port = value\n }\n\n /**\n * Gets the protocol (http or https) of the endpoint URL.\n *\n * @returns {string} The protocol of the endpoint URL.\n */\n public get protocol(): string {\n return this._protocol\n }\n\n /**\n * Sets the protocol (http or https) of the endpoint URL.\n *\n * @param {string} value - The value to set for the protocol.\n */\n public set protocol(value: string) {\n this._protocol = value\n }\n}\n","import { HTTPScheme } from './http'\nimport { Endpoint } from './endpoint'\n\n/** Class holding an AWS connection information */\nexport class AWSConfig {\n /**\n * The AWS region to connect to, as listed: https://docs.aws.amazon.com/general/latest/gr/rande.html\n *\n * @type {string}\n */\n region: string\n\n /**\n * Your user's AWS access key id credential.\n *\n * @type {string}\n */\n accessKeyId: string\n\n /**\n * Your user's AWS secret access key credential.\n *\n * @type {string}\n */\n secretAccessKey: string\n\n /**\n * Your user's AWS session token credential.\n *\n * @type {string}\n */\n sessionToken?: string\n\n /**\n * The AWS hostname to connect to.\n *\n * @type {string} ['amazonaws.com']\n */\n endpoint?: Endpoint\n\n /**\n * fromEnvironment creates an AWSConfig from the environment variables.\n *\n * It expects to find the following compulsory environment variables:\n * * AWS_REGION\n * * AWS_ACCESS_KEY_ID\n * * AWS_SECRET_ACCESS_KEY\n *\n * If set, the following optional environment variables are also used:\n * * AWS_SESSION_TOKEN\n *\n * Finally, the options parameter allows to explicitly set the scheme and endpoint\n * to use when connecting to AWS.\n *\n * @param options {AWSConnectionOptions}\n * @returns\n */\n static fromEnvironment(options?: AWSConnectionOptions): AWSConfig {\n const region = __ENV.AWS_REGION\n const accessKeyId = __ENV.AWS_ACCESS_KEY_ID\n const secretAccessKey = __ENV.AWS_SECRET_ACCESS_KEY\n const sessionToken: string | undefined = __ENV.AWS_SESSION_TOKEN\n const endpoint: Endpoint | string | undefined = options?.endpoint\n\n return new AWSConfig({\n region,\n accessKeyId,\n secretAccessKey,\n sessionToken,\n endpoint: endpoint,\n })\n }\n\n /**\n * Create an AWSConfig.\n *\n * @param {AWSConfigOptions} options - configuration attributes to use when interacting with AWS' APIs\n * @throws {InvalidArgumentException}\n */\n constructor(options: AWSConfigOptions) {\n if (!options.region || options.region === '') {\n throw new InvalidAWSConfigError(\n `invalid AWS region; reason: expected a valid AWS region name (e.g. \"us-east-1\"), got \\`${options.region}\\``\n )\n }\n\n if (!options.accessKeyId || options.accessKeyId === '') {\n throw new InvalidAWSConfigError(\n `invalid AWS access key ID; reason: expected a non empty string, got \\`${options.accessKeyId}\\``\n )\n }\n\n if (options.accessKeyId.length < 16 || options.accessKeyId.length > 128) {\n throw new InvalidAWSConfigError(\n `invalid AWS access key ID; reason: size should be between 16 and 128 characters, got ${options.accessKeyId.length}`\n )\n }\n\n if (!options.secretAccessKey || options.secretAccessKey === '') {\n throw new InvalidAWSConfigError(\n `invalid AWS secret access key; reason: expected a non empty string, got \\`${options.secretAccessKey}\\``\n )\n }\n\n this.region = options.region\n this.accessKeyId = options.accessKeyId\n this.secretAccessKey = options.secretAccessKey\n\n if (options.sessionToken !== undefined) {\n this.sessionToken = options.sessionToken\n }\n\n if (options.endpoint !== undefined) {\n if (typeof options.endpoint === 'string') {\n this.endpoint = new Endpoint(options.endpoint)\n } else {\n this.endpoint = options.endpoint\n }\n }\n }\n}\n\n/**\n * Interface representing AWSConfig options\n */\nexport interface AWSConfigOptions extends AWSConnectionOptions {\n /**\n * The AWS region to connect to, as listed: https://docs.aws.amazon.com/general/latest/gr/rande.html\n *\n * @type {string}\n */\n region: string\n\n /**\n * Your user's AWS access key id credential.\n *\n * @type {string}\n */\n accessKeyId: string\n\n /**\n * Your user's AWS secret access key credential.\n *\n * @type {string}\n */\n secretAccessKey: string\n\n /**\n * Your user's AWS session token credential.\n *\n * @type {string}\n */\n sessionToken?: string\n}\n\n/**\n * Interface representing AWS connection options\n */\nexport interface AWSConnectionOptions {\n /**\n * The HTTP scheme to use when connecting to AWS.\n *\n * @type {HTTPScheme}\n */\n scheme?: HTTPScheme\n\n /**\n * The AWS hostname to connect to.\n *\n * @type {string}\n */\n endpoint?: Endpoint | string\n}\n\n/** Class representing an invalid AWS configuration */\nexport class InvalidAWSConfigError extends Error {\n constructor(message: string) {\n super(message)\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"k6/html\");","import { JSONObject } from './json'\nimport { parseHTML } from 'k6/html'\nimport { Response } from 'k6/http'\n\n/**\n * Base class to derive errors from\n *\n * Inspired from AWS official error types, as\n * described in:\n * * https://aws.amazon.com/blogs/developer/service-error-handling-modular-aws-sdk-js/\n * * https://github.com/aws/aws-sdk-js/blob/master/lib/error.d.ts\n */\nexport class AWSError extends Error {\n /**\n * Error code issued by the service (if any)\n */\n code?: string\n\n /**\n * Create an AWSError\n *\n * @param {string} message - A longer human readable error message.\n * @param {string?} code - A unique short code representing the error that was emitted\n */\n constructor(message: string, code?: string) {\n super(message)\n this.name = 'AWSError'\n this.code = code\n }\n\n /**\n * Parse an AWSError from an XML document\n *\n * @param {string} xmlDocument - Serialized XML document to parse the error from\n * @returns {AWSError} - The parsed AWSError object\n */\n static parseXML(xmlDocument: string): AWSError {\n const doc = parseHTML(xmlDocument)\n return new AWSError(doc.find('Message').text(), doc.find('Code').text())\n }\n\n /**\n * Parse an AWSError from a Response object\n *\n * @param {Response} response - The Response object to parse the error from\n * @returns {AWSError} - The parsed AWSError object\n */\n static parse(response: Response): AWSError {\n if (response.headers['Content-Type'] === 'application/json') {\n const error = (response.json() as JSONObject) || {}\n const message =\n error.Message ||\n error.message ||\n error.__type ||\n 'An error occurred on the server side'\n const code = response.headers['X-Amzn-Errortype'] || error.__type\n return new AWSError(message as string, code as string)\n } else {\n return AWSError.parseXML(response.body as string)\n }\n }\n}\n\n/**\n * Base class for network errors as produced by k6.\n *\n * Based on the network error handling in k6, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n *\n * @typeparam N - The name of the network error\n * @typeparam K - The kind of the network error\n */\nexport class NetworkError extends Error {\n code: K\n name: N\n\n /**\n * Create a NetworkError\n *\n * @param {N} name - The name of the network error\n * @param {K} code - The kind of the network error\n */\n constructor(name: N, code: K) {\n super(ErrorMessages[code] || 'An unknown error occurred')\n this.name = name\n this.code = code\n }\n}\n\n/**\n * Represents a general network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class GeneralError extends NetworkError<'GeneralError', GeneralErrorKind> {\n /**\n * Create a GeneralError\n *\n * @param {GeneralErrorKind} code - The kind of the general error\n */\n constructor(code: GeneralErrorKind) {\n super('GeneralError', code)\n }\n}\n\n/**\n * Represents a DNS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class DNSError extends NetworkError<'DNSError', DNSErrorKind> {\n /**\n * Create a DNSError\n *\n * @param {DNSErrorKind} code - The kind of the DNS error\n */\n constructor(code: DNSErrorKind) {\n super('DNSError', code)\n }\n}\n\n/**\n * Represents a TCP-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class TCPError extends NetworkError<'TCPError', TCPErrorKind> {\n /**\n * Create a TCPError\n *\n * @param {TCPErrorKind} code - The kind of the TCP error\n */\n constructor(code: TCPErrorKind) {\n super('TCPError', code)\n }\n}\n\n/**\n * Represents a TLS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class TLSError extends NetworkError<'TLSError', TLSErrorKind> {\n /**\n * Create a TLSError\n *\n * @param {TLSErrorKind} code - The kind of the TLS error\n */\n constructor(code: TLSErrorKind) {\n super('TLSError', code)\n }\n}\n\n/**\n * Represents an HTTP/2-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class HTTP2Error extends NetworkError<'HTTP2Error', HTTP2ErrorKind> {\n /**\n * Create an HTTP2Error\n *\n * @param {HTTP2ErrorKind} code - The kind of the HTTP/2 error\n */\n constructor(code: HTTP2ErrorKind) {\n super('HTTP2Error', code)\n }\n}\n\n/**\n * Represents the name of a network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\ntype NetworkErrorName = 'GeneralError' | 'DNSError' | 'TCPError' | 'TLSError' | 'HTTP2Error'\n\n/**\n * Represents the kind of a network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\ntype ErrorKind = GeneralErrorKind | DNSErrorKind | TCPErrorKind | TLSErrorKind | HTTP2ErrorKind\n\n/**\n * Represents the kind of a general network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum GeneralErrorKind {\n GenericError = 1000,\n NonTCPNetworkError = 1010,\n InvalidURL = 1020,\n HTTPRequestTimeout = 1050,\n}\n\n/**\n * Represents the kind of a DNS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum DNSErrorKind {\n GenericDNSError = 1100,\n NoIPFound = 1101,\n BlacklistedIP = 1110,\n BlacklistedHostname = 1111,\n}\n\n/**\n * Represents the kind of a TCP-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum TCPErrorKind {\n GenericTCPError = 1200,\n BrokenPipeOnWrite = 1201,\n UnknownTCPError = 1202,\n GeneralTCPDialError = 1210,\n DialTimeoutError = 1211,\n DialConnectionRefused = 1212,\n DialUnknownError = 1213,\n ResetByPeer = 1220,\n}\n\n/**\n * Represents the kind of a TLS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum TLSErrorKind {\n GeneralTLSError = 1300,\n UnknownAuthority = 1310,\n CertificateHostnameMismatch = 1311,\n}\n\n/**\n * Represents the kind of an HTTP/2-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum HTTP2ErrorKind {\n GenericHTTP2Error = 1600,\n GeneralHTTP2GoAwayError = 1610,\n}\n\n/**\n * Error messages for each kind of network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nconst ErrorMessages: { [key in ErrorKind]: string } = {\n [GeneralErrorKind.GenericError]: 'A generic error that isn’t any of the ones listed below',\n [GeneralErrorKind.NonTCPNetworkError]:\n 'A non-TCP network error - this is a placeholder and there is no error currently known to trigger it',\n [GeneralErrorKind.InvalidURL]: 'An invalid URL was specified',\n [GeneralErrorKind.HTTPRequestTimeout]: 'The HTTP request has timed out',\n [DNSErrorKind.GenericDNSError]: 'A generic DNS error that isn’t any of the ones listed below',\n [DNSErrorKind.NoIPFound]: 'No IP for the provided host was found',\n [DNSErrorKind.BlacklistedIP]:\n 'Blacklisted IP was resolved or a connection to such was tried to be established',\n [DNSErrorKind.BlacklistedHostname]: 'Blacklisted hostname using The Block Hostnames option',\n [TCPErrorKind.GenericTCPError]: 'A generic TCP error that isn’t any of the ones listed below',\n [TCPErrorKind.BrokenPipeOnWrite]:\n 'A “broken pipe” on write - the other side has likely closed the connection',\n [TCPErrorKind.UnknownTCPError]:\n 'An unknown TCP error - We got an error that we don’t recognize but it is from the operating system and has errno set on it. The message in error includes the operation(write,read) and the errno, the OS, and the original message of the error',\n [TCPErrorKind.GeneralTCPDialError]: 'General TCP dial error',\n [TCPErrorKind.DialTimeoutError]: 'Dial timeout error - the timeout for the dial was reached',\n [TCPErrorKind.DialConnectionRefused]:\n 'Dial connection refused - the connection was refused by the other party on dial',\n [TCPErrorKind.DialUnknownError]: 'Dial unknown error',\n [TCPErrorKind.ResetByPeer]:\n 'Reset by peer - the connection was reset by the other party, most likely a server',\n [TLSErrorKind.GeneralTLSError]: 'General TLS error',\n [TLSErrorKind.UnknownAuthority]: 'Unknown authority - the certificate issuer is unknown',\n [TLSErrorKind.CertificateHostnameMismatch]: 'The certificate doesn’t match the hostname',\n [HTTP2ErrorKind.GenericHTTP2Error]:\n 'A generic HTTP/2 error that isn’t any of the ones listed below',\n [HTTP2ErrorKind.GeneralHTTP2GoAwayError]: 'A general HTTP/2 GoAway error',\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"k6/http\");","import { RefinedResponse, ResponseType, Params } from 'k6/http'\n\nimport { AWSConfig } from './config'\nimport { Endpoint } from './endpoint'\nimport { HTTPHeaders } from './http'\nimport {\n GeneralErrorKind,\n DNSErrorKind,\n TCPErrorKind,\n TLSErrorKind,\n HTTP2ErrorKind,\n GeneralError,\n DNSError,\n TCPError,\n TLSError,\n HTTP2Error,\n} from './error'\n\n/**\n * Class allowing to build requests targeting AWS APIs\n *\n * This class is meant to be used as a base class for specific\n * services clients. See S3Client or SecretsManagerClient for\n * usage examples.\n */\nexport class AWSClient {\n readonly awsConfig: AWSConfig\n readonly serviceName: string\n\n // Because jslib-aws is mostly used as a way to setup or feed k6 tests, and\n // we want the jslib-aws to be able to disregard k6's discardResponseBodies: meaning\n // that for instance, even when setting discardResponseBodies to true in the k6 options, using\n // s3.getObject still receives the underlying response body and returns data to the user.\n //\n // To achieve this, we set the responseType to 'text' in the baseRequestParams, as it\n // will lead the http module to ignore the discardResponseBodies option.\n //\n // AWS Client classes can override this value if they want to receive the response body\n // as a different type ('binary' for instance, e.g. S3Client.getObject).\n //\n // See #45: https://github.com/grafana/k6-jslib-aws/issues/45\n readonly baseRequestParams: Params = {\n responseType: 'text',\n }\n\n private _endpoint?: Endpoint\n\n /**\n * @param {AWSConfig} awsConfig - configuration attributes to use when interacting with AWS' APIs\n * @param {string} serviceName - name of the service to target.\n * @param {URIEncodingConfig} URIencodingConfig - configures how requests URIs should be encoded.\n */\n constructor(awsConfig: AWSConfig, serviceName: string) {\n this.awsConfig = awsConfig\n this.serviceName = serviceName\n\n // If an endpoint is provided in the config, set it\n // to ensure the default endpoint is not used.\n if (awsConfig.endpoint != undefined) {\n this._endpoint = awsConfig.endpoint\n }\n }\n\n /**\n * Represents the endpoint URL of the AWS service.\n *\n * If no custom endpoint is set, a default endpoint will be constructed\n * using the service name and region provided in the AWS config.\n *\n * @type {Endpoint}\n * @public\n */\n public get endpoint() {\n if (this._endpoint == undefined) {\n this._endpoint = new Endpoint(\n `https://${this.serviceName}.${this.awsConfig.region}.amazonaws.com`\n )\n }\n return this._endpoint\n }\n\n /**\n * Updates the endpoint URL of the AWS service.\n *\n * This can be used to override the default AWS service endpoint or set a custom endpoint.\n *\n * @param {Endpoint} endpoint - The new endpoint to set for the AWS service.\n * @public\n */\n public set endpoint(endpoint: Endpoint) {\n this._endpoint = endpoint\n }\n\n /**\n * Handles the k6 http response potential errors produced when making a\n * request to an AWS service.\n *\n * Importantly, this method only handles errors that emerge from the k6 http client itself, and\n * won't handle AWS specific errors. To handle AWS specific errors, client classes are\n * expected to implement their own error handling logic by overriding this method.\n *\n * @param response {RefinedResponse} the response received by the k6 http client\n * @param operation {string | undefined } the name of the operation that was attempted when the error occurred\n * @param {boolean} returns true if an error was handled, false otherwise\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n protected handleError(response: RefinedResponse, operation?: string): boolean {\n const status: number = response.status\n const errorCode: number = response.error_code\n const errorMessage: string = response.error\n\n // We consider codes 200-299 as success.\n //\n // We do not consider 3xx as success as some services such as S3 can use\n // 301 to indicate a bucket not found\n if (status >= 200 && status < 300 && errorMessage == '' && errorCode === 0) {\n return false\n }\n\n switch (errorCode) {\n case GeneralErrorKind.GenericError:\n case GeneralErrorKind.NonTCPNetworkError:\n case GeneralErrorKind.InvalidURL:\n case GeneralErrorKind.HTTPRequestTimeout:\n throw new GeneralError(errorCode);\n case DNSErrorKind.GenericDNSError:\n case DNSErrorKind.NoIPFound:\n case DNSErrorKind.BlacklistedIP:\n case DNSErrorKind.BlacklistedHostname:\n throw new DNSError(errorCode);\n case TCPErrorKind.GenericTCPError:\n case TCPErrorKind.BrokenPipeOnWrite:\n case TCPErrorKind.UnknownTCPError:\n case TCPErrorKind.GeneralTCPDialError:\n case TCPErrorKind.DialTimeoutError:\n case TCPErrorKind.DialConnectionRefused:\n case TCPErrorKind.DialUnknownError:\n case TCPErrorKind.ResetByPeer:\n throw new TCPError(errorCode);\n case TLSErrorKind.GeneralTLSError:\n case TLSErrorKind.UnknownAuthority:\n case TLSErrorKind.CertificateHostnameMismatch:\n throw new TLSError(errorCode);\n case HTTP2ErrorKind.GenericHTTP2Error:\n case HTTP2ErrorKind.GeneralHTTP2GoAwayError:\n throw new HTTP2Error(errorCode);\n }\n\n return true\n }\n}\n\n/**\n * Type alias representing the result of an AWSClient.buildRequest call\n */\nexport interface AWSRequest {\n readonly url: string\n readonly headers: HTTPHeaders\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"k6/crypto\");","/**\n * Standard Amazon AWS query parameter names\n */\nexport const AMZ_ALGORITHM_QUERY_PARAM = 'X-Amz-Algorithm'\nexport const AMZ_CREDENTIAL_QUERY_PARAM = 'X-Amz-Credential'\nexport const AMZ_DATE_QUERY_PARAM = 'X-Amz-Date'\nexport const AMZ_EXPIRES_QUERY_PARAM = 'X-Amz-Expires'\nexport const AMZ_SIGNATURE_QUERY_PARAM = 'X-Amz-Signature'\nexport const AMZ_SIGNED_HEADERS_QUERY_PARAM = 'X-Amz-SignedHeaders'\nexport const AMZ_TARGET_QUERY_PARAM = 'X-Amz-Target'\nexport const AMZ_TOKEN_QUERY_PARAM = 'X-Amz-Security-Token'\n\n/**\n * Standard Amazon AWS header names\n */\nexport const AMZ_CONTENT_SHA256_HEADER = 'x-amz-content-sha256'\nexport const AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase()\nexport const AMZ_SIGNATURE_HEADER = AMZ_SIGNATURE_QUERY_PARAM.toLowerCase()\nexport const AMZ_TARGET_HEADER = AMZ_TARGET_QUERY_PARAM.toLowerCase()\nexport const AMZ_TOKEN_HEADER = AMZ_TOKEN_QUERY_PARAM.toLowerCase()\n\n/**\n * Common HTTP headers we rely on in the signing process\n */\nexport const AUTHORIZATION_HEADER = 'authorization'\nexport const DATE_HEADER = 'date'\n\n/**\n * Lists the headers that are generated as part of the signature process.\n */\nexport const GENERATED_HEADERS = [AUTHORIZATION_HEADER, AMZ_DATE_HEADER, DATE_HEADER]\nexport const HOST_HEADER = 'host'\n\n/**\n * Lists the headers that should never be included in the\n * request signature signature process.\n */\nexport const ALWAYS_UNSIGNABLE_HEADERS = {\n authorization: true,\n 'cache-control': true,\n connection: true,\n expect: true,\n from: true,\n 'keep-alive': true,\n 'max-forwards': true,\n pragma: true,\n referer: true,\n te: true,\n trailer: true,\n 'transfer-encoding': true,\n upgrade: true,\n 'user-agent': true,\n 'x-amzn-trace-id': true,\n}\n\n/**\n * Signature specific constants included in the signing process\n */\nexport const KEY_TYPE_IDENTIFIER = 'aws4_request'\nexport const SIGNING_ALGORITHM_IDENTIFIER = 'AWS4-HMAC-SHA256'\n\n/**\n * Maximum time to live of a signed request in seconds: 7 days.\n */\nexport const MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7\n\n/**\n * SHA256 hash of an empty string (so we don't waste cycles recomputing it)\n */\nexport const EMPTY_SHA256 = 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'\n\n/**\n * SHA256 hash of the unsigned payload constant (so we don't waste cycles recomputing it)\n */\nexport const UNSIGNED_PAYLOAD_SHA256 =\n '5a41b0751e4537c6ff868564ab44a4d4ecceec2ec5b1c5f74d97422968e04237'\n\nexport const UNSIGNED_PAYLOAD = 'UNSIGNED-PAYLOAD'\n","import crypto from 'k6/crypto'\n\nimport * as constants from './constants'\nimport { AWSError } from './error'\nimport { hasHeader, HTTPHeaderBag, HTTPRequest, QueryParameterBag, SignedHTTPRequest } from './http'\nimport { isArrayBuffer } from './utils'\n\n/**\n * SignatureV4 can be used to sign HTTP requests and presign URLs using the AWS Signature\n * Version 4 signing process.\n *\n * It offers two signing methods:\n * - sign: signs the request headers and payload\n * - presign: returns a presigned (authorization information contained in the query string) URL\n *\n * @see https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html\n */\nexport class SignatureV4 {\n /**\n * The name of the service to sign for.\n */\n private readonly service: string\n\n /**\n * The name of the region to sign for.\n */\n private readonly region: string\n\n /**\n * The credentials with which the request should be signed.\n */\n private readonly credentials: Credentials\n\n /**\n * Whether to uri-escape the request URI path as part of computing the\n * canonical request string. This is required for every AWS service, except\n * Amazon S3, as of late 2017.\n *\n * @default [true]\n */\n private readonly uriEscapePath: boolean\n\n /**\n * Whether to calculate a checksum of the request body and include it as\n * either a request header (when signing) or as a query string parameter\n * (when presigning). This is required for AWS Glacier and Amazon S3 and optional for\n * every other AWS service as of late 2017.\n *\n * @default [true]\n */\n private readonly applyChecksum: boolean\n\n // TODO: uriEscapePath and applyChecksum should not be present in the constructor\n constructor({\n service,\n region,\n credentials,\n uriEscapePath,\n applyChecksum,\n }: SignatureV4Options) {\n this.service = service\n this.region = region\n this.credentials = credentials\n this.uriEscapePath = typeof uriEscapePath === 'boolean' ? uriEscapePath : true\n this.applyChecksum = typeof applyChecksum === 'boolean' ? applyChecksum : true\n }\n\n /**\n * Includes AWS v4 signing information to the provided HTTP request.\n *\n * This method adds an Authorization header to the request, containing\n * the signature and other signing information. It also returns a preformatted\n * URL that can be used to make the k6 http request.\n *\n * This method mutates the request object.\n *\n * @param request {HTTPRequest} The request to sign.\n * @param options {Partial} Options for signing the request.\n * @returns {SignedHTTPRequest} The signed request.\n */\n sign(request: HTTPRequest, options: Partial = {}): SignedHTTPRequest {\n // Set default values for options which are not provided by the user.\n const defaultOptions = {\n signingDate: new Date(),\n unsignableHeaders: new Set(),\n signableHeaders: new Set(),\n }\n\n // Merge default options with the ones maybe provided by the user.\n const finalOptions = { ...defaultOptions, ...options }\n\n const { longDate, shortDate }: DateInfo = formatDate(finalOptions.signingDate)\n const service = finalOptions.signingService || this.service\n const region = finalOptions.signingRegion || this.region\n const scope = `${shortDate}/${region}/${service}/${constants.KEY_TYPE_IDENTIFIER}`\n\n // Required by the specification:\n // \"For HTTP/1.1 requests, you must include the host header at a minimum.\n // Standard headers like content-type are optional.\n // For HTTP/2 requests, you must include the :authority header instead of\n // the host header. Different services might require other headers.\"\n if (!request.headers[constants.HOST_HEADER]) {\n request.headers[constants.HOST_HEADER] = request.endpoint.hostname\n }\n\n // Filter out headers that will be generated and managed by the signing process.\n // If the user provide any of those as part of the HTTPRequest's headers, they\n // will be ignored.\n for (const headerName of Object.keys(request.headers)) {\n if (constants.GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) {\n delete request.headers[headerName]\n }\n }\n\n request.headers[constants.AMZ_DATE_HEADER] = longDate\n if (this.credentials.sessionToken) {\n request.headers[constants.AMZ_TOKEN_HEADER] = this.credentials.sessionToken\n }\n\n // If the request body is a typed array, we need to convert it to a buffer\n // so that we can calculate the checksum.\n if (ArrayBuffer.isView(request.body)) {\n request.body = request.body.buffer\n }\n\n // Ensure we avoid passing undefined to the crypto hash function.\n if (!request.body) {\n request.body = ''\n }\n\n const payloadHash = this.computePayloadHash(request)\n if (\n !hasHeader(constants.AMZ_CONTENT_SHA256_HEADER, request.headers) &&\n this.applyChecksum\n ) {\n request.headers[constants.AMZ_CONTENT_SHA256_HEADER] = payloadHash\n }\n\n const canonicalHeaders = this.computeCanonicalHeaders(\n request,\n finalOptions.unsignableHeaders,\n finalOptions.signableHeaders\n )\n const signature = this.calculateSignature(\n longDate,\n scope,\n this.deriveSigningKey(this.credentials, service, region, shortDate),\n this.createCanonicalRequest(request, canonicalHeaders, payloadHash)\n )\n\n /**\n * Step 4 of the signing process: add the signature to the HTTP request's headers.\n *\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html\n */\n request.headers[constants.AUTHORIZATION_HEADER] =\n `${constants.SIGNING_ALGORITHM_IDENTIFIER} ` +\n `Credential=${this.credentials.accessKeyId}/${scope}, ` +\n `SignedHeaders=${Object.keys(canonicalHeaders).sort().join(';')}, ` +\n `Signature=${signature}`\n\n // If a request path was provided, add it to the URL\n let url = request.endpoint.href\n if (request.path) {\n // Ensure the URI and the request path are properly concatenated\n // by adding a trailing slash to the URI if it's missing.\n if (!url.endsWith('/') && !request.path.startsWith('/')) {\n url += '/'\n }\n\n // Append the path to the URL\n url += request.path\n }\n\n // If a request query string was provided, add it to the URL\n if (request.query) {\n // We exclude the signature from the query string\n url += `?${this.serializeQueryParameters(request.query)}`\n }\n\n return {\n url: url,\n ...request,\n }\n }\n\n /**\n * Produces a presigned URL with AWS v4 signature information for the provided HTTP request.\n *\n * A presigned URL is a URL that contains the authorization information\n * (signature and other signing information) in the query string. This method\n * returns a preformatted URL that can be used to make the k6 http request.\n *\n * @param originalRequest - The original request to presign.\n * @param options - Options controlling the signing of the request.\n * @returns A signed request, including the presigned URL.\n */\n presign(originalRequest: HTTPRequest, options: PresignOptions = {}): SignedHTTPRequest {\n const {\n signingDate = new Date(),\n expiresIn = 3600,\n unsignableHeaders,\n unhoistableHeaders,\n signableHeaders,\n signingRegion,\n signingService,\n } = options\n const { longDate, shortDate }: DateInfo = formatDate(signingDate)\n const region = signingRegion || this.region\n const service = signingService || this.service\n\n if (expiresIn > constants.MAX_PRESIGNED_TTL) {\n throw new InvalidSignatureError(\n \"Signature version 4 presigned URLs can't be valid for more than 7 days\"\n )\n }\n\n const scope = `${shortDate}/${region}/${service}/${constants.KEY_TYPE_IDENTIFIER}`\n const request = this.moveHeadersToQuery(originalRequest, { unhoistableHeaders })\n\n // Required by the specification:\n // \"For HTTP/1.1 requests, you must include the host header at a minimum.\n // Standard headers like content-type are optional.\n // For HTTP/2 requests, you must include the :authority header instead of\n // the host header. Different services might require other headers.\"\n if (!request.headers[constants.HOST_HEADER]) {\n request.headers[constants.HOST_HEADER] = originalRequest.endpoint.hostname\n }\n\n // If the user provided a session token, include it in the signed url query string.\n if (this.credentials.sessionToken) {\n request.query[constants.AMZ_TOKEN_QUERY_PARAM] = this.credentials.sessionToken\n }\n // Add base signing query parameters to the request, as described in the documentation\n // @see https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html\n request.query[constants.AMZ_ALGORITHM_QUERY_PARAM] = constants.SIGNING_ALGORITHM_IDENTIFIER\n request.query[\n constants.AMZ_CREDENTIAL_QUERY_PARAM\n ] = `${this.credentials.accessKeyId}/${scope}`\n request.query[constants.AMZ_DATE_QUERY_PARAM] = longDate\n request.query[constants.AMZ_EXPIRES_QUERY_PARAM] = expiresIn.toString(10)\n\n const canonicalHeaders = this.computeCanonicalHeaders(\n request,\n unsignableHeaders,\n signableHeaders\n )\n request.query[constants.AMZ_SIGNED_HEADERS_QUERY_PARAM] = Object.keys(canonicalHeaders)\n .sort()\n .join(';')\n\n const signingKey = this.deriveSigningKey(this.credentials, service, region, shortDate)\n\n // Computing the payload from the original request. This is required\n // in the event the user attempts to produce a presigned URL for s3,\n // which requires the payload hash to be 'UNSIGNED-PAYLOAD'.\n //\n // To that effect, users need to set the 'x-amz-content-sha256' header,\n // and mark it as unhoistable and unsignable. When setup this way,\n // the computePayloadHash method will then return the string 'UNSIGNED-PAYLOAD'.\n const payloadHash = this.computePayloadHash(originalRequest)\n const canonicalRequest = this.createCanonicalRequest(request, canonicalHeaders, payloadHash)\n\n request.query[constants.AMZ_SIGNATURE_QUERY_PARAM] = this.calculateSignature(\n longDate,\n scope,\n signingKey,\n canonicalRequest\n )\n\n // If a request path was provided, add it to the URL\n let url = originalRequest.endpoint.href\n if (request.path) {\n // Ensure there is a trailing slash at the end of the URL\n // so that appending the path does not result in a malformed URL.\n url = url?.endsWith('/') ? url : url + '/'\n\n // Append the path to the URL\n url += request.path\n }\n\n // If a request query string was provided, add it to the URL\n if (request.query) {\n url += `?${this.serializeQueryParameters(request.query)}`\n }\n\n return { url: url, ...request }\n }\n\n /**\n * Create a string including information from your request\n * in a AWS signature v4 standardized (canonical) format.\n *\n * Step 1 of the signing process: create the canonical request string.\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html\n *\n * @param request {HTTPRequest} The request to sign.\n * @param canonicalHeaders {HTTPHeaderBag} The request's canonical headers.\n * @param payloadHash {string} The hexadecimally encoded request's payload hash .\n * @returns {string} The canonical request string.\n */\n private createCanonicalRequest(\n request: HTTPRequest,\n canonicalHeaders: HTTPHeaderBag,\n payloadHash: string\n ): string {\n const sortedHeaders = Object.keys(canonicalHeaders).sort()\n const sortedCanonicalHeaders = sortedHeaders\n .map((name) => `${name}:${canonicalHeaders[name]}`)\n .join('\\n')\n const signedHeaders = sortedHeaders.join(';')\n\n return (\n `${request.method}\\n` +\n `${this.computeCanonicalURI(request)}\\n` +\n `${this.computeCanonicalQuerystring(request)}\\n` +\n `${sortedCanonicalHeaders}\\n\\n` +\n `${signedHeaders}\\n` +\n `${payloadHash}`\n )\n }\n\n /**\n * Create the \"string to sign\" part of the signature Version 4 protocol.\n *\n * The \"string to sign\" includes meta information about your request and\n * about the canonical request that you created with `createCanonicalRequest`.\n * It is used hand in hand with the signing key to create the request signature.\n * Step 2 of the signing process: create the string to sign.\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-create-string-to-sign.html\n *\n * @param longDate {string} The request's date in iso 8601 format.\n * @param credentialScope {string} The request's credential scope.\n * @param canonicalRequest {string} The request's canonical request.\n * @returns {string} The \"string to sign\".\n */\n private createStringToSign(\n longDate: string,\n credentialScope: string,\n canonicalRequest: string\n ): string {\n const hashedCanonicalRequest = crypto.sha256(canonicalRequest, 'hex')\n\n return (\n `${constants.SIGNING_ALGORITHM_IDENTIFIER}\\n` +\n `${longDate}\\n` +\n `${credentialScope}\\n` +\n `${hashedCanonicalRequest}`\n )\n }\n\n /**\n * Calculte the signature for AWS signature version 4.\n *\n * Step 3 of the signing process: create the signature.\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-calculate-signature.html\n *\n * @param longDate {string} The request's date in iso 8601 format.\n * @param credentialScope {string} The request's credential scope.\n * @param signingKey {string} the signing key as computed by the deriveSigningKey method.\n * @param canonicalRequest {string} The request's canonical request.\n * @returns {string} The signature.\n */\n private calculateSignature(\n longDate: string,\n credentialScope: string,\n signingKey: Uint8Array,\n canonicalRequest: string\n ): string {\n const stringToSign = this.createStringToSign(longDate, credentialScope, canonicalRequest)\n return crypto.hmac('sha256', signingKey, stringToSign, 'hex')\n }\n\n /**\n * Derives the signing key for authenticating requests signed with\n * the Signature version 4 authentication protocol.\n *\n * deriveSigningKey produces a signing key by creating a series of\n * hash-based message authentication codes (HMACs) represented in\n * a binary format.\n *\n * The derived signing key is specific to the date it's made at, as well as\n * the service and region it targets.\n *\n * @param credentials {AWSCredentials} The credentials to use for signing.\n * @param service {string} The service the request is targeted at.\n * @param region {string} The region the request is targeted at.\n * @param shortDate {string} The request's date in YYYYMMDD format.\n * @returns {Uint8Array} The derived signing key.\n */\n private deriveSigningKey(\n credentials: Credentials,\n service: string,\n region: string,\n shortDate: string\n ): Uint8Array {\n const kSecret: string = credentials.secretAccessKey\n /**\n * crypto.hmac returns a value of type `bytes`, which is an alias for\n * number[]. However, the secret argument to hmac needs to either be\n * a `string` or ArrayBuffer. The only way to get around this is to\n * cast the return value of hmac to any, thus, we disable the no-explicit-any\n * ESLint rule for this function.\n */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const kDate: any = crypto.hmac('sha256', 'AWS4' + kSecret, shortDate, 'binary')\n const kRegion: any = crypto.hmac('sha256', kDate, region, 'binary')\n const kService: any = crypto.hmac('sha256', kRegion, service, 'binary')\n const kSigning: any = crypto.hmac('sha256', kService, 'aws4_request', 'binary')\n /* eslint-enable @typescript-eslint/no-explicit-any */\n\n return kSigning\n }\n\n /**\n * Create a string that includes information from your request\n * in a AWS signature v4 standardized (canonical) format.\n *\n * @param param0 {HTTPRequest} The request to sign.\n * @returns {string} The canonical URI.\n */\n private computeCanonicalURI({ path }: HTTPRequest): string {\n if (this.uriEscapePath) {\n // Non-S3 services, we normalize the path and then double URI encode it.\n // Ref: \"Remove Dot Segments\" https://datatracker.ietf.org/doc/html/rfc3986#section-5.2.4\n const normalizedURISegments = []\n\n for (const URISegment of path.split('/')) {\n if (URISegment?.length === 0) {\n continue\n }\n\n if (URISegment === '.') {\n continue\n }\n\n if (URISegment === '..') {\n normalizedURISegments.pop()\n } else {\n normalizedURISegments.push(URISegment)\n }\n }\n\n // Normalize the URI\n const leading = path?.startsWith('/') ? '/' : ''\n const URI = normalizedURISegments.join('/')\n const trailing = normalizedURISegments.length > 0 && path?.endsWith('/') ? '/' : ''\n const normalizedURI = `${leading}${URI}${trailing}`\n\n const doubleEncoded = encodeURIComponent(normalizedURI)\n\n return doubleEncoded.replace(/%2F/g, '/')\n }\n\n // For S3, we shouldn't normalize the path. For example, object name\n // my-object//example//photo.user should not be normalized to\n // my-object/example/photo.user\n return path\n }\n\n /**\n * Serializes the request's query parameters into their canonical\n * string version. If the request does not include a query parameters,\n * returns an empty string.\n *\n * @param param0 {HTTPRequest} The request containing the query parameters.\n * @returns {string} The canonical query string.\n */\n private computeCanonicalQuerystring({ query = {} }: HTTPRequest): string {\n const keys: Array = []\n const serialized: Record = {}\n\n for (const key of Object.keys(query).sort()) {\n if (key.toLowerCase() === constants.AMZ_SIGNATURE_HEADER) {\n continue\n }\n\n keys.push(key)\n const value = query[key]\n\n if (typeof value === 'string') {\n serialized[key] = `${escapeURI(key)}=${escapeURI(value)}`\n } else if (Array.isArray(value)) {\n serialized[key] = value\n .slice(0)\n .sort()\n .reduce(\n (encoded: Array, value: string) =>\n encoded.concat([`${escapeURI(key)}=${escapeURI(value)}`]),\n []\n )\n .join('&')\n }\n }\n\n return keys\n .map((key) => serialized[key])\n .filter((serialized) => serialized)\n .join('&')\n }\n\n /**\n * Create the canonical form of the request's headers.\n * Canonical headers consist of all the HTTP headers you\n * are including with the signed request.\n *\n * @param param0 {HTTPRequest} The request to compute the canonical headers of.\n * @param unsignableHeaders {Set} The headers that should not be signed.\n * @param signableHeaders {Set} The headers that should be signed.\n * @returns {string} The canonical headers.\n */\n private computeCanonicalHeaders(\n { headers }: HTTPRequest,\n unsignableHeaders?: Set,\n signableHeaders?: Set\n ): HTTPHeaderBag {\n const canonicalHeaders: HTTPHeaderBag = {}\n\n for (const headerName of Object.keys(headers).sort()) {\n if (headers[headerName] == undefined) {\n continue\n }\n\n const canonicalHeaderName = headerName.toLowerCase()\n if (\n canonicalHeaderName in constants.ALWAYS_UNSIGNABLE_HEADERS ||\n unsignableHeaders?.has(canonicalHeaderName)\n ) {\n if (\n !signableHeaders ||\n (signableHeaders && !signableHeaders.has(canonicalHeaderName))\n ) {\n continue\n }\n }\n\n if (typeof headers[headerName] === 'string') {\n canonicalHeaders[canonicalHeaderName] = headers[headerName] = headers[headerName]\n .trim()\n .replace(/\\s+/g, ' ')\n }\n }\n\n return canonicalHeaders\n }\n\n /**\n * Computes the SHA256 cryptographic hash of the request's body.\n *\n * If the headers contain the 'X-Amz-Content-Sha256' header, then\n * the value of that header is returned instead. This proves useful\n * when, for example, presiging a URL for S3, as the payload hash\n * must always be equal to 'UNSIGNED-PAYLOAD'.\n *\n * @param param0 {HTTPRequest} The request to compute the payload hash of.\n * @returns {string} The hex encoded SHA256 payload hash, or the value of the 'X-Amz-Content-Sha256' header.\n */\n private computePayloadHash({ headers, body }: HTTPRequest): string {\n // for (const headerName of Object.keys(headers)) {\n // // If the header is present, return its value.\n // // So that we let the 'UNSIGNED-PAYLOAD' value pass through.\n // if (headerName.toLowerCase() === constants.AMZ_CONTENT_SHA256_HEADER) {\n // return headers[headerName]\n // }\n // }\n\n if (headers[constants.AMZ_CONTENT_SHA256_HEADER]) {\n return headers[constants.AMZ_CONTENT_SHA256_HEADER]\n }\n\n if (body == undefined) {\n return constants.EMPTY_SHA256\n }\n\n if (typeof body === 'string' || isArrayBuffer(body)) {\n return crypto.sha256(body, 'hex').toLowerCase()\n }\n\n if (ArrayBuffer.isView(body)) {\n // If the request body is a typed array, we need to convert it to a buffer\n // so that we can calculate the checksum.\n return crypto.sha256((body as DataView).buffer, 'hex').toLowerCase()\n }\n\n return constants.UNSIGNED_PAYLOAD\n }\n\n /**\n * Moves a request's headers to its query parameters.\n *\n * The operation will ignore any amazon standard headers, prefixed\n * with 'X-Amz-'. It will also ignore any headers specified as unhoistable\n * by the options.\n *\n * The operation will delete the headers from the request.\n *\n * @param request {HTTPRequest} The request to move the headers from.\n * @param options\n * @returns {HTTPRequest} The request with the headers moved to the query parameters.\n */\n private moveHeadersToQuery(\n request: HTTPRequest,\n options: { unhoistableHeaders?: Set } = {}\n ): HTTPRequest & { query: QueryParameterBag } {\n const requestCopy = JSON.parse(JSON.stringify(request))\n const { headers, query = {} as QueryParameterBag } = requestCopy\n\n for (const name of Object.keys(headers)) {\n const lowerCaseName = name.toLowerCase()\n if (\n lowerCaseName.slice(0, 6) === 'x-amz-' &&\n !options.unhoistableHeaders?.has(lowerCaseName)\n ) {\n query[name] = headers[name]\n delete headers[name]\n }\n }\n\n return {\n ...requestCopy,\n headers,\n query,\n }\n }\n\n /**\n * Serializes a HTTPRequest's query parameter bag into a string.\n *\n * @param query {QueryParameterBag} The query parameters to serialize.\n * @param ignoreKeys {Set} The keys to ignore.\n * @returns {string} The serialized, and ready to use in a URL, query parameters.\n */\n private serializeQueryParameters(query: QueryParameterBag, ignoreKeys?: string[]): string {\n const keys: Array = []\n const serialized: Record = {}\n\n for (const key of Object.keys(query).sort()) {\n if (ignoreKeys?.includes(key.toLowerCase())) {\n continue\n }\n\n keys.push(key)\n const value = query[key]\n\n if (typeof value === 'string') {\n serialized[key] = `${escapeURI(key)}=${escapeURI(value)}`\n } else if (Array.isArray(value)) {\n serialized[key] = value\n .slice(0)\n .sort()\n .reduce(\n (encoded: Array, value: string) =>\n encoded.concat([`${escapeURI(key)}=${escapeURI(value)}`]),\n []\n )\n .join('&')\n }\n }\n\n return keys\n .map((key) => serialized[key])\n .filter((serialized) => serialized)\n .join('&')\n }\n}\n\n/**\n * Error indicating an Invalid signature has been sent to AWS services\n *\n * Inspired from AWS official error types, as\n * described in:\n * * https://aws.amazon.com/blogs/developer/service-error-handling-modular-aws-sdk-js/\n * * https://github.com/aws/aws-sdk-js/blob/master/lib/error.d.ts\n */\nexport class InvalidSignatureError extends AWSError {\n /**\n * Constructs an InvalidSignatureError\n *\n * @param {string} message - human readable error message\n */\n constructor(message: string, code?: string) {\n super(message, code)\n this.name = 'InvalidSignatureError'\n }\n}\n\nexport interface SignatureV4Options {\n /**\n * The name of the service to sign for.\n */\n service: string\n\n /**\n * The name of the region to sign for.\n */\n region: string\n\n /**\n * The credentials with which the request should be signed.\n */\n credentials: Credentials\n\n /**\n * Whether to uri-escape the request URI path as part of computing the\n * canonical request string. This is required for every AWS service, except\n * Amazon S3, as of late 2017.\n *\n * @default [true]\n */\n uriEscapePath?: boolean\n\n /**\n * Whether to calculate a checksum of the request body and include it as\n * either a request header (when signing) or as a query string parameter\n * (when presigning). This is required for AWS Glacier and Amazon S3 and optional for\n * every other AWS service as of late 2017.\n *\n * @default [true]\n */\n applyChecksum?: boolean\n}\n\nexport interface SignOptions {\n /**\n * The date and time to be used as signature metadata. This value should be\n * a Date object, a unix (epoch) timestamp, or a string that can be\n * understood by the JavaScript `Date` constructor.If not supplied, the\n * value returned by `new Date()` will be used.\n */\n signingDate?: Date\n\n /**\n * The service signing name. It will override the service name of the signer\n * in current invocation\n */\n signingService?: string\n\n /**\n * The region name to sign the request. It will override the signing region of the\n * signer in current invocation\n */\n signingRegion?: string\n}\n\nexport interface RequestSigningOptions extends SignOptions {\n /**\n * A set of strings whose members represents headers that cannot be signed.\n * All headers in the provided request will have their names converted to\n * lower case and then checked for existence in the unsignableHeaders set.\n */\n unsignableHeaders?: Set\n\n /**\n * A set of strings whose members represents headers that should be signed.\n * Any values passed here will override those provided via unsignableHeaders,\n * allowing them to be signed.\n *\n * All headers in the provided request will have their names converted to\n * lower case before signing.\n */\n signableHeaders?: Set\n}\n\nexport interface PresignOptions extends RequestSigningOptions {\n /**\n * The number of seconds before the presigned URL expires\n */\n expiresIn?: number\n\n /**\n * A set of strings whose representing headers that should not be hoisted\n * to presigned request's query string. If not supplied, the presigner\n * moves all the AWS-specific headers (starting with `x-amz-`) to the request\n * query string. If supplied, these headers remain in the presigned request's\n * header.\n * All headers in the provided request will have their names converted to\n * lower case and then checked for existence in the unhoistableHeaders set.\n */\n unhoistableHeaders?: Set\n}\n\nexport interface Credentials {\n /**\n * AWS access key ID\n */\n readonly accessKeyId: string\n\n /**\n * AWS secret access key\n */\n readonly secretAccessKey: string\n\n /**\n * A security or session token to use with these credentials. Usually\n * present for temporary credentials.\n */\n readonly sessionToken?: string\n}\n\nexport interface DateInfo {\n /**\n * ISO8601 formatted date string\n */\n longDate: string\n\n /**\n * String in the format YYYYMMDD\n */\n shortDate: string\n}\n\n/**\n * Escapes a URI following the AWS signature v4 escaping rules.\n *\n * @param URI {string} The URI to escape.\n * @returns {string} The escaped URI.\n */\nfunction escapeURI(URI: string): string {\n const hexEncode = (c: string): string => {\n return `%${c.charCodeAt(0).toString(16).toUpperCase()}`\n }\n\n return encodeURIComponent(URI).replace(/[!'()*]/g, hexEncode)\n}\n\n/**\n * formatDate formats a Date object into a ISO8601 formatted date string\n * and a string in the format YYYYMMDD.\n *\n * @param date {Date} The date to format.\n * @returns {DateInfo} The formatted date.\n */\nfunction formatDate(date: Date): DateInfo {\n const longDate = iso8601(date).replace(/[-:]/g, '')\n return {\n longDate,\n shortDate: longDate.slice(0, 8),\n }\n}\n\n/**\n * Formats a time into an ISO 8601 string.\n *\n * @see https://en.wikipedia.org/wiki/ISO_8601\n *\n * @param time {number | string | Date} The time to format.\n * @returns {string} The ISO 8601 formatted time.\n */\nfunction iso8601(time: number | string | Date): string {\n return toDate(time)\n .toISOString()\n .replace(/\\.\\d{3}Z$/, 'Z')\n}\n\n/**\n * Converts a time value into a Date object.\n *\n * @param time {number | string | Date} The time to convert.\n * @returns {Date} The resulting Date object.\n */\nfunction toDate(time: number | string | Date): Date {\n if (typeof time === 'number') {\n return new Date(time * 1000)\n }\n\n if (typeof time === 'string') {\n if (Number(time)) {\n return new Date(Number(time) * 1000)\n }\n\n return new Date(time)\n }\n\n return time\n}\n","import { Endpoint } from './endpoint'\n\n/**\n * Type representing HTTP schemes\n */\nexport type HTTPScheme = 'http' | 'https'\n\n/**\n * Type representing HTTP Methods\n *\n */\nexport type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'DELETE'\n\n/**\n * Type alias representing HTTP Headers\n */\nexport type HTTPHeaders = { [key: string]: string }\n\n/**\n * HTTPHeaderBag is a type alias representing HTTP Headers\n */\nexport type HTTPHeaderBag = Record\n\nexport function hasHeader(soughtHeader: string, headers: HTTPHeaderBag): boolean {\n soughtHeader = soughtHeader.toLowerCase()\n\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * QueryParameterBag is a type alias representing HTTP Query Parameters\n */\nexport type QueryParameterBag = Record>\n\n/**\n * HTTPRequest represents an HTTP request\n */\nexport interface HTTPRequest {\n /**\n * The HTTP method to use\n */\n method: HTTPMethod\n\n /**\n * Represents an AWS service endpoint, providing utilities for parsing and handling URL details.\n */\n endpoint: Endpoint\n\n /**\n * The path to the resource\n */\n path: string\n\n /**\n * The query parameters to include in the request\n */\n query?: QueryParameterBag\n\n /**\n * The headers to include in the request\n */\n headers: HTTPHeaderBag\n\n /**\n * The body of the request\n */\n body?: string | ArrayBuffer | null\n}\n\n/**\n * SignedHTTPRequest represents an HTTP request that has been signed\n * with an AWS signature. It is a superset of HTTPRequest adding\n * the following fields:\n * - url: the fully qualified URL of the request that can be used in a k6 http.request.\n */\nexport interface SignedHTTPRequest extends HTTPRequest {\n url: string\n}\n","/**\n *\n * @param value\n * @returns\n */\nexport function isArrayBuffer(value: unknown): value is ArrayBuffer {\n return (\n typeof ArrayBuffer === 'function' &&\n (value instanceof ArrayBuffer ||\n Object.prototype.toString.call(value) === '[object ArrayBuffer]')\n )\n}\n\nexport function toFormUrlEncoded(form: Record): string {\n return Object.keys(form)\n .reduce((params, key) => {\n const value = form[key]\n if (value !== undefined && value !== null) {\n params.push(`${encodeURIComponent(key)}=${encodeURIComponent(value)}`)\n }\n return params\n }, [] as string[])\n .join('&')\n}\n","import http, { RefinedResponse, ResponseType } from 'k6/http'\n\nimport { AWSClient } from './client'\nimport { AWSConfig } from './config'\nimport { AWSError } from './error'\nimport { JSONObject } from './json'\nimport { InvalidSignatureError, SignatureV4 } from './signature'\nimport { AMZ_TARGET_HEADER } from './constants'\nimport { HTTPHeaders, HTTPMethod } from './http'\n\n/**\n * Class allowing to interact with Amazon AWS's Event Bridge service\n */\nexport class EventBridgeClient extends AWSClient {\n private readonly signature: SignatureV4\n private readonly method: HTTPMethod\n private readonly commonHeaders: HTTPHeaders\n\n constructor(awsConfig: AWSConfig) {\n super(awsConfig, 'events')\n\n this.signature = new SignatureV4({\n service: this.serviceName,\n region: this.awsConfig.region,\n credentials: {\n accessKeyId: this.awsConfig.accessKeyId,\n secretAccessKey: this.awsConfig.secretAccessKey,\n sessionToken: this.awsConfig.sessionToken,\n },\n uriEscapePath: true,\n applyChecksum: false,\n })\n\n this.method = 'POST'\n this.commonHeaders = {\n 'Content-Type': 'application/x-amz-json-1.1',\n }\n }\n\n /**\n * Sends custom events to Amazon EventBridge so that they can be matched to rules.\n *\n * @param {PutEventsInput} input - The input for the PutEvents operation.\n * @throws {EventBridgeServiceError}\n * @throws {InvalidSignatureError}\n */\n async putEvents(input: PutEventsInput) {\n const parsedEvent = {\n ...input,\n Entries: input.Entries.map((entry) => ({\n ...entry,\n Detail: JSON.stringify(entry.Detail),\n })),\n }\n\n const signedRequest = this.signature.sign(\n {\n method: this.method,\n endpoint: this.endpoint,\n path: '/',\n headers: {\n ...this.commonHeaders,\n [AMZ_TARGET_HEADER]: `AWSEvents.PutEvents`,\n },\n body: JSON.stringify(parsedEvent),\n },\n {}\n )\n\n const res = await http.asyncRequest(this.method, signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, EventBridgeOperation.PutEvents)\n }\n\n\n protected handleError(response: RefinedResponse, operation?: string): boolean {\n const errored = super.handleError(response, operation);\n if (!errored) {\n return false\n }\n\n const errorCode = response.error_code\n const error = response.json() as JSONObject\n if (errorCode >= 1400 && errorCode <= 1499) {\n // In the event of certain errors, the message is not set.\n // Also, note the inconsistency in casing...\n const errorMessage: string =\n (error.Message as string) || (error.message as string) || (error.__type as string)\n\n // Handle specifically the case of an invalid signature\n if (error.__type === 'InvalidSignatureException') {\n throw new InvalidSignatureError(errorMessage, error.__type)\n }\n\n // Otherwise throw a standard service error\n throw new EventBridgeServiceError(errorMessage, error.__type as string, operation as EventBridgeOperation)\n }\n\n if (errorCode === 1500) {\n throw new EventBridgeServiceError(\n 'An error occured on the server side',\n 'InternalServiceError',\n operation as EventBridgeOperation\n )\n }\n\n return true\n }\n}\n\nenum EventBridgeOperation {\n PutEvents = 'PutEvents',\n}\n\n/**\n * Represents an event to be submitted.\n *\n * @typedef {Object} PutEventEntry\n *\n * @property {string} Detail - A valid serialized JSON object. There is no other schema imposed. The JSON object may contain fields and nested sub-objects.\n * @property {string} DetailType - Free-form string, with a maximum of 128 characters, used to decide what fields to expect in the event detail.\n * @property {string} EventBusName - The name or ARN of the event bus to receive the event. Only the rules that are associated with this event bus are used to match the event. If you omit this, the default event bus is used.\n * @property {string[]} Resources - AWS resources, identified by Amazon Resource Name (ARN), which the event primarily concerns. Any number, including zero, may be present.\n * @property {string} Source - The source of the event.\n */\ninterface PutEventEntry {\n Source: string\n Detail: JSONObject\n DetailType: string\n EventBusName?: string\n Resources?: [string]\n}\n\n/**\n * Represents the input for a put events operation.\n *\n * @typedef {Object} PutEventsInput\n *\n * @property {string} [EndpointId] - The optional URL subdomain of the endpoint.\n * @property {PutEventEntry[]} Entries - An array of entries that defines an event in your system.\n */\ninterface PutEventsInput {\n EndpointId?: string\n Entries: PutEventEntry[]\n}\n\nexport class EventBridgeServiceError extends AWSError {\n operation: EventBridgeOperation\n\n /**\n * Constructs a EventBridgeServiceError\n *\n * @param {string} message - human readable error message\n * @param {string} code - A unique short code representing the error that was emitted\n * @param {string} operation - Name of the failed Operation\n */\n constructor(message: string, code: string, operation: EventBridgeOperation) {\n super(message, code)\n this.name = 'EventBridgeServiceError'\n this.operation = operation\n }\n}\n"],"names":["__webpack_require__","module","getter","__esModule","d","a","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","Endpoint","endpoint","_classCallCheck","_defineProperty","completeUrl","startsWith","concat","DEFAULT_PROTOCOL","protocolMatch","match","hostnameWithPort","_slicedToArray","replace","split","this","_protocol","slice","_hostname","_port","parseInt","undefined","href","set","_value$split2","hostname","port","protocol","host","AWSConfig","options","region","InvalidAWSConfigError","accessKeyId","length","secretAccessKey","sessionToken","_createClass","__ENV","AWS_REGION","AWS_ACCESS_KEY_ID","AWS_SECRET_ACCESS_KEY","AWS_SESSION_TOKEN","_Error","message","_callSuper","_inherits","_wrapNativeSuper","Error","require","AWSError","code","_this","name","xmlDocument","doc","parseHTML","find","text","response","headers","error","json","Message","__type","parseXML","body","NetworkError","_Error2","_this2","ErrorMessages","GeneralError","_NetworkError2","DNSError","_NetworkError3","TCPError","_NetworkError4","TLSError","_NetworkError5","HTTP2Error","_NetworkError6","GeneralErrorKind","DNSErrorKind","TCPErrorKind","TLSErrorKind","HTTP2ErrorKind","_ErrorMessages","GenericError","NonTCPNetworkError","InvalidURL","HTTPRequestTimeout","GenericDNSError","NoIPFound","BlacklistedIP","BlacklistedHostname","GenericTCPError","BrokenPipeOnWrite","UnknownTCPError","GeneralTCPDialError","DialTimeoutError","DialConnectionRefused","DialUnknownError","ResetByPeer","GeneralTLSError","UnknownAuthority","CertificateHostnameMismatch","GenericHTTP2Error","GeneralHTTP2GoAwayError","AWSClient","awsConfig","serviceName","responseType","_endpoint","operation","status","errorCode","error_code","errorMessage","AMZ_DATE_QUERY_PARAM","AMZ_SIGNATURE_QUERY_PARAM","AMZ_TOKEN_QUERY_PARAM","AMZ_CONTENT_SHA256_HEADER","AMZ_DATE_HEADER","toLowerCase","AMZ_SIGNATURE_HEADER","AMZ_TARGET_HEADER","AMZ_TOKEN_HEADER","AUTHORIZATION_HEADER","GENERATED_HEADERS","HOST_HEADER","ALWAYS_UNSIGNABLE_HEADERS","authorization","connection","expect","from","pragma","referer","te","trailer","upgrade","KEY_TYPE_IDENTIFIER","SIGNING_ALGORITHM_IDENTIFIER","SignatureV4","_ref","service","credentials","uriEscapePath","applyChecksum","request","arguments","finalOptions","_objectSpread","signingDate","Date","unsignableHeaders","Set","signableHeaders","_formatDate","formatDate","longDate","shortDate","signingService","signingRegion","scope","constants","_i","_Object$keys","keys","headerName","indexOf","ArrayBuffer","isView","buffer","payloadHash","computePayloadHash","soughtHeader","hasHeader","canonicalHeaders","computeCanonicalHeaders","signature","calculateSignature","deriveSigningKey","createCanonicalRequest","sort","join","url","path","endsWith","query","serializeQueryParameters","originalRequest","_options$signingDate","_options$expiresIn","expiresIn","unhoistableHeaders","_formatDate2","InvalidSignatureError","moveHeadersToQuery","toString","signingKey","canonicalRequest","_url","sortedHeaders","sortedCanonicalHeaders","map","signedHeaders","method","computeCanonicalURI","computeCanonicalQuerystring","credentialScope","hashedCanonicalRequest","crypto","stringToSign","createStringToSign","kSecret","kDate","kRegion","kService","_ref2","_step","normalizedURISegments","_iterator","_createForOfIteratorHelper","s","n","done","URISegment","pop","push","err","e","f","leading","URI","trailing","normalizedURI","encodeURIComponent","_ref3","_step2","_ref3$query","serialized","_loop","escapeURI","Array","isArray","reduce","encoded","_iterator2","filter","_ref4","_step3","_iterator3","canonicalHeaderName","has","trim","_ref5","requestCopy","JSON","parse","stringify","_requestCopy$query","_i2","_Object$keys2","_options$unhoistableH","lowerCaseName","ignoreKeys","_step4","_loop2","includes","_iterator4","_AWSError","c","charCodeAt","toUpperCase","date","time","Number","toDate","toISOString","_regeneratorRuntime","t","r","i","iterator","asyncIterator","u","define","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","h","l","y","GeneratorFunction","GeneratorFunctionPrototype","p","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","reverse","prev","charAt","stop","rval","handle","complete","finish","delegateYield","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptor","apply","getOwnPropertyDescriptors","defineProperties","asyncGeneratorStep","_defineProperties","_toPropertyKey","_getPrototypeOf","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","Boolean","valueOf","_get","bind","_superPropBase","_setPrototypeOf","toPrimitive","String","_toPrimitive","EventBridgeClient","_AWSClient","commonHeaders","_callee","input","parsedEvent","signedRequest","res","_context","Entries","entry","Detail","sign","http","baseRequestParams","handleError","EventBridgeOperation","PutEvents","_putEvents","_next","_throw","_x","EventBridgeServiceError"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/aws/0.13.0/index.js b/lib/aws/0.13.0/index.js new file mode 100644 index 0000000..00a4804 --- /dev/null +++ b/lib/aws/0.13.0/index.js @@ -0,0 +1,3 @@ +/*! For license information please see index.js.LICENSE.txt */ +(()=>{"use strict";var t={2:(t,e,r)=>{r.d(e,{R:()=>s});var n=r(556),o=r(539);function i(t){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}function a(t,e){for(var r=0;r=200&&r<300&&""==i&&0===n)return!1;switch(n){case o.rN.GenericError:case o.rN.NonTCPNetworkError:case o.rN.InvalidURL:case o.rN.HTTPRequestTimeout:throw new o.$g(n);case o.yk.GenericDNSError:case o.yk.NoIPFound:case o.yk.BlacklistedIP:case o.yk.BlacklistedHostname:throw new o.M8(n);case o.op.GenericTCPError:case o.op.BrokenPipeOnWrite:case o.op.UnknownTCPError:case o.op.GeneralTCPDialError:case o.op.DialTimeoutError:case o.op.DialConnectionRefused:case o.op.DialUnknownError:case o.op.ResetByPeer:throw new o.km(n);case o.cK.GeneralTLSError:case o.cK.UnknownAuthority:case o.cK.CertificateHostnameMismatch:throw new o.ML(n);case o.F9.GenericHTTP2Error:case o.F9.GeneralHTTP2GoAwayError:throw new o.v1(n)}return!0}}],e&&a(t.prototype,e),r&&a(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}()},811:(t,e,r)=>{r.d(e,{g:()=>d,r:()=>v});var n=r(556);function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}function i(t,e,r){return e=s(e),function(t,e){if(e&&("object"==o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,c()?Reflect.construct(e,r||[],s(t).constructor):e.apply(t,r))}function a(t){var e="function"==typeof Map?new Map:void 0;return a=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf("[native code]")}catch(e){return"function"==typeof t}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,r)}function r(){return function(t,e,r){if(c())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,e);var o=new(t.bind.apply(t,n));return r&&u(o,r.prototype),o}(t,arguments,s(this).constructor)}return r.prototype=Object.create(t.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),u(r,t)},a(t)}function c(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(c=function(){return!!t})()}function u(t,e){return u=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},u(t,e)}function s(t){return s=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},s(t)}function l(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function f(t,e){for(var r=0;r128)throw new v("invalid AWS access key ID; reason: size should be between 16 and 128 characters, got ".concat(e.accessKeyId.length));if(!e.secretAccessKey||""===e.secretAccessKey)throw new v("invalid AWS secret access key; reason: expected a non empty string, got `".concat(e.secretAccessKey,"`"));this.region=e.region,this.accessKeyId=e.accessKeyId,this.secretAccessKey=e.secretAccessKey,void 0!==e.sessionToken&&(this.sessionToken=e.sessionToken),void 0!==e.endpoint&&("string"==typeof e.endpoint?this.endpoint=new n.y(e.endpoint):this.endpoint=e.endpoint)}return h(t,null,[{key:"fromEnvironment",value:function(e){return new t({region:__ENV.AWS_REGION,accessKeyId:__ENV.AWS_ACCESS_KEY_ID,secretAccessKey:__ENV.AWS_SECRET_ACCESS_KEY,sessionToken:__ENV.AWS_SESSION_TOKEN,endpoint:null==e?void 0:e.endpoint})}}])}(),v=function(t){function e(t){return l(this,e),i(this,e,[t])}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&u(t,e)}(e,t),h(e)}(a(Error))},464:(t,e,r)=>{r.d(e,{Kq:()=>o,Qt:()=>u,Qz:()=>w,SN:()=>g,Uv:()=>O,V1:()=>p,VQ:()=>b,Zs:()=>i,_e:()=>E,b2:()=>l,fk:()=>y,he:()=>a,iK:()=>s,ot:()=>f,pj:()=>v,sY:()=>h,ud:()=>d,wN:()=>n,z8:()=>S,zG:()=>c,zX:()=>m});var n="X-Amz-Algorithm",o="X-Amz-Credential",i="X-Amz-Date",a="X-Amz-Expires",c="X-Amz-Signature",u="X-Amz-SignedHeaders",s="X-Amz-Security-Token",l="x-amz-content-sha256",f=i.toLowerCase(),h=c.toLowerCase(),p="X-Amz-Target".toLowerCase(),y=s.toLowerCase(),d="authorization",v=[d,f,"date"],m="host",g={authorization:!0,"cache-control":!0,connection:!0,expect:!0,from:!0,"keep-alive":!0,"max-forwards":!0,pragma:!0,referer:!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0,"user-agent":!0,"x-amzn-trace-id":!0},b="aws4_request",w="AWS4-HMAC-SHA256",O=604800,E="e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",S="UNSIGNED-PAYLOAD"},556:(t,e,r)=>{function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)}function o(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,c=[],u=!0,s=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(c.push(n.value),c.length!==e);u=!0);}catch(t){s=!0,o=t}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(s)throw o}}return c}}(t,e)||function(t,e){if(t){if("string"==typeof t)return i(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?i(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);rs});var s=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),c(this,"_protocol",void 0),c(this,"_hostname",void 0),c(this,"_port",void 0);var r=!e.startsWith("http://")&&!e.startsWith("https://")?"".concat(t.DEFAULT_PROTOCOL,"://").concat(e):e,n=r.match(/^https?:/),i=o(r.replace(/^https?:\/\//,"").split("/"),1)[0];this._protocol=n?n[0].slice(0,-1):t.DEFAULT_PROTOCOL,this._hostname=i.split(":")[0],this._port=i.split(":")[1]?parseInt(i.split(":")[1]):void 0}return e=t,(r=[{key:"copy",value:function(){return new t(this.href)}},{key:"host",get:function(){return this._port?"".concat(this._hostname,":").concat(this._port):this._hostname},set:function(t){var e=o(t.split(":"),2),r=e[0],n=e[1];this._hostname=r,this._port=n?parseInt(n):void 0}},{key:"hostname",get:function(){return this._hostname},set:function(t){this._hostname=t}},{key:"href",get:function(){return"".concat(this.protocol,"://").concat(this.host)},set:function(e){var r=e.match(/^https?:/),n=o(e.replace(/^https?:\/\//,"").split("/"),1)[0];this._protocol=r?r[0].slice(0,-1):t.DEFAULT_PROTOCOL,this._hostname=n.split(":")[0],this._port=n.split(":")[1]?parseInt(n.split(":")[1]):void 0}},{key:"port",get:function(){return this._port},set:function(t){this._port=t}},{key:"protocol",get:function(){return this._protocol},set:function(t){this._protocol=t}}])&&a(e.prototype,r),n&&a(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,r,n}();c(s,"DEFAULT_PROTOCOL","https")},539:(t,e,r)=>{r.d(e,{$g:()=>b,Dr:()=>g,F9:()=>k,M8:()=>w,ML:()=>E,cK:()=>_,cv:()=>m,km:()=>O,op:()=>x,rN:()=>j,v1:()=>S,yk:()=>P});var n,o=r(95);function i(t){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function c(t,e){for(var r=0;r{function n(t,e){t=t.toLowerCase();for(var r=0,n=Object.keys(e);rn})},639:(t,e,r)=>{r.d(e,{B:()=>S,s:()=>j});var n=r(275),o=r.n(n),i=r(464),a=r(539),c=r(21),u=r(680);function s(t){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},s(t)}function l(t,e,r){return e=h(e),function(t,e){if(e&&("object"==s(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,f()?Reflect.construct(e,r||[],h(t).constructor):e.apply(t,r))}function f(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(f=function(){return!!t})()}function h(t){return h=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},h(t)}function p(t,e){return p=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},p(t,e)}function y(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return d(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?d(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){c=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(c)throw i}}}}function d(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r1&&void 0!==arguments[1]?arguments[1]:{},r=m(m({},{signingDate:new Date,unsignableHeaders:new Set,signableHeaders:new Set}),e),n=x(r.signingDate),o=n.longDate,a=n.shortDate,u=r.signingService||this.service,s=r.signingRegion||this.region,l="".concat(a,"/").concat(s,"/").concat(u,"/").concat(i.VQ);t.headers[i.zX]||(t.headers[i.zX]=t.endpoint.hostname);for(var f=0,h=Object.keys(t.headers);f-1&&delete t.headers[p]}t.headers[i.ot]=o,this.credentials.sessionToken&&(t.headers[i.fk]=this.credentials.sessionToken),ArrayBuffer.isView(t.body)&&(t.body=t.body.buffer),t.body||(t.body="");var y=this.computePayloadHash(t);!(0,c.o)(i.b2,t.headers)&&this.applyChecksum&&(t.headers[i.b2]=y);var d=this.computeCanonicalHeaders(t,r.unsignableHeaders,r.signableHeaders),v=this.calculateSignature(o,l,this.deriveSigningKey(this.credentials,u,s,a),this.createCanonicalRequest(t,d,y));t.headers[i.ud]="".concat(i.Qz," ")+"Credential=".concat(this.credentials.accessKeyId,"/").concat(l,", ")+"SignedHeaders=".concat(Object.keys(d).sort().join(";"),", ")+"Signature=".concat(v);var g=t.endpoint.href;return t.path&&(g.endsWith("/")||t.path.startsWith("/")||(g+="/"),g+=t.path),t.query&&(g+="?".concat(this.serializeQueryParameters(t.query))),m({url:g},t)}},{key:"presign",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=e.signingDate,n=void 0===r?new Date:r,o=e.expiresIn,a=void 0===o?3600:o,c=e.unsignableHeaders,u=e.unhoistableHeaders,s=e.signableHeaders,l=e.signingRegion,f=e.signingService,h=x(n),p=h.longDate,y=h.shortDate,d=l||this.region,v=f||this.service;if(a>i.Uv)throw new j("Signature version 4 presigned URLs can't be valid for more than 7 days");var g="".concat(y,"/").concat(d,"/").concat(v,"/").concat(i.VQ),b=this.moveHeadersToQuery(t,{unhoistableHeaders:u});b.headers[i.zX]||(b.headers[i.zX]=t.endpoint.hostname),this.credentials.sessionToken&&(b.query[i.iK]=this.credentials.sessionToken),b.query[i.wN]=i.Qz,b.query[i.Kq]="".concat(this.credentials.accessKeyId,"/").concat(g),b.query[i.Zs]=p,b.query[i.he]=a.toString(10);var w=this.computeCanonicalHeaders(b,c,s);b.query[i.Qt]=Object.keys(w).sort().join(";");var O=this.deriveSigningKey(this.credentials,v,d,y),E=this.computePayloadHash(t),S=this.createCanonicalRequest(b,w,E);b.query[i.zG]=this.calculateSignature(p,g,O,S);var P,_=t.endpoint.href;b.path&&(_=null!==(P=_)&&void 0!==P&&P.endsWith("/")?_:_+"/",_+=b.path);return b.query&&(_+="?".concat(this.serializeQueryParameters(b.query))),m({url:_},b)}},{key:"createCanonicalRequest",value:function(t,e,r){var n=Object.keys(e).sort(),o=n.map((function(t){return"".concat(t,":").concat(e[t])})).join("\n"),i=n.join(";");return"".concat(t.method,"\n")+"".concat(this.computeCanonicalURI(t),"\n")+"".concat(this.computeCanonicalQuerystring(t),"\n")+"".concat(o,"\n\n")+"".concat(i,"\n")+"".concat(r)}},{key:"createStringToSign",value:function(t,e,r){var n=o().sha256(r,"hex");return"".concat(i.Qz,"\n")+"".concat(t,"\n")+"".concat(e,"\n")+"".concat(n)}},{key:"calculateSignature",value:function(t,e,r,n){var i=this.createStringToSign(t,e,n);return o().hmac("sha256",r,i,"hex")}},{key:"deriveSigningKey",value:function(t,e,r,n){var i=t.secretAccessKey,a=o().hmac("sha256","AWS4"+i,n,"binary"),c=o().hmac("sha256",a,r,"binary"),u=o().hmac("sha256",c,e,"binary");return o().hmac("sha256",u,"aws4_request","binary")}},{key:"computeCanonicalURI",value:function(t){var e=t.path;if(this.uriEscapePath){var r,n=[],o=y(e.split("/"));try{for(o.s();!(r=o.n()).done;){var i=r.value;0!==(null==i?void 0:i.length)&&("."!==i&&(".."===i?n.pop():n.push(i)))}}catch(t){o.e(t)}finally{o.f()}var a=null!=e&&e.startsWith("/")?"/":"",c=n.join("/"),u=n.length>0&&null!=e&&e.endsWith("/")?"/":"",s="".concat(a).concat(c).concat(u);return encodeURIComponent(s).replace(/%2F/g,"/")}return e}},{key:"computeCanonicalQuerystring",value:function(t){var e,r=t.query,n=void 0===r?{}:r,o=[],a={},c=function(t){if(t.toLowerCase()===i.sY)return 1;o.push(t);var e=n[t];"string"==typeof e?a[t]="".concat(P(t),"=").concat(P(e)):Array.isArray(e)&&(a[t]=e.slice(0).sort().reduce((function(e,r){return e.concat(["".concat(P(t),"=").concat(P(r))])}),[]).join("&"))},u=y(Object.keys(n).sort());try{for(u.s();!(e=u.n()).done;){c(e.value)}}catch(t){u.e(t)}finally{u.f()}return o.map((function(t){return a[t]})).filter((function(t){return t})).join("&")}},{key:"computeCanonicalHeaders",value:function(t,e,r){var n,o=t.headers,a={},c=y(Object.keys(o).sort());try{for(c.s();!(n=c.n()).done;){var u=n.value;if(null!=o[u]){var s=u.toLowerCase();(s in i.SN||null!=e&&e.has(s))&&(!r||r&&!r.has(s))||"string"==typeof o[u]&&(a[s]=o[u]=o[u].trim().replace(/\s+/g," "))}}}catch(t){c.e(t)}finally{c.f()}return a}},{key:"computePayloadHash",value:function(t){var e=t.headers,r=t.body;return e[i.b2]?e[i.b2]:null==r?i._e:"string"==typeof r||(0,u.m)(r)?o().sha256(r,"hex").toLowerCase():ArrayBuffer.isView(r)?o().sha256(r.buffer,"hex").toLowerCase():i.z8}},{key:"moveHeadersToQuery",value:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=JSON.parse(JSON.stringify(t)),n=r.headers,o=r.query,i=void 0===o?{}:o,a=0,c=Object.keys(n);a{function n(t){return"function"==typeof ArrayBuffer&&(t instanceof ArrayBuffer||"[object ArrayBuffer]"===Object.prototype.toString.call(t))}r.d(e,{m:()=>n})},340:(t,e,r)=>{r.d(e,{LambdaClient:()=>k,LambdaInvocationError:()=>T});r(811);var n=r(539),o=r(639),i=r(570),a=r.n(i);const c=require("k6/encoding");var u=r.n(c),s=r(2),l=r(464);function f(t){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},f(t)}function h(t){var e="function"==typeof Map?new Map:void 0;return h=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf("[native code]")}catch(e){return"function"==typeof t}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,r)}function r(){return function(t,e,r){if(O())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,e);var o=new(t.bind.apply(t,n));return r&&P(o,r.prototype),o}(t,arguments,S(this).constructor)}return r.prototype=Object.create(t.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),P(r,t)},h(t)}function p(){p=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var i=e&&e.prototype instanceof b?e:b,a=Object.create(i.prototype),c=new R(n||[]);return o(a,"_invoke",{value:k(t,r,c)}),a}function h(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var y="suspendedStart",d="suspendedYield",v="executing",m="completed",g={};function b(){}function w(){}function O(){}var E={};s(E,a,(function(){return this}));var S=Object.getPrototypeOf,j=S&&S(S(C([])));j&&j!==r&&n.call(j,a)&&(E=j);var P=O.prototype=b.prototype=Object.create(E);function x(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function _(t,e){function r(o,i,a,c){var u=h(t[o],t,i);if("throw"!==u.type){var s=u.arg,l=s.value;return l&&"object"==f(l)&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(l).then((function(t){s.value=t,a(s)}),(function(t){return r("throw",t,a,c)}))}c(u.arg)}var i;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return i=i?i.then(o,o):o()}})}function k(e,r,n){var o=y;return function(i,a){if(o===v)throw Error("Generator is already running");if(o===m){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=T(c,n);if(u){if(u===g)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===y)throw o=m,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=v;var s=h(e,r,n);if("normal"===s.type){if(o=n.done?m:d,s.arg===g)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(o=m,n.method="throw",n.arg=s.arg)}}}function T(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,T(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),g;var i=h(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,g;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,g):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,g)}function L(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function N(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function R(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(L,this),this.reset(!0)}function C(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function r(){for(;++o=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),s=n.call(a,"finallyLoc");if(u&&s){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),N(r),g}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;N(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:C(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),g}},e}function y(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function d(t){for(var e=1;e2&&void 0!==m[2]?m[2]:{}).invocationType||"RequestResponse",c=d(d({},this.commonHeaders),{},x(x(x({},l.V1,"AWSLambda.".concat(i)),"X-Amz-Invocation-Type",i),"X-Amz-Log-Type",n.logType||"None")),n.clientContext&&(c["X-Amz-Client-Context"]=n.clientContext),n.qualifier&&(o.Qualifier=n.qualifier),s=this.signature.sign({method:this.method,endpoint:this.endpoint,path:"/2015-03-31/functions/".concat(e,"/invocations"),query:o,headers:c,body:r||""},{}),t.next=9,a().asyncRequest(this.method,s.url,s.body,d(d({},this.baseRequestParams),{},{headers:s.headers}));case 9:if(f=t.sent,this.handleError(f),h=f.headers["X-Amz-Log-Result"],y={executedVersion:f.headers["X-Amz-Executed-Version"],logResult:h?u().b64decode(h,"std","s"):void 0,statusCode:f.status,payload:f.body},!(v=f.headers["X-Amz-Function-Error"])){t.next=18;break}throw new T(v,y);case 18:return t.abrupt("return",y);case 19:case"end":return t.stop()}}),t,this)})),i=function(){var t=this,e=arguments;return new Promise((function(n,o){var i=r.apply(t,e);function a(t){v(i,n,o,a,c,"next",t)}function c(t){v(i,n,o,a,c,"throw",t)}a(void 0)}))},function(t,e){return i.apply(this,arguments)})},{key:"handleError",value:function(t,r){var i,a,c,u,s;if(!(i=e,a="handleError",c=this,s=E(S(1&(u=3)?i.prototype:i),a,c),2&u?function(t){return s.apply(c,t)}:s)([t,r]))return!1;var l=n.cv.parse(t);switch(l.code){case"AuthorizationHeaderMalformed":case"InvalidSignatureException":throw new o.s(l.message,l.code);default:throw l}return!0}}]);var r,i}(s.R),T=function(t){function e(t,r){var n;return m(this,e),x(n=w(this,e,["".concat(t,": ").concat(r.payload)]),"response",void 0),n.response=r,n}return j(e,t),b(e)}(h(Error))},535:(t,e,r)=>{r.d(e,{SQSClient:()=>k});r(811);var n=r(539),o=r(639),i=r(2),a=r(570),c=r.n(a),u=r(464);function s(t){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},s(t)}function l(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,c=[],u=!0,s=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(c.push(n.value),c.length!==e);u=!0);}catch(t){s=!0,o=t}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(s)throw o}}return c}}(t,e)||function(t,e){if(t){if("string"==typeof t)return f(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?f(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),s=n.call(a,"finallyLoc");if(u&&s){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),N(r),g}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;N(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:C(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),g}},e}function p(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function y(t){for(var e=1;e2&&void 0!==c[2]?c[2]:{},o=y({QueueUrl:e},this._combineQueueMessageBodyAndOptions(r,n)),t.next=5,this._sendRequest("SendMessage",o);case 5:return i=t.sent,a=i.json(),t.abrupt("return",new T(a.MessageId,a.MD5OfMessageBody));case 8:case"end":return t.stop()}}),t,this)}))),function(t,e){return a.apply(this,arguments)})},{key:"sendMessageBatch",value:(i=v(h().mark((function t(e,r){var n,o,i,a,c,u,s,l=this;return h().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n="SendMessageBatch",o=r.map((function(t){var e=l._combineQueueMessageBodyAndOptions(t.messageBody,t.messageOptions);return e=y(y({},e),{},{Id:t.messageId})})),i={QueueUrl:e,Entries:o},t.next=5,this._sendRequest(n,i);case 5:return a=t.sent,c=a.json(),u=c.Successful||[],s=c.Failed||[],t.abrupt("return",{successful:u.map((function(t){return new T(t.MessageId,t.MD5OfMessageBody)})),failed:s.map((function(t){return new L(t.Message,t.Code,n)}))});case 10:case"end":return t.stop()}}),t,this)}))),function(t,e){return i.apply(this,arguments)})},{key:"listQueues",value:(n=v(h().mark((function t(){var e,r,n,o,i=arguments;return h().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r={},void 0!==(null==(e=i.length>0&&void 0!==i[0]?i[0]:{})?void 0:e.maxResults)&&(r=y(y({},r),{},{MaxResults:e.maxResults})),void 0!==(null==e?void 0:e.nextToken)&&(r=y(y({},r),{},{NextToken:e.nextToken})),void 0!==(null==e?void 0:e.queueNamePrefix)&&(r=y(y({},r),{},{QueueNamePrefix:e.queueNamePrefix})),t.next=8,this._sendRequest("ListQueues",r);case 8:return n=t.sent,o=n.json(),t.abrupt("return",{urls:o.QueueUrls,nextToken:null==o?void 0:o.NextToken});case 11:case"end":return t.stop()}}),t,this)}))),function(){return n.apply(this,arguments)})},{key:"_combineQueueMessageBodyAndOptions",value:function(t,e){var r={MessageBody:t};if(void 0===e)return r;if(void 0!==e.messageDeduplicationId&&(r=y(y({},r),{},{MessageDeduplicationId:e.messageDeduplicationId})),void 0!==e.messageGroupId&&(r=y(y({},r),{},{MessageGroupId:e.messageGroupId})),void 0!==e.messageAttributes){for(var n={},o=0,i=Object.entries(e.messageAttributes);o{t.exports=require("k6/crypto")},95:t=>{t.exports=require("k6/html")},570:t=>{t.exports=require("k6/http")}},e={};function r(n){var o=e[n];if(void 0!==o)return o.exports;var i=e[n]={exports:{}};return t[n](i,i.exports,r),i.exports}r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};r.r(n),r.d(n,{AMZ_CONTENT_SHA256_HEADER:()=>c.b2,AWSConfig:()=>a.g,AWSError:()=>o.cv,DNSError:()=>o.M8,Endpoint:()=>A.y,EventBridgeClient:()=>qe,GeneralError:()=>o.$g,HTTP2Error:()=>o.v1,InvalidAWSConfigError:()=>a.r,InvalidSignatureError:()=>i.s,KMSClient:()=>k,KMSDataKey:()=>L,KMSServiceError:()=>N,KinesisClient:()=>fe,LambdaClient:()=>He.LambdaClient,LambdaInvocationError:()=>He.LambdaInvocationError,NetworkError:()=>o.Dr,S3Bucket:()=>tt,S3Client:()=>Z,S3Object:()=>et,S3ServiceError:()=>ot,SQSClient:()=>Jt.SQSClient,Secret:()=>jt,SecretsManagerClient:()=>St,SecretsManagerServiceError:()=>Pt,SignatureV4:()=>i.B,SystemsManagerClient:()=>Ut,SystemsManagerParameter:()=>zt,SystemsManagerServiceError:()=>Ft,TCPError:()=>o.km,TLSError:()=>o.ML,UNSIGNED_PAYLOAD:()=>c.z8});var o=r(539),i=r(639),a=r(811),c=r(464),u=r(570),s=r.n(u),l=r(2);function f(t){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},f(t)}function h(){h=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var i=e&&e.prototype instanceof b?e:b,a=Object.create(i.prototype),c=new R(n||[]);return o(a,"_invoke",{value:k(t,r,c)}),a}function p(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var y="suspendedStart",d="suspendedYield",v="executing",m="completed",g={};function b(){}function w(){}function O(){}var E={};s(E,a,(function(){return this}));var S=Object.getPrototypeOf,j=S&&S(S(C([])));j&&j!==r&&n.call(j,a)&&(E=j);var P=O.prototype=b.prototype=Object.create(E);function x(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function _(t,e){function r(o,i,a,c){var u=p(t[o],t,i);if("throw"!==u.type){var s=u.arg,l=s.value;return l&&"object"==f(l)&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(l).then((function(t){s.value=t,a(s)}),(function(t){return r("throw",t,a,c)}))}c(u.arg)}var i;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return i=i?i.then(o,o):o()}})}function k(e,r,n){var o=y;return function(i,a){if(o===v)throw Error("Generator is already running");if(o===m){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=T(c,n);if(u){if(u===g)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===y)throw o=m,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=v;var s=p(e,r,n);if("normal"===s.type){if(o=n.done?m:d,s.arg===g)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(o=m,n.method="throw",n.arg=s.arg)}}}function T(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,T(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),g;var i=p(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,g;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,g):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,g)}function L(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function N(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function R(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(L,this),this.reset(!0)}function C(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function r(){for(;++o=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),s=n.call(a,"finallyLoc");if(u&&s){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),N(r),g}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;N(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:C(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),g}},e}function p(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function y(t){for(var e=1;e1&&void 0!==i[1]?i[1]:C.Size256,n=this.signature.sign({method:this.method,endpoint:this.endpoint,path:"/",headers:y(y({},this.commonHeaders),{},x({},c.V1,"TrentService.GenerateDataKey")),body:JSON.stringify({KeyId:e,NumberOfBytes:r})},{}),t.next=4,s().asyncRequest(this.method,n.url,n.body,y(y({},this.baseRequestParams),{},{headers:n.headers}));case 4:return o=t.sent,this.handleError(o,R.GenerateDataKey),t.abrupt("return",L.fromJSON(o.json()));case 7:case"end":return t.stop()}}),t,this)}))),function(t){return r.apply(this,arguments)})},{key:"handleError",value:function(t,r){var n,o,a,c,u;if(!(n=e,o="handleError",a=this,u=E(S(1&(c=3)?n.prototype:n),o,a),2&c?function(t){return u.apply(a,t)}:u)([t,r]))return!1;var s=t.error_code,l=t.json();if(s>=1400&&s<=1499){var f=l.Message||l.message||l.__type;if("InvalidSignatureException"===l.__type)throw new i.s(f,l.__type);throw new N(f,l.__type,r)}if(1500===s)throw new N("An error occured on the server side","InternalServiceError",r);return!0}}]);var r,n}(l.R),T=function(){function t(e,r){m(this,t),x(this,"keyArn",void 0),x(this,"keyId",void 0),this.keyArn=e,this.keyId=r}return b(t,null,[{key:"fromJSON",value:function(e){return new t(e.KeyArn,e.KeyId)}}])}(),L=function(){function t(e,r,n){m(this,t),x(this,"id",void 0),x(this,"ciphertextBlob",void 0),x(this,"plaintext",void 0),this.ciphertextBlob=e,this.id=r,this.plaintext=n}return b(t,null,[{key:"fromJSON",value:function(e){return new t(e.CiphertextBlob,e.KeyId,e.Plaintext)}}])}(),N=function(t){function e(t,r,n){var o;return m(this,e),x(o=w(this,e,[t,r]),"operation",void 0),o.name="KMSServiceError",o.operation=n,o}return j(e,t),b(e)}(o.cv),R=function(t){return t.GenerateDataKey="GenerateDataKey",t.ListKeys="ListKeys",t}(R||{}),C=function(t){return t[t.Size256=32]="Size256",t[t.Size512=64]="Size512",t}(C||{}),A=r(556),D=r(95);function I(t){return I="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},I(t)}function G(){G=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var i=e&&e.prototype instanceof m?e:m,a=Object.create(i.prototype),c=new L(n||[]);return o(a,"_invoke",{value:x(t,r,c)}),a}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var h="suspendedStart",p="suspendedYield",y="executing",d="completed",v={};function m(){}function g(){}function b(){}var w={};s(w,a,(function(){return this}));var O=Object.getPrototypeOf,E=O&&O(O(N([])));E&&E!==r&&n.call(E,a)&&(w=E);var S=b.prototype=m.prototype=Object.create(w);function j(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function P(t,e){function r(o,i,a,c){var u=f(t[o],t,i);if("throw"!==u.type){var s=u.arg,l=s.value;return l&&"object"==I(l)&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(l).then((function(t){s.value=t,a(s)}),(function(t){return r("throw",t,a,c)}))}c(u.arg)}var i;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return i=i?i.then(o,o):o()}})}function x(e,r,n){var o=h;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===d){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=_(c,n);if(u){if(u===v)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===h)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var s=f(e,r,n);if("normal"===s.type){if(o=n.done?d:p,s.arg===v)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(o=d,n.method="throw",n.arg=s.arg)}}}function _(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,_(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var i=f(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,v;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,v):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function T(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function N(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function r(){for(;++o=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),s=n.call(a,"finallyLoc");if(u&&s){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),T(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;T(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:N(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),v}},e}function q(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function M(t){for(var e=1;e2&&void 0!==u[2]?u[2]:{},i=this.signature.sign({method:"GET",endpoint:this.endpoint,path:encodeURI("/".concat(e,"/").concat(r)),headers:M({},o)},{}),a="text","Accept"in o&&void 0!==o.Accept&&"application/octet-stream"===o.Accept&&(a="binary"),t.next=7,s().asyncRequest("GET",i.url,null,M(M({},this.baseRequestParams),{},{headers:i.headers,responseType:a}));case 7:return c=t.sent,this.handleError(c,"GetObject"),t.abrupt("return",new et(r,Date.parse(c.headers["Last-Modified"]),c.headers.ETag,parseInt(c.headers["Content-Length"]),null!==(n=c.headers["X-Amz-Storage-Class"])&&void 0!==n?n:"STANDARD",c.body));case 10:case"end":return t.stop()}}),t,this)}))),function(t,e){return h.apply(this,arguments)})},{key:"putObject",value:(f=H(G().mark((function t(e,r,n,o){var i,a;return G().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=this.signature.sign({method:"PUT",endpoint:this.endpoint,path:encodeURI("/".concat(e,"/").concat(r)),headers:M(M(M(M(M({Host:this.endpoint.host},(null==o?void 0:o.contentDisposition)&&{"Content-Disposition":o.contentDisposition}),(null==o?void 0:o.contentEncoding)&&{"Content-Encoding":o.contentEncoding}),(null==o?void 0:o.contentLength)&&{"Content-Length":o.contentLength}),(null==o?void 0:o.contentMD5)&&{"Content-MD5":o.contentMD5}),(null==o?void 0:o.contentType)&&{"Content-Type":o.contentType}),body:n},{}),t.next=4,s().asyncRequest("PUT",i.url,i.body,M(M({},this.baseRequestParams),{},{headers:i.headers}));case 4:a=t.sent,this.handleError(a,"PutObject");case 6:case"end":return t.stop()}}),t,this)}))),function(t,e,r,n){return f.apply(this,arguments)})},{key:"deleteObject",value:(l=H(G().mark((function t(e,r){var n,o,i;return G().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n="DELETE",o=this.signature.sign({method:n,endpoint:this.endpoint,path:encodeURI("/".concat(e,"/").concat(r)),headers:{}},{}),t.next=4,s().asyncRequest(n,o.url,o.body||null,M(M({},this.baseRequestParams),{},{headers:o.headers}));case 4:i=t.sent,this.handleError(i,"DeleteObject");case 6:case"end":return t.stop()}}),t,this)}))),function(t,e){return l.apply(this,arguments)})},{key:"copyObject",value:(u=H(G().mark((function t(e,r,n,o){var i,a,c;return G().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return(i=this.endpoint.copy()).hostname="".concat(n,".").concat(this.endpoint.hostname),a=this.signature.sign({method:"PUT",endpoint:i,path:encodeURI("/".concat(o)),headers:{"x-amz-copy-source":"".concat(e,"/").concat(r)}},{}),t.next=6,s().asyncRequest("PUT",a.url,a.body||null,M(M({},this.baseRequestParams),{},{headers:a.headers}));case 6:c=t.sent,this.handleError(c,"CopyObject");case 8:case"end":return t.stop()}}),t,this)}))),function(t,e,r,n){return u.apply(this,arguments)})},{key:"createMultipartUpload",value:(c=H(G().mark((function t(e,r){var n,o,i,a;return G().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n="POST",(o=this.endpoint.copy()).hostname="".concat(e,".").concat(this.endpoint.hostname),i=this.signature.sign({method:n,endpoint:o,path:encodeURI("/".concat(r)),headers:{},query:{uploads:""}},{}),t.next=6,s().asyncRequest(n,i.url,i.body||null,M(M({},this.baseRequestParams),{},{headers:i.headers}));case 6:return a=t.sent,this.handleError(a,"CreateMultipartUpload"),t.abrupt("return",new rt(r,(0,D.parseHTML)(a.body).find("UploadId").text()));case 9:case"end":return t.stop()}}),t,this)}))),function(t,e){return c.apply(this,arguments)})},{key:"uploadPart",value:(a=H(G().mark((function t(e,r,n,o,i){var a,c,u;return G().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return(a=this.endpoint.copy()).hostname="".concat(e,".").concat(this.endpoint.hostname),c=this.signature.sign({method:"PUT",endpoint:a,path:encodeURI("/".concat(r)),headers:{},body:i,query:{partNumber:"".concat(o),uploadId:"".concat(n)}},{}),t.next=6,s().asyncRequest("PUT",c.url,c.body||null,M(M({},this.baseRequestParams),{},{headers:c.headers}));case 6:return u=t.sent,this.handleError(u,"UploadPart"),t.abrupt("return",new nt(o,u.headers.Etag));case 9:case"end":return t.stop()}}),t,this)}))),function(t,e,r,n,o){return a.apply(this,arguments)})},{key:"completeMultipartUpload",value:(n=H(G().mark((function t(e,r,n,o){var i,a,c,u,l;return G().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i="POST",a="".concat(o.map((function(t){return"".concat(t.partNumber,"").concat(t.eTag,"")})).join(""),""),(c=this.endpoint.copy()).hostname="".concat(e,".").concat(this.endpoint.hostname),u=this.signature.sign({method:i,endpoint:c,path:encodeURI("/".concat(r)),headers:{},body:a,query:{uploadId:"".concat(n)}},{}),t.next=7,s().asyncRequest(i,u.url,u.body||null,M(M({},this.baseRequestParams),{},{headers:u.headers}));case 7:l=t.sent,this.handleError(l,"CompleteMultipartUpload");case 9:case"end":return t.stop()}}),t,this)}))),function(t,e,r,o){return n.apply(this,arguments)})},{key:"abortMultipartUpload",value:(r=H(G().mark((function t(e,r,n){var o,i,a,c;return G().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return o="DELETE",(i=this.endpoint.copy()).hostname="".concat(e,".").concat(this.endpoint.hostname),a=this.signature.sign({method:o,endpoint:i,path:encodeURI("/".concat(r)),headers:{},query:{uploadId:"".concat(n)}},{}),t.next=6,s().asyncRequest(o,a.url,a.body||null,M(M({},this.baseRequestParams),{},{headers:a.headers}));case 6:c=t.sent,this.handleError(c,"AbortMultipartUpload");case 8:case"end":return t.stop()}}),t,this)}))),function(t,e,n){return r.apply(this,arguments)})},{key:"handleError",value:function(t,r){var n,a,c,u,s;if(!(n=e,a="handleError",c=this,s=J(W(1&(u=3)?n.prototype:n),a,c),2&u?function(t){return s.apply(c,t)}:s)([t]))return!1;var l=t.error;if(301==t.status||l&&l.startsWith("301"))throw new ot("Resource not found","ResourceNotFound",r);var f=o.cv.parseXML(t.body);if("AuthorizationHeaderMalformed"===f.code)throw new i.s(f.message,f.code);throw new ot(f.message,f.code||"unknown",r)}}]);var r,n,a,c,u,l,f,h,p,y}(l.R),tt=z((function t(e,r){B(this,t),Y(this,"name",void 0),Y(this,"creationDate",void 0),this.name=e,this.creationDate=r})),et=z((function t(e,r,n,o,i,a){B(this,t),Y(this,"key",void 0),Y(this,"lastModified",void 0),Y(this,"etag",void 0),Y(this,"size",void 0),Y(this,"storageClass",void 0),Y(this,"data",void 0),this.key=e,this.lastModified=r,this.etag=n,this.size=o,this.storageClass=i,this.data=a})),rt=z((function t(e,r){B(this,t),Y(this,"key",void 0),Y(this,"uploadId",void 0),this.key=e,this.uploadId=r})),nt=z((function t(e,r){B(this,t),Y(this,"partNumber",void 0),Y(this,"eTag",void 0),this.partNumber=e,this.eTag=r})),ot=function(t){function e(t,r,n){var o;return B(this,e),Y(o=F(this,e,[t,r]),"operation",void 0),o.name="S3ServiceError",o.operation=n,o}return Q(e,t),z(e)}(o.cv);const it=require("https://jslib.k6.io/k6-utils/1.4.0/index.js");function at(t){return at="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},at(t)}function ct(){ct=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var i=e&&e.prototype instanceof m?e:m,a=Object.create(i.prototype),c=new L(n||[]);return o(a,"_invoke",{value:x(t,r,c)}),a}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var h="suspendedStart",p="suspendedYield",y="executing",d="completed",v={};function m(){}function g(){}function b(){}var w={};s(w,a,(function(){return this}));var O=Object.getPrototypeOf,E=O&&O(O(N([])));E&&E!==r&&n.call(E,a)&&(w=E);var S=b.prototype=m.prototype=Object.create(w);function j(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function P(t,e){function r(o,i,a,c){var u=f(t[o],t,i);if("throw"!==u.type){var s=u.arg,l=s.value;return l&&"object"==at(l)&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(l).then((function(t){s.value=t,a(s)}),(function(t){return r("throw",t,a,c)}))}c(u.arg)}var i;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return i=i?i.then(o,o):o()}})}function x(e,r,n){var o=h;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===d){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=_(c,n);if(u){if(u===v)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===h)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var s=f(e,r,n);if("normal"===s.type){if(o=n.done?d:p,s.arg===v)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(o=d,n.method="throw",n.arg=s.arg)}}}function _(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,_(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var i=f(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,v;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,v):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function T(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function N(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function r(){for(;++o=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),s=n.call(a,"finallyLoc");if(u&&s){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),T(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;T(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:N(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),v}},e}function ut(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function st(t){for(var e=1;e=1400&&s<=1499){var f=l.Message||l.message||l.__type;if("InvalidSignatureException"===l.__type)throw new i.s(f,l.__type);throw new Pt(f,l.__type,r)}if(1500===s)throw new Pt("An error occured on the server side","InternalServiceError",r);return!0}}]);var r,n,o,a,u}(l.R),jt=function(){function t(e,r,n,o,i,a){var c=arguments.length>6&&void 0!==arguments[6]?arguments[6]:[];ht(this,t),Ot(this,"name",void 0),Ot(this,"arn",void 0),Ot(this,"secret",void 0),Ot(this,"createdDate",void 0),Ot(this,"lastAccessedDate",void 0),Ot(this,"lastChangedDate",void 0),Ot(this,"tags",void 0),this.name=e,this.arn=r,this.secret=n,this.createdDate=o,this.lastAccessedDate=i,this.lastChangedDate=a,this.tags=c}return yt(t,null,[{key:"fromJSON",value:function(e){return new t(e.Name,e.ARN,e.SecretString,e.CreatedDate,e.LastAccessedDate,e.LastChangedDate,e.Tags)}}])}(),Pt=function(t){function e(t,r,n){var o;return ht(this,e),Ot(o=dt(this,e,[t,r]),"operation",void 0),o.name="SecretsManagerServiceError",o.operation=n,o}return bt(e,t),yt(e)}(o.cv),xt=function(t){return t.ListSecrets="ListSecrets",t.GetSecretValue="GetSecretValue",t.CreateSecret="CreateSecret",t.PutSecretValue="PutSecretValue",t.DeleteSecret="DeleteSecret",t}(xt||{});function _t(t){return _t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_t(t)}function kt(){kt=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var i=e&&e.prototype instanceof m?e:m,a=Object.create(i.prototype),c=new L(n||[]);return o(a,"_invoke",{value:x(t,r,c)}),a}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var h="suspendedStart",p="suspendedYield",y="executing",d="completed",v={};function m(){}function g(){}function b(){}var w={};s(w,a,(function(){return this}));var O=Object.getPrototypeOf,E=O&&O(O(N([])));E&&E!==r&&n.call(E,a)&&(w=E);var S=b.prototype=m.prototype=Object.create(w);function j(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function P(t,e){function r(o,i,a,c){var u=f(t[o],t,i);if("throw"!==u.type){var s=u.arg,l=s.value;return l&&"object"==_t(l)&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(l).then((function(t){s.value=t,a(s)}),(function(t){return r("throw",t,a,c)}))}c(u.arg)}var i;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return i=i?i.then(o,o):o()}})}function x(e,r,n){var o=h;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===d){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=_(c,n);if(u){if(u===v)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===h)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var s=f(e,r,n);if("normal"===s.type){if(o=n.done?d:p,s.arg===v)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(o=d,n.method="throw",n.arg=s.arg)}}}function _(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,_(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var i=f(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,v;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,v):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function T(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function N(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function r(){for(;++o=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),s=n.call(a,"finallyLoc");if(u&&s){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),T(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;T(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:N(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),v}},e}function Tt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Lt(t){for(var e=1;e1&&void 0!==i[1]&&i[1],n=this.signature.sign({method:this.method,endpoint:this.endpoint,path:"/",headers:Lt(Lt({},this.commonHeaders),{},Ht({},c.V1,"AmazonSSM.GetParameter")),body:JSON.stringify({Name:e,WithDecryption:r})},{}),t.next=4,s().asyncRequest(this.method,n.url,n.body,Lt(Lt({},this.baseRequestParams),{},{headers:n.headers}));case 4:return o=t.sent,this.handleError(o,Vt.GetParameter),t.abrupt("return",zt.fromJSON(o.json()));case 7:case"end":return t.stop()}}),t,this)})),n=function(){var t=this,e=arguments;return new Promise((function(n,o){var i=r.apply(t,e);function a(t){Nt(i,n,o,a,c,"next",t)}function c(t){Nt(i,n,o,a,c,"throw",t)}a(void 0)}))},function(t){return n.apply(this,arguments)})},{key:"handleError",value:function(t,r){var n,o,a,c,u;if(!(n=e,o="handleError",a=this,u=Gt(qt(1&(c=3)?n.prototype:n),o,a),2&c?function(t){return u.apply(a,t)}:u)([t,r]))return!1;var s=t.error_code,l=t.json();if(s>=1400&&s<=1499){var f=l.Message||l.message||l.__type;if("InvalidSignatureException"===l.__type)throw new i.s(f,l.__type);throw new Ft(f,l.__type,r)}if(1500===s)throw new Ft("An error occured on the server side","InternalServiceError",r);return!0}}]);var r,n}(l.R),zt=function(){function t(e,r,n,o,i,a,c,u,s){Rt(this,t),Ht(this,"arn",void 0),Ht(this,"dataType",void 0),Ht(this,"lastModifiedDate",void 0),Ht(this,"name",void 0),Ht(this,"selector",void 0),Ht(this,"sourceResult",void 0),Ht(this,"type",void 0),Ht(this,"value",void 0),Ht(this,"version",void 0),this.arn=e,this.dataType=r,this.lastModifiedDate=n,this.name=o,this.selector=i,this.sourceResult=a,this.type=c,this.value=u,this.version=s}return At(t,null,[{key:"fromJSON",value:function(e){var r=e.Parameter;return new t(r.ARN,r.DataType,r.LastModifiedDate,r.Name,r.Selector,r.SourceResult,r.Type,r.Value,r.Version)}}])}(),Ft=function(t){function e(t,r,n){var o;return Rt(this,e),Ht(o=Dt(this,e,[t,r]),"operation",void 0),o.name="SystemsManagerServiceError",o.operation=n,o}return Mt(e,t),At(e)}(o.cv),Vt=function(t){return t.GetParameter="GetParameter",t}(Vt||{}),Jt=r(535);function Wt(t){return Wt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Wt(t)}function Qt(){Qt=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var i=e&&e.prototype instanceof m?e:m,a=Object.create(i.prototype),c=new L(n||[]);return o(a,"_invoke",{value:x(t,r,c)}),a}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var h="suspendedStart",p="suspendedYield",y="executing",d="completed",v={};function m(){}function g(){}function b(){}var w={};s(w,a,(function(){return this}));var O=Object.getPrototypeOf,E=O&&O(O(N([])));E&&E!==r&&n.call(E,a)&&(w=E);var S=b.prototype=m.prototype=Object.create(w);function j(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function P(t,e){function r(o,i,a,c){var u=f(t[o],t,i);if("throw"!==u.type){var s=u.arg,l=s.value;return l&&"object"==Wt(l)&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(l).then((function(t){s.value=t,a(s)}),(function(t){return r("throw",t,a,c)}))}c(u.arg)}var i;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return i=i?i.then(o,o):o()}})}function x(e,r,n){var o=h;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===d){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=_(c,n);if(u){if(u===v)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===h)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var s=f(e,r,n);if("normal"===s.type){if(o=n.done?d:p,s.arg===v)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(o=d,n.method="throw",n.arg=s.arg)}}}function _(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,_(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var i=f(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,v;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,v):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function T(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function N(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function r(){for(;++o=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),s=n.call(a,"finallyLoc");if(u&&s){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),T(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;T(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:N(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),v}},e}function Xt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Yt(t){for(var e=1;e1&&void 0!==o[1]?o[1]:{}).shardCount&&{ShardCount:r.shardCount}),r.streamModeDetails&&{StreamMode:r.streamModeDetails.streamMode}),t.next=4,this._send_request("CreateStream",n);case 4:case"end":return t.stop()}}),t,this)}))),function(t){return h.apply(this,arguments)})},{key:"deleteStream",value:(f=Zt(Qt().mark((function t(e){var r,n,o=arguments;return Qt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=Yt(Yt({StreamName:e},(r=o.length>1&&void 0!==o[1]?o[1]:{}).streamARN&&{StreamARN:r.streamARN}),r.enforceConsumerDeletion&&{EnforceConsumerDeletion:r.enforceConsumerDeletion}),t.next=4,this._send_request("DeleteStream",n);case 4:case"end":return t.stop()}}),t,this)}))),function(t){return f.apply(this,arguments)})},{key:"listStreams",value:(l=Zt(Qt().mark((function t(){var e,r,n,o=arguments;return Qt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=Yt(Yt(Yt({},(e=o.length>0&&void 0!==o[0]?o[0]:{}).exclusiveStartStreamName&&{ExclusiveStartStreamName:e.exclusiveStartStreamName}),e.limit&&{Limit:e.limit}),e.nextToken&&{NextToken:e.nextToken}),t.next=4,this._send_request("ListStreams",r);case 4:return n=t.sent,t.abrupt("return",pe.fromJson(null==n?void 0:n.json()));case 6:case"end":return t.stop()}}),t,this)}))),function(){return l.apply(this,arguments)})},{key:"putRecords",value:(u=Zt(Qt().mark((function t(e){var r,n,o,i=arguments;return Qt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if((r=i.length>1&&void 0!==i[1]?i[1]:{}).streamName||r.streamARN){t.next=3;break}throw new Error("Either streamName or streamARN must be provided");case 3:return n=Yt(Yt({Records:e},r.streamName&&{StreamName:r.streamName}),r.streamARN&&{StreamARN:r.streamARN}),t.next=6,this._send_request("PutRecords",n);case 6:return o=t.sent,t.abrupt("return",de.fromJson(null==o?void 0:o.json()));case 8:case"end":return t.stop()}}),t,this)}))),function(t){return u.apply(this,arguments)})},{key:"getRecords",value:(a=Zt(Qt().mark((function t(e){var r,n,o,i=arguments;return Qt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=Yt(Yt({ShardIterator:e},(r=i.length>1&&void 0!==i[1]?i[1]:{}).limit&&{Limit:r.limit}),r.streamARN&&{StreamARN:r.streamARN}),t.next=4,this._send_request("GetRecords",n);case 4:return o=t.sent,t.abrupt("return",me.fromJson(null==o?void 0:o.json()));case 6:case"end":return t.stop()}}),t,this)}))),function(t){return a.apply(this,arguments)})},{key:"listShards",value:(o=Zt(Qt().mark((function t(e){var r,n,o,i=arguments;return Qt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=Yt(Yt({StreamName:e},(r=i.length>1&&void 0!==i[1]?i[1]:{}).nextToken&&{NextToken:r.nextToken}),r.maxResults&&{MaxResults:r.maxResults}),t.next=4,this._send_request("ListShards",n);case 4:return o=t.sent,t.abrupt("return",be.fromJson(null==o?void 0:o.json()));case 6:case"end":return t.stop()}}),t,this)}))),function(t){return o.apply(this,arguments)})},{key:"getShardIterator",value:(n=Zt(Qt().mark((function t(e,r,n){var o,i,a,c=arguments;return Qt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=Yt(Yt({StreamName:e,ShardId:r,ShardIteratorType:n},(o=c.length>3&&void 0!==c[3]?c[3]:{}).startingSequenceNumber&&{StartingSequenceNumber:o.startingSequenceNumber}),o.timestamp&&{Timestamp:o.timestamp}),t.next=4,this._send_request("GetShardIterator",i);case 4:return a=t.sent,t.abrupt("return",Oe.fromJson(null==a?void 0:a.json()));case 6:case"end":return t.stop()}}),t,this)}))),function(t,e,r){return n.apply(this,arguments)})},{key:"_send_request",value:(r=Zt(Qt().mark((function t(e,r){var n,o;return Qt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=this.signature.sign({method:"POST",endpoint:this.endpoint,path:"/",headers:Yt(Yt({},this.commonHeaders),{},se({},c.V1,"".concat(this.serviceVersion,".").concat(e))),body:JSON.stringify(r)},{}),t.next=3,s().asyncRequest("POST",n.url,n.body,Yt(Yt({},this.baseRequestParams),{},{headers:n.headers}));case 3:return o=t.sent,this.handleError(o,e),t.abrupt("return",o);case 6:case"end":return t.stop()}}),t,this)}))),function(t,e){return r.apply(this,arguments)})},{key:"handleError",value:function(t,r){var n,o,a,c,u;if(!(n=e,o="handleError",a=this,u=ie(ae(1&(c=3)?n.prototype:n),o,a),2&c?function(t){return u.apply(a,t)}:u)([t,r]))return!1;var s=t.error_code,l=t.json();if(s>=1400&&s<=1499){var f=l.Message||l.message||l.__type;if("InvalidSignatureException"===l.__type)throw new i.s(f,l.__type);throw new he(f,l.__type,r||"Unknown")}if(1500===s)throw new he("An error occured on the server side","InternalServiceError",r||"Unknown");return!0}}]);var r,n,o,a,u,l,f,h}(l.R),he=function(t){function e(t,r,n){var o;return te(this,e),se(o=ne(this,e,[t,r]),"operation",void 0),o.name="KinesisServiceError",o.operation=n,o}return ce(e,t),re(e)}(o.cv),pe=function(){function t(e,r,n,o){te(this,t),se(this,"hasMoreStreams",void 0),se(this,"nextToken",void 0),se(this,"streamNames",void 0),se(this,"streamSummaries",void 0),this.hasMoreStreams=e,this.nextToken=r,this.streamNames=n,this.streamSummaries=o}return re(t,null,[{key:"fromJson",value:function(e){var r=e.HasMoreStreams,n=void 0!==r&&r,o=e.NextToken,i=void 0===o?"":o,a=e.StreamNames,c=void 0===a?[]:a,u=e.StreamSummaries,s=void 0===u?[]:u;return new t(n,i,c,null==s?void 0:s.map(ye.fromJson))}}])}(),ye=function(){function t(e,r,n,o,i){te(this,t),se(this,"streamARN",void 0),se(this,"streamCreationTimestamp",void 0),se(this,"streamModeDetails",void 0),se(this,"streamName",void 0),se(this,"streamStatus",void 0),this.streamARN=e,this.streamCreationTimestamp=r,this.streamModeDetails=n,this.streamName=o,this.streamStatus=i}return re(t,null,[{key:"fromJson",value:function(e){var r=e.StreamARN,n=void 0===r?"":r,o=e.StreamCreationTimestamp,i=void 0===o?0:o,a=e.StreamModeDetails,c=void 0===a?{}:a,u=e.StreamName,s=void 0===u?"":u,l=e.StreamStatus;return new t(n,i,c,s,void 0===l?"":l)}}])}(),de=function(){function t(e,r,n){te(this,t),se(this,"encryptionType",void 0),se(this,"failedRecordCount",void 0),se(this,"records",void 0),this.encryptionType=e,this.failedRecordCount=r,this.records=n}return re(t,null,[{key:"fromJson",value:function(e){var r=e.EncryptionType,n=void 0===r?"NONE":r,o=e.FailedRecordCount,i=void 0===o?0:o,a=e.Records;return new t(n,i,(void 0===a?[]:a).map(ve.fromJson))}}])}(),ve=function(){function t(e,r){te(this,t),se(this,"sequenceNumber",void 0),se(this,"shardId",void 0),this.sequenceNumber=e,this.shardId=r}return re(t,null,[{key:"fromJson",value:function(e){return new t(e.SequenceNumber,e.ShardId)}}])}(),me=function(){function t(e,r,n){te(this,t),se(this,"nextShardIterator",void 0),se(this,"records",void 0),se(this,"millisBehindLatest",void 0),this.nextShardIterator=e,this.records=r,this.millisBehindLatest=n}return re(t,null,[{key:"fromJson",value:function(e){var r=e.NextShardIterator,n=void 0===r?"":r,o=e.Records,i=void 0===o?[]:o,a=e.MillisBehindLatest,c=void 0===a?0:a;return new t(n,i.map(ge.fromJson),c)}}])}(),ge=function(){function t(e,r,n){te(this,t),se(this,"data",void 0),se(this,"partitionKey",void 0),se(this,"sequenceNumber",void 0),this.data=e,this.partitionKey=r,this.sequenceNumber=n}return re(t,null,[{key:"fromJson",value:function(e){return new t(e.Data,e.PartitionKey,e.SequenceNumber)}}])}(),be=function(){function t(e,r){te(this,t),se(this,"shards",void 0),se(this,"nextToken",void 0),this.shards=e,this.nextToken=r}return re(t,null,[{key:"fromJson",value:function(e){var r=e.Shards,n=void 0===r?[]:r,o=e.NextToken;return new t(n.map(we.fromJson),o)}}])}(),we=function(){function t(e,r,n,o,i){te(this,t),se(this,"id",void 0),se(this,"parentShardId",void 0),se(this,"adjacentParentShardId",void 0),se(this,"hashKeyRange",void 0),se(this,"sequenceNumberRange",void 0),this.id=e,this.parentShardId=o,this.adjacentParentShardId=i,this.hashKeyRange=r,this.sequenceNumberRange=n}return re(t,null,[{key:"fromJson",value:function(e){return new t(e.ShardId,e.HashKeyRange,e.SequenceNumberRange,e.ParentShardId,e.AdjacentParentShardId)}}])}(),Oe=function(){function t(e){te(this,t),se(this,"shardIterator",void 0),this.shardIterator=e}return re(t,null,[{key:"fromJson",value:function(e){return new t(e.ShardIterator)}}])}();function Ee(t){return Ee="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ee(t)}function Se(){Se=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var i=e&&e.prototype instanceof m?e:m,a=Object.create(i.prototype),c=new L(n||[]);return o(a,"_invoke",{value:x(t,r,c)}),a}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var h="suspendedStart",p="suspendedYield",y="executing",d="completed",v={};function m(){}function g(){}function b(){}var w={};s(w,a,(function(){return this}));var O=Object.getPrototypeOf,E=O&&O(O(N([])));E&&E!==r&&n.call(E,a)&&(w=E);var S=b.prototype=m.prototype=Object.create(w);function j(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function P(t,e){function r(o,i,a,c){var u=f(t[o],t,i);if("throw"!==u.type){var s=u.arg,l=s.value;return l&&"object"==Ee(l)&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(l).then((function(t){s.value=t,a(s)}),(function(t){return r("throw",t,a,c)}))}c(u.arg)}var i;o(this,"_invoke",{value:function(t,n){function o(){return new e((function(e,o){r(t,n,e,o)}))}return i=i?i.then(o,o):o()}})}function x(e,r,n){var o=h;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===d){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=_(c,n);if(u){if(u===v)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===h)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var s=f(e,r,n);if("normal"===s.type){if(o=n.done?d:p,s.arg===v)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(o=d,n.method="throw",n.arg=s.arg)}}}function _(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,_(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;var i=f(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,v;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,v):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function T(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function N(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function r(){for(;++o=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),s=n.call(a,"finallyLoc");if(u&&s){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),T(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;T(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:N(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),v}},e}function je(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Pe(t){for(var e=1;e=1400&&s<=1499){var f=l.Message||l.message||l.__type;if("InvalidSignatureException"===l.__type)throw new i.s(f,l.__type);throw new Ke(f,l.__type,r)}if(1500===s)throw new Ke("An error occured on the server side","InternalServiceError",r);return!0}}]);var r,n}(l.R),Me=function(t){return t.PutEvents="PutEvents",t}(Me||{}),Ke=function(t){function e(t,r,n){var o;return _e(this,e),Ie(o=Le(this,e,[t,r]),"operation",void 0),o.name="EventBridgeServiceError",o.operation=n,o}return Ae(e,t),Te(e)}(o.cv),He=r(340),Be=exports;for(var Ue in n)Be[Ue]=n[Ue];n.__esModule&&Object.defineProperty(Be,"__esModule",{value:!0})})(); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/lib/aws/0.13.0/index.js.LICENSE.txt b/lib/aws/0.13.0/index.js.LICENSE.txt new file mode 100644 index 0000000..ae386fb --- /dev/null +++ b/lib/aws/0.13.0/index.js.LICENSE.txt @@ -0,0 +1 @@ +/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ diff --git a/lib/aws/0.13.0/index.js.map b/lib/aws/0.13.0/index.js.map new file mode 100644 index 0000000..9f095a7 --- /dev/null +++ b/lib/aws/0.13.0/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","mappings":"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","sources":["webpack://k6-jslib-aws/./src/internal/client.ts","webpack://k6-jslib-aws/./src/internal/config.ts","webpack://k6-jslib-aws/./src/internal/constants.ts","webpack://k6-jslib-aws/./src/internal/endpoint.ts","webpack://k6-jslib-aws/./src/internal/error.ts","webpack://k6-jslib-aws/./src/internal/http.ts","webpack://k6-jslib-aws/./src/internal/signature.ts","webpack://k6-jslib-aws/./src/internal/utils.ts","webpack://k6-jslib-aws/external commonjs \"k6/encoding\"","webpack://k6-jslib-aws/./src/internal/lambda.ts","webpack://k6-jslib-aws/./src/internal/sqs.ts","webpack://k6-jslib-aws/external commonjs \"k6/crypto\"","webpack://k6-jslib-aws/external commonjs \"k6/html\"","webpack://k6-jslib-aws/external commonjs \"k6/http\"","webpack://k6-jslib-aws/webpack/bootstrap","webpack://k6-jslib-aws/webpack/runtime/compat get default export","webpack://k6-jslib-aws/webpack/runtime/define property getters","webpack://k6-jslib-aws/webpack/runtime/hasOwnProperty shorthand","webpack://k6-jslib-aws/webpack/runtime/make namespace object","webpack://k6-jslib-aws/./src/internal/kms.ts","webpack://k6-jslib-aws/./src/internal/s3.ts","webpack://k6-jslib-aws/external commonjs \"https://jslib.k6.io/k6-utils/1.4.0/index.js\"","webpack://k6-jslib-aws/./src/internal/secrets-manager.ts","webpack://k6-jslib-aws/./src/internal/ssm.ts","webpack://k6-jslib-aws/./src/internal/kinesis.ts","webpack://k6-jslib-aws/./src/internal/event-bridge.ts"],"sourcesContent":["import { RefinedResponse, ResponseType, Params } from 'k6/http'\n\nimport { AWSConfig } from './config'\nimport { Endpoint } from './endpoint'\nimport { HTTPHeaders } from './http'\nimport {\n GeneralErrorKind,\n DNSErrorKind,\n TCPErrorKind,\n TLSErrorKind,\n HTTP2ErrorKind,\n GeneralError,\n DNSError,\n TCPError,\n TLSError,\n HTTP2Error,\n} from './error'\n\n/**\n * Class allowing to build requests targeting AWS APIs\n *\n * This class is meant to be used as a base class for specific\n * services clients. See S3Client or SecretsManagerClient for\n * usage examples.\n */\nexport class AWSClient {\n readonly awsConfig: AWSConfig\n readonly serviceName: string\n\n // Because jslib-aws is mostly used as a way to setup or feed k6 tests, and\n // we want the jslib-aws to be able to disregard k6's discardResponseBodies: meaning\n // that for instance, even when setting discardResponseBodies to true in the k6 options, using\n // s3.getObject still receives the underlying response body and returns data to the user.\n //\n // To achieve this, we set the responseType to 'text' in the baseRequestParams, as it\n // will lead the http module to ignore the discardResponseBodies option.\n //\n // AWS Client classes can override this value if they want to receive the response body\n // as a different type ('binary' for instance, e.g. S3Client.getObject).\n //\n // See #45: https://github.com/grafana/k6-jslib-aws/issues/45\n readonly baseRequestParams: Params = {\n responseType: 'text',\n }\n\n private _endpoint?: Endpoint\n\n /**\n * @param {AWSConfig} awsConfig - configuration attributes to use when interacting with AWS' APIs\n * @param {string} serviceName - name of the service to target.\n * @param {URIEncodingConfig} URIencodingConfig - configures how requests URIs should be encoded.\n */\n constructor(awsConfig: AWSConfig, serviceName: string) {\n this.awsConfig = awsConfig\n this.serviceName = serviceName\n\n // If an endpoint is provided in the config, set it\n // to ensure the default endpoint is not used.\n if (awsConfig.endpoint != undefined) {\n this._endpoint = awsConfig.endpoint\n }\n }\n\n /**\n * Represents the endpoint URL of the AWS service.\n *\n * If no custom endpoint is set, a default endpoint will be constructed\n * using the service name and region provided in the AWS config.\n *\n * @type {Endpoint}\n * @public\n */\n public get endpoint() {\n if (this._endpoint == undefined) {\n this._endpoint = new Endpoint(\n `https://${this.serviceName}.${this.awsConfig.region}.amazonaws.com`\n )\n }\n return this._endpoint\n }\n\n /**\n * Updates the endpoint URL of the AWS service.\n *\n * This can be used to override the default AWS service endpoint or set a custom endpoint.\n *\n * @param {Endpoint} endpoint - The new endpoint to set for the AWS service.\n * @public\n */\n public set endpoint(endpoint: Endpoint) {\n this._endpoint = endpoint\n }\n\n /**\n * Handles the k6 http response potential errors produced when making a\n * request to an AWS service.\n *\n * Importantly, this method only handles errors that emerge from the k6 http client itself, and\n * won't handle AWS specific errors. To handle AWS specific errors, client classes are\n * expected to implement their own error handling logic by overriding this method.\n *\n * @param response {RefinedResponse} the response received by the k6 http client\n * @param operation {string | undefined } the name of the operation that was attempted when the error occurred\n * @param {boolean} returns true if an error was handled, false otherwise\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n protected handleError(response: RefinedResponse, operation?: string): boolean {\n const status: number = response.status\n const errorCode: number = response.error_code\n const errorMessage: string = response.error\n\n // We consider codes 200-299 as success.\n //\n // We do not consider 3xx as success as some services such as S3 can use\n // 301 to indicate a bucket not found\n if (status >= 200 && status < 300 && errorMessage == '' && errorCode === 0) {\n return false\n }\n\n switch (errorCode) {\n case GeneralErrorKind.GenericError:\n case GeneralErrorKind.NonTCPNetworkError:\n case GeneralErrorKind.InvalidURL:\n case GeneralErrorKind.HTTPRequestTimeout:\n throw new GeneralError(errorCode);\n case DNSErrorKind.GenericDNSError:\n case DNSErrorKind.NoIPFound:\n case DNSErrorKind.BlacklistedIP:\n case DNSErrorKind.BlacklistedHostname:\n throw new DNSError(errorCode);\n case TCPErrorKind.GenericTCPError:\n case TCPErrorKind.BrokenPipeOnWrite:\n case TCPErrorKind.UnknownTCPError:\n case TCPErrorKind.GeneralTCPDialError:\n case TCPErrorKind.DialTimeoutError:\n case TCPErrorKind.DialConnectionRefused:\n case TCPErrorKind.DialUnknownError:\n case TCPErrorKind.ResetByPeer:\n throw new TCPError(errorCode);\n case TLSErrorKind.GeneralTLSError:\n case TLSErrorKind.UnknownAuthority:\n case TLSErrorKind.CertificateHostnameMismatch:\n throw new TLSError(errorCode);\n case HTTP2ErrorKind.GenericHTTP2Error:\n case HTTP2ErrorKind.GeneralHTTP2GoAwayError:\n throw new HTTP2Error(errorCode);\n }\n\n return true\n }\n}\n\n/**\n * Type alias representing the result of an AWSClient.buildRequest call\n */\nexport interface AWSRequest {\n readonly url: string\n readonly headers: HTTPHeaders\n}\n","import { HTTPScheme } from './http'\nimport { Endpoint } from './endpoint'\n\n/** Class holding an AWS connection information */\nexport class AWSConfig {\n /**\n * The AWS region to connect to, as listed: https://docs.aws.amazon.com/general/latest/gr/rande.html\n *\n * @type {string}\n */\n region: string\n\n /**\n * Your user's AWS access key id credential.\n *\n * @type {string}\n */\n accessKeyId: string\n\n /**\n * Your user's AWS secret access key credential.\n *\n * @type {string}\n */\n secretAccessKey: string\n\n /**\n * Your user's AWS session token credential.\n *\n * @type {string}\n */\n sessionToken?: string\n\n /**\n * The AWS hostname to connect to.\n *\n * @type {string} ['amazonaws.com']\n */\n endpoint?: Endpoint\n\n /**\n * fromEnvironment creates an AWSConfig from the environment variables.\n *\n * It expects to find the following compulsory environment variables:\n * * AWS_REGION\n * * AWS_ACCESS_KEY_ID\n * * AWS_SECRET_ACCESS_KEY\n *\n * If set, the following optional environment variables are also used:\n * * AWS_SESSION_TOKEN\n *\n * Finally, the options parameter allows to explicitly set the scheme and endpoint\n * to use when connecting to AWS.\n *\n * @param options {AWSConnectionOptions}\n * @returns\n */\n static fromEnvironment(options?: AWSConnectionOptions): AWSConfig {\n const region = __ENV.AWS_REGION\n const accessKeyId = __ENV.AWS_ACCESS_KEY_ID\n const secretAccessKey = __ENV.AWS_SECRET_ACCESS_KEY\n const sessionToken: string | undefined = __ENV.AWS_SESSION_TOKEN\n const endpoint: Endpoint | string | undefined = options?.endpoint\n\n return new AWSConfig({\n region,\n accessKeyId,\n secretAccessKey,\n sessionToken,\n endpoint: endpoint,\n })\n }\n\n /**\n * Create an AWSConfig.\n *\n * @param {AWSConfigOptions} options - configuration attributes to use when interacting with AWS' APIs\n * @throws {InvalidArgumentException}\n */\n constructor(options: AWSConfigOptions) {\n if (!options.region || options.region === '') {\n throw new InvalidAWSConfigError(\n `invalid AWS region; reason: expected a valid AWS region name (e.g. \"us-east-1\"), got \\`${options.region}\\``\n )\n }\n\n if (!options.accessKeyId || options.accessKeyId === '') {\n throw new InvalidAWSConfigError(\n `invalid AWS access key ID; reason: expected a non empty string, got \\`${options.accessKeyId}\\``\n )\n }\n\n if (options.accessKeyId.length < 16 || options.accessKeyId.length > 128) {\n throw new InvalidAWSConfigError(\n `invalid AWS access key ID; reason: size should be between 16 and 128 characters, got ${options.accessKeyId.length}`\n )\n }\n\n if (!options.secretAccessKey || options.secretAccessKey === '') {\n throw new InvalidAWSConfigError(\n `invalid AWS secret access key; reason: expected a non empty string, got \\`${options.secretAccessKey}\\``\n )\n }\n\n this.region = options.region\n this.accessKeyId = options.accessKeyId\n this.secretAccessKey = options.secretAccessKey\n\n if (options.sessionToken !== undefined) {\n this.sessionToken = options.sessionToken\n }\n\n if (options.endpoint !== undefined) {\n if (typeof options.endpoint === 'string') {\n this.endpoint = new Endpoint(options.endpoint)\n } else {\n this.endpoint = options.endpoint\n }\n }\n }\n}\n\n/**\n * Interface representing AWSConfig options\n */\nexport interface AWSConfigOptions extends AWSConnectionOptions {\n /**\n * The AWS region to connect to, as listed: https://docs.aws.amazon.com/general/latest/gr/rande.html\n *\n * @type {string}\n */\n region: string\n\n /**\n * Your user's AWS access key id credential.\n *\n * @type {string}\n */\n accessKeyId: string\n\n /**\n * Your user's AWS secret access key credential.\n *\n * @type {string}\n */\n secretAccessKey: string\n\n /**\n * Your user's AWS session token credential.\n *\n * @type {string}\n */\n sessionToken?: string\n}\n\n/**\n * Interface representing AWS connection options\n */\nexport interface AWSConnectionOptions {\n /**\n * The HTTP scheme to use when connecting to AWS.\n *\n * @type {HTTPScheme}\n */\n scheme?: HTTPScheme\n\n /**\n * The AWS hostname to connect to.\n *\n * @type {string}\n */\n endpoint?: Endpoint | string\n}\n\n/** Class representing an invalid AWS configuration */\nexport class InvalidAWSConfigError extends Error {\n constructor(message: string) {\n super(message)\n }\n}\n","/**\n * Standard Amazon AWS query parameter names\n */\nexport const AMZ_ALGORITHM_QUERY_PARAM = 'X-Amz-Algorithm'\nexport const AMZ_CREDENTIAL_QUERY_PARAM = 'X-Amz-Credential'\nexport const AMZ_DATE_QUERY_PARAM = 'X-Amz-Date'\nexport const AMZ_EXPIRES_QUERY_PARAM = 'X-Amz-Expires'\nexport const AMZ_SIGNATURE_QUERY_PARAM = 'X-Amz-Signature'\nexport const AMZ_SIGNED_HEADERS_QUERY_PARAM = 'X-Amz-SignedHeaders'\nexport const AMZ_TARGET_QUERY_PARAM = 'X-Amz-Target'\nexport const AMZ_TOKEN_QUERY_PARAM = 'X-Amz-Security-Token'\n\n/**\n * Standard Amazon AWS header names\n */\nexport const AMZ_CONTENT_SHA256_HEADER = 'x-amz-content-sha256'\nexport const AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase()\nexport const AMZ_SIGNATURE_HEADER = AMZ_SIGNATURE_QUERY_PARAM.toLowerCase()\nexport const AMZ_TARGET_HEADER = AMZ_TARGET_QUERY_PARAM.toLowerCase()\nexport const AMZ_TOKEN_HEADER = AMZ_TOKEN_QUERY_PARAM.toLowerCase()\n\n/**\n * Common HTTP headers we rely on in the signing process\n */\nexport const AUTHORIZATION_HEADER = 'authorization'\nexport const DATE_HEADER = 'date'\n\n/**\n * Lists the headers that are generated as part of the signature process.\n */\nexport const GENERATED_HEADERS = [AUTHORIZATION_HEADER, AMZ_DATE_HEADER, DATE_HEADER]\nexport const HOST_HEADER = 'host'\n\n/**\n * Lists the headers that should never be included in the\n * request signature signature process.\n */\nexport const ALWAYS_UNSIGNABLE_HEADERS = {\n authorization: true,\n 'cache-control': true,\n connection: true,\n expect: true,\n from: true,\n 'keep-alive': true,\n 'max-forwards': true,\n pragma: true,\n referer: true,\n te: true,\n trailer: true,\n 'transfer-encoding': true,\n upgrade: true,\n 'user-agent': true,\n 'x-amzn-trace-id': true,\n}\n\n/**\n * Signature specific constants included in the signing process\n */\nexport const KEY_TYPE_IDENTIFIER = 'aws4_request'\nexport const SIGNING_ALGORITHM_IDENTIFIER = 'AWS4-HMAC-SHA256'\n\n/**\n * Maximum time to live of a signed request in seconds: 7 days.\n */\nexport const MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7\n\n/**\n * SHA256 hash of an empty string (so we don't waste cycles recomputing it)\n */\nexport const EMPTY_SHA256 = 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'\n\n/**\n * SHA256 hash of the unsigned payload constant (so we don't waste cycles recomputing it)\n */\nexport const UNSIGNED_PAYLOAD_SHA256 =\n '5a41b0751e4537c6ff868564ab44a4d4ecceec2ec5b1c5f74d97422968e04237'\n\nexport const UNSIGNED_PAYLOAD = 'UNSIGNED-PAYLOAD'\n","/**\n * Represents an AWS service endpoint, providing utilities for parsing and handling URL details.\n */\nexport class Endpoint {\n private _protocol: string\n private _hostname: string\n private _port?: number\n\n // Default protocol, this can be globally changed as per application requirements\n private static readonly DEFAULT_PROTOCOL = 'https' // Set this as per AWS.config\n\n /**\n // * Constructs a new Endpoint instance.\n *\n * @param {string} endpoint - The URL to construct an endpoint from. If the URL omits a protocol, the default protocol will be used.\n */\n constructor(endpoint: string) {\n const isDefaultProtocol =\n !endpoint.startsWith('http://') && !endpoint.startsWith('https://')\n const completeUrl = isDefaultProtocol\n ? `${Endpoint.DEFAULT_PROTOCOL}://${endpoint}`\n : endpoint\n\n const protocolMatch = completeUrl.match(/^https?:/)\n const hostAndPath = completeUrl.replace(/^https?:\\/\\//, '')\n const [hostnameWithPort] = hostAndPath.split('/')\n\n this._protocol = protocolMatch ? protocolMatch[0].slice(0, -1) : Endpoint.DEFAULT_PROTOCOL\n this._hostname = hostnameWithPort.split(':')[0]\n this._port = hostnameWithPort.split(':')[1]\n ? parseInt(hostnameWithPort.split(':')[1])\n : undefined\n }\n\n /**\n * Creates a new Endpoint instance that is a copy of the current one.\n *\n * @returns {Endpoint} The copied Endpoint.\n */\n public copy(): Endpoint {\n return new Endpoint(this.href)\n }\n\n /**\n * Gets the host portion of the endpoint including the port.\n *\n * @returns {string} The host portion of the endpoint including the port.\n */\n public get host(): string {\n return this._port ? `${this._hostname}:${this._port}` : this._hostname\n }\n\n /**\n * Sets the host portion of the endpoint including the port.\n *\n * @param {string} value - The value to set for the host.\n */\n public set host(value: string) {\n const [hostname, port] = value.split(':')\n this._hostname = hostname\n this._port = port ? parseInt(port) : undefined\n }\n\n /**\n * Gets the host portion of the endpoint without the port.\n *\n * @returns {string} The host portion of the endpoint.\n */\n public get hostname(): string {\n return this._hostname\n }\n\n /**\n * Sets the host portion of the endpoint without the port.\n *\n * @param {string} value - The value to set for the hostname.\n */\n public set hostname(value: string) {\n this._hostname = value\n }\n\n /**\n * Gets the full URL of the endpoint.\n *\n * @returns {string} The full URL of the endpoint.\n */\n public get href(): string {\n return `${this.protocol}://${this.host}`\n }\n\n /**\n * Sets the full URL of the endpoint.\n *\n * @param {string} value - The value to set for the full URL.\n */\n public set href(value: string) {\n const protocolMatch = value.match(/^https?:/)\n const withoutProtocol = value.replace(/^https?:\\/\\//, '')\n const [hostnameWithPort] = withoutProtocol.split('/')\n\n this._protocol = protocolMatch ? protocolMatch[0].slice(0, -1) : Endpoint.DEFAULT_PROTOCOL // remove the trailing colon\n this._hostname = hostnameWithPort.split(':')[0]\n this._port = hostnameWithPort.split(':')[1]\n ? parseInt(hostnameWithPort.split(':')[1])\n : undefined\n }\n\n /**\n * Gets the port of the endpoint.\n *\n * @returns {number|undefined} The port of the endpoint.\n */\n public get port(): number | undefined {\n return this._port\n }\n\n /**\n * Sets the port of the endpoint.\n *\n * @param {number|undefined} value - The value to set for the port.\n */\n public set port(value: number | undefined) {\n this._port = value\n }\n\n /**\n * Gets the protocol (http or https) of the endpoint URL.\n *\n * @returns {string} The protocol of the endpoint URL.\n */\n public get protocol(): string {\n return this._protocol\n }\n\n /**\n * Sets the protocol (http or https) of the endpoint URL.\n *\n * @param {string} value - The value to set for the protocol.\n */\n public set protocol(value: string) {\n this._protocol = value\n }\n}\n","import { JSONObject } from './json'\nimport { parseHTML } from 'k6/html'\nimport { Response } from 'k6/http'\n\n/**\n * Base class to derive errors from\n *\n * Inspired from AWS official error types, as\n * described in:\n * * https://aws.amazon.com/blogs/developer/service-error-handling-modular-aws-sdk-js/\n * * https://github.com/aws/aws-sdk-js/blob/master/lib/error.d.ts\n */\nexport class AWSError extends Error {\n /**\n * Error code issued by the service (if any)\n */\n code?: string\n\n /**\n * Create an AWSError\n *\n * @param {string} message - A longer human readable error message.\n * @param {string?} code - A unique short code representing the error that was emitted\n */\n constructor(message: string, code?: string) {\n super(message)\n this.name = 'AWSError'\n this.code = code\n }\n\n /**\n * Parse an AWSError from an XML document\n *\n * @param {string} xmlDocument - Serialized XML document to parse the error from\n * @returns {AWSError} - The parsed AWSError object\n */\n static parseXML(xmlDocument: string): AWSError {\n const doc = parseHTML(xmlDocument)\n return new AWSError(doc.find('Message').text(), doc.find('Code').text())\n }\n\n /**\n * Parse an AWSError from a Response object\n *\n * @param {Response} response - The Response object to parse the error from\n * @returns {AWSError} - The parsed AWSError object\n */\n static parse(response: Response): AWSError {\n if (response.headers['Content-Type'] === 'application/json') {\n const error = (response.json() as JSONObject) || {}\n const message =\n error.Message ||\n error.message ||\n error.__type ||\n 'An error occurred on the server side'\n const code = response.headers['X-Amzn-Errortype'] || error.__type\n return new AWSError(message as string, code as string)\n } else {\n return AWSError.parseXML(response.body as string)\n }\n }\n}\n\n/**\n * Base class for network errors as produced by k6.\n *\n * Based on the network error handling in k6, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n *\n * @typeparam N - The name of the network error\n * @typeparam K - The kind of the network error\n */\nexport class NetworkError extends Error {\n code: K\n name: N\n\n /**\n * Create a NetworkError\n *\n * @param {N} name - The name of the network error\n * @param {K} code - The kind of the network error\n */\n constructor(name: N, code: K) {\n super(ErrorMessages[code] || 'An unknown error occurred')\n this.name = name\n this.code = code\n }\n}\n\n/**\n * Represents a general network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class GeneralError extends NetworkError<'GeneralError', GeneralErrorKind> {\n /**\n * Create a GeneralError\n *\n * @param {GeneralErrorKind} code - The kind of the general error\n */\n constructor(code: GeneralErrorKind) {\n super('GeneralError', code)\n }\n}\n\n/**\n * Represents a DNS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class DNSError extends NetworkError<'DNSError', DNSErrorKind> {\n /**\n * Create a DNSError\n *\n * @param {DNSErrorKind} code - The kind of the DNS error\n */\n constructor(code: DNSErrorKind) {\n super('DNSError', code)\n }\n}\n\n/**\n * Represents a TCP-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class TCPError extends NetworkError<'TCPError', TCPErrorKind> {\n /**\n * Create a TCPError\n *\n * @param {TCPErrorKind} code - The kind of the TCP error\n */\n constructor(code: TCPErrorKind) {\n super('TCPError', code)\n }\n}\n\n/**\n * Represents a TLS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class TLSError extends NetworkError<'TLSError', TLSErrorKind> {\n /**\n * Create a TLSError\n *\n * @param {TLSErrorKind} code - The kind of the TLS error\n */\n constructor(code: TLSErrorKind) {\n super('TLSError', code)\n }\n}\n\n/**\n * Represents an HTTP/2-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class HTTP2Error extends NetworkError<'HTTP2Error', HTTP2ErrorKind> {\n /**\n * Create an HTTP2Error\n *\n * @param {HTTP2ErrorKind} code - The kind of the HTTP/2 error\n */\n constructor(code: HTTP2ErrorKind) {\n super('HTTP2Error', code)\n }\n}\n\n/**\n * Represents the name of a network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\ntype NetworkErrorName = 'GeneralError' | 'DNSError' | 'TCPError' | 'TLSError' | 'HTTP2Error'\n\n/**\n * Represents the kind of a network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\ntype ErrorKind = GeneralErrorKind | DNSErrorKind | TCPErrorKind | TLSErrorKind | HTTP2ErrorKind\n\n/**\n * Represents the kind of a general network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum GeneralErrorKind {\n GenericError = 1000,\n NonTCPNetworkError = 1010,\n InvalidURL = 1020,\n HTTPRequestTimeout = 1050,\n}\n\n/**\n * Represents the kind of a DNS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum DNSErrorKind {\n GenericDNSError = 1100,\n NoIPFound = 1101,\n BlacklistedIP = 1110,\n BlacklistedHostname = 1111,\n}\n\n/**\n * Represents the kind of a TCP-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum TCPErrorKind {\n GenericTCPError = 1200,\n BrokenPipeOnWrite = 1201,\n UnknownTCPError = 1202,\n GeneralTCPDialError = 1210,\n DialTimeoutError = 1211,\n DialConnectionRefused = 1212,\n DialUnknownError = 1213,\n ResetByPeer = 1220,\n}\n\n/**\n * Represents the kind of a TLS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum TLSErrorKind {\n GeneralTLSError = 1300,\n UnknownAuthority = 1310,\n CertificateHostnameMismatch = 1311,\n}\n\n/**\n * Represents the kind of an HTTP/2-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum HTTP2ErrorKind {\n GenericHTTP2Error = 1600,\n GeneralHTTP2GoAwayError = 1610,\n}\n\n/**\n * Error messages for each kind of network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nconst ErrorMessages: { [key in ErrorKind]: string } = {\n [GeneralErrorKind.GenericError]: 'A generic error that isn’t any of the ones listed below',\n [GeneralErrorKind.NonTCPNetworkError]:\n 'A non-TCP network error - this is a placeholder and there is no error currently known to trigger it',\n [GeneralErrorKind.InvalidURL]: 'An invalid URL was specified',\n [GeneralErrorKind.HTTPRequestTimeout]: 'The HTTP request has timed out',\n [DNSErrorKind.GenericDNSError]: 'A generic DNS error that isn’t any of the ones listed below',\n [DNSErrorKind.NoIPFound]: 'No IP for the provided host was found',\n [DNSErrorKind.BlacklistedIP]:\n 'Blacklisted IP was resolved or a connection to such was tried to be established',\n [DNSErrorKind.BlacklistedHostname]: 'Blacklisted hostname using The Block Hostnames option',\n [TCPErrorKind.GenericTCPError]: 'A generic TCP error that isn’t any of the ones listed below',\n [TCPErrorKind.BrokenPipeOnWrite]:\n 'A “broken pipe” on write - the other side has likely closed the connection',\n [TCPErrorKind.UnknownTCPError]:\n 'An unknown TCP error - We got an error that we don’t recognize but it is from the operating system and has errno set on it. The message in error includes the operation(write,read) and the errno, the OS, and the original message of the error',\n [TCPErrorKind.GeneralTCPDialError]: 'General TCP dial error',\n [TCPErrorKind.DialTimeoutError]: 'Dial timeout error - the timeout for the dial was reached',\n [TCPErrorKind.DialConnectionRefused]:\n 'Dial connection refused - the connection was refused by the other party on dial',\n [TCPErrorKind.DialUnknownError]: 'Dial unknown error',\n [TCPErrorKind.ResetByPeer]:\n 'Reset by peer - the connection was reset by the other party, most likely a server',\n [TLSErrorKind.GeneralTLSError]: 'General TLS error',\n [TLSErrorKind.UnknownAuthority]: 'Unknown authority - the certificate issuer is unknown',\n [TLSErrorKind.CertificateHostnameMismatch]: 'The certificate doesn’t match the hostname',\n [HTTP2ErrorKind.GenericHTTP2Error]:\n 'A generic HTTP/2 error that isn’t any of the ones listed below',\n [HTTP2ErrorKind.GeneralHTTP2GoAwayError]: 'A general HTTP/2 GoAway error',\n}\n","import { Endpoint } from './endpoint'\n\n/**\n * Type representing HTTP schemes\n */\nexport type HTTPScheme = 'http' | 'https'\n\n/**\n * Type representing HTTP Methods\n *\n */\nexport type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'DELETE'\n\n/**\n * Type alias representing HTTP Headers\n */\nexport type HTTPHeaders = { [key: string]: string }\n\n/**\n * HTTPHeaderBag is a type alias representing HTTP Headers\n */\nexport type HTTPHeaderBag = Record\n\nexport function hasHeader(soughtHeader: string, headers: HTTPHeaderBag): boolean {\n soughtHeader = soughtHeader.toLowerCase()\n\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * QueryParameterBag is a type alias representing HTTP Query Parameters\n */\nexport type QueryParameterBag = Record>\n\n/**\n * HTTPRequest represents an HTTP request\n */\nexport interface HTTPRequest {\n /**\n * The HTTP method to use\n */\n method: HTTPMethod\n\n /**\n * Represents an AWS service endpoint, providing utilities for parsing and handling URL details.\n */\n endpoint: Endpoint\n\n /**\n * The path to the resource\n */\n path: string\n\n /**\n * The query parameters to include in the request\n */\n query?: QueryParameterBag\n\n /**\n * The headers to include in the request\n */\n headers: HTTPHeaderBag\n\n /**\n * The body of the request\n */\n body?: string | ArrayBuffer | null\n}\n\n/**\n * SignedHTTPRequest represents an HTTP request that has been signed\n * with an AWS signature. It is a superset of HTTPRequest adding\n * the following fields:\n * - url: the fully qualified URL of the request that can be used in a k6 http.request.\n */\nexport interface SignedHTTPRequest extends HTTPRequest {\n url: string\n}\n","import crypto from 'k6/crypto'\n\nimport * as constants from './constants'\nimport { AWSError } from './error'\nimport { hasHeader, HTTPHeaderBag, HTTPRequest, QueryParameterBag, SignedHTTPRequest } from './http'\nimport { isArrayBuffer } from './utils'\n\n/**\n * SignatureV4 can be used to sign HTTP requests and presign URLs using the AWS Signature\n * Version 4 signing process.\n *\n * It offers two signing methods:\n * - sign: signs the request headers and payload\n * - presign: returns a presigned (authorization information contained in the query string) URL\n *\n * @see https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html\n */\nexport class SignatureV4 {\n /**\n * The name of the service to sign for.\n */\n private readonly service: string\n\n /**\n * The name of the region to sign for.\n */\n private readonly region: string\n\n /**\n * The credentials with which the request should be signed.\n */\n private readonly credentials: Credentials\n\n /**\n * Whether to uri-escape the request URI path as part of computing the\n * canonical request string. This is required for every AWS service, except\n * Amazon S3, as of late 2017.\n *\n * @default [true]\n */\n private readonly uriEscapePath: boolean\n\n /**\n * Whether to calculate a checksum of the request body and include it as\n * either a request header (when signing) or as a query string parameter\n * (when presigning). This is required for AWS Glacier and Amazon S3 and optional for\n * every other AWS service as of late 2017.\n *\n * @default [true]\n */\n private readonly applyChecksum: boolean\n\n // TODO: uriEscapePath and applyChecksum should not be present in the constructor\n constructor({\n service,\n region,\n credentials,\n uriEscapePath,\n applyChecksum,\n }: SignatureV4Options) {\n this.service = service\n this.region = region\n this.credentials = credentials\n this.uriEscapePath = typeof uriEscapePath === 'boolean' ? uriEscapePath : true\n this.applyChecksum = typeof applyChecksum === 'boolean' ? applyChecksum : true\n }\n\n /**\n * Includes AWS v4 signing information to the provided HTTP request.\n *\n * This method adds an Authorization header to the request, containing\n * the signature and other signing information. It also returns a preformatted\n * URL that can be used to make the k6 http request.\n *\n * This method mutates the request object.\n *\n * @param request {HTTPRequest} The request to sign.\n * @param options {Partial} Options for signing the request.\n * @returns {SignedHTTPRequest} The signed request.\n */\n sign(request: HTTPRequest, options: Partial = {}): SignedHTTPRequest {\n // Set default values for options which are not provided by the user.\n const defaultOptions = {\n signingDate: new Date(),\n unsignableHeaders: new Set(),\n signableHeaders: new Set(),\n }\n\n // Merge default options with the ones maybe provided by the user.\n const finalOptions = { ...defaultOptions, ...options }\n\n const { longDate, shortDate }: DateInfo = formatDate(finalOptions.signingDate)\n const service = finalOptions.signingService || this.service\n const region = finalOptions.signingRegion || this.region\n const scope = `${shortDate}/${region}/${service}/${constants.KEY_TYPE_IDENTIFIER}`\n\n // Required by the specification:\n // \"For HTTP/1.1 requests, you must include the host header at a minimum.\n // Standard headers like content-type are optional.\n // For HTTP/2 requests, you must include the :authority header instead of\n // the host header. Different services might require other headers.\"\n if (!request.headers[constants.HOST_HEADER]) {\n request.headers[constants.HOST_HEADER] = request.endpoint.hostname\n }\n\n // Filter out headers that will be generated and managed by the signing process.\n // If the user provide any of those as part of the HTTPRequest's headers, they\n // will be ignored.\n for (const headerName of Object.keys(request.headers)) {\n if (constants.GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) {\n delete request.headers[headerName]\n }\n }\n\n request.headers[constants.AMZ_DATE_HEADER] = longDate\n if (this.credentials.sessionToken) {\n request.headers[constants.AMZ_TOKEN_HEADER] = this.credentials.sessionToken\n }\n\n // If the request body is a typed array, we need to convert it to a buffer\n // so that we can calculate the checksum.\n if (ArrayBuffer.isView(request.body)) {\n request.body = request.body.buffer\n }\n\n // Ensure we avoid passing undefined to the crypto hash function.\n if (!request.body) {\n request.body = ''\n }\n\n const payloadHash = this.computePayloadHash(request)\n if (\n !hasHeader(constants.AMZ_CONTENT_SHA256_HEADER, request.headers) &&\n this.applyChecksum\n ) {\n request.headers[constants.AMZ_CONTENT_SHA256_HEADER] = payloadHash\n }\n\n const canonicalHeaders = this.computeCanonicalHeaders(\n request,\n finalOptions.unsignableHeaders,\n finalOptions.signableHeaders\n )\n const signature = this.calculateSignature(\n longDate,\n scope,\n this.deriveSigningKey(this.credentials, service, region, shortDate),\n this.createCanonicalRequest(request, canonicalHeaders, payloadHash)\n )\n\n /**\n * Step 4 of the signing process: add the signature to the HTTP request's headers.\n *\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html\n */\n request.headers[constants.AUTHORIZATION_HEADER] =\n `${constants.SIGNING_ALGORITHM_IDENTIFIER} ` +\n `Credential=${this.credentials.accessKeyId}/${scope}, ` +\n `SignedHeaders=${Object.keys(canonicalHeaders).sort().join(';')}, ` +\n `Signature=${signature}`\n\n // If a request path was provided, add it to the URL\n let url = request.endpoint.href\n if (request.path) {\n // Ensure the URI and the request path are properly concatenated\n // by adding a trailing slash to the URI if it's missing.\n if (!url.endsWith('/') && !request.path.startsWith('/')) {\n url += '/'\n }\n\n // Append the path to the URL\n url += request.path\n }\n\n // If a request query string was provided, add it to the URL\n if (request.query) {\n // We exclude the signature from the query string\n url += `?${this.serializeQueryParameters(request.query)}`\n }\n\n return {\n url: url,\n ...request,\n }\n }\n\n /**\n * Produces a presigned URL with AWS v4 signature information for the provided HTTP request.\n *\n * A presigned URL is a URL that contains the authorization information\n * (signature and other signing information) in the query string. This method\n * returns a preformatted URL that can be used to make the k6 http request.\n *\n * @param originalRequest - The original request to presign.\n * @param options - Options controlling the signing of the request.\n * @returns A signed request, including the presigned URL.\n */\n presign(originalRequest: HTTPRequest, options: PresignOptions = {}): SignedHTTPRequest {\n const {\n signingDate = new Date(),\n expiresIn = 3600,\n unsignableHeaders,\n unhoistableHeaders,\n signableHeaders,\n signingRegion,\n signingService,\n } = options\n const { longDate, shortDate }: DateInfo = formatDate(signingDate)\n const region = signingRegion || this.region\n const service = signingService || this.service\n\n if (expiresIn > constants.MAX_PRESIGNED_TTL) {\n throw new InvalidSignatureError(\n \"Signature version 4 presigned URLs can't be valid for more than 7 days\"\n )\n }\n\n const scope = `${shortDate}/${region}/${service}/${constants.KEY_TYPE_IDENTIFIER}`\n const request = this.moveHeadersToQuery(originalRequest, { unhoistableHeaders })\n\n // Required by the specification:\n // \"For HTTP/1.1 requests, you must include the host header at a minimum.\n // Standard headers like content-type are optional.\n // For HTTP/2 requests, you must include the :authority header instead of\n // the host header. Different services might require other headers.\"\n if (!request.headers[constants.HOST_HEADER]) {\n request.headers[constants.HOST_HEADER] = originalRequest.endpoint.hostname\n }\n\n // If the user provided a session token, include it in the signed url query string.\n if (this.credentials.sessionToken) {\n request.query[constants.AMZ_TOKEN_QUERY_PARAM] = this.credentials.sessionToken\n }\n // Add base signing query parameters to the request, as described in the documentation\n // @see https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html\n request.query[constants.AMZ_ALGORITHM_QUERY_PARAM] = constants.SIGNING_ALGORITHM_IDENTIFIER\n request.query[\n constants.AMZ_CREDENTIAL_QUERY_PARAM\n ] = `${this.credentials.accessKeyId}/${scope}`\n request.query[constants.AMZ_DATE_QUERY_PARAM] = longDate\n request.query[constants.AMZ_EXPIRES_QUERY_PARAM] = expiresIn.toString(10)\n\n const canonicalHeaders = this.computeCanonicalHeaders(\n request,\n unsignableHeaders,\n signableHeaders\n )\n request.query[constants.AMZ_SIGNED_HEADERS_QUERY_PARAM] = Object.keys(canonicalHeaders)\n .sort()\n .join(';')\n\n const signingKey = this.deriveSigningKey(this.credentials, service, region, shortDate)\n\n // Computing the payload from the original request. This is required\n // in the event the user attempts to produce a presigned URL for s3,\n // which requires the payload hash to be 'UNSIGNED-PAYLOAD'.\n //\n // To that effect, users need to set the 'x-amz-content-sha256' header,\n // and mark it as unhoistable and unsignable. When setup this way,\n // the computePayloadHash method will then return the string 'UNSIGNED-PAYLOAD'.\n const payloadHash = this.computePayloadHash(originalRequest)\n const canonicalRequest = this.createCanonicalRequest(request, canonicalHeaders, payloadHash)\n\n request.query[constants.AMZ_SIGNATURE_QUERY_PARAM] = this.calculateSignature(\n longDate,\n scope,\n signingKey,\n canonicalRequest\n )\n\n // If a request path was provided, add it to the URL\n let url = originalRequest.endpoint.href\n if (request.path) {\n // Ensure there is a trailing slash at the end of the URL\n // so that appending the path does not result in a malformed URL.\n url = url?.endsWith('/') ? url : url + '/'\n\n // Append the path to the URL\n url += request.path\n }\n\n // If a request query string was provided, add it to the URL\n if (request.query) {\n url += `?${this.serializeQueryParameters(request.query)}`\n }\n\n return { url: url, ...request }\n }\n\n /**\n * Create a string including information from your request\n * in a AWS signature v4 standardized (canonical) format.\n *\n * Step 1 of the signing process: create the canonical request string.\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html\n *\n * @param request {HTTPRequest} The request to sign.\n * @param canonicalHeaders {HTTPHeaderBag} The request's canonical headers.\n * @param payloadHash {string} The hexadecimally encoded request's payload hash .\n * @returns {string} The canonical request string.\n */\n private createCanonicalRequest(\n request: HTTPRequest,\n canonicalHeaders: HTTPHeaderBag,\n payloadHash: string\n ): string {\n const sortedHeaders = Object.keys(canonicalHeaders).sort()\n const sortedCanonicalHeaders = sortedHeaders\n .map((name) => `${name}:${canonicalHeaders[name]}`)\n .join('\\n')\n const signedHeaders = sortedHeaders.join(';')\n\n return (\n `${request.method}\\n` +\n `${this.computeCanonicalURI(request)}\\n` +\n `${this.computeCanonicalQuerystring(request)}\\n` +\n `${sortedCanonicalHeaders}\\n\\n` +\n `${signedHeaders}\\n` +\n `${payloadHash}`\n )\n }\n\n /**\n * Create the \"string to sign\" part of the signature Version 4 protocol.\n *\n * The \"string to sign\" includes meta information about your request and\n * about the canonical request that you created with `createCanonicalRequest`.\n * It is used hand in hand with the signing key to create the request signature.\n * Step 2 of the signing process: create the string to sign.\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-create-string-to-sign.html\n *\n * @param longDate {string} The request's date in iso 8601 format.\n * @param credentialScope {string} The request's credential scope.\n * @param canonicalRequest {string} The request's canonical request.\n * @returns {string} The \"string to sign\".\n */\n private createStringToSign(\n longDate: string,\n credentialScope: string,\n canonicalRequest: string\n ): string {\n const hashedCanonicalRequest = crypto.sha256(canonicalRequest, 'hex')\n\n return (\n `${constants.SIGNING_ALGORITHM_IDENTIFIER}\\n` +\n `${longDate}\\n` +\n `${credentialScope}\\n` +\n `${hashedCanonicalRequest}`\n )\n }\n\n /**\n * Calculte the signature for AWS signature version 4.\n *\n * Step 3 of the signing process: create the signature.\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-calculate-signature.html\n *\n * @param longDate {string} The request's date in iso 8601 format.\n * @param credentialScope {string} The request's credential scope.\n * @param signingKey {string} the signing key as computed by the deriveSigningKey method.\n * @param canonicalRequest {string} The request's canonical request.\n * @returns {string} The signature.\n */\n private calculateSignature(\n longDate: string,\n credentialScope: string,\n signingKey: Uint8Array,\n canonicalRequest: string\n ): string {\n const stringToSign = this.createStringToSign(longDate, credentialScope, canonicalRequest)\n return crypto.hmac('sha256', signingKey, stringToSign, 'hex')\n }\n\n /**\n * Derives the signing key for authenticating requests signed with\n * the Signature version 4 authentication protocol.\n *\n * deriveSigningKey produces a signing key by creating a series of\n * hash-based message authentication codes (HMACs) represented in\n * a binary format.\n *\n * The derived signing key is specific to the date it's made at, as well as\n * the service and region it targets.\n *\n * @param credentials {AWSCredentials} The credentials to use for signing.\n * @param service {string} The service the request is targeted at.\n * @param region {string} The region the request is targeted at.\n * @param shortDate {string} The request's date in YYYYMMDD format.\n * @returns {Uint8Array} The derived signing key.\n */\n private deriveSigningKey(\n credentials: Credentials,\n service: string,\n region: string,\n shortDate: string\n ): Uint8Array {\n const kSecret: string = credentials.secretAccessKey\n /**\n * crypto.hmac returns a value of type `bytes`, which is an alias for\n * number[]. However, the secret argument to hmac needs to either be\n * a `string` or ArrayBuffer. The only way to get around this is to\n * cast the return value of hmac to any, thus, we disable the no-explicit-any\n * ESLint rule for this function.\n */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const kDate: any = crypto.hmac('sha256', 'AWS4' + kSecret, shortDate, 'binary')\n const kRegion: any = crypto.hmac('sha256', kDate, region, 'binary')\n const kService: any = crypto.hmac('sha256', kRegion, service, 'binary')\n const kSigning: any = crypto.hmac('sha256', kService, 'aws4_request', 'binary')\n /* eslint-enable @typescript-eslint/no-explicit-any */\n\n return kSigning\n }\n\n /**\n * Create a string that includes information from your request\n * in a AWS signature v4 standardized (canonical) format.\n *\n * @param param0 {HTTPRequest} The request to sign.\n * @returns {string} The canonical URI.\n */\n private computeCanonicalURI({ path }: HTTPRequest): string {\n if (this.uriEscapePath) {\n // Non-S3 services, we normalize the path and then double URI encode it.\n // Ref: \"Remove Dot Segments\" https://datatracker.ietf.org/doc/html/rfc3986#section-5.2.4\n const normalizedURISegments = []\n\n for (const URISegment of path.split('/')) {\n if (URISegment?.length === 0) {\n continue\n }\n\n if (URISegment === '.') {\n continue\n }\n\n if (URISegment === '..') {\n normalizedURISegments.pop()\n } else {\n normalizedURISegments.push(URISegment)\n }\n }\n\n // Normalize the URI\n const leading = path?.startsWith('/') ? '/' : ''\n const URI = normalizedURISegments.join('/')\n const trailing = normalizedURISegments.length > 0 && path?.endsWith('/') ? '/' : ''\n const normalizedURI = `${leading}${URI}${trailing}`\n\n const doubleEncoded = encodeURIComponent(normalizedURI)\n\n return doubleEncoded.replace(/%2F/g, '/')\n }\n\n // For S3, we shouldn't normalize the path. For example, object name\n // my-object//example//photo.user should not be normalized to\n // my-object/example/photo.user\n return path\n }\n\n /**\n * Serializes the request's query parameters into their canonical\n * string version. If the request does not include a query parameters,\n * returns an empty string.\n *\n * @param param0 {HTTPRequest} The request containing the query parameters.\n * @returns {string} The canonical query string.\n */\n private computeCanonicalQuerystring({ query = {} }: HTTPRequest): string {\n const keys: Array = []\n const serialized: Record = {}\n\n for (const key of Object.keys(query).sort()) {\n if (key.toLowerCase() === constants.AMZ_SIGNATURE_HEADER) {\n continue\n }\n\n keys.push(key)\n const value = query[key]\n\n if (typeof value === 'string') {\n serialized[key] = `${escapeURI(key)}=${escapeURI(value)}`\n } else if (Array.isArray(value)) {\n serialized[key] = value\n .slice(0)\n .sort()\n .reduce(\n (encoded: Array, value: string) =>\n encoded.concat([`${escapeURI(key)}=${escapeURI(value)}`]),\n []\n )\n .join('&')\n }\n }\n\n return keys\n .map((key) => serialized[key])\n .filter((serialized) => serialized)\n .join('&')\n }\n\n /**\n * Create the canonical form of the request's headers.\n * Canonical headers consist of all the HTTP headers you\n * are including with the signed request.\n *\n * @param param0 {HTTPRequest} The request to compute the canonical headers of.\n * @param unsignableHeaders {Set} The headers that should not be signed.\n * @param signableHeaders {Set} The headers that should be signed.\n * @returns {string} The canonical headers.\n */\n private computeCanonicalHeaders(\n { headers }: HTTPRequest,\n unsignableHeaders?: Set,\n signableHeaders?: Set\n ): HTTPHeaderBag {\n const canonicalHeaders: HTTPHeaderBag = {}\n\n for (const headerName of Object.keys(headers).sort()) {\n if (headers[headerName] == undefined) {\n continue\n }\n\n const canonicalHeaderName = headerName.toLowerCase()\n if (\n canonicalHeaderName in constants.ALWAYS_UNSIGNABLE_HEADERS ||\n unsignableHeaders?.has(canonicalHeaderName)\n ) {\n if (\n !signableHeaders ||\n (signableHeaders && !signableHeaders.has(canonicalHeaderName))\n ) {\n continue\n }\n }\n\n if (typeof headers[headerName] === 'string') {\n canonicalHeaders[canonicalHeaderName] = headers[headerName] = headers[headerName]\n .trim()\n .replace(/\\s+/g, ' ')\n }\n }\n\n return canonicalHeaders\n }\n\n /**\n * Computes the SHA256 cryptographic hash of the request's body.\n *\n * If the headers contain the 'X-Amz-Content-Sha256' header, then\n * the value of that header is returned instead. This proves useful\n * when, for example, presiging a URL for S3, as the payload hash\n * must always be equal to 'UNSIGNED-PAYLOAD'.\n *\n * @param param0 {HTTPRequest} The request to compute the payload hash of.\n * @returns {string} The hex encoded SHA256 payload hash, or the value of the 'X-Amz-Content-Sha256' header.\n */\n private computePayloadHash({ headers, body }: HTTPRequest): string {\n // for (const headerName of Object.keys(headers)) {\n // // If the header is present, return its value.\n // // So that we let the 'UNSIGNED-PAYLOAD' value pass through.\n // if (headerName.toLowerCase() === constants.AMZ_CONTENT_SHA256_HEADER) {\n // return headers[headerName]\n // }\n // }\n\n if (headers[constants.AMZ_CONTENT_SHA256_HEADER]) {\n return headers[constants.AMZ_CONTENT_SHA256_HEADER]\n }\n\n if (body == undefined) {\n return constants.EMPTY_SHA256\n }\n\n if (typeof body === 'string' || isArrayBuffer(body)) {\n return crypto.sha256(body, 'hex').toLowerCase()\n }\n\n if (ArrayBuffer.isView(body)) {\n // If the request body is a typed array, we need to convert it to a buffer\n // so that we can calculate the checksum.\n return crypto.sha256((body as DataView).buffer, 'hex').toLowerCase()\n }\n\n return constants.UNSIGNED_PAYLOAD\n }\n\n /**\n * Moves a request's headers to its query parameters.\n *\n * The operation will ignore any amazon standard headers, prefixed\n * with 'X-Amz-'. It will also ignore any headers specified as unhoistable\n * by the options.\n *\n * The operation will delete the headers from the request.\n *\n * @param request {HTTPRequest} The request to move the headers from.\n * @param options\n * @returns {HTTPRequest} The request with the headers moved to the query parameters.\n */\n private moveHeadersToQuery(\n request: HTTPRequest,\n options: { unhoistableHeaders?: Set } = {}\n ): HTTPRequest & { query: QueryParameterBag } {\n const requestCopy = JSON.parse(JSON.stringify(request))\n const { headers, query = {} as QueryParameterBag } = requestCopy\n\n for (const name of Object.keys(headers)) {\n const lowerCaseName = name.toLowerCase()\n if (\n lowerCaseName.slice(0, 6) === 'x-amz-' &&\n !options.unhoistableHeaders?.has(lowerCaseName)\n ) {\n query[name] = headers[name]\n delete headers[name]\n }\n }\n\n return {\n ...requestCopy,\n headers,\n query,\n }\n }\n\n /**\n * Serializes a HTTPRequest's query parameter bag into a string.\n *\n * @param query {QueryParameterBag} The query parameters to serialize.\n * @param ignoreKeys {Set} The keys to ignore.\n * @returns {string} The serialized, and ready to use in a URL, query parameters.\n */\n private serializeQueryParameters(query: QueryParameterBag, ignoreKeys?: string[]): string {\n const keys: Array = []\n const serialized: Record = {}\n\n for (const key of Object.keys(query).sort()) {\n if (ignoreKeys?.includes(key.toLowerCase())) {\n continue\n }\n\n keys.push(key)\n const value = query[key]\n\n if (typeof value === 'string') {\n serialized[key] = `${escapeURI(key)}=${escapeURI(value)}`\n } else if (Array.isArray(value)) {\n serialized[key] = value\n .slice(0)\n .sort()\n .reduce(\n (encoded: Array, value: string) =>\n encoded.concat([`${escapeURI(key)}=${escapeURI(value)}`]),\n []\n )\n .join('&')\n }\n }\n\n return keys\n .map((key) => serialized[key])\n .filter((serialized) => serialized)\n .join('&')\n }\n}\n\n/**\n * Error indicating an Invalid signature has been sent to AWS services\n *\n * Inspired from AWS official error types, as\n * described in:\n * * https://aws.amazon.com/blogs/developer/service-error-handling-modular-aws-sdk-js/\n * * https://github.com/aws/aws-sdk-js/blob/master/lib/error.d.ts\n */\nexport class InvalidSignatureError extends AWSError {\n /**\n * Constructs an InvalidSignatureError\n *\n * @param {string} message - human readable error message\n */\n constructor(message: string, code?: string) {\n super(message, code)\n this.name = 'InvalidSignatureError'\n }\n}\n\nexport interface SignatureV4Options {\n /**\n * The name of the service to sign for.\n */\n service: string\n\n /**\n * The name of the region to sign for.\n */\n region: string\n\n /**\n * The credentials with which the request should be signed.\n */\n credentials: Credentials\n\n /**\n * Whether to uri-escape the request URI path as part of computing the\n * canonical request string. This is required for every AWS service, except\n * Amazon S3, as of late 2017.\n *\n * @default [true]\n */\n uriEscapePath?: boolean\n\n /**\n * Whether to calculate a checksum of the request body and include it as\n * either a request header (when signing) or as a query string parameter\n * (when presigning). This is required for AWS Glacier and Amazon S3 and optional for\n * every other AWS service as of late 2017.\n *\n * @default [true]\n */\n applyChecksum?: boolean\n}\n\nexport interface SignOptions {\n /**\n * The date and time to be used as signature metadata. This value should be\n * a Date object, a unix (epoch) timestamp, or a string that can be\n * understood by the JavaScript `Date` constructor.If not supplied, the\n * value returned by `new Date()` will be used.\n */\n signingDate?: Date\n\n /**\n * The service signing name. It will override the service name of the signer\n * in current invocation\n */\n signingService?: string\n\n /**\n * The region name to sign the request. It will override the signing region of the\n * signer in current invocation\n */\n signingRegion?: string\n}\n\nexport interface RequestSigningOptions extends SignOptions {\n /**\n * A set of strings whose members represents headers that cannot be signed.\n * All headers in the provided request will have their names converted to\n * lower case and then checked for existence in the unsignableHeaders set.\n */\n unsignableHeaders?: Set\n\n /**\n * A set of strings whose members represents headers that should be signed.\n * Any values passed here will override those provided via unsignableHeaders,\n * allowing them to be signed.\n *\n * All headers in the provided request will have their names converted to\n * lower case before signing.\n */\n signableHeaders?: Set\n}\n\nexport interface PresignOptions extends RequestSigningOptions {\n /**\n * The number of seconds before the presigned URL expires\n */\n expiresIn?: number\n\n /**\n * A set of strings whose representing headers that should not be hoisted\n * to presigned request's query string. If not supplied, the presigner\n * moves all the AWS-specific headers (starting with `x-amz-`) to the request\n * query string. If supplied, these headers remain in the presigned request's\n * header.\n * All headers in the provided request will have their names converted to\n * lower case and then checked for existence in the unhoistableHeaders set.\n */\n unhoistableHeaders?: Set\n}\n\nexport interface Credentials {\n /**\n * AWS access key ID\n */\n readonly accessKeyId: string\n\n /**\n * AWS secret access key\n */\n readonly secretAccessKey: string\n\n /**\n * A security or session token to use with these credentials. Usually\n * present for temporary credentials.\n */\n readonly sessionToken?: string\n}\n\nexport interface DateInfo {\n /**\n * ISO8601 formatted date string\n */\n longDate: string\n\n /**\n * String in the format YYYYMMDD\n */\n shortDate: string\n}\n\n/**\n * Escapes a URI following the AWS signature v4 escaping rules.\n *\n * @param URI {string} The URI to escape.\n * @returns {string} The escaped URI.\n */\nfunction escapeURI(URI: string): string {\n const hexEncode = (c: string): string => {\n return `%${c.charCodeAt(0).toString(16).toUpperCase()}`\n }\n\n return encodeURIComponent(URI).replace(/[!'()*]/g, hexEncode)\n}\n\n/**\n * formatDate formats a Date object into a ISO8601 formatted date string\n * and a string in the format YYYYMMDD.\n *\n * @param date {Date} The date to format.\n * @returns {DateInfo} The formatted date.\n */\nfunction formatDate(date: Date): DateInfo {\n const longDate = iso8601(date).replace(/[-:]/g, '')\n return {\n longDate,\n shortDate: longDate.slice(0, 8),\n }\n}\n\n/**\n * Formats a time into an ISO 8601 string.\n *\n * @see https://en.wikipedia.org/wiki/ISO_8601\n *\n * @param time {number | string | Date} The time to format.\n * @returns {string} The ISO 8601 formatted time.\n */\nfunction iso8601(time: number | string | Date): string {\n return toDate(time)\n .toISOString()\n .replace(/\\.\\d{3}Z$/, 'Z')\n}\n\n/**\n * Converts a time value into a Date object.\n *\n * @param time {number | string | Date} The time to convert.\n * @returns {Date} The resulting Date object.\n */\nfunction toDate(time: number | string | Date): Date {\n if (typeof time === 'number') {\n return new Date(time * 1000)\n }\n\n if (typeof time === 'string') {\n if (Number(time)) {\n return new Date(Number(time) * 1000)\n }\n\n return new Date(time)\n }\n\n return time\n}\n","/**\n *\n * @param value\n * @returns\n */\nexport function isArrayBuffer(value: unknown): value is ArrayBuffer {\n return (\n typeof ArrayBuffer === 'function' &&\n (value instanceof ArrayBuffer ||\n Object.prototype.toString.call(value) === '[object ArrayBuffer]')\n )\n}\n\nexport function toFormUrlEncoded(form: Record): string {\n return Object.keys(form)\n .reduce((params, key) => {\n const value = form[key]\n if (value !== undefined && value !== null) {\n params.push(`${encodeURIComponent(key)}=${encodeURIComponent(value)}`)\n }\n return params\n }, [] as string[])\n .join('&')\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"k6/encoding\");","import http, { RefinedResponse, ResponseType } from 'k6/http'\nimport encoding from 'k6/encoding'\n\nimport { AWSClient } from './client'\nimport { AWSConfig } from './config'\nimport { AWSError } from './error'\nimport { InvalidSignatureError, SignatureV4 } from './signature'\nimport { AMZ_TARGET_HEADER } from './constants'\nimport { HTTPHeaders, HTTPMethod, QueryParameterBag } from './http'\n\n/**\n * Class allowing to interact with Amazon AWS's Lambda service\n */\nexport class LambdaClient extends AWSClient {\n private readonly signature: SignatureV4\n private readonly commonHeaders: HTTPHeaders\n private readonly method: HTTPMethod\n\n constructor(awsConfig: AWSConfig) {\n super(awsConfig, 'lambda')\n\n this.signature = new SignatureV4({\n service: this.serviceName,\n region: this.awsConfig.region,\n credentials: {\n accessKeyId: this.awsConfig.accessKeyId,\n secretAccessKey: this.awsConfig.secretAccessKey,\n sessionToken: this.awsConfig.sessionToken,\n },\n uriEscapePath: true,\n applyChecksum: false,\n })\n\n this.method = 'POST'\n this.commonHeaders = {\n 'Content-Type': 'application/x-amz-json-1.1',\n }\n }\n\n /**\n * Invoke an AWS Lambda function\n *\n * @param {string} name - The name of the function\n * @param {string} payload - The payload to send to function\n * @param {InvocationOptions} options - Additional options to customize invocation\n *\n * @throws {LambdaInvocationError}\n */\n async invoke(\n name: string,\n payload: string,\n options: InvocationOptions = {}\n ): Promise {\n const query: QueryParameterBag = {}\n const invocationType = options.invocationType || 'RequestResponse'\n const headers = {\n ...this.commonHeaders,\n [AMZ_TARGET_HEADER]: `AWSLambda.${invocationType}`,\n 'X-Amz-Invocation-Type': invocationType,\n 'X-Amz-Log-Type': options.logType || 'None',\n }\n if (options.clientContext) {\n headers['X-Amz-Client-Context'] = options.clientContext\n }\n if (options.qualifier) {\n query['Qualifier'] = options.qualifier\n }\n\n const signedRequest = this.signature.sign(\n {\n method: this.method,\n endpoint: this.endpoint,\n path: `/2015-03-31/functions/${name}/invocations`,\n query,\n headers,\n body: payload || '',\n },\n {}\n )\n\n const res = await http.asyncRequest(this.method, signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res)\n\n const logResult = res.headers['X-Amz-Log-Result']\n const response = {\n executedVersion: res.headers['X-Amz-Executed-Version'],\n logResult: logResult ? encoding.b64decode(logResult, 'std', 's') : undefined,\n statusCode: res.status,\n payload: res.body as string,\n }\n\n const functionError = res.headers['X-Amz-Function-Error']\n if (functionError) {\n throw new LambdaInvocationError(functionError, response)\n } else {\n return response\n }\n }\n\n\n protected handleError(response: RefinedResponse, operation?: string): boolean {\n const errored = super.handleError(response, operation);\n if (!errored) {\n return false;\n }\n\n const awsError = AWSError.parse(response)\n switch (awsError.code) {\n case 'AuthorizationHeaderMalformed':\n case 'InvalidSignatureException':\n throw new InvalidSignatureError(awsError.message, awsError.code)\n default:\n throw awsError\n }\n\n return true\n }\n}\n\nexport class LambdaInvocationError extends Error {\n response: InvocationResponse\n\n constructor(message: string, response: InvocationResponse) {\n super(`${message}: ${response.payload}`)\n this.response = response\n }\n}\n\ninterface InvocationOptions {\n /**\n * Defines whether the function is invoked synchronously or asynchronously.\n * - `RequestResponse` (default): Invoke the function synchronously.\n * - `Event`: Invoke the function asynchronously.\n * - `DryRun`: Validate parameter values and verify that the user or role has permission to invoke the function.\n */\n invocationType?: 'RequestResponse' | 'Event' | 'DryRun'\n /**\n * Set to `Tail` to include the execution log in the response. Applies to synchronously invoked functions only.\n */\n logType?: 'None' | 'Tail'\n /**\n * Up to 3,583 bytes of base64-encoded data about the invoking client to pass to the function in the context object.\n */\n clientContext?: string\n /**\n * Specify a version or alias to invoke a published version of the function.\n */\n qualifier?: string\n}\n\ninterface InvocationResponse {\n statusCode: number\n executedVersion?: string\n logResult?: string\n payload?: string\n}\n","import { AWSClient } from './client'\nimport { AWSConfig } from './config'\nimport { InvalidSignatureError, SignatureV4 } from './signature'\nimport { HTTPHeaders } from './http'\nimport http, { RefinedResponse, ResponseType } from 'k6/http'\nimport { AWSError } from './error'\nimport { AMZ_TARGET_HEADER } from './constants'\nimport { JSONObject } from './json'\n\nexport class SQSClient extends AWSClient {\n private readonly signature: SignatureV4\n private readonly commonHeaders: HTTPHeaders\n\n private readonly serviceVersion: string\n\n constructor(awsConfig: AWSConfig) {\n super(awsConfig, 'sqs')\n\n this.serviceVersion = 'AmazonSQS'\n\n this.signature = new SignatureV4({\n service: this.serviceName,\n region: this.awsConfig.region,\n credentials: {\n accessKeyId: this.awsConfig.accessKeyId,\n secretAccessKey: this.awsConfig.secretAccessKey,\n sessionToken: this.awsConfig.sessionToken,\n },\n uriEscapePath: true,\n applyChecksum: true,\n })\n\n this.commonHeaders = {\n 'Content-Type': 'application/x-amz-json-1.0',\n }\n }\n\n /**\n * Delivers a message to the specified queue.\n *\n * @param {string} queueUrl - The URL of the Amazon SQS queue to which a message is sent. Queue URLs and names are case-sensitive.\n * @param {string} messageBody - The message to send. The minimum size is one character. The maximum size is 256 KB.\n * @param {Object} options - Options for the request\n * @param {string} [options.messageDeduplicationId] - The message deduplication id.\n * @param {string} [options.messageGroupId] - The message group ID for FIFO queues\n * @returns {MessageResponse} - The message that was sent.\n */\n async sendMessage(\n queueUrl: string,\n messageBody: string,\n options: SendMessageOptions = {}\n ): Promise {\n const action = 'SendMessage'\n\n const body = {\n QueueUrl: queueUrl,\n ...this._combineQueueMessageBodyAndOptions(messageBody, options),\n }\n\n const res = await this._sendRequest(action, body)\n\n const parsed = res.json() as JSONObject\n return new MessageResponse(\n parsed['MessageId'] as string,\n parsed['MD5OfMessageBody'] as string\n )\n }\n\n /**\n * Delivers up to ten messages to the specified queue.\n *\n * @param {string} queueUrl - The URL of the Amazon SQS queue to which a message is sent. Queue URLs and names are case-sensitive.\n * @param {SendMessageBatchEntry[]} entries - A list of up to ten messages to send.\n * @returns {MessageBatchResponse} - The messages that were sent.\n */\n async sendMessageBatch(\n queueUrl: string,\n entries: SendMessageBatchEntry[]\n ): Promise {\n const action = 'SendMessageBatch'\n\n const requestMessageEntries = entries.map((entry) => {\n let requestMessageEntry = this._combineQueueMessageBodyAndOptions(\n entry.messageBody,\n entry.messageOptions\n )\n requestMessageEntry = { ...requestMessageEntry, Id: entry.messageId }\n return requestMessageEntry\n })\n\n const body = { QueueUrl: queueUrl, Entries: requestMessageEntries }\n\n const res = await this._sendRequest(action, body)\n\n const parsed = res.json() as JSONObject\n const successful: JSONObject[] = (parsed['Successful'] as JSONObject[]) || []\n const failed: JSONObject[] = (parsed['Failed'] as JSONObject[]) || []\n\n return {\n successful: successful.map(\n (entry) =>\n new MessageResponse(\n entry['MessageId'] as string,\n entry['MD5OfMessageBody'] as string\n )\n ),\n failed: failed.map(\n (entry) =>\n new SQSServiceError(entry['Message'] as string, entry['Code'] as string, action)\n ),\n }\n }\n\n /**\n * Returns a list of your queues in the current region.\n *\n * @param {ListQueuesRequestParameters} [parameters={}] request parameters\n * @param {number} [ListQueuesRequestParameters.maxResults] Maximum number of results to include in the response. Value range is 1 to 1000. You must set maxResults to receive a value for nextToken in the response.\n * @param {string} [ListQueuesRequestParameters.nextToken] Pagination token to request the next set of results.\n * @param {string} [ListQueuesRequestParameters.queueNamePrefix] A string to use for filtering the list results. Only those queues whose name begins with the specified string are returned.\n * @returns {Object}\n * @returns {string[]} Object.queueUrls - A list of queue URLs, up to 1000 entries.\n * @returns {string} [Object.nextToken] - In the future, you can use NextToken to request the next set of results.\n */\n async listQueues(parameters: ListQueuesRequestParameters = {}): Promise {\n const action = 'ListQueues'\n\n let body: object = {}\n\n if (typeof parameters?.maxResults !== 'undefined') {\n body = { ...body, MaxResults: parameters.maxResults }\n }\n\n if (typeof parameters?.nextToken !== 'undefined') {\n body = { ...body, NextToken: parameters.nextToken }\n }\n\n if (typeof parameters?.queueNamePrefix !== 'undefined') {\n body = { ...body, QueueNamePrefix: parameters.queueNamePrefix }\n }\n\n const res = await this._sendRequest(action, body)\n\n const parsed = res.json() as JSONObject\n return {\n urls: parsed['QueueUrls'] as string[],\n nextToken: parsed?.NextToken as string,\n }\n }\n\n private _combineQueueMessageBodyAndOptions(\n messageBody: string,\n options?: SendMessageOptions\n ): object {\n let body: object = { MessageBody: messageBody }\n\n if (options === undefined) {\n return body\n }\n\n if (typeof options.messageDeduplicationId !== 'undefined') {\n body = { ...body, MessageDeduplicationId: options.messageDeduplicationId }\n }\n\n if (typeof options.messageGroupId !== 'undefined') {\n body = { ...body, MessageGroupId: options.messageGroupId }\n }\n\n if (typeof options.messageAttributes !== 'undefined') {\n const messageAttributes: Record> = {}\n\n for (const [name, attribute] of Object.entries(options.messageAttributes)) {\n const valueParameterSuffix =\n attribute.type === 'Binary' ? 'BinaryValue' : 'StringValue'\n messageAttributes[name] = {\n DataType: attribute.type,\n }\n messageAttributes[name][valueParameterSuffix] = attribute.value\n }\n\n body = { ...body, MessageAttributes: messageAttributes }\n }\n\n if (typeof options.delaySeconds !== 'undefined') {\n body = { ...body, DelaySeconds: options.delaySeconds }\n }\n\n return body\n }\n\n private async _sendRequest(\n action: SQSOperation,\n body: object\n ): Promise> {\n const signedRequest = this.signature.sign(\n {\n method: 'POST',\n endpoint: this.endpoint,\n path: '/',\n headers: {\n ...this.commonHeaders,\n [AMZ_TARGET_HEADER]: `${this.serviceVersion}.${action}`,\n },\n body: JSON.stringify(body),\n },\n {}\n )\n\n const res = await http.asyncRequest('POST', signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n\n this._handleError(action, res)\n return res\n }\n\n private _handleError(\n operation: SQSOperation,\n response: RefinedResponse\n ) {\n const errorCode: number = response.error_code\n\n if (errorCode === 0) {\n return\n }\n\n const error = response.json() as JSONObject\n\n const errorMessage: string =\n (error.Message as string) || (error.message as string) || (error.__type as string)\n\n switch (error.__type) {\n case 'InvalidSignatureException':\n throw new InvalidSignatureError(errorMessage, error.__type)\n default:\n throw new SQSServiceError(errorMessage, error.__type as string, operation)\n }\n\n return true\n }\n\n protected handleError(\n response: RefinedResponse,\n operation?: string\n ): boolean {\n const errored = super.handleError(response)\n if (!errored) {\n return false\n }\n\n const errorCode: number = response.error_code\n\n if (errorCode === 0) {\n return false\n }\n\n const error = response.json() as JSONObject\n\n const errorMessage: string =\n (error.Message as string) || (error.message as string) || (error.__type as string)\n\n switch (error.__type) {\n case 'InvalidSignatureException':\n throw new InvalidSignatureError(errorMessage, error.__type)\n default:\n throw new SQSServiceError(\n errorMessage,\n error.__type as string,\n operation as SQSOperation\n )\n }\n }\n}\n\n/**\n * An Amazon SQS message.\n */\nexport class MessageResponse {\n /**\n * A unique identifier for the message.\n * A MessageIdis considered unique across all AWS accounts for an extended period of time.\n */\n id: string\n\n /**\n * An MD5 digest of the non-URL-encoded message body string.\n */\n bodyMD5: string\n\n /**\n * Instantiates a new Message object.\n *\n * @param id\n * @param md5Ofbody\n */\n constructor(id: string, bodyMD5: string) {\n this.id = id\n this.bodyMD5 = bodyMD5\n }\n}\n\n/**\n * An Amazon SQS message Batch Response.\n */\nexport class MessageBatchResponse {\n /**\n * A list of successful messages.\n */\n successful: MessageResponse[]\n\n /**\n * A list of failed messages.\n */\n failed: SQSServiceError[]\n\n /**\n * Instantiates a new MessageBatchResponse object.\n *\n * @param successful\n * @param failed\n */\n constructor(successful: MessageResponse[], failed: SQSServiceError[]) {\n this.successful = successful\n this.failed = failed\n }\n}\n\n/**\n * SQSServiceError indicates an error occurred while interacting with the SQS API.\n */\nexport class SQSServiceError extends AWSError {\n operation: SQSOperation\n\n constructor(message: string, code: string, operation: SQSOperation) {\n super(message, code)\n this.name = 'SQSServiceError'\n this.operation = operation\n }\n}\n\n/**\n * SQSOperation describes possible SQS operations.\n */\ntype SQSOperation = 'ListQueues' | 'SendMessage' | 'SendMessageBatch'\n\nexport interface SendMessageOptions {\n /**\n * The message deduplication ID for FIFO queues\n */\n messageDeduplicationId?: string\n\n /**\n * The message group ID for FIFO queues\n */\n messageGroupId?: string\n\n /**\n * The message attributes\n */\n messageAttributes?: {\n [name: string]: { type: 'String' | 'Number' | 'Binary'; value: string }\n }\n\n /**\n * The length of time, in seconds, for which to delay a specific message.\n */\n delaySeconds?: number\n}\n\nexport interface SendMessageBatchEntry {\n messageId: string\n messageBody: string\n messageOptions?: SendMessageOptions\n}\n\nexport interface ListQueuesRequestParameters {\n /**\n * Maximum number of results to include in the response. Value range is 1 to 1000.\n */\n maxResults?: number\n /**\n * Pagination token to request the next set of results.\n */\n nextToken?: string\n /**\n * A string to use for filtering the list results. Only those queues whose name begins with the specified string are returned.\n * Queue URLs and names are case-sensitive.\n */\n queueNamePrefix?: string\n}\n\nexport interface ListQueuesResponse {\n /**\n * A list of queue URLs, up to 1,000 entries, or the value of MaxResults you sent in the request.\n */\n urls: string[]\n /**\n * Pagination token to include in the next request.\n */\n nextToken?: string\n}\n","module.exports = require(\"k6/crypto\");","module.exports = require(\"k6/html\");","module.exports = require(\"k6/http\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { JSONArray, JSONObject } from 'k6'\nimport http, { RefinedResponse, ResponseType } from 'k6/http'\n\nimport { AWSClient } from './client'\nimport { AWSConfig } from './config'\nimport { AMZ_TARGET_HEADER } from './constants'\nimport { AWSError } from './error'\nimport { HTTPHeaders, HTTPMethod } from './http'\nimport { InvalidSignatureError, SignatureV4 } from './signature'\n\n/**\n * Class allowing to interact with Amazon AWS's KMS service\n */\nexport class KMSClient extends AWSClient {\n private readonly signature: SignatureV4\n private readonly method: HTTPMethod\n private readonly commonHeaders: HTTPHeaders\n\n /**\n * Create a KMSClient\n * @param {AWSConfig} awsConfig - configuration attributes to use when interacting with AWS' APIs\n */\n constructor(awsConfig: AWSConfig) {\n super(awsConfig, 'kms')\n\n this.signature = new SignatureV4({\n service: this.serviceName,\n region: awsConfig.region,\n credentials: {\n accessKeyId: awsConfig.accessKeyId,\n secretAccessKey: awsConfig.secretAccessKey,\n sessionToken: awsConfig.sessionToken,\n },\n uriEscapePath: true,\n applyChecksum: false,\n })\n\n // All interactions with the KMS service\n // are made via the GET or POST method.\n this.method = 'POST'\n\n this.commonHeaders = {\n 'Content-Type': 'application/x-amz-json-1.1',\n }\n }\n\n /**\n * Gets a list of all the KMS keys in the caller's AWS\n * account and region.\n *\n * @returns an array of all the available keys\n */\n async listKeys(): Promise> {\n const signedRequest = this.signature.sign(\n {\n method: this.method,\n endpoint: this.endpoint,\n path: '/',\n headers: {\n ...this.commonHeaders,\n // For some reason, the base target is not kms...\n [AMZ_TARGET_HEADER]: `TrentService.ListKeys`,\n },\n body: JSON.stringify({}),\n },\n {}\n )\n\n const res = await http.asyncRequest(this.method, signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, KMSOperation.ListKeys)\n\n const json: JSONArray = res.json('Keys') as JSONArray\n return json.map((k) => KMSKey.fromJSON(k as JSONObject))\n }\n\n /**\n * GenerateDataKey returns a unique symmetric data key for use outside of AWS KMS.\n *\n * This operation returns a plaintext copy of the data key and a copy that is encrypted under a symmetric encryption KMS key that you specify.\n * The bytes in the plaintext key are random; they are not related to the caller or the KMS key.\n * You can use the plaintext key to encrypt your data outside of AWS KMS and store the encrypted data key with the encrypted data.\n *\n * To generate a data key, specify the symmetric encryption KMS key that will be used to encrypt the data key.\n * You cannot use an asymmetric KMS key to encrypt data keys.\n *\n * Used to generate data key with the KMS key defined\n * @param {string} id - Specifies the symmetric encryption KMS key that encrypts the data key. Use its key ID, key ARN, alias name, or alias ARN.\n * @param {KMKeySize} size - Specifies the length of the data key in bytes. For example, use the value 64 to generate a 512-bit data key (64 bytes is 512 bits). Default is 32, and generates a 256-bit data key.\n * @throws {KMSServiceError}\n * @throws {InvalidSignatureError}\n * @returns {KMSDataKey} - The generated data key.\n */\n async generateDataKey(\n id: string,\n size: KMSKeySize = KMSKeySize.Size256\n ): Promise {\n const signedRequest = this.signature.sign(\n {\n method: this.method,\n endpoint: this.endpoint,\n path: '/',\n headers: {\n ...this.commonHeaders,\n // For some reason, the base target is not kms...\n [AMZ_TARGET_HEADER]: `TrentService.GenerateDataKey`,\n },\n body: JSON.stringify({ KeyId: id, NumberOfBytes: size }),\n },\n {}\n )\n\n const res = await http.asyncRequest(this.method, signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, KMSOperation.GenerateDataKey)\n\n return KMSDataKey.fromJSON(res.json() as JSONObject)\n }\n\n protected handleError(response: RefinedResponse, operation?: string): boolean {\n const errored = super.handleError(response, operation);\n if (!errored) {\n return false\n }\n\n const errorCode = response.error_code\n const error = response.json() as JSONObject\n if (errorCode >= 1400 && errorCode <= 1499) {\n // In the event of certain errors, the message is not set.\n // Also, note the inconsistency in casing...\n const errorMessage: string =\n (error.Message as string) || (error.message as string) || (error.__type as string)\n\n // Handle specifically the case of an invalid signature\n if (error.__type === 'InvalidSignatureException') {\n throw new InvalidSignatureError(errorMessage, error.__type)\n }\n\n // Otherwise throw a standard service error\n throw new KMSServiceError(errorMessage, error.__type as string, operation as KMSOperation)\n }\n\n if (errorCode === 1500) {\n throw new KMSServiceError(\n 'An error occured on the server side',\n 'InternalServiceError',\n operation as KMSOperation\n )\n }\n\n return true\n }\n}\n\n/**\n * Class representing a KMS key\n */\nexport class KMSKey {\n /**\n * ARN of the key\n */\n keyArn: string\n\n /**\n * Unique identifier of the key\n */\n keyId: string\n\n constructor(keyArn: string, KeyId: string) {\n this.keyArn = keyArn\n this.keyId = KeyId\n }\n\n static fromJSON(json: JSONObject) {\n return new KMSKey(json.KeyArn as string, json.KeyId as string)\n }\n}\n\n/**\n * Class representing a data key\n */\nexport class KMSDataKey {\n /**\n * The Amazon Resource Name (key ARN) of the KMS key that encrypted the data key.\n */\n id: string\n\n /**\n * The (base64-encoded) encrypted copy of the data key.\n */\n ciphertextBlob: string\n\n /**\n * The plaintext data key.\n * Use this data key to encrypt your data outside of KMS. Then, remove it from memory as soon as possible.\n */\n plaintext: string\n\n constructor(CiphertextBlob: string, KeyId: string, Plaintext: string) {\n this.ciphertextBlob = CiphertextBlob\n this.id = KeyId\n this.plaintext = Plaintext\n }\n\n static fromJSON(json: JSONObject) {\n return new KMSDataKey(\n json.CiphertextBlob as string,\n json.KeyId as string,\n json.Plaintext as string\n )\n }\n}\n\nexport class KMSServiceError extends AWSError {\n operation: KMSOperation\n\n /**\n * Constructs a KMSServiceError\n *\n * @param {string} message - human readable error message\n * @param {string} code - A unique short code representing the error that was emitted\n * @param {string} operation - Name of the failed Operation\n */\n constructor(message: string, code: string, operation: KMSOperation) {\n super(message, code)\n this.name = 'KMSServiceError'\n this.operation = operation\n }\n}\n\n/**\n * KMSOperation defines all currently implemented KMS Service operations.\n */\nenum KMSOperation {\n GenerateDataKey = 'GenerateDataKey',\n ListKeys = 'ListKeys',\n}\n\n/**\n * KMSKeyLength describes possible key lenght values for KMS API data key operations.\n */\nenum KMSKeySize {\n Size256 = 32,\n Size512 = 64,\n}\n","import { parseHTML } from 'k6/html'\nimport http, { RefinedResponse, ResponseType } from 'k6/http'\n\nimport { AWSClient } from './client'\nimport { AWSConfig } from './config'\nimport { AWSError } from './error'\nimport { SignedHTTPRequest } from './http'\nimport { InvalidSignatureError, SignatureV4 } from './signature'\n\n/** Class allowing to interact with Amazon AWS's S3 service */\nexport class S3Client extends AWSClient {\n private readonly signature: SignatureV4\n\n /**\n * Create a S3Client\n *\n * @param {AWSConfig} awsConfig - configuration attributes to use when interacting with AWS' APIs\n */\n constructor(awsConfig: AWSConfig) {\n super(awsConfig, 's3')\n\n this.signature = new SignatureV4({\n service: this.serviceName,\n region: this.awsConfig.region,\n credentials: {\n accessKeyId: this.awsConfig.accessKeyId,\n secretAccessKey: this.awsConfig.secretAccessKey,\n sessionToken: this.awsConfig.sessionToken,\n },\n\n // S3 requires the URI path to be escaped\n uriEscapePath: false,\n\n // Signing S3 requests requires the payload to be hashed\n // and the checksum to be included in the request headers.\n applyChecksum: true,\n })\n }\n\n /**\n * Returns a list of all buckets owned by the authenticated sender of the request.\n * To use this operation, you must have the s3:ListAllMyBuckets permission.\n *\n * @return {Array.} buckets - An array of objects describing S3 buckets\n * with the following fields: name, and creationDate.\n * @throws {S3ServiceError}\n * @throws {InvalidSignatureError}\n */\n async listBuckets(): Promise> {\n const method = 'GET'\n\n const signedRequest: SignedHTTPRequest = this.signature.sign(\n {\n method: 'GET',\n endpoint: this.endpoint,\n path: '/',\n headers: {},\n },\n {}\n )\n\n const res = await http.asyncRequest(method, signedRequest.url, signedRequest.body || null, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, 'ListBuckets')\n\n const buckets: Array = []\n\n const doc = parseHTML(res.body as string)\n\n doc.find('Buckets')\n .children()\n .each((_, bucketDefinition) => {\n const bucket = {}\n\n bucketDefinition.children().forEach((child) => {\n switch (child.nodeName()) {\n case 'name':\n Object.assign(bucket, { name: child.textContent() })\n break\n case 'creationdate':\n Object.assign(bucket, {\n creationDate: Date.parse(child.textContent()),\n })\n }\n })\n\n buckets.push(bucket as S3Bucket)\n })\n\n return buckets\n }\n\n /**\n * Returns some or all (up to 1,000) of the objects in a bucket.\n *\n * @param {string} bucketName - Bucket name to list.\n * @param {string?} prefix='' - Limits the response to keys that begin with the specified prefix.\n * @return {Array.} - returns an array of objects describing S3 objects\n * with the following fields: key, lastModified, etag, size and storageClass.\n * @throws {S3ServiceError}\n * @throws {InvalidSignatureError}\n */\n async listObjects(bucketName: string, prefix?: string): Promise> {\n const method = 'GET'\n\n const signedRequest: SignedHTTPRequest = this.signature.sign(\n {\n method: method,\n endpoint: this.endpoint,\n path: encodeURI(`/${bucketName}/`),\n query: {\n 'list-type': '2',\n prefix: prefix || '',\n },\n headers: {},\n },\n {}\n )\n\n const res = await http.asyncRequest(method, signedRequest.url, signedRequest.body || null, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, 'ListObjectsV2')\n\n const objects: Array = []\n\n // Extract the objects definition from\n // the XML response\n parseHTML(res.body as string)\n .find('Contents')\n .each((_, objectDefinition) => {\n const obj = {}\n\n objectDefinition.children().forEach((child) => {\n switch (child.nodeName()) {\n case 'key':\n Object.assign(obj, { key: child.textContent() })\n break\n case 'lastmodified':\n Object.assign(obj, { lastModified: Date.parse(child.textContent()) })\n break\n case 'etag':\n Object.assign(obj, { etag: child.textContent() })\n break\n case 'size':\n Object.assign(obj, { size: parseInt(child.textContent()) })\n break\n case 'storageclass':\n Object.assign(obj, { storageClass: child.textContent() })\n }\n })\n\n objects.push(obj as S3Object)\n })\n\n return objects\n }\n /**\n * Retrieves an Object from Amazon S3.\n *\n * To use getObject, you must have `READ` access to the object.\n *\n * @param {string} bucketName - The bucket name containing the object.\n * @param {string} objectKey - Key of the object to get.\n * @return {S3Object} - returns the content of the fetched S3 Object.\n * @throws {S3ServiceError}\n * @throws {InvalidSignatureError}\n */\n async getObject(\n bucketName: string,\n objectKey: string,\n additionalHeaders: object = {}\n ): Promise {\n // Prepare request\n const method = 'GET'\n\n const signedRequest = this.signature.sign(\n {\n method: method,\n endpoint: this.endpoint,\n path: encodeURI(`/${bucketName}/${objectKey}`),\n headers: {\n ...additionalHeaders,\n },\n },\n {}\n )\n\n // If the Accept header is set to 'application/octet-stream', we want to\n // return the response as binary data.\n let responseType: ResponseType = 'text'\n if (\n 'Accept' in additionalHeaders &&\n additionalHeaders['Accept'] !== undefined &&\n additionalHeaders['Accept'] === 'application/octet-stream'\n ) {\n responseType = 'binary'\n }\n\n const res = await http.asyncRequest(method, signedRequest.url, null, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n responseType: responseType as ResponseType,\n })\n this.handleError(res, 'GetObject')\n\n return new S3Object(\n objectKey,\n Date.parse(res.headers['Last-Modified']),\n res.headers['ETag'],\n parseInt(res.headers['Content-Length']),\n\n // The X-Amz-Storage-Class header is only set if the storage class is\n // not the default 'STANDARD' one.\n (res.headers['X-Amz-Storage-Class'] ?? 'STANDARD') as StorageClass,\n\n res.body\n )\n }\n /**\n * Adds an object to a bucket.\n *\n * You must have WRITE permissions on a bucket to add an object to it.\n *\n * @param {string} bucketName - The bucket name containing the object.\n * @param {string} objectKey - Key of the object to put.\n * @param {string | ArrayBuffer} data - the content of the S3 Object to upload.\n * @throws {S3ServiceError}\n * @throws {InvalidSignatureError}\n */\n async putObject(\n bucketName: string,\n objectKey: string,\n data: string | ArrayBuffer,\n params?: PutObjectParams\n ): Promise {\n // Prepare request\n const method = 'PUT'\n\n const signedRequest = this.signature.sign(\n {\n method: method,\n endpoint: this.endpoint,\n path: encodeURI(`/${bucketName}/${objectKey}`),\n headers: {\n Host: this.endpoint.host,\n ...(params?.contentDisposition && {\n 'Content-Disposition': params.contentDisposition,\n }),\n ...(params?.contentEncoding && { 'Content-Encoding': params.contentEncoding }),\n ...(params?.contentLength && { 'Content-Length': params.contentLength }),\n ...(params?.contentMD5 && { 'Content-MD5': params.contentMD5 }),\n ...(params?.contentType && { 'Content-Type': params.contentType }),\n },\n body: data,\n },\n {}\n )\n\n const res = await http.asyncRequest(method, signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, 'PutObject')\n }\n\n /**\n * Removes the null version (if there is one) of an object and inserts a delete marker,\n * which becomes the latest version of the object.\n *\n * @param {string} bucketName - The bucket name containing the object.\n * @param {string} objectKey - Key of the object to delete.\n * @throws {S3ServiceError}\n * @throws {InvalidSignatureError}\n */\n async deleteObject(bucketName: string, objectKey: string): Promise {\n // Prepare request\n const method = 'DELETE'\n\n const signedRequest = this.signature.sign(\n {\n method: method,\n endpoint: this.endpoint,\n path: encodeURI(`/${bucketName}/${objectKey}`),\n headers: {},\n },\n {}\n )\n\n const res = await http.asyncRequest(method, signedRequest.url, signedRequest.body || null, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, 'DeleteObject')\n }\n\n /**\n * Copies an object from one bucket to another\n *\n * @param {string} sourceBucket - The source bucket name containing the object.\n * @param {string} sourceKey - Key of the source object to copy.\n * @param {string} destinationBucket - The destination bucket name containing the object.\n * @param {string} destinationKey - Key of the destination object.\n * @throws {S3ServiceError}\n * @throws {InvalidSignatureError}\n */\n async copyObject(\n sourceBucket: string,\n sourceKey: string,\n destinationBucket: string,\n destinationKey: string\n ): Promise {\n const method = 'PUT'\n\n const bucketEndpoint = this.endpoint.copy()\n bucketEndpoint.hostname = `${destinationBucket}.${this.endpoint.hostname}`\n\n const signedRequest = this.signature.sign(\n {\n method: method,\n endpoint: bucketEndpoint,\n path: encodeURI(`/${destinationKey}`),\n headers: {\n 'x-amz-copy-source': `${sourceBucket}/${sourceKey}`,\n },\n },\n {}\n )\n\n const res = await http.asyncRequest(method, signedRequest.url, signedRequest.body || null, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n\n this.handleError(res, 'CopyObject')\n }\n\n /**\n * Creates a new multipart upload for a given objectKey.\n * The uploadId returned can be used to upload parts to the object.\n *\n * @param {string} bucketName - The bucket name containing the object.\n * @param {string} objectKey - Key of the object to upload.\n * @return {S3MultipartUpload} - returns the uploadId of the newly created multipart upload.\n * @throws {S3ServiceError}\n * @throws {InvalidSignatureError}\n */\n async createMultipartUpload(bucketName: string, objectKey: string): Promise {\n const method = 'POST'\n\n const bucketEndpoint = this.endpoint.copy()\n bucketEndpoint.hostname = `${bucketName}.${this.endpoint.hostname}`\n\n const signedRequest = this.signature.sign(\n {\n method: method,\n endpoint: bucketEndpoint,\n path: encodeURI(`/${objectKey}`),\n headers: {},\n query: { uploads: '' },\n },\n {}\n )\n\n const res = await http.asyncRequest(method, signedRequest.url, signedRequest.body || null, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, 'CreateMultipartUpload')\n\n return new S3MultipartUpload(\n objectKey,\n parseHTML(res.body as string)\n .find('UploadId')\n .text()\n )\n }\n\n /**\n * Uploads a part in a multipart upload.\n * @param {string} bucketName - The bucket name containing the object.\n * @param {string} objectKey - Key of the object to upload.\n * @param {string} uploadId - The uploadId of the multipart upload.\n * @param {number} partNumber - The part number of the part to upload.\n * @param {string | ArrayBuffer} data - The content of the part to upload.\n * @return {S3Part} - returns the ETag of the uploaded part.\n * @throws {S3ServiceError}\n */\n async uploadPart(\n bucketName: string,\n objectKey: string,\n uploadId: string,\n partNumber: number,\n data: string | ArrayBuffer\n ): Promise {\n const method = 'PUT'\n\n const bucketEndpoint = this.endpoint.copy()\n bucketEndpoint.hostname = `${bucketName}.${this.endpoint.hostname}`\n\n const signedRequest = this.signature.sign(\n {\n method: method,\n endpoint: bucketEndpoint,\n path: encodeURI(`/${objectKey}`),\n headers: {},\n body: data,\n query: {\n partNumber: `${partNumber}`,\n uploadId: `${uploadId}`,\n },\n },\n {}\n )\n\n const res = await http.asyncRequest(method, signedRequest.url, signedRequest.body || null, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, 'UploadPart')\n\n return new S3Part(partNumber, res.headers['Etag'])\n }\n\n /**\n * Completes a multipart upload by assembling previously uploaded parts.\n *\n * @param {string} bucketName - The bucket name containing the object.\n * @param {string} objectKey - Key of the object to delete.\n * @param {string} uploadId - The uploadId of the multipart upload to complete.\n * @param {S3Part[]} parts - The parts to assemble.\n * @throws {S3ServiceError}\n * @throws {InvalidSignatureError}\n */\n async completeMultipartUpload(\n bucketName: string,\n objectKey: string,\n uploadId: string,\n parts: S3Part[]\n ) {\n // Prepare request\n const method = 'POST'\n const body = `${parts\n .map(\n (part) =>\n `${part.partNumber}${part.eTag}`\n )\n .join('')}`\n\n const bucketEndpoint = this.endpoint.copy()\n bucketEndpoint.hostname = `${bucketName}.${this.endpoint.hostname}`\n\n const signedRequest = this.signature.sign(\n {\n method: method,\n endpoint: bucketEndpoint,\n path: encodeURI(`/${objectKey}`),\n headers: {},\n body: body,\n query: {\n uploadId: `${uploadId}`,\n },\n },\n {}\n )\n\n const res = await http.asyncRequest(method, signedRequest.url, signedRequest.body || null, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, 'CompleteMultipartUpload')\n }\n\n /**\n * Aborts a multipart upload.\n *\n * @param {string} bucketName - The bucket name containing the object.\n * @param {string} objectKey - Key of the object to delete.\n * @param {string} uploadId - The uploadId of the multipart upload to abort.\n * @throws {S3ServiceError}\n * @throws {InvalidSignatureError}\n */\n async abortMultipartUpload(bucketName: string, objectKey: string, uploadId: string) {\n const method = 'DELETE'\n\n const bucketEndpoint = this.endpoint.copy()\n bucketEndpoint.hostname = `${bucketName}.${this.endpoint.hostname}`\n\n const signedRequest = this.signature.sign(\n {\n method: method,\n endpoint: bucketEndpoint,\n path: encodeURI(`/${objectKey}`),\n headers: {},\n query: {\n uploadId: `${uploadId}`,\n },\n },\n {}\n )\n\n const res = await http.asyncRequest(method, signedRequest.url, signedRequest.body || null, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, 'AbortMultipartUpload')\n }\n\n handleError(response: RefinedResponse, operation?: string): boolean {\n // As we are overriding the AWSClient method: call the parent class handleError method\n const errored = super.handleError(response);\n if (!errored) {\n return false;\n }\n\n // A 301 response is returned when the bucket is not found.\n // Generally meaning that either the bucket name is wrong or the\n // region is wrong.\n //\n // See: https://github.com/grafana/k6/issues/2474\n // See: https://github.com/golang/go/issues/49281\n const errorMessage: string = response.error\n if (response.status == 301 || (errorMessage && errorMessage.startsWith('301'))) {\n throw new S3ServiceError('Resource not found', 'ResourceNotFound', operation as S3Operation)\n }\n\n const awsError = AWSError.parseXML(response.body as string)\n switch (awsError.code) {\n case 'AuthorizationHeaderMalformed':\n throw new InvalidSignatureError(awsError.message, awsError.code)\n default:\n throw new S3ServiceError(awsError.message, awsError.code || 'unknown', operation as S3Operation)\n }\n }\n}\n\n/** Class representing a S3 Bucket */\nexport class S3Bucket {\n name: string\n creationDate: Date\n\n /**\n * Create an S3 Bucket\n *\n * @param {string} name - S3 bucket's name\n * @param {Date} creationDate - S3 bucket's creation date\n */\n constructor(name: string, creationDate: Date) {\n this.name = name\n this.creationDate = creationDate\n }\n}\n\n/** Class representing an S3 Object */\nexport class S3Object {\n key: string\n lastModified: number\n etag: string\n size: number\n storageClass: StorageClass\n data?: string | ArrayBuffer | null\n\n /**\n * Create an S3 Object\n *\n * @param {string} key - S3 object's key\n * @param {Date} lastModified - S3 object last modification date\n * @param {string} etag - S3 object's etag\n * @param {number} size - S3 object's size\n * @param {StorageClass} storageClass - S3 object's storage class\n * @param {string | ArrayBuffer | null} data=null - S3 Object's data\n */\n constructor(\n key: string,\n lastModified: number,\n etag: string,\n size: number,\n storageClass: StorageClass,\n data?: string | ArrayBuffer | null\n ) {\n this.key = key\n this.lastModified = lastModified\n this.etag = etag\n this.size = size\n this.storageClass = storageClass\n this.data = data\n }\n}\n\n/** Class representing a S3 Multipart Upload */\nexport class S3MultipartUpload {\n key: string\n uploadId: string\n\n /**\n * Create an S3 Multipart Upload\n * @param {string} key - S3 object's key\n * @param {string} uploadId - S3 multipart upload id\n */\n\n constructor(key: string, uploadId: string) {\n this.key = key\n this.uploadId = uploadId\n }\n}\n\n/** Class representing a S3 Part */\nexport class S3Part {\n partNumber: number\n eTag: string\n\n /**\n * Create an S3 Part\n * @param {number} partNumber - Part number\n * @param {string} eTag - Part's etag\n */\n\n constructor(partNumber: number, eTag: string) {\n this.partNumber = partNumber\n this.eTag = eTag\n }\n}\n\n/**\n * Error indicating a S3 operation failed\n *\n * Inspired from AWS official error types, as\n * described in:\n * * https://aws.amazon.com/blogs/developer/service-error-handling-modular-aws-sdk-js/\n * * https://github.com/aws/aws-sdk-js/blob/master/lib/error.d.ts\n */\nexport class S3ServiceError extends AWSError {\n operation: string\n\n /**\n * Constructs a S3ServiceError\n *\n * @param {string} message - human readable error message\n * @param {string} code - A unique short code representing the error that was emitted\n * @param {string} operation - Name of the failed Operation\n */\n constructor(message: string, code: string, operation: string) {\n super(message, code)\n this.name = 'S3ServiceError'\n this.operation = operation\n }\n}\n\n/**\n * S3Operation describes possible values for S3 API operations,\n * as defined by AWS APIs.\n */\ntype S3Operation =\n | 'ListBuckets'\n | 'ListObjectsV2'\n | 'GetObject'\n | 'PutObject'\n | 'DeleteObject'\n | 'CopyObject'\n | 'CreateMultipartUpload'\n | 'CompleteMultipartUpload'\n | 'UploadPart'\n | 'AbortMultipartUpload'\n\n/**\n * Describes the class of storage used to store a S3 object.\n */\ntype StorageClass =\n | 'STANDARD'\n | 'REDUCED_REDUNDANCY'\n | 'GLACIER'\n | 'STANDARD_IA'\n | 'INTELLIGENT_TIERING'\n | 'DEEP_ARCHIVE'\n | 'OUTPOSTS'\n | 'GLACIER_IR'\n | undefined\n\n/**\n * PutObjectParams describes the parameters that can be passed to the PutObject operation.\n */\nexport interface PutObjectParams {\n /**\n * Specifies presentational information for the object.\n *\n * For more information, see https://www.rfc-editor.org/rfc/rfc6266#section-4.\n */\n contentDisposition?: string\n\n /**\n * Specifies what content encodings have been applied to the object and thus\n * what decoding mechanisms must be applied to obtain the media-type referenced\n * by the ContentType option.\n *\n * For more information, see https://www.rfc-editor.org/rfc/rfc9110.html#field.content-encoding.\n */\n contentEncoding?: string\n\n /**\n * Size of the body in bytes. This parameter is useful when the size of the body cannot be\n * determined automatically.\n *\n * For more information, see https://www.rfc-editor.org/rfc/rfc9110.html#name-content-length.\n */\n contentLength?: string\n\n /**\n * The base64-encoded 128-bit MD5 digest of the message (without the headers) according to RFC 1864.\n * This header can be used as a message integrity check to verify that the data is the same data that\n * was originally sent.\n *\n * Although it is optional, we recommend using the Content-MD5 mechanism as an end-to-end integrity\n * check.\n */\n contentMD5?: string\n\n /**\n * A standard MIME type describing the format of the contents.\n *\n * For more information, see https://www.rfc-editor.org/rfc/rfc9110.html#name-content-type.\n */\n contentType?: string\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"https://jslib.k6.io/k6-utils/1.4.0/index.js\");","import { JSONArray, JSONObject } from 'k6'\nimport http, { RefinedResponse, ResponseType } from 'k6/http'\nimport { uuidv4 } from 'https://jslib.k6.io/k6-utils/1.4.0/index.js'\n\nimport { AWSClient } from './client'\nimport { AWSConfig } from './config'\nimport { AMZ_TARGET_HEADER } from './constants'\nimport { AWSError } from './error'\nimport { HTTPHeaders, HTTPMethod } from './http'\nimport { InvalidSignatureError, SignatureV4 } from './signature'\n\n/**\n * Class allowing to interact with Amazon AWS's SecretsManager service\n */\nexport class SecretsManagerClient extends AWSClient {\n private readonly signature: SignatureV4\n private readonly method: HTTPMethod\n private readonly commonHeaders: HTTPHeaders\n\n /**\n * Create a SecretsManagerClient\n * @param {AWSConfig} awsConfig - configuration attributes to use when interacting with AWS' APIs\n */\n constructor(awsConfig: AWSConfig) {\n super(awsConfig, 'secretsmanager')\n\n this.signature = new SignatureV4({\n service: this.serviceName,\n region: this.awsConfig.region,\n credentials: {\n accessKeyId: this.awsConfig.accessKeyId,\n secretAccessKey: this.awsConfig.secretAccessKey,\n sessionToken: this.awsConfig.sessionToken,\n },\n uriEscapePath: true,\n applyChecksum: false,\n })\n\n // All interactions with the Secrets Manager service\n // are made via the GET or POST method.\n this.method = 'POST'\n this.commonHeaders = {\n 'Content-Type': 'application/x-amz-json-1.1',\n }\n }\n\n /**\n * Returns a list of all secrets owned by the authenticated sender of the request.\n * To use this operation, you must have the secretsmanager:ListSecrets permission.\n *\n * @return {Array.} secrets - An array of objects describing Secret Manager's secrets\n * @throws {SecretsManagerServiceError}\n * @throws {InvalidSignatureError}\n */\n async listSecrets(): Promise> {\n const signedRequest = this.signature.sign(\n {\n method: this.method,\n endpoint: this.endpoint,\n path: '/',\n headers: {\n ...this.commonHeaders,\n [AMZ_TARGET_HEADER]: `${this.serviceName}.ListSecrets`,\n },\n body: JSON.stringify({}),\n },\n {}\n )\n\n const res = await http.asyncRequest(this.method, signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, SecretsManagerOperation.ListSecrets)\n const json: JSONArray = res.json('SecretList') as JSONArray\n\n return json.map((s) => Secret.fromJSON(s as JSONObject))\n }\n\n /**\n * Retrieves a secret from Amazon Sercets Manager\n *\n * @param {string} id - The ARN or name of the secret to retrieve.\n * @returns {Secret} - returns the content of the fetched Secret object.\n * @throws {SecretsManagerServiceError}\n * @throws {InvalidSignatureError}\n */\n async getSecret(id: string): Promise {\n const signedRequest = this.signature.sign(\n {\n method: this.method,\n endpoint: this.endpoint,\n path: '/',\n headers: {\n ...this.commonHeaders,\n [AMZ_TARGET_HEADER]: `${this.serviceName}.GetSecretValue`,\n },\n body: JSON.stringify({ SecretId: id }),\n },\n {}\n )\n\n const res = await http.asyncRequest(this.method, signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n\n this.handleError(res, SecretsManagerOperation.GetSecretValue)\n\n return Secret.fromJSON(res.json() as JSONObject)\n }\n\n /**\n * Creates a new secret\n *\n * Note that this method only supports string-based values at the moment.\n *\n * @param {string} name - The name of the new secret.\n * The secret name can contain ASCII letters, numbers, and the following characters: /_+=.@\n * @param {string} secret - The text data to encrypt and store in this new version of the secret.\n * @param {string} description - The description of the secret.\n * @param {string} versionID=null - Version of the secret. This value helps ensure idempotency.\n * As a default, if no versionID is provided, one will be created for you using the UUID v4\n * algorithm.\n * @param {Array.} tags=[] - A list of tags to attach to the secret. Each tag is a key and\n * value pair of strings in a JSON text string. Note that tag key names are case sensitive.\n * @returns {Secret} - returns the created secret\n * @throws {SecretsManagerServiceError}\n * @throws {InvalidSignatureError}\n */\n async createSecret(\n name: string,\n secret: string,\n description: string,\n versionID?: string,\n tags?: Array\n ): Promise {\n versionID = versionID ?? uuidv4(true)\n\n const signedRequest = this.signature.sign(\n {\n method: this.method,\n endpoint: this.endpoint,\n path: '/',\n headers: {\n ...this.commonHeaders,\n [AMZ_TARGET_HEADER]: `${this.serviceName}.CreateSecret`,\n },\n body: JSON.stringify({\n Name: name,\n Description: description,\n SecretString: secret,\n ClientRequestToken: versionID,\n Tags: tags,\n }),\n },\n {}\n )\n\n // Ensure to include the desired 'Action' in the X-Amz-Target\n // header field, as documented by the AWS API docs.\n // headers['X-Amz-Target'] = `${this.serviceName}.CreateSecret`\n\n const res = await http.asyncRequest(this.method, signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, SecretsManagerOperation.CreateSecret)\n\n return Secret.fromJSON(res.json() as JSONObject)\n }\n /**\n * Update a secret's value.\n *\n * Note that this method only support string-based values at the moment.\n *\n * @param {string} id - The ARN or name of the secret to update.\n * @param {string} secret - The text data to encrypt and store in this new version of the secret.\n * @param {} versionID=null - A unique identifier for the new version of the secret. This value helps ensure idempotency.\n * As a default, if no versionID is provided, one will be created for you using the UUID v4\n * @throws {SecretsManagerServiceError}\n * @throws {InvalidSignatureError}\n */\n async putSecretValue(id: string, secret: string, versionID?: string): Promise {\n versionID = versionID ?? uuidv4(true)\n\n const signedRequest = this.signature.sign(\n {\n method: this.method,\n endpoint: this.endpoint,\n path: '/',\n headers: {\n ...this.commonHeaders,\n [AMZ_TARGET_HEADER]: `${this.serviceName}.PutSecretValue`,\n },\n body: JSON.stringify({\n SecretId: id,\n SecretString: secret,\n ClientRequestToken: versionID,\n }),\n },\n {}\n )\n\n const res = await http.asyncRequest(this.method, signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, SecretsManagerOperation.PutSecretValue)\n\n return Secret.fromJSON(res.json() as JSONObject)\n }\n\n /**\n * Deletes a secret and all of its versions.\n *\n * You can specify a recovery window during which you can restore the secret.\n * The minimum recovery window is 7 days. The default recovery window is 30 days.\n *\n * @param {string} secretID - The ARN or name of the secret to delete.\n * @param {number} recoveryWindow - The number of days from 7 to 30 that Secrets Manager\n * waits before permanently deleting the secret.\n * @throws {SecretsManagerServiceError}\n * @throws {InvalidSignatureError}\n */\n async deleteSecret(\n id: string,\n { recoveryWindow = 30, noRecovery = false }: { recoveryWindow: number; noRecovery: boolean }\n ): Promise {\n const payload: { [key: string]: string | boolean | number } = {\n SecretId: id,\n }\n\n // noRecovery and recoveryWindow are exclusive parameters\n if (noRecovery === true) {\n payload['ForceDeleteWithoutRecovery'] = true\n } else {\n payload['RecoveryWindowInDays'] = recoveryWindow\n }\n\n const signedRequest = this.signature.sign(\n {\n method: this.method,\n endpoint: this.endpoint,\n path: '/',\n headers: {\n ...this.commonHeaders,\n [AMZ_TARGET_HEADER]: `${this.serviceName}.DeleteSecret`,\n },\n body: JSON.stringify(payload),\n },\n {}\n )\n\n const res = await http.asyncRequest(this.method, signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, SecretsManagerOperation.DeleteSecret)\n }\n\n\n protected handleError(response: RefinedResponse, operation?: string): boolean {\n const errored = super.handleError(response, operation)\n if (!errored) {\n return false\n }\n\n const errorCode = response.error_code\n const error = response.json() as JSONObject\n if (errorCode >= 1400 && errorCode <= 1499) {\n // In the event of certain errors, the message is not set.\n // Also, note the inconsistency in casing...\n const errorMessage: string =\n (error.Message as string) || (error.message as string) || (error.__type as string)\n\n // Handle specifically the case of an invalid signature\n if (error.__type === 'InvalidSignatureException') {\n throw new InvalidSignatureError(errorMessage, error.__type)\n }\n\n // Otherwise throw a standard service error\n throw new SecretsManagerServiceError(errorMessage, error.__type as string, operation as SecretsManagerOperation)\n }\n\n if (errorCode === 1500) {\n throw new SecretsManagerServiceError(\n 'An error occured on the server side',\n 'InternalServiceError',\n operation as SecretsManagerOperation\n )\n }\n\n return true\n }\n}\n\n// TODO: create a Tags type\n\n/**\n * Class representing a Secret Manager's secret\n */\nexport class Secret {\n name: string\n arn: string\n secret: string\n createdDate: number\n lastAccessedDate: number\n lastChangedDate: number\n tags: Array<{ [key: string]: string }>\n\n /**\n * Constructs a Secret Manager's Secret\n *\n * @param {string} name - The friendly name of the secret.\n * @param {string} arn - The ARN of the secret.\n * @param {number} createdDate - The date and time that this version of the secret was created.\n * @param {number} lastAccessedDate - The last date that this secret was accessed. This value is\n * truncated to midnight of the date and therefore shows only the date, not the time.\n * @param {number} lastChangedDate - The last date and time that this secret was modified in any way.\n * @param {Array.} tags - The list of user-defined tags associated with the secret.\n */\n constructor(\n name: string,\n arn: string,\n secretString: string,\n createdDate: number,\n lastAccessedDate: number,\n lastChangedDate: number,\n tags: Array<{ [key: string]: string }> = []\n ) {\n this.name = name\n this.arn = arn\n this.secret = secretString\n this.createdDate = createdDate\n this.lastAccessedDate = lastAccessedDate\n this.lastChangedDate = lastChangedDate\n this.tags = tags\n }\n\n /**\n * Parses and constructs a Secret Manager's Secret from the content\n * of a JSON response returned by the AWS service\n *\n * @param {Object} json - JSON object as returned and parsed from\n * the AWS service's API call.\n * @returns {Secret}\n */\n static fromJSON(json: JSONObject) {\n return new Secret(\n json.Name as string,\n json.ARN as string,\n json.SecretString as string,\n json.CreatedDate as number,\n json.LastAccessedDate as number,\n json.LastChangedDate as number,\n json.Tags as Array<{ [key: string]: string }>\n )\n }\n}\n\nexport class SecretsManagerServiceError extends AWSError {\n operation: SecretsManagerOperation\n\n /**\n * Constructs a SecretsManagerServiceError\n *\n * @param {string} message - human readable error message\n * @param {string} code - A unique short code representing the error that was emitted\n * @param {string} operation - Name of the failed Operation\n */\n constructor(message: string, code: string, operation: SecretsManagerOperation) {\n super(message, code)\n this.name = 'SecretsManagerServiceError'\n this.operation = operation\n }\n}\n\n/**\n * SecretsManagerOperation defines all currently implemented Secrets Manager Service operations.\n */\nenum SecretsManagerOperation {\n ListSecrets = 'ListSecrets',\n GetSecretValue = 'GetSecretValue',\n CreateSecret = 'CreateSecret',\n PutSecretValue = 'PutSecretValue',\n DeleteSecret = 'DeleteSecret',\n}\n","import { JSONObject } from 'k6'\nimport http, { RefinedResponse, ResponseType } from 'k6/http'\n\nimport { AWSClient } from './client'\nimport { AWSConfig } from './config'\nimport { AMZ_TARGET_HEADER } from './constants'\nimport { AWSError } from './error'\nimport { HTTPHeaders, HTTPMethod } from './http'\nimport { InvalidSignatureError, SignatureV4 } from './signature'\n\n/**\n * Class allowing to interact with Amazon AWS's Systems Manager service\n */\nexport class SystemsManagerClient extends AWSClient {\n private readonly signature: SignatureV4\n private readonly method: HTTPMethod\n private readonly commonHeaders: HTTPHeaders\n\n /**\n * Create a SystemsManagerClient\n * @param {AWSConfig} awsConfig - configuration attributes to use when interacting with AWS' APIs\n */\n constructor(awsConfig: AWSConfig) {\n super(awsConfig, 'ssm')\n\n // All interactions with the Systems Manager service\n // are made via the POST method.\n this.method = 'POST'\n this.commonHeaders = {\n 'Content-Type': 'application/x-amz-json-1.1',\n }\n\n this.signature = new SignatureV4({\n service: this.serviceName,\n region: awsConfig.region,\n credentials: {\n accessKeyId: awsConfig.accessKeyId,\n secretAccessKey: awsConfig.secretAccessKey,\n sessionToken: awsConfig.sessionToken,\n },\n uriEscapePath: true,\n applyChecksum: false,\n })\n }\n\n /**\n * Retrieves a parameter from Amazon Systems Manager\n *\n * @param {string} name - The ARN or name of the parameter to retrieve.\n * @param {boolean} withDecryption - whether returned secure string parameters should be decrypted.\n * @returns {SystemsManagerParameter} - returns the fetched Parameter object.\n * @throws {SystemsManagerServiceError}\n * @throws {InvalidSignatureError}\n */\n async getParameter(\n name: string,\n withDecryption: boolean = false\n ): Promise {\n const signedRequest = this.signature.sign(\n {\n method: this.method,\n endpoint: this.endpoint,\n path: '/',\n headers: {\n ...this.commonHeaders,\n [AMZ_TARGET_HEADER]: `AmazonSSM.GetParameter`,\n },\n body: JSON.stringify({ Name: name, WithDecryption: withDecryption }),\n },\n {}\n )\n\n const res = await http.asyncRequest(this.method, signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, SystemsManagerOperation.GetParameter)\n\n return SystemsManagerParameter.fromJSON(res.json() as JSONObject)\n }\n\n protected handleError(response: RefinedResponse, operation?: string): boolean {\n const errored = super.handleError(response, operation);\n if (!errored) {\n return false\n }\n\n const errorCode = response.error_code\n const error = response.json() as JSONObject\n if (errorCode >= 1400 && errorCode <= 1499) {\n // In the event of certain errors, the message is not set.\n // Also, note the inconsistency in casing...\n const errorMessage: string =\n (error.Message as string) || (error.message as string) || (error.__type as string)\n\n // Handle specifically the case of an invalid signature\n if (error.__type === 'InvalidSignatureException') {\n throw new InvalidSignatureError(errorMessage, error.__type)\n }\n\n // Otherwise throw a standard service error\n throw new SystemsManagerServiceError(errorMessage, error.__type as string, operation as SystemsManagerOperation)\n }\n\n if (errorCode === 1500) {\n throw new SystemsManagerServiceError(\n 'An error occured on the server side',\n 'InternalServiceError',\n operation as SystemsManagerOperation\n )\n }\n\n return true\n }\n}\n\n/**\n * Class representing a Systems Manager's Parameter\n */\nexport class SystemsManagerParameter {\n /**\n * The Amazon Resource Name (ARN) of the parameter.\n */\n arn: string\n\n /**\n * The data type of the parameter, such as text or aws:ec2:image.\n * The default is text.\n */\n dataType: string\n\n /**\n * Date the parameter was last changed or updated and the parameter version was created.\n */\n lastModifiedDate: number\n\n /**\n * The friendly name of the parameter.\n */\n name: string\n\n /**\n * Either the version number or the label used to retrieve the parameter value. Specify selectors by using one of the following formats:\n * parameter_name:version\n * parameter_name:label\n */\n selector: string\n\n /**\n * plies to parameters that reference information in other AWS services. SourceResult is the raw result or response from the source.\n */\n sourceResult: string\n\n /**\n * The type of parameter. Valid values include the following: String, StringList, and SecureString.\n */\n type: string\n\n /**\n * The parameter value.\n */\n value: string\n\n /**\n * The parameter version.\n */\n version: number\n\n /**\n * Constructs a Systems Manager's Parameter\n *\n * @param {string} arn - The Amazon Resource Name (ARN) of the parameter.\n * @param {string} dataType - The data type of the parameter, such as text or aws:ec2:image. The default is text.\n * @param {number} lastModifiedDate - Date the parameter was last changed or updated and the parameter version was created.\n * @param {string} name - The friendly name of the parameter.\n * @param {string} selector - Either the version number or the label used to retrieve the parameter value. Specify selectors by using one of the following formats:\n * parameter_name:version\n * parameter_name:label\n * @param {string} sourceResult - Applies to parameters that reference information in other AWS services. SourceResult is the raw result or response from the source.\n * @param {string} type - The type of parameter. Valid values include the following: String, StringList, and SecureString.\n * @param {string} value - The parameter value.\n * @param {number} version - The parameter version.\n */\n constructor(\n arn: string,\n dataType: string,\n lastModifiedDate: number,\n name: string,\n selector: string,\n sourceResult: string,\n type: string,\n value: string,\n version: number\n ) {\n this.arn = arn\n this.dataType = dataType\n this.lastModifiedDate = lastModifiedDate\n this.name = name\n this.selector = selector\n this.sourceResult = sourceResult\n this.type = type\n this.value = value\n this.version = version\n }\n\n /**\n * Parses and constructs a Systems Manager's Parameter from the content\n * of a JSON response returned by the AWS service\n *\n * @param {Object} json - JSON object as returned and parsed from\n * the AWS service's API call.\n * @returns {SystemsManagerParameter}\n */\n static fromJSON(json: JSONObject): SystemsManagerParameter {\n const parameter = json.Parameter as JSONObject\n\n return new SystemsManagerParameter(\n parameter.ARN as string,\n parameter.DataType as string,\n parameter.LastModifiedDate as number,\n parameter.Name as string,\n parameter.Selector as string,\n parameter.SourceResult as string,\n parameter.Type as string,\n parameter.Value as string,\n parameter.Version as number\n )\n }\n}\n\nexport class SystemsManagerServiceError extends AWSError {\n operation: SystemsManagerOperation\n\n /**\n * Constructs a SystemsManagerServiceError\n *\n * @param {string} message - human readable error message\n * @param {string} code - A unique short code representing the error that was emitted\n * @param {SystemsManagerOperation} operation - Name of the failed Operation\n */\n constructor(message: string, code: string, operation: SystemsManagerOperation) {\n super(message, code)\n this.name = 'SystemsManagerServiceError'\n this.operation = operation\n }\n}\n\n/**\n * SystemsManagerOperation defines all currently implemented Systems Manager operations.\n */\nenum SystemsManagerOperation {\n GetParameter = 'GetParameter',\n}\n","import http, { RefinedResponse, ResponseType } from 'k6/http'\n\nimport { AWSClient } from './client'\n\nimport { AWSConfig } from './config'\nimport { AMZ_TARGET_HEADER } from './constants'\nimport { AWSError } from './error'\nimport { JSONObject } from './json'\nimport { HTTPHeaders } from './http'\nimport { InvalidSignatureError, SignatureV4 } from './signature'\n\n/**\nThis API is based on\nhttps://docs.aws.amazon.com/kinesis/latest/APIReference/API_Operations.html\n*/\n\n/**\n * Allows interacting with the Kinesis API.\n */\nexport class KinesisClient extends AWSClient {\n private readonly signature: SignatureV4\n private readonly commonHeaders: HTTPHeaders\n private readonly serviceVersion: string\n\n /**\n * A constructor function that creates a new instance of the Kinesis class.\n * @param {AWSConfig} awsConfig - AWSConfig - This is the configuration object that is passed to\n * the constructor.\n * @returns A Proxy object.\n */\n constructor(awsConfig: AWSConfig) {\n super(awsConfig, 'kinesis')\n\n this.serviceVersion = 'Kinesis_20131202'\n\n this.signature = new SignatureV4({\n service: this.serviceName,\n region: this.awsConfig.region,\n credentials: {\n accessKeyId: this.awsConfig.accessKeyId,\n secretAccessKey: this.awsConfig.secretAccessKey,\n sessionToken: this.awsConfig.sessionToken,\n },\n uriEscapePath: false,\n applyChecksum: true,\n })\n\n this.commonHeaders = {\n 'Content-Type': 'application/x-amz-json-1.1',\n }\n }\n\n /**\n * Creates a new Kinesis stream with the specified name and options.\n *\n * @param {string} streamName - The name of the stream to create.\n * @param {{\n * shardCount?: number;\n * streamModeDetails?: {\n * streamMode: StreamMode;\n * };\n * }} [options={}] - An optional object containing configuration options for the stream.\n * @param {number} [options.shardCount] - The number of shards for the stream. If not provided, the default value will be used.\n * @param {{streamMode: StreamMode}} [options.streamModeDetails] - An optional object containing the stream mode details.\n * @param {StreamMode} [options.streamModeDetails.streamMode] - The mode of the stream. If not provided, the default mode will be used.\n *\n * @throws {Error} Throws an error if the stream creation request fails.\n * @returns {void}\n */\n async createStream(\n streamName: string,\n options: { shardCount?: number; streamModeDetails?: { streamMode: StreamMode } } = {}\n ): Promise {\n const body = {\n StreamName: streamName,\n ...(options.shardCount && { ShardCount: options.shardCount }),\n ...(options.streamModeDetails && { StreamMode: options.streamModeDetails.streamMode }),\n }\n\n await this._send_request('CreateStream', body)\n }\n\n /**\n * Deletes a Kinesis stream with the specified parameters.\n *\n * @param {string} streamName - The name of the stream to delete.\n * @param {{\n * streamARN?: string;\n * enforceConsumerDeletion?: boolean;\n * }} [parameters={}] - An optional object containing configuration options for the stream deletion.\n * @param {string} [parameters.streamARN] - The Amazon Resource Name (ARN) of the stream. If not provided, the ARN will be derived from the stream name.\n * @param {boolean} [parameters.enforceConsumerDeletion] - Whether to enforce the deletion of all registered consumers before deleting the stream. Defaults to false.\n *\n * @throws {Error} Throws an error if the stream deletion request fails.\n * @returns {void}\n */\n async deleteStream(\n streamName: string,\n parameters: { streamARN?: string; enforceConsumerDeletion?: boolean } = {}\n ): Promise {\n const body = {\n StreamName: streamName,\n ...(parameters.streamARN && { StreamARN: parameters.streamARN }),\n ...(parameters.enforceConsumerDeletion && {\n EnforceConsumerDeletion: parameters.enforceConsumerDeletion,\n }),\n }\n\n await this._send_request('DeleteStream', body)\n }\n\n /**\n * Returns a list of Kinesis streams with the specified parameters.\n *\n * @param {{\n * exclusiveStartStreamName?: string;\n * limit?: number;\n * nextToken?: string;\n * }} [parameters={}] - An optional object containing configuration options for listing the streams.\n * @param {string} [parameters.exclusiveStartStreamName] - The name of the stream to start listing from. If not provided, the listing starts from the beginning.\n * @param {number} [parameters.limit] - The maximum number of streams to list. If not provided, the default value will be used.\n * @param {string} [parameters.nextToken] - A token to paginate the list of streams. If not provided, the first page will be returned.\n *\n * @throws {Error} Throws an error if the list streams request fails.\n * @returns {Partial} A partial of the ListStreamsResponse class.\n */\n async listStreams(\n parameters: {\n exclusiveStartStreamName?: string\n limit?: number\n nextToken?: string\n } = {}\n ): Promise {\n const body = {\n ...(parameters.exclusiveStartStreamName && {\n ExclusiveStartStreamName: parameters.exclusiveStartStreamName,\n }),\n ...(parameters.limit && { Limit: parameters.limit }),\n ...(parameters.nextToken && { NextToken: parameters.nextToken }),\n }\n\n const res = await this._send_request('ListStreams', body)\n return ListStreamsResponse.fromJson(res?.json() as JSONObject)\n }\n\n /**\n * Sends multiple records to a Kinesis stream in a single request.\n *\n * @param {string} streamName - The name of the stream to put records into.\n * @param {PutRecordsRequestEntry[]} records - An array of records to put into the stream.\n *\n * @throws {Error} Throws an error if the put records request fails.\n * @returns {Partial} A partial of the PutRecordsResponse class.\n */\n async putRecords(\n records: PutRecordsRequestEntry[],\n parameters: { streamName?: string; streamARN?: string } = {}\n ): Promise {\n if (!parameters.streamName && !parameters.streamARN) {\n throw new Error('Either streamName or streamARN must be provided')\n }\n\n const body = {\n Records: records,\n ...(parameters.streamName && { StreamName: parameters.streamName }),\n ...(parameters.streamARN && { StreamARN: parameters.streamARN }),\n }\n\n const res = await this._send_request('PutRecords', body)\n return PutRecordsResponse.fromJson(res?.json() as JSONObject)\n }\n\n /**\n * Retrieves records from a Kinesis stream.\n *\n * @param {string} shardIterator - The shard iterator to start retrieving records from.\n * @param {number} [limit] - The maximum number of records to return. If not provided, the default value will be used.\n *\n * @throws {Error} Throws an error if the get records request fails.\n * @returns {Partial} A partial of the GetRecordsResponse class.\n */\n async getRecords(\n shardIterator: string,\n parameters: { limit?: number; streamARN?: string } = {}\n ): Promise {\n const body = {\n ShardIterator: shardIterator,\n ...(parameters.limit && { Limit: parameters.limit }),\n ...(parameters.streamARN && { StreamARN: parameters.streamARN }),\n }\n\n const res = await this._send_request('GetRecords', body)\n return GetRecordsResponse.fromJson(res?.json() as JSONObject)\n }\n\n /**\n * Lists the shards in a Kinesis stream.\n *\n * @param {string} streamName - The name of the stream to list shards from.\n * @param {{\n * nextToken?: string;\n * maxResults?: number;\n * }} [parameters={}] - An optional object containing configuration options for listing shards.\n * @param {string} [parameters.nextToken] - A token to specify where to start paginating the shard list. If not provided, the first page will be returned.\n * @param {number} [parameters.maxResults] - The maximum number of shards to return. If not provided, the default value will be used.\n *\n * @throws {Error} Throws an error if the list shards request fails.\n * @returns {ListShardsResponse} A ListShardsResponse class instance.\n */\n async listShards(\n streamName: string,\n parameters: { nextToken?: string; maxResults?: number } = {}\n ): Promise {\n const body = {\n StreamName: streamName,\n ...(parameters.nextToken && { NextToken: parameters.nextToken }),\n ...(parameters.maxResults && {\n MaxResults: parameters.maxResults,\n }),\n }\n\n const res = await this._send_request('ListShards', body)\n return ListShardsResponse.fromJson(res?.json() as JSONObject)\n }\n\n /**\n * Retrieves a shard iterator for the specified shard in a Kinesis stream.\n *\n * @param {string} streamName - The name of the stream.\n * @param {string} shardId - The shard ID for which to get the iterator.\n * @param {string} shardIteratorType - The shard iterator type. One of 'AT_SEQUENCE_NUMBER', 'AFTER_SEQUENCE_NUMBER', 'TRIM_HORIZON', 'LATEST', or 'AT_TIMESTAMP'.\n * @param {{\n * startingSequenceNumber?: string;\n * timestamp?: number;\n * }} [parameters={}] - An optional object containing configuration options for the shard iterator.\n * @param {string} [parameters.startingSequenceNumber] - The sequence number to start with when using 'AT_SEQUENCE_NUMBER' or 'AFTER_SEQUENCE_NUMBER' iterator types.\n * @param {number} [parameters.timestamp] - The timestamp to start with when using the 'AT_TIMESTAMP' iterator type.\n *\n * @throws {Error} Throws an error if the get shard iterator request fails.\n * @returns {string} The next position in the shard from which to start sequentially reading data records. If set to null, the shard has been closed and the requested iterator does not return any more data.\n */\n async getShardIterator(\n streamName: string,\n shardId: string,\n shardIteratorType: ShardIteratorKind,\n parameters: { startingSequenceNumber?: string; timestamp?: number } = {}\n ): Promise {\n const body = {\n StreamName: streamName,\n ShardId: shardId,\n ShardIteratorType: shardIteratorType,\n ...(parameters.startingSequenceNumber && {\n StartingSequenceNumber: parameters.startingSequenceNumber,\n }),\n ...(parameters.timestamp && { Timestamp: parameters.timestamp }),\n }\n\n const res = await this._send_request('GetShardIterator', body)\n return GetShardIteratorResponse.fromJson(res?.json() as JSONObject)\n }\n\n private async _send_request(\n action: string,\n body: unknown\n ): Promise> {\n const signedRequest = this.signature.sign(\n {\n method: 'POST',\n endpoint: this.endpoint,\n path: '/',\n headers: {\n ...this.commonHeaders,\n [AMZ_TARGET_HEADER]: `${this.serviceVersion}.${action}`,\n },\n body: JSON.stringify(body),\n },\n {}\n )\n\n const res = await http.asyncRequest('POST', signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n\n this.handleError(res, action)\n return res\n }\n\n\n protected handleError(response: RefinedResponse, operation?: string): boolean {\n const errored = super.handleError(response, operation);\n if (!errored) {\n return false\n }\n\n const errorCode = response.error_code\n const error = response.json() as JSONObject\n if (errorCode >= 1400 && errorCode <= 1499) {\n // In the event of certain errors, the message is not set.\n // Also, note the inconsistency in casing...\n const errorMessage: string =\n (error.Message as string) || (error.message as string) || (error.__type as string)\n\n // Handle specifically the case of an invalid signature\n if (error.__type === 'InvalidSignatureException') {\n throw new InvalidSignatureError(errorMessage, error.__type)\n }\n\n // Otherwise throw a standard service error\n throw new KinesisServiceError(errorMessage, error.__type as string, operation || 'Unknown')\n }\n\n if (errorCode === 1500) {\n throw new KinesisServiceError(\n 'An error occured on the server side',\n 'InternalServiceError',\n operation || 'Unknown'\n )\n }\n\n return true\n }\n}\n\n/* `KinesisServiceError` is a subclass of `AWSError` that adds an `operation` property */\nexport class KinesisServiceError extends AWSError {\n operation: string\n\n /**\n * Constructs a KinesisServiceError\n *\n * @param {string} message - human readable error message\n * @param {string} code - A unique short code representing the error that was emitted\n * @param {string} operation - Name of the failed Operation\n */\n constructor(message: string, code: string, operation: string) {\n super(message, code)\n this.name = 'KinesisServiceError'\n this.operation = operation\n }\n}\n\n/**\n * Describes the options for a Kinesis stream.\n */\ntype StreamMode = 'PROVISIONED' | 'ON_DEMAND'\n\n/**\n * Determines how the shard iterator is used to start reading data records from the shard.\n */\nexport type ShardIteratorKind =\n | 'AT_SEQUENCE_NUMBER'\n | 'AFTER_SEQUENCE_NUMBER'\n | 'TRIM_HORIZON'\n | 'LATEST'\n | 'AT_TIMESTAMP'\n\n/**\n * Describes the status of a Kinesis data stream.\n */\nexport type StreamStatus = 'CREATING' | 'DELETING' | 'ACTIVE' | 'UPDATING'\n\nexport type StreamModeDetails = {\n /**\n * Specifies the capacity mode to which you want to set your data stream.\n */\n SteamMode: 'PROVISIONED' | 'ON_DEMAND'\n}\n\nexport class ListStreamsResponse {\n /**\n * Indicates whether there are more streams available to list.\n */\n hasMoreStreams: boolean\n\n /**\n * The token that identifies which batch of results you can retrieve.\n */\n nextToken?: string\n\n /**\n * The names of the streams that are associated with the AWS account making the ListStreams request.\n */\n streamNames: string[]\n\n /**\n * A list of StreamSummary objects.\n */\n streamSummaries: StreamSummary[]\n\n constructor(\n HasMoreStreams: boolean,\n NextToken: string,\n StreamNames: string[],\n StreamSummaries: StreamSummary[]\n ) {\n this.hasMoreStreams = HasMoreStreams\n this.nextToken = NextToken\n this.streamNames = StreamNames\n this.streamSummaries = StreamSummaries\n }\n\n static fromJson(result: JSONObject): ListStreamsResponse {\n const {\n HasMoreStreams = false,\n NextToken = '',\n StreamNames = [],\n StreamSummaries = [],\n } = result\n\n return new ListStreamsResponse(\n HasMoreStreams as boolean,\n NextToken as string,\n StreamNames as string[],\n (StreamSummaries as JSONObject[])?.map(StreamSummary.fromJson) as StreamSummary[]\n )\n }\n}\n\n/**\n * Summarizes a Stream\n */\nexport class StreamSummary {\n /**\n * The Amazon Resource Name (ARN) for the stream.\n */\n streamARN: string\n\n /**\n * The time at which the stream was created.\n */\n streamCreationTimestamp: number\n\n /**\n * Specify the capacity mode to which you want to set your data stream.\n */\n streamModeDetails: StreamModeDetails\n\n /**\n * The name of the stream.\n */\n streamName: string\n\n /**\n * The current status of the stream being described.\n */\n streamStatus: StreamStatus\n\n constructor(\n StreamARN: string,\n StreamCreationTimestamp: number,\n StreamMode: StreamModeDetails,\n StreamName: string,\n StreamStatus: StreamStatus\n ) {\n this.streamARN = StreamARN\n this.streamCreationTimestamp = StreamCreationTimestamp\n this.streamModeDetails = StreamMode\n this.streamName = StreamName\n this.streamStatus = StreamStatus\n }\n\n static fromJson(summary: JSONObject): StreamSummary {\n const {\n StreamARN = '',\n StreamCreationTimestamp = 0,\n StreamModeDetails = {},\n StreamName = '',\n StreamStatus = '',\n } = summary\n\n return new StreamSummary(\n StreamARN as string,\n StreamCreationTimestamp as number,\n StreamModeDetails as StreamModeDetails,\n StreamName as string,\n StreamStatus as StreamStatus\n )\n }\n}\n\n/**\n * Represents the output for PutRecords.\n */\nexport interface PutRecordsRequestEntry {\n /**\n * The data blob to put into the record, which is base64-encoded when the blob is serialized.\n */\n Data: string | ArrayBuffer\n\n /**\n * Determines which share in the stream the data record is assigned to.\n */\n PartitionKey: string\n}\n\n// Response class for PutRecords API\nexport class PutRecordsResponse {\n /**\n * The encryption type used on the records. This parameter can be one of the following values:\n * - NONE: Do not encrypt the records.\n * - KMS: Use server-side encryption on the records using a customer-managed AWS KMS key.\n */\n encryptionType: EncryptionType\n\n /**\n * The number of unsuccessfully processed records in a PutRecords request.\n */\n failedRecordCount: number\n\n /**\n * An array of successfully and unsuccessfully processed record results.\n */\n records: PutRecordsResultEntry[]\n\n constructor(\n encryptionType: 'NONE' | 'KMS',\n failedRecordCount: number,\n records: PutRecordsResultEntry[]\n ) {\n this.encryptionType = encryptionType\n this.failedRecordCount = failedRecordCount\n this.records = records\n }\n\n static fromJson(json: JSONObject): PutRecordsResponse {\n const { EncryptionType = 'NONE', FailedRecordCount = 0, Records = [] } = json\n const records = (Records as JSONObject[]).map(PutRecordsResultEntry.fromJson)\n\n return new PutRecordsResponse(\n EncryptionType as EncryptionType,\n FailedRecordCount as number,\n records\n )\n }\n}\n\ntype EncryptionType = 'NONE' | 'KMS'\n\n/**\n * Represents the result of an individual record from a PutRecords request.\n */\nexport class PutRecordsResultEntry {\n /**\n * The sequence number for an individual record result.\n */\n sequenceNumber: string\n\n /**\n * The shard ID for an individual record result.\n */\n shardId: string\n\n constructor(sequenceNumber: string, shardId: string) {\n this.sequenceNumber = sequenceNumber\n this.shardId = shardId\n }\n\n static fromJson(json: JSONObject): PutRecordsResultEntry {\n return new PutRecordsResultEntry(json.SequenceNumber as string, json.ShardId as string)\n }\n}\n\n/**\n * Represents the response format of the GetRecords operation.\n */\nexport class GetRecordsResponse {\n /**\n * The next position in the shard from which to start sequentially reading data records.\n */\n nextShardIterator: string\n\n /**\n * The data records retrieved from the shard.\n */\n records: Record[]\n\n /**\n * The number of milliseconds the GetRecords response is from the\n * tip of the stream, indicating how far behind current time the\n * consumer is.\n *\n * A value of zero indicates that record processing is caught\n * up, and there are no new records to process at this moment.\n */\n millisBehindLatest: number\n\n constructor(nextShardIterator: string, records: Record[], millisBehindLatest: number) {\n this.nextShardIterator = nextShardIterator\n this.records = records\n this.millisBehindLatest = millisBehindLatest\n }\n\n static fromJson(json: JSONObject): GetRecordsResponse {\n const { NextShardIterator = '', Records = [], MillisBehindLatest = 0 } = json\n const records = (Records as JSONObject[]).map(Record.fromJson)\n\n return new GetRecordsResponse(\n NextShardIterator as string,\n records as Record[],\n MillisBehindLatest as number\n )\n }\n}\n\n/**\n * The unit of data of the Kinesis data stream, which is composed of a sequence\n * number, a partition key, and a data blob.\n */\nclass Record {\n /**\n * The data blob.\n */\n data: string | ArrayBuffer\n\n /**\n * Identifies which shard in the stream the data record is assigned to.\n */\n partitionKey: string\n\n /**\n * The unique identifier of the record in the stream.\n */\n sequenceNumber: string\n\n constructor(data: string | ArrayBuffer, partitionKey: string, sequenceNumber: string) {\n this.data = data\n this.partitionKey = partitionKey\n this.sequenceNumber = sequenceNumber\n }\n\n static fromJson(json: JSONObject): Record {\n return new Record(\n json.Data as string | ArrayBuffer,\n json.PartitionKey as string,\n json.SequenceNumber as string\n )\n }\n}\n\n// Response class for ListShards API\nexport class ListShardsResponse {\n /**\n * An array of JSON objects.\n *\n * Each object represents one shard and specifies the IDs of the shard, the\n * shard's parent, and the shard that's adjacent to the shard's parent.\n */\n shards: Shard[]\n\n /**\n * When the number of shards in the data stream is greater than the\n * default value for the MaxResults parameter, or if you explicitly specify\n * a value for MaxResults that is less than the number of shards in the data\n * stream, the response includes a pagination token named NextToken.\n */\n nextToken?: string\n\n constructor(shards: Shard[], nextToken?: string) {\n this.shards = shards\n this.nextToken = nextToken\n }\n\n static fromJson(json: JSONObject): ListShardsResponse {\n const { Shards = [], NextToken } = json\n const shards = (Shards as JSONObject[]).map(Shard.fromJson)\n\n return new ListShardsResponse(shards, NextToken as string | undefined)\n }\n}\n\n/**\n * A uniquely identified group of data records in a Kinesis data stream.\n */\nexport class Shard {\n /**\n * The unique identifier of the shard within the stream.\n */\n id: string\n\n /**\n * The shard ID of the shard's parent.\n */\n parentShardId?: string\n\n /**\n * The shard ID of the shard adjacent to the shard's parent.\n */\n adjacentParentShardId?: string\n\n /**\n * The range of possible hash key values for the shard, which is a set of ordered contiguous positive integers.\n */\n hashKeyRange: HashKeyRange\n\n sequenceNumberRange: SequenceNumberRange\n\n constructor(\n id: string,\n hashKeyRange: HashKeyRange,\n sequenceNumberRange: SequenceNumberRange,\n parentShardId?: string,\n adjacentParentShardId?: string\n ) {\n this.id = id\n this.parentShardId = parentShardId\n this.adjacentParentShardId = adjacentParentShardId\n this.hashKeyRange = hashKeyRange\n this.sequenceNumberRange = sequenceNumberRange\n }\n\n static fromJson(json: JSONObject): Shard {\n return new Shard(\n json.ShardId as string,\n json.HashKeyRange as unknown as HashKeyRange,\n json.SequenceNumberRange as unknown as SequenceNumberRange,\n json.ParentShardId as string | undefined,\n json.AdjacentParentShardId as string | undefined\n )\n }\n}\n\n/**\n * Describes the range of possible hash key values for the shard, which is\n * a set of ordered contiguous positive integers.\n */\nexport interface HashKeyRange {\n /**\n * The starting hash key of the hash key range.\n */\n startingHashKey: string\n\n /**\n * The ending hash key of the hash key range.\n */\n endingHashKey: string\n}\n\n/**\n * The range of possible sequence numbers for the shard.\n */\nexport interface SequenceNumberRange {\n /**\n * The ending sequence number for the range.\n *\n * Shards that are in the OPEN state have an ending sequence number of null.\n */\n endingSequenceNumber?: string\n\n /**\n * The starting sequence number for the range.\n */\n startingSequenceNumber: string\n}\n\n/**\n * Describes a shard iterator response.\n */\nclass GetShardIteratorResponse {\n /**\n * The position in the shard from which to start reading data records sequentially.\n */\n shardIterator: string\n\n constructor(shardIterator: string) {\n this.shardIterator = shardIterator\n }\n\n static fromJson(json: JSONObject): GetShardIteratorResponse {\n return new GetShardIteratorResponse(json.ShardIterator as string)\n }\n}\n","import http, { RefinedResponse, ResponseType } from 'k6/http'\n\nimport { AWSClient } from './client'\nimport { AWSConfig } from './config'\nimport { AWSError } from './error'\nimport { JSONObject } from './json'\nimport { InvalidSignatureError, SignatureV4 } from './signature'\nimport { AMZ_TARGET_HEADER } from './constants'\nimport { HTTPHeaders, HTTPMethod } from './http'\n\n/**\n * Class allowing to interact with Amazon AWS's Event Bridge service\n */\nexport class EventBridgeClient extends AWSClient {\n private readonly signature: SignatureV4\n private readonly method: HTTPMethod\n private readonly commonHeaders: HTTPHeaders\n\n constructor(awsConfig: AWSConfig) {\n super(awsConfig, 'events')\n\n this.signature = new SignatureV4({\n service: this.serviceName,\n region: this.awsConfig.region,\n credentials: {\n accessKeyId: this.awsConfig.accessKeyId,\n secretAccessKey: this.awsConfig.secretAccessKey,\n sessionToken: this.awsConfig.sessionToken,\n },\n uriEscapePath: true,\n applyChecksum: false,\n })\n\n this.method = 'POST'\n this.commonHeaders = {\n 'Content-Type': 'application/x-amz-json-1.1',\n }\n }\n\n /**\n * Sends custom events to Amazon EventBridge so that they can be matched to rules.\n *\n * @param {PutEventsInput} input - The input for the PutEvents operation.\n * @throws {EventBridgeServiceError}\n * @throws {InvalidSignatureError}\n */\n async putEvents(input: PutEventsInput) {\n const parsedEvent = {\n ...input,\n Entries: input.Entries.map((entry) => ({\n ...entry,\n Detail: JSON.stringify(entry.Detail),\n })),\n }\n\n const signedRequest = this.signature.sign(\n {\n method: this.method,\n endpoint: this.endpoint,\n path: '/',\n headers: {\n ...this.commonHeaders,\n [AMZ_TARGET_HEADER]: `AWSEvents.PutEvents`,\n },\n body: JSON.stringify(parsedEvent),\n },\n {}\n )\n\n const res = await http.asyncRequest(this.method, signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, EventBridgeOperation.PutEvents)\n }\n\n\n protected handleError(response: RefinedResponse, operation?: string): boolean {\n const errored = super.handleError(response, operation);\n if (!errored) {\n return false\n }\n\n const errorCode = response.error_code\n const error = response.json() as JSONObject\n if (errorCode >= 1400 && errorCode <= 1499) {\n // In the event of certain errors, the message is not set.\n // Also, note the inconsistency in casing...\n const errorMessage: string =\n (error.Message as string) || (error.message as string) || (error.__type as string)\n\n // Handle specifically the case of an invalid signature\n if (error.__type === 'InvalidSignatureException') {\n throw new InvalidSignatureError(errorMessage, error.__type)\n }\n\n // Otherwise throw a standard service error\n throw new EventBridgeServiceError(errorMessage, error.__type as string, operation as EventBridgeOperation)\n }\n\n if (errorCode === 1500) {\n throw new EventBridgeServiceError(\n 'An error occured on the server side',\n 'InternalServiceError',\n operation as EventBridgeOperation\n )\n }\n\n return true\n }\n}\n\nenum EventBridgeOperation {\n PutEvents = 'PutEvents',\n}\n\n/**\n * Represents an event to be submitted.\n *\n * @typedef {Object} PutEventEntry\n *\n * @property {string} Detail - A valid serialized JSON object. There is no other schema imposed. The JSON object may contain fields and nested sub-objects.\n * @property {string} DetailType - Free-form string, with a maximum of 128 characters, used to decide what fields to expect in the event detail.\n * @property {string} EventBusName - The name or ARN of the event bus to receive the event. Only the rules that are associated with this event bus are used to match the event. If you omit this, the default event bus is used.\n * @property {string[]} Resources - AWS resources, identified by Amazon Resource Name (ARN), which the event primarily concerns. Any number, including zero, may be present.\n * @property {string} Source - The source of the event.\n */\ninterface PutEventEntry {\n Source: string\n Detail: JSONObject\n DetailType: string\n EventBusName?: string\n Resources?: [string]\n}\n\n/**\n * Represents the input for a put events operation.\n *\n * @typedef {Object} PutEventsInput\n *\n * @property {string} [EndpointId] - The optional URL subdomain of the endpoint.\n * @property {PutEventEntry[]} Entries - An array of entries that defines an event in your system.\n */\ninterface PutEventsInput {\n EndpointId?: string\n Entries: PutEventEntry[]\n}\n\nexport class EventBridgeServiceError extends AWSError {\n operation: EventBridgeOperation\n\n /**\n * Constructs a EventBridgeServiceError\n *\n * @param {string} message - human readable error message\n * @param {string} code - A unique short code representing the error that was emitted\n * @param {string} operation - Name of the failed Operation\n */\n constructor(message: string, code: string, operation: EventBridgeOperation) {\n super(message, code)\n this.name = 'EventBridgeServiceError'\n this.operation = operation\n }\n}\n"],"names":["AWSClient","awsConfig","serviceName","_classCallCheck","_defineProperty","responseType","this","undefined","endpoint","_endpoint","key","get","Endpoint","concat","region","set","value","response","operation","status","errorCode","error_code","errorMessage","error","GeneralErrorKind","GenericError","NonTCPNetworkError","InvalidURL","HTTPRequestTimeout","GeneralError","DNSErrorKind","GenericDNSError","NoIPFound","BlacklistedIP","BlacklistedHostname","DNSError","TCPErrorKind","GenericTCPError","BrokenPipeOnWrite","UnknownTCPError","GeneralTCPDialError","DialTimeoutError","DialConnectionRefused","DialUnknownError","ResetByPeer","TCPError","TLSErrorKind","GeneralTLSError","UnknownAuthority","CertificateHostnameMismatch","TLSError","HTTP2ErrorKind","GenericHTTP2Error","GeneralHTTP2GoAwayError","HTTP2Error","AWSConfig","options","InvalidAWSConfigError","accessKeyId","length","secretAccessKey","sessionToken","_createClass","__ENV","AWS_REGION","AWS_ACCESS_KEY_ID","AWS_SECRET_ACCESS_KEY","AWS_SESSION_TOKEN","_Error","message","_callSuper","_inherits","_wrapNativeSuper","Error","AMZ_ALGORITHM_QUERY_PARAM","AMZ_CREDENTIAL_QUERY_PARAM","AMZ_DATE_QUERY_PARAM","AMZ_EXPIRES_QUERY_PARAM","AMZ_SIGNATURE_QUERY_PARAM","AMZ_SIGNED_HEADERS_QUERY_PARAM","AMZ_TOKEN_QUERY_PARAM","AMZ_CONTENT_SHA256_HEADER","AMZ_DATE_HEADER","toLowerCase","AMZ_SIGNATURE_HEADER","AMZ_TARGET_HEADER","AMZ_TOKEN_HEADER","AUTHORIZATION_HEADER","GENERATED_HEADERS","HOST_HEADER","ALWAYS_UNSIGNABLE_HEADERS","authorization","connection","expect","from","pragma","referer","te","trailer","upgrade","KEY_TYPE_IDENTIFIER","SIGNING_ALGORITHM_IDENTIFIER","MAX_PRESIGNED_TTL","EMPTY_SHA256","UNSIGNED_PAYLOAD","completeUrl","startsWith","DEFAULT_PROTOCOL","protocolMatch","match","hostnameWithPort","_slicedToArray","replace","split","_protocol","slice","_hostname","_port","parseInt","href","_value$split2","hostname","port","protocol","host","AWSError","code","_this","name","xmlDocument","doc","parseHTML","find","text","headers","json","Message","__type","parseXML","body","NetworkError","_Error2","_this2","ErrorMessages","_NetworkError2","_NetworkError3","_NetworkError4","_NetworkError5","_NetworkError6","_ErrorMessages","hasHeader","soughtHeader","_i","_Object$keys","Object","keys","SignatureV4","_ref","service","credentials","uriEscapePath","applyChecksum","request","arguments","finalOptions","_objectSpread","signingDate","Date","unsignableHeaders","Set","signableHeaders","_formatDate","formatDate","longDate","shortDate","signingService","signingRegion","scope","constants","headerName","indexOf","ArrayBuffer","isView","buffer","payloadHash","computePayloadHash","canonicalHeaders","computeCanonicalHeaders","signature","calculateSignature","deriveSigningKey","createCanonicalRequest","sort","join","url","path","endsWith","query","serializeQueryParameters","originalRequest","_options$signingDate","_options$expiresIn","expiresIn","unhoistableHeaders","_formatDate2","InvalidSignatureError","moveHeadersToQuery","toString","signingKey","canonicalRequest","_url","sortedHeaders","sortedCanonicalHeaders","map","signedHeaders","method","computeCanonicalURI","computeCanonicalQuerystring","credentialScope","hashedCanonicalRequest","crypto","stringToSign","createStringToSign","kSecret","kDate","kRegion","kService","_ref2","_step","normalizedURISegments","_iterator","_createForOfIteratorHelper","s","n","done","URISegment","pop","push","err","e","f","leading","URI","trailing","normalizedURI","encodeURIComponent","_ref3","_step2","_ref3$query","serialized","_loop","escapeURI","Array","isArray","reduce","encoded","_iterator2","filter","_ref4","_step3","_iterator3","canonicalHeaderName","has","trim","_ref5","isArrayBuffer","requestCopy","JSON","parse","stringify","_requestCopy$query","_i2","_Object$keys2","_options$unhoistableH","lowerCaseName","ignoreKeys","_step4","_loop2","includes","_iterator4","_AWSError","c","charCodeAt","toUpperCase","date","time","Number","toDate","toISOString","prototype","call","require","_regeneratorRuntime","t","r","hasOwnProperty","o","defineProperty","i","Symbol","a","iterator","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","h","l","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","reverse","prev","charAt","stop","rval","handle","complete","finish","delegateYield","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptor","apply","getOwnPropertyDescriptors","defineProperties","asyncGeneratorStep","_defineProperties","_toPropertyKey","_getPrototypeOf","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","Boolean","valueOf","_get","bind","_superPropBase","_setPrototypeOf","toPrimitive","String","_toPrimitive","LambdaClient","_AWSClient","commonHeaders","_callee","payload","invocationType","signedRequest","res","logResult","functionError","_args","_context","logType","clientContext","qualifier","sign","http","baseRequestParams","handleError","executedVersion","encoding","statusCode","LambdaInvocationError","_next","_throw","_x","_x2","awsError","_asyncToGenerator","SQSClient","serviceVersion","_sendMessage","queueUrl","messageBody","parsed","QueueUrl","_combineQueueMessageBodyAndOptions","_sendRequest","MessageResponse","_sendMessageBatch","_callee2","entries","action","requestMessageEntries","successful","failed","_context2","entry","requestMessageEntry","messageOptions","Id","messageId","Entries","SQSServiceError","_x3","_x4","_listQueues","_callee3","parameters","_args3","_context3","maxResults","MaxResults","nextToken","NextToken","queueNamePrefix","QueueNamePrefix","urls","MessageBody","messageDeduplicationId","MessageDeduplicationId","messageGroupId","MessageGroupId","messageAttributes","_Object$entries","_Object$entries$_i","attribute","valueParameterSuffix","DataType","MessageAttributes","delaySeconds","DelaySeconds","_sendRequest2","_callee4","_context4","_handleError","_x5","_x6","id","bodyMD5","_this3","module","exports","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","definition","obj","prop","KMSClient","_listKeys","KMSOperation","ListKeys","k","KMSKey","fromJSON","_generateDataKey","size","_args2","KMSKeySize","Size256","KeyId","NumberOfBytes","GenerateDataKey","KMSDataKey","KMSServiceError","keyArn","keyId","KeyArn","CiphertextBlob","Plaintext","ciphertextBlob","plaintext","S3Client","_listBuckets","buckets","children","each","_","bucketDefinition","bucket","child","nodeName","assign","textContent","creationDate","_listObjects","bucketName","prefix","objects","encodeURI","objectDefinition","lastModified","etag","storageClass","_getObject","objectKey","_res$headers$XAmzSt","additionalHeaders","S3Object","_putObject","data","params","Host","contentDisposition","contentEncoding","contentLength","contentMD5","contentType","_x7","_x8","_deleteObject","_callee5","_context5","_x9","_x10","_copyObject","_callee6","sourceBucket","sourceKey","destinationBucket","destinationKey","bucketEndpoint","_context6","copy","_x11","_x12","_x13","_x14","_createMultipartUpload","_callee7","_context7","uploads","S3MultipartUpload","_x15","_x16","_uploadPart","_callee8","uploadId","partNumber","_context8","S3Part","_x17","_x18","_x19","_x20","_x21","_completeMultipartUpload","_callee9","parts","_context9","part","eTag","_x22","_x23","_x24","_x25","_abortMultipartUpload","_callee10","_context10","_x26","_x27","_x28","S3ServiceError","S3Bucket","SecretsManagerClient","_listSecrets","SecretsManagerOperation","ListSecrets","Secret","_getSecret","SecretId","GetSecretValue","_createSecret","secret","description","versionID","tags","_versionID","uuidv4","Name","Description","SecretString","ClientRequestToken","Tags","CreateSecret","_putSecretValue","_versionID2","PutSecretValue","_deleteSecret","_ref$recoveryWindow","recoveryWindow","_ref$noRecovery","noRecovery","DeleteSecret","SecretsManagerServiceError","arn","secretString","createdDate","lastAccessedDate","lastChangedDate","ARN","CreatedDate","LastAccessedDate","LastChangedDate","SystemsManagerClient","withDecryption","WithDecryption","SystemsManagerOperation","GetParameter","SystemsManagerParameter","_getParameter","SystemsManagerServiceError","dataType","lastModifiedDate","selector","sourceResult","version","parameter","Parameter","LastModifiedDate","Selector","SourceResult","Type","Value","Version","KinesisClient","_createStream","streamName","StreamName","shardCount","ShardCount","streamModeDetails","StreamMode","streamMode","_send_request","_deleteStream","streamARN","StreamARN","enforceConsumerDeletion","EnforceConsumerDeletion","_listStreams","exclusiveStartStreamName","ExclusiveStartStreamName","limit","Limit","ListStreamsResponse","fromJson","_putRecords","records","_args4","Records","PutRecordsResponse","_getRecords","shardIterator","_args5","ShardIterator","GetRecordsResponse","_listShards","_args6","ListShardsResponse","_getShardIterator","shardId","shardIteratorType","_args7","ShardId","ShardIteratorType","startingSequenceNumber","StartingSequenceNumber","timestamp","Timestamp","GetShardIteratorResponse","_send_request2","KinesisServiceError","HasMoreStreams","StreamNames","StreamSummaries","hasMoreStreams","streamNames","streamSummaries","result","_result$HasMoreStream","_result$NextToken","_result$StreamNames","_result$StreamSummari","StreamSummary","StreamCreationTimestamp","StreamStatus","streamCreationTimestamp","streamStatus","summary","_summary$StreamARN","_summary$StreamCreati","_summary$StreamModeDe","StreamModeDetails","_summary$StreamName","_summary$StreamStatus","encryptionType","failedRecordCount","_json$EncryptionType","EncryptionType","_json$FailedRecordCou","FailedRecordCount","_json$Records","PutRecordsResultEntry","sequenceNumber","SequenceNumber","nextShardIterator","millisBehindLatest","_json$NextShardIterat","NextShardIterator","_json$Records2","_json$MillisBehindLat","MillisBehindLatest","Record","partitionKey","Data","PartitionKey","shards","_json$Shards","Shards","Shard","hashKeyRange","sequenceNumberRange","parentShardId","adjacentParentShardId","HashKeyRange","SequenceNumberRange","ParentShardId","AdjacentParentShardId","EventBridgeClient","input","parsedEvent","Detail","EventBridgeOperation","PutEvents","_putEvents","EventBridgeServiceError"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/aws/0.13.0/kinesis.js b/lib/aws/0.13.0/kinesis.js new file mode 100644 index 0000000..b289126 --- /dev/null +++ b/lib/aws/0.13.0/kinesis.js @@ -0,0 +1,3 @@ +/*! For license information please see kinesis.js.LICENSE.txt */ +(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function n(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,c=[],s=!0,u=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=i.call(r)).done)&&(c.push(n.value),c.length!==t);s=!0);}catch(e){u=!0,o=e}finally{try{if(!s&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(u)throw o}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return o(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?o(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rw,AWSError:()=>L,DNSError:()=>G,GeneralError:()=>q,HTTP2Error:()=>M,InvalidAWSConfigError:()=>S,InvalidSignatureError:()=>ke,KinesisClient:()=>$e,KinesisServiceError:()=>Ze,NetworkError:()=>H,TCPError:()=>K,TLSError:()=>B});var s=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),a(this,"_protocol",void 0),a(this,"_hostname",void 0),a(this,"_port",void 0);var r=!t.startsWith("http://")&&!t.startsWith("https://")?"".concat(e.DEFAULT_PROTOCOL,"://").concat(t):t,o=r.match(/^https?:/),i=n(r.replace(/^https?:\/\//,"").split("/"),1)[0];this._protocol=o?o[0].slice(0,-1):e.DEFAULT_PROTOCOL,this._hostname=i.split(":")[0],this._port=i.split(":")[1]?parseInt(i.split(":")[1]):void 0}return t=e,(r=[{key:"copy",value:function(){return new e(this.href)}},{key:"host",get:function(){return this._port?"".concat(this._hostname,":").concat(this._port):this._hostname},set:function(e){var t=n(e.split(":"),2),r=t[0],o=t[1];this._hostname=r,this._port=o?parseInt(o):void 0}},{key:"hostname",get:function(){return this._hostname},set:function(e){this._hostname=e}},{key:"href",get:function(){return"".concat(this.protocol,"://").concat(this.host)},set:function(t){var r=t.match(/^https?:/),o=n(t.replace(/^https?:\/\//,"").split("/"),1)[0];this._protocol=r?r[0].slice(0,-1):e.DEFAULT_PROTOCOL,this._hostname=o.split(":")[0],this._port=o.split(":")[1]?parseInt(o.split(":")[1]):void 0}},{key:"port",get:function(){return this._port},set:function(e){this._port=e}},{key:"protocol",get:function(){return this._protocol},set:function(e){this._protocol=e}}])&&i(t.prototype,r),o&&i(t,o),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,r,o}();function u(e){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}function l(e,t,r){return t=y(t),function(e,t){if(t&&("object"==u(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,h()?Reflect.construct(t,r||[],y(e).constructor):t.apply(e,r))}function f(e){var t="function"==typeof Map?new Map:void 0;return f=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return function(e,t,r){if(h())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,t);var o=new(e.bind.apply(e,n));return r&&p(o,r.prototype),o}(e,arguments,y(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),p(r,e)},f(e)}function h(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(h=function(){return!!e})()}function p(e,t){return p=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},p(e,t)}function y(e){return y=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},y(e)}function d(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function v(e,t){for(var r=0;r128)throw new S("invalid AWS access key ID; reason: size should be between 16 and 128 characters, got ".concat(t.accessKeyId.length));if(!t.secretAccessKey||""===t.secretAccessKey)throw new S("invalid AWS secret access key; reason: expected a non empty string, got `".concat(t.secretAccessKey,"`"));this.region=t.region,this.accessKeyId=t.accessKeyId,this.secretAccessKey=t.secretAccessKey,void 0!==t.sessionToken&&(this.sessionToken=t.sessionToken),void 0!==t.endpoint&&("string"==typeof t.endpoint?this.endpoint=new s(t.endpoint):this.endpoint=t.endpoint)}return m(e,null,[{key:"fromEnvironment",value:function(t){return new e({region:__ENV.AWS_REGION,accessKeyId:__ENV.AWS_ACCESS_KEY_ID,secretAccessKey:__ENV.AWS_SECRET_ACCESS_KEY,sessionToken:__ENV.AWS_SESSION_TOKEN,endpoint:null==t?void 0:t.endpoint})}}])}(),S=function(e){function t(e){return d(this,t),l(this,t,[e])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&p(e,t)}(t,e),m(t)}(f(Error));const O=require("k6/html");var P;function T(e){return T="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},T(e)}function E(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function k(e,t){for(var r=0;r=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){c=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(c)throw i}}}}function me(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r1&&void 0!==arguments[1]?arguments[1]:{},r=ge(ge({},{signingDate:new Date,unsignableHeaders:new Set,signableHeaders:new Set}),t),n=_e(r.signingDate),o=n.longDate,i=n.shortDate,a=r.signingService||this.service,c=r.signingRegion||this.region,s="".concat(i,"/").concat(c,"/").concat(a,"/").concat(ue);e.headers[ce]||(e.headers[ce]=e.endpoint.hostname);for(var u=0,l=Object.keys(e.headers);u-1&&delete e.headers[f]}e.headers[te]=o,this.credentials.sessionToken&&(e.headers[oe]=this.credentials.sessionToken),ArrayBuffer.isView(e.body)&&(e.body=e.body.buffer),e.body||(e.body="");var h=this.computePayloadHash(e);!function(e,t){e=e.toLowerCase();for(var r=0,n=Object.keys(t);r1&&void 0!==arguments[1]?arguments[1]:{},r=t.signingDate,n=void 0===r?new Date:r,o=t.expiresIn,i=void 0===o?3600:o,a=t.unsignableHeaders,c=t.unhoistableHeaders,s=t.signableHeaders,u=t.signingRegion,l=t.signingService,f=_e(n),h=f.longDate,p=f.shortDate,y=u||this.region,d=l||this.service;if(i>604800)throw new ke("Signature version 4 presigned URLs can't be valid for more than 7 days");var v="".concat(p,"/").concat(y,"/").concat(d,"/").concat(ue),m=this.moveHeadersToQuery(e,{unhoistableHeaders:c});m.headers[ce]||(m.headers[ce]=e.endpoint.hostname),this.credentials.sessionToken&&(m.query[Z]=this.credentials.sessionToken),m.query["X-Amz-Algorithm"]=le,m.query["X-Amz-Credential"]="".concat(this.credentials.accessKeyId,"/").concat(v),m.query[Y]=h,m.query["X-Amz-Expires"]=i.toString(10);var b=this.computeCanonicalHeaders(m,a,s);m.query["X-Amz-SignedHeaders"]=Object.keys(b).sort().join(";");var g=this.deriveSigningKey(this.credentials,d,y,p),w=this.computePayloadHash(e),S=this.createCanonicalRequest(m,b,w);m.query[$]=this.calculateSignature(h,v,g,S);var O,P=e.endpoint.href;m.path&&(P=null!==(O=P)&&void 0!==O&&O.endsWith("/")?P:P+"/",P+=m.path);return m.query&&(P+="?".concat(this.serializeQueryParameters(m.query))),ge({url:P},m)}},{key:"createCanonicalRequest",value:function(e,t,r){var n=Object.keys(t).sort(),o=n.map((function(e){return"".concat(e,":").concat(t[e])})).join("\n"),i=n.join(";");return"".concat(e.method,"\n")+"".concat(this.computeCanonicalURI(e),"\n")+"".concat(this.computeCanonicalQuerystring(e),"\n")+"".concat(o,"\n\n")+"".concat(i,"\n")+"".concat(r)}},{key:"createStringToSign",value:function(e,t,r){var n=Q().sha256(r,"hex");return"".concat(le,"\n")+"".concat(e,"\n")+"".concat(t,"\n")+"".concat(n)}},{key:"calculateSignature",value:function(e,t,r,n){var o=this.createStringToSign(e,t,n);return Q().hmac("sha256",r,o,"hex")}},{key:"deriveSigningKey",value:function(e,t,r,n){var o=e.secretAccessKey,i=Q().hmac("sha256","AWS4"+o,n,"binary"),a=Q().hmac("sha256",i,r,"binary"),c=Q().hmac("sha256",a,t,"binary");return Q().hmac("sha256",c,"aws4_request","binary")}},{key:"computeCanonicalURI",value:function(e){var t=e.path;if(this.uriEscapePath){var r,n=[],o=ve(t.split("/"));try{for(o.s();!(r=o.n()).done;){var i=r.value;0!==(null==i?void 0:i.length)&&("."!==i&&(".."===i?n.pop():n.push(i)))}}catch(e){o.e(e)}finally{o.f()}var a=null!=t&&t.startsWith("/")?"/":"",c=n.join("/"),s=n.length>0&&null!=t&&t.endsWith("/")?"/":"",u="".concat(a).concat(c).concat(s);return encodeURIComponent(u).replace(/%2F/g,"/")}return t}},{key:"computeCanonicalQuerystring",value:function(e){var t,r=e.query,n=void 0===r?{}:r,o=[],i={},a=function(e){if(e.toLowerCase()===re)return 1;o.push(e);var t=n[e];"string"==typeof t?i[e]="".concat(je(e),"=").concat(je(t)):Array.isArray(t)&&(i[e]=t.slice(0).sort().reduce((function(t,r){return t.concat(["".concat(je(e),"=").concat(je(r))])}),[]).join("&"))},c=ve(Object.keys(n).sort());try{for(c.s();!(t=c.n()).done;){a(t.value)}}catch(e){c.e(e)}finally{c.f()}return o.map((function(e){return i[e]})).filter((function(e){return e})).join("&")}},{key:"computeCanonicalHeaders",value:function(e,t,r){var n,o=e.headers,i={},a=ve(Object.keys(o).sort());try{for(a.s();!(n=a.n()).done;){var c=n.value;if(null!=o[c]){var s=c.toLowerCase();(s in se||null!=t&&t.has(s))&&(!r||r&&!r.has(s))||"string"==typeof o[c]&&(i[s]=o[c]=o[c].trim().replace(/\s+/g," "))}}}catch(e){a.e(e)}finally{a.f()}return i}},{key:"computePayloadHash",value:function(e){var t,r=e.headers,n=e.body;return r[ee]?r[ee]:null==n?"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855":"string"==typeof n||(t=n,"function"==typeof ArrayBuffer&&(t instanceof ArrayBuffer||"[object ArrayBuffer]"===Object.prototype.toString.call(t)))?Q().sha256(n,"hex").toLowerCase():ArrayBuffer.isView(n)?Q().sha256(n.buffer,"hex").toLowerCase():"UNSIGNED-PAYLOAD"}},{key:"moveHeadersToQuery",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=JSON.parse(JSON.stringify(e)),n=r.headers,o=r.query,i=void 0===o?{}:o,a=0,c=Object.keys(n);a=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var s=n.call(a,"catchLoc"),u=n.call(a,"finallyLoc");if(s&&u){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),C(r),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;C(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:N(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),v}},t}function He(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function qe(e){for(var t=1;t1&&void 0!==o[1]?o[1]:{}).shardCount&&{ShardCount:r.shardCount}),r.streamModeDetails&&{StreamMode:r.streamModeDetails.streamMode}),e.next=4,this._send_request("CreateStream",n);case 4:case"end":return e.stop()}}),e,this)}))),function(e){return u.apply(this,arguments)})},{key:"deleteStream",value:(s=Ke(Le().mark((function e(t){var r,n,o=arguments;return Le().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=qe(qe({StreamName:t},(r=o.length>1&&void 0!==o[1]?o[1]:{}).streamARN&&{StreamARN:r.streamARN}),r.enforceConsumerDeletion&&{EnforceConsumerDeletion:r.enforceConsumerDeletion}),e.next=4,this._send_request("DeleteStream",n);case 4:case"end":return e.stop()}}),e,this)}))),function(e){return s.apply(this,arguments)})},{key:"listStreams",value:(c=Ke(Le().mark((function e(){var t,r,n,o=arguments;return Le().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=qe(qe(qe({},(t=o.length>0&&void 0!==o[0]?o[0]:{}).exclusiveStartStreamName&&{ExclusiveStartStreamName:t.exclusiveStartStreamName}),t.limit&&{Limit:t.limit}),t.nextToken&&{NextToken:t.nextToken}),e.next=4,this._send_request("ListStreams",r);case 4:return n=e.sent,e.abrupt("return",et.fromJson(null==n?void 0:n.json()));case 6:case"end":return e.stop()}}),e,this)}))),function(){return c.apply(this,arguments)})},{key:"putRecords",value:(a=Ke(Le().mark((function e(t){var r,n,o,i=arguments;return Le().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((r=i.length>1&&void 0!==i[1]?i[1]:{}).streamName||r.streamARN){e.next=3;break}throw new Error("Either streamName or streamARN must be provided");case 3:return n=qe(qe({Records:t},r.streamName&&{StreamName:r.streamName}),r.streamARN&&{StreamARN:r.streamARN}),e.next=6,this._send_request("PutRecords",n);case 6:return o=e.sent,e.abrupt("return",rt.fromJson(null==o?void 0:o.json()));case 8:case"end":return e.stop()}}),e,this)}))),function(e){return a.apply(this,arguments)})},{key:"getRecords",value:(i=Ke(Le().mark((function e(t){var r,n,o,i=arguments;return Le().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=qe(qe({ShardIterator:t},(r=i.length>1&&void 0!==i[1]?i[1]:{}).limit&&{Limit:r.limit}),r.streamARN&&{StreamARN:r.streamARN}),e.next=4,this._send_request("GetRecords",n);case 4:return o=e.sent,e.abrupt("return",ot.fromJson(null==o?void 0:o.json()));case 6:case"end":return e.stop()}}),e,this)}))),function(e){return i.apply(this,arguments)})},{key:"listShards",value:(o=Ke(Le().mark((function e(t){var r,n,o,i=arguments;return Le().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=qe(qe({StreamName:t},(r=i.length>1&&void 0!==i[1]?i[1]:{}).nextToken&&{NextToken:r.nextToken}),r.maxResults&&{MaxResults:r.maxResults}),e.next=4,this._send_request("ListShards",n);case 4:return o=e.sent,e.abrupt("return",at.fromJson(null==o?void 0:o.json()));case 6:case"end":return e.stop()}}),e,this)}))),function(e){return o.apply(this,arguments)})},{key:"getShardIterator",value:(n=Ke(Le().mark((function e(t,r,n){var o,i,a,c=arguments;return Le().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=qe(qe({StreamName:t,ShardId:r,ShardIteratorType:n},(o=c.length>3&&void 0!==c[3]?c[3]:{}).startingSequenceNumber&&{StartingSequenceNumber:o.startingSequenceNumber}),o.timestamp&&{Timestamp:o.timestamp}),e.next=4,this._send_request("GetShardIterator",i);case 4:return a=e.sent,e.abrupt("return",st.fromJson(null==a?void 0:a.json()));case 6:case"end":return e.stop()}}),e,this)}))),function(e,t,r){return n.apply(this,arguments)})},{key:"_send_request",value:(r=Ke(Le().mark((function e(t,r){var n,o;return Le().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=this.signature.sign({method:"POST",endpoint:this.endpoint,path:"/",headers:qe(qe({},this.commonHeaders),{},Qe({},ne,"".concat(this.serviceVersion,".").concat(t))),body:JSON.stringify(r)},{}),e.next=3,Ae().asyncRequest("POST",n.url,n.body,qe(qe({},this.baseRequestParams),{},{headers:n.headers}));case 3:return o=e.sent,this.handleError(o,t),e.abrupt("return",o);case 6:case"end":return e.stop()}}),e,this)}))),function(e,t){return r.apply(this,arguments)})},{key:"handleError",value:function(e,r){var n,o,i,a,c;if(!(n=t,o="handleError",i=this,c=Je(Fe(1&(a=3)?n.prototype:n),o,i),2&a?function(e){return c.apply(i,e)}:c)([e,r]))return!1;var s=e.error_code,u=e.json();if(s>=1400&&s<=1499){var l=u.Message||u.message||u.__type;if("InvalidSignatureException"===u.__type)throw new ke(l,u.__type);throw new Ze(l,u.__type,r||"Unknown")}if(1500===s)throw new Ze("An error occured on the server side","InternalServiceError",r||"Unknown");return!0}}]);var r,n,o,i,a,c,s,u}(function(){return e=function e(t,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),Re(this,"awsConfig",void 0),Re(this,"serviceName",void 0),Re(this,"baseRequestParams",{responseType:"text"}),Re(this,"_endpoint",void 0),this.awsConfig=t,this.serviceName=r,null!=t.endpoint&&(this._endpoint=t.endpoint)},(t=[{key:"endpoint",get:function(){return null==this._endpoint&&(this._endpoint=new s("https://".concat(this.serviceName,".").concat(this.awsConfig.region,".amazonaws.com"))),this._endpoint},set:function(e){this._endpoint=e}},{key:"handleError",value:function(e,t){var r=e.status,n=e.error_code,o=e.error;if(r>=200&&r<300&&""==o&&0===n)return!1;switch(n){case U.GenericError:case U.NonTCPNetworkError:case U.InvalidURL:case U.HTTPRequestTimeout:throw new q(n);case W.GenericDNSError:case W.NoIPFound:case W.BlacklistedIP:case W.BlacklistedHostname:throw new G(n);case z.GenericTCPError:case z.BrokenPipeOnWrite:case z.UnknownTCPError:case z.GeneralTCPDialError:case z.DialTimeoutError:case z.DialConnectionRefused:case z.DialUnknownError:case z.ResetByPeer:throw new K(n);case J.GeneralTLSError:case J.UnknownAuthority:case J.CertificateHostnameMismatch:throw new B(n);case F.GenericHTTP2Error:case F.GeneralHTTP2GoAwayError:throw new M(n)}return!0}}])&&xe(e.prototype,t),r&&xe(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}()),Ze=function(e){function t(e,r,n){var o;return Be(this,t),Qe(o=We(this,t,[e,r]),"operation",void 0),o.name="KinesisServiceError",o.operation=n,o}return Xe(t,e),Ue(t)}(L),et=function(){function e(t,r,n,o){Be(this,e),Qe(this,"hasMoreStreams",void 0),Qe(this,"nextToken",void 0),Qe(this,"streamNames",void 0),Qe(this,"streamSummaries",void 0),this.hasMoreStreams=t,this.nextToken=r,this.streamNames=n,this.streamSummaries=o}return Ue(e,null,[{key:"fromJson",value:function(t){var r=t.HasMoreStreams,n=void 0!==r&&r,o=t.NextToken,i=void 0===o?"":o,a=t.StreamNames,c=void 0===a?[]:a,s=t.StreamSummaries,u=void 0===s?[]:s;return new e(n,i,c,null==u?void 0:u.map(tt.fromJson))}}])}(),tt=function(){function e(t,r,n,o,i){Be(this,e),Qe(this,"streamARN",void 0),Qe(this,"streamCreationTimestamp",void 0),Qe(this,"streamModeDetails",void 0),Qe(this,"streamName",void 0),Qe(this,"streamStatus",void 0),this.streamARN=t,this.streamCreationTimestamp=r,this.streamModeDetails=n,this.streamName=o,this.streamStatus=i}return Ue(e,null,[{key:"fromJson",value:function(t){var r=t.StreamARN,n=void 0===r?"":r,o=t.StreamCreationTimestamp,i=void 0===o?0:o,a=t.StreamModeDetails,c=void 0===a?{}:a,s=t.StreamName,u=void 0===s?"":s,l=t.StreamStatus;return new e(n,i,c,u,void 0===l?"":l)}}])}(),rt=function(){function e(t,r,n){Be(this,e),Qe(this,"encryptionType",void 0),Qe(this,"failedRecordCount",void 0),Qe(this,"records",void 0),this.encryptionType=t,this.failedRecordCount=r,this.records=n}return Ue(e,null,[{key:"fromJson",value:function(t){var r=t.EncryptionType,n=void 0===r?"NONE":r,o=t.FailedRecordCount,i=void 0===o?0:o,a=t.Records;return new e(n,i,(void 0===a?[]:a).map(nt.fromJson))}}])}(),nt=function(){function e(t,r){Be(this,e),Qe(this,"sequenceNumber",void 0),Qe(this,"shardId",void 0),this.sequenceNumber=t,this.shardId=r}return Ue(e,null,[{key:"fromJson",value:function(t){return new e(t.SequenceNumber,t.ShardId)}}])}(),ot=function(){function e(t,r,n){Be(this,e),Qe(this,"nextShardIterator",void 0),Qe(this,"records",void 0),Qe(this,"millisBehindLatest",void 0),this.nextShardIterator=t,this.records=r,this.millisBehindLatest=n}return Ue(e,null,[{key:"fromJson",value:function(t){var r=t.NextShardIterator,n=void 0===r?"":r,o=t.Records,i=void 0===o?[]:o,a=t.MillisBehindLatest,c=void 0===a?0:a;return new e(n,i.map(it.fromJson),c)}}])}(),it=function(){function e(t,r,n){Be(this,e),Qe(this,"data",void 0),Qe(this,"partitionKey",void 0),Qe(this,"sequenceNumber",void 0),this.data=t,this.partitionKey=r,this.sequenceNumber=n}return Ue(e,null,[{key:"fromJson",value:function(t){return new e(t.Data,t.PartitionKey,t.SequenceNumber)}}])}(),at=function(){function e(t,r){Be(this,e),Qe(this,"shards",void 0),Qe(this,"nextToken",void 0),this.shards=t,this.nextToken=r}return Ue(e,null,[{key:"fromJson",value:function(t){var r=t.Shards,n=void 0===r?[]:r,o=t.NextToken;return new e(n.map(ct.fromJson),o)}}])}(),ct=function(){function e(t,r,n,o,i){Be(this,e),Qe(this,"id",void 0),Qe(this,"parentShardId",void 0),Qe(this,"adjacentParentShardId",void 0),Qe(this,"hashKeyRange",void 0),Qe(this,"sequenceNumberRange",void 0),this.id=t,this.parentShardId=o,this.adjacentParentShardId=i,this.hashKeyRange=r,this.sequenceNumberRange=n}return Ue(e,null,[{key:"fromJson",value:function(t){return new e(t.ShardId,t.HashKeyRange,t.SequenceNumberRange,t.ParentShardId,t.AdjacentParentShardId)}}])}(),st=function(){function e(t){Be(this,e),Qe(this,"shardIterator",void 0),this.shardIterator=t}return Ue(e,null,[{key:"fromJson",value:function(t){return new e(t.ShardIterator)}}])}(),ut=exports;for(var lt in t)ut[lt]=t[lt];t.__esModule&&Object.defineProperty(ut,"__esModule",{value:!0})})(); +//# sourceMappingURL=kinesis.js.map \ No newline at end of file diff --git a/lib/aws/0.13.0/kinesis.js.LICENSE.txt b/lib/aws/0.13.0/kinesis.js.LICENSE.txt new file mode 100644 index 0000000..ae386fb --- /dev/null +++ b/lib/aws/0.13.0/kinesis.js.LICENSE.txt @@ -0,0 +1 @@ +/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ diff --git a/lib/aws/0.13.0/kinesis.js.map b/lib/aws/0.13.0/kinesis.js.map new file mode 100644 index 0000000..e471006 --- /dev/null +++ b/lib/aws/0.13.0/kinesis.js.map @@ -0,0 +1 @@ +{"version":3,"file":"kinesis.js","mappings":"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","sources":["webpack://k6-jslib-aws/webpack/bootstrap","webpack://k6-jslib-aws/webpack/runtime/compat get default export","webpack://k6-jslib-aws/webpack/runtime/define property getters","webpack://k6-jslib-aws/webpack/runtime/hasOwnProperty shorthand","webpack://k6-jslib-aws/webpack/runtime/make namespace object","webpack://k6-jslib-aws/./src/internal/endpoint.ts","webpack://k6-jslib-aws/./src/internal/config.ts","webpack://k6-jslib-aws/external commonjs \"k6/html\"","webpack://k6-jslib-aws/./src/internal/error.ts","webpack://k6-jslib-aws/external commonjs \"k6/crypto\"","webpack://k6-jslib-aws/./src/internal/constants.ts","webpack://k6-jslib-aws/./src/internal/signature.ts","webpack://k6-jslib-aws/./src/internal/http.ts","webpack://k6-jslib-aws/./src/internal/utils.ts","webpack://k6-jslib-aws/external commonjs \"k6/http\"","webpack://k6-jslib-aws/./src/internal/kinesis.ts","webpack://k6-jslib-aws/./src/internal/client.ts"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * Represents an AWS service endpoint, providing utilities for parsing and handling URL details.\n */\nexport class Endpoint {\n private _protocol: string\n private _hostname: string\n private _port?: number\n\n // Default protocol, this can be globally changed as per application requirements\n private static readonly DEFAULT_PROTOCOL = 'https' // Set this as per AWS.config\n\n /**\n // * Constructs a new Endpoint instance.\n *\n * @param {string} endpoint - The URL to construct an endpoint from. If the URL omits a protocol, the default protocol will be used.\n */\n constructor(endpoint: string) {\n const isDefaultProtocol =\n !endpoint.startsWith('http://') && !endpoint.startsWith('https://')\n const completeUrl = isDefaultProtocol\n ? `${Endpoint.DEFAULT_PROTOCOL}://${endpoint}`\n : endpoint\n\n const protocolMatch = completeUrl.match(/^https?:/)\n const hostAndPath = completeUrl.replace(/^https?:\\/\\//, '')\n const [hostnameWithPort] = hostAndPath.split('/')\n\n this._protocol = protocolMatch ? protocolMatch[0].slice(0, -1) : Endpoint.DEFAULT_PROTOCOL\n this._hostname = hostnameWithPort.split(':')[0]\n this._port = hostnameWithPort.split(':')[1]\n ? parseInt(hostnameWithPort.split(':')[1])\n : undefined\n }\n\n /**\n * Creates a new Endpoint instance that is a copy of the current one.\n *\n * @returns {Endpoint} The copied Endpoint.\n */\n public copy(): Endpoint {\n return new Endpoint(this.href)\n }\n\n /**\n * Gets the host portion of the endpoint including the port.\n *\n * @returns {string} The host portion of the endpoint including the port.\n */\n public get host(): string {\n return this._port ? `${this._hostname}:${this._port}` : this._hostname\n }\n\n /**\n * Sets the host portion of the endpoint including the port.\n *\n * @param {string} value - The value to set for the host.\n */\n public set host(value: string) {\n const [hostname, port] = value.split(':')\n this._hostname = hostname\n this._port = port ? parseInt(port) : undefined\n }\n\n /**\n * Gets the host portion of the endpoint without the port.\n *\n * @returns {string} The host portion of the endpoint.\n */\n public get hostname(): string {\n return this._hostname\n }\n\n /**\n * Sets the host portion of the endpoint without the port.\n *\n * @param {string} value - The value to set for the hostname.\n */\n public set hostname(value: string) {\n this._hostname = value\n }\n\n /**\n * Gets the full URL of the endpoint.\n *\n * @returns {string} The full URL of the endpoint.\n */\n public get href(): string {\n return `${this.protocol}://${this.host}`\n }\n\n /**\n * Sets the full URL of the endpoint.\n *\n * @param {string} value - The value to set for the full URL.\n */\n public set href(value: string) {\n const protocolMatch = value.match(/^https?:/)\n const withoutProtocol = value.replace(/^https?:\\/\\//, '')\n const [hostnameWithPort] = withoutProtocol.split('/')\n\n this._protocol = protocolMatch ? protocolMatch[0].slice(0, -1) : Endpoint.DEFAULT_PROTOCOL // remove the trailing colon\n this._hostname = hostnameWithPort.split(':')[0]\n this._port = hostnameWithPort.split(':')[1]\n ? parseInt(hostnameWithPort.split(':')[1])\n : undefined\n }\n\n /**\n * Gets the port of the endpoint.\n *\n * @returns {number|undefined} The port of the endpoint.\n */\n public get port(): number | undefined {\n return this._port\n }\n\n /**\n * Sets the port of the endpoint.\n *\n * @param {number|undefined} value - The value to set for the port.\n */\n public set port(value: number | undefined) {\n this._port = value\n }\n\n /**\n * Gets the protocol (http or https) of the endpoint URL.\n *\n * @returns {string} The protocol of the endpoint URL.\n */\n public get protocol(): string {\n return this._protocol\n }\n\n /**\n * Sets the protocol (http or https) of the endpoint URL.\n *\n * @param {string} value - The value to set for the protocol.\n */\n public set protocol(value: string) {\n this._protocol = value\n }\n}\n","import { HTTPScheme } from './http'\nimport { Endpoint } from './endpoint'\n\n/** Class holding an AWS connection information */\nexport class AWSConfig {\n /**\n * The AWS region to connect to, as listed: https://docs.aws.amazon.com/general/latest/gr/rande.html\n *\n * @type {string}\n */\n region: string\n\n /**\n * Your user's AWS access key id credential.\n *\n * @type {string}\n */\n accessKeyId: string\n\n /**\n * Your user's AWS secret access key credential.\n *\n * @type {string}\n */\n secretAccessKey: string\n\n /**\n * Your user's AWS session token credential.\n *\n * @type {string}\n */\n sessionToken?: string\n\n /**\n * The AWS hostname to connect to.\n *\n * @type {string} ['amazonaws.com']\n */\n endpoint?: Endpoint\n\n /**\n * fromEnvironment creates an AWSConfig from the environment variables.\n *\n * It expects to find the following compulsory environment variables:\n * * AWS_REGION\n * * AWS_ACCESS_KEY_ID\n * * AWS_SECRET_ACCESS_KEY\n *\n * If set, the following optional environment variables are also used:\n * * AWS_SESSION_TOKEN\n *\n * Finally, the options parameter allows to explicitly set the scheme and endpoint\n * to use when connecting to AWS.\n *\n * @param options {AWSConnectionOptions}\n * @returns\n */\n static fromEnvironment(options?: AWSConnectionOptions): AWSConfig {\n const region = __ENV.AWS_REGION\n const accessKeyId = __ENV.AWS_ACCESS_KEY_ID\n const secretAccessKey = __ENV.AWS_SECRET_ACCESS_KEY\n const sessionToken: string | undefined = __ENV.AWS_SESSION_TOKEN\n const endpoint: Endpoint | string | undefined = options?.endpoint\n\n return new AWSConfig({\n region,\n accessKeyId,\n secretAccessKey,\n sessionToken,\n endpoint: endpoint,\n })\n }\n\n /**\n * Create an AWSConfig.\n *\n * @param {AWSConfigOptions} options - configuration attributes to use when interacting with AWS' APIs\n * @throws {InvalidArgumentException}\n */\n constructor(options: AWSConfigOptions) {\n if (!options.region || options.region === '') {\n throw new InvalidAWSConfigError(\n `invalid AWS region; reason: expected a valid AWS region name (e.g. \"us-east-1\"), got \\`${options.region}\\``\n )\n }\n\n if (!options.accessKeyId || options.accessKeyId === '') {\n throw new InvalidAWSConfigError(\n `invalid AWS access key ID; reason: expected a non empty string, got \\`${options.accessKeyId}\\``\n )\n }\n\n if (options.accessKeyId.length < 16 || options.accessKeyId.length > 128) {\n throw new InvalidAWSConfigError(\n `invalid AWS access key ID; reason: size should be between 16 and 128 characters, got ${options.accessKeyId.length}`\n )\n }\n\n if (!options.secretAccessKey || options.secretAccessKey === '') {\n throw new InvalidAWSConfigError(\n `invalid AWS secret access key; reason: expected a non empty string, got \\`${options.secretAccessKey}\\``\n )\n }\n\n this.region = options.region\n this.accessKeyId = options.accessKeyId\n this.secretAccessKey = options.secretAccessKey\n\n if (options.sessionToken !== undefined) {\n this.sessionToken = options.sessionToken\n }\n\n if (options.endpoint !== undefined) {\n if (typeof options.endpoint === 'string') {\n this.endpoint = new Endpoint(options.endpoint)\n } else {\n this.endpoint = options.endpoint\n }\n }\n }\n}\n\n/**\n * Interface representing AWSConfig options\n */\nexport interface AWSConfigOptions extends AWSConnectionOptions {\n /**\n * The AWS region to connect to, as listed: https://docs.aws.amazon.com/general/latest/gr/rande.html\n *\n * @type {string}\n */\n region: string\n\n /**\n * Your user's AWS access key id credential.\n *\n * @type {string}\n */\n accessKeyId: string\n\n /**\n * Your user's AWS secret access key credential.\n *\n * @type {string}\n */\n secretAccessKey: string\n\n /**\n * Your user's AWS session token credential.\n *\n * @type {string}\n */\n sessionToken?: string\n}\n\n/**\n * Interface representing AWS connection options\n */\nexport interface AWSConnectionOptions {\n /**\n * The HTTP scheme to use when connecting to AWS.\n *\n * @type {HTTPScheme}\n */\n scheme?: HTTPScheme\n\n /**\n * The AWS hostname to connect to.\n *\n * @type {string}\n */\n endpoint?: Endpoint | string\n}\n\n/** Class representing an invalid AWS configuration */\nexport class InvalidAWSConfigError extends Error {\n constructor(message: string) {\n super(message)\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"k6/html\");","import { JSONObject } from './json'\nimport { parseHTML } from 'k6/html'\nimport { Response } from 'k6/http'\n\n/**\n * Base class to derive errors from\n *\n * Inspired from AWS official error types, as\n * described in:\n * * https://aws.amazon.com/blogs/developer/service-error-handling-modular-aws-sdk-js/\n * * https://github.com/aws/aws-sdk-js/blob/master/lib/error.d.ts\n */\nexport class AWSError extends Error {\n /**\n * Error code issued by the service (if any)\n */\n code?: string\n\n /**\n * Create an AWSError\n *\n * @param {string} message - A longer human readable error message.\n * @param {string?} code - A unique short code representing the error that was emitted\n */\n constructor(message: string, code?: string) {\n super(message)\n this.name = 'AWSError'\n this.code = code\n }\n\n /**\n * Parse an AWSError from an XML document\n *\n * @param {string} xmlDocument - Serialized XML document to parse the error from\n * @returns {AWSError} - The parsed AWSError object\n */\n static parseXML(xmlDocument: string): AWSError {\n const doc = parseHTML(xmlDocument)\n return new AWSError(doc.find('Message').text(), doc.find('Code').text())\n }\n\n /**\n * Parse an AWSError from a Response object\n *\n * @param {Response} response - The Response object to parse the error from\n * @returns {AWSError} - The parsed AWSError object\n */\n static parse(response: Response): AWSError {\n if (response.headers['Content-Type'] === 'application/json') {\n const error = (response.json() as JSONObject) || {}\n const message =\n error.Message ||\n error.message ||\n error.__type ||\n 'An error occurred on the server side'\n const code = response.headers['X-Amzn-Errortype'] || error.__type\n return new AWSError(message as string, code as string)\n } else {\n return AWSError.parseXML(response.body as string)\n }\n }\n}\n\n/**\n * Base class for network errors as produced by k6.\n *\n * Based on the network error handling in k6, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n *\n * @typeparam N - The name of the network error\n * @typeparam K - The kind of the network error\n */\nexport class NetworkError extends Error {\n code: K\n name: N\n\n /**\n * Create a NetworkError\n *\n * @param {N} name - The name of the network error\n * @param {K} code - The kind of the network error\n */\n constructor(name: N, code: K) {\n super(ErrorMessages[code] || 'An unknown error occurred')\n this.name = name\n this.code = code\n }\n}\n\n/**\n * Represents a general network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class GeneralError extends NetworkError<'GeneralError', GeneralErrorKind> {\n /**\n * Create a GeneralError\n *\n * @param {GeneralErrorKind} code - The kind of the general error\n */\n constructor(code: GeneralErrorKind) {\n super('GeneralError', code)\n }\n}\n\n/**\n * Represents a DNS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class DNSError extends NetworkError<'DNSError', DNSErrorKind> {\n /**\n * Create a DNSError\n *\n * @param {DNSErrorKind} code - The kind of the DNS error\n */\n constructor(code: DNSErrorKind) {\n super('DNSError', code)\n }\n}\n\n/**\n * Represents a TCP-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class TCPError extends NetworkError<'TCPError', TCPErrorKind> {\n /**\n * Create a TCPError\n *\n * @param {TCPErrorKind} code - The kind of the TCP error\n */\n constructor(code: TCPErrorKind) {\n super('TCPError', code)\n }\n}\n\n/**\n * Represents a TLS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class TLSError extends NetworkError<'TLSError', TLSErrorKind> {\n /**\n * Create a TLSError\n *\n * @param {TLSErrorKind} code - The kind of the TLS error\n */\n constructor(code: TLSErrorKind) {\n super('TLSError', code)\n }\n}\n\n/**\n * Represents an HTTP/2-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class HTTP2Error extends NetworkError<'HTTP2Error', HTTP2ErrorKind> {\n /**\n * Create an HTTP2Error\n *\n * @param {HTTP2ErrorKind} code - The kind of the HTTP/2 error\n */\n constructor(code: HTTP2ErrorKind) {\n super('HTTP2Error', code)\n }\n}\n\n/**\n * Represents the name of a network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\ntype NetworkErrorName = 'GeneralError' | 'DNSError' | 'TCPError' | 'TLSError' | 'HTTP2Error'\n\n/**\n * Represents the kind of a network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\ntype ErrorKind = GeneralErrorKind | DNSErrorKind | TCPErrorKind | TLSErrorKind | HTTP2ErrorKind\n\n/**\n * Represents the kind of a general network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum GeneralErrorKind {\n GenericError = 1000,\n NonTCPNetworkError = 1010,\n InvalidURL = 1020,\n HTTPRequestTimeout = 1050,\n}\n\n/**\n * Represents the kind of a DNS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum DNSErrorKind {\n GenericDNSError = 1100,\n NoIPFound = 1101,\n BlacklistedIP = 1110,\n BlacklistedHostname = 1111,\n}\n\n/**\n * Represents the kind of a TCP-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum TCPErrorKind {\n GenericTCPError = 1200,\n BrokenPipeOnWrite = 1201,\n UnknownTCPError = 1202,\n GeneralTCPDialError = 1210,\n DialTimeoutError = 1211,\n DialConnectionRefused = 1212,\n DialUnknownError = 1213,\n ResetByPeer = 1220,\n}\n\n/**\n * Represents the kind of a TLS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum TLSErrorKind {\n GeneralTLSError = 1300,\n UnknownAuthority = 1310,\n CertificateHostnameMismatch = 1311,\n}\n\n/**\n * Represents the kind of an HTTP/2-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum HTTP2ErrorKind {\n GenericHTTP2Error = 1600,\n GeneralHTTP2GoAwayError = 1610,\n}\n\n/**\n * Error messages for each kind of network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nconst ErrorMessages: { [key in ErrorKind]: string } = {\n [GeneralErrorKind.GenericError]: 'A generic error that isn’t any of the ones listed below',\n [GeneralErrorKind.NonTCPNetworkError]:\n 'A non-TCP network error - this is a placeholder and there is no error currently known to trigger it',\n [GeneralErrorKind.InvalidURL]: 'An invalid URL was specified',\n [GeneralErrorKind.HTTPRequestTimeout]: 'The HTTP request has timed out',\n [DNSErrorKind.GenericDNSError]: 'A generic DNS error that isn’t any of the ones listed below',\n [DNSErrorKind.NoIPFound]: 'No IP for the provided host was found',\n [DNSErrorKind.BlacklistedIP]:\n 'Blacklisted IP was resolved or a connection to such was tried to be established',\n [DNSErrorKind.BlacklistedHostname]: 'Blacklisted hostname using The Block Hostnames option',\n [TCPErrorKind.GenericTCPError]: 'A generic TCP error that isn’t any of the ones listed below',\n [TCPErrorKind.BrokenPipeOnWrite]:\n 'A “broken pipe” on write - the other side has likely closed the connection',\n [TCPErrorKind.UnknownTCPError]:\n 'An unknown TCP error - We got an error that we don’t recognize but it is from the operating system and has errno set on it. The message in error includes the operation(write,read) and the errno, the OS, and the original message of the error',\n [TCPErrorKind.GeneralTCPDialError]: 'General TCP dial error',\n [TCPErrorKind.DialTimeoutError]: 'Dial timeout error - the timeout for the dial was reached',\n [TCPErrorKind.DialConnectionRefused]:\n 'Dial connection refused - the connection was refused by the other party on dial',\n [TCPErrorKind.DialUnknownError]: 'Dial unknown error',\n [TCPErrorKind.ResetByPeer]:\n 'Reset by peer - the connection was reset by the other party, most likely a server',\n [TLSErrorKind.GeneralTLSError]: 'General TLS error',\n [TLSErrorKind.UnknownAuthority]: 'Unknown authority - the certificate issuer is unknown',\n [TLSErrorKind.CertificateHostnameMismatch]: 'The certificate doesn’t match the hostname',\n [HTTP2ErrorKind.GenericHTTP2Error]:\n 'A generic HTTP/2 error that isn’t any of the ones listed below',\n [HTTP2ErrorKind.GeneralHTTP2GoAwayError]: 'A general HTTP/2 GoAway error',\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"k6/crypto\");","/**\n * Standard Amazon AWS query parameter names\n */\nexport const AMZ_ALGORITHM_QUERY_PARAM = 'X-Amz-Algorithm'\nexport const AMZ_CREDENTIAL_QUERY_PARAM = 'X-Amz-Credential'\nexport const AMZ_DATE_QUERY_PARAM = 'X-Amz-Date'\nexport const AMZ_EXPIRES_QUERY_PARAM = 'X-Amz-Expires'\nexport const AMZ_SIGNATURE_QUERY_PARAM = 'X-Amz-Signature'\nexport const AMZ_SIGNED_HEADERS_QUERY_PARAM = 'X-Amz-SignedHeaders'\nexport const AMZ_TARGET_QUERY_PARAM = 'X-Amz-Target'\nexport const AMZ_TOKEN_QUERY_PARAM = 'X-Amz-Security-Token'\n\n/**\n * Standard Amazon AWS header names\n */\nexport const AMZ_CONTENT_SHA256_HEADER = 'x-amz-content-sha256'\nexport const AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase()\nexport const AMZ_SIGNATURE_HEADER = AMZ_SIGNATURE_QUERY_PARAM.toLowerCase()\nexport const AMZ_TARGET_HEADER = AMZ_TARGET_QUERY_PARAM.toLowerCase()\nexport const AMZ_TOKEN_HEADER = AMZ_TOKEN_QUERY_PARAM.toLowerCase()\n\n/**\n * Common HTTP headers we rely on in the signing process\n */\nexport const AUTHORIZATION_HEADER = 'authorization'\nexport const DATE_HEADER = 'date'\n\n/**\n * Lists the headers that are generated as part of the signature process.\n */\nexport const GENERATED_HEADERS = [AUTHORIZATION_HEADER, AMZ_DATE_HEADER, DATE_HEADER]\nexport const HOST_HEADER = 'host'\n\n/**\n * Lists the headers that should never be included in the\n * request signature signature process.\n */\nexport const ALWAYS_UNSIGNABLE_HEADERS = {\n authorization: true,\n 'cache-control': true,\n connection: true,\n expect: true,\n from: true,\n 'keep-alive': true,\n 'max-forwards': true,\n pragma: true,\n referer: true,\n te: true,\n trailer: true,\n 'transfer-encoding': true,\n upgrade: true,\n 'user-agent': true,\n 'x-amzn-trace-id': true,\n}\n\n/**\n * Signature specific constants included in the signing process\n */\nexport const KEY_TYPE_IDENTIFIER = 'aws4_request'\nexport const SIGNING_ALGORITHM_IDENTIFIER = 'AWS4-HMAC-SHA256'\n\n/**\n * Maximum time to live of a signed request in seconds: 7 days.\n */\nexport const MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7\n\n/**\n * SHA256 hash of an empty string (so we don't waste cycles recomputing it)\n */\nexport const EMPTY_SHA256 = 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'\n\n/**\n * SHA256 hash of the unsigned payload constant (so we don't waste cycles recomputing it)\n */\nexport const UNSIGNED_PAYLOAD_SHA256 =\n '5a41b0751e4537c6ff868564ab44a4d4ecceec2ec5b1c5f74d97422968e04237'\n\nexport const UNSIGNED_PAYLOAD = 'UNSIGNED-PAYLOAD'\n","import crypto from 'k6/crypto'\n\nimport * as constants from './constants'\nimport { AWSError } from './error'\nimport { hasHeader, HTTPHeaderBag, HTTPRequest, QueryParameterBag, SignedHTTPRequest } from './http'\nimport { isArrayBuffer } from './utils'\n\n/**\n * SignatureV4 can be used to sign HTTP requests and presign URLs using the AWS Signature\n * Version 4 signing process.\n *\n * It offers two signing methods:\n * - sign: signs the request headers and payload\n * - presign: returns a presigned (authorization information contained in the query string) URL\n *\n * @see https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html\n */\nexport class SignatureV4 {\n /**\n * The name of the service to sign for.\n */\n private readonly service: string\n\n /**\n * The name of the region to sign for.\n */\n private readonly region: string\n\n /**\n * The credentials with which the request should be signed.\n */\n private readonly credentials: Credentials\n\n /**\n * Whether to uri-escape the request URI path as part of computing the\n * canonical request string. This is required for every AWS service, except\n * Amazon S3, as of late 2017.\n *\n * @default [true]\n */\n private readonly uriEscapePath: boolean\n\n /**\n * Whether to calculate a checksum of the request body and include it as\n * either a request header (when signing) or as a query string parameter\n * (when presigning). This is required for AWS Glacier and Amazon S3 and optional for\n * every other AWS service as of late 2017.\n *\n * @default [true]\n */\n private readonly applyChecksum: boolean\n\n // TODO: uriEscapePath and applyChecksum should not be present in the constructor\n constructor({\n service,\n region,\n credentials,\n uriEscapePath,\n applyChecksum,\n }: SignatureV4Options) {\n this.service = service\n this.region = region\n this.credentials = credentials\n this.uriEscapePath = typeof uriEscapePath === 'boolean' ? uriEscapePath : true\n this.applyChecksum = typeof applyChecksum === 'boolean' ? applyChecksum : true\n }\n\n /**\n * Includes AWS v4 signing information to the provided HTTP request.\n *\n * This method adds an Authorization header to the request, containing\n * the signature and other signing information. It also returns a preformatted\n * URL that can be used to make the k6 http request.\n *\n * This method mutates the request object.\n *\n * @param request {HTTPRequest} The request to sign.\n * @param options {Partial} Options for signing the request.\n * @returns {SignedHTTPRequest} The signed request.\n */\n sign(request: HTTPRequest, options: Partial = {}): SignedHTTPRequest {\n // Set default values for options which are not provided by the user.\n const defaultOptions = {\n signingDate: new Date(),\n unsignableHeaders: new Set(),\n signableHeaders: new Set(),\n }\n\n // Merge default options with the ones maybe provided by the user.\n const finalOptions = { ...defaultOptions, ...options }\n\n const { longDate, shortDate }: DateInfo = formatDate(finalOptions.signingDate)\n const service = finalOptions.signingService || this.service\n const region = finalOptions.signingRegion || this.region\n const scope = `${shortDate}/${region}/${service}/${constants.KEY_TYPE_IDENTIFIER}`\n\n // Required by the specification:\n // \"For HTTP/1.1 requests, you must include the host header at a minimum.\n // Standard headers like content-type are optional.\n // For HTTP/2 requests, you must include the :authority header instead of\n // the host header. Different services might require other headers.\"\n if (!request.headers[constants.HOST_HEADER]) {\n request.headers[constants.HOST_HEADER] = request.endpoint.hostname\n }\n\n // Filter out headers that will be generated and managed by the signing process.\n // If the user provide any of those as part of the HTTPRequest's headers, they\n // will be ignored.\n for (const headerName of Object.keys(request.headers)) {\n if (constants.GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) {\n delete request.headers[headerName]\n }\n }\n\n request.headers[constants.AMZ_DATE_HEADER] = longDate\n if (this.credentials.sessionToken) {\n request.headers[constants.AMZ_TOKEN_HEADER] = this.credentials.sessionToken\n }\n\n // If the request body is a typed array, we need to convert it to a buffer\n // so that we can calculate the checksum.\n if (ArrayBuffer.isView(request.body)) {\n request.body = request.body.buffer\n }\n\n // Ensure we avoid passing undefined to the crypto hash function.\n if (!request.body) {\n request.body = ''\n }\n\n const payloadHash = this.computePayloadHash(request)\n if (\n !hasHeader(constants.AMZ_CONTENT_SHA256_HEADER, request.headers) &&\n this.applyChecksum\n ) {\n request.headers[constants.AMZ_CONTENT_SHA256_HEADER] = payloadHash\n }\n\n const canonicalHeaders = this.computeCanonicalHeaders(\n request,\n finalOptions.unsignableHeaders,\n finalOptions.signableHeaders\n )\n const signature = this.calculateSignature(\n longDate,\n scope,\n this.deriveSigningKey(this.credentials, service, region, shortDate),\n this.createCanonicalRequest(request, canonicalHeaders, payloadHash)\n )\n\n /**\n * Step 4 of the signing process: add the signature to the HTTP request's headers.\n *\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html\n */\n request.headers[constants.AUTHORIZATION_HEADER] =\n `${constants.SIGNING_ALGORITHM_IDENTIFIER} ` +\n `Credential=${this.credentials.accessKeyId}/${scope}, ` +\n `SignedHeaders=${Object.keys(canonicalHeaders).sort().join(';')}, ` +\n `Signature=${signature}`\n\n // If a request path was provided, add it to the URL\n let url = request.endpoint.href\n if (request.path) {\n // Ensure the URI and the request path are properly concatenated\n // by adding a trailing slash to the URI if it's missing.\n if (!url.endsWith('/') && !request.path.startsWith('/')) {\n url += '/'\n }\n\n // Append the path to the URL\n url += request.path\n }\n\n // If a request query string was provided, add it to the URL\n if (request.query) {\n // We exclude the signature from the query string\n url += `?${this.serializeQueryParameters(request.query)}`\n }\n\n return {\n url: url,\n ...request,\n }\n }\n\n /**\n * Produces a presigned URL with AWS v4 signature information for the provided HTTP request.\n *\n * A presigned URL is a URL that contains the authorization information\n * (signature and other signing information) in the query string. This method\n * returns a preformatted URL that can be used to make the k6 http request.\n *\n * @param originalRequest - The original request to presign.\n * @param options - Options controlling the signing of the request.\n * @returns A signed request, including the presigned URL.\n */\n presign(originalRequest: HTTPRequest, options: PresignOptions = {}): SignedHTTPRequest {\n const {\n signingDate = new Date(),\n expiresIn = 3600,\n unsignableHeaders,\n unhoistableHeaders,\n signableHeaders,\n signingRegion,\n signingService,\n } = options\n const { longDate, shortDate }: DateInfo = formatDate(signingDate)\n const region = signingRegion || this.region\n const service = signingService || this.service\n\n if (expiresIn > constants.MAX_PRESIGNED_TTL) {\n throw new InvalidSignatureError(\n \"Signature version 4 presigned URLs can't be valid for more than 7 days\"\n )\n }\n\n const scope = `${shortDate}/${region}/${service}/${constants.KEY_TYPE_IDENTIFIER}`\n const request = this.moveHeadersToQuery(originalRequest, { unhoistableHeaders })\n\n // Required by the specification:\n // \"For HTTP/1.1 requests, you must include the host header at a minimum.\n // Standard headers like content-type are optional.\n // For HTTP/2 requests, you must include the :authority header instead of\n // the host header. Different services might require other headers.\"\n if (!request.headers[constants.HOST_HEADER]) {\n request.headers[constants.HOST_HEADER] = originalRequest.endpoint.hostname\n }\n\n // If the user provided a session token, include it in the signed url query string.\n if (this.credentials.sessionToken) {\n request.query[constants.AMZ_TOKEN_QUERY_PARAM] = this.credentials.sessionToken\n }\n // Add base signing query parameters to the request, as described in the documentation\n // @see https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html\n request.query[constants.AMZ_ALGORITHM_QUERY_PARAM] = constants.SIGNING_ALGORITHM_IDENTIFIER\n request.query[\n constants.AMZ_CREDENTIAL_QUERY_PARAM\n ] = `${this.credentials.accessKeyId}/${scope}`\n request.query[constants.AMZ_DATE_QUERY_PARAM] = longDate\n request.query[constants.AMZ_EXPIRES_QUERY_PARAM] = expiresIn.toString(10)\n\n const canonicalHeaders = this.computeCanonicalHeaders(\n request,\n unsignableHeaders,\n signableHeaders\n )\n request.query[constants.AMZ_SIGNED_HEADERS_QUERY_PARAM] = Object.keys(canonicalHeaders)\n .sort()\n .join(';')\n\n const signingKey = this.deriveSigningKey(this.credentials, service, region, shortDate)\n\n // Computing the payload from the original request. This is required\n // in the event the user attempts to produce a presigned URL for s3,\n // which requires the payload hash to be 'UNSIGNED-PAYLOAD'.\n //\n // To that effect, users need to set the 'x-amz-content-sha256' header,\n // and mark it as unhoistable and unsignable. When setup this way,\n // the computePayloadHash method will then return the string 'UNSIGNED-PAYLOAD'.\n const payloadHash = this.computePayloadHash(originalRequest)\n const canonicalRequest = this.createCanonicalRequest(request, canonicalHeaders, payloadHash)\n\n request.query[constants.AMZ_SIGNATURE_QUERY_PARAM] = this.calculateSignature(\n longDate,\n scope,\n signingKey,\n canonicalRequest\n )\n\n // If a request path was provided, add it to the URL\n let url = originalRequest.endpoint.href\n if (request.path) {\n // Ensure there is a trailing slash at the end of the URL\n // so that appending the path does not result in a malformed URL.\n url = url?.endsWith('/') ? url : url + '/'\n\n // Append the path to the URL\n url += request.path\n }\n\n // If a request query string was provided, add it to the URL\n if (request.query) {\n url += `?${this.serializeQueryParameters(request.query)}`\n }\n\n return { url: url, ...request }\n }\n\n /**\n * Create a string including information from your request\n * in a AWS signature v4 standardized (canonical) format.\n *\n * Step 1 of the signing process: create the canonical request string.\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html\n *\n * @param request {HTTPRequest} The request to sign.\n * @param canonicalHeaders {HTTPHeaderBag} The request's canonical headers.\n * @param payloadHash {string} The hexadecimally encoded request's payload hash .\n * @returns {string} The canonical request string.\n */\n private createCanonicalRequest(\n request: HTTPRequest,\n canonicalHeaders: HTTPHeaderBag,\n payloadHash: string\n ): string {\n const sortedHeaders = Object.keys(canonicalHeaders).sort()\n const sortedCanonicalHeaders = sortedHeaders\n .map((name) => `${name}:${canonicalHeaders[name]}`)\n .join('\\n')\n const signedHeaders = sortedHeaders.join(';')\n\n return (\n `${request.method}\\n` +\n `${this.computeCanonicalURI(request)}\\n` +\n `${this.computeCanonicalQuerystring(request)}\\n` +\n `${sortedCanonicalHeaders}\\n\\n` +\n `${signedHeaders}\\n` +\n `${payloadHash}`\n )\n }\n\n /**\n * Create the \"string to sign\" part of the signature Version 4 protocol.\n *\n * The \"string to sign\" includes meta information about your request and\n * about the canonical request that you created with `createCanonicalRequest`.\n * It is used hand in hand with the signing key to create the request signature.\n * Step 2 of the signing process: create the string to sign.\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-create-string-to-sign.html\n *\n * @param longDate {string} The request's date in iso 8601 format.\n * @param credentialScope {string} The request's credential scope.\n * @param canonicalRequest {string} The request's canonical request.\n * @returns {string} The \"string to sign\".\n */\n private createStringToSign(\n longDate: string,\n credentialScope: string,\n canonicalRequest: string\n ): string {\n const hashedCanonicalRequest = crypto.sha256(canonicalRequest, 'hex')\n\n return (\n `${constants.SIGNING_ALGORITHM_IDENTIFIER}\\n` +\n `${longDate}\\n` +\n `${credentialScope}\\n` +\n `${hashedCanonicalRequest}`\n )\n }\n\n /**\n * Calculte the signature for AWS signature version 4.\n *\n * Step 3 of the signing process: create the signature.\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-calculate-signature.html\n *\n * @param longDate {string} The request's date in iso 8601 format.\n * @param credentialScope {string} The request's credential scope.\n * @param signingKey {string} the signing key as computed by the deriveSigningKey method.\n * @param canonicalRequest {string} The request's canonical request.\n * @returns {string} The signature.\n */\n private calculateSignature(\n longDate: string,\n credentialScope: string,\n signingKey: Uint8Array,\n canonicalRequest: string\n ): string {\n const stringToSign = this.createStringToSign(longDate, credentialScope, canonicalRequest)\n return crypto.hmac('sha256', signingKey, stringToSign, 'hex')\n }\n\n /**\n * Derives the signing key for authenticating requests signed with\n * the Signature version 4 authentication protocol.\n *\n * deriveSigningKey produces a signing key by creating a series of\n * hash-based message authentication codes (HMACs) represented in\n * a binary format.\n *\n * The derived signing key is specific to the date it's made at, as well as\n * the service and region it targets.\n *\n * @param credentials {AWSCredentials} The credentials to use for signing.\n * @param service {string} The service the request is targeted at.\n * @param region {string} The region the request is targeted at.\n * @param shortDate {string} The request's date in YYYYMMDD format.\n * @returns {Uint8Array} The derived signing key.\n */\n private deriveSigningKey(\n credentials: Credentials,\n service: string,\n region: string,\n shortDate: string\n ): Uint8Array {\n const kSecret: string = credentials.secretAccessKey\n /**\n * crypto.hmac returns a value of type `bytes`, which is an alias for\n * number[]. However, the secret argument to hmac needs to either be\n * a `string` or ArrayBuffer. The only way to get around this is to\n * cast the return value of hmac to any, thus, we disable the no-explicit-any\n * ESLint rule for this function.\n */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const kDate: any = crypto.hmac('sha256', 'AWS4' + kSecret, shortDate, 'binary')\n const kRegion: any = crypto.hmac('sha256', kDate, region, 'binary')\n const kService: any = crypto.hmac('sha256', kRegion, service, 'binary')\n const kSigning: any = crypto.hmac('sha256', kService, 'aws4_request', 'binary')\n /* eslint-enable @typescript-eslint/no-explicit-any */\n\n return kSigning\n }\n\n /**\n * Create a string that includes information from your request\n * in a AWS signature v4 standardized (canonical) format.\n *\n * @param param0 {HTTPRequest} The request to sign.\n * @returns {string} The canonical URI.\n */\n private computeCanonicalURI({ path }: HTTPRequest): string {\n if (this.uriEscapePath) {\n // Non-S3 services, we normalize the path and then double URI encode it.\n // Ref: \"Remove Dot Segments\" https://datatracker.ietf.org/doc/html/rfc3986#section-5.2.4\n const normalizedURISegments = []\n\n for (const URISegment of path.split('/')) {\n if (URISegment?.length === 0) {\n continue\n }\n\n if (URISegment === '.') {\n continue\n }\n\n if (URISegment === '..') {\n normalizedURISegments.pop()\n } else {\n normalizedURISegments.push(URISegment)\n }\n }\n\n // Normalize the URI\n const leading = path?.startsWith('/') ? '/' : ''\n const URI = normalizedURISegments.join('/')\n const trailing = normalizedURISegments.length > 0 && path?.endsWith('/') ? '/' : ''\n const normalizedURI = `${leading}${URI}${trailing}`\n\n const doubleEncoded = encodeURIComponent(normalizedURI)\n\n return doubleEncoded.replace(/%2F/g, '/')\n }\n\n // For S3, we shouldn't normalize the path. For example, object name\n // my-object//example//photo.user should not be normalized to\n // my-object/example/photo.user\n return path\n }\n\n /**\n * Serializes the request's query parameters into their canonical\n * string version. If the request does not include a query parameters,\n * returns an empty string.\n *\n * @param param0 {HTTPRequest} The request containing the query parameters.\n * @returns {string} The canonical query string.\n */\n private computeCanonicalQuerystring({ query = {} }: HTTPRequest): string {\n const keys: Array = []\n const serialized: Record = {}\n\n for (const key of Object.keys(query).sort()) {\n if (key.toLowerCase() === constants.AMZ_SIGNATURE_HEADER) {\n continue\n }\n\n keys.push(key)\n const value = query[key]\n\n if (typeof value === 'string') {\n serialized[key] = `${escapeURI(key)}=${escapeURI(value)}`\n } else if (Array.isArray(value)) {\n serialized[key] = value\n .slice(0)\n .sort()\n .reduce(\n (encoded: Array, value: string) =>\n encoded.concat([`${escapeURI(key)}=${escapeURI(value)}`]),\n []\n )\n .join('&')\n }\n }\n\n return keys\n .map((key) => serialized[key])\n .filter((serialized) => serialized)\n .join('&')\n }\n\n /**\n * Create the canonical form of the request's headers.\n * Canonical headers consist of all the HTTP headers you\n * are including with the signed request.\n *\n * @param param0 {HTTPRequest} The request to compute the canonical headers of.\n * @param unsignableHeaders {Set} The headers that should not be signed.\n * @param signableHeaders {Set} The headers that should be signed.\n * @returns {string} The canonical headers.\n */\n private computeCanonicalHeaders(\n { headers }: HTTPRequest,\n unsignableHeaders?: Set,\n signableHeaders?: Set\n ): HTTPHeaderBag {\n const canonicalHeaders: HTTPHeaderBag = {}\n\n for (const headerName of Object.keys(headers).sort()) {\n if (headers[headerName] == undefined) {\n continue\n }\n\n const canonicalHeaderName = headerName.toLowerCase()\n if (\n canonicalHeaderName in constants.ALWAYS_UNSIGNABLE_HEADERS ||\n unsignableHeaders?.has(canonicalHeaderName)\n ) {\n if (\n !signableHeaders ||\n (signableHeaders && !signableHeaders.has(canonicalHeaderName))\n ) {\n continue\n }\n }\n\n if (typeof headers[headerName] === 'string') {\n canonicalHeaders[canonicalHeaderName] = headers[headerName] = headers[headerName]\n .trim()\n .replace(/\\s+/g, ' ')\n }\n }\n\n return canonicalHeaders\n }\n\n /**\n * Computes the SHA256 cryptographic hash of the request's body.\n *\n * If the headers contain the 'X-Amz-Content-Sha256' header, then\n * the value of that header is returned instead. This proves useful\n * when, for example, presiging a URL for S3, as the payload hash\n * must always be equal to 'UNSIGNED-PAYLOAD'.\n *\n * @param param0 {HTTPRequest} The request to compute the payload hash of.\n * @returns {string} The hex encoded SHA256 payload hash, or the value of the 'X-Amz-Content-Sha256' header.\n */\n private computePayloadHash({ headers, body }: HTTPRequest): string {\n // for (const headerName of Object.keys(headers)) {\n // // If the header is present, return its value.\n // // So that we let the 'UNSIGNED-PAYLOAD' value pass through.\n // if (headerName.toLowerCase() === constants.AMZ_CONTENT_SHA256_HEADER) {\n // return headers[headerName]\n // }\n // }\n\n if (headers[constants.AMZ_CONTENT_SHA256_HEADER]) {\n return headers[constants.AMZ_CONTENT_SHA256_HEADER]\n }\n\n if (body == undefined) {\n return constants.EMPTY_SHA256\n }\n\n if (typeof body === 'string' || isArrayBuffer(body)) {\n return crypto.sha256(body, 'hex').toLowerCase()\n }\n\n if (ArrayBuffer.isView(body)) {\n // If the request body is a typed array, we need to convert it to a buffer\n // so that we can calculate the checksum.\n return crypto.sha256((body as DataView).buffer, 'hex').toLowerCase()\n }\n\n return constants.UNSIGNED_PAYLOAD\n }\n\n /**\n * Moves a request's headers to its query parameters.\n *\n * The operation will ignore any amazon standard headers, prefixed\n * with 'X-Amz-'. It will also ignore any headers specified as unhoistable\n * by the options.\n *\n * The operation will delete the headers from the request.\n *\n * @param request {HTTPRequest} The request to move the headers from.\n * @param options\n * @returns {HTTPRequest} The request with the headers moved to the query parameters.\n */\n private moveHeadersToQuery(\n request: HTTPRequest,\n options: { unhoistableHeaders?: Set } = {}\n ): HTTPRequest & { query: QueryParameterBag } {\n const requestCopy = JSON.parse(JSON.stringify(request))\n const { headers, query = {} as QueryParameterBag } = requestCopy\n\n for (const name of Object.keys(headers)) {\n const lowerCaseName = name.toLowerCase()\n if (\n lowerCaseName.slice(0, 6) === 'x-amz-' &&\n !options.unhoistableHeaders?.has(lowerCaseName)\n ) {\n query[name] = headers[name]\n delete headers[name]\n }\n }\n\n return {\n ...requestCopy,\n headers,\n query,\n }\n }\n\n /**\n * Serializes a HTTPRequest's query parameter bag into a string.\n *\n * @param query {QueryParameterBag} The query parameters to serialize.\n * @param ignoreKeys {Set} The keys to ignore.\n * @returns {string} The serialized, and ready to use in a URL, query parameters.\n */\n private serializeQueryParameters(query: QueryParameterBag, ignoreKeys?: string[]): string {\n const keys: Array = []\n const serialized: Record = {}\n\n for (const key of Object.keys(query).sort()) {\n if (ignoreKeys?.includes(key.toLowerCase())) {\n continue\n }\n\n keys.push(key)\n const value = query[key]\n\n if (typeof value === 'string') {\n serialized[key] = `${escapeURI(key)}=${escapeURI(value)}`\n } else if (Array.isArray(value)) {\n serialized[key] = value\n .slice(0)\n .sort()\n .reduce(\n (encoded: Array, value: string) =>\n encoded.concat([`${escapeURI(key)}=${escapeURI(value)}`]),\n []\n )\n .join('&')\n }\n }\n\n return keys\n .map((key) => serialized[key])\n .filter((serialized) => serialized)\n .join('&')\n }\n}\n\n/**\n * Error indicating an Invalid signature has been sent to AWS services\n *\n * Inspired from AWS official error types, as\n * described in:\n * * https://aws.amazon.com/blogs/developer/service-error-handling-modular-aws-sdk-js/\n * * https://github.com/aws/aws-sdk-js/blob/master/lib/error.d.ts\n */\nexport class InvalidSignatureError extends AWSError {\n /**\n * Constructs an InvalidSignatureError\n *\n * @param {string} message - human readable error message\n */\n constructor(message: string, code?: string) {\n super(message, code)\n this.name = 'InvalidSignatureError'\n }\n}\n\nexport interface SignatureV4Options {\n /**\n * The name of the service to sign for.\n */\n service: string\n\n /**\n * The name of the region to sign for.\n */\n region: string\n\n /**\n * The credentials with which the request should be signed.\n */\n credentials: Credentials\n\n /**\n * Whether to uri-escape the request URI path as part of computing the\n * canonical request string. This is required for every AWS service, except\n * Amazon S3, as of late 2017.\n *\n * @default [true]\n */\n uriEscapePath?: boolean\n\n /**\n * Whether to calculate a checksum of the request body and include it as\n * either a request header (when signing) or as a query string parameter\n * (when presigning). This is required for AWS Glacier and Amazon S3 and optional for\n * every other AWS service as of late 2017.\n *\n * @default [true]\n */\n applyChecksum?: boolean\n}\n\nexport interface SignOptions {\n /**\n * The date and time to be used as signature metadata. This value should be\n * a Date object, a unix (epoch) timestamp, or a string that can be\n * understood by the JavaScript `Date` constructor.If not supplied, the\n * value returned by `new Date()` will be used.\n */\n signingDate?: Date\n\n /**\n * The service signing name. It will override the service name of the signer\n * in current invocation\n */\n signingService?: string\n\n /**\n * The region name to sign the request. It will override the signing region of the\n * signer in current invocation\n */\n signingRegion?: string\n}\n\nexport interface RequestSigningOptions extends SignOptions {\n /**\n * A set of strings whose members represents headers that cannot be signed.\n * All headers in the provided request will have their names converted to\n * lower case and then checked for existence in the unsignableHeaders set.\n */\n unsignableHeaders?: Set\n\n /**\n * A set of strings whose members represents headers that should be signed.\n * Any values passed here will override those provided via unsignableHeaders,\n * allowing them to be signed.\n *\n * All headers in the provided request will have their names converted to\n * lower case before signing.\n */\n signableHeaders?: Set\n}\n\nexport interface PresignOptions extends RequestSigningOptions {\n /**\n * The number of seconds before the presigned URL expires\n */\n expiresIn?: number\n\n /**\n * A set of strings whose representing headers that should not be hoisted\n * to presigned request's query string. If not supplied, the presigner\n * moves all the AWS-specific headers (starting with `x-amz-`) to the request\n * query string. If supplied, these headers remain in the presigned request's\n * header.\n * All headers in the provided request will have their names converted to\n * lower case and then checked for existence in the unhoistableHeaders set.\n */\n unhoistableHeaders?: Set\n}\n\nexport interface Credentials {\n /**\n * AWS access key ID\n */\n readonly accessKeyId: string\n\n /**\n * AWS secret access key\n */\n readonly secretAccessKey: string\n\n /**\n * A security or session token to use with these credentials. Usually\n * present for temporary credentials.\n */\n readonly sessionToken?: string\n}\n\nexport interface DateInfo {\n /**\n * ISO8601 formatted date string\n */\n longDate: string\n\n /**\n * String in the format YYYYMMDD\n */\n shortDate: string\n}\n\n/**\n * Escapes a URI following the AWS signature v4 escaping rules.\n *\n * @param URI {string} The URI to escape.\n * @returns {string} The escaped URI.\n */\nfunction escapeURI(URI: string): string {\n const hexEncode = (c: string): string => {\n return `%${c.charCodeAt(0).toString(16).toUpperCase()}`\n }\n\n return encodeURIComponent(URI).replace(/[!'()*]/g, hexEncode)\n}\n\n/**\n * formatDate formats a Date object into a ISO8601 formatted date string\n * and a string in the format YYYYMMDD.\n *\n * @param date {Date} The date to format.\n * @returns {DateInfo} The formatted date.\n */\nfunction formatDate(date: Date): DateInfo {\n const longDate = iso8601(date).replace(/[-:]/g, '')\n return {\n longDate,\n shortDate: longDate.slice(0, 8),\n }\n}\n\n/**\n * Formats a time into an ISO 8601 string.\n *\n * @see https://en.wikipedia.org/wiki/ISO_8601\n *\n * @param time {number | string | Date} The time to format.\n * @returns {string} The ISO 8601 formatted time.\n */\nfunction iso8601(time: number | string | Date): string {\n return toDate(time)\n .toISOString()\n .replace(/\\.\\d{3}Z$/, 'Z')\n}\n\n/**\n * Converts a time value into a Date object.\n *\n * @param time {number | string | Date} The time to convert.\n * @returns {Date} The resulting Date object.\n */\nfunction toDate(time: number | string | Date): Date {\n if (typeof time === 'number') {\n return new Date(time * 1000)\n }\n\n if (typeof time === 'string') {\n if (Number(time)) {\n return new Date(Number(time) * 1000)\n }\n\n return new Date(time)\n }\n\n return time\n}\n","import { Endpoint } from './endpoint'\n\n/**\n * Type representing HTTP schemes\n */\nexport type HTTPScheme = 'http' | 'https'\n\n/**\n * Type representing HTTP Methods\n *\n */\nexport type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'DELETE'\n\n/**\n * Type alias representing HTTP Headers\n */\nexport type HTTPHeaders = { [key: string]: string }\n\n/**\n * HTTPHeaderBag is a type alias representing HTTP Headers\n */\nexport type HTTPHeaderBag = Record\n\nexport function hasHeader(soughtHeader: string, headers: HTTPHeaderBag): boolean {\n soughtHeader = soughtHeader.toLowerCase()\n\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * QueryParameterBag is a type alias representing HTTP Query Parameters\n */\nexport type QueryParameterBag = Record>\n\n/**\n * HTTPRequest represents an HTTP request\n */\nexport interface HTTPRequest {\n /**\n * The HTTP method to use\n */\n method: HTTPMethod\n\n /**\n * Represents an AWS service endpoint, providing utilities for parsing and handling URL details.\n */\n endpoint: Endpoint\n\n /**\n * The path to the resource\n */\n path: string\n\n /**\n * The query parameters to include in the request\n */\n query?: QueryParameterBag\n\n /**\n * The headers to include in the request\n */\n headers: HTTPHeaderBag\n\n /**\n * The body of the request\n */\n body?: string | ArrayBuffer | null\n}\n\n/**\n * SignedHTTPRequest represents an HTTP request that has been signed\n * with an AWS signature. It is a superset of HTTPRequest adding\n * the following fields:\n * - url: the fully qualified URL of the request that can be used in a k6 http.request.\n */\nexport interface SignedHTTPRequest extends HTTPRequest {\n url: string\n}\n","/**\n *\n * @param value\n * @returns\n */\nexport function isArrayBuffer(value: unknown): value is ArrayBuffer {\n return (\n typeof ArrayBuffer === 'function' &&\n (value instanceof ArrayBuffer ||\n Object.prototype.toString.call(value) === '[object ArrayBuffer]')\n )\n}\n\nexport function toFormUrlEncoded(form: Record): string {\n return Object.keys(form)\n .reduce((params, key) => {\n const value = form[key]\n if (value !== undefined && value !== null) {\n params.push(`${encodeURIComponent(key)}=${encodeURIComponent(value)}`)\n }\n return params\n }, [] as string[])\n .join('&')\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"k6/http\");","import http, { RefinedResponse, ResponseType } from 'k6/http'\n\nimport { AWSClient } from './client'\n\nimport { AWSConfig } from './config'\nimport { AMZ_TARGET_HEADER } from './constants'\nimport { AWSError } from './error'\nimport { JSONObject } from './json'\nimport { HTTPHeaders } from './http'\nimport { InvalidSignatureError, SignatureV4 } from './signature'\n\n/**\nThis API is based on\nhttps://docs.aws.amazon.com/kinesis/latest/APIReference/API_Operations.html\n*/\n\n/**\n * Allows interacting with the Kinesis API.\n */\nexport class KinesisClient extends AWSClient {\n private readonly signature: SignatureV4\n private readonly commonHeaders: HTTPHeaders\n private readonly serviceVersion: string\n\n /**\n * A constructor function that creates a new instance of the Kinesis class.\n * @param {AWSConfig} awsConfig - AWSConfig - This is the configuration object that is passed to\n * the constructor.\n * @returns A Proxy object.\n */\n constructor(awsConfig: AWSConfig) {\n super(awsConfig, 'kinesis')\n\n this.serviceVersion = 'Kinesis_20131202'\n\n this.signature = new SignatureV4({\n service: this.serviceName,\n region: this.awsConfig.region,\n credentials: {\n accessKeyId: this.awsConfig.accessKeyId,\n secretAccessKey: this.awsConfig.secretAccessKey,\n sessionToken: this.awsConfig.sessionToken,\n },\n uriEscapePath: false,\n applyChecksum: true,\n })\n\n this.commonHeaders = {\n 'Content-Type': 'application/x-amz-json-1.1',\n }\n }\n\n /**\n * Creates a new Kinesis stream with the specified name and options.\n *\n * @param {string} streamName - The name of the stream to create.\n * @param {{\n * shardCount?: number;\n * streamModeDetails?: {\n * streamMode: StreamMode;\n * };\n * }} [options={}] - An optional object containing configuration options for the stream.\n * @param {number} [options.shardCount] - The number of shards for the stream. If not provided, the default value will be used.\n * @param {{streamMode: StreamMode}} [options.streamModeDetails] - An optional object containing the stream mode details.\n * @param {StreamMode} [options.streamModeDetails.streamMode] - The mode of the stream. If not provided, the default mode will be used.\n *\n * @throws {Error} Throws an error if the stream creation request fails.\n * @returns {void}\n */\n async createStream(\n streamName: string,\n options: { shardCount?: number; streamModeDetails?: { streamMode: StreamMode } } = {}\n ): Promise {\n const body = {\n StreamName: streamName,\n ...(options.shardCount && { ShardCount: options.shardCount }),\n ...(options.streamModeDetails && { StreamMode: options.streamModeDetails.streamMode }),\n }\n\n await this._send_request('CreateStream', body)\n }\n\n /**\n * Deletes a Kinesis stream with the specified parameters.\n *\n * @param {string} streamName - The name of the stream to delete.\n * @param {{\n * streamARN?: string;\n * enforceConsumerDeletion?: boolean;\n * }} [parameters={}] - An optional object containing configuration options for the stream deletion.\n * @param {string} [parameters.streamARN] - The Amazon Resource Name (ARN) of the stream. If not provided, the ARN will be derived from the stream name.\n * @param {boolean} [parameters.enforceConsumerDeletion] - Whether to enforce the deletion of all registered consumers before deleting the stream. Defaults to false.\n *\n * @throws {Error} Throws an error if the stream deletion request fails.\n * @returns {void}\n */\n async deleteStream(\n streamName: string,\n parameters: { streamARN?: string; enforceConsumerDeletion?: boolean } = {}\n ): Promise {\n const body = {\n StreamName: streamName,\n ...(parameters.streamARN && { StreamARN: parameters.streamARN }),\n ...(parameters.enforceConsumerDeletion && {\n EnforceConsumerDeletion: parameters.enforceConsumerDeletion,\n }),\n }\n\n await this._send_request('DeleteStream', body)\n }\n\n /**\n * Returns a list of Kinesis streams with the specified parameters.\n *\n * @param {{\n * exclusiveStartStreamName?: string;\n * limit?: number;\n * nextToken?: string;\n * }} [parameters={}] - An optional object containing configuration options for listing the streams.\n * @param {string} [parameters.exclusiveStartStreamName] - The name of the stream to start listing from. If not provided, the listing starts from the beginning.\n * @param {number} [parameters.limit] - The maximum number of streams to list. If not provided, the default value will be used.\n * @param {string} [parameters.nextToken] - A token to paginate the list of streams. If not provided, the first page will be returned.\n *\n * @throws {Error} Throws an error if the list streams request fails.\n * @returns {Partial} A partial of the ListStreamsResponse class.\n */\n async listStreams(\n parameters: {\n exclusiveStartStreamName?: string\n limit?: number\n nextToken?: string\n } = {}\n ): Promise {\n const body = {\n ...(parameters.exclusiveStartStreamName && {\n ExclusiveStartStreamName: parameters.exclusiveStartStreamName,\n }),\n ...(parameters.limit && { Limit: parameters.limit }),\n ...(parameters.nextToken && { NextToken: parameters.nextToken }),\n }\n\n const res = await this._send_request('ListStreams', body)\n return ListStreamsResponse.fromJson(res?.json() as JSONObject)\n }\n\n /**\n * Sends multiple records to a Kinesis stream in a single request.\n *\n * @param {string} streamName - The name of the stream to put records into.\n * @param {PutRecordsRequestEntry[]} records - An array of records to put into the stream.\n *\n * @throws {Error} Throws an error if the put records request fails.\n * @returns {Partial} A partial of the PutRecordsResponse class.\n */\n async putRecords(\n records: PutRecordsRequestEntry[],\n parameters: { streamName?: string; streamARN?: string } = {}\n ): Promise {\n if (!parameters.streamName && !parameters.streamARN) {\n throw new Error('Either streamName or streamARN must be provided')\n }\n\n const body = {\n Records: records,\n ...(parameters.streamName && { StreamName: parameters.streamName }),\n ...(parameters.streamARN && { StreamARN: parameters.streamARN }),\n }\n\n const res = await this._send_request('PutRecords', body)\n return PutRecordsResponse.fromJson(res?.json() as JSONObject)\n }\n\n /**\n * Retrieves records from a Kinesis stream.\n *\n * @param {string} shardIterator - The shard iterator to start retrieving records from.\n * @param {number} [limit] - The maximum number of records to return. If not provided, the default value will be used.\n *\n * @throws {Error} Throws an error if the get records request fails.\n * @returns {Partial} A partial of the GetRecordsResponse class.\n */\n async getRecords(\n shardIterator: string,\n parameters: { limit?: number; streamARN?: string } = {}\n ): Promise {\n const body = {\n ShardIterator: shardIterator,\n ...(parameters.limit && { Limit: parameters.limit }),\n ...(parameters.streamARN && { StreamARN: parameters.streamARN }),\n }\n\n const res = await this._send_request('GetRecords', body)\n return GetRecordsResponse.fromJson(res?.json() as JSONObject)\n }\n\n /**\n * Lists the shards in a Kinesis stream.\n *\n * @param {string} streamName - The name of the stream to list shards from.\n * @param {{\n * nextToken?: string;\n * maxResults?: number;\n * }} [parameters={}] - An optional object containing configuration options for listing shards.\n * @param {string} [parameters.nextToken] - A token to specify where to start paginating the shard list. If not provided, the first page will be returned.\n * @param {number} [parameters.maxResults] - The maximum number of shards to return. If not provided, the default value will be used.\n *\n * @throws {Error} Throws an error if the list shards request fails.\n * @returns {ListShardsResponse} A ListShardsResponse class instance.\n */\n async listShards(\n streamName: string,\n parameters: { nextToken?: string; maxResults?: number } = {}\n ): Promise {\n const body = {\n StreamName: streamName,\n ...(parameters.nextToken && { NextToken: parameters.nextToken }),\n ...(parameters.maxResults && {\n MaxResults: parameters.maxResults,\n }),\n }\n\n const res = await this._send_request('ListShards', body)\n return ListShardsResponse.fromJson(res?.json() as JSONObject)\n }\n\n /**\n * Retrieves a shard iterator for the specified shard in a Kinesis stream.\n *\n * @param {string} streamName - The name of the stream.\n * @param {string} shardId - The shard ID for which to get the iterator.\n * @param {string} shardIteratorType - The shard iterator type. One of 'AT_SEQUENCE_NUMBER', 'AFTER_SEQUENCE_NUMBER', 'TRIM_HORIZON', 'LATEST', or 'AT_TIMESTAMP'.\n * @param {{\n * startingSequenceNumber?: string;\n * timestamp?: number;\n * }} [parameters={}] - An optional object containing configuration options for the shard iterator.\n * @param {string} [parameters.startingSequenceNumber] - The sequence number to start with when using 'AT_SEQUENCE_NUMBER' or 'AFTER_SEQUENCE_NUMBER' iterator types.\n * @param {number} [parameters.timestamp] - The timestamp to start with when using the 'AT_TIMESTAMP' iterator type.\n *\n * @throws {Error} Throws an error if the get shard iterator request fails.\n * @returns {string} The next position in the shard from which to start sequentially reading data records. If set to null, the shard has been closed and the requested iterator does not return any more data.\n */\n async getShardIterator(\n streamName: string,\n shardId: string,\n shardIteratorType: ShardIteratorKind,\n parameters: { startingSequenceNumber?: string; timestamp?: number } = {}\n ): Promise {\n const body = {\n StreamName: streamName,\n ShardId: shardId,\n ShardIteratorType: shardIteratorType,\n ...(parameters.startingSequenceNumber && {\n StartingSequenceNumber: parameters.startingSequenceNumber,\n }),\n ...(parameters.timestamp && { Timestamp: parameters.timestamp }),\n }\n\n const res = await this._send_request('GetShardIterator', body)\n return GetShardIteratorResponse.fromJson(res?.json() as JSONObject)\n }\n\n private async _send_request(\n action: string,\n body: unknown\n ): Promise> {\n const signedRequest = this.signature.sign(\n {\n method: 'POST',\n endpoint: this.endpoint,\n path: '/',\n headers: {\n ...this.commonHeaders,\n [AMZ_TARGET_HEADER]: `${this.serviceVersion}.${action}`,\n },\n body: JSON.stringify(body),\n },\n {}\n )\n\n const res = await http.asyncRequest('POST', signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n\n this.handleError(res, action)\n return res\n }\n\n\n protected handleError(response: RefinedResponse, operation?: string): boolean {\n const errored = super.handleError(response, operation);\n if (!errored) {\n return false\n }\n\n const errorCode = response.error_code\n const error = response.json() as JSONObject\n if (errorCode >= 1400 && errorCode <= 1499) {\n // In the event of certain errors, the message is not set.\n // Also, note the inconsistency in casing...\n const errorMessage: string =\n (error.Message as string) || (error.message as string) || (error.__type as string)\n\n // Handle specifically the case of an invalid signature\n if (error.__type === 'InvalidSignatureException') {\n throw new InvalidSignatureError(errorMessage, error.__type)\n }\n\n // Otherwise throw a standard service error\n throw new KinesisServiceError(errorMessage, error.__type as string, operation || 'Unknown')\n }\n\n if (errorCode === 1500) {\n throw new KinesisServiceError(\n 'An error occured on the server side',\n 'InternalServiceError',\n operation || 'Unknown'\n )\n }\n\n return true\n }\n}\n\n/* `KinesisServiceError` is a subclass of `AWSError` that adds an `operation` property */\nexport class KinesisServiceError extends AWSError {\n operation: string\n\n /**\n * Constructs a KinesisServiceError\n *\n * @param {string} message - human readable error message\n * @param {string} code - A unique short code representing the error that was emitted\n * @param {string} operation - Name of the failed Operation\n */\n constructor(message: string, code: string, operation: string) {\n super(message, code)\n this.name = 'KinesisServiceError'\n this.operation = operation\n }\n}\n\n/**\n * Describes the options for a Kinesis stream.\n */\ntype StreamMode = 'PROVISIONED' | 'ON_DEMAND'\n\n/**\n * Determines how the shard iterator is used to start reading data records from the shard.\n */\nexport type ShardIteratorKind =\n | 'AT_SEQUENCE_NUMBER'\n | 'AFTER_SEQUENCE_NUMBER'\n | 'TRIM_HORIZON'\n | 'LATEST'\n | 'AT_TIMESTAMP'\n\n/**\n * Describes the status of a Kinesis data stream.\n */\nexport type StreamStatus = 'CREATING' | 'DELETING' | 'ACTIVE' | 'UPDATING'\n\nexport type StreamModeDetails = {\n /**\n * Specifies the capacity mode to which you want to set your data stream.\n */\n SteamMode: 'PROVISIONED' | 'ON_DEMAND'\n}\n\nexport class ListStreamsResponse {\n /**\n * Indicates whether there are more streams available to list.\n */\n hasMoreStreams: boolean\n\n /**\n * The token that identifies which batch of results you can retrieve.\n */\n nextToken?: string\n\n /**\n * The names of the streams that are associated with the AWS account making the ListStreams request.\n */\n streamNames: string[]\n\n /**\n * A list of StreamSummary objects.\n */\n streamSummaries: StreamSummary[]\n\n constructor(\n HasMoreStreams: boolean,\n NextToken: string,\n StreamNames: string[],\n StreamSummaries: StreamSummary[]\n ) {\n this.hasMoreStreams = HasMoreStreams\n this.nextToken = NextToken\n this.streamNames = StreamNames\n this.streamSummaries = StreamSummaries\n }\n\n static fromJson(result: JSONObject): ListStreamsResponse {\n const {\n HasMoreStreams = false,\n NextToken = '',\n StreamNames = [],\n StreamSummaries = [],\n } = result\n\n return new ListStreamsResponse(\n HasMoreStreams as boolean,\n NextToken as string,\n StreamNames as string[],\n (StreamSummaries as JSONObject[])?.map(StreamSummary.fromJson) as StreamSummary[]\n )\n }\n}\n\n/**\n * Summarizes a Stream\n */\nexport class StreamSummary {\n /**\n * The Amazon Resource Name (ARN) for the stream.\n */\n streamARN: string\n\n /**\n * The time at which the stream was created.\n */\n streamCreationTimestamp: number\n\n /**\n * Specify the capacity mode to which you want to set your data stream.\n */\n streamModeDetails: StreamModeDetails\n\n /**\n * The name of the stream.\n */\n streamName: string\n\n /**\n * The current status of the stream being described.\n */\n streamStatus: StreamStatus\n\n constructor(\n StreamARN: string,\n StreamCreationTimestamp: number,\n StreamMode: StreamModeDetails,\n StreamName: string,\n StreamStatus: StreamStatus\n ) {\n this.streamARN = StreamARN\n this.streamCreationTimestamp = StreamCreationTimestamp\n this.streamModeDetails = StreamMode\n this.streamName = StreamName\n this.streamStatus = StreamStatus\n }\n\n static fromJson(summary: JSONObject): StreamSummary {\n const {\n StreamARN = '',\n StreamCreationTimestamp = 0,\n StreamModeDetails = {},\n StreamName = '',\n StreamStatus = '',\n } = summary\n\n return new StreamSummary(\n StreamARN as string,\n StreamCreationTimestamp as number,\n StreamModeDetails as StreamModeDetails,\n StreamName as string,\n StreamStatus as StreamStatus\n )\n }\n}\n\n/**\n * Represents the output for PutRecords.\n */\nexport interface PutRecordsRequestEntry {\n /**\n * The data blob to put into the record, which is base64-encoded when the blob is serialized.\n */\n Data: string | ArrayBuffer\n\n /**\n * Determines which share in the stream the data record is assigned to.\n */\n PartitionKey: string\n}\n\n// Response class for PutRecords API\nexport class PutRecordsResponse {\n /**\n * The encryption type used on the records. This parameter can be one of the following values:\n * - NONE: Do not encrypt the records.\n * - KMS: Use server-side encryption on the records using a customer-managed AWS KMS key.\n */\n encryptionType: EncryptionType\n\n /**\n * The number of unsuccessfully processed records in a PutRecords request.\n */\n failedRecordCount: number\n\n /**\n * An array of successfully and unsuccessfully processed record results.\n */\n records: PutRecordsResultEntry[]\n\n constructor(\n encryptionType: 'NONE' | 'KMS',\n failedRecordCount: number,\n records: PutRecordsResultEntry[]\n ) {\n this.encryptionType = encryptionType\n this.failedRecordCount = failedRecordCount\n this.records = records\n }\n\n static fromJson(json: JSONObject): PutRecordsResponse {\n const { EncryptionType = 'NONE', FailedRecordCount = 0, Records = [] } = json\n const records = (Records as JSONObject[]).map(PutRecordsResultEntry.fromJson)\n\n return new PutRecordsResponse(\n EncryptionType as EncryptionType,\n FailedRecordCount as number,\n records\n )\n }\n}\n\ntype EncryptionType = 'NONE' | 'KMS'\n\n/**\n * Represents the result of an individual record from a PutRecords request.\n */\nexport class PutRecordsResultEntry {\n /**\n * The sequence number for an individual record result.\n */\n sequenceNumber: string\n\n /**\n * The shard ID for an individual record result.\n */\n shardId: string\n\n constructor(sequenceNumber: string, shardId: string) {\n this.sequenceNumber = sequenceNumber\n this.shardId = shardId\n }\n\n static fromJson(json: JSONObject): PutRecordsResultEntry {\n return new PutRecordsResultEntry(json.SequenceNumber as string, json.ShardId as string)\n }\n}\n\n/**\n * Represents the response format of the GetRecords operation.\n */\nexport class GetRecordsResponse {\n /**\n * The next position in the shard from which to start sequentially reading data records.\n */\n nextShardIterator: string\n\n /**\n * The data records retrieved from the shard.\n */\n records: Record[]\n\n /**\n * The number of milliseconds the GetRecords response is from the\n * tip of the stream, indicating how far behind current time the\n * consumer is.\n *\n * A value of zero indicates that record processing is caught\n * up, and there are no new records to process at this moment.\n */\n millisBehindLatest: number\n\n constructor(nextShardIterator: string, records: Record[], millisBehindLatest: number) {\n this.nextShardIterator = nextShardIterator\n this.records = records\n this.millisBehindLatest = millisBehindLatest\n }\n\n static fromJson(json: JSONObject): GetRecordsResponse {\n const { NextShardIterator = '', Records = [], MillisBehindLatest = 0 } = json\n const records = (Records as JSONObject[]).map(Record.fromJson)\n\n return new GetRecordsResponse(\n NextShardIterator as string,\n records as Record[],\n MillisBehindLatest as number\n )\n }\n}\n\n/**\n * The unit of data of the Kinesis data stream, which is composed of a sequence\n * number, a partition key, and a data blob.\n */\nclass Record {\n /**\n * The data blob.\n */\n data: string | ArrayBuffer\n\n /**\n * Identifies which shard in the stream the data record is assigned to.\n */\n partitionKey: string\n\n /**\n * The unique identifier of the record in the stream.\n */\n sequenceNumber: string\n\n constructor(data: string | ArrayBuffer, partitionKey: string, sequenceNumber: string) {\n this.data = data\n this.partitionKey = partitionKey\n this.sequenceNumber = sequenceNumber\n }\n\n static fromJson(json: JSONObject): Record {\n return new Record(\n json.Data as string | ArrayBuffer,\n json.PartitionKey as string,\n json.SequenceNumber as string\n )\n }\n}\n\n// Response class for ListShards API\nexport class ListShardsResponse {\n /**\n * An array of JSON objects.\n *\n * Each object represents one shard and specifies the IDs of the shard, the\n * shard's parent, and the shard that's adjacent to the shard's parent.\n */\n shards: Shard[]\n\n /**\n * When the number of shards in the data stream is greater than the\n * default value for the MaxResults parameter, or if you explicitly specify\n * a value for MaxResults that is less than the number of shards in the data\n * stream, the response includes a pagination token named NextToken.\n */\n nextToken?: string\n\n constructor(shards: Shard[], nextToken?: string) {\n this.shards = shards\n this.nextToken = nextToken\n }\n\n static fromJson(json: JSONObject): ListShardsResponse {\n const { Shards = [], NextToken } = json\n const shards = (Shards as JSONObject[]).map(Shard.fromJson)\n\n return new ListShardsResponse(shards, NextToken as string | undefined)\n }\n}\n\n/**\n * A uniquely identified group of data records in a Kinesis data stream.\n */\nexport class Shard {\n /**\n * The unique identifier of the shard within the stream.\n */\n id: string\n\n /**\n * The shard ID of the shard's parent.\n */\n parentShardId?: string\n\n /**\n * The shard ID of the shard adjacent to the shard's parent.\n */\n adjacentParentShardId?: string\n\n /**\n * The range of possible hash key values for the shard, which is a set of ordered contiguous positive integers.\n */\n hashKeyRange: HashKeyRange\n\n sequenceNumberRange: SequenceNumberRange\n\n constructor(\n id: string,\n hashKeyRange: HashKeyRange,\n sequenceNumberRange: SequenceNumberRange,\n parentShardId?: string,\n adjacentParentShardId?: string\n ) {\n this.id = id\n this.parentShardId = parentShardId\n this.adjacentParentShardId = adjacentParentShardId\n this.hashKeyRange = hashKeyRange\n this.sequenceNumberRange = sequenceNumberRange\n }\n\n static fromJson(json: JSONObject): Shard {\n return new Shard(\n json.ShardId as string,\n json.HashKeyRange as unknown as HashKeyRange,\n json.SequenceNumberRange as unknown as SequenceNumberRange,\n json.ParentShardId as string | undefined,\n json.AdjacentParentShardId as string | undefined\n )\n }\n}\n\n/**\n * Describes the range of possible hash key values for the shard, which is\n * a set of ordered contiguous positive integers.\n */\nexport interface HashKeyRange {\n /**\n * The starting hash key of the hash key range.\n */\n startingHashKey: string\n\n /**\n * The ending hash key of the hash key range.\n */\n endingHashKey: string\n}\n\n/**\n * The range of possible sequence numbers for the shard.\n */\nexport interface SequenceNumberRange {\n /**\n * The ending sequence number for the range.\n *\n * Shards that are in the OPEN state have an ending sequence number of null.\n */\n endingSequenceNumber?: string\n\n /**\n * The starting sequence number for the range.\n */\n startingSequenceNumber: string\n}\n\n/**\n * Describes a shard iterator response.\n */\nclass GetShardIteratorResponse {\n /**\n * The position in the shard from which to start reading data records sequentially.\n */\n shardIterator: string\n\n constructor(shardIterator: string) {\n this.shardIterator = shardIterator\n }\n\n static fromJson(json: JSONObject): GetShardIteratorResponse {\n return new GetShardIteratorResponse(json.ShardIterator as string)\n }\n}\n","import { RefinedResponse, ResponseType, Params } from 'k6/http'\n\nimport { AWSConfig } from './config'\nimport { Endpoint } from './endpoint'\nimport { HTTPHeaders } from './http'\nimport {\n GeneralErrorKind,\n DNSErrorKind,\n TCPErrorKind,\n TLSErrorKind,\n HTTP2ErrorKind,\n GeneralError,\n DNSError,\n TCPError,\n TLSError,\n HTTP2Error,\n} from './error'\n\n/**\n * Class allowing to build requests targeting AWS APIs\n *\n * This class is meant to be used as a base class for specific\n * services clients. See S3Client or SecretsManagerClient for\n * usage examples.\n */\nexport class AWSClient {\n readonly awsConfig: AWSConfig\n readonly serviceName: string\n\n // Because jslib-aws is mostly used as a way to setup or feed k6 tests, and\n // we want the jslib-aws to be able to disregard k6's discardResponseBodies: meaning\n // that for instance, even when setting discardResponseBodies to true in the k6 options, using\n // s3.getObject still receives the underlying response body and returns data to the user.\n //\n // To achieve this, we set the responseType to 'text' in the baseRequestParams, as it\n // will lead the http module to ignore the discardResponseBodies option.\n //\n // AWS Client classes can override this value if they want to receive the response body\n // as a different type ('binary' for instance, e.g. S3Client.getObject).\n //\n // See #45: https://github.com/grafana/k6-jslib-aws/issues/45\n readonly baseRequestParams: Params = {\n responseType: 'text',\n }\n\n private _endpoint?: Endpoint\n\n /**\n * @param {AWSConfig} awsConfig - configuration attributes to use when interacting with AWS' APIs\n * @param {string} serviceName - name of the service to target.\n * @param {URIEncodingConfig} URIencodingConfig - configures how requests URIs should be encoded.\n */\n constructor(awsConfig: AWSConfig, serviceName: string) {\n this.awsConfig = awsConfig\n this.serviceName = serviceName\n\n // If an endpoint is provided in the config, set it\n // to ensure the default endpoint is not used.\n if (awsConfig.endpoint != undefined) {\n this._endpoint = awsConfig.endpoint\n }\n }\n\n /**\n * Represents the endpoint URL of the AWS service.\n *\n * If no custom endpoint is set, a default endpoint will be constructed\n * using the service name and region provided in the AWS config.\n *\n * @type {Endpoint}\n * @public\n */\n public get endpoint() {\n if (this._endpoint == undefined) {\n this._endpoint = new Endpoint(\n `https://${this.serviceName}.${this.awsConfig.region}.amazonaws.com`\n )\n }\n return this._endpoint\n }\n\n /**\n * Updates the endpoint URL of the AWS service.\n *\n * This can be used to override the default AWS service endpoint or set a custom endpoint.\n *\n * @param {Endpoint} endpoint - The new endpoint to set for the AWS service.\n * @public\n */\n public set endpoint(endpoint: Endpoint) {\n this._endpoint = endpoint\n }\n\n /**\n * Handles the k6 http response potential errors produced when making a\n * request to an AWS service.\n *\n * Importantly, this method only handles errors that emerge from the k6 http client itself, and\n * won't handle AWS specific errors. To handle AWS specific errors, client classes are\n * expected to implement their own error handling logic by overriding this method.\n *\n * @param response {RefinedResponse} the response received by the k6 http client\n * @param operation {string | undefined } the name of the operation that was attempted when the error occurred\n * @param {boolean} returns true if an error was handled, false otherwise\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n protected handleError(response: RefinedResponse, operation?: string): boolean {\n const status: number = response.status\n const errorCode: number = response.error_code\n const errorMessage: string = response.error\n\n // We consider codes 200-299 as success.\n //\n // We do not consider 3xx as success as some services such as S3 can use\n // 301 to indicate a bucket not found\n if (status >= 200 && status < 300 && errorMessage == '' && errorCode === 0) {\n return false\n }\n\n switch (errorCode) {\n case GeneralErrorKind.GenericError:\n case GeneralErrorKind.NonTCPNetworkError:\n case GeneralErrorKind.InvalidURL:\n case GeneralErrorKind.HTTPRequestTimeout:\n throw new GeneralError(errorCode);\n case DNSErrorKind.GenericDNSError:\n case DNSErrorKind.NoIPFound:\n case DNSErrorKind.BlacklistedIP:\n case DNSErrorKind.BlacklistedHostname:\n throw new DNSError(errorCode);\n case TCPErrorKind.GenericTCPError:\n case TCPErrorKind.BrokenPipeOnWrite:\n case TCPErrorKind.UnknownTCPError:\n case TCPErrorKind.GeneralTCPDialError:\n case TCPErrorKind.DialTimeoutError:\n case TCPErrorKind.DialConnectionRefused:\n case TCPErrorKind.DialUnknownError:\n case TCPErrorKind.ResetByPeer:\n throw new TCPError(errorCode);\n case TLSErrorKind.GeneralTLSError:\n case TLSErrorKind.UnknownAuthority:\n case TLSErrorKind.CertificateHostnameMismatch:\n throw new TLSError(errorCode);\n case HTTP2ErrorKind.GenericHTTP2Error:\n case HTTP2ErrorKind.GeneralHTTP2GoAwayError:\n throw new HTTP2Error(errorCode);\n }\n\n return true\n }\n}\n\n/**\n * Type alias representing the result of an AWSClient.buildRequest call\n */\nexport interface AWSRequest {\n readonly url: string\n readonly headers: HTTPHeaders\n}\n"],"names":["__webpack_require__","module","getter","__esModule","d","a","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","Endpoint","endpoint","_classCallCheck","_defineProperty","completeUrl","startsWith","concat","DEFAULT_PROTOCOL","protocolMatch","match","hostnameWithPort","_slicedToArray","replace","split","this","_protocol","slice","_hostname","_port","parseInt","undefined","href","set","_value$split2","hostname","port","protocol","host","AWSConfig","options","region","InvalidAWSConfigError","accessKeyId","length","secretAccessKey","sessionToken","_createClass","__ENV","AWS_REGION","AWS_ACCESS_KEY_ID","AWS_SECRET_ACCESS_KEY","AWS_SESSION_TOKEN","_Error","message","_callSuper","_inherits","_wrapNativeSuper","Error","require","AWSError","code","_this","name","xmlDocument","doc","parseHTML","find","text","response","headers","error","json","Message","__type","parseXML","body","NetworkError","_Error2","_this2","ErrorMessages","GeneralError","_NetworkError2","DNSError","_NetworkError3","TCPError","_NetworkError4","TLSError","_NetworkError5","HTTP2Error","_NetworkError6","GeneralErrorKind","DNSErrorKind","TCPErrorKind","TLSErrorKind","HTTP2ErrorKind","_ErrorMessages","GenericError","NonTCPNetworkError","InvalidURL","HTTPRequestTimeout","GenericDNSError","NoIPFound","BlacklistedIP","BlacklistedHostname","GenericTCPError","BrokenPipeOnWrite","UnknownTCPError","GeneralTCPDialError","DialTimeoutError","DialConnectionRefused","DialUnknownError","ResetByPeer","GeneralTLSError","UnknownAuthority","CertificateHostnameMismatch","GenericHTTP2Error","GeneralHTTP2GoAwayError","AMZ_DATE_QUERY_PARAM","AMZ_SIGNATURE_QUERY_PARAM","AMZ_TOKEN_QUERY_PARAM","AMZ_CONTENT_SHA256_HEADER","AMZ_DATE_HEADER","toLowerCase","AMZ_SIGNATURE_HEADER","AMZ_TARGET_HEADER","AMZ_TOKEN_HEADER","AUTHORIZATION_HEADER","GENERATED_HEADERS","HOST_HEADER","ALWAYS_UNSIGNABLE_HEADERS","authorization","connection","expect","from","pragma","referer","te","trailer","upgrade","KEY_TYPE_IDENTIFIER","SIGNING_ALGORITHM_IDENTIFIER","SignatureV4","_ref","service","credentials","uriEscapePath","applyChecksum","request","arguments","finalOptions","_objectSpread","signingDate","Date","unsignableHeaders","Set","signableHeaders","_formatDate","formatDate","longDate","shortDate","signingService","signingRegion","scope","constants","_i","_Object$keys","keys","headerName","indexOf","ArrayBuffer","isView","buffer","payloadHash","computePayloadHash","soughtHeader","hasHeader","canonicalHeaders","computeCanonicalHeaders","signature","calculateSignature","deriveSigningKey","createCanonicalRequest","sort","join","url","path","endsWith","query","serializeQueryParameters","originalRequest","_options$signingDate","_options$expiresIn","expiresIn","unhoistableHeaders","_formatDate2","InvalidSignatureError","moveHeadersToQuery","toString","signingKey","canonicalRequest","_url","sortedHeaders","sortedCanonicalHeaders","map","signedHeaders","method","computeCanonicalURI","computeCanonicalQuerystring","credentialScope","hashedCanonicalRequest","crypto","stringToSign","createStringToSign","kSecret","kDate","kRegion","kService","_ref2","_step","normalizedURISegments","_iterator","_createForOfIteratorHelper","s","n","done","URISegment","pop","push","err","e","f","leading","URI","trailing","normalizedURI","encodeURIComponent","_ref3","_step2","_ref3$query","serialized","_loop","escapeURI","Array","isArray","reduce","encoded","_iterator2","filter","_ref4","_step3","_iterator3","canonicalHeaderName","has","trim","_ref5","requestCopy","JSON","parse","stringify","_requestCopy$query","_i2","_Object$keys2","_options$unhoistableH","lowerCaseName","ignoreKeys","_step4","_loop2","includes","_iterator4","_AWSError","c","charCodeAt","toUpperCase","date","time","Number","toDate","toISOString","_regeneratorRuntime","t","r","i","iterator","asyncIterator","u","define","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","h","l","y","GeneratorFunction","GeneratorFunctionPrototype","p","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","reverse","prev","charAt","stop","rval","handle","complete","finish","delegateYield","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptor","apply","getOwnPropertyDescriptors","defineProperties","asyncGeneratorStep","_asyncToGenerator","_next","_throw","_defineProperties","_toPropertyKey","_getPrototypeOf","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","Boolean","valueOf","_get","bind","_superPropBase","_setPrototypeOf","toPrimitive","String","_toPrimitive","KinesisClient","_AWSClient","awsConfig","serviceVersion","serviceName","commonHeaders","_createStream","_callee","streamName","_args","_context","StreamName","shardCount","ShardCount","streamModeDetails","StreamMode","streamMode","_send_request","_x","_deleteStream","_callee2","parameters","_args2","_context2","streamARN","StreamARN","enforceConsumerDeletion","EnforceConsumerDeletion","_x2","_listStreams","_callee3","res","_args3","_context3","exclusiveStartStreamName","ExclusiveStartStreamName","limit","Limit","nextToken","NextToken","ListStreamsResponse","fromJson","_putRecords","_callee4","records","_args4","_context4","Records","PutRecordsResponse","_x3","_getRecords","_callee5","shardIterator","_args5","_context5","ShardIterator","GetRecordsResponse","_x4","_listShards","_callee6","_args6","_context6","maxResults","MaxResults","ListShardsResponse","_x5","_getShardIterator","_callee7","shardId","shardIteratorType","_args7","_context7","ShardId","ShardIteratorType","startingSequenceNumber","StartingSequenceNumber","timestamp","Timestamp","GetShardIteratorResponse","_x6","_x7","_x8","_send_request2","_callee8","action","signedRequest","_context8","sign","http","baseRequestParams","handleError","_x9","_x10","operation","errorCode","error_code","errorMessage","KinesisServiceError","AWSClient","responseType","_endpoint","status","HasMoreStreams","StreamNames","StreamSummaries","hasMoreStreams","streamNames","streamSummaries","result","_result$HasMoreStream","_result$NextToken","_result$StreamNames","_result$StreamSummari","StreamSummary","StreamCreationTimestamp","StreamStatus","streamCreationTimestamp","streamStatus","summary","_summary$StreamARN","_summary$StreamCreati","_summary$StreamModeDe","StreamModeDetails","_summary$StreamName","_summary$StreamStatus","encryptionType","failedRecordCount","_json$EncryptionType","EncryptionType","_json$FailedRecordCou","FailedRecordCount","_json$Records","PutRecordsResultEntry","sequenceNumber","SequenceNumber","nextShardIterator","millisBehindLatest","_json$NextShardIterat","NextShardIterator","_json$Records2","_json$MillisBehindLat","MillisBehindLatest","Record","data","partitionKey","Data","PartitionKey","shards","_json$Shards","Shards","Shard","id","hashKeyRange","sequenceNumberRange","parentShardId","adjacentParentShardId","HashKeyRange","SequenceNumberRange","ParentShardId","AdjacentParentShardId"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/aws/0.13.0/kms.js b/lib/aws/0.13.0/kms.js new file mode 100644 index 0000000..a74d2ec --- /dev/null +++ b/lib/aws/0.13.0/kms.js @@ -0,0 +1,3 @@ +/*! For license information please see kms.js.LICENSE.txt */ +(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function n(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,c=[],u=!0,s=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(c.push(n.value),c.length!==t);u=!0);}catch(e){s=!0,o=e}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(s)throw o}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return o(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?o(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rw,AWSError:()=>R,DNSError:()=>K,GeneralError:()=>G,HTTP2Error:()=>U,InvalidAWSConfigError:()=>O,InvalidSignatureError:()=>xe,KMSClient:()=>Ze,KMSDataKey:()=>tt,KMSServiceError:()=>rt,NetworkError:()=>H,TCPError:()=>B,TLSError:()=>q});var u=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),a(this,"_protocol",void 0),a(this,"_hostname",void 0),a(this,"_port",void 0);var r=!t.startsWith("http://")&&!t.startsWith("https://")?"".concat(e.DEFAULT_PROTOCOL,"://").concat(t):t,o=r.match(/^https?:/),i=n(r.replace(/^https?:\/\//,"").split("/"),1)[0];this._protocol=o?o[0].slice(0,-1):e.DEFAULT_PROTOCOL,this._hostname=i.split(":")[0],this._port=i.split(":")[1]?parseInt(i.split(":")[1]):void 0}return t=e,(r=[{key:"copy",value:function(){return new e(this.href)}},{key:"host",get:function(){return this._port?"".concat(this._hostname,":").concat(this._port):this._hostname},set:function(e){var t=n(e.split(":"),2),r=t[0],o=t[1];this._hostname=r,this._port=o?parseInt(o):void 0}},{key:"hostname",get:function(){return this._hostname},set:function(e){this._hostname=e}},{key:"href",get:function(){return"".concat(this.protocol,"://").concat(this.host)},set:function(t){var r=t.match(/^https?:/),o=n(t.replace(/^https?:\/\//,"").split("/"),1)[0];this._protocol=r?r[0].slice(0,-1):e.DEFAULT_PROTOCOL,this._hostname=o.split(":")[0],this._port=o.split(":")[1]?parseInt(o.split(":")[1]):void 0}},{key:"port",get:function(){return this._port},set:function(e){this._port=e}},{key:"protocol",get:function(){return this._protocol},set:function(e){this._protocol=e}}])&&i(t.prototype,r),o&&i(t,o),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,r,o}();function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function l(e,t,r){return t=y(t),function(e,t){if(t&&("object"==s(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,h()?Reflect.construct(t,r||[],y(e).constructor):t.apply(e,r))}function f(e){var t="function"==typeof Map?new Map:void 0;return f=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return function(e,t,r){if(h())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,t);var o=new(e.bind.apply(e,n));return r&&p(o,r.prototype),o}(e,arguments,y(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),p(r,e)},f(e)}function h(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(h=function(){return!!e})()}function p(e,t){return p=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},p(e,t)}function y(e){return y=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},y(e)}function d(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function v(e,t){for(var r=0;r128)throw new O("invalid AWS access key ID; reason: size should be between 16 and 128 characters, got ".concat(t.accessKeyId.length));if(!t.secretAccessKey||""===t.secretAccessKey)throw new O("invalid AWS secret access key; reason: expected a non empty string, got `".concat(t.secretAccessKey,"`"));this.region=t.region,this.accessKeyId=t.accessKeyId,this.secretAccessKey=t.secretAccessKey,void 0!==t.sessionToken&&(this.sessionToken=t.sessionToken),void 0!==t.endpoint&&("string"==typeof t.endpoint?this.endpoint=new u(t.endpoint):this.endpoint=t.endpoint)}return b(e,null,[{key:"fromEnvironment",value:function(t){return new e({region:__ENV.AWS_REGION,accessKeyId:__ENV.AWS_ACCESS_KEY_ID,secretAccessKey:__ENV.AWS_SECRET_ACCESS_KEY,sessionToken:__ENV.AWS_SESSION_TOKEN,endpoint:null==t?void 0:t.endpoint})}}])}(),O=function(e){function t(e){return d(this,t),l(this,t,[e])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&p(e,t)}(t,e),b(t)}(f(Error));const S=require("k6/html");var P;function E(e){return E="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},E(e)}function j(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function T(e,t){for(var r=0;r=200&&r<300&&""==o&&0===n)return!1;switch(n){case W.GenericError:case W.NonTCPNetworkError:case W.InvalidURL:case W.HTTPRequestTimeout:throw new G(n);case z.GenericDNSError:case z.NoIPFound:case z.BlacklistedIP:case z.BlacklistedHostname:throw new K(n);case M.GenericTCPError:case M.BrokenPipeOnWrite:case M.UnknownTCPError:case M.GeneralTCPDialError:case M.DialTimeoutError:case M.DialConnectionRefused:case M.DialUnknownError:case M.ResetByPeer:throw new B(n);case F.GeneralTLSError:case F.UnknownAuthority:case F.CertificateHostnameMismatch:throw new q(n);case X.GenericHTTP2Error:case X.GeneralHTTP2GoAwayError:throw new U(n)}return!0}}])&&$(e.prototype,t),r&&$(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}(),re="X-Amz-Date",ne="X-Amz-Signature",oe="X-Amz-Security-Token",ie="x-amz-content-sha256",ae=re.toLowerCase(),ce=ne.toLowerCase(),ue="X-Amz-Target".toLowerCase(),se=oe.toLowerCase(),le="authorization",fe=[le,ae,"date"],he="host",pe={authorization:!0,"cache-control":!0,connection:!0,expect:!0,from:!0,"keep-alive":!0,"max-forwards":!0,pragma:!0,referer:!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0,"user-agent":!0,"x-amzn-trace-id":!0},ye="aws4_request",de="AWS4-HMAC-SHA256";const ve=require("k6/crypto");var be=e.n(ve);function me(e){return me="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},me(e)}function ge(e,t,r){return t=Oe(t),function(e,t){if(t&&("object"==me(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,we()?Reflect.construct(t,r||[],Oe(e).constructor):t.apply(e,r))}function we(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(we=function(){return!!e})()}function Oe(e){return Oe=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Oe(e)}function Se(e,t){return Se=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Se(e,t)}function Pe(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return Ee(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Ee(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){c=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(c)throw i}}}}function Ee(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r1&&void 0!==arguments[1]?arguments[1]:{},r=Te(Te({},{signingDate:new Date,unsignableHeaders:new Set,signableHeaders:new Set}),t),n=Ne(r.signingDate),o=n.longDate,i=n.shortDate,a=r.signingService||this.service,c=r.signingRegion||this.region,u="".concat(i,"/").concat(c,"/").concat(a,"/").concat(ye);e.headers[he]||(e.headers[he]=e.endpoint.hostname);for(var s=0,l=Object.keys(e.headers);s-1&&delete e.headers[f]}e.headers[ae]=o,this.credentials.sessionToken&&(e.headers[se]=this.credentials.sessionToken),ArrayBuffer.isView(e.body)&&(e.body=e.body.buffer),e.body||(e.body="");var h=this.computePayloadHash(e);!function(e,t){e=e.toLowerCase();for(var r=0,n=Object.keys(t);r1&&void 0!==arguments[1]?arguments[1]:{},r=t.signingDate,n=void 0===r?new Date:r,o=t.expiresIn,i=void 0===o?3600:o,a=t.unsignableHeaders,c=t.unhoistableHeaders,u=t.signableHeaders,s=t.signingRegion,l=t.signingService,f=Ne(n),h=f.longDate,p=f.shortDate,y=s||this.region,d=l||this.service;if(i>604800)throw new xe("Signature version 4 presigned URLs can't be valid for more than 7 days");var v="".concat(p,"/").concat(y,"/").concat(d,"/").concat(ye),b=this.moveHeadersToQuery(e,{unhoistableHeaders:c});b.headers[he]||(b.headers[he]=e.endpoint.hostname),this.credentials.sessionToken&&(b.query[oe]=this.credentials.sessionToken),b.query["X-Amz-Algorithm"]=de,b.query["X-Amz-Credential"]="".concat(this.credentials.accessKeyId,"/").concat(v),b.query[re]=h,b.query["X-Amz-Expires"]=i.toString(10);var m=this.computeCanonicalHeaders(b,a,u);b.query["X-Amz-SignedHeaders"]=Object.keys(m).sort().join(";");var g=this.deriveSigningKey(this.credentials,d,y,p),w=this.computePayloadHash(e),O=this.createCanonicalRequest(b,m,w);b.query[ne]=this.calculateSignature(h,v,g,O);var S,P=e.endpoint.href;b.path&&(P=null!==(S=P)&&void 0!==S&&S.endsWith("/")?P:P+"/",P+=b.path);return b.query&&(P+="?".concat(this.serializeQueryParameters(b.query))),Te({url:P},b)}},{key:"createCanonicalRequest",value:function(e,t,r){var n=Object.keys(t).sort(),o=n.map((function(e){return"".concat(e,":").concat(t[e])})).join("\n"),i=n.join(";");return"".concat(e.method,"\n")+"".concat(this.computeCanonicalURI(e),"\n")+"".concat(this.computeCanonicalQuerystring(e),"\n")+"".concat(o,"\n\n")+"".concat(i,"\n")+"".concat(r)}},{key:"createStringToSign",value:function(e,t,r){var n=be().sha256(r,"hex");return"".concat(de,"\n")+"".concat(e,"\n")+"".concat(t,"\n")+"".concat(n)}},{key:"calculateSignature",value:function(e,t,r,n){var o=this.createStringToSign(e,t,n);return be().hmac("sha256",r,o,"hex")}},{key:"deriveSigningKey",value:function(e,t,r,n){var o=e.secretAccessKey,i=be().hmac("sha256","AWS4"+o,n,"binary"),a=be().hmac("sha256",i,r,"binary"),c=be().hmac("sha256",a,t,"binary");return be().hmac("sha256",c,"aws4_request","binary")}},{key:"computeCanonicalURI",value:function(e){var t=e.path;if(this.uriEscapePath){var r,n=[],o=Pe(t.split("/"));try{for(o.s();!(r=o.n()).done;){var i=r.value;0!==(null==i?void 0:i.length)&&("."!==i&&(".."===i?n.pop():n.push(i)))}}catch(e){o.e(e)}finally{o.f()}var a=null!=t&&t.startsWith("/")?"/":"",c=n.join("/"),u=n.length>0&&null!=t&&t.endsWith("/")?"/":"",s="".concat(a).concat(c).concat(u);return encodeURIComponent(s).replace(/%2F/g,"/")}return t}},{key:"computeCanonicalQuerystring",value:function(e){var t,r=e.query,n=void 0===r?{}:r,o=[],i={},a=function(e){if(e.toLowerCase()===ce)return 1;o.push(e);var t=n[e];"string"==typeof t?i[e]="".concat(Ie(e),"=").concat(Ie(t)):Array.isArray(t)&&(i[e]=t.slice(0).sort().reduce((function(t,r){return t.concat(["".concat(Ie(e),"=").concat(Ie(r))])}),[]).join("&"))},c=Pe(Object.keys(n).sort());try{for(c.s();!(t=c.n()).done;){a(t.value)}}catch(e){c.e(e)}finally{c.f()}return o.map((function(e){return i[e]})).filter((function(e){return e})).join("&")}},{key:"computeCanonicalHeaders",value:function(e,t,r){var n,o=e.headers,i={},a=Pe(Object.keys(o).sort());try{for(a.s();!(n=a.n()).done;){var c=n.value;if(null!=o[c]){var u=c.toLowerCase();(u in pe||null!=t&&t.has(u))&&(!r||r&&!r.has(u))||"string"==typeof o[c]&&(i[u]=o[c]=o[c].trim().replace(/\s+/g," "))}}}catch(e){a.e(e)}finally{a.f()}return i}},{key:"computePayloadHash",value:function(e){var t,r=e.headers,n=e.body;return r[ie]?r[ie]:null==n?"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855":"string"==typeof n||(t=n,"function"==typeof ArrayBuffer&&(t instanceof ArrayBuffer||"[object ArrayBuffer]"===Object.prototype.toString.call(t)))?be().sha256(n,"hex").toLowerCase():ArrayBuffer.isView(n)?be().sha256(n.buffer,"hex").toLowerCase():"UNSIGNED-PAYLOAD"}},{key:"moveHeadersToQuery",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=JSON.parse(JSON.stringify(e)),n=r.headers,o=r.query,i=void 0===o?{}:o,a=0,c=Object.keys(n);a=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),s=n.call(a,"finallyLoc");if(u&&s){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),A(r),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;A(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:L(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),v}},t}function Ge(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Ke(e){for(var t=1;t1&&void 0!==i[1]?i[1]:ot.Size256,n=this.signature.sign({method:this.method,endpoint:this.endpoint,path:"/",headers:Ke(Ke({},this.commonHeaders),{},Ye({},ue,"TrentService.GenerateDataKey")),body:JSON.stringify({KeyId:t,NumberOfBytes:r})},{}),e.next=4,V().asyncRequest(this.method,n.url,n.body,Ke(Ke({},this.baseRequestParams),{},{headers:n.headers}));case 4:return o=e.sent,this.handleError(o,nt.GenerateDataKey),e.abrupt("return",tt.fromJSON(o.json()));case 7:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"handleError",value:function(e,r){var n,o,i,a,c;if(!(n=t,o="handleError",i=this,c=Xe(Je(1&(a=3)?n.prototype:n),o,i),2&a?function(e){return c.apply(i,e)}:c)([e,r]))return!1;var u=e.error_code,s=e.json();if(u>=1400&&u<=1499){var l=s.Message||s.message||s.__type;if("InvalidSignatureException"===s.__type)throw new xe(l,s.__type);throw new rt(l,s.__type,r)}if(1500===u)throw new rt("An error occured on the server side","InternalServiceError",r);return!0}}]);var r,n}(te),et=function(){function e(t,r){Ue(this,e),Ye(this,"keyArn",void 0),Ye(this,"keyId",void 0),this.keyArn=t,this.keyId=r}return ze(e,null,[{key:"fromJSON",value:function(t){return new e(t.KeyArn,t.KeyId)}}])}(),tt=function(){function e(t,r,n){Ue(this,e),Ye(this,"id",void 0),Ye(this,"ciphertextBlob",void 0),Ye(this,"plaintext",void 0),this.ciphertextBlob=t,this.id=r,this.plaintext=n}return ze(e,null,[{key:"fromJSON",value:function(t){return new e(t.CiphertextBlob,t.KeyId,t.Plaintext)}}])}(),rt=function(e){function t(e,r,n){var o;return Ue(this,t),Ye(o=Me(this,t,[e,r]),"operation",void 0),o.name="KMSServiceError",o.operation=n,o}return Qe(t,e),ze(t)}(R),nt=function(e){return e.GenerateDataKey="GenerateDataKey",e.ListKeys="ListKeys",e}(nt||{}),ot=function(e){return e[e.Size256=32]="Size256",e[e.Size512=64]="Size512",e}(ot||{}),it=exports;for(var at in t)it[at]=t[at];t.__esModule&&Object.defineProperty(it,"__esModule",{value:!0})})(); +//# sourceMappingURL=kms.js.map \ No newline at end of file diff --git a/lib/aws/0.13.0/kms.js.LICENSE.txt b/lib/aws/0.13.0/kms.js.LICENSE.txt new file mode 100644 index 0000000..ae386fb --- /dev/null +++ b/lib/aws/0.13.0/kms.js.LICENSE.txt @@ -0,0 +1 @@ +/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ diff --git a/lib/aws/0.13.0/kms.js.map b/lib/aws/0.13.0/kms.js.map new file mode 100644 index 0000000..e43c8d1 --- /dev/null +++ b/lib/aws/0.13.0/kms.js.map @@ -0,0 +1 @@ +{"version":3,"file":"kms.js","mappings":"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","sources":["webpack://k6-jslib-aws/webpack/bootstrap","webpack://k6-jslib-aws/webpack/runtime/compat get default export","webpack://k6-jslib-aws/webpack/runtime/define property getters","webpack://k6-jslib-aws/webpack/runtime/hasOwnProperty shorthand","webpack://k6-jslib-aws/webpack/runtime/make namespace object","webpack://k6-jslib-aws/./src/internal/endpoint.ts","webpack://k6-jslib-aws/./src/internal/config.ts","webpack://k6-jslib-aws/external commonjs \"k6/html\"","webpack://k6-jslib-aws/./src/internal/error.ts","webpack://k6-jslib-aws/external commonjs \"k6/http\"","webpack://k6-jslib-aws/./src/internal/client.ts","webpack://k6-jslib-aws/./src/internal/constants.ts","webpack://k6-jslib-aws/external commonjs \"k6/crypto\"","webpack://k6-jslib-aws/./src/internal/signature.ts","webpack://k6-jslib-aws/./src/internal/http.ts","webpack://k6-jslib-aws/./src/internal/utils.ts","webpack://k6-jslib-aws/./src/internal/kms.ts"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * Represents an AWS service endpoint, providing utilities for parsing and handling URL details.\n */\nexport class Endpoint {\n private _protocol: string\n private _hostname: string\n private _port?: number\n\n // Default protocol, this can be globally changed as per application requirements\n private static readonly DEFAULT_PROTOCOL = 'https' // Set this as per AWS.config\n\n /**\n // * Constructs a new Endpoint instance.\n *\n * @param {string} endpoint - The URL to construct an endpoint from. If the URL omits a protocol, the default protocol will be used.\n */\n constructor(endpoint: string) {\n const isDefaultProtocol =\n !endpoint.startsWith('http://') && !endpoint.startsWith('https://')\n const completeUrl = isDefaultProtocol\n ? `${Endpoint.DEFAULT_PROTOCOL}://${endpoint}`\n : endpoint\n\n const protocolMatch = completeUrl.match(/^https?:/)\n const hostAndPath = completeUrl.replace(/^https?:\\/\\//, '')\n const [hostnameWithPort] = hostAndPath.split('/')\n\n this._protocol = protocolMatch ? protocolMatch[0].slice(0, -1) : Endpoint.DEFAULT_PROTOCOL\n this._hostname = hostnameWithPort.split(':')[0]\n this._port = hostnameWithPort.split(':')[1]\n ? parseInt(hostnameWithPort.split(':')[1])\n : undefined\n }\n\n /**\n * Creates a new Endpoint instance that is a copy of the current one.\n *\n * @returns {Endpoint} The copied Endpoint.\n */\n public copy(): Endpoint {\n return new Endpoint(this.href)\n }\n\n /**\n * Gets the host portion of the endpoint including the port.\n *\n * @returns {string} The host portion of the endpoint including the port.\n */\n public get host(): string {\n return this._port ? `${this._hostname}:${this._port}` : this._hostname\n }\n\n /**\n * Sets the host portion of the endpoint including the port.\n *\n * @param {string} value - The value to set for the host.\n */\n public set host(value: string) {\n const [hostname, port] = value.split(':')\n this._hostname = hostname\n this._port = port ? parseInt(port) : undefined\n }\n\n /**\n * Gets the host portion of the endpoint without the port.\n *\n * @returns {string} The host portion of the endpoint.\n */\n public get hostname(): string {\n return this._hostname\n }\n\n /**\n * Sets the host portion of the endpoint without the port.\n *\n * @param {string} value - The value to set for the hostname.\n */\n public set hostname(value: string) {\n this._hostname = value\n }\n\n /**\n * Gets the full URL of the endpoint.\n *\n * @returns {string} The full URL of the endpoint.\n */\n public get href(): string {\n return `${this.protocol}://${this.host}`\n }\n\n /**\n * Sets the full URL of the endpoint.\n *\n * @param {string} value - The value to set for the full URL.\n */\n public set href(value: string) {\n const protocolMatch = value.match(/^https?:/)\n const withoutProtocol = value.replace(/^https?:\\/\\//, '')\n const [hostnameWithPort] = withoutProtocol.split('/')\n\n this._protocol = protocolMatch ? protocolMatch[0].slice(0, -1) : Endpoint.DEFAULT_PROTOCOL // remove the trailing colon\n this._hostname = hostnameWithPort.split(':')[0]\n this._port = hostnameWithPort.split(':')[1]\n ? parseInt(hostnameWithPort.split(':')[1])\n : undefined\n }\n\n /**\n * Gets the port of the endpoint.\n *\n * @returns {number|undefined} The port of the endpoint.\n */\n public get port(): number | undefined {\n return this._port\n }\n\n /**\n * Sets the port of the endpoint.\n *\n * @param {number|undefined} value - The value to set for the port.\n */\n public set port(value: number | undefined) {\n this._port = value\n }\n\n /**\n * Gets the protocol (http or https) of the endpoint URL.\n *\n * @returns {string} The protocol of the endpoint URL.\n */\n public get protocol(): string {\n return this._protocol\n }\n\n /**\n * Sets the protocol (http or https) of the endpoint URL.\n *\n * @param {string} value - The value to set for the protocol.\n */\n public set protocol(value: string) {\n this._protocol = value\n }\n}\n","import { HTTPScheme } from './http'\nimport { Endpoint } from './endpoint'\n\n/** Class holding an AWS connection information */\nexport class AWSConfig {\n /**\n * The AWS region to connect to, as listed: https://docs.aws.amazon.com/general/latest/gr/rande.html\n *\n * @type {string}\n */\n region: string\n\n /**\n * Your user's AWS access key id credential.\n *\n * @type {string}\n */\n accessKeyId: string\n\n /**\n * Your user's AWS secret access key credential.\n *\n * @type {string}\n */\n secretAccessKey: string\n\n /**\n * Your user's AWS session token credential.\n *\n * @type {string}\n */\n sessionToken?: string\n\n /**\n * The AWS hostname to connect to.\n *\n * @type {string} ['amazonaws.com']\n */\n endpoint?: Endpoint\n\n /**\n * fromEnvironment creates an AWSConfig from the environment variables.\n *\n * It expects to find the following compulsory environment variables:\n * * AWS_REGION\n * * AWS_ACCESS_KEY_ID\n * * AWS_SECRET_ACCESS_KEY\n *\n * If set, the following optional environment variables are also used:\n * * AWS_SESSION_TOKEN\n *\n * Finally, the options parameter allows to explicitly set the scheme and endpoint\n * to use when connecting to AWS.\n *\n * @param options {AWSConnectionOptions}\n * @returns\n */\n static fromEnvironment(options?: AWSConnectionOptions): AWSConfig {\n const region = __ENV.AWS_REGION\n const accessKeyId = __ENV.AWS_ACCESS_KEY_ID\n const secretAccessKey = __ENV.AWS_SECRET_ACCESS_KEY\n const sessionToken: string | undefined = __ENV.AWS_SESSION_TOKEN\n const endpoint: Endpoint | string | undefined = options?.endpoint\n\n return new AWSConfig({\n region,\n accessKeyId,\n secretAccessKey,\n sessionToken,\n endpoint: endpoint,\n })\n }\n\n /**\n * Create an AWSConfig.\n *\n * @param {AWSConfigOptions} options - configuration attributes to use when interacting with AWS' APIs\n * @throws {InvalidArgumentException}\n */\n constructor(options: AWSConfigOptions) {\n if (!options.region || options.region === '') {\n throw new InvalidAWSConfigError(\n `invalid AWS region; reason: expected a valid AWS region name (e.g. \"us-east-1\"), got \\`${options.region}\\``\n )\n }\n\n if (!options.accessKeyId || options.accessKeyId === '') {\n throw new InvalidAWSConfigError(\n `invalid AWS access key ID; reason: expected a non empty string, got \\`${options.accessKeyId}\\``\n )\n }\n\n if (options.accessKeyId.length < 16 || options.accessKeyId.length > 128) {\n throw new InvalidAWSConfigError(\n `invalid AWS access key ID; reason: size should be between 16 and 128 characters, got ${options.accessKeyId.length}`\n )\n }\n\n if (!options.secretAccessKey || options.secretAccessKey === '') {\n throw new InvalidAWSConfigError(\n `invalid AWS secret access key; reason: expected a non empty string, got \\`${options.secretAccessKey}\\``\n )\n }\n\n this.region = options.region\n this.accessKeyId = options.accessKeyId\n this.secretAccessKey = options.secretAccessKey\n\n if (options.sessionToken !== undefined) {\n this.sessionToken = options.sessionToken\n }\n\n if (options.endpoint !== undefined) {\n if (typeof options.endpoint === 'string') {\n this.endpoint = new Endpoint(options.endpoint)\n } else {\n this.endpoint = options.endpoint\n }\n }\n }\n}\n\n/**\n * Interface representing AWSConfig options\n */\nexport interface AWSConfigOptions extends AWSConnectionOptions {\n /**\n * The AWS region to connect to, as listed: https://docs.aws.amazon.com/general/latest/gr/rande.html\n *\n * @type {string}\n */\n region: string\n\n /**\n * Your user's AWS access key id credential.\n *\n * @type {string}\n */\n accessKeyId: string\n\n /**\n * Your user's AWS secret access key credential.\n *\n * @type {string}\n */\n secretAccessKey: string\n\n /**\n * Your user's AWS session token credential.\n *\n * @type {string}\n */\n sessionToken?: string\n}\n\n/**\n * Interface representing AWS connection options\n */\nexport interface AWSConnectionOptions {\n /**\n * The HTTP scheme to use when connecting to AWS.\n *\n * @type {HTTPScheme}\n */\n scheme?: HTTPScheme\n\n /**\n * The AWS hostname to connect to.\n *\n * @type {string}\n */\n endpoint?: Endpoint | string\n}\n\n/** Class representing an invalid AWS configuration */\nexport class InvalidAWSConfigError extends Error {\n constructor(message: string) {\n super(message)\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"k6/html\");","import { JSONObject } from './json'\nimport { parseHTML } from 'k6/html'\nimport { Response } from 'k6/http'\n\n/**\n * Base class to derive errors from\n *\n * Inspired from AWS official error types, as\n * described in:\n * * https://aws.amazon.com/blogs/developer/service-error-handling-modular-aws-sdk-js/\n * * https://github.com/aws/aws-sdk-js/blob/master/lib/error.d.ts\n */\nexport class AWSError extends Error {\n /**\n * Error code issued by the service (if any)\n */\n code?: string\n\n /**\n * Create an AWSError\n *\n * @param {string} message - A longer human readable error message.\n * @param {string?} code - A unique short code representing the error that was emitted\n */\n constructor(message: string, code?: string) {\n super(message)\n this.name = 'AWSError'\n this.code = code\n }\n\n /**\n * Parse an AWSError from an XML document\n *\n * @param {string} xmlDocument - Serialized XML document to parse the error from\n * @returns {AWSError} - The parsed AWSError object\n */\n static parseXML(xmlDocument: string): AWSError {\n const doc = parseHTML(xmlDocument)\n return new AWSError(doc.find('Message').text(), doc.find('Code').text())\n }\n\n /**\n * Parse an AWSError from a Response object\n *\n * @param {Response} response - The Response object to parse the error from\n * @returns {AWSError} - The parsed AWSError object\n */\n static parse(response: Response): AWSError {\n if (response.headers['Content-Type'] === 'application/json') {\n const error = (response.json() as JSONObject) || {}\n const message =\n error.Message ||\n error.message ||\n error.__type ||\n 'An error occurred on the server side'\n const code = response.headers['X-Amzn-Errortype'] || error.__type\n return new AWSError(message as string, code as string)\n } else {\n return AWSError.parseXML(response.body as string)\n }\n }\n}\n\n/**\n * Base class for network errors as produced by k6.\n *\n * Based on the network error handling in k6, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n *\n * @typeparam N - The name of the network error\n * @typeparam K - The kind of the network error\n */\nexport class NetworkError extends Error {\n code: K\n name: N\n\n /**\n * Create a NetworkError\n *\n * @param {N} name - The name of the network error\n * @param {K} code - The kind of the network error\n */\n constructor(name: N, code: K) {\n super(ErrorMessages[code] || 'An unknown error occurred')\n this.name = name\n this.code = code\n }\n}\n\n/**\n * Represents a general network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class GeneralError extends NetworkError<'GeneralError', GeneralErrorKind> {\n /**\n * Create a GeneralError\n *\n * @param {GeneralErrorKind} code - The kind of the general error\n */\n constructor(code: GeneralErrorKind) {\n super('GeneralError', code)\n }\n}\n\n/**\n * Represents a DNS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class DNSError extends NetworkError<'DNSError', DNSErrorKind> {\n /**\n * Create a DNSError\n *\n * @param {DNSErrorKind} code - The kind of the DNS error\n */\n constructor(code: DNSErrorKind) {\n super('DNSError', code)\n }\n}\n\n/**\n * Represents a TCP-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class TCPError extends NetworkError<'TCPError', TCPErrorKind> {\n /**\n * Create a TCPError\n *\n * @param {TCPErrorKind} code - The kind of the TCP error\n */\n constructor(code: TCPErrorKind) {\n super('TCPError', code)\n }\n}\n\n/**\n * Represents a TLS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class TLSError extends NetworkError<'TLSError', TLSErrorKind> {\n /**\n * Create a TLSError\n *\n * @param {TLSErrorKind} code - The kind of the TLS error\n */\n constructor(code: TLSErrorKind) {\n super('TLSError', code)\n }\n}\n\n/**\n * Represents an HTTP/2-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class HTTP2Error extends NetworkError<'HTTP2Error', HTTP2ErrorKind> {\n /**\n * Create an HTTP2Error\n *\n * @param {HTTP2ErrorKind} code - The kind of the HTTP/2 error\n */\n constructor(code: HTTP2ErrorKind) {\n super('HTTP2Error', code)\n }\n}\n\n/**\n * Represents the name of a network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\ntype NetworkErrorName = 'GeneralError' | 'DNSError' | 'TCPError' | 'TLSError' | 'HTTP2Error'\n\n/**\n * Represents the kind of a network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\ntype ErrorKind = GeneralErrorKind | DNSErrorKind | TCPErrorKind | TLSErrorKind | HTTP2ErrorKind\n\n/**\n * Represents the kind of a general network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum GeneralErrorKind {\n GenericError = 1000,\n NonTCPNetworkError = 1010,\n InvalidURL = 1020,\n HTTPRequestTimeout = 1050,\n}\n\n/**\n * Represents the kind of a DNS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum DNSErrorKind {\n GenericDNSError = 1100,\n NoIPFound = 1101,\n BlacklistedIP = 1110,\n BlacklistedHostname = 1111,\n}\n\n/**\n * Represents the kind of a TCP-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum TCPErrorKind {\n GenericTCPError = 1200,\n BrokenPipeOnWrite = 1201,\n UnknownTCPError = 1202,\n GeneralTCPDialError = 1210,\n DialTimeoutError = 1211,\n DialConnectionRefused = 1212,\n DialUnknownError = 1213,\n ResetByPeer = 1220,\n}\n\n/**\n * Represents the kind of a TLS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum TLSErrorKind {\n GeneralTLSError = 1300,\n UnknownAuthority = 1310,\n CertificateHostnameMismatch = 1311,\n}\n\n/**\n * Represents the kind of an HTTP/2-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum HTTP2ErrorKind {\n GenericHTTP2Error = 1600,\n GeneralHTTP2GoAwayError = 1610,\n}\n\n/**\n * Error messages for each kind of network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nconst ErrorMessages: { [key in ErrorKind]: string } = {\n [GeneralErrorKind.GenericError]: 'A generic error that isn’t any of the ones listed below',\n [GeneralErrorKind.NonTCPNetworkError]:\n 'A non-TCP network error - this is a placeholder and there is no error currently known to trigger it',\n [GeneralErrorKind.InvalidURL]: 'An invalid URL was specified',\n [GeneralErrorKind.HTTPRequestTimeout]: 'The HTTP request has timed out',\n [DNSErrorKind.GenericDNSError]: 'A generic DNS error that isn’t any of the ones listed below',\n [DNSErrorKind.NoIPFound]: 'No IP for the provided host was found',\n [DNSErrorKind.BlacklistedIP]:\n 'Blacklisted IP was resolved or a connection to such was tried to be established',\n [DNSErrorKind.BlacklistedHostname]: 'Blacklisted hostname using The Block Hostnames option',\n [TCPErrorKind.GenericTCPError]: 'A generic TCP error that isn’t any of the ones listed below',\n [TCPErrorKind.BrokenPipeOnWrite]:\n 'A “broken pipe” on write - the other side has likely closed the connection',\n [TCPErrorKind.UnknownTCPError]:\n 'An unknown TCP error - We got an error that we don’t recognize but it is from the operating system and has errno set on it. The message in error includes the operation(write,read) and the errno, the OS, and the original message of the error',\n [TCPErrorKind.GeneralTCPDialError]: 'General TCP dial error',\n [TCPErrorKind.DialTimeoutError]: 'Dial timeout error - the timeout for the dial was reached',\n [TCPErrorKind.DialConnectionRefused]:\n 'Dial connection refused - the connection was refused by the other party on dial',\n [TCPErrorKind.DialUnknownError]: 'Dial unknown error',\n [TCPErrorKind.ResetByPeer]:\n 'Reset by peer - the connection was reset by the other party, most likely a server',\n [TLSErrorKind.GeneralTLSError]: 'General TLS error',\n [TLSErrorKind.UnknownAuthority]: 'Unknown authority - the certificate issuer is unknown',\n [TLSErrorKind.CertificateHostnameMismatch]: 'The certificate doesn’t match the hostname',\n [HTTP2ErrorKind.GenericHTTP2Error]:\n 'A generic HTTP/2 error that isn’t any of the ones listed below',\n [HTTP2ErrorKind.GeneralHTTP2GoAwayError]: 'A general HTTP/2 GoAway error',\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"k6/http\");","import { RefinedResponse, ResponseType, Params } from 'k6/http'\n\nimport { AWSConfig } from './config'\nimport { Endpoint } from './endpoint'\nimport { HTTPHeaders } from './http'\nimport {\n GeneralErrorKind,\n DNSErrorKind,\n TCPErrorKind,\n TLSErrorKind,\n HTTP2ErrorKind,\n GeneralError,\n DNSError,\n TCPError,\n TLSError,\n HTTP2Error,\n} from './error'\n\n/**\n * Class allowing to build requests targeting AWS APIs\n *\n * This class is meant to be used as a base class for specific\n * services clients. See S3Client or SecretsManagerClient for\n * usage examples.\n */\nexport class AWSClient {\n readonly awsConfig: AWSConfig\n readonly serviceName: string\n\n // Because jslib-aws is mostly used as a way to setup or feed k6 tests, and\n // we want the jslib-aws to be able to disregard k6's discardResponseBodies: meaning\n // that for instance, even when setting discardResponseBodies to true in the k6 options, using\n // s3.getObject still receives the underlying response body and returns data to the user.\n //\n // To achieve this, we set the responseType to 'text' in the baseRequestParams, as it\n // will lead the http module to ignore the discardResponseBodies option.\n //\n // AWS Client classes can override this value if they want to receive the response body\n // as a different type ('binary' for instance, e.g. S3Client.getObject).\n //\n // See #45: https://github.com/grafana/k6-jslib-aws/issues/45\n readonly baseRequestParams: Params = {\n responseType: 'text',\n }\n\n private _endpoint?: Endpoint\n\n /**\n * @param {AWSConfig} awsConfig - configuration attributes to use when interacting with AWS' APIs\n * @param {string} serviceName - name of the service to target.\n * @param {URIEncodingConfig} URIencodingConfig - configures how requests URIs should be encoded.\n */\n constructor(awsConfig: AWSConfig, serviceName: string) {\n this.awsConfig = awsConfig\n this.serviceName = serviceName\n\n // If an endpoint is provided in the config, set it\n // to ensure the default endpoint is not used.\n if (awsConfig.endpoint != undefined) {\n this._endpoint = awsConfig.endpoint\n }\n }\n\n /**\n * Represents the endpoint URL of the AWS service.\n *\n * If no custom endpoint is set, a default endpoint will be constructed\n * using the service name and region provided in the AWS config.\n *\n * @type {Endpoint}\n * @public\n */\n public get endpoint() {\n if (this._endpoint == undefined) {\n this._endpoint = new Endpoint(\n `https://${this.serviceName}.${this.awsConfig.region}.amazonaws.com`\n )\n }\n return this._endpoint\n }\n\n /**\n * Updates the endpoint URL of the AWS service.\n *\n * This can be used to override the default AWS service endpoint or set a custom endpoint.\n *\n * @param {Endpoint} endpoint - The new endpoint to set for the AWS service.\n * @public\n */\n public set endpoint(endpoint: Endpoint) {\n this._endpoint = endpoint\n }\n\n /**\n * Handles the k6 http response potential errors produced when making a\n * request to an AWS service.\n *\n * Importantly, this method only handles errors that emerge from the k6 http client itself, and\n * won't handle AWS specific errors. To handle AWS specific errors, client classes are\n * expected to implement their own error handling logic by overriding this method.\n *\n * @param response {RefinedResponse} the response received by the k6 http client\n * @param operation {string | undefined } the name of the operation that was attempted when the error occurred\n * @param {boolean} returns true if an error was handled, false otherwise\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n protected handleError(response: RefinedResponse, operation?: string): boolean {\n const status: number = response.status\n const errorCode: number = response.error_code\n const errorMessage: string = response.error\n\n // We consider codes 200-299 as success.\n //\n // We do not consider 3xx as success as some services such as S3 can use\n // 301 to indicate a bucket not found\n if (status >= 200 && status < 300 && errorMessage == '' && errorCode === 0) {\n return false\n }\n\n switch (errorCode) {\n case GeneralErrorKind.GenericError:\n case GeneralErrorKind.NonTCPNetworkError:\n case GeneralErrorKind.InvalidURL:\n case GeneralErrorKind.HTTPRequestTimeout:\n throw new GeneralError(errorCode);\n case DNSErrorKind.GenericDNSError:\n case DNSErrorKind.NoIPFound:\n case DNSErrorKind.BlacklistedIP:\n case DNSErrorKind.BlacklistedHostname:\n throw new DNSError(errorCode);\n case TCPErrorKind.GenericTCPError:\n case TCPErrorKind.BrokenPipeOnWrite:\n case TCPErrorKind.UnknownTCPError:\n case TCPErrorKind.GeneralTCPDialError:\n case TCPErrorKind.DialTimeoutError:\n case TCPErrorKind.DialConnectionRefused:\n case TCPErrorKind.DialUnknownError:\n case TCPErrorKind.ResetByPeer:\n throw new TCPError(errorCode);\n case TLSErrorKind.GeneralTLSError:\n case TLSErrorKind.UnknownAuthority:\n case TLSErrorKind.CertificateHostnameMismatch:\n throw new TLSError(errorCode);\n case HTTP2ErrorKind.GenericHTTP2Error:\n case HTTP2ErrorKind.GeneralHTTP2GoAwayError:\n throw new HTTP2Error(errorCode);\n }\n\n return true\n }\n}\n\n/**\n * Type alias representing the result of an AWSClient.buildRequest call\n */\nexport interface AWSRequest {\n readonly url: string\n readonly headers: HTTPHeaders\n}\n","/**\n * Standard Amazon AWS query parameter names\n */\nexport const AMZ_ALGORITHM_QUERY_PARAM = 'X-Amz-Algorithm'\nexport const AMZ_CREDENTIAL_QUERY_PARAM = 'X-Amz-Credential'\nexport const AMZ_DATE_QUERY_PARAM = 'X-Amz-Date'\nexport const AMZ_EXPIRES_QUERY_PARAM = 'X-Amz-Expires'\nexport const AMZ_SIGNATURE_QUERY_PARAM = 'X-Amz-Signature'\nexport const AMZ_SIGNED_HEADERS_QUERY_PARAM = 'X-Amz-SignedHeaders'\nexport const AMZ_TARGET_QUERY_PARAM = 'X-Amz-Target'\nexport const AMZ_TOKEN_QUERY_PARAM = 'X-Amz-Security-Token'\n\n/**\n * Standard Amazon AWS header names\n */\nexport const AMZ_CONTENT_SHA256_HEADER = 'x-amz-content-sha256'\nexport const AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase()\nexport const AMZ_SIGNATURE_HEADER = AMZ_SIGNATURE_QUERY_PARAM.toLowerCase()\nexport const AMZ_TARGET_HEADER = AMZ_TARGET_QUERY_PARAM.toLowerCase()\nexport const AMZ_TOKEN_HEADER = AMZ_TOKEN_QUERY_PARAM.toLowerCase()\n\n/**\n * Common HTTP headers we rely on in the signing process\n */\nexport const AUTHORIZATION_HEADER = 'authorization'\nexport const DATE_HEADER = 'date'\n\n/**\n * Lists the headers that are generated as part of the signature process.\n */\nexport const GENERATED_HEADERS = [AUTHORIZATION_HEADER, AMZ_DATE_HEADER, DATE_HEADER]\nexport const HOST_HEADER = 'host'\n\n/**\n * Lists the headers that should never be included in the\n * request signature signature process.\n */\nexport const ALWAYS_UNSIGNABLE_HEADERS = {\n authorization: true,\n 'cache-control': true,\n connection: true,\n expect: true,\n from: true,\n 'keep-alive': true,\n 'max-forwards': true,\n pragma: true,\n referer: true,\n te: true,\n trailer: true,\n 'transfer-encoding': true,\n upgrade: true,\n 'user-agent': true,\n 'x-amzn-trace-id': true,\n}\n\n/**\n * Signature specific constants included in the signing process\n */\nexport const KEY_TYPE_IDENTIFIER = 'aws4_request'\nexport const SIGNING_ALGORITHM_IDENTIFIER = 'AWS4-HMAC-SHA256'\n\n/**\n * Maximum time to live of a signed request in seconds: 7 days.\n */\nexport const MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7\n\n/**\n * SHA256 hash of an empty string (so we don't waste cycles recomputing it)\n */\nexport const EMPTY_SHA256 = 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'\n\n/**\n * SHA256 hash of the unsigned payload constant (so we don't waste cycles recomputing it)\n */\nexport const UNSIGNED_PAYLOAD_SHA256 =\n '5a41b0751e4537c6ff868564ab44a4d4ecceec2ec5b1c5f74d97422968e04237'\n\nexport const UNSIGNED_PAYLOAD = 'UNSIGNED-PAYLOAD'\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"k6/crypto\");","import crypto from 'k6/crypto'\n\nimport * as constants from './constants'\nimport { AWSError } from './error'\nimport { hasHeader, HTTPHeaderBag, HTTPRequest, QueryParameterBag, SignedHTTPRequest } from './http'\nimport { isArrayBuffer } from './utils'\n\n/**\n * SignatureV4 can be used to sign HTTP requests and presign URLs using the AWS Signature\n * Version 4 signing process.\n *\n * It offers two signing methods:\n * - sign: signs the request headers and payload\n * - presign: returns a presigned (authorization information contained in the query string) URL\n *\n * @see https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html\n */\nexport class SignatureV4 {\n /**\n * The name of the service to sign for.\n */\n private readonly service: string\n\n /**\n * The name of the region to sign for.\n */\n private readonly region: string\n\n /**\n * The credentials with which the request should be signed.\n */\n private readonly credentials: Credentials\n\n /**\n * Whether to uri-escape the request URI path as part of computing the\n * canonical request string. This is required for every AWS service, except\n * Amazon S3, as of late 2017.\n *\n * @default [true]\n */\n private readonly uriEscapePath: boolean\n\n /**\n * Whether to calculate a checksum of the request body and include it as\n * either a request header (when signing) or as a query string parameter\n * (when presigning). This is required for AWS Glacier and Amazon S3 and optional for\n * every other AWS service as of late 2017.\n *\n * @default [true]\n */\n private readonly applyChecksum: boolean\n\n // TODO: uriEscapePath and applyChecksum should not be present in the constructor\n constructor({\n service,\n region,\n credentials,\n uriEscapePath,\n applyChecksum,\n }: SignatureV4Options) {\n this.service = service\n this.region = region\n this.credentials = credentials\n this.uriEscapePath = typeof uriEscapePath === 'boolean' ? uriEscapePath : true\n this.applyChecksum = typeof applyChecksum === 'boolean' ? applyChecksum : true\n }\n\n /**\n * Includes AWS v4 signing information to the provided HTTP request.\n *\n * This method adds an Authorization header to the request, containing\n * the signature and other signing information. It also returns a preformatted\n * URL that can be used to make the k6 http request.\n *\n * This method mutates the request object.\n *\n * @param request {HTTPRequest} The request to sign.\n * @param options {Partial} Options for signing the request.\n * @returns {SignedHTTPRequest} The signed request.\n */\n sign(request: HTTPRequest, options: Partial = {}): SignedHTTPRequest {\n // Set default values for options which are not provided by the user.\n const defaultOptions = {\n signingDate: new Date(),\n unsignableHeaders: new Set(),\n signableHeaders: new Set(),\n }\n\n // Merge default options with the ones maybe provided by the user.\n const finalOptions = { ...defaultOptions, ...options }\n\n const { longDate, shortDate }: DateInfo = formatDate(finalOptions.signingDate)\n const service = finalOptions.signingService || this.service\n const region = finalOptions.signingRegion || this.region\n const scope = `${shortDate}/${region}/${service}/${constants.KEY_TYPE_IDENTIFIER}`\n\n // Required by the specification:\n // \"For HTTP/1.1 requests, you must include the host header at a minimum.\n // Standard headers like content-type are optional.\n // For HTTP/2 requests, you must include the :authority header instead of\n // the host header. Different services might require other headers.\"\n if (!request.headers[constants.HOST_HEADER]) {\n request.headers[constants.HOST_HEADER] = request.endpoint.hostname\n }\n\n // Filter out headers that will be generated and managed by the signing process.\n // If the user provide any of those as part of the HTTPRequest's headers, they\n // will be ignored.\n for (const headerName of Object.keys(request.headers)) {\n if (constants.GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) {\n delete request.headers[headerName]\n }\n }\n\n request.headers[constants.AMZ_DATE_HEADER] = longDate\n if (this.credentials.sessionToken) {\n request.headers[constants.AMZ_TOKEN_HEADER] = this.credentials.sessionToken\n }\n\n // If the request body is a typed array, we need to convert it to a buffer\n // so that we can calculate the checksum.\n if (ArrayBuffer.isView(request.body)) {\n request.body = request.body.buffer\n }\n\n // Ensure we avoid passing undefined to the crypto hash function.\n if (!request.body) {\n request.body = ''\n }\n\n const payloadHash = this.computePayloadHash(request)\n if (\n !hasHeader(constants.AMZ_CONTENT_SHA256_HEADER, request.headers) &&\n this.applyChecksum\n ) {\n request.headers[constants.AMZ_CONTENT_SHA256_HEADER] = payloadHash\n }\n\n const canonicalHeaders = this.computeCanonicalHeaders(\n request,\n finalOptions.unsignableHeaders,\n finalOptions.signableHeaders\n )\n const signature = this.calculateSignature(\n longDate,\n scope,\n this.deriveSigningKey(this.credentials, service, region, shortDate),\n this.createCanonicalRequest(request, canonicalHeaders, payloadHash)\n )\n\n /**\n * Step 4 of the signing process: add the signature to the HTTP request's headers.\n *\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html\n */\n request.headers[constants.AUTHORIZATION_HEADER] =\n `${constants.SIGNING_ALGORITHM_IDENTIFIER} ` +\n `Credential=${this.credentials.accessKeyId}/${scope}, ` +\n `SignedHeaders=${Object.keys(canonicalHeaders).sort().join(';')}, ` +\n `Signature=${signature}`\n\n // If a request path was provided, add it to the URL\n let url = request.endpoint.href\n if (request.path) {\n // Ensure the URI and the request path are properly concatenated\n // by adding a trailing slash to the URI if it's missing.\n if (!url.endsWith('/') && !request.path.startsWith('/')) {\n url += '/'\n }\n\n // Append the path to the URL\n url += request.path\n }\n\n // If a request query string was provided, add it to the URL\n if (request.query) {\n // We exclude the signature from the query string\n url += `?${this.serializeQueryParameters(request.query)}`\n }\n\n return {\n url: url,\n ...request,\n }\n }\n\n /**\n * Produces a presigned URL with AWS v4 signature information for the provided HTTP request.\n *\n * A presigned URL is a URL that contains the authorization information\n * (signature and other signing information) in the query string. This method\n * returns a preformatted URL that can be used to make the k6 http request.\n *\n * @param originalRequest - The original request to presign.\n * @param options - Options controlling the signing of the request.\n * @returns A signed request, including the presigned URL.\n */\n presign(originalRequest: HTTPRequest, options: PresignOptions = {}): SignedHTTPRequest {\n const {\n signingDate = new Date(),\n expiresIn = 3600,\n unsignableHeaders,\n unhoistableHeaders,\n signableHeaders,\n signingRegion,\n signingService,\n } = options\n const { longDate, shortDate }: DateInfo = formatDate(signingDate)\n const region = signingRegion || this.region\n const service = signingService || this.service\n\n if (expiresIn > constants.MAX_PRESIGNED_TTL) {\n throw new InvalidSignatureError(\n \"Signature version 4 presigned URLs can't be valid for more than 7 days\"\n )\n }\n\n const scope = `${shortDate}/${region}/${service}/${constants.KEY_TYPE_IDENTIFIER}`\n const request = this.moveHeadersToQuery(originalRequest, { unhoistableHeaders })\n\n // Required by the specification:\n // \"For HTTP/1.1 requests, you must include the host header at a minimum.\n // Standard headers like content-type are optional.\n // For HTTP/2 requests, you must include the :authority header instead of\n // the host header. Different services might require other headers.\"\n if (!request.headers[constants.HOST_HEADER]) {\n request.headers[constants.HOST_HEADER] = originalRequest.endpoint.hostname\n }\n\n // If the user provided a session token, include it in the signed url query string.\n if (this.credentials.sessionToken) {\n request.query[constants.AMZ_TOKEN_QUERY_PARAM] = this.credentials.sessionToken\n }\n // Add base signing query parameters to the request, as described in the documentation\n // @see https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html\n request.query[constants.AMZ_ALGORITHM_QUERY_PARAM] = constants.SIGNING_ALGORITHM_IDENTIFIER\n request.query[\n constants.AMZ_CREDENTIAL_QUERY_PARAM\n ] = `${this.credentials.accessKeyId}/${scope}`\n request.query[constants.AMZ_DATE_QUERY_PARAM] = longDate\n request.query[constants.AMZ_EXPIRES_QUERY_PARAM] = expiresIn.toString(10)\n\n const canonicalHeaders = this.computeCanonicalHeaders(\n request,\n unsignableHeaders,\n signableHeaders\n )\n request.query[constants.AMZ_SIGNED_HEADERS_QUERY_PARAM] = Object.keys(canonicalHeaders)\n .sort()\n .join(';')\n\n const signingKey = this.deriveSigningKey(this.credentials, service, region, shortDate)\n\n // Computing the payload from the original request. This is required\n // in the event the user attempts to produce a presigned URL for s3,\n // which requires the payload hash to be 'UNSIGNED-PAYLOAD'.\n //\n // To that effect, users need to set the 'x-amz-content-sha256' header,\n // and mark it as unhoistable and unsignable. When setup this way,\n // the computePayloadHash method will then return the string 'UNSIGNED-PAYLOAD'.\n const payloadHash = this.computePayloadHash(originalRequest)\n const canonicalRequest = this.createCanonicalRequest(request, canonicalHeaders, payloadHash)\n\n request.query[constants.AMZ_SIGNATURE_QUERY_PARAM] = this.calculateSignature(\n longDate,\n scope,\n signingKey,\n canonicalRequest\n )\n\n // If a request path was provided, add it to the URL\n let url = originalRequest.endpoint.href\n if (request.path) {\n // Ensure there is a trailing slash at the end of the URL\n // so that appending the path does not result in a malformed URL.\n url = url?.endsWith('/') ? url : url + '/'\n\n // Append the path to the URL\n url += request.path\n }\n\n // If a request query string was provided, add it to the URL\n if (request.query) {\n url += `?${this.serializeQueryParameters(request.query)}`\n }\n\n return { url: url, ...request }\n }\n\n /**\n * Create a string including information from your request\n * in a AWS signature v4 standardized (canonical) format.\n *\n * Step 1 of the signing process: create the canonical request string.\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html\n *\n * @param request {HTTPRequest} The request to sign.\n * @param canonicalHeaders {HTTPHeaderBag} The request's canonical headers.\n * @param payloadHash {string} The hexadecimally encoded request's payload hash .\n * @returns {string} The canonical request string.\n */\n private createCanonicalRequest(\n request: HTTPRequest,\n canonicalHeaders: HTTPHeaderBag,\n payloadHash: string\n ): string {\n const sortedHeaders = Object.keys(canonicalHeaders).sort()\n const sortedCanonicalHeaders = sortedHeaders\n .map((name) => `${name}:${canonicalHeaders[name]}`)\n .join('\\n')\n const signedHeaders = sortedHeaders.join(';')\n\n return (\n `${request.method}\\n` +\n `${this.computeCanonicalURI(request)}\\n` +\n `${this.computeCanonicalQuerystring(request)}\\n` +\n `${sortedCanonicalHeaders}\\n\\n` +\n `${signedHeaders}\\n` +\n `${payloadHash}`\n )\n }\n\n /**\n * Create the \"string to sign\" part of the signature Version 4 protocol.\n *\n * The \"string to sign\" includes meta information about your request and\n * about the canonical request that you created with `createCanonicalRequest`.\n * It is used hand in hand with the signing key to create the request signature.\n * Step 2 of the signing process: create the string to sign.\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-create-string-to-sign.html\n *\n * @param longDate {string} The request's date in iso 8601 format.\n * @param credentialScope {string} The request's credential scope.\n * @param canonicalRequest {string} The request's canonical request.\n * @returns {string} The \"string to sign\".\n */\n private createStringToSign(\n longDate: string,\n credentialScope: string,\n canonicalRequest: string\n ): string {\n const hashedCanonicalRequest = crypto.sha256(canonicalRequest, 'hex')\n\n return (\n `${constants.SIGNING_ALGORITHM_IDENTIFIER}\\n` +\n `${longDate}\\n` +\n `${credentialScope}\\n` +\n `${hashedCanonicalRequest}`\n )\n }\n\n /**\n * Calculte the signature for AWS signature version 4.\n *\n * Step 3 of the signing process: create the signature.\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-calculate-signature.html\n *\n * @param longDate {string} The request's date in iso 8601 format.\n * @param credentialScope {string} The request's credential scope.\n * @param signingKey {string} the signing key as computed by the deriveSigningKey method.\n * @param canonicalRequest {string} The request's canonical request.\n * @returns {string} The signature.\n */\n private calculateSignature(\n longDate: string,\n credentialScope: string,\n signingKey: Uint8Array,\n canonicalRequest: string\n ): string {\n const stringToSign = this.createStringToSign(longDate, credentialScope, canonicalRequest)\n return crypto.hmac('sha256', signingKey, stringToSign, 'hex')\n }\n\n /**\n * Derives the signing key for authenticating requests signed with\n * the Signature version 4 authentication protocol.\n *\n * deriveSigningKey produces a signing key by creating a series of\n * hash-based message authentication codes (HMACs) represented in\n * a binary format.\n *\n * The derived signing key is specific to the date it's made at, as well as\n * the service and region it targets.\n *\n * @param credentials {AWSCredentials} The credentials to use for signing.\n * @param service {string} The service the request is targeted at.\n * @param region {string} The region the request is targeted at.\n * @param shortDate {string} The request's date in YYYYMMDD format.\n * @returns {Uint8Array} The derived signing key.\n */\n private deriveSigningKey(\n credentials: Credentials,\n service: string,\n region: string,\n shortDate: string\n ): Uint8Array {\n const kSecret: string = credentials.secretAccessKey\n /**\n * crypto.hmac returns a value of type `bytes`, which is an alias for\n * number[]. However, the secret argument to hmac needs to either be\n * a `string` or ArrayBuffer. The only way to get around this is to\n * cast the return value of hmac to any, thus, we disable the no-explicit-any\n * ESLint rule for this function.\n */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const kDate: any = crypto.hmac('sha256', 'AWS4' + kSecret, shortDate, 'binary')\n const kRegion: any = crypto.hmac('sha256', kDate, region, 'binary')\n const kService: any = crypto.hmac('sha256', kRegion, service, 'binary')\n const kSigning: any = crypto.hmac('sha256', kService, 'aws4_request', 'binary')\n /* eslint-enable @typescript-eslint/no-explicit-any */\n\n return kSigning\n }\n\n /**\n * Create a string that includes information from your request\n * in a AWS signature v4 standardized (canonical) format.\n *\n * @param param0 {HTTPRequest} The request to sign.\n * @returns {string} The canonical URI.\n */\n private computeCanonicalURI({ path }: HTTPRequest): string {\n if (this.uriEscapePath) {\n // Non-S3 services, we normalize the path and then double URI encode it.\n // Ref: \"Remove Dot Segments\" https://datatracker.ietf.org/doc/html/rfc3986#section-5.2.4\n const normalizedURISegments = []\n\n for (const URISegment of path.split('/')) {\n if (URISegment?.length === 0) {\n continue\n }\n\n if (URISegment === '.') {\n continue\n }\n\n if (URISegment === '..') {\n normalizedURISegments.pop()\n } else {\n normalizedURISegments.push(URISegment)\n }\n }\n\n // Normalize the URI\n const leading = path?.startsWith('/') ? '/' : ''\n const URI = normalizedURISegments.join('/')\n const trailing = normalizedURISegments.length > 0 && path?.endsWith('/') ? '/' : ''\n const normalizedURI = `${leading}${URI}${trailing}`\n\n const doubleEncoded = encodeURIComponent(normalizedURI)\n\n return doubleEncoded.replace(/%2F/g, '/')\n }\n\n // For S3, we shouldn't normalize the path. For example, object name\n // my-object//example//photo.user should not be normalized to\n // my-object/example/photo.user\n return path\n }\n\n /**\n * Serializes the request's query parameters into their canonical\n * string version. If the request does not include a query parameters,\n * returns an empty string.\n *\n * @param param0 {HTTPRequest} The request containing the query parameters.\n * @returns {string} The canonical query string.\n */\n private computeCanonicalQuerystring({ query = {} }: HTTPRequest): string {\n const keys: Array = []\n const serialized: Record = {}\n\n for (const key of Object.keys(query).sort()) {\n if (key.toLowerCase() === constants.AMZ_SIGNATURE_HEADER) {\n continue\n }\n\n keys.push(key)\n const value = query[key]\n\n if (typeof value === 'string') {\n serialized[key] = `${escapeURI(key)}=${escapeURI(value)}`\n } else if (Array.isArray(value)) {\n serialized[key] = value\n .slice(0)\n .sort()\n .reduce(\n (encoded: Array, value: string) =>\n encoded.concat([`${escapeURI(key)}=${escapeURI(value)}`]),\n []\n )\n .join('&')\n }\n }\n\n return keys\n .map((key) => serialized[key])\n .filter((serialized) => serialized)\n .join('&')\n }\n\n /**\n * Create the canonical form of the request's headers.\n * Canonical headers consist of all the HTTP headers you\n * are including with the signed request.\n *\n * @param param0 {HTTPRequest} The request to compute the canonical headers of.\n * @param unsignableHeaders {Set} The headers that should not be signed.\n * @param signableHeaders {Set} The headers that should be signed.\n * @returns {string} The canonical headers.\n */\n private computeCanonicalHeaders(\n { headers }: HTTPRequest,\n unsignableHeaders?: Set,\n signableHeaders?: Set\n ): HTTPHeaderBag {\n const canonicalHeaders: HTTPHeaderBag = {}\n\n for (const headerName of Object.keys(headers).sort()) {\n if (headers[headerName] == undefined) {\n continue\n }\n\n const canonicalHeaderName = headerName.toLowerCase()\n if (\n canonicalHeaderName in constants.ALWAYS_UNSIGNABLE_HEADERS ||\n unsignableHeaders?.has(canonicalHeaderName)\n ) {\n if (\n !signableHeaders ||\n (signableHeaders && !signableHeaders.has(canonicalHeaderName))\n ) {\n continue\n }\n }\n\n if (typeof headers[headerName] === 'string') {\n canonicalHeaders[canonicalHeaderName] = headers[headerName] = headers[headerName]\n .trim()\n .replace(/\\s+/g, ' ')\n }\n }\n\n return canonicalHeaders\n }\n\n /**\n * Computes the SHA256 cryptographic hash of the request's body.\n *\n * If the headers contain the 'X-Amz-Content-Sha256' header, then\n * the value of that header is returned instead. This proves useful\n * when, for example, presiging a URL for S3, as the payload hash\n * must always be equal to 'UNSIGNED-PAYLOAD'.\n *\n * @param param0 {HTTPRequest} The request to compute the payload hash of.\n * @returns {string} The hex encoded SHA256 payload hash, or the value of the 'X-Amz-Content-Sha256' header.\n */\n private computePayloadHash({ headers, body }: HTTPRequest): string {\n // for (const headerName of Object.keys(headers)) {\n // // If the header is present, return its value.\n // // So that we let the 'UNSIGNED-PAYLOAD' value pass through.\n // if (headerName.toLowerCase() === constants.AMZ_CONTENT_SHA256_HEADER) {\n // return headers[headerName]\n // }\n // }\n\n if (headers[constants.AMZ_CONTENT_SHA256_HEADER]) {\n return headers[constants.AMZ_CONTENT_SHA256_HEADER]\n }\n\n if (body == undefined) {\n return constants.EMPTY_SHA256\n }\n\n if (typeof body === 'string' || isArrayBuffer(body)) {\n return crypto.sha256(body, 'hex').toLowerCase()\n }\n\n if (ArrayBuffer.isView(body)) {\n // If the request body is a typed array, we need to convert it to a buffer\n // so that we can calculate the checksum.\n return crypto.sha256((body as DataView).buffer, 'hex').toLowerCase()\n }\n\n return constants.UNSIGNED_PAYLOAD\n }\n\n /**\n * Moves a request's headers to its query parameters.\n *\n * The operation will ignore any amazon standard headers, prefixed\n * with 'X-Amz-'. It will also ignore any headers specified as unhoistable\n * by the options.\n *\n * The operation will delete the headers from the request.\n *\n * @param request {HTTPRequest} The request to move the headers from.\n * @param options\n * @returns {HTTPRequest} The request with the headers moved to the query parameters.\n */\n private moveHeadersToQuery(\n request: HTTPRequest,\n options: { unhoistableHeaders?: Set } = {}\n ): HTTPRequest & { query: QueryParameterBag } {\n const requestCopy = JSON.parse(JSON.stringify(request))\n const { headers, query = {} as QueryParameterBag } = requestCopy\n\n for (const name of Object.keys(headers)) {\n const lowerCaseName = name.toLowerCase()\n if (\n lowerCaseName.slice(0, 6) === 'x-amz-' &&\n !options.unhoistableHeaders?.has(lowerCaseName)\n ) {\n query[name] = headers[name]\n delete headers[name]\n }\n }\n\n return {\n ...requestCopy,\n headers,\n query,\n }\n }\n\n /**\n * Serializes a HTTPRequest's query parameter bag into a string.\n *\n * @param query {QueryParameterBag} The query parameters to serialize.\n * @param ignoreKeys {Set} The keys to ignore.\n * @returns {string} The serialized, and ready to use in a URL, query parameters.\n */\n private serializeQueryParameters(query: QueryParameterBag, ignoreKeys?: string[]): string {\n const keys: Array = []\n const serialized: Record = {}\n\n for (const key of Object.keys(query).sort()) {\n if (ignoreKeys?.includes(key.toLowerCase())) {\n continue\n }\n\n keys.push(key)\n const value = query[key]\n\n if (typeof value === 'string') {\n serialized[key] = `${escapeURI(key)}=${escapeURI(value)}`\n } else if (Array.isArray(value)) {\n serialized[key] = value\n .slice(0)\n .sort()\n .reduce(\n (encoded: Array, value: string) =>\n encoded.concat([`${escapeURI(key)}=${escapeURI(value)}`]),\n []\n )\n .join('&')\n }\n }\n\n return keys\n .map((key) => serialized[key])\n .filter((serialized) => serialized)\n .join('&')\n }\n}\n\n/**\n * Error indicating an Invalid signature has been sent to AWS services\n *\n * Inspired from AWS official error types, as\n * described in:\n * * https://aws.amazon.com/blogs/developer/service-error-handling-modular-aws-sdk-js/\n * * https://github.com/aws/aws-sdk-js/blob/master/lib/error.d.ts\n */\nexport class InvalidSignatureError extends AWSError {\n /**\n * Constructs an InvalidSignatureError\n *\n * @param {string} message - human readable error message\n */\n constructor(message: string, code?: string) {\n super(message, code)\n this.name = 'InvalidSignatureError'\n }\n}\n\nexport interface SignatureV4Options {\n /**\n * The name of the service to sign for.\n */\n service: string\n\n /**\n * The name of the region to sign for.\n */\n region: string\n\n /**\n * The credentials with which the request should be signed.\n */\n credentials: Credentials\n\n /**\n * Whether to uri-escape the request URI path as part of computing the\n * canonical request string. This is required for every AWS service, except\n * Amazon S3, as of late 2017.\n *\n * @default [true]\n */\n uriEscapePath?: boolean\n\n /**\n * Whether to calculate a checksum of the request body and include it as\n * either a request header (when signing) or as a query string parameter\n * (when presigning). This is required for AWS Glacier and Amazon S3 and optional for\n * every other AWS service as of late 2017.\n *\n * @default [true]\n */\n applyChecksum?: boolean\n}\n\nexport interface SignOptions {\n /**\n * The date and time to be used as signature metadata. This value should be\n * a Date object, a unix (epoch) timestamp, or a string that can be\n * understood by the JavaScript `Date` constructor.If not supplied, the\n * value returned by `new Date()` will be used.\n */\n signingDate?: Date\n\n /**\n * The service signing name. It will override the service name of the signer\n * in current invocation\n */\n signingService?: string\n\n /**\n * The region name to sign the request. It will override the signing region of the\n * signer in current invocation\n */\n signingRegion?: string\n}\n\nexport interface RequestSigningOptions extends SignOptions {\n /**\n * A set of strings whose members represents headers that cannot be signed.\n * All headers in the provided request will have their names converted to\n * lower case and then checked for existence in the unsignableHeaders set.\n */\n unsignableHeaders?: Set\n\n /**\n * A set of strings whose members represents headers that should be signed.\n * Any values passed here will override those provided via unsignableHeaders,\n * allowing them to be signed.\n *\n * All headers in the provided request will have their names converted to\n * lower case before signing.\n */\n signableHeaders?: Set\n}\n\nexport interface PresignOptions extends RequestSigningOptions {\n /**\n * The number of seconds before the presigned URL expires\n */\n expiresIn?: number\n\n /**\n * A set of strings whose representing headers that should not be hoisted\n * to presigned request's query string. If not supplied, the presigner\n * moves all the AWS-specific headers (starting with `x-amz-`) to the request\n * query string. If supplied, these headers remain in the presigned request's\n * header.\n * All headers in the provided request will have their names converted to\n * lower case and then checked for existence in the unhoistableHeaders set.\n */\n unhoistableHeaders?: Set\n}\n\nexport interface Credentials {\n /**\n * AWS access key ID\n */\n readonly accessKeyId: string\n\n /**\n * AWS secret access key\n */\n readonly secretAccessKey: string\n\n /**\n * A security or session token to use with these credentials. Usually\n * present for temporary credentials.\n */\n readonly sessionToken?: string\n}\n\nexport interface DateInfo {\n /**\n * ISO8601 formatted date string\n */\n longDate: string\n\n /**\n * String in the format YYYYMMDD\n */\n shortDate: string\n}\n\n/**\n * Escapes a URI following the AWS signature v4 escaping rules.\n *\n * @param URI {string} The URI to escape.\n * @returns {string} The escaped URI.\n */\nfunction escapeURI(URI: string): string {\n const hexEncode = (c: string): string => {\n return `%${c.charCodeAt(0).toString(16).toUpperCase()}`\n }\n\n return encodeURIComponent(URI).replace(/[!'()*]/g, hexEncode)\n}\n\n/**\n * formatDate formats a Date object into a ISO8601 formatted date string\n * and a string in the format YYYYMMDD.\n *\n * @param date {Date} The date to format.\n * @returns {DateInfo} The formatted date.\n */\nfunction formatDate(date: Date): DateInfo {\n const longDate = iso8601(date).replace(/[-:]/g, '')\n return {\n longDate,\n shortDate: longDate.slice(0, 8),\n }\n}\n\n/**\n * Formats a time into an ISO 8601 string.\n *\n * @see https://en.wikipedia.org/wiki/ISO_8601\n *\n * @param time {number | string | Date} The time to format.\n * @returns {string} The ISO 8601 formatted time.\n */\nfunction iso8601(time: number | string | Date): string {\n return toDate(time)\n .toISOString()\n .replace(/\\.\\d{3}Z$/, 'Z')\n}\n\n/**\n * Converts a time value into a Date object.\n *\n * @param time {number | string | Date} The time to convert.\n * @returns {Date} The resulting Date object.\n */\nfunction toDate(time: number | string | Date): Date {\n if (typeof time === 'number') {\n return new Date(time * 1000)\n }\n\n if (typeof time === 'string') {\n if (Number(time)) {\n return new Date(Number(time) * 1000)\n }\n\n return new Date(time)\n }\n\n return time\n}\n","import { Endpoint } from './endpoint'\n\n/**\n * Type representing HTTP schemes\n */\nexport type HTTPScheme = 'http' | 'https'\n\n/**\n * Type representing HTTP Methods\n *\n */\nexport type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'DELETE'\n\n/**\n * Type alias representing HTTP Headers\n */\nexport type HTTPHeaders = { [key: string]: string }\n\n/**\n * HTTPHeaderBag is a type alias representing HTTP Headers\n */\nexport type HTTPHeaderBag = Record\n\nexport function hasHeader(soughtHeader: string, headers: HTTPHeaderBag): boolean {\n soughtHeader = soughtHeader.toLowerCase()\n\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * QueryParameterBag is a type alias representing HTTP Query Parameters\n */\nexport type QueryParameterBag = Record>\n\n/**\n * HTTPRequest represents an HTTP request\n */\nexport interface HTTPRequest {\n /**\n * The HTTP method to use\n */\n method: HTTPMethod\n\n /**\n * Represents an AWS service endpoint, providing utilities for parsing and handling URL details.\n */\n endpoint: Endpoint\n\n /**\n * The path to the resource\n */\n path: string\n\n /**\n * The query parameters to include in the request\n */\n query?: QueryParameterBag\n\n /**\n * The headers to include in the request\n */\n headers: HTTPHeaderBag\n\n /**\n * The body of the request\n */\n body?: string | ArrayBuffer | null\n}\n\n/**\n * SignedHTTPRequest represents an HTTP request that has been signed\n * with an AWS signature. It is a superset of HTTPRequest adding\n * the following fields:\n * - url: the fully qualified URL of the request that can be used in a k6 http.request.\n */\nexport interface SignedHTTPRequest extends HTTPRequest {\n url: string\n}\n","/**\n *\n * @param value\n * @returns\n */\nexport function isArrayBuffer(value: unknown): value is ArrayBuffer {\n return (\n typeof ArrayBuffer === 'function' &&\n (value instanceof ArrayBuffer ||\n Object.prototype.toString.call(value) === '[object ArrayBuffer]')\n )\n}\n\nexport function toFormUrlEncoded(form: Record): string {\n return Object.keys(form)\n .reduce((params, key) => {\n const value = form[key]\n if (value !== undefined && value !== null) {\n params.push(`${encodeURIComponent(key)}=${encodeURIComponent(value)}`)\n }\n return params\n }, [] as string[])\n .join('&')\n}\n","import { JSONArray, JSONObject } from 'k6'\nimport http, { RefinedResponse, ResponseType } from 'k6/http'\n\nimport { AWSClient } from './client'\nimport { AWSConfig } from './config'\nimport { AMZ_TARGET_HEADER } from './constants'\nimport { AWSError } from './error'\nimport { HTTPHeaders, HTTPMethod } from './http'\nimport { InvalidSignatureError, SignatureV4 } from './signature'\n\n/**\n * Class allowing to interact with Amazon AWS's KMS service\n */\nexport class KMSClient extends AWSClient {\n private readonly signature: SignatureV4\n private readonly method: HTTPMethod\n private readonly commonHeaders: HTTPHeaders\n\n /**\n * Create a KMSClient\n * @param {AWSConfig} awsConfig - configuration attributes to use when interacting with AWS' APIs\n */\n constructor(awsConfig: AWSConfig) {\n super(awsConfig, 'kms')\n\n this.signature = new SignatureV4({\n service: this.serviceName,\n region: awsConfig.region,\n credentials: {\n accessKeyId: awsConfig.accessKeyId,\n secretAccessKey: awsConfig.secretAccessKey,\n sessionToken: awsConfig.sessionToken,\n },\n uriEscapePath: true,\n applyChecksum: false,\n })\n\n // All interactions with the KMS service\n // are made via the GET or POST method.\n this.method = 'POST'\n\n this.commonHeaders = {\n 'Content-Type': 'application/x-amz-json-1.1',\n }\n }\n\n /**\n * Gets a list of all the KMS keys in the caller's AWS\n * account and region.\n *\n * @returns an array of all the available keys\n */\n async listKeys(): Promise> {\n const signedRequest = this.signature.sign(\n {\n method: this.method,\n endpoint: this.endpoint,\n path: '/',\n headers: {\n ...this.commonHeaders,\n // For some reason, the base target is not kms...\n [AMZ_TARGET_HEADER]: `TrentService.ListKeys`,\n },\n body: JSON.stringify({}),\n },\n {}\n )\n\n const res = await http.asyncRequest(this.method, signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, KMSOperation.ListKeys)\n\n const json: JSONArray = res.json('Keys') as JSONArray\n return json.map((k) => KMSKey.fromJSON(k as JSONObject))\n }\n\n /**\n * GenerateDataKey returns a unique symmetric data key for use outside of AWS KMS.\n *\n * This operation returns a plaintext copy of the data key and a copy that is encrypted under a symmetric encryption KMS key that you specify.\n * The bytes in the plaintext key are random; they are not related to the caller or the KMS key.\n * You can use the plaintext key to encrypt your data outside of AWS KMS and store the encrypted data key with the encrypted data.\n *\n * To generate a data key, specify the symmetric encryption KMS key that will be used to encrypt the data key.\n * You cannot use an asymmetric KMS key to encrypt data keys.\n *\n * Used to generate data key with the KMS key defined\n * @param {string} id - Specifies the symmetric encryption KMS key that encrypts the data key. Use its key ID, key ARN, alias name, or alias ARN.\n * @param {KMKeySize} size - Specifies the length of the data key in bytes. For example, use the value 64 to generate a 512-bit data key (64 bytes is 512 bits). Default is 32, and generates a 256-bit data key.\n * @throws {KMSServiceError}\n * @throws {InvalidSignatureError}\n * @returns {KMSDataKey} - The generated data key.\n */\n async generateDataKey(\n id: string,\n size: KMSKeySize = KMSKeySize.Size256\n ): Promise {\n const signedRequest = this.signature.sign(\n {\n method: this.method,\n endpoint: this.endpoint,\n path: '/',\n headers: {\n ...this.commonHeaders,\n // For some reason, the base target is not kms...\n [AMZ_TARGET_HEADER]: `TrentService.GenerateDataKey`,\n },\n body: JSON.stringify({ KeyId: id, NumberOfBytes: size }),\n },\n {}\n )\n\n const res = await http.asyncRequest(this.method, signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, KMSOperation.GenerateDataKey)\n\n return KMSDataKey.fromJSON(res.json() as JSONObject)\n }\n\n protected handleError(response: RefinedResponse, operation?: string): boolean {\n const errored = super.handleError(response, operation);\n if (!errored) {\n return false\n }\n\n const errorCode = response.error_code\n const error = response.json() as JSONObject\n if (errorCode >= 1400 && errorCode <= 1499) {\n // In the event of certain errors, the message is not set.\n // Also, note the inconsistency in casing...\n const errorMessage: string =\n (error.Message as string) || (error.message as string) || (error.__type as string)\n\n // Handle specifically the case of an invalid signature\n if (error.__type === 'InvalidSignatureException') {\n throw new InvalidSignatureError(errorMessage, error.__type)\n }\n\n // Otherwise throw a standard service error\n throw new KMSServiceError(errorMessage, error.__type as string, operation as KMSOperation)\n }\n\n if (errorCode === 1500) {\n throw new KMSServiceError(\n 'An error occured on the server side',\n 'InternalServiceError',\n operation as KMSOperation\n )\n }\n\n return true\n }\n}\n\n/**\n * Class representing a KMS key\n */\nexport class KMSKey {\n /**\n * ARN of the key\n */\n keyArn: string\n\n /**\n * Unique identifier of the key\n */\n keyId: string\n\n constructor(keyArn: string, KeyId: string) {\n this.keyArn = keyArn\n this.keyId = KeyId\n }\n\n static fromJSON(json: JSONObject) {\n return new KMSKey(json.KeyArn as string, json.KeyId as string)\n }\n}\n\n/**\n * Class representing a data key\n */\nexport class KMSDataKey {\n /**\n * The Amazon Resource Name (key ARN) of the KMS key that encrypted the data key.\n */\n id: string\n\n /**\n * The (base64-encoded) encrypted copy of the data key.\n */\n ciphertextBlob: string\n\n /**\n * The plaintext data key.\n * Use this data key to encrypt your data outside of KMS. Then, remove it from memory as soon as possible.\n */\n plaintext: string\n\n constructor(CiphertextBlob: string, KeyId: string, Plaintext: string) {\n this.ciphertextBlob = CiphertextBlob\n this.id = KeyId\n this.plaintext = Plaintext\n }\n\n static fromJSON(json: JSONObject) {\n return new KMSDataKey(\n json.CiphertextBlob as string,\n json.KeyId as string,\n json.Plaintext as string\n )\n }\n}\n\nexport class KMSServiceError extends AWSError {\n operation: KMSOperation\n\n /**\n * Constructs a KMSServiceError\n *\n * @param {string} message - human readable error message\n * @param {string} code - A unique short code representing the error that was emitted\n * @param {string} operation - Name of the failed Operation\n */\n constructor(message: string, code: string, operation: KMSOperation) {\n super(message, code)\n this.name = 'KMSServiceError'\n this.operation = operation\n }\n}\n\n/**\n * KMSOperation defines all currently implemented KMS Service operations.\n */\nenum KMSOperation {\n GenerateDataKey = 'GenerateDataKey',\n ListKeys = 'ListKeys',\n}\n\n/**\n * KMSKeyLength describes possible key lenght values for KMS API data key operations.\n */\nenum KMSKeySize {\n Size256 = 32,\n Size512 = 64,\n}\n"],"names":["__webpack_require__","module","getter","__esModule","d","a","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","Endpoint","endpoint","_classCallCheck","_defineProperty","completeUrl","startsWith","concat","DEFAULT_PROTOCOL","protocolMatch","match","hostnameWithPort","_slicedToArray","replace","split","this","_protocol","slice","_hostname","_port","parseInt","undefined","href","set","_value$split2","hostname","port","protocol","host","AWSConfig","options","region","InvalidAWSConfigError","accessKeyId","length","secretAccessKey","sessionToken","_createClass","__ENV","AWS_REGION","AWS_ACCESS_KEY_ID","AWS_SECRET_ACCESS_KEY","AWS_SESSION_TOKEN","_Error","message","_callSuper","_inherits","_wrapNativeSuper","Error","require","AWSError","code","_this","name","xmlDocument","doc","parseHTML","find","text","response","headers","error","json","Message","__type","parseXML","body","NetworkError","_Error2","_this2","ErrorMessages","GeneralError","_NetworkError2","DNSError","_NetworkError3","TCPError","_NetworkError4","TLSError","_NetworkError5","HTTP2Error","_NetworkError6","GeneralErrorKind","DNSErrorKind","TCPErrorKind","TLSErrorKind","HTTP2ErrorKind","_ErrorMessages","GenericError","NonTCPNetworkError","InvalidURL","HTTPRequestTimeout","GenericDNSError","NoIPFound","BlacklistedIP","BlacklistedHostname","GenericTCPError","BrokenPipeOnWrite","UnknownTCPError","GeneralTCPDialError","DialTimeoutError","DialConnectionRefused","DialUnknownError","ResetByPeer","GeneralTLSError","UnknownAuthority","CertificateHostnameMismatch","GenericHTTP2Error","GeneralHTTP2GoAwayError","AWSClient","awsConfig","serviceName","responseType","_endpoint","operation","status","errorCode","error_code","errorMessage","AMZ_DATE_QUERY_PARAM","AMZ_SIGNATURE_QUERY_PARAM","AMZ_TOKEN_QUERY_PARAM","AMZ_CONTENT_SHA256_HEADER","AMZ_DATE_HEADER","toLowerCase","AMZ_SIGNATURE_HEADER","AMZ_TARGET_HEADER","AMZ_TOKEN_HEADER","AUTHORIZATION_HEADER","GENERATED_HEADERS","HOST_HEADER","ALWAYS_UNSIGNABLE_HEADERS","authorization","connection","expect","from","pragma","referer","te","trailer","upgrade","KEY_TYPE_IDENTIFIER","SIGNING_ALGORITHM_IDENTIFIER","SignatureV4","_ref","service","credentials","uriEscapePath","applyChecksum","request","arguments","finalOptions","_objectSpread","signingDate","Date","unsignableHeaders","Set","signableHeaders","_formatDate","formatDate","longDate","shortDate","signingService","signingRegion","scope","constants","_i","_Object$keys","keys","headerName","indexOf","ArrayBuffer","isView","buffer","payloadHash","computePayloadHash","soughtHeader","hasHeader","canonicalHeaders","computeCanonicalHeaders","signature","calculateSignature","deriveSigningKey","createCanonicalRequest","sort","join","url","path","endsWith","query","serializeQueryParameters","originalRequest","_options$signingDate","_options$expiresIn","expiresIn","unhoistableHeaders","_formatDate2","InvalidSignatureError","moveHeadersToQuery","toString","signingKey","canonicalRequest","_url","sortedHeaders","sortedCanonicalHeaders","map","signedHeaders","method","computeCanonicalURI","computeCanonicalQuerystring","credentialScope","hashedCanonicalRequest","crypto","stringToSign","createStringToSign","kSecret","kDate","kRegion","kService","_ref2","_step","normalizedURISegments","_iterator","_createForOfIteratorHelper","s","n","done","URISegment","pop","push","err","e","f","leading","URI","trailing","normalizedURI","encodeURIComponent","_ref3","_step2","_ref3$query","serialized","_loop","escapeURI","Array","isArray","reduce","encoded","_iterator2","filter","_ref4","_step3","_iterator3","canonicalHeaderName","has","trim","_ref5","requestCopy","JSON","parse","stringify","_requestCopy$query","_i2","_Object$keys2","_options$unhoistableH","lowerCaseName","ignoreKeys","_step4","_loop2","includes","_iterator4","_AWSError","c","charCodeAt","toUpperCase","date","time","Number","toDate","toISOString","_regeneratorRuntime","t","r","i","iterator","asyncIterator","u","define","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","h","l","y","GeneratorFunction","GeneratorFunctionPrototype","p","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","reverse","prev","charAt","stop","rval","handle","complete","finish","delegateYield","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptor","apply","getOwnPropertyDescriptors","defineProperties","asyncGeneratorStep","_asyncToGenerator","_next","_throw","_defineProperties","_toPropertyKey","_getPrototypeOf","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","Boolean","valueOf","_get","bind","_superPropBase","_setPrototypeOf","toPrimitive","String","_toPrimitive","KMSClient","_AWSClient","commonHeaders","_listKeys","_callee","signedRequest","res","_context","sign","http","baseRequestParams","handleError","KMSOperation","ListKeys","k","KMSKey","fromJSON","_generateDataKey","_callee2","id","size","_args2","_context2","KMSKeySize","Size256","KeyId","NumberOfBytes","GenerateDataKey","KMSDataKey","_x","KMSServiceError","keyArn","keyId","KeyArn","CiphertextBlob","Plaintext","ciphertextBlob","plaintext"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/aws/0.13.0/lambda.js b/lib/aws/0.13.0/lambda.js new file mode 100644 index 0000000..6153e54 --- /dev/null +++ b/lib/aws/0.13.0/lambda.js @@ -0,0 +1,3 @@ +/*! For license information please see lambda.js.LICENSE.txt */ +(()=>{"use strict";var e={2:(e,t,r)=>{r.d(t,{R:()=>s});var n=r(556),o=r(539);function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}function a(e,t){for(var r=0;r=200&&r<300&&""==i&&0===n)return!1;switch(n){case o.rN.GenericError:case o.rN.NonTCPNetworkError:case o.rN.InvalidURL:case o.rN.HTTPRequestTimeout:throw new o.$g(n);case o.yk.GenericDNSError:case o.yk.NoIPFound:case o.yk.BlacklistedIP:case o.yk.BlacklistedHostname:throw new o.M8(n);case o.op.GenericTCPError:case o.op.BrokenPipeOnWrite:case o.op.UnknownTCPError:case o.op.GeneralTCPDialError:case o.op.DialTimeoutError:case o.op.DialConnectionRefused:case o.op.DialUnknownError:case o.op.ResetByPeer:throw new o.km(n);case o.cK.GeneralTLSError:case o.cK.UnknownAuthority:case o.cK.CertificateHostnameMismatch:throw new o.ML(n);case o.F9.GenericHTTP2Error:case o.F9.GeneralHTTP2GoAwayError:throw new o.v1(n)}return!0}}])&&a(e.prototype,t),r&&a(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}()},811:(e,t,r)=>{r.d(t,{g:()=>d,r:()=>v});var n=r(556);function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}function i(e,t,r){return t=s(t),function(e,t){if(t&&("object"==o(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,c()?Reflect.construct(t,r||[],s(e).constructor):t.apply(e,r))}function a(e){var t="function"==typeof Map?new Map:void 0;return a=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return function(e,t,r){if(c())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,t);var o=new(e.bind.apply(e,n));return r&&u(o,r.prototype),o}(e,arguments,s(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),u(r,e)},a(e)}function c(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(c=function(){return!!e})()}function u(e,t){return u=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},u(e,t)}function s(e){return s=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},s(e)}function l(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function f(e,t){for(var r=0;r128)throw new v("invalid AWS access key ID; reason: size should be between 16 and 128 characters, got ".concat(t.accessKeyId.length));if(!t.secretAccessKey||""===t.secretAccessKey)throw new v("invalid AWS secret access key; reason: expected a non empty string, got `".concat(t.secretAccessKey,"`"));this.region=t.region,this.accessKeyId=t.accessKeyId,this.secretAccessKey=t.secretAccessKey,void 0!==t.sessionToken&&(this.sessionToken=t.sessionToken),void 0!==t.endpoint&&("string"==typeof t.endpoint?this.endpoint=new n.y(t.endpoint):this.endpoint=t.endpoint)}return p(e,null,[{key:"fromEnvironment",value:function(t){return new e({region:__ENV.AWS_REGION,accessKeyId:__ENV.AWS_ACCESS_KEY_ID,secretAccessKey:__ENV.AWS_SECRET_ACCESS_KEY,sessionToken:__ENV.AWS_SESSION_TOKEN,endpoint:null==t?void 0:t.endpoint})}}])}(),v=function(e){function t(e){return l(this,t),i(this,t,[e])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&u(e,t)}(t,e),p(t)}(a(Error))},464:(e,t,r)=>{r.d(t,{Kq:()=>o,Qt:()=>u,Qz:()=>w,SN:()=>m,Uv:()=>O,V1:()=>y,VQ:()=>g,Zs:()=>i,_e:()=>P,b2:()=>l,fk:()=>h,he:()=>a,iK:()=>s,ot:()=>f,pj:()=>v,sY:()=>p,ud:()=>d,wN:()=>n,z8:()=>E,zG:()=>c,zX:()=>b});var n="X-Amz-Algorithm",o="X-Amz-Credential",i="X-Amz-Date",a="X-Amz-Expires",c="X-Amz-Signature",u="X-Amz-SignedHeaders",s="X-Amz-Security-Token",l="x-amz-content-sha256",f=i.toLowerCase(),p=c.toLowerCase(),y="X-Amz-Target".toLowerCase(),h=s.toLowerCase(),d="authorization",v=[d,f,"date"],b="host",m={authorization:!0,"cache-control":!0,connection:!0,expect:!0,from:!0,"keep-alive":!0,"max-forwards":!0,pragma:!0,referer:!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0,"user-agent":!0,"x-amzn-trace-id":!0},g="aws4_request",w="AWS4-HMAC-SHA256",O=604800,P="e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",E="UNSIGNED-PAYLOAD"},556:(e,t,r)=>{function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,c=[],u=!0,s=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(c.push(n.value),c.length!==t);u=!0);}catch(e){s=!0,o=e}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(s)throw o}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return i(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?i(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rs});var s=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),c(this,"_protocol",void 0),c(this,"_hostname",void 0),c(this,"_port",void 0);var r=!t.startsWith("http://")&&!t.startsWith("https://")?"".concat(e.DEFAULT_PROTOCOL,"://").concat(t):t,n=r.match(/^https?:/),i=o(r.replace(/^https?:\/\//,"").split("/"),1)[0];this._protocol=n?n[0].slice(0,-1):e.DEFAULT_PROTOCOL,this._hostname=i.split(":")[0],this._port=i.split(":")[1]?parseInt(i.split(":")[1]):void 0}return t=e,(r=[{key:"copy",value:function(){return new e(this.href)}},{key:"host",get:function(){return this._port?"".concat(this._hostname,":").concat(this._port):this._hostname},set:function(e){var t=o(e.split(":"),2),r=t[0],n=t[1];this._hostname=r,this._port=n?parseInt(n):void 0}},{key:"hostname",get:function(){return this._hostname},set:function(e){this._hostname=e}},{key:"href",get:function(){return"".concat(this.protocol,"://").concat(this.host)},set:function(t){var r=t.match(/^https?:/),n=o(t.replace(/^https?:\/\//,"").split("/"),1)[0];this._protocol=r?r[0].slice(0,-1):e.DEFAULT_PROTOCOL,this._hostname=n.split(":")[0],this._port=n.split(":")[1]?parseInt(n.split(":")[1]):void 0}},{key:"port",get:function(){return this._port},set:function(e){this._port=e}},{key:"protocol",get:function(){return this._protocol},set:function(e){this._protocol=e}}])&&a(t.prototype,r),n&&a(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,r,n}();c(s,"DEFAULT_PROTOCOL","https")},539:(e,t,r)=>{r.d(t,{$g:()=>g,Dr:()=>m,F9:()=>_,M8:()=>w,ML:()=>P,cK:()=>k,cv:()=>b,km:()=>O,op:()=>j,rN:()=>S,v1:()=>E,yk:()=>T});var n,o=r(95);function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function c(e,t){for(var r=0;r{function n(e,t){e=e.toLowerCase();for(var r=0,n=Object.keys(t);rn})},639:(e,t,r)=>{r.d(t,{B:()=>E,s:()=>S});var n=r(275),o=r.n(n),i=r(464),a=r(539),c=r(21),u=r(680);function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function l(e,t,r){return t=p(t),function(e,t){if(t&&("object"==s(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,f()?Reflect.construct(t,r||[],p(e).constructor):t.apply(e,r))}function f(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(f=function(){return!!e})()}function p(e){return p=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},p(e)}function y(e,t){return y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},y(e,t)}function h(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return d(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?d(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){c=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(c)throw i}}}}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r1&&void 0!==arguments[1]?arguments[1]:{},r=b(b({},{signingDate:new Date,unsignableHeaders:new Set,signableHeaders:new Set}),t),n=j(r.signingDate),o=n.longDate,a=n.shortDate,u=r.signingService||this.service,s=r.signingRegion||this.region,l="".concat(a,"/").concat(s,"/").concat(u,"/").concat(i.VQ);e.headers[i.zX]||(e.headers[i.zX]=e.endpoint.hostname);for(var f=0,p=Object.keys(e.headers);f-1&&delete e.headers[y]}e.headers[i.ot]=o,this.credentials.sessionToken&&(e.headers[i.fk]=this.credentials.sessionToken),ArrayBuffer.isView(e.body)&&(e.body=e.body.buffer),e.body||(e.body="");var h=this.computePayloadHash(e);!(0,c.o)(i.b2,e.headers)&&this.applyChecksum&&(e.headers[i.b2]=h);var d=this.computeCanonicalHeaders(e,r.unsignableHeaders,r.signableHeaders),v=this.calculateSignature(o,l,this.deriveSigningKey(this.credentials,u,s,a),this.createCanonicalRequest(e,d,h));e.headers[i.ud]="".concat(i.Qz," ")+"Credential=".concat(this.credentials.accessKeyId,"/").concat(l,", ")+"SignedHeaders=".concat(Object.keys(d).sort().join(";"),", ")+"Signature=".concat(v);var m=e.endpoint.href;return e.path&&(m.endsWith("/")||e.path.startsWith("/")||(m+="/"),m+=e.path),e.query&&(m+="?".concat(this.serializeQueryParameters(e.query))),b({url:m},e)}},{key:"presign",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.signingDate,n=void 0===r?new Date:r,o=t.expiresIn,a=void 0===o?3600:o,c=t.unsignableHeaders,u=t.unhoistableHeaders,s=t.signableHeaders,l=t.signingRegion,f=t.signingService,p=j(n),y=p.longDate,h=p.shortDate,d=l||this.region,v=f||this.service;if(a>i.Uv)throw new S("Signature version 4 presigned URLs can't be valid for more than 7 days");var m="".concat(h,"/").concat(d,"/").concat(v,"/").concat(i.VQ),g=this.moveHeadersToQuery(e,{unhoistableHeaders:u});g.headers[i.zX]||(g.headers[i.zX]=e.endpoint.hostname),this.credentials.sessionToken&&(g.query[i.iK]=this.credentials.sessionToken),g.query[i.wN]=i.Qz,g.query[i.Kq]="".concat(this.credentials.accessKeyId,"/").concat(m),g.query[i.Zs]=y,g.query[i.he]=a.toString(10);var w=this.computeCanonicalHeaders(g,c,s);g.query[i.Qt]=Object.keys(w).sort().join(";");var O=this.deriveSigningKey(this.credentials,v,d,h),P=this.computePayloadHash(e),E=this.createCanonicalRequest(g,w,P);g.query[i.zG]=this.calculateSignature(y,m,O,E);var T,k=e.endpoint.href;g.path&&(k=null!==(T=k)&&void 0!==T&&T.endsWith("/")?k:k+"/",k+=g.path);return g.query&&(k+="?".concat(this.serializeQueryParameters(g.query))),b({url:k},g)}},{key:"createCanonicalRequest",value:function(e,t,r){var n=Object.keys(t).sort(),o=n.map((function(e){return"".concat(e,":").concat(t[e])})).join("\n"),i=n.join(";");return"".concat(e.method,"\n")+"".concat(this.computeCanonicalURI(e),"\n")+"".concat(this.computeCanonicalQuerystring(e),"\n")+"".concat(o,"\n\n")+"".concat(i,"\n")+"".concat(r)}},{key:"createStringToSign",value:function(e,t,r){var n=o().sha256(r,"hex");return"".concat(i.Qz,"\n")+"".concat(e,"\n")+"".concat(t,"\n")+"".concat(n)}},{key:"calculateSignature",value:function(e,t,r,n){var i=this.createStringToSign(e,t,n);return o().hmac("sha256",r,i,"hex")}},{key:"deriveSigningKey",value:function(e,t,r,n){var i=e.secretAccessKey,a=o().hmac("sha256","AWS4"+i,n,"binary"),c=o().hmac("sha256",a,r,"binary"),u=o().hmac("sha256",c,t,"binary");return o().hmac("sha256",u,"aws4_request","binary")}},{key:"computeCanonicalURI",value:function(e){var t=e.path;if(this.uriEscapePath){var r,n=[],o=h(t.split("/"));try{for(o.s();!(r=o.n()).done;){var i=r.value;0!==(null==i?void 0:i.length)&&("."!==i&&(".."===i?n.pop():n.push(i)))}}catch(e){o.e(e)}finally{o.f()}var a=null!=t&&t.startsWith("/")?"/":"",c=n.join("/"),u=n.length>0&&null!=t&&t.endsWith("/")?"/":"",s="".concat(a).concat(c).concat(u);return encodeURIComponent(s).replace(/%2F/g,"/")}return t}},{key:"computeCanonicalQuerystring",value:function(e){var t,r=e.query,n=void 0===r?{}:r,o=[],a={},c=function(e){if(e.toLowerCase()===i.sY)return 1;o.push(e);var t=n[e];"string"==typeof t?a[e]="".concat(T(e),"=").concat(T(t)):Array.isArray(t)&&(a[e]=t.slice(0).sort().reduce((function(t,r){return t.concat(["".concat(T(e),"=").concat(T(r))])}),[]).join("&"))},u=h(Object.keys(n).sort());try{for(u.s();!(t=u.n()).done;){c(t.value)}}catch(e){u.e(e)}finally{u.f()}return o.map((function(e){return a[e]})).filter((function(e){return e})).join("&")}},{key:"computeCanonicalHeaders",value:function(e,t,r){var n,o=e.headers,a={},c=h(Object.keys(o).sort());try{for(c.s();!(n=c.n()).done;){var u=n.value;if(null!=o[u]){var s=u.toLowerCase();(s in i.SN||null!=t&&t.has(s))&&(!r||r&&!r.has(s))||"string"==typeof o[u]&&(a[s]=o[u]=o[u].trim().replace(/\s+/g," "))}}}catch(e){c.e(e)}finally{c.f()}return a}},{key:"computePayloadHash",value:function(e){var t=e.headers,r=e.body;return t[i.b2]?t[i.b2]:null==r?i._e:"string"==typeof r||(0,u.m)(r)?o().sha256(r,"hex").toLowerCase():ArrayBuffer.isView(r)?o().sha256(r.buffer,"hex").toLowerCase():i.z8}},{key:"moveHeadersToQuery",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=JSON.parse(JSON.stringify(e)),n=r.headers,o=r.query,i=void 0===o?{}:o,a=0,c=Object.keys(n);a{function n(e){return"function"==typeof ArrayBuffer&&(e instanceof ArrayBuffer||"[object ArrayBuffer]"===Object.prototype.toString.call(e))}r.d(t,{m:()=>n})},275:e=>{e.exports=require("k6/crypto")},95:e=>{e.exports=require("k6/html")},570:e=>{e.exports=require("k6/http")}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,r),i.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};r.r(n),r.d(n,{AWSConfig:()=>o.g,AWSError:()=>i.cv,DNSError:()=>i.M8,GeneralError:()=>i.$g,HTTP2Error:()=>i.v1,InvalidAWSConfigError:()=>o.r,InvalidSignatureError:()=>a.s,LambdaClient:()=>A,LambdaInvocationError:()=>L,NetworkError:()=>i.Dr,TCPError:()=>i.km,TLSError:()=>i.ML});var o=r(811),i=r(539),a=r(639),c=r(570),u=r.n(c);const s=require("k6/encoding");var l=r.n(s),f=r(2),p=r(464);function y(e){return y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},y(e)}function h(e){var t="function"==typeof Map?new Map:void 0;return h=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return function(e,t,r){if(E())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,t);var o=new(e.bind.apply(e,n));return r&&k(o,r.prototype),o}(e,arguments,T(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),k(r,e)},h(e)}function d(){d=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function s(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{s({},"")}catch(e){s=function(e,t,r){return e[t]=r}}function l(e,t,r,n){var i=t&&t.prototype instanceof g?t:g,a=Object.create(i.prototype),c=new x(n||[]);return o(a,"_invoke",{value:_(e,r,c)}),a}function f(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=l;var p="suspendedStart",h="suspendedYield",v="executing",b="completed",m={};function g(){}function w(){}function O(){}var P={};s(P,a,(function(){return this}));var E=Object.getPrototypeOf,S=E&&E(E(D([])));S&&S!==r&&n.call(S,a)&&(P=S);var T=O.prototype=g.prototype=Object.create(P);function j(e){["next","throw","return"].forEach((function(t){s(e,t,(function(e){return this._invoke(t,e)}))}))}function k(e,t){function r(o,i,a,c){var u=f(e[o],e,i);if("throw"!==u.type){var s=u.arg,l=s.value;return l&&"object"==y(l)&&n.call(l,"__await")?t.resolve(l.__await).then((function(e){r("next",e,a,c)}),(function(e){r("throw",e,a,c)})):t.resolve(l).then((function(e){s.value=e,a(s)}),(function(e){return r("throw",e,a,c)}))}c(u.arg)}var i;o(this,"_invoke",{value:function(e,n){function o(){return new t((function(t,o){r(e,n,t,o)}))}return i=i?i.then(o,o):o()}})}function _(t,r,n){var o=p;return function(i,a){if(o===v)throw Error("Generator is already running");if(o===b){if("throw"===i)throw a;return{value:e,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=C(c,n);if(u){if(u===m)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=b,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=v;var s=f(t,r,n);if("normal"===s.type){if(o=n.done?b:h,s.arg===m)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(o=b,n.method="throw",n.arg=s.arg)}}}function C(t,r){var n=r.method,o=t.iterator[n];if(o===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,C(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),m;var i=f(o,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,m;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,m):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,m)}function A(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function L(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function x(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(A,this),this.reset(!0)}function D(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function r(){for(;++o=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),s=n.call(a,"finallyLoc");if(u&&s){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),L(r),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;L(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:D(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),m}},t}function v(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function b(e){for(var t=1;t2&&void 0!==v[2]?v[2]:{}).invocationType||"RequestResponse",a=b(b({},this.commonHeaders),{},_(_(_({},p.V1,"AWSLambda.".concat(i)),"X-Amz-Invocation-Type",i),"X-Amz-Log-Type",n.logType||"None")),n.clientContext&&(a["X-Amz-Client-Context"]=n.clientContext),n.qualifier&&(o.Qualifier=n.qualifier),c=this.signature.sign({method:this.method,endpoint:this.endpoint,path:"/2015-03-31/functions/".concat(t,"/invocations"),query:o,headers:a,body:r||""},{}),e.next=9,u().asyncRequest(this.method,c.url,c.body,b(b({},this.baseRequestParams),{},{headers:c.headers}));case 9:if(s=e.sent,this.handleError(s),f=s.headers["X-Amz-Log-Result"],y={executedVersion:s.headers["X-Amz-Executed-Version"],logResult:f?l().b64decode(f,"std","s"):void 0,statusCode:s.status,payload:s.body},!(h=s.headers["X-Amz-Function-Error"])){e.next=18;break}throw new L(h,y);case 18:return e.abrupt("return",y);case 19:case"end":return e.stop()}}),e,this)})),n=function(){var e=this,t=arguments;return new Promise((function(n,o){var i=r.apply(e,t);function a(e){m(i,n,o,a,c,"next",e)}function c(e){m(i,n,o,a,c,"throw",e)}a(void 0)}))},function(e,t){return n.apply(this,arguments)})},{key:"handleError",value:function(e,r){var n,o,c,u,s;if(!(n=t,o="handleError",c=this,s=S(T(1&(u=3)?n.prototype:n),o,c),2&u?function(e){return s.apply(c,e)}:s)([e,r]))return!1;var l=i.cv.parse(e);switch(l.code){case"AuthorizationHeaderMalformed":case"InvalidSignatureException":throw new a.s(l.message,l.code);default:throw l}return!0}}]);var r,n}(f.R),L=function(e){function t(e,r){var n;return g(this,t),_(n=P(this,t,["".concat(e,": ").concat(r.payload)]),"response",void 0),n.response=r,n}return j(t,e),O(t)}(h(Error)),x=exports;for(var D in n)x[D]=n[D];n.__esModule&&Object.defineProperty(x,"__esModule",{value:!0})})(); +//# sourceMappingURL=lambda.js.map \ No newline at end of file diff --git a/lib/aws/0.13.0/lambda.js.LICENSE.txt b/lib/aws/0.13.0/lambda.js.LICENSE.txt new file mode 100644 index 0000000..ae386fb --- /dev/null +++ b/lib/aws/0.13.0/lambda.js.LICENSE.txt @@ -0,0 +1 @@ +/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ diff --git a/lib/aws/0.13.0/lambda.js.map b/lib/aws/0.13.0/lambda.js.map new file mode 100644 index 0000000..1f1de1b --- /dev/null +++ b/lib/aws/0.13.0/lambda.js.map @@ -0,0 +1 @@ +{"version":3,"file":"lambda.js","mappings":";g5BAyBO,IAAMA,EAAS,WAsClB,SAXA,SAAAA,EAAYC,EAAsBC,gGAAqBC,CAAA,KAAAH,GAAAI,EAAA,yBAAAA,EAAA,2BAZvDA,EAAA,yBACqC,CACjCC,aAAc,SACjBD,EAAA,yBAUGE,KAAKL,UAAYA,EACjBK,KAAKJ,YAAcA,EAIOK,MAAtBN,EAAUO,WACVF,KAAKG,UAAYR,EAAUO,SAEnC,KAEA,EAAAE,IAAA,WAAAC,IASA,WAMI,OALsBJ,MAAlBD,KAAKG,YACLH,KAAKG,UAAY,IAAIG,EAAAA,EAAS,WAADC,OACdP,KAAKJ,YAAW,KAAAW,OAAIP,KAAKL,UAAUa,OAAM,oBAGrDR,KAAKG,SAChB,EAEAM,IAQA,SAAoBP,GAChBF,KAAKG,UAAYD,CACrB,GAcA,CAAAE,IAAA,cAAAM,MACA,SAAsBC,EAAqDC,GACvE,IAAMC,EAAiBF,EAASE,OAC1BC,EAAoBH,EAASI,WAC7BC,EAAuBL,EAASM,MAMtC,GAAIJ,GAAU,KAAOA,EAAS,KAAuB,IAAhBG,GAAoC,IAAdF,EACvD,OAAO,EAGX,OAAQA,GACJ,KAAKI,EAAAA,GAAiBC,aACtB,KAAKD,EAAAA,GAAiBE,mBACtB,KAAKF,EAAAA,GAAiBG,WACtB,KAAKH,EAAAA,GAAiBI,mBAClB,MAAM,IAAIC,EAAAA,GAAaT,GAC3B,KAAKU,EAAAA,GAAaC,gBAClB,KAAKD,EAAAA,GAAaE,UAClB,KAAKF,EAAAA,GAAaG,cAClB,KAAKH,EAAAA,GAAaI,oBACd,MAAM,IAAIC,EAAAA,GAASf,GACvB,KAAKgB,EAAAA,GAAaC,gBAClB,KAAKD,EAAAA,GAAaE,kBAClB,KAAKF,EAAAA,GAAaG,gBAClB,KAAKH,EAAAA,GAAaI,oBAClB,KAAKJ,EAAAA,GAAaK,iBAClB,KAAKL,EAAAA,GAAaM,sBAClB,KAAKN,EAAAA,GAAaO,iBAClB,KAAKP,EAAAA,GAAaQ,YACd,MAAM,IAAIC,EAAAA,GAASzB,GACvB,KAAK0B,EAAAA,GAAaC,gBAClB,KAAKD,EAAAA,GAAaE,iBAClB,KAAKF,EAAAA,GAAaG,4BACd,MAAM,IAAIC,EAAAA,GAAS9B,GACvB,KAAK+B,EAAAA,GAAeC,kBACpB,KAAKD,EAAAA,GAAeE,wBAChB,MAAM,IAAIC,EAAAA,GAAWlC,GAG7B,OAAO,CACX,+FAAC,CA5HiB,siFCrBf,IAAMmC,EAAS,WA2ElB,SAAAA,EAAYC,GACR,GADmCrD,EAAA,KAAAoD,GA1EvCnD,EAAA,sBAOAA,EAAA,2BAOAA,EAAA,+BAOAA,EAAA,4BAOAA,EAAA,yBA+CSoD,EAAQ1C,QAA6B,KAAnB0C,EAAQ1C,OAC3B,MAAM,IAAI2C,EAAsB,yFAAD5C,OAC+D2C,EAAQ1C,OAAM,MAIhH,IAAK0C,EAAQE,aAAuC,KAAxBF,EAAQE,YAChC,MAAM,IAAID,EAAsB,wEAAD5C,OAC8C2C,EAAQE,YAAW,MAIpG,GAAIF,EAAQE,YAAYC,OAAS,IAAMH,EAAQE,YAAYC,OAAS,IAChE,MAAM,IAAIF,EAAsB,wFAAD5C,OAC6D2C,EAAQE,YAAYC,SAIpH,IAAKH,EAAQI,iBAA+C,KAA5BJ,EAAQI,gBACpC,MAAM,IAAIH,EAAsB,4EAAD5C,OACkD2C,EAAQI,gBAAe,MAI5GtD,KAAKQ,OAAS0C,EAAQ1C,OACtBR,KAAKoD,YAAcF,EAAQE,YAC3BpD,KAAKsD,gBAAkBJ,EAAQI,qBAEFrD,IAAzBiD,EAAQK,eACRvD,KAAKuD,aAAeL,EAAQK,mBAGPtD,IAArBiD,EAAQhD,WACwB,iBAArBgD,EAAQhD,SACfF,KAAKE,SAAW,IAAII,EAAAA,EAAS4C,EAAQhD,UAErCF,KAAKE,SAAWgD,EAAQhD,SAGpC,CAAC,OAAAsD,EAAAP,EAAA,OAAA7C,IAAA,kBAAAM,MA9DD,SAAuBwC,GAOnB,OAAO,IAAID,EAAU,CACjBzC,OAPWiD,MAAMC,WAQjBN,YAPgBK,MAAME,kBAQtBL,gBAPoBG,MAAMG,sBAQ1BL,aAPqCE,MAAMI,kBAQ3C3D,SAP4CgD,aAAO,EAAPA,EAAShD,UAS7D,IAAC,CAnEiB,GA2KTiD,EAAqB,SAAAW,GAC9B,SAAAX,EAAYY,GAAiB,OAAAlE,EAAA,KAAAsD,GAAAa,EAAA,KAAAb,EAAA,CACnBY,GACV,CAAC,4RAAAE,CAAAd,EAAAW,GAAAN,EAAAL,EAAA,CAH6B,CAG7Be,EAHsCC,6NC5KpC,IAAMC,EAA4B,kBAC5BC,EAA6B,mBAC7BC,EAAuB,aACvBC,EAA0B,gBAC1BC,EAA4B,kBAC5BC,EAAiC,sBAEjCC,EAAwB,uBAKxBC,EAA4B,uBAC5BC,EAAkBN,EAAqBO,cACvCC,EAAuBN,EAA0BK,cACjDE,EATyB,eASkBF,cAC3CG,EAAmBN,EAAsBG,cAKzCI,EAAuB,gBAMvBC,EAAoB,CAACD,EAAsBL,EAL7B,QAMdO,EAAc,OAMdC,EAA4B,CACrCC,eAAe,EACf,iBAAiB,EACjBC,YAAY,EACZC,QAAQ,EACRC,MAAM,EACN,cAAc,EACd,gBAAgB,EAChBC,QAAQ,EACRC,SAAS,EACTC,IAAI,EACJC,SAAS,EACT,qBAAqB,EACrBC,SAAS,EACT,cAAc,EACd,mBAAmB,GAMVC,EAAsB,eACtBC,EAA+B,mBAK/BC,EAAoB,OAKpBC,EAAe,mEAQfC,EAAmB,s3DC1EzB,IAAM5F,EAAQ,WAajB,SAAAA,EAAYJ,gGAAkBL,CAAA,KAAAS,GAAAR,EAAA,yBAAAA,EAAA,yBAAAA,EAAA,qBAC1B,IAEMqG,GADDjG,EAASkG,WAAW,aAAelG,EAASkG,WAAW,YACvB,GAAA7F,OAC5BD,EAAS+F,iBAAgB,OAAA9F,OAAML,GAClCA,EAEAoG,EAAgBH,EAAYI,MAAM,YAEjCC,EAA0CC,EAD7BN,EAAYO,QAAQ,eAAgB,IACjBC,MAAM,KAAI,GAA1B,GAEvB3G,KAAK4G,UAAYN,EAAgBA,EAAc,GAAGO,MAAM,GAAI,GAAKvG,EAAS+F,iBAC1ErG,KAAK8G,UAAYN,EAAiBG,MAAM,KAAK,GAC7C3G,KAAK+G,MAAQP,EAAiBG,MAAM,KAAK,GACnCK,SAASR,EAAiBG,MAAM,KAAK,SACrC1G,CACV,CAEA,SAAAK,KAAA,EAAAF,IAAA,OAAAM,MAKA,WACI,OAAO,IAAIJ,EAASN,KAAKiH,KAC7B,GAEA,CAAA7G,IAAA,OAAAC,IAKA,WACI,OAAOL,KAAK+G,MAAQ,GAAHxG,OAAMP,KAAK8G,UAAS,KAAAvG,OAAIP,KAAK+G,OAAU/G,KAAK8G,SACjE,EAEArG,IAKA,SAAgBC,GACZ,IAAyCwG,EAAAT,EAAhB/F,EAAMiG,MAAM,KAAI,GAAlCQ,EAAQD,EAAA,GAAEE,EAAIF,EAAA,GACrBlH,KAAK8G,UAAYK,EACjBnH,KAAK+G,MAAQK,EAAOJ,SAASI,QAAQnH,CACzC,GAEA,CAAAG,IAAA,WAAAC,IAKA,WACI,OAAOL,KAAK8G,SAChB,EAEArG,IAKA,SAAoBC,GAChBV,KAAK8G,UAAYpG,CACrB,GAEA,CAAAN,IAAA,OAAAC,IAKA,WACI,MAAO,GAAPE,OAAUP,KAAKqH,SAAQ,OAAA9G,OAAMP,KAAKsH,KACtC,EAEA7G,IAKA,SAAgBC,GACZ,IAAM4F,EAAgB5F,EAAM6F,MAAM,YAE3BC,EAA8CC,EAD7B/F,EAAMgG,QAAQ,eAAgB,IACXC,MAAM,KAAI,GAA9B,GAEvB3G,KAAK4G,UAAYN,EAAgBA,EAAc,GAAGO,MAAM,GAAI,GAAKvG,EAAS+F,iBAC1ErG,KAAK8G,UAAYN,EAAiBG,MAAM,KAAK,GAC7C3G,KAAK+G,MAAQP,EAAiBG,MAAM,KAAK,GACnCK,SAASR,EAAiBG,MAAM,KAAK,SACrC1G,CACV,GAEA,CAAAG,IAAA,OAAAC,IAKA,WACI,OAAOL,KAAK+G,KAChB,EAEAtG,IAKA,SAAgBC,GACZV,KAAK+G,MAAQrG,CACjB,GAEA,CAAAN,IAAA,WAAAC,IAKA,WACI,OAAOL,KAAK4G,SAChB,EAEAnG,IAKA,SAAoBC,GAChBV,KAAK4G,UAAYlG,CACrB,+FAAC,CA1IgB,GAKjBZ,EALSQ,EAAQ,mBAM0B,g6FCGxC,IAAMiH,EAAQ,SAAAzD,GAYjB,SAAAyD,EAAYxD,EAAiByD,GAAe,IAAAC,EAGxB,OAHwB5H,EAAA,KAAA0H,GAX5CzH,EAYI2H,EAAAzD,EAAA,KAAAuD,EAAA,CAAMxD,IAZV,eAaI0D,EAAKC,KAAO,WACZD,EAAKD,KAAOA,EAAIC,CACpB,CAEA,OAAAxD,EAAAsD,EAAAzD,GAAAN,EAAA+D,EAAA,OAAAnH,IAAA,WAAAM,MAMA,SAAgBiH,GACZ,IAAMC,GAAMC,EAAAA,EAAAA,WAAUF,GACtB,OAAO,IAAIJ,EAASK,EAAIE,KAAK,WAAWC,OAAQH,EAAIE,KAAK,QAAQC,OACrE,GAEA,CAAA3H,IAAA,QAAAM,MAMA,SAAaC,GACT,GAAyC,qBAArCA,EAASqH,QAAQ,gBAAwC,CACzD,IAAM/G,EAASN,EAASsH,QAAyB,CAAC,EAOlD,OAAO,IAAIV,EALPtG,EAAMiH,SACNjH,EAAM8C,SACN9C,EAAMkH,QACN,uCACSxH,EAASqH,QAAQ,qBAAuB/G,EAAMkH,OAE/D,CACI,OAAOZ,EAASa,SAASzH,EAAS0H,KAE1C,IAAC,CAhDgB,CAgDhBnE,EAhDyBC,QA4DjBmE,EAAY,SAAAC,GAUrB,SAAAD,EAAYZ,EAASF,GAAS,IAAAgB,EAGV,OAHU3I,EAAA,KAAAyI,GAC+BxI,EAAzD0I,EAAAxE,EAAA,KAAAsE,EAAA,CAAMG,EAAcjB,IAAS,8BAA4B,eAAA1H,EAAA0I,EAAA,eACzDA,EAAKd,KAAOA,EACZc,EAAKhB,KAAOA,EAAIgB,CACpB,CAAC,OAAAvE,EAAAqE,EAAAC,GAAA/E,EAAA8E,EAAA,CAdoB,CAcpBpE,EAd8EC,QAqBtE5C,EAAY,SAAAmH,GAMrB,SAAAnH,EAAYiG,GAAwB,OAAA3H,EAAA,KAAA0B,GAAAyC,EAAA,KAAAzC,EAAA,CAC1B,eAAgBiG,GAC1B,CAAC,OAAAvD,EAAA1C,EAAAmH,GAAAlF,EAAAjC,EAAA,CARoB,CAAS+G,GAerBzG,EAAQ,SAAA8G,GAMjB,SAAA9G,EAAY2F,GAAoB,OAAA3H,EAAA,KAAAgC,GAAAmC,EAAA,KAAAnC,EAAA,CACtB,WAAY2F,GACtB,CAAC,OAAAvD,EAAApC,EAAA8G,GAAAnF,EAAA3B,EAAA,CARgB,CAASyG,GAejB/F,EAAQ,SAAAqG,GAMjB,SAAArG,EAAYiF,GAAoB,OAAA3H,EAAA,KAAA0C,GAAAyB,EAAA,KAAAzB,EAAA,CACtB,WAAYiF,GACtB,CAAC,OAAAvD,EAAA1B,EAAAqG,GAAApF,EAAAjB,EAAA,CARgB,CAAS+F,GAejB1F,EAAQ,SAAAiG,GAMjB,SAAAjG,EAAY4E,GAAoB,OAAA3H,EAAA,KAAA+C,GAAAoB,EAAA,KAAApB,EAAA,CACtB,WAAY4E,GACtB,CAAC,OAAAvD,EAAArB,EAAAiG,GAAArF,EAAAZ,EAAA,CARgB,CAAS0F,GAejBtF,EAAU,SAAA8F,GAMnB,SAAA9F,EAAYwE,GAAsB,OAAA3H,EAAA,KAAAmD,GAAAgB,EAAA,KAAAhB,EAAA,CACxB,aAAcwE,GACxB,CAAC,OAAAvD,EAAAjB,EAAA8F,GAAAtF,EAAAR,EAAA,CARkB,CAASsF,GA2BpBpH,EAAgB,SAAhBA,GAAgB,OAAhBA,EAAAA,EAAgB,iCAAhBA,EAAAA,EAAgB,8CAAhBA,EAAAA,EAAgB,8BAAhBA,EAAAA,EAAgB,8CAAhBA,CAAgB,MAWhBM,EAAY,SAAZA,GAAY,OAAZA,EAAAA,EAAY,wCAAZA,EAAAA,EAAY,4BAAZA,EAAAA,EAAY,oCAAZA,EAAAA,EAAY,gDAAZA,CAAY,MAWZM,EAAY,SAAZA,GAAY,OAAZA,EAAAA,EAAY,wCAAZA,EAAAA,EAAY,4CAAZA,EAAAA,EAAY,wCAAZA,EAAAA,EAAY,gDAAZA,EAAAA,EAAY,0CAAZA,EAAAA,EAAY,oDAAZA,EAAAA,EAAY,0CAAZA,EAAAA,EAAY,gCAAZA,CAAY,MAeZU,EAAY,SAAZA,GAAY,OAAZA,EAAAA,EAAY,wCAAZA,EAAAA,EAAY,0CAAZA,EAAAA,EAAY,gEAAZA,CAAY,MAUZK,EAAc,SAAdA,GAAc,OAAdA,EAAAA,EAAc,4CAAdA,EAAAA,EAAc,wDAAdA,CAAc,MASpB4F,GAA6C3I,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAiJ,EAAG,CAAC,EAClD7H,EAAiBC,aAAe,2DAChCD,EAAiBE,mBACd,uGACHF,EAAiBG,WAAa,gCAC9BH,EAAiBI,mBAAqB,kCACtCE,EAAaC,gBAAkB,+DAC/BD,EAAaE,UAAY,yCACzBF,EAAaG,cACV,mFACHH,EAAaI,oBAAsB,yDACnCE,EAAaC,gBAAkB,+DAC/BD,EAAaE,kBACV,8EAA4ElC,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAiJ,EAC/EjH,EAAaG,gBACV,oPACHH,EAAaI,oBAAsB,0BACnCJ,EAAaK,iBAAmB,6DAChCL,EAAaM,sBACV,mFACHN,EAAaO,iBAAmB,sBAChCP,EAAaQ,YACV,qFACHE,EAAaC,gBAAkB,qBAC/BD,EAAaE,iBAAmB,yDAChCF,EAAaG,4BAA8B,8CAC3CE,EAAeC,kBACZ,kEAAgEhD,EAAAiJ,EACnElG,EAAeE,wBAA0B,gDCjPvC,SAASiG,EAAUC,EAAsBjB,GAC5CiB,EAAeA,EAAapE,cAE5B,IAAK,IAALqE,EAAA,EAAAC,EAAyBC,OAAOC,KAAKrB,GAAQkB,EAAAC,EAAA9F,OAAA6F,IAAE,CAC3C,GAAID,IADaE,EAAAD,GACerE,cAC5B,OAAO,CAEf,CAEA,OAAO,CACX,88GChBO,IAAMyE,EAAW,WAkDpB,OAAA9F,GAdA,SAAA8F,EAAAC,GAMuB,IALnBC,EAAOD,EAAPC,QACAhJ,EAAM+I,EAAN/I,OACAiJ,EAAWF,EAAXE,YACAC,EAAaH,EAAbG,cACAC,EAAaJ,EAAbI,cAAa9J,EAAA,KAAAyJ,GAxCjBxJ,EAAA,uBAKAA,EAAA,sBAKAA,EAAA,2BAKAA,EAAA,6BASAA,EAAA,6BAkBIE,KAAKwJ,QAAUA,EACfxJ,KAAKQ,OAASA,EACdR,KAAKyJ,YAAcA,EACnBzJ,KAAK0J,cAAyC,kBAAlBA,GAA8BA,EAC1D1J,KAAK2J,cAAyC,kBAAlBA,GAA8BA,CAC9D,GAEA,EAAAvJ,IAAA,OAAAM,MAaA,SAAKkJ,GAAuF,IAAjE1G,EAAuC2G,UAAAxG,OAAA,QAAApD,IAAA4J,UAAA,GAAAA,UAAA,GAAG,CAAC,EAS5DC,EAAYC,EAAAA,EAAA,GAPK,CACnBC,YAAa,IAAIC,KACjBC,kBAAmB,IAAIC,IACvBC,gBAAiB,IAAID,MAIoBjH,GAE7CmH,EAA0CC,EAAWR,EAAaE,aAA1DO,EAAQF,EAARE,SAAUC,EAASH,EAATG,UACZhB,EAAUM,EAAaW,gBAAkBzK,KAAKwJ,QAC9ChJ,EAASsJ,EAAaY,eAAiB1K,KAAKQ,OAC5CmK,EAAQ,GAAHpK,OAAMiK,EAAS,KAAAjK,OAAIC,EAAM,KAAAD,OAAIiJ,EAAO,KAAAjJ,OAAIqK,EAAAA,IAO9ChB,EAAQ5B,QAAQ4C,EAAAA,MACjBhB,EAAQ5B,QAAQ4C,EAAAA,IAAyBhB,EAAQ1J,SAASiH,UAM9D,IAAK,IAAL+B,EAAA,EAAAC,EAAyBC,OAAOC,KAAKO,EAAQ5B,SAAQkB,EAAAC,EAAA9F,OAAA6F,IAAE,CAAlD,IAAM2B,EAAU1B,EAAAD,GACb0B,EAAAA,GAA4BE,QAAQD,EAAWhG,gBAAkB,UAC1D+E,EAAQ5B,QAAQ6C,EAE/B,CAEAjB,EAAQ5B,QAAQ4C,EAAAA,IAA6BL,EACzCvK,KAAKyJ,YAAYlG,eACjBqG,EAAQ5B,QAAQ4C,EAAAA,IAA8B5K,KAAKyJ,YAAYlG,cAK/DwH,YAAYC,OAAOpB,EAAQvB,QAC3BuB,EAAQvB,KAAOuB,EAAQvB,KAAK4C,QAI3BrB,EAAQvB,OACTuB,EAAQvB,KAAO,IAGnB,IAAM6C,EAAclL,KAAKmL,mBAAmBvB,KAEvCZ,EAAAA,EAAAA,GAAU4B,EAAAA,GAAqChB,EAAQ5B,UACxDhI,KAAK2J,gBAELC,EAAQ5B,QAAQ4C,EAAAA,IAAuCM,GAG3D,IAAME,EAAmBpL,KAAKqL,wBAC1BzB,EACAE,EAAaI,kBACbJ,EAAaM,iBAEXkB,EAAYtL,KAAKuL,mBACnBhB,EACAI,EACA3K,KAAKwL,iBAAiBxL,KAAKyJ,YAAaD,EAAShJ,EAAQgK,GACzDxK,KAAKyL,uBAAuB7B,EAASwB,EAAkBF,IAQ3DtB,EAAQ5B,QAAQ4C,EAAAA,IACZ,GAAArK,OAAGqK,EAAAA,GAAsC,mBAAArK,OAC3BP,KAAKyJ,YAAYrG,YAAW,KAAA7C,OAAIoK,EAAK,MAAI,iBAAApK,OACtC6I,OAAOC,KAAK+B,GAAkBM,OAAOC,KAAK,KAAI,MAAI,aAAApL,OACtD+K,GAGjB,IAAIM,EAAMhC,EAAQ1J,SAAS+G,KAkB3B,OAjBI2C,EAAQiC,OAGHD,EAAIE,SAAS,MAASlC,EAAQiC,KAAKzF,WAAW,OAC/CwF,GAAO,KAIXA,GAAOhC,EAAQiC,MAIfjC,EAAQmC,QAERH,GAAO,IAAJrL,OAAQP,KAAKgM,yBAAyBpC,EAAQmC,SAGrDhC,EAAA,CACI6B,IAAKA,GACFhC,EAEX,GAEA,CAAAxJ,IAAA,UAAAM,MAWA,SAAQuL,GAA+E,IAAjD/I,EAAuB2G,UAAAxG,OAAA,QAAApD,IAAA4J,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC7DqC,EAQIhJ,EAPA8G,YAAAA,OAAW,IAAAkC,EAAG,IAAIjC,KAAMiC,EAAAC,EAOxBjJ,EANAkJ,UAAAA,OAAS,IAAAD,EAAG,KAAIA,EAChBjC,EAKAhH,EALAgH,kBACAmC,EAIAnJ,EAJAmJ,mBACAjC,EAGAlH,EAHAkH,gBACAM,EAEAxH,EAFAwH,cACAD,EACAvH,EADAuH,eAEJ6B,EAA0ChC,EAAWN,GAA7CO,EAAQ+B,EAAR/B,SAAUC,EAAS8B,EAAT9B,UACZhK,EAASkK,GAAiB1K,KAAKQ,OAC/BgJ,EAAUiB,GAAkBzK,KAAKwJ,QAEvC,GAAI4C,EAAYxB,EAAAA,GACZ,MAAM,IAAI2B,EACN,0EAIR,IAAM5B,EAAQ,GAAHpK,OAAMiK,EAAS,KAAAjK,OAAIC,EAAM,KAAAD,OAAIiJ,EAAO,KAAAjJ,OAAIqK,EAAAA,IAC7ChB,EAAU5J,KAAKwM,mBAAmBP,EAAiB,CAAEI,mBAAAA,IAOtDzC,EAAQ5B,QAAQ4C,EAAAA,MACjBhB,EAAQ5B,QAAQ4C,EAAAA,IAAyBqB,EAAgB/L,SAASiH,UAIlEnH,KAAKyJ,YAAYlG,eACjBqG,EAAQmC,MAAMnB,EAAAA,IAAmC5K,KAAKyJ,YAAYlG,cAItEqG,EAAQmC,MAAMnB,EAAAA,IAAuCA,EAAAA,GACrDhB,EAAQmC,MACJnB,EAAAA,IACA,GAAHrK,OAAMP,KAAKyJ,YAAYrG,YAAW,KAAA7C,OAAIoK,GACvCf,EAAQmC,MAAMnB,EAAAA,IAAkCL,EAChDX,EAAQmC,MAAMnB,EAAAA,IAAqCwB,EAAUK,SAAS,IAEtE,IAAMrB,EAAmBpL,KAAKqL,wBAC1BzB,EACAM,EACAE,GAEJR,EAAQmC,MAAMnB,EAAAA,IAA4CxB,OAAOC,KAAK+B,GACjEM,OACAC,KAAK,KAEV,IAAMe,EAAa1M,KAAKwL,iBAAiBxL,KAAKyJ,YAAaD,EAAShJ,EAAQgK,GAStEU,EAAclL,KAAKmL,mBAAmBc,GACtCU,EAAmB3M,KAAKyL,uBAAuB7B,EAASwB,EAAkBF,GAEhFtB,EAAQmC,MAAMnB,EAAAA,IAAuC5K,KAAKuL,mBACtDhB,EACAI,EACA+B,EACAC,GAIJ,IACkBC,EADdhB,EAAMK,EAAgB/L,SAAS+G,KAC/B2C,EAAQiC,OAGRD,EAAS,QAAHgB,EAAAhB,SAAG,IAAAgB,GAAHA,EAAKd,SAAS,KAAOF,EAAMA,EAAM,IAGvCA,GAAOhC,EAAQiC,MAQnB,OAJIjC,EAAQmC,QACRH,GAAO,IAAJrL,OAAQP,KAAKgM,yBAAyBpC,EAAQmC,SAGrDhC,EAAA,CAAS6B,IAAKA,GAAQhC,EAC1B,GAEA,CAAAxJ,IAAA,yBAAAM,MAYA,SACIkJ,EACAwB,EACAF,GAEA,IAAM2B,EAAgBzD,OAAOC,KAAK+B,GAAkBM,OAC9CoB,EAAyBD,EAC1BE,KAAI,SAACrF,GAAI,SAAAnH,OAAQmH,EAAI,KAAAnH,OAAI6K,EAAiB1D,GAAK,IAC/CiE,KAAK,MACJqB,EAAgBH,EAAclB,KAAK,KAEzC,MACI,GAAApL,OAAGqJ,EAAQqD,OAAM,SAAA1M,OACdP,KAAKkN,oBAAoBtD,GAAQ,MAAI,GAAArJ,OACrCP,KAAKmN,4BAA4BvD,GAAQ,MAAI,GAAArJ,OAC7CuM,EAAsB,QAAM,GAAAvM,OAC5ByM,EAAa,MAAI,GAAAzM,OACjB2K,EAEX,GAEA,CAAA9K,IAAA,qBAAAM,MAcA,SACI6J,EACA6C,EACAT,GAEA,IAAMU,EAAyBC,IAAAA,OAAcX,EAAkB,OAE/D,MACI,GAAApM,OAAGqK,EAAAA,GAAsC,SAAArK,OACtCgK,EAAQ,MAAI,GAAAhK,OACZ6M,EAAe,MAAI,GAAA7M,OACnB8M,EAEX,GAEA,CAAAjN,IAAA,qBAAAM,MAYA,SACI6J,EACA6C,EACAV,EACAC,GAEA,IAAMY,EAAevN,KAAKwN,mBAAmBjD,EAAU6C,EAAiBT,GACxE,OAAOW,IAAAA,KAAY,SAAUZ,EAAYa,EAAc,MAC3D,GAEA,CAAAnN,IAAA,mBAAAM,MAiBA,SACI+I,EACAD,EACAhJ,EACAgK,GAEA,IAAMiD,EAAkBhE,EAAYnG,gBAS9BoK,EAAaJ,IAAAA,KAAY,SAAU,OAASG,EAASjD,EAAW,UAChEmD,EAAeL,IAAAA,KAAY,SAAUI,EAAOlN,EAAQ,UACpDoN,EAAgBN,IAAAA,KAAY,SAAUK,EAASnE,EAAS,UAI9D,OAHsB8D,IAAAA,KAAY,SAAUM,EAAU,eAAgB,SAI1E,GAEA,CAAAxN,IAAA,sBAAAM,MAOA,SAA2BmN,GAAgC,IAA7BhC,EAAIgC,EAAJhC,KAC1B,GAAI7L,KAAK0J,cAAe,CAGpB,IAEwCoE,EAFlCC,EAAwB,GAAEC,EAAAC,EAEPpC,EAAKlF,MAAM,MAAI,IAAxC,IAAAqH,EAAAE,MAAAJ,EAAAE,EAAAG,KAAAC,MAA0C,KAA/BC,EAAUP,EAAApN,MACU,KAAvB2N,aAAU,EAAVA,EAAYhL,UAIG,MAAfgL,IAIe,OAAfA,EACAN,EAAsBO,MAEtBP,EAAsBQ,KAAKF,IAEnC,CAEA,OAAAG,GAAAR,EAAAS,EAAAD,EAAA,SAAAR,EAAAU,GAAA,CACA,IAAMC,EAAU9C,SAAAA,EAAMzF,WAAW,KAAO,IAAM,GACxCwI,EAAMb,EAAsBpC,KAAK,KACjCkD,EAAWd,EAAsB1K,OAAS,GAA/B0K,MAAoClC,GAAAA,EAAMC,SAAS,KAAO,IAAM,GAC3EgD,EAAgB,GAAHvO,OAAMoO,GAAOpO,OAAGqO,GAAGrO,OAAGsO,GAIzC,OAFsBE,mBAAmBD,GAEpBpI,QAAQ,OAAQ,IACzC,CAKA,OAAOmF,CACX,GAEA,CAAAzL,IAAA,8BAAAM,MAQA,SAAmCsO,GAAsC,IAI1BC,EAJ0BC,EAAAF,EAAnCjD,MAAAA,OAAK,IAAAmD,EAAG,CAAC,EAACA,EACtC7F,EAAsB,GACtB8F,EAAqC,CAAC,EAACC,EAAA,SAAAhP,GAGzC,GAAIA,EAAIyE,gBAAkB+F,EAAAA,GAAgC,SAI1DvB,EAAKkF,KAAKnO,GACV,IAAMM,EAAQqL,EAAM3L,GAEC,iBAAVM,EACPyO,EAAW/O,GAAO,GAAHG,OAAM8O,EAAUjP,GAAI,KAAAG,OAAI8O,EAAU3O,IAC1C4O,MAAMC,QAAQ7O,KACrByO,EAAW/O,GAAOM,EACbmG,MAAM,GACN6E,OACA8D,QACG,SAACC,EAAwB/O,GAAa,OAClC+O,EAAQlP,OAAO,CAAC,GAADA,OAAI8O,EAAUjP,GAAI,KAAAG,OAAI8O,EAAU3O,KAAU,GAC7D,IAEHiL,KAAK,KAElB,EAAC+D,EAAAzB,EArBiB7E,OAAOC,KAAK0C,GAAOL,QAAM,IAA3C,IAAAgE,EAAAxB,MAAAe,EAAAS,EAAAvB,KAAAC,MAAA,CAAcgB,EAAAH,EAAAvO,MAEE,CAmBf,OAAA8N,GAAAkB,EAAAjB,EAAAD,EAAA,SAAAkB,EAAAhB,GAAA,CAED,OAAOrF,EACF0D,KAAI,SAAC3M,GAAG,OAAK+O,EAAW/O,EAAI,IAC5BuP,QAAO,SAACR,GAAU,OAAKA,CAAU,IACjCxD,KAAK,IACd,GAEA,CAAAvL,IAAA,0BAAAM,MAUA,SAA+BkP,EAE3B1F,EACAE,GACa,IAGuCyF,EANlD7H,EAAO4H,EAAP5H,QAIIoD,EAAkC,CAAC,EAAC0E,EAAA7B,EAEjB7E,OAAOC,KAAKrB,GAAS0D,QAAM,IAApD,IAAAoE,EAAA5B,MAAA2B,EAAAC,EAAA3B,KAAAC,MAAsD,KAA3CvD,EAAUgF,EAAAnP,MACjB,GAA2BT,MAAvB+H,EAAQ6C,GAAZ,CAIA,IAAMkF,EAAsBlF,EAAWhG,eAEnCkL,KAAuBnF,EAAAA,IACvBV,SAAAA,EAAmB8F,IAAID,OAGlB3F,GACAA,IAAoBA,EAAgB4F,IAAID,KAMd,iBAAxB/H,EAAQ6C,KACfO,EAAiB2E,GAAuB/H,EAAQ6C,GAAc7C,EAAQ6C,GACjEoF,OACAvJ,QAAQ,OAAQ,KAlBzB,CAoBJ,CAAC,OAAA8H,GAAAsB,EAAArB,EAAAD,EAAA,SAAAsB,EAAApB,GAAA,CAED,OAAOtD,CACX,GAEA,CAAAhL,IAAA,qBAAAM,MAWA,SAA0BwP,GAAyC,IAAtClI,EAAOkI,EAAPlI,QAASK,EAAI6H,EAAJ7H,KASlC,OAAIL,EAAQ4C,EAAAA,IACD5C,EAAQ4C,EAAAA,IAGP3K,MAARoI,EACOuC,EAAAA,GAGS,iBAATvC,IAAqB8H,EAAAA,EAAAA,GAAc9H,GACnCiF,IAAAA,OAAcjF,EAAM,OAAOxD,cAGlCkG,YAAYC,OAAO3C,GAGZiF,IAAAA,OAAejF,EAAkB4C,OAAQ,OAAOpG,cAGpD+F,EAAAA,EACX,GAEA,CAAAxK,IAAA,qBAAAM,MAaA,SACIkJ,GAMA,IAJ0C,IAD1C1G,EAA6C2G,UAAAxG,OAAA,QAAApD,IAAA4J,UAAA,GAAAA,UAAA,GAAG,CAAC,EAE3CuG,EAAcC,KAAKC,MAAMD,KAAKE,UAAU3G,IACtC5B,EAA6CoI,EAA7CpI,QAAOwI,EAAsCJ,EAApCrE,MAAAA,OAAK,IAAAyE,EAAG,CAAC,EAACA,EAE3BC,EAAA,EAAAC,EAAmBtH,OAAOC,KAAKrB,GAAQyI,EAAAC,EAAArN,OAAAoN,IAAE,KAAAE,EAA9BjJ,EAAIgJ,EAAAD,GACLG,EAAgBlJ,EAAK7C,cAEO,WAA9B+L,EAAc/J,MAAM,EAAG,IACI,QAA3B8J,EAACzN,EAAQmJ,0BAAkB,IAAAsE,GAA1BA,EAA4BX,IAAIY,KAEjC7E,EAAMrE,GAAQM,EAAQN,UACfM,EAAQN,GAEvB,CAEA,OAAAqC,EAAAA,EAAA,GACOqG,GAAW,IACdpI,QAAAA,EACA+D,MAAAA,GAER,GAEA,CAAA3L,IAAA,2BAAAM,MAOA,SAAiCqL,EAA0B8E,GACvD,IAG2CC,EAHrCzH,EAAsB,GACtB8F,EAAqC,CAAC,EAAC4B,EAAA,SAAA3Q,GAGzC,GAAIyQ,SAAAA,EAAYG,SAAS5Q,EAAIyE,eAAgB,SAI7CwE,EAAKkF,KAAKnO,GACV,IAAMM,EAAQqL,EAAM3L,GAEC,iBAAVM,EACPyO,EAAW/O,GAAO,GAAHG,OAAM8O,EAAUjP,GAAI,KAAAG,OAAI8O,EAAU3O,IAC1C4O,MAAMC,QAAQ7O,KACrByO,EAAW/O,GAAOM,EACbmG,MAAM,GACN6E,OACA8D,QACG,SAACC,EAAwB/O,GAAa,OAClC+O,EAAQlP,OAAO,CAAC,GAADA,OAAI8O,EAAUjP,GAAI,KAAAG,OAAI8O,EAAU3O,KAAU,GAC7D,IAEHiL,KAAK,KAElB,EAACsF,EAAAhD,EArBiB7E,OAAOC,KAAK0C,GAAOL,QAAM,IAA3C,IAAAuF,EAAA/C,MAAA4C,EAAAG,EAAA9C,KAAAC,MAAA,CAAc2C,EAAAD,EAAApQ,MAEE,CAmBf,OAAA8N,GAAAyC,EAAAxC,EAAAD,EAAA,SAAAyC,EAAAvC,GAAA,CAED,OAAOrF,EACF0D,KAAI,SAAC3M,GAAG,OAAK+O,EAAW/O,EAAI,IAC5BuP,QAAO,SAACR,GAAU,OAAKA,CAAU,IACjCxD,KAAK,IACd,IAAC,CAtoBmB,GAipBXY,EAAqB,SAAA2E,GAM9B,SAAA3E,EAAYxI,EAAiByD,GAAe,IAAAC,EAEL,OAFK5H,EAAA,KAAA0M,IACxC9E,EAAAzD,EAAA,KAAAuI,EAAA,CAAMxI,EAASyD,KACVE,KAAO,wBAAuBD,CACvC,CAAC,4RAAAxD,CAAAsI,EAAA2E,GAAA1N,EAAA+I,EAAA,CAT6B,CAAShF,EAAAA,IA+I3C,SAAS8H,EAAUT,GAKf,OAAOG,mBAAmBH,GAAKlI,QAAQ,YAJrB,SAACyK,GACf,MAAO,IAAP5Q,OAAW4Q,EAAEC,WAAW,GAAG3E,SAAS,IAAI4E,cAC5C,GAGJ,CASA,SAAS/G,EAAWgH,GAChB,IAeaC,EAfPhH,GAeOgH,EAfYD,EA2B7B,SAAgBC,GACZ,MAAoB,iBAATA,EACA,IAAItH,KAAY,IAAPsH,GAGA,iBAATA,EACHC,OAAOD,GACA,IAAItH,KAAoB,IAAfuH,OAAOD,IAGpB,IAAItH,KAAKsH,GAGbA,CACX,CAzBWE,CAAOF,GACTG,cACAhL,QAAQ,YAAa,MAlBKA,QAAQ,QAAS,IAChD,MAAO,CACH6D,SAAAA,EACAC,UAAWD,EAAS1D,MAAM,EAAG,GAErC,iBCj0BO,SAASsJ,EAAczP,GAC1B,MAC2B,mBAAhBqK,cACNrK,aAAiBqK,aAC4B,yBAA1C3B,OAAOuI,UAAUlF,SAASmF,KAAKlR,GAE3C,2BCXAmR,EAAOC,QAAUC,QAAQ,qBCAzBF,EAAOC,QAAUC,QAAQ,oBCAzBF,EAAOC,QAAUC,QAAQ,aCCrBC,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBjS,IAAjBkS,EACH,OAAOA,EAAaL,QAGrB,IAAID,EAASG,EAAyBE,GAAY,CAGjDJ,QAAS,CAAC,GAOX,OAHAM,EAAoBF,GAAUL,EAAQA,EAAOC,QAASG,GAG/CJ,EAAOC,OACf,CCrBAG,EAAoB9D,EAAK0D,IACxB,IAAIQ,EAASR,GAAUA,EAAOS,WAC7B,IAAOT,EAAiB,QACxB,IAAM,EAEP,OADAI,EAAoBM,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,CAAM,ECLdJ,EAAoBM,EAAI,CAACT,EAASW,KACjC,IAAI,IAAIrS,KAAOqS,EACXR,EAAoBS,EAAED,EAAYrS,KAAS6R,EAAoBS,EAAEZ,EAAS1R,IAC5EgJ,OAAOuJ,eAAeb,EAAS1R,EAAK,CAAEwS,YAAY,EAAMvS,IAAKoS,EAAWrS,IAE1E,ECND6R,EAAoBS,EAAI,CAACG,EAAKC,IAAU1J,OAAOuI,UAAUoB,eAAenB,KAAKiB,EAAKC,GCClFb,EAAoBe,EAAKlB,IACH,oBAAXmB,QAA0BA,OAAOC,aAC1C9J,OAAOuJ,eAAeb,EAASmB,OAAOC,YAAa,CAAExS,MAAO,WAE7D0I,OAAOuJ,eAAeb,EAAS,aAAc,CAAEpR,OAAO,GAAO,iVCL9D,MAAM,EAA+BqR,QAAQ,s+BCC7CoB,EAAA,kBAAA1E,CAAA,MAAA2E,EAAA3E,EAAA,GAAAuE,EAAA5J,OAAAuI,UAAAxD,EAAA6E,EAAAD,eAAAL,EAAAtJ,OAAAuJ,gBAAA,SAAAS,EAAA3E,EAAAuE,GAAAI,EAAA3E,GAAAuE,EAAAtS,KAAA,EAAA2S,EAAA,mBAAAJ,OAAAA,OAAA,GAAAT,EAAAa,EAAAC,UAAA,aAAAnC,EAAAkC,EAAAE,eAAA,kBAAAC,EAAAH,EAAAH,aAAA,yBAAAO,EAAAL,EAAA3E,EAAAuE,GAAA,OAAA5J,OAAAuJ,eAAAS,EAAA3E,EAAA,CAAA/N,MAAAsS,EAAAJ,YAAA,EAAAc,cAAA,EAAAC,UAAA,IAAAP,EAAA3E,EAAA,KAAAgF,EAAA,aAAAL,GAAAK,EAAA,SAAAL,EAAA3E,EAAAuE,GAAA,OAAAI,EAAA3E,GAAAuE,CAAA,WAAAY,EAAAR,EAAA3E,EAAAuE,EAAA7E,GAAA,IAAAkF,EAAA5E,GAAAA,EAAAkD,qBAAAkC,EAAApF,EAAAoF,EAAArB,EAAApJ,OAAA0K,OAAAT,EAAA1B,WAAAR,EAAA,IAAA4C,EAAA5F,GAAA,WAAAuE,EAAAF,EAAA,WAAA9R,MAAAsT,EAAAZ,EAAAJ,EAAA7B,KAAAqB,CAAA,UAAAyB,EAAAb,EAAA3E,EAAAuE,GAAA,WAAAkB,KAAA,SAAAC,IAAAf,EAAAxB,KAAAnD,EAAAuE,GAAA,OAAAI,GAAA,OAAAc,KAAA,QAAAC,IAAAf,EAAA,EAAA3E,EAAAmF,KAAAA,EAAA,IAAAQ,EAAA,iBAAAC,EAAA,iBAAA3F,EAAA,YAAAR,EAAA,YAAAoG,EAAA,YAAAT,IAAA,UAAAU,IAAA,UAAAC,IAAA,KAAAC,EAAA,GAAAhB,EAAAgB,EAAAjC,GAAA,8BAAAD,EAAAnJ,OAAAsL,eAAAC,EAAApC,GAAAA,EAAAA,EAAAqC,EAAA,MAAAD,GAAAA,IAAA3B,GAAA7E,EAAAyD,KAAA+C,EAAAnC,KAAAiC,EAAAE,GAAA,IAAAE,EAAAL,EAAA7C,UAAAkC,EAAAlC,UAAAvI,OAAA0K,OAAAW,GAAA,SAAAK,EAAA1B,GAAA,0BAAA2B,SAAA,SAAAtG,GAAAgF,EAAAL,EAAA3E,GAAA,SAAA2E,GAAA,YAAA4B,QAAAvG,EAAA2E,EAAA,gBAAA6B,EAAA7B,EAAA3E,GAAA,SAAAyG,EAAAlC,EAAAN,EAAAW,EAAAb,GAAA,IAAArB,EAAA8C,EAAAb,EAAAJ,GAAAI,EAAAV,GAAA,aAAAvB,EAAA+C,KAAA,KAAAV,EAAArC,EAAAgD,IAAAC,EAAAZ,EAAA9S,MAAA,OAAA0T,GAAA,UAAAe,EAAAf,IAAAjG,EAAAyD,KAAAwC,EAAA,WAAA3F,EAAA2G,QAAAhB,EAAAiB,SAAAC,MAAA,SAAAlC,GAAA8B,EAAA,OAAA9B,EAAAC,EAAAb,EAAA,aAAAY,GAAA8B,EAAA,QAAA9B,EAAAC,EAAAb,EAAA,IAAA/D,EAAA2G,QAAAhB,GAAAkB,MAAA,SAAAlC,GAAAI,EAAA9S,MAAA0S,EAAAC,EAAAG,EAAA,aAAAJ,GAAA,OAAA8B,EAAA,QAAA9B,EAAAC,EAAAb,EAAA,IAAAA,EAAArB,EAAAgD,IAAA,KAAAnB,EAAAN,EAAA,gBAAAhS,MAAA,SAAA0S,EAAAjF,GAAA,SAAAoH,IAAA,WAAA9G,GAAA,SAAAA,EAAAuE,GAAAkC,EAAA9B,EAAAjF,EAAAM,EAAAuE,EAAA,WAAAA,EAAAA,EAAAA,EAAAsC,KAAAC,EAAAA,GAAAA,GAAA,aAAAvB,EAAAvF,EAAAuE,EAAA7E,GAAA,IAAAuE,EAAA0B,EAAA,gBAAAf,EAAAb,GAAA,GAAAE,IAAAhE,EAAA,MAAAvK,MAAA,mCAAAuO,IAAAxE,EAAA,cAAAmF,EAAA,MAAAb,EAAA,OAAA9R,MAAA0S,EAAAhF,MAAA,OAAAD,EAAAlB,OAAAoG,EAAAlF,EAAAgG,IAAA3B,IAAA,KAAArB,EAAAhD,EAAAqH,SAAA,GAAArE,EAAA,KAAAqC,EAAAiC,EAAAtE,EAAAhD,GAAA,GAAAqF,EAAA,IAAAA,IAAAc,EAAA,gBAAAd,CAAA,cAAArF,EAAAlB,OAAAkB,EAAAuH,KAAAvH,EAAAwH,MAAAxH,EAAAgG,SAAA,aAAAhG,EAAAlB,OAAA,IAAAyF,IAAA0B,EAAA,MAAA1B,EAAAxE,EAAAC,EAAAgG,IAAAhG,EAAAyH,kBAAAzH,EAAAgG,IAAA,gBAAAhG,EAAAlB,QAAAkB,EAAA0H,OAAA,SAAA1H,EAAAgG,KAAAzB,EAAAhE,EAAA,IAAA+F,EAAAR,EAAAxF,EAAAuE,EAAA7E,GAAA,cAAAsG,EAAAP,KAAA,IAAAxB,EAAAvE,EAAAC,KAAAF,EAAAmG,EAAAI,EAAAN,MAAAG,EAAA,gBAAA5T,MAAA+T,EAAAN,IAAA/F,KAAAD,EAAAC,KAAA,WAAAqG,EAAAP,OAAAxB,EAAAxE,EAAAC,EAAAlB,OAAA,QAAAkB,EAAAgG,IAAAM,EAAAN,IAAA,YAAAsB,EAAAhH,EAAAuE,GAAA,IAAA7E,EAAA6E,EAAA/F,OAAAyF,EAAAjE,EAAA6E,SAAAnF,GAAA,GAAAuE,IAAAU,EAAA,OAAAJ,EAAAwC,SAAA,eAAArH,GAAAM,EAAA6E,SAAA,SAAAN,EAAA/F,OAAA,SAAA+F,EAAAmB,IAAAf,EAAAqC,EAAAhH,EAAAuE,GAAA,UAAAA,EAAA/F,SAAA,WAAAkB,IAAA6E,EAAA/F,OAAA,QAAA+F,EAAAmB,IAAA,IAAA2B,UAAA,oCAAA3H,EAAA,aAAAmG,EAAA,IAAAjB,EAAAY,EAAAvB,EAAAjE,EAAA6E,SAAAN,EAAAmB,KAAA,aAAAd,EAAAa,KAAA,OAAAlB,EAAA/F,OAAA,QAAA+F,EAAAmB,IAAAd,EAAAc,IAAAnB,EAAAwC,SAAA,KAAAlB,EAAA,IAAA9B,EAAAa,EAAAc,IAAA,OAAA3B,EAAAA,EAAApE,MAAA4E,EAAAvE,EAAAsH,YAAAvD,EAAA9R,MAAAsS,EAAAgD,KAAAvH,EAAAwH,QAAA,WAAAjD,EAAA/F,SAAA+F,EAAA/F,OAAA,OAAA+F,EAAAmB,IAAAf,GAAAJ,EAAAwC,SAAA,KAAAlB,GAAA9B,GAAAQ,EAAA/F,OAAA,QAAA+F,EAAAmB,IAAA,IAAA2B,UAAA,oCAAA9C,EAAAwC,SAAA,KAAAlB,EAAA,UAAA4B,EAAA9C,GAAA,IAAA3E,EAAA,CAAA0H,OAAA/C,EAAA,SAAAA,IAAA3E,EAAA2H,SAAAhD,EAAA,SAAAA,IAAA3E,EAAA4H,WAAAjD,EAAA,GAAA3E,EAAA6H,SAAAlD,EAAA,SAAAmD,WAAAhI,KAAAE,EAAA,UAAA+H,EAAApD,GAAA,IAAA3E,EAAA2E,EAAAqD,YAAA,GAAAhI,EAAAyF,KAAA,gBAAAzF,EAAA0F,IAAAf,EAAAqD,WAAAhI,CAAA,UAAAsF,EAAAX,GAAA,KAAAmD,WAAA,EAAAJ,OAAA,SAAA/C,EAAA2B,QAAAmB,EAAA,WAAAQ,OAAA,YAAA9B,EAAAnG,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAAuE,EAAAvE,EAAA+D,GAAA,GAAAQ,EAAA,OAAAA,EAAApB,KAAAnD,GAAA,sBAAAA,EAAAuH,KAAA,OAAAvH,EAAA,IAAAkI,MAAAlI,EAAApL,QAAA,KAAAqP,GAAA,EAAAW,EAAA,SAAA2C,IAAA,OAAAtD,EAAAjE,EAAApL,QAAA,GAAA8K,EAAAyD,KAAAnD,EAAAiE,GAAA,OAAAsD,EAAAtV,MAAA+N,EAAAiE,GAAAsD,EAAA5H,MAAA,EAAA4H,EAAA,OAAAA,EAAAtV,MAAA0S,EAAA4C,EAAA5H,MAAA,EAAA4H,CAAA,SAAA3C,EAAA2C,KAAA3C,CAAA,YAAAyC,UAAAX,EAAA1G,GAAA,2BAAA8F,EAAA5C,UAAA6C,EAAA9B,EAAAmC,EAAA,eAAAnU,MAAA8T,EAAAd,cAAA,IAAAhB,EAAA8B,EAAA,eAAA9T,MAAA6T,EAAAb,cAAA,IAAAa,EAAAqC,YAAAnD,EAAAe,EAAAhB,EAAA,qBAAA/E,EAAAoI,oBAAA,SAAAzD,GAAA,IAAA3E,EAAA,mBAAA2E,GAAAA,EAAA0D,YAAA,QAAArI,IAAAA,IAAA8F,GAAA,uBAAA9F,EAAAmI,aAAAnI,EAAA/G,MAAA,EAAA+G,EAAAsI,KAAA,SAAA3D,GAAA,OAAAhK,OAAA4N,eAAA5N,OAAA4N,eAAA5D,EAAAoB,IAAApB,EAAA6D,UAAAzC,EAAAf,EAAAL,EAAAI,EAAA,sBAAAJ,EAAAzB,UAAAvI,OAAA0K,OAAAe,GAAAzB,CAAA,EAAA3E,EAAAyI,MAAA,SAAA9D,GAAA,OAAAiC,QAAAjC,EAAA,EAAA0B,EAAAG,EAAAtD,WAAA8B,EAAAwB,EAAAtD,UAAAR,GAAA,0BAAA1C,EAAAwG,cAAAA,EAAAxG,EAAA0I,MAAA,SAAA/D,EAAAJ,EAAA7E,EAAAuE,EAAAW,QAAA,IAAAA,IAAAA,EAAA+D,SAAA,IAAA5E,EAAA,IAAAyC,EAAArB,EAAAR,EAAAJ,EAAA7E,EAAAuE,GAAAW,GAAA,OAAA5E,EAAAoI,oBAAA7D,GAAAR,EAAAA,EAAAwD,OAAAV,MAAA,SAAAlC,GAAA,OAAAA,EAAAhF,KAAAgF,EAAA1S,MAAA8R,EAAAwD,MAAA,KAAAlB,EAAAD,GAAApB,EAAAoB,EAAArB,EAAA,aAAAC,EAAAoB,EAAArC,GAAA,0BAAAiB,EAAAoB,EAAA,qDAAApG,EAAApF,KAAA,SAAA+J,GAAA,IAAA3E,EAAArF,OAAAgK,GAAAJ,EAAA,WAAA7E,KAAAM,EAAAuE,EAAAzE,KAAAJ,GAAA,OAAA6E,EAAAqE,UAAA,SAAArB,IAAA,KAAAhD,EAAA3P,QAAA,KAAA+P,EAAAJ,EAAA1E,MAAA,GAAA8E,KAAA3E,EAAA,OAAAuH,EAAAtV,MAAA0S,EAAA4C,EAAA5H,MAAA,EAAA4H,CAAA,QAAAA,EAAA5H,MAAA,EAAA4H,CAAA,GAAAvH,EAAAmG,OAAAA,EAAAb,EAAApC,UAAA,CAAAmF,YAAA/C,EAAA2C,MAAA,SAAAjI,GAAA,QAAA6I,KAAA,OAAAtB,KAAA,OAAAN,KAAA,KAAAC,MAAAvC,EAAA,KAAAhF,MAAA,OAAAoH,SAAA,UAAAvI,OAAA,YAAAkH,IAAAf,EAAA,KAAAmD,WAAAxB,QAAAyB,IAAA/H,EAAA,QAAAuE,KAAA,WAAAA,EAAAuE,OAAA,IAAApJ,EAAAyD,KAAA,KAAAoB,KAAA2D,OAAA3D,EAAAnM,MAAA,WAAAmM,GAAAI,EAAA,EAAAoE,KAAA,gBAAApJ,MAAA,MAAAgF,EAAA,KAAAmD,WAAA,GAAAE,WAAA,aAAArD,EAAAc,KAAA,MAAAd,EAAAe,IAAA,YAAAsD,IAAA,EAAA7B,kBAAA,SAAAnH,GAAA,QAAAL,KAAA,MAAAK,EAAA,IAAAuE,EAAA,cAAA0E,EAAAvJ,EAAAuE,GAAA,OAAAF,EAAA0B,KAAA,QAAA1B,EAAA2B,IAAA1F,EAAAuE,EAAAgD,KAAA7H,EAAAuE,IAAAM,EAAA/F,OAAA,OAAA+F,EAAAmB,IAAAf,KAAAV,CAAA,SAAAA,EAAA,KAAA6D,WAAAlT,OAAA,EAAAqP,GAAA,IAAAA,EAAA,KAAAW,EAAA,KAAAkD,WAAA7D,GAAAF,EAAAa,EAAAoD,WAAA,YAAApD,EAAA8C,OAAA,OAAAuB,EAAA,UAAArE,EAAA8C,QAAA,KAAAmB,KAAA,KAAAnG,EAAAhD,EAAAyD,KAAAyB,EAAA,YAAAG,EAAArF,EAAAyD,KAAAyB,EAAA,iBAAAlC,GAAAqC,EAAA,SAAA8D,KAAAjE,EAAA+C,SAAA,OAAAsB,EAAArE,EAAA+C,UAAA,WAAAkB,KAAAjE,EAAAgD,WAAA,OAAAqB,EAAArE,EAAAgD,WAAA,SAAAlF,GAAA,QAAAmG,KAAAjE,EAAA+C,SAAA,OAAAsB,EAAArE,EAAA+C,UAAA,YAAA5C,EAAA,MAAArP,MAAA,kDAAAmT,KAAAjE,EAAAgD,WAAA,OAAAqB,EAAArE,EAAAgD,WAAA,KAAAR,OAAA,SAAAzC,EAAA3E,GAAA,QAAAuE,EAAA,KAAAuD,WAAAlT,OAAA,EAAA2P,GAAA,IAAAA,EAAA,KAAAN,EAAA,KAAA6D,WAAAvD,GAAA,GAAAN,EAAAyD,QAAA,KAAAmB,MAAAnJ,EAAAyD,KAAAc,EAAA,oBAAA4E,KAAA5E,EAAA2D,WAAA,KAAAhD,EAAAX,EAAA,OAAAW,IAAA,UAAAD,GAAA,aAAAA,IAAAC,EAAA8C,QAAA1H,GAAAA,GAAA4E,EAAAgD,aAAAhD,EAAA,UAAAb,EAAAa,EAAAA,EAAAoD,WAAA,UAAAjE,EAAA0B,KAAAd,EAAAZ,EAAA2B,IAAA1F,EAAA4E,GAAA,KAAApG,OAAA,YAAA+I,KAAA3C,EAAAgD,WAAA/B,GAAA,KAAAqD,SAAAnF,EAAA,EAAAmF,SAAA,SAAAvE,EAAA3E,GAAA,aAAA2E,EAAAc,KAAA,MAAAd,EAAAe,IAAA,gBAAAf,EAAAc,MAAA,aAAAd,EAAAc,KAAA,KAAA8B,KAAA5C,EAAAe,IAAA,WAAAf,EAAAc,MAAA,KAAAuD,KAAA,KAAAtD,IAAAf,EAAAe,IAAA,KAAAlH,OAAA,cAAA+I,KAAA,kBAAA5C,EAAAc,MAAAzF,IAAA,KAAAuH,KAAAvH,GAAA6F,CAAA,EAAAsD,OAAA,SAAAxE,GAAA,QAAA3E,EAAA,KAAA8H,WAAAlT,OAAA,EAAAoL,GAAA,IAAAA,EAAA,KAAAuE,EAAA,KAAAuD,WAAA9H,GAAA,GAAAuE,EAAAqD,aAAAjD,EAAA,YAAAuE,SAAA3E,EAAAyD,WAAAzD,EAAAsD,UAAAE,EAAAxD,GAAAsB,CAAA,kBAAAlB,GAAA,QAAA3E,EAAA,KAAA8H,WAAAlT,OAAA,EAAAoL,GAAA,IAAAA,EAAA,KAAAuE,EAAA,KAAAuD,WAAA9H,GAAA,GAAAuE,EAAAmD,SAAA/C,EAAA,KAAAjF,EAAA6E,EAAAyD,WAAA,aAAAtI,EAAA+F,KAAA,KAAAxB,EAAAvE,EAAAgG,IAAAqC,EAAAxD,EAAA,QAAAN,CAAA,QAAAvO,MAAA,0BAAA0T,cAAA,SAAApJ,EAAAuE,EAAA7E,GAAA,YAAAqH,SAAA,CAAAlC,SAAAsB,EAAAnG,GAAAsH,WAAA/C,EAAAiD,QAAA9H,GAAA,cAAAlB,SAAA,KAAAkH,IAAAf,GAAAkB,CAAA,GAAA7F,CAAA,UAAAqJ,EAAArJ,EAAAuE,GAAA,IAAAI,EAAAhK,OAAAC,KAAAoF,GAAA,GAAArF,OAAA2O,sBAAA,KAAArF,EAAAtJ,OAAA2O,sBAAAtJ,GAAAuE,IAAAN,EAAAA,EAAA/C,QAAA,SAAAqD,GAAA,OAAA5J,OAAA4O,yBAAAvJ,EAAAuE,GAAAJ,UAAA,KAAAQ,EAAA7E,KAAA0J,MAAA7E,EAAAV,EAAA,QAAAU,CAAA,UAAArJ,EAAA0E,GAAA,QAAAuE,EAAA,EAAAA,EAAAnJ,UAAAxG,OAAA2P,IAAA,KAAAI,EAAA,MAAAvJ,UAAAmJ,GAAAnJ,UAAAmJ,GAAA,GAAAA,EAAA,EAAA8E,EAAA1O,OAAAgK,IAAA,GAAA2B,SAAA,SAAA/B,GAAAlT,EAAA2O,EAAAuE,EAAAI,EAAAJ,GAAA,IAAA5J,OAAA8O,0BAAA9O,OAAA+O,iBAAA1J,EAAArF,OAAA8O,0BAAA9E,IAAA0E,EAAA1O,OAAAgK,IAAA2B,SAAA,SAAA/B,GAAA5J,OAAAuJ,eAAAlE,EAAAuE,EAAA5J,OAAA4O,yBAAA5E,EAAAJ,GAAA,WAAAvE,CAAA,UAAA2J,EAAAjK,EAAAiF,EAAA3E,EAAAuE,EAAAN,EAAAF,EAAArB,GAAA,QAAAkC,EAAAlF,EAAAqE,GAAArB,GAAAqC,EAAAH,EAAA3S,KAAA,OAAAyN,GAAA,YAAAM,EAAAN,EAAA,CAAAkF,EAAAjF,KAAAgF,EAAAI,GAAA4D,QAAAhC,QAAA5B,GAAA8B,KAAAtC,EAAAN,EAAA,UAAA7S,EAAA2S,EAAArE,GAAA,KAAAqE,aAAArE,GAAA,UAAA2H,UAAA,8CAAAuC,EAAA5J,EAAAuE,GAAA,QAAAI,EAAA,EAAAA,EAAAJ,EAAA3P,OAAA+P,IAAA,KAAAV,EAAAM,EAAAI,GAAAV,EAAAE,WAAAF,EAAAE,aAAA,EAAAF,EAAAgB,cAAA,YAAAhB,IAAAA,EAAAiB,UAAA,GAAAvK,OAAAuJ,eAAAlE,EAAA6J,EAAA5F,EAAAtS,KAAAsS,EAAA,WAAAlP,EAAAiL,EAAAuE,EAAAI,GAAA,OAAAJ,GAAAqF,EAAA5J,EAAAkD,UAAAqB,GAAAI,GAAAiF,EAAA5J,EAAA2E,GAAAhK,OAAAuJ,eAAAlE,EAAA,aAAAkF,UAAA,IAAAlF,CAAA,UAAAzK,EAAAoP,EAAAV,EAAAjE,GAAA,OAAAiE,EAAA6F,EAAA7F,GAAA,SAAAU,EAAA3E,GAAA,GAAAA,IAAA,UAAA0G,EAAA1G,IAAA,mBAAAA,GAAA,OAAAA,EAAA,YAAAA,EAAA,UAAAqH,UAAA,4EAAArH,GAAA,YAAAA,EAAA,UAAA+J,eAAA,oEAAA/J,CAAA,CAAAgK,CAAArF,EAAA,CAAAsF,CAAAtF,EAAAuF,IAAAC,QAAAC,UAAAnG,EAAAjE,GAAA,GAAA8J,EAAAnF,GAAA0D,aAAApE,EAAAuF,MAAA7E,EAAA3E,GAAA,UAAAkK,IAAA,QAAAvF,GAAA0F,QAAAnH,UAAAoH,QAAAnH,KAAAgH,QAAAC,UAAAC,QAAA,0BAAA1F,GAAA,QAAAuF,EAAA,mBAAAvF,CAAA,cAAA4F,IAAA,OAAAA,EAAA,oBAAAJ,SAAAA,QAAAvY,IAAAuY,QAAAvY,IAAA4Y,OAAA,SAAAxK,EAAA2E,EAAAJ,GAAA,IAAAyB,EAAA,SAAArB,EAAAV,GAAA,SAAAK,eAAAnB,KAAAwB,EAAAV,IAAA,QAAAU,EAAAmF,EAAAnF,MAAA,OAAAA,CAAA,CAAA8F,CAAAzK,EAAA2E,GAAA,GAAAqB,EAAA,KAAAtG,EAAA/E,OAAA4O,yBAAAvD,EAAArB,GAAA,OAAAjF,EAAA9N,IAAA8N,EAAA9N,IAAAuR,KAAA/H,UAAAxG,OAAA,EAAAoL,EAAAuE,GAAA7E,EAAAzN,KAAA,GAAAsY,EAAAf,MAAA,KAAApO,UAAA,UAAA0O,EAAAnF,GAAA,OAAAmF,EAAAnP,OAAA4N,eAAA5N,OAAAsL,eAAAuE,OAAA,SAAA7F,GAAA,OAAAA,EAAA6D,WAAA7N,OAAAsL,eAAAtB,EAAA,EAAAmF,EAAAnF,EAAA,UAAAnP,EAAAmP,EAAA3E,GAAA,sBAAAA,GAAA,OAAAA,EAAA,UAAAqH,UAAA,sDAAA1C,EAAAzB,UAAAvI,OAAA0K,OAAArF,GAAAA,EAAAkD,UAAA,CAAAmF,YAAA,CAAApW,MAAA0S,EAAAO,UAAA,EAAAD,cAAA,KAAAtK,OAAAuJ,eAAAS,EAAA,aAAAO,UAAA,IAAAlF,GAAA0K,EAAA/F,EAAA3E,EAAA,UAAA0K,EAAA/F,EAAA3E,GAAA,OAAA0K,EAAA/P,OAAA4N,eAAA5N,OAAA4N,eAAAiC,OAAA,SAAA7F,EAAA3E,GAAA,OAAA2E,EAAA6D,UAAAxI,EAAA2E,CAAA,EAAA+F,EAAA/F,EAAA3E,EAAA,UAAA3O,EAAA2O,EAAAuE,EAAAI,GAAA,OAAAJ,EAAAsF,EAAAtF,MAAAvE,EAAArF,OAAAuJ,eAAAlE,EAAAuE,EAAA,CAAAtS,MAAA0S,EAAAR,YAAA,EAAAc,cAAA,EAAAC,UAAA,IAAAlF,EAAAuE,GAAAI,EAAA3E,CAAA,UAAA6J,EAAAlF,GAAA,IAAAC,EAAA,SAAAD,EAAAJ,GAAA,aAAAmC,EAAA/B,KAAAA,EAAA,OAAAA,EAAA,IAAA3E,EAAA2E,EAAAH,OAAAmG,aAAA,YAAA3K,EAAA,KAAA4E,EAAA5E,EAAAmD,KAAAwB,EAAAJ,GAAA,wBAAAmC,EAAA9B,GAAA,OAAAA,EAAA,UAAAyC,UAAA,kEAAA9C,EAAAqG,OAAA7H,QAAA4B,EAAA,CAAAkG,CAAAlG,EAAA,0BAAA+B,EAAA9B,GAAAA,EAAAA,EAAA,GAYO,IAAMkG,EAAY,SAAAC,GAKrB,SAAAD,EAAY5Z,GAAsB,IAAA8H,EAkB7B,OAlB6B5H,EAAA,KAAA0Z,GACJzZ,EAA1B2H,EAAAzD,EAAA,KAAAuV,EAAA,CAAM5Z,EAAW,WAAS,oBAAAG,EAAA2H,EAAA,wBAAA3H,EAAA2H,EAAA,iBAE1BA,EAAK6D,UAAY,IAAIhC,EAAAA,EAAY,CAC7BE,QAAS/B,EAAK7H,YACdY,OAAQiH,EAAK9H,UAAUa,OACvBiJ,YAAa,CACTrG,YAAaqE,EAAK9H,UAAUyD,YAC5BE,gBAAiBmE,EAAK9H,UAAU2D,gBAChCC,aAAckE,EAAK9H,UAAU4D,cAEjCmG,eAAe,EACfC,eAAe,IAGnBlC,EAAKwF,OAAS,OACdxF,EAAKgS,cAAgB,CACjB,eAAgB,8BACnBhS,CACL,CAEA,OAAAxD,EAAAsV,EAAAC,GAAAhW,EAAA+V,EAAA,EAAAnZ,IAAA,SAAAM,OAtCJyN,EAsCIgF,IAAA4D,MASA,SAAA2C,EACIhS,EACAiS,GAAe,IAAAzW,EAAA6I,EAAA6N,EAAA5R,EAAA6R,EAAAC,EAAAC,EAAApZ,EAAAqZ,EAAAC,EAAApQ,UAAA,OAAAsJ,IAAAS,MAAA,SAAAsG,GAAA,cAAAA,EAAA5C,KAAA4C,EAAAlE,MAAA,OA4Bd,OAzBKjK,EAA2B,CAAC,EAC5B6N,GAHN1W,EAA0B+W,EAAA5W,OAAA,QAAApD,IAAAga,EAAA,GAAAA,EAAA,GAAG,CAAC,GAGCL,gBAAkB,kBAC3C5R,EAAO+B,EAAAA,EAAA,GACN/J,KAAKyZ,eAAa,GAAA3Z,EAAAA,EAAAA,EAAA,GACpBiF,EAAAA,GAAiB,aAAAxE,OAAgBqZ,IAClC,wBAAyBA,GACzB,iBAAkB1W,EAAQiX,SAAW,SAErCjX,EAAQkX,gBACRpS,EAAQ,wBAA0B9E,EAAQkX,eAE1ClX,EAAQmX,YACRtO,EAAiB,UAAI7I,EAAQmX,WAG3BR,EAAgB7Z,KAAKsL,UAAUgP,KACjC,CACIrN,OAAQjN,KAAKiN,OACb/M,SAAUF,KAAKE,SACf2L,KAAM,yBAAFtL,OAA2BmH,EAAI,gBACnCqE,MAAAA,EACA/D,QAAAA,EACAK,KAAMsR,GAAW,IAErB,CAAC,GACJO,EAAAlE,KAAA,EAEiBuE,IAAAA,aAAkBva,KAAKiN,OAAQ4M,EAAcjO,IAAKiO,EAAcxR,KAAI0B,EAAAA,EAAA,GAC/E/J,KAAKwa,mBAAiB,IACzBxS,QAAS6R,EAAc7R,WACzB,OAWuD,GAdnD8R,EAAGI,EAAAxE,KAIT1V,KAAKya,YAAYX,GAEXC,EAAYD,EAAI9R,QAAQ,oBACxBrH,EAAW,CACb+Z,gBAAiBZ,EAAI9R,QAAQ,0BAC7B+R,UAAWA,EAAYY,IAAAA,UAAmBZ,EAAW,MAAO,UAAO9Z,EACnE2a,WAAYd,EAAIjZ,OAChB8Y,QAASG,EAAIzR,QAGX2R,EAAgBF,EAAI9R,QAAQ,yBACf,CAAFkS,EAAAlE,KAAA,eACP,IAAI6E,EAAsBb,EAAerZ,GAAS,eAAAuZ,EAAArE,OAAA,SAEjDlV,GAAQ,yBAAAuZ,EAAA1C,OAAA,GAAAkC,EAAA,SA3DvB1E,EAtCJ,eAAA5B,EAAA,KAAA3E,EAAA5E,UAAA,WAAAuN,SAAA,SAAApE,EAAAN,GAAA,IAAAF,EAAArE,EAAA8J,MAAA7E,EAAA3E,GAAA,SAAAqM,EAAA3M,GAAAiK,EAAA5F,EAAAQ,EAAAN,EAAAoI,EAAAC,EAAA,OAAA5M,EAAA,UAAA4M,EAAA5M,GAAAiK,EAAA5F,EAAAQ,EAAAN,EAAAoI,EAAAC,EAAA,QAAA5M,EAAA,CAAA2M,OAAA,OAmGK,SApDWE,EAAAC,GAAA,OAAAjG,EAAAiD,MAAC,KAADpO,UAAA,KAAAzJ,IAAA,cAAAM,MAuDZ,SAAsBC,EAAqDC,GACvE,IAvGRwS,EAAA3E,EAAAuE,EAAAN,EAAA+B,EAwGQ,KAxGRrB,EAuGqBmG,EAvGrB9K,EAuGqB,cAvGrBuE,EAuGqB,KAvGrByB,EAAAuE,EAAAT,EAAA,GAAA7F,EAuGqB,GAvGrBU,EAAAzB,UAAAyB,GAAA3E,EAAAuE,GAAA,EAAAN,EAAA,SAAAU,GAAA,OAAAqB,EAAAwD,MAAAjF,EAAAI,EAAA,EAAAqB,GAuGqB,CAAqB9T,EAAUC,IAExC,OAAO,EAGX,IAAMsa,EAAW3T,EAAAA,GAAS+I,MAAM3P,GAChC,OAAQua,EAAS1T,MACb,IAAK,+BACL,IAAK,4BACD,MAAM,IAAI+E,EAAAA,EAAsB2O,EAASnX,QAASmX,EAAS1T,MAC/D,QACI,MAAM0T,EAGd,OAAO,CACX,KAhFA,IAtCJ/M,EAsCI6G,CAgFC,CA1GoB,CAAStV,EAAAA,GA6GrBmb,EAAqB,SAAA/W,GAG9B,SAAA+W,EAAY9W,EAAiBpD,GAA8B,IAAA6H,EAE/B,OAF+B3I,EAAA,KAAAgb,GACf/a,EAAxC0I,EAAAxE,EAAA,KAAA6W,EAAA,IAAAta,OAASwD,EAAO,MAAAxD,OAAKI,EAASgZ,WAAU,mBACxCnR,EAAK7H,SAAWA,EAAQ6H,CAC5B,CAAC,OAAAvE,EAAA4W,EAAA/W,GAAAN,EAAAqX,EAAA,CAN6B,CAM7B3W,EANsCC","sources":["webpack://k6-jslib-aws/./src/internal/client.ts","webpack://k6-jslib-aws/./src/internal/config.ts","webpack://k6-jslib-aws/./src/internal/constants.ts","webpack://k6-jslib-aws/./src/internal/endpoint.ts","webpack://k6-jslib-aws/./src/internal/error.ts","webpack://k6-jslib-aws/./src/internal/http.ts","webpack://k6-jslib-aws/./src/internal/signature.ts","webpack://k6-jslib-aws/./src/internal/utils.ts","webpack://k6-jslib-aws/external commonjs \"k6/crypto\"","webpack://k6-jslib-aws/external commonjs \"k6/html\"","webpack://k6-jslib-aws/external commonjs \"k6/http\"","webpack://k6-jslib-aws/webpack/bootstrap","webpack://k6-jslib-aws/webpack/runtime/compat get default export","webpack://k6-jslib-aws/webpack/runtime/define property getters","webpack://k6-jslib-aws/webpack/runtime/hasOwnProperty shorthand","webpack://k6-jslib-aws/webpack/runtime/make namespace object","webpack://k6-jslib-aws/external commonjs \"k6/encoding\"","webpack://k6-jslib-aws/./src/internal/lambda.ts"],"sourcesContent":["import { RefinedResponse, ResponseType, Params } from 'k6/http'\n\nimport { AWSConfig } from './config'\nimport { Endpoint } from './endpoint'\nimport { HTTPHeaders } from './http'\nimport {\n GeneralErrorKind,\n DNSErrorKind,\n TCPErrorKind,\n TLSErrorKind,\n HTTP2ErrorKind,\n GeneralError,\n DNSError,\n TCPError,\n TLSError,\n HTTP2Error,\n} from './error'\n\n/**\n * Class allowing to build requests targeting AWS APIs\n *\n * This class is meant to be used as a base class for specific\n * services clients. See S3Client or SecretsManagerClient for\n * usage examples.\n */\nexport class AWSClient {\n readonly awsConfig: AWSConfig\n readonly serviceName: string\n\n // Because jslib-aws is mostly used as a way to setup or feed k6 tests, and\n // we want the jslib-aws to be able to disregard k6's discardResponseBodies: meaning\n // that for instance, even when setting discardResponseBodies to true in the k6 options, using\n // s3.getObject still receives the underlying response body and returns data to the user.\n //\n // To achieve this, we set the responseType to 'text' in the baseRequestParams, as it\n // will lead the http module to ignore the discardResponseBodies option.\n //\n // AWS Client classes can override this value if they want to receive the response body\n // as a different type ('binary' for instance, e.g. S3Client.getObject).\n //\n // See #45: https://github.com/grafana/k6-jslib-aws/issues/45\n readonly baseRequestParams: Params = {\n responseType: 'text',\n }\n\n private _endpoint?: Endpoint\n\n /**\n * @param {AWSConfig} awsConfig - configuration attributes to use when interacting with AWS' APIs\n * @param {string} serviceName - name of the service to target.\n * @param {URIEncodingConfig} URIencodingConfig - configures how requests URIs should be encoded.\n */\n constructor(awsConfig: AWSConfig, serviceName: string) {\n this.awsConfig = awsConfig\n this.serviceName = serviceName\n\n // If an endpoint is provided in the config, set it\n // to ensure the default endpoint is not used.\n if (awsConfig.endpoint != undefined) {\n this._endpoint = awsConfig.endpoint\n }\n }\n\n /**\n * Represents the endpoint URL of the AWS service.\n *\n * If no custom endpoint is set, a default endpoint will be constructed\n * using the service name and region provided in the AWS config.\n *\n * @type {Endpoint}\n * @public\n */\n public get endpoint() {\n if (this._endpoint == undefined) {\n this._endpoint = new Endpoint(\n `https://${this.serviceName}.${this.awsConfig.region}.amazonaws.com`\n )\n }\n return this._endpoint\n }\n\n /**\n * Updates the endpoint URL of the AWS service.\n *\n * This can be used to override the default AWS service endpoint or set a custom endpoint.\n *\n * @param {Endpoint} endpoint - The new endpoint to set for the AWS service.\n * @public\n */\n public set endpoint(endpoint: Endpoint) {\n this._endpoint = endpoint\n }\n\n /**\n * Handles the k6 http response potential errors produced when making a\n * request to an AWS service.\n *\n * Importantly, this method only handles errors that emerge from the k6 http client itself, and\n * won't handle AWS specific errors. To handle AWS specific errors, client classes are\n * expected to implement their own error handling logic by overriding this method.\n *\n * @param response {RefinedResponse} the response received by the k6 http client\n * @param operation {string | undefined } the name of the operation that was attempted when the error occurred\n * @param {boolean} returns true if an error was handled, false otherwise\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n protected handleError(response: RefinedResponse, operation?: string): boolean {\n const status: number = response.status\n const errorCode: number = response.error_code\n const errorMessage: string = response.error\n\n // We consider codes 200-299 as success.\n //\n // We do not consider 3xx as success as some services such as S3 can use\n // 301 to indicate a bucket not found\n if (status >= 200 && status < 300 && errorMessage == '' && errorCode === 0) {\n return false\n }\n\n switch (errorCode) {\n case GeneralErrorKind.GenericError:\n case GeneralErrorKind.NonTCPNetworkError:\n case GeneralErrorKind.InvalidURL:\n case GeneralErrorKind.HTTPRequestTimeout:\n throw new GeneralError(errorCode);\n case DNSErrorKind.GenericDNSError:\n case DNSErrorKind.NoIPFound:\n case DNSErrorKind.BlacklistedIP:\n case DNSErrorKind.BlacklistedHostname:\n throw new DNSError(errorCode);\n case TCPErrorKind.GenericTCPError:\n case TCPErrorKind.BrokenPipeOnWrite:\n case TCPErrorKind.UnknownTCPError:\n case TCPErrorKind.GeneralTCPDialError:\n case TCPErrorKind.DialTimeoutError:\n case TCPErrorKind.DialConnectionRefused:\n case TCPErrorKind.DialUnknownError:\n case TCPErrorKind.ResetByPeer:\n throw new TCPError(errorCode);\n case TLSErrorKind.GeneralTLSError:\n case TLSErrorKind.UnknownAuthority:\n case TLSErrorKind.CertificateHostnameMismatch:\n throw new TLSError(errorCode);\n case HTTP2ErrorKind.GenericHTTP2Error:\n case HTTP2ErrorKind.GeneralHTTP2GoAwayError:\n throw new HTTP2Error(errorCode);\n }\n\n return true\n }\n}\n\n/**\n * Type alias representing the result of an AWSClient.buildRequest call\n */\nexport interface AWSRequest {\n readonly url: string\n readonly headers: HTTPHeaders\n}\n","import { HTTPScheme } from './http'\nimport { Endpoint } from './endpoint'\n\n/** Class holding an AWS connection information */\nexport class AWSConfig {\n /**\n * The AWS region to connect to, as listed: https://docs.aws.amazon.com/general/latest/gr/rande.html\n *\n * @type {string}\n */\n region: string\n\n /**\n * Your user's AWS access key id credential.\n *\n * @type {string}\n */\n accessKeyId: string\n\n /**\n * Your user's AWS secret access key credential.\n *\n * @type {string}\n */\n secretAccessKey: string\n\n /**\n * Your user's AWS session token credential.\n *\n * @type {string}\n */\n sessionToken?: string\n\n /**\n * The AWS hostname to connect to.\n *\n * @type {string} ['amazonaws.com']\n */\n endpoint?: Endpoint\n\n /**\n * fromEnvironment creates an AWSConfig from the environment variables.\n *\n * It expects to find the following compulsory environment variables:\n * * AWS_REGION\n * * AWS_ACCESS_KEY_ID\n * * AWS_SECRET_ACCESS_KEY\n *\n * If set, the following optional environment variables are also used:\n * * AWS_SESSION_TOKEN\n *\n * Finally, the options parameter allows to explicitly set the scheme and endpoint\n * to use when connecting to AWS.\n *\n * @param options {AWSConnectionOptions}\n * @returns\n */\n static fromEnvironment(options?: AWSConnectionOptions): AWSConfig {\n const region = __ENV.AWS_REGION\n const accessKeyId = __ENV.AWS_ACCESS_KEY_ID\n const secretAccessKey = __ENV.AWS_SECRET_ACCESS_KEY\n const sessionToken: string | undefined = __ENV.AWS_SESSION_TOKEN\n const endpoint: Endpoint | string | undefined = options?.endpoint\n\n return new AWSConfig({\n region,\n accessKeyId,\n secretAccessKey,\n sessionToken,\n endpoint: endpoint,\n })\n }\n\n /**\n * Create an AWSConfig.\n *\n * @param {AWSConfigOptions} options - configuration attributes to use when interacting with AWS' APIs\n * @throws {InvalidArgumentException}\n */\n constructor(options: AWSConfigOptions) {\n if (!options.region || options.region === '') {\n throw new InvalidAWSConfigError(\n `invalid AWS region; reason: expected a valid AWS region name (e.g. \"us-east-1\"), got \\`${options.region}\\``\n )\n }\n\n if (!options.accessKeyId || options.accessKeyId === '') {\n throw new InvalidAWSConfigError(\n `invalid AWS access key ID; reason: expected a non empty string, got \\`${options.accessKeyId}\\``\n )\n }\n\n if (options.accessKeyId.length < 16 || options.accessKeyId.length > 128) {\n throw new InvalidAWSConfigError(\n `invalid AWS access key ID; reason: size should be between 16 and 128 characters, got ${options.accessKeyId.length}`\n )\n }\n\n if (!options.secretAccessKey || options.secretAccessKey === '') {\n throw new InvalidAWSConfigError(\n `invalid AWS secret access key; reason: expected a non empty string, got \\`${options.secretAccessKey}\\``\n )\n }\n\n this.region = options.region\n this.accessKeyId = options.accessKeyId\n this.secretAccessKey = options.secretAccessKey\n\n if (options.sessionToken !== undefined) {\n this.sessionToken = options.sessionToken\n }\n\n if (options.endpoint !== undefined) {\n if (typeof options.endpoint === 'string') {\n this.endpoint = new Endpoint(options.endpoint)\n } else {\n this.endpoint = options.endpoint\n }\n }\n }\n}\n\n/**\n * Interface representing AWSConfig options\n */\nexport interface AWSConfigOptions extends AWSConnectionOptions {\n /**\n * The AWS region to connect to, as listed: https://docs.aws.amazon.com/general/latest/gr/rande.html\n *\n * @type {string}\n */\n region: string\n\n /**\n * Your user's AWS access key id credential.\n *\n * @type {string}\n */\n accessKeyId: string\n\n /**\n * Your user's AWS secret access key credential.\n *\n * @type {string}\n */\n secretAccessKey: string\n\n /**\n * Your user's AWS session token credential.\n *\n * @type {string}\n */\n sessionToken?: string\n}\n\n/**\n * Interface representing AWS connection options\n */\nexport interface AWSConnectionOptions {\n /**\n * The HTTP scheme to use when connecting to AWS.\n *\n * @type {HTTPScheme}\n */\n scheme?: HTTPScheme\n\n /**\n * The AWS hostname to connect to.\n *\n * @type {string}\n */\n endpoint?: Endpoint | string\n}\n\n/** Class representing an invalid AWS configuration */\nexport class InvalidAWSConfigError extends Error {\n constructor(message: string) {\n super(message)\n }\n}\n","/**\n * Standard Amazon AWS query parameter names\n */\nexport const AMZ_ALGORITHM_QUERY_PARAM = 'X-Amz-Algorithm'\nexport const AMZ_CREDENTIAL_QUERY_PARAM = 'X-Amz-Credential'\nexport const AMZ_DATE_QUERY_PARAM = 'X-Amz-Date'\nexport const AMZ_EXPIRES_QUERY_PARAM = 'X-Amz-Expires'\nexport const AMZ_SIGNATURE_QUERY_PARAM = 'X-Amz-Signature'\nexport const AMZ_SIGNED_HEADERS_QUERY_PARAM = 'X-Amz-SignedHeaders'\nexport const AMZ_TARGET_QUERY_PARAM = 'X-Amz-Target'\nexport const AMZ_TOKEN_QUERY_PARAM = 'X-Amz-Security-Token'\n\n/**\n * Standard Amazon AWS header names\n */\nexport const AMZ_CONTENT_SHA256_HEADER = 'x-amz-content-sha256'\nexport const AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase()\nexport const AMZ_SIGNATURE_HEADER = AMZ_SIGNATURE_QUERY_PARAM.toLowerCase()\nexport const AMZ_TARGET_HEADER = AMZ_TARGET_QUERY_PARAM.toLowerCase()\nexport const AMZ_TOKEN_HEADER = AMZ_TOKEN_QUERY_PARAM.toLowerCase()\n\n/**\n * Common HTTP headers we rely on in the signing process\n */\nexport const AUTHORIZATION_HEADER = 'authorization'\nexport const DATE_HEADER = 'date'\n\n/**\n * Lists the headers that are generated as part of the signature process.\n */\nexport const GENERATED_HEADERS = [AUTHORIZATION_HEADER, AMZ_DATE_HEADER, DATE_HEADER]\nexport const HOST_HEADER = 'host'\n\n/**\n * Lists the headers that should never be included in the\n * request signature signature process.\n */\nexport const ALWAYS_UNSIGNABLE_HEADERS = {\n authorization: true,\n 'cache-control': true,\n connection: true,\n expect: true,\n from: true,\n 'keep-alive': true,\n 'max-forwards': true,\n pragma: true,\n referer: true,\n te: true,\n trailer: true,\n 'transfer-encoding': true,\n upgrade: true,\n 'user-agent': true,\n 'x-amzn-trace-id': true,\n}\n\n/**\n * Signature specific constants included in the signing process\n */\nexport const KEY_TYPE_IDENTIFIER = 'aws4_request'\nexport const SIGNING_ALGORITHM_IDENTIFIER = 'AWS4-HMAC-SHA256'\n\n/**\n * Maximum time to live of a signed request in seconds: 7 days.\n */\nexport const MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7\n\n/**\n * SHA256 hash of an empty string (so we don't waste cycles recomputing it)\n */\nexport const EMPTY_SHA256 = 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'\n\n/**\n * SHA256 hash of the unsigned payload constant (so we don't waste cycles recomputing it)\n */\nexport const UNSIGNED_PAYLOAD_SHA256 =\n '5a41b0751e4537c6ff868564ab44a4d4ecceec2ec5b1c5f74d97422968e04237'\n\nexport const UNSIGNED_PAYLOAD = 'UNSIGNED-PAYLOAD'\n","/**\n * Represents an AWS service endpoint, providing utilities for parsing and handling URL details.\n */\nexport class Endpoint {\n private _protocol: string\n private _hostname: string\n private _port?: number\n\n // Default protocol, this can be globally changed as per application requirements\n private static readonly DEFAULT_PROTOCOL = 'https' // Set this as per AWS.config\n\n /**\n // * Constructs a new Endpoint instance.\n *\n * @param {string} endpoint - The URL to construct an endpoint from. If the URL omits a protocol, the default protocol will be used.\n */\n constructor(endpoint: string) {\n const isDefaultProtocol =\n !endpoint.startsWith('http://') && !endpoint.startsWith('https://')\n const completeUrl = isDefaultProtocol\n ? `${Endpoint.DEFAULT_PROTOCOL}://${endpoint}`\n : endpoint\n\n const protocolMatch = completeUrl.match(/^https?:/)\n const hostAndPath = completeUrl.replace(/^https?:\\/\\//, '')\n const [hostnameWithPort] = hostAndPath.split('/')\n\n this._protocol = protocolMatch ? protocolMatch[0].slice(0, -1) : Endpoint.DEFAULT_PROTOCOL\n this._hostname = hostnameWithPort.split(':')[0]\n this._port = hostnameWithPort.split(':')[1]\n ? parseInt(hostnameWithPort.split(':')[1])\n : undefined\n }\n\n /**\n * Creates a new Endpoint instance that is a copy of the current one.\n *\n * @returns {Endpoint} The copied Endpoint.\n */\n public copy(): Endpoint {\n return new Endpoint(this.href)\n }\n\n /**\n * Gets the host portion of the endpoint including the port.\n *\n * @returns {string} The host portion of the endpoint including the port.\n */\n public get host(): string {\n return this._port ? `${this._hostname}:${this._port}` : this._hostname\n }\n\n /**\n * Sets the host portion of the endpoint including the port.\n *\n * @param {string} value - The value to set for the host.\n */\n public set host(value: string) {\n const [hostname, port] = value.split(':')\n this._hostname = hostname\n this._port = port ? parseInt(port) : undefined\n }\n\n /**\n * Gets the host portion of the endpoint without the port.\n *\n * @returns {string} The host portion of the endpoint.\n */\n public get hostname(): string {\n return this._hostname\n }\n\n /**\n * Sets the host portion of the endpoint without the port.\n *\n * @param {string} value - The value to set for the hostname.\n */\n public set hostname(value: string) {\n this._hostname = value\n }\n\n /**\n * Gets the full URL of the endpoint.\n *\n * @returns {string} The full URL of the endpoint.\n */\n public get href(): string {\n return `${this.protocol}://${this.host}`\n }\n\n /**\n * Sets the full URL of the endpoint.\n *\n * @param {string} value - The value to set for the full URL.\n */\n public set href(value: string) {\n const protocolMatch = value.match(/^https?:/)\n const withoutProtocol = value.replace(/^https?:\\/\\//, '')\n const [hostnameWithPort] = withoutProtocol.split('/')\n\n this._protocol = protocolMatch ? protocolMatch[0].slice(0, -1) : Endpoint.DEFAULT_PROTOCOL // remove the trailing colon\n this._hostname = hostnameWithPort.split(':')[0]\n this._port = hostnameWithPort.split(':')[1]\n ? parseInt(hostnameWithPort.split(':')[1])\n : undefined\n }\n\n /**\n * Gets the port of the endpoint.\n *\n * @returns {number|undefined} The port of the endpoint.\n */\n public get port(): number | undefined {\n return this._port\n }\n\n /**\n * Sets the port of the endpoint.\n *\n * @param {number|undefined} value - The value to set for the port.\n */\n public set port(value: number | undefined) {\n this._port = value\n }\n\n /**\n * Gets the protocol (http or https) of the endpoint URL.\n *\n * @returns {string} The protocol of the endpoint URL.\n */\n public get protocol(): string {\n return this._protocol\n }\n\n /**\n * Sets the protocol (http or https) of the endpoint URL.\n *\n * @param {string} value - The value to set for the protocol.\n */\n public set protocol(value: string) {\n this._protocol = value\n }\n}\n","import { JSONObject } from './json'\nimport { parseHTML } from 'k6/html'\nimport { Response } from 'k6/http'\n\n/**\n * Base class to derive errors from\n *\n * Inspired from AWS official error types, as\n * described in:\n * * https://aws.amazon.com/blogs/developer/service-error-handling-modular-aws-sdk-js/\n * * https://github.com/aws/aws-sdk-js/blob/master/lib/error.d.ts\n */\nexport class AWSError extends Error {\n /**\n * Error code issued by the service (if any)\n */\n code?: string\n\n /**\n * Create an AWSError\n *\n * @param {string} message - A longer human readable error message.\n * @param {string?} code - A unique short code representing the error that was emitted\n */\n constructor(message: string, code?: string) {\n super(message)\n this.name = 'AWSError'\n this.code = code\n }\n\n /**\n * Parse an AWSError from an XML document\n *\n * @param {string} xmlDocument - Serialized XML document to parse the error from\n * @returns {AWSError} - The parsed AWSError object\n */\n static parseXML(xmlDocument: string): AWSError {\n const doc = parseHTML(xmlDocument)\n return new AWSError(doc.find('Message').text(), doc.find('Code').text())\n }\n\n /**\n * Parse an AWSError from a Response object\n *\n * @param {Response} response - The Response object to parse the error from\n * @returns {AWSError} - The parsed AWSError object\n */\n static parse(response: Response): AWSError {\n if (response.headers['Content-Type'] === 'application/json') {\n const error = (response.json() as JSONObject) || {}\n const message =\n error.Message ||\n error.message ||\n error.__type ||\n 'An error occurred on the server side'\n const code = response.headers['X-Amzn-Errortype'] || error.__type\n return new AWSError(message as string, code as string)\n } else {\n return AWSError.parseXML(response.body as string)\n }\n }\n}\n\n/**\n * Base class for network errors as produced by k6.\n *\n * Based on the network error handling in k6, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n *\n * @typeparam N - The name of the network error\n * @typeparam K - The kind of the network error\n */\nexport class NetworkError extends Error {\n code: K\n name: N\n\n /**\n * Create a NetworkError\n *\n * @param {N} name - The name of the network error\n * @param {K} code - The kind of the network error\n */\n constructor(name: N, code: K) {\n super(ErrorMessages[code] || 'An unknown error occurred')\n this.name = name\n this.code = code\n }\n}\n\n/**\n * Represents a general network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class GeneralError extends NetworkError<'GeneralError', GeneralErrorKind> {\n /**\n * Create a GeneralError\n *\n * @param {GeneralErrorKind} code - The kind of the general error\n */\n constructor(code: GeneralErrorKind) {\n super('GeneralError', code)\n }\n}\n\n/**\n * Represents a DNS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class DNSError extends NetworkError<'DNSError', DNSErrorKind> {\n /**\n * Create a DNSError\n *\n * @param {DNSErrorKind} code - The kind of the DNS error\n */\n constructor(code: DNSErrorKind) {\n super('DNSError', code)\n }\n}\n\n/**\n * Represents a TCP-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class TCPError extends NetworkError<'TCPError', TCPErrorKind> {\n /**\n * Create a TCPError\n *\n * @param {TCPErrorKind} code - The kind of the TCP error\n */\n constructor(code: TCPErrorKind) {\n super('TCPError', code)\n }\n}\n\n/**\n * Represents a TLS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class TLSError extends NetworkError<'TLSError', TLSErrorKind> {\n /**\n * Create a TLSError\n *\n * @param {TLSErrorKind} code - The kind of the TLS error\n */\n constructor(code: TLSErrorKind) {\n super('TLSError', code)\n }\n}\n\n/**\n * Represents an HTTP/2-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class HTTP2Error extends NetworkError<'HTTP2Error', HTTP2ErrorKind> {\n /**\n * Create an HTTP2Error\n *\n * @param {HTTP2ErrorKind} code - The kind of the HTTP/2 error\n */\n constructor(code: HTTP2ErrorKind) {\n super('HTTP2Error', code)\n }\n}\n\n/**\n * Represents the name of a network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\ntype NetworkErrorName = 'GeneralError' | 'DNSError' | 'TCPError' | 'TLSError' | 'HTTP2Error'\n\n/**\n * Represents the kind of a network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\ntype ErrorKind = GeneralErrorKind | DNSErrorKind | TCPErrorKind | TLSErrorKind | HTTP2ErrorKind\n\n/**\n * Represents the kind of a general network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum GeneralErrorKind {\n GenericError = 1000,\n NonTCPNetworkError = 1010,\n InvalidURL = 1020,\n HTTPRequestTimeout = 1050,\n}\n\n/**\n * Represents the kind of a DNS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum DNSErrorKind {\n GenericDNSError = 1100,\n NoIPFound = 1101,\n BlacklistedIP = 1110,\n BlacklistedHostname = 1111,\n}\n\n/**\n * Represents the kind of a TCP-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum TCPErrorKind {\n GenericTCPError = 1200,\n BrokenPipeOnWrite = 1201,\n UnknownTCPError = 1202,\n GeneralTCPDialError = 1210,\n DialTimeoutError = 1211,\n DialConnectionRefused = 1212,\n DialUnknownError = 1213,\n ResetByPeer = 1220,\n}\n\n/**\n * Represents the kind of a TLS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum TLSErrorKind {\n GeneralTLSError = 1300,\n UnknownAuthority = 1310,\n CertificateHostnameMismatch = 1311,\n}\n\n/**\n * Represents the kind of an HTTP/2-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum HTTP2ErrorKind {\n GenericHTTP2Error = 1600,\n GeneralHTTP2GoAwayError = 1610,\n}\n\n/**\n * Error messages for each kind of network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nconst ErrorMessages: { [key in ErrorKind]: string } = {\n [GeneralErrorKind.GenericError]: 'A generic error that isn’t any of the ones listed below',\n [GeneralErrorKind.NonTCPNetworkError]:\n 'A non-TCP network error - this is a placeholder and there is no error currently known to trigger it',\n [GeneralErrorKind.InvalidURL]: 'An invalid URL was specified',\n [GeneralErrorKind.HTTPRequestTimeout]: 'The HTTP request has timed out',\n [DNSErrorKind.GenericDNSError]: 'A generic DNS error that isn’t any of the ones listed below',\n [DNSErrorKind.NoIPFound]: 'No IP for the provided host was found',\n [DNSErrorKind.BlacklistedIP]:\n 'Blacklisted IP was resolved or a connection to such was tried to be established',\n [DNSErrorKind.BlacklistedHostname]: 'Blacklisted hostname using The Block Hostnames option',\n [TCPErrorKind.GenericTCPError]: 'A generic TCP error that isn’t any of the ones listed below',\n [TCPErrorKind.BrokenPipeOnWrite]:\n 'A “broken pipe” on write - the other side has likely closed the connection',\n [TCPErrorKind.UnknownTCPError]:\n 'An unknown TCP error - We got an error that we don’t recognize but it is from the operating system and has errno set on it. The message in error includes the operation(write,read) and the errno, the OS, and the original message of the error',\n [TCPErrorKind.GeneralTCPDialError]: 'General TCP dial error',\n [TCPErrorKind.DialTimeoutError]: 'Dial timeout error - the timeout for the dial was reached',\n [TCPErrorKind.DialConnectionRefused]:\n 'Dial connection refused - the connection was refused by the other party on dial',\n [TCPErrorKind.DialUnknownError]: 'Dial unknown error',\n [TCPErrorKind.ResetByPeer]:\n 'Reset by peer - the connection was reset by the other party, most likely a server',\n [TLSErrorKind.GeneralTLSError]: 'General TLS error',\n [TLSErrorKind.UnknownAuthority]: 'Unknown authority - the certificate issuer is unknown',\n [TLSErrorKind.CertificateHostnameMismatch]: 'The certificate doesn’t match the hostname',\n [HTTP2ErrorKind.GenericHTTP2Error]:\n 'A generic HTTP/2 error that isn’t any of the ones listed below',\n [HTTP2ErrorKind.GeneralHTTP2GoAwayError]: 'A general HTTP/2 GoAway error',\n}\n","import { Endpoint } from './endpoint'\n\n/**\n * Type representing HTTP schemes\n */\nexport type HTTPScheme = 'http' | 'https'\n\n/**\n * Type representing HTTP Methods\n *\n */\nexport type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'DELETE'\n\n/**\n * Type alias representing HTTP Headers\n */\nexport type HTTPHeaders = { [key: string]: string }\n\n/**\n * HTTPHeaderBag is a type alias representing HTTP Headers\n */\nexport type HTTPHeaderBag = Record\n\nexport function hasHeader(soughtHeader: string, headers: HTTPHeaderBag): boolean {\n soughtHeader = soughtHeader.toLowerCase()\n\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * QueryParameterBag is a type alias representing HTTP Query Parameters\n */\nexport type QueryParameterBag = Record>\n\n/**\n * HTTPRequest represents an HTTP request\n */\nexport interface HTTPRequest {\n /**\n * The HTTP method to use\n */\n method: HTTPMethod\n\n /**\n * Represents an AWS service endpoint, providing utilities for parsing and handling URL details.\n */\n endpoint: Endpoint\n\n /**\n * The path to the resource\n */\n path: string\n\n /**\n * The query parameters to include in the request\n */\n query?: QueryParameterBag\n\n /**\n * The headers to include in the request\n */\n headers: HTTPHeaderBag\n\n /**\n * The body of the request\n */\n body?: string | ArrayBuffer | null\n}\n\n/**\n * SignedHTTPRequest represents an HTTP request that has been signed\n * with an AWS signature. It is a superset of HTTPRequest adding\n * the following fields:\n * - url: the fully qualified URL of the request that can be used in a k6 http.request.\n */\nexport interface SignedHTTPRequest extends HTTPRequest {\n url: string\n}\n","import crypto from 'k6/crypto'\n\nimport * as constants from './constants'\nimport { AWSError } from './error'\nimport { hasHeader, HTTPHeaderBag, HTTPRequest, QueryParameterBag, SignedHTTPRequest } from './http'\nimport { isArrayBuffer } from './utils'\n\n/**\n * SignatureV4 can be used to sign HTTP requests and presign URLs using the AWS Signature\n * Version 4 signing process.\n *\n * It offers two signing methods:\n * - sign: signs the request headers and payload\n * - presign: returns a presigned (authorization information contained in the query string) URL\n *\n * @see https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html\n */\nexport class SignatureV4 {\n /**\n * The name of the service to sign for.\n */\n private readonly service: string\n\n /**\n * The name of the region to sign for.\n */\n private readonly region: string\n\n /**\n * The credentials with which the request should be signed.\n */\n private readonly credentials: Credentials\n\n /**\n * Whether to uri-escape the request URI path as part of computing the\n * canonical request string. This is required for every AWS service, except\n * Amazon S3, as of late 2017.\n *\n * @default [true]\n */\n private readonly uriEscapePath: boolean\n\n /**\n * Whether to calculate a checksum of the request body and include it as\n * either a request header (when signing) or as a query string parameter\n * (when presigning). This is required for AWS Glacier and Amazon S3 and optional for\n * every other AWS service as of late 2017.\n *\n * @default [true]\n */\n private readonly applyChecksum: boolean\n\n // TODO: uriEscapePath and applyChecksum should not be present in the constructor\n constructor({\n service,\n region,\n credentials,\n uriEscapePath,\n applyChecksum,\n }: SignatureV4Options) {\n this.service = service\n this.region = region\n this.credentials = credentials\n this.uriEscapePath = typeof uriEscapePath === 'boolean' ? uriEscapePath : true\n this.applyChecksum = typeof applyChecksum === 'boolean' ? applyChecksum : true\n }\n\n /**\n * Includes AWS v4 signing information to the provided HTTP request.\n *\n * This method adds an Authorization header to the request, containing\n * the signature and other signing information. It also returns a preformatted\n * URL that can be used to make the k6 http request.\n *\n * This method mutates the request object.\n *\n * @param request {HTTPRequest} The request to sign.\n * @param options {Partial} Options for signing the request.\n * @returns {SignedHTTPRequest} The signed request.\n */\n sign(request: HTTPRequest, options: Partial = {}): SignedHTTPRequest {\n // Set default values for options which are not provided by the user.\n const defaultOptions = {\n signingDate: new Date(),\n unsignableHeaders: new Set(),\n signableHeaders: new Set(),\n }\n\n // Merge default options with the ones maybe provided by the user.\n const finalOptions = { ...defaultOptions, ...options }\n\n const { longDate, shortDate }: DateInfo = formatDate(finalOptions.signingDate)\n const service = finalOptions.signingService || this.service\n const region = finalOptions.signingRegion || this.region\n const scope = `${shortDate}/${region}/${service}/${constants.KEY_TYPE_IDENTIFIER}`\n\n // Required by the specification:\n // \"For HTTP/1.1 requests, you must include the host header at a minimum.\n // Standard headers like content-type are optional.\n // For HTTP/2 requests, you must include the :authority header instead of\n // the host header. Different services might require other headers.\"\n if (!request.headers[constants.HOST_HEADER]) {\n request.headers[constants.HOST_HEADER] = request.endpoint.hostname\n }\n\n // Filter out headers that will be generated and managed by the signing process.\n // If the user provide any of those as part of the HTTPRequest's headers, they\n // will be ignored.\n for (const headerName of Object.keys(request.headers)) {\n if (constants.GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) {\n delete request.headers[headerName]\n }\n }\n\n request.headers[constants.AMZ_DATE_HEADER] = longDate\n if (this.credentials.sessionToken) {\n request.headers[constants.AMZ_TOKEN_HEADER] = this.credentials.sessionToken\n }\n\n // If the request body is a typed array, we need to convert it to a buffer\n // so that we can calculate the checksum.\n if (ArrayBuffer.isView(request.body)) {\n request.body = request.body.buffer\n }\n\n // Ensure we avoid passing undefined to the crypto hash function.\n if (!request.body) {\n request.body = ''\n }\n\n const payloadHash = this.computePayloadHash(request)\n if (\n !hasHeader(constants.AMZ_CONTENT_SHA256_HEADER, request.headers) &&\n this.applyChecksum\n ) {\n request.headers[constants.AMZ_CONTENT_SHA256_HEADER] = payloadHash\n }\n\n const canonicalHeaders = this.computeCanonicalHeaders(\n request,\n finalOptions.unsignableHeaders,\n finalOptions.signableHeaders\n )\n const signature = this.calculateSignature(\n longDate,\n scope,\n this.deriveSigningKey(this.credentials, service, region, shortDate),\n this.createCanonicalRequest(request, canonicalHeaders, payloadHash)\n )\n\n /**\n * Step 4 of the signing process: add the signature to the HTTP request's headers.\n *\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html\n */\n request.headers[constants.AUTHORIZATION_HEADER] =\n `${constants.SIGNING_ALGORITHM_IDENTIFIER} ` +\n `Credential=${this.credentials.accessKeyId}/${scope}, ` +\n `SignedHeaders=${Object.keys(canonicalHeaders).sort().join(';')}, ` +\n `Signature=${signature}`\n\n // If a request path was provided, add it to the URL\n let url = request.endpoint.href\n if (request.path) {\n // Ensure the URI and the request path are properly concatenated\n // by adding a trailing slash to the URI if it's missing.\n if (!url.endsWith('/') && !request.path.startsWith('/')) {\n url += '/'\n }\n\n // Append the path to the URL\n url += request.path\n }\n\n // If a request query string was provided, add it to the URL\n if (request.query) {\n // We exclude the signature from the query string\n url += `?${this.serializeQueryParameters(request.query)}`\n }\n\n return {\n url: url,\n ...request,\n }\n }\n\n /**\n * Produces a presigned URL with AWS v4 signature information for the provided HTTP request.\n *\n * A presigned URL is a URL that contains the authorization information\n * (signature and other signing information) in the query string. This method\n * returns a preformatted URL that can be used to make the k6 http request.\n *\n * @param originalRequest - The original request to presign.\n * @param options - Options controlling the signing of the request.\n * @returns A signed request, including the presigned URL.\n */\n presign(originalRequest: HTTPRequest, options: PresignOptions = {}): SignedHTTPRequest {\n const {\n signingDate = new Date(),\n expiresIn = 3600,\n unsignableHeaders,\n unhoistableHeaders,\n signableHeaders,\n signingRegion,\n signingService,\n } = options\n const { longDate, shortDate }: DateInfo = formatDate(signingDate)\n const region = signingRegion || this.region\n const service = signingService || this.service\n\n if (expiresIn > constants.MAX_PRESIGNED_TTL) {\n throw new InvalidSignatureError(\n \"Signature version 4 presigned URLs can't be valid for more than 7 days\"\n )\n }\n\n const scope = `${shortDate}/${region}/${service}/${constants.KEY_TYPE_IDENTIFIER}`\n const request = this.moveHeadersToQuery(originalRequest, { unhoistableHeaders })\n\n // Required by the specification:\n // \"For HTTP/1.1 requests, you must include the host header at a minimum.\n // Standard headers like content-type are optional.\n // For HTTP/2 requests, you must include the :authority header instead of\n // the host header. Different services might require other headers.\"\n if (!request.headers[constants.HOST_HEADER]) {\n request.headers[constants.HOST_HEADER] = originalRequest.endpoint.hostname\n }\n\n // If the user provided a session token, include it in the signed url query string.\n if (this.credentials.sessionToken) {\n request.query[constants.AMZ_TOKEN_QUERY_PARAM] = this.credentials.sessionToken\n }\n // Add base signing query parameters to the request, as described in the documentation\n // @see https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html\n request.query[constants.AMZ_ALGORITHM_QUERY_PARAM] = constants.SIGNING_ALGORITHM_IDENTIFIER\n request.query[\n constants.AMZ_CREDENTIAL_QUERY_PARAM\n ] = `${this.credentials.accessKeyId}/${scope}`\n request.query[constants.AMZ_DATE_QUERY_PARAM] = longDate\n request.query[constants.AMZ_EXPIRES_QUERY_PARAM] = expiresIn.toString(10)\n\n const canonicalHeaders = this.computeCanonicalHeaders(\n request,\n unsignableHeaders,\n signableHeaders\n )\n request.query[constants.AMZ_SIGNED_HEADERS_QUERY_PARAM] = Object.keys(canonicalHeaders)\n .sort()\n .join(';')\n\n const signingKey = this.deriveSigningKey(this.credentials, service, region, shortDate)\n\n // Computing the payload from the original request. This is required\n // in the event the user attempts to produce a presigned URL for s3,\n // which requires the payload hash to be 'UNSIGNED-PAYLOAD'.\n //\n // To that effect, users need to set the 'x-amz-content-sha256' header,\n // and mark it as unhoistable and unsignable. When setup this way,\n // the computePayloadHash method will then return the string 'UNSIGNED-PAYLOAD'.\n const payloadHash = this.computePayloadHash(originalRequest)\n const canonicalRequest = this.createCanonicalRequest(request, canonicalHeaders, payloadHash)\n\n request.query[constants.AMZ_SIGNATURE_QUERY_PARAM] = this.calculateSignature(\n longDate,\n scope,\n signingKey,\n canonicalRequest\n )\n\n // If a request path was provided, add it to the URL\n let url = originalRequest.endpoint.href\n if (request.path) {\n // Ensure there is a trailing slash at the end of the URL\n // so that appending the path does not result in a malformed URL.\n url = url?.endsWith('/') ? url : url + '/'\n\n // Append the path to the URL\n url += request.path\n }\n\n // If a request query string was provided, add it to the URL\n if (request.query) {\n url += `?${this.serializeQueryParameters(request.query)}`\n }\n\n return { url: url, ...request }\n }\n\n /**\n * Create a string including information from your request\n * in a AWS signature v4 standardized (canonical) format.\n *\n * Step 1 of the signing process: create the canonical request string.\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html\n *\n * @param request {HTTPRequest} The request to sign.\n * @param canonicalHeaders {HTTPHeaderBag} The request's canonical headers.\n * @param payloadHash {string} The hexadecimally encoded request's payload hash .\n * @returns {string} The canonical request string.\n */\n private createCanonicalRequest(\n request: HTTPRequest,\n canonicalHeaders: HTTPHeaderBag,\n payloadHash: string\n ): string {\n const sortedHeaders = Object.keys(canonicalHeaders).sort()\n const sortedCanonicalHeaders = sortedHeaders\n .map((name) => `${name}:${canonicalHeaders[name]}`)\n .join('\\n')\n const signedHeaders = sortedHeaders.join(';')\n\n return (\n `${request.method}\\n` +\n `${this.computeCanonicalURI(request)}\\n` +\n `${this.computeCanonicalQuerystring(request)}\\n` +\n `${sortedCanonicalHeaders}\\n\\n` +\n `${signedHeaders}\\n` +\n `${payloadHash}`\n )\n }\n\n /**\n * Create the \"string to sign\" part of the signature Version 4 protocol.\n *\n * The \"string to sign\" includes meta information about your request and\n * about the canonical request that you created with `createCanonicalRequest`.\n * It is used hand in hand with the signing key to create the request signature.\n * Step 2 of the signing process: create the string to sign.\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-create-string-to-sign.html\n *\n * @param longDate {string} The request's date in iso 8601 format.\n * @param credentialScope {string} The request's credential scope.\n * @param canonicalRequest {string} The request's canonical request.\n * @returns {string} The \"string to sign\".\n */\n private createStringToSign(\n longDate: string,\n credentialScope: string,\n canonicalRequest: string\n ): string {\n const hashedCanonicalRequest = crypto.sha256(canonicalRequest, 'hex')\n\n return (\n `${constants.SIGNING_ALGORITHM_IDENTIFIER}\\n` +\n `${longDate}\\n` +\n `${credentialScope}\\n` +\n `${hashedCanonicalRequest}`\n )\n }\n\n /**\n * Calculte the signature for AWS signature version 4.\n *\n * Step 3 of the signing process: create the signature.\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-calculate-signature.html\n *\n * @param longDate {string} The request's date in iso 8601 format.\n * @param credentialScope {string} The request's credential scope.\n * @param signingKey {string} the signing key as computed by the deriveSigningKey method.\n * @param canonicalRequest {string} The request's canonical request.\n * @returns {string} The signature.\n */\n private calculateSignature(\n longDate: string,\n credentialScope: string,\n signingKey: Uint8Array,\n canonicalRequest: string\n ): string {\n const stringToSign = this.createStringToSign(longDate, credentialScope, canonicalRequest)\n return crypto.hmac('sha256', signingKey, stringToSign, 'hex')\n }\n\n /**\n * Derives the signing key for authenticating requests signed with\n * the Signature version 4 authentication protocol.\n *\n * deriveSigningKey produces a signing key by creating a series of\n * hash-based message authentication codes (HMACs) represented in\n * a binary format.\n *\n * The derived signing key is specific to the date it's made at, as well as\n * the service and region it targets.\n *\n * @param credentials {AWSCredentials} The credentials to use for signing.\n * @param service {string} The service the request is targeted at.\n * @param region {string} The region the request is targeted at.\n * @param shortDate {string} The request's date in YYYYMMDD format.\n * @returns {Uint8Array} The derived signing key.\n */\n private deriveSigningKey(\n credentials: Credentials,\n service: string,\n region: string,\n shortDate: string\n ): Uint8Array {\n const kSecret: string = credentials.secretAccessKey\n /**\n * crypto.hmac returns a value of type `bytes`, which is an alias for\n * number[]. However, the secret argument to hmac needs to either be\n * a `string` or ArrayBuffer. The only way to get around this is to\n * cast the return value of hmac to any, thus, we disable the no-explicit-any\n * ESLint rule for this function.\n */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const kDate: any = crypto.hmac('sha256', 'AWS4' + kSecret, shortDate, 'binary')\n const kRegion: any = crypto.hmac('sha256', kDate, region, 'binary')\n const kService: any = crypto.hmac('sha256', kRegion, service, 'binary')\n const kSigning: any = crypto.hmac('sha256', kService, 'aws4_request', 'binary')\n /* eslint-enable @typescript-eslint/no-explicit-any */\n\n return kSigning\n }\n\n /**\n * Create a string that includes information from your request\n * in a AWS signature v4 standardized (canonical) format.\n *\n * @param param0 {HTTPRequest} The request to sign.\n * @returns {string} The canonical URI.\n */\n private computeCanonicalURI({ path }: HTTPRequest): string {\n if (this.uriEscapePath) {\n // Non-S3 services, we normalize the path and then double URI encode it.\n // Ref: \"Remove Dot Segments\" https://datatracker.ietf.org/doc/html/rfc3986#section-5.2.4\n const normalizedURISegments = []\n\n for (const URISegment of path.split('/')) {\n if (URISegment?.length === 0) {\n continue\n }\n\n if (URISegment === '.') {\n continue\n }\n\n if (URISegment === '..') {\n normalizedURISegments.pop()\n } else {\n normalizedURISegments.push(URISegment)\n }\n }\n\n // Normalize the URI\n const leading = path?.startsWith('/') ? '/' : ''\n const URI = normalizedURISegments.join('/')\n const trailing = normalizedURISegments.length > 0 && path?.endsWith('/') ? '/' : ''\n const normalizedURI = `${leading}${URI}${trailing}`\n\n const doubleEncoded = encodeURIComponent(normalizedURI)\n\n return doubleEncoded.replace(/%2F/g, '/')\n }\n\n // For S3, we shouldn't normalize the path. For example, object name\n // my-object//example//photo.user should not be normalized to\n // my-object/example/photo.user\n return path\n }\n\n /**\n * Serializes the request's query parameters into their canonical\n * string version. If the request does not include a query parameters,\n * returns an empty string.\n *\n * @param param0 {HTTPRequest} The request containing the query parameters.\n * @returns {string} The canonical query string.\n */\n private computeCanonicalQuerystring({ query = {} }: HTTPRequest): string {\n const keys: Array = []\n const serialized: Record = {}\n\n for (const key of Object.keys(query).sort()) {\n if (key.toLowerCase() === constants.AMZ_SIGNATURE_HEADER) {\n continue\n }\n\n keys.push(key)\n const value = query[key]\n\n if (typeof value === 'string') {\n serialized[key] = `${escapeURI(key)}=${escapeURI(value)}`\n } else if (Array.isArray(value)) {\n serialized[key] = value\n .slice(0)\n .sort()\n .reduce(\n (encoded: Array, value: string) =>\n encoded.concat([`${escapeURI(key)}=${escapeURI(value)}`]),\n []\n )\n .join('&')\n }\n }\n\n return keys\n .map((key) => serialized[key])\n .filter((serialized) => serialized)\n .join('&')\n }\n\n /**\n * Create the canonical form of the request's headers.\n * Canonical headers consist of all the HTTP headers you\n * are including with the signed request.\n *\n * @param param0 {HTTPRequest} The request to compute the canonical headers of.\n * @param unsignableHeaders {Set} The headers that should not be signed.\n * @param signableHeaders {Set} The headers that should be signed.\n * @returns {string} The canonical headers.\n */\n private computeCanonicalHeaders(\n { headers }: HTTPRequest,\n unsignableHeaders?: Set,\n signableHeaders?: Set\n ): HTTPHeaderBag {\n const canonicalHeaders: HTTPHeaderBag = {}\n\n for (const headerName of Object.keys(headers).sort()) {\n if (headers[headerName] == undefined) {\n continue\n }\n\n const canonicalHeaderName = headerName.toLowerCase()\n if (\n canonicalHeaderName in constants.ALWAYS_UNSIGNABLE_HEADERS ||\n unsignableHeaders?.has(canonicalHeaderName)\n ) {\n if (\n !signableHeaders ||\n (signableHeaders && !signableHeaders.has(canonicalHeaderName))\n ) {\n continue\n }\n }\n\n if (typeof headers[headerName] === 'string') {\n canonicalHeaders[canonicalHeaderName] = headers[headerName] = headers[headerName]\n .trim()\n .replace(/\\s+/g, ' ')\n }\n }\n\n return canonicalHeaders\n }\n\n /**\n * Computes the SHA256 cryptographic hash of the request's body.\n *\n * If the headers contain the 'X-Amz-Content-Sha256' header, then\n * the value of that header is returned instead. This proves useful\n * when, for example, presiging a URL for S3, as the payload hash\n * must always be equal to 'UNSIGNED-PAYLOAD'.\n *\n * @param param0 {HTTPRequest} The request to compute the payload hash of.\n * @returns {string} The hex encoded SHA256 payload hash, or the value of the 'X-Amz-Content-Sha256' header.\n */\n private computePayloadHash({ headers, body }: HTTPRequest): string {\n // for (const headerName of Object.keys(headers)) {\n // // If the header is present, return its value.\n // // So that we let the 'UNSIGNED-PAYLOAD' value pass through.\n // if (headerName.toLowerCase() === constants.AMZ_CONTENT_SHA256_HEADER) {\n // return headers[headerName]\n // }\n // }\n\n if (headers[constants.AMZ_CONTENT_SHA256_HEADER]) {\n return headers[constants.AMZ_CONTENT_SHA256_HEADER]\n }\n\n if (body == undefined) {\n return constants.EMPTY_SHA256\n }\n\n if (typeof body === 'string' || isArrayBuffer(body)) {\n return crypto.sha256(body, 'hex').toLowerCase()\n }\n\n if (ArrayBuffer.isView(body)) {\n // If the request body is a typed array, we need to convert it to a buffer\n // so that we can calculate the checksum.\n return crypto.sha256((body as DataView).buffer, 'hex').toLowerCase()\n }\n\n return constants.UNSIGNED_PAYLOAD\n }\n\n /**\n * Moves a request's headers to its query parameters.\n *\n * The operation will ignore any amazon standard headers, prefixed\n * with 'X-Amz-'. It will also ignore any headers specified as unhoistable\n * by the options.\n *\n * The operation will delete the headers from the request.\n *\n * @param request {HTTPRequest} The request to move the headers from.\n * @param options\n * @returns {HTTPRequest} The request with the headers moved to the query parameters.\n */\n private moveHeadersToQuery(\n request: HTTPRequest,\n options: { unhoistableHeaders?: Set } = {}\n ): HTTPRequest & { query: QueryParameterBag } {\n const requestCopy = JSON.parse(JSON.stringify(request))\n const { headers, query = {} as QueryParameterBag } = requestCopy\n\n for (const name of Object.keys(headers)) {\n const lowerCaseName = name.toLowerCase()\n if (\n lowerCaseName.slice(0, 6) === 'x-amz-' &&\n !options.unhoistableHeaders?.has(lowerCaseName)\n ) {\n query[name] = headers[name]\n delete headers[name]\n }\n }\n\n return {\n ...requestCopy,\n headers,\n query,\n }\n }\n\n /**\n * Serializes a HTTPRequest's query parameter bag into a string.\n *\n * @param query {QueryParameterBag} The query parameters to serialize.\n * @param ignoreKeys {Set} The keys to ignore.\n * @returns {string} The serialized, and ready to use in a URL, query parameters.\n */\n private serializeQueryParameters(query: QueryParameterBag, ignoreKeys?: string[]): string {\n const keys: Array = []\n const serialized: Record = {}\n\n for (const key of Object.keys(query).sort()) {\n if (ignoreKeys?.includes(key.toLowerCase())) {\n continue\n }\n\n keys.push(key)\n const value = query[key]\n\n if (typeof value === 'string') {\n serialized[key] = `${escapeURI(key)}=${escapeURI(value)}`\n } else if (Array.isArray(value)) {\n serialized[key] = value\n .slice(0)\n .sort()\n .reduce(\n (encoded: Array, value: string) =>\n encoded.concat([`${escapeURI(key)}=${escapeURI(value)}`]),\n []\n )\n .join('&')\n }\n }\n\n return keys\n .map((key) => serialized[key])\n .filter((serialized) => serialized)\n .join('&')\n }\n}\n\n/**\n * Error indicating an Invalid signature has been sent to AWS services\n *\n * Inspired from AWS official error types, as\n * described in:\n * * https://aws.amazon.com/blogs/developer/service-error-handling-modular-aws-sdk-js/\n * * https://github.com/aws/aws-sdk-js/blob/master/lib/error.d.ts\n */\nexport class InvalidSignatureError extends AWSError {\n /**\n * Constructs an InvalidSignatureError\n *\n * @param {string} message - human readable error message\n */\n constructor(message: string, code?: string) {\n super(message, code)\n this.name = 'InvalidSignatureError'\n }\n}\n\nexport interface SignatureV4Options {\n /**\n * The name of the service to sign for.\n */\n service: string\n\n /**\n * The name of the region to sign for.\n */\n region: string\n\n /**\n * The credentials with which the request should be signed.\n */\n credentials: Credentials\n\n /**\n * Whether to uri-escape the request URI path as part of computing the\n * canonical request string. This is required for every AWS service, except\n * Amazon S3, as of late 2017.\n *\n * @default [true]\n */\n uriEscapePath?: boolean\n\n /**\n * Whether to calculate a checksum of the request body and include it as\n * either a request header (when signing) or as a query string parameter\n * (when presigning). This is required for AWS Glacier and Amazon S3 and optional for\n * every other AWS service as of late 2017.\n *\n * @default [true]\n */\n applyChecksum?: boolean\n}\n\nexport interface SignOptions {\n /**\n * The date and time to be used as signature metadata. This value should be\n * a Date object, a unix (epoch) timestamp, or a string that can be\n * understood by the JavaScript `Date` constructor.If not supplied, the\n * value returned by `new Date()` will be used.\n */\n signingDate?: Date\n\n /**\n * The service signing name. It will override the service name of the signer\n * in current invocation\n */\n signingService?: string\n\n /**\n * The region name to sign the request. It will override the signing region of the\n * signer in current invocation\n */\n signingRegion?: string\n}\n\nexport interface RequestSigningOptions extends SignOptions {\n /**\n * A set of strings whose members represents headers that cannot be signed.\n * All headers in the provided request will have their names converted to\n * lower case and then checked for existence in the unsignableHeaders set.\n */\n unsignableHeaders?: Set\n\n /**\n * A set of strings whose members represents headers that should be signed.\n * Any values passed here will override those provided via unsignableHeaders,\n * allowing them to be signed.\n *\n * All headers in the provided request will have their names converted to\n * lower case before signing.\n */\n signableHeaders?: Set\n}\n\nexport interface PresignOptions extends RequestSigningOptions {\n /**\n * The number of seconds before the presigned URL expires\n */\n expiresIn?: number\n\n /**\n * A set of strings whose representing headers that should not be hoisted\n * to presigned request's query string. If not supplied, the presigner\n * moves all the AWS-specific headers (starting with `x-amz-`) to the request\n * query string. If supplied, these headers remain in the presigned request's\n * header.\n * All headers in the provided request will have their names converted to\n * lower case and then checked for existence in the unhoistableHeaders set.\n */\n unhoistableHeaders?: Set\n}\n\nexport interface Credentials {\n /**\n * AWS access key ID\n */\n readonly accessKeyId: string\n\n /**\n * AWS secret access key\n */\n readonly secretAccessKey: string\n\n /**\n * A security or session token to use with these credentials. Usually\n * present for temporary credentials.\n */\n readonly sessionToken?: string\n}\n\nexport interface DateInfo {\n /**\n * ISO8601 formatted date string\n */\n longDate: string\n\n /**\n * String in the format YYYYMMDD\n */\n shortDate: string\n}\n\n/**\n * Escapes a URI following the AWS signature v4 escaping rules.\n *\n * @param URI {string} The URI to escape.\n * @returns {string} The escaped URI.\n */\nfunction escapeURI(URI: string): string {\n const hexEncode = (c: string): string => {\n return `%${c.charCodeAt(0).toString(16).toUpperCase()}`\n }\n\n return encodeURIComponent(URI).replace(/[!'()*]/g, hexEncode)\n}\n\n/**\n * formatDate formats a Date object into a ISO8601 formatted date string\n * and a string in the format YYYYMMDD.\n *\n * @param date {Date} The date to format.\n * @returns {DateInfo} The formatted date.\n */\nfunction formatDate(date: Date): DateInfo {\n const longDate = iso8601(date).replace(/[-:]/g, '')\n return {\n longDate,\n shortDate: longDate.slice(0, 8),\n }\n}\n\n/**\n * Formats a time into an ISO 8601 string.\n *\n * @see https://en.wikipedia.org/wiki/ISO_8601\n *\n * @param time {number | string | Date} The time to format.\n * @returns {string} The ISO 8601 formatted time.\n */\nfunction iso8601(time: number | string | Date): string {\n return toDate(time)\n .toISOString()\n .replace(/\\.\\d{3}Z$/, 'Z')\n}\n\n/**\n * Converts a time value into a Date object.\n *\n * @param time {number | string | Date} The time to convert.\n * @returns {Date} The resulting Date object.\n */\nfunction toDate(time: number | string | Date): Date {\n if (typeof time === 'number') {\n return new Date(time * 1000)\n }\n\n if (typeof time === 'string') {\n if (Number(time)) {\n return new Date(Number(time) * 1000)\n }\n\n return new Date(time)\n }\n\n return time\n}\n","/**\n *\n * @param value\n * @returns\n */\nexport function isArrayBuffer(value: unknown): value is ArrayBuffer {\n return (\n typeof ArrayBuffer === 'function' &&\n (value instanceof ArrayBuffer ||\n Object.prototype.toString.call(value) === '[object ArrayBuffer]')\n )\n}\n\nexport function toFormUrlEncoded(form: Record): string {\n return Object.keys(form)\n .reduce((params, key) => {\n const value = form[key]\n if (value !== undefined && value !== null) {\n params.push(`${encodeURIComponent(key)}=${encodeURIComponent(value)}`)\n }\n return params\n }, [] as string[])\n .join('&')\n}\n","module.exports = require(\"k6/crypto\");","module.exports = require(\"k6/html\");","module.exports = require(\"k6/http\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"k6/encoding\");","import http, { RefinedResponse, ResponseType } from 'k6/http'\nimport encoding from 'k6/encoding'\n\nimport { AWSClient } from './client'\nimport { AWSConfig } from './config'\nimport { AWSError } from './error'\nimport { InvalidSignatureError, SignatureV4 } from './signature'\nimport { AMZ_TARGET_HEADER } from './constants'\nimport { HTTPHeaders, HTTPMethod, QueryParameterBag } from './http'\n\n/**\n * Class allowing to interact with Amazon AWS's Lambda service\n */\nexport class LambdaClient extends AWSClient {\n private readonly signature: SignatureV4\n private readonly commonHeaders: HTTPHeaders\n private readonly method: HTTPMethod\n\n constructor(awsConfig: AWSConfig) {\n super(awsConfig, 'lambda')\n\n this.signature = new SignatureV4({\n service: this.serviceName,\n region: this.awsConfig.region,\n credentials: {\n accessKeyId: this.awsConfig.accessKeyId,\n secretAccessKey: this.awsConfig.secretAccessKey,\n sessionToken: this.awsConfig.sessionToken,\n },\n uriEscapePath: true,\n applyChecksum: false,\n })\n\n this.method = 'POST'\n this.commonHeaders = {\n 'Content-Type': 'application/x-amz-json-1.1',\n }\n }\n\n /**\n * Invoke an AWS Lambda function\n *\n * @param {string} name - The name of the function\n * @param {string} payload - The payload to send to function\n * @param {InvocationOptions} options - Additional options to customize invocation\n *\n * @throws {LambdaInvocationError}\n */\n async invoke(\n name: string,\n payload: string,\n options: InvocationOptions = {}\n ): Promise {\n const query: QueryParameterBag = {}\n const invocationType = options.invocationType || 'RequestResponse'\n const headers = {\n ...this.commonHeaders,\n [AMZ_TARGET_HEADER]: `AWSLambda.${invocationType}`,\n 'X-Amz-Invocation-Type': invocationType,\n 'X-Amz-Log-Type': options.logType || 'None',\n }\n if (options.clientContext) {\n headers['X-Amz-Client-Context'] = options.clientContext\n }\n if (options.qualifier) {\n query['Qualifier'] = options.qualifier\n }\n\n const signedRequest = this.signature.sign(\n {\n method: this.method,\n endpoint: this.endpoint,\n path: `/2015-03-31/functions/${name}/invocations`,\n query,\n headers,\n body: payload || '',\n },\n {}\n )\n\n const res = await http.asyncRequest(this.method, signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res)\n\n const logResult = res.headers['X-Amz-Log-Result']\n const response = {\n executedVersion: res.headers['X-Amz-Executed-Version'],\n logResult: logResult ? encoding.b64decode(logResult, 'std', 's') : undefined,\n statusCode: res.status,\n payload: res.body as string,\n }\n\n const functionError = res.headers['X-Amz-Function-Error']\n if (functionError) {\n throw new LambdaInvocationError(functionError, response)\n } else {\n return response\n }\n }\n\n\n protected handleError(response: RefinedResponse, operation?: string): boolean {\n const errored = super.handleError(response, operation);\n if (!errored) {\n return false;\n }\n\n const awsError = AWSError.parse(response)\n switch (awsError.code) {\n case 'AuthorizationHeaderMalformed':\n case 'InvalidSignatureException':\n throw new InvalidSignatureError(awsError.message, awsError.code)\n default:\n throw awsError\n }\n\n return true\n }\n}\n\nexport class LambdaInvocationError extends Error {\n response: InvocationResponse\n\n constructor(message: string, response: InvocationResponse) {\n super(`${message}: ${response.payload}`)\n this.response = response\n }\n}\n\ninterface InvocationOptions {\n /**\n * Defines whether the function is invoked synchronously or asynchronously.\n * - `RequestResponse` (default): Invoke the function synchronously.\n * - `Event`: Invoke the function asynchronously.\n * - `DryRun`: Validate parameter values and verify that the user or role has permission to invoke the function.\n */\n invocationType?: 'RequestResponse' | 'Event' | 'DryRun'\n /**\n * Set to `Tail` to include the execution log in the response. Applies to synchronously invoked functions only.\n */\n logType?: 'None' | 'Tail'\n /**\n * Up to 3,583 bytes of base64-encoded data about the invoking client to pass to the function in the context object.\n */\n clientContext?: string\n /**\n * Specify a version or alias to invoke a published version of the function.\n */\n qualifier?: string\n}\n\ninterface InvocationResponse {\n statusCode: number\n executedVersion?: string\n logResult?: string\n payload?: string\n}\n"],"names":["AWSClient","awsConfig","serviceName","_classCallCheck","_defineProperty","responseType","this","undefined","endpoint","_endpoint","key","get","Endpoint","concat","region","set","value","response","operation","status","errorCode","error_code","errorMessage","error","GeneralErrorKind","GenericError","NonTCPNetworkError","InvalidURL","HTTPRequestTimeout","GeneralError","DNSErrorKind","GenericDNSError","NoIPFound","BlacklistedIP","BlacklistedHostname","DNSError","TCPErrorKind","GenericTCPError","BrokenPipeOnWrite","UnknownTCPError","GeneralTCPDialError","DialTimeoutError","DialConnectionRefused","DialUnknownError","ResetByPeer","TCPError","TLSErrorKind","GeneralTLSError","UnknownAuthority","CertificateHostnameMismatch","TLSError","HTTP2ErrorKind","GenericHTTP2Error","GeneralHTTP2GoAwayError","HTTP2Error","AWSConfig","options","InvalidAWSConfigError","accessKeyId","length","secretAccessKey","sessionToken","_createClass","__ENV","AWS_REGION","AWS_ACCESS_KEY_ID","AWS_SECRET_ACCESS_KEY","AWS_SESSION_TOKEN","_Error","message","_callSuper","_inherits","_wrapNativeSuper","Error","AMZ_ALGORITHM_QUERY_PARAM","AMZ_CREDENTIAL_QUERY_PARAM","AMZ_DATE_QUERY_PARAM","AMZ_EXPIRES_QUERY_PARAM","AMZ_SIGNATURE_QUERY_PARAM","AMZ_SIGNED_HEADERS_QUERY_PARAM","AMZ_TOKEN_QUERY_PARAM","AMZ_CONTENT_SHA256_HEADER","AMZ_DATE_HEADER","toLowerCase","AMZ_SIGNATURE_HEADER","AMZ_TARGET_HEADER","AMZ_TOKEN_HEADER","AUTHORIZATION_HEADER","GENERATED_HEADERS","HOST_HEADER","ALWAYS_UNSIGNABLE_HEADERS","authorization","connection","expect","from","pragma","referer","te","trailer","upgrade","KEY_TYPE_IDENTIFIER","SIGNING_ALGORITHM_IDENTIFIER","MAX_PRESIGNED_TTL","EMPTY_SHA256","UNSIGNED_PAYLOAD","completeUrl","startsWith","DEFAULT_PROTOCOL","protocolMatch","match","hostnameWithPort","_slicedToArray","replace","split","_protocol","slice","_hostname","_port","parseInt","href","_value$split2","hostname","port","protocol","host","AWSError","code","_this","name","xmlDocument","doc","parseHTML","find","text","headers","json","Message","__type","parseXML","body","NetworkError","_Error2","_this2","ErrorMessages","_NetworkError2","_NetworkError3","_NetworkError4","_NetworkError5","_NetworkError6","_ErrorMessages","hasHeader","soughtHeader","_i","_Object$keys","Object","keys","SignatureV4","_ref","service","credentials","uriEscapePath","applyChecksum","request","arguments","finalOptions","_objectSpread","signingDate","Date","unsignableHeaders","Set","signableHeaders","_formatDate","formatDate","longDate","shortDate","signingService","signingRegion","scope","constants","headerName","indexOf","ArrayBuffer","isView","buffer","payloadHash","computePayloadHash","canonicalHeaders","computeCanonicalHeaders","signature","calculateSignature","deriveSigningKey","createCanonicalRequest","sort","join","url","path","endsWith","query","serializeQueryParameters","originalRequest","_options$signingDate","_options$expiresIn","expiresIn","unhoistableHeaders","_formatDate2","InvalidSignatureError","moveHeadersToQuery","toString","signingKey","canonicalRequest","_url","sortedHeaders","sortedCanonicalHeaders","map","signedHeaders","method","computeCanonicalURI","computeCanonicalQuerystring","credentialScope","hashedCanonicalRequest","crypto","stringToSign","createStringToSign","kSecret","kDate","kRegion","kService","_ref2","_step","normalizedURISegments","_iterator","_createForOfIteratorHelper","s","n","done","URISegment","pop","push","err","e","f","leading","URI","trailing","normalizedURI","encodeURIComponent","_ref3","_step2","_ref3$query","serialized","_loop","escapeURI","Array","isArray","reduce","encoded","_iterator2","filter","_ref4","_step3","_iterator3","canonicalHeaderName","has","trim","_ref5","isArrayBuffer","requestCopy","JSON","parse","stringify","_requestCopy$query","_i2","_Object$keys2","_options$unhoistableH","lowerCaseName","ignoreKeys","_step4","_loop2","includes","_iterator4","_AWSError","c","charCodeAt","toUpperCase","date","time","Number","toDate","toISOString","prototype","call","module","exports","require","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","d","a","definition","o","defineProperty","enumerable","obj","prop","hasOwnProperty","r","Symbol","toStringTag","_regeneratorRuntime","t","i","iterator","asyncIterator","u","define","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","h","l","y","GeneratorFunction","GeneratorFunctionPrototype","p","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","reverse","prev","charAt","stop","rval","handle","complete","finish","delegateYield","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptor","apply","getOwnPropertyDescriptors","defineProperties","asyncGeneratorStep","_defineProperties","_toPropertyKey","_getPrototypeOf","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","Boolean","valueOf","_get","bind","_superPropBase","_setPrototypeOf","toPrimitive","String","_toPrimitive","LambdaClient","_AWSClient","commonHeaders","_callee","payload","invocationType","signedRequest","res","logResult","functionError","_args","_context","logType","clientContext","qualifier","sign","http","baseRequestParams","handleError","executedVersion","encoding","statusCode","LambdaInvocationError","_next","_throw","_x","_x2","awsError"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/aws/0.13.0/s3.js b/lib/aws/0.13.0/s3.js new file mode 100644 index 0000000..3da2a51 --- /dev/null +++ b/lib/aws/0.13.0/s3.js @@ -0,0 +1,3 @@ +/*! For license information please see s3.js.LICENSE.txt */ +(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function n(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,c=[],s=!0,u=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=i.call(r)).done)&&(c.push(n.value),c.length!==t);s=!0);}catch(e){u=!0,o=e}finally{try{if(!s&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(u)throw o}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return o(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?o(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rw,AWSError:()=>N,DNSError:()=>q,GeneralError:()=>G,HTTP2Error:()=>B,InvalidAWSConfigError:()=>O,InvalidSignatureError:()=>Se,NetworkError:()=>U,S3Bucket:()=>Je,S3Client:()=>$e,S3MultipartUpload:()=>et,S3Object:()=>Ze,S3Part:()=>tt,S3ServiceError:()=>rt,TCPError:()=>H,TLSError:()=>M});var s=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),a(this,"_protocol",void 0),a(this,"_hostname",void 0),a(this,"_port",void 0);var r=!t.startsWith("http://")&&!t.startsWith("https://")?"".concat(e.DEFAULT_PROTOCOL,"://").concat(t):t,o=r.match(/^https?:/),i=n(r.replace(/^https?:\/\//,"").split("/"),1)[0];this._protocol=o?o[0].slice(0,-1):e.DEFAULT_PROTOCOL,this._hostname=i.split(":")[0],this._port=i.split(":")[1]?parseInt(i.split(":")[1]):void 0}return t=e,(r=[{key:"copy",value:function(){return new e(this.href)}},{key:"host",get:function(){return this._port?"".concat(this._hostname,":").concat(this._port):this._hostname},set:function(e){var t=n(e.split(":"),2),r=t[0],o=t[1];this._hostname=r,this._port=o?parseInt(o):void 0}},{key:"hostname",get:function(){return this._hostname},set:function(e){this._hostname=e}},{key:"href",get:function(){return"".concat(this.protocol,"://").concat(this.host)},set:function(t){var r=t.match(/^https?:/),o=n(t.replace(/^https?:\/\//,"").split("/"),1)[0];this._protocol=r?r[0].slice(0,-1):e.DEFAULT_PROTOCOL,this._hostname=o.split(":")[0],this._port=o.split(":")[1]?parseInt(o.split(":")[1]):void 0}},{key:"port",get:function(){return this._port},set:function(e){this._port=e}},{key:"protocol",get:function(){return this._protocol},set:function(e){this._protocol=e}}])&&i(t.prototype,r),o&&i(t,o),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,r,o}();function u(e){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}function l(e,t,r){return t=y(t),function(e,t){if(t&&("object"==u(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,h()?Reflect.construct(t,r||[],y(e).constructor):t.apply(e,r))}function f(e){var t="function"==typeof Map?new Map:void 0;return f=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return function(e,t,r){if(h())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,t);var o=new(e.bind.apply(e,n));return r&&p(o,r.prototype),o}(e,arguments,y(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),p(r,e)},f(e)}function h(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(h=function(){return!!e})()}function p(e,t){return p=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},p(e,t)}function y(e){return y=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},y(e)}function d(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function v(e,t){for(var r=0;r128)throw new O("invalid AWS access key ID; reason: size should be between 16 and 128 characters, got ".concat(t.accessKeyId.length));if(!t.secretAccessKey||""===t.secretAccessKey)throw new O("invalid AWS secret access key; reason: expected a non empty string, got `".concat(t.secretAccessKey,"`"));this.region=t.region,this.accessKeyId=t.accessKeyId,this.secretAccessKey=t.secretAccessKey,void 0!==t.sessionToken&&(this.sessionToken=t.sessionToken),void 0!==t.endpoint&&("string"==typeof t.endpoint?this.endpoint=new s(t.endpoint):this.endpoint=t.endpoint)}return b(e,null,[{key:"fromEnvironment",value:function(t){return new e({region:__ENV.AWS_REGION,accessKeyId:__ENV.AWS_ACCESS_KEY_ID,secretAccessKey:__ENV.AWS_SECRET_ACCESS_KEY,sessionToken:__ENV.AWS_SESSION_TOKEN,endpoint:null==t?void 0:t.endpoint})}}])}(),O=function(e){function t(e){return d(this,t),l(this,t,[e])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&p(e,t)}(t,e),b(t)}(f(Error));const P=require("k6/html");var E;function T(e){return T="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},T(e)}function S(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function j(e,t){for(var r=0;r=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){c=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(c)throw i}}}}function ve(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r1&&void 0!==arguments[1]?arguments[1]:{},r=me(me({},{signingDate:new Date,unsignableHeaders:new Set,signableHeaders:new Set}),t),n=ke(r.signingDate),o=n.longDate,i=n.shortDate,a=r.signingService||this.service,c=r.signingRegion||this.region,s="".concat(i,"/").concat(c,"/").concat(a,"/").concat(se);e.headers[ae]||(e.headers[ae]=e.endpoint.hostname);for(var u=0,l=Object.keys(e.headers);u-1&&delete e.headers[f]}e.headers[te]=o,this.credentials.sessionToken&&(e.headers[ne]=this.credentials.sessionToken),ArrayBuffer.isView(e.body)&&(e.body=e.body.buffer),e.body||(e.body="");var h=this.computePayloadHash(e);!function(e,t){e=e.toLowerCase();for(var r=0,n=Object.keys(t);r1&&void 0!==arguments[1]?arguments[1]:{},r=t.signingDate,n=void 0===r?new Date:r,o=t.expiresIn,i=void 0===o?3600:o,a=t.unsignableHeaders,c=t.unhoistableHeaders,s=t.signableHeaders,u=t.signingRegion,l=t.signingService,f=ke(n),h=f.longDate,p=f.shortDate,y=u||this.region,d=l||this.service;if(i>604800)throw new Se("Signature version 4 presigned URLs can't be valid for more than 7 days");var v="".concat(p,"/").concat(y,"/").concat(d,"/").concat(se),b=this.moveHeadersToQuery(e,{unhoistableHeaders:c});b.headers[ae]||(b.headers[ae]=e.endpoint.hostname),this.credentials.sessionToken&&(b.query[Z]=this.credentials.sessionToken),b.query["X-Amz-Algorithm"]=ue,b.query["X-Amz-Credential"]="".concat(this.credentials.accessKeyId,"/").concat(v),b.query[$]=h,b.query["X-Amz-Expires"]=i.toString(10);var m=this.computeCanonicalHeaders(b,a,s);b.query["X-Amz-SignedHeaders"]=Object.keys(m).sort().join(";");var g=this.deriveSigningKey(this.credentials,d,y,p),w=this.computePayloadHash(e),O=this.createCanonicalRequest(b,m,w);b.query[J]=this.calculateSignature(h,v,g,O);var P,E=e.endpoint.href;b.path&&(E=null!==(P=E)&&void 0!==P&&P.endsWith("/")?E:E+"/",E+=b.path);return b.query&&(E+="?".concat(this.serializeQueryParameters(b.query))),me({url:E},b)}},{key:"createCanonicalRequest",value:function(e,t,r){var n=Object.keys(t).sort(),o=n.map((function(e){return"".concat(e,":").concat(t[e])})).join("\n"),i=n.join(";");return"".concat(e.method,"\n")+"".concat(this.computeCanonicalURI(e),"\n")+"".concat(this.computeCanonicalQuerystring(e),"\n")+"".concat(o,"\n\n")+"".concat(i,"\n")+"".concat(r)}},{key:"createStringToSign",value:function(e,t,r){var n=Y().sha256(r,"hex");return"".concat(ue,"\n")+"".concat(e,"\n")+"".concat(t,"\n")+"".concat(n)}},{key:"calculateSignature",value:function(e,t,r,n){var o=this.createStringToSign(e,t,n);return Y().hmac("sha256",r,o,"hex")}},{key:"deriveSigningKey",value:function(e,t,r,n){var o=e.secretAccessKey,i=Y().hmac("sha256","AWS4"+o,n,"binary"),a=Y().hmac("sha256",i,r,"binary"),c=Y().hmac("sha256",a,t,"binary");return Y().hmac("sha256",c,"aws4_request","binary")}},{key:"computeCanonicalURI",value:function(e){var t=e.path;if(this.uriEscapePath){var r,n=[],o=de(t.split("/"));try{for(o.s();!(r=o.n()).done;){var i=r.value;0!==(null==i?void 0:i.length)&&("."!==i&&(".."===i?n.pop():n.push(i)))}}catch(e){o.e(e)}finally{o.f()}var a=null!=t&&t.startsWith("/")?"/":"",c=n.join("/"),s=n.length>0&&null!=t&&t.endsWith("/")?"/":"",u="".concat(a).concat(c).concat(s);return encodeURIComponent(u).replace(/%2F/g,"/")}return t}},{key:"computeCanonicalQuerystring",value:function(e){var t,r=e.query,n=void 0===r?{}:r,o=[],i={},a=function(e){if(e.toLowerCase()===re)return 1;o.push(e);var t=n[e];"string"==typeof t?i[e]="".concat(je(e),"=").concat(je(t)):Array.isArray(t)&&(i[e]=t.slice(0).sort().reduce((function(t,r){return t.concat(["".concat(je(e),"=").concat(je(r))])}),[]).join("&"))},c=de(Object.keys(n).sort());try{for(c.s();!(t=c.n()).done;){a(t.value)}}catch(e){c.e(e)}finally{c.f()}return o.map((function(e){return i[e]})).filter((function(e){return e})).join("&")}},{key:"computeCanonicalHeaders",value:function(e,t,r){var n,o=e.headers,i={},a=de(Object.keys(o).sort());try{for(a.s();!(n=a.n()).done;){var c=n.value;if(null!=o[c]){var s=c.toLowerCase();(s in ce||null!=t&&t.has(s))&&(!r||r&&!r.has(s))||"string"==typeof o[c]&&(i[s]=o[c]=o[c].trim().replace(/\s+/g," "))}}}catch(e){a.e(e)}finally{a.f()}return i}},{key:"computePayloadHash",value:function(e){var t,r=e.headers,n=e.body;return r[ee]?r[ee]:null==n?"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855":"string"==typeof n||(t=n,"function"==typeof ArrayBuffer&&(t instanceof ArrayBuffer||"[object ArrayBuffer]"===Object.prototype.toString.call(t)))?Y().sha256(n,"hex").toLowerCase():ArrayBuffer.isView(n)?Y().sha256(n.buffer,"hex").toLowerCase():"UNSIGNED-PAYLOAD"}},{key:"moveHeadersToQuery",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=JSON.parse(JSON.stringify(e)),n=r.headers,o=r.query,i=void 0===o?{}:o,a=0,c=Object.keys(n);a=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var s=n.call(a,"catchLoc"),u=n.call(a,"finallyLoc");if(s&&u){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),_(r),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;_(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:x(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),v}},t}function Ne(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Ue(e){for(var t=1;t2&&void 0!==s[2]?s[2]:{},i=this.signature.sign({method:"GET",endpoint:this.endpoint,path:encodeURI("/".concat(t,"/").concat(r)),headers:Ue({},o)},{}),a="text","Accept"in o&&void 0!==o.Accept&&"application/octet-stream"===o.Accept&&(a="binary"),e.next=7,_e().asyncRequest("GET",i.url,null,Ue(Ue({},this.baseRequestParams),{},{headers:i.headers,responseType:a}));case 7:return c=e.sent,this.handleError(c,"GetObject"),e.abrupt("return",new Ze(r,Date.parse(c.headers["Last-Modified"]),c.headers.ETag,parseInt(c.headers["Content-Length"]),null!==(n=c.headers["X-Amz-Storage-Class"])&&void 0!==n?n:"STANDARD",c.body));case 10:case"end":return e.stop()}}),e,this)}))),function(e,t){return u.apply(this,arguments)})},{key:"putObject",value:(s=qe(Ie().mark((function e(t,r,n,o){var i,a;return Ie().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=this.signature.sign({method:"PUT",endpoint:this.endpoint,path:encodeURI("/".concat(t,"/").concat(r)),headers:Ue(Ue(Ue(Ue(Ue({Host:this.endpoint.host},(null==o?void 0:o.contentDisposition)&&{"Content-Disposition":o.contentDisposition}),(null==o?void 0:o.contentEncoding)&&{"Content-Encoding":o.contentEncoding}),(null==o?void 0:o.contentLength)&&{"Content-Length":o.contentLength}),(null==o?void 0:o.contentMD5)&&{"Content-MD5":o.contentMD5}),(null==o?void 0:o.contentType)&&{"Content-Type":o.contentType}),body:n},{}),e.next=4,_e().asyncRequest("PUT",i.url,i.body,Ue(Ue({},this.baseRequestParams),{},{headers:i.headers}));case 4:a=e.sent,this.handleError(a,"PutObject");case 6:case"end":return e.stop()}}),e,this)}))),function(e,t,r,n){return s.apply(this,arguments)})},{key:"deleteObject",value:(c=qe(Ie().mark((function e(t,r){var n,o,i;return Ie().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n="DELETE",o=this.signature.sign({method:n,endpoint:this.endpoint,path:encodeURI("/".concat(t,"/").concat(r)),headers:{}},{}),e.next=4,_e().asyncRequest(n,o.url,o.body||null,Ue(Ue({},this.baseRequestParams),{},{headers:o.headers}));case 4:i=e.sent,this.handleError(i,"DeleteObject");case 6:case"end":return e.stop()}}),e,this)}))),function(e,t){return c.apply(this,arguments)})},{key:"copyObject",value:(a=qe(Ie().mark((function e(t,r,n,o){var i,a,c;return Ie().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return(i=this.endpoint.copy()).hostname="".concat(n,".").concat(this.endpoint.hostname),a=this.signature.sign({method:"PUT",endpoint:i,path:encodeURI("/".concat(o)),headers:{"x-amz-copy-source":"".concat(t,"/").concat(r)}},{}),e.next=6,_e().asyncRequest("PUT",a.url,a.body||null,Ue(Ue({},this.baseRequestParams),{},{headers:a.headers}));case 6:c=e.sent,this.handleError(c,"CopyObject");case 8:case"end":return e.stop()}}),e,this)}))),function(e,t,r,n){return a.apply(this,arguments)})},{key:"createMultipartUpload",value:(i=qe(Ie().mark((function e(t,r){var n,o,i,a;return Ie().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n="POST",(o=this.endpoint.copy()).hostname="".concat(t,".").concat(this.endpoint.hostname),i=this.signature.sign({method:n,endpoint:o,path:encodeURI("/".concat(r)),headers:{},query:{uploads:""}},{}),e.next=6,_e().asyncRequest(n,i.url,i.body||null,Ue(Ue({},this.baseRequestParams),{},{headers:i.headers}));case 6:return a=e.sent,this.handleError(a,"CreateMultipartUpload"),e.abrupt("return",new et(r,(0,P.parseHTML)(a.body).find("UploadId").text()));case 9:case"end":return e.stop()}}),e,this)}))),function(e,t){return i.apply(this,arguments)})},{key:"uploadPart",value:(o=qe(Ie().mark((function e(t,r,n,o,i){var a,c,s;return Ie().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return(a=this.endpoint.copy()).hostname="".concat(t,".").concat(this.endpoint.hostname),c=this.signature.sign({method:"PUT",endpoint:a,path:encodeURI("/".concat(r)),headers:{},body:i,query:{partNumber:"".concat(o),uploadId:"".concat(n)}},{}),e.next=6,_e().asyncRequest("PUT",c.url,c.body||null,Ue(Ue({},this.baseRequestParams),{},{headers:c.headers}));case 6:return s=e.sent,this.handleError(s,"UploadPart"),e.abrupt("return",new tt(o,s.headers.Etag));case 9:case"end":return e.stop()}}),e,this)}))),function(e,t,r,n,i){return o.apply(this,arguments)})},{key:"completeMultipartUpload",value:(n=qe(Ie().mark((function e(t,r,n,o){var i,a,c,s,u;return Ie().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i="POST",a="".concat(o.map((function(e){return"".concat(e.partNumber,"").concat(e.eTag,"")})).join(""),""),(c=this.endpoint.copy()).hostname="".concat(t,".").concat(this.endpoint.hostname),s=this.signature.sign({method:i,endpoint:c,path:encodeURI("/".concat(r)),headers:{},body:a,query:{uploadId:"".concat(n)}},{}),e.next=7,_e().asyncRequest(i,s.url,s.body||null,Ue(Ue({},this.baseRequestParams),{},{headers:s.headers}));case 7:u=e.sent,this.handleError(u,"CompleteMultipartUpload");case 9:case"end":return e.stop()}}),e,this)}))),function(e,t,r,o){return n.apply(this,arguments)})},{key:"abortMultipartUpload",value:(r=qe(Ie().mark((function e(t,r,n){var o,i,a,c;return Ie().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o="DELETE",(i=this.endpoint.copy()).hostname="".concat(t,".").concat(this.endpoint.hostname),a=this.signature.sign({method:o,endpoint:i,path:encodeURI("/".concat(r)),headers:{},query:{uploadId:"".concat(n)}},{}),e.next=6,_e().asyncRequest(o,a.url,a.body||null,Ue(Ue({},this.baseRequestParams),{},{headers:a.headers}));case 6:c=e.sent,this.handleError(c,"AbortMultipartUpload");case 8:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return r.apply(this,arguments)})},{key:"handleError",value:function(e,r){var n,o,i,a,c;if(!(n=t,o="handleError",i=this,c=ze(Fe(1&(a=3)?n.prototype:n),o,i),2&a?function(e){return c.apply(i,e)}:c)([e]))return!1;var s=e.error;if(301==e.status||s&&s.startsWith("301"))throw new rt("Resource not found","ResourceNotFound",r);var u=N.parseXML(e.body);if("AuthorizationHeaderMalformed"===u.code)throw new Se(u.message,u.code);throw new rt(u.message,u.code||"unknown",r)}}]);var r,n,o,i,a,c,s,u,l,f}(function(){return e=function e(t,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),Re(this,"awsConfig",void 0),Re(this,"serviceName",void 0),Re(this,"baseRequestParams",{responseType:"text"}),Re(this,"_endpoint",void 0),this.awsConfig=t,this.serviceName=r,null!=t.endpoint&&(this._endpoint=t.endpoint)},(t=[{key:"endpoint",get:function(){return null==this._endpoint&&(this._endpoint=new s("https://".concat(this.serviceName,".").concat(this.awsConfig.region,".amazonaws.com"))),this._endpoint},set:function(e){this._endpoint=e}},{key:"handleError",value:function(e,t){var r=e.status,n=e.error_code,o=e.error;if(r>=200&&r<300&&""==o&&0===n)return!1;switch(n){case K.GenericError:case K.NonTCPNetworkError:case K.InvalidURL:case K.HTTPRequestTimeout:throw new G(n);case W.GenericDNSError:case W.NoIPFound:case W.BlacklistedIP:case W.BlacklistedHostname:throw new q(n);case z.GenericTCPError:case z.BrokenPipeOnWrite:case z.UnknownTCPError:case z.GeneralTCPDialError:case z.DialTimeoutError:case z.DialConnectionRefused:case z.DialUnknownError:case z.ResetByPeer:throw new H(n);case F.GeneralTLSError:case F.UnknownAuthority:case F.CertificateHostnameMismatch:throw new M(n);case X.GenericHTTP2Error:case X.GeneralHTTP2GoAwayError:throw new B(n)}return!0}}])&&xe(e.prototype,t),r&&xe(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}()),Je=Be((function e(t,r){He(this,e),Ve(this,"name",void 0),Ve(this,"creationDate",void 0),this.name=t,this.creationDate=r})),Ze=Be((function e(t,r,n,o,i,a){He(this,e),Ve(this,"key",void 0),Ve(this,"lastModified",void 0),Ve(this,"etag",void 0),Ve(this,"size",void 0),Ve(this,"storageClass",void 0),Ve(this,"data",void 0),this.key=t,this.lastModified=r,this.etag=n,this.size=o,this.storageClass=i,this.data=a})),et=Be((function e(t,r){He(this,e),Ve(this,"key",void 0),Ve(this,"uploadId",void 0),this.key=t,this.uploadId=r})),tt=Be((function e(t,r){He(this,e),Ve(this,"partNumber",void 0),Ve(this,"eTag",void 0),this.partNumber=t,this.eTag=r})),rt=function(e){function t(e,r,n){var o;return He(this,t),Ve(o=Ke(this,t,[e,r]),"operation",void 0),o.name="S3ServiceError",o.operation=n,o}return Xe(t,e),Be(t)}(N),nt=exports;for(var ot in t)nt[ot]=t[ot];t.__esModule&&Object.defineProperty(nt,"__esModule",{value:!0})})(); +//# sourceMappingURL=s3.js.map \ No newline at end of file diff --git a/lib/aws/0.13.0/s3.js.LICENSE.txt b/lib/aws/0.13.0/s3.js.LICENSE.txt new file mode 100644 index 0000000..ae386fb --- /dev/null +++ b/lib/aws/0.13.0/s3.js.LICENSE.txt @@ -0,0 +1 @@ +/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ diff --git a/lib/aws/0.13.0/s3.js.map b/lib/aws/0.13.0/s3.js.map new file mode 100644 index 0000000..a118d3c --- /dev/null +++ b/lib/aws/0.13.0/s3.js.map @@ -0,0 +1 @@ +{"version":3,"file":"s3.js","mappings":"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","sources":["webpack://k6-jslib-aws/webpack/bootstrap","webpack://k6-jslib-aws/webpack/runtime/compat get default export","webpack://k6-jslib-aws/webpack/runtime/define property getters","webpack://k6-jslib-aws/webpack/runtime/hasOwnProperty shorthand","webpack://k6-jslib-aws/webpack/runtime/make namespace object","webpack://k6-jslib-aws/./src/internal/endpoint.ts","webpack://k6-jslib-aws/./src/internal/config.ts","webpack://k6-jslib-aws/external commonjs \"k6/html\"","webpack://k6-jslib-aws/./src/internal/error.ts","webpack://k6-jslib-aws/external commonjs \"k6/crypto\"","webpack://k6-jslib-aws/./src/internal/constants.ts","webpack://k6-jslib-aws/./src/internal/signature.ts","webpack://k6-jslib-aws/./src/internal/http.ts","webpack://k6-jslib-aws/./src/internal/utils.ts","webpack://k6-jslib-aws/external commonjs \"k6/http\"","webpack://k6-jslib-aws/./src/internal/s3.ts","webpack://k6-jslib-aws/./src/internal/client.ts"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * Represents an AWS service endpoint, providing utilities for parsing and handling URL details.\n */\nexport class Endpoint {\n private _protocol: string\n private _hostname: string\n private _port?: number\n\n // Default protocol, this can be globally changed as per application requirements\n private static readonly DEFAULT_PROTOCOL = 'https' // Set this as per AWS.config\n\n /**\n // * Constructs a new Endpoint instance.\n *\n * @param {string} endpoint - The URL to construct an endpoint from. If the URL omits a protocol, the default protocol will be used.\n */\n constructor(endpoint: string) {\n const isDefaultProtocol =\n !endpoint.startsWith('http://') && !endpoint.startsWith('https://')\n const completeUrl = isDefaultProtocol\n ? `${Endpoint.DEFAULT_PROTOCOL}://${endpoint}`\n : endpoint\n\n const protocolMatch = completeUrl.match(/^https?:/)\n const hostAndPath = completeUrl.replace(/^https?:\\/\\//, '')\n const [hostnameWithPort] = hostAndPath.split('/')\n\n this._protocol = protocolMatch ? protocolMatch[0].slice(0, -1) : Endpoint.DEFAULT_PROTOCOL\n this._hostname = hostnameWithPort.split(':')[0]\n this._port = hostnameWithPort.split(':')[1]\n ? parseInt(hostnameWithPort.split(':')[1])\n : undefined\n }\n\n /**\n * Creates a new Endpoint instance that is a copy of the current one.\n *\n * @returns {Endpoint} The copied Endpoint.\n */\n public copy(): Endpoint {\n return new Endpoint(this.href)\n }\n\n /**\n * Gets the host portion of the endpoint including the port.\n *\n * @returns {string} The host portion of the endpoint including the port.\n */\n public get host(): string {\n return this._port ? `${this._hostname}:${this._port}` : this._hostname\n }\n\n /**\n * Sets the host portion of the endpoint including the port.\n *\n * @param {string} value - The value to set for the host.\n */\n public set host(value: string) {\n const [hostname, port] = value.split(':')\n this._hostname = hostname\n this._port = port ? parseInt(port) : undefined\n }\n\n /**\n * Gets the host portion of the endpoint without the port.\n *\n * @returns {string} The host portion of the endpoint.\n */\n public get hostname(): string {\n return this._hostname\n }\n\n /**\n * Sets the host portion of the endpoint without the port.\n *\n * @param {string} value - The value to set for the hostname.\n */\n public set hostname(value: string) {\n this._hostname = value\n }\n\n /**\n * Gets the full URL of the endpoint.\n *\n * @returns {string} The full URL of the endpoint.\n */\n public get href(): string {\n return `${this.protocol}://${this.host}`\n }\n\n /**\n * Sets the full URL of the endpoint.\n *\n * @param {string} value - The value to set for the full URL.\n */\n public set href(value: string) {\n const protocolMatch = value.match(/^https?:/)\n const withoutProtocol = value.replace(/^https?:\\/\\//, '')\n const [hostnameWithPort] = withoutProtocol.split('/')\n\n this._protocol = protocolMatch ? protocolMatch[0].slice(0, -1) : Endpoint.DEFAULT_PROTOCOL // remove the trailing colon\n this._hostname = hostnameWithPort.split(':')[0]\n this._port = hostnameWithPort.split(':')[1]\n ? parseInt(hostnameWithPort.split(':')[1])\n : undefined\n }\n\n /**\n * Gets the port of the endpoint.\n *\n * @returns {number|undefined} The port of the endpoint.\n */\n public get port(): number | undefined {\n return this._port\n }\n\n /**\n * Sets the port of the endpoint.\n *\n * @param {number|undefined} value - The value to set for the port.\n */\n public set port(value: number | undefined) {\n this._port = value\n }\n\n /**\n * Gets the protocol (http or https) of the endpoint URL.\n *\n * @returns {string} The protocol of the endpoint URL.\n */\n public get protocol(): string {\n return this._protocol\n }\n\n /**\n * Sets the protocol (http or https) of the endpoint URL.\n *\n * @param {string} value - The value to set for the protocol.\n */\n public set protocol(value: string) {\n this._protocol = value\n }\n}\n","import { HTTPScheme } from './http'\nimport { Endpoint } from './endpoint'\n\n/** Class holding an AWS connection information */\nexport class AWSConfig {\n /**\n * The AWS region to connect to, as listed: https://docs.aws.amazon.com/general/latest/gr/rande.html\n *\n * @type {string}\n */\n region: string\n\n /**\n * Your user's AWS access key id credential.\n *\n * @type {string}\n */\n accessKeyId: string\n\n /**\n * Your user's AWS secret access key credential.\n *\n * @type {string}\n */\n secretAccessKey: string\n\n /**\n * Your user's AWS session token credential.\n *\n * @type {string}\n */\n sessionToken?: string\n\n /**\n * The AWS hostname to connect to.\n *\n * @type {string} ['amazonaws.com']\n */\n endpoint?: Endpoint\n\n /**\n * fromEnvironment creates an AWSConfig from the environment variables.\n *\n * It expects to find the following compulsory environment variables:\n * * AWS_REGION\n * * AWS_ACCESS_KEY_ID\n * * AWS_SECRET_ACCESS_KEY\n *\n * If set, the following optional environment variables are also used:\n * * AWS_SESSION_TOKEN\n *\n * Finally, the options parameter allows to explicitly set the scheme and endpoint\n * to use when connecting to AWS.\n *\n * @param options {AWSConnectionOptions}\n * @returns\n */\n static fromEnvironment(options?: AWSConnectionOptions): AWSConfig {\n const region = __ENV.AWS_REGION\n const accessKeyId = __ENV.AWS_ACCESS_KEY_ID\n const secretAccessKey = __ENV.AWS_SECRET_ACCESS_KEY\n const sessionToken: string | undefined = __ENV.AWS_SESSION_TOKEN\n const endpoint: Endpoint | string | undefined = options?.endpoint\n\n return new AWSConfig({\n region,\n accessKeyId,\n secretAccessKey,\n sessionToken,\n endpoint: endpoint,\n })\n }\n\n /**\n * Create an AWSConfig.\n *\n * @param {AWSConfigOptions} options - configuration attributes to use when interacting with AWS' APIs\n * @throws {InvalidArgumentException}\n */\n constructor(options: AWSConfigOptions) {\n if (!options.region || options.region === '') {\n throw new InvalidAWSConfigError(\n `invalid AWS region; reason: expected a valid AWS region name (e.g. \"us-east-1\"), got \\`${options.region}\\``\n )\n }\n\n if (!options.accessKeyId || options.accessKeyId === '') {\n throw new InvalidAWSConfigError(\n `invalid AWS access key ID; reason: expected a non empty string, got \\`${options.accessKeyId}\\``\n )\n }\n\n if (options.accessKeyId.length < 16 || options.accessKeyId.length > 128) {\n throw new InvalidAWSConfigError(\n `invalid AWS access key ID; reason: size should be between 16 and 128 characters, got ${options.accessKeyId.length}`\n )\n }\n\n if (!options.secretAccessKey || options.secretAccessKey === '') {\n throw new InvalidAWSConfigError(\n `invalid AWS secret access key; reason: expected a non empty string, got \\`${options.secretAccessKey}\\``\n )\n }\n\n this.region = options.region\n this.accessKeyId = options.accessKeyId\n this.secretAccessKey = options.secretAccessKey\n\n if (options.sessionToken !== undefined) {\n this.sessionToken = options.sessionToken\n }\n\n if (options.endpoint !== undefined) {\n if (typeof options.endpoint === 'string') {\n this.endpoint = new Endpoint(options.endpoint)\n } else {\n this.endpoint = options.endpoint\n }\n }\n }\n}\n\n/**\n * Interface representing AWSConfig options\n */\nexport interface AWSConfigOptions extends AWSConnectionOptions {\n /**\n * The AWS region to connect to, as listed: https://docs.aws.amazon.com/general/latest/gr/rande.html\n *\n * @type {string}\n */\n region: string\n\n /**\n * Your user's AWS access key id credential.\n *\n * @type {string}\n */\n accessKeyId: string\n\n /**\n * Your user's AWS secret access key credential.\n *\n * @type {string}\n */\n secretAccessKey: string\n\n /**\n * Your user's AWS session token credential.\n *\n * @type {string}\n */\n sessionToken?: string\n}\n\n/**\n * Interface representing AWS connection options\n */\nexport interface AWSConnectionOptions {\n /**\n * The HTTP scheme to use when connecting to AWS.\n *\n * @type {HTTPScheme}\n */\n scheme?: HTTPScheme\n\n /**\n * The AWS hostname to connect to.\n *\n * @type {string}\n */\n endpoint?: Endpoint | string\n}\n\n/** Class representing an invalid AWS configuration */\nexport class InvalidAWSConfigError extends Error {\n constructor(message: string) {\n super(message)\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"k6/html\");","import { JSONObject } from './json'\nimport { parseHTML } from 'k6/html'\nimport { Response } from 'k6/http'\n\n/**\n * Base class to derive errors from\n *\n * Inspired from AWS official error types, as\n * described in:\n * * https://aws.amazon.com/blogs/developer/service-error-handling-modular-aws-sdk-js/\n * * https://github.com/aws/aws-sdk-js/blob/master/lib/error.d.ts\n */\nexport class AWSError extends Error {\n /**\n * Error code issued by the service (if any)\n */\n code?: string\n\n /**\n * Create an AWSError\n *\n * @param {string} message - A longer human readable error message.\n * @param {string?} code - A unique short code representing the error that was emitted\n */\n constructor(message: string, code?: string) {\n super(message)\n this.name = 'AWSError'\n this.code = code\n }\n\n /**\n * Parse an AWSError from an XML document\n *\n * @param {string} xmlDocument - Serialized XML document to parse the error from\n * @returns {AWSError} - The parsed AWSError object\n */\n static parseXML(xmlDocument: string): AWSError {\n const doc = parseHTML(xmlDocument)\n return new AWSError(doc.find('Message').text(), doc.find('Code').text())\n }\n\n /**\n * Parse an AWSError from a Response object\n *\n * @param {Response} response - The Response object to parse the error from\n * @returns {AWSError} - The parsed AWSError object\n */\n static parse(response: Response): AWSError {\n if (response.headers['Content-Type'] === 'application/json') {\n const error = (response.json() as JSONObject) || {}\n const message =\n error.Message ||\n error.message ||\n error.__type ||\n 'An error occurred on the server side'\n const code = response.headers['X-Amzn-Errortype'] || error.__type\n return new AWSError(message as string, code as string)\n } else {\n return AWSError.parseXML(response.body as string)\n }\n }\n}\n\n/**\n * Base class for network errors as produced by k6.\n *\n * Based on the network error handling in k6, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n *\n * @typeparam N - The name of the network error\n * @typeparam K - The kind of the network error\n */\nexport class NetworkError extends Error {\n code: K\n name: N\n\n /**\n * Create a NetworkError\n *\n * @param {N} name - The name of the network error\n * @param {K} code - The kind of the network error\n */\n constructor(name: N, code: K) {\n super(ErrorMessages[code] || 'An unknown error occurred')\n this.name = name\n this.code = code\n }\n}\n\n/**\n * Represents a general network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class GeneralError extends NetworkError<'GeneralError', GeneralErrorKind> {\n /**\n * Create a GeneralError\n *\n * @param {GeneralErrorKind} code - The kind of the general error\n */\n constructor(code: GeneralErrorKind) {\n super('GeneralError', code)\n }\n}\n\n/**\n * Represents a DNS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class DNSError extends NetworkError<'DNSError', DNSErrorKind> {\n /**\n * Create a DNSError\n *\n * @param {DNSErrorKind} code - The kind of the DNS error\n */\n constructor(code: DNSErrorKind) {\n super('DNSError', code)\n }\n}\n\n/**\n * Represents a TCP-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class TCPError extends NetworkError<'TCPError', TCPErrorKind> {\n /**\n * Create a TCPError\n *\n * @param {TCPErrorKind} code - The kind of the TCP error\n */\n constructor(code: TCPErrorKind) {\n super('TCPError', code)\n }\n}\n\n/**\n * Represents a TLS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class TLSError extends NetworkError<'TLSError', TLSErrorKind> {\n /**\n * Create a TLSError\n *\n * @param {TLSErrorKind} code - The kind of the TLS error\n */\n constructor(code: TLSErrorKind) {\n super('TLSError', code)\n }\n}\n\n/**\n * Represents an HTTP/2-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class HTTP2Error extends NetworkError<'HTTP2Error', HTTP2ErrorKind> {\n /**\n * Create an HTTP2Error\n *\n * @param {HTTP2ErrorKind} code - The kind of the HTTP/2 error\n */\n constructor(code: HTTP2ErrorKind) {\n super('HTTP2Error', code)\n }\n}\n\n/**\n * Represents the name of a network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\ntype NetworkErrorName = 'GeneralError' | 'DNSError' | 'TCPError' | 'TLSError' | 'HTTP2Error'\n\n/**\n * Represents the kind of a network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\ntype ErrorKind = GeneralErrorKind | DNSErrorKind | TCPErrorKind | TLSErrorKind | HTTP2ErrorKind\n\n/**\n * Represents the kind of a general network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum GeneralErrorKind {\n GenericError = 1000,\n NonTCPNetworkError = 1010,\n InvalidURL = 1020,\n HTTPRequestTimeout = 1050,\n}\n\n/**\n * Represents the kind of a DNS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum DNSErrorKind {\n GenericDNSError = 1100,\n NoIPFound = 1101,\n BlacklistedIP = 1110,\n BlacklistedHostname = 1111,\n}\n\n/**\n * Represents the kind of a TCP-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum TCPErrorKind {\n GenericTCPError = 1200,\n BrokenPipeOnWrite = 1201,\n UnknownTCPError = 1202,\n GeneralTCPDialError = 1210,\n DialTimeoutError = 1211,\n DialConnectionRefused = 1212,\n DialUnknownError = 1213,\n ResetByPeer = 1220,\n}\n\n/**\n * Represents the kind of a TLS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum TLSErrorKind {\n GeneralTLSError = 1300,\n UnknownAuthority = 1310,\n CertificateHostnameMismatch = 1311,\n}\n\n/**\n * Represents the kind of an HTTP/2-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum HTTP2ErrorKind {\n GenericHTTP2Error = 1600,\n GeneralHTTP2GoAwayError = 1610,\n}\n\n/**\n * Error messages for each kind of network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nconst ErrorMessages: { [key in ErrorKind]: string } = {\n [GeneralErrorKind.GenericError]: 'A generic error that isn’t any of the ones listed below',\n [GeneralErrorKind.NonTCPNetworkError]:\n 'A non-TCP network error - this is a placeholder and there is no error currently known to trigger it',\n [GeneralErrorKind.InvalidURL]: 'An invalid URL was specified',\n [GeneralErrorKind.HTTPRequestTimeout]: 'The HTTP request has timed out',\n [DNSErrorKind.GenericDNSError]: 'A generic DNS error that isn’t any of the ones listed below',\n [DNSErrorKind.NoIPFound]: 'No IP for the provided host was found',\n [DNSErrorKind.BlacklistedIP]:\n 'Blacklisted IP was resolved or a connection to such was tried to be established',\n [DNSErrorKind.BlacklistedHostname]: 'Blacklisted hostname using The Block Hostnames option',\n [TCPErrorKind.GenericTCPError]: 'A generic TCP error that isn’t any of the ones listed below',\n [TCPErrorKind.BrokenPipeOnWrite]:\n 'A “broken pipe” on write - the other side has likely closed the connection',\n [TCPErrorKind.UnknownTCPError]:\n 'An unknown TCP error - We got an error that we don’t recognize but it is from the operating system and has errno set on it. The message in error includes the operation(write,read) and the errno, the OS, and the original message of the error',\n [TCPErrorKind.GeneralTCPDialError]: 'General TCP dial error',\n [TCPErrorKind.DialTimeoutError]: 'Dial timeout error - the timeout for the dial was reached',\n [TCPErrorKind.DialConnectionRefused]:\n 'Dial connection refused - the connection was refused by the other party on dial',\n [TCPErrorKind.DialUnknownError]: 'Dial unknown error',\n [TCPErrorKind.ResetByPeer]:\n 'Reset by peer - the connection was reset by the other party, most likely a server',\n [TLSErrorKind.GeneralTLSError]: 'General TLS error',\n [TLSErrorKind.UnknownAuthority]: 'Unknown authority - the certificate issuer is unknown',\n [TLSErrorKind.CertificateHostnameMismatch]: 'The certificate doesn’t match the hostname',\n [HTTP2ErrorKind.GenericHTTP2Error]:\n 'A generic HTTP/2 error that isn’t any of the ones listed below',\n [HTTP2ErrorKind.GeneralHTTP2GoAwayError]: 'A general HTTP/2 GoAway error',\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"k6/crypto\");","/**\n * Standard Amazon AWS query parameter names\n */\nexport const AMZ_ALGORITHM_QUERY_PARAM = 'X-Amz-Algorithm'\nexport const AMZ_CREDENTIAL_QUERY_PARAM = 'X-Amz-Credential'\nexport const AMZ_DATE_QUERY_PARAM = 'X-Amz-Date'\nexport const AMZ_EXPIRES_QUERY_PARAM = 'X-Amz-Expires'\nexport const AMZ_SIGNATURE_QUERY_PARAM = 'X-Amz-Signature'\nexport const AMZ_SIGNED_HEADERS_QUERY_PARAM = 'X-Amz-SignedHeaders'\nexport const AMZ_TARGET_QUERY_PARAM = 'X-Amz-Target'\nexport const AMZ_TOKEN_QUERY_PARAM = 'X-Amz-Security-Token'\n\n/**\n * Standard Amazon AWS header names\n */\nexport const AMZ_CONTENT_SHA256_HEADER = 'x-amz-content-sha256'\nexport const AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase()\nexport const AMZ_SIGNATURE_HEADER = AMZ_SIGNATURE_QUERY_PARAM.toLowerCase()\nexport const AMZ_TARGET_HEADER = AMZ_TARGET_QUERY_PARAM.toLowerCase()\nexport const AMZ_TOKEN_HEADER = AMZ_TOKEN_QUERY_PARAM.toLowerCase()\n\n/**\n * Common HTTP headers we rely on in the signing process\n */\nexport const AUTHORIZATION_HEADER = 'authorization'\nexport const DATE_HEADER = 'date'\n\n/**\n * Lists the headers that are generated as part of the signature process.\n */\nexport const GENERATED_HEADERS = [AUTHORIZATION_HEADER, AMZ_DATE_HEADER, DATE_HEADER]\nexport const HOST_HEADER = 'host'\n\n/**\n * Lists the headers that should never be included in the\n * request signature signature process.\n */\nexport const ALWAYS_UNSIGNABLE_HEADERS = {\n authorization: true,\n 'cache-control': true,\n connection: true,\n expect: true,\n from: true,\n 'keep-alive': true,\n 'max-forwards': true,\n pragma: true,\n referer: true,\n te: true,\n trailer: true,\n 'transfer-encoding': true,\n upgrade: true,\n 'user-agent': true,\n 'x-amzn-trace-id': true,\n}\n\n/**\n * Signature specific constants included in the signing process\n */\nexport const KEY_TYPE_IDENTIFIER = 'aws4_request'\nexport const SIGNING_ALGORITHM_IDENTIFIER = 'AWS4-HMAC-SHA256'\n\n/**\n * Maximum time to live of a signed request in seconds: 7 days.\n */\nexport const MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7\n\n/**\n * SHA256 hash of an empty string (so we don't waste cycles recomputing it)\n */\nexport const EMPTY_SHA256 = 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'\n\n/**\n * SHA256 hash of the unsigned payload constant (so we don't waste cycles recomputing it)\n */\nexport const UNSIGNED_PAYLOAD_SHA256 =\n '5a41b0751e4537c6ff868564ab44a4d4ecceec2ec5b1c5f74d97422968e04237'\n\nexport const UNSIGNED_PAYLOAD = 'UNSIGNED-PAYLOAD'\n","import crypto from 'k6/crypto'\n\nimport * as constants from './constants'\nimport { AWSError } from './error'\nimport { hasHeader, HTTPHeaderBag, HTTPRequest, QueryParameterBag, SignedHTTPRequest } from './http'\nimport { isArrayBuffer } from './utils'\n\n/**\n * SignatureV4 can be used to sign HTTP requests and presign URLs using the AWS Signature\n * Version 4 signing process.\n *\n * It offers two signing methods:\n * - sign: signs the request headers and payload\n * - presign: returns a presigned (authorization information contained in the query string) URL\n *\n * @see https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html\n */\nexport class SignatureV4 {\n /**\n * The name of the service to sign for.\n */\n private readonly service: string\n\n /**\n * The name of the region to sign for.\n */\n private readonly region: string\n\n /**\n * The credentials with which the request should be signed.\n */\n private readonly credentials: Credentials\n\n /**\n * Whether to uri-escape the request URI path as part of computing the\n * canonical request string. This is required for every AWS service, except\n * Amazon S3, as of late 2017.\n *\n * @default [true]\n */\n private readonly uriEscapePath: boolean\n\n /**\n * Whether to calculate a checksum of the request body and include it as\n * either a request header (when signing) or as a query string parameter\n * (when presigning). This is required for AWS Glacier and Amazon S3 and optional for\n * every other AWS service as of late 2017.\n *\n * @default [true]\n */\n private readonly applyChecksum: boolean\n\n // TODO: uriEscapePath and applyChecksum should not be present in the constructor\n constructor({\n service,\n region,\n credentials,\n uriEscapePath,\n applyChecksum,\n }: SignatureV4Options) {\n this.service = service\n this.region = region\n this.credentials = credentials\n this.uriEscapePath = typeof uriEscapePath === 'boolean' ? uriEscapePath : true\n this.applyChecksum = typeof applyChecksum === 'boolean' ? applyChecksum : true\n }\n\n /**\n * Includes AWS v4 signing information to the provided HTTP request.\n *\n * This method adds an Authorization header to the request, containing\n * the signature and other signing information. It also returns a preformatted\n * URL that can be used to make the k6 http request.\n *\n * This method mutates the request object.\n *\n * @param request {HTTPRequest} The request to sign.\n * @param options {Partial} Options for signing the request.\n * @returns {SignedHTTPRequest} The signed request.\n */\n sign(request: HTTPRequest, options: Partial = {}): SignedHTTPRequest {\n // Set default values for options which are not provided by the user.\n const defaultOptions = {\n signingDate: new Date(),\n unsignableHeaders: new Set(),\n signableHeaders: new Set(),\n }\n\n // Merge default options with the ones maybe provided by the user.\n const finalOptions = { ...defaultOptions, ...options }\n\n const { longDate, shortDate }: DateInfo = formatDate(finalOptions.signingDate)\n const service = finalOptions.signingService || this.service\n const region = finalOptions.signingRegion || this.region\n const scope = `${shortDate}/${region}/${service}/${constants.KEY_TYPE_IDENTIFIER}`\n\n // Required by the specification:\n // \"For HTTP/1.1 requests, you must include the host header at a minimum.\n // Standard headers like content-type are optional.\n // For HTTP/2 requests, you must include the :authority header instead of\n // the host header. Different services might require other headers.\"\n if (!request.headers[constants.HOST_HEADER]) {\n request.headers[constants.HOST_HEADER] = request.endpoint.hostname\n }\n\n // Filter out headers that will be generated and managed by the signing process.\n // If the user provide any of those as part of the HTTPRequest's headers, they\n // will be ignored.\n for (const headerName of Object.keys(request.headers)) {\n if (constants.GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) {\n delete request.headers[headerName]\n }\n }\n\n request.headers[constants.AMZ_DATE_HEADER] = longDate\n if (this.credentials.sessionToken) {\n request.headers[constants.AMZ_TOKEN_HEADER] = this.credentials.sessionToken\n }\n\n // If the request body is a typed array, we need to convert it to a buffer\n // so that we can calculate the checksum.\n if (ArrayBuffer.isView(request.body)) {\n request.body = request.body.buffer\n }\n\n // Ensure we avoid passing undefined to the crypto hash function.\n if (!request.body) {\n request.body = ''\n }\n\n const payloadHash = this.computePayloadHash(request)\n if (\n !hasHeader(constants.AMZ_CONTENT_SHA256_HEADER, request.headers) &&\n this.applyChecksum\n ) {\n request.headers[constants.AMZ_CONTENT_SHA256_HEADER] = payloadHash\n }\n\n const canonicalHeaders = this.computeCanonicalHeaders(\n request,\n finalOptions.unsignableHeaders,\n finalOptions.signableHeaders\n )\n const signature = this.calculateSignature(\n longDate,\n scope,\n this.deriveSigningKey(this.credentials, service, region, shortDate),\n this.createCanonicalRequest(request, canonicalHeaders, payloadHash)\n )\n\n /**\n * Step 4 of the signing process: add the signature to the HTTP request's headers.\n *\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html\n */\n request.headers[constants.AUTHORIZATION_HEADER] =\n `${constants.SIGNING_ALGORITHM_IDENTIFIER} ` +\n `Credential=${this.credentials.accessKeyId}/${scope}, ` +\n `SignedHeaders=${Object.keys(canonicalHeaders).sort().join(';')}, ` +\n `Signature=${signature}`\n\n // If a request path was provided, add it to the URL\n let url = request.endpoint.href\n if (request.path) {\n // Ensure the URI and the request path are properly concatenated\n // by adding a trailing slash to the URI if it's missing.\n if (!url.endsWith('/') && !request.path.startsWith('/')) {\n url += '/'\n }\n\n // Append the path to the URL\n url += request.path\n }\n\n // If a request query string was provided, add it to the URL\n if (request.query) {\n // We exclude the signature from the query string\n url += `?${this.serializeQueryParameters(request.query)}`\n }\n\n return {\n url: url,\n ...request,\n }\n }\n\n /**\n * Produces a presigned URL with AWS v4 signature information for the provided HTTP request.\n *\n * A presigned URL is a URL that contains the authorization information\n * (signature and other signing information) in the query string. This method\n * returns a preformatted URL that can be used to make the k6 http request.\n *\n * @param originalRequest - The original request to presign.\n * @param options - Options controlling the signing of the request.\n * @returns A signed request, including the presigned URL.\n */\n presign(originalRequest: HTTPRequest, options: PresignOptions = {}): SignedHTTPRequest {\n const {\n signingDate = new Date(),\n expiresIn = 3600,\n unsignableHeaders,\n unhoistableHeaders,\n signableHeaders,\n signingRegion,\n signingService,\n } = options\n const { longDate, shortDate }: DateInfo = formatDate(signingDate)\n const region = signingRegion || this.region\n const service = signingService || this.service\n\n if (expiresIn > constants.MAX_PRESIGNED_TTL) {\n throw new InvalidSignatureError(\n \"Signature version 4 presigned URLs can't be valid for more than 7 days\"\n )\n }\n\n const scope = `${shortDate}/${region}/${service}/${constants.KEY_TYPE_IDENTIFIER}`\n const request = this.moveHeadersToQuery(originalRequest, { unhoistableHeaders })\n\n // Required by the specification:\n // \"For HTTP/1.1 requests, you must include the host header at a minimum.\n // Standard headers like content-type are optional.\n // For HTTP/2 requests, you must include the :authority header instead of\n // the host header. Different services might require other headers.\"\n if (!request.headers[constants.HOST_HEADER]) {\n request.headers[constants.HOST_HEADER] = originalRequest.endpoint.hostname\n }\n\n // If the user provided a session token, include it in the signed url query string.\n if (this.credentials.sessionToken) {\n request.query[constants.AMZ_TOKEN_QUERY_PARAM] = this.credentials.sessionToken\n }\n // Add base signing query parameters to the request, as described in the documentation\n // @see https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html\n request.query[constants.AMZ_ALGORITHM_QUERY_PARAM] = constants.SIGNING_ALGORITHM_IDENTIFIER\n request.query[\n constants.AMZ_CREDENTIAL_QUERY_PARAM\n ] = `${this.credentials.accessKeyId}/${scope}`\n request.query[constants.AMZ_DATE_QUERY_PARAM] = longDate\n request.query[constants.AMZ_EXPIRES_QUERY_PARAM] = expiresIn.toString(10)\n\n const canonicalHeaders = this.computeCanonicalHeaders(\n request,\n unsignableHeaders,\n signableHeaders\n )\n request.query[constants.AMZ_SIGNED_HEADERS_QUERY_PARAM] = Object.keys(canonicalHeaders)\n .sort()\n .join(';')\n\n const signingKey = this.deriveSigningKey(this.credentials, service, region, shortDate)\n\n // Computing the payload from the original request. This is required\n // in the event the user attempts to produce a presigned URL for s3,\n // which requires the payload hash to be 'UNSIGNED-PAYLOAD'.\n //\n // To that effect, users need to set the 'x-amz-content-sha256' header,\n // and mark it as unhoistable and unsignable. When setup this way,\n // the computePayloadHash method will then return the string 'UNSIGNED-PAYLOAD'.\n const payloadHash = this.computePayloadHash(originalRequest)\n const canonicalRequest = this.createCanonicalRequest(request, canonicalHeaders, payloadHash)\n\n request.query[constants.AMZ_SIGNATURE_QUERY_PARAM] = this.calculateSignature(\n longDate,\n scope,\n signingKey,\n canonicalRequest\n )\n\n // If a request path was provided, add it to the URL\n let url = originalRequest.endpoint.href\n if (request.path) {\n // Ensure there is a trailing slash at the end of the URL\n // so that appending the path does not result in a malformed URL.\n url = url?.endsWith('/') ? url : url + '/'\n\n // Append the path to the URL\n url += request.path\n }\n\n // If a request query string was provided, add it to the URL\n if (request.query) {\n url += `?${this.serializeQueryParameters(request.query)}`\n }\n\n return { url: url, ...request }\n }\n\n /**\n * Create a string including information from your request\n * in a AWS signature v4 standardized (canonical) format.\n *\n * Step 1 of the signing process: create the canonical request string.\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html\n *\n * @param request {HTTPRequest} The request to sign.\n * @param canonicalHeaders {HTTPHeaderBag} The request's canonical headers.\n * @param payloadHash {string} The hexadecimally encoded request's payload hash .\n * @returns {string} The canonical request string.\n */\n private createCanonicalRequest(\n request: HTTPRequest,\n canonicalHeaders: HTTPHeaderBag,\n payloadHash: string\n ): string {\n const sortedHeaders = Object.keys(canonicalHeaders).sort()\n const sortedCanonicalHeaders = sortedHeaders\n .map((name) => `${name}:${canonicalHeaders[name]}`)\n .join('\\n')\n const signedHeaders = sortedHeaders.join(';')\n\n return (\n `${request.method}\\n` +\n `${this.computeCanonicalURI(request)}\\n` +\n `${this.computeCanonicalQuerystring(request)}\\n` +\n `${sortedCanonicalHeaders}\\n\\n` +\n `${signedHeaders}\\n` +\n `${payloadHash}`\n )\n }\n\n /**\n * Create the \"string to sign\" part of the signature Version 4 protocol.\n *\n * The \"string to sign\" includes meta information about your request and\n * about the canonical request that you created with `createCanonicalRequest`.\n * It is used hand in hand with the signing key to create the request signature.\n * Step 2 of the signing process: create the string to sign.\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-create-string-to-sign.html\n *\n * @param longDate {string} The request's date in iso 8601 format.\n * @param credentialScope {string} The request's credential scope.\n * @param canonicalRequest {string} The request's canonical request.\n * @returns {string} The \"string to sign\".\n */\n private createStringToSign(\n longDate: string,\n credentialScope: string,\n canonicalRequest: string\n ): string {\n const hashedCanonicalRequest = crypto.sha256(canonicalRequest, 'hex')\n\n return (\n `${constants.SIGNING_ALGORITHM_IDENTIFIER}\\n` +\n `${longDate}\\n` +\n `${credentialScope}\\n` +\n `${hashedCanonicalRequest}`\n )\n }\n\n /**\n * Calculte the signature for AWS signature version 4.\n *\n * Step 3 of the signing process: create the signature.\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-calculate-signature.html\n *\n * @param longDate {string} The request's date in iso 8601 format.\n * @param credentialScope {string} The request's credential scope.\n * @param signingKey {string} the signing key as computed by the deriveSigningKey method.\n * @param canonicalRequest {string} The request's canonical request.\n * @returns {string} The signature.\n */\n private calculateSignature(\n longDate: string,\n credentialScope: string,\n signingKey: Uint8Array,\n canonicalRequest: string\n ): string {\n const stringToSign = this.createStringToSign(longDate, credentialScope, canonicalRequest)\n return crypto.hmac('sha256', signingKey, stringToSign, 'hex')\n }\n\n /**\n * Derives the signing key for authenticating requests signed with\n * the Signature version 4 authentication protocol.\n *\n * deriveSigningKey produces a signing key by creating a series of\n * hash-based message authentication codes (HMACs) represented in\n * a binary format.\n *\n * The derived signing key is specific to the date it's made at, as well as\n * the service and region it targets.\n *\n * @param credentials {AWSCredentials} The credentials to use for signing.\n * @param service {string} The service the request is targeted at.\n * @param region {string} The region the request is targeted at.\n * @param shortDate {string} The request's date in YYYYMMDD format.\n * @returns {Uint8Array} The derived signing key.\n */\n private deriveSigningKey(\n credentials: Credentials,\n service: string,\n region: string,\n shortDate: string\n ): Uint8Array {\n const kSecret: string = credentials.secretAccessKey\n /**\n * crypto.hmac returns a value of type `bytes`, which is an alias for\n * number[]. However, the secret argument to hmac needs to either be\n * a `string` or ArrayBuffer. The only way to get around this is to\n * cast the return value of hmac to any, thus, we disable the no-explicit-any\n * ESLint rule for this function.\n */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const kDate: any = crypto.hmac('sha256', 'AWS4' + kSecret, shortDate, 'binary')\n const kRegion: any = crypto.hmac('sha256', kDate, region, 'binary')\n const kService: any = crypto.hmac('sha256', kRegion, service, 'binary')\n const kSigning: any = crypto.hmac('sha256', kService, 'aws4_request', 'binary')\n /* eslint-enable @typescript-eslint/no-explicit-any */\n\n return kSigning\n }\n\n /**\n * Create a string that includes information from your request\n * in a AWS signature v4 standardized (canonical) format.\n *\n * @param param0 {HTTPRequest} The request to sign.\n * @returns {string} The canonical URI.\n */\n private computeCanonicalURI({ path }: HTTPRequest): string {\n if (this.uriEscapePath) {\n // Non-S3 services, we normalize the path and then double URI encode it.\n // Ref: \"Remove Dot Segments\" https://datatracker.ietf.org/doc/html/rfc3986#section-5.2.4\n const normalizedURISegments = []\n\n for (const URISegment of path.split('/')) {\n if (URISegment?.length === 0) {\n continue\n }\n\n if (URISegment === '.') {\n continue\n }\n\n if (URISegment === '..') {\n normalizedURISegments.pop()\n } else {\n normalizedURISegments.push(URISegment)\n }\n }\n\n // Normalize the URI\n const leading = path?.startsWith('/') ? '/' : ''\n const URI = normalizedURISegments.join('/')\n const trailing = normalizedURISegments.length > 0 && path?.endsWith('/') ? '/' : ''\n const normalizedURI = `${leading}${URI}${trailing}`\n\n const doubleEncoded = encodeURIComponent(normalizedURI)\n\n return doubleEncoded.replace(/%2F/g, '/')\n }\n\n // For S3, we shouldn't normalize the path. For example, object name\n // my-object//example//photo.user should not be normalized to\n // my-object/example/photo.user\n return path\n }\n\n /**\n * Serializes the request's query parameters into their canonical\n * string version. If the request does not include a query parameters,\n * returns an empty string.\n *\n * @param param0 {HTTPRequest} The request containing the query parameters.\n * @returns {string} The canonical query string.\n */\n private computeCanonicalQuerystring({ query = {} }: HTTPRequest): string {\n const keys: Array = []\n const serialized: Record = {}\n\n for (const key of Object.keys(query).sort()) {\n if (key.toLowerCase() === constants.AMZ_SIGNATURE_HEADER) {\n continue\n }\n\n keys.push(key)\n const value = query[key]\n\n if (typeof value === 'string') {\n serialized[key] = `${escapeURI(key)}=${escapeURI(value)}`\n } else if (Array.isArray(value)) {\n serialized[key] = value\n .slice(0)\n .sort()\n .reduce(\n (encoded: Array, value: string) =>\n encoded.concat([`${escapeURI(key)}=${escapeURI(value)}`]),\n []\n )\n .join('&')\n }\n }\n\n return keys\n .map((key) => serialized[key])\n .filter((serialized) => serialized)\n .join('&')\n }\n\n /**\n * Create the canonical form of the request's headers.\n * Canonical headers consist of all the HTTP headers you\n * are including with the signed request.\n *\n * @param param0 {HTTPRequest} The request to compute the canonical headers of.\n * @param unsignableHeaders {Set} The headers that should not be signed.\n * @param signableHeaders {Set} The headers that should be signed.\n * @returns {string} The canonical headers.\n */\n private computeCanonicalHeaders(\n { headers }: HTTPRequest,\n unsignableHeaders?: Set,\n signableHeaders?: Set\n ): HTTPHeaderBag {\n const canonicalHeaders: HTTPHeaderBag = {}\n\n for (const headerName of Object.keys(headers).sort()) {\n if (headers[headerName] == undefined) {\n continue\n }\n\n const canonicalHeaderName = headerName.toLowerCase()\n if (\n canonicalHeaderName in constants.ALWAYS_UNSIGNABLE_HEADERS ||\n unsignableHeaders?.has(canonicalHeaderName)\n ) {\n if (\n !signableHeaders ||\n (signableHeaders && !signableHeaders.has(canonicalHeaderName))\n ) {\n continue\n }\n }\n\n if (typeof headers[headerName] === 'string') {\n canonicalHeaders[canonicalHeaderName] = headers[headerName] = headers[headerName]\n .trim()\n .replace(/\\s+/g, ' ')\n }\n }\n\n return canonicalHeaders\n }\n\n /**\n * Computes the SHA256 cryptographic hash of the request's body.\n *\n * If the headers contain the 'X-Amz-Content-Sha256' header, then\n * the value of that header is returned instead. This proves useful\n * when, for example, presiging a URL for S3, as the payload hash\n * must always be equal to 'UNSIGNED-PAYLOAD'.\n *\n * @param param0 {HTTPRequest} The request to compute the payload hash of.\n * @returns {string} The hex encoded SHA256 payload hash, or the value of the 'X-Amz-Content-Sha256' header.\n */\n private computePayloadHash({ headers, body }: HTTPRequest): string {\n // for (const headerName of Object.keys(headers)) {\n // // If the header is present, return its value.\n // // So that we let the 'UNSIGNED-PAYLOAD' value pass through.\n // if (headerName.toLowerCase() === constants.AMZ_CONTENT_SHA256_HEADER) {\n // return headers[headerName]\n // }\n // }\n\n if (headers[constants.AMZ_CONTENT_SHA256_HEADER]) {\n return headers[constants.AMZ_CONTENT_SHA256_HEADER]\n }\n\n if (body == undefined) {\n return constants.EMPTY_SHA256\n }\n\n if (typeof body === 'string' || isArrayBuffer(body)) {\n return crypto.sha256(body, 'hex').toLowerCase()\n }\n\n if (ArrayBuffer.isView(body)) {\n // If the request body is a typed array, we need to convert it to a buffer\n // so that we can calculate the checksum.\n return crypto.sha256((body as DataView).buffer, 'hex').toLowerCase()\n }\n\n return constants.UNSIGNED_PAYLOAD\n }\n\n /**\n * Moves a request's headers to its query parameters.\n *\n * The operation will ignore any amazon standard headers, prefixed\n * with 'X-Amz-'. It will also ignore any headers specified as unhoistable\n * by the options.\n *\n * The operation will delete the headers from the request.\n *\n * @param request {HTTPRequest} The request to move the headers from.\n * @param options\n * @returns {HTTPRequest} The request with the headers moved to the query parameters.\n */\n private moveHeadersToQuery(\n request: HTTPRequest,\n options: { unhoistableHeaders?: Set } = {}\n ): HTTPRequest & { query: QueryParameterBag } {\n const requestCopy = JSON.parse(JSON.stringify(request))\n const { headers, query = {} as QueryParameterBag } = requestCopy\n\n for (const name of Object.keys(headers)) {\n const lowerCaseName = name.toLowerCase()\n if (\n lowerCaseName.slice(0, 6) === 'x-amz-' &&\n !options.unhoistableHeaders?.has(lowerCaseName)\n ) {\n query[name] = headers[name]\n delete headers[name]\n }\n }\n\n return {\n ...requestCopy,\n headers,\n query,\n }\n }\n\n /**\n * Serializes a HTTPRequest's query parameter bag into a string.\n *\n * @param query {QueryParameterBag} The query parameters to serialize.\n * @param ignoreKeys {Set} The keys to ignore.\n * @returns {string} The serialized, and ready to use in a URL, query parameters.\n */\n private serializeQueryParameters(query: QueryParameterBag, ignoreKeys?: string[]): string {\n const keys: Array = []\n const serialized: Record = {}\n\n for (const key of Object.keys(query).sort()) {\n if (ignoreKeys?.includes(key.toLowerCase())) {\n continue\n }\n\n keys.push(key)\n const value = query[key]\n\n if (typeof value === 'string') {\n serialized[key] = `${escapeURI(key)}=${escapeURI(value)}`\n } else if (Array.isArray(value)) {\n serialized[key] = value\n .slice(0)\n .sort()\n .reduce(\n (encoded: Array, value: string) =>\n encoded.concat([`${escapeURI(key)}=${escapeURI(value)}`]),\n []\n )\n .join('&')\n }\n }\n\n return keys\n .map((key) => serialized[key])\n .filter((serialized) => serialized)\n .join('&')\n }\n}\n\n/**\n * Error indicating an Invalid signature has been sent to AWS services\n *\n * Inspired from AWS official error types, as\n * described in:\n * * https://aws.amazon.com/blogs/developer/service-error-handling-modular-aws-sdk-js/\n * * https://github.com/aws/aws-sdk-js/blob/master/lib/error.d.ts\n */\nexport class InvalidSignatureError extends AWSError {\n /**\n * Constructs an InvalidSignatureError\n *\n * @param {string} message - human readable error message\n */\n constructor(message: string, code?: string) {\n super(message, code)\n this.name = 'InvalidSignatureError'\n }\n}\n\nexport interface SignatureV4Options {\n /**\n * The name of the service to sign for.\n */\n service: string\n\n /**\n * The name of the region to sign for.\n */\n region: string\n\n /**\n * The credentials with which the request should be signed.\n */\n credentials: Credentials\n\n /**\n * Whether to uri-escape the request URI path as part of computing the\n * canonical request string. This is required for every AWS service, except\n * Amazon S3, as of late 2017.\n *\n * @default [true]\n */\n uriEscapePath?: boolean\n\n /**\n * Whether to calculate a checksum of the request body and include it as\n * either a request header (when signing) or as a query string parameter\n * (when presigning). This is required for AWS Glacier and Amazon S3 and optional for\n * every other AWS service as of late 2017.\n *\n * @default [true]\n */\n applyChecksum?: boolean\n}\n\nexport interface SignOptions {\n /**\n * The date and time to be used as signature metadata. This value should be\n * a Date object, a unix (epoch) timestamp, or a string that can be\n * understood by the JavaScript `Date` constructor.If not supplied, the\n * value returned by `new Date()` will be used.\n */\n signingDate?: Date\n\n /**\n * The service signing name. It will override the service name of the signer\n * in current invocation\n */\n signingService?: string\n\n /**\n * The region name to sign the request. It will override the signing region of the\n * signer in current invocation\n */\n signingRegion?: string\n}\n\nexport interface RequestSigningOptions extends SignOptions {\n /**\n * A set of strings whose members represents headers that cannot be signed.\n * All headers in the provided request will have their names converted to\n * lower case and then checked for existence in the unsignableHeaders set.\n */\n unsignableHeaders?: Set\n\n /**\n * A set of strings whose members represents headers that should be signed.\n * Any values passed here will override those provided via unsignableHeaders,\n * allowing them to be signed.\n *\n * All headers in the provided request will have their names converted to\n * lower case before signing.\n */\n signableHeaders?: Set\n}\n\nexport interface PresignOptions extends RequestSigningOptions {\n /**\n * The number of seconds before the presigned URL expires\n */\n expiresIn?: number\n\n /**\n * A set of strings whose representing headers that should not be hoisted\n * to presigned request's query string. If not supplied, the presigner\n * moves all the AWS-specific headers (starting with `x-amz-`) to the request\n * query string. If supplied, these headers remain in the presigned request's\n * header.\n * All headers in the provided request will have their names converted to\n * lower case and then checked for existence in the unhoistableHeaders set.\n */\n unhoistableHeaders?: Set\n}\n\nexport interface Credentials {\n /**\n * AWS access key ID\n */\n readonly accessKeyId: string\n\n /**\n * AWS secret access key\n */\n readonly secretAccessKey: string\n\n /**\n * A security or session token to use with these credentials. Usually\n * present for temporary credentials.\n */\n readonly sessionToken?: string\n}\n\nexport interface DateInfo {\n /**\n * ISO8601 formatted date string\n */\n longDate: string\n\n /**\n * String in the format YYYYMMDD\n */\n shortDate: string\n}\n\n/**\n * Escapes a URI following the AWS signature v4 escaping rules.\n *\n * @param URI {string} The URI to escape.\n * @returns {string} The escaped URI.\n */\nfunction escapeURI(URI: string): string {\n const hexEncode = (c: string): string => {\n return `%${c.charCodeAt(0).toString(16).toUpperCase()}`\n }\n\n return encodeURIComponent(URI).replace(/[!'()*]/g, hexEncode)\n}\n\n/**\n * formatDate formats a Date object into a ISO8601 formatted date string\n * and a string in the format YYYYMMDD.\n *\n * @param date {Date} The date to format.\n * @returns {DateInfo} The formatted date.\n */\nfunction formatDate(date: Date): DateInfo {\n const longDate = iso8601(date).replace(/[-:]/g, '')\n return {\n longDate,\n shortDate: longDate.slice(0, 8),\n }\n}\n\n/**\n * Formats a time into an ISO 8601 string.\n *\n * @see https://en.wikipedia.org/wiki/ISO_8601\n *\n * @param time {number | string | Date} The time to format.\n * @returns {string} The ISO 8601 formatted time.\n */\nfunction iso8601(time: number | string | Date): string {\n return toDate(time)\n .toISOString()\n .replace(/\\.\\d{3}Z$/, 'Z')\n}\n\n/**\n * Converts a time value into a Date object.\n *\n * @param time {number | string | Date} The time to convert.\n * @returns {Date} The resulting Date object.\n */\nfunction toDate(time: number | string | Date): Date {\n if (typeof time === 'number') {\n return new Date(time * 1000)\n }\n\n if (typeof time === 'string') {\n if (Number(time)) {\n return new Date(Number(time) * 1000)\n }\n\n return new Date(time)\n }\n\n return time\n}\n","import { Endpoint } from './endpoint'\n\n/**\n * Type representing HTTP schemes\n */\nexport type HTTPScheme = 'http' | 'https'\n\n/**\n * Type representing HTTP Methods\n *\n */\nexport type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'DELETE'\n\n/**\n * Type alias representing HTTP Headers\n */\nexport type HTTPHeaders = { [key: string]: string }\n\n/**\n * HTTPHeaderBag is a type alias representing HTTP Headers\n */\nexport type HTTPHeaderBag = Record\n\nexport function hasHeader(soughtHeader: string, headers: HTTPHeaderBag): boolean {\n soughtHeader = soughtHeader.toLowerCase()\n\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * QueryParameterBag is a type alias representing HTTP Query Parameters\n */\nexport type QueryParameterBag = Record>\n\n/**\n * HTTPRequest represents an HTTP request\n */\nexport interface HTTPRequest {\n /**\n * The HTTP method to use\n */\n method: HTTPMethod\n\n /**\n * Represents an AWS service endpoint, providing utilities for parsing and handling URL details.\n */\n endpoint: Endpoint\n\n /**\n * The path to the resource\n */\n path: string\n\n /**\n * The query parameters to include in the request\n */\n query?: QueryParameterBag\n\n /**\n * The headers to include in the request\n */\n headers: HTTPHeaderBag\n\n /**\n * The body of the request\n */\n body?: string | ArrayBuffer | null\n}\n\n/**\n * SignedHTTPRequest represents an HTTP request that has been signed\n * with an AWS signature. It is a superset of HTTPRequest adding\n * the following fields:\n * - url: the fully qualified URL of the request that can be used in a k6 http.request.\n */\nexport interface SignedHTTPRequest extends HTTPRequest {\n url: string\n}\n","/**\n *\n * @param value\n * @returns\n */\nexport function isArrayBuffer(value: unknown): value is ArrayBuffer {\n return (\n typeof ArrayBuffer === 'function' &&\n (value instanceof ArrayBuffer ||\n Object.prototype.toString.call(value) === '[object ArrayBuffer]')\n )\n}\n\nexport function toFormUrlEncoded(form: Record): string {\n return Object.keys(form)\n .reduce((params, key) => {\n const value = form[key]\n if (value !== undefined && value !== null) {\n params.push(`${encodeURIComponent(key)}=${encodeURIComponent(value)}`)\n }\n return params\n }, [] as string[])\n .join('&')\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"k6/http\");","import { parseHTML } from 'k6/html'\nimport http, { RefinedResponse, ResponseType } from 'k6/http'\n\nimport { AWSClient } from './client'\nimport { AWSConfig } from './config'\nimport { AWSError } from './error'\nimport { SignedHTTPRequest } from './http'\nimport { InvalidSignatureError, SignatureV4 } from './signature'\n\n/** Class allowing to interact with Amazon AWS's S3 service */\nexport class S3Client extends AWSClient {\n private readonly signature: SignatureV4\n\n /**\n * Create a S3Client\n *\n * @param {AWSConfig} awsConfig - configuration attributes to use when interacting with AWS' APIs\n */\n constructor(awsConfig: AWSConfig) {\n super(awsConfig, 's3')\n\n this.signature = new SignatureV4({\n service: this.serviceName,\n region: this.awsConfig.region,\n credentials: {\n accessKeyId: this.awsConfig.accessKeyId,\n secretAccessKey: this.awsConfig.secretAccessKey,\n sessionToken: this.awsConfig.sessionToken,\n },\n\n // S3 requires the URI path to be escaped\n uriEscapePath: false,\n\n // Signing S3 requests requires the payload to be hashed\n // and the checksum to be included in the request headers.\n applyChecksum: true,\n })\n }\n\n /**\n * Returns a list of all buckets owned by the authenticated sender of the request.\n * To use this operation, you must have the s3:ListAllMyBuckets permission.\n *\n * @return {Array.} buckets - An array of objects describing S3 buckets\n * with the following fields: name, and creationDate.\n * @throws {S3ServiceError}\n * @throws {InvalidSignatureError}\n */\n async listBuckets(): Promise> {\n const method = 'GET'\n\n const signedRequest: SignedHTTPRequest = this.signature.sign(\n {\n method: 'GET',\n endpoint: this.endpoint,\n path: '/',\n headers: {},\n },\n {}\n )\n\n const res = await http.asyncRequest(method, signedRequest.url, signedRequest.body || null, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, 'ListBuckets')\n\n const buckets: Array = []\n\n const doc = parseHTML(res.body as string)\n\n doc.find('Buckets')\n .children()\n .each((_, bucketDefinition) => {\n const bucket = {}\n\n bucketDefinition.children().forEach((child) => {\n switch (child.nodeName()) {\n case 'name':\n Object.assign(bucket, { name: child.textContent() })\n break\n case 'creationdate':\n Object.assign(bucket, {\n creationDate: Date.parse(child.textContent()),\n })\n }\n })\n\n buckets.push(bucket as S3Bucket)\n })\n\n return buckets\n }\n\n /**\n * Returns some or all (up to 1,000) of the objects in a bucket.\n *\n * @param {string} bucketName - Bucket name to list.\n * @param {string?} prefix='' - Limits the response to keys that begin with the specified prefix.\n * @return {Array.} - returns an array of objects describing S3 objects\n * with the following fields: key, lastModified, etag, size and storageClass.\n * @throws {S3ServiceError}\n * @throws {InvalidSignatureError}\n */\n async listObjects(bucketName: string, prefix?: string): Promise> {\n const method = 'GET'\n\n const signedRequest: SignedHTTPRequest = this.signature.sign(\n {\n method: method,\n endpoint: this.endpoint,\n path: encodeURI(`/${bucketName}/`),\n query: {\n 'list-type': '2',\n prefix: prefix || '',\n },\n headers: {},\n },\n {}\n )\n\n const res = await http.asyncRequest(method, signedRequest.url, signedRequest.body || null, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, 'ListObjectsV2')\n\n const objects: Array = []\n\n // Extract the objects definition from\n // the XML response\n parseHTML(res.body as string)\n .find('Contents')\n .each((_, objectDefinition) => {\n const obj = {}\n\n objectDefinition.children().forEach((child) => {\n switch (child.nodeName()) {\n case 'key':\n Object.assign(obj, { key: child.textContent() })\n break\n case 'lastmodified':\n Object.assign(obj, { lastModified: Date.parse(child.textContent()) })\n break\n case 'etag':\n Object.assign(obj, { etag: child.textContent() })\n break\n case 'size':\n Object.assign(obj, { size: parseInt(child.textContent()) })\n break\n case 'storageclass':\n Object.assign(obj, { storageClass: child.textContent() })\n }\n })\n\n objects.push(obj as S3Object)\n })\n\n return objects\n }\n /**\n * Retrieves an Object from Amazon S3.\n *\n * To use getObject, you must have `READ` access to the object.\n *\n * @param {string} bucketName - The bucket name containing the object.\n * @param {string} objectKey - Key of the object to get.\n * @return {S3Object} - returns the content of the fetched S3 Object.\n * @throws {S3ServiceError}\n * @throws {InvalidSignatureError}\n */\n async getObject(\n bucketName: string,\n objectKey: string,\n additionalHeaders: object = {}\n ): Promise {\n // Prepare request\n const method = 'GET'\n\n const signedRequest = this.signature.sign(\n {\n method: method,\n endpoint: this.endpoint,\n path: encodeURI(`/${bucketName}/${objectKey}`),\n headers: {\n ...additionalHeaders,\n },\n },\n {}\n )\n\n // If the Accept header is set to 'application/octet-stream', we want to\n // return the response as binary data.\n let responseType: ResponseType = 'text'\n if (\n 'Accept' in additionalHeaders &&\n additionalHeaders['Accept'] !== undefined &&\n additionalHeaders['Accept'] === 'application/octet-stream'\n ) {\n responseType = 'binary'\n }\n\n const res = await http.asyncRequest(method, signedRequest.url, null, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n responseType: responseType as ResponseType,\n })\n this.handleError(res, 'GetObject')\n\n return new S3Object(\n objectKey,\n Date.parse(res.headers['Last-Modified']),\n res.headers['ETag'],\n parseInt(res.headers['Content-Length']),\n\n // The X-Amz-Storage-Class header is only set if the storage class is\n // not the default 'STANDARD' one.\n (res.headers['X-Amz-Storage-Class'] ?? 'STANDARD') as StorageClass,\n\n res.body\n )\n }\n /**\n * Adds an object to a bucket.\n *\n * You must have WRITE permissions on a bucket to add an object to it.\n *\n * @param {string} bucketName - The bucket name containing the object.\n * @param {string} objectKey - Key of the object to put.\n * @param {string | ArrayBuffer} data - the content of the S3 Object to upload.\n * @throws {S3ServiceError}\n * @throws {InvalidSignatureError}\n */\n async putObject(\n bucketName: string,\n objectKey: string,\n data: string | ArrayBuffer,\n params?: PutObjectParams\n ): Promise {\n // Prepare request\n const method = 'PUT'\n\n const signedRequest = this.signature.sign(\n {\n method: method,\n endpoint: this.endpoint,\n path: encodeURI(`/${bucketName}/${objectKey}`),\n headers: {\n Host: this.endpoint.host,\n ...(params?.contentDisposition && {\n 'Content-Disposition': params.contentDisposition,\n }),\n ...(params?.contentEncoding && { 'Content-Encoding': params.contentEncoding }),\n ...(params?.contentLength && { 'Content-Length': params.contentLength }),\n ...(params?.contentMD5 && { 'Content-MD5': params.contentMD5 }),\n ...(params?.contentType && { 'Content-Type': params.contentType }),\n },\n body: data,\n },\n {}\n )\n\n const res = await http.asyncRequest(method, signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, 'PutObject')\n }\n\n /**\n * Removes the null version (if there is one) of an object and inserts a delete marker,\n * which becomes the latest version of the object.\n *\n * @param {string} bucketName - The bucket name containing the object.\n * @param {string} objectKey - Key of the object to delete.\n * @throws {S3ServiceError}\n * @throws {InvalidSignatureError}\n */\n async deleteObject(bucketName: string, objectKey: string): Promise {\n // Prepare request\n const method = 'DELETE'\n\n const signedRequest = this.signature.sign(\n {\n method: method,\n endpoint: this.endpoint,\n path: encodeURI(`/${bucketName}/${objectKey}`),\n headers: {},\n },\n {}\n )\n\n const res = await http.asyncRequest(method, signedRequest.url, signedRequest.body || null, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, 'DeleteObject')\n }\n\n /**\n * Copies an object from one bucket to another\n *\n * @param {string} sourceBucket - The source bucket name containing the object.\n * @param {string} sourceKey - Key of the source object to copy.\n * @param {string} destinationBucket - The destination bucket name containing the object.\n * @param {string} destinationKey - Key of the destination object.\n * @throws {S3ServiceError}\n * @throws {InvalidSignatureError}\n */\n async copyObject(\n sourceBucket: string,\n sourceKey: string,\n destinationBucket: string,\n destinationKey: string\n ): Promise {\n const method = 'PUT'\n\n const bucketEndpoint = this.endpoint.copy()\n bucketEndpoint.hostname = `${destinationBucket}.${this.endpoint.hostname}`\n\n const signedRequest = this.signature.sign(\n {\n method: method,\n endpoint: bucketEndpoint,\n path: encodeURI(`/${destinationKey}`),\n headers: {\n 'x-amz-copy-source': `${sourceBucket}/${sourceKey}`,\n },\n },\n {}\n )\n\n const res = await http.asyncRequest(method, signedRequest.url, signedRequest.body || null, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n\n this.handleError(res, 'CopyObject')\n }\n\n /**\n * Creates a new multipart upload for a given objectKey.\n * The uploadId returned can be used to upload parts to the object.\n *\n * @param {string} bucketName - The bucket name containing the object.\n * @param {string} objectKey - Key of the object to upload.\n * @return {S3MultipartUpload} - returns the uploadId of the newly created multipart upload.\n * @throws {S3ServiceError}\n * @throws {InvalidSignatureError}\n */\n async createMultipartUpload(bucketName: string, objectKey: string): Promise {\n const method = 'POST'\n\n const bucketEndpoint = this.endpoint.copy()\n bucketEndpoint.hostname = `${bucketName}.${this.endpoint.hostname}`\n\n const signedRequest = this.signature.sign(\n {\n method: method,\n endpoint: bucketEndpoint,\n path: encodeURI(`/${objectKey}`),\n headers: {},\n query: { uploads: '' },\n },\n {}\n )\n\n const res = await http.asyncRequest(method, signedRequest.url, signedRequest.body || null, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, 'CreateMultipartUpload')\n\n return new S3MultipartUpload(\n objectKey,\n parseHTML(res.body as string)\n .find('UploadId')\n .text()\n )\n }\n\n /**\n * Uploads a part in a multipart upload.\n * @param {string} bucketName - The bucket name containing the object.\n * @param {string} objectKey - Key of the object to upload.\n * @param {string} uploadId - The uploadId of the multipart upload.\n * @param {number} partNumber - The part number of the part to upload.\n * @param {string | ArrayBuffer} data - The content of the part to upload.\n * @return {S3Part} - returns the ETag of the uploaded part.\n * @throws {S3ServiceError}\n */\n async uploadPart(\n bucketName: string,\n objectKey: string,\n uploadId: string,\n partNumber: number,\n data: string | ArrayBuffer\n ): Promise {\n const method = 'PUT'\n\n const bucketEndpoint = this.endpoint.copy()\n bucketEndpoint.hostname = `${bucketName}.${this.endpoint.hostname}`\n\n const signedRequest = this.signature.sign(\n {\n method: method,\n endpoint: bucketEndpoint,\n path: encodeURI(`/${objectKey}`),\n headers: {},\n body: data,\n query: {\n partNumber: `${partNumber}`,\n uploadId: `${uploadId}`,\n },\n },\n {}\n )\n\n const res = await http.asyncRequest(method, signedRequest.url, signedRequest.body || null, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, 'UploadPart')\n\n return new S3Part(partNumber, res.headers['Etag'])\n }\n\n /**\n * Completes a multipart upload by assembling previously uploaded parts.\n *\n * @param {string} bucketName - The bucket name containing the object.\n * @param {string} objectKey - Key of the object to delete.\n * @param {string} uploadId - The uploadId of the multipart upload to complete.\n * @param {S3Part[]} parts - The parts to assemble.\n * @throws {S3ServiceError}\n * @throws {InvalidSignatureError}\n */\n async completeMultipartUpload(\n bucketName: string,\n objectKey: string,\n uploadId: string,\n parts: S3Part[]\n ) {\n // Prepare request\n const method = 'POST'\n const body = `${parts\n .map(\n (part) =>\n `${part.partNumber}${part.eTag}`\n )\n .join('')}`\n\n const bucketEndpoint = this.endpoint.copy()\n bucketEndpoint.hostname = `${bucketName}.${this.endpoint.hostname}`\n\n const signedRequest = this.signature.sign(\n {\n method: method,\n endpoint: bucketEndpoint,\n path: encodeURI(`/${objectKey}`),\n headers: {},\n body: body,\n query: {\n uploadId: `${uploadId}`,\n },\n },\n {}\n )\n\n const res = await http.asyncRequest(method, signedRequest.url, signedRequest.body || null, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, 'CompleteMultipartUpload')\n }\n\n /**\n * Aborts a multipart upload.\n *\n * @param {string} bucketName - The bucket name containing the object.\n * @param {string} objectKey - Key of the object to delete.\n * @param {string} uploadId - The uploadId of the multipart upload to abort.\n * @throws {S3ServiceError}\n * @throws {InvalidSignatureError}\n */\n async abortMultipartUpload(bucketName: string, objectKey: string, uploadId: string) {\n const method = 'DELETE'\n\n const bucketEndpoint = this.endpoint.copy()\n bucketEndpoint.hostname = `${bucketName}.${this.endpoint.hostname}`\n\n const signedRequest = this.signature.sign(\n {\n method: method,\n endpoint: bucketEndpoint,\n path: encodeURI(`/${objectKey}`),\n headers: {},\n query: {\n uploadId: `${uploadId}`,\n },\n },\n {}\n )\n\n const res = await http.asyncRequest(method, signedRequest.url, signedRequest.body || null, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, 'AbortMultipartUpload')\n }\n\n handleError(response: RefinedResponse, operation?: string): boolean {\n // As we are overriding the AWSClient method: call the parent class handleError method\n const errored = super.handleError(response);\n if (!errored) {\n return false;\n }\n\n // A 301 response is returned when the bucket is not found.\n // Generally meaning that either the bucket name is wrong or the\n // region is wrong.\n //\n // See: https://github.com/grafana/k6/issues/2474\n // See: https://github.com/golang/go/issues/49281\n const errorMessage: string = response.error\n if (response.status == 301 || (errorMessage && errorMessage.startsWith('301'))) {\n throw new S3ServiceError('Resource not found', 'ResourceNotFound', operation as S3Operation)\n }\n\n const awsError = AWSError.parseXML(response.body as string)\n switch (awsError.code) {\n case 'AuthorizationHeaderMalformed':\n throw new InvalidSignatureError(awsError.message, awsError.code)\n default:\n throw new S3ServiceError(awsError.message, awsError.code || 'unknown', operation as S3Operation)\n }\n }\n}\n\n/** Class representing a S3 Bucket */\nexport class S3Bucket {\n name: string\n creationDate: Date\n\n /**\n * Create an S3 Bucket\n *\n * @param {string} name - S3 bucket's name\n * @param {Date} creationDate - S3 bucket's creation date\n */\n constructor(name: string, creationDate: Date) {\n this.name = name\n this.creationDate = creationDate\n }\n}\n\n/** Class representing an S3 Object */\nexport class S3Object {\n key: string\n lastModified: number\n etag: string\n size: number\n storageClass: StorageClass\n data?: string | ArrayBuffer | null\n\n /**\n * Create an S3 Object\n *\n * @param {string} key - S3 object's key\n * @param {Date} lastModified - S3 object last modification date\n * @param {string} etag - S3 object's etag\n * @param {number} size - S3 object's size\n * @param {StorageClass} storageClass - S3 object's storage class\n * @param {string | ArrayBuffer | null} data=null - S3 Object's data\n */\n constructor(\n key: string,\n lastModified: number,\n etag: string,\n size: number,\n storageClass: StorageClass,\n data?: string | ArrayBuffer | null\n ) {\n this.key = key\n this.lastModified = lastModified\n this.etag = etag\n this.size = size\n this.storageClass = storageClass\n this.data = data\n }\n}\n\n/** Class representing a S3 Multipart Upload */\nexport class S3MultipartUpload {\n key: string\n uploadId: string\n\n /**\n * Create an S3 Multipart Upload\n * @param {string} key - S3 object's key\n * @param {string} uploadId - S3 multipart upload id\n */\n\n constructor(key: string, uploadId: string) {\n this.key = key\n this.uploadId = uploadId\n }\n}\n\n/** Class representing a S3 Part */\nexport class S3Part {\n partNumber: number\n eTag: string\n\n /**\n * Create an S3 Part\n * @param {number} partNumber - Part number\n * @param {string} eTag - Part's etag\n */\n\n constructor(partNumber: number, eTag: string) {\n this.partNumber = partNumber\n this.eTag = eTag\n }\n}\n\n/**\n * Error indicating a S3 operation failed\n *\n * Inspired from AWS official error types, as\n * described in:\n * * https://aws.amazon.com/blogs/developer/service-error-handling-modular-aws-sdk-js/\n * * https://github.com/aws/aws-sdk-js/blob/master/lib/error.d.ts\n */\nexport class S3ServiceError extends AWSError {\n operation: string\n\n /**\n * Constructs a S3ServiceError\n *\n * @param {string} message - human readable error message\n * @param {string} code - A unique short code representing the error that was emitted\n * @param {string} operation - Name of the failed Operation\n */\n constructor(message: string, code: string, operation: string) {\n super(message, code)\n this.name = 'S3ServiceError'\n this.operation = operation\n }\n}\n\n/**\n * S3Operation describes possible values for S3 API operations,\n * as defined by AWS APIs.\n */\ntype S3Operation =\n | 'ListBuckets'\n | 'ListObjectsV2'\n | 'GetObject'\n | 'PutObject'\n | 'DeleteObject'\n | 'CopyObject'\n | 'CreateMultipartUpload'\n | 'CompleteMultipartUpload'\n | 'UploadPart'\n | 'AbortMultipartUpload'\n\n/**\n * Describes the class of storage used to store a S3 object.\n */\ntype StorageClass =\n | 'STANDARD'\n | 'REDUCED_REDUNDANCY'\n | 'GLACIER'\n | 'STANDARD_IA'\n | 'INTELLIGENT_TIERING'\n | 'DEEP_ARCHIVE'\n | 'OUTPOSTS'\n | 'GLACIER_IR'\n | undefined\n\n/**\n * PutObjectParams describes the parameters that can be passed to the PutObject operation.\n */\nexport interface PutObjectParams {\n /**\n * Specifies presentational information for the object.\n *\n * For more information, see https://www.rfc-editor.org/rfc/rfc6266#section-4.\n */\n contentDisposition?: string\n\n /**\n * Specifies what content encodings have been applied to the object and thus\n * what decoding mechanisms must be applied to obtain the media-type referenced\n * by the ContentType option.\n *\n * For more information, see https://www.rfc-editor.org/rfc/rfc9110.html#field.content-encoding.\n */\n contentEncoding?: string\n\n /**\n * Size of the body in bytes. This parameter is useful when the size of the body cannot be\n * determined automatically.\n *\n * For more information, see https://www.rfc-editor.org/rfc/rfc9110.html#name-content-length.\n */\n contentLength?: string\n\n /**\n * The base64-encoded 128-bit MD5 digest of the message (without the headers) according to RFC 1864.\n * This header can be used as a message integrity check to verify that the data is the same data that\n * was originally sent.\n *\n * Although it is optional, we recommend using the Content-MD5 mechanism as an end-to-end integrity\n * check.\n */\n contentMD5?: string\n\n /**\n * A standard MIME type describing the format of the contents.\n *\n * For more information, see https://www.rfc-editor.org/rfc/rfc9110.html#name-content-type.\n */\n contentType?: string\n}\n","import { RefinedResponse, ResponseType, Params } from 'k6/http'\n\nimport { AWSConfig } from './config'\nimport { Endpoint } from './endpoint'\nimport { HTTPHeaders } from './http'\nimport {\n GeneralErrorKind,\n DNSErrorKind,\n TCPErrorKind,\n TLSErrorKind,\n HTTP2ErrorKind,\n GeneralError,\n DNSError,\n TCPError,\n TLSError,\n HTTP2Error,\n} from './error'\n\n/**\n * Class allowing to build requests targeting AWS APIs\n *\n * This class is meant to be used as a base class for specific\n * services clients. See S3Client or SecretsManagerClient for\n * usage examples.\n */\nexport class AWSClient {\n readonly awsConfig: AWSConfig\n readonly serviceName: string\n\n // Because jslib-aws is mostly used as a way to setup or feed k6 tests, and\n // we want the jslib-aws to be able to disregard k6's discardResponseBodies: meaning\n // that for instance, even when setting discardResponseBodies to true in the k6 options, using\n // s3.getObject still receives the underlying response body and returns data to the user.\n //\n // To achieve this, we set the responseType to 'text' in the baseRequestParams, as it\n // will lead the http module to ignore the discardResponseBodies option.\n //\n // AWS Client classes can override this value if they want to receive the response body\n // as a different type ('binary' for instance, e.g. S3Client.getObject).\n //\n // See #45: https://github.com/grafana/k6-jslib-aws/issues/45\n readonly baseRequestParams: Params = {\n responseType: 'text',\n }\n\n private _endpoint?: Endpoint\n\n /**\n * @param {AWSConfig} awsConfig - configuration attributes to use when interacting with AWS' APIs\n * @param {string} serviceName - name of the service to target.\n * @param {URIEncodingConfig} URIencodingConfig - configures how requests URIs should be encoded.\n */\n constructor(awsConfig: AWSConfig, serviceName: string) {\n this.awsConfig = awsConfig\n this.serviceName = serviceName\n\n // If an endpoint is provided in the config, set it\n // to ensure the default endpoint is not used.\n if (awsConfig.endpoint != undefined) {\n this._endpoint = awsConfig.endpoint\n }\n }\n\n /**\n * Represents the endpoint URL of the AWS service.\n *\n * If no custom endpoint is set, a default endpoint will be constructed\n * using the service name and region provided in the AWS config.\n *\n * @type {Endpoint}\n * @public\n */\n public get endpoint() {\n if (this._endpoint == undefined) {\n this._endpoint = new Endpoint(\n `https://${this.serviceName}.${this.awsConfig.region}.amazonaws.com`\n )\n }\n return this._endpoint\n }\n\n /**\n * Updates the endpoint URL of the AWS service.\n *\n * This can be used to override the default AWS service endpoint or set a custom endpoint.\n *\n * @param {Endpoint} endpoint - The new endpoint to set for the AWS service.\n * @public\n */\n public set endpoint(endpoint: Endpoint) {\n this._endpoint = endpoint\n }\n\n /**\n * Handles the k6 http response potential errors produced when making a\n * request to an AWS service.\n *\n * Importantly, this method only handles errors that emerge from the k6 http client itself, and\n * won't handle AWS specific errors. To handle AWS specific errors, client classes are\n * expected to implement their own error handling logic by overriding this method.\n *\n * @param response {RefinedResponse} the response received by the k6 http client\n * @param operation {string | undefined } the name of the operation that was attempted when the error occurred\n * @param {boolean} returns true if an error was handled, false otherwise\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n protected handleError(response: RefinedResponse, operation?: string): boolean {\n const status: number = response.status\n const errorCode: number = response.error_code\n const errorMessage: string = response.error\n\n // We consider codes 200-299 as success.\n //\n // We do not consider 3xx as success as some services such as S3 can use\n // 301 to indicate a bucket not found\n if (status >= 200 && status < 300 && errorMessage == '' && errorCode === 0) {\n return false\n }\n\n switch (errorCode) {\n case GeneralErrorKind.GenericError:\n case GeneralErrorKind.NonTCPNetworkError:\n case GeneralErrorKind.InvalidURL:\n case GeneralErrorKind.HTTPRequestTimeout:\n throw new GeneralError(errorCode);\n case DNSErrorKind.GenericDNSError:\n case DNSErrorKind.NoIPFound:\n case DNSErrorKind.BlacklistedIP:\n case DNSErrorKind.BlacklistedHostname:\n throw new DNSError(errorCode);\n case TCPErrorKind.GenericTCPError:\n case TCPErrorKind.BrokenPipeOnWrite:\n case TCPErrorKind.UnknownTCPError:\n case TCPErrorKind.GeneralTCPDialError:\n case TCPErrorKind.DialTimeoutError:\n case TCPErrorKind.DialConnectionRefused:\n case TCPErrorKind.DialUnknownError:\n case TCPErrorKind.ResetByPeer:\n throw new TCPError(errorCode);\n case TLSErrorKind.GeneralTLSError:\n case TLSErrorKind.UnknownAuthority:\n case TLSErrorKind.CertificateHostnameMismatch:\n throw new TLSError(errorCode);\n case HTTP2ErrorKind.GenericHTTP2Error:\n case HTTP2ErrorKind.GeneralHTTP2GoAwayError:\n throw new HTTP2Error(errorCode);\n }\n\n return true\n }\n}\n\n/**\n * Type alias representing the result of an AWSClient.buildRequest call\n */\nexport interface AWSRequest {\n readonly url: string\n readonly headers: HTTPHeaders\n}\n"],"names":["__webpack_require__","module","getter","__esModule","d","a","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","Endpoint","endpoint","_classCallCheck","_defineProperty","completeUrl","startsWith","concat","DEFAULT_PROTOCOL","protocolMatch","match","hostnameWithPort","_slicedToArray","replace","split","this","_protocol","slice","_hostname","_port","parseInt","undefined","href","set","_value$split2","hostname","port","protocol","host","AWSConfig","options","region","InvalidAWSConfigError","accessKeyId","length","secretAccessKey","sessionToken","_createClass","__ENV","AWS_REGION","AWS_ACCESS_KEY_ID","AWS_SECRET_ACCESS_KEY","AWS_SESSION_TOKEN","_Error","message","_callSuper","_inherits","_wrapNativeSuper","Error","require","AWSError","code","_this","name","xmlDocument","doc","parseHTML","find","text","response","headers","error","json","Message","__type","parseXML","body","NetworkError","_Error2","_this2","ErrorMessages","GeneralError","_NetworkError2","DNSError","_NetworkError3","TCPError","_NetworkError4","TLSError","_NetworkError5","HTTP2Error","_NetworkError6","GeneralErrorKind","DNSErrorKind","TCPErrorKind","TLSErrorKind","HTTP2ErrorKind","_ErrorMessages","GenericError","NonTCPNetworkError","InvalidURL","HTTPRequestTimeout","GenericDNSError","NoIPFound","BlacklistedIP","BlacklistedHostname","GenericTCPError","BrokenPipeOnWrite","UnknownTCPError","GeneralTCPDialError","DialTimeoutError","DialConnectionRefused","DialUnknownError","ResetByPeer","GeneralTLSError","UnknownAuthority","CertificateHostnameMismatch","GenericHTTP2Error","GeneralHTTP2GoAwayError","AMZ_DATE_QUERY_PARAM","AMZ_SIGNATURE_QUERY_PARAM","AMZ_TOKEN_QUERY_PARAM","AMZ_CONTENT_SHA256_HEADER","AMZ_DATE_HEADER","toLowerCase","AMZ_SIGNATURE_HEADER","AMZ_TOKEN_HEADER","AUTHORIZATION_HEADER","GENERATED_HEADERS","HOST_HEADER","ALWAYS_UNSIGNABLE_HEADERS","authorization","connection","expect","from","pragma","referer","te","trailer","upgrade","KEY_TYPE_IDENTIFIER","SIGNING_ALGORITHM_IDENTIFIER","SignatureV4","_ref","service","credentials","uriEscapePath","applyChecksum","request","arguments","finalOptions","_objectSpread","signingDate","Date","unsignableHeaders","Set","signableHeaders","_formatDate","formatDate","longDate","shortDate","signingService","signingRegion","scope","constants","_i","_Object$keys","keys","headerName","indexOf","ArrayBuffer","isView","buffer","payloadHash","computePayloadHash","soughtHeader","hasHeader","canonicalHeaders","computeCanonicalHeaders","signature","calculateSignature","deriveSigningKey","createCanonicalRequest","sort","join","url","path","endsWith","query","serializeQueryParameters","originalRequest","_options$signingDate","_options$expiresIn","expiresIn","unhoistableHeaders","_formatDate2","InvalidSignatureError","moveHeadersToQuery","toString","signingKey","canonicalRequest","_url","sortedHeaders","sortedCanonicalHeaders","map","signedHeaders","method","computeCanonicalURI","computeCanonicalQuerystring","credentialScope","hashedCanonicalRequest","crypto","stringToSign","createStringToSign","kSecret","kDate","kRegion","kService","_ref2","_step","normalizedURISegments","_iterator","_createForOfIteratorHelper","s","n","done","URISegment","pop","push","err","e","f","leading","URI","trailing","normalizedURI","encodeURIComponent","_ref3","_step2","_ref3$query","serialized","_loop","escapeURI","Array","isArray","reduce","encoded","_iterator2","filter","_ref4","_step3","_iterator3","canonicalHeaderName","has","trim","_ref5","requestCopy","JSON","parse","stringify","_requestCopy$query","_i2","_Object$keys2","_options$unhoistableH","lowerCaseName","ignoreKeys","_step4","_loop2","includes","_iterator4","_AWSError","c","charCodeAt","toUpperCase","date","time","Number","toDate","toISOString","_regeneratorRuntime","t","r","i","iterator","asyncIterator","u","define","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","h","l","y","GeneratorFunction","GeneratorFunctionPrototype","p","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","reverse","prev","charAt","stop","rval","handle","complete","finish","delegateYield","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptor","apply","getOwnPropertyDescriptors","defineProperties","asyncGeneratorStep","_asyncToGenerator","_next","_throw","_defineProperties","_toPropertyKey","_getPrototypeOf","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","Boolean","valueOf","_get","bind","_superPropBase","_setPrototypeOf","toPrimitive","String","_toPrimitive","S3Client","_AWSClient","awsConfig","serviceName","_listBuckets","_callee","signedRequest","res","buckets","_context","sign","http","baseRequestParams","handleError","children","each","_","bucketDefinition","bucket","child","nodeName","assign","textContent","creationDate","_listObjects","_callee2","bucketName","prefix","objects","_context2","encodeURI","objectDefinition","lastModified","etag","size","storageClass","_x","_x2","_getObject","_callee3","objectKey","_res$headers$XAmzSt","additionalHeaders","responseType","_args3","_context3","S3Object","_x3","_x4","_putObject","_callee4","data","params","_context4","Host","contentDisposition","contentEncoding","contentLength","contentMD5","contentType","_x5","_x6","_x7","_x8","_deleteObject","_callee5","_context5","_x9","_x10","_copyObject","_callee6","sourceBucket","sourceKey","destinationBucket","destinationKey","bucketEndpoint","_context6","copy","_x11","_x12","_x13","_x14","_createMultipartUpload","_callee7","_context7","uploads","S3MultipartUpload","_x15","_x16","_uploadPart","_callee8","uploadId","partNumber","_context8","S3Part","_x17","_x18","_x19","_x20","_x21","_completeMultipartUpload","_callee9","parts","_context9","part","eTag","_x22","_x23","_x24","_x25","_abortMultipartUpload","_callee10","_context10","_x26","_x27","_x28","operation","errorMessage","status","S3ServiceError","awsError","AWSClient","_endpoint","errorCode","error_code","S3Bucket"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/aws/0.13.0/secrets-manager.js b/lib/aws/0.13.0/secrets-manager.js new file mode 100644 index 0000000..5ef1ad9 --- /dev/null +++ b/lib/aws/0.13.0/secrets-manager.js @@ -0,0 +1,3 @@ +/*! For license information please see secrets-manager.js.LICENSE.txt */ +(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function n(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,c=[],s=!0,u=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=i.call(r)).done)&&(c.push(n.value),c.length!==t);s=!0);}catch(e){u=!0,o=e}finally{try{if(!s&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(u)throw o}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return o(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?o(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rw,AWSError:()=>I,DNSError:()=>q,GeneralError:()=>G,HTTP2Error:()=>K,InvalidAWSConfigError:()=>S,InvalidSignatureError:()=>Te,NetworkError:()=>H,Secret:()=>et,SecretsManagerClient:()=>Ze,SecretsManagerServiceError:()=>tt,TCPError:()=>B,TLSError:()=>U});var s=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),a(this,"_protocol",void 0),a(this,"_hostname",void 0),a(this,"_port",void 0);var r=!t.startsWith("http://")&&!t.startsWith("https://")?"".concat(e.DEFAULT_PROTOCOL,"://").concat(t):t,o=r.match(/^https?:/),i=n(r.replace(/^https?:\/\//,"").split("/"),1)[0];this._protocol=o?o[0].slice(0,-1):e.DEFAULT_PROTOCOL,this._hostname=i.split(":")[0],this._port=i.split(":")[1]?parseInt(i.split(":")[1]):void 0}return t=e,(r=[{key:"copy",value:function(){return new e(this.href)}},{key:"host",get:function(){return this._port?"".concat(this._hostname,":").concat(this._port):this._hostname},set:function(e){var t=n(e.split(":"),2),r=t[0],o=t[1];this._hostname=r,this._port=o?parseInt(o):void 0}},{key:"hostname",get:function(){return this._hostname},set:function(e){this._hostname=e}},{key:"href",get:function(){return"".concat(this.protocol,"://").concat(this.host)},set:function(t){var r=t.match(/^https?:/),o=n(t.replace(/^https?:\/\//,"").split("/"),1)[0];this._protocol=r?r[0].slice(0,-1):e.DEFAULT_PROTOCOL,this._hostname=o.split(":")[0],this._port=o.split(":")[1]?parseInt(o.split(":")[1]):void 0}},{key:"port",get:function(){return this._port},set:function(e){this._port=e}},{key:"protocol",get:function(){return this._protocol},set:function(e){this._protocol=e}}])&&i(t.prototype,r),o&&i(t,o),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,r,o}();function u(e){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}function l(e,t,r){return t=y(t),function(e,t){if(t&&("object"==u(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,h()?Reflect.construct(t,r||[],y(e).constructor):t.apply(e,r))}function f(e){var t="function"==typeof Map?new Map:void 0;return f=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return function(e,t,r){if(h())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,t);var o=new(e.bind.apply(e,n));return r&&p(o,r.prototype),o}(e,arguments,y(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),p(r,e)},f(e)}function h(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(h=function(){return!!e})()}function p(e,t){return p=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},p(e,t)}function y(e){return y=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},y(e)}function d(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function v(e,t){for(var r=0;r128)throw new S("invalid AWS access key ID; reason: size should be between 16 and 128 characters, got ".concat(t.accessKeyId.length));if(!t.secretAccessKey||""===t.secretAccessKey)throw new S("invalid AWS secret access key; reason: expected a non empty string, got `".concat(t.secretAccessKey,"`"));this.region=t.region,this.accessKeyId=t.accessKeyId,this.secretAccessKey=t.secretAccessKey,void 0!==t.sessionToken&&(this.sessionToken=t.sessionToken),void 0!==t.endpoint&&("string"==typeof t.endpoint?this.endpoint=new s(t.endpoint):this.endpoint=t.endpoint)}return b(e,null,[{key:"fromEnvironment",value:function(t){return new e({region:__ENV.AWS_REGION,accessKeyId:__ENV.AWS_ACCESS_KEY_ID,secretAccessKey:__ENV.AWS_SECRET_ACCESS_KEY,sessionToken:__ENV.AWS_SESSION_TOKEN,endpoint:null==t?void 0:t.endpoint})}}])}(),S=function(e){function t(e){return d(this,t),l(this,t,[e])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&p(e,t)}(t,e),b(t)}(f(Error));const O=require("k6/html");var P;function E(e){return E="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},E(e)}function j(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function T(e,t){for(var r=0;r=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){c=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(c)throw i}}}}function be(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r1&&void 0!==arguments[1]?arguments[1]:{},r=ge(ge({},{signingDate:new Date,unsignableHeaders:new Set,signableHeaders:new Set}),t),n=_e(r.signingDate),o=n.longDate,i=n.shortDate,a=r.signingService||this.service,c=r.signingRegion||this.region,s="".concat(i,"/").concat(c,"/").concat(a,"/").concat(ue);e.headers[ce]||(e.headers[ce]=e.endpoint.hostname);for(var u=0,l=Object.keys(e.headers);u-1&&delete e.headers[f]}e.headers[te]=o,this.credentials.sessionToken&&(e.headers[oe]=this.credentials.sessionToken),ArrayBuffer.isView(e.body)&&(e.body=e.body.buffer),e.body||(e.body="");var h=this.computePayloadHash(e);!function(e,t){e=e.toLowerCase();for(var r=0,n=Object.keys(t);r1&&void 0!==arguments[1]?arguments[1]:{},r=t.signingDate,n=void 0===r?new Date:r,o=t.expiresIn,i=void 0===o?3600:o,a=t.unsignableHeaders,c=t.unhoistableHeaders,s=t.signableHeaders,u=t.signingRegion,l=t.signingService,f=_e(n),h=f.longDate,p=f.shortDate,y=u||this.region,d=l||this.service;if(i>604800)throw new Te("Signature version 4 presigned URLs can't be valid for more than 7 days");var v="".concat(p,"/").concat(y,"/").concat(d,"/").concat(ue),b=this.moveHeadersToQuery(e,{unhoistableHeaders:c});b.headers[ce]||(b.headers[ce]=e.endpoint.hostname),this.credentials.sessionToken&&(b.query[Z]=this.credentials.sessionToken),b.query["X-Amz-Algorithm"]=le,b.query["X-Amz-Credential"]="".concat(this.credentials.accessKeyId,"/").concat(v),b.query[Y]=h,b.query["X-Amz-Expires"]=i.toString(10);var m=this.computeCanonicalHeaders(b,a,s);b.query["X-Amz-SignedHeaders"]=Object.keys(m).sort().join(";");var g=this.deriveSigningKey(this.credentials,d,y,p),w=this.computePayloadHash(e),S=this.createCanonicalRequest(b,m,w);b.query[$]=this.calculateSignature(h,v,g,S);var O,P=e.endpoint.href;b.path&&(P=null!==(O=P)&&void 0!==O&&O.endsWith("/")?P:P+"/",P+=b.path);return b.query&&(P+="?".concat(this.serializeQueryParameters(b.query))),ge({url:P},b)}},{key:"createCanonicalRequest",value:function(e,t,r){var n=Object.keys(t).sort(),o=n.map((function(e){return"".concat(e,":").concat(t[e])})).join("\n"),i=n.join(";");return"".concat(e.method,"\n")+"".concat(this.computeCanonicalURI(e),"\n")+"".concat(this.computeCanonicalQuerystring(e),"\n")+"".concat(o,"\n\n")+"".concat(i,"\n")+"".concat(r)}},{key:"createStringToSign",value:function(e,t,r){var n=Q().sha256(r,"hex");return"".concat(le,"\n")+"".concat(e,"\n")+"".concat(t,"\n")+"".concat(n)}},{key:"calculateSignature",value:function(e,t,r,n){var o=this.createStringToSign(e,t,n);return Q().hmac("sha256",r,o,"hex")}},{key:"deriveSigningKey",value:function(e,t,r,n){var o=e.secretAccessKey,i=Q().hmac("sha256","AWS4"+o,n,"binary"),a=Q().hmac("sha256",i,r,"binary"),c=Q().hmac("sha256",a,t,"binary");return Q().hmac("sha256",c,"aws4_request","binary")}},{key:"computeCanonicalURI",value:function(e){var t=e.path;if(this.uriEscapePath){var r,n=[],o=ve(t.split("/"));try{for(o.s();!(r=o.n()).done;){var i=r.value;0!==(null==i?void 0:i.length)&&("."!==i&&(".."===i?n.pop():n.push(i)))}}catch(e){o.e(e)}finally{o.f()}var a=null!=t&&t.startsWith("/")?"/":"",c=n.join("/"),s=n.length>0&&null!=t&&t.endsWith("/")?"/":"",u="".concat(a).concat(c).concat(s);return encodeURIComponent(u).replace(/%2F/g,"/")}return t}},{key:"computeCanonicalQuerystring",value:function(e){var t,r=e.query,n=void 0===r?{}:r,o=[],i={},a=function(e){if(e.toLowerCase()===re)return 1;o.push(e);var t=n[e];"string"==typeof t?i[e]="".concat(ke(e),"=").concat(ke(t)):Array.isArray(t)&&(i[e]=t.slice(0).sort().reduce((function(t,r){return t.concat(["".concat(ke(e),"=").concat(ke(r))])}),[]).join("&"))},c=ve(Object.keys(n).sort());try{for(c.s();!(t=c.n()).done;){a(t.value)}}catch(e){c.e(e)}finally{c.f()}return o.map((function(e){return i[e]})).filter((function(e){return e})).join("&")}},{key:"computeCanonicalHeaders",value:function(e,t,r){var n,o=e.headers,i={},a=ve(Object.keys(o).sort());try{for(a.s();!(n=a.n()).done;){var c=n.value;if(null!=o[c]){var s=c.toLowerCase();(s in se||null!=t&&t.has(s))&&(!r||r&&!r.has(s))||"string"==typeof o[c]&&(i[s]=o[c]=o[c].trim().replace(/\s+/g," "))}}}catch(e){a.e(e)}finally{a.f()}return i}},{key:"computePayloadHash",value:function(e){var t,r=e.headers,n=e.body;return r[ee]?r[ee]:null==n?"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855":"string"==typeof n||(t=n,"function"==typeof ArrayBuffer&&(t instanceof ArrayBuffer||"[object ArrayBuffer]"===Object.prototype.toString.call(t)))?Q().sha256(n,"hex").toLowerCase():ArrayBuffer.isView(n)?Q().sha256(n.buffer,"hex").toLowerCase():"UNSIGNED-PAYLOAD"}},{key:"moveHeadersToQuery",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=JSON.parse(JSON.stringify(e)),n=r.headers,o=r.query,i=void 0===o?{}:o,a=0,c=Object.keys(n);a=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var s=n.call(a,"catchLoc"),u=n.call(a,"finallyLoc");if(s&&u){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),C(r),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;C(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:D(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),v}},t}function Ge(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function qe(e){for(var t=1;t=1400&&s<=1499){var l=u.Message||u.message||u.__type;if("InvalidSignatureException"===u.__type)throw new Te(l,u.__type);throw new tt(l,u.__type,r)}if(1500===s)throw new tt("An error occured on the server side","InternalServiceError",r);return!0}}]);var r,n,o,i,a}(function(){return e=function e(t,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),Re(this,"awsConfig",void 0),Re(this,"serviceName",void 0),Re(this,"baseRequestParams",{responseType:"text"}),Re(this,"_endpoint",void 0),this.awsConfig=t,this.serviceName=r,null!=t.endpoint&&(this._endpoint=t.endpoint)},(t=[{key:"endpoint",get:function(){return null==this._endpoint&&(this._endpoint=new s("https://".concat(this.serviceName,".").concat(this.awsConfig.region,".amazonaws.com"))),this._endpoint},set:function(e){this._endpoint=e}},{key:"handleError",value:function(e,t){var r=e.status,n=e.error_code,o=e.error;if(r>=200&&r<300&&""==o&&0===n)return!1;switch(n){case W.GenericError:case W.NonTCPNetworkError:case W.InvalidURL:case W.HTTPRequestTimeout:throw new G(n);case M.GenericDNSError:case M.NoIPFound:case M.BlacklistedIP:case M.BlacklistedHostname:throw new q(n);case z.GenericTCPError:case z.BrokenPipeOnWrite:case z.UnknownTCPError:case z.GeneralTCPDialError:case z.DialTimeoutError:case z.DialConnectionRefused:case z.DialUnknownError:case z.ResetByPeer:throw new B(n);case F.GeneralTLSError:case F.UnknownAuthority:case F.CertificateHostnameMismatch:throw new U(n);case V.GenericHTTP2Error:case V.GeneralHTTP2GoAwayError:throw new K(n)}return!0}}])&&Ne(e.prototype,t),r&&Ne(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}()),et=function(){function e(t,r,n,o,i,a){var c=arguments.length>6&&void 0!==arguments[6]?arguments[6]:[];Ke(this,e),Ye(this,"name",void 0),Ye(this,"arn",void 0),Ye(this,"secret",void 0),Ye(this,"createdDate",void 0),Ye(this,"lastAccessedDate",void 0),Ye(this,"lastChangedDate",void 0),Ye(this,"tags",void 0),this.name=t,this.arn=r,this.secret=n,this.createdDate=o,this.lastAccessedDate=i,this.lastChangedDate=a,this.tags=c}return Me(e,null,[{key:"fromJSON",value:function(t){return new e(t.Name,t.ARN,t.SecretString,t.CreatedDate,t.LastAccessedDate,t.LastChangedDate,t.Tags)}}])}(),tt=function(e){function t(e,r,n){var o;return Ke(this,t),Ye(o=ze(this,t,[e,r]),"operation",void 0),o.name="SecretsManagerServiceError",o.operation=n,o}return Xe(t,e),Me(t)}(I),rt=function(e){return e.ListSecrets="ListSecrets",e.GetSecretValue="GetSecretValue",e.CreateSecret="CreateSecret",e.PutSecretValue="PutSecretValue",e.DeleteSecret="DeleteSecret",e}(rt||{}),nt=exports;for(var ot in t)nt[ot]=t[ot];t.__esModule&&Object.defineProperty(nt,"__esModule",{value:!0})})(); +//# sourceMappingURL=secrets-manager.js.map \ No newline at end of file diff --git a/lib/aws/0.13.0/secrets-manager.js.LICENSE.txt b/lib/aws/0.13.0/secrets-manager.js.LICENSE.txt new file mode 100644 index 0000000..ae386fb --- /dev/null +++ b/lib/aws/0.13.0/secrets-manager.js.LICENSE.txt @@ -0,0 +1 @@ +/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ diff --git a/lib/aws/0.13.0/secrets-manager.js.map b/lib/aws/0.13.0/secrets-manager.js.map new file mode 100644 index 0000000..9bb7415 --- /dev/null +++ b/lib/aws/0.13.0/secrets-manager.js.map @@ -0,0 +1 @@ +{"version":3,"file":"secrets-manager.js","mappings":"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","sources":["webpack://k6-jslib-aws/webpack/bootstrap","webpack://k6-jslib-aws/webpack/runtime/compat get default export","webpack://k6-jslib-aws/webpack/runtime/define property getters","webpack://k6-jslib-aws/webpack/runtime/hasOwnProperty shorthand","webpack://k6-jslib-aws/webpack/runtime/make namespace object","webpack://k6-jslib-aws/./src/internal/endpoint.ts","webpack://k6-jslib-aws/./src/internal/config.ts","webpack://k6-jslib-aws/external commonjs \"k6/html\"","webpack://k6-jslib-aws/./src/internal/error.ts","webpack://k6-jslib-aws/external commonjs \"k6/crypto\"","webpack://k6-jslib-aws/./src/internal/constants.ts","webpack://k6-jslib-aws/./src/internal/signature.ts","webpack://k6-jslib-aws/./src/internal/http.ts","webpack://k6-jslib-aws/./src/internal/utils.ts","webpack://k6-jslib-aws/external commonjs \"k6/http\"","webpack://k6-jslib-aws/external commonjs \"https://jslib.k6.io/k6-utils/1.4.0/index.js\"","webpack://k6-jslib-aws/./src/internal/secrets-manager.ts","webpack://k6-jslib-aws/./src/internal/client.ts"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * Represents an AWS service endpoint, providing utilities for parsing and handling URL details.\n */\nexport class Endpoint {\n private _protocol: string\n private _hostname: string\n private _port?: number\n\n // Default protocol, this can be globally changed as per application requirements\n private static readonly DEFAULT_PROTOCOL = 'https' // Set this as per AWS.config\n\n /**\n // * Constructs a new Endpoint instance.\n *\n * @param {string} endpoint - The URL to construct an endpoint from. If the URL omits a protocol, the default protocol will be used.\n */\n constructor(endpoint: string) {\n const isDefaultProtocol =\n !endpoint.startsWith('http://') && !endpoint.startsWith('https://')\n const completeUrl = isDefaultProtocol\n ? `${Endpoint.DEFAULT_PROTOCOL}://${endpoint}`\n : endpoint\n\n const protocolMatch = completeUrl.match(/^https?:/)\n const hostAndPath = completeUrl.replace(/^https?:\\/\\//, '')\n const [hostnameWithPort] = hostAndPath.split('/')\n\n this._protocol = protocolMatch ? protocolMatch[0].slice(0, -1) : Endpoint.DEFAULT_PROTOCOL\n this._hostname = hostnameWithPort.split(':')[0]\n this._port = hostnameWithPort.split(':')[1]\n ? parseInt(hostnameWithPort.split(':')[1])\n : undefined\n }\n\n /**\n * Creates a new Endpoint instance that is a copy of the current one.\n *\n * @returns {Endpoint} The copied Endpoint.\n */\n public copy(): Endpoint {\n return new Endpoint(this.href)\n }\n\n /**\n * Gets the host portion of the endpoint including the port.\n *\n * @returns {string} The host portion of the endpoint including the port.\n */\n public get host(): string {\n return this._port ? `${this._hostname}:${this._port}` : this._hostname\n }\n\n /**\n * Sets the host portion of the endpoint including the port.\n *\n * @param {string} value - The value to set for the host.\n */\n public set host(value: string) {\n const [hostname, port] = value.split(':')\n this._hostname = hostname\n this._port = port ? parseInt(port) : undefined\n }\n\n /**\n * Gets the host portion of the endpoint without the port.\n *\n * @returns {string} The host portion of the endpoint.\n */\n public get hostname(): string {\n return this._hostname\n }\n\n /**\n * Sets the host portion of the endpoint without the port.\n *\n * @param {string} value - The value to set for the hostname.\n */\n public set hostname(value: string) {\n this._hostname = value\n }\n\n /**\n * Gets the full URL of the endpoint.\n *\n * @returns {string} The full URL of the endpoint.\n */\n public get href(): string {\n return `${this.protocol}://${this.host}`\n }\n\n /**\n * Sets the full URL of the endpoint.\n *\n * @param {string} value - The value to set for the full URL.\n */\n public set href(value: string) {\n const protocolMatch = value.match(/^https?:/)\n const withoutProtocol = value.replace(/^https?:\\/\\//, '')\n const [hostnameWithPort] = withoutProtocol.split('/')\n\n this._protocol = protocolMatch ? protocolMatch[0].slice(0, -1) : Endpoint.DEFAULT_PROTOCOL // remove the trailing colon\n this._hostname = hostnameWithPort.split(':')[0]\n this._port = hostnameWithPort.split(':')[1]\n ? parseInt(hostnameWithPort.split(':')[1])\n : undefined\n }\n\n /**\n * Gets the port of the endpoint.\n *\n * @returns {number|undefined} The port of the endpoint.\n */\n public get port(): number | undefined {\n return this._port\n }\n\n /**\n * Sets the port of the endpoint.\n *\n * @param {number|undefined} value - The value to set for the port.\n */\n public set port(value: number | undefined) {\n this._port = value\n }\n\n /**\n * Gets the protocol (http or https) of the endpoint URL.\n *\n * @returns {string} The protocol of the endpoint URL.\n */\n public get protocol(): string {\n return this._protocol\n }\n\n /**\n * Sets the protocol (http or https) of the endpoint URL.\n *\n * @param {string} value - The value to set for the protocol.\n */\n public set protocol(value: string) {\n this._protocol = value\n }\n}\n","import { HTTPScheme } from './http'\nimport { Endpoint } from './endpoint'\n\n/** Class holding an AWS connection information */\nexport class AWSConfig {\n /**\n * The AWS region to connect to, as listed: https://docs.aws.amazon.com/general/latest/gr/rande.html\n *\n * @type {string}\n */\n region: string\n\n /**\n * Your user's AWS access key id credential.\n *\n * @type {string}\n */\n accessKeyId: string\n\n /**\n * Your user's AWS secret access key credential.\n *\n * @type {string}\n */\n secretAccessKey: string\n\n /**\n * Your user's AWS session token credential.\n *\n * @type {string}\n */\n sessionToken?: string\n\n /**\n * The AWS hostname to connect to.\n *\n * @type {string} ['amazonaws.com']\n */\n endpoint?: Endpoint\n\n /**\n * fromEnvironment creates an AWSConfig from the environment variables.\n *\n * It expects to find the following compulsory environment variables:\n * * AWS_REGION\n * * AWS_ACCESS_KEY_ID\n * * AWS_SECRET_ACCESS_KEY\n *\n * If set, the following optional environment variables are also used:\n * * AWS_SESSION_TOKEN\n *\n * Finally, the options parameter allows to explicitly set the scheme and endpoint\n * to use when connecting to AWS.\n *\n * @param options {AWSConnectionOptions}\n * @returns\n */\n static fromEnvironment(options?: AWSConnectionOptions): AWSConfig {\n const region = __ENV.AWS_REGION\n const accessKeyId = __ENV.AWS_ACCESS_KEY_ID\n const secretAccessKey = __ENV.AWS_SECRET_ACCESS_KEY\n const sessionToken: string | undefined = __ENV.AWS_SESSION_TOKEN\n const endpoint: Endpoint | string | undefined = options?.endpoint\n\n return new AWSConfig({\n region,\n accessKeyId,\n secretAccessKey,\n sessionToken,\n endpoint: endpoint,\n })\n }\n\n /**\n * Create an AWSConfig.\n *\n * @param {AWSConfigOptions} options - configuration attributes to use when interacting with AWS' APIs\n * @throws {InvalidArgumentException}\n */\n constructor(options: AWSConfigOptions) {\n if (!options.region || options.region === '') {\n throw new InvalidAWSConfigError(\n `invalid AWS region; reason: expected a valid AWS region name (e.g. \"us-east-1\"), got \\`${options.region}\\``\n )\n }\n\n if (!options.accessKeyId || options.accessKeyId === '') {\n throw new InvalidAWSConfigError(\n `invalid AWS access key ID; reason: expected a non empty string, got \\`${options.accessKeyId}\\``\n )\n }\n\n if (options.accessKeyId.length < 16 || options.accessKeyId.length > 128) {\n throw new InvalidAWSConfigError(\n `invalid AWS access key ID; reason: size should be between 16 and 128 characters, got ${options.accessKeyId.length}`\n )\n }\n\n if (!options.secretAccessKey || options.secretAccessKey === '') {\n throw new InvalidAWSConfigError(\n `invalid AWS secret access key; reason: expected a non empty string, got \\`${options.secretAccessKey}\\``\n )\n }\n\n this.region = options.region\n this.accessKeyId = options.accessKeyId\n this.secretAccessKey = options.secretAccessKey\n\n if (options.sessionToken !== undefined) {\n this.sessionToken = options.sessionToken\n }\n\n if (options.endpoint !== undefined) {\n if (typeof options.endpoint === 'string') {\n this.endpoint = new Endpoint(options.endpoint)\n } else {\n this.endpoint = options.endpoint\n }\n }\n }\n}\n\n/**\n * Interface representing AWSConfig options\n */\nexport interface AWSConfigOptions extends AWSConnectionOptions {\n /**\n * The AWS region to connect to, as listed: https://docs.aws.amazon.com/general/latest/gr/rande.html\n *\n * @type {string}\n */\n region: string\n\n /**\n * Your user's AWS access key id credential.\n *\n * @type {string}\n */\n accessKeyId: string\n\n /**\n * Your user's AWS secret access key credential.\n *\n * @type {string}\n */\n secretAccessKey: string\n\n /**\n * Your user's AWS session token credential.\n *\n * @type {string}\n */\n sessionToken?: string\n}\n\n/**\n * Interface representing AWS connection options\n */\nexport interface AWSConnectionOptions {\n /**\n * The HTTP scheme to use when connecting to AWS.\n *\n * @type {HTTPScheme}\n */\n scheme?: HTTPScheme\n\n /**\n * The AWS hostname to connect to.\n *\n * @type {string}\n */\n endpoint?: Endpoint | string\n}\n\n/** Class representing an invalid AWS configuration */\nexport class InvalidAWSConfigError extends Error {\n constructor(message: string) {\n super(message)\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"k6/html\");","import { JSONObject } from './json'\nimport { parseHTML } from 'k6/html'\nimport { Response } from 'k6/http'\n\n/**\n * Base class to derive errors from\n *\n * Inspired from AWS official error types, as\n * described in:\n * * https://aws.amazon.com/blogs/developer/service-error-handling-modular-aws-sdk-js/\n * * https://github.com/aws/aws-sdk-js/blob/master/lib/error.d.ts\n */\nexport class AWSError extends Error {\n /**\n * Error code issued by the service (if any)\n */\n code?: string\n\n /**\n * Create an AWSError\n *\n * @param {string} message - A longer human readable error message.\n * @param {string?} code - A unique short code representing the error that was emitted\n */\n constructor(message: string, code?: string) {\n super(message)\n this.name = 'AWSError'\n this.code = code\n }\n\n /**\n * Parse an AWSError from an XML document\n *\n * @param {string} xmlDocument - Serialized XML document to parse the error from\n * @returns {AWSError} - The parsed AWSError object\n */\n static parseXML(xmlDocument: string): AWSError {\n const doc = parseHTML(xmlDocument)\n return new AWSError(doc.find('Message').text(), doc.find('Code').text())\n }\n\n /**\n * Parse an AWSError from a Response object\n *\n * @param {Response} response - The Response object to parse the error from\n * @returns {AWSError} - The parsed AWSError object\n */\n static parse(response: Response): AWSError {\n if (response.headers['Content-Type'] === 'application/json') {\n const error = (response.json() as JSONObject) || {}\n const message =\n error.Message ||\n error.message ||\n error.__type ||\n 'An error occurred on the server side'\n const code = response.headers['X-Amzn-Errortype'] || error.__type\n return new AWSError(message as string, code as string)\n } else {\n return AWSError.parseXML(response.body as string)\n }\n }\n}\n\n/**\n * Base class for network errors as produced by k6.\n *\n * Based on the network error handling in k6, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n *\n * @typeparam N - The name of the network error\n * @typeparam K - The kind of the network error\n */\nexport class NetworkError extends Error {\n code: K\n name: N\n\n /**\n * Create a NetworkError\n *\n * @param {N} name - The name of the network error\n * @param {K} code - The kind of the network error\n */\n constructor(name: N, code: K) {\n super(ErrorMessages[code] || 'An unknown error occurred')\n this.name = name\n this.code = code\n }\n}\n\n/**\n * Represents a general network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class GeneralError extends NetworkError<'GeneralError', GeneralErrorKind> {\n /**\n * Create a GeneralError\n *\n * @param {GeneralErrorKind} code - The kind of the general error\n */\n constructor(code: GeneralErrorKind) {\n super('GeneralError', code)\n }\n}\n\n/**\n * Represents a DNS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class DNSError extends NetworkError<'DNSError', DNSErrorKind> {\n /**\n * Create a DNSError\n *\n * @param {DNSErrorKind} code - The kind of the DNS error\n */\n constructor(code: DNSErrorKind) {\n super('DNSError', code)\n }\n}\n\n/**\n * Represents a TCP-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class TCPError extends NetworkError<'TCPError', TCPErrorKind> {\n /**\n * Create a TCPError\n *\n * @param {TCPErrorKind} code - The kind of the TCP error\n */\n constructor(code: TCPErrorKind) {\n super('TCPError', code)\n }\n}\n\n/**\n * Represents a TLS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class TLSError extends NetworkError<'TLSError', TLSErrorKind> {\n /**\n * Create a TLSError\n *\n * @param {TLSErrorKind} code - The kind of the TLS error\n */\n constructor(code: TLSErrorKind) {\n super('TLSError', code)\n }\n}\n\n/**\n * Represents an HTTP/2-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class HTTP2Error extends NetworkError<'HTTP2Error', HTTP2ErrorKind> {\n /**\n * Create an HTTP2Error\n *\n * @param {HTTP2ErrorKind} code - The kind of the HTTP/2 error\n */\n constructor(code: HTTP2ErrorKind) {\n super('HTTP2Error', code)\n }\n}\n\n/**\n * Represents the name of a network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\ntype NetworkErrorName = 'GeneralError' | 'DNSError' | 'TCPError' | 'TLSError' | 'HTTP2Error'\n\n/**\n * Represents the kind of a network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\ntype ErrorKind = GeneralErrorKind | DNSErrorKind | TCPErrorKind | TLSErrorKind | HTTP2ErrorKind\n\n/**\n * Represents the kind of a general network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum GeneralErrorKind {\n GenericError = 1000,\n NonTCPNetworkError = 1010,\n InvalidURL = 1020,\n HTTPRequestTimeout = 1050,\n}\n\n/**\n * Represents the kind of a DNS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum DNSErrorKind {\n GenericDNSError = 1100,\n NoIPFound = 1101,\n BlacklistedIP = 1110,\n BlacklistedHostname = 1111,\n}\n\n/**\n * Represents the kind of a TCP-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum TCPErrorKind {\n GenericTCPError = 1200,\n BrokenPipeOnWrite = 1201,\n UnknownTCPError = 1202,\n GeneralTCPDialError = 1210,\n DialTimeoutError = 1211,\n DialConnectionRefused = 1212,\n DialUnknownError = 1213,\n ResetByPeer = 1220,\n}\n\n/**\n * Represents the kind of a TLS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum TLSErrorKind {\n GeneralTLSError = 1300,\n UnknownAuthority = 1310,\n CertificateHostnameMismatch = 1311,\n}\n\n/**\n * Represents the kind of an HTTP/2-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum HTTP2ErrorKind {\n GenericHTTP2Error = 1600,\n GeneralHTTP2GoAwayError = 1610,\n}\n\n/**\n * Error messages for each kind of network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nconst ErrorMessages: { [key in ErrorKind]: string } = {\n [GeneralErrorKind.GenericError]: 'A generic error that isn’t any of the ones listed below',\n [GeneralErrorKind.NonTCPNetworkError]:\n 'A non-TCP network error - this is a placeholder and there is no error currently known to trigger it',\n [GeneralErrorKind.InvalidURL]: 'An invalid URL was specified',\n [GeneralErrorKind.HTTPRequestTimeout]: 'The HTTP request has timed out',\n [DNSErrorKind.GenericDNSError]: 'A generic DNS error that isn’t any of the ones listed below',\n [DNSErrorKind.NoIPFound]: 'No IP for the provided host was found',\n [DNSErrorKind.BlacklistedIP]:\n 'Blacklisted IP was resolved or a connection to such was tried to be established',\n [DNSErrorKind.BlacklistedHostname]: 'Blacklisted hostname using The Block Hostnames option',\n [TCPErrorKind.GenericTCPError]: 'A generic TCP error that isn’t any of the ones listed below',\n [TCPErrorKind.BrokenPipeOnWrite]:\n 'A “broken pipe” on write - the other side has likely closed the connection',\n [TCPErrorKind.UnknownTCPError]:\n 'An unknown TCP error - We got an error that we don’t recognize but it is from the operating system and has errno set on it. The message in error includes the operation(write,read) and the errno, the OS, and the original message of the error',\n [TCPErrorKind.GeneralTCPDialError]: 'General TCP dial error',\n [TCPErrorKind.DialTimeoutError]: 'Dial timeout error - the timeout for the dial was reached',\n [TCPErrorKind.DialConnectionRefused]:\n 'Dial connection refused - the connection was refused by the other party on dial',\n [TCPErrorKind.DialUnknownError]: 'Dial unknown error',\n [TCPErrorKind.ResetByPeer]:\n 'Reset by peer - the connection was reset by the other party, most likely a server',\n [TLSErrorKind.GeneralTLSError]: 'General TLS error',\n [TLSErrorKind.UnknownAuthority]: 'Unknown authority - the certificate issuer is unknown',\n [TLSErrorKind.CertificateHostnameMismatch]: 'The certificate doesn’t match the hostname',\n [HTTP2ErrorKind.GenericHTTP2Error]:\n 'A generic HTTP/2 error that isn’t any of the ones listed below',\n [HTTP2ErrorKind.GeneralHTTP2GoAwayError]: 'A general HTTP/2 GoAway error',\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"k6/crypto\");","/**\n * Standard Amazon AWS query parameter names\n */\nexport const AMZ_ALGORITHM_QUERY_PARAM = 'X-Amz-Algorithm'\nexport const AMZ_CREDENTIAL_QUERY_PARAM = 'X-Amz-Credential'\nexport const AMZ_DATE_QUERY_PARAM = 'X-Amz-Date'\nexport const AMZ_EXPIRES_QUERY_PARAM = 'X-Amz-Expires'\nexport const AMZ_SIGNATURE_QUERY_PARAM = 'X-Amz-Signature'\nexport const AMZ_SIGNED_HEADERS_QUERY_PARAM = 'X-Amz-SignedHeaders'\nexport const AMZ_TARGET_QUERY_PARAM = 'X-Amz-Target'\nexport const AMZ_TOKEN_QUERY_PARAM = 'X-Amz-Security-Token'\n\n/**\n * Standard Amazon AWS header names\n */\nexport const AMZ_CONTENT_SHA256_HEADER = 'x-amz-content-sha256'\nexport const AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase()\nexport const AMZ_SIGNATURE_HEADER = AMZ_SIGNATURE_QUERY_PARAM.toLowerCase()\nexport const AMZ_TARGET_HEADER = AMZ_TARGET_QUERY_PARAM.toLowerCase()\nexport const AMZ_TOKEN_HEADER = AMZ_TOKEN_QUERY_PARAM.toLowerCase()\n\n/**\n * Common HTTP headers we rely on in the signing process\n */\nexport const AUTHORIZATION_HEADER = 'authorization'\nexport const DATE_HEADER = 'date'\n\n/**\n * Lists the headers that are generated as part of the signature process.\n */\nexport const GENERATED_HEADERS = [AUTHORIZATION_HEADER, AMZ_DATE_HEADER, DATE_HEADER]\nexport const HOST_HEADER = 'host'\n\n/**\n * Lists the headers that should never be included in the\n * request signature signature process.\n */\nexport const ALWAYS_UNSIGNABLE_HEADERS = {\n authorization: true,\n 'cache-control': true,\n connection: true,\n expect: true,\n from: true,\n 'keep-alive': true,\n 'max-forwards': true,\n pragma: true,\n referer: true,\n te: true,\n trailer: true,\n 'transfer-encoding': true,\n upgrade: true,\n 'user-agent': true,\n 'x-amzn-trace-id': true,\n}\n\n/**\n * Signature specific constants included in the signing process\n */\nexport const KEY_TYPE_IDENTIFIER = 'aws4_request'\nexport const SIGNING_ALGORITHM_IDENTIFIER = 'AWS4-HMAC-SHA256'\n\n/**\n * Maximum time to live of a signed request in seconds: 7 days.\n */\nexport const MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7\n\n/**\n * SHA256 hash of an empty string (so we don't waste cycles recomputing it)\n */\nexport const EMPTY_SHA256 = 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'\n\n/**\n * SHA256 hash of the unsigned payload constant (so we don't waste cycles recomputing it)\n */\nexport const UNSIGNED_PAYLOAD_SHA256 =\n '5a41b0751e4537c6ff868564ab44a4d4ecceec2ec5b1c5f74d97422968e04237'\n\nexport const UNSIGNED_PAYLOAD = 'UNSIGNED-PAYLOAD'\n","import crypto from 'k6/crypto'\n\nimport * as constants from './constants'\nimport { AWSError } from './error'\nimport { hasHeader, HTTPHeaderBag, HTTPRequest, QueryParameterBag, SignedHTTPRequest } from './http'\nimport { isArrayBuffer } from './utils'\n\n/**\n * SignatureV4 can be used to sign HTTP requests and presign URLs using the AWS Signature\n * Version 4 signing process.\n *\n * It offers two signing methods:\n * - sign: signs the request headers and payload\n * - presign: returns a presigned (authorization information contained in the query string) URL\n *\n * @see https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html\n */\nexport class SignatureV4 {\n /**\n * The name of the service to sign for.\n */\n private readonly service: string\n\n /**\n * The name of the region to sign for.\n */\n private readonly region: string\n\n /**\n * The credentials with which the request should be signed.\n */\n private readonly credentials: Credentials\n\n /**\n * Whether to uri-escape the request URI path as part of computing the\n * canonical request string. This is required for every AWS service, except\n * Amazon S3, as of late 2017.\n *\n * @default [true]\n */\n private readonly uriEscapePath: boolean\n\n /**\n * Whether to calculate a checksum of the request body and include it as\n * either a request header (when signing) or as a query string parameter\n * (when presigning). This is required for AWS Glacier and Amazon S3 and optional for\n * every other AWS service as of late 2017.\n *\n * @default [true]\n */\n private readonly applyChecksum: boolean\n\n // TODO: uriEscapePath and applyChecksum should not be present in the constructor\n constructor({\n service,\n region,\n credentials,\n uriEscapePath,\n applyChecksum,\n }: SignatureV4Options) {\n this.service = service\n this.region = region\n this.credentials = credentials\n this.uriEscapePath = typeof uriEscapePath === 'boolean' ? uriEscapePath : true\n this.applyChecksum = typeof applyChecksum === 'boolean' ? applyChecksum : true\n }\n\n /**\n * Includes AWS v4 signing information to the provided HTTP request.\n *\n * This method adds an Authorization header to the request, containing\n * the signature and other signing information. It also returns a preformatted\n * URL that can be used to make the k6 http request.\n *\n * This method mutates the request object.\n *\n * @param request {HTTPRequest} The request to sign.\n * @param options {Partial} Options for signing the request.\n * @returns {SignedHTTPRequest} The signed request.\n */\n sign(request: HTTPRequest, options: Partial = {}): SignedHTTPRequest {\n // Set default values for options which are not provided by the user.\n const defaultOptions = {\n signingDate: new Date(),\n unsignableHeaders: new Set(),\n signableHeaders: new Set(),\n }\n\n // Merge default options with the ones maybe provided by the user.\n const finalOptions = { ...defaultOptions, ...options }\n\n const { longDate, shortDate }: DateInfo = formatDate(finalOptions.signingDate)\n const service = finalOptions.signingService || this.service\n const region = finalOptions.signingRegion || this.region\n const scope = `${shortDate}/${region}/${service}/${constants.KEY_TYPE_IDENTIFIER}`\n\n // Required by the specification:\n // \"For HTTP/1.1 requests, you must include the host header at a minimum.\n // Standard headers like content-type are optional.\n // For HTTP/2 requests, you must include the :authority header instead of\n // the host header. Different services might require other headers.\"\n if (!request.headers[constants.HOST_HEADER]) {\n request.headers[constants.HOST_HEADER] = request.endpoint.hostname\n }\n\n // Filter out headers that will be generated and managed by the signing process.\n // If the user provide any of those as part of the HTTPRequest's headers, they\n // will be ignored.\n for (const headerName of Object.keys(request.headers)) {\n if (constants.GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) {\n delete request.headers[headerName]\n }\n }\n\n request.headers[constants.AMZ_DATE_HEADER] = longDate\n if (this.credentials.sessionToken) {\n request.headers[constants.AMZ_TOKEN_HEADER] = this.credentials.sessionToken\n }\n\n // If the request body is a typed array, we need to convert it to a buffer\n // so that we can calculate the checksum.\n if (ArrayBuffer.isView(request.body)) {\n request.body = request.body.buffer\n }\n\n // Ensure we avoid passing undefined to the crypto hash function.\n if (!request.body) {\n request.body = ''\n }\n\n const payloadHash = this.computePayloadHash(request)\n if (\n !hasHeader(constants.AMZ_CONTENT_SHA256_HEADER, request.headers) &&\n this.applyChecksum\n ) {\n request.headers[constants.AMZ_CONTENT_SHA256_HEADER] = payloadHash\n }\n\n const canonicalHeaders = this.computeCanonicalHeaders(\n request,\n finalOptions.unsignableHeaders,\n finalOptions.signableHeaders\n )\n const signature = this.calculateSignature(\n longDate,\n scope,\n this.deriveSigningKey(this.credentials, service, region, shortDate),\n this.createCanonicalRequest(request, canonicalHeaders, payloadHash)\n )\n\n /**\n * Step 4 of the signing process: add the signature to the HTTP request's headers.\n *\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html\n */\n request.headers[constants.AUTHORIZATION_HEADER] =\n `${constants.SIGNING_ALGORITHM_IDENTIFIER} ` +\n `Credential=${this.credentials.accessKeyId}/${scope}, ` +\n `SignedHeaders=${Object.keys(canonicalHeaders).sort().join(';')}, ` +\n `Signature=${signature}`\n\n // If a request path was provided, add it to the URL\n let url = request.endpoint.href\n if (request.path) {\n // Ensure the URI and the request path are properly concatenated\n // by adding a trailing slash to the URI if it's missing.\n if (!url.endsWith('/') && !request.path.startsWith('/')) {\n url += '/'\n }\n\n // Append the path to the URL\n url += request.path\n }\n\n // If a request query string was provided, add it to the URL\n if (request.query) {\n // We exclude the signature from the query string\n url += `?${this.serializeQueryParameters(request.query)}`\n }\n\n return {\n url: url,\n ...request,\n }\n }\n\n /**\n * Produces a presigned URL with AWS v4 signature information for the provided HTTP request.\n *\n * A presigned URL is a URL that contains the authorization information\n * (signature and other signing information) in the query string. This method\n * returns a preformatted URL that can be used to make the k6 http request.\n *\n * @param originalRequest - The original request to presign.\n * @param options - Options controlling the signing of the request.\n * @returns A signed request, including the presigned URL.\n */\n presign(originalRequest: HTTPRequest, options: PresignOptions = {}): SignedHTTPRequest {\n const {\n signingDate = new Date(),\n expiresIn = 3600,\n unsignableHeaders,\n unhoistableHeaders,\n signableHeaders,\n signingRegion,\n signingService,\n } = options\n const { longDate, shortDate }: DateInfo = formatDate(signingDate)\n const region = signingRegion || this.region\n const service = signingService || this.service\n\n if (expiresIn > constants.MAX_PRESIGNED_TTL) {\n throw new InvalidSignatureError(\n \"Signature version 4 presigned URLs can't be valid for more than 7 days\"\n )\n }\n\n const scope = `${shortDate}/${region}/${service}/${constants.KEY_TYPE_IDENTIFIER}`\n const request = this.moveHeadersToQuery(originalRequest, { unhoistableHeaders })\n\n // Required by the specification:\n // \"For HTTP/1.1 requests, you must include the host header at a minimum.\n // Standard headers like content-type are optional.\n // For HTTP/2 requests, you must include the :authority header instead of\n // the host header. Different services might require other headers.\"\n if (!request.headers[constants.HOST_HEADER]) {\n request.headers[constants.HOST_HEADER] = originalRequest.endpoint.hostname\n }\n\n // If the user provided a session token, include it in the signed url query string.\n if (this.credentials.sessionToken) {\n request.query[constants.AMZ_TOKEN_QUERY_PARAM] = this.credentials.sessionToken\n }\n // Add base signing query parameters to the request, as described in the documentation\n // @see https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html\n request.query[constants.AMZ_ALGORITHM_QUERY_PARAM] = constants.SIGNING_ALGORITHM_IDENTIFIER\n request.query[\n constants.AMZ_CREDENTIAL_QUERY_PARAM\n ] = `${this.credentials.accessKeyId}/${scope}`\n request.query[constants.AMZ_DATE_QUERY_PARAM] = longDate\n request.query[constants.AMZ_EXPIRES_QUERY_PARAM] = expiresIn.toString(10)\n\n const canonicalHeaders = this.computeCanonicalHeaders(\n request,\n unsignableHeaders,\n signableHeaders\n )\n request.query[constants.AMZ_SIGNED_HEADERS_QUERY_PARAM] = Object.keys(canonicalHeaders)\n .sort()\n .join(';')\n\n const signingKey = this.deriveSigningKey(this.credentials, service, region, shortDate)\n\n // Computing the payload from the original request. This is required\n // in the event the user attempts to produce a presigned URL for s3,\n // which requires the payload hash to be 'UNSIGNED-PAYLOAD'.\n //\n // To that effect, users need to set the 'x-amz-content-sha256' header,\n // and mark it as unhoistable and unsignable. When setup this way,\n // the computePayloadHash method will then return the string 'UNSIGNED-PAYLOAD'.\n const payloadHash = this.computePayloadHash(originalRequest)\n const canonicalRequest = this.createCanonicalRequest(request, canonicalHeaders, payloadHash)\n\n request.query[constants.AMZ_SIGNATURE_QUERY_PARAM] = this.calculateSignature(\n longDate,\n scope,\n signingKey,\n canonicalRequest\n )\n\n // If a request path was provided, add it to the URL\n let url = originalRequest.endpoint.href\n if (request.path) {\n // Ensure there is a trailing slash at the end of the URL\n // so that appending the path does not result in a malformed URL.\n url = url?.endsWith('/') ? url : url + '/'\n\n // Append the path to the URL\n url += request.path\n }\n\n // If a request query string was provided, add it to the URL\n if (request.query) {\n url += `?${this.serializeQueryParameters(request.query)}`\n }\n\n return { url: url, ...request }\n }\n\n /**\n * Create a string including information from your request\n * in a AWS signature v4 standardized (canonical) format.\n *\n * Step 1 of the signing process: create the canonical request string.\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html\n *\n * @param request {HTTPRequest} The request to sign.\n * @param canonicalHeaders {HTTPHeaderBag} The request's canonical headers.\n * @param payloadHash {string} The hexadecimally encoded request's payload hash .\n * @returns {string} The canonical request string.\n */\n private createCanonicalRequest(\n request: HTTPRequest,\n canonicalHeaders: HTTPHeaderBag,\n payloadHash: string\n ): string {\n const sortedHeaders = Object.keys(canonicalHeaders).sort()\n const sortedCanonicalHeaders = sortedHeaders\n .map((name) => `${name}:${canonicalHeaders[name]}`)\n .join('\\n')\n const signedHeaders = sortedHeaders.join(';')\n\n return (\n `${request.method}\\n` +\n `${this.computeCanonicalURI(request)}\\n` +\n `${this.computeCanonicalQuerystring(request)}\\n` +\n `${sortedCanonicalHeaders}\\n\\n` +\n `${signedHeaders}\\n` +\n `${payloadHash}`\n )\n }\n\n /**\n * Create the \"string to sign\" part of the signature Version 4 protocol.\n *\n * The \"string to sign\" includes meta information about your request and\n * about the canonical request that you created with `createCanonicalRequest`.\n * It is used hand in hand with the signing key to create the request signature.\n * Step 2 of the signing process: create the string to sign.\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-create-string-to-sign.html\n *\n * @param longDate {string} The request's date in iso 8601 format.\n * @param credentialScope {string} The request's credential scope.\n * @param canonicalRequest {string} The request's canonical request.\n * @returns {string} The \"string to sign\".\n */\n private createStringToSign(\n longDate: string,\n credentialScope: string,\n canonicalRequest: string\n ): string {\n const hashedCanonicalRequest = crypto.sha256(canonicalRequest, 'hex')\n\n return (\n `${constants.SIGNING_ALGORITHM_IDENTIFIER}\\n` +\n `${longDate}\\n` +\n `${credentialScope}\\n` +\n `${hashedCanonicalRequest}`\n )\n }\n\n /**\n * Calculte the signature for AWS signature version 4.\n *\n * Step 3 of the signing process: create the signature.\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-calculate-signature.html\n *\n * @param longDate {string} The request's date in iso 8601 format.\n * @param credentialScope {string} The request's credential scope.\n * @param signingKey {string} the signing key as computed by the deriveSigningKey method.\n * @param canonicalRequest {string} The request's canonical request.\n * @returns {string} The signature.\n */\n private calculateSignature(\n longDate: string,\n credentialScope: string,\n signingKey: Uint8Array,\n canonicalRequest: string\n ): string {\n const stringToSign = this.createStringToSign(longDate, credentialScope, canonicalRequest)\n return crypto.hmac('sha256', signingKey, stringToSign, 'hex')\n }\n\n /**\n * Derives the signing key for authenticating requests signed with\n * the Signature version 4 authentication protocol.\n *\n * deriveSigningKey produces a signing key by creating a series of\n * hash-based message authentication codes (HMACs) represented in\n * a binary format.\n *\n * The derived signing key is specific to the date it's made at, as well as\n * the service and region it targets.\n *\n * @param credentials {AWSCredentials} The credentials to use for signing.\n * @param service {string} The service the request is targeted at.\n * @param region {string} The region the request is targeted at.\n * @param shortDate {string} The request's date in YYYYMMDD format.\n * @returns {Uint8Array} The derived signing key.\n */\n private deriveSigningKey(\n credentials: Credentials,\n service: string,\n region: string,\n shortDate: string\n ): Uint8Array {\n const kSecret: string = credentials.secretAccessKey\n /**\n * crypto.hmac returns a value of type `bytes`, which is an alias for\n * number[]. However, the secret argument to hmac needs to either be\n * a `string` or ArrayBuffer. The only way to get around this is to\n * cast the return value of hmac to any, thus, we disable the no-explicit-any\n * ESLint rule for this function.\n */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const kDate: any = crypto.hmac('sha256', 'AWS4' + kSecret, shortDate, 'binary')\n const kRegion: any = crypto.hmac('sha256', kDate, region, 'binary')\n const kService: any = crypto.hmac('sha256', kRegion, service, 'binary')\n const kSigning: any = crypto.hmac('sha256', kService, 'aws4_request', 'binary')\n /* eslint-enable @typescript-eslint/no-explicit-any */\n\n return kSigning\n }\n\n /**\n * Create a string that includes information from your request\n * in a AWS signature v4 standardized (canonical) format.\n *\n * @param param0 {HTTPRequest} The request to sign.\n * @returns {string} The canonical URI.\n */\n private computeCanonicalURI({ path }: HTTPRequest): string {\n if (this.uriEscapePath) {\n // Non-S3 services, we normalize the path and then double URI encode it.\n // Ref: \"Remove Dot Segments\" https://datatracker.ietf.org/doc/html/rfc3986#section-5.2.4\n const normalizedURISegments = []\n\n for (const URISegment of path.split('/')) {\n if (URISegment?.length === 0) {\n continue\n }\n\n if (URISegment === '.') {\n continue\n }\n\n if (URISegment === '..') {\n normalizedURISegments.pop()\n } else {\n normalizedURISegments.push(URISegment)\n }\n }\n\n // Normalize the URI\n const leading = path?.startsWith('/') ? '/' : ''\n const URI = normalizedURISegments.join('/')\n const trailing = normalizedURISegments.length > 0 && path?.endsWith('/') ? '/' : ''\n const normalizedURI = `${leading}${URI}${trailing}`\n\n const doubleEncoded = encodeURIComponent(normalizedURI)\n\n return doubleEncoded.replace(/%2F/g, '/')\n }\n\n // For S3, we shouldn't normalize the path. For example, object name\n // my-object//example//photo.user should not be normalized to\n // my-object/example/photo.user\n return path\n }\n\n /**\n * Serializes the request's query parameters into their canonical\n * string version. If the request does not include a query parameters,\n * returns an empty string.\n *\n * @param param0 {HTTPRequest} The request containing the query parameters.\n * @returns {string} The canonical query string.\n */\n private computeCanonicalQuerystring({ query = {} }: HTTPRequest): string {\n const keys: Array = []\n const serialized: Record = {}\n\n for (const key of Object.keys(query).sort()) {\n if (key.toLowerCase() === constants.AMZ_SIGNATURE_HEADER) {\n continue\n }\n\n keys.push(key)\n const value = query[key]\n\n if (typeof value === 'string') {\n serialized[key] = `${escapeURI(key)}=${escapeURI(value)}`\n } else if (Array.isArray(value)) {\n serialized[key] = value\n .slice(0)\n .sort()\n .reduce(\n (encoded: Array, value: string) =>\n encoded.concat([`${escapeURI(key)}=${escapeURI(value)}`]),\n []\n )\n .join('&')\n }\n }\n\n return keys\n .map((key) => serialized[key])\n .filter((serialized) => serialized)\n .join('&')\n }\n\n /**\n * Create the canonical form of the request's headers.\n * Canonical headers consist of all the HTTP headers you\n * are including with the signed request.\n *\n * @param param0 {HTTPRequest} The request to compute the canonical headers of.\n * @param unsignableHeaders {Set} The headers that should not be signed.\n * @param signableHeaders {Set} The headers that should be signed.\n * @returns {string} The canonical headers.\n */\n private computeCanonicalHeaders(\n { headers }: HTTPRequest,\n unsignableHeaders?: Set,\n signableHeaders?: Set\n ): HTTPHeaderBag {\n const canonicalHeaders: HTTPHeaderBag = {}\n\n for (const headerName of Object.keys(headers).sort()) {\n if (headers[headerName] == undefined) {\n continue\n }\n\n const canonicalHeaderName = headerName.toLowerCase()\n if (\n canonicalHeaderName in constants.ALWAYS_UNSIGNABLE_HEADERS ||\n unsignableHeaders?.has(canonicalHeaderName)\n ) {\n if (\n !signableHeaders ||\n (signableHeaders && !signableHeaders.has(canonicalHeaderName))\n ) {\n continue\n }\n }\n\n if (typeof headers[headerName] === 'string') {\n canonicalHeaders[canonicalHeaderName] = headers[headerName] = headers[headerName]\n .trim()\n .replace(/\\s+/g, ' ')\n }\n }\n\n return canonicalHeaders\n }\n\n /**\n * Computes the SHA256 cryptographic hash of the request's body.\n *\n * If the headers contain the 'X-Amz-Content-Sha256' header, then\n * the value of that header is returned instead. This proves useful\n * when, for example, presiging a URL for S3, as the payload hash\n * must always be equal to 'UNSIGNED-PAYLOAD'.\n *\n * @param param0 {HTTPRequest} The request to compute the payload hash of.\n * @returns {string} The hex encoded SHA256 payload hash, or the value of the 'X-Amz-Content-Sha256' header.\n */\n private computePayloadHash({ headers, body }: HTTPRequest): string {\n // for (const headerName of Object.keys(headers)) {\n // // If the header is present, return its value.\n // // So that we let the 'UNSIGNED-PAYLOAD' value pass through.\n // if (headerName.toLowerCase() === constants.AMZ_CONTENT_SHA256_HEADER) {\n // return headers[headerName]\n // }\n // }\n\n if (headers[constants.AMZ_CONTENT_SHA256_HEADER]) {\n return headers[constants.AMZ_CONTENT_SHA256_HEADER]\n }\n\n if (body == undefined) {\n return constants.EMPTY_SHA256\n }\n\n if (typeof body === 'string' || isArrayBuffer(body)) {\n return crypto.sha256(body, 'hex').toLowerCase()\n }\n\n if (ArrayBuffer.isView(body)) {\n // If the request body is a typed array, we need to convert it to a buffer\n // so that we can calculate the checksum.\n return crypto.sha256((body as DataView).buffer, 'hex').toLowerCase()\n }\n\n return constants.UNSIGNED_PAYLOAD\n }\n\n /**\n * Moves a request's headers to its query parameters.\n *\n * The operation will ignore any amazon standard headers, prefixed\n * with 'X-Amz-'. It will also ignore any headers specified as unhoistable\n * by the options.\n *\n * The operation will delete the headers from the request.\n *\n * @param request {HTTPRequest} The request to move the headers from.\n * @param options\n * @returns {HTTPRequest} The request with the headers moved to the query parameters.\n */\n private moveHeadersToQuery(\n request: HTTPRequest,\n options: { unhoistableHeaders?: Set } = {}\n ): HTTPRequest & { query: QueryParameterBag } {\n const requestCopy = JSON.parse(JSON.stringify(request))\n const { headers, query = {} as QueryParameterBag } = requestCopy\n\n for (const name of Object.keys(headers)) {\n const lowerCaseName = name.toLowerCase()\n if (\n lowerCaseName.slice(0, 6) === 'x-amz-' &&\n !options.unhoistableHeaders?.has(lowerCaseName)\n ) {\n query[name] = headers[name]\n delete headers[name]\n }\n }\n\n return {\n ...requestCopy,\n headers,\n query,\n }\n }\n\n /**\n * Serializes a HTTPRequest's query parameter bag into a string.\n *\n * @param query {QueryParameterBag} The query parameters to serialize.\n * @param ignoreKeys {Set} The keys to ignore.\n * @returns {string} The serialized, and ready to use in a URL, query parameters.\n */\n private serializeQueryParameters(query: QueryParameterBag, ignoreKeys?: string[]): string {\n const keys: Array = []\n const serialized: Record = {}\n\n for (const key of Object.keys(query).sort()) {\n if (ignoreKeys?.includes(key.toLowerCase())) {\n continue\n }\n\n keys.push(key)\n const value = query[key]\n\n if (typeof value === 'string') {\n serialized[key] = `${escapeURI(key)}=${escapeURI(value)}`\n } else if (Array.isArray(value)) {\n serialized[key] = value\n .slice(0)\n .sort()\n .reduce(\n (encoded: Array, value: string) =>\n encoded.concat([`${escapeURI(key)}=${escapeURI(value)}`]),\n []\n )\n .join('&')\n }\n }\n\n return keys\n .map((key) => serialized[key])\n .filter((serialized) => serialized)\n .join('&')\n }\n}\n\n/**\n * Error indicating an Invalid signature has been sent to AWS services\n *\n * Inspired from AWS official error types, as\n * described in:\n * * https://aws.amazon.com/blogs/developer/service-error-handling-modular-aws-sdk-js/\n * * https://github.com/aws/aws-sdk-js/blob/master/lib/error.d.ts\n */\nexport class InvalidSignatureError extends AWSError {\n /**\n * Constructs an InvalidSignatureError\n *\n * @param {string} message - human readable error message\n */\n constructor(message: string, code?: string) {\n super(message, code)\n this.name = 'InvalidSignatureError'\n }\n}\n\nexport interface SignatureV4Options {\n /**\n * The name of the service to sign for.\n */\n service: string\n\n /**\n * The name of the region to sign for.\n */\n region: string\n\n /**\n * The credentials with which the request should be signed.\n */\n credentials: Credentials\n\n /**\n * Whether to uri-escape the request URI path as part of computing the\n * canonical request string. This is required for every AWS service, except\n * Amazon S3, as of late 2017.\n *\n * @default [true]\n */\n uriEscapePath?: boolean\n\n /**\n * Whether to calculate a checksum of the request body and include it as\n * either a request header (when signing) or as a query string parameter\n * (when presigning). This is required for AWS Glacier and Amazon S3 and optional for\n * every other AWS service as of late 2017.\n *\n * @default [true]\n */\n applyChecksum?: boolean\n}\n\nexport interface SignOptions {\n /**\n * The date and time to be used as signature metadata. This value should be\n * a Date object, a unix (epoch) timestamp, or a string that can be\n * understood by the JavaScript `Date` constructor.If not supplied, the\n * value returned by `new Date()` will be used.\n */\n signingDate?: Date\n\n /**\n * The service signing name. It will override the service name of the signer\n * in current invocation\n */\n signingService?: string\n\n /**\n * The region name to sign the request. It will override the signing region of the\n * signer in current invocation\n */\n signingRegion?: string\n}\n\nexport interface RequestSigningOptions extends SignOptions {\n /**\n * A set of strings whose members represents headers that cannot be signed.\n * All headers in the provided request will have their names converted to\n * lower case and then checked for existence in the unsignableHeaders set.\n */\n unsignableHeaders?: Set\n\n /**\n * A set of strings whose members represents headers that should be signed.\n * Any values passed here will override those provided via unsignableHeaders,\n * allowing them to be signed.\n *\n * All headers in the provided request will have their names converted to\n * lower case before signing.\n */\n signableHeaders?: Set\n}\n\nexport interface PresignOptions extends RequestSigningOptions {\n /**\n * The number of seconds before the presigned URL expires\n */\n expiresIn?: number\n\n /**\n * A set of strings whose representing headers that should not be hoisted\n * to presigned request's query string. If not supplied, the presigner\n * moves all the AWS-specific headers (starting with `x-amz-`) to the request\n * query string. If supplied, these headers remain in the presigned request's\n * header.\n * All headers in the provided request will have their names converted to\n * lower case and then checked for existence in the unhoistableHeaders set.\n */\n unhoistableHeaders?: Set\n}\n\nexport interface Credentials {\n /**\n * AWS access key ID\n */\n readonly accessKeyId: string\n\n /**\n * AWS secret access key\n */\n readonly secretAccessKey: string\n\n /**\n * A security or session token to use with these credentials. Usually\n * present for temporary credentials.\n */\n readonly sessionToken?: string\n}\n\nexport interface DateInfo {\n /**\n * ISO8601 formatted date string\n */\n longDate: string\n\n /**\n * String in the format YYYYMMDD\n */\n shortDate: string\n}\n\n/**\n * Escapes a URI following the AWS signature v4 escaping rules.\n *\n * @param URI {string} The URI to escape.\n * @returns {string} The escaped URI.\n */\nfunction escapeURI(URI: string): string {\n const hexEncode = (c: string): string => {\n return `%${c.charCodeAt(0).toString(16).toUpperCase()}`\n }\n\n return encodeURIComponent(URI).replace(/[!'()*]/g, hexEncode)\n}\n\n/**\n * formatDate formats a Date object into a ISO8601 formatted date string\n * and a string in the format YYYYMMDD.\n *\n * @param date {Date} The date to format.\n * @returns {DateInfo} The formatted date.\n */\nfunction formatDate(date: Date): DateInfo {\n const longDate = iso8601(date).replace(/[-:]/g, '')\n return {\n longDate,\n shortDate: longDate.slice(0, 8),\n }\n}\n\n/**\n * Formats a time into an ISO 8601 string.\n *\n * @see https://en.wikipedia.org/wiki/ISO_8601\n *\n * @param time {number | string | Date} The time to format.\n * @returns {string} The ISO 8601 formatted time.\n */\nfunction iso8601(time: number | string | Date): string {\n return toDate(time)\n .toISOString()\n .replace(/\\.\\d{3}Z$/, 'Z')\n}\n\n/**\n * Converts a time value into a Date object.\n *\n * @param time {number | string | Date} The time to convert.\n * @returns {Date} The resulting Date object.\n */\nfunction toDate(time: number | string | Date): Date {\n if (typeof time === 'number') {\n return new Date(time * 1000)\n }\n\n if (typeof time === 'string') {\n if (Number(time)) {\n return new Date(Number(time) * 1000)\n }\n\n return new Date(time)\n }\n\n return time\n}\n","import { Endpoint } from './endpoint'\n\n/**\n * Type representing HTTP schemes\n */\nexport type HTTPScheme = 'http' | 'https'\n\n/**\n * Type representing HTTP Methods\n *\n */\nexport type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'DELETE'\n\n/**\n * Type alias representing HTTP Headers\n */\nexport type HTTPHeaders = { [key: string]: string }\n\n/**\n * HTTPHeaderBag is a type alias representing HTTP Headers\n */\nexport type HTTPHeaderBag = Record\n\nexport function hasHeader(soughtHeader: string, headers: HTTPHeaderBag): boolean {\n soughtHeader = soughtHeader.toLowerCase()\n\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * QueryParameterBag is a type alias representing HTTP Query Parameters\n */\nexport type QueryParameterBag = Record>\n\n/**\n * HTTPRequest represents an HTTP request\n */\nexport interface HTTPRequest {\n /**\n * The HTTP method to use\n */\n method: HTTPMethod\n\n /**\n * Represents an AWS service endpoint, providing utilities for parsing and handling URL details.\n */\n endpoint: Endpoint\n\n /**\n * The path to the resource\n */\n path: string\n\n /**\n * The query parameters to include in the request\n */\n query?: QueryParameterBag\n\n /**\n * The headers to include in the request\n */\n headers: HTTPHeaderBag\n\n /**\n * The body of the request\n */\n body?: string | ArrayBuffer | null\n}\n\n/**\n * SignedHTTPRequest represents an HTTP request that has been signed\n * with an AWS signature. It is a superset of HTTPRequest adding\n * the following fields:\n * - url: the fully qualified URL of the request that can be used in a k6 http.request.\n */\nexport interface SignedHTTPRequest extends HTTPRequest {\n url: string\n}\n","/**\n *\n * @param value\n * @returns\n */\nexport function isArrayBuffer(value: unknown): value is ArrayBuffer {\n return (\n typeof ArrayBuffer === 'function' &&\n (value instanceof ArrayBuffer ||\n Object.prototype.toString.call(value) === '[object ArrayBuffer]')\n )\n}\n\nexport function toFormUrlEncoded(form: Record): string {\n return Object.keys(form)\n .reduce((params, key) => {\n const value = form[key]\n if (value !== undefined && value !== null) {\n params.push(`${encodeURIComponent(key)}=${encodeURIComponent(value)}`)\n }\n return params\n }, [] as string[])\n .join('&')\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"k6/http\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"https://jslib.k6.io/k6-utils/1.4.0/index.js\");","import { JSONArray, JSONObject } from 'k6'\nimport http, { RefinedResponse, ResponseType } from 'k6/http'\nimport { uuidv4 } from 'https://jslib.k6.io/k6-utils/1.4.0/index.js'\n\nimport { AWSClient } from './client'\nimport { AWSConfig } from './config'\nimport { AMZ_TARGET_HEADER } from './constants'\nimport { AWSError } from './error'\nimport { HTTPHeaders, HTTPMethod } from './http'\nimport { InvalidSignatureError, SignatureV4 } from './signature'\n\n/**\n * Class allowing to interact with Amazon AWS's SecretsManager service\n */\nexport class SecretsManagerClient extends AWSClient {\n private readonly signature: SignatureV4\n private readonly method: HTTPMethod\n private readonly commonHeaders: HTTPHeaders\n\n /**\n * Create a SecretsManagerClient\n * @param {AWSConfig} awsConfig - configuration attributes to use when interacting with AWS' APIs\n */\n constructor(awsConfig: AWSConfig) {\n super(awsConfig, 'secretsmanager')\n\n this.signature = new SignatureV4({\n service: this.serviceName,\n region: this.awsConfig.region,\n credentials: {\n accessKeyId: this.awsConfig.accessKeyId,\n secretAccessKey: this.awsConfig.secretAccessKey,\n sessionToken: this.awsConfig.sessionToken,\n },\n uriEscapePath: true,\n applyChecksum: false,\n })\n\n // All interactions with the Secrets Manager service\n // are made via the GET or POST method.\n this.method = 'POST'\n this.commonHeaders = {\n 'Content-Type': 'application/x-amz-json-1.1',\n }\n }\n\n /**\n * Returns a list of all secrets owned by the authenticated sender of the request.\n * To use this operation, you must have the secretsmanager:ListSecrets permission.\n *\n * @return {Array.} secrets - An array of objects describing Secret Manager's secrets\n * @throws {SecretsManagerServiceError}\n * @throws {InvalidSignatureError}\n */\n async listSecrets(): Promise> {\n const signedRequest = this.signature.sign(\n {\n method: this.method,\n endpoint: this.endpoint,\n path: '/',\n headers: {\n ...this.commonHeaders,\n [AMZ_TARGET_HEADER]: `${this.serviceName}.ListSecrets`,\n },\n body: JSON.stringify({}),\n },\n {}\n )\n\n const res = await http.asyncRequest(this.method, signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, SecretsManagerOperation.ListSecrets)\n const json: JSONArray = res.json('SecretList') as JSONArray\n\n return json.map((s) => Secret.fromJSON(s as JSONObject))\n }\n\n /**\n * Retrieves a secret from Amazon Sercets Manager\n *\n * @param {string} id - The ARN or name of the secret to retrieve.\n * @returns {Secret} - returns the content of the fetched Secret object.\n * @throws {SecretsManagerServiceError}\n * @throws {InvalidSignatureError}\n */\n async getSecret(id: string): Promise {\n const signedRequest = this.signature.sign(\n {\n method: this.method,\n endpoint: this.endpoint,\n path: '/',\n headers: {\n ...this.commonHeaders,\n [AMZ_TARGET_HEADER]: `${this.serviceName}.GetSecretValue`,\n },\n body: JSON.stringify({ SecretId: id }),\n },\n {}\n )\n\n const res = await http.asyncRequest(this.method, signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n\n this.handleError(res, SecretsManagerOperation.GetSecretValue)\n\n return Secret.fromJSON(res.json() as JSONObject)\n }\n\n /**\n * Creates a new secret\n *\n * Note that this method only supports string-based values at the moment.\n *\n * @param {string} name - The name of the new secret.\n * The secret name can contain ASCII letters, numbers, and the following characters: /_+=.@\n * @param {string} secret - The text data to encrypt and store in this new version of the secret.\n * @param {string} description - The description of the secret.\n * @param {string} versionID=null - Version of the secret. This value helps ensure idempotency.\n * As a default, if no versionID is provided, one will be created for you using the UUID v4\n * algorithm.\n * @param {Array.} tags=[] - A list of tags to attach to the secret. Each tag is a key and\n * value pair of strings in a JSON text string. Note that tag key names are case sensitive.\n * @returns {Secret} - returns the created secret\n * @throws {SecretsManagerServiceError}\n * @throws {InvalidSignatureError}\n */\n async createSecret(\n name: string,\n secret: string,\n description: string,\n versionID?: string,\n tags?: Array\n ): Promise {\n versionID = versionID ?? uuidv4(true)\n\n const signedRequest = this.signature.sign(\n {\n method: this.method,\n endpoint: this.endpoint,\n path: '/',\n headers: {\n ...this.commonHeaders,\n [AMZ_TARGET_HEADER]: `${this.serviceName}.CreateSecret`,\n },\n body: JSON.stringify({\n Name: name,\n Description: description,\n SecretString: secret,\n ClientRequestToken: versionID,\n Tags: tags,\n }),\n },\n {}\n )\n\n // Ensure to include the desired 'Action' in the X-Amz-Target\n // header field, as documented by the AWS API docs.\n // headers['X-Amz-Target'] = `${this.serviceName}.CreateSecret`\n\n const res = await http.asyncRequest(this.method, signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, SecretsManagerOperation.CreateSecret)\n\n return Secret.fromJSON(res.json() as JSONObject)\n }\n /**\n * Update a secret's value.\n *\n * Note that this method only support string-based values at the moment.\n *\n * @param {string} id - The ARN or name of the secret to update.\n * @param {string} secret - The text data to encrypt and store in this new version of the secret.\n * @param {} versionID=null - A unique identifier for the new version of the secret. This value helps ensure idempotency.\n * As a default, if no versionID is provided, one will be created for you using the UUID v4\n * @throws {SecretsManagerServiceError}\n * @throws {InvalidSignatureError}\n */\n async putSecretValue(id: string, secret: string, versionID?: string): Promise {\n versionID = versionID ?? uuidv4(true)\n\n const signedRequest = this.signature.sign(\n {\n method: this.method,\n endpoint: this.endpoint,\n path: '/',\n headers: {\n ...this.commonHeaders,\n [AMZ_TARGET_HEADER]: `${this.serviceName}.PutSecretValue`,\n },\n body: JSON.stringify({\n SecretId: id,\n SecretString: secret,\n ClientRequestToken: versionID,\n }),\n },\n {}\n )\n\n const res = await http.asyncRequest(this.method, signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, SecretsManagerOperation.PutSecretValue)\n\n return Secret.fromJSON(res.json() as JSONObject)\n }\n\n /**\n * Deletes a secret and all of its versions.\n *\n * You can specify a recovery window during which you can restore the secret.\n * The minimum recovery window is 7 days. The default recovery window is 30 days.\n *\n * @param {string} secretID - The ARN or name of the secret to delete.\n * @param {number} recoveryWindow - The number of days from 7 to 30 that Secrets Manager\n * waits before permanently deleting the secret.\n * @throws {SecretsManagerServiceError}\n * @throws {InvalidSignatureError}\n */\n async deleteSecret(\n id: string,\n { recoveryWindow = 30, noRecovery = false }: { recoveryWindow: number; noRecovery: boolean }\n ): Promise {\n const payload: { [key: string]: string | boolean | number } = {\n SecretId: id,\n }\n\n // noRecovery and recoveryWindow are exclusive parameters\n if (noRecovery === true) {\n payload['ForceDeleteWithoutRecovery'] = true\n } else {\n payload['RecoveryWindowInDays'] = recoveryWindow\n }\n\n const signedRequest = this.signature.sign(\n {\n method: this.method,\n endpoint: this.endpoint,\n path: '/',\n headers: {\n ...this.commonHeaders,\n [AMZ_TARGET_HEADER]: `${this.serviceName}.DeleteSecret`,\n },\n body: JSON.stringify(payload),\n },\n {}\n )\n\n const res = await http.asyncRequest(this.method, signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, SecretsManagerOperation.DeleteSecret)\n }\n\n\n protected handleError(response: RefinedResponse, operation?: string): boolean {\n const errored = super.handleError(response, operation)\n if (!errored) {\n return false\n }\n\n const errorCode = response.error_code\n const error = response.json() as JSONObject\n if (errorCode >= 1400 && errorCode <= 1499) {\n // In the event of certain errors, the message is not set.\n // Also, note the inconsistency in casing...\n const errorMessage: string =\n (error.Message as string) || (error.message as string) || (error.__type as string)\n\n // Handle specifically the case of an invalid signature\n if (error.__type === 'InvalidSignatureException') {\n throw new InvalidSignatureError(errorMessage, error.__type)\n }\n\n // Otherwise throw a standard service error\n throw new SecretsManagerServiceError(errorMessage, error.__type as string, operation as SecretsManagerOperation)\n }\n\n if (errorCode === 1500) {\n throw new SecretsManagerServiceError(\n 'An error occured on the server side',\n 'InternalServiceError',\n operation as SecretsManagerOperation\n )\n }\n\n return true\n }\n}\n\n// TODO: create a Tags type\n\n/**\n * Class representing a Secret Manager's secret\n */\nexport class Secret {\n name: string\n arn: string\n secret: string\n createdDate: number\n lastAccessedDate: number\n lastChangedDate: number\n tags: Array<{ [key: string]: string }>\n\n /**\n * Constructs a Secret Manager's Secret\n *\n * @param {string} name - The friendly name of the secret.\n * @param {string} arn - The ARN of the secret.\n * @param {number} createdDate - The date and time that this version of the secret was created.\n * @param {number} lastAccessedDate - The last date that this secret was accessed. This value is\n * truncated to midnight of the date and therefore shows only the date, not the time.\n * @param {number} lastChangedDate - The last date and time that this secret was modified in any way.\n * @param {Array.} tags - The list of user-defined tags associated with the secret.\n */\n constructor(\n name: string,\n arn: string,\n secretString: string,\n createdDate: number,\n lastAccessedDate: number,\n lastChangedDate: number,\n tags: Array<{ [key: string]: string }> = []\n ) {\n this.name = name\n this.arn = arn\n this.secret = secretString\n this.createdDate = createdDate\n this.lastAccessedDate = lastAccessedDate\n this.lastChangedDate = lastChangedDate\n this.tags = tags\n }\n\n /**\n * Parses and constructs a Secret Manager's Secret from the content\n * of a JSON response returned by the AWS service\n *\n * @param {Object} json - JSON object as returned and parsed from\n * the AWS service's API call.\n * @returns {Secret}\n */\n static fromJSON(json: JSONObject) {\n return new Secret(\n json.Name as string,\n json.ARN as string,\n json.SecretString as string,\n json.CreatedDate as number,\n json.LastAccessedDate as number,\n json.LastChangedDate as number,\n json.Tags as Array<{ [key: string]: string }>\n )\n }\n}\n\nexport class SecretsManagerServiceError extends AWSError {\n operation: SecretsManagerOperation\n\n /**\n * Constructs a SecretsManagerServiceError\n *\n * @param {string} message - human readable error message\n * @param {string} code - A unique short code representing the error that was emitted\n * @param {string} operation - Name of the failed Operation\n */\n constructor(message: string, code: string, operation: SecretsManagerOperation) {\n super(message, code)\n this.name = 'SecretsManagerServiceError'\n this.operation = operation\n }\n}\n\n/**\n * SecretsManagerOperation defines all currently implemented Secrets Manager Service operations.\n */\nenum SecretsManagerOperation {\n ListSecrets = 'ListSecrets',\n GetSecretValue = 'GetSecretValue',\n CreateSecret = 'CreateSecret',\n PutSecretValue = 'PutSecretValue',\n DeleteSecret = 'DeleteSecret',\n}\n","import { RefinedResponse, ResponseType, Params } from 'k6/http'\n\nimport { AWSConfig } from './config'\nimport { Endpoint } from './endpoint'\nimport { HTTPHeaders } from './http'\nimport {\n GeneralErrorKind,\n DNSErrorKind,\n TCPErrorKind,\n TLSErrorKind,\n HTTP2ErrorKind,\n GeneralError,\n DNSError,\n TCPError,\n TLSError,\n HTTP2Error,\n} from './error'\n\n/**\n * Class allowing to build requests targeting AWS APIs\n *\n * This class is meant to be used as a base class for specific\n * services clients. See S3Client or SecretsManagerClient for\n * usage examples.\n */\nexport class AWSClient {\n readonly awsConfig: AWSConfig\n readonly serviceName: string\n\n // Because jslib-aws is mostly used as a way to setup or feed k6 tests, and\n // we want the jslib-aws to be able to disregard k6's discardResponseBodies: meaning\n // that for instance, even when setting discardResponseBodies to true in the k6 options, using\n // s3.getObject still receives the underlying response body and returns data to the user.\n //\n // To achieve this, we set the responseType to 'text' in the baseRequestParams, as it\n // will lead the http module to ignore the discardResponseBodies option.\n //\n // AWS Client classes can override this value if they want to receive the response body\n // as a different type ('binary' for instance, e.g. S3Client.getObject).\n //\n // See #45: https://github.com/grafana/k6-jslib-aws/issues/45\n readonly baseRequestParams: Params = {\n responseType: 'text',\n }\n\n private _endpoint?: Endpoint\n\n /**\n * @param {AWSConfig} awsConfig - configuration attributes to use when interacting with AWS' APIs\n * @param {string} serviceName - name of the service to target.\n * @param {URIEncodingConfig} URIencodingConfig - configures how requests URIs should be encoded.\n */\n constructor(awsConfig: AWSConfig, serviceName: string) {\n this.awsConfig = awsConfig\n this.serviceName = serviceName\n\n // If an endpoint is provided in the config, set it\n // to ensure the default endpoint is not used.\n if (awsConfig.endpoint != undefined) {\n this._endpoint = awsConfig.endpoint\n }\n }\n\n /**\n * Represents the endpoint URL of the AWS service.\n *\n * If no custom endpoint is set, a default endpoint will be constructed\n * using the service name and region provided in the AWS config.\n *\n * @type {Endpoint}\n * @public\n */\n public get endpoint() {\n if (this._endpoint == undefined) {\n this._endpoint = new Endpoint(\n `https://${this.serviceName}.${this.awsConfig.region}.amazonaws.com`\n )\n }\n return this._endpoint\n }\n\n /**\n * Updates the endpoint URL of the AWS service.\n *\n * This can be used to override the default AWS service endpoint or set a custom endpoint.\n *\n * @param {Endpoint} endpoint - The new endpoint to set for the AWS service.\n * @public\n */\n public set endpoint(endpoint: Endpoint) {\n this._endpoint = endpoint\n }\n\n /**\n * Handles the k6 http response potential errors produced when making a\n * request to an AWS service.\n *\n * Importantly, this method only handles errors that emerge from the k6 http client itself, and\n * won't handle AWS specific errors. To handle AWS specific errors, client classes are\n * expected to implement their own error handling logic by overriding this method.\n *\n * @param response {RefinedResponse} the response received by the k6 http client\n * @param operation {string | undefined } the name of the operation that was attempted when the error occurred\n * @param {boolean} returns true if an error was handled, false otherwise\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n protected handleError(response: RefinedResponse, operation?: string): boolean {\n const status: number = response.status\n const errorCode: number = response.error_code\n const errorMessage: string = response.error\n\n // We consider codes 200-299 as success.\n //\n // We do not consider 3xx as success as some services such as S3 can use\n // 301 to indicate a bucket not found\n if (status >= 200 && status < 300 && errorMessage == '' && errorCode === 0) {\n return false\n }\n\n switch (errorCode) {\n case GeneralErrorKind.GenericError:\n case GeneralErrorKind.NonTCPNetworkError:\n case GeneralErrorKind.InvalidURL:\n case GeneralErrorKind.HTTPRequestTimeout:\n throw new GeneralError(errorCode);\n case DNSErrorKind.GenericDNSError:\n case DNSErrorKind.NoIPFound:\n case DNSErrorKind.BlacklistedIP:\n case DNSErrorKind.BlacklistedHostname:\n throw new DNSError(errorCode);\n case TCPErrorKind.GenericTCPError:\n case TCPErrorKind.BrokenPipeOnWrite:\n case TCPErrorKind.UnknownTCPError:\n case TCPErrorKind.GeneralTCPDialError:\n case TCPErrorKind.DialTimeoutError:\n case TCPErrorKind.DialConnectionRefused:\n case TCPErrorKind.DialUnknownError:\n case TCPErrorKind.ResetByPeer:\n throw new TCPError(errorCode);\n case TLSErrorKind.GeneralTLSError:\n case TLSErrorKind.UnknownAuthority:\n case TLSErrorKind.CertificateHostnameMismatch:\n throw new TLSError(errorCode);\n case HTTP2ErrorKind.GenericHTTP2Error:\n case HTTP2ErrorKind.GeneralHTTP2GoAwayError:\n throw new HTTP2Error(errorCode);\n }\n\n return true\n }\n}\n\n/**\n * Type alias representing the result of an AWSClient.buildRequest call\n */\nexport interface AWSRequest {\n readonly url: string\n readonly headers: HTTPHeaders\n}\n"],"names":["__webpack_require__","module","getter","__esModule","d","a","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","Endpoint","endpoint","_classCallCheck","_defineProperty","completeUrl","startsWith","concat","DEFAULT_PROTOCOL","protocolMatch","match","hostnameWithPort","_slicedToArray","replace","split","this","_protocol","slice","_hostname","_port","parseInt","undefined","href","set","_value$split2","hostname","port","protocol","host","AWSConfig","options","region","InvalidAWSConfigError","accessKeyId","length","secretAccessKey","sessionToken","_createClass","__ENV","AWS_REGION","AWS_ACCESS_KEY_ID","AWS_SECRET_ACCESS_KEY","AWS_SESSION_TOKEN","_Error","message","_callSuper","_inherits","_wrapNativeSuper","Error","require","AWSError","code","_this","name","xmlDocument","doc","parseHTML","find","text","response","headers","error","json","Message","__type","parseXML","body","NetworkError","_Error2","_this2","ErrorMessages","GeneralError","_NetworkError2","DNSError","_NetworkError3","TCPError","_NetworkError4","TLSError","_NetworkError5","HTTP2Error","_NetworkError6","GeneralErrorKind","DNSErrorKind","TCPErrorKind","TLSErrorKind","HTTP2ErrorKind","_ErrorMessages","GenericError","NonTCPNetworkError","InvalidURL","HTTPRequestTimeout","GenericDNSError","NoIPFound","BlacklistedIP","BlacklistedHostname","GenericTCPError","BrokenPipeOnWrite","UnknownTCPError","GeneralTCPDialError","DialTimeoutError","DialConnectionRefused","DialUnknownError","ResetByPeer","GeneralTLSError","UnknownAuthority","CertificateHostnameMismatch","GenericHTTP2Error","GeneralHTTP2GoAwayError","AMZ_DATE_QUERY_PARAM","AMZ_SIGNATURE_QUERY_PARAM","AMZ_TOKEN_QUERY_PARAM","AMZ_CONTENT_SHA256_HEADER","AMZ_DATE_HEADER","toLowerCase","AMZ_SIGNATURE_HEADER","AMZ_TARGET_HEADER","AMZ_TOKEN_HEADER","AUTHORIZATION_HEADER","GENERATED_HEADERS","HOST_HEADER","ALWAYS_UNSIGNABLE_HEADERS","authorization","connection","expect","from","pragma","referer","te","trailer","upgrade","KEY_TYPE_IDENTIFIER","SIGNING_ALGORITHM_IDENTIFIER","SignatureV4","_ref","service","credentials","uriEscapePath","applyChecksum","request","arguments","finalOptions","_objectSpread","signingDate","Date","unsignableHeaders","Set","signableHeaders","_formatDate","formatDate","longDate","shortDate","signingService","signingRegion","scope","constants","_i","_Object$keys","keys","headerName","indexOf","ArrayBuffer","isView","buffer","payloadHash","computePayloadHash","soughtHeader","hasHeader","canonicalHeaders","computeCanonicalHeaders","signature","calculateSignature","deriveSigningKey","createCanonicalRequest","sort","join","url","path","endsWith","query","serializeQueryParameters","originalRequest","_options$signingDate","_options$expiresIn","expiresIn","unhoistableHeaders","_formatDate2","InvalidSignatureError","moveHeadersToQuery","toString","signingKey","canonicalRequest","_url","sortedHeaders","sortedCanonicalHeaders","map","signedHeaders","method","computeCanonicalURI","computeCanonicalQuerystring","credentialScope","hashedCanonicalRequest","crypto","stringToSign","createStringToSign","kSecret","kDate","kRegion","kService","_ref2","_step","normalizedURISegments","_iterator","_createForOfIteratorHelper","s","n","done","URISegment","pop","push","err","e","f","leading","URI","trailing","normalizedURI","encodeURIComponent","_ref3","_step2","_ref3$query","serialized","_loop","escapeURI","Array","isArray","reduce","encoded","_iterator2","filter","_ref4","_step3","_iterator3","canonicalHeaderName","has","trim","_ref5","requestCopy","JSON","parse","stringify","_requestCopy$query","_i2","_Object$keys2","_options$unhoistableH","lowerCaseName","ignoreKeys","_step4","_loop2","includes","_iterator4","_AWSError","c","charCodeAt","toUpperCase","date","time","Number","toDate","toISOString","_regeneratorRuntime","t","r","i","iterator","asyncIterator","u","define","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","h","l","y","GeneratorFunction","GeneratorFunctionPrototype","p","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","reverse","prev","charAt","stop","rval","handle","complete","finish","delegateYield","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptor","apply","getOwnPropertyDescriptors","defineProperties","asyncGeneratorStep","_asyncToGenerator","_next","_throw","_defineProperties","_toPropertyKey","_getPrototypeOf","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","Boolean","valueOf","_get","bind","_superPropBase","_setPrototypeOf","toPrimitive","String","_toPrimitive","SecretsManagerClient","_AWSClient","awsConfig","serviceName","commonHeaders","_listSecrets","_callee","signedRequest","res","_context","sign","http","baseRequestParams","handleError","SecretsManagerOperation","ListSecrets","Secret","fromJSON","_getSecret","_callee2","id","_context2","SecretId","GetSecretValue","_x","_createSecret","_callee3","secret","description","versionID","tags","_versionID","_context3","uuidv4","Name","Description","SecretString","ClientRequestToken","Tags","CreateSecret","_x2","_x3","_x4","_x5","_x6","_putSecretValue","_callee4","_versionID2","_context4","PutSecretValue","_x7","_x8","_x9","_deleteSecret","_callee5","_ref$recoveryWindow","recoveryWindow","_ref$noRecovery","payload","_context5","noRecovery","DeleteSecret","_x10","_x11","operation","errorCode","error_code","errorMessage","SecretsManagerServiceError","AWSClient","responseType","_endpoint","status","arn","secretString","createdDate","lastAccessedDate","lastChangedDate","ARN","CreatedDate","LastAccessedDate","LastChangedDate"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/aws/0.13.0/signature.js b/lib/aws/0.13.0/signature.js new file mode 100644 index 0000000..29fc769 --- /dev/null +++ b/lib/aws/0.13.0/signature.js @@ -0,0 +1,2 @@ +(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{AMZ_ALGORITHM_QUERY_PARAM:()=>r,AMZ_CONTENT_SHA256_HEADER:()=>s,AMZ_CREDENTIAL_QUERY_PARAM:()=>n,AMZ_DATE_HEADER:()=>l,AMZ_DATE_QUERY_PARAM:()=>o,AMZ_EXPIRES_QUERY_PARAM:()=>i,AMZ_SIGNATURE_QUERY_PARAM:()=>a,AMZ_SIGNED_HEADERS_QUERY_PARAM:()=>c,AMZ_TOKEN_QUERY_PARAM:()=>u,AUTHORIZATION_HEADER:()=>p,AWSConfig:()=>M,AWSError:()=>ee,DNSError:()=>ne,Endpoint:()=>P,GeneralError:()=>re,HOST_HEADER:()=>d,HTTP2Error:()=>ae,InvalidAWSConfigError:()=>U,InvalidSignatureError:()=>Ce,NetworkError:()=>te,SIGNING_ALGORITHM_IDENTIFIER:()=>m,SignatureV4:()=>ke,TCPError:()=>oe,TLSError:()=>ie,UNSIGNED_PAYLOAD:()=>g});var r="X-Amz-Algorithm",n="X-Amz-Credential",o="X-Amz-Date",i="X-Amz-Expires",a="X-Amz-Signature",c="X-Amz-SignedHeaders",u="X-Amz-Security-Token",s="x-amz-content-sha256",l=o.toLowerCase(),f=a.toLowerCase(),y=("X-Amz-Target".toLowerCase(),u.toLowerCase()),p="authorization",h=[p,l,"date"],d="host",b={authorization:!0,"cache-control":!0,connection:!0,expect:!0,from:!0,"keep-alive":!0,"max-forwards":!0,pragma:!0,referer:!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0,"user-agent":!0,"x-amzn-trace-id":!0},v="aws4_request",m="AWS4-HMAC-SHA256",g="UNSIGNED-PAYLOAD";function w(e){return w="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},w(e)}function E(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,c=[],u=!0,s=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(c.push(n.value),c.length!==t);u=!0);}catch(e){s=!0,o=e}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(s)throw o}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return S(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?S(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function S(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r128)throw new U("invalid AWS access key ID; reason: size should be between 16 and 128 characters, got ".concat(t.accessKeyId.length));if(!t.secretAccessKey||""===t.secretAccessKey)throw new U("invalid AWS secret access key; reason: expected a non empty string, got `".concat(t.secretAccessKey,"`"));this.region=t.region,this.accessKeyId=t.accessKeyId,this.secretAccessKey=t.secretAccessKey,void 0!==t.sessionToken&&(this.sessionToken=t.sessionToken),void 0!==t.endpoint&&("string"==typeof t.endpoint?this.endpoint=new P(t.endpoint):this.endpoint=t.endpoint)}return N(e,null,[{key:"fromEnvironment",value:function(t){return new e({region:__ENV.AWS_REGION,accessKeyId:__ENV.AWS_ACCESS_KEY_ID,secretAccessKey:__ENV.AWS_SECRET_ACCESS_KEY,sessionToken:__ENV.AWS_SESSION_TOKEN,endpoint:null==t?void 0:t.endpoint})}}])}(),U=function(e){function t(e){return I(this,t),j(this,t,[e])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&R(e,t)}(t,e),N(t)}(k(Error));const x=require("k6/html");var K;function B(e){return B="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},B(e)}function W(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function q(e,t){for(var r=0;r=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){c=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(c)throw i}}}}function Ee(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r1&&void 0!==arguments[1]?arguments[1]:{},r=Oe(Oe({},{signingDate:new Date,unsignableHeaders:new Set,signableHeaders:new Set}),t),n=De(r.signingDate),o=n.longDate,i=n.shortDate,a=r.signingService||this.service,c=r.signingRegion||this.region,u="".concat(i,"/").concat(c,"/").concat(a,"/").concat(v);e.headers[d]||(e.headers[d]=e.endpoint.hostname);for(var f=0,b=Object.keys(e.headers);f-1&&delete e.headers[g]}e.headers[l]=o,this.credentials.sessionToken&&(e.headers[y]=this.credentials.sessionToken),ArrayBuffer.isView(e.body)&&(e.body=e.body.buffer),e.body||(e.body="");var w=this.computePayloadHash(e);!function(e,t){e=e.toLowerCase();for(var r=0,n=Object.keys(t);r1&&void 0!==arguments[1]?arguments[1]:{},s=t.signingDate,l=void 0===s?new Date:s,f=t.expiresIn,y=void 0===f?3600:f,p=t.unsignableHeaders,h=t.unhoistableHeaders,b=t.signableHeaders,g=t.signingRegion,w=t.signingService,E=De(l),S=E.longDate,O=E.shortDate,A=g||this.region,T=w||this.service;if(y>604800)throw new Ce("Signature version 4 presigned URLs can't be valid for more than 7 days");var P="".concat(O,"/").concat(A,"/").concat(T,"/").concat(v),_=this.moveHeadersToQuery(e,{unhoistableHeaders:h});_.headers[d]||(_.headers[d]=e.endpoint.hostname),this.credentials.sessionToken&&(_.query[u]=this.credentials.sessionToken),_.query[r]=m,_.query[n]="".concat(this.credentials.accessKeyId,"/").concat(P),_.query[o]=S,_.query[i]=y.toString(10);var j=this.computeCanonicalHeaders(_,p,b);_.query[c]=Object.keys(j).sort().join(";");var k=this.deriveSigningKey(this.credentials,T,A,O),C=this.computePayloadHash(e),R=this.createCanonicalRequest(_,j,C);_.query[a]=this.calculateSignature(S,P,k,R);var D,I=e.endpoint.href;_.path&&(I=null!==(D=I)&&void 0!==D&&D.endsWith("/")?I:I+"/",I+=_.path);return _.query&&(I+="?".concat(this.serializeQueryParameters(_.query))),Oe({url:I},_)}},{key:"createCanonicalRequest",value:function(e,t,r){var n=Object.keys(t).sort(),o=n.map((function(e){return"".concat(e,":").concat(t[e])})).join("\n"),i=n.join(";");return"".concat(e.method,"\n")+"".concat(this.computeCanonicalURI(e),"\n")+"".concat(this.computeCanonicalQuerystring(e),"\n")+"".concat(o,"\n\n")+"".concat(i,"\n")+"".concat(r)}},{key:"createStringToSign",value:function(e,t,r){var n=he().sha256(r,"hex");return"".concat(m,"\n")+"".concat(e,"\n")+"".concat(t,"\n")+"".concat(n)}},{key:"calculateSignature",value:function(e,t,r,n){var o=this.createStringToSign(e,t,n);return he().hmac("sha256",r,o,"hex")}},{key:"deriveSigningKey",value:function(e,t,r,n){var o=e.secretAccessKey,i=he().hmac("sha256","AWS4"+o,n,"binary"),a=he().hmac("sha256",i,r,"binary"),c=he().hmac("sha256",a,t,"binary");return he().hmac("sha256",c,"aws4_request","binary")}},{key:"computeCanonicalURI",value:function(e){var t=e.path;if(this.uriEscapePath){var r,n=[],o=we(t.split("/"));try{for(o.s();!(r=o.n()).done;){var i=r.value;0!==(null==i?void 0:i.length)&&("."!==i&&(".."===i?n.pop():n.push(i)))}}catch(e){o.e(e)}finally{o.f()}var a=null!=t&&t.startsWith("/")?"/":"",c=n.join("/"),u=n.length>0&&null!=t&&t.endsWith("/")?"/":"",s="".concat(a).concat(c).concat(u);return encodeURIComponent(s).replace(/%2F/g,"/")}return t}},{key:"computeCanonicalQuerystring",value:function(e){var t,r=e.query,n=void 0===r?{}:r,o=[],i={},a=function(e){if(e.toLowerCase()===f)return 1;o.push(e);var t=n[e];"string"==typeof t?i[e]="".concat(Re(e),"=").concat(Re(t)):Array.isArray(t)&&(i[e]=t.slice(0).sort().reduce((function(t,r){return t.concat(["".concat(Re(e),"=").concat(Re(r))])}),[]).join("&"))},c=we(Object.keys(n).sort());try{for(c.s();!(t=c.n()).done;){a(t.value)}}catch(e){c.e(e)}finally{c.f()}return o.map((function(e){return i[e]})).filter((function(e){return e})).join("&")}},{key:"computeCanonicalHeaders",value:function(e,t,r){var n,o=e.headers,i={},a=we(Object.keys(o).sort());try{for(a.s();!(n=a.n()).done;){var c=n.value;if(null!=o[c]){var u=c.toLowerCase();(u in b||null!=t&&t.has(u))&&(!r||r&&!r.has(u))||"string"==typeof o[c]&&(i[u]=o[c]=o[c].trim().replace(/\s+/g," "))}}}catch(e){a.e(e)}finally{a.f()}return i}},{key:"computePayloadHash",value:function(e){var t,r=e.headers,n=e.body;return r[s]?r[s]:null==n?"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855":"string"==typeof n||(t=n,"function"==typeof ArrayBuffer&&(t instanceof ArrayBuffer||"[object ArrayBuffer]"===Object.prototype.toString.call(t)))?he().sha256(n,"hex").toLowerCase():ArrayBuffer.isView(n)?he().sha256(n.buffer,"hex").toLowerCase():g}},{key:"moveHeadersToQuery",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=JSON.parse(JSON.stringify(e)),n=r.headers,o=r.query,i=void 0===o?{}:o,a=0,c=Object.keys(n);a {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * Standard Amazon AWS query parameter names\n */\nexport const AMZ_ALGORITHM_QUERY_PARAM = 'X-Amz-Algorithm'\nexport const AMZ_CREDENTIAL_QUERY_PARAM = 'X-Amz-Credential'\nexport const AMZ_DATE_QUERY_PARAM = 'X-Amz-Date'\nexport const AMZ_EXPIRES_QUERY_PARAM = 'X-Amz-Expires'\nexport const AMZ_SIGNATURE_QUERY_PARAM = 'X-Amz-Signature'\nexport const AMZ_SIGNED_HEADERS_QUERY_PARAM = 'X-Amz-SignedHeaders'\nexport const AMZ_TARGET_QUERY_PARAM = 'X-Amz-Target'\nexport const AMZ_TOKEN_QUERY_PARAM = 'X-Amz-Security-Token'\n\n/**\n * Standard Amazon AWS header names\n */\nexport const AMZ_CONTENT_SHA256_HEADER = 'x-amz-content-sha256'\nexport const AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase()\nexport const AMZ_SIGNATURE_HEADER = AMZ_SIGNATURE_QUERY_PARAM.toLowerCase()\nexport const AMZ_TARGET_HEADER = AMZ_TARGET_QUERY_PARAM.toLowerCase()\nexport const AMZ_TOKEN_HEADER = AMZ_TOKEN_QUERY_PARAM.toLowerCase()\n\n/**\n * Common HTTP headers we rely on in the signing process\n */\nexport const AUTHORIZATION_HEADER = 'authorization'\nexport const DATE_HEADER = 'date'\n\n/**\n * Lists the headers that are generated as part of the signature process.\n */\nexport const GENERATED_HEADERS = [AUTHORIZATION_HEADER, AMZ_DATE_HEADER, DATE_HEADER]\nexport const HOST_HEADER = 'host'\n\n/**\n * Lists the headers that should never be included in the\n * request signature signature process.\n */\nexport const ALWAYS_UNSIGNABLE_HEADERS = {\n authorization: true,\n 'cache-control': true,\n connection: true,\n expect: true,\n from: true,\n 'keep-alive': true,\n 'max-forwards': true,\n pragma: true,\n referer: true,\n te: true,\n trailer: true,\n 'transfer-encoding': true,\n upgrade: true,\n 'user-agent': true,\n 'x-amzn-trace-id': true,\n}\n\n/**\n * Signature specific constants included in the signing process\n */\nexport const KEY_TYPE_IDENTIFIER = 'aws4_request'\nexport const SIGNING_ALGORITHM_IDENTIFIER = 'AWS4-HMAC-SHA256'\n\n/**\n * Maximum time to live of a signed request in seconds: 7 days.\n */\nexport const MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7\n\n/**\n * SHA256 hash of an empty string (so we don't waste cycles recomputing it)\n */\nexport const EMPTY_SHA256 = 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'\n\n/**\n * SHA256 hash of the unsigned payload constant (so we don't waste cycles recomputing it)\n */\nexport const UNSIGNED_PAYLOAD_SHA256 =\n '5a41b0751e4537c6ff868564ab44a4d4ecceec2ec5b1c5f74d97422968e04237'\n\nexport const UNSIGNED_PAYLOAD = 'UNSIGNED-PAYLOAD'\n","/**\n * Represents an AWS service endpoint, providing utilities for parsing and handling URL details.\n */\nexport class Endpoint {\n private _protocol: string\n private _hostname: string\n private _port?: number\n\n // Default protocol, this can be globally changed as per application requirements\n private static readonly DEFAULT_PROTOCOL = 'https' // Set this as per AWS.config\n\n /**\n // * Constructs a new Endpoint instance.\n *\n * @param {string} endpoint - The URL to construct an endpoint from. If the URL omits a protocol, the default protocol will be used.\n */\n constructor(endpoint: string) {\n const isDefaultProtocol =\n !endpoint.startsWith('http://') && !endpoint.startsWith('https://')\n const completeUrl = isDefaultProtocol\n ? `${Endpoint.DEFAULT_PROTOCOL}://${endpoint}`\n : endpoint\n\n const protocolMatch = completeUrl.match(/^https?:/)\n const hostAndPath = completeUrl.replace(/^https?:\\/\\//, '')\n const [hostnameWithPort] = hostAndPath.split('/')\n\n this._protocol = protocolMatch ? protocolMatch[0].slice(0, -1) : Endpoint.DEFAULT_PROTOCOL\n this._hostname = hostnameWithPort.split(':')[0]\n this._port = hostnameWithPort.split(':')[1]\n ? parseInt(hostnameWithPort.split(':')[1])\n : undefined\n }\n\n /**\n * Creates a new Endpoint instance that is a copy of the current one.\n *\n * @returns {Endpoint} The copied Endpoint.\n */\n public copy(): Endpoint {\n return new Endpoint(this.href)\n }\n\n /**\n * Gets the host portion of the endpoint including the port.\n *\n * @returns {string} The host portion of the endpoint including the port.\n */\n public get host(): string {\n return this._port ? `${this._hostname}:${this._port}` : this._hostname\n }\n\n /**\n * Sets the host portion of the endpoint including the port.\n *\n * @param {string} value - The value to set for the host.\n */\n public set host(value: string) {\n const [hostname, port] = value.split(':')\n this._hostname = hostname\n this._port = port ? parseInt(port) : undefined\n }\n\n /**\n * Gets the host portion of the endpoint without the port.\n *\n * @returns {string} The host portion of the endpoint.\n */\n public get hostname(): string {\n return this._hostname\n }\n\n /**\n * Sets the host portion of the endpoint without the port.\n *\n * @param {string} value - The value to set for the hostname.\n */\n public set hostname(value: string) {\n this._hostname = value\n }\n\n /**\n * Gets the full URL of the endpoint.\n *\n * @returns {string} The full URL of the endpoint.\n */\n public get href(): string {\n return `${this.protocol}://${this.host}`\n }\n\n /**\n * Sets the full URL of the endpoint.\n *\n * @param {string} value - The value to set for the full URL.\n */\n public set href(value: string) {\n const protocolMatch = value.match(/^https?:/)\n const withoutProtocol = value.replace(/^https?:\\/\\//, '')\n const [hostnameWithPort] = withoutProtocol.split('/')\n\n this._protocol = protocolMatch ? protocolMatch[0].slice(0, -1) : Endpoint.DEFAULT_PROTOCOL // remove the trailing colon\n this._hostname = hostnameWithPort.split(':')[0]\n this._port = hostnameWithPort.split(':')[1]\n ? parseInt(hostnameWithPort.split(':')[1])\n : undefined\n }\n\n /**\n * Gets the port of the endpoint.\n *\n * @returns {number|undefined} The port of the endpoint.\n */\n public get port(): number | undefined {\n return this._port\n }\n\n /**\n * Sets the port of the endpoint.\n *\n * @param {number|undefined} value - The value to set for the port.\n */\n public set port(value: number | undefined) {\n this._port = value\n }\n\n /**\n * Gets the protocol (http or https) of the endpoint URL.\n *\n * @returns {string} The protocol of the endpoint URL.\n */\n public get protocol(): string {\n return this._protocol\n }\n\n /**\n * Sets the protocol (http or https) of the endpoint URL.\n *\n * @param {string} value - The value to set for the protocol.\n */\n public set protocol(value: string) {\n this._protocol = value\n }\n}\n","import { HTTPScheme } from './http'\nimport { Endpoint } from './endpoint'\n\n/** Class holding an AWS connection information */\nexport class AWSConfig {\n /**\n * The AWS region to connect to, as listed: https://docs.aws.amazon.com/general/latest/gr/rande.html\n *\n * @type {string}\n */\n region: string\n\n /**\n * Your user's AWS access key id credential.\n *\n * @type {string}\n */\n accessKeyId: string\n\n /**\n * Your user's AWS secret access key credential.\n *\n * @type {string}\n */\n secretAccessKey: string\n\n /**\n * Your user's AWS session token credential.\n *\n * @type {string}\n */\n sessionToken?: string\n\n /**\n * The AWS hostname to connect to.\n *\n * @type {string} ['amazonaws.com']\n */\n endpoint?: Endpoint\n\n /**\n * fromEnvironment creates an AWSConfig from the environment variables.\n *\n * It expects to find the following compulsory environment variables:\n * * AWS_REGION\n * * AWS_ACCESS_KEY_ID\n * * AWS_SECRET_ACCESS_KEY\n *\n * If set, the following optional environment variables are also used:\n * * AWS_SESSION_TOKEN\n *\n * Finally, the options parameter allows to explicitly set the scheme and endpoint\n * to use when connecting to AWS.\n *\n * @param options {AWSConnectionOptions}\n * @returns\n */\n static fromEnvironment(options?: AWSConnectionOptions): AWSConfig {\n const region = __ENV.AWS_REGION\n const accessKeyId = __ENV.AWS_ACCESS_KEY_ID\n const secretAccessKey = __ENV.AWS_SECRET_ACCESS_KEY\n const sessionToken: string | undefined = __ENV.AWS_SESSION_TOKEN\n const endpoint: Endpoint | string | undefined = options?.endpoint\n\n return new AWSConfig({\n region,\n accessKeyId,\n secretAccessKey,\n sessionToken,\n endpoint: endpoint,\n })\n }\n\n /**\n * Create an AWSConfig.\n *\n * @param {AWSConfigOptions} options - configuration attributes to use when interacting with AWS' APIs\n * @throws {InvalidArgumentException}\n */\n constructor(options: AWSConfigOptions) {\n if (!options.region || options.region === '') {\n throw new InvalidAWSConfigError(\n `invalid AWS region; reason: expected a valid AWS region name (e.g. \"us-east-1\"), got \\`${options.region}\\``\n )\n }\n\n if (!options.accessKeyId || options.accessKeyId === '') {\n throw new InvalidAWSConfigError(\n `invalid AWS access key ID; reason: expected a non empty string, got \\`${options.accessKeyId}\\``\n )\n }\n\n if (options.accessKeyId.length < 16 || options.accessKeyId.length > 128) {\n throw new InvalidAWSConfigError(\n `invalid AWS access key ID; reason: size should be between 16 and 128 characters, got ${options.accessKeyId.length}`\n )\n }\n\n if (!options.secretAccessKey || options.secretAccessKey === '') {\n throw new InvalidAWSConfigError(\n `invalid AWS secret access key; reason: expected a non empty string, got \\`${options.secretAccessKey}\\``\n )\n }\n\n this.region = options.region\n this.accessKeyId = options.accessKeyId\n this.secretAccessKey = options.secretAccessKey\n\n if (options.sessionToken !== undefined) {\n this.sessionToken = options.sessionToken\n }\n\n if (options.endpoint !== undefined) {\n if (typeof options.endpoint === 'string') {\n this.endpoint = new Endpoint(options.endpoint)\n } else {\n this.endpoint = options.endpoint\n }\n }\n }\n}\n\n/**\n * Interface representing AWSConfig options\n */\nexport interface AWSConfigOptions extends AWSConnectionOptions {\n /**\n * The AWS region to connect to, as listed: https://docs.aws.amazon.com/general/latest/gr/rande.html\n *\n * @type {string}\n */\n region: string\n\n /**\n * Your user's AWS access key id credential.\n *\n * @type {string}\n */\n accessKeyId: string\n\n /**\n * Your user's AWS secret access key credential.\n *\n * @type {string}\n */\n secretAccessKey: string\n\n /**\n * Your user's AWS session token credential.\n *\n * @type {string}\n */\n sessionToken?: string\n}\n\n/**\n * Interface representing AWS connection options\n */\nexport interface AWSConnectionOptions {\n /**\n * The HTTP scheme to use when connecting to AWS.\n *\n * @type {HTTPScheme}\n */\n scheme?: HTTPScheme\n\n /**\n * The AWS hostname to connect to.\n *\n * @type {string}\n */\n endpoint?: Endpoint | string\n}\n\n/** Class representing an invalid AWS configuration */\nexport class InvalidAWSConfigError extends Error {\n constructor(message: string) {\n super(message)\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"k6/html\");","import { JSONObject } from './json'\nimport { parseHTML } from 'k6/html'\nimport { Response } from 'k6/http'\n\n/**\n * Base class to derive errors from\n *\n * Inspired from AWS official error types, as\n * described in:\n * * https://aws.amazon.com/blogs/developer/service-error-handling-modular-aws-sdk-js/\n * * https://github.com/aws/aws-sdk-js/blob/master/lib/error.d.ts\n */\nexport class AWSError extends Error {\n /**\n * Error code issued by the service (if any)\n */\n code?: string\n\n /**\n * Create an AWSError\n *\n * @param {string} message - A longer human readable error message.\n * @param {string?} code - A unique short code representing the error that was emitted\n */\n constructor(message: string, code?: string) {\n super(message)\n this.name = 'AWSError'\n this.code = code\n }\n\n /**\n * Parse an AWSError from an XML document\n *\n * @param {string} xmlDocument - Serialized XML document to parse the error from\n * @returns {AWSError} - The parsed AWSError object\n */\n static parseXML(xmlDocument: string): AWSError {\n const doc = parseHTML(xmlDocument)\n return new AWSError(doc.find('Message').text(), doc.find('Code').text())\n }\n\n /**\n * Parse an AWSError from a Response object\n *\n * @param {Response} response - The Response object to parse the error from\n * @returns {AWSError} - The parsed AWSError object\n */\n static parse(response: Response): AWSError {\n if (response.headers['Content-Type'] === 'application/json') {\n const error = (response.json() as JSONObject) || {}\n const message =\n error.Message ||\n error.message ||\n error.__type ||\n 'An error occurred on the server side'\n const code = response.headers['X-Amzn-Errortype'] || error.__type\n return new AWSError(message as string, code as string)\n } else {\n return AWSError.parseXML(response.body as string)\n }\n }\n}\n\n/**\n * Base class for network errors as produced by k6.\n *\n * Based on the network error handling in k6, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n *\n * @typeparam N - The name of the network error\n * @typeparam K - The kind of the network error\n */\nexport class NetworkError extends Error {\n code: K\n name: N\n\n /**\n * Create a NetworkError\n *\n * @param {N} name - The name of the network error\n * @param {K} code - The kind of the network error\n */\n constructor(name: N, code: K) {\n super(ErrorMessages[code] || 'An unknown error occurred')\n this.name = name\n this.code = code\n }\n}\n\n/**\n * Represents a general network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class GeneralError extends NetworkError<'GeneralError', GeneralErrorKind> {\n /**\n * Create a GeneralError\n *\n * @param {GeneralErrorKind} code - The kind of the general error\n */\n constructor(code: GeneralErrorKind) {\n super('GeneralError', code)\n }\n}\n\n/**\n * Represents a DNS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class DNSError extends NetworkError<'DNSError', DNSErrorKind> {\n /**\n * Create a DNSError\n *\n * @param {DNSErrorKind} code - The kind of the DNS error\n */\n constructor(code: DNSErrorKind) {\n super('DNSError', code)\n }\n}\n\n/**\n * Represents a TCP-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class TCPError extends NetworkError<'TCPError', TCPErrorKind> {\n /**\n * Create a TCPError\n *\n * @param {TCPErrorKind} code - The kind of the TCP error\n */\n constructor(code: TCPErrorKind) {\n super('TCPError', code)\n }\n}\n\n/**\n * Represents a TLS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class TLSError extends NetworkError<'TLSError', TLSErrorKind> {\n /**\n * Create a TLSError\n *\n * @param {TLSErrorKind} code - The kind of the TLS error\n */\n constructor(code: TLSErrorKind) {\n super('TLSError', code)\n }\n}\n\n/**\n * Represents an HTTP/2-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class HTTP2Error extends NetworkError<'HTTP2Error', HTTP2ErrorKind> {\n /**\n * Create an HTTP2Error\n *\n * @param {HTTP2ErrorKind} code - The kind of the HTTP/2 error\n */\n constructor(code: HTTP2ErrorKind) {\n super('HTTP2Error', code)\n }\n}\n\n/**\n * Represents the name of a network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\ntype NetworkErrorName = 'GeneralError' | 'DNSError' | 'TCPError' | 'TLSError' | 'HTTP2Error'\n\n/**\n * Represents the kind of a network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\ntype ErrorKind = GeneralErrorKind | DNSErrorKind | TCPErrorKind | TLSErrorKind | HTTP2ErrorKind\n\n/**\n * Represents the kind of a general network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum GeneralErrorKind {\n GenericError = 1000,\n NonTCPNetworkError = 1010,\n InvalidURL = 1020,\n HTTPRequestTimeout = 1050,\n}\n\n/**\n * Represents the kind of a DNS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum DNSErrorKind {\n GenericDNSError = 1100,\n NoIPFound = 1101,\n BlacklistedIP = 1110,\n BlacklistedHostname = 1111,\n}\n\n/**\n * Represents the kind of a TCP-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum TCPErrorKind {\n GenericTCPError = 1200,\n BrokenPipeOnWrite = 1201,\n UnknownTCPError = 1202,\n GeneralTCPDialError = 1210,\n DialTimeoutError = 1211,\n DialConnectionRefused = 1212,\n DialUnknownError = 1213,\n ResetByPeer = 1220,\n}\n\n/**\n * Represents the kind of a TLS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum TLSErrorKind {\n GeneralTLSError = 1300,\n UnknownAuthority = 1310,\n CertificateHostnameMismatch = 1311,\n}\n\n/**\n * Represents the kind of an HTTP/2-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum HTTP2ErrorKind {\n GenericHTTP2Error = 1600,\n GeneralHTTP2GoAwayError = 1610,\n}\n\n/**\n * Error messages for each kind of network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nconst ErrorMessages: { [key in ErrorKind]: string } = {\n [GeneralErrorKind.GenericError]: 'A generic error that isn’t any of the ones listed below',\n [GeneralErrorKind.NonTCPNetworkError]:\n 'A non-TCP network error - this is a placeholder and there is no error currently known to trigger it',\n [GeneralErrorKind.InvalidURL]: 'An invalid URL was specified',\n [GeneralErrorKind.HTTPRequestTimeout]: 'The HTTP request has timed out',\n [DNSErrorKind.GenericDNSError]: 'A generic DNS error that isn’t any of the ones listed below',\n [DNSErrorKind.NoIPFound]: 'No IP for the provided host was found',\n [DNSErrorKind.BlacklistedIP]:\n 'Blacklisted IP was resolved or a connection to such was tried to be established',\n [DNSErrorKind.BlacklistedHostname]: 'Blacklisted hostname using The Block Hostnames option',\n [TCPErrorKind.GenericTCPError]: 'A generic TCP error that isn’t any of the ones listed below',\n [TCPErrorKind.BrokenPipeOnWrite]:\n 'A “broken pipe” on write - the other side has likely closed the connection',\n [TCPErrorKind.UnknownTCPError]:\n 'An unknown TCP error - We got an error that we don’t recognize but it is from the operating system and has errno set on it. The message in error includes the operation(write,read) and the errno, the OS, and the original message of the error',\n [TCPErrorKind.GeneralTCPDialError]: 'General TCP dial error',\n [TCPErrorKind.DialTimeoutError]: 'Dial timeout error - the timeout for the dial was reached',\n [TCPErrorKind.DialConnectionRefused]:\n 'Dial connection refused - the connection was refused by the other party on dial',\n [TCPErrorKind.DialUnknownError]: 'Dial unknown error',\n [TCPErrorKind.ResetByPeer]:\n 'Reset by peer - the connection was reset by the other party, most likely a server',\n [TLSErrorKind.GeneralTLSError]: 'General TLS error',\n [TLSErrorKind.UnknownAuthority]: 'Unknown authority - the certificate issuer is unknown',\n [TLSErrorKind.CertificateHostnameMismatch]: 'The certificate doesn’t match the hostname',\n [HTTP2ErrorKind.GenericHTTP2Error]:\n 'A generic HTTP/2 error that isn’t any of the ones listed below',\n [HTTP2ErrorKind.GeneralHTTP2GoAwayError]: 'A general HTTP/2 GoAway error',\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"k6/crypto\");","import crypto from 'k6/crypto'\n\nimport * as constants from './constants'\nimport { AWSError } from './error'\nimport { hasHeader, HTTPHeaderBag, HTTPRequest, QueryParameterBag, SignedHTTPRequest } from './http'\nimport { isArrayBuffer } from './utils'\n\n/**\n * SignatureV4 can be used to sign HTTP requests and presign URLs using the AWS Signature\n * Version 4 signing process.\n *\n * It offers two signing methods:\n * - sign: signs the request headers and payload\n * - presign: returns a presigned (authorization information contained in the query string) URL\n *\n * @see https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html\n */\nexport class SignatureV4 {\n /**\n * The name of the service to sign for.\n */\n private readonly service: string\n\n /**\n * The name of the region to sign for.\n */\n private readonly region: string\n\n /**\n * The credentials with which the request should be signed.\n */\n private readonly credentials: Credentials\n\n /**\n * Whether to uri-escape the request URI path as part of computing the\n * canonical request string. This is required for every AWS service, except\n * Amazon S3, as of late 2017.\n *\n * @default [true]\n */\n private readonly uriEscapePath: boolean\n\n /**\n * Whether to calculate a checksum of the request body and include it as\n * either a request header (when signing) or as a query string parameter\n * (when presigning). This is required for AWS Glacier and Amazon S3 and optional for\n * every other AWS service as of late 2017.\n *\n * @default [true]\n */\n private readonly applyChecksum: boolean\n\n // TODO: uriEscapePath and applyChecksum should not be present in the constructor\n constructor({\n service,\n region,\n credentials,\n uriEscapePath,\n applyChecksum,\n }: SignatureV4Options) {\n this.service = service\n this.region = region\n this.credentials = credentials\n this.uriEscapePath = typeof uriEscapePath === 'boolean' ? uriEscapePath : true\n this.applyChecksum = typeof applyChecksum === 'boolean' ? applyChecksum : true\n }\n\n /**\n * Includes AWS v4 signing information to the provided HTTP request.\n *\n * This method adds an Authorization header to the request, containing\n * the signature and other signing information. It also returns a preformatted\n * URL that can be used to make the k6 http request.\n *\n * This method mutates the request object.\n *\n * @param request {HTTPRequest} The request to sign.\n * @param options {Partial} Options for signing the request.\n * @returns {SignedHTTPRequest} The signed request.\n */\n sign(request: HTTPRequest, options: Partial = {}): SignedHTTPRequest {\n // Set default values for options which are not provided by the user.\n const defaultOptions = {\n signingDate: new Date(),\n unsignableHeaders: new Set(),\n signableHeaders: new Set(),\n }\n\n // Merge default options with the ones maybe provided by the user.\n const finalOptions = { ...defaultOptions, ...options }\n\n const { longDate, shortDate }: DateInfo = formatDate(finalOptions.signingDate)\n const service = finalOptions.signingService || this.service\n const region = finalOptions.signingRegion || this.region\n const scope = `${shortDate}/${region}/${service}/${constants.KEY_TYPE_IDENTIFIER}`\n\n // Required by the specification:\n // \"For HTTP/1.1 requests, you must include the host header at a minimum.\n // Standard headers like content-type are optional.\n // For HTTP/2 requests, you must include the :authority header instead of\n // the host header. Different services might require other headers.\"\n if (!request.headers[constants.HOST_HEADER]) {\n request.headers[constants.HOST_HEADER] = request.endpoint.hostname\n }\n\n // Filter out headers that will be generated and managed by the signing process.\n // If the user provide any of those as part of the HTTPRequest's headers, they\n // will be ignored.\n for (const headerName of Object.keys(request.headers)) {\n if (constants.GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) {\n delete request.headers[headerName]\n }\n }\n\n request.headers[constants.AMZ_DATE_HEADER] = longDate\n if (this.credentials.sessionToken) {\n request.headers[constants.AMZ_TOKEN_HEADER] = this.credentials.sessionToken\n }\n\n // If the request body is a typed array, we need to convert it to a buffer\n // so that we can calculate the checksum.\n if (ArrayBuffer.isView(request.body)) {\n request.body = request.body.buffer\n }\n\n // Ensure we avoid passing undefined to the crypto hash function.\n if (!request.body) {\n request.body = ''\n }\n\n const payloadHash = this.computePayloadHash(request)\n if (\n !hasHeader(constants.AMZ_CONTENT_SHA256_HEADER, request.headers) &&\n this.applyChecksum\n ) {\n request.headers[constants.AMZ_CONTENT_SHA256_HEADER] = payloadHash\n }\n\n const canonicalHeaders = this.computeCanonicalHeaders(\n request,\n finalOptions.unsignableHeaders,\n finalOptions.signableHeaders\n )\n const signature = this.calculateSignature(\n longDate,\n scope,\n this.deriveSigningKey(this.credentials, service, region, shortDate),\n this.createCanonicalRequest(request, canonicalHeaders, payloadHash)\n )\n\n /**\n * Step 4 of the signing process: add the signature to the HTTP request's headers.\n *\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html\n */\n request.headers[constants.AUTHORIZATION_HEADER] =\n `${constants.SIGNING_ALGORITHM_IDENTIFIER} ` +\n `Credential=${this.credentials.accessKeyId}/${scope}, ` +\n `SignedHeaders=${Object.keys(canonicalHeaders).sort().join(';')}, ` +\n `Signature=${signature}`\n\n // If a request path was provided, add it to the URL\n let url = request.endpoint.href\n if (request.path) {\n // Ensure the URI and the request path are properly concatenated\n // by adding a trailing slash to the URI if it's missing.\n if (!url.endsWith('/') && !request.path.startsWith('/')) {\n url += '/'\n }\n\n // Append the path to the URL\n url += request.path\n }\n\n // If a request query string was provided, add it to the URL\n if (request.query) {\n // We exclude the signature from the query string\n url += `?${this.serializeQueryParameters(request.query)}`\n }\n\n return {\n url: url,\n ...request,\n }\n }\n\n /**\n * Produces a presigned URL with AWS v4 signature information for the provided HTTP request.\n *\n * A presigned URL is a URL that contains the authorization information\n * (signature and other signing information) in the query string. This method\n * returns a preformatted URL that can be used to make the k6 http request.\n *\n * @param originalRequest - The original request to presign.\n * @param options - Options controlling the signing of the request.\n * @returns A signed request, including the presigned URL.\n */\n presign(originalRequest: HTTPRequest, options: PresignOptions = {}): SignedHTTPRequest {\n const {\n signingDate = new Date(),\n expiresIn = 3600,\n unsignableHeaders,\n unhoistableHeaders,\n signableHeaders,\n signingRegion,\n signingService,\n } = options\n const { longDate, shortDate }: DateInfo = formatDate(signingDate)\n const region = signingRegion || this.region\n const service = signingService || this.service\n\n if (expiresIn > constants.MAX_PRESIGNED_TTL) {\n throw new InvalidSignatureError(\n \"Signature version 4 presigned URLs can't be valid for more than 7 days\"\n )\n }\n\n const scope = `${shortDate}/${region}/${service}/${constants.KEY_TYPE_IDENTIFIER}`\n const request = this.moveHeadersToQuery(originalRequest, { unhoistableHeaders })\n\n // Required by the specification:\n // \"For HTTP/1.1 requests, you must include the host header at a minimum.\n // Standard headers like content-type are optional.\n // For HTTP/2 requests, you must include the :authority header instead of\n // the host header. Different services might require other headers.\"\n if (!request.headers[constants.HOST_HEADER]) {\n request.headers[constants.HOST_HEADER] = originalRequest.endpoint.hostname\n }\n\n // If the user provided a session token, include it in the signed url query string.\n if (this.credentials.sessionToken) {\n request.query[constants.AMZ_TOKEN_QUERY_PARAM] = this.credentials.sessionToken\n }\n // Add base signing query parameters to the request, as described in the documentation\n // @see https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html\n request.query[constants.AMZ_ALGORITHM_QUERY_PARAM] = constants.SIGNING_ALGORITHM_IDENTIFIER\n request.query[\n constants.AMZ_CREDENTIAL_QUERY_PARAM\n ] = `${this.credentials.accessKeyId}/${scope}`\n request.query[constants.AMZ_DATE_QUERY_PARAM] = longDate\n request.query[constants.AMZ_EXPIRES_QUERY_PARAM] = expiresIn.toString(10)\n\n const canonicalHeaders = this.computeCanonicalHeaders(\n request,\n unsignableHeaders,\n signableHeaders\n )\n request.query[constants.AMZ_SIGNED_HEADERS_QUERY_PARAM] = Object.keys(canonicalHeaders)\n .sort()\n .join(';')\n\n const signingKey = this.deriveSigningKey(this.credentials, service, region, shortDate)\n\n // Computing the payload from the original request. This is required\n // in the event the user attempts to produce a presigned URL for s3,\n // which requires the payload hash to be 'UNSIGNED-PAYLOAD'.\n //\n // To that effect, users need to set the 'x-amz-content-sha256' header,\n // and mark it as unhoistable and unsignable. When setup this way,\n // the computePayloadHash method will then return the string 'UNSIGNED-PAYLOAD'.\n const payloadHash = this.computePayloadHash(originalRequest)\n const canonicalRequest = this.createCanonicalRequest(request, canonicalHeaders, payloadHash)\n\n request.query[constants.AMZ_SIGNATURE_QUERY_PARAM] = this.calculateSignature(\n longDate,\n scope,\n signingKey,\n canonicalRequest\n )\n\n // If a request path was provided, add it to the URL\n let url = originalRequest.endpoint.href\n if (request.path) {\n // Ensure there is a trailing slash at the end of the URL\n // so that appending the path does not result in a malformed URL.\n url = url?.endsWith('/') ? url : url + '/'\n\n // Append the path to the URL\n url += request.path\n }\n\n // If a request query string was provided, add it to the URL\n if (request.query) {\n url += `?${this.serializeQueryParameters(request.query)}`\n }\n\n return { url: url, ...request }\n }\n\n /**\n * Create a string including information from your request\n * in a AWS signature v4 standardized (canonical) format.\n *\n * Step 1 of the signing process: create the canonical request string.\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html\n *\n * @param request {HTTPRequest} The request to sign.\n * @param canonicalHeaders {HTTPHeaderBag} The request's canonical headers.\n * @param payloadHash {string} The hexadecimally encoded request's payload hash .\n * @returns {string} The canonical request string.\n */\n private createCanonicalRequest(\n request: HTTPRequest,\n canonicalHeaders: HTTPHeaderBag,\n payloadHash: string\n ): string {\n const sortedHeaders = Object.keys(canonicalHeaders).sort()\n const sortedCanonicalHeaders = sortedHeaders\n .map((name) => `${name}:${canonicalHeaders[name]}`)\n .join('\\n')\n const signedHeaders = sortedHeaders.join(';')\n\n return (\n `${request.method}\\n` +\n `${this.computeCanonicalURI(request)}\\n` +\n `${this.computeCanonicalQuerystring(request)}\\n` +\n `${sortedCanonicalHeaders}\\n\\n` +\n `${signedHeaders}\\n` +\n `${payloadHash}`\n )\n }\n\n /**\n * Create the \"string to sign\" part of the signature Version 4 protocol.\n *\n * The \"string to sign\" includes meta information about your request and\n * about the canonical request that you created with `createCanonicalRequest`.\n * It is used hand in hand with the signing key to create the request signature.\n * Step 2 of the signing process: create the string to sign.\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-create-string-to-sign.html\n *\n * @param longDate {string} The request's date in iso 8601 format.\n * @param credentialScope {string} The request's credential scope.\n * @param canonicalRequest {string} The request's canonical request.\n * @returns {string} The \"string to sign\".\n */\n private createStringToSign(\n longDate: string,\n credentialScope: string,\n canonicalRequest: string\n ): string {\n const hashedCanonicalRequest = crypto.sha256(canonicalRequest, 'hex')\n\n return (\n `${constants.SIGNING_ALGORITHM_IDENTIFIER}\\n` +\n `${longDate}\\n` +\n `${credentialScope}\\n` +\n `${hashedCanonicalRequest}`\n )\n }\n\n /**\n * Calculte the signature for AWS signature version 4.\n *\n * Step 3 of the signing process: create the signature.\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-calculate-signature.html\n *\n * @param longDate {string} The request's date in iso 8601 format.\n * @param credentialScope {string} The request's credential scope.\n * @param signingKey {string} the signing key as computed by the deriveSigningKey method.\n * @param canonicalRequest {string} The request's canonical request.\n * @returns {string} The signature.\n */\n private calculateSignature(\n longDate: string,\n credentialScope: string,\n signingKey: Uint8Array,\n canonicalRequest: string\n ): string {\n const stringToSign = this.createStringToSign(longDate, credentialScope, canonicalRequest)\n return crypto.hmac('sha256', signingKey, stringToSign, 'hex')\n }\n\n /**\n * Derives the signing key for authenticating requests signed with\n * the Signature version 4 authentication protocol.\n *\n * deriveSigningKey produces a signing key by creating a series of\n * hash-based message authentication codes (HMACs) represented in\n * a binary format.\n *\n * The derived signing key is specific to the date it's made at, as well as\n * the service and region it targets.\n *\n * @param credentials {AWSCredentials} The credentials to use for signing.\n * @param service {string} The service the request is targeted at.\n * @param region {string} The region the request is targeted at.\n * @param shortDate {string} The request's date in YYYYMMDD format.\n * @returns {Uint8Array} The derived signing key.\n */\n private deriveSigningKey(\n credentials: Credentials,\n service: string,\n region: string,\n shortDate: string\n ): Uint8Array {\n const kSecret: string = credentials.secretAccessKey\n /**\n * crypto.hmac returns a value of type `bytes`, which is an alias for\n * number[]. However, the secret argument to hmac needs to either be\n * a `string` or ArrayBuffer. The only way to get around this is to\n * cast the return value of hmac to any, thus, we disable the no-explicit-any\n * ESLint rule for this function.\n */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const kDate: any = crypto.hmac('sha256', 'AWS4' + kSecret, shortDate, 'binary')\n const kRegion: any = crypto.hmac('sha256', kDate, region, 'binary')\n const kService: any = crypto.hmac('sha256', kRegion, service, 'binary')\n const kSigning: any = crypto.hmac('sha256', kService, 'aws4_request', 'binary')\n /* eslint-enable @typescript-eslint/no-explicit-any */\n\n return kSigning\n }\n\n /**\n * Create a string that includes information from your request\n * in a AWS signature v4 standardized (canonical) format.\n *\n * @param param0 {HTTPRequest} The request to sign.\n * @returns {string} The canonical URI.\n */\n private computeCanonicalURI({ path }: HTTPRequest): string {\n if (this.uriEscapePath) {\n // Non-S3 services, we normalize the path and then double URI encode it.\n // Ref: \"Remove Dot Segments\" https://datatracker.ietf.org/doc/html/rfc3986#section-5.2.4\n const normalizedURISegments = []\n\n for (const URISegment of path.split('/')) {\n if (URISegment?.length === 0) {\n continue\n }\n\n if (URISegment === '.') {\n continue\n }\n\n if (URISegment === '..') {\n normalizedURISegments.pop()\n } else {\n normalizedURISegments.push(URISegment)\n }\n }\n\n // Normalize the URI\n const leading = path?.startsWith('/') ? '/' : ''\n const URI = normalizedURISegments.join('/')\n const trailing = normalizedURISegments.length > 0 && path?.endsWith('/') ? '/' : ''\n const normalizedURI = `${leading}${URI}${trailing}`\n\n const doubleEncoded = encodeURIComponent(normalizedURI)\n\n return doubleEncoded.replace(/%2F/g, '/')\n }\n\n // For S3, we shouldn't normalize the path. For example, object name\n // my-object//example//photo.user should not be normalized to\n // my-object/example/photo.user\n return path\n }\n\n /**\n * Serializes the request's query parameters into their canonical\n * string version. If the request does not include a query parameters,\n * returns an empty string.\n *\n * @param param0 {HTTPRequest} The request containing the query parameters.\n * @returns {string} The canonical query string.\n */\n private computeCanonicalQuerystring({ query = {} }: HTTPRequest): string {\n const keys: Array = []\n const serialized: Record = {}\n\n for (const key of Object.keys(query).sort()) {\n if (key.toLowerCase() === constants.AMZ_SIGNATURE_HEADER) {\n continue\n }\n\n keys.push(key)\n const value = query[key]\n\n if (typeof value === 'string') {\n serialized[key] = `${escapeURI(key)}=${escapeURI(value)}`\n } else if (Array.isArray(value)) {\n serialized[key] = value\n .slice(0)\n .sort()\n .reduce(\n (encoded: Array, value: string) =>\n encoded.concat([`${escapeURI(key)}=${escapeURI(value)}`]),\n []\n )\n .join('&')\n }\n }\n\n return keys\n .map((key) => serialized[key])\n .filter((serialized) => serialized)\n .join('&')\n }\n\n /**\n * Create the canonical form of the request's headers.\n * Canonical headers consist of all the HTTP headers you\n * are including with the signed request.\n *\n * @param param0 {HTTPRequest} The request to compute the canonical headers of.\n * @param unsignableHeaders {Set} The headers that should not be signed.\n * @param signableHeaders {Set} The headers that should be signed.\n * @returns {string} The canonical headers.\n */\n private computeCanonicalHeaders(\n { headers }: HTTPRequest,\n unsignableHeaders?: Set,\n signableHeaders?: Set\n ): HTTPHeaderBag {\n const canonicalHeaders: HTTPHeaderBag = {}\n\n for (const headerName of Object.keys(headers).sort()) {\n if (headers[headerName] == undefined) {\n continue\n }\n\n const canonicalHeaderName = headerName.toLowerCase()\n if (\n canonicalHeaderName in constants.ALWAYS_UNSIGNABLE_HEADERS ||\n unsignableHeaders?.has(canonicalHeaderName)\n ) {\n if (\n !signableHeaders ||\n (signableHeaders && !signableHeaders.has(canonicalHeaderName))\n ) {\n continue\n }\n }\n\n if (typeof headers[headerName] === 'string') {\n canonicalHeaders[canonicalHeaderName] = headers[headerName] = headers[headerName]\n .trim()\n .replace(/\\s+/g, ' ')\n }\n }\n\n return canonicalHeaders\n }\n\n /**\n * Computes the SHA256 cryptographic hash of the request's body.\n *\n * If the headers contain the 'X-Amz-Content-Sha256' header, then\n * the value of that header is returned instead. This proves useful\n * when, for example, presiging a URL for S3, as the payload hash\n * must always be equal to 'UNSIGNED-PAYLOAD'.\n *\n * @param param0 {HTTPRequest} The request to compute the payload hash of.\n * @returns {string} The hex encoded SHA256 payload hash, or the value of the 'X-Amz-Content-Sha256' header.\n */\n private computePayloadHash({ headers, body }: HTTPRequest): string {\n // for (const headerName of Object.keys(headers)) {\n // // If the header is present, return its value.\n // // So that we let the 'UNSIGNED-PAYLOAD' value pass through.\n // if (headerName.toLowerCase() === constants.AMZ_CONTENT_SHA256_HEADER) {\n // return headers[headerName]\n // }\n // }\n\n if (headers[constants.AMZ_CONTENT_SHA256_HEADER]) {\n return headers[constants.AMZ_CONTENT_SHA256_HEADER]\n }\n\n if (body == undefined) {\n return constants.EMPTY_SHA256\n }\n\n if (typeof body === 'string' || isArrayBuffer(body)) {\n return crypto.sha256(body, 'hex').toLowerCase()\n }\n\n if (ArrayBuffer.isView(body)) {\n // If the request body is a typed array, we need to convert it to a buffer\n // so that we can calculate the checksum.\n return crypto.sha256((body as DataView).buffer, 'hex').toLowerCase()\n }\n\n return constants.UNSIGNED_PAYLOAD\n }\n\n /**\n * Moves a request's headers to its query parameters.\n *\n * The operation will ignore any amazon standard headers, prefixed\n * with 'X-Amz-'. It will also ignore any headers specified as unhoistable\n * by the options.\n *\n * The operation will delete the headers from the request.\n *\n * @param request {HTTPRequest} The request to move the headers from.\n * @param options\n * @returns {HTTPRequest} The request with the headers moved to the query parameters.\n */\n private moveHeadersToQuery(\n request: HTTPRequest,\n options: { unhoistableHeaders?: Set } = {}\n ): HTTPRequest & { query: QueryParameterBag } {\n const requestCopy = JSON.parse(JSON.stringify(request))\n const { headers, query = {} as QueryParameterBag } = requestCopy\n\n for (const name of Object.keys(headers)) {\n const lowerCaseName = name.toLowerCase()\n if (\n lowerCaseName.slice(0, 6) === 'x-amz-' &&\n !options.unhoistableHeaders?.has(lowerCaseName)\n ) {\n query[name] = headers[name]\n delete headers[name]\n }\n }\n\n return {\n ...requestCopy,\n headers,\n query,\n }\n }\n\n /**\n * Serializes a HTTPRequest's query parameter bag into a string.\n *\n * @param query {QueryParameterBag} The query parameters to serialize.\n * @param ignoreKeys {Set} The keys to ignore.\n * @returns {string} The serialized, and ready to use in a URL, query parameters.\n */\n private serializeQueryParameters(query: QueryParameterBag, ignoreKeys?: string[]): string {\n const keys: Array = []\n const serialized: Record = {}\n\n for (const key of Object.keys(query).sort()) {\n if (ignoreKeys?.includes(key.toLowerCase())) {\n continue\n }\n\n keys.push(key)\n const value = query[key]\n\n if (typeof value === 'string') {\n serialized[key] = `${escapeURI(key)}=${escapeURI(value)}`\n } else if (Array.isArray(value)) {\n serialized[key] = value\n .slice(0)\n .sort()\n .reduce(\n (encoded: Array, value: string) =>\n encoded.concat([`${escapeURI(key)}=${escapeURI(value)}`]),\n []\n )\n .join('&')\n }\n }\n\n return keys\n .map((key) => serialized[key])\n .filter((serialized) => serialized)\n .join('&')\n }\n}\n\n/**\n * Error indicating an Invalid signature has been sent to AWS services\n *\n * Inspired from AWS official error types, as\n * described in:\n * * https://aws.amazon.com/blogs/developer/service-error-handling-modular-aws-sdk-js/\n * * https://github.com/aws/aws-sdk-js/blob/master/lib/error.d.ts\n */\nexport class InvalidSignatureError extends AWSError {\n /**\n * Constructs an InvalidSignatureError\n *\n * @param {string} message - human readable error message\n */\n constructor(message: string, code?: string) {\n super(message, code)\n this.name = 'InvalidSignatureError'\n }\n}\n\nexport interface SignatureV4Options {\n /**\n * The name of the service to sign for.\n */\n service: string\n\n /**\n * The name of the region to sign for.\n */\n region: string\n\n /**\n * The credentials with which the request should be signed.\n */\n credentials: Credentials\n\n /**\n * Whether to uri-escape the request URI path as part of computing the\n * canonical request string. This is required for every AWS service, except\n * Amazon S3, as of late 2017.\n *\n * @default [true]\n */\n uriEscapePath?: boolean\n\n /**\n * Whether to calculate a checksum of the request body and include it as\n * either a request header (when signing) or as a query string parameter\n * (when presigning). This is required for AWS Glacier and Amazon S3 and optional for\n * every other AWS service as of late 2017.\n *\n * @default [true]\n */\n applyChecksum?: boolean\n}\n\nexport interface SignOptions {\n /**\n * The date and time to be used as signature metadata. This value should be\n * a Date object, a unix (epoch) timestamp, or a string that can be\n * understood by the JavaScript `Date` constructor.If not supplied, the\n * value returned by `new Date()` will be used.\n */\n signingDate?: Date\n\n /**\n * The service signing name. It will override the service name of the signer\n * in current invocation\n */\n signingService?: string\n\n /**\n * The region name to sign the request. It will override the signing region of the\n * signer in current invocation\n */\n signingRegion?: string\n}\n\nexport interface RequestSigningOptions extends SignOptions {\n /**\n * A set of strings whose members represents headers that cannot be signed.\n * All headers in the provided request will have their names converted to\n * lower case and then checked for existence in the unsignableHeaders set.\n */\n unsignableHeaders?: Set\n\n /**\n * A set of strings whose members represents headers that should be signed.\n * Any values passed here will override those provided via unsignableHeaders,\n * allowing them to be signed.\n *\n * All headers in the provided request will have their names converted to\n * lower case before signing.\n */\n signableHeaders?: Set\n}\n\nexport interface PresignOptions extends RequestSigningOptions {\n /**\n * The number of seconds before the presigned URL expires\n */\n expiresIn?: number\n\n /**\n * A set of strings whose representing headers that should not be hoisted\n * to presigned request's query string. If not supplied, the presigner\n * moves all the AWS-specific headers (starting with `x-amz-`) to the request\n * query string. If supplied, these headers remain in the presigned request's\n * header.\n * All headers in the provided request will have their names converted to\n * lower case and then checked for existence in the unhoistableHeaders set.\n */\n unhoistableHeaders?: Set\n}\n\nexport interface Credentials {\n /**\n * AWS access key ID\n */\n readonly accessKeyId: string\n\n /**\n * AWS secret access key\n */\n readonly secretAccessKey: string\n\n /**\n * A security or session token to use with these credentials. Usually\n * present for temporary credentials.\n */\n readonly sessionToken?: string\n}\n\nexport interface DateInfo {\n /**\n * ISO8601 formatted date string\n */\n longDate: string\n\n /**\n * String in the format YYYYMMDD\n */\n shortDate: string\n}\n\n/**\n * Escapes a URI following the AWS signature v4 escaping rules.\n *\n * @param URI {string} The URI to escape.\n * @returns {string} The escaped URI.\n */\nfunction escapeURI(URI: string): string {\n const hexEncode = (c: string): string => {\n return `%${c.charCodeAt(0).toString(16).toUpperCase()}`\n }\n\n return encodeURIComponent(URI).replace(/[!'()*]/g, hexEncode)\n}\n\n/**\n * formatDate formats a Date object into a ISO8601 formatted date string\n * and a string in the format YYYYMMDD.\n *\n * @param date {Date} The date to format.\n * @returns {DateInfo} The formatted date.\n */\nfunction formatDate(date: Date): DateInfo {\n const longDate = iso8601(date).replace(/[-:]/g, '')\n return {\n longDate,\n shortDate: longDate.slice(0, 8),\n }\n}\n\n/**\n * Formats a time into an ISO 8601 string.\n *\n * @see https://en.wikipedia.org/wiki/ISO_8601\n *\n * @param time {number | string | Date} The time to format.\n * @returns {string} The ISO 8601 formatted time.\n */\nfunction iso8601(time: number | string | Date): string {\n return toDate(time)\n .toISOString()\n .replace(/\\.\\d{3}Z$/, 'Z')\n}\n\n/**\n * Converts a time value into a Date object.\n *\n * @param time {number | string | Date} The time to convert.\n * @returns {Date} The resulting Date object.\n */\nfunction toDate(time: number | string | Date): Date {\n if (typeof time === 'number') {\n return new Date(time * 1000)\n }\n\n if (typeof time === 'string') {\n if (Number(time)) {\n return new Date(Number(time) * 1000)\n }\n\n return new Date(time)\n }\n\n return time\n}\n","import { Endpoint } from './endpoint'\n\n/**\n * Type representing HTTP schemes\n */\nexport type HTTPScheme = 'http' | 'https'\n\n/**\n * Type representing HTTP Methods\n *\n */\nexport type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'DELETE'\n\n/**\n * Type alias representing HTTP Headers\n */\nexport type HTTPHeaders = { [key: string]: string }\n\n/**\n * HTTPHeaderBag is a type alias representing HTTP Headers\n */\nexport type HTTPHeaderBag = Record\n\nexport function hasHeader(soughtHeader: string, headers: HTTPHeaderBag): boolean {\n soughtHeader = soughtHeader.toLowerCase()\n\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * QueryParameterBag is a type alias representing HTTP Query Parameters\n */\nexport type QueryParameterBag = Record>\n\n/**\n * HTTPRequest represents an HTTP request\n */\nexport interface HTTPRequest {\n /**\n * The HTTP method to use\n */\n method: HTTPMethod\n\n /**\n * Represents an AWS service endpoint, providing utilities for parsing and handling URL details.\n */\n endpoint: Endpoint\n\n /**\n * The path to the resource\n */\n path: string\n\n /**\n * The query parameters to include in the request\n */\n query?: QueryParameterBag\n\n /**\n * The headers to include in the request\n */\n headers: HTTPHeaderBag\n\n /**\n * The body of the request\n */\n body?: string | ArrayBuffer | null\n}\n\n/**\n * SignedHTTPRequest represents an HTTP request that has been signed\n * with an AWS signature. It is a superset of HTTPRequest adding\n * the following fields:\n * - url: the fully qualified URL of the request that can be used in a k6 http.request.\n */\nexport interface SignedHTTPRequest extends HTTPRequest {\n url: string\n}\n","/**\n *\n * @param value\n * @returns\n */\nexport function isArrayBuffer(value: unknown): value is ArrayBuffer {\n return (\n typeof ArrayBuffer === 'function' &&\n (value instanceof ArrayBuffer ||\n Object.prototype.toString.call(value) === '[object ArrayBuffer]')\n )\n}\n\nexport function toFormUrlEncoded(form: Record): string {\n return Object.keys(form)\n .reduce((params, key) => {\n const value = form[key]\n if (value !== undefined && value !== null) {\n params.push(`${encodeURIComponent(key)}=${encodeURIComponent(value)}`)\n }\n return params\n }, [] as string[])\n .join('&')\n}\n"],"names":["__webpack_require__","module","getter","__esModule","d","a","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","AMZ_ALGORITHM_QUERY_PARAM","AMZ_CREDENTIAL_QUERY_PARAM","AMZ_DATE_QUERY_PARAM","AMZ_EXPIRES_QUERY_PARAM","AMZ_SIGNATURE_QUERY_PARAM","AMZ_SIGNED_HEADERS_QUERY_PARAM","AMZ_TOKEN_QUERY_PARAM","AMZ_CONTENT_SHA256_HEADER","AMZ_DATE_HEADER","toLowerCase","AMZ_SIGNATURE_HEADER","AMZ_TOKEN_HEADER","AUTHORIZATION_HEADER","GENERATED_HEADERS","HOST_HEADER","ALWAYS_UNSIGNABLE_HEADERS","authorization","connection","expect","from","pragma","referer","te","trailer","upgrade","KEY_TYPE_IDENTIFIER","SIGNING_ALGORITHM_IDENTIFIER","UNSIGNED_PAYLOAD","Endpoint","endpoint","_classCallCheck","_defineProperty","completeUrl","startsWith","concat","DEFAULT_PROTOCOL","protocolMatch","match","hostnameWithPort","_slicedToArray","replace","split","this","_protocol","slice","_hostname","_port","parseInt","undefined","href","set","_value$split2","hostname","port","protocol","host","AWSConfig","options","region","InvalidAWSConfigError","accessKeyId","length","secretAccessKey","sessionToken","_createClass","__ENV","AWS_REGION","AWS_ACCESS_KEY_ID","AWS_SECRET_ACCESS_KEY","AWS_SESSION_TOKEN","_Error","message","_callSuper","_inherits","_wrapNativeSuper","Error","require","AWSError","code","_this","name","xmlDocument","doc","parseHTML","find","text","response","headers","error","json","Message","__type","parseXML","body","NetworkError","_Error2","_this2","ErrorMessages","GeneralError","_NetworkError2","DNSError","_NetworkError3","TCPError","_NetworkError4","TLSError","_NetworkError5","HTTP2Error","_NetworkError6","GeneralErrorKind","DNSErrorKind","TCPErrorKind","TLSErrorKind","HTTP2ErrorKind","_ErrorMessages","GenericError","NonTCPNetworkError","InvalidURL","HTTPRequestTimeout","GenericDNSError","NoIPFound","BlacklistedIP","BlacklistedHostname","GenericTCPError","BrokenPipeOnWrite","UnknownTCPError","GeneralTCPDialError","DialTimeoutError","DialConnectionRefused","DialUnknownError","ResetByPeer","GeneralTLSError","UnknownAuthority","CertificateHostnameMismatch","GenericHTTP2Error","GeneralHTTP2GoAwayError","SignatureV4","_ref","service","credentials","uriEscapePath","applyChecksum","request","arguments","finalOptions","_objectSpread","signingDate","Date","unsignableHeaders","Set","signableHeaders","_formatDate","formatDate","longDate","shortDate","signingService","signingRegion","scope","constants","_i","_Object$keys","keys","headerName","indexOf","ArrayBuffer","isView","buffer","payloadHash","computePayloadHash","soughtHeader","hasHeader","canonicalHeaders","computeCanonicalHeaders","signature","calculateSignature","deriveSigningKey","createCanonicalRequest","sort","join","url","path","endsWith","query","serializeQueryParameters","originalRequest","_options$signingDate","_options$expiresIn","expiresIn","unhoistableHeaders","_formatDate2","InvalidSignatureError","moveHeadersToQuery","toString","signingKey","canonicalRequest","_url","sortedHeaders","sortedCanonicalHeaders","map","signedHeaders","method","computeCanonicalURI","computeCanonicalQuerystring","credentialScope","hashedCanonicalRequest","crypto","stringToSign","createStringToSign","kSecret","kDate","kRegion","kService","_ref2","_step","normalizedURISegments","_iterator","_createForOfIteratorHelper","s","n","done","URISegment","pop","push","err","e","f","leading","URI","trailing","normalizedURI","encodeURIComponent","_ref3","_step2","_ref3$query","serialized","_loop","escapeURI","Array","isArray","reduce","encoded","_iterator2","filter","_ref4","_step3","_iterator3","canonicalHeaderName","has","trim","_ref5","requestCopy","JSON","parse","stringify","_requestCopy$query","_i2","_Object$keys2","_options$unhoistableH","lowerCaseName","ignoreKeys","_step4","_loop2","includes","_iterator4","_AWSError","c","charCodeAt","toUpperCase","date","time","Number","toDate","toISOString"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/aws/0.13.0/sqs.js b/lib/aws/0.13.0/sqs.js new file mode 100644 index 0000000..d8321f6 --- /dev/null +++ b/lib/aws/0.13.0/sqs.js @@ -0,0 +1,3 @@ +/*! For license information please see sqs.js.LICENSE.txt */ +(()=>{"use strict";var e={2:(e,t,r)=>{r.d(t,{R:()=>s});var n=r(556),o=r(539);function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}function a(e,t){for(var r=0;r=200&&r<300&&""==i&&0===n)return!1;switch(n){case o.rN.GenericError:case o.rN.NonTCPNetworkError:case o.rN.InvalidURL:case o.rN.HTTPRequestTimeout:throw new o.$g(n);case o.yk.GenericDNSError:case o.yk.NoIPFound:case o.yk.BlacklistedIP:case o.yk.BlacklistedHostname:throw new o.M8(n);case o.op.GenericTCPError:case o.op.BrokenPipeOnWrite:case o.op.UnknownTCPError:case o.op.GeneralTCPDialError:case o.op.DialTimeoutError:case o.op.DialConnectionRefused:case o.op.DialUnknownError:case o.op.ResetByPeer:throw new o.km(n);case o.cK.GeneralTLSError:case o.cK.UnknownAuthority:case o.cK.CertificateHostnameMismatch:throw new o.ML(n);case o.F9.GenericHTTP2Error:case o.F9.GeneralHTTP2GoAwayError:throw new o.v1(n)}return!0}}])&&a(e.prototype,t),r&&a(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}()},811:(e,t,r)=>{r.d(t,{g:()=>d,r:()=>v});var n=r(556);function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}function i(e,t,r){return t=s(t),function(e,t){if(t&&("object"==o(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,c()?Reflect.construct(t,r||[],s(e).constructor):t.apply(e,r))}function a(e){var t="function"==typeof Map?new Map:void 0;return a=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return function(e,t,r){if(c())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,t);var o=new(e.bind.apply(e,n));return r&&u(o,r.prototype),o}(e,arguments,s(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),u(r,e)},a(e)}function c(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(c=function(){return!!e})()}function u(e,t){return u=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},u(e,t)}function s(e){return s=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},s(e)}function l(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function f(e,t){for(var r=0;r128)throw new v("invalid AWS access key ID; reason: size should be between 16 and 128 characters, got ".concat(t.accessKeyId.length));if(!t.secretAccessKey||""===t.secretAccessKey)throw new v("invalid AWS secret access key; reason: expected a non empty string, got `".concat(t.secretAccessKey,"`"));this.region=t.region,this.accessKeyId=t.accessKeyId,this.secretAccessKey=t.secretAccessKey,void 0!==t.sessionToken&&(this.sessionToken=t.sessionToken),void 0!==t.endpoint&&("string"==typeof t.endpoint?this.endpoint=new n.y(t.endpoint):this.endpoint=t.endpoint)}return p(e,null,[{key:"fromEnvironment",value:function(t){return new e({region:__ENV.AWS_REGION,accessKeyId:__ENV.AWS_ACCESS_KEY_ID,secretAccessKey:__ENV.AWS_SECRET_ACCESS_KEY,sessionToken:__ENV.AWS_SESSION_TOKEN,endpoint:null==t?void 0:t.endpoint})}}])}(),v=function(e){function t(e){return l(this,t),i(this,t,[e])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&u(e,t)}(t,e),p(t)}(a(Error))},464:(e,t,r)=>{r.d(t,{Kq:()=>o,Qt:()=>u,Qz:()=>w,SN:()=>m,Uv:()=>O,V1:()=>y,VQ:()=>g,Zs:()=>i,_e:()=>S,b2:()=>l,fk:()=>h,he:()=>a,iK:()=>s,ot:()=>f,pj:()=>v,sY:()=>p,ud:()=>d,wN:()=>n,z8:()=>P,zG:()=>c,zX:()=>b});var n="X-Amz-Algorithm",o="X-Amz-Credential",i="X-Amz-Date",a="X-Amz-Expires",c="X-Amz-Signature",u="X-Amz-SignedHeaders",s="X-Amz-Security-Token",l="x-amz-content-sha256",f=i.toLowerCase(),p=c.toLowerCase(),y="X-Amz-Target".toLowerCase(),h=s.toLowerCase(),d="authorization",v=[d,f,"date"],b="host",m={authorization:!0,"cache-control":!0,connection:!0,expect:!0,from:!0,"keep-alive":!0,"max-forwards":!0,pragma:!0,referer:!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0,"user-agent":!0,"x-amzn-trace-id":!0},g="aws4_request",w="AWS4-HMAC-SHA256",O=604800,S="e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",P="UNSIGNED-PAYLOAD"},556:(e,t,r)=>{function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,c=[],u=!0,s=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(c.push(n.value),c.length!==t);u=!0);}catch(e){s=!0,o=e}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(s)throw o}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return i(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?i(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rs});var s=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),c(this,"_protocol",void 0),c(this,"_hostname",void 0),c(this,"_port",void 0);var r=!t.startsWith("http://")&&!t.startsWith("https://")?"".concat(e.DEFAULT_PROTOCOL,"://").concat(t):t,n=r.match(/^https?:/),i=o(r.replace(/^https?:\/\//,"").split("/"),1)[0];this._protocol=n?n[0].slice(0,-1):e.DEFAULT_PROTOCOL,this._hostname=i.split(":")[0],this._port=i.split(":")[1]?parseInt(i.split(":")[1]):void 0}return t=e,(r=[{key:"copy",value:function(){return new e(this.href)}},{key:"host",get:function(){return this._port?"".concat(this._hostname,":").concat(this._port):this._hostname},set:function(e){var t=o(e.split(":"),2),r=t[0],n=t[1];this._hostname=r,this._port=n?parseInt(n):void 0}},{key:"hostname",get:function(){return this._hostname},set:function(e){this._hostname=e}},{key:"href",get:function(){return"".concat(this.protocol,"://").concat(this.host)},set:function(t){var r=t.match(/^https?:/),n=o(t.replace(/^https?:\/\//,"").split("/"),1)[0];this._protocol=r?r[0].slice(0,-1):e.DEFAULT_PROTOCOL,this._hostname=n.split(":")[0],this._port=n.split(":")[1]?parseInt(n.split(":")[1]):void 0}},{key:"port",get:function(){return this._port},set:function(e){this._port=e}},{key:"protocol",get:function(){return this._protocol},set:function(e){this._protocol=e}}])&&a(t.prototype,r),n&&a(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,r,n}();c(s,"DEFAULT_PROTOCOL","https")},539:(e,t,r)=>{r.d(t,{$g:()=>g,Dr:()=>m,F9:()=>_,M8:()=>w,ML:()=>S,cK:()=>k,cv:()=>b,km:()=>O,op:()=>T,rN:()=>E,v1:()=>P,yk:()=>j});var n,o=r(95);function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function c(e,t){for(var r=0;r{function n(e,t){e=e.toLowerCase();for(var r=0,n=Object.keys(t);rn})},639:(e,t,r)=>{r.d(t,{B:()=>P,s:()=>E});var n=r(275),o=r.n(n),i=r(464),a=r(539),c=r(21),u=r(680);function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function l(e,t,r){return t=p(t),function(e,t){if(t&&("object"==s(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,f()?Reflect.construct(t,r||[],p(e).constructor):t.apply(e,r))}function f(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(f=function(){return!!e})()}function p(e){return p=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},p(e)}function y(e,t){return y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},y(e,t)}function h(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return d(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?d(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){c=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(c)throw i}}}}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r1&&void 0!==arguments[1]?arguments[1]:{},r=b(b({},{signingDate:new Date,unsignableHeaders:new Set,signableHeaders:new Set}),t),n=T(r.signingDate),o=n.longDate,a=n.shortDate,u=r.signingService||this.service,s=r.signingRegion||this.region,l="".concat(a,"/").concat(s,"/").concat(u,"/").concat(i.VQ);e.headers[i.zX]||(e.headers[i.zX]=e.endpoint.hostname);for(var f=0,p=Object.keys(e.headers);f-1&&delete e.headers[y]}e.headers[i.ot]=o,this.credentials.sessionToken&&(e.headers[i.fk]=this.credentials.sessionToken),ArrayBuffer.isView(e.body)&&(e.body=e.body.buffer),e.body||(e.body="");var h=this.computePayloadHash(e);!(0,c.o)(i.b2,e.headers)&&this.applyChecksum&&(e.headers[i.b2]=h);var d=this.computeCanonicalHeaders(e,r.unsignableHeaders,r.signableHeaders),v=this.calculateSignature(o,l,this.deriveSigningKey(this.credentials,u,s,a),this.createCanonicalRequest(e,d,h));e.headers[i.ud]="".concat(i.Qz," ")+"Credential=".concat(this.credentials.accessKeyId,"/").concat(l,", ")+"SignedHeaders=".concat(Object.keys(d).sort().join(";"),", ")+"Signature=".concat(v);var m=e.endpoint.href;return e.path&&(m.endsWith("/")||e.path.startsWith("/")||(m+="/"),m+=e.path),e.query&&(m+="?".concat(this.serializeQueryParameters(e.query))),b({url:m},e)}},{key:"presign",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.signingDate,n=void 0===r?new Date:r,o=t.expiresIn,a=void 0===o?3600:o,c=t.unsignableHeaders,u=t.unhoistableHeaders,s=t.signableHeaders,l=t.signingRegion,f=t.signingService,p=T(n),y=p.longDate,h=p.shortDate,d=l||this.region,v=f||this.service;if(a>i.Uv)throw new E("Signature version 4 presigned URLs can't be valid for more than 7 days");var m="".concat(h,"/").concat(d,"/").concat(v,"/").concat(i.VQ),g=this.moveHeadersToQuery(e,{unhoistableHeaders:u});g.headers[i.zX]||(g.headers[i.zX]=e.endpoint.hostname),this.credentials.sessionToken&&(g.query[i.iK]=this.credentials.sessionToken),g.query[i.wN]=i.Qz,g.query[i.Kq]="".concat(this.credentials.accessKeyId,"/").concat(m),g.query[i.Zs]=y,g.query[i.he]=a.toString(10);var w=this.computeCanonicalHeaders(g,c,s);g.query[i.Qt]=Object.keys(w).sort().join(";");var O=this.deriveSigningKey(this.credentials,v,d,h),S=this.computePayloadHash(e),P=this.createCanonicalRequest(g,w,S);g.query[i.zG]=this.calculateSignature(y,m,O,P);var j,k=e.endpoint.href;g.path&&(k=null!==(j=k)&&void 0!==j&&j.endsWith("/")?k:k+"/",k+=g.path);return g.query&&(k+="?".concat(this.serializeQueryParameters(g.query))),b({url:k},g)}},{key:"createCanonicalRequest",value:function(e,t,r){var n=Object.keys(t).sort(),o=n.map((function(e){return"".concat(e,":").concat(t[e])})).join("\n"),i=n.join(";");return"".concat(e.method,"\n")+"".concat(this.computeCanonicalURI(e),"\n")+"".concat(this.computeCanonicalQuerystring(e),"\n")+"".concat(o,"\n\n")+"".concat(i,"\n")+"".concat(r)}},{key:"createStringToSign",value:function(e,t,r){var n=o().sha256(r,"hex");return"".concat(i.Qz,"\n")+"".concat(e,"\n")+"".concat(t,"\n")+"".concat(n)}},{key:"calculateSignature",value:function(e,t,r,n){var i=this.createStringToSign(e,t,n);return o().hmac("sha256",r,i,"hex")}},{key:"deriveSigningKey",value:function(e,t,r,n){var i=e.secretAccessKey,a=o().hmac("sha256","AWS4"+i,n,"binary"),c=o().hmac("sha256",a,r,"binary"),u=o().hmac("sha256",c,t,"binary");return o().hmac("sha256",u,"aws4_request","binary")}},{key:"computeCanonicalURI",value:function(e){var t=e.path;if(this.uriEscapePath){var r,n=[],o=h(t.split("/"));try{for(o.s();!(r=o.n()).done;){var i=r.value;0!==(null==i?void 0:i.length)&&("."!==i&&(".."===i?n.pop():n.push(i)))}}catch(e){o.e(e)}finally{o.f()}var a=null!=t&&t.startsWith("/")?"/":"",c=n.join("/"),u=n.length>0&&null!=t&&t.endsWith("/")?"/":"",s="".concat(a).concat(c).concat(u);return encodeURIComponent(s).replace(/%2F/g,"/")}return t}},{key:"computeCanonicalQuerystring",value:function(e){var t,r=e.query,n=void 0===r?{}:r,o=[],a={},c=function(e){if(e.toLowerCase()===i.sY)return 1;o.push(e);var t=n[e];"string"==typeof t?a[e]="".concat(j(e),"=").concat(j(t)):Array.isArray(t)&&(a[e]=t.slice(0).sort().reduce((function(t,r){return t.concat(["".concat(j(e),"=").concat(j(r))])}),[]).join("&"))},u=h(Object.keys(n).sort());try{for(u.s();!(t=u.n()).done;){c(t.value)}}catch(e){u.e(e)}finally{u.f()}return o.map((function(e){return a[e]})).filter((function(e){return e})).join("&")}},{key:"computeCanonicalHeaders",value:function(e,t,r){var n,o=e.headers,a={},c=h(Object.keys(o).sort());try{for(c.s();!(n=c.n()).done;){var u=n.value;if(null!=o[u]){var s=u.toLowerCase();(s in i.SN||null!=t&&t.has(s))&&(!r||r&&!r.has(s))||"string"==typeof o[u]&&(a[s]=o[u]=o[u].trim().replace(/\s+/g," "))}}}catch(e){c.e(e)}finally{c.f()}return a}},{key:"computePayloadHash",value:function(e){var t=e.headers,r=e.body;return t[i.b2]?t[i.b2]:null==r?i._e:"string"==typeof r||(0,u.m)(r)?o().sha256(r,"hex").toLowerCase():ArrayBuffer.isView(r)?o().sha256(r.buffer,"hex").toLowerCase():i.z8}},{key:"moveHeadersToQuery",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=JSON.parse(JSON.stringify(e)),n=r.headers,o=r.query,i=void 0===o?{}:o,a=0,c=Object.keys(n);a{function n(e){return"function"==typeof ArrayBuffer&&(e instanceof ArrayBuffer||"[object ArrayBuffer]"===Object.prototype.toString.call(e))}r.d(t,{m:()=>n})},275:e=>{e.exports=require("k6/crypto")},95:e=>{e.exports=require("k6/html")},570:e=>{e.exports=require("k6/http")}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,r),i.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};r.r(n),r.d(n,{AWSConfig:()=>o.g,AWSError:()=>i.cv,DNSError:()=>i.M8,GeneralError:()=>i.$g,HTTP2Error:()=>i.v1,InvalidAWSConfigError:()=>o.r,InvalidSignatureError:()=>a.s,NetworkError:()=>i.Dr,SQSClient:()=>C,SQSServiceError:()=>D,TCPError:()=>i.km,TLSError:()=>i.ML});var o=r(811),i=r(539),a=r(639),c=r(2),u=r(570),s=r.n(u),l=r(464);function f(e){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f(e)}function p(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,c=[],u=!0,s=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(c.push(n.value),c.length!==t);u=!0);}catch(e){s=!0,o=e}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(s)throw o}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return y(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?y(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function y(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),s=n.call(a,"finallyLoc");if(u&&s){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),x(r),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;x(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:I(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),m}},t}function d(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function v(e){for(var t=1;t2&&void 0!==c[2]?c[2]:{},o=v({QueueUrl:t},this._combineQueueMessageBodyAndOptions(r,n)),e.next=5,this._sendRequest("SendMessage",o);case 5:return i=e.sent,a=i.json(),e.abrupt("return",new x(a.MessageId,a.MD5OfMessageBody));case 8:case"end":return e.stop()}}),e,this)}))),function(e,t){return i.apply(this,arguments)})},{key:"sendMessageBatch",value:(o=m(h().mark((function e(t,r){var n,o,i,a,c,u,s,l=this;return h().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n="SendMessageBatch",o=r.map((function(e){var t=l._combineQueueMessageBodyAndOptions(e.messageBody,e.messageOptions);return t=v(v({},t),{},{Id:e.messageId})})),i={QueueUrl:t,Entries:o},e.next=5,this._sendRequest(n,i);case 5:return a=e.sent,c=a.json(),u=c.Successful||[],s=c.Failed||[],e.abrupt("return",{successful:u.map((function(e){return new x(e.MessageId,e.MD5OfMessageBody)})),failed:s.map((function(e){return new D(e.Message,e.Code,n)}))});case 10:case"end":return e.stop()}}),e,this)}))),function(e,t){return o.apply(this,arguments)})},{key:"listQueues",value:(n=m(h().mark((function e(){var t,r,n,o,i=arguments;return h().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r={},void 0!==(null==(t=i.length>0&&void 0!==i[0]?i[0]:{})?void 0:t.maxResults)&&(r=v(v({},r),{},{MaxResults:t.maxResults})),void 0!==(null==t?void 0:t.nextToken)&&(r=v(v({},r),{},{NextToken:t.nextToken})),void 0!==(null==t?void 0:t.queueNamePrefix)&&(r=v(v({},r),{},{QueueNamePrefix:t.queueNamePrefix})),e.next=8,this._sendRequest("ListQueues",r);case 8:return n=e.sent,o=n.json(),e.abrupt("return",{urls:o.QueueUrls,nextToken:null==o?void 0:o.NextToken});case 11:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"_combineQueueMessageBodyAndOptions",value:function(e,t){var r={MessageBody:e};if(void 0===t)return r;if(void 0!==t.messageDeduplicationId&&(r=v(v({},r),{},{MessageDeduplicationId:t.messageDeduplicationId})),void 0!==t.messageGroupId&&(r=v(v({},r),{},{MessageGroupId:t.messageGroupId})),void 0!==t.messageAttributes){for(var n={},o=0,i=Object.entries(t.messageAttributes);o} the response received by the k6 http client\n * @param operation {string | undefined } the name of the operation that was attempted when the error occurred\n * @param {boolean} returns true if an error was handled, false otherwise\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n protected handleError(response: RefinedResponse, operation?: string): boolean {\n const status: number = response.status\n const errorCode: number = response.error_code\n const errorMessage: string = response.error\n\n // We consider codes 200-299 as success.\n //\n // We do not consider 3xx as success as some services such as S3 can use\n // 301 to indicate a bucket not found\n if (status >= 200 && status < 300 && errorMessage == '' && errorCode === 0) {\n return false\n }\n\n switch (errorCode) {\n case GeneralErrorKind.GenericError:\n case GeneralErrorKind.NonTCPNetworkError:\n case GeneralErrorKind.InvalidURL:\n case GeneralErrorKind.HTTPRequestTimeout:\n throw new GeneralError(errorCode);\n case DNSErrorKind.GenericDNSError:\n case DNSErrorKind.NoIPFound:\n case DNSErrorKind.BlacklistedIP:\n case DNSErrorKind.BlacklistedHostname:\n throw new DNSError(errorCode);\n case TCPErrorKind.GenericTCPError:\n case TCPErrorKind.BrokenPipeOnWrite:\n case TCPErrorKind.UnknownTCPError:\n case TCPErrorKind.GeneralTCPDialError:\n case TCPErrorKind.DialTimeoutError:\n case TCPErrorKind.DialConnectionRefused:\n case TCPErrorKind.DialUnknownError:\n case TCPErrorKind.ResetByPeer:\n throw new TCPError(errorCode);\n case TLSErrorKind.GeneralTLSError:\n case TLSErrorKind.UnknownAuthority:\n case TLSErrorKind.CertificateHostnameMismatch:\n throw new TLSError(errorCode);\n case HTTP2ErrorKind.GenericHTTP2Error:\n case HTTP2ErrorKind.GeneralHTTP2GoAwayError:\n throw new HTTP2Error(errorCode);\n }\n\n return true\n }\n}\n\n/**\n * Type alias representing the result of an AWSClient.buildRequest call\n */\nexport interface AWSRequest {\n readonly url: string\n readonly headers: HTTPHeaders\n}\n","import { HTTPScheme } from './http'\nimport { Endpoint } from './endpoint'\n\n/** Class holding an AWS connection information */\nexport class AWSConfig {\n /**\n * The AWS region to connect to, as listed: https://docs.aws.amazon.com/general/latest/gr/rande.html\n *\n * @type {string}\n */\n region: string\n\n /**\n * Your user's AWS access key id credential.\n *\n * @type {string}\n */\n accessKeyId: string\n\n /**\n * Your user's AWS secret access key credential.\n *\n * @type {string}\n */\n secretAccessKey: string\n\n /**\n * Your user's AWS session token credential.\n *\n * @type {string}\n */\n sessionToken?: string\n\n /**\n * The AWS hostname to connect to.\n *\n * @type {string} ['amazonaws.com']\n */\n endpoint?: Endpoint\n\n /**\n * fromEnvironment creates an AWSConfig from the environment variables.\n *\n * It expects to find the following compulsory environment variables:\n * * AWS_REGION\n * * AWS_ACCESS_KEY_ID\n * * AWS_SECRET_ACCESS_KEY\n *\n * If set, the following optional environment variables are also used:\n * * AWS_SESSION_TOKEN\n *\n * Finally, the options parameter allows to explicitly set the scheme and endpoint\n * to use when connecting to AWS.\n *\n * @param options {AWSConnectionOptions}\n * @returns\n */\n static fromEnvironment(options?: AWSConnectionOptions): AWSConfig {\n const region = __ENV.AWS_REGION\n const accessKeyId = __ENV.AWS_ACCESS_KEY_ID\n const secretAccessKey = __ENV.AWS_SECRET_ACCESS_KEY\n const sessionToken: string | undefined = __ENV.AWS_SESSION_TOKEN\n const endpoint: Endpoint | string | undefined = options?.endpoint\n\n return new AWSConfig({\n region,\n accessKeyId,\n secretAccessKey,\n sessionToken,\n endpoint: endpoint,\n })\n }\n\n /**\n * Create an AWSConfig.\n *\n * @param {AWSConfigOptions} options - configuration attributes to use when interacting with AWS' APIs\n * @throws {InvalidArgumentException}\n */\n constructor(options: AWSConfigOptions) {\n if (!options.region || options.region === '') {\n throw new InvalidAWSConfigError(\n `invalid AWS region; reason: expected a valid AWS region name (e.g. \"us-east-1\"), got \\`${options.region}\\``\n )\n }\n\n if (!options.accessKeyId || options.accessKeyId === '') {\n throw new InvalidAWSConfigError(\n `invalid AWS access key ID; reason: expected a non empty string, got \\`${options.accessKeyId}\\``\n )\n }\n\n if (options.accessKeyId.length < 16 || options.accessKeyId.length > 128) {\n throw new InvalidAWSConfigError(\n `invalid AWS access key ID; reason: size should be between 16 and 128 characters, got ${options.accessKeyId.length}`\n )\n }\n\n if (!options.secretAccessKey || options.secretAccessKey === '') {\n throw new InvalidAWSConfigError(\n `invalid AWS secret access key; reason: expected a non empty string, got \\`${options.secretAccessKey}\\``\n )\n }\n\n this.region = options.region\n this.accessKeyId = options.accessKeyId\n this.secretAccessKey = options.secretAccessKey\n\n if (options.sessionToken !== undefined) {\n this.sessionToken = options.sessionToken\n }\n\n if (options.endpoint !== undefined) {\n if (typeof options.endpoint === 'string') {\n this.endpoint = new Endpoint(options.endpoint)\n } else {\n this.endpoint = options.endpoint\n }\n }\n }\n}\n\n/**\n * Interface representing AWSConfig options\n */\nexport interface AWSConfigOptions extends AWSConnectionOptions {\n /**\n * The AWS region to connect to, as listed: https://docs.aws.amazon.com/general/latest/gr/rande.html\n *\n * @type {string}\n */\n region: string\n\n /**\n * Your user's AWS access key id credential.\n *\n * @type {string}\n */\n accessKeyId: string\n\n /**\n * Your user's AWS secret access key credential.\n *\n * @type {string}\n */\n secretAccessKey: string\n\n /**\n * Your user's AWS session token credential.\n *\n * @type {string}\n */\n sessionToken?: string\n}\n\n/**\n * Interface representing AWS connection options\n */\nexport interface AWSConnectionOptions {\n /**\n * The HTTP scheme to use when connecting to AWS.\n *\n * @type {HTTPScheme}\n */\n scheme?: HTTPScheme\n\n /**\n * The AWS hostname to connect to.\n *\n * @type {string}\n */\n endpoint?: Endpoint | string\n}\n\n/** Class representing an invalid AWS configuration */\nexport class InvalidAWSConfigError extends Error {\n constructor(message: string) {\n super(message)\n }\n}\n","/**\n * Standard Amazon AWS query parameter names\n */\nexport const AMZ_ALGORITHM_QUERY_PARAM = 'X-Amz-Algorithm'\nexport const AMZ_CREDENTIAL_QUERY_PARAM = 'X-Amz-Credential'\nexport const AMZ_DATE_QUERY_PARAM = 'X-Amz-Date'\nexport const AMZ_EXPIRES_QUERY_PARAM = 'X-Amz-Expires'\nexport const AMZ_SIGNATURE_QUERY_PARAM = 'X-Amz-Signature'\nexport const AMZ_SIGNED_HEADERS_QUERY_PARAM = 'X-Amz-SignedHeaders'\nexport const AMZ_TARGET_QUERY_PARAM = 'X-Amz-Target'\nexport const AMZ_TOKEN_QUERY_PARAM = 'X-Amz-Security-Token'\n\n/**\n * Standard Amazon AWS header names\n */\nexport const AMZ_CONTENT_SHA256_HEADER = 'x-amz-content-sha256'\nexport const AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase()\nexport const AMZ_SIGNATURE_HEADER = AMZ_SIGNATURE_QUERY_PARAM.toLowerCase()\nexport const AMZ_TARGET_HEADER = AMZ_TARGET_QUERY_PARAM.toLowerCase()\nexport const AMZ_TOKEN_HEADER = AMZ_TOKEN_QUERY_PARAM.toLowerCase()\n\n/**\n * Common HTTP headers we rely on in the signing process\n */\nexport const AUTHORIZATION_HEADER = 'authorization'\nexport const DATE_HEADER = 'date'\n\n/**\n * Lists the headers that are generated as part of the signature process.\n */\nexport const GENERATED_HEADERS = [AUTHORIZATION_HEADER, AMZ_DATE_HEADER, DATE_HEADER]\nexport const HOST_HEADER = 'host'\n\n/**\n * Lists the headers that should never be included in the\n * request signature signature process.\n */\nexport const ALWAYS_UNSIGNABLE_HEADERS = {\n authorization: true,\n 'cache-control': true,\n connection: true,\n expect: true,\n from: true,\n 'keep-alive': true,\n 'max-forwards': true,\n pragma: true,\n referer: true,\n te: true,\n trailer: true,\n 'transfer-encoding': true,\n upgrade: true,\n 'user-agent': true,\n 'x-amzn-trace-id': true,\n}\n\n/**\n * Signature specific constants included in the signing process\n */\nexport const KEY_TYPE_IDENTIFIER = 'aws4_request'\nexport const SIGNING_ALGORITHM_IDENTIFIER = 'AWS4-HMAC-SHA256'\n\n/**\n * Maximum time to live of a signed request in seconds: 7 days.\n */\nexport const MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7\n\n/**\n * SHA256 hash of an empty string (so we don't waste cycles recomputing it)\n */\nexport const EMPTY_SHA256 = 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'\n\n/**\n * SHA256 hash of the unsigned payload constant (so we don't waste cycles recomputing it)\n */\nexport const UNSIGNED_PAYLOAD_SHA256 =\n '5a41b0751e4537c6ff868564ab44a4d4ecceec2ec5b1c5f74d97422968e04237'\n\nexport const UNSIGNED_PAYLOAD = 'UNSIGNED-PAYLOAD'\n","/**\n * Represents an AWS service endpoint, providing utilities for parsing and handling URL details.\n */\nexport class Endpoint {\n private _protocol: string\n private _hostname: string\n private _port?: number\n\n // Default protocol, this can be globally changed as per application requirements\n private static readonly DEFAULT_PROTOCOL = 'https' // Set this as per AWS.config\n\n /**\n // * Constructs a new Endpoint instance.\n *\n * @param {string} endpoint - The URL to construct an endpoint from. If the URL omits a protocol, the default protocol will be used.\n */\n constructor(endpoint: string) {\n const isDefaultProtocol =\n !endpoint.startsWith('http://') && !endpoint.startsWith('https://')\n const completeUrl = isDefaultProtocol\n ? `${Endpoint.DEFAULT_PROTOCOL}://${endpoint}`\n : endpoint\n\n const protocolMatch = completeUrl.match(/^https?:/)\n const hostAndPath = completeUrl.replace(/^https?:\\/\\//, '')\n const [hostnameWithPort] = hostAndPath.split('/')\n\n this._protocol = protocolMatch ? protocolMatch[0].slice(0, -1) : Endpoint.DEFAULT_PROTOCOL\n this._hostname = hostnameWithPort.split(':')[0]\n this._port = hostnameWithPort.split(':')[1]\n ? parseInt(hostnameWithPort.split(':')[1])\n : undefined\n }\n\n /**\n * Creates a new Endpoint instance that is a copy of the current one.\n *\n * @returns {Endpoint} The copied Endpoint.\n */\n public copy(): Endpoint {\n return new Endpoint(this.href)\n }\n\n /**\n * Gets the host portion of the endpoint including the port.\n *\n * @returns {string} The host portion of the endpoint including the port.\n */\n public get host(): string {\n return this._port ? `${this._hostname}:${this._port}` : this._hostname\n }\n\n /**\n * Sets the host portion of the endpoint including the port.\n *\n * @param {string} value - The value to set for the host.\n */\n public set host(value: string) {\n const [hostname, port] = value.split(':')\n this._hostname = hostname\n this._port = port ? parseInt(port) : undefined\n }\n\n /**\n * Gets the host portion of the endpoint without the port.\n *\n * @returns {string} The host portion of the endpoint.\n */\n public get hostname(): string {\n return this._hostname\n }\n\n /**\n * Sets the host portion of the endpoint without the port.\n *\n * @param {string} value - The value to set for the hostname.\n */\n public set hostname(value: string) {\n this._hostname = value\n }\n\n /**\n * Gets the full URL of the endpoint.\n *\n * @returns {string} The full URL of the endpoint.\n */\n public get href(): string {\n return `${this.protocol}://${this.host}`\n }\n\n /**\n * Sets the full URL of the endpoint.\n *\n * @param {string} value - The value to set for the full URL.\n */\n public set href(value: string) {\n const protocolMatch = value.match(/^https?:/)\n const withoutProtocol = value.replace(/^https?:\\/\\//, '')\n const [hostnameWithPort] = withoutProtocol.split('/')\n\n this._protocol = protocolMatch ? protocolMatch[0].slice(0, -1) : Endpoint.DEFAULT_PROTOCOL // remove the trailing colon\n this._hostname = hostnameWithPort.split(':')[0]\n this._port = hostnameWithPort.split(':')[1]\n ? parseInt(hostnameWithPort.split(':')[1])\n : undefined\n }\n\n /**\n * Gets the port of the endpoint.\n *\n * @returns {number|undefined} The port of the endpoint.\n */\n public get port(): number | undefined {\n return this._port\n }\n\n /**\n * Sets the port of the endpoint.\n *\n * @param {number|undefined} value - The value to set for the port.\n */\n public set port(value: number | undefined) {\n this._port = value\n }\n\n /**\n * Gets the protocol (http or https) of the endpoint URL.\n *\n * @returns {string} The protocol of the endpoint URL.\n */\n public get protocol(): string {\n return this._protocol\n }\n\n /**\n * Sets the protocol (http or https) of the endpoint URL.\n *\n * @param {string} value - The value to set for the protocol.\n */\n public set protocol(value: string) {\n this._protocol = value\n }\n}\n","import { JSONObject } from './json'\nimport { parseHTML } from 'k6/html'\nimport { Response } from 'k6/http'\n\n/**\n * Base class to derive errors from\n *\n * Inspired from AWS official error types, as\n * described in:\n * * https://aws.amazon.com/blogs/developer/service-error-handling-modular-aws-sdk-js/\n * * https://github.com/aws/aws-sdk-js/blob/master/lib/error.d.ts\n */\nexport class AWSError extends Error {\n /**\n * Error code issued by the service (if any)\n */\n code?: string\n\n /**\n * Create an AWSError\n *\n * @param {string} message - A longer human readable error message.\n * @param {string?} code - A unique short code representing the error that was emitted\n */\n constructor(message: string, code?: string) {\n super(message)\n this.name = 'AWSError'\n this.code = code\n }\n\n /**\n * Parse an AWSError from an XML document\n *\n * @param {string} xmlDocument - Serialized XML document to parse the error from\n * @returns {AWSError} - The parsed AWSError object\n */\n static parseXML(xmlDocument: string): AWSError {\n const doc = parseHTML(xmlDocument)\n return new AWSError(doc.find('Message').text(), doc.find('Code').text())\n }\n\n /**\n * Parse an AWSError from a Response object\n *\n * @param {Response} response - The Response object to parse the error from\n * @returns {AWSError} - The parsed AWSError object\n */\n static parse(response: Response): AWSError {\n if (response.headers['Content-Type'] === 'application/json') {\n const error = (response.json() as JSONObject) || {}\n const message =\n error.Message ||\n error.message ||\n error.__type ||\n 'An error occurred on the server side'\n const code = response.headers['X-Amzn-Errortype'] || error.__type\n return new AWSError(message as string, code as string)\n } else {\n return AWSError.parseXML(response.body as string)\n }\n }\n}\n\n/**\n * Base class for network errors as produced by k6.\n *\n * Based on the network error handling in k6, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n *\n * @typeparam N - The name of the network error\n * @typeparam K - The kind of the network error\n */\nexport class NetworkError extends Error {\n code: K\n name: N\n\n /**\n * Create a NetworkError\n *\n * @param {N} name - The name of the network error\n * @param {K} code - The kind of the network error\n */\n constructor(name: N, code: K) {\n super(ErrorMessages[code] || 'An unknown error occurred')\n this.name = name\n this.code = code\n }\n}\n\n/**\n * Represents a general network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class GeneralError extends NetworkError<'GeneralError', GeneralErrorKind> {\n /**\n * Create a GeneralError\n *\n * @param {GeneralErrorKind} code - The kind of the general error\n */\n constructor(code: GeneralErrorKind) {\n super('GeneralError', code)\n }\n}\n\n/**\n * Represents a DNS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class DNSError extends NetworkError<'DNSError', DNSErrorKind> {\n /**\n * Create a DNSError\n *\n * @param {DNSErrorKind} code - The kind of the DNS error\n */\n constructor(code: DNSErrorKind) {\n super('DNSError', code)\n }\n}\n\n/**\n * Represents a TCP-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class TCPError extends NetworkError<'TCPError', TCPErrorKind> {\n /**\n * Create a TCPError\n *\n * @param {TCPErrorKind} code - The kind of the TCP error\n */\n constructor(code: TCPErrorKind) {\n super('TCPError', code)\n }\n}\n\n/**\n * Represents a TLS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class TLSError extends NetworkError<'TLSError', TLSErrorKind> {\n /**\n * Create a TLSError\n *\n * @param {TLSErrorKind} code - The kind of the TLS error\n */\n constructor(code: TLSErrorKind) {\n super('TLSError', code)\n }\n}\n\n/**\n * Represents an HTTP/2-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class HTTP2Error extends NetworkError<'HTTP2Error', HTTP2ErrorKind> {\n /**\n * Create an HTTP2Error\n *\n * @param {HTTP2ErrorKind} code - The kind of the HTTP/2 error\n */\n constructor(code: HTTP2ErrorKind) {\n super('HTTP2Error', code)\n }\n}\n\n/**\n * Represents the name of a network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\ntype NetworkErrorName = 'GeneralError' | 'DNSError' | 'TCPError' | 'TLSError' | 'HTTP2Error'\n\n/**\n * Represents the kind of a network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\ntype ErrorKind = GeneralErrorKind | DNSErrorKind | TCPErrorKind | TLSErrorKind | HTTP2ErrorKind\n\n/**\n * Represents the kind of a general network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum GeneralErrorKind {\n GenericError = 1000,\n NonTCPNetworkError = 1010,\n InvalidURL = 1020,\n HTTPRequestTimeout = 1050,\n}\n\n/**\n * Represents the kind of a DNS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum DNSErrorKind {\n GenericDNSError = 1100,\n NoIPFound = 1101,\n BlacklistedIP = 1110,\n BlacklistedHostname = 1111,\n}\n\n/**\n * Represents the kind of a TCP-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum TCPErrorKind {\n GenericTCPError = 1200,\n BrokenPipeOnWrite = 1201,\n UnknownTCPError = 1202,\n GeneralTCPDialError = 1210,\n DialTimeoutError = 1211,\n DialConnectionRefused = 1212,\n DialUnknownError = 1213,\n ResetByPeer = 1220,\n}\n\n/**\n * Represents the kind of a TLS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum TLSErrorKind {\n GeneralTLSError = 1300,\n UnknownAuthority = 1310,\n CertificateHostnameMismatch = 1311,\n}\n\n/**\n * Represents the kind of an HTTP/2-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum HTTP2ErrorKind {\n GenericHTTP2Error = 1600,\n GeneralHTTP2GoAwayError = 1610,\n}\n\n/**\n * Error messages for each kind of network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nconst ErrorMessages: { [key in ErrorKind]: string } = {\n [GeneralErrorKind.GenericError]: 'A generic error that isn’t any of the ones listed below',\n [GeneralErrorKind.NonTCPNetworkError]:\n 'A non-TCP network error - this is a placeholder and there is no error currently known to trigger it',\n [GeneralErrorKind.InvalidURL]: 'An invalid URL was specified',\n [GeneralErrorKind.HTTPRequestTimeout]: 'The HTTP request has timed out',\n [DNSErrorKind.GenericDNSError]: 'A generic DNS error that isn’t any of the ones listed below',\n [DNSErrorKind.NoIPFound]: 'No IP for the provided host was found',\n [DNSErrorKind.BlacklistedIP]:\n 'Blacklisted IP was resolved or a connection to such was tried to be established',\n [DNSErrorKind.BlacklistedHostname]: 'Blacklisted hostname using The Block Hostnames option',\n [TCPErrorKind.GenericTCPError]: 'A generic TCP error that isn’t any of the ones listed below',\n [TCPErrorKind.BrokenPipeOnWrite]:\n 'A “broken pipe” on write - the other side has likely closed the connection',\n [TCPErrorKind.UnknownTCPError]:\n 'An unknown TCP error - We got an error that we don’t recognize but it is from the operating system and has errno set on it. The message in error includes the operation(write,read) and the errno, the OS, and the original message of the error',\n [TCPErrorKind.GeneralTCPDialError]: 'General TCP dial error',\n [TCPErrorKind.DialTimeoutError]: 'Dial timeout error - the timeout for the dial was reached',\n [TCPErrorKind.DialConnectionRefused]:\n 'Dial connection refused - the connection was refused by the other party on dial',\n [TCPErrorKind.DialUnknownError]: 'Dial unknown error',\n [TCPErrorKind.ResetByPeer]:\n 'Reset by peer - the connection was reset by the other party, most likely a server',\n [TLSErrorKind.GeneralTLSError]: 'General TLS error',\n [TLSErrorKind.UnknownAuthority]: 'Unknown authority - the certificate issuer is unknown',\n [TLSErrorKind.CertificateHostnameMismatch]: 'The certificate doesn’t match the hostname',\n [HTTP2ErrorKind.GenericHTTP2Error]:\n 'A generic HTTP/2 error that isn’t any of the ones listed below',\n [HTTP2ErrorKind.GeneralHTTP2GoAwayError]: 'A general HTTP/2 GoAway error',\n}\n","import { Endpoint } from './endpoint'\n\n/**\n * Type representing HTTP schemes\n */\nexport type HTTPScheme = 'http' | 'https'\n\n/**\n * Type representing HTTP Methods\n *\n */\nexport type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'DELETE'\n\n/**\n * Type alias representing HTTP Headers\n */\nexport type HTTPHeaders = { [key: string]: string }\n\n/**\n * HTTPHeaderBag is a type alias representing HTTP Headers\n */\nexport type HTTPHeaderBag = Record\n\nexport function hasHeader(soughtHeader: string, headers: HTTPHeaderBag): boolean {\n soughtHeader = soughtHeader.toLowerCase()\n\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * QueryParameterBag is a type alias representing HTTP Query Parameters\n */\nexport type QueryParameterBag = Record>\n\n/**\n * HTTPRequest represents an HTTP request\n */\nexport interface HTTPRequest {\n /**\n * The HTTP method to use\n */\n method: HTTPMethod\n\n /**\n * Represents an AWS service endpoint, providing utilities for parsing and handling URL details.\n */\n endpoint: Endpoint\n\n /**\n * The path to the resource\n */\n path: string\n\n /**\n * The query parameters to include in the request\n */\n query?: QueryParameterBag\n\n /**\n * The headers to include in the request\n */\n headers: HTTPHeaderBag\n\n /**\n * The body of the request\n */\n body?: string | ArrayBuffer | null\n}\n\n/**\n * SignedHTTPRequest represents an HTTP request that has been signed\n * with an AWS signature. It is a superset of HTTPRequest adding\n * the following fields:\n * - url: the fully qualified URL of the request that can be used in a k6 http.request.\n */\nexport interface SignedHTTPRequest extends HTTPRequest {\n url: string\n}\n","import crypto from 'k6/crypto'\n\nimport * as constants from './constants'\nimport { AWSError } from './error'\nimport { hasHeader, HTTPHeaderBag, HTTPRequest, QueryParameterBag, SignedHTTPRequest } from './http'\nimport { isArrayBuffer } from './utils'\n\n/**\n * SignatureV4 can be used to sign HTTP requests and presign URLs using the AWS Signature\n * Version 4 signing process.\n *\n * It offers two signing methods:\n * - sign: signs the request headers and payload\n * - presign: returns a presigned (authorization information contained in the query string) URL\n *\n * @see https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html\n */\nexport class SignatureV4 {\n /**\n * The name of the service to sign for.\n */\n private readonly service: string\n\n /**\n * The name of the region to sign for.\n */\n private readonly region: string\n\n /**\n * The credentials with which the request should be signed.\n */\n private readonly credentials: Credentials\n\n /**\n * Whether to uri-escape the request URI path as part of computing the\n * canonical request string. This is required for every AWS service, except\n * Amazon S3, as of late 2017.\n *\n * @default [true]\n */\n private readonly uriEscapePath: boolean\n\n /**\n * Whether to calculate a checksum of the request body and include it as\n * either a request header (when signing) or as a query string parameter\n * (when presigning). This is required for AWS Glacier and Amazon S3 and optional for\n * every other AWS service as of late 2017.\n *\n * @default [true]\n */\n private readonly applyChecksum: boolean\n\n // TODO: uriEscapePath and applyChecksum should not be present in the constructor\n constructor({\n service,\n region,\n credentials,\n uriEscapePath,\n applyChecksum,\n }: SignatureV4Options) {\n this.service = service\n this.region = region\n this.credentials = credentials\n this.uriEscapePath = typeof uriEscapePath === 'boolean' ? uriEscapePath : true\n this.applyChecksum = typeof applyChecksum === 'boolean' ? applyChecksum : true\n }\n\n /**\n * Includes AWS v4 signing information to the provided HTTP request.\n *\n * This method adds an Authorization header to the request, containing\n * the signature and other signing information. It also returns a preformatted\n * URL that can be used to make the k6 http request.\n *\n * This method mutates the request object.\n *\n * @param request {HTTPRequest} The request to sign.\n * @param options {Partial} Options for signing the request.\n * @returns {SignedHTTPRequest} The signed request.\n */\n sign(request: HTTPRequest, options: Partial = {}): SignedHTTPRequest {\n // Set default values for options which are not provided by the user.\n const defaultOptions = {\n signingDate: new Date(),\n unsignableHeaders: new Set(),\n signableHeaders: new Set(),\n }\n\n // Merge default options with the ones maybe provided by the user.\n const finalOptions = { ...defaultOptions, ...options }\n\n const { longDate, shortDate }: DateInfo = formatDate(finalOptions.signingDate)\n const service = finalOptions.signingService || this.service\n const region = finalOptions.signingRegion || this.region\n const scope = `${shortDate}/${region}/${service}/${constants.KEY_TYPE_IDENTIFIER}`\n\n // Required by the specification:\n // \"For HTTP/1.1 requests, you must include the host header at a minimum.\n // Standard headers like content-type are optional.\n // For HTTP/2 requests, you must include the :authority header instead of\n // the host header. Different services might require other headers.\"\n if (!request.headers[constants.HOST_HEADER]) {\n request.headers[constants.HOST_HEADER] = request.endpoint.hostname\n }\n\n // Filter out headers that will be generated and managed by the signing process.\n // If the user provide any of those as part of the HTTPRequest's headers, they\n // will be ignored.\n for (const headerName of Object.keys(request.headers)) {\n if (constants.GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) {\n delete request.headers[headerName]\n }\n }\n\n request.headers[constants.AMZ_DATE_HEADER] = longDate\n if (this.credentials.sessionToken) {\n request.headers[constants.AMZ_TOKEN_HEADER] = this.credentials.sessionToken\n }\n\n // If the request body is a typed array, we need to convert it to a buffer\n // so that we can calculate the checksum.\n if (ArrayBuffer.isView(request.body)) {\n request.body = request.body.buffer\n }\n\n // Ensure we avoid passing undefined to the crypto hash function.\n if (!request.body) {\n request.body = ''\n }\n\n const payloadHash = this.computePayloadHash(request)\n if (\n !hasHeader(constants.AMZ_CONTENT_SHA256_HEADER, request.headers) &&\n this.applyChecksum\n ) {\n request.headers[constants.AMZ_CONTENT_SHA256_HEADER] = payloadHash\n }\n\n const canonicalHeaders = this.computeCanonicalHeaders(\n request,\n finalOptions.unsignableHeaders,\n finalOptions.signableHeaders\n )\n const signature = this.calculateSignature(\n longDate,\n scope,\n this.deriveSigningKey(this.credentials, service, region, shortDate),\n this.createCanonicalRequest(request, canonicalHeaders, payloadHash)\n )\n\n /**\n * Step 4 of the signing process: add the signature to the HTTP request's headers.\n *\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html\n */\n request.headers[constants.AUTHORIZATION_HEADER] =\n `${constants.SIGNING_ALGORITHM_IDENTIFIER} ` +\n `Credential=${this.credentials.accessKeyId}/${scope}, ` +\n `SignedHeaders=${Object.keys(canonicalHeaders).sort().join(';')}, ` +\n `Signature=${signature}`\n\n // If a request path was provided, add it to the URL\n let url = request.endpoint.href\n if (request.path) {\n // Ensure the URI and the request path are properly concatenated\n // by adding a trailing slash to the URI if it's missing.\n if (!url.endsWith('/') && !request.path.startsWith('/')) {\n url += '/'\n }\n\n // Append the path to the URL\n url += request.path\n }\n\n // If a request query string was provided, add it to the URL\n if (request.query) {\n // We exclude the signature from the query string\n url += `?${this.serializeQueryParameters(request.query)}`\n }\n\n return {\n url: url,\n ...request,\n }\n }\n\n /**\n * Produces a presigned URL with AWS v4 signature information for the provided HTTP request.\n *\n * A presigned URL is a URL that contains the authorization information\n * (signature and other signing information) in the query string. This method\n * returns a preformatted URL that can be used to make the k6 http request.\n *\n * @param originalRequest - The original request to presign.\n * @param options - Options controlling the signing of the request.\n * @returns A signed request, including the presigned URL.\n */\n presign(originalRequest: HTTPRequest, options: PresignOptions = {}): SignedHTTPRequest {\n const {\n signingDate = new Date(),\n expiresIn = 3600,\n unsignableHeaders,\n unhoistableHeaders,\n signableHeaders,\n signingRegion,\n signingService,\n } = options\n const { longDate, shortDate }: DateInfo = formatDate(signingDate)\n const region = signingRegion || this.region\n const service = signingService || this.service\n\n if (expiresIn > constants.MAX_PRESIGNED_TTL) {\n throw new InvalidSignatureError(\n \"Signature version 4 presigned URLs can't be valid for more than 7 days\"\n )\n }\n\n const scope = `${shortDate}/${region}/${service}/${constants.KEY_TYPE_IDENTIFIER}`\n const request = this.moveHeadersToQuery(originalRequest, { unhoistableHeaders })\n\n // Required by the specification:\n // \"For HTTP/1.1 requests, you must include the host header at a minimum.\n // Standard headers like content-type are optional.\n // For HTTP/2 requests, you must include the :authority header instead of\n // the host header. Different services might require other headers.\"\n if (!request.headers[constants.HOST_HEADER]) {\n request.headers[constants.HOST_HEADER] = originalRequest.endpoint.hostname\n }\n\n // If the user provided a session token, include it in the signed url query string.\n if (this.credentials.sessionToken) {\n request.query[constants.AMZ_TOKEN_QUERY_PARAM] = this.credentials.sessionToken\n }\n // Add base signing query parameters to the request, as described in the documentation\n // @see https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html\n request.query[constants.AMZ_ALGORITHM_QUERY_PARAM] = constants.SIGNING_ALGORITHM_IDENTIFIER\n request.query[\n constants.AMZ_CREDENTIAL_QUERY_PARAM\n ] = `${this.credentials.accessKeyId}/${scope}`\n request.query[constants.AMZ_DATE_QUERY_PARAM] = longDate\n request.query[constants.AMZ_EXPIRES_QUERY_PARAM] = expiresIn.toString(10)\n\n const canonicalHeaders = this.computeCanonicalHeaders(\n request,\n unsignableHeaders,\n signableHeaders\n )\n request.query[constants.AMZ_SIGNED_HEADERS_QUERY_PARAM] = Object.keys(canonicalHeaders)\n .sort()\n .join(';')\n\n const signingKey = this.deriveSigningKey(this.credentials, service, region, shortDate)\n\n // Computing the payload from the original request. This is required\n // in the event the user attempts to produce a presigned URL for s3,\n // which requires the payload hash to be 'UNSIGNED-PAYLOAD'.\n //\n // To that effect, users need to set the 'x-amz-content-sha256' header,\n // and mark it as unhoistable and unsignable. When setup this way,\n // the computePayloadHash method will then return the string 'UNSIGNED-PAYLOAD'.\n const payloadHash = this.computePayloadHash(originalRequest)\n const canonicalRequest = this.createCanonicalRequest(request, canonicalHeaders, payloadHash)\n\n request.query[constants.AMZ_SIGNATURE_QUERY_PARAM] = this.calculateSignature(\n longDate,\n scope,\n signingKey,\n canonicalRequest\n )\n\n // If a request path was provided, add it to the URL\n let url = originalRequest.endpoint.href\n if (request.path) {\n // Ensure there is a trailing slash at the end of the URL\n // so that appending the path does not result in a malformed URL.\n url = url?.endsWith('/') ? url : url + '/'\n\n // Append the path to the URL\n url += request.path\n }\n\n // If a request query string was provided, add it to the URL\n if (request.query) {\n url += `?${this.serializeQueryParameters(request.query)}`\n }\n\n return { url: url, ...request }\n }\n\n /**\n * Create a string including information from your request\n * in a AWS signature v4 standardized (canonical) format.\n *\n * Step 1 of the signing process: create the canonical request string.\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html\n *\n * @param request {HTTPRequest} The request to sign.\n * @param canonicalHeaders {HTTPHeaderBag} The request's canonical headers.\n * @param payloadHash {string} The hexadecimally encoded request's payload hash .\n * @returns {string} The canonical request string.\n */\n private createCanonicalRequest(\n request: HTTPRequest,\n canonicalHeaders: HTTPHeaderBag,\n payloadHash: string\n ): string {\n const sortedHeaders = Object.keys(canonicalHeaders).sort()\n const sortedCanonicalHeaders = sortedHeaders\n .map((name) => `${name}:${canonicalHeaders[name]}`)\n .join('\\n')\n const signedHeaders = sortedHeaders.join(';')\n\n return (\n `${request.method}\\n` +\n `${this.computeCanonicalURI(request)}\\n` +\n `${this.computeCanonicalQuerystring(request)}\\n` +\n `${sortedCanonicalHeaders}\\n\\n` +\n `${signedHeaders}\\n` +\n `${payloadHash}`\n )\n }\n\n /**\n * Create the \"string to sign\" part of the signature Version 4 protocol.\n *\n * The \"string to sign\" includes meta information about your request and\n * about the canonical request that you created with `createCanonicalRequest`.\n * It is used hand in hand with the signing key to create the request signature.\n * Step 2 of the signing process: create the string to sign.\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-create-string-to-sign.html\n *\n * @param longDate {string} The request's date in iso 8601 format.\n * @param credentialScope {string} The request's credential scope.\n * @param canonicalRequest {string} The request's canonical request.\n * @returns {string} The \"string to sign\".\n */\n private createStringToSign(\n longDate: string,\n credentialScope: string,\n canonicalRequest: string\n ): string {\n const hashedCanonicalRequest = crypto.sha256(canonicalRequest, 'hex')\n\n return (\n `${constants.SIGNING_ALGORITHM_IDENTIFIER}\\n` +\n `${longDate}\\n` +\n `${credentialScope}\\n` +\n `${hashedCanonicalRequest}`\n )\n }\n\n /**\n * Calculte the signature for AWS signature version 4.\n *\n * Step 3 of the signing process: create the signature.\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-calculate-signature.html\n *\n * @param longDate {string} The request's date in iso 8601 format.\n * @param credentialScope {string} The request's credential scope.\n * @param signingKey {string} the signing key as computed by the deriveSigningKey method.\n * @param canonicalRequest {string} The request's canonical request.\n * @returns {string} The signature.\n */\n private calculateSignature(\n longDate: string,\n credentialScope: string,\n signingKey: Uint8Array,\n canonicalRequest: string\n ): string {\n const stringToSign = this.createStringToSign(longDate, credentialScope, canonicalRequest)\n return crypto.hmac('sha256', signingKey, stringToSign, 'hex')\n }\n\n /**\n * Derives the signing key for authenticating requests signed with\n * the Signature version 4 authentication protocol.\n *\n * deriveSigningKey produces a signing key by creating a series of\n * hash-based message authentication codes (HMACs) represented in\n * a binary format.\n *\n * The derived signing key is specific to the date it's made at, as well as\n * the service and region it targets.\n *\n * @param credentials {AWSCredentials} The credentials to use for signing.\n * @param service {string} The service the request is targeted at.\n * @param region {string} The region the request is targeted at.\n * @param shortDate {string} The request's date in YYYYMMDD format.\n * @returns {Uint8Array} The derived signing key.\n */\n private deriveSigningKey(\n credentials: Credentials,\n service: string,\n region: string,\n shortDate: string\n ): Uint8Array {\n const kSecret: string = credentials.secretAccessKey\n /**\n * crypto.hmac returns a value of type `bytes`, which is an alias for\n * number[]. However, the secret argument to hmac needs to either be\n * a `string` or ArrayBuffer. The only way to get around this is to\n * cast the return value of hmac to any, thus, we disable the no-explicit-any\n * ESLint rule for this function.\n */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const kDate: any = crypto.hmac('sha256', 'AWS4' + kSecret, shortDate, 'binary')\n const kRegion: any = crypto.hmac('sha256', kDate, region, 'binary')\n const kService: any = crypto.hmac('sha256', kRegion, service, 'binary')\n const kSigning: any = crypto.hmac('sha256', kService, 'aws4_request', 'binary')\n /* eslint-enable @typescript-eslint/no-explicit-any */\n\n return kSigning\n }\n\n /**\n * Create a string that includes information from your request\n * in a AWS signature v4 standardized (canonical) format.\n *\n * @param param0 {HTTPRequest} The request to sign.\n * @returns {string} The canonical URI.\n */\n private computeCanonicalURI({ path }: HTTPRequest): string {\n if (this.uriEscapePath) {\n // Non-S3 services, we normalize the path and then double URI encode it.\n // Ref: \"Remove Dot Segments\" https://datatracker.ietf.org/doc/html/rfc3986#section-5.2.4\n const normalizedURISegments = []\n\n for (const URISegment of path.split('/')) {\n if (URISegment?.length === 0) {\n continue\n }\n\n if (URISegment === '.') {\n continue\n }\n\n if (URISegment === '..') {\n normalizedURISegments.pop()\n } else {\n normalizedURISegments.push(URISegment)\n }\n }\n\n // Normalize the URI\n const leading = path?.startsWith('/') ? '/' : ''\n const URI = normalizedURISegments.join('/')\n const trailing = normalizedURISegments.length > 0 && path?.endsWith('/') ? '/' : ''\n const normalizedURI = `${leading}${URI}${trailing}`\n\n const doubleEncoded = encodeURIComponent(normalizedURI)\n\n return doubleEncoded.replace(/%2F/g, '/')\n }\n\n // For S3, we shouldn't normalize the path. For example, object name\n // my-object//example//photo.user should not be normalized to\n // my-object/example/photo.user\n return path\n }\n\n /**\n * Serializes the request's query parameters into their canonical\n * string version. If the request does not include a query parameters,\n * returns an empty string.\n *\n * @param param0 {HTTPRequest} The request containing the query parameters.\n * @returns {string} The canonical query string.\n */\n private computeCanonicalQuerystring({ query = {} }: HTTPRequest): string {\n const keys: Array = []\n const serialized: Record = {}\n\n for (const key of Object.keys(query).sort()) {\n if (key.toLowerCase() === constants.AMZ_SIGNATURE_HEADER) {\n continue\n }\n\n keys.push(key)\n const value = query[key]\n\n if (typeof value === 'string') {\n serialized[key] = `${escapeURI(key)}=${escapeURI(value)}`\n } else if (Array.isArray(value)) {\n serialized[key] = value\n .slice(0)\n .sort()\n .reduce(\n (encoded: Array, value: string) =>\n encoded.concat([`${escapeURI(key)}=${escapeURI(value)}`]),\n []\n )\n .join('&')\n }\n }\n\n return keys\n .map((key) => serialized[key])\n .filter((serialized) => serialized)\n .join('&')\n }\n\n /**\n * Create the canonical form of the request's headers.\n * Canonical headers consist of all the HTTP headers you\n * are including with the signed request.\n *\n * @param param0 {HTTPRequest} The request to compute the canonical headers of.\n * @param unsignableHeaders {Set} The headers that should not be signed.\n * @param signableHeaders {Set} The headers that should be signed.\n * @returns {string} The canonical headers.\n */\n private computeCanonicalHeaders(\n { headers }: HTTPRequest,\n unsignableHeaders?: Set,\n signableHeaders?: Set\n ): HTTPHeaderBag {\n const canonicalHeaders: HTTPHeaderBag = {}\n\n for (const headerName of Object.keys(headers).sort()) {\n if (headers[headerName] == undefined) {\n continue\n }\n\n const canonicalHeaderName = headerName.toLowerCase()\n if (\n canonicalHeaderName in constants.ALWAYS_UNSIGNABLE_HEADERS ||\n unsignableHeaders?.has(canonicalHeaderName)\n ) {\n if (\n !signableHeaders ||\n (signableHeaders && !signableHeaders.has(canonicalHeaderName))\n ) {\n continue\n }\n }\n\n if (typeof headers[headerName] === 'string') {\n canonicalHeaders[canonicalHeaderName] = headers[headerName] = headers[headerName]\n .trim()\n .replace(/\\s+/g, ' ')\n }\n }\n\n return canonicalHeaders\n }\n\n /**\n * Computes the SHA256 cryptographic hash of the request's body.\n *\n * If the headers contain the 'X-Amz-Content-Sha256' header, then\n * the value of that header is returned instead. This proves useful\n * when, for example, presiging a URL for S3, as the payload hash\n * must always be equal to 'UNSIGNED-PAYLOAD'.\n *\n * @param param0 {HTTPRequest} The request to compute the payload hash of.\n * @returns {string} The hex encoded SHA256 payload hash, or the value of the 'X-Amz-Content-Sha256' header.\n */\n private computePayloadHash({ headers, body }: HTTPRequest): string {\n // for (const headerName of Object.keys(headers)) {\n // // If the header is present, return its value.\n // // So that we let the 'UNSIGNED-PAYLOAD' value pass through.\n // if (headerName.toLowerCase() === constants.AMZ_CONTENT_SHA256_HEADER) {\n // return headers[headerName]\n // }\n // }\n\n if (headers[constants.AMZ_CONTENT_SHA256_HEADER]) {\n return headers[constants.AMZ_CONTENT_SHA256_HEADER]\n }\n\n if (body == undefined) {\n return constants.EMPTY_SHA256\n }\n\n if (typeof body === 'string' || isArrayBuffer(body)) {\n return crypto.sha256(body, 'hex').toLowerCase()\n }\n\n if (ArrayBuffer.isView(body)) {\n // If the request body is a typed array, we need to convert it to a buffer\n // so that we can calculate the checksum.\n return crypto.sha256((body as DataView).buffer, 'hex').toLowerCase()\n }\n\n return constants.UNSIGNED_PAYLOAD\n }\n\n /**\n * Moves a request's headers to its query parameters.\n *\n * The operation will ignore any amazon standard headers, prefixed\n * with 'X-Amz-'. It will also ignore any headers specified as unhoistable\n * by the options.\n *\n * The operation will delete the headers from the request.\n *\n * @param request {HTTPRequest} The request to move the headers from.\n * @param options\n * @returns {HTTPRequest} The request with the headers moved to the query parameters.\n */\n private moveHeadersToQuery(\n request: HTTPRequest,\n options: { unhoistableHeaders?: Set } = {}\n ): HTTPRequest & { query: QueryParameterBag } {\n const requestCopy = JSON.parse(JSON.stringify(request))\n const { headers, query = {} as QueryParameterBag } = requestCopy\n\n for (const name of Object.keys(headers)) {\n const lowerCaseName = name.toLowerCase()\n if (\n lowerCaseName.slice(0, 6) === 'x-amz-' &&\n !options.unhoistableHeaders?.has(lowerCaseName)\n ) {\n query[name] = headers[name]\n delete headers[name]\n }\n }\n\n return {\n ...requestCopy,\n headers,\n query,\n }\n }\n\n /**\n * Serializes a HTTPRequest's query parameter bag into a string.\n *\n * @param query {QueryParameterBag} The query parameters to serialize.\n * @param ignoreKeys {Set} The keys to ignore.\n * @returns {string} The serialized, and ready to use in a URL, query parameters.\n */\n private serializeQueryParameters(query: QueryParameterBag, ignoreKeys?: string[]): string {\n const keys: Array = []\n const serialized: Record = {}\n\n for (const key of Object.keys(query).sort()) {\n if (ignoreKeys?.includes(key.toLowerCase())) {\n continue\n }\n\n keys.push(key)\n const value = query[key]\n\n if (typeof value === 'string') {\n serialized[key] = `${escapeURI(key)}=${escapeURI(value)}`\n } else if (Array.isArray(value)) {\n serialized[key] = value\n .slice(0)\n .sort()\n .reduce(\n (encoded: Array, value: string) =>\n encoded.concat([`${escapeURI(key)}=${escapeURI(value)}`]),\n []\n )\n .join('&')\n }\n }\n\n return keys\n .map((key) => serialized[key])\n .filter((serialized) => serialized)\n .join('&')\n }\n}\n\n/**\n * Error indicating an Invalid signature has been sent to AWS services\n *\n * Inspired from AWS official error types, as\n * described in:\n * * https://aws.amazon.com/blogs/developer/service-error-handling-modular-aws-sdk-js/\n * * https://github.com/aws/aws-sdk-js/blob/master/lib/error.d.ts\n */\nexport class InvalidSignatureError extends AWSError {\n /**\n * Constructs an InvalidSignatureError\n *\n * @param {string} message - human readable error message\n */\n constructor(message: string, code?: string) {\n super(message, code)\n this.name = 'InvalidSignatureError'\n }\n}\n\nexport interface SignatureV4Options {\n /**\n * The name of the service to sign for.\n */\n service: string\n\n /**\n * The name of the region to sign for.\n */\n region: string\n\n /**\n * The credentials with which the request should be signed.\n */\n credentials: Credentials\n\n /**\n * Whether to uri-escape the request URI path as part of computing the\n * canonical request string. This is required for every AWS service, except\n * Amazon S3, as of late 2017.\n *\n * @default [true]\n */\n uriEscapePath?: boolean\n\n /**\n * Whether to calculate a checksum of the request body and include it as\n * either a request header (when signing) or as a query string parameter\n * (when presigning). This is required for AWS Glacier and Amazon S3 and optional for\n * every other AWS service as of late 2017.\n *\n * @default [true]\n */\n applyChecksum?: boolean\n}\n\nexport interface SignOptions {\n /**\n * The date and time to be used as signature metadata. This value should be\n * a Date object, a unix (epoch) timestamp, or a string that can be\n * understood by the JavaScript `Date` constructor.If not supplied, the\n * value returned by `new Date()` will be used.\n */\n signingDate?: Date\n\n /**\n * The service signing name. It will override the service name of the signer\n * in current invocation\n */\n signingService?: string\n\n /**\n * The region name to sign the request. It will override the signing region of the\n * signer in current invocation\n */\n signingRegion?: string\n}\n\nexport interface RequestSigningOptions extends SignOptions {\n /**\n * A set of strings whose members represents headers that cannot be signed.\n * All headers in the provided request will have their names converted to\n * lower case and then checked for existence in the unsignableHeaders set.\n */\n unsignableHeaders?: Set\n\n /**\n * A set of strings whose members represents headers that should be signed.\n * Any values passed here will override those provided via unsignableHeaders,\n * allowing them to be signed.\n *\n * All headers in the provided request will have their names converted to\n * lower case before signing.\n */\n signableHeaders?: Set\n}\n\nexport interface PresignOptions extends RequestSigningOptions {\n /**\n * The number of seconds before the presigned URL expires\n */\n expiresIn?: number\n\n /**\n * A set of strings whose representing headers that should not be hoisted\n * to presigned request's query string. If not supplied, the presigner\n * moves all the AWS-specific headers (starting with `x-amz-`) to the request\n * query string. If supplied, these headers remain in the presigned request's\n * header.\n * All headers in the provided request will have their names converted to\n * lower case and then checked for existence in the unhoistableHeaders set.\n */\n unhoistableHeaders?: Set\n}\n\nexport interface Credentials {\n /**\n * AWS access key ID\n */\n readonly accessKeyId: string\n\n /**\n * AWS secret access key\n */\n readonly secretAccessKey: string\n\n /**\n * A security or session token to use with these credentials. Usually\n * present for temporary credentials.\n */\n readonly sessionToken?: string\n}\n\nexport interface DateInfo {\n /**\n * ISO8601 formatted date string\n */\n longDate: string\n\n /**\n * String in the format YYYYMMDD\n */\n shortDate: string\n}\n\n/**\n * Escapes a URI following the AWS signature v4 escaping rules.\n *\n * @param URI {string} The URI to escape.\n * @returns {string} The escaped URI.\n */\nfunction escapeURI(URI: string): string {\n const hexEncode = (c: string): string => {\n return `%${c.charCodeAt(0).toString(16).toUpperCase()}`\n }\n\n return encodeURIComponent(URI).replace(/[!'()*]/g, hexEncode)\n}\n\n/**\n * formatDate formats a Date object into a ISO8601 formatted date string\n * and a string in the format YYYYMMDD.\n *\n * @param date {Date} The date to format.\n * @returns {DateInfo} The formatted date.\n */\nfunction formatDate(date: Date): DateInfo {\n const longDate = iso8601(date).replace(/[-:]/g, '')\n return {\n longDate,\n shortDate: longDate.slice(0, 8),\n }\n}\n\n/**\n * Formats a time into an ISO 8601 string.\n *\n * @see https://en.wikipedia.org/wiki/ISO_8601\n *\n * @param time {number | string | Date} The time to format.\n * @returns {string} The ISO 8601 formatted time.\n */\nfunction iso8601(time: number | string | Date): string {\n return toDate(time)\n .toISOString()\n .replace(/\\.\\d{3}Z$/, 'Z')\n}\n\n/**\n * Converts a time value into a Date object.\n *\n * @param time {number | string | Date} The time to convert.\n * @returns {Date} The resulting Date object.\n */\nfunction toDate(time: number | string | Date): Date {\n if (typeof time === 'number') {\n return new Date(time * 1000)\n }\n\n if (typeof time === 'string') {\n if (Number(time)) {\n return new Date(Number(time) * 1000)\n }\n\n return new Date(time)\n }\n\n return time\n}\n","/**\n *\n * @param value\n * @returns\n */\nexport function isArrayBuffer(value: unknown): value is ArrayBuffer {\n return (\n typeof ArrayBuffer === 'function' &&\n (value instanceof ArrayBuffer ||\n Object.prototype.toString.call(value) === '[object ArrayBuffer]')\n )\n}\n\nexport function toFormUrlEncoded(form: Record): string {\n return Object.keys(form)\n .reduce((params, key) => {\n const value = form[key]\n if (value !== undefined && value !== null) {\n params.push(`${encodeURIComponent(key)}=${encodeURIComponent(value)}`)\n }\n return params\n }, [] as string[])\n .join('&')\n}\n","module.exports = require(\"k6/crypto\");","module.exports = require(\"k6/html\");","module.exports = require(\"k6/http\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { AWSClient } from './client'\nimport { AWSConfig } from './config'\nimport { InvalidSignatureError, SignatureV4 } from './signature'\nimport { HTTPHeaders } from './http'\nimport http, { RefinedResponse, ResponseType } from 'k6/http'\nimport { AWSError } from './error'\nimport { AMZ_TARGET_HEADER } from './constants'\nimport { JSONObject } from './json'\n\nexport class SQSClient extends AWSClient {\n private readonly signature: SignatureV4\n private readonly commonHeaders: HTTPHeaders\n\n private readonly serviceVersion: string\n\n constructor(awsConfig: AWSConfig) {\n super(awsConfig, 'sqs')\n\n this.serviceVersion = 'AmazonSQS'\n\n this.signature = new SignatureV4({\n service: this.serviceName,\n region: this.awsConfig.region,\n credentials: {\n accessKeyId: this.awsConfig.accessKeyId,\n secretAccessKey: this.awsConfig.secretAccessKey,\n sessionToken: this.awsConfig.sessionToken,\n },\n uriEscapePath: true,\n applyChecksum: true,\n })\n\n this.commonHeaders = {\n 'Content-Type': 'application/x-amz-json-1.0',\n }\n }\n\n /**\n * Delivers a message to the specified queue.\n *\n * @param {string} queueUrl - The URL of the Amazon SQS queue to which a message is sent. Queue URLs and names are case-sensitive.\n * @param {string} messageBody - The message to send. The minimum size is one character. The maximum size is 256 KB.\n * @param {Object} options - Options for the request\n * @param {string} [options.messageDeduplicationId] - The message deduplication id.\n * @param {string} [options.messageGroupId] - The message group ID for FIFO queues\n * @returns {MessageResponse} - The message that was sent.\n */\n async sendMessage(\n queueUrl: string,\n messageBody: string,\n options: SendMessageOptions = {}\n ): Promise {\n const action = 'SendMessage'\n\n const body = {\n QueueUrl: queueUrl,\n ...this._combineQueueMessageBodyAndOptions(messageBody, options),\n }\n\n const res = await this._sendRequest(action, body)\n\n const parsed = res.json() as JSONObject\n return new MessageResponse(\n parsed['MessageId'] as string,\n parsed['MD5OfMessageBody'] as string\n )\n }\n\n /**\n * Delivers up to ten messages to the specified queue.\n *\n * @param {string} queueUrl - The URL of the Amazon SQS queue to which a message is sent. Queue URLs and names are case-sensitive.\n * @param {SendMessageBatchEntry[]} entries - A list of up to ten messages to send.\n * @returns {MessageBatchResponse} - The messages that were sent.\n */\n async sendMessageBatch(\n queueUrl: string,\n entries: SendMessageBatchEntry[]\n ): Promise {\n const action = 'SendMessageBatch'\n\n const requestMessageEntries = entries.map((entry) => {\n let requestMessageEntry = this._combineQueueMessageBodyAndOptions(\n entry.messageBody,\n entry.messageOptions\n )\n requestMessageEntry = { ...requestMessageEntry, Id: entry.messageId }\n return requestMessageEntry\n })\n\n const body = { QueueUrl: queueUrl, Entries: requestMessageEntries }\n\n const res = await this._sendRequest(action, body)\n\n const parsed = res.json() as JSONObject\n const successful: JSONObject[] = (parsed['Successful'] as JSONObject[]) || []\n const failed: JSONObject[] = (parsed['Failed'] as JSONObject[]) || []\n\n return {\n successful: successful.map(\n (entry) =>\n new MessageResponse(\n entry['MessageId'] as string,\n entry['MD5OfMessageBody'] as string\n )\n ),\n failed: failed.map(\n (entry) =>\n new SQSServiceError(entry['Message'] as string, entry['Code'] as string, action)\n ),\n }\n }\n\n /**\n * Returns a list of your queues in the current region.\n *\n * @param {ListQueuesRequestParameters} [parameters={}] request parameters\n * @param {number} [ListQueuesRequestParameters.maxResults] Maximum number of results to include in the response. Value range is 1 to 1000. You must set maxResults to receive a value for nextToken in the response.\n * @param {string} [ListQueuesRequestParameters.nextToken] Pagination token to request the next set of results.\n * @param {string} [ListQueuesRequestParameters.queueNamePrefix] A string to use for filtering the list results. Only those queues whose name begins with the specified string are returned.\n * @returns {Object}\n * @returns {string[]} Object.queueUrls - A list of queue URLs, up to 1000 entries.\n * @returns {string} [Object.nextToken] - In the future, you can use NextToken to request the next set of results.\n */\n async listQueues(parameters: ListQueuesRequestParameters = {}): Promise {\n const action = 'ListQueues'\n\n let body: object = {}\n\n if (typeof parameters?.maxResults !== 'undefined') {\n body = { ...body, MaxResults: parameters.maxResults }\n }\n\n if (typeof parameters?.nextToken !== 'undefined') {\n body = { ...body, NextToken: parameters.nextToken }\n }\n\n if (typeof parameters?.queueNamePrefix !== 'undefined') {\n body = { ...body, QueueNamePrefix: parameters.queueNamePrefix }\n }\n\n const res = await this._sendRequest(action, body)\n\n const parsed = res.json() as JSONObject\n return {\n urls: parsed['QueueUrls'] as string[],\n nextToken: parsed?.NextToken as string,\n }\n }\n\n private _combineQueueMessageBodyAndOptions(\n messageBody: string,\n options?: SendMessageOptions\n ): object {\n let body: object = { MessageBody: messageBody }\n\n if (options === undefined) {\n return body\n }\n\n if (typeof options.messageDeduplicationId !== 'undefined') {\n body = { ...body, MessageDeduplicationId: options.messageDeduplicationId }\n }\n\n if (typeof options.messageGroupId !== 'undefined') {\n body = { ...body, MessageGroupId: options.messageGroupId }\n }\n\n if (typeof options.messageAttributes !== 'undefined') {\n const messageAttributes: Record> = {}\n\n for (const [name, attribute] of Object.entries(options.messageAttributes)) {\n const valueParameterSuffix =\n attribute.type === 'Binary' ? 'BinaryValue' : 'StringValue'\n messageAttributes[name] = {\n DataType: attribute.type,\n }\n messageAttributes[name][valueParameterSuffix] = attribute.value\n }\n\n body = { ...body, MessageAttributes: messageAttributes }\n }\n\n if (typeof options.delaySeconds !== 'undefined') {\n body = { ...body, DelaySeconds: options.delaySeconds }\n }\n\n return body\n }\n\n private async _sendRequest(\n action: SQSOperation,\n body: object\n ): Promise> {\n const signedRequest = this.signature.sign(\n {\n method: 'POST',\n endpoint: this.endpoint,\n path: '/',\n headers: {\n ...this.commonHeaders,\n [AMZ_TARGET_HEADER]: `${this.serviceVersion}.${action}`,\n },\n body: JSON.stringify(body),\n },\n {}\n )\n\n const res = await http.asyncRequest('POST', signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n\n this._handleError(action, res)\n return res\n }\n\n private _handleError(\n operation: SQSOperation,\n response: RefinedResponse\n ) {\n const errorCode: number = response.error_code\n\n if (errorCode === 0) {\n return\n }\n\n const error = response.json() as JSONObject\n\n const errorMessage: string =\n (error.Message as string) || (error.message as string) || (error.__type as string)\n\n switch (error.__type) {\n case 'InvalidSignatureException':\n throw new InvalidSignatureError(errorMessage, error.__type)\n default:\n throw new SQSServiceError(errorMessage, error.__type as string, operation)\n }\n\n return true\n }\n\n protected handleError(\n response: RefinedResponse,\n operation?: string\n ): boolean {\n const errored = super.handleError(response)\n if (!errored) {\n return false\n }\n\n const errorCode: number = response.error_code\n\n if (errorCode === 0) {\n return false\n }\n\n const error = response.json() as JSONObject\n\n const errorMessage: string =\n (error.Message as string) || (error.message as string) || (error.__type as string)\n\n switch (error.__type) {\n case 'InvalidSignatureException':\n throw new InvalidSignatureError(errorMessage, error.__type)\n default:\n throw new SQSServiceError(\n errorMessage,\n error.__type as string,\n operation as SQSOperation\n )\n }\n }\n}\n\n/**\n * An Amazon SQS message.\n */\nexport class MessageResponse {\n /**\n * A unique identifier for the message.\n * A MessageIdis considered unique across all AWS accounts for an extended period of time.\n */\n id: string\n\n /**\n * An MD5 digest of the non-URL-encoded message body string.\n */\n bodyMD5: string\n\n /**\n * Instantiates a new Message object.\n *\n * @param id\n * @param md5Ofbody\n */\n constructor(id: string, bodyMD5: string) {\n this.id = id\n this.bodyMD5 = bodyMD5\n }\n}\n\n/**\n * An Amazon SQS message Batch Response.\n */\nexport class MessageBatchResponse {\n /**\n * A list of successful messages.\n */\n successful: MessageResponse[]\n\n /**\n * A list of failed messages.\n */\n failed: SQSServiceError[]\n\n /**\n * Instantiates a new MessageBatchResponse object.\n *\n * @param successful\n * @param failed\n */\n constructor(successful: MessageResponse[], failed: SQSServiceError[]) {\n this.successful = successful\n this.failed = failed\n }\n}\n\n/**\n * SQSServiceError indicates an error occurred while interacting with the SQS API.\n */\nexport class SQSServiceError extends AWSError {\n operation: SQSOperation\n\n constructor(message: string, code: string, operation: SQSOperation) {\n super(message, code)\n this.name = 'SQSServiceError'\n this.operation = operation\n }\n}\n\n/**\n * SQSOperation describes possible SQS operations.\n */\ntype SQSOperation = 'ListQueues' | 'SendMessage' | 'SendMessageBatch'\n\nexport interface SendMessageOptions {\n /**\n * The message deduplication ID for FIFO queues\n */\n messageDeduplicationId?: string\n\n /**\n * The message group ID for FIFO queues\n */\n messageGroupId?: string\n\n /**\n * The message attributes\n */\n messageAttributes?: {\n [name: string]: { type: 'String' | 'Number' | 'Binary'; value: string }\n }\n\n /**\n * The length of time, in seconds, for which to delay a specific message.\n */\n delaySeconds?: number\n}\n\nexport interface SendMessageBatchEntry {\n messageId: string\n messageBody: string\n messageOptions?: SendMessageOptions\n}\n\nexport interface ListQueuesRequestParameters {\n /**\n * Maximum number of results to include in the response. Value range is 1 to 1000.\n */\n maxResults?: number\n /**\n * Pagination token to request the next set of results.\n */\n nextToken?: string\n /**\n * A string to use for filtering the list results. Only those queues whose name begins with the specified string are returned.\n * Queue URLs and names are case-sensitive.\n */\n queueNamePrefix?: string\n}\n\nexport interface ListQueuesResponse {\n /**\n * A list of queue URLs, up to 1,000 entries, or the value of MaxResults you sent in the request.\n */\n urls: string[]\n /**\n * Pagination token to include in the next request.\n */\n nextToken?: string\n}\n"],"names":["AWSClient","awsConfig","serviceName","_classCallCheck","_defineProperty","responseType","this","undefined","endpoint","_endpoint","key","get","Endpoint","concat","region","set","value","response","operation","status","errorCode","error_code","errorMessage","error","GeneralErrorKind","GenericError","NonTCPNetworkError","InvalidURL","HTTPRequestTimeout","GeneralError","DNSErrorKind","GenericDNSError","NoIPFound","BlacklistedIP","BlacklistedHostname","DNSError","TCPErrorKind","GenericTCPError","BrokenPipeOnWrite","UnknownTCPError","GeneralTCPDialError","DialTimeoutError","DialConnectionRefused","DialUnknownError","ResetByPeer","TCPError","TLSErrorKind","GeneralTLSError","UnknownAuthority","CertificateHostnameMismatch","TLSError","HTTP2ErrorKind","GenericHTTP2Error","GeneralHTTP2GoAwayError","HTTP2Error","AWSConfig","options","InvalidAWSConfigError","accessKeyId","length","secretAccessKey","sessionToken","_createClass","__ENV","AWS_REGION","AWS_ACCESS_KEY_ID","AWS_SECRET_ACCESS_KEY","AWS_SESSION_TOKEN","_Error","message","_callSuper","_inherits","_wrapNativeSuper","Error","AMZ_ALGORITHM_QUERY_PARAM","AMZ_CREDENTIAL_QUERY_PARAM","AMZ_DATE_QUERY_PARAM","AMZ_EXPIRES_QUERY_PARAM","AMZ_SIGNATURE_QUERY_PARAM","AMZ_SIGNED_HEADERS_QUERY_PARAM","AMZ_TOKEN_QUERY_PARAM","AMZ_CONTENT_SHA256_HEADER","AMZ_DATE_HEADER","toLowerCase","AMZ_SIGNATURE_HEADER","AMZ_TARGET_HEADER","AMZ_TOKEN_HEADER","AUTHORIZATION_HEADER","GENERATED_HEADERS","HOST_HEADER","ALWAYS_UNSIGNABLE_HEADERS","authorization","connection","expect","from","pragma","referer","te","trailer","upgrade","KEY_TYPE_IDENTIFIER","SIGNING_ALGORITHM_IDENTIFIER","MAX_PRESIGNED_TTL","EMPTY_SHA256","UNSIGNED_PAYLOAD","completeUrl","startsWith","DEFAULT_PROTOCOL","protocolMatch","match","hostnameWithPort","_slicedToArray","replace","split","_protocol","slice","_hostname","_port","parseInt","href","_value$split2","hostname","port","protocol","host","AWSError","code","_this","name","xmlDocument","doc","parseHTML","find","text","headers","json","Message","__type","parseXML","body","NetworkError","_Error2","_this2","ErrorMessages","_NetworkError2","_NetworkError3","_NetworkError4","_NetworkError5","_NetworkError6","_ErrorMessages","hasHeader","soughtHeader","_i","_Object$keys","Object","keys","SignatureV4","_ref","service","credentials","uriEscapePath","applyChecksum","request","arguments","finalOptions","_objectSpread","signingDate","Date","unsignableHeaders","Set","signableHeaders","_formatDate","formatDate","longDate","shortDate","signingService","signingRegion","scope","constants","headerName","indexOf","ArrayBuffer","isView","buffer","payloadHash","computePayloadHash","canonicalHeaders","computeCanonicalHeaders","signature","calculateSignature","deriveSigningKey","createCanonicalRequest","sort","join","url","path","endsWith","query","serializeQueryParameters","originalRequest","_options$signingDate","_options$expiresIn","expiresIn","unhoistableHeaders","_formatDate2","InvalidSignatureError","moveHeadersToQuery","toString","signingKey","canonicalRequest","_url","sortedHeaders","sortedCanonicalHeaders","map","signedHeaders","method","computeCanonicalURI","computeCanonicalQuerystring","credentialScope","hashedCanonicalRequest","crypto","stringToSign","createStringToSign","kSecret","kDate","kRegion","kService","_ref2","_step","normalizedURISegments","_iterator","_createForOfIteratorHelper","s","n","done","URISegment","pop","push","err","e","f","leading","URI","trailing","normalizedURI","encodeURIComponent","_ref3","_step2","_ref3$query","serialized","_loop","escapeURI","Array","isArray","reduce","encoded","_iterator2","filter","_ref4","_step3","_iterator3","canonicalHeaderName","has","trim","_ref5","isArrayBuffer","requestCopy","JSON","parse","stringify","_requestCopy$query","_i2","_Object$keys2","_options$unhoistableH","lowerCaseName","ignoreKeys","_step4","_loop2","includes","_iterator4","_AWSError","c","charCodeAt","toUpperCase","date","time","Number","toDate","toISOString","prototype","call","module","exports","require","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","d","a","definition","o","defineProperty","enumerable","obj","prop","hasOwnProperty","r","Symbol","toStringTag","_regeneratorRuntime","t","i","iterator","asyncIterator","u","define","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","h","l","y","GeneratorFunction","GeneratorFunctionPrototype","p","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","reverse","prev","charAt","stop","rval","handle","complete","finish","delegateYield","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptor","apply","getOwnPropertyDescriptors","defineProperties","asyncGeneratorStep","_asyncToGenerator","_next","_throw","_defineProperties","_toPropertyKey","_getPrototypeOf","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","Boolean","valueOf","_get","bind","_superPropBase","_setPrototypeOf","toPrimitive","String","_toPrimitive","SQSClient","_AWSClient","serviceVersion","commonHeaders","_sendMessage","_callee","queueUrl","messageBody","res","parsed","_args","_context","QueueUrl","_combineQueueMessageBodyAndOptions","_sendRequest","MessageResponse","_x","_x2","_sendMessageBatch","_callee2","entries","action","requestMessageEntries","successful","failed","_context2","entry","requestMessageEntry","messageOptions","Id","messageId","Entries","SQSServiceError","_x3","_x4","_listQueues","_callee3","parameters","_args3","_context3","maxResults","MaxResults","nextToken","NextToken","queueNamePrefix","QueueNamePrefix","urls","MessageBody","messageDeduplicationId","MessageDeduplicationId","messageGroupId","MessageGroupId","messageAttributes","_Object$entries","_Object$entries$_i","attribute","valueParameterSuffix","DataType","MessageAttributes","delaySeconds","DelaySeconds","_sendRequest2","_callee4","signedRequest","_context4","sign","http","baseRequestParams","_handleError","_x5","_x6","id","bodyMD5","_this3"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/aws/0.13.0/ssm.js b/lib/aws/0.13.0/ssm.js new file mode 100644 index 0000000..60abea8 --- /dev/null +++ b/lib/aws/0.13.0/ssm.js @@ -0,0 +1,3 @@ +/*! For license information please see ssm.js.LICENSE.txt */ +(()=>{"use strict";var e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function n(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,c=[],u=!0,s=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(c.push(n.value),c.length!==t);u=!0);}catch(e){s=!0,o=e}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(s)throw o}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return o(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?o(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rw,AWSError:()=>I,DNSError:()=>B,GeneralError:()=>H,HTTP2Error:()=>K,InvalidAWSConfigError:()=>O,InvalidSignatureError:()=>je,NetworkError:()=>G,SystemsManagerClient:()=>Ye,SystemsManagerParameter:()=>$e,SystemsManagerServiceError:()=>Ze,TCPError:()=>U,TLSError:()=>q});var u=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),a(this,"_protocol",void 0),a(this,"_hostname",void 0),a(this,"_port",void 0);var r=!t.startsWith("http://")&&!t.startsWith("https://")?"".concat(e.DEFAULT_PROTOCOL,"://").concat(t):t,o=r.match(/^https?:/),i=n(r.replace(/^https?:\/\//,"").split("/"),1)[0];this._protocol=o?o[0].slice(0,-1):e.DEFAULT_PROTOCOL,this._hostname=i.split(":")[0],this._port=i.split(":")[1]?parseInt(i.split(":")[1]):void 0}return t=e,(r=[{key:"copy",value:function(){return new e(this.href)}},{key:"host",get:function(){return this._port?"".concat(this._hostname,":").concat(this._port):this._hostname},set:function(e){var t=n(e.split(":"),2),r=t[0],o=t[1];this._hostname=r,this._port=o?parseInt(o):void 0}},{key:"hostname",get:function(){return this._hostname},set:function(e){this._hostname=e}},{key:"href",get:function(){return"".concat(this.protocol,"://").concat(this.host)},set:function(t){var r=t.match(/^https?:/),o=n(t.replace(/^https?:\/\//,"").split("/"),1)[0];this._protocol=r?r[0].slice(0,-1):e.DEFAULT_PROTOCOL,this._hostname=o.split(":")[0],this._port=o.split(":")[1]?parseInt(o.split(":")[1]):void 0}},{key:"port",get:function(){return this._port},set:function(e){this._port=e}},{key:"protocol",get:function(){return this._protocol},set:function(e){this._protocol=e}}])&&i(t.prototype,r),o&&i(t,o),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,r,o}();function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function l(e,t,r){return t=y(t),function(e,t){if(t&&("object"==s(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,h()?Reflect.construct(t,r||[],y(e).constructor):t.apply(e,r))}function f(e){var t="function"==typeof Map?new Map:void 0;return f=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return function(e,t,r){if(h())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,t);var o=new(e.bind.apply(e,n));return r&&p(o,r.prototype),o}(e,arguments,y(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),p(r,e)},f(e)}function h(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(h=function(){return!!e})()}function p(e,t){return p=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},p(e,t)}function y(e){return y=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},y(e)}function d(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function v(e,t){for(var r=0;r128)throw new O("invalid AWS access key ID; reason: size should be between 16 and 128 characters, got ".concat(t.accessKeyId.length));if(!t.secretAccessKey||""===t.secretAccessKey)throw new O("invalid AWS secret access key; reason: expected a non empty string, got `".concat(t.secretAccessKey,"`"));this.region=t.region,this.accessKeyId=t.accessKeyId,this.secretAccessKey=t.secretAccessKey,void 0!==t.sessionToken&&(this.sessionToken=t.sessionToken),void 0!==t.endpoint&&("string"==typeof t.endpoint?this.endpoint=new u(t.endpoint):this.endpoint=t.endpoint)}return b(e,null,[{key:"fromEnvironment",value:function(t){return new e({region:__ENV.AWS_REGION,accessKeyId:__ENV.AWS_ACCESS_KEY_ID,secretAccessKey:__ENV.AWS_SECRET_ACCESS_KEY,sessionToken:__ENV.AWS_SESSION_TOKEN,endpoint:null==t?void 0:t.endpoint})}}])}(),O=function(e){function t(e){return d(this,t),l(this,t,[e])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&p(e,t)}(t,e),b(t)}(f(Error));const P=require("k6/html");var S;function E(e){return E="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},E(e)}function T(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function j(e,t){for(var r=0;r=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){c=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(c)throw i}}}}function be(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r1&&void 0!==arguments[1]?arguments[1]:{},r=ge(ge({},{signingDate:new Date,unsignableHeaders:new Set,signableHeaders:new Set}),t),n=ke(r.signingDate),o=n.longDate,i=n.shortDate,a=r.signingService||this.service,c=r.signingRegion||this.region,u="".concat(i,"/").concat(c,"/").concat(a,"/").concat(se);e.headers[ce]||(e.headers[ce]=e.endpoint.hostname);for(var s=0,l=Object.keys(e.headers);s-1&&delete e.headers[f]}e.headers[te]=o,this.credentials.sessionToken&&(e.headers[oe]=this.credentials.sessionToken),ArrayBuffer.isView(e.body)&&(e.body=e.body.buffer),e.body||(e.body="");var h=this.computePayloadHash(e);!function(e,t){e=e.toLowerCase();for(var r=0,n=Object.keys(t);r1&&void 0!==arguments[1]?arguments[1]:{},r=t.signingDate,n=void 0===r?new Date:r,o=t.expiresIn,i=void 0===o?3600:o,a=t.unsignableHeaders,c=t.unhoistableHeaders,u=t.signableHeaders,s=t.signingRegion,l=t.signingService,f=ke(n),h=f.longDate,p=f.shortDate,y=s||this.region,d=l||this.service;if(i>604800)throw new je("Signature version 4 presigned URLs can't be valid for more than 7 days");var v="".concat(p,"/").concat(y,"/").concat(d,"/").concat(se),b=this.moveHeadersToQuery(e,{unhoistableHeaders:c});b.headers[ce]||(b.headers[ce]=e.endpoint.hostname),this.credentials.sessionToken&&(b.query[Z]=this.credentials.sessionToken),b.query["X-Amz-Algorithm"]=le,b.query["X-Amz-Credential"]="".concat(this.credentials.accessKeyId,"/").concat(v),b.query[Y]=h,b.query["X-Amz-Expires"]=i.toString(10);var m=this.computeCanonicalHeaders(b,a,u);b.query["X-Amz-SignedHeaders"]=Object.keys(m).sort().join(";");var g=this.deriveSigningKey(this.credentials,d,y,p),w=this.computePayloadHash(e),O=this.createCanonicalRequest(b,m,w);b.query[$]=this.calculateSignature(h,v,g,O);var P,S=e.endpoint.href;b.path&&(S=null!==(P=S)&&void 0!==P&&P.endsWith("/")?S:S+"/",S+=b.path);return b.query&&(S+="?".concat(this.serializeQueryParameters(b.query))),ge({url:S},b)}},{key:"createCanonicalRequest",value:function(e,t,r){var n=Object.keys(t).sort(),o=n.map((function(e){return"".concat(e,":").concat(t[e])})).join("\n"),i=n.join(";");return"".concat(e.method,"\n")+"".concat(this.computeCanonicalURI(e),"\n")+"".concat(this.computeCanonicalQuerystring(e),"\n")+"".concat(o,"\n\n")+"".concat(i,"\n")+"".concat(r)}},{key:"createStringToSign",value:function(e,t,r){var n=J().sha256(r,"hex");return"".concat(le,"\n")+"".concat(e,"\n")+"".concat(t,"\n")+"".concat(n)}},{key:"calculateSignature",value:function(e,t,r,n){var o=this.createStringToSign(e,t,n);return J().hmac("sha256",r,o,"hex")}},{key:"deriveSigningKey",value:function(e,t,r,n){var o=e.secretAccessKey,i=J().hmac("sha256","AWS4"+o,n,"binary"),a=J().hmac("sha256",i,r,"binary"),c=J().hmac("sha256",a,t,"binary");return J().hmac("sha256",c,"aws4_request","binary")}},{key:"computeCanonicalURI",value:function(e){var t=e.path;if(this.uriEscapePath){var r,n=[],o=ve(t.split("/"));try{for(o.s();!(r=o.n()).done;){var i=r.value;0!==(null==i?void 0:i.length)&&("."!==i&&(".."===i?n.pop():n.push(i)))}}catch(e){o.e(e)}finally{o.f()}var a=null!=t&&t.startsWith("/")?"/":"",c=n.join("/"),u=n.length>0&&null!=t&&t.endsWith("/")?"/":"",s="".concat(a).concat(c).concat(u);return encodeURIComponent(s).replace(/%2F/g,"/")}return t}},{key:"computeCanonicalQuerystring",value:function(e){var t,r=e.query,n=void 0===r?{}:r,o=[],i={},a=function(e){if(e.toLowerCase()===re)return 1;o.push(e);var t=n[e];"string"==typeof t?i[e]="".concat(_e(e),"=").concat(_e(t)):Array.isArray(t)&&(i[e]=t.slice(0).sort().reduce((function(t,r){return t.concat(["".concat(_e(e),"=").concat(_e(r))])}),[]).join("&"))},c=ve(Object.keys(n).sort());try{for(c.s();!(t=c.n()).done;){a(t.value)}}catch(e){c.e(e)}finally{c.f()}return o.map((function(e){return i[e]})).filter((function(e){return e})).join("&")}},{key:"computeCanonicalHeaders",value:function(e,t,r){var n,o=e.headers,i={},a=ve(Object.keys(o).sort());try{for(a.s();!(n=a.n()).done;){var c=n.value;if(null!=o[c]){var u=c.toLowerCase();(u in ue||null!=t&&t.has(u))&&(!r||r&&!r.has(u))||"string"==typeof o[c]&&(i[u]=o[c]=o[c].trim().replace(/\s+/g," "))}}}catch(e){a.e(e)}finally{a.f()}return i}},{key:"computePayloadHash",value:function(e){var t,r=e.headers,n=e.body;return r[ee]?r[ee]:null==n?"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855":"string"==typeof n||(t=n,"function"==typeof ArrayBuffer&&(t instanceof ArrayBuffer||"[object ArrayBuffer]"===Object.prototype.toString.call(t)))?J().sha256(n,"hex").toLowerCase():ArrayBuffer.isView(n)?J().sha256(n.buffer,"hex").toLowerCase():"UNSIGNED-PAYLOAD"}},{key:"moveHeadersToQuery",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=JSON.parse(JSON.stringify(e)),n=r.headers,o=r.query,i=void 0===o?{}:o,a=0,c=Object.keys(n);a=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),s=n.call(a,"finallyLoc");if(u&&s){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),A(r),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;A(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:D(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),v}},t}function Ge(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function He(e){for(var t=1;t1&&void 0!==i[1]&&i[1],n=this.signature.sign({method:this.method,endpoint:this.endpoint,path:"/",headers:He(He({},this.commonHeaders),{},Qe({},ne,"AmazonSSM.GetParameter")),body:JSON.stringify({Name:t,WithDecryption:r})},{}),e.next=4,Ce().asyncRequest(this.method,n.url,n.body,He(He({},this.baseRequestParams),{},{headers:n.headers}));case 4:return o=e.sent,this.handleError(o,et.GetParameter),e.abrupt("return",$e.fromJSON(o.json()));case 7:case"end":return e.stop()}}),e,this)})),n=function(){var e=this,t=arguments;return new Promise((function(n,o){var i=r.apply(e,t);function a(e){Be(i,n,o,a,c,"next",e)}function c(e){Be(i,n,o,a,c,"throw",e)}a(void 0)}))},function(e){return n.apply(this,arguments)})},{key:"handleError",value:function(e,r){var n,o,i,a,c;if(!(n=t,o="handleError",i=this,c=ze(Fe(1&(a=3)?n.prototype:n),o,i),2&a?function(e){return c.apply(i,e)}:c)([e,r]))return!1;var u=e.error_code,s=e.json();if(u>=1400&&u<=1499){var l=s.Message||s.message||s.__type;if("InvalidSignatureException"===s.__type)throw new je(l,s.__type);throw new Ze(l,s.__type,r)}if(1500===u)throw new Ze("An error occured on the server side","InternalServiceError",r);return!0}}]);var r,n}(function(){return e=function e(t,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),xe(this,"awsConfig",void 0),xe(this,"serviceName",void 0),xe(this,"baseRequestParams",{responseType:"text"}),xe(this,"_endpoint",void 0),this.awsConfig=t,this.serviceName=r,null!=t.endpoint&&(this._endpoint=t.endpoint)},(t=[{key:"endpoint",get:function(){return null==this._endpoint&&(this._endpoint=new u("https://".concat(this.serviceName,".").concat(this.awsConfig.region,".amazonaws.com"))),this._endpoint},set:function(e){this._endpoint=e}},{key:"handleError",value:function(e,t){var r=e.status,n=e.error_code,o=e.error;if(r>=200&&r<300&&""==o&&0===n)return!1;switch(n){case M.GenericError:case M.NonTCPNetworkError:case M.InvalidURL:case M.HTTPRequestTimeout:throw new H(n);case W.GenericDNSError:case W.NoIPFound:case W.BlacklistedIP:case W.BlacklistedHostname:throw new B(n);case z.GenericTCPError:case z.BrokenPipeOnWrite:case z.UnknownTCPError:case z.GeneralTCPDialError:case z.DialTimeoutError:case z.DialConnectionRefused:case z.DialUnknownError:case z.ResetByPeer:throw new U(n);case F.GeneralTLSError:case F.UnknownAuthority:case F.CertificateHostnameMismatch:throw new q(n);case X.GenericHTTP2Error:case X.GeneralHTTP2GoAwayError:throw new K(n)}return!0}}])&&Le(e.prototype,t),r&&Le(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}()),$e=function(){function e(t,r,n,o,i,a,c,u,s){Ue(this,e),Qe(this,"arn",void 0),Qe(this,"dataType",void 0),Qe(this,"lastModifiedDate",void 0),Qe(this,"name",void 0),Qe(this,"selector",void 0),Qe(this,"sourceResult",void 0),Qe(this,"type",void 0),Qe(this,"value",void 0),Qe(this,"version",void 0),this.arn=t,this.dataType=r,this.lastModifiedDate=n,this.name=o,this.selector=i,this.sourceResult=a,this.type=c,this.value=u,this.version=s}return Ke(e,null,[{key:"fromJSON",value:function(t){var r=t.Parameter;return new e(r.ARN,r.DataType,r.LastModifiedDate,r.Name,r.Selector,r.SourceResult,r.Type,r.Value,r.Version)}}])}(),Ze=function(e){function t(e,r,n){var o;return Ue(this,t),Qe(o=Me(this,t,[e,r]),"operation",void 0),o.name="SystemsManagerServiceError",o.operation=n,o}return Xe(t,e),Ke(t)}(I),et=function(e){return e.GetParameter="GetParameter",e}(et||{}),tt=exports;for(var rt in t)tt[rt]=t[rt];t.__esModule&&Object.defineProperty(tt,"__esModule",{value:!0})})(); +//# sourceMappingURL=ssm.js.map \ No newline at end of file diff --git a/lib/aws/0.13.0/ssm.js.LICENSE.txt b/lib/aws/0.13.0/ssm.js.LICENSE.txt new file mode 100644 index 0000000..ae386fb --- /dev/null +++ b/lib/aws/0.13.0/ssm.js.LICENSE.txt @@ -0,0 +1 @@ +/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ diff --git a/lib/aws/0.13.0/ssm.js.map b/lib/aws/0.13.0/ssm.js.map new file mode 100644 index 0000000..ba3ed0b --- /dev/null +++ b/lib/aws/0.13.0/ssm.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ssm.js","mappings":"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","sources":["webpack://k6-jslib-aws/webpack/bootstrap","webpack://k6-jslib-aws/webpack/runtime/compat get default export","webpack://k6-jslib-aws/webpack/runtime/define property getters","webpack://k6-jslib-aws/webpack/runtime/hasOwnProperty shorthand","webpack://k6-jslib-aws/webpack/runtime/make namespace object","webpack://k6-jslib-aws/./src/internal/endpoint.ts","webpack://k6-jslib-aws/./src/internal/config.ts","webpack://k6-jslib-aws/external commonjs \"k6/html\"","webpack://k6-jslib-aws/./src/internal/error.ts","webpack://k6-jslib-aws/external commonjs \"k6/crypto\"","webpack://k6-jslib-aws/./src/internal/constants.ts","webpack://k6-jslib-aws/./src/internal/signature.ts","webpack://k6-jslib-aws/./src/internal/http.ts","webpack://k6-jslib-aws/./src/internal/utils.ts","webpack://k6-jslib-aws/external commonjs \"k6/http\"","webpack://k6-jslib-aws/./src/internal/ssm.ts","webpack://k6-jslib-aws/./src/internal/client.ts"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * Represents an AWS service endpoint, providing utilities for parsing and handling URL details.\n */\nexport class Endpoint {\n private _protocol: string\n private _hostname: string\n private _port?: number\n\n // Default protocol, this can be globally changed as per application requirements\n private static readonly DEFAULT_PROTOCOL = 'https' // Set this as per AWS.config\n\n /**\n // * Constructs a new Endpoint instance.\n *\n * @param {string} endpoint - The URL to construct an endpoint from. If the URL omits a protocol, the default protocol will be used.\n */\n constructor(endpoint: string) {\n const isDefaultProtocol =\n !endpoint.startsWith('http://') && !endpoint.startsWith('https://')\n const completeUrl = isDefaultProtocol\n ? `${Endpoint.DEFAULT_PROTOCOL}://${endpoint}`\n : endpoint\n\n const protocolMatch = completeUrl.match(/^https?:/)\n const hostAndPath = completeUrl.replace(/^https?:\\/\\//, '')\n const [hostnameWithPort] = hostAndPath.split('/')\n\n this._protocol = protocolMatch ? protocolMatch[0].slice(0, -1) : Endpoint.DEFAULT_PROTOCOL\n this._hostname = hostnameWithPort.split(':')[0]\n this._port = hostnameWithPort.split(':')[1]\n ? parseInt(hostnameWithPort.split(':')[1])\n : undefined\n }\n\n /**\n * Creates a new Endpoint instance that is a copy of the current one.\n *\n * @returns {Endpoint} The copied Endpoint.\n */\n public copy(): Endpoint {\n return new Endpoint(this.href)\n }\n\n /**\n * Gets the host portion of the endpoint including the port.\n *\n * @returns {string} The host portion of the endpoint including the port.\n */\n public get host(): string {\n return this._port ? `${this._hostname}:${this._port}` : this._hostname\n }\n\n /**\n * Sets the host portion of the endpoint including the port.\n *\n * @param {string} value - The value to set for the host.\n */\n public set host(value: string) {\n const [hostname, port] = value.split(':')\n this._hostname = hostname\n this._port = port ? parseInt(port) : undefined\n }\n\n /**\n * Gets the host portion of the endpoint without the port.\n *\n * @returns {string} The host portion of the endpoint.\n */\n public get hostname(): string {\n return this._hostname\n }\n\n /**\n * Sets the host portion of the endpoint without the port.\n *\n * @param {string} value - The value to set for the hostname.\n */\n public set hostname(value: string) {\n this._hostname = value\n }\n\n /**\n * Gets the full URL of the endpoint.\n *\n * @returns {string} The full URL of the endpoint.\n */\n public get href(): string {\n return `${this.protocol}://${this.host}`\n }\n\n /**\n * Sets the full URL of the endpoint.\n *\n * @param {string} value - The value to set for the full URL.\n */\n public set href(value: string) {\n const protocolMatch = value.match(/^https?:/)\n const withoutProtocol = value.replace(/^https?:\\/\\//, '')\n const [hostnameWithPort] = withoutProtocol.split('/')\n\n this._protocol = protocolMatch ? protocolMatch[0].slice(0, -1) : Endpoint.DEFAULT_PROTOCOL // remove the trailing colon\n this._hostname = hostnameWithPort.split(':')[0]\n this._port = hostnameWithPort.split(':')[1]\n ? parseInt(hostnameWithPort.split(':')[1])\n : undefined\n }\n\n /**\n * Gets the port of the endpoint.\n *\n * @returns {number|undefined} The port of the endpoint.\n */\n public get port(): number | undefined {\n return this._port\n }\n\n /**\n * Sets the port of the endpoint.\n *\n * @param {number|undefined} value - The value to set for the port.\n */\n public set port(value: number | undefined) {\n this._port = value\n }\n\n /**\n * Gets the protocol (http or https) of the endpoint URL.\n *\n * @returns {string} The protocol of the endpoint URL.\n */\n public get protocol(): string {\n return this._protocol\n }\n\n /**\n * Sets the protocol (http or https) of the endpoint URL.\n *\n * @param {string} value - The value to set for the protocol.\n */\n public set protocol(value: string) {\n this._protocol = value\n }\n}\n","import { HTTPScheme } from './http'\nimport { Endpoint } from './endpoint'\n\n/** Class holding an AWS connection information */\nexport class AWSConfig {\n /**\n * The AWS region to connect to, as listed: https://docs.aws.amazon.com/general/latest/gr/rande.html\n *\n * @type {string}\n */\n region: string\n\n /**\n * Your user's AWS access key id credential.\n *\n * @type {string}\n */\n accessKeyId: string\n\n /**\n * Your user's AWS secret access key credential.\n *\n * @type {string}\n */\n secretAccessKey: string\n\n /**\n * Your user's AWS session token credential.\n *\n * @type {string}\n */\n sessionToken?: string\n\n /**\n * The AWS hostname to connect to.\n *\n * @type {string} ['amazonaws.com']\n */\n endpoint?: Endpoint\n\n /**\n * fromEnvironment creates an AWSConfig from the environment variables.\n *\n * It expects to find the following compulsory environment variables:\n * * AWS_REGION\n * * AWS_ACCESS_KEY_ID\n * * AWS_SECRET_ACCESS_KEY\n *\n * If set, the following optional environment variables are also used:\n * * AWS_SESSION_TOKEN\n *\n * Finally, the options parameter allows to explicitly set the scheme and endpoint\n * to use when connecting to AWS.\n *\n * @param options {AWSConnectionOptions}\n * @returns\n */\n static fromEnvironment(options?: AWSConnectionOptions): AWSConfig {\n const region = __ENV.AWS_REGION\n const accessKeyId = __ENV.AWS_ACCESS_KEY_ID\n const secretAccessKey = __ENV.AWS_SECRET_ACCESS_KEY\n const sessionToken: string | undefined = __ENV.AWS_SESSION_TOKEN\n const endpoint: Endpoint | string | undefined = options?.endpoint\n\n return new AWSConfig({\n region,\n accessKeyId,\n secretAccessKey,\n sessionToken,\n endpoint: endpoint,\n })\n }\n\n /**\n * Create an AWSConfig.\n *\n * @param {AWSConfigOptions} options - configuration attributes to use when interacting with AWS' APIs\n * @throws {InvalidArgumentException}\n */\n constructor(options: AWSConfigOptions) {\n if (!options.region || options.region === '') {\n throw new InvalidAWSConfigError(\n `invalid AWS region; reason: expected a valid AWS region name (e.g. \"us-east-1\"), got \\`${options.region}\\``\n )\n }\n\n if (!options.accessKeyId || options.accessKeyId === '') {\n throw new InvalidAWSConfigError(\n `invalid AWS access key ID; reason: expected a non empty string, got \\`${options.accessKeyId}\\``\n )\n }\n\n if (options.accessKeyId.length < 16 || options.accessKeyId.length > 128) {\n throw new InvalidAWSConfigError(\n `invalid AWS access key ID; reason: size should be between 16 and 128 characters, got ${options.accessKeyId.length}`\n )\n }\n\n if (!options.secretAccessKey || options.secretAccessKey === '') {\n throw new InvalidAWSConfigError(\n `invalid AWS secret access key; reason: expected a non empty string, got \\`${options.secretAccessKey}\\``\n )\n }\n\n this.region = options.region\n this.accessKeyId = options.accessKeyId\n this.secretAccessKey = options.secretAccessKey\n\n if (options.sessionToken !== undefined) {\n this.sessionToken = options.sessionToken\n }\n\n if (options.endpoint !== undefined) {\n if (typeof options.endpoint === 'string') {\n this.endpoint = new Endpoint(options.endpoint)\n } else {\n this.endpoint = options.endpoint\n }\n }\n }\n}\n\n/**\n * Interface representing AWSConfig options\n */\nexport interface AWSConfigOptions extends AWSConnectionOptions {\n /**\n * The AWS region to connect to, as listed: https://docs.aws.amazon.com/general/latest/gr/rande.html\n *\n * @type {string}\n */\n region: string\n\n /**\n * Your user's AWS access key id credential.\n *\n * @type {string}\n */\n accessKeyId: string\n\n /**\n * Your user's AWS secret access key credential.\n *\n * @type {string}\n */\n secretAccessKey: string\n\n /**\n * Your user's AWS session token credential.\n *\n * @type {string}\n */\n sessionToken?: string\n}\n\n/**\n * Interface representing AWS connection options\n */\nexport interface AWSConnectionOptions {\n /**\n * The HTTP scheme to use when connecting to AWS.\n *\n * @type {HTTPScheme}\n */\n scheme?: HTTPScheme\n\n /**\n * The AWS hostname to connect to.\n *\n * @type {string}\n */\n endpoint?: Endpoint | string\n}\n\n/** Class representing an invalid AWS configuration */\nexport class InvalidAWSConfigError extends Error {\n constructor(message: string) {\n super(message)\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"k6/html\");","import { JSONObject } from './json'\nimport { parseHTML } from 'k6/html'\nimport { Response } from 'k6/http'\n\n/**\n * Base class to derive errors from\n *\n * Inspired from AWS official error types, as\n * described in:\n * * https://aws.amazon.com/blogs/developer/service-error-handling-modular-aws-sdk-js/\n * * https://github.com/aws/aws-sdk-js/blob/master/lib/error.d.ts\n */\nexport class AWSError extends Error {\n /**\n * Error code issued by the service (if any)\n */\n code?: string\n\n /**\n * Create an AWSError\n *\n * @param {string} message - A longer human readable error message.\n * @param {string?} code - A unique short code representing the error that was emitted\n */\n constructor(message: string, code?: string) {\n super(message)\n this.name = 'AWSError'\n this.code = code\n }\n\n /**\n * Parse an AWSError from an XML document\n *\n * @param {string} xmlDocument - Serialized XML document to parse the error from\n * @returns {AWSError} - The parsed AWSError object\n */\n static parseXML(xmlDocument: string): AWSError {\n const doc = parseHTML(xmlDocument)\n return new AWSError(doc.find('Message').text(), doc.find('Code').text())\n }\n\n /**\n * Parse an AWSError from a Response object\n *\n * @param {Response} response - The Response object to parse the error from\n * @returns {AWSError} - The parsed AWSError object\n */\n static parse(response: Response): AWSError {\n if (response.headers['Content-Type'] === 'application/json') {\n const error = (response.json() as JSONObject) || {}\n const message =\n error.Message ||\n error.message ||\n error.__type ||\n 'An error occurred on the server side'\n const code = response.headers['X-Amzn-Errortype'] || error.__type\n return new AWSError(message as string, code as string)\n } else {\n return AWSError.parseXML(response.body as string)\n }\n }\n}\n\n/**\n * Base class for network errors as produced by k6.\n *\n * Based on the network error handling in k6, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n *\n * @typeparam N - The name of the network error\n * @typeparam K - The kind of the network error\n */\nexport class NetworkError extends Error {\n code: K\n name: N\n\n /**\n * Create a NetworkError\n *\n * @param {N} name - The name of the network error\n * @param {K} code - The kind of the network error\n */\n constructor(name: N, code: K) {\n super(ErrorMessages[code] || 'An unknown error occurred')\n this.name = name\n this.code = code\n }\n}\n\n/**\n * Represents a general network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class GeneralError extends NetworkError<'GeneralError', GeneralErrorKind> {\n /**\n * Create a GeneralError\n *\n * @param {GeneralErrorKind} code - The kind of the general error\n */\n constructor(code: GeneralErrorKind) {\n super('GeneralError', code)\n }\n}\n\n/**\n * Represents a DNS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class DNSError extends NetworkError<'DNSError', DNSErrorKind> {\n /**\n * Create a DNSError\n *\n * @param {DNSErrorKind} code - The kind of the DNS error\n */\n constructor(code: DNSErrorKind) {\n super('DNSError', code)\n }\n}\n\n/**\n * Represents a TCP-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class TCPError extends NetworkError<'TCPError', TCPErrorKind> {\n /**\n * Create a TCPError\n *\n * @param {TCPErrorKind} code - The kind of the TCP error\n */\n constructor(code: TCPErrorKind) {\n super('TCPError', code)\n }\n}\n\n/**\n * Represents a TLS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class TLSError extends NetworkError<'TLSError', TLSErrorKind> {\n /**\n * Create a TLSError\n *\n * @param {TLSErrorKind} code - The kind of the TLS error\n */\n constructor(code: TLSErrorKind) {\n super('TLSError', code)\n }\n}\n\n/**\n * Represents an HTTP/2-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport class HTTP2Error extends NetworkError<'HTTP2Error', HTTP2ErrorKind> {\n /**\n * Create an HTTP2Error\n *\n * @param {HTTP2ErrorKind} code - The kind of the HTTP/2 error\n */\n constructor(code: HTTP2ErrorKind) {\n super('HTTP2Error', code)\n }\n}\n\n/**\n * Represents the name of a network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\ntype NetworkErrorName = 'GeneralError' | 'DNSError' | 'TCPError' | 'TLSError' | 'HTTP2Error'\n\n/**\n * Represents the kind of a network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\ntype ErrorKind = GeneralErrorKind | DNSErrorKind | TCPErrorKind | TLSErrorKind | HTTP2ErrorKind\n\n/**\n * Represents the kind of a general network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum GeneralErrorKind {\n GenericError = 1000,\n NonTCPNetworkError = 1010,\n InvalidURL = 1020,\n HTTPRequestTimeout = 1050,\n}\n\n/**\n * Represents the kind of a DNS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum DNSErrorKind {\n GenericDNSError = 1100,\n NoIPFound = 1101,\n BlacklistedIP = 1110,\n BlacklistedHostname = 1111,\n}\n\n/**\n * Represents the kind of a TCP-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum TCPErrorKind {\n GenericTCPError = 1200,\n BrokenPipeOnWrite = 1201,\n UnknownTCPError = 1202,\n GeneralTCPDialError = 1210,\n DialTimeoutError = 1211,\n DialConnectionRefused = 1212,\n DialUnknownError = 1213,\n ResetByPeer = 1220,\n}\n\n/**\n * Represents the kind of a TLS-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum TLSErrorKind {\n GeneralTLSError = 1300,\n UnknownAuthority = 1310,\n CertificateHostnameMismatch = 1311,\n}\n\n/**\n * Represents the kind of an HTTP/2-related network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nexport enum HTTP2ErrorKind {\n GenericHTTP2Error = 1600,\n GeneralHTTP2GoAwayError = 1610,\n}\n\n/**\n * Error messages for each kind of network error, as described in:\n * https://grafana.com/docs/k6/latest/javascript-api/error-codes/\n */\nconst ErrorMessages: { [key in ErrorKind]: string } = {\n [GeneralErrorKind.GenericError]: 'A generic error that isn’t any of the ones listed below',\n [GeneralErrorKind.NonTCPNetworkError]:\n 'A non-TCP network error - this is a placeholder and there is no error currently known to trigger it',\n [GeneralErrorKind.InvalidURL]: 'An invalid URL was specified',\n [GeneralErrorKind.HTTPRequestTimeout]: 'The HTTP request has timed out',\n [DNSErrorKind.GenericDNSError]: 'A generic DNS error that isn’t any of the ones listed below',\n [DNSErrorKind.NoIPFound]: 'No IP for the provided host was found',\n [DNSErrorKind.BlacklistedIP]:\n 'Blacklisted IP was resolved or a connection to such was tried to be established',\n [DNSErrorKind.BlacklistedHostname]: 'Blacklisted hostname using The Block Hostnames option',\n [TCPErrorKind.GenericTCPError]: 'A generic TCP error that isn’t any of the ones listed below',\n [TCPErrorKind.BrokenPipeOnWrite]:\n 'A “broken pipe” on write - the other side has likely closed the connection',\n [TCPErrorKind.UnknownTCPError]:\n 'An unknown TCP error - We got an error that we don’t recognize but it is from the operating system and has errno set on it. The message in error includes the operation(write,read) and the errno, the OS, and the original message of the error',\n [TCPErrorKind.GeneralTCPDialError]: 'General TCP dial error',\n [TCPErrorKind.DialTimeoutError]: 'Dial timeout error - the timeout for the dial was reached',\n [TCPErrorKind.DialConnectionRefused]:\n 'Dial connection refused - the connection was refused by the other party on dial',\n [TCPErrorKind.DialUnknownError]: 'Dial unknown error',\n [TCPErrorKind.ResetByPeer]:\n 'Reset by peer - the connection was reset by the other party, most likely a server',\n [TLSErrorKind.GeneralTLSError]: 'General TLS error',\n [TLSErrorKind.UnknownAuthority]: 'Unknown authority - the certificate issuer is unknown',\n [TLSErrorKind.CertificateHostnameMismatch]: 'The certificate doesn’t match the hostname',\n [HTTP2ErrorKind.GenericHTTP2Error]:\n 'A generic HTTP/2 error that isn’t any of the ones listed below',\n [HTTP2ErrorKind.GeneralHTTP2GoAwayError]: 'A general HTTP/2 GoAway error',\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"k6/crypto\");","/**\n * Standard Amazon AWS query parameter names\n */\nexport const AMZ_ALGORITHM_QUERY_PARAM = 'X-Amz-Algorithm'\nexport const AMZ_CREDENTIAL_QUERY_PARAM = 'X-Amz-Credential'\nexport const AMZ_DATE_QUERY_PARAM = 'X-Amz-Date'\nexport const AMZ_EXPIRES_QUERY_PARAM = 'X-Amz-Expires'\nexport const AMZ_SIGNATURE_QUERY_PARAM = 'X-Amz-Signature'\nexport const AMZ_SIGNED_HEADERS_QUERY_PARAM = 'X-Amz-SignedHeaders'\nexport const AMZ_TARGET_QUERY_PARAM = 'X-Amz-Target'\nexport const AMZ_TOKEN_QUERY_PARAM = 'X-Amz-Security-Token'\n\n/**\n * Standard Amazon AWS header names\n */\nexport const AMZ_CONTENT_SHA256_HEADER = 'x-amz-content-sha256'\nexport const AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase()\nexport const AMZ_SIGNATURE_HEADER = AMZ_SIGNATURE_QUERY_PARAM.toLowerCase()\nexport const AMZ_TARGET_HEADER = AMZ_TARGET_QUERY_PARAM.toLowerCase()\nexport const AMZ_TOKEN_HEADER = AMZ_TOKEN_QUERY_PARAM.toLowerCase()\n\n/**\n * Common HTTP headers we rely on in the signing process\n */\nexport const AUTHORIZATION_HEADER = 'authorization'\nexport const DATE_HEADER = 'date'\n\n/**\n * Lists the headers that are generated as part of the signature process.\n */\nexport const GENERATED_HEADERS = [AUTHORIZATION_HEADER, AMZ_DATE_HEADER, DATE_HEADER]\nexport const HOST_HEADER = 'host'\n\n/**\n * Lists the headers that should never be included in the\n * request signature signature process.\n */\nexport const ALWAYS_UNSIGNABLE_HEADERS = {\n authorization: true,\n 'cache-control': true,\n connection: true,\n expect: true,\n from: true,\n 'keep-alive': true,\n 'max-forwards': true,\n pragma: true,\n referer: true,\n te: true,\n trailer: true,\n 'transfer-encoding': true,\n upgrade: true,\n 'user-agent': true,\n 'x-amzn-trace-id': true,\n}\n\n/**\n * Signature specific constants included in the signing process\n */\nexport const KEY_TYPE_IDENTIFIER = 'aws4_request'\nexport const SIGNING_ALGORITHM_IDENTIFIER = 'AWS4-HMAC-SHA256'\n\n/**\n * Maximum time to live of a signed request in seconds: 7 days.\n */\nexport const MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7\n\n/**\n * SHA256 hash of an empty string (so we don't waste cycles recomputing it)\n */\nexport const EMPTY_SHA256 = 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'\n\n/**\n * SHA256 hash of the unsigned payload constant (so we don't waste cycles recomputing it)\n */\nexport const UNSIGNED_PAYLOAD_SHA256 =\n '5a41b0751e4537c6ff868564ab44a4d4ecceec2ec5b1c5f74d97422968e04237'\n\nexport const UNSIGNED_PAYLOAD = 'UNSIGNED-PAYLOAD'\n","import crypto from 'k6/crypto'\n\nimport * as constants from './constants'\nimport { AWSError } from './error'\nimport { hasHeader, HTTPHeaderBag, HTTPRequest, QueryParameterBag, SignedHTTPRequest } from './http'\nimport { isArrayBuffer } from './utils'\n\n/**\n * SignatureV4 can be used to sign HTTP requests and presign URLs using the AWS Signature\n * Version 4 signing process.\n *\n * It offers two signing methods:\n * - sign: signs the request headers and payload\n * - presign: returns a presigned (authorization information contained in the query string) URL\n *\n * @see https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html\n */\nexport class SignatureV4 {\n /**\n * The name of the service to sign for.\n */\n private readonly service: string\n\n /**\n * The name of the region to sign for.\n */\n private readonly region: string\n\n /**\n * The credentials with which the request should be signed.\n */\n private readonly credentials: Credentials\n\n /**\n * Whether to uri-escape the request URI path as part of computing the\n * canonical request string. This is required for every AWS service, except\n * Amazon S3, as of late 2017.\n *\n * @default [true]\n */\n private readonly uriEscapePath: boolean\n\n /**\n * Whether to calculate a checksum of the request body and include it as\n * either a request header (when signing) or as a query string parameter\n * (when presigning). This is required for AWS Glacier and Amazon S3 and optional for\n * every other AWS service as of late 2017.\n *\n * @default [true]\n */\n private readonly applyChecksum: boolean\n\n // TODO: uriEscapePath and applyChecksum should not be present in the constructor\n constructor({\n service,\n region,\n credentials,\n uriEscapePath,\n applyChecksum,\n }: SignatureV4Options) {\n this.service = service\n this.region = region\n this.credentials = credentials\n this.uriEscapePath = typeof uriEscapePath === 'boolean' ? uriEscapePath : true\n this.applyChecksum = typeof applyChecksum === 'boolean' ? applyChecksum : true\n }\n\n /**\n * Includes AWS v4 signing information to the provided HTTP request.\n *\n * This method adds an Authorization header to the request, containing\n * the signature and other signing information. It also returns a preformatted\n * URL that can be used to make the k6 http request.\n *\n * This method mutates the request object.\n *\n * @param request {HTTPRequest} The request to sign.\n * @param options {Partial} Options for signing the request.\n * @returns {SignedHTTPRequest} The signed request.\n */\n sign(request: HTTPRequest, options: Partial = {}): SignedHTTPRequest {\n // Set default values for options which are not provided by the user.\n const defaultOptions = {\n signingDate: new Date(),\n unsignableHeaders: new Set(),\n signableHeaders: new Set(),\n }\n\n // Merge default options with the ones maybe provided by the user.\n const finalOptions = { ...defaultOptions, ...options }\n\n const { longDate, shortDate }: DateInfo = formatDate(finalOptions.signingDate)\n const service = finalOptions.signingService || this.service\n const region = finalOptions.signingRegion || this.region\n const scope = `${shortDate}/${region}/${service}/${constants.KEY_TYPE_IDENTIFIER}`\n\n // Required by the specification:\n // \"For HTTP/1.1 requests, you must include the host header at a minimum.\n // Standard headers like content-type are optional.\n // For HTTP/2 requests, you must include the :authority header instead of\n // the host header. Different services might require other headers.\"\n if (!request.headers[constants.HOST_HEADER]) {\n request.headers[constants.HOST_HEADER] = request.endpoint.hostname\n }\n\n // Filter out headers that will be generated and managed by the signing process.\n // If the user provide any of those as part of the HTTPRequest's headers, they\n // will be ignored.\n for (const headerName of Object.keys(request.headers)) {\n if (constants.GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) {\n delete request.headers[headerName]\n }\n }\n\n request.headers[constants.AMZ_DATE_HEADER] = longDate\n if (this.credentials.sessionToken) {\n request.headers[constants.AMZ_TOKEN_HEADER] = this.credentials.sessionToken\n }\n\n // If the request body is a typed array, we need to convert it to a buffer\n // so that we can calculate the checksum.\n if (ArrayBuffer.isView(request.body)) {\n request.body = request.body.buffer\n }\n\n // Ensure we avoid passing undefined to the crypto hash function.\n if (!request.body) {\n request.body = ''\n }\n\n const payloadHash = this.computePayloadHash(request)\n if (\n !hasHeader(constants.AMZ_CONTENT_SHA256_HEADER, request.headers) &&\n this.applyChecksum\n ) {\n request.headers[constants.AMZ_CONTENT_SHA256_HEADER] = payloadHash\n }\n\n const canonicalHeaders = this.computeCanonicalHeaders(\n request,\n finalOptions.unsignableHeaders,\n finalOptions.signableHeaders\n )\n const signature = this.calculateSignature(\n longDate,\n scope,\n this.deriveSigningKey(this.credentials, service, region, shortDate),\n this.createCanonicalRequest(request, canonicalHeaders, payloadHash)\n )\n\n /**\n * Step 4 of the signing process: add the signature to the HTTP request's headers.\n *\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html\n */\n request.headers[constants.AUTHORIZATION_HEADER] =\n `${constants.SIGNING_ALGORITHM_IDENTIFIER} ` +\n `Credential=${this.credentials.accessKeyId}/${scope}, ` +\n `SignedHeaders=${Object.keys(canonicalHeaders).sort().join(';')}, ` +\n `Signature=${signature}`\n\n // If a request path was provided, add it to the URL\n let url = request.endpoint.href\n if (request.path) {\n // Ensure the URI and the request path are properly concatenated\n // by adding a trailing slash to the URI if it's missing.\n if (!url.endsWith('/') && !request.path.startsWith('/')) {\n url += '/'\n }\n\n // Append the path to the URL\n url += request.path\n }\n\n // If a request query string was provided, add it to the URL\n if (request.query) {\n // We exclude the signature from the query string\n url += `?${this.serializeQueryParameters(request.query)}`\n }\n\n return {\n url: url,\n ...request,\n }\n }\n\n /**\n * Produces a presigned URL with AWS v4 signature information for the provided HTTP request.\n *\n * A presigned URL is a URL that contains the authorization information\n * (signature and other signing information) in the query string. This method\n * returns a preformatted URL that can be used to make the k6 http request.\n *\n * @param originalRequest - The original request to presign.\n * @param options - Options controlling the signing of the request.\n * @returns A signed request, including the presigned URL.\n */\n presign(originalRequest: HTTPRequest, options: PresignOptions = {}): SignedHTTPRequest {\n const {\n signingDate = new Date(),\n expiresIn = 3600,\n unsignableHeaders,\n unhoistableHeaders,\n signableHeaders,\n signingRegion,\n signingService,\n } = options\n const { longDate, shortDate }: DateInfo = formatDate(signingDate)\n const region = signingRegion || this.region\n const service = signingService || this.service\n\n if (expiresIn > constants.MAX_PRESIGNED_TTL) {\n throw new InvalidSignatureError(\n \"Signature version 4 presigned URLs can't be valid for more than 7 days\"\n )\n }\n\n const scope = `${shortDate}/${region}/${service}/${constants.KEY_TYPE_IDENTIFIER}`\n const request = this.moveHeadersToQuery(originalRequest, { unhoistableHeaders })\n\n // Required by the specification:\n // \"For HTTP/1.1 requests, you must include the host header at a minimum.\n // Standard headers like content-type are optional.\n // For HTTP/2 requests, you must include the :authority header instead of\n // the host header. Different services might require other headers.\"\n if (!request.headers[constants.HOST_HEADER]) {\n request.headers[constants.HOST_HEADER] = originalRequest.endpoint.hostname\n }\n\n // If the user provided a session token, include it in the signed url query string.\n if (this.credentials.sessionToken) {\n request.query[constants.AMZ_TOKEN_QUERY_PARAM] = this.credentials.sessionToken\n }\n // Add base signing query parameters to the request, as described in the documentation\n // @see https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html\n request.query[constants.AMZ_ALGORITHM_QUERY_PARAM] = constants.SIGNING_ALGORITHM_IDENTIFIER\n request.query[\n constants.AMZ_CREDENTIAL_QUERY_PARAM\n ] = `${this.credentials.accessKeyId}/${scope}`\n request.query[constants.AMZ_DATE_QUERY_PARAM] = longDate\n request.query[constants.AMZ_EXPIRES_QUERY_PARAM] = expiresIn.toString(10)\n\n const canonicalHeaders = this.computeCanonicalHeaders(\n request,\n unsignableHeaders,\n signableHeaders\n )\n request.query[constants.AMZ_SIGNED_HEADERS_QUERY_PARAM] = Object.keys(canonicalHeaders)\n .sort()\n .join(';')\n\n const signingKey = this.deriveSigningKey(this.credentials, service, region, shortDate)\n\n // Computing the payload from the original request. This is required\n // in the event the user attempts to produce a presigned URL for s3,\n // which requires the payload hash to be 'UNSIGNED-PAYLOAD'.\n //\n // To that effect, users need to set the 'x-amz-content-sha256' header,\n // and mark it as unhoistable and unsignable. When setup this way,\n // the computePayloadHash method will then return the string 'UNSIGNED-PAYLOAD'.\n const payloadHash = this.computePayloadHash(originalRequest)\n const canonicalRequest = this.createCanonicalRequest(request, canonicalHeaders, payloadHash)\n\n request.query[constants.AMZ_SIGNATURE_QUERY_PARAM] = this.calculateSignature(\n longDate,\n scope,\n signingKey,\n canonicalRequest\n )\n\n // If a request path was provided, add it to the URL\n let url = originalRequest.endpoint.href\n if (request.path) {\n // Ensure there is a trailing slash at the end of the URL\n // so that appending the path does not result in a malformed URL.\n url = url?.endsWith('/') ? url : url + '/'\n\n // Append the path to the URL\n url += request.path\n }\n\n // If a request query string was provided, add it to the URL\n if (request.query) {\n url += `?${this.serializeQueryParameters(request.query)}`\n }\n\n return { url: url, ...request }\n }\n\n /**\n * Create a string including information from your request\n * in a AWS signature v4 standardized (canonical) format.\n *\n * Step 1 of the signing process: create the canonical request string.\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html\n *\n * @param request {HTTPRequest} The request to sign.\n * @param canonicalHeaders {HTTPHeaderBag} The request's canonical headers.\n * @param payloadHash {string} The hexadecimally encoded request's payload hash .\n * @returns {string} The canonical request string.\n */\n private createCanonicalRequest(\n request: HTTPRequest,\n canonicalHeaders: HTTPHeaderBag,\n payloadHash: string\n ): string {\n const sortedHeaders = Object.keys(canonicalHeaders).sort()\n const sortedCanonicalHeaders = sortedHeaders\n .map((name) => `${name}:${canonicalHeaders[name]}`)\n .join('\\n')\n const signedHeaders = sortedHeaders.join(';')\n\n return (\n `${request.method}\\n` +\n `${this.computeCanonicalURI(request)}\\n` +\n `${this.computeCanonicalQuerystring(request)}\\n` +\n `${sortedCanonicalHeaders}\\n\\n` +\n `${signedHeaders}\\n` +\n `${payloadHash}`\n )\n }\n\n /**\n * Create the \"string to sign\" part of the signature Version 4 protocol.\n *\n * The \"string to sign\" includes meta information about your request and\n * about the canonical request that you created with `createCanonicalRequest`.\n * It is used hand in hand with the signing key to create the request signature.\n * Step 2 of the signing process: create the string to sign.\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-create-string-to-sign.html\n *\n * @param longDate {string} The request's date in iso 8601 format.\n * @param credentialScope {string} The request's credential scope.\n * @param canonicalRequest {string} The request's canonical request.\n * @returns {string} The \"string to sign\".\n */\n private createStringToSign(\n longDate: string,\n credentialScope: string,\n canonicalRequest: string\n ): string {\n const hashedCanonicalRequest = crypto.sha256(canonicalRequest, 'hex')\n\n return (\n `${constants.SIGNING_ALGORITHM_IDENTIFIER}\\n` +\n `${longDate}\\n` +\n `${credentialScope}\\n` +\n `${hashedCanonicalRequest}`\n )\n }\n\n /**\n * Calculte the signature for AWS signature version 4.\n *\n * Step 3 of the signing process: create the signature.\n * @see https://docs.aws.amazon.com/general/latest/gr/sigv4-calculate-signature.html\n *\n * @param longDate {string} The request's date in iso 8601 format.\n * @param credentialScope {string} The request's credential scope.\n * @param signingKey {string} the signing key as computed by the deriveSigningKey method.\n * @param canonicalRequest {string} The request's canonical request.\n * @returns {string} The signature.\n */\n private calculateSignature(\n longDate: string,\n credentialScope: string,\n signingKey: Uint8Array,\n canonicalRequest: string\n ): string {\n const stringToSign = this.createStringToSign(longDate, credentialScope, canonicalRequest)\n return crypto.hmac('sha256', signingKey, stringToSign, 'hex')\n }\n\n /**\n * Derives the signing key for authenticating requests signed with\n * the Signature version 4 authentication protocol.\n *\n * deriveSigningKey produces a signing key by creating a series of\n * hash-based message authentication codes (HMACs) represented in\n * a binary format.\n *\n * The derived signing key is specific to the date it's made at, as well as\n * the service and region it targets.\n *\n * @param credentials {AWSCredentials} The credentials to use for signing.\n * @param service {string} The service the request is targeted at.\n * @param region {string} The region the request is targeted at.\n * @param shortDate {string} The request's date in YYYYMMDD format.\n * @returns {Uint8Array} The derived signing key.\n */\n private deriveSigningKey(\n credentials: Credentials,\n service: string,\n region: string,\n shortDate: string\n ): Uint8Array {\n const kSecret: string = credentials.secretAccessKey\n /**\n * crypto.hmac returns a value of type `bytes`, which is an alias for\n * number[]. However, the secret argument to hmac needs to either be\n * a `string` or ArrayBuffer. The only way to get around this is to\n * cast the return value of hmac to any, thus, we disable the no-explicit-any\n * ESLint rule for this function.\n */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const kDate: any = crypto.hmac('sha256', 'AWS4' + kSecret, shortDate, 'binary')\n const kRegion: any = crypto.hmac('sha256', kDate, region, 'binary')\n const kService: any = crypto.hmac('sha256', kRegion, service, 'binary')\n const kSigning: any = crypto.hmac('sha256', kService, 'aws4_request', 'binary')\n /* eslint-enable @typescript-eslint/no-explicit-any */\n\n return kSigning\n }\n\n /**\n * Create a string that includes information from your request\n * in a AWS signature v4 standardized (canonical) format.\n *\n * @param param0 {HTTPRequest} The request to sign.\n * @returns {string} The canonical URI.\n */\n private computeCanonicalURI({ path }: HTTPRequest): string {\n if (this.uriEscapePath) {\n // Non-S3 services, we normalize the path and then double URI encode it.\n // Ref: \"Remove Dot Segments\" https://datatracker.ietf.org/doc/html/rfc3986#section-5.2.4\n const normalizedURISegments = []\n\n for (const URISegment of path.split('/')) {\n if (URISegment?.length === 0) {\n continue\n }\n\n if (URISegment === '.') {\n continue\n }\n\n if (URISegment === '..') {\n normalizedURISegments.pop()\n } else {\n normalizedURISegments.push(URISegment)\n }\n }\n\n // Normalize the URI\n const leading = path?.startsWith('/') ? '/' : ''\n const URI = normalizedURISegments.join('/')\n const trailing = normalizedURISegments.length > 0 && path?.endsWith('/') ? '/' : ''\n const normalizedURI = `${leading}${URI}${trailing}`\n\n const doubleEncoded = encodeURIComponent(normalizedURI)\n\n return doubleEncoded.replace(/%2F/g, '/')\n }\n\n // For S3, we shouldn't normalize the path. For example, object name\n // my-object//example//photo.user should not be normalized to\n // my-object/example/photo.user\n return path\n }\n\n /**\n * Serializes the request's query parameters into their canonical\n * string version. If the request does not include a query parameters,\n * returns an empty string.\n *\n * @param param0 {HTTPRequest} The request containing the query parameters.\n * @returns {string} The canonical query string.\n */\n private computeCanonicalQuerystring({ query = {} }: HTTPRequest): string {\n const keys: Array = []\n const serialized: Record = {}\n\n for (const key of Object.keys(query).sort()) {\n if (key.toLowerCase() === constants.AMZ_SIGNATURE_HEADER) {\n continue\n }\n\n keys.push(key)\n const value = query[key]\n\n if (typeof value === 'string') {\n serialized[key] = `${escapeURI(key)}=${escapeURI(value)}`\n } else if (Array.isArray(value)) {\n serialized[key] = value\n .slice(0)\n .sort()\n .reduce(\n (encoded: Array, value: string) =>\n encoded.concat([`${escapeURI(key)}=${escapeURI(value)}`]),\n []\n )\n .join('&')\n }\n }\n\n return keys\n .map((key) => serialized[key])\n .filter((serialized) => serialized)\n .join('&')\n }\n\n /**\n * Create the canonical form of the request's headers.\n * Canonical headers consist of all the HTTP headers you\n * are including with the signed request.\n *\n * @param param0 {HTTPRequest} The request to compute the canonical headers of.\n * @param unsignableHeaders {Set} The headers that should not be signed.\n * @param signableHeaders {Set} The headers that should be signed.\n * @returns {string} The canonical headers.\n */\n private computeCanonicalHeaders(\n { headers }: HTTPRequest,\n unsignableHeaders?: Set,\n signableHeaders?: Set\n ): HTTPHeaderBag {\n const canonicalHeaders: HTTPHeaderBag = {}\n\n for (const headerName of Object.keys(headers).sort()) {\n if (headers[headerName] == undefined) {\n continue\n }\n\n const canonicalHeaderName = headerName.toLowerCase()\n if (\n canonicalHeaderName in constants.ALWAYS_UNSIGNABLE_HEADERS ||\n unsignableHeaders?.has(canonicalHeaderName)\n ) {\n if (\n !signableHeaders ||\n (signableHeaders && !signableHeaders.has(canonicalHeaderName))\n ) {\n continue\n }\n }\n\n if (typeof headers[headerName] === 'string') {\n canonicalHeaders[canonicalHeaderName] = headers[headerName] = headers[headerName]\n .trim()\n .replace(/\\s+/g, ' ')\n }\n }\n\n return canonicalHeaders\n }\n\n /**\n * Computes the SHA256 cryptographic hash of the request's body.\n *\n * If the headers contain the 'X-Amz-Content-Sha256' header, then\n * the value of that header is returned instead. This proves useful\n * when, for example, presiging a URL for S3, as the payload hash\n * must always be equal to 'UNSIGNED-PAYLOAD'.\n *\n * @param param0 {HTTPRequest} The request to compute the payload hash of.\n * @returns {string} The hex encoded SHA256 payload hash, or the value of the 'X-Amz-Content-Sha256' header.\n */\n private computePayloadHash({ headers, body }: HTTPRequest): string {\n // for (const headerName of Object.keys(headers)) {\n // // If the header is present, return its value.\n // // So that we let the 'UNSIGNED-PAYLOAD' value pass through.\n // if (headerName.toLowerCase() === constants.AMZ_CONTENT_SHA256_HEADER) {\n // return headers[headerName]\n // }\n // }\n\n if (headers[constants.AMZ_CONTENT_SHA256_HEADER]) {\n return headers[constants.AMZ_CONTENT_SHA256_HEADER]\n }\n\n if (body == undefined) {\n return constants.EMPTY_SHA256\n }\n\n if (typeof body === 'string' || isArrayBuffer(body)) {\n return crypto.sha256(body, 'hex').toLowerCase()\n }\n\n if (ArrayBuffer.isView(body)) {\n // If the request body is a typed array, we need to convert it to a buffer\n // so that we can calculate the checksum.\n return crypto.sha256((body as DataView).buffer, 'hex').toLowerCase()\n }\n\n return constants.UNSIGNED_PAYLOAD\n }\n\n /**\n * Moves a request's headers to its query parameters.\n *\n * The operation will ignore any amazon standard headers, prefixed\n * with 'X-Amz-'. It will also ignore any headers specified as unhoistable\n * by the options.\n *\n * The operation will delete the headers from the request.\n *\n * @param request {HTTPRequest} The request to move the headers from.\n * @param options\n * @returns {HTTPRequest} The request with the headers moved to the query parameters.\n */\n private moveHeadersToQuery(\n request: HTTPRequest,\n options: { unhoistableHeaders?: Set } = {}\n ): HTTPRequest & { query: QueryParameterBag } {\n const requestCopy = JSON.parse(JSON.stringify(request))\n const { headers, query = {} as QueryParameterBag } = requestCopy\n\n for (const name of Object.keys(headers)) {\n const lowerCaseName = name.toLowerCase()\n if (\n lowerCaseName.slice(0, 6) === 'x-amz-' &&\n !options.unhoistableHeaders?.has(lowerCaseName)\n ) {\n query[name] = headers[name]\n delete headers[name]\n }\n }\n\n return {\n ...requestCopy,\n headers,\n query,\n }\n }\n\n /**\n * Serializes a HTTPRequest's query parameter bag into a string.\n *\n * @param query {QueryParameterBag} The query parameters to serialize.\n * @param ignoreKeys {Set} The keys to ignore.\n * @returns {string} The serialized, and ready to use in a URL, query parameters.\n */\n private serializeQueryParameters(query: QueryParameterBag, ignoreKeys?: string[]): string {\n const keys: Array = []\n const serialized: Record = {}\n\n for (const key of Object.keys(query).sort()) {\n if (ignoreKeys?.includes(key.toLowerCase())) {\n continue\n }\n\n keys.push(key)\n const value = query[key]\n\n if (typeof value === 'string') {\n serialized[key] = `${escapeURI(key)}=${escapeURI(value)}`\n } else if (Array.isArray(value)) {\n serialized[key] = value\n .slice(0)\n .sort()\n .reduce(\n (encoded: Array, value: string) =>\n encoded.concat([`${escapeURI(key)}=${escapeURI(value)}`]),\n []\n )\n .join('&')\n }\n }\n\n return keys\n .map((key) => serialized[key])\n .filter((serialized) => serialized)\n .join('&')\n }\n}\n\n/**\n * Error indicating an Invalid signature has been sent to AWS services\n *\n * Inspired from AWS official error types, as\n * described in:\n * * https://aws.amazon.com/blogs/developer/service-error-handling-modular-aws-sdk-js/\n * * https://github.com/aws/aws-sdk-js/blob/master/lib/error.d.ts\n */\nexport class InvalidSignatureError extends AWSError {\n /**\n * Constructs an InvalidSignatureError\n *\n * @param {string} message - human readable error message\n */\n constructor(message: string, code?: string) {\n super(message, code)\n this.name = 'InvalidSignatureError'\n }\n}\n\nexport interface SignatureV4Options {\n /**\n * The name of the service to sign for.\n */\n service: string\n\n /**\n * The name of the region to sign for.\n */\n region: string\n\n /**\n * The credentials with which the request should be signed.\n */\n credentials: Credentials\n\n /**\n * Whether to uri-escape the request URI path as part of computing the\n * canonical request string. This is required for every AWS service, except\n * Amazon S3, as of late 2017.\n *\n * @default [true]\n */\n uriEscapePath?: boolean\n\n /**\n * Whether to calculate a checksum of the request body and include it as\n * either a request header (when signing) or as a query string parameter\n * (when presigning). This is required for AWS Glacier and Amazon S3 and optional for\n * every other AWS service as of late 2017.\n *\n * @default [true]\n */\n applyChecksum?: boolean\n}\n\nexport interface SignOptions {\n /**\n * The date and time to be used as signature metadata. This value should be\n * a Date object, a unix (epoch) timestamp, or a string that can be\n * understood by the JavaScript `Date` constructor.If not supplied, the\n * value returned by `new Date()` will be used.\n */\n signingDate?: Date\n\n /**\n * The service signing name. It will override the service name of the signer\n * in current invocation\n */\n signingService?: string\n\n /**\n * The region name to sign the request. It will override the signing region of the\n * signer in current invocation\n */\n signingRegion?: string\n}\n\nexport interface RequestSigningOptions extends SignOptions {\n /**\n * A set of strings whose members represents headers that cannot be signed.\n * All headers in the provided request will have their names converted to\n * lower case and then checked for existence in the unsignableHeaders set.\n */\n unsignableHeaders?: Set\n\n /**\n * A set of strings whose members represents headers that should be signed.\n * Any values passed here will override those provided via unsignableHeaders,\n * allowing them to be signed.\n *\n * All headers in the provided request will have their names converted to\n * lower case before signing.\n */\n signableHeaders?: Set\n}\n\nexport interface PresignOptions extends RequestSigningOptions {\n /**\n * The number of seconds before the presigned URL expires\n */\n expiresIn?: number\n\n /**\n * A set of strings whose representing headers that should not be hoisted\n * to presigned request's query string. If not supplied, the presigner\n * moves all the AWS-specific headers (starting with `x-amz-`) to the request\n * query string. If supplied, these headers remain in the presigned request's\n * header.\n * All headers in the provided request will have their names converted to\n * lower case and then checked for existence in the unhoistableHeaders set.\n */\n unhoistableHeaders?: Set\n}\n\nexport interface Credentials {\n /**\n * AWS access key ID\n */\n readonly accessKeyId: string\n\n /**\n * AWS secret access key\n */\n readonly secretAccessKey: string\n\n /**\n * A security or session token to use with these credentials. Usually\n * present for temporary credentials.\n */\n readonly sessionToken?: string\n}\n\nexport interface DateInfo {\n /**\n * ISO8601 formatted date string\n */\n longDate: string\n\n /**\n * String in the format YYYYMMDD\n */\n shortDate: string\n}\n\n/**\n * Escapes a URI following the AWS signature v4 escaping rules.\n *\n * @param URI {string} The URI to escape.\n * @returns {string} The escaped URI.\n */\nfunction escapeURI(URI: string): string {\n const hexEncode = (c: string): string => {\n return `%${c.charCodeAt(0).toString(16).toUpperCase()}`\n }\n\n return encodeURIComponent(URI).replace(/[!'()*]/g, hexEncode)\n}\n\n/**\n * formatDate formats a Date object into a ISO8601 formatted date string\n * and a string in the format YYYYMMDD.\n *\n * @param date {Date} The date to format.\n * @returns {DateInfo} The formatted date.\n */\nfunction formatDate(date: Date): DateInfo {\n const longDate = iso8601(date).replace(/[-:]/g, '')\n return {\n longDate,\n shortDate: longDate.slice(0, 8),\n }\n}\n\n/**\n * Formats a time into an ISO 8601 string.\n *\n * @see https://en.wikipedia.org/wiki/ISO_8601\n *\n * @param time {number | string | Date} The time to format.\n * @returns {string} The ISO 8601 formatted time.\n */\nfunction iso8601(time: number | string | Date): string {\n return toDate(time)\n .toISOString()\n .replace(/\\.\\d{3}Z$/, 'Z')\n}\n\n/**\n * Converts a time value into a Date object.\n *\n * @param time {number | string | Date} The time to convert.\n * @returns {Date} The resulting Date object.\n */\nfunction toDate(time: number | string | Date): Date {\n if (typeof time === 'number') {\n return new Date(time * 1000)\n }\n\n if (typeof time === 'string') {\n if (Number(time)) {\n return new Date(Number(time) * 1000)\n }\n\n return new Date(time)\n }\n\n return time\n}\n","import { Endpoint } from './endpoint'\n\n/**\n * Type representing HTTP schemes\n */\nexport type HTTPScheme = 'http' | 'https'\n\n/**\n * Type representing HTTP Methods\n *\n */\nexport type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'DELETE'\n\n/**\n * Type alias representing HTTP Headers\n */\nexport type HTTPHeaders = { [key: string]: string }\n\n/**\n * HTTPHeaderBag is a type alias representing HTTP Headers\n */\nexport type HTTPHeaderBag = Record\n\nexport function hasHeader(soughtHeader: string, headers: HTTPHeaderBag): boolean {\n soughtHeader = soughtHeader.toLowerCase()\n\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * QueryParameterBag is a type alias representing HTTP Query Parameters\n */\nexport type QueryParameterBag = Record>\n\n/**\n * HTTPRequest represents an HTTP request\n */\nexport interface HTTPRequest {\n /**\n * The HTTP method to use\n */\n method: HTTPMethod\n\n /**\n * Represents an AWS service endpoint, providing utilities for parsing and handling URL details.\n */\n endpoint: Endpoint\n\n /**\n * The path to the resource\n */\n path: string\n\n /**\n * The query parameters to include in the request\n */\n query?: QueryParameterBag\n\n /**\n * The headers to include in the request\n */\n headers: HTTPHeaderBag\n\n /**\n * The body of the request\n */\n body?: string | ArrayBuffer | null\n}\n\n/**\n * SignedHTTPRequest represents an HTTP request that has been signed\n * with an AWS signature. It is a superset of HTTPRequest adding\n * the following fields:\n * - url: the fully qualified URL of the request that can be used in a k6 http.request.\n */\nexport interface SignedHTTPRequest extends HTTPRequest {\n url: string\n}\n","/**\n *\n * @param value\n * @returns\n */\nexport function isArrayBuffer(value: unknown): value is ArrayBuffer {\n return (\n typeof ArrayBuffer === 'function' &&\n (value instanceof ArrayBuffer ||\n Object.prototype.toString.call(value) === '[object ArrayBuffer]')\n )\n}\n\nexport function toFormUrlEncoded(form: Record): string {\n return Object.keys(form)\n .reduce((params, key) => {\n const value = form[key]\n if (value !== undefined && value !== null) {\n params.push(`${encodeURIComponent(key)}=${encodeURIComponent(value)}`)\n }\n return params\n }, [] as string[])\n .join('&')\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"k6/http\");","import { JSONObject } from 'k6'\nimport http, { RefinedResponse, ResponseType } from 'k6/http'\n\nimport { AWSClient } from './client'\nimport { AWSConfig } from './config'\nimport { AMZ_TARGET_HEADER } from './constants'\nimport { AWSError } from './error'\nimport { HTTPHeaders, HTTPMethod } from './http'\nimport { InvalidSignatureError, SignatureV4 } from './signature'\n\n/**\n * Class allowing to interact with Amazon AWS's Systems Manager service\n */\nexport class SystemsManagerClient extends AWSClient {\n private readonly signature: SignatureV4\n private readonly method: HTTPMethod\n private readonly commonHeaders: HTTPHeaders\n\n /**\n * Create a SystemsManagerClient\n * @param {AWSConfig} awsConfig - configuration attributes to use when interacting with AWS' APIs\n */\n constructor(awsConfig: AWSConfig) {\n super(awsConfig, 'ssm')\n\n // All interactions with the Systems Manager service\n // are made via the POST method.\n this.method = 'POST'\n this.commonHeaders = {\n 'Content-Type': 'application/x-amz-json-1.1',\n }\n\n this.signature = new SignatureV4({\n service: this.serviceName,\n region: awsConfig.region,\n credentials: {\n accessKeyId: awsConfig.accessKeyId,\n secretAccessKey: awsConfig.secretAccessKey,\n sessionToken: awsConfig.sessionToken,\n },\n uriEscapePath: true,\n applyChecksum: false,\n })\n }\n\n /**\n * Retrieves a parameter from Amazon Systems Manager\n *\n * @param {string} name - The ARN or name of the parameter to retrieve.\n * @param {boolean} withDecryption - whether returned secure string parameters should be decrypted.\n * @returns {SystemsManagerParameter} - returns the fetched Parameter object.\n * @throws {SystemsManagerServiceError}\n * @throws {InvalidSignatureError}\n */\n async getParameter(\n name: string,\n withDecryption: boolean = false\n ): Promise {\n const signedRequest = this.signature.sign(\n {\n method: this.method,\n endpoint: this.endpoint,\n path: '/',\n headers: {\n ...this.commonHeaders,\n [AMZ_TARGET_HEADER]: `AmazonSSM.GetParameter`,\n },\n body: JSON.stringify({ Name: name, WithDecryption: withDecryption }),\n },\n {}\n )\n\n const res = await http.asyncRequest(this.method, signedRequest.url, signedRequest.body, {\n ...this.baseRequestParams,\n headers: signedRequest.headers,\n })\n this.handleError(res, SystemsManagerOperation.GetParameter)\n\n return SystemsManagerParameter.fromJSON(res.json() as JSONObject)\n }\n\n protected handleError(response: RefinedResponse, operation?: string): boolean {\n const errored = super.handleError(response, operation);\n if (!errored) {\n return false\n }\n\n const errorCode = response.error_code\n const error = response.json() as JSONObject\n if (errorCode >= 1400 && errorCode <= 1499) {\n // In the event of certain errors, the message is not set.\n // Also, note the inconsistency in casing...\n const errorMessage: string =\n (error.Message as string) || (error.message as string) || (error.__type as string)\n\n // Handle specifically the case of an invalid signature\n if (error.__type === 'InvalidSignatureException') {\n throw new InvalidSignatureError(errorMessage, error.__type)\n }\n\n // Otherwise throw a standard service error\n throw new SystemsManagerServiceError(errorMessage, error.__type as string, operation as SystemsManagerOperation)\n }\n\n if (errorCode === 1500) {\n throw new SystemsManagerServiceError(\n 'An error occured on the server side',\n 'InternalServiceError',\n operation as SystemsManagerOperation\n )\n }\n\n return true\n }\n}\n\n/**\n * Class representing a Systems Manager's Parameter\n */\nexport class SystemsManagerParameter {\n /**\n * The Amazon Resource Name (ARN) of the parameter.\n */\n arn: string\n\n /**\n * The data type of the parameter, such as text or aws:ec2:image.\n * The default is text.\n */\n dataType: string\n\n /**\n * Date the parameter was last changed or updated and the parameter version was created.\n */\n lastModifiedDate: number\n\n /**\n * The friendly name of the parameter.\n */\n name: string\n\n /**\n * Either the version number or the label used to retrieve the parameter value. Specify selectors by using one of the following formats:\n * parameter_name:version\n * parameter_name:label\n */\n selector: string\n\n /**\n * plies to parameters that reference information in other AWS services. SourceResult is the raw result or response from the source.\n */\n sourceResult: string\n\n /**\n * The type of parameter. Valid values include the following: String, StringList, and SecureString.\n */\n type: string\n\n /**\n * The parameter value.\n */\n value: string\n\n /**\n * The parameter version.\n */\n version: number\n\n /**\n * Constructs a Systems Manager's Parameter\n *\n * @param {string} arn - The Amazon Resource Name (ARN) of the parameter.\n * @param {string} dataType - The data type of the parameter, such as text or aws:ec2:image. The default is text.\n * @param {number} lastModifiedDate - Date the parameter was last changed or updated and the parameter version was created.\n * @param {string} name - The friendly name of the parameter.\n * @param {string} selector - Either the version number or the label used to retrieve the parameter value. Specify selectors by using one of the following formats:\n * parameter_name:version\n * parameter_name:label\n * @param {string} sourceResult - Applies to parameters that reference information in other AWS services. SourceResult is the raw result or response from the source.\n * @param {string} type - The type of parameter. Valid values include the following: String, StringList, and SecureString.\n * @param {string} value - The parameter value.\n * @param {number} version - The parameter version.\n */\n constructor(\n arn: string,\n dataType: string,\n lastModifiedDate: number,\n name: string,\n selector: string,\n sourceResult: string,\n type: string,\n value: string,\n version: number\n ) {\n this.arn = arn\n this.dataType = dataType\n this.lastModifiedDate = lastModifiedDate\n this.name = name\n this.selector = selector\n this.sourceResult = sourceResult\n this.type = type\n this.value = value\n this.version = version\n }\n\n /**\n * Parses and constructs a Systems Manager's Parameter from the content\n * of a JSON response returned by the AWS service\n *\n * @param {Object} json - JSON object as returned and parsed from\n * the AWS service's API call.\n * @returns {SystemsManagerParameter}\n */\n static fromJSON(json: JSONObject): SystemsManagerParameter {\n const parameter = json.Parameter as JSONObject\n\n return new SystemsManagerParameter(\n parameter.ARN as string,\n parameter.DataType as string,\n parameter.LastModifiedDate as number,\n parameter.Name as string,\n parameter.Selector as string,\n parameter.SourceResult as string,\n parameter.Type as string,\n parameter.Value as string,\n parameter.Version as number\n )\n }\n}\n\nexport class SystemsManagerServiceError extends AWSError {\n operation: SystemsManagerOperation\n\n /**\n * Constructs a SystemsManagerServiceError\n *\n * @param {string} message - human readable error message\n * @param {string} code - A unique short code representing the error that was emitted\n * @param {SystemsManagerOperation} operation - Name of the failed Operation\n */\n constructor(message: string, code: string, operation: SystemsManagerOperation) {\n super(message, code)\n this.name = 'SystemsManagerServiceError'\n this.operation = operation\n }\n}\n\n/**\n * SystemsManagerOperation defines all currently implemented Systems Manager operations.\n */\nenum SystemsManagerOperation {\n GetParameter = 'GetParameter',\n}\n","import { RefinedResponse, ResponseType, Params } from 'k6/http'\n\nimport { AWSConfig } from './config'\nimport { Endpoint } from './endpoint'\nimport { HTTPHeaders } from './http'\nimport {\n GeneralErrorKind,\n DNSErrorKind,\n TCPErrorKind,\n TLSErrorKind,\n HTTP2ErrorKind,\n GeneralError,\n DNSError,\n TCPError,\n TLSError,\n HTTP2Error,\n} from './error'\n\n/**\n * Class allowing to build requests targeting AWS APIs\n *\n * This class is meant to be used as a base class for specific\n * services clients. See S3Client or SecretsManagerClient for\n * usage examples.\n */\nexport class AWSClient {\n readonly awsConfig: AWSConfig\n readonly serviceName: string\n\n // Because jslib-aws is mostly used as a way to setup or feed k6 tests, and\n // we want the jslib-aws to be able to disregard k6's discardResponseBodies: meaning\n // that for instance, even when setting discardResponseBodies to true in the k6 options, using\n // s3.getObject still receives the underlying response body and returns data to the user.\n //\n // To achieve this, we set the responseType to 'text' in the baseRequestParams, as it\n // will lead the http module to ignore the discardResponseBodies option.\n //\n // AWS Client classes can override this value if they want to receive the response body\n // as a different type ('binary' for instance, e.g. S3Client.getObject).\n //\n // See #45: https://github.com/grafana/k6-jslib-aws/issues/45\n readonly baseRequestParams: Params = {\n responseType: 'text',\n }\n\n private _endpoint?: Endpoint\n\n /**\n * @param {AWSConfig} awsConfig - configuration attributes to use when interacting with AWS' APIs\n * @param {string} serviceName - name of the service to target.\n * @param {URIEncodingConfig} URIencodingConfig - configures how requests URIs should be encoded.\n */\n constructor(awsConfig: AWSConfig, serviceName: string) {\n this.awsConfig = awsConfig\n this.serviceName = serviceName\n\n // If an endpoint is provided in the config, set it\n // to ensure the default endpoint is not used.\n if (awsConfig.endpoint != undefined) {\n this._endpoint = awsConfig.endpoint\n }\n }\n\n /**\n * Represents the endpoint URL of the AWS service.\n *\n * If no custom endpoint is set, a default endpoint will be constructed\n * using the service name and region provided in the AWS config.\n *\n * @type {Endpoint}\n * @public\n */\n public get endpoint() {\n if (this._endpoint == undefined) {\n this._endpoint = new Endpoint(\n `https://${this.serviceName}.${this.awsConfig.region}.amazonaws.com`\n )\n }\n return this._endpoint\n }\n\n /**\n * Updates the endpoint URL of the AWS service.\n *\n * This can be used to override the default AWS service endpoint or set a custom endpoint.\n *\n * @param {Endpoint} endpoint - The new endpoint to set for the AWS service.\n * @public\n */\n public set endpoint(endpoint: Endpoint) {\n this._endpoint = endpoint\n }\n\n /**\n * Handles the k6 http response potential errors produced when making a\n * request to an AWS service.\n *\n * Importantly, this method only handles errors that emerge from the k6 http client itself, and\n * won't handle AWS specific errors. To handle AWS specific errors, client classes are\n * expected to implement their own error handling logic by overriding this method.\n *\n * @param response {RefinedResponse} the response received by the k6 http client\n * @param operation {string | undefined } the name of the operation that was attempted when the error occurred\n * @param {boolean} returns true if an error was handled, false otherwise\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n protected handleError(response: RefinedResponse, operation?: string): boolean {\n const status: number = response.status\n const errorCode: number = response.error_code\n const errorMessage: string = response.error\n\n // We consider codes 200-299 as success.\n //\n // We do not consider 3xx as success as some services such as S3 can use\n // 301 to indicate a bucket not found\n if (status >= 200 && status < 300 && errorMessage == '' && errorCode === 0) {\n return false\n }\n\n switch (errorCode) {\n case GeneralErrorKind.GenericError:\n case GeneralErrorKind.NonTCPNetworkError:\n case GeneralErrorKind.InvalidURL:\n case GeneralErrorKind.HTTPRequestTimeout:\n throw new GeneralError(errorCode);\n case DNSErrorKind.GenericDNSError:\n case DNSErrorKind.NoIPFound:\n case DNSErrorKind.BlacklistedIP:\n case DNSErrorKind.BlacklistedHostname:\n throw new DNSError(errorCode);\n case TCPErrorKind.GenericTCPError:\n case TCPErrorKind.BrokenPipeOnWrite:\n case TCPErrorKind.UnknownTCPError:\n case TCPErrorKind.GeneralTCPDialError:\n case TCPErrorKind.DialTimeoutError:\n case TCPErrorKind.DialConnectionRefused:\n case TCPErrorKind.DialUnknownError:\n case TCPErrorKind.ResetByPeer:\n throw new TCPError(errorCode);\n case TLSErrorKind.GeneralTLSError:\n case TLSErrorKind.UnknownAuthority:\n case TLSErrorKind.CertificateHostnameMismatch:\n throw new TLSError(errorCode);\n case HTTP2ErrorKind.GenericHTTP2Error:\n case HTTP2ErrorKind.GeneralHTTP2GoAwayError:\n throw new HTTP2Error(errorCode);\n }\n\n return true\n }\n}\n\n/**\n * Type alias representing the result of an AWSClient.buildRequest call\n */\nexport interface AWSRequest {\n readonly url: string\n readonly headers: HTTPHeaders\n}\n"],"names":["__webpack_require__","module","getter","__esModule","d","a","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","Endpoint","endpoint","_classCallCheck","_defineProperty","completeUrl","startsWith","concat","DEFAULT_PROTOCOL","protocolMatch","match","hostnameWithPort","_slicedToArray","replace","split","this","_protocol","slice","_hostname","_port","parseInt","undefined","href","set","_value$split2","hostname","port","protocol","host","AWSConfig","options","region","InvalidAWSConfigError","accessKeyId","length","secretAccessKey","sessionToken","_createClass","__ENV","AWS_REGION","AWS_ACCESS_KEY_ID","AWS_SECRET_ACCESS_KEY","AWS_SESSION_TOKEN","_Error","message","_callSuper","_inherits","_wrapNativeSuper","Error","require","AWSError","code","_this","name","xmlDocument","doc","parseHTML","find","text","response","headers","error","json","Message","__type","parseXML","body","NetworkError","_Error2","_this2","ErrorMessages","GeneralError","_NetworkError2","DNSError","_NetworkError3","TCPError","_NetworkError4","TLSError","_NetworkError5","HTTP2Error","_NetworkError6","GeneralErrorKind","DNSErrorKind","TCPErrorKind","TLSErrorKind","HTTP2ErrorKind","_ErrorMessages","GenericError","NonTCPNetworkError","InvalidURL","HTTPRequestTimeout","GenericDNSError","NoIPFound","BlacklistedIP","BlacklistedHostname","GenericTCPError","BrokenPipeOnWrite","UnknownTCPError","GeneralTCPDialError","DialTimeoutError","DialConnectionRefused","DialUnknownError","ResetByPeer","GeneralTLSError","UnknownAuthority","CertificateHostnameMismatch","GenericHTTP2Error","GeneralHTTP2GoAwayError","AMZ_DATE_QUERY_PARAM","AMZ_SIGNATURE_QUERY_PARAM","AMZ_TOKEN_QUERY_PARAM","AMZ_CONTENT_SHA256_HEADER","AMZ_DATE_HEADER","toLowerCase","AMZ_SIGNATURE_HEADER","AMZ_TARGET_HEADER","AMZ_TOKEN_HEADER","AUTHORIZATION_HEADER","GENERATED_HEADERS","HOST_HEADER","ALWAYS_UNSIGNABLE_HEADERS","authorization","connection","expect","from","pragma","referer","te","trailer","upgrade","KEY_TYPE_IDENTIFIER","SIGNING_ALGORITHM_IDENTIFIER","SignatureV4","_ref","service","credentials","uriEscapePath","applyChecksum","request","arguments","finalOptions","_objectSpread","signingDate","Date","unsignableHeaders","Set","signableHeaders","_formatDate","formatDate","longDate","shortDate","signingService","signingRegion","scope","constants","_i","_Object$keys","keys","headerName","indexOf","ArrayBuffer","isView","buffer","payloadHash","computePayloadHash","soughtHeader","hasHeader","canonicalHeaders","computeCanonicalHeaders","signature","calculateSignature","deriveSigningKey","createCanonicalRequest","sort","join","url","path","endsWith","query","serializeQueryParameters","originalRequest","_options$signingDate","_options$expiresIn","expiresIn","unhoistableHeaders","_formatDate2","InvalidSignatureError","moveHeadersToQuery","toString","signingKey","canonicalRequest","_url","sortedHeaders","sortedCanonicalHeaders","map","signedHeaders","method","computeCanonicalURI","computeCanonicalQuerystring","credentialScope","hashedCanonicalRequest","crypto","stringToSign","createStringToSign","kSecret","kDate","kRegion","kService","_ref2","_step","normalizedURISegments","_iterator","_createForOfIteratorHelper","s","n","done","URISegment","pop","push","err","e","f","leading","URI","trailing","normalizedURI","encodeURIComponent","_ref3","_step2","_ref3$query","serialized","_loop","escapeURI","Array","isArray","reduce","encoded","_iterator2","filter","_ref4","_step3","_iterator3","canonicalHeaderName","has","trim","_ref5","requestCopy","JSON","parse","stringify","_requestCopy$query","_i2","_Object$keys2","_options$unhoistableH","lowerCaseName","ignoreKeys","_step4","_loop2","includes","_iterator4","_AWSError","c","charCodeAt","toUpperCase","date","time","Number","toDate","toISOString","_regeneratorRuntime","t","r","i","iterator","asyncIterator","u","define","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","h","l","y","GeneratorFunction","GeneratorFunctionPrototype","p","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","reverse","prev","charAt","stop","rval","handle","complete","finish","delegateYield","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptor","apply","getOwnPropertyDescriptors","defineProperties","asyncGeneratorStep","_defineProperties","_toPropertyKey","_getPrototypeOf","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","Boolean","valueOf","_get","bind","_superPropBase","_setPrototypeOf","toPrimitive","String","_toPrimitive","SystemsManagerClient","_AWSClient","awsConfig","commonHeaders","serviceName","_callee","withDecryption","signedRequest","res","_args","_context","sign","Name","WithDecryption","http","baseRequestParams","handleError","SystemsManagerOperation","GetParameter","SystemsManagerParameter","fromJSON","_getParameter","_next","_throw","_x","operation","errorCode","error_code","errorMessage","SystemsManagerServiceError","AWSClient","responseType","_endpoint","status","arn","dataType","lastModifiedDate","selector","sourceResult","version","parameter","Parameter","ARN","DataType","LastModifiedDate","Selector","SourceResult","Type","Value","Version"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/index.html b/lib/index.html index 7a84038..5e38205 100644 --- a/lib/index.html +++ b/lib/index.html @@ -628,7 +628,7 @@

Available libs

https://www.npmjs.com/package/kahwah aws - 0.1.0, 0.3.0, 0.4.0, 0.5.0, 0.6.0, 0.7.0, 0.7.1, 0.7.2, 0.8.0, 0.8.1, 0.9.0, 0.10.0, 0.11.0, 0.12.0, 0.12.1, 0.12.2, 0.12.3 + 0.1.0, 0.3.0, 0.4.0, 0.5.0, 0.6.0, 0.7.0, 0.7.1, 0.7.2, 0.8.0, 0.8.1, 0.9.0, 0.10.0, 0.11.0, 0.12.0, 0.12.1, 0.12.2, 0.12.3, 0.13.0 https://grafana.com/docs/k6/latest/javascript-api/jslib/aws http-instrumentation-pyroscope diff --git a/supported.json b/supported.json index 4b43735..48280a2 100644 --- a/supported.json +++ b/supported.json @@ -74,7 +74,8 @@ "0.12.0", "0.12.1", "0.12.2", - "0.12.3" + "0.12.3", + "0.13.0" ], "bundle-filename": "aws.js", "docs-url": "https://grafana.com/docs/k6/latest/javascript-api/jslib/aws"